uswds-jekyll 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +28 -3
  3. data/_includes/analytics.html +20 -0
  4. data/_includes/components/header--basic.html +2 -2
  5. data/_includes/components/header--extended.html +3 -3
  6. data/_includes/components/hero.html +1 -1
  7. data/_includes/subnav.html +1 -1
  8. data/_layouts/default.html +3 -0
  9. data/_sass/uswds/components/_accordions.scss +11 -11
  10. data/_sass/uswds/components/_alerts.scss +60 -29
  11. data/_sass/uswds/components/_footer.scss +176 -40
  12. data/_sass/uswds/components/_header.scss +6 -9
  13. data/_sass/uswds/components/_hero.scss +1 -7
  14. data/_sass/uswds/components/_navigation.scss +115 -20
  15. data/_sass/uswds/components/_search.scss +32 -27
  16. data/_sass/uswds/core/_base.scss +5 -0
  17. data/_sass/uswds/core/_utilities.scss +25 -5
  18. data/_sass/uswds/core/_variables.scss +77 -45
  19. data/_sass/uswds/elements/_buttons.scss +76 -50
  20. data/_sass/uswds/elements/_inputs.scss +49 -44
  21. data/_sass/uswds/elements/_labels.scss +2 -2
  22. data/_sass/uswds/elements/_table.scss +30 -22
  23. data/_sass/uswds/elements/_typography.scss +11 -8
  24. data/_sass/uswds/uswds.scss +1 -1
  25. data/assets/uswds/CONTRIBUTING.md +33 -0
  26. data/assets/uswds/LICENSE.md +0 -8
  27. data/assets/uswds/README.md +2 -2
  28. data/assets/uswds/css/uswds.css +862 -476
  29. data/assets/uswds/css/uswds.min.css +2 -2
  30. data/assets/uswds/css/uswds.min.css.map +1 -1
  31. data/assets/uswds/img/arrow-both.png +0 -0
  32. data/assets/uswds/img/arrow-both.svg +1 -0
  33. data/assets/uswds/img/close-primary.png +0 -0
  34. data/assets/uswds/img/close-primary.svg +16 -0
  35. data/assets/uswds/img/close.png +0 -0
  36. data/assets/uswds/img/close.svg +12 -1
  37. data/assets/uswds/img/search-primary.png +0 -0
  38. data/assets/uswds/img/search-primary.svg +12 -0
  39. data/assets/uswds/js/uswds.js +45 -13
  40. data/assets/uswds/js/uswds.min.js +1 -1
  41. data/assets/uswds/js/uswds.min.js.map +1 -1
  42. data/assets/uswds/scss/components/_accordions.scss +11 -11
  43. data/assets/uswds/scss/components/_alerts.scss +60 -29
  44. data/assets/uswds/scss/components/_footer.scss +176 -40
  45. data/assets/uswds/scss/components/_header.scss +6 -9
  46. data/assets/uswds/scss/components/_hero.scss +1 -7
  47. data/assets/uswds/scss/components/_navigation.scss +115 -20
  48. data/assets/uswds/scss/components/_search.scss +32 -27
  49. data/assets/uswds/scss/core/_base.scss +5 -0
  50. data/assets/uswds/scss/core/_utilities.scss +25 -5
  51. data/assets/uswds/scss/core/_variables.scss +77 -45
  52. data/assets/uswds/scss/elements/_buttons.scss +76 -50
  53. data/assets/uswds/scss/elements/_inputs.scss +49 -44
  54. data/assets/uswds/scss/elements/_labels.scss +2 -2
  55. data/assets/uswds/scss/elements/_table.scss +30 -22
  56. data/assets/uswds/scss/elements/_typography.scss +11 -8
  57. data/assets/uswds/scss/uswds.scss +1 -1
  58. data/assets/uswds/{uswds-1.3.1.zip → uswds-1.4.3.zip} +0 -0
  59. metadata +11 -4
@@ -1,4 +1,4 @@
1
- /*! uswds v1.3.1 */
1
+ /*! uswds v1.4.3 */
2
2
 
3
- /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse}td,th{padding:0}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:300;src:url(../fonts/sourcesanspro-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-light-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-light-webfont.woff) format("woff"),url(../fonts/sourcesanspro-light-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:url(../fonts/sourcesanspro-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-regular-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-regular-webfont.woff) format("woff"),url(../fonts/sourcesanspro-regular-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:400;src:url(../fonts/sourcesanspro-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-italic-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-italic-webfont.woff) format("woff"),url(../fonts/sourcesanspro-italic-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:url(../fonts/sourcesanspro-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-bold-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-bold-webfont.woff) format("woff"),url(../fonts/sourcesanspro-bold-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:300;src:url(../fonts/merriweather-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-light-webfont.woff2) format("woff2"),url(../fonts/merriweather-light-webfont.woff) format("woff"),url(../fonts/merriweather-light-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;src:url(../fonts/merriweather-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-regular-webfont.woff2) format("woff2"),url(../fonts/merriweather-regular-webfont.woff) format("woff"),url(../fonts/merriweather-regular-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:italic;font-weight:400;src:url(../fonts/merriweather-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-italic-webfont.woff2) format("woff2"),url(../fonts/merriweather-italic-webfont.woff) format("woff"),url(../fonts/merriweather-italic-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;src:url(../fonts/merriweather-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-bold-webfont.woff2) format("woff2"),url(../fonts/merriweather-bold-webfont.woff) format("woff"),url(../fonts/merriweather-bold-webfont.ttf) format("truetype")}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background-color:#fff;overflow-x:hidden}.lt-ie9 *{-webkit-filter:none!important;filter:none!important}[hidden]{display:none!important}.usa-grid,.usa-grid-full{max-width:1200px;margin-left:auto;margin-right:auto;max-width:1040px}.usa-grid-full:after,.usa-grid:after{clear:both;content:"";display:block}.usa-grid{padding-right:1.5rem;padding-left:1.5rem}@media screen and (min-width:600px){.usa-grid{padding-right:3rem;padding-left:3rem}}.usa-grid-full{padding:0}@media screen and (min-width:600px){.usa-width-one-whole{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-seven-twelfths:last-child{margin-right:0}}@media screen and (min-width:1201px){.usa-width-one-whole{float:left;display:block;margin-right:2.35765%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:2.35765%;width:48.82117%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:2.35765%;width:31.76157%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:2.35765%;width:65.88078%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:nth-child(2n):last-child{margin-right:0}.usa-width-one-fourth:nth-child(4n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:2.35765%;width:74.41059%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:nth-child(3n):last-child{margin-right:0}.usa-width-one-sixth:nth-child(6n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:2.35765%;width:82.94039%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:nth-child(3n):last-child{margin-right:0}.usa-width-one-twelfth:nth-child(12n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:2.35765%;width:40.29137%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:2.35765%;width:57.35098%}.usa-width-seven-twelfths:last-child{margin-right:0}}.usa-end-row{margin-right:0}.usa-offset-one-twelfth{margin-left:8.5298%}.usa-offset-one-sixth{margin-left:17.05961%}.usa-offset-one-fourth{margin-left:25.58941%}.usa-offset-one-third{margin-left:34.11922%}.usa-offset-five-twelfths{margin-left:42.64902%}.usa-offset-one-half{margin-left:51.17883%}.usa-offset-seven-twelfths{margin-left:59.70863%}.usa-offset-two-thirds{margin-left:68.23843%}.usa-offset-three-fourths{margin-left:76.76824%}.usa-offset-five-sixths{margin-left:85.29804%}.usa-offset-eleven-twelfths{margin-left:93.82785%}.usa-sr-only{position:absolute;left:-999em}.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited,[type=button],[type=image],[type=reset],[type=submit],button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0071bc;border:0;border-radius:3px;color:#fff;cursor:pointer;display:inline-block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.7rem;font-weight:700;line-height:1;outline:none;padding:1rem 2rem;text-align:center;text-decoration:none;width:100%}@media screen and (min-width:481px){.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited,[type=button],[type=image],[type=reset],[type=submit],button{width:auto}}.usa-button-primary.usa-button-hover,.usa-button-primary:hover,.usa-button-primary:visited.usa-button-hover,.usa-button-primary:visited:hover,.usa-button.usa-button-hover,.usa-button:hover,.usa-button:visited.usa-button-hover,.usa-button:visited:hover,[type=button].usa-button-hover,[type=button]:hover,[type=image].usa-button-hover,[type=image]:hover,[type=reset].usa-button-hover,[type=reset]:hover,[type=submit].usa-button-hover,[type=submit]:hover,button.usa-button-hover,button:hover{background-color:#205493;border-bottom:0;color:#fff;text-decoration:none}.usa-button-primary.usa-button-focus,.usa-button-primary:focus,.usa-button-primary:visited.usa-button-focus,.usa-button-primary:visited:focus,.usa-button.usa-button-focus,.usa-button:focus,.usa-button:visited.usa-button-focus,.usa-button:visited:focus,[type=button].usa-button-focus,[type=button]:focus,[type=image].usa-button-focus,[type=image]:focus,[type=reset].usa-button-focus,[type=reset]:focus,[type=submit].usa-button-focus,[type=submit]:focus,button.usa-button-focus,button:focus{box-shadow:0 0 3px #3e94cf,0 0 7px #3e94cf}.usa-button-primary.usa-button-active,.usa-button-primary:active,.usa-button-primary:visited.usa-button-active,.usa-button-primary:visited:active,.usa-button.usa-button-active,.usa-button:active,.usa-button:visited.usa-button-active,.usa-button:visited:active,[type=button].usa-button-active,[type=button]:active,[type=image].usa-button-active,[type=image]:active,[type=reset].usa-button-active,[type=reset]:active,[type=submit].usa-button-active,[type=submit]:active,button.usa-button-active,button:active{background-color:#112e51}.usa-button-primary.usa-button-primary-alt,.usa-button-primary:visited.usa-button-primary-alt,.usa-button.usa-button-primary-alt,.usa-button:visited.usa-button-primary-alt,[type=button].usa-button-primary-alt,[type=image].usa-button-primary-alt,[type=reset].usa-button-primary-alt,[type=submit].usa-button-primary-alt,button.usa-button-primary-alt{background-color:#02bfe7;color:#212121}.usa-button-primary.usa-button-primary-alt.usa-button-hover,.usa-button-primary.usa-button-primary-alt:hover,.usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,.usa-button-primary:visited.usa-button-primary-alt:hover,.usa-button.usa-button-primary-alt.usa-button-hover,.usa-button.usa-button-primary-alt:hover,.usa-button:visited.usa-button-primary-alt.usa-button-hover,.usa-button:visited.usa-button-primary-alt:hover,[type=button].usa-button-primary-alt.usa-button-hover,[type=button].usa-button-primary-alt:hover,[type=image].usa-button-primary-alt.usa-button-hover,[type=image].usa-button-primary-alt:hover,[type=reset].usa-button-primary-alt.usa-button-hover,[type=reset].usa-button-primary-alt:hover,[type=submit].usa-button-primary-alt.usa-button-hover,[type=submit].usa-button-primary-alt:hover,button.usa-button-primary-alt.usa-button-hover,button.usa-button-primary-alt:hover{background-color:#00a6d2}.usa-button-primary.usa-button-primary-alt.usa-button-active,.usa-button-primary.usa-button-primary-alt:active,.usa-button-primary:visited.usa-button-primary-alt.usa-button-active,.usa-button-primary:visited.usa-button-primary-alt:active,.usa-button.usa-button-primary-alt.usa-button-active,.usa-button.usa-button-primary-alt:active,.usa-button:visited.usa-button-primary-alt.usa-button-active,.usa-button:visited.usa-button-primary-alt:active,[type=button].usa-button-primary-alt.usa-button-active,[type=button].usa-button-primary-alt:active,[type=image].usa-button-primary-alt.usa-button-active,[type=image].usa-button-primary-alt:active,[type=reset].usa-button-primary-alt.usa-button-active,[type=reset].usa-button-primary-alt:active,[type=submit].usa-button-primary-alt.usa-button-active,[type=submit].usa-button-primary-alt:active,button.usa-button-primary-alt.usa-button-active,button.usa-button-primary-alt:active{background-color:#046b99;color:#fff}.usa-button-primary.usa-button-secondary,.usa-button-primary:visited.usa-button-secondary,.usa-button.usa-button-secondary,.usa-button:visited.usa-button-secondary,[type=button].usa-button-secondary,[type=image].usa-button-secondary,[type=reset].usa-button-secondary,[type=submit].usa-button-secondary,button.usa-button-secondary{background-color:#e31c3d}.usa-button-primary.usa-button-secondary.usa-button-hover,.usa-button-primary.usa-button-secondary:hover,.usa-button-primary:visited.usa-button-secondary.usa-button-hover,.usa-button-primary:visited.usa-button-secondary:hover,.usa-button.usa-button-secondary.usa-button-hover,.usa-button.usa-button-secondary:hover,.usa-button:visited.usa-button-secondary.usa-button-hover,.usa-button:visited.usa-button-secondary:hover,[type=button].usa-button-secondary.usa-button-hover,[type=button].usa-button-secondary:hover,[type=image].usa-button-secondary.usa-button-hover,[type=image].usa-button-secondary:hover,[type=reset].usa-button-secondary.usa-button-hover,[type=reset].usa-button-secondary:hover,[type=submit].usa-button-secondary.usa-button-hover,[type=submit].usa-button-secondary:hover,button.usa-button-secondary.usa-button-hover,button.usa-button-secondary:hover{background-color:#cd2026}.usa-button-primary.usa-button-secondary.usa-button-active,.usa-button-primary.usa-button-secondary:active,.usa-button-primary:visited.usa-button-secondary.usa-button-active,.usa-button-primary:visited.usa-button-secondary:active,.usa-button.usa-button-secondary.usa-button-active,.usa-button.usa-button-secondary:active,.usa-button:visited.usa-button-secondary.usa-button-active,.usa-button:visited.usa-button-secondary:active,[type=button].usa-button-secondary.usa-button-active,[type=button].usa-button-secondary:active,[type=image].usa-button-secondary.usa-button-active,[type=image].usa-button-secondary:active,[type=reset].usa-button-secondary.usa-button-active,[type=reset].usa-button-secondary:active,[type=submit].usa-button-secondary.usa-button-active,[type=submit].usa-button-secondary:active,button.usa-button-secondary.usa-button-active,button.usa-button-secondary:active{background-color:#981b1e}.usa-button-primary.usa-button-gray,.usa-button-primary:visited.usa-button-gray,.usa-button.usa-button-gray,.usa-button:visited.usa-button-gray,[type=button].usa-button-gray,[type=image].usa-button-gray,[type=reset].usa-button-gray,[type=submit].usa-button-gray,button.usa-button-gray{background-color:#5b616b}.usa-button-primary.usa-button-gray.usa-button-hover,.usa-button-primary.usa-button-gray:hover,.usa-button-primary:visited.usa-button-gray.usa-button-hover,.usa-button-primary:visited.usa-button-gray:hover,.usa-button.usa-button-gray.usa-button-hover,.usa-button.usa-button-gray:hover,.usa-button:visited.usa-button-gray.usa-button-hover,.usa-button:visited.usa-button-gray:hover,[type=button].usa-button-gray.usa-button-hover,[type=button].usa-button-gray:hover,[type=image].usa-button-gray.usa-button-hover,[type=image].usa-button-gray:hover,[type=reset].usa-button-gray.usa-button-hover,[type=reset].usa-button-gray:hover,[type=submit].usa-button-gray.usa-button-hover,[type=submit].usa-button-gray:hover,button.usa-button-gray.usa-button-hover,button.usa-button-gray:hover{background-color:#323a45}.usa-button-primary.usa-button-gray.usa-button-active,.usa-button-primary.usa-button-gray:active,.usa-button-primary:visited.usa-button-gray.usa-button-active,.usa-button-primary:visited.usa-button-gray:active,.usa-button.usa-button-gray.usa-button-active,.usa-button.usa-button-gray:active,.usa-button:visited.usa-button-gray.usa-button-active,.usa-button:visited.usa-button-gray:active,[type=button].usa-button-gray.usa-button-active,[type=button].usa-button-gray:active,[type=image].usa-button-gray.usa-button-active,[type=image].usa-button-gray:active,[type=reset].usa-button-gray.usa-button-active,[type=reset].usa-button-gray:active,[type=submit].usa-button-gray.usa-button-active,[type=submit].usa-button-gray:active,button.usa-button-gray.usa-button-active,button.usa-button-gray:active{background-color:#212121}.usa-button-primary.usa-button-outline,.usa-button-primary:visited.usa-button-outline,.usa-button.usa-button-outline,.usa-button:visited.usa-button-outline,[type=button].usa-button-outline,[type=image].usa-button-outline,[type=reset].usa-button-outline,[type=submit].usa-button-outline,button.usa-button-outline{background-color:#fff;box-shadow:inset 0 0 0 2px #0071bc;color:#0071bc}.usa-button-primary.usa-button-outline.usa-button-hover,.usa-button-primary.usa-button-outline:hover,.usa-button-primary:visited.usa-button-outline.usa-button-hover,.usa-button-primary:visited.usa-button-outline:hover,.usa-button.usa-button-outline.usa-button-hover,.usa-button.usa-button-outline:hover,.usa-button:visited.usa-button-outline.usa-button-hover,.usa-button:visited.usa-button-outline:hover,[type=button].usa-button-outline.usa-button-hover,[type=button].usa-button-outline:hover,[type=image].usa-button-outline.usa-button-hover,[type=image].usa-button-outline:hover,[type=reset].usa-button-outline.usa-button-hover,[type=reset].usa-button-outline:hover,[type=submit].usa-button-outline.usa-button-hover,[type=submit].usa-button-outline:hover,button.usa-button-outline.usa-button-hover,button.usa-button-outline:hover{box-shadow:inset 0 0 0 2px #205493;color:#205493}.usa-button-primary.usa-button-outline.usa-button-active,.usa-button-primary.usa-button-outline:active,.usa-button-primary:visited.usa-button-outline.usa-button-active,.usa-button-primary:visited.usa-button-outline:active,.usa-button.usa-button-outline.usa-button-active,.usa-button.usa-button-outline:active,.usa-button:visited.usa-button-outline.usa-button-active,.usa-button:visited.usa-button-outline:active,[type=button].usa-button-outline.usa-button-active,[type=button].usa-button-outline:active,[type=image].usa-button-outline.usa-button-active,[type=image].usa-button-outline:active,[type=reset].usa-button-outline.usa-button-active,[type=reset].usa-button-outline:active,[type=submit].usa-button-outline.usa-button-active,[type=submit].usa-button-outline:active,button.usa-button-outline.usa-button-active,button.usa-button-outline:active{box-shadow:inset 0 0 0 2px #112e51;color:#112e51}.usa-button-primary.usa-button-outline.usa-button-focus,.usa-button-primary.usa-button-outline:focus,.usa-button-primary:visited.usa-button-outline.usa-button-focus,.usa-button-primary:visited.usa-button-outline:focus,.usa-button.usa-button-outline.usa-button-focus,.usa-button.usa-button-outline:focus,.usa-button:visited.usa-button-outline.usa-button-focus,.usa-button:visited.usa-button-outline:focus,[type=button].usa-button-outline.usa-button-focus,[type=button].usa-button-outline:focus,[type=image].usa-button-outline.usa-button-focus,[type=image].usa-button-outline:focus,[type=reset].usa-button-outline.usa-button-focus,[type=reset].usa-button-outline:focus,[type=submit].usa-button-outline.usa-button-focus,[type=submit].usa-button-outline:focus,button.usa-button-outline.usa-button-focus,button.usa-button-outline:focus{box-shadow:inset 0 0 0 2px #112e51,0 0 3px #3e94cf,0 0 7px #3e94cf}.usa-button-primary.usa-button-outline-inverse,.usa-button-primary:visited.usa-button-outline-inverse,.usa-button.usa-button-outline-inverse,.usa-button:visited.usa-button-outline-inverse,[type=button].usa-button-outline-inverse,[type=image].usa-button-outline-inverse,[type=reset].usa-button-outline-inverse,[type=submit].usa-button-outline-inverse,button.usa-button-outline-inverse{background:transparent;box-shadow:inset 0 0 0 2px #fff;color:#fff}.usa-button-primary.usa-button-outline-inverse.usa-button-hover,.usa-button-primary.usa-button-outline-inverse:hover,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,.usa-button-primary:visited.usa-button-outline-inverse:hover,.usa-button.usa-button-outline-inverse.usa-button-hover,.usa-button.usa-button-outline-inverse:hover,.usa-button:visited.usa-button-outline-inverse.usa-button-hover,.usa-button:visited.usa-button-outline-inverse:hover,[type=button].usa-button-outline-inverse.usa-button-hover,[type=button].usa-button-outline-inverse:hover,[type=image].usa-button-outline-inverse.usa-button-hover,[type=image].usa-button-outline-inverse:hover,[type=reset].usa-button-outline-inverse.usa-button-hover,[type=reset].usa-button-outline-inverse:hover,[type=submit].usa-button-outline-inverse.usa-button-hover,[type=submit].usa-button-outline-inverse:hover,button.usa-button-outline-inverse.usa-button-hover,button.usa-button-outline-inverse:hover{box-shadow:inset 0 0 0 2px #d6d7d9;color:#d6d7d9}.usa-button-primary.usa-button-outline-inverse.usa-button-active,.usa-button-primary.usa-button-outline-inverse:active,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,.usa-button-primary:visited.usa-button-outline-inverse:active,.usa-button.usa-button-outline-inverse.usa-button-active,.usa-button.usa-button-outline-inverse:active,.usa-button:visited.usa-button-outline-inverse.usa-button-active,.usa-button:visited.usa-button-outline-inverse:active,[type=button].usa-button-outline-inverse.usa-button-active,[type=button].usa-button-outline-inverse:active,[type=image].usa-button-outline-inverse.usa-button-active,[type=image].usa-button-outline-inverse:active,[type=reset].usa-button-outline-inverse.usa-button-active,[type=reset].usa-button-outline-inverse:active,[type=submit].usa-button-outline-inverse.usa-button-active,[type=submit].usa-button-outline-inverse:active,button.usa-button-outline-inverse.usa-button-active,button.usa-button-outline-inverse:active{box-shadow:inset 0 0 0 2px #aeb0b5;color:#d6d7d9}.usa-button-primary.usa-button-outline-inverse.usa-button-focus,.usa-button-primary.usa-button-outline-inverse:focus,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-focus,.usa-button-primary:visited.usa-button-outline-inverse:focus,.usa-button.usa-button-outline-inverse.usa-button-focus,.usa-button.usa-button-outline-inverse:focus,.usa-button:visited.usa-button-outline-inverse.usa-button-focus,.usa-button:visited.usa-button-outline-inverse:focus,[type=button].usa-button-outline-inverse.usa-button-focus,[type=button].usa-button-outline-inverse:focus,[type=image].usa-button-outline-inverse.usa-button-focus,[type=image].usa-button-outline-inverse:focus,[type=reset].usa-button-outline-inverse.usa-button-focus,[type=reset].usa-button-outline-inverse:focus,[type=submit].usa-button-outline-inverse.usa-button-focus,[type=submit].usa-button-outline-inverse:focus,button.usa-button-outline-inverse.usa-button-focus,button.usa-button-outline-inverse:focus{box-shadow:inset 0 0 0 2px #aeb0b5,0 0 3px #3e94cf,0 0 7px #3e94cf}.usa-button-primary.usa-button-big,.usa-button-primary:visited.usa-button-big,.usa-button.usa-button-big,.usa-button:visited.usa-button-big,[type=button].usa-button-big,[type=image].usa-button-big,[type=reset].usa-button-big,[type=submit].usa-button-big,button.usa-button-big{font-size:1.9rem;padding:1.5rem 3rem}.usa-button-disabled,.usa-button:disabled{background-color:#d6d7d9;color:#323a45;pointer-events:none}.usa-button-disabled.usa-button-active,.usa-button-disabled.usa-button-hover,.usa-button-disabled:active,.usa-button-disabled:focus,.usa-button-disabled:hover,.usa-button:disabled.usa-button-active,.usa-button:disabled.usa-button-hover,.usa-button:disabled:active,.usa-button:disabled:focus,.usa-button:disabled:hover{background-color:#d6d7d9;border:0;box-shadow:none;color:#323a45}.usa-button-unstyled{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto}.usa-button-unstyled:hover{background-color:transparent}.usa-embed-container embed,.usa-embed-container iframe,.usa-embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}.usa-embed-container{padding-bottom:56.25%;position:relative;height:0;overflow:hidden;max-width:100%}img{max-width:100%}.media_link{display:inline-block;line-height:0}input,select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:.1rem solid #5b616b;border-radius:0;box-sizing:border-box;color:#212121;display:block;font-size:1.7rem;height:4.4rem;line-height:1.3;margin:.2em 0;max-width:46rem;outline:none;padding:1rem .7em;width:100%}input.usa-input-focus,input:focus,select.usa-input-focus,select:focus,textarea.usa-input-focus,textarea:focus{box-shadow:0 0 3px #3e94cf,0 0 7px #3e94cf}input.usa-input-success,select.usa-input-success,textarea.usa-input-success{border:3px solid #4aa564}.usa-input-error{border-left:4px solid #cd2026;margin-top:3rem;padding-bottom:.8rem;padding-left:1.5rem;padding-top:.8rem;position:relative;right:1.9rem}.usa-input-error input,.usa-input-error select,.usa-input-error textarea{border:3px solid #cd2026;width:calc(100% + 1.9rem)}.usa-input-error label{margin-top:0}.usa-input-error .usa-input-inline{border:.1rem solid #5b616b;width:inherit}.usa-input-error .usa-input-inline-error{border:3px solid #cd2026}.usa-input-error-label{display:block;font-size:1.7rem;font-weight:700}.usa-input-error-message{color:#cd2026;display:block;font-size:1.7rem;font-weight:700;padding-bottom:3px;padding-top:3px}.usa-input-required:after{color:#981b1e;content:" (*Required)"}label{display:block;margin-top:3rem;max-width:46rem}textarea{height:16rem}select{-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url(../img/arrow-down.png);background-image:url(../img/arrow-down.svg);background-position:right 1.3rem center;background-repeat:no-repeat;background-size:1.3rem}legend{font-size:3rem;font-weight:700}.usa-fieldset-inputs label{margin-top:0}.usa-form-hint{color:#757575;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;margin-bottom:0}[type=checkbox],[type=radio]{position:absolute;left:-999em}.lt-ie9 [type=checkbox],.lt-ie9 [type=radio]{border:0;float:left;margin:.4em .4em 0 0;position:static;width:auto}[type=checkbox]+label,[type=radio]+label{cursor:pointer;font-weight:400;margin-bottom:.5em}[type=checkbox]+label:before,[type=radio]+label:before{background:#fff;border-radius:3px;box-shadow:0 0 0 1px #757575;content:"\a0";display:inline-block;height:1.8rem;line-height:1.8rem;margin-right:.6em;text-indent:.15em;vertical-align:middle\0;width:1.8rem}[type=radio]+label:before{box-shadow:0 0 0 2px #fff,0 0 0 3px #757575;height:1.6rem;line-height:1.6rem;width:1.6rem;border-radius:100%}[type=checkbox]:checked+label:before,[type=radio]:checked+label:before{background-color:#0071bc;box-shadow:0 0 0 1px #0071bc}[type=radio]:checked+label:before{box-shadow:0 0 0 2px #fff,0 0 0 4px #0071bc}[type=radio]:focus+label:before{box-shadow:0 0 0 2px #fff,0 0 0 4px #0071bc,0 0 3px 4px #3e94cf,0 0 7px 4px #3e94cf}[type=checkbox]:checked+label:before,[type=checkbox]:checked:disabled+label:before{background-image:url(../img/correct8.png);background-image:url(../img/correct8.svg);background-position:50%;background-repeat:no-repeat}[type=checkbox]:focus+label:before{box-shadow:0 0 0 1px #fff,0 0 0 3px #0071bc}[type=checkbox]:disabled+label{color:#5b616b}[type=checkbox]:disabled+label:before,[type=radio]:disabled+label:before{background:#d6d7d9;box-shadow:0 0 0 1px #aeb0b5;cursor:not-allowed}[type=range]{-webkit-appearance:none;border:none;padding-left:0;width:100%}[type=range]:focus{box-shadow:none;outline:none}[type=range]::-webkit-slider-runnable-track{background:#aeb0b5;border:1px solid #757575;cursor:pointer;height:1.2rem;width:100%}[type=range]::-moz-range-track{background:#0071bc;border:1px solid #757575;cursor:pointer;height:1.2rem;width:100%}[type=range]::-ms-track{background:transparent;color:transparent;cursor:pointer;height:1.2rem;width:100%}[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #757575;height:2.2rem;border-radius:1.5rem;background:#f1f1f1;cursor:pointer;margin-top:-.65rem;width:2.2rem}[type=range]::-moz-range-thumb{background:#f1f1f1;border:1px solid #757575;border-radius:1.5rem;cursor:pointer;height:2.2rem;width:2.2rem}[type=range]::-ms-thumb{background:#f1f1f1;border:1px solid #757575;border-radius:1.5rem;cursor:pointer;height:2.2rem;width:2.2rem}[type=range]::-ms-fill-lower{background:#aeb0b5;border:1px solid #757575;border-radius:2rem}[type=range]::-ms-fill-upper{background:#aeb0b5;border:1px solid #757575;border-radius:2rem}[type=range]:focus::-webkit-slider-thumb{border:2px solid #3e94cf}[type=range]:focus::-moz-range-thumb{border:2px solid #3e94cf}[type=range]:focus::-ms-thumb{border:2px solid #3e94cf}.usa-date-of-birth label{margin-top:0}.usa-date-of-birth [type=number]::-webkit-inner-spin-button,.usa-date-of-birth [type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.usa-date-of-birth [type=number]{-moz-appearance:textfield}.usa-form-group-day,.usa-form-group-month,.usa-form-group-year{clear:none;float:left;margin-right:1.5rem;width:5rem}.usa-form-group-year{width:7rem}.usa-label,.usa-label-big{background-color:#0071bc;border-radius:3px;color:#fff;font-size:1.5rem;margin-right:.5rem;padding:.1rem .7rem;text-transform:uppercase}.usa-label-big:only-of-type,.usa-label:only-of-type{margin-right:0}.usa-label-big{font-size:1.7rem;padding-left:.9rem;padding-right:.9rem}ol,ul{margin-top:1em;margin-bottom:1em;padding-left:1.94em}li{line-height:1.5;margin-bottom:.5em}li:last-child{margin-bottom:0}h1+ol,h1+ul,h2+ol,h2+ul,h3+ol,h3+ul,h4+ol,h4+ul,h5+ol,h5+ul,h6+ol,h6+ul,p+ol,p+ul{margin-top:0}.usa-unstyled-list{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0}.usa-unstyled-list>li{margin-bottom:0}table{border-spacing:0;margin:2em 0;min-width:100%}table thead td,table thead th{background-color:#f1f1f1}table th{text-align:left}table tbody th{font-weight:400}table td,table th{background-color:#fff;border:1px solid #5b616b;padding:1.5rem}.usa-table-borderless thead tr{background-color:transparent}.usa-table-borderless thead th{border-top:0}.usa-table-borderless td,.usa-table-borderless th{border-left:0;border-right:0}html{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:10px}body{font-size:1.7rem}p{line-height:1.5;margin-bottom:1em;margin-top:1em}a{color:#0071bc;text-decoration:underline}a:active,a:hover{color:#205493}a:visited{color:#4c2c92}a:focus{box-shadow:0 0 3px #3e94cf,0 0 7px #3e94cf;outline:0}.usa-external_link:after{background:url(../img/external-link.png) no-repeat 0 0;background:url(../img/external-link.svg) no-repeat 0 0;background-size:100%;content:"";display:inline-block;height:.65em;margin-bottom:-1px;margin-left:4px;width:.65em}.usa-external_link:hover:after{background-image:url(../img/external-link-hover.png);background-image:url(../img/external-link-hover.svg)}.usa-external_link-alt:after{background:url(../img/external-link-alt.png) no-repeat 0 0;background:url(../img/external-link-alt.svg) no-repeat 0 0;background-size:100%;content:"";display:inline-block;height:.65em;margin-bottom:-1px;margin-left:4px;width:.65em}.usa-external_link-alt:hover:after{background-image:url(../img/external-link-alt-hover.png);background-image:url(../img/external-link-alt-hover.svg)}h1,h2,h3,h4,h5,h6{clear:both;font-family:Merriweather,Georgia,Cambria,Times New Roman,Times,serif;line-height:1.3;margin-bottom:.5em;margin-top:1.5em}h1{font-size:4rem;font-weight:700}h2{font-size:3rem;font-weight:700}h3{font-size:2rem;font-weight:700}h4{font-size:1.7rem;font-weight:700}h5{font-size:1.5rem;font-weight:700}h6{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.3rem;font-weight:400;text-transform:uppercase}address,cite,dfn,var{font-style:normal}.usa-content ol:not(.usa-accordion):not(.usa-accordion-bordered),.usa-content p:not(.usa-font-lead),.usa-content ul:not(.usa-accordion):not(.usa-accordion-bordered){max-width:53rem}.usa-content-list{max-width:53rem}.usa-sans a,.usa-sans li,.usa-sans p,.usa-sans span{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.usa-sans a{border-bottom:none;font-weight:700}.usa-serif a,.usa-serif li,.usa-serif p,.usa-serif span{font-family:Merriweather,Georgia,Cambria,Times New Roman,Times,serif}.usa-display{font-size:2rem;font-weight:700;margin-bottom:0}@media screen and (min-width:481px){.usa-display{font-size:4rem;font-weight:700}}@media screen and (min-width:600px){.usa-display{font-size:5.2rem;font-weight:700}}.usa-font-lead{font-family:Merriweather,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;line-height:1.7;max-width:77rem}.usa-image-block{position:relative}.usa-image-text-block{color:#fff;left:0;margin-left:8%;position:absolute;top:0}.usa-image-text{margin-top:0}.usa-drop_text{margin-bottom:0}.usa-background-dark{background-color:#323a45}.usa-background-dark p,.usa-background-dark span{color:#fff}.usa-background-dark a{color:#d6d7d9}.usa-background-dark a:hover{color:#fff}.usa-text-small{font-size:1.3rem;margin-top:0}.usa-grid-full>:first-child,.usa-grid>:first-child,.usa-section>:first-child{margin-top:0}.usa-grid-full>:last-child,.usa-grid>:last-child,.usa-section>:last-child{margin-bottom:0}.usa-width-five-sixths:first-child>:first-child,.usa-width-one-fourth:first-child>:first-child,.usa-width-one-half:first-child>:first-child,.usa-width-one-sixth:first-child>:first-child,.usa-width-one-third:first-child>:first-child,.usa-width-one-twelfth:first-child>:first-child,.usa-width-one-whole:first-child>:first-child,.usa-width-three-fourths:first-child>:first-child,.usa-width-two-thirds:first-child>:first-child{margin-top:0}@media screen and (min-width:600px){.usa-width-five-sixths>:first-child,.usa-width-one-fourth>:first-child,.usa-width-one-half>:first-child,.usa-width-one-sixth>:first-child,.usa-width-one-third>:first-child,.usa-width-one-twelfth>:first-child,.usa-width-one-whole>:first-child,.usa-width-three-fourths>:first-child,.usa-width-two-thirds>:first-child{margin-top:0}}.usa-width-five-sixths:last-child>:last-child,.usa-width-one-fourth:last-child>:last-child,.usa-width-one-half:last-child>:last-child,.usa-width-one-sixth:last-child>:last-child,.usa-width-one-third:last-child>:last-child,.usa-width-one-twelfth:last-child>:last-child,.usa-width-one-whole:last-child>:last-child,.usa-width-three-fourths:last-child>:last-child,.usa-width-two-thirds:last-child>:last-child{margin-bottom:0}@media screen and (min-width:600px){.usa-width-five-sixths>:last-child,.usa-width-one-fourth>:last-child,.usa-width-one-half>:last-child,.usa-width-one-sixth>:last-child,.usa-width-one-third>:last-child,.usa-width-one-twelfth>:last-child,.usa-width-one-whole>:last-child,.usa-width-three-fourths>:last-child,.usa-width-two-thirds>:last-child{margin-bottom:0}}.usa-accordion,.usa-accordion-bordered{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>li,.usa-accordion>li{margin-bottom:0}.usa-accordion-bordered>ul li ul,.usa-accordion>ul li ul{list-style:disc}.usa-accordion-bordered>ul li ul>li>ul,.usa-accordion>ul li ul>li>ul{list-style:circle}.usa-accordion-bordered>ul li ul>li>ul>li>ul,.usa-accordion>ul li ul>li>ul>li>ul{list-style:square}.usa-accordion+.usa-accordion,.usa-accordion+.usa-accordion-bordered,.usa-accordion-bordered+.usa-accordion,.usa-accordion-bordered+.usa-accordion-bordered{margin-top:1rem}.usa-accordion-bordered>ul,.usa-accordion>ul{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{margin-bottom:0}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{background-color:#f1f1f1;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;list-style:none;margin-bottom:6px;width:100%}.usa-accordion-bordered>ul button,.usa-accordion>ul button{background-color:transparent;border:0;border-radius:0;font-weight:400;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 3rem center;background-repeat:no-repeat;background-size:13px;color:#212121;cursor:pointer;display:inline-block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 3rem;width:100%}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:transparent}.usa-accordion-bordered>ul button:focus,.usa-accordion>ul button:focus{box-shadow:0 0 3px #3e94cf,0 0 7px #3e94cf}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-bordered>ul button h1,.usa-accordion-bordered>ul button h2,.usa-accordion-bordered>ul button h3,.usa-accordion-bordered>ul button h4,.usa-accordion-bordered>ul button h5,.usa-accordion-bordered>ul button h6,.usa-accordion>ul button h1,.usa-accordion>ul button h2,.usa-accordion>ul button h3,.usa-accordion>ul button h4,.usa-accordion>ul button h5,.usa-accordion>ul button h6{margin:0}.usa-accordion-bordered>ul [aria-expanded=false],.usa-accordion>ul [aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.3rem}.usa-accordion-bordered>li,.usa-accordion>li{background-color:#f1f1f1;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;list-style:none;margin-bottom:6px;width:100%}.usa-accordion-bordered .usa-accordion-content{border-bottom:3px solid #f1f1f1;border-left:3px solid #f1f1f1;border-right:3px solid #f1f1f1}.usa-accordion-content{background-color:#fff;overflow:auto;padding:3rem}.usa-accordion-content>:first-child{margin-top:0}.usa-accordion-content>:last-child{margin-bottom:0}.usa-accordion-content:not([aria-hidden]){position:absolute;left:-999em}.usa-accordion-content[aria-hidden=true]{display:none}.usa-accordion-button{background-color:transparent;border:0;border-radius:0;font-weight:400;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 3rem center;background-repeat:no-repeat;background-size:13px;color:#212121;cursor:pointer;display:inline-block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 3rem;width:100%}.usa-accordion-button:hover{background-color:transparent}.usa-accordion-button:focus{box-shadow:0 0 3px #3e94cf,0 0 7px #3e94cf}.usa-accordion-button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-button h1,.usa-accordion-button h2,.usa-accordion-button h3,.usa-accordion-button h4,.usa-accordion-button h5,.usa-accordion-button h6{margin:0}.usa-accordion-button[aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.3rem}.usa-alert{background-color:#f1f1f1;background-position:1rem 2rem;background-repeat:no-repeat;background-size:4rem;margin-top:1.5em;padding:1em}@media screen and (min-width:600px){.usa-alert{background-size:5.2rem}}.usa-alert a{color:#205493}.usa-alert a:focus,.usa-alert a:hover{color:#112e51}.usa-alert ul{margin-bottom:0;margin-top:1em;padding-left:1em}.usa-alert-icon{display:table-cell;padding-right:1rem}.usa-alert-body{display:table-cell;padding-left:3.5rem;vertical-align:top}@media screen and (min-width:600px){.usa-alert-body{padding-left:5rem}}.usa-alert-body p:first-child{margin-top:.8rem}.usa-alert-body p:last-child{margin-bottom:.8rem}.usa-alert-heading{margin-bottom:.3rem;margin-top:0}@media screen and (min-width:600px){.usa-alert-heading{margin-top:.3rem}}.usa-alert-text{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;margin-bottom:0;margin-top:0}.usa-alert-success{background-color:#e7f4e4;background-image:url(../img/alerts/success.png);background-image:url(../img/alerts/success.svg)}.usa-alert-warning{background-color:#fff1d2;background-image:url(../img/alerts/warning.png);background-image:url(../img/alerts/warning.svg)}.usa-alert-error{background-color:#f9dede;background-image:url(../img/alerts/error.png);background-image:url(../img/alerts/error.svg)}.usa-alert-info{background-color:#e1f3f8;background-image:url(../img/alerts/info.png);background-image:url(../img/alerts/info.svg)}.usa-alert-no_icon{background-image:none}.usa-alert-paragraph{width:53rem;padding:1em 3em 1em 1em}.usa-banner{background-color:#f1f1f1;padding-bottom:.7rem}@media screen and (min-width:481px){.usa-banner{font-size:1.3rem;padding-bottom:0}}.usa-banner-content{padding:2rem 1.5rem 3px;background-color:transparent;font-size:1.5rem;width:100%}@media screen and (min-width:600px){.usa-banner-content{padding-bottom:2.3rem;padding-top:4rem}}@media screen and (min-width:951px){.usa-banner-content{padding-right:3rem;padding-left:3rem}}.usa-banner-content p:first-child{margin-top:1rem}@media screen and (min-width:600px){.usa-banner-content p:first-child{margin-top:0}}.usa-banner-inner{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:1.5rem;padding-left:1.5rem;max-width:1040px}.usa-banner-inner:after{clear:both;content:"";display:block}@media screen and (min-width:951px){.usa-banner-inner{padding-right:3rem;padding-left:3rem}}.usa-banner-header{padding-top:.55rem;padding-bottom:.55rem;font-size:1.2rem;font-weight:400}@media screen and (min-width:481px){.usa-banner-header{padding-top:0;padding-bottom:0}}.usa-banner-header p{margin-top:0;margin-bottom:0;display:inline;overflow:hidden;vertical-align:middle}@media screen and (min-width:481px){.usa-banner-header p{margin-top:2px;margin-bottom:2px;display:inline-block}}.usa-banner-header img{float:left;margin-right:1rem;margin-top:1px;width:2.4rem}@media screen and (min-width:481px){.usa-banner-header img{margin-right:.7rem;width:2rem}}.usa-banner-header-expanded{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #aeb0b5;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:1.5rem;min-height:5.6rem;padding-right:3rem}@media screen and (min-width:481px){.usa-banner-header-expanded{border-bottom:none;display:block;font-size:1.2rem;font-weight:400;min-height:0;padding-right:0}}.usa-banner-header-expanded>.usa-banner-inner{margin-left:0}@media screen and (min-width:481px){.usa-banner-header-expanded>.usa-banner-inner{margin-left:auto}}.usa-banner-header-expanded img{margin-right:2.4rem}@media screen and (min-width:481px){.usa-banner-header-expanded img{margin-right:.7rem}}.usa-banner-header-expanded p{line-height:1.3;vertical-align:top}@media screen and (min-width:481px){.usa-banner-header-expanded p{line-height:1.5;vertical-align:middle}}.usa-banner-button{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto;padding-top:1.3rem;padding-left:4.8rem;background-position-x:right;color:#0071bc;display:block;font-size:1.2rem;height:4.3rem;left:0;position:absolute;text-decoration:underline;top:0;width:100%}.usa-banner-button:hover{background-color:transparent}@media screen and (min-width:481px){.usa-banner-button{padding-top:0;padding-left:0;display:inline;height:auto;margin-left:3px;position:relative;vertical-align:middle;width:auto}}.usa-banner-button:hover{color:#205493;text-decoration:underline}.usa-banner-button[aria-expanded=false]{background-image:none}.usa-banner-button[aria-expanded=false]:after{background-image:url(../img/angle-arrow-down-primary.png);background-image:url(../img/angle-arrow-down-primary.svg);background-size:100%;content:"";display:inline-block;height:1rem;width:1rem;margin-left:0}.usa-banner-button[aria-expanded=false]:hover:after{background-image:url(../img/angle-arrow-down-primary-hover.png);background-image:url(../img/angle-arrow-down-primary-hover.svg)}.usa-banner-button[aria-expanded=false]:after{background-position-y:1px}.usa-banner-button[aria-expanded=true]{background-image:none;height:5.6rem}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/close.png);background-image:url(../img/close.svg);background-size:100%;content:"";display:inline-block;height:1.3rem;width:1.3rem;margin-left:0}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]{height:auto;padding:0;position:relative}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/angle-arrow-up-primary.png);background-image:url(../img/angle-arrow-up-primary.svg);background-size:100%;content:"";display:inline-block;height:1rem;width:1rem;margin-left:0}.usa-banner-button[aria-expanded=true]:hover:after{background-image:url(../img/angle-arrow-up-primary-hover.png);background-image:url(../img/angle-arrow-up-primary-hover.svg)}.usa-banner-button[aria-expanded=true]:after{background-position-y:1px}}.usa-banner-button[aria-expanded=true]:after{position:absolute;right:1.5rem;top:2.15rem}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]:after{position:static}}.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:none}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:inline}}.usa-banner-icon{width:3.8rem}.usa-footer .usa-unstyled-list{display:block}.usa-footer .usa-footer-primary-link{color:#212121;display:block;font-weight:700;margin-top:0;padding-bottom:2rem;padding-top:2rem;text-decoration:none}@media screen and (min-width:600px){.usa-footer .usa-footer-primary-link{border-top:none}}.usa-footer .usa-footer-primary-link:hover{text-decoration:underline}.usa-footer a{font-weight:400}.usa-footer-return-to-top{padding-bottom:2rem;padding-top:2rem}.usa-footer-primary-section{background-color:#f1f1f1}.usa-footer-primary-section .usa-footer-primary-content{padding-left:2.5rem;padding-right:2.5rem}@media screen and (min-width:600px){.usa-footer-primary-section .usa-footer-primary-content{padding-left:0;padding-right:0}}.usa-footer-primary-section .usa-footer-primary-content li{margin-left:1rem}@media screen and (min-width:600px){.usa-footer-primary-section .usa-footer-primary-content li{margin-left:0}}@media screen and (min-width:600px){.usa-footer-primary-section .usa-grid-full{padding-left:2.5rem;padding-right:2.5rem}}.usa-footer-medium .usa-footer-primary-section{padding:0}@media screen and (min-width:600px){.usa-footer-medium .usa-footer-primary-section{padding-bottom:1rem;padding-top:1rem}}@media screen and (min-width:1201px){.usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content{margin-right:6%;width:inherit}}@media screen and (min-width:1201px){.usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content:last-child{margin-right:0}}@media screen and (min-width:600px){.usa-footer-medium .usa-footer-nav ul{-webkit-box-align:center;-ms-flex-align:center;align-items:center}}.usa-footer-slim .usa-footer-nav a{display:block}@media screen and (min-width:1201px){.usa-footer-slim .usa-footer-nav .usa-footer-primary-content{margin-right:9%;width:inherit}}@media screen and (min-width:1201px){.usa-footer-slim .usa-footer-nav .usa-footer-primary-content:last-child{margin-right:0}}.usa-footer-slim .usa-footer-primary-section{padding-bottom:2rem}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-primary-section{padding-bottom:1rem;padding-top:1rem}.usa-footer-slim .usa-footer-primary-section .usa-grid-full{-webkit-box-align:center;-ms-flex-align:center;align-items:center}}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-contact_info>*{margin:0}}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-contact_info{padding-top:2rem;padding-bottom:2rem}}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-contact_info{width:100%}}@media screen and (min-width:1201px){.usa-footer-slim .usa-footer-contact_info{float:left;display:block;margin-right:2.35765%;width:48.82117%}.usa-footer-slim .usa-footer-contact_info:last-child{margin-right:0}}li.usa-footer-primary-content,ul.usa-footer-primary-content{border-top:1px solid #212121}@media screen and (min-width:600px){li.usa-footer-primary-content,ul.usa-footer-primary-content{border:none}}li.usa-footer-primary-content:last-child,ul.usa-footer-primary-content:last-child{border-bottom:1px solid #212121}@media screen and (min-width:600px){li.usa-footer-primary-content:last-child,ul.usa-footer-primary-content:last-child{border-bottom:none}}.usa-sign_up-block{padding-bottom:2rem;padding-left:2.5rem;padding-right:2.5rem}@media screen and (min-width:600px){.usa-sign_up-block{float:right;padding:0}}.usa-sign_up-block label:first-of-type{margin-top:0}.usa-sign_up-block button{float:none;margin-right:0;margin-top:1.5rem}.usa-sign_up-block input{width:100%}.usa-footer-secondary_section{background-color:#d6d7d9;padding-bottom:3rem;padding-top:3rem}.usa-footer-secondary_section a{color:#212121}@media screen and (min-width:600px){.usa-footer-big-secondary-section{padding-top:5rem}}@media screen and (min-width:600px){.usa-footer-contact-links{text-align:right}}.usa-social-links a{text-decoration:none}@media screen and (min-width:600px){.usa-footer-big .usa-footer-primary-section{padding-bottom:4rem;padding-top:3rem}}.usa-footer-big ul{padding-bottom:2.5rem}@media screen and (min-width:600px){.usa-footer-big ul{padding-bottom:0}}.usa-footer-big ul:last-child{border-bottom:1px solid #212121}@media screen and (min-width:600px){.usa-footer-big ul:last-child{border-bottom:none}}.usa-footer-big ul li{line-height:2em}.usa-footer-big ul .usa-footer-primary-link{background-image:url(../img/arrow-down.png);background-image:url(../img/arrow-down.svg);background-position:1.5rem;background-repeat:no-repeat;background-size:1.3rem;margin-left:0;padding-left:3.5rem}@media screen and (min-width:600px){.usa-footer-big ul .usa-footer-primary-link{background:none;margin-bottom:.8rem;padding-bottom:0;padding-left:0}}.usa-footer-big ul .usa-footer-primary-link>*{margin-top:0;margin-bottom:0}.usa-footer-big ul.hidden{padding-bottom:0}.usa-footer-big ul.hidden li{display:none}.usa-footer-big ul.hidden .usa-footer-primary-link{background-image:url(../img/arrow-right.png);background-image:url(../img/arrow-right.svg);cursor:pointer;display:block}@media screen and (min-width:600px){.usa-footer-big ul.hidden .usa-footer-primary-link{background:none;padding-left:0}}.usa-footer-topic{margin:0;padding:2rem 0}@media screen and (min-width:600px){.usa-sign_up-header{margin:0;padding:2rem 0}}.usa-footer-logo-img{max-width:14rem}.usa-footer-slim-logo-img{float:left;max-width:10rem}.usa-footer-logo-heading{margin-top:2rem}.usa-footer-contact-heading{margin-top:0}@media screen and (min-width:600px){.usa-footer-contact-heading{margin-top:1rem}}.usa-footer-slim-logo-heading{display:block;padding-top:1rem}@media screen and (min-width:600px){.usa-footer-slim-logo-heading{display:inline-block;padding-left:1em}}.usa-link-facebook,.usa-link-rss,.usa-link-twitter,.usa-link-youtube,.usa-social_link{margin:2.5rem 1rem 1.5rem 0;background-position:50%;background-repeat:no-repeat;background-size:auto 3rem;display:inline-block;height:4.4rem;left:-1.6rem;position:relative;text-align:center;width:4.4rem}@media screen and (min-width:600px){.usa-link-facebook,.usa-link-rss,.usa-link-twitter,.usa-link-youtube,.usa-social_link{margin:0 0 0 1rem;left:1.2rem}}.usa-link-facebook span,.usa-link-rss span,.usa-link-twitter span,.usa-link-youtube span,.usa-social_link span{position:absolute;left:-999em}.usa-link-facebook{background-image:url(../img/social-icons/png/facebook25.png);background-image:url(../img/social-icons/svg/facebook25.svg)}.usa-link-twitter{background-image:url(../img/social-icons/png/twitter16.png);background-image:url(../img/social-icons/svg/twitter16.svg)}.usa-link-youtube{background-image:url(../img/social-icons/png/youtube15.png);background-image:url(../img/social-icons/svg/youtube15.svg)}.usa-link-rss{background-image:url(../img/social-icons/png/rss25.png);background-image:url(../img/social-icons/svg/rss25.svg)}form a{border-bottom:0}form [type=submit]{display:block;margin-bottom:1.5em;margin-top:2.5rem}@media screen and (min-width:600px){form [type=submit]{padding-left:2.7em;padding-right:2.7em;width:auto}}form [name=confirmPassword],form [name=password]{margin-bottom:1.1rem}@media screen and (min-width:600px){.usa-form{max-width:32rem}}.usa-form-note{float:right;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.5rem;margin:0 0 1.5rem}.usa-form-note+*{clear:both}fieldset{border:none;margin:0;padding:0}@media screen and (min-width:600px){.usa-form-large{max-width:46rem}}@media screen and (min-width:600px){input.usa-input-tiny{max-width:6rem}}@media screen and (min-width:600px){input.usa-input-medium{max-width:12rem}}@media screen and (min-width:600px){.usa-input-grid{padding-right:5%}}@media screen and (min-width:600px){.usa-input-grid:last-of-type{padding-right:0}}@media screen and (min-width:600px){.usa-input-grid-small{float:left;width:35%}}.usa-input-grid-small input{margin-bottom:3rem}.usa-input-grid-small select{margin-bottom:3rem}@media screen and (min-width:600px){.usa-input-grid-medium{float:left;width:65%}}.usa-input-grid-medium input{margin-bottom:3rem}.usa-input-grid-medium select{margin-bottom:3rem}@media screen and (min-width:600px){.usa-input-grid-large{float:left;width:100%}}.usa-input-grid-large input{margin-bottom:3rem}.usa-input-grid-large select{margin-bottom:3rem}.usa-additional_text{font-weight:400}.usa-checklist{list-style:none;margin-left:0;padding-left:0}.usa-checklist li{display:inline-block;list-style:none;margin-bottom:0;margin-top:0;padding-left:3em;text-indent:-2em}.usa-checklist li:before{content:" ";display:inline-block;height:.8em;margin-right:.2em;width:1.8em}.usa-checklist-checked:before{background-image:url(../img/correct9.png);background-image:url(../img/correct9.svg);background-position:100%;background-repeat:no-repeat;background-size:100%}.usa-graphic_list .usa-graphic_list-row .usa-media_block{margin-bottom:3rem}@media screen and (min-width:600px){.usa-graphic_list .usa-graphic_list-row .usa-media_block{margin-bottom:6rem}}@media screen and (min-width:600px){.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block{margin-bottom:0}}.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block:last-child{margin-bottom:0}.usa-graphic_list .usa-media_block-img{margin-right:3rem}.usa-graphic_list .usa-media_block-body>:first-child{margin-top:0}.usa-header{width:100%;z-index:7000}@media screen and (min-width:951px){.usa-header{border-bottom:1px solid #aeb0b5}}.usa-header a{border-bottom:none}.usa-header .usa-search{margin-bottom:1.5rem}@media screen and (min-width:951px){.usa-header .usa-search{float:right;margin-bottom:0;max-width:21.5rem}}.usa-logo{float:left;line-height:4rem;margin-left:1.5rem}@media screen and (min-width:951px){.usa-logo{line-height:7.5rem;margin-left:0}}.usa-logo a{color:#212121;text-decoration:none}.usa-logo br{display:none}@media screen and (min-width:951px){.usa-logo br{display:block}}.usa-logo-text{display:block;font-size:1.5rem;font-style:normal;font-weight:700;margin:0}@media screen and (min-width:951px){.usa-logo-text{display:block;font-size:2.4rem;line-height:1.3}}.usa-menu-btn{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#0071bc;color:#fff;display:inline;float:right;font-size:1.3rem;height:4rem;line-height:4rem;text-align:center;text-decoration:none;text-transform:uppercase;width:5.8rem}.usa-menu-btn:hover{background-color:transparent}@media screen and (min-width:951px){.usa-menu-btn{display:none}}.usa-menu-btn:hover{color:#fff;background-color:#205493}.usa-menu-btn:visited{color:#fff}.usa-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:0;transition:all .2s ease-in-out;visibility:hidden;z-index:8000}.usa-overlay.is-visible{opacity:.1;visibility:visible}@media screen and (min-width:951px){.usa-header-basic .usa-logo{bottom:1.9rem;position:absolute}}@media screen and (min-width:951px){.usa-header-basic .usa-navbar{position:relative;width:18%}}@media screen and (min-width:951px){.usa-header-extended .usa-header{border-bottom:none}}@media screen and (min-width:951px){.usa-header-extended .usa-logo{margin-top:3rem;margin-bottom:3rem}}@media screen and (min-width:951px){.usa-header-extended em{font-size:3.2rem;line-height:1}}@media screen and (min-width:951px){.usa-header-extended .usa-navbar{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:3rem;padding-left:3rem;display:block;height:auto;max-width:1040px}.usa-header-extended .usa-navbar:after{clear:both;content:"";display:block}}@media screen and (min-width:951px){.usa-header-extended .usa-nav{border-top:1px solid #aeb0b5;float:none;padding:0;width:100%}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-inner{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:3rem;padding-left:2rem;margin-top:-1px;max-width:1040px;position:relative}.usa-header-extended .usa-nav-inner:after{clear:both;content:"";display:block}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-primary:after{clear:both;content:"";display:block}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-primary button[aria-expanded=false],.usa-header-extended .usa-nav-primary button[aria-expanded=true]{background-position:right 1.5rem top 50%}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-link{padding-top:1.9rem}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-submenu .usa-grid-full{padding-left:1.2rem}}@media screen and (min-width:951px){.usa-header-extended .usa-megamenu{padding-left:3rem}}.usa-hero{padding-top:3rem;padding-bottom:3rem;background-image:url(../img/hero.png);background-position:50%;background-size:cover}.usa-hero .usa-button{color:#fff}.usa-section-dark .usa-hero-link{color:#02bfe7}.usa-hero-callout{background-color:#112e51;padding:3rem}@media screen and (min-width:481px){.usa-hero-callout{max-width:30rem}}.usa-hero-callout>:first-child{margin-top:0;margin-bottom:3rem}.usa-hero-callout .usa-button{font-size:1.4rem;margin-top:7rem;width:100%}.usa-hero-callout-alt{color:#fff;display:block}.usa-layout-docs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media screen and (min-width:1201px){.usa-layout-docs{display:inherit}}.usa-layout-docs .usa-grid>:first-child:not(.usa-width-*){margin-top:0}.usa-layout-docs .usa-grid>:last-child:not(.usa-width-*){margin-bottom:0}.usa-layout-docs-sidenav{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.usa-layout-docs-main_content{margin-bottom:3rem;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}@media screen and (min-width:1201px){.usa-layout-docs-main_content{margin-bottom:0}}.usa-layout-docs-main_content>:first-child{margin-top:0}.usa-media_block-img{float:left;margin-right:1rem}.usa-media_block-body{overflow:hidden}.usa-navbar{border-bottom:1px solid #aeb0b5;height:4rem}@media screen and (min-width:951px){.usa-navbar{border-bottom:none;display:inline-block;height:10.3rem}}.usa-nav-link{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}@media screen and (min-width:951px){.usa-nav-link:hover span{border-bottom:.7rem solid #0071bc;padding-bottom:1rem}}@media screen and (min-width:951px){.usa-nav-container{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:3rem;padding-left:3rem;max-width:1040px}.usa-nav-container:after{clear:both;content:"";display:block}}.usa-nav{position:fixed;top:0;right:0;bottom:0;left:auto;background:#fff;border-left:1px solid #aeb0b5;border-right:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow-y:auto;padding:2rem;-webkit-transform:translateX(26rem);transform:translateX(26rem);width:26rem;z-index:9000}@media screen and (min-width:951px){.usa-nav{padding-top:5rem;padding-right:0;padding-bottom:0;border-left:none;display:block;float:right;overflow-y:visible;position:relative;-webkit-transform:translateX(0);transform:translateX(0);width:auto}}.usa-nav.is-visible{-webkit-transform:translateX(0);transform:translateX(0);transition:all .3s ease-in-out}.usa-nav nav{margin-top:6rem;min-height:100%}@media screen and (min-width:951px){.usa-nav nav{margin-top:0}}.usa-nav .usa-current{border-left:4px solid #0071bc;color:#0071bc;font-weight:700;padding-left:1.4rem}.usa-nav .usa-button{width:100%}@media screen and (min-width:951px){.usa-nav .usa-search{margin-left:1.5rem}}.usa-nav-primary{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.usa-nav-primary>li{margin-bottom:0}.usa-nav-primary>li{background-color:transparent;border-top:1px solid #5b616b;font-size:1.7rem}.usa-nav-primary>li:first-child{border-top:none}.usa-nav-primary a{border:none;color:#212121;display:block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;line-height:1.3;padding:.85rem 1rem .85rem 1.8rem;text-decoration:none}.usa-nav-primary a:hover{background-color:#f1f1f1;color:#0071bc;text-decoration:none}.usa-nav-primary a:focus{position:relative;z-index:1}.usa-nav-primary a.usa-current{border-left:.4rem solid #0071bc;color:#0071bc;font-weight:700;padding-left:1.4rem}@media screen and (min-width:951px){.usa-nav-primary{display:inline}}@media screen and (min-width:951px){.usa-nav-primary li{border-top:none}}.usa-nav-primary>li{width:auto}@media screen and (min-width:951px){.usa-nav-primary>li{display:inline-block}}@media screen and (min-width:951px){.usa-nav-primary>li>a{padding:1.3rem 1.5rem 1.7rem;color:#5b616b;font-size:1.5rem;font-weight:700;line-height:1.2}}@media screen and (min-width:951px){.usa-nav-primary>li>a:hover{background-color:transparent}}.usa-nav-primary button{background-color:transparent;border:0;border-radius:0;margin:0;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-weight:400;padding:1.4rem 1.5rem 1rem 1.8rem}.usa-nav-primary button:hover{background-color:transparent}@media screen and (min-width:951px){.usa-nav-primary button{padding-right:3rem;padding-bottom:1.9rem;padding-left:1.5rem;color:#5b616b;font-size:1.5rem;font-weight:700;width:auto}}.usa-nav-primary button:active,.usa-nav-primary button:focus{box-shadow:0 0 3px #3e94cf,0 0 7px #3e94cf}.usa-nav-primary button:hover{background-color:#f1f1f1;color:#0071bc}@media screen and (min-width:951px){.usa-nav-primary button:hover{background-color:transparent}}.usa-nav-primary button[aria-expanded=false]{background-image:url(../img/plus-alt.png);background-image:url(../img/plus-alt.svg);background-repeat:no-repeat;background-position:right 0 center;background-size:1rem}@media screen and (min-width:951px){.usa-nav-primary button[aria-expanded=false]{background-image:url(../img/angle-arrow-down.png);background-image:url(../img/angle-arrow-down.svg);background-position:right 1.5rem top 44%}}.usa-nav-primary button[aria-expanded=true]{background-image:url(../img/minus-alt.png);background-image:url(../img/minus-alt.svg);background-repeat:no-repeat;background-position:right 0 center;background-size:1rem}@media screen and (min-width:951px){.usa-nav-primary button[aria-expanded=true]{background-color:#112e51;color:#fff;background-image:url(../img/angle-arrow-down-hover.png);background-image:url(../img/angle-arrow-down-hover.svg);background-position:right 1.5rem top 44%}.usa-nav-primary button[aria-expanded=true]:hover{background-color:#112e51}.usa-nav-primary button[aria-expanded=true] span{border-bottom:.7rem solid #0071bc;padding-bottom:1rem}}@media screen and (min-width:951px){.usa-nav-primary a.usa-current{border-left:0;padding-left:1.5rem}.usa-nav-primary a.usa-current span{border-bottom:.7rem solid #0071bc;padding-bottom:1rem}}@media screen and (min-width:951px){.usa-nav-secondary{position:absolute;right:3rem;top:-5.7rem}}.usa-nav-secondary .usa-search{margin-top:3rem;margin-bottom:3rem}@media screen and (min-width:951px){.usa-nav-secondary .usa-search{margin-top:-.2rem;margin-bottom:0;margin-left:0;float:left}}@media screen and (min-width:951px){.usa-nav-secondary-links{float:left}}@media screen and (min-width:951px){.usa-nav-secondary-links li{display:inline;padding-left:1rem}}@media screen and (min-width:951px){.usa-nav-secondary-links li:not(:last-child):after{content:"|";padding-left:1rem}}.usa-nav-secondary-links .usa-header-search-button,.usa-nav-secondary-links a{color:#5b616b;display:inline-block;font-size:1.5rem;text-decoration:none}.usa-nav-secondary-links .usa-header-search-button:hover,.usa-nav-secondary-links a:hover{color:#0071bc}.usa-nav-secondary-links .usa-header-search-button{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto;display:none}.usa-nav-secondary-links .usa-header-search-button:hover{background-color:transparent}@media screen and (min-width:951px){.usa-nav-secondary-links .usa-header-search-button{background-image:url(../img/search-alt.png);background-image:url(../img/search-alt.svg);background-repeat:no-repeat;background-position:0;background-size:2.2rem;display:inline-block;padding-left:2.3rem}}@media screen and (min-width:951px){.usa-nav-secondary-links .usa-header-search-button.is-hidden{display:none}}@media screen and (min-width:951px){.usa-nav-secondary-links a.usa-current{border-left:0;padding-left:0}}@media screen and (min-width:951px){.usa-nav-submenu{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;padding-top:1.15rem;padding-bottom:1.15rem;background-color:#112e51;min-width:21.5rem;width:auto;position:absolute}.usa-nav-submenu>li{margin-bottom:0}}.usa-nav-submenu[aria-hidden=true]{display:none}@media screen and (min-width:951px){.usa-nav-submenu a{color:#fff;padding-left:1.5rem}}@media screen and (min-width:951px){.usa-nav-submenu a:hover{background-color:#112e51;color:#fff;text-decoration:underline}}.usa-nav-submenu li{font-size:1.5rem;margin-bottom:0}.usa-nav-close{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;outline:0;padding:0;text-align:left;-webkit-font-smoothing:auto;margin:-1.2rem -1.5rem 2.4rem auto;float:right;height:4.4rem;text-align:center;width:4.4rem}.usa-nav-close:hover{background-color:transparent}@media screen and (min-width:951px){.usa-nav-close{display:none}}.usa-nav-close img{width:1.3rem}.usa-mobile_nav-active{overflow:hidden}@media screen and (min-width:951px){.usa-megamenu{padding-top:3.15rem;padding-bottom:3.15rem;left:-1rem;width:100%}}@media screen and (min-width:951px){.usa-megamenu:before{background-color:#112e51;content:"";display:block;height:100%;position:absolute;top:0;width:1000%;right:100%}}@media screen and (min-width:951px){.usa-megamenu:after{background-color:#112e51;content:"";display:block;height:100%;position:absolute;top:0;width:1000%;left:100%}}@media screen and (min-width:951px){.usa-header-basic-megamenu .usa-nav{padding-left:0;padding-top:0;width:100%}}.usa-header-basic-megamenu .usa-nav-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media screen and (min-width:951px){.usa-header-basic-megamenu .usa-nav-inner{display:block;float:right;margin-top:-4.8rem}}@media screen and (min-width:951px){.usa-header-basic-megamenu .usa-nav-submenu .usa-grid-full{margin-left:-1.8rem}}@media screen and (min-width:951px){.usa-megamenu-col{float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-megamenu-col:last-child{margin-right:0}.usa-megamenu-col:nth-child(2n){float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-megamenu-col:nth-child(2n):last-child{margin-right:0}.usa-megamenu-col:nth-child(4n){margin-right:0}}.usa-megamenu-col>ul{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0}.usa-megamenu-col>ul>li{margin-bottom:0}.usa-search{max-width:none;position:relative}.usa-search:after{clear:both;content:"";display:block}.usa-search .usa-search-input,.usa-search [type=search]{padding-top:0;padding-bottom:0;-webkit-appearance:none;border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;box-sizing:border-box;float:left;font-size:1.4rem;height:3.3rem;margin:0;width:calc(100% - 4.5rem)}@media screen and (min-width:481px){.usa-search .usa-search-input,.usa-search [type=search]{width:calc(100% - 8.5rem)}}.usa-search .usa-search-submit,.usa-search [type=submit]{background-image:url(../img/search.png);background-image:url(../img/search.svg);background-position:50%;background-repeat:no-repeat;border-bottom-left-radius:0;border-top-left-radius:0;height:3.3rem;margin:0;padding:0;width:4.5rem}@media screen and (min-width:481px){.usa-search .usa-search-submit,.usa-search [type=submit]{background-image:none;width:8.5rem}}.usa-search .usa-search-submit-text{display:none}@media screen and (min-width:481px){.usa-search .usa-search-submit-text{display:block}}@media screen and (min-width:481px){.usa-search.usa-search-big .usa-search-input,.usa-search.usa-search-big [type=search]{font-size:1.7rem;height:4.4rem;width:calc(100% - 11.6rem)}.usa-search.usa-search-big .usa-search-submit,.usa-search.usa-search-big [type=submit]{font-size:2rem;height:4.4rem;width:11.6rem}}@media screen and (min-width:481px){.usa-search.usa-search-small .usa-search-input,.usa-search.usa-search-small [type=search]{width:calc(100% - 4.5rem)}.usa-search.usa-search-small .usa-search-submit,.usa-search.usa-search-small [type=submit]{background-image:url(../img/search.png);background-image:url(../img/search.svg);background-position:50%;background-repeat:no-repeat;width:4.5rem}}@media screen and (max-width:950px){.usa-search.usa-search-small.usa-sr-only{left:auto;position:relative}}.usa-section{padding-top:3rem;padding-bottom:3rem}@media screen and (min-width:600px){.usa-section{padding-top:6rem;padding-bottom:6rem}}.usa-section-light{background-color:#f1f1f1}.usa-section-dark{background-color:#112e51;color:#fff}.usa-section-dark h1,.usa-section-dark h2,.usa-section-dark h3,.usa-section-dark h4,.usa-section-dark h5,.usa-section-dark h6{color:#02bfe7}.usa-section-dark p{color:#fff}.usa-section-dark a{color:#d6d7d9}.usa-section-dark a:hover{color:#fff}.usa-sidenav-list{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0}.usa-sidenav-list>li{margin-bottom:0}.usa-sidenav-list>li{background-color:transparent;border-top:1px solid #5b616b;font-size:1.7rem}.usa-sidenav-list>li:first-child{border-top:none}.usa-sidenav-list a{border:none;color:#212121;display:block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;line-height:1.3;padding:.85rem 1rem .85rem 1.8rem;text-decoration:none}.usa-sidenav-list a:hover{background-color:#f1f1f1;color:#0071bc;text-decoration:none}.usa-sidenav-list a:focus{position:relative;z-index:1}.usa-sidenav-list a.usa-current{border-left:.4rem solid #0071bc;color:#0071bc;font-weight:700;padding-left:1.4rem}.usa-sidenav-sub_list{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;margin:0;width:100%}.usa-sidenav-sub_list>li{margin-bottom:0}.usa-sidenav-sub_list li{border:none;font-size:1.5rem}.usa-sidenav-sub_list a{padding-left:2.8rem;line-height:1.3}.usa-sidenav-sub_list a.usa-current,.usa-sidenav-sub_list a:hover{border:none;padding-left:2.8rem}.usa-sidenav-sub_list .usa-sidenav-sub_list a{padding-left:3.8rem}.usa-sidenav-sub_list .usa-sidenav-sub_list a:hover{padding-left:3.8rem}.usa-skipnav{background:transparent;color:#212121;left:0;padding:1rem 1.5rem;position:absolute;top:-4.2rem;transition:all .2s ease-in-out;z-index:100}.usa-skipnav:focus{background:#fff;left:0;outline:0;position:absolute;top:0;transition:all .2s ease-in-out}
3
+ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse}td,th{padding:0}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:300;src:url(../fonts/sourcesanspro-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-light-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-light-webfont.woff) format("woff"),url(../fonts/sourcesanspro-light-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:400;src:url(../fonts/sourcesanspro-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-regular-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-regular-webfont.woff) format("woff"),url(../fonts/sourcesanspro-regular-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:italic;font-weight:400;src:url(../fonts/sourcesanspro-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-italic-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-italic-webfont.woff) format("woff"),url(../fonts/sourcesanspro-italic-webfont.ttf) format("truetype")}@font-face{font-family:Source Sans Pro;font-style:normal;font-weight:700;src:url(../fonts/sourcesanspro-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/sourcesanspro-bold-webfont.woff2) format("woff2"),url(../fonts/sourcesanspro-bold-webfont.woff) format("woff"),url(../fonts/sourcesanspro-bold-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:300;src:url(../fonts/merriweather-light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-light-webfont.woff2) format("woff2"),url(../fonts/merriweather-light-webfont.woff) format("woff"),url(../fonts/merriweather-light-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;src:url(../fonts/merriweather-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-regular-webfont.woff2) format("woff2"),url(../fonts/merriweather-regular-webfont.woff) format("woff"),url(../fonts/merriweather-regular-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:italic;font-weight:400;src:url(../fonts/merriweather-italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-italic-webfont.woff2) format("woff2"),url(../fonts/merriweather-italic-webfont.woff) format("woff"),url(../fonts/merriweather-italic-webfont.ttf) format("truetype")}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;src:url(../fonts/merriweather-bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/merriweather-bold-webfont.woff2) format("woff2"),url(../fonts/merriweather-bold-webfont.woff) format("woff"),url(../fonts/merriweather-bold-webfont.ttf) format("truetype")}.usa-grid,.usa-grid-full{max-width:1200px;margin-left:auto;margin-right:auto;max-width:1040px}.usa-grid-full:after,.usa-grid:after{clear:both;content:"";display:block}.usa-grid{padding-right:1.5rem;padding-left:1.5rem}@media screen and (min-width:600px){.usa-grid{padding-right:3rem;padding-left:3rem}}.usa-grid-full{padding:0}@media screen and (min-width:600px){.usa-width-one-whole{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:4.82916%;width:47.58542%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:4.82916%;width:100%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:4.82916%;width:30.11389%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:4.82916%;width:65.05695%}.usa-width-seven-twelfths:last-child{margin-right:0}}@media screen and (min-width:1201px){.usa-width-one-whole{float:left;display:block;margin-right:2.35765%;width:100%}.usa-width-one-whole:last-child{margin-right:0}.usa-width-one-half{float:left;display:block;margin-right:2.35765%;width:48.82117%}.usa-width-one-half:last-child{margin-right:0}.usa-width-one-third{float:left;display:block;margin-right:2.35765%;width:31.76157%}.usa-width-one-third:last-child{margin-right:0}.usa-width-two-thirds{float:left;display:block;margin-right:2.35765%;width:65.88078%}.usa-width-two-thirds:last-child{margin-right:0}.usa-width-one-fourth{float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:last-child{margin-right:0}.usa-width-one-fourth:nth-child(2n){float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-width-one-fourth:nth-child(2n):last-child{margin-right:0}.usa-width-one-fourth:nth-child(4n){margin-right:0}.usa-width-three-fourths{float:left;display:block;margin-right:2.35765%;width:74.41059%}.usa-width-three-fourths:last-child{margin-right:0}.usa-width-one-sixth{float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:last-child{margin-right:0}.usa-width-one-sixth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:14.70196%}.usa-width-one-sixth:nth-child(3n):last-child{margin-right:0}.usa-width-one-sixth:nth-child(6n){margin-right:0}.usa-width-five-sixths{float:left;display:block;margin-right:2.35765%;width:82.94039%}.usa-width-five-sixths:last-child{margin-right:0}.usa-width-one-twelfth{float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:last-child{margin-right:0}.usa-width-one-twelfth:nth-child(3n){float:left;display:block;margin-right:2.35765%;width:6.17215%}.usa-width-one-twelfth:nth-child(3n):last-child{margin-right:0}.usa-width-one-twelfth:nth-child(12n){margin-right:0}.usa-width-five-twelfths{float:left;display:block;margin-right:2.35765%;width:40.29137%}.usa-width-five-twelfths:last-child{margin-right:0}.usa-width-seven-twelfths{float:left;display:block;margin-right:2.35765%;width:57.35098%}.usa-width-seven-twelfths:last-child{margin-right:0}}.usa-end-row{margin-right:0}.usa-offset-one-twelfth{margin-left:8.5298%}.usa-offset-one-sixth{margin-left:17.05961%}.usa-offset-one-fourth{margin-left:25.58941%}.usa-offset-one-third{margin-left:34.11922%}.usa-offset-five-twelfths{margin-left:42.64902%}.usa-offset-one-half{margin-left:51.17883%}.usa-offset-seven-twelfths{margin-left:59.70863%}.usa-offset-two-thirds{margin-left:68.23843%}.usa-offset-three-fourths{margin-left:76.76824%}.usa-offset-five-sixths{margin-left:85.29804%}.usa-offset-eleven-twelfths{margin-left:93.82785%}.usa-sr-only{position:absolute;left:-999em}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background-color:#fff;overflow-x:hidden}.lt-ie9 *{-webkit-filter:none!important;filter:none!important}[hidden]{display:none!important}.usa-focus,:focus{outline:2px dotted #aeb0b5;outline-offset:3px}.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited,[type=button],[type=image],[type=reset],[type=submit],button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0071bc;border:0;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.7rem;font-weight:700;line-height:1;padding:1rem 2rem;text-align:center;text-decoration:none;width:100%}@media screen and (min-width:481px){.usa-button,.usa-button-primary,.usa-button-primary:visited,.usa-button:visited,[type=button],[type=image],[type=reset],[type=submit],button{width:auto}}.usa-button-primary.usa-button-hover,.usa-button-primary:hover,.usa-button-primary:visited.usa-button-hover,.usa-button-primary:visited:hover,.usa-button.usa-button-hover,.usa-button:hover,.usa-button:visited.usa-button-hover,.usa-button:visited:hover,[type=button].usa-button-hover,[type=button]:hover,[type=image].usa-button-hover,[type=image]:hover,[type=reset].usa-button-hover,[type=reset]:hover,[type=submit].usa-button-hover,[type=submit]:hover,button.usa-button-hover,button:hover{background-color:#205493;border-bottom:0;color:#fff;text-decoration:none}.usa-button-primary.usa-button-active,.usa-button-primary:active,.usa-button-primary:visited.usa-button-active,.usa-button-primary:visited:active,.usa-button.usa-button-active,.usa-button:active,.usa-button:visited.usa-button-active,.usa-button:visited:active,[type=button].usa-button-active,[type=button]:active,[type=image].usa-button-active,[type=image]:active,[type=reset].usa-button-active,[type=reset]:active,[type=submit].usa-button-active,[type=submit]:active,button.usa-button-active,button:active{background-color:#112e51}.usa-button-primary.usa-button-primary-alt,.usa-button-primary:visited.usa-button-primary-alt,.usa-button.usa-button-primary-alt,.usa-button:visited.usa-button-primary-alt,[type=button].usa-button-primary-alt,[type=image].usa-button-primary-alt,[type=reset].usa-button-primary-alt,[type=submit].usa-button-primary-alt,button.usa-button-primary-alt{background-color:#02bfe7;color:#212121}.usa-button-primary.usa-button-primary-alt.usa-button-hover,.usa-button-primary.usa-button-primary-alt:hover,.usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,.usa-button-primary:visited.usa-button-primary-alt:hover,.usa-button.usa-button-primary-alt.usa-button-hover,.usa-button.usa-button-primary-alt:hover,.usa-button:visited.usa-button-primary-alt.usa-button-hover,.usa-button:visited.usa-button-primary-alt:hover,[type=button].usa-button-primary-alt.usa-button-hover,[type=button].usa-button-primary-alt:hover,[type=image].usa-button-primary-alt.usa-button-hover,[type=image].usa-button-primary-alt:hover,[type=reset].usa-button-primary-alt.usa-button-hover,[type=reset].usa-button-primary-alt:hover,[type=submit].usa-button-primary-alt.usa-button-hover,[type=submit].usa-button-primary-alt:hover,button.usa-button-primary-alt.usa-button-hover,button.usa-button-primary-alt:hover{background-color:#00a6d2}.usa-button-primary.usa-button-primary-alt.usa-button-active,.usa-button-primary.usa-button-primary-alt:active,.usa-button-primary:visited.usa-button-primary-alt.usa-button-active,.usa-button-primary:visited.usa-button-primary-alt:active,.usa-button.usa-button-primary-alt.usa-button-active,.usa-button.usa-button-primary-alt:active,.usa-button:visited.usa-button-primary-alt.usa-button-active,.usa-button:visited.usa-button-primary-alt:active,[type=button].usa-button-primary-alt.usa-button-active,[type=button].usa-button-primary-alt:active,[type=image].usa-button-primary-alt.usa-button-active,[type=image].usa-button-primary-alt:active,[type=reset].usa-button-primary-alt.usa-button-active,[type=reset].usa-button-primary-alt:active,[type=submit].usa-button-primary-alt.usa-button-active,[type=submit].usa-button-primary-alt:active,button.usa-button-primary-alt.usa-button-active,button.usa-button-primary-alt:active{background-color:#046b99;color:#fff}.usa-button-primary.usa-button-secondary,.usa-button-primary:visited.usa-button-secondary,.usa-button.usa-button-secondary,.usa-button:visited.usa-button-secondary,[type=button].usa-button-secondary,[type=image].usa-button-secondary,[type=reset].usa-button-secondary,[type=submit].usa-button-secondary,button.usa-button-secondary{background-color:#fff;box-shadow:inset 0 0 0 2px #0071bc;color:#0071bc}.usa-button-primary.usa-button-secondary.usa-button-hover,.usa-button-primary.usa-button-secondary:hover,.usa-button-primary:visited.usa-button-secondary.usa-button-hover,.usa-button-primary:visited.usa-button-secondary:hover,.usa-button.usa-button-secondary.usa-button-hover,.usa-button.usa-button-secondary:hover,.usa-button:visited.usa-button-secondary.usa-button-hover,.usa-button:visited.usa-button-secondary:hover,[type=button].usa-button-secondary.usa-button-hover,[type=button].usa-button-secondary:hover,[type=image].usa-button-secondary.usa-button-hover,[type=image].usa-button-secondary:hover,[type=reset].usa-button-secondary.usa-button-hover,[type=reset].usa-button-secondary:hover,[type=submit].usa-button-secondary.usa-button-hover,[type=submit].usa-button-secondary:hover,button.usa-button-secondary.usa-button-hover,button.usa-button-secondary:hover{box-shadow:inset 0 0 0 2px #205493;color:#205493}.usa-button-primary.usa-button-secondary.usa-button-active,.usa-button-primary.usa-button-secondary:active,.usa-button-primary:visited.usa-button-secondary.usa-button-active,.usa-button-primary:visited.usa-button-secondary:active,.usa-button.usa-button-secondary.usa-button-active,.usa-button.usa-button-secondary:active,.usa-button:visited.usa-button-secondary.usa-button-active,.usa-button:visited.usa-button-secondary:active,[type=button].usa-button-secondary.usa-button-active,[type=button].usa-button-secondary:active,[type=image].usa-button-secondary.usa-button-active,[type=image].usa-button-secondary:active,[type=reset].usa-button-secondary.usa-button-active,[type=reset].usa-button-secondary:active,[type=submit].usa-button-secondary.usa-button-active,[type=submit].usa-button-secondary:active,button.usa-button-secondary.usa-button-active,button.usa-button-secondary:active{box-shadow:inset 0 0 0 2px #112e51;color:#112e51}.usa-button-primary.usa-button-outline-inverse,.usa-button-primary.usa-button-secondary-inverse,.usa-button-primary:visited.usa-button-outline-inverse,.usa-button-primary:visited.usa-button-secondary-inverse,.usa-button.usa-button-outline-inverse,.usa-button.usa-button-secondary-inverse,.usa-button:visited.usa-button-outline-inverse,.usa-button:visited.usa-button-secondary-inverse,[type=button].usa-button-outline-inverse,[type=button].usa-button-secondary-inverse,[type=image].usa-button-outline-inverse,[type=image].usa-button-secondary-inverse,[type=reset].usa-button-outline-inverse,[type=reset].usa-button-secondary-inverse,[type=submit].usa-button-outline-inverse,[type=submit].usa-button-secondary-inverse,button.usa-button-outline-inverse,button.usa-button-secondary-inverse{background:transparent;box-shadow:inset 0 0 0 2px #fff;color:#fff}.usa-button-primary.usa-button-outline-inverse.usa-button-hover,.usa-button-primary.usa-button-outline-inverse:hover,.usa-button-primary.usa-button-secondary-inverse.usa-button-hover,.usa-button-primary.usa-button-secondary-inverse:hover,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,.usa-button-primary:visited.usa-button-outline-inverse:hover,.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-hover,.usa-button-primary:visited.usa-button-secondary-inverse:hover,.usa-button.usa-button-outline-inverse.usa-button-hover,.usa-button.usa-button-outline-inverse:hover,.usa-button.usa-button-secondary-inverse.usa-button-hover,.usa-button.usa-button-secondary-inverse:hover,.usa-button:visited.usa-button-outline-inverse.usa-button-hover,.usa-button:visited.usa-button-outline-inverse:hover,.usa-button:visited.usa-button-secondary-inverse.usa-button-hover,.usa-button:visited.usa-button-secondary-inverse:hover,[type=button].usa-button-outline-inverse.usa-button-hover,[type=button].usa-button-outline-inverse:hover,[type=button].usa-button-secondary-inverse.usa-button-hover,[type=button].usa-button-secondary-inverse:hover,[type=image].usa-button-outline-inverse.usa-button-hover,[type=image].usa-button-outline-inverse:hover,[type=image].usa-button-secondary-inverse.usa-button-hover,[type=image].usa-button-secondary-inverse:hover,[type=reset].usa-button-outline-inverse.usa-button-hover,[type=reset].usa-button-outline-inverse:hover,[type=reset].usa-button-secondary-inverse.usa-button-hover,[type=reset].usa-button-secondary-inverse:hover,[type=submit].usa-button-outline-inverse.usa-button-hover,[type=submit].usa-button-outline-inverse:hover,[type=submit].usa-button-secondary-inverse.usa-button-hover,[type=submit].usa-button-secondary-inverse:hover,button.usa-button-outline-inverse.usa-button-hover,button.usa-button-outline-inverse:hover,button.usa-button-secondary-inverse.usa-button-hover,button.usa-button-secondary-inverse:hover{box-shadow:inset 0 0 0 2px #d6d7d9;color:#d6d7d9}.usa-button-primary.usa-button-outline-inverse.usa-button-active,.usa-button-primary.usa-button-outline-inverse:active,.usa-button-primary.usa-button-secondary-inverse.usa-button-active,.usa-button-primary.usa-button-secondary-inverse:active,.usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,.usa-button-primary:visited.usa-button-outline-inverse:active,.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-active,.usa-button-primary:visited.usa-button-secondary-inverse:active,.usa-button.usa-button-outline-inverse.usa-button-active,.usa-button.usa-button-outline-inverse:active,.usa-button.usa-button-secondary-inverse.usa-button-active,.usa-button.usa-button-secondary-inverse:active,.usa-button:visited.usa-button-outline-inverse.usa-button-active,.usa-button:visited.usa-button-outline-inverse:active,.usa-button:visited.usa-button-secondary-inverse.usa-button-active,.usa-button:visited.usa-button-secondary-inverse:active,[type=button].usa-button-outline-inverse.usa-button-active,[type=button].usa-button-outline-inverse:active,[type=button].usa-button-secondary-inverse.usa-button-active,[type=button].usa-button-secondary-inverse:active,[type=image].usa-button-outline-inverse.usa-button-active,[type=image].usa-button-outline-inverse:active,[type=image].usa-button-secondary-inverse.usa-button-active,[type=image].usa-button-secondary-inverse:active,[type=reset].usa-button-outline-inverse.usa-button-active,[type=reset].usa-button-outline-inverse:active,[type=reset].usa-button-secondary-inverse.usa-button-active,[type=reset].usa-button-secondary-inverse:active,[type=submit].usa-button-outline-inverse.usa-button-active,[type=submit].usa-button-outline-inverse:active,[type=submit].usa-button-secondary-inverse.usa-button-active,[type=submit].usa-button-secondary-inverse:active,button.usa-button-outline-inverse.usa-button-active,button.usa-button-outline-inverse:active,button.usa-button-secondary-inverse.usa-button-active,button.usa-button-secondary-inverse:active{box-shadow:inset 0 0 0 2px #aeb0b5;color:#d6d7d9}.usa-button-primary.usa-button-gray,.usa-button-primary:visited.usa-button-gray,.usa-button.usa-button-gray,.usa-button:visited.usa-button-gray,[type=button].usa-button-gray,[type=image].usa-button-gray,[type=reset].usa-button-gray,[type=submit].usa-button-gray,button.usa-button-gray{background-color:#5b616b}.usa-button-primary.usa-button-gray.usa-button-hover,.usa-button-primary.usa-button-gray:hover,.usa-button-primary:visited.usa-button-gray.usa-button-hover,.usa-button-primary:visited.usa-button-gray:hover,.usa-button.usa-button-gray.usa-button-hover,.usa-button.usa-button-gray:hover,.usa-button:visited.usa-button-gray.usa-button-hover,.usa-button:visited.usa-button-gray:hover,[type=button].usa-button-gray.usa-button-hover,[type=button].usa-button-gray:hover,[type=image].usa-button-gray.usa-button-hover,[type=image].usa-button-gray:hover,[type=reset].usa-button-gray.usa-button-hover,[type=reset].usa-button-gray:hover,[type=submit].usa-button-gray.usa-button-hover,[type=submit].usa-button-gray:hover,button.usa-button-gray.usa-button-hover,button.usa-button-gray:hover{background-color:#323a45}.usa-button-primary.usa-button-gray.usa-button-active,.usa-button-primary.usa-button-gray:active,.usa-button-primary:visited.usa-button-gray.usa-button-active,.usa-button-primary:visited.usa-button-gray:active,.usa-button.usa-button-gray.usa-button-active,.usa-button.usa-button-gray:active,.usa-button:visited.usa-button-gray.usa-button-active,.usa-button:visited.usa-button-gray:active,[type=button].usa-button-gray.usa-button-active,[type=button].usa-button-gray:active,[type=image].usa-button-gray.usa-button-active,[type=image].usa-button-gray:active,[type=reset].usa-button-gray.usa-button-active,[type=reset].usa-button-gray:active,[type=submit].usa-button-gray.usa-button-active,[type=submit].usa-button-gray:active,button.usa-button-gray.usa-button-active,button.usa-button-gray:active{background-color:#212121}.usa-button-primary.usa-button-red,.usa-button-primary:visited.usa-button-red,.usa-button.usa-button-red,.usa-button:visited.usa-button-red,[type=button].usa-button-red,[type=image].usa-button-red,[type=reset].usa-button-red,[type=submit].usa-button-red,button.usa-button-red{background-color:#e31c3d}.usa-button-primary.usa-button-red.usa-button-hover,.usa-button-primary.usa-button-red:hover,.usa-button-primary:visited.usa-button-red.usa-button-hover,.usa-button-primary:visited.usa-button-red:hover,.usa-button.usa-button-red.usa-button-hover,.usa-button.usa-button-red:hover,.usa-button:visited.usa-button-red.usa-button-hover,.usa-button:visited.usa-button-red:hover,[type=button].usa-button-red.usa-button-hover,[type=button].usa-button-red:hover,[type=image].usa-button-red.usa-button-hover,[type=image].usa-button-red:hover,[type=reset].usa-button-red.usa-button-hover,[type=reset].usa-button-red:hover,[type=submit].usa-button-red.usa-button-hover,[type=submit].usa-button-red:hover,button.usa-button-red.usa-button-hover,button.usa-button-red:hover{background-color:#cd2026}.usa-button-primary.usa-button-red.usa-button-active,.usa-button-primary.usa-button-red:active,.usa-button-primary:visited.usa-button-red.usa-button-active,.usa-button-primary:visited.usa-button-red:active,.usa-button.usa-button-red.usa-button-active,.usa-button.usa-button-red:active,.usa-button:visited.usa-button-red.usa-button-active,.usa-button:visited.usa-button-red:active,[type=button].usa-button-red.usa-button-active,[type=button].usa-button-red:active,[type=image].usa-button-red.usa-button-active,[type=image].usa-button-red:active,[type=reset].usa-button-red.usa-button-active,[type=reset].usa-button-red:active,[type=submit].usa-button-red.usa-button-active,[type=submit].usa-button-red:active,button.usa-button-red.usa-button-active,button.usa-button-red:active{background-color:#981b1e}.usa-button-primary.usa-button-big,.usa-button-primary:visited.usa-button-big,.usa-button.usa-button-big,.usa-button:visited.usa-button-big,[type=button].usa-button-big,[type=image].usa-button-big,[type=reset].usa-button-big,[type=submit].usa-button-big,button.usa-button-big{border-radius:8px;font-size:2.4rem;padding:1.5rem 3rem}.usa-button-primary:disabled,.usa-button-primary:visited:disabled,.usa-button:disabled,.usa-button:visited:disabled,[type=button]:disabled,[type=image]:disabled,[type=reset]:disabled,[type=submit]:disabled,button:disabled{background-color:#d6d7d9;pointer-events:none}.usa-button-primary:disabled.usa-button-active,.usa-button-primary:disabled.usa-button-hover,.usa-button-primary:disabled.usa-focus,.usa-button-primary:disabled:active,.usa-button-primary:disabled:focus,.usa-button-primary:disabled:hover,.usa-button-primary:visited:disabled.usa-button-active,.usa-button-primary:visited:disabled.usa-button-hover,.usa-button-primary:visited:disabled.usa-focus,.usa-button-primary:visited:disabled:active,.usa-button-primary:visited:disabled:focus,.usa-button-primary:visited:disabled:hover,.usa-button:disabled.usa-button-active,.usa-button:disabled.usa-button-hover,.usa-button:disabled.usa-focus,.usa-button:disabled:active,.usa-button:disabled:focus,.usa-button:disabled:hover,.usa-button:visited:disabled.usa-button-active,.usa-button:visited:disabled.usa-button-hover,.usa-button:visited:disabled.usa-focus,.usa-button:visited:disabled:active,.usa-button:visited:disabled:focus,.usa-button:visited:disabled:hover,[type=button]:disabled.usa-button-active,[type=button]:disabled.usa-button-hover,[type=button]:disabled.usa-focus,[type=button]:disabled:active,[type=button]:disabled:focus,[type=button]:disabled:hover,[type=image]:disabled.usa-button-active,[type=image]:disabled.usa-button-hover,[type=image]:disabled.usa-focus,[type=image]:disabled:active,[type=image]:disabled:focus,[type=image]:disabled:hover,[type=reset]:disabled.usa-button-active,[type=reset]:disabled.usa-button-hover,[type=reset]:disabled.usa-focus,[type=reset]:disabled:active,[type=reset]:disabled:focus,[type=reset]:disabled:hover,[type=submit]:disabled.usa-button-active,[type=submit]:disabled.usa-button-hover,[type=submit]:disabled.usa-focus,[type=submit]:disabled:active,[type=submit]:disabled:focus,[type=submit]:disabled:hover,button:disabled.usa-button-active,button:disabled.usa-button-hover,button:disabled.usa-focus,button:disabled:active,button:disabled:focus,button:disabled:hover{background-color:#d6d7d9;border:0;box-shadow:none}.usa-button-disabled{background-color:#d6d7d9;pointer-events:none}.usa-button-disabled.usa-button-active,.usa-button-disabled.usa-button-hover,.usa-button-disabled.usa-focus,.usa-button-disabled:active,.usa-button-disabled:focus,.usa-button-disabled:hover{background-color:#d6d7d9;border:0;box-shadow:none}.usa-button-outline-inverse:disabled,.usa-button-secondary-disabled,.usa-button-secondary-inverse-disabled,.usa-button-secondary-inverse:disabled,.usa-button-secondary:disabled{box-shadow:inset 0 0 0 2px #d6d7d9;pointer-events:none;color:#d6d7d9}.usa-button-outline-inverse:disabled.usa-button-active,.usa-button-outline-inverse:disabled.usa-button-hover,.usa-button-outline-inverse:disabled.usa-focus,.usa-button-outline-inverse:disabled:active,.usa-button-outline-inverse:disabled:focus,.usa-button-outline-inverse:disabled:hover,.usa-button-secondary-disabled.usa-button-active,.usa-button-secondary-disabled.usa-button-hover,.usa-button-secondary-disabled.usa-focus,.usa-button-secondary-disabled:active,.usa-button-secondary-disabled:focus,.usa-button-secondary-disabled:hover,.usa-button-secondary-inverse-disabled.usa-button-active,.usa-button-secondary-inverse-disabled.usa-button-hover,.usa-button-secondary-inverse-disabled.usa-focus,.usa-button-secondary-inverse-disabled:active,.usa-button-secondary-inverse-disabled:focus,.usa-button-secondary-inverse-disabled:hover,.usa-button-secondary-inverse:disabled.usa-button-active,.usa-button-secondary-inverse:disabled.usa-button-hover,.usa-button-secondary-inverse:disabled.usa-focus,.usa-button-secondary-inverse:disabled:active,.usa-button-secondary-inverse:disabled:focus,.usa-button-secondary-inverse:disabled:hover,.usa-button-secondary:disabled.usa-button-active,.usa-button-secondary:disabled.usa-button-hover,.usa-button-secondary:disabled.usa-focus,.usa-button-secondary:disabled:active,.usa-button-secondary:disabled:focus,.usa-button-secondary:disabled:hover{background-color:#fff;border:0}.usa-button-secondary:disabled,html .usa-button-secondary-disabled{background-color:#fff}.usa-button-secondary-inverse:disabled,html .usa-button-secondary-inverse-disabled{background-color:transparent;color:#5b616b;box-shadow:inset 0 0 0 2px #5b616b}.usa-button-unstyled{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto}.usa-button-unstyled:hover{background-color:transparent}.usa-embed-container embed,.usa-embed-container iframe,.usa-embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}.usa-embed-container{padding-bottom:56.25%;position:relative;height:0;overflow:hidden;max-width:100%}img{max-width:100%}.media_link{display:inline-block;line-height:0}input,select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:.1rem solid #5b616b;border-radius:0;box-sizing:border-box;color:#212121;display:block;font-size:1.7rem;height:4.4rem;line-height:1.3;margin:.2em 0;max-width:46rem;padding:1rem .7em;width:100%}input.usa-input-success,select.usa-input-success,textarea.usa-input-success{border:3px solid #4aa564}.usa-input-error{border-left:4px solid #cd2026;margin-top:3rem;padding-bottom:.8rem;padding-left:1.5rem;padding-top:.8rem;position:relative;right:1.9rem}.usa-input-error input,.usa-input-error select,.usa-input-error textarea{border:3px solid #cd2026;width:calc(100% + 1.9rem)}.usa-input-error label{margin-top:0}.usa-input-error .usa-input-inline{border:.1rem solid #5b616b;width:inherit}.usa-input-error .usa-input-inline-error{border:3px solid #cd2026}.usa-input-error-label{display:block;font-size:1.7rem;font-weight:700}.usa-input-error-message{color:#cd2026;display:block;font-size:1.7rem;font-weight:700;padding-bottom:3px;padding-top:3px}.usa-input-required:after{color:#981b1e;content:" (*required)"}.usa-input-optional:after{color:#757575;content:" (optional)"}label{display:block;margin-top:3rem;max-width:46rem}textarea{height:16rem}select{-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url(../img/arrow-both.png);background-image:url(../img/arrow-both.svg);background-position:right 1.3rem center;background-repeat:no-repeat;background-size:1rem;padding-right:3rem}select::-ms-expand{display:none}select:-webkit-autofill{-webkit-appearance:menulist;appearance:menulist}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}option:first-child{font-weight:700}legend{font-size:3rem;font-weight:700}.usa-fieldset-inputs label{margin-top:0}.usa-form-hint{color:#757575;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;margin-bottom:0}[type=checkbox],[type=radio]{position:absolute;left:-999em}.lt-ie9 [type=checkbox],.lt-ie9 [type=radio]{border:0;float:left;margin:.4em .4em 0 0;position:static;width:auto}[type=checkbox]+label,[type=radio]+label{cursor:pointer;font-weight:400;margin-bottom:.65em}[type=checkbox]+label:before,[type=radio]+label:before{background:#fff;border-radius:2px;box-shadow:0 0 0 1px #757575;content:"\a0";display:inline-block;height:2rem;line-height:2rem;margin-right:.6em;text-indent:.15em;vertical-align:middle\0;width:2rem}[type=radio]+label:before{border-radius:100%;box-shadow:0 0 0 2px #fff,0 0 0 3px #757575;height:1.4rem;line-height:1.4rem;margin-right:.75em;width:1.4rem}[type=checkbox]:checked+label:before,[type=radio]:checked+label:before{background-color:#0071bc;box-shadow:0 0 0 1px #0071bc}[type=radio]:checked+label:before{box-shadow:0 0 0 2px #fff,0 0 0 4px #0071bc}[type=checkbox]:checked+label:before,[type=checkbox]:checked:disabled+label:before{background-image:url(../img/correct8.png);background-image:url(../img/correct8.svg);background-position:50%;background-repeat:no-repeat}[type=radio]:focus+label:before{outline:2px dotted #aeb0b5;outline-offset:6px}[type=checkbox]:disabled+label{color:#d6d7d9}[type=checkbox]:focus+label:before{outline:2px dotted #aeb0b5;outline-offset:3px}[type=checkbox]:disabled+label:before,[type=radio]:disabled+label:before{background:#f1f1f1;box-shadow:0 0 0 1px #aeb0b5;cursor:not-allowed}[type=range]{-webkit-appearance:none;border:none;padding-left:0;width:100%}[type=range]::-webkit-slider-runnable-track{background:#aeb0b5;border:1px solid #757575;cursor:pointer;height:1.2rem;width:100%}[type=range]::-moz-range-track{background:#0071bc;border:1px solid #757575;cursor:pointer;height:1.2rem;width:100%}[type=range]::-ms-track{background:transparent;color:transparent;cursor:pointer;height:1.2rem;width:100%}[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #757575;height:2.2rem;border-radius:1.5rem;background:#f1f1f1;cursor:pointer;margin-top:-.65rem;width:2.2rem}[type=range]::-moz-range-thumb{background:#f1f1f1;border:1px solid #757575;border-radius:1.5rem;cursor:pointer;height:2.2rem;width:2.2rem}[type=range]::-ms-thumb{background:#f1f1f1;border:1px solid #757575;border-radius:1.5rem;cursor:pointer;height:2.2rem;width:2.2rem}[type=range]::-ms-fill-lower{background:#aeb0b5;border:1px solid #757575;border-radius:2rem}[type=range]::-ms-fill-upper{background:#aeb0b5;border:1px solid #757575;border-radius:2rem}.usa-date-of-birth label{margin-top:0}.usa-date-of-birth [type=number]::-webkit-inner-spin-button,.usa-date-of-birth [type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.usa-date-of-birth [type=number]{-moz-appearance:textfield}.usa-form-group-day,.usa-form-group-month,.usa-form-group-year{clear:none;float:left;margin-right:1.5rem;width:5rem}.usa-form-group-year{width:7rem}.usa-label,.usa-label-big{background-color:#5b616b;border-radius:2px;color:#fff;font-size:1.5rem;margin-right:.5rem;padding:.1rem .7rem;text-transform:uppercase}.usa-label-big:only-of-type,.usa-label:only-of-type{margin-right:0}.usa-label-big{font-size:1.7rem;padding-left:.9rem;padding-right:.9rem}ol,ul{margin-top:1em;margin-bottom:1em;padding-left:1.94em}li{line-height:1.5;margin-bottom:.5em}li:last-child{margin-bottom:0}h1+ol,h1+ul,h2+ol,h2+ul,h3+ol,h3+ul,h4+ol,h4+ul,h5+ol,h5+ul,h6+ol,h6+ul,p+ol,p+ul{margin-top:0}.usa-unstyled-list{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0}.usa-unstyled-list>li{margin-bottom:0}table{border-spacing:0;margin:2em 0}thead th{font-weight:700}thead td,thead th{background-color:#f1f1f1}th{text-align:left}td,th{background-color:#fff;border:1px solid #5b616b;font-weight:400;padding:1rem 1.5rem}.usa-table-borderless thead th{background-color:transparent;border-top:0}.usa-table-borderless td,.usa-table-borderless th{border-left:0;border-right:0}.usa-table-borderless th:first-child{padding-left:0}caption{font-size:1.5rem;font-weight:700;font-family:Merriweather,Georgia,Cambria,Times New Roman,Times,serif;margin-bottom:1.2rem;text-align:left}html{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:10px}body{font-size:1.7rem}p{line-height:1.5;margin-bottom:1em;margin-top:1em}a{color:#0071bc;text-decoration:underline}a:active,a:hover{color:#205493}a:focus{outline:2px dotted #aeb0b5;outline-offset:3px}a:visited{color:#4c2c92}.usa-external_link:after{background:url(../img/external-link.png) no-repeat 0 0;background:url(../img/external-link.svg) no-repeat 0 0;background-size:100%;content:"";display:inline-block;height:.65em;margin-bottom:-1px;margin-left:4px;width:.65em}.usa-external_link:hover:after{background-image:url(../img/external-link-hover.png);background-image:url(../img/external-link-hover.svg)}.usa-external_link-alt:after{background:url(../img/external-link-alt.png) no-repeat 0 0;background:url(../img/external-link-alt.svg) no-repeat 0 0;background-size:100%;content:"";display:inline-block;height:.65em;margin-bottom:-1px;margin-left:4px;width:.65em}.usa-external_link-alt:hover:after{background-image:url(../img/external-link-alt-hover.png);background-image:url(../img/external-link-alt-hover.svg)}h1,h2,h3,h4,h5{clear:both;font-family:Merriweather,Georgia,Cambria,Times New Roman,Times,serif;line-height:1.3;margin-bottom:.5em;margin-top:1.5em}h6{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}h1{font-size:4rem;font-weight:700}h2{font-size:3rem;font-weight:700}h3{font-size:2rem;font-weight:700}h4{font-size:1.7rem;font-weight:700}h5{font-size:1.5rem;font-weight:700}h6{font-size:1.3rem;font-weight:400;line-height:1.5;text-transform:uppercase}address,cite,dfn,var{font-style:normal}.usa-content ol:not(.usa-accordion):not(.usa-accordion-bordered),.usa-content p,.usa-content ul:not(.usa-accordion):not(.usa-accordion-bordered){max-width:66ch}.usa-content-list{max-width:66ch}.usa-sans a,.usa-sans li,.usa-sans p,.usa-sans span{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.usa-sans a{border-bottom:none;font-weight:700}.usa-serif a,.usa-serif li,.usa-serif p,.usa-serif span{font-family:Merriweather,Georgia,Cambria,Times New Roman,Times,serif}.usa-display{font-size:2rem;font-weight:700;margin-bottom:0}@media screen and (min-width:481px){.usa-display{font-size:4rem;font-weight:700}}@media screen and (min-width:600px){.usa-display{font-size:5.2rem;font-weight:700}}.usa-font-lead{font-family:Merriweather,Georgia,Cambria,Times New Roman,Times,serif;font-size:2rem;font-weight:400;line-height:1.7;max-width:77rem}.usa-image-block{position:relative}.usa-image-text-block{color:#fff;left:0;margin-left:8%;position:absolute;top:0}.usa-image-text{margin-top:0}.usa-drop_text{margin-bottom:0}.usa-background-dark{background-color:#323a45}.usa-background-dark p,.usa-background-dark span{color:#fff}.usa-background-dark a{color:#d6d7d9}.usa-background-dark a:hover{color:#fff}.usa-text-small{font-size:1.3rem;margin-top:0}.usa-grid-full>:first-child,.usa-grid>:first-child,.usa-section>:first-child{margin-top:0}.usa-grid-full>:last-child,.usa-grid>:last-child,.usa-section>:last-child{margin-bottom:0}.usa-width-five-sixths:first-child>:first-child,.usa-width-one-fourth:first-child>:first-child,.usa-width-one-half:first-child>:first-child,.usa-width-one-sixth:first-child>:first-child,.usa-width-one-third:first-child>:first-child,.usa-width-one-twelfth:first-child>:first-child,.usa-width-one-whole:first-child>:first-child,.usa-width-three-fourths:first-child>:first-child,.usa-width-two-thirds:first-child>:first-child{margin-top:0}@media screen and (min-width:600px){.usa-width-five-sixths>:first-child,.usa-width-one-fourth>:first-child,.usa-width-one-half>:first-child,.usa-width-one-sixth>:first-child,.usa-width-one-third>:first-child,.usa-width-one-twelfth>:first-child,.usa-width-one-whole>:first-child,.usa-width-three-fourths>:first-child,.usa-width-two-thirds>:first-child{margin-top:0}}.usa-width-five-sixths:last-child>:last-child,.usa-width-one-fourth:last-child>:last-child,.usa-width-one-half:last-child>:last-child,.usa-width-one-sixth:last-child>:last-child,.usa-width-one-third:last-child>:last-child,.usa-width-one-twelfth:last-child>:last-child,.usa-width-one-whole:last-child>:last-child,.usa-width-three-fourths:last-child>:last-child,.usa-width-two-thirds:last-child>:last-child{margin-bottom:0}@media screen and (min-width:600px){.usa-width-five-sixths>:last-child,.usa-width-one-fourth>:last-child,.usa-width-one-half>:last-child,.usa-width-one-sixth>:last-child,.usa-width-one-third>:last-child,.usa-width-one-twelfth>:last-child,.usa-width-one-whole>:last-child,.usa-width-three-fourths>:last-child,.usa-width-two-thirds>:last-child{margin-bottom:0}}.usa-accordion,.usa-accordion-bordered{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>li,.usa-accordion>li{margin-bottom:0}.usa-accordion-bordered>ul li ul,.usa-accordion>ul li ul{list-style:disc}.usa-accordion-bordered>ul li ul>li>ul,.usa-accordion>ul li ul>li>ul{list-style:circle}.usa-accordion-bordered>ul li ul>li>ul>li>ul,.usa-accordion>ul li ul>li>ul>li>ul{list-style:square}.usa-accordion+.usa-accordion,.usa-accordion+.usa-accordion-bordered,.usa-accordion-bordered+.usa-accordion,.usa-accordion-bordered+.usa-accordion-bordered{margin-top:1rem}.usa-accordion-bordered>ul,.usa-accordion>ul{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;color:#212121;margin:0;padding:0;width:100%}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{margin-bottom:0}.usa-accordion-bordered>ul>li,.usa-accordion>ul>li{background-color:#f1f1f1;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;list-style:none;margin-bottom:.5rem;width:100%}.usa-accordion-bordered>ul button,.usa-accordion>ul button{background-color:transparent;border:0;border-radius:0;font-weight:400;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 2rem center;background-repeat:no-repeat;background-size:1.5rem;color:#212121;cursor:pointer;display:inline-block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 2rem;width:100%}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:transparent}.usa-accordion-bordered>ul button:hover,.usa-accordion>ul button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-bordered>ul button h1,.usa-accordion-bordered>ul button h2,.usa-accordion-bordered>ul button h3,.usa-accordion-bordered>ul button h4,.usa-accordion-bordered>ul button h5,.usa-accordion-bordered>ul button h6,.usa-accordion>ul button h1,.usa-accordion>ul button h2,.usa-accordion>ul button h3,.usa-accordion>ul button h4,.usa-accordion>ul button h5,.usa-accordion>ul button h6{margin:0}.usa-accordion-bordered>ul [aria-expanded=false],.usa-accordion>ul [aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.5rem}.usa-accordion-bordered>li,.usa-accordion>li{background-color:#f1f1f1;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;list-style:none;margin-bottom:.5rem;width:100%}.usa-accordion-bordered .usa-accordion-content{border-bottom:3px solid #f1f1f1;border-left:3px solid #f1f1f1;border-right:3px solid #f1f1f1}.usa-accordion-content{background-color:#fff;overflow:auto;padding:1.5rem 2rem}.usa-accordion-content>:first-child{margin-top:0}.usa-accordion-content>:last-child{margin-bottom:0}.usa-accordion-content:not([aria-hidden]){position:absolute;left:-999em}.usa-accordion-content[aria-hidden=true]{display:none}.usa-accordion-button{background-color:transparent;border:0;border-radius:0;font-weight:400;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#f1f1f1;background-image:url(../img/minus.png);background-image:url(../img/minus.svg);background-position:right 2rem center;background-repeat:no-repeat;background-size:1.5rem;color:#212121;cursor:pointer;display:inline-block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:700;margin:0;padding:1.5rem 5.5rem 1.5rem 2rem;width:100%}.usa-accordion-button:hover{background-color:transparent}.usa-accordion-button:hover{background-color:#d6d7d9;color:#212121}.usa-accordion-button h1,.usa-accordion-button h2,.usa-accordion-button h3,.usa-accordion-button h4,.usa-accordion-button h5,.usa-accordion-button h6{margin:0}.usa-accordion-button[aria-expanded=false]{background-image:url(../img/plus.png);background-image:url(../img/plus.svg);background-repeat:no-repeat;background-size:1.5rem}.usa-alert{background-color:#f1f1f1;background-position:2rem 2rem;background-repeat:no-repeat;background-size:5.2rem;padding:2rem 2rem 1.4rem 3rem;position:relative}.usa-alert:before{background-color:#8b8b8b;content:"";height:100%;left:0;position:absolute;top:0;width:1rem}.usa-alert a{color:#205493}.usa-alert a:focus,.usa-alert a:hover{color:#112e51}.usa-alert ul{margin-bottom:0;margin-top:1rem;padding-left:1rem}.usa-alert-slim{background-position:2rem 1rem;padding-bottom:1rem;padding-top:1rem}.usa-alert-slim .usa-alert-text:only-child{margin-bottom:.5rem;padding-top:.5rem}.usa-alert-icon{display:table-cell;padding-right:1rem}.usa-alert-body{display:table-cell;padding-left:5rem;vertical-align:top}.usa-alert-heading{margin-top:0;margin-bottom:0}.usa-alert-text{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;margin-bottom:0;margin-top:0}.usa-alert-text:only-child{margin-bottom:1rem;padding-top:.5rem}.usa-alert-success{background-color:#e7f4e4;background-image:url(../img/alerts/success.png);background-image:url(../img/alerts/success.svg)}.usa-alert-success:before{background-color:#2e8540}.usa-alert-warning{background-color:#fff1d2;background-image:url(../img/alerts/warning.png);background-image:url(../img/alerts/warning.svg)}.usa-alert-warning:before{background-color:#fdb81e}.usa-alert-error{background-color:#f9dede;background-image:url(../img/alerts/error.png);background-image:url(../img/alerts/error.svg)}.usa-alert-error:before{background-color:#e31c3d}.usa-alert-info{background-color:#e1f3f8;background-image:url(../img/alerts/info.png);background-image:url(../img/alerts/info.svg)}.usa-alert-info:before{background-color:#02bfe7}.usa-alert-no_icon{background-image:none}.usa-alert-paragraph{width:66ch}.usa-alert{margin-top:1.5em}.usa-banner{background-color:#f1f1f1;padding-bottom:.7rem}@media screen and (min-width:481px){.usa-banner{font-size:1.3rem;padding-bottom:0}}.usa-banner-content{padding:2rem 1.5rem 3px;background-color:transparent;font-size:1.5rem;width:100%}@media screen and (min-width:600px){.usa-banner-content{padding-bottom:2.3rem;padding-top:4rem}}@media screen and (min-width:951px){.usa-banner-content{padding-right:3rem;padding-left:3rem}}.usa-banner-content p:first-child{margin-top:1rem}@media screen and (min-width:600px){.usa-banner-content p:first-child{margin-top:0}}.usa-banner-inner{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:1.5rem;padding-left:1.5rem;max-width:1040px}.usa-banner-inner:after{clear:both;content:"";display:block}@media screen and (min-width:951px){.usa-banner-inner{padding-right:3rem;padding-left:3rem}}.usa-banner-header{padding-top:.55rem;padding-bottom:.55rem;font-size:1.2rem;font-weight:400}@media screen and (min-width:481px){.usa-banner-header{padding-top:0;padding-bottom:0}}.usa-banner-header p{margin-top:0;margin-bottom:0;display:inline;overflow:hidden;vertical-align:middle}@media screen and (min-width:481px){.usa-banner-header p{margin-top:2px;margin-bottom:2px;display:inline-block}}.usa-banner-header img{float:left;margin-right:1rem;margin-top:1px;width:2.4rem}@media screen and (min-width:481px){.usa-banner-header img{margin-right:.7rem;width:2rem}}.usa-banner-header-expanded{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #aeb0b5;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:1.5rem;min-height:5.6rem;padding-right:3rem}@media screen and (min-width:481px){.usa-banner-header-expanded{border-bottom:none;display:block;font-size:1.2rem;font-weight:400;min-height:0;padding-right:0}}.usa-banner-header-expanded>.usa-banner-inner{margin-left:0}@media screen and (min-width:481px){.usa-banner-header-expanded>.usa-banner-inner{margin-left:auto}}.usa-banner-header-expanded img{margin-right:2.4rem}@media screen and (min-width:481px){.usa-banner-header-expanded img{margin-right:.7rem}}.usa-banner-header-expanded p{line-height:1.3;vertical-align:top}@media screen and (min-width:481px){.usa-banner-header-expanded p{line-height:1.5;vertical-align:middle}}.usa-banner-button{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto;padding-top:1.3rem;padding-left:4.8rem;background-position-x:right;color:#0071bc;display:block;font-size:1.2rem;height:4.3rem;left:0;position:absolute;text-decoration:underline;top:0;width:100%}.usa-banner-button:hover{background-color:transparent}@media screen and (min-width:481px){.usa-banner-button{padding-top:0;padding-left:0;display:inline;height:auto;margin-left:3px;position:relative;vertical-align:middle;width:auto}}.usa-banner-button:hover{color:#205493;text-decoration:underline}.usa-banner-button[aria-expanded=false]{background-image:none}.usa-banner-button[aria-expanded=false]:after{background-image:url(../img/angle-arrow-down-primary.png);background-image:url(../img/angle-arrow-down-primary.svg);background-size:100%;content:"";display:inline-block;height:1rem;width:1rem;margin-left:0}.usa-banner-button[aria-expanded=false]:hover:after{background-image:url(../img/angle-arrow-down-primary-hover.png);background-image:url(../img/angle-arrow-down-primary-hover.svg)}.usa-banner-button[aria-expanded=false]:after{background-position-y:1px}.usa-banner-button[aria-expanded=true]{background-image:none;height:5.6rem}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/close.png);background-image:url(../img/close.svg);background-size:100%;content:"";display:inline-block;height:1.3rem;width:1.3rem;margin-left:0}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]{height:auto;padding:0;position:relative}.usa-banner-button[aria-expanded=true]:after{background-image:url(../img/angle-arrow-up-primary.png);background-image:url(../img/angle-arrow-up-primary.svg);background-size:100%;content:"";display:inline-block;height:1rem;width:1rem;margin-left:0}.usa-banner-button[aria-expanded=true]:hover:after{background-image:url(../img/angle-arrow-up-primary-hover.png);background-image:url(../img/angle-arrow-up-primary-hover.svg)}.usa-banner-button[aria-expanded=true]:after{background-position-y:1px}}.usa-banner-button[aria-expanded=true]:after{position:absolute;right:1.5rem;top:2.15rem}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true]:after{position:static}}.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:none}@media screen and (min-width:481px){.usa-banner-button[aria-expanded=true] .usa-banner-button-text{display:inline}}.usa-banner-icon{width:3.8rem}.usa-footer .usa-unstyled-list{display:block}.usa-footer .usa-footer-primary-link{color:#212121;display:block;font-weight:700;margin-top:0;padding-bottom:2rem;padding-top:2rem;text-decoration:none}@media screen and (min-width:600px){.usa-footer .usa-footer-primary-link{border-top:none}}.usa-footer .usa-footer-primary-link:hover{text-decoration:underline}.usa-footer .usa-footer-primary-link~li a,.usa-footer .usa-footer-secondary-link{text-decoration:none}.usa-footer-contact_info{display:inline-block}.usa-footer-contact_info a{color:#212121;text-decoration:none}.usa-footer-contact_info:hover{text-decoration:underline}.usa-footer-return-to-top{color:#0071bc;padding-bottom:2rem;padding-top:2rem;text-decoration:underline}.usa-footer-primary-section{background-color:#f1f1f1}.usa-footer-primary-section .usa-footer-primary-content{padding-left:1.5rem;padding-right:2.5rem}@media screen and (min-width:600px){.usa-footer-primary-section .usa-footer-primary-content{padding-left:0;padding-right:0}}.usa-footer-primary-section .usa-footer-primary-content li{margin-left:1rem}@media screen and (min-width:600px){.usa-footer-primary-section .usa-footer-primary-content li{margin-left:0}}@media screen and (min-width:600px){.usa-footer-primary-section .usa-grid-full{padding-left:2.5rem;padding-right:2.5rem}}.usa-footer-medium .usa-footer-contact_info p{margin:0 1rem 0 0}@media screen and (min-width:600px){.usa-footer-medium .usa-footer-contact_info p{margin:0 0 0 1rem}}.usa-footer-medium .usa-footer-contact-heading{margin-top:0}@media screen and (min-width:600px){.usa-footer-medium .usa-footer-contact-heading{margin-top:.5rem;margin-bottom:.5rem}}.usa-footer-medium .usa-footer-logo{padding:1rem 0}@media screen and (min-width:600px){.usa-footer-medium .usa-footer-logo{padding:2rem 0}}.usa-footer-medium .usa-footer-primary-link{padding-bottom:1.5rem;padding-top:1.5rem}.usa-footer-medium .usa-footer-primary-section>.usa-grid{padding:0}@media screen and (min-width:600px){.usa-footer-medium .usa-footer-primary-section>.usa-grid{padding-left:3rem;padding-right:3rem}}@media screen and (min-width:1201px){.usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content{margin-right:5%;width:inherit}}@media screen and (min-width:1201px){.usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content:last-child{margin-right:0}}@media screen and (min-width:600px){.usa-footer-medium .usa-footer-nav ul{-webkit-box-align:center;-ms-flex-align:center;align-items:center}}.usa-footer-slim .usa-footer-nav a{display:block}@media screen and (min-width:1201px){.usa-footer-slim .usa-footer-nav .usa-footer-primary-content{margin-right:5%;width:inherit}}@media screen and (min-width:1201px){.usa-footer-slim .usa-footer-nav .usa-footer-primary-content:last-child{margin-right:0}}.usa-footer-slim .usa-footer-primary-link{padding-bottom:1.5rem;padding-top:1.5rem}.usa-footer-slim .usa-footer-primary-section>.usa-grid{padding:0}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-primary-section>.usa-grid{padding-left:3rem;padding-right:3rem}}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-primary-section{padding-bottom:0;padding-top:0}.usa-footer-slim .usa-footer-primary-section .usa-grid-full{-webkit-box-align:center;-ms-flex-align:center;align-items:center}}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-contact_info>*{margin:0}}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-contact_info{padding-top:1.5rem;padding-bottom:1.5rem}}@media screen and (min-width:600px){.usa-footer-slim .usa-footer-contact_info{width:100%}}@media screen and (min-width:1201px){.usa-footer-slim .usa-footer-contact_info{float:left;display:block;margin-right:2.35765%;width:48.82117%}.usa-footer-slim .usa-footer-contact_info:last-child{margin-right:0}}li.usa-footer-primary-content,ul.usa-footer-primary-content{border-top:1px solid #aeb0b5}@media screen and (min-width:600px){li.usa-footer-primary-content,ul.usa-footer-primary-content{border:none}}li.usa-footer-primary-content:last-child,ul.usa-footer-primary-content:last-child{border-bottom:1px solid #aeb0b5}@media screen and (min-width:600px){li.usa-footer-primary-content:last-child,ul.usa-footer-primary-content:last-child{border-bottom:none}}.usa-sign_up-block{padding-bottom:4.5rem;padding-left:1.5rem;padding-right:1.5rem}@media screen and (min-width:600px){.usa-sign_up-block{float:right;padding:0}}.usa-sign_up-block label:first-of-type{margin-top:0}.usa-sign_up-block button{float:none;margin-right:0;margin-top:1.5rem}.usa-sign_up-block input{width:100%}.usa-footer-secondary_section{background-color:#d6d7d9;padding-bottom:2rem;padding-top:2rem}.usa-footer-secondary_section a{color:#212121}@media screen and (min-width:600px){.usa-footer-big-secondary-section{padding-top:2rem;padding-bottom:2rem}}@media screen and (min-width:600px){.usa-footer-contact-links{text-align:right}}.usa-social-links a{text-decoration:none}.usa-footer-big .usa-footer-contact_info{display:block}.usa-footer-big .usa-footer-contact_info p{margin:0 1rem 0 0}@media screen and (min-width:600px){.usa-footer-big .usa-footer-contact_info p{margin:.5rem 0 0 1rem}}@media screen and (min-width:600px){.usa-footer-big .usa-footer-contact-links{padding-top:2rem}}.usa-footer-big .usa-footer-logo{padding:1rem 0}@media screen and (min-width:600px){.usa-footer-big .usa-footer-logo{padding:2rem 0}}@media screen and (min-width:600px){.usa-footer-big .usa-footer-primary-section{padding-bottom:4rem;padding-top:3rem}}.usa-footer-big .usa-footer-primary-section>.usa-grid{padding:0}@media screen and (min-width:600px){.usa-footer-big .usa-footer-primary-section>.usa-grid{padding-left:3rem;padding-right:3rem}}.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content{padding-left:0;padding-right:0}.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content li{margin-left:1.5rem}@media screen and (min-width:600px){.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content li{margin-left:0}}.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content .usa-footer-primary-link{margin-left:0}.usa-footer-big ul{padding-bottom:2.4rem}@media screen and (min-width:600px){.usa-footer-big ul{padding-bottom:0}}.usa-footer-big ul:last-child{border-bottom:1px solid #aeb0b5}@media screen and (min-width:600px){.usa-footer-big ul:last-child{border-bottom:none}}.usa-footer-big ul li:not(.usa-footer-primary-link){line-height:1.3;padding-bottom:.35em;padding-top:.35em}.usa-footer-big ul .usa-footer-primary-link{background-image:url(../img/arrow-down.png);background-image:url(../img/arrow-down.svg);background-position:1.5rem;background-repeat:no-repeat;background-size:1.3rem;margin-left:0;padding-left:3.5rem}@media screen and (min-width:600px){.usa-footer-big ul .usa-footer-primary-link{background:none;margin-bottom:.8rem;padding-bottom:0;padding-left:0}}.usa-footer-big ul .usa-footer-primary-link>*{margin-top:0;margin-bottom:0}.usa-footer-big ul.hidden{padding-bottom:0}.usa-footer-big ul.hidden li{display:none}.usa-footer-big ul.hidden .usa-footer-primary-link{background-image:url(../img/arrow-right.png);background-image:url(../img/arrow-right.svg);cursor:pointer;display:block}@media screen and (min-width:600px){.usa-footer-big ul.hidden .usa-footer-primary-link{background:none;padding-left:0}}.usa-footer-topic{margin:0;padding:2rem 0}@media screen and (min-width:600px){.usa-sign_up-header{margin:0;padding:2rem 0}}.usa-footer-logo-img{max-width:8rem}@media screen and (min-width:600px){.usa-footer-logo-img{float:left}}.usa-footer-big-logo-img{max-width:10rem}.usa-footer-slim-logo-img{float:left;max-width:5rem}.usa-footer-logo-heading{display:block;margin-top:1rem}@media screen and (min-width:600px){.usa-footer-logo-heading{display:inline-block;margin-top:3rem;padding-left:1.5rem}}.usa-footer-big-logo-heading{margin-top:1.5rem}@media screen and (min-width:600px){.usa-footer-big-logo-heading{margin-top:2rem}}.usa-footer-slim-logo-heading{display:inline-block;margin-top:1.5rem;padding-left:1.5rem}.usa-footer-contact-heading{margin-top:0}@media screen and (min-width:600px){.usa-footer-contact-heading{margin-top:1rem}}.usa-link-facebook,.usa-link-rss,.usa-link-twitter,.usa-link-youtube,.usa-social_link{margin:2.5rem 1rem 1.5rem 0;background-position:50%;background-repeat:no-repeat;background-size:auto 3rem;display:inline-block;height:4.4rem;left:-1.6rem;position:relative;text-align:center;width:4.4rem}@media screen and (min-width:600px){.usa-link-facebook,.usa-link-rss,.usa-link-twitter,.usa-link-youtube,.usa-social_link{margin:0 0 0 .5rem;left:1.5rem}}.usa-link-facebook span,.usa-link-rss span,.usa-link-twitter span,.usa-link-youtube span,.usa-social_link span{position:absolute;left:-999em}.usa-link-facebook{background-image:url(../img/social-icons/png/facebook25.png);background-image:url(../img/social-icons/svg/facebook25.svg)}.usa-link-twitter{background-image:url(../img/social-icons/png/twitter16.png);background-image:url(../img/social-icons/svg/twitter16.svg)}.usa-link-youtube{background-image:url(../img/social-icons/png/youtube15.png);background-image:url(../img/social-icons/svg/youtube15.svg)}.usa-link-rss{background-image:url(../img/social-icons/png/rss25.png);background-image:url(../img/social-icons/svg/rss25.svg)}form a{border-bottom:0}form [type=submit]{display:block;margin-bottom:1.5em;margin-top:2.5rem}@media screen and (min-width:600px){form [type=submit]{padding-left:2.7em;padding-right:2.7em;width:auto}}form [name=confirmPassword],form [name=password]{margin-bottom:1.1rem}@media screen and (min-width:600px){.usa-form{max-width:32rem}}.usa-form-note{float:right;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.5rem;margin:0 0 1.5rem}.usa-form-note+*{clear:both}fieldset{border:none;margin:0;padding:0}@media screen and (min-width:600px){.usa-form-large{max-width:46rem}}@media screen and (min-width:600px){input.usa-input-tiny{max-width:6rem}}@media screen and (min-width:600px){input.usa-input-medium{max-width:12rem}}@media screen and (min-width:600px){.usa-input-grid{padding-right:5%}}@media screen and (min-width:600px){.usa-input-grid:last-of-type{padding-right:0}}@media screen and (min-width:600px){.usa-input-grid-small{float:left;width:35%}}.usa-input-grid-small input{margin-bottom:3rem}.usa-input-grid-small select{margin-bottom:3rem}@media screen and (min-width:600px){.usa-input-grid-medium{float:left;width:65%}}.usa-input-grid-medium input{margin-bottom:3rem}.usa-input-grid-medium select{margin-bottom:3rem}@media screen and (min-width:600px){.usa-input-grid-large{float:left;width:100%}}.usa-input-grid-large input{margin-bottom:3rem}.usa-input-grid-large select{margin-bottom:3rem}.usa-additional_text{font-weight:400}.usa-checklist{list-style:none;margin-left:0;padding-left:0}.usa-checklist li{display:inline-block;list-style:none;margin-bottom:0;margin-top:0;padding-left:3em;text-indent:-2em}.usa-checklist li:before{content:" ";display:inline-block;height:.8em;margin-right:.2em;width:1.8em}.usa-checklist-checked:before{background-image:url(../img/correct9.png);background-image:url(../img/correct9.svg);background-position:100%;background-repeat:no-repeat;background-size:100%}.usa-graphic_list .usa-graphic_list-row .usa-media_block{margin-bottom:3rem}@media screen and (min-width:600px){.usa-graphic_list .usa-graphic_list-row .usa-media_block{margin-bottom:6rem}}@media screen and (min-width:600px){.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block{margin-bottom:0}}.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block:last-child{margin-bottom:0}.usa-graphic_list .usa-media_block-img{margin-right:3rem}.usa-graphic_list .usa-media_block-body>:first-child{margin-top:0}.usa-header{width:100%;z-index:7000}@media screen and (min-width:951px){.usa-header{border-bottom:1px solid #d6d7d9}}.usa-header a{border-bottom:none}@media screen and (min-width:951px){.usa-header .usa-search{float:right;max-width:21.5rem}}.usa-logo{float:left;line-height:4rem;margin-left:1.5rem}@media screen and (min-width:951px){.usa-logo{line-height:7.5rem;margin-left:0}}.usa-logo a{color:#212121;text-decoration:none}.usa-logo br{display:none}@media screen and (min-width:951px){.usa-logo br{display:block}}.usa-logo-text{display:block;font-size:1.5rem;font-style:normal;font-weight:700;margin:0}@media screen and (min-width:951px){.usa-logo-text{display:block;font-size:2.4rem;line-height:1.3}}.usa-menu-btn{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto;background-color:#0071bc;color:#fff;display:inline;float:right;font-size:1.3rem;height:4rem;line-height:4rem;text-align:center;text-decoration:none;text-transform:uppercase;width:5.8rem}.usa-menu-btn:hover{background-color:transparent}@media screen and (min-width:951px){.usa-menu-btn{display:none}}.usa-menu-btn:hover{color:#fff;background-color:#205493}.usa-menu-btn:visited{color:#fff}.usa-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:0;transition:all .2s ease-in-out;visibility:hidden;z-index:8000}.usa-overlay.is-visible{opacity:.1;visibility:visible}@media screen and (min-width:951px){.usa-header-basic .usa-logo{bottom:0;position:absolute}}@media screen and (min-width:951px){.usa-header-basic .usa-navbar{position:relative;width:18%}}@media screen and (min-width:951px){.usa-header-extended .usa-header{border-bottom:none}}@media screen and (min-width:951px){.usa-header-extended .usa-logo{margin-top:3rem;margin-bottom:3rem}}@media screen and (min-width:951px){.usa-header-extended em{font-size:3.2rem;line-height:1}}@media screen and (min-width:951px){.usa-header-extended .usa-navbar{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:3rem;padding-left:3rem;display:block;height:auto;max-width:1040px}.usa-header-extended .usa-navbar:after{clear:both;content:"";display:block}}@media screen and (min-width:951px){.usa-header-extended .usa-nav{border-top:1px solid #d6d7d9;float:none;padding:0;width:100%}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-inner{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:3rem;padding-left:1.5rem;margin-top:-1px;max-width:1040px;position:relative}.usa-header-extended .usa-nav-inner:after{clear:both;content:"";display:block}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-primary:after{clear:both;content:"";display:block}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-primary button[aria-expanded=false],.usa-header-extended .usa-nav-primary button[aria-expanded=true]{background-position:right 1.5rem top 53%}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-link{padding-top:1.8rem;padding-bottom:1.8rem}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-submenu .usa-grid-full{padding-left:1.2rem}}@media screen and (min-width:951px){.usa-header-extended .usa-megamenu{padding-left:3rem}}.usa-hero{padding-top:3rem;padding-bottom:3rem;background-image:url(../img/hero.png);background-position:50%;background-size:cover}.usa-hero .usa-button{color:#fff}.usa-section-dark .usa-hero-link{color:#02bfe7}.usa-hero-callout{background-color:#112e51;padding:3rem}@media screen and (min-width:481px){.usa-hero-callout{max-width:30rem}}.usa-hero-callout>:first-child{margin-top:0;margin-bottom:2rem}.usa-hero-callout-alt{color:#fff;display:block}.usa-layout-docs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media screen and (min-width:1201px){.usa-layout-docs{display:inherit}}.usa-layout-docs .usa-grid>:first-child:not(.usa-width-*){margin-top:0}.usa-layout-docs .usa-grid>:last-child:not(.usa-width-*){margin-bottom:0}.usa-layout-docs-sidenav{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.usa-layout-docs-main_content{margin-bottom:3rem;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}@media screen and (min-width:1201px){.usa-layout-docs-main_content{margin-bottom:0}}.usa-layout-docs-main_content>:first-child{margin-top:0}.usa-media_block-img{float:left;margin-right:1rem}.usa-media_block-body{overflow:hidden}.usa-navbar{border-bottom:1px solid #aeb0b5;height:4rem}@media screen and (min-width:951px){.usa-navbar{border-bottom:none;display:inline-block;height:7.8rem}}.usa-nav-link{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}@media screen and (min-width:951px){.usa-nav-link:hover span{border-bottom:.4rem solid #0071bc;padding-bottom:.6rem}}@media screen and (min-width:951px){.usa-nav-link.usa-accordion-button span{margin-right:0;padding-right:1.5rem}}@media screen and (min-width:951px){.usa-nav-container{max-width:1200px;margin-left:auto;margin-right:auto;padding-right:3rem;padding-left:3rem;max-width:1040px}.usa-nav-container:after{clear:both;content:"";display:block}}.usa-nav{position:fixed;top:0;right:0;bottom:0;left:auto;background:#fff;border-left:1px solid #aeb0b5;border-right:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow-y:auto;padding:2rem;-webkit-transform:translateX(26rem);transform:translateX(26rem);width:26rem;z-index:9000}@media screen and (min-width:951px){.usa-nav{padding-top:4.5rem;padding-right:0;padding-bottom:0;border-left:none;display:block;float:right;overflow-y:visible;position:relative;-webkit-transform:translateX(0);transform:translateX(0);width:auto}}.usa-nav.is-visible{-webkit-transform:translateX(0);transform:translateX(0);transition:all .3s ease-in-out}.usa-nav nav{margin-top:6rem;min-height:100%}@media screen and (min-width:951px){.usa-nav nav{margin-top:0}}.usa-nav .usa-current{border-left:4px solid #0071bc;color:#0071bc;font-weight:700;padding-left:1.4rem}@media screen and (min-width:951px){.usa-nav .usa-current{color:#212121}}.usa-nav .usa-button{width:100%}@media screen and (min-width:951px){.usa-nav .usa-search{margin-left:1.5rem;top:4px}}.usa-nav-primary{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;margin-top:1.5rem;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.usa-nav-primary>li{margin-bottom:0}.usa-nav-primary>li{background-color:transparent;border-top:1px solid #5b616b;font-size:1.7rem}.usa-nav-primary>li:first-child{border-top:none}.usa-nav-primary a{border:none;color:#212121;display:block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;line-height:1.3;padding:.85rem 1rem .85rem 1.8rem;text-decoration:none}.usa-nav-primary a:hover{background-color:#f1f1f1;color:#0071bc;text-decoration:none}.usa-nav-primary a:focus{outline-offset:0;position:relative;z-index:1}.usa-nav-primary a.usa-current{border-left:.4rem solid #0071bc;color:#0071bc;font-weight:700;padding-left:1.4rem}@media screen and (min-width:951px){.usa-nav-primary{display:inline}}@media screen and (min-width:951px){.usa-nav-primary li{border-top:none}}.usa-nav-primary>li{width:auto}@media screen and (min-width:951px){.usa-nav-primary>li{display:inline-block}}@media screen and (min-width:951px){.usa-nav-primary>li>a{padding:1.3rem 1.5rem 2.2rem;color:#5b616b;font-size:1.5rem;font-weight:700;line-height:1}}@media screen and (min-width:951px){.usa-nav-primary>li>a:hover{background-color:transparent}}@media screen and (min-width:951px){.usa-nav-primary a{padding-top:.75rem;padding-bottom:.75rem}}.usa-nav-primary button{background-color:transparent;border:0;border-radius:0;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.3;padding:.85rem 1.5rem .85rem 1.8rem}.usa-nav-primary button:hover{background-color:transparent}@media screen and (min-width:951px){.usa-nav-primary button{padding:1.3rem 1.5rem 2.2rem;color:#5b616b;font-size:1.5rem;font-weight:700;line-height:1;width:auto}}.usa-nav-primary button:active,.usa-nav-primary button:focus{box-shadow:2px dotted #aeb0b5}.usa-nav-primary button:hover{background-color:#f1f1f1;color:#0071bc}@media screen and (min-width:951px){.usa-nav-primary button:hover{background-color:transparent}}.usa-nav-primary button[aria-expanded=false]{background-image:url(../img/plus-alt.png);background-image:url(../img/plus-alt.svg);background-repeat:no-repeat;background-position:right 0 center;background-size:1rem}@media screen and (min-width:951px){.usa-nav-primary button[aria-expanded=false]{background-image:url(../img/angle-arrow-down.png);background-image:url(../img/angle-arrow-down.svg);background-position:right 1.5rem top 40%}}@media screen and (min-width:951px){.usa-nav-primary button[aria-expanded=false]:hover{background-image:url(../img/angle-arrow-down-primary.png);background-image:url(../img/angle-arrow-down-primary.svg)}}.usa-nav-primary button[aria-expanded=true]{background-image:url(../img/minus-alt.png);background-image:url(../img/minus-alt.svg);background-repeat:no-repeat;background-position:right 0 center;background-size:1rem}@media screen and (min-width:951px){.usa-nav-primary button[aria-expanded=true]{background-color:#112e51;color:#fff;background-image:url(../img/angle-arrow-down-hover.png);background-image:url(../img/angle-arrow-down-hover.svg);background-position:right 1.5rem top 40%}.usa-nav-primary button[aria-expanded=true]:hover{background-color:#112e51}.usa-nav-primary button[aria-expanded=true] span{border-bottom:.4rem solid #0071bc;padding-bottom:.6rem;color:#fff}}@media screen and (min-width:951px){.usa-nav-primary .usa-current,.usa-nav-primary a.usa-current{border-left:0;padding-left:1.5rem}.usa-nav-primary .usa-current:hover span,.usa-nav-primary a.usa-current:hover span{color:#0071bc}.usa-nav-primary .usa-current span,.usa-nav-primary a.usa-current span{border-bottom:.4rem solid #0071bc;padding-bottom:.6rem;color:#212121}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-link:hover span{border-bottom:.7rem solid #0071bc;padding-bottom:.9rem}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-primary button[aria-expanded=true] span{border-bottom:.7rem solid #0071bc;padding-bottom:.9rem}}@media screen and (min-width:951px){.usa-header-extended .usa-nav-primary .usa-current span{border-bottom:.7rem solid #0071bc;padding-bottom:.9rem}}.usa-nav-secondary{margin-top:1.5rem}@media screen and (min-width:951px){.usa-nav-secondary{margin-top:0;position:absolute;right:3rem;top:-5.7rem}}.usa-nav-secondary .usa-search{margin-top:1.5rem;margin-bottom:0}@media screen and (min-width:951px){.usa-nav-secondary .usa-search{margin-top:-.9rem;margin-bottom:0;margin-left:0;float:left}}.usa-nav-secondary-links{margin-top:2.4rem}@media screen and (min-width:951px){.usa-nav-secondary-links{float:left;margin-top:0}}@media screen and (min-width:951px){.usa-nav-secondary-links li{display:inline;padding-left:.5rem}}@media screen and (min-width:951px){.usa-nav-secondary-links li:not(:last-child):after{color:#d6d7d9;content:"|";padding-left:.5rem}}.usa-nav-secondary-links .usa-header-search-button,.usa-nav-secondary-links a{color:#5b616b;display:inline-block;font-size:1.5rem;text-decoration:none}.usa-nav-secondary-links .usa-header-search-button:hover,.usa-nav-secondary-links a:hover{color:#0071bc;text-decoration:underline}.usa-nav-secondary-links .usa-header-search-button{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto;display:none}.usa-nav-secondary-links .usa-header-search-button:hover{background-color:transparent}@media screen and (min-width:951px){.usa-nav-secondary-links .usa-header-search-button{background-image:url(../img/search-alt.png);background-image:url(../img/search-alt.svg);background-repeat:no-repeat;background-position:0;background-size:2.2rem;display:inline-block;padding-left:2.3rem}}@media screen and (min-width:951px){.usa-nav-secondary-links .usa-header-search-button.is-hidden{display:none}}@media screen and (min-width:951px){.usa-nav-secondary-links a.usa-current{border-left:0;padding-left:0}}.usa-nav-submenu{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;margin:0;width:100%}.usa-nav-submenu>li{margin-bottom:0}.usa-nav-submenu li{border:none}.usa-nav-submenu a{padding-left:2.8rem;line-height:1.3}.usa-nav-submenu a.usa-current,.usa-nav-submenu a:hover{border:none;padding-left:2.8rem}.usa-nav-submenu .usa-sidenav-sub_list a{padding-left:3.8rem}.usa-nav-submenu .usa-sidenav-sub_list a:focus{outline-offset:0}.usa-nav-submenu .usa-sidenav-sub_list a:hover{padding-left:3.8rem}@media screen and (min-width:951px){.usa-nav-submenu{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;padding-top:.75rem;padding-bottom:.9rem;background-color:#112e51;width:21.5rem;position:absolute}.usa-nav-submenu>li{margin-bottom:0}}.usa-nav-submenu[aria-hidden=true]{display:none}@media screen and (min-width:951px){.usa-nav-submenu a{color:#fff;padding-left:1.5rem}}@media screen and (min-width:951px){.usa-nav-submenu a:hover{background-color:#112e51;color:#fff;padding-left:1.5rem;text-decoration:underline}}.usa-nav-submenu li{font-size:1.5rem;margin-bottom:0}.usa-nav-close{background-color:transparent;border:0;border-radius:0;font-weight:400;margin:0;padding:0;text-align:left;-webkit-font-smoothing:auto;margin:-1.2rem -1.5rem 1.5rem auto;float:right;height:4.4rem;text-align:center;width:4.4rem}.usa-nav-close:hover{background-color:transparent}@media screen and (min-width:951px){.usa-nav-close{display:none}}.usa-nav-close img{width:1.3rem}.usa-nav-close+*{clear:both}.usa-mobile_nav-active{overflow:hidden}@media screen and (min-width:951px){.usa-megamenu{padding-top:3.15rem;padding-bottom:3.15rem;left:-1rem;width:100%}}@media screen and (min-width:951px){.usa-megamenu:before{background-color:#112e51;content:"";display:block;height:100%;position:absolute;top:0;width:1000%;right:100%}}@media screen and (min-width:951px){.usa-megamenu:after{background-color:#112e51;content:"";display:block;height:100%;position:absolute;top:0;width:1000%;left:100%}}@media screen and (min-width:951px){.usa-header-basic-megamenu .usa-nav{padding-left:0;padding-top:0;width:100%}}.usa-header-basic-megamenu .usa-nav-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media screen and (min-width:951px){.usa-header-basic-megamenu .usa-nav-inner{display:block;float:right;margin-top:-3.8rem}}@media screen and (min-width:951px){.usa-header-basic-megamenu .usa-nav-submenu .usa-grid-full{margin-left:-1.8rem}}@media screen and (min-width:951px){.usa-megamenu-col{float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-megamenu-col:last-child{margin-right:0}.usa-megamenu-col:nth-child(2n){float:left;display:block;margin-right:2.35765%;width:23.23176%}.usa-megamenu-col:nth-child(2n):last-child{margin-right:0}.usa-megamenu-col:nth-child(4n){margin-right:0}}.usa-megamenu-col>ul{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0}.usa-megamenu-col>ul>li{margin-bottom:0}.usa-search{max-width:none;position:relative}.usa-search:after{clear:both;content:"";display:block}.usa-search .usa-search-submit,.usa-search [type=submit]{background-image:url(../img/search.png);background-image:url(../img/search.svg);background-position:50%;background-repeat:no-repeat;border-bottom-left-radius:0;border-top-left-radius:0;height:3.3rem;margin:0;padding:0;width:4.5rem}@media screen and (min-width:481px){.usa-search .usa-search-submit,.usa-search [type=submit]{background-image:none;width:8.5rem}}@media screen and (min-width:481px){.usa-search.usa-search-big .usa-search-input,.usa-search.usa-search-big [type=search]{font-size:1.7rem;height:4.4rem;width:calc(100% - 11.6rem)}.usa-search.usa-search-big .usa-search-submit,.usa-search.usa-search-big [type=submit]{font-size:2rem;height:4.4rem;width:11.6rem}}@media screen and (min-width:481px){.usa-search.usa-search-small .usa-search-input,.usa-search.usa-search-small [type=search]{width:calc(100% - 4.5rem)}.usa-search.usa-search-small .usa-search-submit,.usa-search.usa-search-small [type=submit]{background-image:url(../img/search.png);background-image:url(../img/search.svg);background-position:50%;background-repeat:no-repeat;width:4.5rem}}@media screen and (max-width:950px){.usa-search.usa-search-small.usa-sr-only{left:auto;position:relative}}input[type=search]{box-sizing:border-box;-webkit-appearance:none}.usa-search-input,[type=search]{padding-top:0;padding-bottom:0;border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;box-sizing:border-box;float:left;font-size:1.4rem;height:3.3rem;margin:0;width:calc(100% - 4.5rem)}@media screen and (min-width:481px){.usa-search-input,[type=search]{width:calc(100% - 8.5rem)}}.usa-search-submit-text{position:absolute;left:-999em}@media screen and (min-width:481px){.usa-search-submit-text{position:static}}.usa-section{padding-top:3rem;padding-bottom:3rem}@media screen and (min-width:600px){.usa-section{padding-top:6rem;padding-bottom:6rem}}.usa-section-light{background-color:#f1f1f1}.usa-section-dark{background-color:#112e51;color:#fff}.usa-section-dark h1,.usa-section-dark h2,.usa-section-dark h3,.usa-section-dark h4,.usa-section-dark h5,.usa-section-dark h6{color:#02bfe7}.usa-section-dark p{color:#fff}.usa-section-dark a{color:#d6d7d9}.usa-section-dark a:hover{color:#fff}.usa-sidenav-list{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0}.usa-sidenav-list>li{margin-bottom:0}.usa-sidenav-list>li{background-color:transparent;border-top:1px solid #5b616b;font-size:1.7rem}.usa-sidenav-list>li:first-child{border-top:none}.usa-sidenav-list a{border:none;color:#212121;display:block;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;line-height:1.3;padding:.85rem 1rem .85rem 1.8rem;text-decoration:none}.usa-sidenav-list a:hover{background-color:#f1f1f1;color:#0071bc;text-decoration:none}.usa-sidenav-list a:focus{outline-offset:0;position:relative;z-index:1}.usa-sidenav-list a.usa-current{border-left:.4rem solid #0071bc;color:#0071bc;font-weight:700;padding-left:1.4rem}.usa-sidenav-sub_list{margin-top:0;margin-bottom:0;list-style-type:none;padding-left:0;margin:0;width:100%}.usa-sidenav-sub_list>li{margin-bottom:0}.usa-sidenav-sub_list li{border:none;font-size:1.5rem}.usa-sidenav-sub_list a{padding-left:2.8rem;line-height:1.3}.usa-sidenav-sub_list a.usa-current,.usa-sidenav-sub_list a:hover{border:none;padding-left:2.8rem}.usa-sidenav-sub_list .usa-sidenav-sub_list a{padding-left:3.8rem}.usa-sidenav-sub_list .usa-sidenav-sub_list a:focus{outline-offset:0}.usa-sidenav-sub_list .usa-sidenav-sub_list a:hover{padding-left:3.8rem}.usa-skipnav{background:transparent;color:#212121;left:0;padding:1rem 1.5rem;position:absolute;top:-4.2rem;transition:all .2s ease-in-out;z-index:100}.usa-skipnav:focus{background:#fff;left:0;outline:0;position:absolute;top:0;transition:all .2s ease-in-out}
4
4
  /*# sourceMappingURL=uswds.min.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["uswds.css"],"names":[],"mappings":"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B,AACD,yBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,UAAY,CACb,AACD,oCACE,cAAgB,CACjB,AACD,qBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,gCACE,cAAgB,CACjB,AACD,mCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,kCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,kCACE,cAAgB,CACjB,AACD,qCACE,cAAgB,CACjB,AACD,yBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,oCACE,cAAgB,CACjB,AACD,0BACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,qCACE,cAAgB,CACjB,CACF,AAED,qCACE,qBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,UAAY,CACb,AACD,gCACE,cAAgB,CACjB,AACD,oBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,+BACE,cAAgB,CACjB,AACD,qBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,gCACE,cAAgB,CACjB,AACD,sBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,iCACE,cAAgB,CACjB,AACD,sBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,iCACE,cAAgB,CACjB,AACD,oCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,+CACE,cAAgB,CACjB,AACD,oCACE,cAAgB,CACjB,AACD,yBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,oCACE,cAAgB,CACjB,AACD,qBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,gCACE,cAAgB,CACjB,AACD,mCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,8CACE,cAAgB,CACjB,AACD,mCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,kCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,cAAgB,CACjB,AACD,kCACE,cAAgB,CACjB,AACD,qCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,cAAgB,CACjB,AACD,gDACE,cAAgB,CACjB,AACD,sCACE,cAAgB,CACjB,AACD,yBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,oCACE,cAAgB,CACjB,AACD,0BACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,qCACE,cAAgB,CACjB,CACF,AAED,aACE,cAAgB,CACjB,AAED,wBACE,mBAAqB,CACtB,AAED,sBACE,qBAAuB,CACxB,AAED,uBACE,qBAAuB,CACxB,AAED,sBACE,qBAAuB,CACxB,AAED,0BACE,qBAAuB,CACxB,AAED,qBACE,qBAAuB,CACxB,AAED,2BACE,qBAAuB,CACxB,AAED,uBACE,qBAAuB,CACxB,AAED,0BACE,qBAAuB,CACxB,AAED,wBACE,qBAAuB,CACxB,AAED,4BACE,qBAAuB,CACxB,AAED,aACE,kBAAmB,AACnB,WAAa,CACd,AAGD,6IASE,kCAAmC,AACnC,mCAAoC,AACpC,gBAAkB,AAClB,kBAAoB,AACpB,mBAAqB,AACrB,wBAAyB,AACzB,qBAAsB,AACtB,gBAAiB,AACjB,yBAA0B,AAC1B,SAAU,AACV,kBAAmB,AACnB,WAAe,AACf,eAAgB,AAChB,qBAAsB,AACtB,6EAA6F,AAC7F,iBAAkB,AAClB,gBAAiB,AACjB,cAAe,AACf,aAAc,AACd,kBAAmB,AACnB,kBAAmB,AACnB,qBAAsB,AACtB,UAAY,CACb,AAED,oCACE,6IASE,UAAY,CACb,CACF,AAED,yeAiBE,yBAA0B,AAC1B,gBAAiB,AACjB,WAAe,AAC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B,AACvB,wBAA0B,CAC3B,AAED,oDACE,cAAgB,CACjB,AAED,eACE,iBAAkB,AAClB,mBAAqB,AACrB,mBAAsB,CACvB,AAED,MAEE,eAAgB,AAChB,kBAAmB,AACnB,mBAAqB,CACtB,AAED,GACE,gBAAiB,AACjB,kBAAqB,CACtB,AAED,cACE,eAAiB,CAClB,AAED,kFAcE,YAAc,CACf,AAED,mBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,cAAgB,CACjB,AAED,sBACE,eAAiB,CAClB,AAED,MACE,iBAAkB,AAClB,aAAc,AACd,cAAgB,CACjB,AAED,8BAEE,wBAA0B,CAC3B,AAED,SACE,eAAiB,CAClB,AAED,eACE,eAAiB,CAClB,AAED,kBAEE,sBAA0B,AAC1B,yBAA0B,AAC1B,cAAgB,CACjB,AAED,+BACE,4BAA8B,CAC/B,AAED,+BACE,YAAc,CACf,AAED,kDAEE,cAAe,AACf,cAAgB,CACjB,AAED,KACE,6EAA6F,AAC7F,cAAgB,CACjB,AAED,KACE,gBAAkB,CACnB,AAED,EACE,gBAAiB,AACjB,kBAAmB,AACnB,cAAgB,CACjB,AAED,EACE,cAAe,AACf,yBAA2B,CAC5B,AAED,iBACE,aAAe,CAChB,AAED,UACE,aAAe,CAChB,AAED,QACE,2CAA6C,AAC7C,SAAW,CACZ,AAED,yBACE,uDAA0D,AAC1D,uDAA0D,AAC1D,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,aAAe,AACf,mBAAoB,AACpB,gBAAiB,AACjB,WAAc,CACf,AAED,+BACE,qDAAwD,AACxD,oDAAwD,CACzD,AAED,6BACE,2DAA8D,AAC9D,2DAA8D,AAC9D,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,aAAe,AACf,mBAAoB,AACpB,gBAAiB,AACjB,WAAc,CACf,AAED,mCACE,yDAA4D,AAC5D,wDAA4D,CAC7D,AAED,kBAME,WAAY,AACZ,qEAAqF,AACrF,gBAAiB,AACjB,mBAAoB,AACpB,gBAAkB,CACnB,AAED,GACE,eAAgB,AAChB,eAAiB,CAClB,AAED,GACE,eAAgB,AAChB,eAAiB,CAClB,AAED,GACE,eAAgB,AAChB,eAAiB,CAClB,AAED,GACE,iBAAkB,AAClB,eAAiB,CAClB,AAED,GACE,iBAAkB,AAClB,eAAiB,CAClB,AAED,GACE,6EAA6F,AAC7F,iBAAkB,AAClB,gBAAiB,AACjB,wBAA0B,CAC3B,AAED,qBAIE,iBAAmB,CACpB,AAED,qKAGE,eAAiB,CAClB,AAED,kBACE,eAAiB,CAClB,AAED,oDAIE,4EAA6F,CAC9F,AAED,YACE,mBAAoB,AACpB,eAAiB,CAClB,AAED,wDAIE,oEAAqF,CACtF,AAED,aACE,eAAgB,AAChB,gBAAiB,AACjB,eAAiB,CAClB,AAED,oCACE,aACE,eAAgB,AAChB,eAAiB,CAClB,CACF,AAED,oCACE,aACE,iBAAkB,AAClB,eAAiB,CAClB,CACF,AAED,eACE,qEAAqF,AACrF,eAAgB,AAChB,gBAAiB,AACjB,eAAiB,CAClB,AAED,iBACE,iBAAmB,CACpB,AAED,sBACE,WAAe,AACf,OAAQ,AACR,eAAgB,AAChB,kBAAmB,AACnB,KAAO,CACR,AAED,gBACE,YAAc,CACf,AAED,eACE,eAAiB,CAClB,AAED,qBACE,wBAA0B,CAC3B,AAED,iDAEE,UAAe,CAChB,AAED,uBACE,aAAe,CAChB,AAED,6BACE,UAAe,CAChB,AAED,gBACE,iBAAkB,AAClB,YAAc,CACf,AAED,6EAGE,YAAc,CACf,AAED,0EAGE,eAAiB,CAClB,AAED,uaASE,YAAc,CACf,AAED,oCACE,2TASE,YAAc,CACf,CACF,AAED,qZASE,eAAiB,CAClB,AAED,oCACE,kTASE,eAAiB,CAClB,CACF,AAED,uCAEE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,cAAe,AACf,SAAU,AACV,UAAW,AACX,UAAY,CACb,AAED,6CAEE,eAAiB,CAClB,AAED,yDAEE,eAAiB,CAClB,AAED,qEAEE,iBAAmB,CACpB,AAED,iFAEE,iBAAmB,CACpB,AAED,4JAIE,eAAiB,CAClB,AAED,6CAEE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,cAAe,AACf,SAAU,AACV,UAAW,AACX,UAAY,CACb,AAED,mDAEE,eAAiB,CAClB,AAED,mDAEE,yBAA0B,AAC1B,6EAA6F,AAC7F,gBAAiB,AACjB,kBAAmB,AACnB,UAAY,CACb,AAED,2DAEE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AAEjB,UAAW,AACX,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,yBAA0B,AAC1B,uCAA0C,AAC1C,uCAA0C,AAC1C,sCAAuC,AACvC,4BAA6B,AAC7B,qBAAsB,AACtB,cAAe,AACf,eAAgB,AAChB,qBAAsB,AACtB,6EAA6F,AAC7F,gBAAiB,AACjB,SAAU,AACV,kCAAmC,AACnC,UAAY,CACb,AAED,uEAEE,4BAA8B,CAC/B,AAED,uEAEE,0CAA6C,CAC9C,AAED,uEAEE,yBAA0B,AAC1B,aAAe,CAChB,AAED,sYAYE,QAAU,CACX,AAED,yFAEE,sCAAyC,AACzC,sCAAyC,AACzC,4BAA6B,AAC7B,sBAAwB,CACzB,AAED,6CAEE,yBAA0B,AAC1B,6EAA6F,AAC7F,gBAAiB,AACjB,kBAAmB,AACnB,UAAY,CACb,AAED,+CACE,gCAAiC,AACjC,8BAA+B,AAC/B,8BAAgC,CACjC,AAED,uBACE,sBAA0B,AAC1B,cAAe,AACf,YAAc,CACf,AAED,oCACE,YAAc,CACf,AAED,mCACE,eAAiB,CAClB,AAED,0CACE,kBAAmB,AACnB,WAAa,CACd,AAED,yCACE,YAAc,CACf,AAED,sBACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AAEjB,UAAW,AACX,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,yBAA0B,AAC1B,uCAA0C,AAC1C,uCAA0C,AAC1C,sCAAuC,AACvC,4BAA6B,AAC7B,qBAAsB,AACtB,cAAe,AACf,eAAgB,AAChB,qBAAsB,AACtB,6EAA6F,AAC7F,gBAAiB,AACjB,SAAU,AACV,kCAAmC,AACnC,UAAY,CACb,AAED,4BACE,4BAA8B,CAC/B,AAED,4BACE,0CAA6C,CAC9C,AAED,4BACE,yBAA0B,AAC1B,aAAe,CAChB,AAED,sJAME,QAAU,CACX,AAED,2CACE,sCAAyC,AACzC,sCAAyC,AACzC,4BAA6B,AAC7B,sBAAwB,CACzB,AAED,WACE,yBAA0B,AAC1B,8BAA+B,AAC/B,4BAA6B,AAC7B,qBAAsB,AACtB,iBAAkB,AAClB,WAAa,CACd,AAED,oCACE,WACE,sBAAwB,CACzB,CACF,AAED,aACE,aAAe,CAChB,AAED,sCACE,aAAe,CAChB,AAED,cACE,gBAAiB,AACjB,eAAgB,AAChB,gBAAkB,CACnB,AAED,gBACE,mBAAoB,AACpB,kBAAoB,CACrB,AAED,gBACE,mBAAoB,AACpB,oBAAqB,AACrB,kBAAoB,CACrB,AAED,oCACE,gBACE,iBAAmB,CACpB,CACF,AAED,8BACE,gBAAmB,CACpB,AAED,6BACE,mBAAsB,CACvB,AAED,mBACE,oBAAqB,AACrB,YAAc,CACf,AAED,oCACE,mBACE,gBAAkB,CACnB,CACF,AAED,gBACE,6EAA6F,AAC7F,gBAAiB,AACjB,YAAc,CACf,AAED,mBACE,yBAA0B,AAC1B,gDAAmD,AACnD,+CAAmD,CACpD,AAED,mBACE,yBAA0B,AAC1B,gDAAmD,AACnD,+CAAmD,CACpD,AAED,iBACE,yBAA0B,AAC1B,8CAAiD,AACjD,6CAAiD,CAClD,AAED,gBACE,yBAA0B,AAC1B,6CAAgD,AAChD,4CAAgD,CACjD,AAED,mBACE,qBAAuB,CACxB,AAED,qBACE,YAAa,AACb,uBAAyB,CAC1B,AAED,YACE,yBAA0B,AAC1B,oBAAuB,CACxB,AAED,oCACE,YACE,iBAAkB,AAClB,gBAAkB,CACnB,CACF,AAED,oBAGE,wBAAqB,AACrB,6BAA8B,AAC9B,iBAAkB,AAElB,UAAY,CACb,AAED,oCACE,oBACE,sBAAuB,AACvB,gBAAkB,CACnB,CACF,AAED,oCACE,oBACE,mBAAoB,AACpB,iBAAmB,CACpB,CACF,AAED,kCACE,eAAiB,CAClB,AAED,oCACE,kCACE,YAAc,CACf,CACF,AAED,kBACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,qBAAsB,AACtB,oBAAqB,AACrB,gBAAkB,CACnB,AAED,wBACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,AAED,oCACE,kBACE,mBAAoB,AACpB,iBAAmB,CACpB,CACF,AAED,mBACE,mBAAqB,AACrB,sBAAwB,AACxB,iBAAkB,AAClB,eAAiB,CAClB,AAED,oCACE,mBACE,cAAe,AACf,gBAAkB,CACnB,CACF,AAED,qBACE,aAAc,AACd,gBAAiB,AACjB,eAAgB,AAChB,gBAAiB,AACjB,qBAAuB,CACxB,AAED,oCACE,qBACE,eAAgB,AAChB,kBAAmB,AACnB,oBAAsB,CACvB,CACF,AAED,uBACE,WAAY,AACZ,kBAAmB,AACnB,eAAgB,AAChB,YAAc,CACf,AAED,oCACE,uBACE,mBAAqB,AACrB,UAAY,CACb,CACF,AAED,4BACE,yBAA0B,AAC1B,sBAAuB,AACvB,mBAAoB,AACpB,gCAAiC,AACjC,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,iBAAkB,AAClB,kBAAmB,AACnB,kBAAoB,CACrB,AAED,oCACE,4BACE,mBAAoB,AACpB,cAAe,AACf,iBAAkB,AAClB,gBAAiB,AACjB,aAAc,AACd,eAAiB,CAClB,CACF,AAED,8CACE,aAAe,CAChB,AAED,oCACE,8CACE,gBAAkB,CACnB,CACF,AAED,gCACE,mBAAqB,CACtB,AAED,oCACE,gCACE,kBAAqB,CACtB,CACF,AAED,8BACE,gBAAiB,AACjB,kBAAoB,CACrB,AAED,oCACE,8BACE,gBAAiB,AACjB,qBAAuB,CACxB,CACF,AAED,mBACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,mBAAoB,AACpB,oBAAqB,AACrB,4BAA6B,AAC7B,cAAe,AACf,cAAe,AACf,iBAAkB,AAClB,cAAe,AACf,OAAQ,AACR,kBAAmB,AACnB,0BAA2B,AAC3B,MAAO,AACP,UAAY,CACb,AAED,yBACE,4BAA8B,CAC/B,AAED,oCACE,mBACE,cAAe,AACf,eAAgB,AAEhB,eAAgB,AAChB,YAAgB,AAChB,gBAAiB,AACjB,kBAAmB,AACnB,sBAAuB,AACvB,UAAe,CAEhB,CACF,AAED,yBACE,cAAe,AACf,yBAA2B,CAC5B,AAED,wCACE,qBAAuB,CACxB,AAED,8CACE,0DAA2D,AAC3D,0DAA2D,AAC3D,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,YAAa,AACb,WAAY,AAEZ,aAAe,CAEhB,AAED,oDACE,gEAAiE,AACjE,+DAAiE,CAClE,AAED,8CACE,yBAA2B,CAC5B,AAED,uCACE,sBAAuB,AACvB,aAAe,CAChB,AAED,6CACE,uCAAwC,AACxC,uCAAwC,AACxC,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,cAAe,AACf,aAAc,AAEd,aAAe,CAEhB,AAED,oCACE,uCACE,YAAgB,AAChB,UAAW,AACX,iBAAmB,CACpB,AACD,6CACE,wDAAyD,AACzD,wDAAyD,AACzD,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,YAAa,AACb,WAAY,AAEZ,aAAe,CAEhB,AACD,mDACE,8DAA+D,AAC/D,6DAA+D,CAChE,AACD,6CACE,yBAA2B,CAC5B,CACF,AAED,6CACE,kBAAmB,AACnB,aAAc,AACd,WAAa,CACd,AAED,oCACE,6CACE,eAAiB,CAClB,CACF,AAED,+DACE,YAAc,CACf,AAED,oCACE,+DACE,cAAgB,CACjB,CACF,AAED,iBACE,YAAc,CACf,AAED,+BACE,aAAe,CAChB,AAED,qCACE,cAAe,AACf,cAAe,AACf,gBAAiB,AACjB,aAAc,AACd,oBAAqB,AACrB,iBAAkB,AAClB,oBAAsB,CACvB,AAED,oCACE,qCACE,eAAiB,CAClB,CACF,AAED,2CACE,yBAA2B,CAC5B,AAED,cACE,eAAoB,CACrB,AAED,0BACE,oBAAqB,AACrB,gBAAkB,CACnB,AAED,4BACE,wBAA0B,CAC3B,AAED,wDACE,oBAAqB,AACrB,oBAAsB,CACvB,AAED,oCACE,wDACE,eAAgB,AAChB,eAAiB,CAClB,CACF,AAED,2DACE,gBAAkB,CACnB,AAED,oCACE,2DACE,aAAe,CAChB,CACF,AAED,oCACE,2CACE,oBAAqB,AACrB,oBAAsB,CACvB,CACF,AAED,+CACE,SAAW,CACZ,AAED,oCACE,+CACE,oBAAqB,AACrB,gBAAkB,CACnB,CACF,AAED,qCACE,2EACE,gBAAiB,AACjB,aAAe,CAChB,CACF,AAED,qCACE,sFACE,cAAgB,CACjB,CACF,AAED,oCACE,sCACE,yBAA0B,AAC1B,sBAAuB,AACvB,kBAAoB,CACrB,CACF,AAED,mCACE,aAAe,CAChB,AAED,qCACE,6DACE,gBAAiB,AACjB,aAAe,CAChB,CACF,AAED,qCACE,wEACE,cAAgB,CACjB,CACF,AAED,6CACE,mBAAqB,CACtB,AAED,oCACE,6CACE,oBAAqB,AACrB,gBAAkB,CACnB,AACD,4DACE,yBAA0B,AAC1B,sBAAuB,AACvB,kBAAoB,CACrB,CACF,AAED,oCACE,4CACE,QAAU,CACX,CACF,AAED,oCACE,0CACE,iBAAkB,AAClB,mBAAqB,CACtB,CACF,AAED,oCACE,0CACE,UAAY,CACb,CACF,AAED,qCACE,0CACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,qDACE,cAAgB,CACjB,CACF,AAGD,4DAGE,4BAA8B,CAC/B,AAED,oCACE,4DAGE,WAAa,CACd,CACF,AAED,kFAGE,+BAAiC,CAClC,AAED,oCACE,kFAGE,kBAAoB,CACrB,CACF,AAGD,mBACE,oBAAqB,AACrB,oBAAqB,AACrB,oBAAsB,CACvB,AAED,oCACE,mBACE,YAAa,AACb,SAAW,CACZ,CACF,AAED,uCACE,YAAc,CACf,AAED,0BACE,WAAY,AACZ,eAAgB,AAChB,iBAAmB,CACpB,AAED,yBACE,UAAY,CACb,AAED,8BACE,yBAA0B,AAC1B,oBAAqB,AACrB,gBAAkB,CACnB,AAED,gCACE,aAAe,CAChB,AAED,oCACE,kCACE,gBAAkB,CACnB,CACF,AAED,oCACE,0BACE,gBAAkB,CACnB,CACF,AAED,oBACE,oBAAsB,CACvB,AAED,oCACE,4CACE,oBAAqB,AACrB,gBAAkB,CACnB,CACF,AAED,mBACE,qBAAuB,CACxB,AAED,oCACE,mBACE,gBAAkB,CACnB,CACF,AAED,8BACE,+BAAiC,CAClC,AAED,oCACE,8BACE,kBAAoB,CACrB,CACF,AAED,sBACE,eAAiB,CAClB,AAED,4CACE,4CAA+C,AAC/C,4CAA+C,AAC/C,2BAAmC,AACnC,4BAA6B,AAC7B,uBAAwB,AACxB,cAAe,AACf,mBAAqB,CACtB,AAED,oCACE,4CACE,gBAAiB,AACjB,oBAAqB,AACrB,iBAAkB,AAClB,cAAgB,CACjB,CACF,AAED,8CACE,aAAc,AACd,eAAiB,CAClB,AAED,0BAEE,gBAAkB,CACnB,AAED,6BACE,YAAc,CACf,AAED,mDAEE,6CAAgD,AAChD,6CAAgD,AAChD,eAAgB,AAChB,aAAe,CAChB,AAED,oCACE,mDACE,gBAAiB,AACjB,cAAgB,CACjB,CACF,AAED,kBACE,SAAU,AACV,cAAgB,CACjB,AAED,oCACE,oBACE,SAAU,AACV,cAAgB,CACjB,CACF,AAED,qBACE,eAAiB,CAClB,AAED,0BACE,WAAY,AACZ,eAAiB,CAClB,AAED,yBACE,eAAiB,CAClB,AAED,4BACE,YAAc,CACf,AAED,oCACE,4BACE,eAAiB,CAClB,CACF,AAED,8BACE,cAAe,AACf,gBAAkB,CACnB,AAED,oCACE,8BACE,qBAAsB,AACtB,gBAAkB,CACnB,CACF,AAED,sFACE,4BAA6B,AAC7B,wBAAmC,AACnC,4BAA6B,AAC7B,0BAA2B,AAC3B,qBAAsB,AACtB,cAAe,AACf,aAAc,AACd,kBAAmB,AACnB,kBAAmB,AACnB,YAAc,CACf,AAED,oCACE,sFACE,kBAAmB,AACnB,WAAa,CACd,CACF,AAED,+GACE,kBAAmB,AACnB,WAAa,CACd,AAED,mBACE,6DAAgE,AAChE,4DAAgE,CACjE,AAED,kBACE,4DAA+D,AAC/D,2DAA+D,CAChE,AAED,kBACE,4DAA+D,AAC/D,2DAA+D,CAChE,AAED,cACE,wDAA2D,AAC3D,uDAA2D,CAC5D,AAED,OACE,eAAiB,CAClB,AAED,mBAEE,cAAe,AACf,oBAAqB,AACrB,iBAAmB,CACpB,AAED,oCACE,mBAEE,mBAAoB,AACpB,oBAAqB,AACrB,UAAY,CACb,CACF,AAED,iDAEE,oBAAsB,CACvB,AAED,oCACE,UACE,eAAiB,CAClB,CACF,AAED,eACE,YAAa,AACb,6EAA6F,AAC7F,iBAAkB,AAClB,iBAAmB,CACpB,AAED,iBACE,UAAY,CACb,AAED,SACE,YAAa,AACb,SAAU,AACV,SAAW,CACZ,AAED,oCACE,gBACE,eAAiB,CAClB,CACF,AAMD,oCACE,qBACE,cAAgB,CACjB,CACF,AAMD,oCACE,uBACE,eAAiB,CAClB,CACF,AAED,oCACE,gBACE,gBAAkB,CACnB,CACF,AAED,oCACE,6BACE,eAAiB,CAClB,CACF,AAED,oCACE,sBACE,WAAY,AACZ,SAAW,CACZ,CACF,AAED,4BACE,kBAAoB,CACrB,AAED,6BACE,kBAAoB,CACrB,AAED,oCACE,uBACE,WAAY,AACZ,SAAW,CACZ,CACF,AAED,6BACE,kBAAoB,CACrB,AAED,8BACE,kBAAoB,CACrB,AAED,oCACE,sBACE,WAAY,AACZ,UAAY,CACb,CACF,AAED,4BACE,kBAAoB,CACrB,AAED,6BACE,kBAAoB,CACrB,AAED,qBACE,eAAoB,CACrB,AAED,eACE,gBAAiB,AACjB,cAAe,AACf,cAAgB,CACjB,AAED,kBACE,qBAAsB,AACtB,gBAAiB,AACjB,gBAAiB,AACjB,aAAc,AACd,iBAAkB,AAClB,gBAAkB,CACnB,AAED,yBACE,YAAa,AACb,qBAAsB,AACtB,YAAa,AACb,kBAAmB,AACnB,WAAa,CACd,AAED,8BACE,0CAA6C,AAC7C,0CAA6C,AAC7C,yBAA0B,AAC1B,4BAA6B,AAC7B,oBAAsB,CACvB,AAED,yDACE,kBAAoB,CACrB,AAED,oCACE,yDACE,kBAAoB,CACrB,CACF,AAED,oCACE,oEACE,eAAiB,CAClB,CACF,AAED,+EACE,eAAiB,CAClB,AAED,uCACE,iBAAmB,CACpB,AAED,qDACE,YAAc,CACf,AAED,YACE,WAAY,AACZ,YAAc,CACf,AAED,oCACE,YACE,+BAAiC,CAClC,CACF,AAED,cACE,kBAAoB,CACrB,AAED,wBACE,oBAAsB,CACvB,AAED,oCACE,wBACE,YAAa,AACb,gBAAiB,AACjB,iBAAmB,CACpB,CACF,AAED,UACE,WAAY,AACZ,iBAAkB,AAClB,kBAAoB,CACrB,AAED,oCACE,UACE,mBAAoB,AACpB,aAAe,CAChB,CACF,AAED,YACE,cAAe,AACf,oBAAsB,CACvB,AAED,aACE,YAAc,CACf,AAED,oCACE,aACE,aAAe,CAChB,CACF,AAED,eACE,cAAe,AACf,iBAAkB,AAClB,kBAAmB,AACnB,gBAAiB,AACjB,QAAU,CACX,AAED,oCACE,eACE,cAAe,AACf,iBAAkB,AAClB,eAAiB,CAClB,CACF,AAED,cAEE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,yBAA0B,AAC1B,WAAe,AACf,eAAgB,AAChB,YAAa,AACb,iBAAkB,AAClB,YAAa,AACb,iBAAkB,AAClB,kBAAmB,AACnB,qBAAsB,AACtB,yBAA0B,AAC1B,YAAc,CAEf,AAED,oBACE,4BAA8B,CAC/B,AAED,oCACE,cACE,YAAc,CACf,CACF,AAED,oBACE,WAAe,AACf,wBAA0B,CAC3B,AAED,sBACE,UAAe,CAChB,AAED,aACE,eAAgB,AAChB,MAAO,AACP,QAAS,AACT,SAAU,AACV,OAAQ,AACR,gBAAoB,AACpB,UAAW,AACX,+BAAiC,AACjC,kBAAmB,AACnB,YAAc,CACf,AAED,wBACE,WAAa,AACb,kBAAoB,CACrB,AAED,oCACE,4BACE,cAAe,AACf,iBAAmB,CACpB,CACF,AAED,oCACE,8BACE,kBAAmB,AACnB,SAAW,CACZ,CACF,AAED,oCACE,iCACE,kBAAoB,CACrB,CACF,AAED,oCACE,+BACE,gBAAiB,AACjB,kBAAoB,CACrB,CACF,AAED,oCACE,wBACE,iBAAkB,AAClB,aAAe,CAChB,CACF,AAED,oCACE,iCACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,mBAAoB,AACpB,kBAAmB,AACnB,cAAe,AACf,YAAa,AACb,gBAAkB,CACnB,AACD,uCACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAED,oCACE,8BACE,6BAA8B,AAC9B,WAAY,AACZ,UAAW,AACX,UAAY,CACb,CACF,AAED,oCACE,oCACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,mBAAoB,AACpB,kBAAmB,AACnB,gBAAiB,AACjB,iBAAkB,AAClB,iBAAmB,CACpB,AACD,0CACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAED,oCACE,4CACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAMD,oCACE,mIAEE,wCAA0C,CAC3C,CACF,AAED,oCACE,mCACE,kBAAoB,CACrB,CACF,AAED,oCACE,qDACE,mBAAqB,CACtB,CACF,AAED,oCACE,mCACE,iBAAmB,CACpB,CACF,AAED,UACE,iBAAkB,AAClB,oBAAqB,AACrB,sCAAyC,AACzC,wBAA4B,AAC5B,qBAAuB,CACxB,AAED,sBACE,UAAe,CAChB,AAED,iCACE,aAAe,CAChB,AAED,kBACE,yBAA0B,AAC1B,YAAc,CACf,AAED,oCACE,kBACE,eAAiB,CAClB,CACF,AAED,+BACE,aAAc,AACd,kBAAoB,CACrB,AAED,8BACE,iBAAkB,AAClB,gBAAiB,AACjB,UAAY,CACb,AAED,sBACE,WAAe,AACf,aAAe,CAChB,AAED,iBACE,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,4BAA6B,AAC7B,6BAA8B,AAC9B,0BAA2B,AAC3B,qBAAuB,CACxB,AAED,qCACE,iBACE,eAAiB,CAClB,CACF,AAED,0DACE,YAAc,CACf,AAED,yDACE,eAAiB,CAClB,AAED,yBACE,4BAA6B,AAC7B,iBAAkB,AAClB,OAAS,CACV,AAED,8BACE,mBAAoB,AACpB,4BAA6B,AAC7B,iBAAkB,AAClB,OAAS,CACV,AAED,qCACE,8BACE,eAAiB,CAClB,CACF,AAED,2CACE,YAAc,CACf,AAED,qBACE,WAAY,AACZ,iBAAmB,CACpB,AAED,sBACE,eAAiB,CAClB,AAED,YACE,gCAAiC,AACjC,WAAa,CACd,AAED,oCACE,YACE,mBAAoB,AACpB,qBAAsB,AACtB,cAAgB,CACjB,CACF,AAED,cACE,kCAAmC,AACnC,kCAAoC,CACrC,AAED,oCACE,yBACE,kCAAoC,AACpC,mBAAqB,CACtB,CACF,AAED,oCACE,mBACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,mBAAoB,AACpB,kBAAmB,AACnB,gBAAkB,CACnB,AACD,yBACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAED,SACE,eAAgB,AAChB,MAAO,AACP,QAAS,AACT,SAAU,AACV,UAAW,AACX,gBAAoB,AACpB,8BAA+B,AAC/B,eAAgB,AAChB,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,4BAA6B,AAC7B,6BAA8B,AAC9B,0BAA2B,AAC3B,sBAAuB,AACvB,gBAAiB,AACjB,aAAc,AACd,oCAAqC,AAErC,4BAA6B,AAC7B,YAAa,AACb,YAAc,CACf,AAED,oCACE,SACE,iBAAkB,AAClB,gBAAiB,AACjB,iBAAkB,AAClB,iBAAkB,AAClB,cAAe,AACf,YAAa,AACb,mBAAoB,AACpB,kBAAmB,AACnB,gCAAiC,AAEjC,wBAAyB,AACzB,UAAY,CACb,CACF,AAED,oBACE,gCAAiC,AAEjC,wBAAyB,AACzB,8BAAiC,CAClC,AAED,aACE,gBAAiB,AACjB,eAAiB,CAClB,AAED,oCACE,aACE,YAAc,CACf,CACF,AAED,sBACE,8BAA+B,AAC/B,cAAe,AACf,gBAAiB,AACjB,mBAAqB,CACtB,AAED,qBACE,UAAY,CACb,AAED,oCACE,qBACE,kBAAoB,CACrB,CACF,AAED,iBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,4BAA6B,AAC7B,iBAAkB,AAClB,OAAS,CACV,AAED,oBACE,eAAiB,CAClB,AAED,oBACE,6BAA8B,AAC9B,6BAA8B,AAC9B,gBAAkB,CACnB,AAED,gCACE,eAAiB,CAClB,AAED,mBACE,YAAa,AACb,cAAe,AACf,cAAe,AACf,6EAA6F,AAC7F,gBAAiB,AACjB,kCAAqC,AACrC,oBAAsB,CACvB,AAED,yBACE,yBAA0B,AAC1B,cAAe,AACf,oBAAsB,CACvB,AAED,yBACE,kBAAmB,AACnB,SAAW,CACZ,AAED,+BAEE,gCAAkC,AAClC,cAAe,AACf,gBAAiB,AACjB,mBAAqB,CACtB,AAED,oCACE,iBACE,cAAgB,CACjB,CACF,AAED,oCACE,oBACE,eAAiB,CAClB,CACF,AAED,oBACE,UAAY,CACb,AAED,oCACE,oBACE,oBAAsB,CACvB,CACF,AAED,oCACE,sBACE,6BAA8B,AAC9B,cAAe,AACf,iBAAkB,AAClB,gBAAiB,AACjB,eAAiB,CAClB,CACF,AAED,oCACE,4BACE,4BAA8B,CAC/B,CACF,AAED,wBACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AAEjB,SAAU,AACV,UAAW,AACX,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,kCAAmC,AACnC,mCAAoC,AACpC,gBAAiB,AACjB,iCAAmC,CACpC,AAED,8BACE,4BAA8B,CAC/B,AAED,oCACE,wBACE,mBAAoB,AACpB,sBAAuB,AACvB,oBAAqB,AACrB,cAAe,AACf,iBAAkB,AAClB,gBAAiB,AACjB,UAAe,CAChB,CACF,AAED,6DACE,0CAA6C,CAC9C,AAED,8BACE,yBAA0B,AAC1B,aAAe,CAChB,AAED,oCACE,8BACE,4BAA8B,CAC/B,CACF,AAED,6CAEE,0CAA6C,AAC7C,0CAA6C,AAC7C,4BAA6B,AAC7B,mCAAoC,AACpC,oBAAsB,CACvB,AAED,oCACE,6CACE,kDAAqD,AACrD,kDAAqD,AACrD,wCAA0C,CAC3C,CACF,AAED,4CAEE,2CAA8C,AAC9C,2CAA8C,AAC9C,4BAA6B,AAC7B,mCAAoC,AACpC,oBAAsB,CACvB,AAED,oCACE,4CACE,yBAA0B,AAC1B,WAAe,AACf,wDAA2D,AAC3D,wDAA2D,AAC3D,wCAA0C,CAC3C,AACD,kDACE,wBAA0B,CAC3B,AACD,iDACE,kCAAoC,AACpC,mBAAqB,CACtB,CACF,AAED,oCACE,+BACE,cAAe,AACf,mBAAqB,CACtB,AACD,oCACE,kCAAoC,AACpC,mBAAqB,CACtB,CACF,AAED,oCACE,mBACE,kBAAmB,AACnB,WAAY,AACZ,WAAa,CACd,CACF,AAED,+BACE,gBAAiB,AACjB,kBAAoB,CACrB,AAED,oCACE,+BACE,kBAAoB,AACpB,gBAAiB,AACjB,cAAe,AACf,UAAY,CACb,CACF,AAED,oCACE,yBACE,UAAY,CACb,CACF,AAED,oCACE,4BACE,eAAgB,AAChB,iBAAmB,CACpB,CACF,AAED,oCACE,mDACE,YAAa,AACb,iBAAmB,CACpB,CACF,AAED,8EAEE,cAAe,AACf,qBAAsB,AACtB,iBAAkB,AAClB,oBAAsB,CACvB,AAED,0FAEE,aAAe,CAChB,AAED,mDACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,YAAc,CACf,AAED,yDACE,4BAA8B,CAC/B,AAED,oCACE,mDACE,4CAA+C,AAC/C,4CAA+C,AAC/C,4BAA6B,AAC7B,sBAAiC,AACjC,uBAAwB,AACxB,qBAAsB,AACtB,mBAAqB,CACtB,CACF,AAED,oCACE,6DACE,YAAc,CACf,CACF,AAED,oCACE,uCACE,cAAe,AACf,cAAgB,CACjB,CACF,AAED,oCACE,iBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,oBAAqB,AACrB,uBAAwB,AACxB,yBAA0B,AAC1B,kBAAmB,AACnB,WAAY,AACZ,iBAAmB,CACpB,AACD,oBACE,eAAiB,CAClB,CACF,AAED,mCACE,YAAc,CACf,AAED,oCACE,mBACE,WAAe,AACf,mBAAqB,CACtB,CACF,AAED,oCACE,yBACE,yBAA0B,AAC1B,WAAe,AACf,yBAA2B,CAC5B,CACF,AAED,oBACE,iBAAkB,AAClB,eAAiB,CAClB,AAED,eACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,mCAAoC,AACpC,YAAa,AACb,cAAe,AACf,kBAAmB,AACnB,YAAc,CACf,AAED,qBACE,4BAA8B,CAC/B,AAED,oCACE,eACE,YAAc,CACf,CACF,AAED,mBACE,YAAc,CACf,AAED,uBACE,eAAiB,CAClB,AAED,oCACE,cACE,oBAAqB,AACrB,uBAAwB,AACxB,WAAY,AACZ,UAAY,CACb,CACF,AAED,oCACE,qBACE,yBAA0B,AAC1B,WAAY,AACZ,cAAe,AACf,YAAa,AACb,kBAAmB,AACnB,MAAO,AACP,YAAa,AACb,UAAY,CACb,CACF,AAED,oCACE,oBACE,yBAA0B,AAC1B,WAAY,AACZ,cAAe,AACf,YAAa,AACb,kBAAmB,AACnB,MAAO,AACP,YAAa,AACb,SAAW,CACZ,CACF,AAED,oCACE,oCACE,eAAgB,AAChB,cAAe,AACf,UAAY,CACb,CACF,AAED,0CACE,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,4BAA6B,AAC7B,6BAA8B,AAC9B,0BAA2B,AAC3B,qBAAuB,CACxB,AAED,oCACE,0CACE,cAAe,AACf,YAAa,AACb,kBAAoB,CACrB,CACF,AAED,oCACE,2DACE,mBAAqB,CACtB,CACF,AAED,oCACE,kBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,6BACE,cAAgB,CACjB,AACD,gCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,2CACE,cAAgB,CACjB,AACD,gCACE,cAAgB,CACjB,CACF,AAED,qBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,cAAgB,CACjB,AAED,wBACE,eAAiB,CAClB,AAED,YACE,eAAgB,AAChB,iBAAmB,CACpB,AAED,kBACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,AAED,wDAEE,cAAe,AACf,iBAAkB,AAClB,wBAAyB,AACzB,6BAA8B,AAC9B,kBAAmB,AACnB,0BAA2B,AAC3B,sBAAuB,AACvB,WAAY,AACZ,iBAAkB,AAClB,cAAe,AACf,SAAU,AACV,yBAA2B,CAC5B,AAED,oCACE,wDAEE,yBAA2B,CAC5B,CACF,AAED,yDAEE,wCAA2C,AAC3C,wCAA2C,AAC3C,wBAAyB,AACzB,4BAA6B,AAC7B,4BAA6B,AAC7B,yBAA0B,AAC1B,cAAe,AACf,SAAU,AACV,UAAW,AACX,YAAc,CACf,AAED,oCACE,yDAEE,sBAAuB,AACvB,YAAc,CACf,CACF,AAED,oCACE,YAAc,CACf,AAED,oCACE,oCACE,aAAe,CAChB,CACF,AAED,oCACE,sFAEE,iBAAkB,AAClB,cAAe,AACf,0BAA4B,CAC7B,AACD,uFAEE,eAAgB,AAChB,cAAe,AACf,aAAe,CAChB,CACF,AAED,oCACE,0FAEE,yBAA2B,CAC5B,AACD,2FAEE,wCAA2C,AAC3C,wCAA2C,AAC3C,wBAAyB,AACzB,4BAA6B,AAC7B,YAAc,CACf,CACF,AAED,oCACE,yCACE,UAAW,AACX,iBAAmB,CACpB,CACF,AAED,aACE,iBAAkB,AAClB,mBAAqB,CACtB,AAED,oCACE,aACE,iBAAkB,AAClB,mBAAqB,CACtB,CACF,AAED,mBACE,wBAA0B,CAC3B,AAED,kBACE,yBAA0B,AAC1B,UAAe,CAChB,AAED,8HAME,aAAe,CAChB,AAED,oBACE,UAAe,CAChB,AAED,oBACE,aAAe,CAChB,AAED,0BACE,UAAe,CAChB,AAED,kBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,cAAgB,CACjB,AAED,qBACE,eAAiB,CAClB,AAED,qBACE,6BAA8B,AAC9B,6BAA8B,AAC9B,gBAAkB,CACnB,AAED,iCACE,eAAiB,CAClB,AAED,oBACE,YAAa,AACb,cAAe,AACf,cAAe,AACf,6EAA6F,AAC7F,gBAAiB,AACjB,kCAAqC,AACrC,oBAAsB,CACvB,AAED,0BACE,yBAA0B,AAC1B,cAAe,AACf,oBAAsB,CACvB,AAED,0BACE,kBAAmB,AACnB,SAAW,CACZ,AAED,gCAEE,gCAAkC,AAClC,cAAe,AACf,gBAAiB,AACjB,mBAAqB,CACtB,AAED,sBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,SAAU,AACV,UAAY,CACb,AAED,yBACE,eAAiB,CAClB,AAED,yBACE,YAAa,AACb,gBAAkB,CACnB,AAED,wBACE,oBAAqB,AACrB,eAAiB,CAClB,AAED,kEAEE,YAAa,AACb,mBAAqB,CACtB,AAED,8CACE,mBAAqB,CACtB,AAED,oDACE,mBAAqB,CACtB,AAED,aACE,uBAAwB,AACxB,cAAe,AACf,OAAQ,AACR,oBAAqB,AACrB,kBAAmB,AACnB,YAAa,AACb,+BAAiC,AACjC,WAAa,CACd,AAED,mBACE,gBAAoB,AACpB,OAAQ,AACR,UAAW,AACX,kBAAmB,AACnB,MAAO,AACP,8BAAiC,CAClC","file":"uswds.min.css","sourcesContent":["/*! uswds v1.3.1 */\nhtml {\n box-sizing: border-box;\n}\n\n*, *::after, *::before {\n box-sizing: inherit;\n}\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n}\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n /* 1 */\n font: inherit;\n /* 2 */\n margin: 0;\n /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n box-sizing: content-box;\n /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before */\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: normal;\n font-weight: 300;\n src: url(\"../fonts/sourcesanspro-light-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-light-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-light-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-light-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: normal;\n font-weight: 400;\n src: url(\"../fonts/sourcesanspro-regular-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-regular-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-regular-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-regular-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: italic;\n font-weight: 400;\n src: url(\"../fonts/sourcesanspro-italic-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-italic-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-italic-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-italic-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: normal;\n font-weight: 700;\n src: url(\"../fonts/sourcesanspro-bold-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-bold-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-bold-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-bold-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: normal;\n font-weight: 300;\n src: url(\"../fonts/merriweather-light-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-light-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-light-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-light-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: normal;\n font-weight: 400;\n src: url(\"../fonts/merriweather-regular-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-regular-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-regular-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-regular-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: italic;\n font-weight: 400;\n src: url(\"../fonts/merriweather-italic-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-italic-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-italic-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-italic-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: normal;\n font-weight: 700;\n src: url(\"../fonts/merriweather-bold-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-bold-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-bold-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-bold-webfont.ttf\") format(\"truetype\");\n}\n\n/* stylelint-enable */\nhtml {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\nbody {\n background-color: #ffffff;\n overflow-x: hidden;\n}\n\n.lt-ie9 * {\n -webkit-filter: none !important;\n filter: none !important;\n /* stylelint-disable-line declaration-no-important */\n}\n\n[hidden] {\n display: none !important;\n /* stylelint-disable-line declaration-no-important */\n}\n\n.usa-grid,\n.usa-grid-full {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n max-width: 1040px;\n}\n\n.usa-grid::after,\n.usa-grid-full::after {\n clear: both;\n content: \"\";\n display: block;\n}\n\n.usa-grid {\n padding-right: 1.5rem;\n padding-left: 1.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-grid {\n padding-right: 3rem;\n padding-left: 3rem;\n }\n}\n\n.usa-grid-full {\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-width-one-whole {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 100%;\n }\n .usa-width-one-whole:last-child {\n margin-right: 0;\n }\n .usa-width-one-half {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 47.58542%;\n }\n .usa-width-one-half:last-child {\n margin-right: 0;\n }\n .usa-width-one-third {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-one-third:last-child {\n margin-right: 0;\n }\n .usa-width-two-thirds {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 65.05695%;\n }\n .usa-width-two-thirds:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 47.58542%;\n }\n .usa-width-one-fourth:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth:nth-child(2n) {\n margin-right: 0;\n }\n .usa-width-three-fourths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 100%;\n }\n .usa-width-three-fourths:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-one-sixth:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth:nth-child(3n) {\n margin-right: 0;\n }\n .usa-width-five-sixths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 65.05695%;\n }\n .usa-width-five-sixths:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-one-twelfth:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth:nth-child(3n) {\n margin-right: 0;\n }\n .usa-width-five-twelfths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-five-twelfths:last-child {\n margin-right: 0;\n }\n .usa-width-seven-twelfths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 65.05695%;\n }\n .usa-width-seven-twelfths:last-child {\n margin-right: 0;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-width-one-whole {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 100%;\n }\n .usa-width-one-whole:last-child {\n margin-right: 0;\n }\n .usa-width-one-half {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 48.82117%;\n }\n .usa-width-one-half:last-child {\n margin-right: 0;\n }\n .usa-width-one-third {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 31.76157%;\n }\n .usa-width-one-third:last-child {\n margin-right: 0;\n }\n .usa-width-two-thirds {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 65.88078%;\n }\n .usa-width-two-thirds:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-width-one-fourth:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth:nth-child(2n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-width-one-fourth:nth-child(2n):last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth:nth-child(4n) {\n margin-right: 0;\n }\n .usa-width-three-fourths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 74.41059%;\n }\n .usa-width-three-fourths:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 14.70196%;\n }\n .usa-width-one-sixth:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth:nth-child(3n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 14.70196%;\n }\n .usa-width-one-sixth:nth-child(3n):last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth:nth-child(6n) {\n margin-right: 0;\n }\n .usa-width-five-sixths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 82.94039%;\n }\n .usa-width-five-sixths:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 6.17215%;\n }\n .usa-width-one-twelfth:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth:nth-child(3n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 6.17215%;\n }\n .usa-width-one-twelfth:nth-child(3n):last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth:nth-child(12n) {\n margin-right: 0;\n }\n .usa-width-five-twelfths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 40.29137%;\n }\n .usa-width-five-twelfths:last-child {\n margin-right: 0;\n }\n .usa-width-seven-twelfths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 57.35098%;\n }\n .usa-width-seven-twelfths:last-child {\n margin-right: 0;\n }\n}\n\n.usa-end-row {\n margin-right: 0;\n}\n\n.usa-offset-one-twelfth {\n margin-left: 8.5298%;\n}\n\n.usa-offset-one-sixth {\n margin-left: 17.05961%;\n}\n\n.usa-offset-one-fourth {\n margin-left: 25.58941%;\n}\n\n.usa-offset-one-third {\n margin-left: 34.11922%;\n}\n\n.usa-offset-five-twelfths {\n margin-left: 42.64902%;\n}\n\n.usa-offset-one-half {\n margin-left: 51.17883%;\n}\n\n.usa-offset-seven-twelfths {\n margin-left: 59.70863%;\n}\n\n.usa-offset-two-thirds {\n margin-left: 68.23843%;\n}\n\n.usa-offset-three-fourths {\n margin-left: 76.76824%;\n}\n\n.usa-offset-five-sixths {\n margin-left: 85.29804%;\n}\n\n.usa-offset-eleven-twelfths {\n margin-left: 93.82785%;\n}\n\n.usa-sr-only {\n position: absolute;\n left: -999em;\n}\n\n/* stylelint-disable selector-no-qualifying-type */\n.usa-button,\n.usa-button-primary,\n.usa-button:visited,\n.usa-button-primary:visited,\nbutton,\n[type=button],\n[type=submit],\n[type=reset],\n[type=image] {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n margin-top: 0.5em;\n margin-right: 0.5em;\n margin-bottom: 0.5em;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #0071bc;\n border: 0;\n border-radius: 3px;\n color: #ffffff;\n cursor: pointer;\n display: inline-block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-size: 1.7rem;\n font-weight: 700;\n line-height: 1;\n outline: none;\n padding: 1rem 2rem;\n text-align: center;\n text-decoration: none;\n width: 100%;\n}\n\n@media screen and (min-width: 481px) {\n .usa-button,\n .usa-button-primary,\n .usa-button:visited,\n .usa-button-primary:visited,\n button,\n [type=button],\n [type=submit],\n [type=reset],\n [type=image] {\n width: auto;\n }\n}\n\n.usa-button:hover, .usa-button.usa-button-hover,\n.usa-button-primary:hover,\n.usa-button-primary.usa-button-hover,\n.usa-button:visited:hover,\n.usa-button:visited.usa-button-hover,\n.usa-button-primary:visited:hover,\n.usa-button-primary:visited.usa-button-hover,\nbutton:hover,\nbutton.usa-button-hover,\n[type=button]:hover,\n[type=button].usa-button-hover,\n[type=submit]:hover,\n[type=submit].usa-button-hover,\n[type=reset]:hover,\n[type=reset].usa-button-hover,\n[type=image]:hover,\n[type=image].usa-button-hover {\n background-color: #205493;\n border-bottom: 0;\n color: #ffffff;\n text-decoration: none;\n}\n\n.usa-button:focus, .usa-button.usa-button-focus,\n.usa-button-primary:focus,\n.usa-button-primary.usa-button-focus,\n.usa-button:visited:focus,\n.usa-button:visited.usa-button-focus,\n.usa-button-primary:visited:focus,\n.usa-button-primary:visited.usa-button-focus,\nbutton:focus,\nbutton.usa-button-focus,\n[type=button]:focus,\n[type=button].usa-button-focus,\n[type=submit]:focus,\n[type=submit].usa-button-focus,\n[type=reset]:focus,\n[type=reset].usa-button-focus,\n[type=image]:focus,\n[type=image].usa-button-focus {\n box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n}\n\n.usa-button:active, .usa-button.usa-button-active,\n.usa-button-primary:active,\n.usa-button-primary.usa-button-active,\n.usa-button:visited:active,\n.usa-button:visited.usa-button-active,\n.usa-button-primary:visited:active,\n.usa-button-primary:visited.usa-button-active,\nbutton:active,\nbutton.usa-button-active,\n[type=button]:active,\n[type=button].usa-button-active,\n[type=submit]:active,\n[type=submit].usa-button-active,\n[type=reset]:active,\n[type=reset].usa-button-active,\n[type=image]:active,\n[type=image].usa-button-active {\n background-color: #112e51;\n}\n\n.usa-button.usa-button-primary-alt,\n.usa-button-primary.usa-button-primary-alt,\n.usa-button:visited.usa-button-primary-alt,\n.usa-button-primary:visited.usa-button-primary-alt,\nbutton.usa-button-primary-alt,\n[type=button].usa-button-primary-alt,\n[type=submit].usa-button-primary-alt,\n[type=reset].usa-button-primary-alt,\n[type=image].usa-button-primary-alt {\n background-color: #02bfe7;\n color: #212121;\n}\n\n.usa-button.usa-button-primary-alt:hover, .usa-button.usa-button-primary-alt.usa-button-hover,\n.usa-button-primary.usa-button-primary-alt:hover,\n.usa-button-primary.usa-button-primary-alt.usa-button-hover,\n.usa-button:visited.usa-button-primary-alt:hover,\n.usa-button:visited.usa-button-primary-alt.usa-button-hover,\n.usa-button-primary:visited.usa-button-primary-alt:hover,\n.usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,\nbutton.usa-button-primary-alt:hover,\nbutton.usa-button-primary-alt.usa-button-hover,\n[type=button].usa-button-primary-alt:hover,\n[type=button].usa-button-primary-alt.usa-button-hover,\n[type=submit].usa-button-primary-alt:hover,\n[type=submit].usa-button-primary-alt.usa-button-hover,\n[type=reset].usa-button-primary-alt:hover,\n[type=reset].usa-button-primary-alt.usa-button-hover,\n[type=image].usa-button-primary-alt:hover,\n[type=image].usa-button-primary-alt.usa-button-hover {\n background-color: #00a6d2;\n}\n\n.usa-button.usa-button-primary-alt:active, .usa-button.usa-button-primary-alt.usa-button-active,\n.usa-button-primary.usa-button-primary-alt:active,\n.usa-button-primary.usa-button-primary-alt.usa-button-active,\n.usa-button:visited.usa-button-primary-alt:active,\n.usa-button:visited.usa-button-primary-alt.usa-button-active,\n.usa-button-primary:visited.usa-button-primary-alt:active,\n.usa-button-primary:visited.usa-button-primary-alt.usa-button-active,\nbutton.usa-button-primary-alt:active,\nbutton.usa-button-primary-alt.usa-button-active,\n[type=button].usa-button-primary-alt:active,\n[type=button].usa-button-primary-alt.usa-button-active,\n[type=submit].usa-button-primary-alt:active,\n[type=submit].usa-button-primary-alt.usa-button-active,\n[type=reset].usa-button-primary-alt:active,\n[type=reset].usa-button-primary-alt.usa-button-active,\n[type=image].usa-button-primary-alt:active,\n[type=image].usa-button-primary-alt.usa-button-active {\n background-color: #046b99;\n color: #ffffff;\n}\n\n.usa-button.usa-button-secondary,\n.usa-button-primary.usa-button-secondary,\n.usa-button:visited.usa-button-secondary,\n.usa-button-primary:visited.usa-button-secondary,\nbutton.usa-button-secondary,\n[type=button].usa-button-secondary,\n[type=submit].usa-button-secondary,\n[type=reset].usa-button-secondary,\n[type=image].usa-button-secondary {\n background-color: #e31c3d;\n}\n\n.usa-button.usa-button-secondary:hover, .usa-button.usa-button-secondary.usa-button-hover,\n.usa-button-primary.usa-button-secondary:hover,\n.usa-button-primary.usa-button-secondary.usa-button-hover,\n.usa-button:visited.usa-button-secondary:hover,\n.usa-button:visited.usa-button-secondary.usa-button-hover,\n.usa-button-primary:visited.usa-button-secondary:hover,\n.usa-button-primary:visited.usa-button-secondary.usa-button-hover,\nbutton.usa-button-secondary:hover,\nbutton.usa-button-secondary.usa-button-hover,\n[type=button].usa-button-secondary:hover,\n[type=button].usa-button-secondary.usa-button-hover,\n[type=submit].usa-button-secondary:hover,\n[type=submit].usa-button-secondary.usa-button-hover,\n[type=reset].usa-button-secondary:hover,\n[type=reset].usa-button-secondary.usa-button-hover,\n[type=image].usa-button-secondary:hover,\n[type=image].usa-button-secondary.usa-button-hover {\n background-color: #cd2026;\n}\n\n.usa-button.usa-button-secondary:active, .usa-button.usa-button-secondary.usa-button-active,\n.usa-button-primary.usa-button-secondary:active,\n.usa-button-primary.usa-button-secondary.usa-button-active,\n.usa-button:visited.usa-button-secondary:active,\n.usa-button:visited.usa-button-secondary.usa-button-active,\n.usa-button-primary:visited.usa-button-secondary:active,\n.usa-button-primary:visited.usa-button-secondary.usa-button-active,\nbutton.usa-button-secondary:active,\nbutton.usa-button-secondary.usa-button-active,\n[type=button].usa-button-secondary:active,\n[type=button].usa-button-secondary.usa-button-active,\n[type=submit].usa-button-secondary:active,\n[type=submit].usa-button-secondary.usa-button-active,\n[type=reset].usa-button-secondary:active,\n[type=reset].usa-button-secondary.usa-button-active,\n[type=image].usa-button-secondary:active,\n[type=image].usa-button-secondary.usa-button-active {\n background-color: #981b1e;\n}\n\n.usa-button.usa-button-gray,\n.usa-button-primary.usa-button-gray,\n.usa-button:visited.usa-button-gray,\n.usa-button-primary:visited.usa-button-gray,\nbutton.usa-button-gray,\n[type=button].usa-button-gray,\n[type=submit].usa-button-gray,\n[type=reset].usa-button-gray,\n[type=image].usa-button-gray {\n background-color: #5b616b;\n}\n\n.usa-button.usa-button-gray:hover, .usa-button.usa-button-gray.usa-button-hover,\n.usa-button-primary.usa-button-gray:hover,\n.usa-button-primary.usa-button-gray.usa-button-hover,\n.usa-button:visited.usa-button-gray:hover,\n.usa-button:visited.usa-button-gray.usa-button-hover,\n.usa-button-primary:visited.usa-button-gray:hover,\n.usa-button-primary:visited.usa-button-gray.usa-button-hover,\nbutton.usa-button-gray:hover,\nbutton.usa-button-gray.usa-button-hover,\n[type=button].usa-button-gray:hover,\n[type=button].usa-button-gray.usa-button-hover,\n[type=submit].usa-button-gray:hover,\n[type=submit].usa-button-gray.usa-button-hover,\n[type=reset].usa-button-gray:hover,\n[type=reset].usa-button-gray.usa-button-hover,\n[type=image].usa-button-gray:hover,\n[type=image].usa-button-gray.usa-button-hover {\n background-color: #323a45;\n}\n\n.usa-button.usa-button-gray:active, .usa-button.usa-button-gray.usa-button-active,\n.usa-button-primary.usa-button-gray:active,\n.usa-button-primary.usa-button-gray.usa-button-active,\n.usa-button:visited.usa-button-gray:active,\n.usa-button:visited.usa-button-gray.usa-button-active,\n.usa-button-primary:visited.usa-button-gray:active,\n.usa-button-primary:visited.usa-button-gray.usa-button-active,\nbutton.usa-button-gray:active,\nbutton.usa-button-gray.usa-button-active,\n[type=button].usa-button-gray:active,\n[type=button].usa-button-gray.usa-button-active,\n[type=submit].usa-button-gray:active,\n[type=submit].usa-button-gray.usa-button-active,\n[type=reset].usa-button-gray:active,\n[type=reset].usa-button-gray.usa-button-active,\n[type=image].usa-button-gray:active,\n[type=image].usa-button-gray.usa-button-active {\n background-color: #212121;\n}\n\n.usa-button.usa-button-outline,\n.usa-button-primary.usa-button-outline,\n.usa-button:visited.usa-button-outline,\n.usa-button-primary:visited.usa-button-outline,\nbutton.usa-button-outline,\n[type=button].usa-button-outline,\n[type=submit].usa-button-outline,\n[type=reset].usa-button-outline,\n[type=image].usa-button-outline {\n background-color: #ffffff;\n box-shadow: inset 0 0 0 2px #0071bc;\n color: #0071bc;\n}\n\n.usa-button.usa-button-outline:hover, .usa-button.usa-button-outline.usa-button-hover,\n.usa-button-primary.usa-button-outline:hover,\n.usa-button-primary.usa-button-outline.usa-button-hover,\n.usa-button:visited.usa-button-outline:hover,\n.usa-button:visited.usa-button-outline.usa-button-hover,\n.usa-button-primary:visited.usa-button-outline:hover,\n.usa-button-primary:visited.usa-button-outline.usa-button-hover,\nbutton.usa-button-outline:hover,\nbutton.usa-button-outline.usa-button-hover,\n[type=button].usa-button-outline:hover,\n[type=button].usa-button-outline.usa-button-hover,\n[type=submit].usa-button-outline:hover,\n[type=submit].usa-button-outline.usa-button-hover,\n[type=reset].usa-button-outline:hover,\n[type=reset].usa-button-outline.usa-button-hover,\n[type=image].usa-button-outline:hover,\n[type=image].usa-button-outline.usa-button-hover {\n box-shadow: inset 0 0 0 2px #205493;\n color: #205493;\n}\n\n.usa-button.usa-button-outline:active, .usa-button.usa-button-outline.usa-button-active,\n.usa-button-primary.usa-button-outline:active,\n.usa-button-primary.usa-button-outline.usa-button-active,\n.usa-button:visited.usa-button-outline:active,\n.usa-button:visited.usa-button-outline.usa-button-active,\n.usa-button-primary:visited.usa-button-outline:active,\n.usa-button-primary:visited.usa-button-outline.usa-button-active,\nbutton.usa-button-outline:active,\nbutton.usa-button-outline.usa-button-active,\n[type=button].usa-button-outline:active,\n[type=button].usa-button-outline.usa-button-active,\n[type=submit].usa-button-outline:active,\n[type=submit].usa-button-outline.usa-button-active,\n[type=reset].usa-button-outline:active,\n[type=reset].usa-button-outline.usa-button-active,\n[type=image].usa-button-outline:active,\n[type=image].usa-button-outline.usa-button-active {\n box-shadow: inset 0 0 0 2px #112e51;\n color: #112e51;\n}\n\n.usa-button.usa-button-outline:focus, .usa-button.usa-button-outline.usa-button-focus,\n.usa-button-primary.usa-button-outline:focus,\n.usa-button-primary.usa-button-outline.usa-button-focus,\n.usa-button:visited.usa-button-outline:focus,\n.usa-button:visited.usa-button-outline.usa-button-focus,\n.usa-button-primary:visited.usa-button-outline:focus,\n.usa-button-primary:visited.usa-button-outline.usa-button-focus,\nbutton.usa-button-outline:focus,\nbutton.usa-button-outline.usa-button-focus,\n[type=button].usa-button-outline:focus,\n[type=button].usa-button-outline.usa-button-focus,\n[type=submit].usa-button-outline:focus,\n[type=submit].usa-button-outline.usa-button-focus,\n[type=reset].usa-button-outline:focus,\n[type=reset].usa-button-outline.usa-button-focus,\n[type=image].usa-button-outline:focus,\n[type=image].usa-button-outline.usa-button-focus {\n box-shadow: inset 0 0 0 2px #112e51, 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n}\n\n.usa-button.usa-button-outline-inverse,\n.usa-button-primary.usa-button-outline-inverse,\n.usa-button:visited.usa-button-outline-inverse,\n.usa-button-primary:visited.usa-button-outline-inverse,\nbutton.usa-button-outline-inverse,\n[type=button].usa-button-outline-inverse,\n[type=submit].usa-button-outline-inverse,\n[type=reset].usa-button-outline-inverse,\n[type=image].usa-button-outline-inverse {\n background: transparent;\n box-shadow: inset 0 0 0 2px #ffffff;\n color: #ffffff;\n}\n\n.usa-button.usa-button-outline-inverse:hover, .usa-button.usa-button-outline-inverse.usa-button-hover,\n.usa-button-primary.usa-button-outline-inverse:hover,\n.usa-button-primary.usa-button-outline-inverse.usa-button-hover,\n.usa-button:visited.usa-button-outline-inverse:hover,\n.usa-button:visited.usa-button-outline-inverse.usa-button-hover,\n.usa-button-primary:visited.usa-button-outline-inverse:hover,\n.usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,\nbutton.usa-button-outline-inverse:hover,\nbutton.usa-button-outline-inverse.usa-button-hover,\n[type=button].usa-button-outline-inverse:hover,\n[type=button].usa-button-outline-inverse.usa-button-hover,\n[type=submit].usa-button-outline-inverse:hover,\n[type=submit].usa-button-outline-inverse.usa-button-hover,\n[type=reset].usa-button-outline-inverse:hover,\n[type=reset].usa-button-outline-inverse.usa-button-hover,\n[type=image].usa-button-outline-inverse:hover,\n[type=image].usa-button-outline-inverse.usa-button-hover {\n box-shadow: inset 0 0 0 2px #d6d7d9;\n color: #d6d7d9;\n}\n\n.usa-button.usa-button-outline-inverse:active, .usa-button.usa-button-outline-inverse.usa-button-active,\n.usa-button-primary.usa-button-outline-inverse:active,\n.usa-button-primary.usa-button-outline-inverse.usa-button-active,\n.usa-button:visited.usa-button-outline-inverse:active,\n.usa-button:visited.usa-button-outline-inverse.usa-button-active,\n.usa-button-primary:visited.usa-button-outline-inverse:active,\n.usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,\nbutton.usa-button-outline-inverse:active,\nbutton.usa-button-outline-inverse.usa-button-active,\n[type=button].usa-button-outline-inverse:active,\n[type=button].usa-button-outline-inverse.usa-button-active,\n[type=submit].usa-button-outline-inverse:active,\n[type=submit].usa-button-outline-inverse.usa-button-active,\n[type=reset].usa-button-outline-inverse:active,\n[type=reset].usa-button-outline-inverse.usa-button-active,\n[type=image].usa-button-outline-inverse:active,\n[type=image].usa-button-outline-inverse.usa-button-active {\n box-shadow: inset 0 0 0 2px #aeb0b5;\n color: #d6d7d9;\n}\n\n.usa-button.usa-button-outline-inverse:focus, .usa-button.usa-button-outline-inverse.usa-button-focus,\n.usa-button-primary.usa-button-outline-inverse:focus,\n.usa-button-primary.usa-button-outline-inverse.usa-button-focus,\n.usa-button:visited.usa-button-outline-inverse:focus,\n.usa-button:visited.usa-button-outline-inverse.usa-button-focus,\n.usa-button-primary:visited.usa-button-outline-inverse:focus,\n.usa-button-primary:visited.usa-button-outline-inverse.usa-button-focus,\nbutton.usa-button-outline-inverse:focus,\nbutton.usa-button-outline-inverse.usa-button-focus,\n[type=button].usa-button-outline-inverse:focus,\n[type=button].usa-button-outline-inverse.usa-button-focus,\n[type=submit].usa-button-outline-inverse:focus,\n[type=submit].usa-button-outline-inverse.usa-button-focus,\n[type=reset].usa-button-outline-inverse:focus,\n[type=reset].usa-button-outline-inverse.usa-button-focus,\n[type=image].usa-button-outline-inverse:focus,\n[type=image].usa-button-outline-inverse.usa-button-focus {\n box-shadow: inset 0 0 0 2px #aeb0b5, 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n}\n\n.usa-button.usa-button-big,\n.usa-button-primary.usa-button-big,\n.usa-button:visited.usa-button-big,\n.usa-button-primary:visited.usa-button-big,\nbutton.usa-button-big,\n[type=button].usa-button-big,\n[type=submit].usa-button-big,\n[type=reset].usa-button-big,\n[type=image].usa-button-big {\n font-size: 1.9rem;\n padding: 1.5rem 3rem;\n}\n\n/* stylelint-disable */\n.usa-button:disabled,\n.usa-button-disabled {\n background-color: #d6d7d9;\n color: #323a45;\n pointer-events: none;\n}\n\n.usa-button:disabled:hover, .usa-button:disabled.usa-button-hover, .usa-button:disabled:active, .usa-button:disabled.usa-button-active, .usa-button:disabled:focus,\n.usa-button-disabled:hover,\n.usa-button-disabled.usa-button-hover,\n.usa-button-disabled:active,\n.usa-button-disabled.usa-button-active,\n.usa-button-disabled:focus {\n background-color: #d6d7d9;\n border: 0;\n box-shadow: none;\n color: #323a45;\n}\n\n.usa-button-unstyled {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n}\n\n.usa-button-unstyled:hover {\n background-color: transparent;\n}\n\n.usa-embed-container iframe,\n.usa-embed-container object,\n.usa-embed-container embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.usa-embed-container {\n padding-bottom: 56.25%;\n position: relative;\n height: 0;\n overflow: hidden;\n max-width: 100%;\n}\n\nimg {\n max-width: 100%;\n}\n\n.media_link {\n display: inline-block;\n line-height: 0;\n}\n\n/* stylelint-disable selector-no-qualifying-type */\ninput,\ntextarea,\nselect {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: 0.1rem solid #5b616b;\n border-radius: 0;\n box-sizing: border-box;\n color: #212121;\n display: block;\n font-size: 1.7rem;\n height: 4.4rem;\n line-height: 1.3;\n margin: 0.2em 0;\n max-width: 46rem;\n outline: none;\n padding: 1rem 0.7em;\n width: 100%;\n}\n\ninput:focus, input.usa-input-focus,\ntextarea:focus,\ntextarea.usa-input-focus,\nselect:focus,\nselect.usa-input-focus {\n box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n}\n\ninput.usa-input-success,\ntextarea.usa-input-success,\nselect.usa-input-success {\n border: 3px solid #4aa564;\n}\n\n/* stylelint-enable */\n.usa-input-error {\n border-left: 4px solid #cd2026;\n margin-top: 3rem;\n padding-bottom: 0.8rem;\n padding-left: 1.5rem;\n padding-top: 0.8rem;\n position: relative;\n right: 1.9rem;\n}\n\n.usa-input-error input,\n.usa-input-error textarea,\n.usa-input-error select {\n border: 3px solid #cd2026;\n width: calc(100% + 1.9rem);\n}\n\n.usa-input-error label {\n margin-top: 0;\n}\n\n.usa-input-error .usa-input-inline {\n border: 0.1rem solid #5b616b;\n width: inherit;\n}\n\n.usa-input-error .usa-input-inline-error {\n border: 3px solid #cd2026;\n}\n\n.usa-input-error-label {\n display: block;\n font-size: 1.7rem;\n font-weight: 700;\n}\n\n.usa-input-error-message {\n color: #cd2026;\n display: block;\n font-size: 1.7rem;\n font-weight: 700;\n padding-bottom: 3px;\n padding-top: 3px;\n}\n\n.usa-input-required:after {\n color: #981b1e;\n content: ' (*Required)';\n}\n\nlabel {\n display: block;\n margin-top: 3rem;\n max-width: 46rem;\n}\n\ntextarea {\n height: 16rem;\n}\n\nselect {\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n background-color: #ffffff;\n background-image: url(\"../img/arrow-down.png\");\n background-image: url(\"../img/arrow-down.svg\");\n background-position: right 1.3rem center;\n background-repeat: no-repeat;\n background-size: 1.3rem;\n}\n\nlegend {\n font-size: 3rem;\n font-weight: 700;\n}\n\n.usa-fieldset-inputs label {\n margin-top: 0;\n}\n\n.usa-form-hint {\n color: #757575;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n margin-bottom: 0;\n}\n\n[type=checkbox],\n[type=radio] {\n position: absolute;\n left: -999em;\n}\n\n.lt-ie9 [type=checkbox], .lt-ie9\n[type=radio] {\n border: 0;\n float: left;\n margin: 0.4em 0.4em 0 0;\n position: static;\n width: auto;\n}\n\n[type=checkbox] + label,\n[type=radio] + label {\n cursor: pointer;\n font-weight: 400;\n margin-bottom: 0.5em;\n}\n\n[type=checkbox] + label::before,\n[type=radio] + label::before {\n background: #ffffff;\n border-radius: 3px;\n box-shadow: 0 0 0 1px #757575;\n content: '\\a0';\n display: inline-block;\n height: 1.8rem;\n line-height: 1.8rem;\n margin-right: 0.6em;\n text-indent: 0.15em;\n vertical-align: middle\\0;\n width: 1.8rem;\n}\n\n[type=radio] + label::before {\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #757575;\n height: 1.6rem;\n line-height: 1.6rem;\n width: 1.6rem;\n border-radius: 100%;\n}\n\n[type=checkbox]:checked + label::before,\n[type=radio]:checked + label::before {\n background-color: #0071bc;\n box-shadow: 0 0 0 1px #0071bc;\n}\n\n[type=radio]:checked + label::before {\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0071bc;\n}\n\n[type=radio]:focus + label::before {\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0071bc, 0 0 3px 4px #3e94cf, 0 0 7px 4px #3e94cf;\n}\n\n[type=checkbox]:checked + label::before,\n[type=checkbox]:checked:disabled + label::before {\n background-image: url(\"../img/correct8.png\");\n background-image: url(\"../img/correct8.svg\");\n background-position: 50%;\n background-repeat: no-repeat;\n}\n\n[type=checkbox]:focus + label::before {\n box-shadow: 0 0 0 1px #ffffff, 0 0 0 3px #0071bc;\n}\n\n[type=checkbox]:disabled + label {\n color: #5b616b;\n}\n\n[type=checkbox]:disabled + label::before,\n[type=radio]:disabled + label::before {\n background: #d6d7d9;\n box-shadow: 0 0 0 1px #aeb0b5;\n cursor: not-allowed;\n}\n\n[type=range] {\n -webkit-appearance: none;\n border: none;\n padding-left: 0;\n width: 100%;\n}\n\n[type=range]:focus {\n box-shadow: none;\n outline: none;\n}\n\n[type=range]::-webkit-slider-runnable-track {\n background: #aeb0b5;\n border: 1px solid #757575;\n cursor: pointer;\n height: 1.2rem;\n width: 100%;\n}\n\n[type=range]::-moz-range-track {\n background: #0071bc;\n border: 1px solid #757575;\n cursor: pointer;\n height: 1.2rem;\n width: 100%;\n}\n\n[type=range]::-ms-track {\n background: transparent;\n color: transparent;\n cursor: pointer;\n height: 1.2rem;\n width: 100%;\n}\n\n[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: 1px solid #757575;\n height: 2.2rem;\n border-radius: 1.5rem;\n background: #f1f1f1;\n cursor: pointer;\n margin-top: -.65rem;\n width: 2.2rem;\n}\n\n[type=range]::-moz-range-thumb {\n background: #f1f1f1;\n border: 1px solid #757575;\n border-radius: 1.5rem;\n cursor: pointer;\n height: 2.2rem;\n width: 2.2rem;\n}\n\n[type=range]::-ms-thumb {\n background: #f1f1f1;\n border: 1px solid #757575;\n border-radius: 1.5rem;\n cursor: pointer;\n height: 2.2rem;\n width: 2.2rem;\n}\n\n[type=range]::-ms-fill-lower {\n background: #aeb0b5;\n border: 1px solid #757575;\n border-radius: 2rem;\n}\n\n[type=range]::-ms-fill-upper {\n background: #aeb0b5;\n border: 1px solid #757575;\n border-radius: 2rem;\n}\n\n[type=range]:focus::-webkit-slider-thumb {\n border: 2px solid #3e94cf;\n}\n\n[type=range]:focus::-moz-range-thumb {\n border: 2px solid #3e94cf;\n}\n\n[type=range]:focus::-ms-thumb {\n border: 2px solid #3e94cf;\n}\n\n.usa-date-of-birth label {\n margin-top: 0;\n}\n\n.usa-date-of-birth [type=number]::-webkit-inner-spin-button,\n.usa-date-of-birth [type=number]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n appearance: none;\n margin: 0;\n}\n\n.usa-date-of-birth [type=number] {\n -moz-appearance: textfield;\n}\n\n.usa-form-group-day,\n.usa-form-group-month,\n.usa-form-group-year {\n clear: none;\n float: left;\n margin-right: 1.5rem;\n width: 5rem;\n}\n\n.usa-form-group-year {\n width: 7rem;\n}\n\n.usa-label, .usa-label-big {\n background-color: #0071bc;\n border-radius: 3px;\n color: #ffffff;\n font-size: 1.5rem;\n margin-right: 0.5rem;\n padding: 0.1rem 0.7rem;\n text-transform: uppercase;\n}\n\n.usa-label:only-of-type, .usa-label-big:only-of-type {\n margin-right: 0;\n}\n\n.usa-label-big {\n font-size: 1.7rem;\n padding-left: 0.9rem;\n padding-right: 0.9rem;\n}\n\nul,\nol {\n margin-top: 1em;\n margin-bottom: 1em;\n padding-left: 1.94em;\n}\n\nli {\n line-height: 1.5;\n margin-bottom: 0.5em;\n}\n\nli:last-child {\n margin-bottom: 0;\n}\n\nh1 + ul,\nh1 + ol,\nh2 + ul,\nh2 + ol,\nh3 + ul,\nh3 + ol,\nh4 + ul,\nh4 + ol,\nh5 + ul,\nh5 + ol,\nh6 + ul,\nh6 + ol,\np + ul,\np + ol {\n margin-top: 0;\n}\n\n.usa-unstyled-list {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n}\n\n.usa-unstyled-list > li {\n margin-bottom: 0;\n}\n\ntable {\n border-spacing: 0;\n margin: 2em 0;\n min-width: 100%;\n}\n\ntable thead th,\ntable thead td {\n background-color: #f1f1f1;\n}\n\ntable th {\n text-align: left;\n}\n\ntable tbody th {\n font-weight: 400;\n}\n\ntable th,\ntable td {\n background-color: #ffffff;\n border: 1px solid #5b616b;\n padding: 1.5rem;\n}\n\n.usa-table-borderless thead tr {\n background-color: transparent;\n}\n\n.usa-table-borderless thead th {\n border-top: 0;\n}\n\n.usa-table-borderless th,\n.usa-table-borderless td {\n border-left: 0;\n border-right: 0;\n}\n\nhtml {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-size: 10px;\n}\n\nbody {\n font-size: 1.7rem;\n}\n\np {\n line-height: 1.5;\n margin-bottom: 1em;\n margin-top: 1em;\n}\n\na {\n color: #0071bc;\n text-decoration: underline;\n}\n\na:hover, a:active {\n color: #205493;\n}\n\na:visited {\n color: #4c2c92;\n}\n\na:focus {\n box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n outline: 0;\n}\n\n.usa-external_link::after {\n background: url(\"../img/external-link.png\") no-repeat 0 0;\n background: url(\"../img/external-link.svg\") no-repeat 0 0;\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 0.65em;\n margin-bottom: -1px;\n margin-left: 4px;\n width: 0.65em;\n}\n\n.usa-external_link:hover::after {\n background-image: url(\"../img/external-link-hover.png\");\n background-image: url(\"../img/external-link-hover.svg\");\n}\n\n.usa-external_link-alt::after {\n background: url(\"../img/external-link-alt.png\") no-repeat 0 0;\n background: url(\"../img/external-link-alt.svg\") no-repeat 0 0;\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 0.65em;\n margin-bottom: -1px;\n margin-left: 4px;\n width: 0.65em;\n}\n\n.usa-external_link-alt:hover::after {\n background-image: url(\"../img/external-link-alt-hover.png\");\n background-image: url(\"../img/external-link-alt-hover.svg\");\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n clear: both;\n font-family: \"Merriweather\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif;\n line-height: 1.3;\n margin-bottom: .5em;\n margin-top: 1.5em;\n}\n\nh1 {\n font-size: 4rem;\n font-weight: 700;\n}\n\nh2 {\n font-size: 3rem;\n font-weight: 700;\n}\n\nh3 {\n font-size: 2rem;\n font-weight: 700;\n}\n\nh4 {\n font-size: 1.7rem;\n font-weight: 700;\n}\n\nh5 {\n font-size: 1.5rem;\n font-weight: 700;\n}\n\nh6 {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-size: 1.3rem;\n font-weight: 400;\n text-transform: uppercase;\n}\n\ncite,\nvar,\naddress,\ndfn {\n font-style: normal;\n}\n\n.usa-content p:not(.usa-font-lead),\n.usa-content ul:not(.usa-accordion):not(.usa-accordion-bordered),\n.usa-content ol:not(.usa-accordion):not(.usa-accordion-bordered) {\n max-width: 53rem;\n}\n\n.usa-content-list {\n max-width: 53rem;\n}\n\n.usa-sans p,\n.usa-sans a,\n.usa-sans li,\n.usa-sans span {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n}\n\n.usa-sans a {\n border-bottom: none;\n font-weight: 700;\n}\n\n.usa-serif p,\n.usa-serif a,\n.usa-serif li,\n.usa-serif span {\n font-family: \"Merriweather\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif;\n}\n\n.usa-display {\n font-size: 2rem;\n font-weight: 700;\n margin-bottom: 0;\n}\n\n@media screen and (min-width: 481px) {\n .usa-display {\n font-size: 4rem;\n font-weight: 700;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-display {\n font-size: 5.2rem;\n font-weight: 700;\n }\n}\n\n.usa-font-lead {\n font-family: \"Merriweather\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif;\n font-size: 2rem;\n line-height: 1.7;\n max-width: 77rem;\n}\n\n.usa-image-block {\n position: relative;\n}\n\n.usa-image-text-block {\n color: #ffffff;\n left: 0;\n margin-left: 8%;\n position: absolute;\n top: 0;\n}\n\n.usa-image-text {\n margin-top: 0;\n}\n\n.usa-drop_text {\n margin-bottom: 0;\n}\n\n.usa-background-dark {\n background-color: #323a45;\n}\n\n.usa-background-dark p,\n.usa-background-dark span {\n color: #ffffff;\n}\n\n.usa-background-dark a {\n color: #d6d7d9;\n}\n\n.usa-background-dark a:hover {\n color: #ffffff;\n}\n\n.usa-text-small {\n font-size: 1.3rem;\n margin-top: 0;\n}\n\n.usa-section > :first-child,\n.usa-grid > :first-child,\n.usa-grid-full > :first-child {\n margin-top: 0;\n}\n\n.usa-section > :last-child,\n.usa-grid > :last-child,\n.usa-grid-full > :last-child {\n margin-bottom: 0;\n}\n\n.usa-width-one-whole:first-child > :first-child,\n.usa-width-one-half:first-child > :first-child,\n.usa-width-one-third:first-child > :first-child,\n.usa-width-two-thirds:first-child > :first-child,\n.usa-width-one-fourth:first-child > :first-child,\n.usa-width-three-fourths:first-child > :first-child,\n.usa-width-one-sixth:first-child > :first-child,\n.usa-width-five-sixths:first-child > :first-child,\n.usa-width-one-twelfth:first-child > :first-child {\n margin-top: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-width-one-whole > :first-child,\n .usa-width-one-half > :first-child,\n .usa-width-one-third > :first-child,\n .usa-width-two-thirds > :first-child,\n .usa-width-one-fourth > :first-child,\n .usa-width-three-fourths > :first-child,\n .usa-width-one-sixth > :first-child,\n .usa-width-five-sixths > :first-child,\n .usa-width-one-twelfth > :first-child {\n margin-top: 0;\n }\n}\n\n.usa-width-one-whole:last-child > :last-child,\n.usa-width-one-half:last-child > :last-child,\n.usa-width-one-third:last-child > :last-child,\n.usa-width-two-thirds:last-child > :last-child,\n.usa-width-one-fourth:last-child > :last-child,\n.usa-width-three-fourths:last-child > :last-child,\n.usa-width-one-sixth:last-child > :last-child,\n.usa-width-five-sixths:last-child > :last-child,\n.usa-width-one-twelfth:last-child > :last-child {\n margin-bottom: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-width-one-whole > :last-child,\n .usa-width-one-half > :last-child,\n .usa-width-one-third > :last-child,\n .usa-width-two-thirds > :last-child,\n .usa-width-one-fourth > :last-child,\n .usa-width-three-fourths > :last-child,\n .usa-width-one-sixth > :last-child,\n .usa-width-five-sixths > :last-child,\n .usa-width-one-twelfth > :last-child {\n margin-bottom: 0;\n }\n}\n\n.usa-accordion,\n.usa-accordion-bordered {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n color: #212121;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.usa-accordion > li,\n.usa-accordion-bordered > li {\n margin-bottom: 0;\n}\n\n.usa-accordion > ul li ul,\n.usa-accordion-bordered > ul li ul {\n list-style: disc;\n}\n\n.usa-accordion > ul li ul > li > ul,\n.usa-accordion-bordered > ul li ul > li > ul {\n list-style: circle;\n}\n\n.usa-accordion > ul li ul > li > ul > li > ul,\n.usa-accordion-bordered > ul li ul > li > ul > li > ul {\n list-style: square;\n}\n\n.usa-accordion + .usa-accordion,\n.usa-accordion + .usa-accordion-bordered,\n.usa-accordion-bordered + .usa-accordion,\n.usa-accordion-bordered + .usa-accordion-bordered {\n margin-top: 1rem;\n}\n\n.usa-accordion > ul,\n.usa-accordion-bordered > ul {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n color: #212121;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.usa-accordion > ul > li,\n.usa-accordion-bordered > ul > li {\n margin-bottom: 0;\n}\n\n.usa-accordion > ul > li,\n.usa-accordion-bordered > ul > li {\n background-color: #f1f1f1;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n list-style: none;\n margin-bottom: 6px;\n width: 100%;\n}\n\n.usa-accordion > ul button,\n.usa-accordion-bordered > ul button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n background-color: #f1f1f1;\n background-image: url(\"../img/minus.png\");\n background-image: url(\"../img/minus.svg\");\n background-position: right 3rem center;\n background-repeat: no-repeat;\n background-size: 13px;\n color: #212121;\n cursor: pointer;\n display: inline-block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-weight: 700;\n margin: 0;\n padding: 1.5rem 5.5rem 1.5rem 3rem;\n width: 100%;\n}\n\n.usa-accordion > ul button:hover,\n.usa-accordion-bordered > ul button:hover {\n background-color: transparent;\n}\n\n.usa-accordion > ul button:focus,\n.usa-accordion-bordered > ul button:focus {\n box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n}\n\n.usa-accordion > ul button:hover,\n.usa-accordion-bordered > ul button:hover {\n background-color: #d6d7d9;\n color: #212121;\n}\n\n.usa-accordion > ul button h1,\n.usa-accordion > ul button h2,\n.usa-accordion > ul button h3,\n.usa-accordion > ul button h4,\n.usa-accordion > ul button h5,\n.usa-accordion > ul button h6,\n.usa-accordion-bordered > ul button h1,\n.usa-accordion-bordered > ul button h2,\n.usa-accordion-bordered > ul button h3,\n.usa-accordion-bordered > ul button h4,\n.usa-accordion-bordered > ul button h5,\n.usa-accordion-bordered > ul button h6 {\n margin: 0;\n}\n\n.usa-accordion > ul [aria-expanded=false],\n.usa-accordion-bordered > ul [aria-expanded=false] {\n background-image: url(\"../img/plus.png\");\n background-image: url(\"../img/plus.svg\");\n background-repeat: no-repeat;\n background-size: 1.3rem;\n}\n\n.usa-accordion > li,\n.usa-accordion-bordered > li {\n background-color: #f1f1f1;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n list-style: none;\n margin-bottom: 6px;\n width: 100%;\n}\n\n.usa-accordion-bordered .usa-accordion-content {\n border-bottom: 3px solid #f1f1f1;\n border-left: 3px solid #f1f1f1;\n border-right: 3px solid #f1f1f1;\n}\n\n.usa-accordion-content {\n background-color: #ffffff;\n overflow: auto;\n padding: 3rem;\n}\n\n.usa-accordion-content > *:first-child {\n margin-top: 0;\n}\n\n.usa-accordion-content > *:last-child {\n margin-bottom: 0;\n}\n\n.usa-accordion-content:not([aria-hidden]) {\n position: absolute;\n left: -999em;\n}\n\n.usa-accordion-content[aria-hidden=true] {\n display: none;\n}\n\n.usa-accordion-button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n background-color: #f1f1f1;\n background-image: url(\"../img/minus.png\");\n background-image: url(\"../img/minus.svg\");\n background-position: right 3rem center;\n background-repeat: no-repeat;\n background-size: 13px;\n color: #212121;\n cursor: pointer;\n display: inline-block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-weight: 700;\n margin: 0;\n padding: 1.5rem 5.5rem 1.5rem 3rem;\n width: 100%;\n}\n\n.usa-accordion-button:hover {\n background-color: transparent;\n}\n\n.usa-accordion-button:focus {\n box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n}\n\n.usa-accordion-button:hover {\n background-color: #d6d7d9;\n color: #212121;\n}\n\n.usa-accordion-button h1,\n.usa-accordion-button h2,\n.usa-accordion-button h3,\n.usa-accordion-button h4,\n.usa-accordion-button h5,\n.usa-accordion-button h6 {\n margin: 0;\n}\n\n.usa-accordion-button[aria-expanded=false] {\n background-image: url(\"../img/plus.png\");\n background-image: url(\"../img/plus.svg\");\n background-repeat: no-repeat;\n background-size: 1.3rem;\n}\n\n.usa-alert {\n background-color: #f1f1f1;\n background-position: 1rem 2rem;\n background-repeat: no-repeat;\n background-size: 4rem;\n margin-top: 1.5em;\n padding: 1em;\n}\n\n@media screen and (min-width: 600px) {\n .usa-alert {\n background-size: 5.2rem;\n }\n}\n\n.usa-alert a {\n color: #205493;\n}\n\n.usa-alert a:focus, .usa-alert a:hover {\n color: #112e51;\n}\n\n.usa-alert ul {\n margin-bottom: 0;\n margin-top: 1em;\n padding-left: 1em;\n}\n\n.usa-alert-icon {\n display: table-cell;\n padding-right: 1rem;\n}\n\n.usa-alert-body {\n display: table-cell;\n padding-left: 3.5rem;\n vertical-align: top;\n}\n\n@media screen and (min-width: 600px) {\n .usa-alert-body {\n padding-left: 5rem;\n }\n}\n\n.usa-alert-body p:first-child {\n margin-top: 0.8rem;\n}\n\n.usa-alert-body p:last-child {\n margin-bottom: 0.8rem;\n}\n\n.usa-alert-heading {\n margin-bottom: .3rem;\n margin-top: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-alert-heading {\n margin-top: .3rem;\n }\n}\n\n.usa-alert-text {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.usa-alert-success {\n background-color: #e7f4e4;\n background-image: url(\"../img/alerts/success.png\");\n background-image: url(\"../img/alerts/success.svg\");\n}\n\n.usa-alert-warning {\n background-color: #fff1d2;\n background-image: url(\"../img/alerts/warning.png\");\n background-image: url(\"../img/alerts/warning.svg\");\n}\n\n.usa-alert-error {\n background-color: #f9dede;\n background-image: url(\"../img/alerts/error.png\");\n background-image: url(\"../img/alerts/error.svg\");\n}\n\n.usa-alert-info {\n background-color: #e1f3f8;\n background-image: url(\"../img/alerts/info.png\");\n background-image: url(\"../img/alerts/info.svg\");\n}\n\n.usa-alert-no_icon {\n background-image: none;\n}\n\n.usa-alert-paragraph {\n width: 53rem;\n padding: 1em 3em 1em 1em;\n}\n\n.usa-banner {\n background-color: #f1f1f1;\n padding-bottom: 0.7rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner {\n font-size: 1.3rem;\n padding-bottom: 0;\n }\n}\n\n.usa-banner-content {\n padding-right: 1.5rem;\n padding-bottom: 3px;\n padding-left: 1.5rem;\n background-color: transparent;\n font-size: 1.5rem;\n padding-top: 2rem;\n width: 100%;\n}\n\n@media screen and (min-width: 600px) {\n .usa-banner-content {\n padding-bottom: 2.3rem;\n padding-top: 4rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-banner-content {\n padding-right: 3rem;\n padding-left: 3rem;\n }\n}\n\n.usa-banner-content p:first-child {\n margin-top: 1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-banner-content p:first-child {\n margin-top: 0;\n }\n}\n\n.usa-banner-inner {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 1.5rem;\n padding-left: 1.5rem;\n max-width: 1040px;\n}\n\n.usa-banner-inner::after {\n clear: both;\n content: \"\";\n display: block;\n}\n\n@media screen and (min-width: 951px) {\n .usa-banner-inner {\n padding-right: 3rem;\n padding-left: 3rem;\n }\n}\n\n.usa-banner-header {\n padding-top: 0.55rem;\n padding-bottom: 0.55rem;\n font-size: 1.2rem;\n font-weight: 400;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header {\n padding-top: 0;\n padding-bottom: 0;\n }\n}\n\n.usa-banner-header p {\n margin-top: 0;\n margin-bottom: 0;\n display: inline;\n overflow: hidden;\n vertical-align: middle;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header p {\n margin-top: 2px;\n margin-bottom: 2px;\n display: inline-block;\n }\n}\n\n.usa-banner-header img {\n float: left;\n margin-right: 1rem;\n margin-top: 1px;\n width: 2.4rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header img {\n margin-right: 0.7rem;\n width: 2rem;\n }\n}\n\n.usa-banner-header-expanded {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n border-bottom: 1px solid #aeb0b5;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n font-size: 1.5rem;\n min-height: 5.6rem;\n padding-right: 3rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded {\n border-bottom: none;\n display: block;\n font-size: 1.2rem;\n font-weight: 400;\n min-height: 0;\n padding-right: 0;\n }\n}\n\n.usa-banner-header-expanded > .usa-banner-inner {\n margin-left: 0;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded > .usa-banner-inner {\n margin-left: auto;\n }\n}\n\n.usa-banner-header-expanded img {\n margin-right: 2.4rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded img {\n margin-right: 0.7rem;\n }\n}\n\n.usa-banner-header-expanded p {\n line-height: 1.3;\n vertical-align: top;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded p {\n line-height: 1.5;\n vertical-align: middle;\n }\n}\n\n.usa-banner-button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n padding-top: 1.3rem;\n padding-left: 4.8rem;\n background-position-x: right;\n color: #0071bc;\n display: block;\n font-size: 1.2rem;\n height: 4.3rem;\n left: 0;\n position: absolute;\n text-decoration: underline;\n top: 0;\n width: 100%;\n}\n\n.usa-banner-button:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button {\n padding-top: 0;\n padding-left: 0;\n /* stylelint-disable declaration-block-no-ignored-properties */\n display: inline;\n height: initial;\n margin-left: 3px;\n position: relative;\n vertical-align: middle;\n width: initial;\n /* stylelint-enable */\n }\n}\n\n.usa-banner-button:hover {\n color: #205493;\n text-decoration: underline;\n}\n\n.usa-banner-button[aria-expanded=false] {\n background-image: none;\n}\n\n.usa-banner-button[aria-expanded=false]::after {\n background-image: url(../img/angle-arrow-down-primary.png);\n background-image: url(../img/angle-arrow-down-primary.svg);\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 1rem;\n width: 1rem;\n /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n margin-left: 0;\n /* stylelint-enable */\n}\n\n.usa-banner-button[aria-expanded=false]:hover::after {\n background-image: url(../img/angle-arrow-down-primary-hover.png);\n background-image: url(../img/angle-arrow-down-primary-hover.svg);\n}\n\n.usa-banner-button[aria-expanded=false]::after {\n background-position-y: 1px;\n}\n\n.usa-banner-button[aria-expanded=true] {\n background-image: none;\n height: 5.6rem;\n}\n\n.usa-banner-button[aria-expanded=true]::after {\n background-image: url(../img/close.png);\n background-image: url(../img/close.svg);\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 1.3rem;\n width: 1.3rem;\n /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n margin-left: 0;\n /* stylelint-enable */\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button[aria-expanded=true] {\n height: initial;\n padding: 0;\n position: relative;\n }\n .usa-banner-button[aria-expanded=true]::after {\n background-image: url(../img/angle-arrow-up-primary.png);\n background-image: url(../img/angle-arrow-up-primary.svg);\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 1rem;\n width: 1rem;\n /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n margin-left: 0;\n /* stylelint-enable */\n }\n .usa-banner-button[aria-expanded=true]:hover::after {\n background-image: url(../img/angle-arrow-up-primary-hover.png);\n background-image: url(../img/angle-arrow-up-primary-hover.svg);\n }\n .usa-banner-button[aria-expanded=true]::after {\n background-position-y: 1px;\n }\n}\n\n.usa-banner-button[aria-expanded=true]::after {\n position: absolute;\n right: 1.5rem;\n top: 2.15rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button[aria-expanded=true]::after {\n position: static;\n }\n}\n\n.usa-banner-button[aria-expanded=true] .usa-banner-button-text {\n display: none;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button[aria-expanded=true] .usa-banner-button-text {\n display: inline;\n }\n}\n\n.usa-banner-icon {\n width: 3.8rem;\n}\n\n.usa-footer .usa-unstyled-list {\n display: block;\n}\n\n.usa-footer .usa-footer-primary-link {\n color: #212121;\n display: block;\n font-weight: 700;\n margin-top: 0;\n padding-bottom: 2rem;\n padding-top: 2rem;\n text-decoration: none;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer .usa-footer-primary-link {\n border-top: none;\n }\n}\n\n.usa-footer .usa-footer-primary-link:hover {\n text-decoration: underline;\n}\n\n.usa-footer a {\n font-weight: normal;\n}\n\n.usa-footer-return-to-top {\n padding-bottom: 2rem;\n padding-top: 2rem;\n}\n\n.usa-footer-primary-section {\n background-color: #f1f1f1;\n}\n\n.usa-footer-primary-section .usa-footer-primary-content {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-primary-section .usa-footer-primary-content {\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n.usa-footer-primary-section .usa-footer-primary-content li {\n margin-left: 1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-primary-section .usa-footer-primary-content li {\n margin-left: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-primary-section .usa-grid-full {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n }\n}\n\n.usa-footer-medium .usa-footer-primary-section {\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-medium .usa-footer-primary-section {\n padding-bottom: 1rem;\n padding-top: 1rem;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content {\n margin-right: 6%;\n width: inherit;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content:last-child {\n margin-right: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-medium .usa-footer-nav ul {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n}\n\n.usa-footer-slim .usa-footer-nav a {\n display: block;\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-slim .usa-footer-nav .usa-footer-primary-content {\n margin-right: 9%;\n width: inherit;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-slim .usa-footer-nav .usa-footer-primary-content:last-child {\n margin-right: 0;\n }\n}\n\n.usa-footer-slim .usa-footer-primary-section {\n padding-bottom: 2rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-primary-section {\n padding-bottom: 1rem;\n padding-top: 1rem;\n }\n .usa-footer-slim .usa-footer-primary-section .usa-grid-full {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-contact_info > * {\n margin: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-contact_info {\n padding-top: 2rem;\n padding-bottom: 2rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-contact_info {\n width: 100%;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-slim .usa-footer-contact_info {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 48.82117%;\n }\n .usa-footer-slim .usa-footer-contact_info:last-child {\n margin-right: 0;\n }\n}\n\n/* stylelint-disable selector-no-qualifying-type */\nul.usa-footer-primary-content,\nli.usa-footer-primary-content,\nli.usa-footer-primary-content {\n border-top: 1px solid #212121;\n}\n\n@media screen and (min-width: 600px) {\n ul.usa-footer-primary-content,\n li.usa-footer-primary-content,\n li.usa-footer-primary-content {\n border: none;\n }\n}\n\nul.usa-footer-primary-content:last-child,\nli.usa-footer-primary-content:last-child,\nli.usa-footer-primary-content:last-child {\n border-bottom: 1px solid #212121;\n}\n\n@media screen and (min-width: 600px) {\n ul.usa-footer-primary-content:last-child,\n li.usa-footer-primary-content:last-child,\n li.usa-footer-primary-content:last-child {\n border-bottom: none;\n }\n}\n\n/* stylelint-enable */\n.usa-sign_up-block {\n padding-bottom: 2rem;\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-sign_up-block {\n float: right;\n padding: 0;\n }\n}\n\n.usa-sign_up-block label:first-of-type {\n margin-top: 0;\n}\n\n.usa-sign_up-block button {\n float: none;\n margin-right: 0;\n margin-top: 1.5rem;\n}\n\n.usa-sign_up-block input {\n width: 100%;\n}\n\n.usa-footer-secondary_section {\n background-color: #d6d7d9;\n padding-bottom: 3rem;\n padding-top: 3rem;\n}\n\n.usa-footer-secondary_section a {\n color: #212121;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big-secondary-section {\n padding-top: 5rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-contact-links {\n text-align: right;\n }\n}\n\n.usa-social-links a {\n text-decoration: none;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big .usa-footer-primary-section {\n padding-bottom: 4rem;\n padding-top: 3rem;\n }\n}\n\n.usa-footer-big ul {\n padding-bottom: 2.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul {\n padding-bottom: 0;\n }\n}\n\n.usa-footer-big ul:last-child {\n border-bottom: 1px solid #212121;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul:last-child {\n border-bottom: none;\n }\n}\n\n.usa-footer-big ul li {\n line-height: 2em;\n}\n\n.usa-footer-big ul .usa-footer-primary-link {\n background-image: url(\"../img/arrow-down.png\");\n background-image: url(\"../img/arrow-down.svg\");\n background-position: 1.5rem center;\n background-repeat: no-repeat;\n background-size: 1.3rem;\n margin-left: 0;\n padding-left: 3.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul .usa-footer-primary-link {\n background: none;\n margin-bottom: .8rem;\n padding-bottom: 0;\n padding-left: 0;\n }\n}\n\n.usa-footer-big ul .usa-footer-primary-link > * {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.usa-footer-big ul.hidden {\n /* stylelint-disable-line selector-no-qualifying-type */\n padding-bottom: 0;\n}\n\n.usa-footer-big ul.hidden li {\n display: none;\n}\n\n.usa-footer-big ul.hidden .usa-footer-primary-link {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-image: url(\"../img/arrow-right.png\");\n background-image: url(\"../img/arrow-right.svg\");\n cursor: pointer;\n display: block;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul.hidden .usa-footer-primary-link {\n background: none;\n padding-left: 0;\n }\n}\n\n.usa-footer-topic {\n margin: 0;\n padding: 2rem 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-sign_up-header {\n margin: 0;\n padding: 2rem 0;\n }\n}\n\n.usa-footer-logo-img {\n max-width: 14rem;\n}\n\n.usa-footer-slim-logo-img {\n float: left;\n max-width: 10rem;\n}\n\n.usa-footer-logo-heading {\n margin-top: 2rem;\n}\n\n.usa-footer-contact-heading {\n margin-top: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-contact-heading {\n margin-top: 1rem;\n }\n}\n\n.usa-footer-slim-logo-heading {\n display: block;\n padding-top: 1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim-logo-heading {\n display: inline-block;\n padding-left: 1em;\n }\n}\n\n.usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {\n margin: 2.5rem 1rem 1.5rem 0;\n background-position: center center;\n background-repeat: no-repeat;\n background-size: auto 3rem;\n display: inline-block;\n height: 4.4rem;\n left: -1.6rem;\n position: relative;\n text-align: center;\n width: 4.4rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {\n margin: 0 0 0 1rem;\n left: 1.2rem;\n }\n}\n\n.usa-social_link span, .usa-link-facebook span, .usa-link-twitter span, .usa-link-youtube span, .usa-link-rss span {\n position: absolute;\n left: -999em;\n}\n\n.usa-link-facebook {\n background-image: url(\"../img/social-icons/png/facebook25.png\");\n background-image: url(\"../img/social-icons/svg/facebook25.svg\");\n}\n\n.usa-link-twitter {\n background-image: url(\"../img/social-icons/png/twitter16.png\");\n background-image: url(\"../img/social-icons/svg/twitter16.svg\");\n}\n\n.usa-link-youtube {\n background-image: url(\"../img/social-icons/png/youtube15.png\");\n background-image: url(\"../img/social-icons/svg/youtube15.svg\");\n}\n\n.usa-link-rss {\n background-image: url(\"../img/social-icons/png/rss25.png\");\n background-image: url(\"../img/social-icons/svg/rss25.svg\");\n}\n\nform a {\n border-bottom: 0;\n}\n\nform [type=submit],\nform [type=submit] {\n display: block;\n margin-bottom: 1.5em;\n margin-top: 2.5rem;\n}\n\n@media screen and (min-width: 600px) {\n form [type=submit],\n form [type=submit] {\n padding-left: 2.7em;\n padding-right: 2.7em;\n width: auto;\n }\n}\n\nform [name=password],\nform [name=confirmPassword] {\n margin-bottom: 1.1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-form {\n max-width: 32rem;\n }\n}\n\n.usa-form-note {\n float: right;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-size: 1.5rem;\n margin: 0 0 1.5rem;\n}\n\n.usa-form-note + * {\n clear: both;\n}\n\nfieldset {\n border: none;\n margin: 0;\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-form-large {\n max-width: 46rem;\n }\n}\n\ninput.usa-input-tiny {\n /* stylelint-disable-line selector-no-qualifying-type */\n}\n\n@media screen and (min-width: 600px) {\n input.usa-input-tiny {\n max-width: 6rem;\n }\n}\n\ninput.usa-input-medium {\n /* stylelint-disable-line selector-no-qualifying-type */\n}\n\n@media screen and (min-width: 600px) {\n input.usa-input-medium {\n max-width: 12rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid {\n padding-right: 5%;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid:last-of-type {\n padding-right: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid-small {\n float: left;\n width: 35%;\n }\n}\n\n.usa-input-grid-small input {\n margin-bottom: 3rem;\n}\n\n.usa-input-grid-small select {\n margin-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid-medium {\n float: left;\n width: 65%;\n }\n}\n\n.usa-input-grid-medium input {\n margin-bottom: 3rem;\n}\n\n.usa-input-grid-medium select {\n margin-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid-large {\n float: left;\n width: 100%;\n }\n}\n\n.usa-input-grid-large input {\n margin-bottom: 3rem;\n}\n\n.usa-input-grid-large select {\n margin-bottom: 3rem;\n}\n\n.usa-additional_text {\n font-weight: normal;\n}\n\n.usa-checklist {\n list-style: none;\n margin-left: 0;\n padding-left: 0;\n}\n\n.usa-checklist li {\n display: inline-block;\n list-style: none;\n margin-bottom: 0;\n margin-top: 0;\n padding-left: 3em;\n text-indent: -2em;\n}\n\n.usa-checklist li::before {\n content: ' ';\n display: inline-block;\n height: .8em;\n margin-right: .2em;\n width: 1.8em;\n}\n\n.usa-checklist-checked::before {\n background-image: url(\"../img/correct9.png\");\n background-image: url(\"../img/correct9.svg\");\n background-position: 100%;\n background-repeat: no-repeat;\n background-size: 100%;\n}\n\n.usa-graphic_list .usa-graphic_list-row .usa-media_block {\n margin-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-graphic_list .usa-graphic_list-row .usa-media_block {\n margin-bottom: 6rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block {\n margin-bottom: 0;\n }\n}\n\n.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block:last-child {\n margin-bottom: 0;\n}\n\n.usa-graphic_list .usa-media_block-img {\n margin-right: 3rem;\n}\n\n.usa-graphic_list .usa-media_block-body > :first-child {\n margin-top: 0;\n}\n\n.usa-header {\n width: 100%;\n z-index: 7000;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header {\n border-bottom: 1px solid #aeb0b5;\n }\n}\n\n.usa-header a {\n border-bottom: none;\n}\n\n.usa-header .usa-search {\n margin-bottom: 1.5rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header .usa-search {\n float: right;\n margin-bottom: 0;\n max-width: 21.5rem;\n }\n}\n\n.usa-logo {\n float: left;\n line-height: 4rem;\n margin-left: 1.5rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-logo {\n line-height: 7.5rem;\n margin-left: 0;\n }\n}\n\n.usa-logo a {\n color: #212121;\n text-decoration: none;\n}\n\n.usa-logo br {\n display: none;\n}\n\n@media screen and (min-width: 951px) {\n .usa-logo br {\n display: block;\n }\n}\n\n.usa-logo-text {\n display: block;\n font-size: 1.5rem;\n font-style: normal;\n font-weight: 700;\n margin: 0;\n}\n\n@media screen and (min-width: 951px) {\n .usa-logo-text {\n display: block;\n font-size: 2.4rem;\n line-height: 1.3;\n }\n}\n\n.usa-menu-btn {\n /* stylelint-disable declaration-block-no-ignored-properties */\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n background-color: #0071bc;\n color: #ffffff;\n display: inline;\n float: right;\n font-size: 1.3rem;\n height: 4rem;\n line-height: 4rem;\n text-align: center;\n text-decoration: none;\n text-transform: uppercase;\n width: 5.8rem;\n /* stylelint-enable */\n}\n\n.usa-menu-btn:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-menu-btn {\n display: none;\n }\n}\n\n.usa-menu-btn:hover {\n color: #ffffff;\n background-color: #205493;\n}\n\n.usa-menu-btn:visited {\n color: #ffffff;\n}\n\n.usa-overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: #000000;\n opacity: 0;\n transition: all 0.2s ease-in-out;\n visibility: hidden;\n z-index: 8000;\n}\n\n.usa-overlay.is-visible {\n opacity: 0.1;\n visibility: visible;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic .usa-logo {\n bottom: 1.9rem;\n position: absolute;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic .usa-navbar {\n position: relative;\n width: 18%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-header {\n border-bottom: none;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-logo {\n margin-top: 3rem;\n margin-bottom: 3rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended em {\n font-size: 3.2rem;\n line-height: 1;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-navbar {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 3rem;\n padding-left: 3rem;\n display: block;\n height: auto;\n max-width: 1040px;\n }\n .usa-header-extended .usa-navbar::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav {\n border-top: 1px solid #aeb0b5;\n float: none;\n padding: 0;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-inner {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 3rem;\n padding-left: 2rem;\n margin-top: -1px;\n max-width: 1040px;\n position: relative;\n }\n .usa-header-extended .usa-nav-inner::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-primary::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n.usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {\n /* stylelint-disable-line selector-no-qualifying-type */\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-position: right 1.5rem top 50%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-link {\n padding-top: 1.9rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-submenu .usa-grid-full {\n padding-left: 1.2rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-megamenu {\n padding-left: 3rem;\n }\n}\n\n.usa-hero {\n padding-top: 3rem;\n padding-bottom: 3rem;\n background-image: url(\"../img/hero.png\");\n background-position: center;\n background-size: cover;\n}\n\n.usa-hero .usa-button {\n color: #ffffff;\n}\n\n.usa-section-dark .usa-hero-link {\n color: #02bfe7;\n}\n\n.usa-hero-callout {\n background-color: #112e51;\n padding: 3rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-hero-callout {\n max-width: 30rem;\n }\n}\n\n.usa-hero-callout > *:first-child {\n margin-top: 0;\n margin-bottom: 3rem;\n}\n\n.usa-hero-callout .usa-button {\n font-size: 1.4rem;\n margin-top: 7rem;\n width: 100%;\n}\n\n.usa-hero-callout-alt {\n color: #ffffff;\n display: block;\n}\n\n.usa-layout-docs {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n@media screen and (min-width: 1201px) {\n .usa-layout-docs {\n display: inherit;\n }\n}\n\n.usa-layout-docs .usa-grid > :first-child:not(.usa-width-*) {\n margin-top: 0;\n}\n\n.usa-layout-docs .usa-grid > :last-child:not(.usa-width-*) {\n margin-bottom: 0;\n}\n\n.usa-layout-docs-sidenav {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n\n.usa-layout-docs-main_content {\n margin-bottom: 3rem;\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n\n@media screen and (min-width: 1201px) {\n .usa-layout-docs-main_content {\n margin-bottom: 0;\n }\n}\n\n.usa-layout-docs-main_content > :first-child {\n margin-top: 0;\n}\n\n.usa-media_block-img {\n float: left;\n margin-right: 1rem;\n}\n\n.usa-media_block-body {\n overflow: hidden;\n}\n\n.usa-navbar {\n border-bottom: 1px solid #aeb0b5;\n height: 4rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-navbar {\n border-bottom: none;\n display: inline-block;\n height: 10.3rem;\n }\n}\n\n.usa-nav-link {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-link:hover span {\n border-bottom: 0.7rem solid #0071bc;\n padding-bottom: 1rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-container {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 3rem;\n padding-left: 3rem;\n max-width: 1040px;\n }\n .usa-nav-container::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n.usa-nav {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: auto;\n background: #ffffff;\n border-left: 1px solid #aeb0b5;\n border-right: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow-y: auto;\n padding: 2rem;\n -webkit-transform: translateX(26rem);\n -ms-transform: translateX(26rem);\n transform: translateX(26rem);\n width: 26rem;\n z-index: 9000;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav {\n padding-top: 5rem;\n padding-right: 0;\n padding-bottom: 0;\n border-left: none;\n display: block;\n float: right;\n overflow-y: visible;\n position: relative;\n -webkit-transform: translateX(0);\n -ms-transform: translateX(0);\n transform: translateX(0);\n width: auto;\n }\n}\n\n.usa-nav.is-visible {\n -webkit-transform: translateX(0);\n -ms-transform: translateX(0);\n transform: translateX(0);\n transition: all 0.3s ease-in-out;\n}\n\n.usa-nav nav {\n margin-top: 6rem;\n min-height: 100%;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav nav {\n margin-top: 0;\n }\n}\n\n.usa-nav .usa-current {\n border-left: 4px solid #0071bc;\n color: #0071bc;\n font-weight: 700;\n padding-left: 1.4rem;\n}\n\n.usa-nav .usa-button {\n width: 100%;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav .usa-search {\n margin-left: 1.5rem;\n }\n}\n\n.usa-nav-primary {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n\n.usa-nav-primary > li {\n margin-bottom: 0;\n}\n\n.usa-nav-primary > li {\n background-color: transparent;\n border-top: 1px solid #5b616b;\n font-size: 1.7rem;\n}\n\n.usa-nav-primary > li:first-child {\n border-top: none;\n}\n\n.usa-nav-primary a {\n border: none;\n color: #212121;\n display: block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n line-height: 1.3;\n padding: 0.85rem 1rem 0.85rem 1.8rem;\n text-decoration: none;\n}\n\n.usa-nav-primary a:hover {\n background-color: #f1f1f1;\n color: #0071bc;\n text-decoration: none;\n}\n\n.usa-nav-primary a:focus {\n position: relative;\n z-index: 1;\n}\n\n.usa-nav-primary a.usa-current {\n /* stylelint-disable-line selector-no-qualifying-type */\n border-left: 0.4rem solid #0071bc;\n color: #0071bc;\n font-weight: 700;\n padding-left: 1.4rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary {\n display: inline;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary li {\n border-top: none;\n }\n}\n\n.usa-nav-primary > li {\n width: auto;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary > li {\n display: inline-block;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary > li > a {\n padding: 1.3rem 1.5rem 1.7rem;\n color: #5b616b;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1.2;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary > li > a:hover {\n background-color: transparent;\n }\n}\n\n.usa-nav-primary button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-weight: 400;\n padding: 1.4rem 1.5rem 1rem 1.8rem;\n}\n\n.usa-nav-primary button:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button {\n padding-right: 3rem;\n padding-bottom: 1.9rem;\n padding-left: 1.5rem;\n color: #5b616b;\n font-size: 1.5rem;\n font-weight: 700;\n width: initial;\n }\n}\n\n.usa-nav-primary button:focus, .usa-nav-primary button:active {\n box-shadow: 0 0 3px #3e94cf, 0 0 7px #3e94cf;\n}\n\n.usa-nav-primary button:hover {\n background-color: #f1f1f1;\n color: #0071bc;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button:hover {\n background-color: transparent;\n }\n}\n\n.usa-nav-primary button[aria-expanded=false] {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-image: url(\"../img/plus-alt.png\");\n background-image: url(\"../img/plus-alt.svg\");\n background-repeat: no-repeat;\n background-position: right 0 center;\n background-size: 1rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button[aria-expanded=false] {\n background-image: url(\"../img/angle-arrow-down.png\");\n background-image: url(\"../img/angle-arrow-down.svg\");\n background-position: right 1.5rem top 44%;\n }\n}\n\n.usa-nav-primary button[aria-expanded=true] {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-image: url(\"../img/minus-alt.png\");\n background-image: url(\"../img/minus-alt.svg\");\n background-repeat: no-repeat;\n background-position: right 0 center;\n background-size: 1rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button[aria-expanded=true] {\n background-color: #112e51;\n color: #ffffff;\n background-image: url(\"../img/angle-arrow-down-hover.png\");\n background-image: url(\"../img/angle-arrow-down-hover.svg\");\n background-position: right 1.5rem top 44%;\n }\n .usa-nav-primary button[aria-expanded=true]:hover {\n background-color: #112e51;\n }\n .usa-nav-primary button[aria-expanded=true] span {\n border-bottom: 0.7rem solid #0071bc;\n padding-bottom: 1rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary a.usa-current {\n border-left: 0;\n padding-left: 1.5rem;\n }\n .usa-nav-primary a.usa-current span {\n border-bottom: 0.7rem solid #0071bc;\n padding-bottom: 1rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary {\n position: absolute;\n right: 3rem;\n top: -5.7rem;\n }\n}\n\n.usa-nav-secondary .usa-search {\n margin-top: 3rem;\n margin-bottom: 3rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary .usa-search {\n margin-top: -0.2rem;\n margin-bottom: 0;\n margin-left: 0;\n float: left;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links {\n float: left;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links li {\n display: inline;\n padding-left: 1rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links li:not(:last-child)::after {\n content: '|';\n padding-left: 1rem;\n }\n}\n\n.usa-nav-secondary-links a,\n.usa-nav-secondary-links .usa-header-search-button {\n color: #5b616b;\n display: inline-block;\n font-size: 1.5rem;\n text-decoration: none;\n}\n\n.usa-nav-secondary-links a:hover,\n.usa-nav-secondary-links .usa-header-search-button:hover {\n color: #0071bc;\n}\n\n.usa-nav-secondary-links .usa-header-search-button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n display: none;\n}\n\n.usa-nav-secondary-links .usa-header-search-button:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links .usa-header-search-button {\n background-image: url(\"../img/search-alt.png\");\n background-image: url(\"../img/search-alt.svg\");\n background-repeat: no-repeat;\n background-position: left center;\n background-size: 2.2rem;\n display: inline-block;\n padding-left: 2.3rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links .usa-header-search-button.is-hidden {\n display: none;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links a.usa-current {\n border-left: 0;\n padding-left: 0;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-submenu {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n padding-top: 1.15rem;\n padding-bottom: 1.15rem;\n background-color: #112e51;\n min-width: 21.5rem;\n width: auto;\n position: absolute;\n }\n .usa-nav-submenu > li {\n margin-bottom: 0;\n }\n}\n\n.usa-nav-submenu[aria-hidden=true] {\n display: none;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-submenu a {\n color: #ffffff;\n padding-left: 1.5rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-submenu a:hover {\n background-color: #112e51;\n color: #ffffff;\n text-decoration: underline;\n }\n}\n\n.usa-nav-submenu li {\n font-size: 1.5rem;\n margin-bottom: 0;\n}\n\n.usa-nav-close {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n outline: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n margin: -1.2rem -1.5rem 2.4rem auto;\n float: right;\n height: 4.4rem;\n text-align: center;\n width: 4.4rem;\n}\n\n.usa-nav-close:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-close {\n display: none;\n }\n}\n\n.usa-nav-close img {\n width: 1.3rem;\n}\n\n.usa-mobile_nav-active {\n overflow: hidden;\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu {\n padding-top: 3.15rem;\n padding-bottom: 3.15rem;\n left: -1rem;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu::before {\n background-color: #112e51;\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n top: 0;\n width: 1000%;\n right: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu::after {\n background-color: #112e51;\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n top: 0;\n width: 1000%;\n left: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic-megamenu .usa-nav {\n padding-left: 0;\n padding-top: 0;\n width: 100%;\n }\n}\n\n.usa-header-basic-megamenu .usa-nav-inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic-megamenu .usa-nav-inner {\n display: block;\n float: right;\n margin-top: -4.8rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic-megamenu .usa-nav-submenu .usa-grid-full {\n margin-left: -1.8rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu-col {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-megamenu-col:last-child {\n margin-right: 0;\n }\n .usa-megamenu-col:nth-child(2n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-megamenu-col:nth-child(2n):last-child {\n margin-right: 0;\n }\n .usa-megamenu-col:nth-child(4n) {\n margin-right: 0;\n }\n}\n\n.usa-megamenu-col > ul {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n}\n\n.usa-megamenu-col > ul > li {\n margin-bottom: 0;\n}\n\n.usa-search {\n max-width: none;\n position: relative;\n}\n\n.usa-search::after {\n clear: both;\n content: \"\";\n display: block;\n}\n\n.usa-search [type=search],\n.usa-search .usa-search-input {\n padding-top: 0;\n padding-bottom: 0;\n -webkit-appearance: none;\n border-bottom-right-radius: 0;\n border-right: none;\n border-top-right-radius: 0;\n box-sizing: border-box;\n float: left;\n font-size: 1.4rem;\n height: 3.3rem;\n margin: 0;\n width: calc(100% - 4.5rem);\n}\n\n@media screen and (min-width: 481px) {\n .usa-search [type=search],\n .usa-search .usa-search-input {\n width: calc(100% - 8.5rem);\n }\n}\n\n.usa-search [type=submit],\n.usa-search .usa-search-submit {\n background-image: url(\"../img/search.png\");\n background-image: url(\"../img/search.svg\");\n background-position: 50%;\n background-repeat: no-repeat;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n height: 3.3rem;\n margin: 0;\n padding: 0;\n width: 4.5rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-search [type=submit],\n .usa-search .usa-search-submit {\n background-image: none;\n width: 8.5rem;\n }\n}\n\n.usa-search .usa-search-submit-text {\n display: none;\n}\n\n@media screen and (min-width: 481px) {\n .usa-search .usa-search-submit-text {\n display: block;\n }\n}\n\n@media screen and (min-width: 481px) {\n .usa-search.usa-search-big [type=search],\n .usa-search.usa-search-big .usa-search-input {\n font-size: 1.7rem;\n height: 4.4rem;\n width: calc(100% - 11.6rem);\n }\n .usa-search.usa-search-big [type=submit],\n .usa-search.usa-search-big .usa-search-submit {\n font-size: 2rem;\n height: 4.4rem;\n width: 11.6rem;\n }\n}\n\n@media screen and (min-width: 481px) {\n .usa-search.usa-search-small [type=search],\n .usa-search.usa-search-small .usa-search-input {\n width: calc(100% - 4.5rem);\n }\n .usa-search.usa-search-small [type=submit],\n .usa-search.usa-search-small .usa-search-submit {\n background-image: url(\"../img/search.png\");\n background-image: url(\"../img/search.svg\");\n background-position: 50%;\n background-repeat: no-repeat;\n width: 4.5rem;\n }\n}\n\n@media screen and (max-width: 950px) {\n .usa-search.usa-search-small.usa-sr-only {\n left: auto;\n position: relative;\n }\n}\n\n.usa-section {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-section {\n padding-top: 6rem;\n padding-bottom: 6rem;\n }\n}\n\n.usa-section-light {\n background-color: #f1f1f1;\n}\n\n.usa-section-dark {\n background-color: #112e51;\n color: #ffffff;\n}\n\n.usa-section-dark h1,\n.usa-section-dark h2,\n.usa-section-dark h3,\n.usa-section-dark h4,\n.usa-section-dark h5,\n.usa-section-dark h6 {\n color: #02bfe7;\n}\n\n.usa-section-dark p {\n color: #ffffff;\n}\n\n.usa-section-dark a {\n color: #d6d7d9;\n}\n\n.usa-section-dark a:hover {\n color: #ffffff;\n}\n\n.usa-sidenav-list {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n}\n\n.usa-sidenav-list > li {\n margin-bottom: 0;\n}\n\n.usa-sidenav-list > li {\n background-color: transparent;\n border-top: 1px solid #5b616b;\n font-size: 1.7rem;\n}\n\n.usa-sidenav-list > li:first-child {\n border-top: none;\n}\n\n.usa-sidenav-list a {\n border: none;\n color: #212121;\n display: block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n line-height: 1.3;\n padding: 0.85rem 1rem 0.85rem 1.8rem;\n text-decoration: none;\n}\n\n.usa-sidenav-list a:hover {\n background-color: #f1f1f1;\n color: #0071bc;\n text-decoration: none;\n}\n\n.usa-sidenav-list a:focus {\n position: relative;\n z-index: 1;\n}\n\n.usa-sidenav-list a.usa-current {\n /* stylelint-disable-line selector-no-qualifying-type */\n border-left: 0.4rem solid #0071bc;\n color: #0071bc;\n font-weight: 700;\n padding-left: 1.4rem;\n}\n\n.usa-sidenav-sub_list {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n margin: 0;\n width: 100%;\n}\n\n.usa-sidenav-sub_list > li {\n margin-bottom: 0;\n}\n\n.usa-sidenav-sub_list li {\n border: none;\n font-size: 1.5rem;\n}\n\n.usa-sidenav-sub_list a {\n padding-left: 2.8rem;\n line-height: 1.3;\n}\n\n.usa-sidenav-sub_list a:hover, .usa-sidenav-sub_list a.usa-current {\n /* stylelint-disable-line selector-no-qualifying-type */\n border: none;\n padding-left: 2.8rem;\n}\n\n.usa-sidenav-sub_list .usa-sidenav-sub_list a {\n padding-left: 3.8rem;\n}\n\n.usa-sidenav-sub_list .usa-sidenav-sub_list a:hover {\n padding-left: 3.8rem;\n}\n\n.usa-skipnav {\n background: transparent;\n color: #212121;\n left: 0;\n padding: 1rem 1.5rem;\n position: absolute;\n top: -4.2rem;\n transition: all 0.2s ease-in-out;\n z-index: 100;\n}\n\n.usa-skipnav:focus {\n background: #ffffff;\n left: 0;\n outline: 0;\n position: absolute;\n top: 0;\n transition: all 0.2s ease-in-out;\n}\n"]}
1
+ {"version":3,"sources":["uswds.css"],"names":[],"mappings":"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ACE,cAAgB,CACjB,AACD,mCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,kCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,kCACE,cAAgB,CACjB,AACD,qCACE,cAAgB,CACjB,AACD,yBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,oCACE,cAAgB,CACjB,AACD,0BACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,qCACE,cAAgB,CACjB,CACF,AAED,qCACE,qBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,UAAY,CACb,AACD,gCACE,cAAgB,CACjB,AACD,oBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,+BACE,cAAgB,CACjB,AACD,qBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,gCACE,cAAgB,CACjB,AACD,sBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,iCACE,cAAgB,CACjB,AACD,sBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,iCACE,cAAgB,CACjB,AACD,oCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,+CACE,cAAgB,CACjB,AACD,oCACE,cAAgB,CACjB,AACD,yBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,oCACE,cAAgB,CACjB,AACD,qBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,gCACE,cAAgB,CACjB,AACD,mCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,8CACE,cAAgB,CACjB,AACD,mCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,kCACE,cAAgB,CACjB,AACD,uBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,cAAgB,CACjB,AACD,kCACE,cAAgB,CACjB,AACD,qCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,cAAgB,CACjB,AACD,gDACE,cAAgB,CACjB,AACD,sCACE,cAAgB,CACjB,AACD,yBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,oCACE,cAAgB,CACjB,AACD,0BACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,qCACE,cAAgB,CACjB,CACF,AAED,aACE,cAAgB,CACjB,AAED,wBACE,mBAAqB,CACtB,AAED,sBACE,qBAAuB,CACxB,AAED,uBACE,qBAAuB,CACxB,AAED,sBACE,qBAAuB,CACxB,AAED,0BACE,qBAAuB,CACxB,AAED,qBACE,qBAAuB,CACxB,AAED,2BACE,qBAAuB,CACxB,AAED,uBACE,qBAAuB,CACxB,AAED,0BACE,qBAAuB,CACxB,AAED,wBACE,qBAAuB,CACxB,AAED,4BACE,qBAAuB,CACxB,AAED,aACE,kBAAmB,AACnB,WAAa,CACd,AAED,KACE,qBAAuB,CACxB,AAED,iBAGE,kBAAoB,CACrB,AAED,KACE,sBAA0B,AAC1B,iBAAmB,CACpB,AAED,UACE,8BAAgC,AAChC,qBAAwB,CAEzB,AAED,SACE,sBAAyB,CAE1B,AAED,kBAEE,2BAA4B,AAC5B,kBAAoB,CACrB,AAGD,6IASE,kCAAmC,AACnC,mCAAoC,AACpC,gBAAkB,AAClB,kBAAoB,AACpB,mBAAqB,AACrB,wBAAyB,AACzB,qBAAsB,AACtB,gBAAiB,AACjB,yBAA0B,AAC1B,SAAU,AACV,kBAAmB,AACnB,WAAe,AACf,eAAgB,AAChB,qBAAsB,AACtB,6EAA6F,AAC7F,iBAAkB,AAClB,gBAAiB,AACjB,cAAe,AACf,kBAAmB,AACnB,kBAAmB,AACnB,qBAAsB,AACtB,UAAY,CACb,AAED,oCACE,6IASE,UAAY,CACb,CACF,AAED,yeAiBE,yBAA0B,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CE,YAAc,CACf,AAED,wHAEE,wBAAyB,AACzB,gBAAiB,AACjB,QAAU,CACX,AAED,iCACE,yBAA2B,CAC5B,AAED,+DAGE,WAAY,AACZ,WAAY,AACZ,oBAAqB,AACrB,UAAY,CACb,AAED,qBACE,UAAY,CACb,AAED,0BACE,yBAA0B,AAC1B,kBAAmB,AACnB,WAAe,AACf,iBAAkB,AAClB,mBAAqB,AACrB,oBAAuB,AACvB,wBAA0B,CAC3B,AAED,oDACE,cAAgB,CACjB,AAED,eACE,iBAAkB,AAClB,mBAAqB,AACrB,mBAAsB,CACvB,AAED,MAEE,eAAgB,AAChB,kBAAmB,AACnB,mBAAqB,CACtB,AAED,GACE,gBAAiB,AACjB,kBAAqB,CACtB,AAED,cACE,eAAiB,CAClB,AAED,kFAcE,YAAc,CACf,AAED,mBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,cAAgB,CACjB,AAED,sBACE,eAAiB,CAClB,AAED,MACE,iBAAkB,AAClB,YAAc,CACf,AAED,SACE,eAAiB,CAClB,AAED,kBAEE,wBAA0B,CAC3B,AAED,GACE,eAAiB,CAClB,AAED,MAEE,sBAA0B,AAC1B,yBAA0B,AAC1B,gBAAiB,AACjB,mBAAqB,CACtB,AAED,+BACE,6BAA8B,AAC9B,YAAc,CACf,AAED,kDAEE,cAAe,AACf,cAAgB,CACjB,AAED,qCACE,cAAgB,CACjB,AAED,QACE,iBAAkB,AAClB,gBAAiB,AACjB,qEAAqF,AACrF,qBAAsB,AACtB,eAAiB,CAClB,AAED,KACE,6EAA6F,AAC7F,cAAgB,CACjB,AAED,KACE,gBAAkB,CACnB,AAED,EACE,gBAAiB,AACjB,kBAAmB,AACnB,cAAgB,CACjB,AAED,EACE,cAAe,AACf,yBAA2B,CAC5B,AAED,iBACE,aAAe,CAChB,AAED,QACE,2BAA4B,AAC5B,kBAAoB,CACrB,AAED,UACE,aAAe,CAChB,AAED,yBACE,uDAA0D,AAC1D,uDAA0D,AAC1D,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,aAAe,AACf,mBAAoB,AACpB,gBAAiB,AACjB,WAAc,CACf,AAED,+BACE,qDAAwD,AACxD,oDAAwD,CACzD,AAED,6BACE,2DAA8D,AAC9D,2DAA8D,AAC9D,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,aAAe,AACf,mBAAoB,AACpB,gBAAiB,AACjB,WAAc,CACf,AAED,mCACE,yDAA4D,AAC5D,wDAA4D,CAC7D,AAED,eAKE,WAAY,AACZ,qEAAqF,AACrF,gBAAiB,AACjB,mBAAoB,AACpB,gBAAkB,CACnB,AAED,GACE,4EAA6F,CAC9F,AAED,GACE,eAAgB,AAChB,eAAiB,CAClB,AAED,GACE,eAAgB,AAChB,eAAiB,CAClB,AAED,GACE,eAAgB,AAChB,eAAiB,CAClB,AAED,GACE,iBAAkB,AAClB,eAAiB,CAClB,AAED,GACE,iBAAkB,AAClB,eAAiB,CAClB,AAED,GACE,iBAAkB,AAClB,gBAAiB,AACjB,gBAAiB,AACjB,wBAA0B,CAC3B,AAED,qBAIE,iBAAmB,CACpB,AAED,iJAGE,cAAgB,CACjB,AAED,kBACE,cAAgB,CACjB,AAED,oDAIE,4EAA6F,CAC9F,AAED,YACE,mBAAoB,AACpB,eAAiB,CAClB,AAED,wDAIE,oEAAqF,CACtF,AAED,aACE,eAAgB,AAChB,gBAAiB,AACjB,eAAiB,CAClB,AAED,oCACE,aACE,eAAgB,AAChB,eAAiB,CAClB,CACF,AAED,oCACE,aACE,iBAAkB,AAClB,eAAiB,CAClB,CACF,AAED,eACE,qEAAqF,AACrF,eAAgB,AAChB,gBAAiB,AACjB,gBAAiB,AACjB,eAAiB,CAClB,AAED,iBACE,iBAAmB,CACpB,AAED,sBACE,WAAe,AACf,OAAQ,AACR,eAAgB,AAChB,kBAAmB,AACnB,KAAO,CACR,AAED,gBACE,YAAc,CACf,AAED,eACE,eAAiB,CAClB,AAED,qBACE,wBAA0B,CAC3B,AAED,iDAEE,UAAe,CAChB,AAED,uBACE,aAAe,CAChB,AAED,6BACE,UAAe,CAChB,AAED,gBACE,iBAAkB,AAClB,YAAc,CACf,AAED,6EAGE,YAAc,CACf,AAED,0EAGE,eAAiB,CAClB,AAED,uaASE,YAAc,CACf,AAED,oCACE,2TASE,YAAc,CACf,CACF,AAED,qZASE,eAAiB,CAClB,AAED,oCACE,kTASE,eAAiB,CAClB,CACF,AAED,uCAEE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,cAAe,AACf,SAAU,AACV,UAAW,AACX,UAAY,CACb,AAED,6CAEE,eAAiB,CAClB,AAED,yDAEE,eAAiB,CAClB,AAED,qEAEE,iBAAmB,CACpB,AAED,iFAEE,iBAAmB,CACpB,AAED,4JAIE,eAAiB,CAClB,AAED,6CAEE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,cAAe,AACf,SAAU,AACV,UAAW,AACX,UAAY,CACb,AAED,mDAEE,eAAiB,CAClB,AAED,mDAEE,yBAA0B,AAC1B,6EAA6F,AAC7F,gBAAiB,AACjB,oBAAsB,AACtB,UAAY,CACb,AAED,2DAEE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AAEjB,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,yBAA0B,AAC1B,uCAA0C,AAC1C,uCAA0C,AAC1C,sCAAuC,AACvC,4BAA6B,AAC7B,uBAAwB,AACxB,cAAe,AACf,eAAgB,AAChB,qBAAsB,AACtB,6EAA6F,AAC7F,gBAAiB,AACjB,SAAU,AACV,kCAAmC,AACnC,UAAY,CACb,AAED,uEAEE,4BAA8B,CAC/B,AAED,uEAEE,yBAA0B,AAC1B,aAAe,CAChB,AAED,sYAYE,QAAU,CACX,AAED,yFAEE,sCAAyC,AACzC,sCAAyC,AACzC,4BAA6B,AAC7B,sBAAwB,CACzB,AAED,6CAEE,yBAA0B,AAC1B,6EAA6F,AAC7F,gBAAiB,AACjB,oBAAsB,AACtB,UAAY,CACb,AAED,+CACE,gCAAiC,AACjC,8BAA+B,AAC/B,8BAAgC,CACjC,AAED,uBACE,sBAA0B,AAC1B,cAAe,AACf,mBAAqB,CACtB,AAED,oCACE,YAAc,CACf,AAED,mCACE,eAAiB,CAClB,AAED,0CACE,kBAAmB,AACnB,WAAa,CACd,AAED,yCACE,YAAc,CACf,AAED,sBACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AAEjB,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,yBAA0B,AAC1B,uCAA0C,AAC1C,uCAA0C,AAC1C,sCAAuC,AACvC,4BAA6B,AAC7B,uBAAwB,AACxB,cAAe,AACf,eAAgB,AAChB,qBAAsB,AACtB,6EAA6F,AAC7F,gBAAiB,AACjB,SAAU,AACV,kCAAmC,AACnC,UAAY,CACb,AAED,4BACE,4BAA8B,CAC/B,AAED,4BACE,yBAA0B,AAC1B,aAAe,CAChB,AAED,sJAME,QAAU,CACX,AAED,2CACE,sCAAyC,AACzC,sCAAyC,AACzC,4BAA6B,AAC7B,sBAAwB,CACzB,AAED,WACE,yBAA0B,AAC1B,8BAA+B,AAC/B,4BAA6B,AAC7B,uBAAwB,AAExB,8BAAmB,AAGnB,iBAAmB,CACpB,AAED,kBACE,yBAA0B,AAC1B,WAAY,AACZ,YAAa,AACb,OAAQ,AACR,kBAAmB,AACnB,MAAO,AACP,UAAY,CACb,AAED,aACE,aAAe,CAChB,AAED,sCACE,aAAe,CAChB,AAED,cACE,gBAAiB,AACjB,gBAAiB,AACjB,iBAAmB,CACpB,AAED,gBACE,8BAA+B,AAC/B,oBAAqB,AACrB,gBAAkB,CACnB,AAED,2CACE,oBAAsB,AACtB,iBAAoB,CACrB,AAED,gBACE,mBAAoB,AACpB,kBAAoB,CACrB,AAED,gBACE,mBAAoB,AACpB,kBAAmB,AACnB,kBAAoB,CACrB,AAED,mBACE,aAAc,AACd,eAAiB,CAClB,AAED,gBACE,6EAA6F,AAC7F,gBAAiB,AACjB,YAAc,CACf,AAED,2BACE,mBAAoB,AACpB,iBAAoB,CACrB,AAED,mBACE,yBAA0B,AAC1B,gDAAmD,AACnD,+CAAmD,CACpD,AAED,0BACE,wBAA0B,CAC3B,AAED,mBACE,yBAA0B,AAC1B,gDAAmD,AACnD,+CAAmD,CACpD,AAED,0BACE,wBAA0B,CAC3B,AAED,iBACE,yBAA0B,AAC1B,8CAAiD,AACjD,6CAAiD,CAClD,AAED,wBACE,wBAA0B,CAC3B,AAED,gBACE,yBAA0B,AAC1B,6CAAgD,AAChD,4CAAgD,CACjD,AAED,uBACE,wBAA0B,CAC3B,AAED,mBACE,qBAAuB,CACxB,AAED,qBACE,UAAY,CACb,AAED,WACE,gBAAkB,CACnB,AAED,YACE,yBAA0B,AAC1B,oBAAuB,CACxB,AAED,oCACE,YACE,iBAAkB,AAClB,gBAAkB,CACnB,CACF,AAED,oBAGE,wBAAqB,AACrB,6BAA8B,AAC9B,iBAAkB,AAElB,UAAY,CACb,AAED,oCACE,oBACE,sBAAuB,AACvB,gBAAkB,CACnB,CACF,AAED,oCACE,oBACE,mBAAoB,AACpB,iBAAmB,CACpB,CACF,AAED,kCACE,eAAiB,CAClB,AAED,oCACE,kCACE,YAAc,CACf,CACF,AAED,kBACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,qBAAsB,AACtB,oBAAqB,AACrB,gBAAkB,CACnB,AAED,wBACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,AAED,oCACE,kBACE,mBAAoB,AACpB,iBAAmB,CACpB,CACF,AAED,mBACE,mBAAqB,AACrB,sBAAwB,AACxB,iBAAkB,AAClB,eAAiB,CAClB,AAED,oCACE,mBACE,cAAe,AACf,gBAAkB,CACnB,CACF,AAED,qBACE,aAAc,AACd,gBAAiB,AACjB,eAAgB,AAChB,gBAAiB,AACjB,qBAAuB,CACxB,AAED,oCACE,qBACE,eAAgB,AAChB,kBAAmB,AACnB,oBAAsB,CACvB,CACF,AAED,uBACE,WAAY,AACZ,kBAAmB,AACnB,eAAgB,AAChB,YAAc,CACf,AAED,oCACE,uBACE,mBAAqB,AACrB,UAAY,CACb,CACF,AAED,4BACE,yBAA0B,AAC1B,sBAAuB,AACvB,mBAAoB,AACpB,gCAAiC,AACjC,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,iBAAkB,AAClB,kBAAmB,AACnB,kBAAoB,CACrB,AAED,oCACE,4BACE,mBAAoB,AACpB,cAAe,AACf,iBAAkB,AAClB,gBAAiB,AACjB,aAAc,AACd,eAAiB,CAClB,CACF,AAED,8CACE,aAAe,CAChB,AAED,oCACE,8CACE,gBAAkB,CACnB,CACF,AAED,gCACE,mBAAqB,CACtB,AAED,oCACE,gCACE,kBAAqB,CACtB,CACF,AAED,8BACE,gBAAiB,AACjB,kBAAoB,CACrB,AAED,oCACE,8BACE,gBAAiB,AACjB,qBAAuB,CACxB,CACF,AAED,mBACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,mBAAoB,AACpB,oBAAqB,AACrB,4BAA6B,AAC7B,cAAe,AACf,cAAe,AACf,iBAAkB,AAClB,cAAe,AACf,OAAQ,AACR,kBAAmB,AACnB,0BAA2B,AAC3B,MAAO,AACP,UAAY,CACb,AAED,yBACE,4BAA8B,CAC/B,AAED,oCACE,mBACE,cAAe,AACf,eAAgB,AAEhB,eAAgB,AAChB,YAAgB,AAChB,gBAAiB,AACjB,kBAAmB,AACnB,sBAAuB,AACvB,UAAe,CAEhB,CACF,AAED,yBACE,cAAe,AACf,yBAA2B,CAC5B,AAED,wCACE,qBAAuB,CACxB,AAED,8CACE,0DAA6D,AAC7D,0DAA6D,AAC7D,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,YAAa,AACb,WAAY,AAEZ,aAAe,CAEhB,AAED,oDACE,gEAAmE,AACnE,+DAAmE,CACpE,AAED,8CACE,yBAA2B,CAC5B,AAED,uCACE,sBAAuB,AACvB,aAAe,CAChB,AAED,6CACE,uCAA0C,AAC1C,uCAA0C,AAC1C,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,cAAe,AACf,aAAc,AAEd,aAAe,CAEhB,AAED,oCACE,uCACE,YAAgB,AAChB,UAAW,AACX,iBAAmB,CACpB,AACD,6CACE,wDAA2D,AAC3D,wDAA2D,AAC3D,qBAAsB,AACtB,WAAY,AACZ,qBAAsB,AACtB,YAAa,AACb,WAAY,AAEZ,aAAe,CAEhB,AACD,mDACE,8DAAiE,AACjE,6DAAiE,CAClE,AACD,6CACE,yBAA2B,CAC5B,CACF,AAED,6CACE,kBAAmB,AACnB,aAAc,AACd,WAAa,CACd,AAED,oCACE,6CACE,eAAiB,CAClB,CACF,AAED,+DACE,YAAc,CACf,AAED,oCACE,+DACE,cAAgB,CACjB,CACF,AAED,iBACE,YAAc,CACf,AAED,+BACE,aAAe,CAChB,AAED,qCACE,cAAe,AACf,cAAe,AACf,gBAAiB,AACjB,aAAc,AACd,oBAAqB,AACrB,iBAAkB,AAClB,oBAAsB,CACvB,AAED,oCACE,qCACE,eAAiB,CAClB,CACF,AAED,2CACE,yBAA2B,CAC5B,AAED,iFAEE,oBAAsB,CACvB,AAED,yBACE,oBAAsB,CACvB,AAED,2BACE,cAAe,AACf,oBAAsB,CACvB,AAED,+BACE,yBAA2B,CAC5B,AAED,0BACE,cAAe,AACf,oBAAqB,AACrB,iBAAkB,AAClB,yBAA2B,CAC5B,AAED,4BACE,wBAA0B,CAC3B,AAED,wDACE,oBAAqB,AACrB,oBAAsB,CACvB,AAED,oCACE,wDACE,eAAgB,AAChB,eAAiB,CAClB,CACF,AAED,2DACE,gBAAkB,CACnB,AAED,oCACE,2DACE,aAAe,CAChB,CACF,AAED,oCACE,2CACE,oBAAqB,AACrB,oBAAsB,CACvB,CACF,AAED,8CACE,iBAAmB,CACpB,AAED,oCACE,8CACE,iBAAmB,CACpB,CACF,AAED,+CACE,YAAc,CACf,AAED,oCACE,+CACE,iBAAmB,AACnB,mBAAsB,CACvB,CACF,AAED,oCACE,cAAgB,CACjB,AAED,oCACE,oCACE,cAAgB,CACjB,CACF,AAED,4CACE,sBAAuB,AACvB,kBAAoB,CACrB,AAED,yDACE,SAAW,CACZ,AAED,oCACE,yDACE,kBAAmB,AACnB,kBAAoB,CACrB,CACF,AAED,qCACE,2EACE,gBAAiB,AACjB,aAAe,CAChB,CACF,AAED,qCACE,sFACE,cAAgB,CACjB,CACF,AAED,oCACE,sCACE,yBAA0B,AAC1B,sBAAuB,AACvB,kBAAoB,CACrB,CACF,AAED,mCACE,aAAe,CAChB,AAED,qCACE,6DACE,gBAAiB,AACjB,aAAe,CAChB,CACF,AAED,qCACE,wEACE,cAAgB,CACjB,CACF,AAED,0CACE,sBAAuB,AACvB,kBAAoB,CACrB,AAED,uDACE,SAAW,CACZ,AAED,oCACE,uDACE,kBAAmB,AACnB,kBAAoB,CACrB,CACF,AAED,oCACE,6CACE,iBAAkB,AAClB,aAAe,CAChB,AACD,4DACE,yBAA0B,AAC1B,sBAAuB,AACvB,kBAAoB,CACrB,CACF,AAED,oCACE,4CACE,QAAU,CACX,CACF,AAED,oCACE,0CACE,mBAAoB,AACpB,qBAAuB,CACxB,CACF,AAED,oCACE,0CACE,UAAY,CACb,CACF,AAED,qCACE,0CACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,qDACE,cAAgB,CACjB,CACF,AAGD,4DAGE,4BAA8B,CAC/B,AAED,oCACE,4DAGE,WAAa,CACd,CACF,AAED,kFAGE,+BAAiC,CAClC,AAED,oCACE,kFAGE,kBAAoB,CACrB,CACF,AAGD,mBACE,sBAAuB,AACvB,oBAAqB,AACrB,oBAAsB,CACvB,AAED,oCACE,mBACE,YAAa,AACb,SAAW,CACZ,CACF,AAED,uCACE,YAAc,CACf,AAED,0BACE,WAAY,AACZ,eAAgB,AAChB,iBAAmB,CACpB,AAED,yBACE,UAAY,CACb,AAED,8BACE,yBAA0B,AAC1B,oBAAqB,AACrB,gBAAkB,CACnB,AAED,gCACE,aAAe,CAChB,AAED,oCACE,kCACE,iBAAkB,AAClB,mBAAqB,CACtB,CACF,AAED,oCACE,0BACE,gBAAkB,CACnB,CACF,AAED,oBACE,oBAAsB,CACvB,AAED,yCACE,aAAe,CAChB,AAED,2CACE,iBAAmB,CACpB,AAED,oCACE,2CACE,qBAAwB,CACzB,CACF,AAED,oCACE,0CACE,gBAAkB,CACnB,CACF,AAED,iCACE,cAAgB,CACjB,AAED,oCACE,iCACE,cAAgB,CACjB,CACF,AAED,oCACE,4CACE,oBAAqB,AACrB,gBAAkB,CACnB,CACF,AAED,sDACE,SAAW,CACZ,AAED,oCACE,sDACE,kBAAmB,AACnB,kBAAoB,CACrB,CACF,AAED,wEACE,eAAgB,AAChB,eAAiB,CAClB,AAED,2EACE,kBAAoB,CACrB,AAED,oCACE,2EACE,aAAe,CAChB,CACF,AAED,iGACE,aAAe,CAChB,AAED,mBACE,qBAAuB,CACxB,AAED,oCACE,mBACE,gBAAkB,CACnB,CACF,AAED,8BACE,+BAAiC,CAClC,AAED,oCACE,8BACE,kBAAoB,CACrB,CACF,AAED,oDACE,gBAAiB,AACjB,qBAAuB,AACvB,iBAAoB,CACrB,AAED,4CACE,4CAA+C,AAC/C,4CAA+C,AAC/C,2BAAmC,AACnC,4BAA6B,AAC7B,uBAAwB,AACxB,cAAe,AACf,mBAAqB,CACtB,AAED,oCACE,4CACE,gBAAiB,AACjB,oBAAqB,AACrB,iBAAkB,AAClB,cAAgB,CACjB,CACF,AAED,8CACE,aAAc,AACd,eAAiB,CAClB,AAED,0BAEE,gBAAkB,CACnB,AAED,6BACE,YAAc,CACf,AAED,mDAEE,6CAAgD,AAChD,6CAAgD,AAChD,eAAgB,AAChB,aAAe,CAChB,AAED,oCACE,mDACE,gBAAiB,AACjB,cAAgB,CACjB,CACF,AAED,kBACE,SAAU,AACV,cAAgB,CACjB,AAED,oCACE,oBACE,SAAU,AACV,cAAgB,CACjB,CACF,AAED,qBACE,cAAgB,CACjB,AAED,oCACE,qBACE,UAAY,CACb,CACF,AAED,yBACE,eAAiB,CAClB,AAED,0BACE,WAAY,AACZ,cAAgB,CACjB,AAED,yBACE,cAAe,AACf,eAAiB,CAClB,AAED,oCACE,yBACE,qBAAsB,AACtB,gBAAiB,AACjB,mBAAqB,CACtB,CACF,AAED,6BACE,iBAAmB,CACpB,AAED,oCACE,6BACE,eAAiB,CAClB,CACF,AAED,8BACE,qBAAsB,AACtB,kBAAmB,AACnB,mBAAqB,CACtB,AAED,4BACE,YAAc,CACf,AAED,oCACE,4BACE,eAAiB,CAClB,CACF,AAED,sFACE,4BAA6B,AAC7B,wBAAmC,AACnC,4BAA6B,AAC7B,0BAA2B,AAC3B,qBAAsB,AACtB,cAAe,AACf,aAAc,AACd,kBAAmB,AACnB,kBAAmB,AACnB,YAAc,CACf,AAED,oCACE,sFACE,mBAAqB,AACrB,WAAa,CACd,CACF,AAED,+GACE,kBAAmB,AACnB,WAAa,CACd,AAED,mBACE,6DAAgE,AAChE,4DAAgE,CACjE,AAED,kBACE,4DAA+D,AAC/D,2DAA+D,CAChE,AAED,kBACE,4DAA+D,AAC/D,2DAA+D,CAChE,AAED,cACE,wDAA2D,AAC3D,uDAA2D,CAC5D,AAED,OACE,eAAiB,CAClB,AAED,mBAEE,cAAe,AACf,oBAAqB,AACrB,iBAAmB,CACpB,AAED,oCACE,mBAEE,mBAAoB,AACpB,oBAAqB,AACrB,UAAY,CACb,CACF,AAED,iDAEE,oBAAsB,CACvB,AAED,oCACE,UACE,eAAiB,CAClB,CACF,AAED,eACE,YAAa,AACb,6EAA6F,AAC7F,iBAAkB,AAClB,iBAAmB,CACpB,AAED,iBACE,UAAY,CACb,AAED,SACE,YAAa,AACb,SAAU,AACV,SAAW,CACZ,AAED,oCACE,gBACE,eAAiB,CAClB,CACF,AAMD,oCACE,qBACE,cAAgB,CACjB,CACF,AAMD,oCACE,uBACE,eAAiB,CAClB,CACF,AAED,oCACE,gBACE,gBAAkB,CACnB,CACF,AAED,oCACE,6BACE,eAAiB,CAClB,CACF,AAED,oCACE,sBACE,WAAY,AACZ,SAAW,CACZ,CACF,AAED,4BACE,kBAAoB,CACrB,AAED,6BACE,kBAAoB,CACrB,AAED,oCACE,uBACE,WAAY,AACZ,SAAW,CACZ,CACF,AAED,6BACE,kBAAoB,CACrB,AAED,8BACE,kBAAoB,CACrB,AAED,oCACE,sBACE,WAAY,AACZ,UAAY,CACb,CACF,AAED,4BACE,kBAAoB,CACrB,AAED,6BACE,kBAAoB,CACrB,AAED,qBACE,eAAoB,CACrB,AAED,eACE,gBAAiB,AACjB,cAAe,AACf,cAAgB,CACjB,AAED,kBACE,qBAAsB,AACtB,gBAAiB,AACjB,gBAAiB,AACjB,aAAc,AACd,iBAAkB,AAClB,gBAAkB,CACnB,AAED,yBACE,YAAa,AACb,qBAAsB,AACtB,YAAa,AACb,kBAAmB,AACnB,WAAa,CACd,AAED,8BACE,0CAA6C,AAC7C,0CAA6C,AAC7C,yBAA0B,AAC1B,4BAA6B,AAC7B,oBAAsB,CACvB,AAED,yDACE,kBAAoB,CACrB,AAED,oCACE,yDACE,kBAAoB,CACrB,CACF,AAED,oCACE,oEACE,eAAiB,CAClB,CACF,AAED,+EACE,eAAiB,CAClB,AAED,uCACE,iBAAmB,CACpB,AAED,qDACE,YAAc,CACf,AAED,YACE,WAAY,AACZ,YAAc,CACf,AAED,oCACE,YACE,+BAAiC,CAClC,CACF,AAED,cACE,kBAAoB,CACrB,AAED,oCACE,wBACE,YAAa,AACb,iBAAmB,CACpB,CACF,AAED,UACE,WAAY,AACZ,iBAAkB,AAClB,kBAAoB,CACrB,AAED,oCACE,UACE,mBAAoB,AACpB,aAAe,CAChB,CACF,AAED,YACE,cAAe,AACf,oBAAsB,CACvB,AAED,aACE,YAAc,CACf,AAED,oCACE,aACE,aAAe,CAChB,CACF,AAED,eACE,cAAe,AACf,iBAAkB,AAClB,kBAAmB,AACnB,gBAAiB,AACjB,QAAU,CACX,AAED,oCACE,eACE,cAAe,AACf,iBAAkB,AAClB,eAAiB,CAClB,CACF,AAED,cAEE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,yBAA0B,AAC1B,WAAe,AACf,eAAgB,AAChB,YAAa,AACb,iBAAkB,AAClB,YAAa,AACb,iBAAkB,AAClB,kBAAmB,AACnB,qBAAsB,AACtB,yBAA0B,AAC1B,YAAc,CAEf,AAED,oBACE,4BAA8B,CAC/B,AAED,oCACE,cACE,YAAc,CACf,CACF,AAED,oBACE,WAAe,AACf,wBAA0B,CAC3B,AAED,sBACE,UAAe,CAChB,AAED,aACE,eAAgB,AAChB,MAAO,AACP,QAAS,AACT,SAAU,AACV,OAAQ,AACR,gBAAoB,AACpB,UAAW,AACX,+BAAiC,AACjC,kBAAmB,AACnB,YAAc,CACf,AAED,wBACE,WAAa,AACb,kBAAoB,CACrB,AAED,oCACE,4BACE,SAAU,AACV,iBAAmB,CACpB,CACF,AAED,oCACE,8BACE,kBAAmB,AACnB,SAAW,CACZ,CACF,AAED,oCACE,iCACE,kBAAoB,CACrB,CACF,AAED,oCACE,+BACE,gBAAiB,AACjB,kBAAoB,CACrB,CACF,AAED,oCACE,wBACE,iBAAkB,AAClB,aAAe,CAChB,CACF,AAED,oCACE,iCACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,mBAAoB,AACpB,kBAAmB,AACnB,cAAe,AACf,YAAa,AACb,gBAAkB,CACnB,AACD,uCACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAED,oCACE,8BACE,6BAA8B,AAC9B,WAAY,AACZ,UAAW,AACX,UAAY,CACb,CACF,AAED,oCACE,oCACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,mBAAoB,AACpB,oBAAqB,AACrB,gBAAiB,AACjB,iBAAkB,AAClB,iBAAmB,CACpB,AACD,0CACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAED,oCACE,4CACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAMD,oCACE,mIAEE,wCAA0C,CAC3C,CACF,AAED,oCACE,mCACE,mBAAoB,AACpB,qBAAuB,CACxB,CACF,AAED,oCACE,qDACE,mBAAqB,CACtB,CACF,AAED,oCACE,mCACE,iBAAmB,CACpB,CACF,AAED,UACE,iBAAkB,AAClB,oBAAqB,AACrB,sCAAyC,AACzC,wBAA4B,AAC5B,qBAAuB,CACxB,AAED,sBACE,UAAe,CAChB,AAED,iCACE,aAAe,CAChB,AAED,kBACE,yBAA0B,AAC1B,YAAc,CACf,AAED,oCACE,kBACE,eAAiB,CAClB,CACF,AAED,+BACE,aAAc,AACd,kBAAoB,CACrB,AAED,sBACE,WAAe,AACf,aAAe,CAChB,AAED,iBACE,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,4BAA6B,AAC7B,6BAA8B,AAC9B,0BAA2B,AAC3B,qBAAuB,CACxB,AAED,qCACE,iBACE,eAAiB,CAClB,CACF,AAED,0DACE,YAAc,CACf,AAED,yDACE,eAAiB,CAClB,AAED,yBACE,4BAA6B,AAC7B,iBAAkB,AAClB,OAAS,CACV,AAED,8BACE,mBAAoB,AACpB,4BAA6B,AAC7B,iBAAkB,AAClB,OAAS,CACV,AAED,qCACE,8BACE,eAAiB,CAClB,CACF,AAED,2CACE,YAAc,CACf,AAED,qBACE,WAAY,AACZ,iBAAmB,CACpB,AAED,sBACE,eAAiB,CAClB,AAED,YACE,gCAAiC,AACjC,WAAa,CACd,AAED,oCACE,YACE,mBAAoB,AACpB,qBAAsB,AACtB,aAAe,CAChB,CACF,AAED,cACE,kCAAmC,AACnC,kCAAoC,CACrC,AAED,oCACE,yBACE,kCAAoC,AACpC,oBAAuB,CACxB,CACF,AAED,oCACE,wCACE,eAAgB,AAChB,oBAAsB,CACvB,CACF,AAED,oCACE,mBACE,iBAAkB,AAClB,iBAAkB,AAClB,kBAAmB,AACnB,mBAAoB,AACpB,kBAAmB,AACnB,gBAAkB,CACnB,AACD,yBACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,CACF,AAED,SACE,eAAgB,AAChB,MAAO,AACP,QAAS,AACT,SAAU,AACV,UAAW,AACX,gBAAoB,AACpB,8BAA+B,AAC/B,eAAgB,AAChB,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,4BAA6B,AAC7B,6BAA8B,AAC9B,0BAA2B,AAC3B,sBAAuB,AACvB,gBAAiB,AACjB,aAAc,AACd,oCAAqC,AAErC,4BAA6B,AAC7B,YAAa,AACb,YAAc,CACf,AAED,oCACE,SACE,mBAAoB,AACpB,gBAAiB,AACjB,iBAAkB,AAClB,iBAAkB,AAClB,cAAe,AACf,YAAa,AACb,mBAAoB,AACpB,kBAAmB,AACnB,gCAAiC,AAEjC,wBAAyB,AACzB,UAAY,CACb,CACF,AAED,oBACE,gCAAiC,AAEjC,wBAAyB,AACzB,8BAAiC,CAClC,AAED,aACE,gBAAiB,AACjB,eAAiB,CAClB,AAED,oCACE,aACE,YAAc,CACf,CACF,AAED,sBACE,8BAA+B,AAC/B,cAAe,AACf,gBAAiB,AACjB,mBAAqB,CACtB,AAED,oCACE,sBACE,aAAe,CAChB,CACF,AAED,qBACE,UAAY,CACb,AAED,oCACE,qBACE,mBAAoB,AACpB,OAAS,CACV,CACF,AAED,iBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,kBAAmB,AACnB,4BAA6B,AAC7B,iBAAkB,AAClB,OAAS,CACV,AAED,oBACE,eAAiB,CAClB,AAED,oBACE,6BAA8B,AAC9B,6BAA8B,AAC9B,gBAAkB,CACnB,AAED,gCACE,eAAiB,CAClB,AAED,mBACE,YAAa,AACb,cAAe,AACf,cAAe,AACf,6EAA6F,AAC7F,gBAAiB,AACjB,kCAAqC,AACrC,oBAAsB,CACvB,AAED,yBACE,yBAA0B,AAC1B,cAAe,AACf,oBAAsB,CACvB,AAED,yBACE,iBAAkB,AAClB,kBAAmB,AACnB,SAAW,CACZ,AAED,+BAEE,gCAAkC,AAClC,cAAe,AACf,gBAAiB,AACjB,mBAAqB,CACtB,AAED,oCACE,iBACE,cAAgB,CACjB,CACF,AAED,oCACE,oBACE,eAAiB,CAClB,CACF,AAED,oBACE,UAAY,CACb,AAED,oCACE,oBACE,oBAAsB,CACvB,CACF,AAED,oCACE,sBACE,6BAA8B,AAC9B,cAAe,AACf,iBAAkB,AAClB,gBAAiB,AACjB,aAAe,CAChB,CACF,AAED,oCACE,4BACE,4BAA8B,CAC/B,CACF,AAED,oCACE,mBACE,mBAAqB,AACrB,qBAAwB,CACzB,CACF,AAED,wBACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AAEjB,SAAU,AACV,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,kCAAmC,AACnC,mCAAoC,AACpC,gBAAiB,AACjB,gBAAiB,AACjB,mCAAuC,CACxC,AAED,8BACE,4BAA8B,CAC/B,AAED,oCACE,wBACE,6BAA8B,AAC9B,cAAe,AACf,iBAAkB,AAClB,gBAAiB,AACjB,cAAe,AACf,UAAe,CAChB,CACF,AAED,6DACE,6BAA+B,CAChC,AAED,8BACE,yBAA0B,AAC1B,aAAe,CAChB,AAED,oCACE,8BACE,4BAA8B,CAC/B,CACF,AAED,6CAEE,0CAA6C,AAC7C,0CAA6C,AAC7C,4BAA6B,AAC7B,mCAAoC,AACpC,oBAAsB,CACvB,AAED,oCACE,6CACE,kDAAqD,AACrD,kDAAqD,AACrD,wCAA0C,CAC3C,CACF,AAED,oCACE,mDACE,0DAA6D,AAC7D,yDAA6D,CAC9D,CACF,AAED,4CAEE,2CAA8C,AAC9C,2CAA8C,AAC9C,4BAA6B,AAC7B,mCAAoC,AACpC,oBAAsB,CACvB,AAED,oCACE,4CACE,yBAA0B,AAC1B,WAAe,AACf,wDAA2D,AAC3D,wDAA2D,AAC3D,wCAA0C,CAC3C,AACD,kDACE,wBAA0B,CAC3B,AACD,iDACE,kCAAoC,AACpC,qBAAuB,AACvB,UAAe,CAChB,CACF,AAED,oCACE,6DAEE,cAAe,AACf,mBAAqB,CACtB,AACD,mFAEE,aAAe,CAChB,AACD,uEAEE,kCAAoC,AACpC,qBAAuB,AACvB,aAAe,CAChB,CACF,AAED,oCACE,8CACE,kCAAoC,AACpC,oBAAuB,CACxB,CACF,AAMD,oCACE,sEACE,kCAAoC,AACpC,oBAAuB,CACxB,CACF,AAED,oCACE,wDACE,kCAAoC,AACpC,oBAAuB,CACxB,CACF,AAED,mBACE,iBAAmB,CACpB,AAED,oCACE,mBACE,aAAc,AACd,kBAAmB,AACnB,WAAY,AACZ,WAAa,CACd,CACF,AAED,+BACE,kBAAmB,AACnB,eAAiB,CAClB,AAED,oCACE,+BACE,kBAAoB,AACpB,gBAAiB,AACjB,cAAe,AACf,UAAY,CACb,CACF,AAED,yBACE,iBAAmB,CACpB,AAED,oCACE,yBACE,WAAY,AACZ,YAAc,CACf,CACF,AAED,oCACE,4BACE,eAAgB,AAChB,kBAAqB,CACtB,CACF,AAED,oCACE,mDACE,cAAe,AACf,YAAa,AACb,kBAAqB,CACtB,CACF,AAED,8EAEE,cAAe,AACf,qBAAsB,AACtB,iBAAkB,AAClB,oBAAsB,CACvB,AAED,0FAEE,cAAe,AACf,yBAA2B,CAC5B,AAED,mDACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,YAAc,CACf,AAED,yDACE,4BAA8B,CAC/B,AAED,oCACE,mDACE,4CAA+C,AAC/C,4CAA+C,AAC/C,4BAA6B,AAC7B,sBAAiC,AACjC,uBAAwB,AACxB,qBAAsB,AACtB,mBAAqB,CACtB,CACF,AAED,oCACE,6DACE,YAAc,CACf,CACF,AAED,oCACE,uCACE,cAAe,AACf,cAAgB,CACjB,CACF,AAED,iBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,SAAU,AACV,UAAY,CACb,AAED,oBACE,eAAiB,CAClB,AAED,oBACE,WAAa,CAEd,AAED,mBACE,oBAAqB,AACrB,eAAiB,CAClB,AAED,wDAEE,YAAa,AACb,mBAAqB,CACtB,AAED,yCACE,mBAAqB,CACtB,AAED,+CACE,gBAAkB,CACnB,AAED,+CACE,mBAAqB,CACtB,AAED,oCACE,iBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,mBAAqB,AACrB,qBAAuB,AACvB,yBAA0B,AAC1B,cAAe,AACf,iBAAmB,CACpB,AACD,oBACE,eAAiB,CAClB,CACF,AAED,mCACE,YAAc,CACf,AAED,oCACE,mBACE,WAAe,AACf,mBAAqB,CACtB,CACF,AAED,oCACE,yBACE,yBAA0B,AAC1B,WAAe,AACf,oBAAqB,AACrB,yBAA2B,CAC5B,CACF,AAED,oBACE,iBAAkB,AAClB,eAAiB,CAClB,AAED,eACE,6BAA8B,AAC9B,SAAU,AACV,gBAAiB,AACjB,gBAAiB,AACjB,SAAU,AACV,UAAW,AACX,gBAAiB,AACjB,4BAA6B,AAC7B,mCAAoC,AACpC,YAAa,AACb,cAAe,AACf,kBAAmB,AACnB,YAAc,CACf,AAED,qBACE,4BAA8B,CAC/B,AAED,oCACE,eACE,YAAc,CACf,CACF,AAED,mBACE,YAAc,CACf,AAED,iBACE,UAAY,CACb,AAED,uBACE,eAAiB,CAClB,AAED,oCACE,cACE,oBAAqB,AACrB,uBAAwB,AACxB,WAAY,AACZ,UAAY,CACb,CACF,AAED,oCACE,qBACE,yBAA0B,AAC1B,WAAY,AACZ,cAAe,AACf,YAAa,AACb,kBAAmB,AACnB,MAAO,AACP,YAAa,AACb,UAAY,CACb,CACF,AAED,oCACE,oBACE,yBAA0B,AAC1B,WAAY,AACZ,cAAe,AACf,YAAa,AACb,kBAAmB,AACnB,MAAO,AACP,YAAa,AACb,SAAW,CACZ,CACF,AAED,oCACE,oCACE,eAAgB,AAChB,cAAe,AACf,UAAY,CACb,CACF,AAED,0CACE,oBAAqB,AACrB,oBAAqB,AACrB,aAAc,AACd,4BAA6B,AAC7B,6BAA8B,AAC9B,0BAA2B,AAC3B,qBAAuB,CACxB,AAED,oCACE,0CACE,cAAe,AACf,YAAa,AACb,kBAAoB,CACrB,CACF,AAED,oCACE,2DACE,mBAAqB,CACtB,CACF,AAED,oCACE,kBACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,6BACE,cAAgB,CACjB,AACD,gCACE,WAAY,AACZ,cAAe,AACf,sBAAuB,AACvB,eAAiB,CAClB,AACD,2CACE,cAAgB,CACjB,AACD,gCACE,cAAgB,CACjB,CACF,AAED,qBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,cAAgB,CACjB,AAED,wBACE,eAAiB,CAClB,AAED,YACE,eAAgB,AAChB,iBAAmB,CACpB,AAED,kBACE,WAAY,AACZ,WAAY,AACZ,aAAe,CAChB,AAED,yDAEE,wCAA2C,AAC3C,wCAA2C,AAC3C,wBAAyB,AACzB,4BAA6B,AAC7B,4BAA6B,AAC7B,yBAA0B,AAC1B,cAAe,AACf,SAAU,AACV,UAAW,AACX,YAAc,CACf,AAED,oCACE,yDAEE,sBAAuB,AACvB,YAAc,CACf,CACF,AAED,oCACE,sFAEE,iBAAkB,AAClB,cAAe,AACf,0BAA4B,CAC7B,AACD,uFAEE,eAAgB,AAChB,cAAe,AACf,aAAe,CAChB,CACF,AAED,oCACE,0FAEE,yBAA2B,CAC5B,AACD,2FAEE,wCAA2C,AAC3C,wCAA2C,AAC3C,wBAAyB,AACzB,4BAA6B,AAC7B,YAAc,CACf,CACF,AAED,oCACE,yCACE,UAAW,AACX,iBAAmB,CACpB,CACF,AAED,mBAEE,sBAAuB,AACvB,uBAAyB,CAC1B,AAED,gCAEE,cAAe,AACf,iBAAkB,AAClB,6BAA8B,AAC9B,kBAAmB,AACnB,0BAA2B,AAC3B,sBAAuB,AACvB,WAAY,AACZ,iBAAkB,AAClB,cAAe,AACf,SAAU,AACV,yBAA2B,CAC5B,AAED,oCACE,gCAEE,yBAA2B,CAC5B,CACF,AAED,wBACE,kBAAmB,AACnB,WAAa,CACd,AAED,oCACE,wBACE,eAAiB,CAClB,CACF,AAED,aACE,iBAAkB,AAClB,mBAAqB,CACtB,AAED,oCACE,aACE,iBAAkB,AAClB,mBAAqB,CACtB,CACF,AAED,mBACE,wBAA0B,CAC3B,AAED,kBACE,yBAA0B,AAC1B,UAAe,CAChB,AAED,8HAME,aAAe,CAChB,AAED,oBACE,UAAe,CAChB,AAED,oBACE,aAAe,CAChB,AAED,0BACE,UAAe,CAChB,AAED,kBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,cAAgB,CACjB,AAED,qBACE,eAAiB,CAClB,AAED,qBACE,6BAA8B,AAC9B,6BAA8B,AAC9B,gBAAkB,CACnB,AAED,iCACE,eAAiB,CAClB,AAED,oBACE,YAAa,AACb,cAAe,AACf,cAAe,AACf,6EAA6F,AAC7F,gBAAiB,AACjB,kCAAqC,AACrC,oBAAsB,CACvB,AAED,0BACE,yBAA0B,AAC1B,cAAe,AACf,oBAAsB,CACvB,AAED,0BACE,iBAAkB,AAClB,kBAAmB,AACnB,SAAW,CACZ,AAED,gCAEE,gCAAkC,AAClC,cAAe,AACf,gBAAiB,AACjB,mBAAqB,CACtB,AAED,sBACE,aAAc,AACd,gBAAiB,AACjB,qBAAsB,AACtB,eAAgB,AAChB,SAAU,AACV,UAAY,CACb,AAED,yBACE,eAAiB,CAClB,AAED,yBACE,YAAa,AACb,gBAAkB,CACnB,AAED,wBACE,oBAAqB,AACrB,eAAiB,CAClB,AAED,kEAEE,YAAa,AACb,mBAAqB,CACtB,AAED,8CACE,mBAAqB,CACtB,AAED,oDACE,gBAAkB,CACnB,AAED,oDACE,mBAAqB,CACtB,AAED,aACE,uBAAwB,AACxB,cAAe,AACf,OAAQ,AACR,oBAAqB,AACrB,kBAAmB,AACnB,YAAa,AACb,+BAAiC,AACjC,WAAa,CACd,AAED,mBACE,gBAAoB,AACpB,OAAQ,AACR,UAAW,AACX,kBAAmB,AACnB,MAAO,AACP,8BAAiC,CAClC","file":"uswds.min.css","sourcesContent":["/*! uswds v1.4.3 */\nhtml {\n box-sizing: border-box;\n}\n\n*, *::after, *::before {\n box-sizing: inherit;\n}\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n}\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n /* 1 */\n font: inherit;\n /* 2 */\n margin: 0;\n /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n box-sizing: content-box;\n /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n\n/* stylelint-disable at-rule-empty-line-before */\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: normal;\n font-weight: 300;\n src: url(\"../fonts/sourcesanspro-light-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-light-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-light-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-light-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: normal;\n font-weight: 400;\n src: url(\"../fonts/sourcesanspro-regular-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-regular-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-regular-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-regular-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: italic;\n font-weight: 400;\n src: url(\"../fonts/sourcesanspro-italic-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-italic-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-italic-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-italic-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Source Sans Pro\";\n font-style: normal;\n font-weight: 700;\n src: url(\"../fonts/sourcesanspro-bold-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/sourcesanspro-bold-webfont.woff2\") format(\"woff2\"), url(\"../fonts/sourcesanspro-bold-webfont.woff\") format(\"woff\"), url(\"../fonts/sourcesanspro-bold-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: normal;\n font-weight: 300;\n src: url(\"../fonts/merriweather-light-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-light-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-light-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-light-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: normal;\n font-weight: 400;\n src: url(\"../fonts/merriweather-regular-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-regular-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-regular-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-regular-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: italic;\n font-weight: 400;\n src: url(\"../fonts/merriweather-italic-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-italic-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-italic-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-italic-webfont.ttf\") format(\"truetype\");\n}\n\n@font-face {\n font-family: \"Merriweather\";\n font-style: normal;\n font-weight: 700;\n src: url(\"../fonts/merriweather-bold-webfont.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/merriweather-bold-webfont.woff2\") format(\"woff2\"), url(\"../fonts/merriweather-bold-webfont.woff\") format(\"woff\"), url(\"../fonts/merriweather-bold-webfont.ttf\") format(\"truetype\");\n}\n\n/* stylelint-enable */\n.usa-grid,\n.usa-grid-full {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n max-width: 1040px;\n}\n\n.usa-grid::after,\n.usa-grid-full::after {\n clear: both;\n content: \"\";\n display: block;\n}\n\n.usa-grid {\n padding-right: 1.5rem;\n padding-left: 1.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-grid {\n padding-right: 3rem;\n padding-left: 3rem;\n }\n}\n\n.usa-grid-full {\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-width-one-whole {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 100%;\n }\n .usa-width-one-whole:last-child {\n margin-right: 0;\n }\n .usa-width-one-half {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 47.58542%;\n }\n .usa-width-one-half:last-child {\n margin-right: 0;\n }\n .usa-width-one-third {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-one-third:last-child {\n margin-right: 0;\n }\n .usa-width-two-thirds {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 65.05695%;\n }\n .usa-width-two-thirds:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 47.58542%;\n }\n .usa-width-one-fourth:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth:nth-child(2n) {\n margin-right: 0;\n }\n .usa-width-three-fourths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 100%;\n }\n .usa-width-three-fourths:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-one-sixth:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth:nth-child(3n) {\n margin-right: 0;\n }\n .usa-width-five-sixths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 65.05695%;\n }\n .usa-width-five-sixths:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-one-twelfth:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth:nth-child(3n) {\n margin-right: 0;\n }\n .usa-width-five-twelfths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 30.11389%;\n }\n .usa-width-five-twelfths:last-child {\n margin-right: 0;\n }\n .usa-width-seven-twelfths {\n float: left;\n display: block;\n margin-right: 4.82916%;\n width: 65.05695%;\n }\n .usa-width-seven-twelfths:last-child {\n margin-right: 0;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-width-one-whole {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 100%;\n }\n .usa-width-one-whole:last-child {\n margin-right: 0;\n }\n .usa-width-one-half {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 48.82117%;\n }\n .usa-width-one-half:last-child {\n margin-right: 0;\n }\n .usa-width-one-third {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 31.76157%;\n }\n .usa-width-one-third:last-child {\n margin-right: 0;\n }\n .usa-width-two-thirds {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 65.88078%;\n }\n .usa-width-two-thirds:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-width-one-fourth:last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth:nth-child(2n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-width-one-fourth:nth-child(2n):last-child {\n margin-right: 0;\n }\n .usa-width-one-fourth:nth-child(4n) {\n margin-right: 0;\n }\n .usa-width-three-fourths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 74.41059%;\n }\n .usa-width-three-fourths:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 14.70196%;\n }\n .usa-width-one-sixth:last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth:nth-child(3n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 14.70196%;\n }\n .usa-width-one-sixth:nth-child(3n):last-child {\n margin-right: 0;\n }\n .usa-width-one-sixth:nth-child(6n) {\n margin-right: 0;\n }\n .usa-width-five-sixths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 82.94039%;\n }\n .usa-width-five-sixths:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 6.17215%;\n }\n .usa-width-one-twelfth:last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth:nth-child(3n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 6.17215%;\n }\n .usa-width-one-twelfth:nth-child(3n):last-child {\n margin-right: 0;\n }\n .usa-width-one-twelfth:nth-child(12n) {\n margin-right: 0;\n }\n .usa-width-five-twelfths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 40.29137%;\n }\n .usa-width-five-twelfths:last-child {\n margin-right: 0;\n }\n .usa-width-seven-twelfths {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 57.35098%;\n }\n .usa-width-seven-twelfths:last-child {\n margin-right: 0;\n }\n}\n\n.usa-end-row {\n margin-right: 0;\n}\n\n.usa-offset-one-twelfth {\n margin-left: 8.5298%;\n}\n\n.usa-offset-one-sixth {\n margin-left: 17.05961%;\n}\n\n.usa-offset-one-fourth {\n margin-left: 25.58941%;\n}\n\n.usa-offset-one-third {\n margin-left: 34.11922%;\n}\n\n.usa-offset-five-twelfths {\n margin-left: 42.64902%;\n}\n\n.usa-offset-one-half {\n margin-left: 51.17883%;\n}\n\n.usa-offset-seven-twelfths {\n margin-left: 59.70863%;\n}\n\n.usa-offset-two-thirds {\n margin-left: 68.23843%;\n}\n\n.usa-offset-three-fourths {\n margin-left: 76.76824%;\n}\n\n.usa-offset-five-sixths {\n margin-left: 85.29804%;\n}\n\n.usa-offset-eleven-twelfths {\n margin-left: 93.82785%;\n}\n\n.usa-sr-only {\n position: absolute;\n left: -999em;\n}\n\nhtml {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\nbody {\n background-color: #ffffff;\n overflow-x: hidden;\n}\n\n.lt-ie9 * {\n -webkit-filter: none !important;\n filter: none !important;\n /* stylelint-disable-line declaration-no-important */\n}\n\n[hidden] {\n display: none !important;\n /* stylelint-disable-line declaration-no-important */\n}\n\n*:focus,\n.usa-focus {\n outline: 2px dotted #aeb0b5;\n outline-offset: 3px;\n}\n\n/* stylelint-disable selector-no-qualifying-type */\n.usa-button,\n.usa-button-primary,\n.usa-button:visited,\n.usa-button-primary:visited,\nbutton,\n[type=button],\n[type=submit],\n[type=reset],\n[type=image] {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n margin-top: 0.5em;\n margin-right: 0.5em;\n margin-bottom: 0.5em;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #0071bc;\n border: 0;\n border-radius: 5px;\n color: #ffffff;\n cursor: pointer;\n display: inline-block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-size: 1.7rem;\n font-weight: 700;\n line-height: 1;\n padding: 1rem 2rem;\n text-align: center;\n text-decoration: none;\n width: 100%;\n}\n\n@media screen and (min-width: 481px) {\n .usa-button,\n .usa-button-primary,\n .usa-button:visited,\n .usa-button-primary:visited,\n button,\n [type=button],\n [type=submit],\n [type=reset],\n [type=image] {\n width: auto;\n }\n}\n\n.usa-button:hover, .usa-button.usa-button-hover,\n.usa-button-primary:hover,\n.usa-button-primary.usa-button-hover,\n.usa-button:visited:hover,\n.usa-button:visited.usa-button-hover,\n.usa-button-primary:visited:hover,\n.usa-button-primary:visited.usa-button-hover,\nbutton:hover,\nbutton.usa-button-hover,\n[type=button]:hover,\n[type=button].usa-button-hover,\n[type=submit]:hover,\n[type=submit].usa-button-hover,\n[type=reset]:hover,\n[type=reset].usa-button-hover,\n[type=image]:hover,\n[type=image].usa-button-hover {\n background-color: #205493;\n border-bottom: 0;\n color: #ffffff;\n text-decoration: none;\n}\n\n.usa-button:active, .usa-button.usa-button-active,\n.usa-button-primary:active,\n.usa-button-primary.usa-button-active,\n.usa-button:visited:active,\n.usa-button:visited.usa-button-active,\n.usa-button-primary:visited:active,\n.usa-button-primary:visited.usa-button-active,\nbutton:active,\nbutton.usa-button-active,\n[type=button]:active,\n[type=button].usa-button-active,\n[type=submit]:active,\n[type=submit].usa-button-active,\n[type=reset]:active,\n[type=reset].usa-button-active,\n[type=image]:active,\n[type=image].usa-button-active {\n background-color: #112e51;\n}\n\n.usa-button.usa-button-primary-alt,\n.usa-button-primary.usa-button-primary-alt,\n.usa-button:visited.usa-button-primary-alt,\n.usa-button-primary:visited.usa-button-primary-alt,\nbutton.usa-button-primary-alt,\n[type=button].usa-button-primary-alt,\n[type=submit].usa-button-primary-alt,\n[type=reset].usa-button-primary-alt,\n[type=image].usa-button-primary-alt {\n background-color: #02bfe7;\n color: #212121;\n}\n\n.usa-button.usa-button-primary-alt:hover, .usa-button.usa-button-primary-alt.usa-button-hover,\n.usa-button-primary.usa-button-primary-alt:hover,\n.usa-button-primary.usa-button-primary-alt.usa-button-hover,\n.usa-button:visited.usa-button-primary-alt:hover,\n.usa-button:visited.usa-button-primary-alt.usa-button-hover,\n.usa-button-primary:visited.usa-button-primary-alt:hover,\n.usa-button-primary:visited.usa-button-primary-alt.usa-button-hover,\nbutton.usa-button-primary-alt:hover,\nbutton.usa-button-primary-alt.usa-button-hover,\n[type=button].usa-button-primary-alt:hover,\n[type=button].usa-button-primary-alt.usa-button-hover,\n[type=submit].usa-button-primary-alt:hover,\n[type=submit].usa-button-primary-alt.usa-button-hover,\n[type=reset].usa-button-primary-alt:hover,\n[type=reset].usa-button-primary-alt.usa-button-hover,\n[type=image].usa-button-primary-alt:hover,\n[type=image].usa-button-primary-alt.usa-button-hover {\n background-color: #00a6d2;\n}\n\n.usa-button.usa-button-primary-alt:active, .usa-button.usa-button-primary-alt.usa-button-active,\n.usa-button-primary.usa-button-primary-alt:active,\n.usa-button-primary.usa-button-primary-alt.usa-button-active,\n.usa-button:visited.usa-button-primary-alt:active,\n.usa-button:visited.usa-button-primary-alt.usa-button-active,\n.usa-button-primary:visited.usa-button-primary-alt:active,\n.usa-button-primary:visited.usa-button-primary-alt.usa-button-active,\nbutton.usa-button-primary-alt:active,\nbutton.usa-button-primary-alt.usa-button-active,\n[type=button].usa-button-primary-alt:active,\n[type=button].usa-button-primary-alt.usa-button-active,\n[type=submit].usa-button-primary-alt:active,\n[type=submit].usa-button-primary-alt.usa-button-active,\n[type=reset].usa-button-primary-alt:active,\n[type=reset].usa-button-primary-alt.usa-button-active,\n[type=image].usa-button-primary-alt:active,\n[type=image].usa-button-primary-alt.usa-button-active {\n background-color: #046b99;\n color: #ffffff;\n}\n\n.usa-button.usa-button-secondary,\n.usa-button-primary.usa-button-secondary,\n.usa-button:visited.usa-button-secondary,\n.usa-button-primary:visited.usa-button-secondary,\nbutton.usa-button-secondary,\n[type=button].usa-button-secondary,\n[type=submit].usa-button-secondary,\n[type=reset].usa-button-secondary,\n[type=image].usa-button-secondary {\n background-color: #ffffff;\n box-shadow: inset 0 0 0 2px #0071bc;\n color: #0071bc;\n}\n\n.usa-button.usa-button-secondary:hover, .usa-button.usa-button-secondary.usa-button-hover,\n.usa-button-primary.usa-button-secondary:hover,\n.usa-button-primary.usa-button-secondary.usa-button-hover,\n.usa-button:visited.usa-button-secondary:hover,\n.usa-button:visited.usa-button-secondary.usa-button-hover,\n.usa-button-primary:visited.usa-button-secondary:hover,\n.usa-button-primary:visited.usa-button-secondary.usa-button-hover,\nbutton.usa-button-secondary:hover,\nbutton.usa-button-secondary.usa-button-hover,\n[type=button].usa-button-secondary:hover,\n[type=button].usa-button-secondary.usa-button-hover,\n[type=submit].usa-button-secondary:hover,\n[type=submit].usa-button-secondary.usa-button-hover,\n[type=reset].usa-button-secondary:hover,\n[type=reset].usa-button-secondary.usa-button-hover,\n[type=image].usa-button-secondary:hover,\n[type=image].usa-button-secondary.usa-button-hover {\n box-shadow: inset 0 0 0 2px #205493;\n color: #205493;\n}\n\n.usa-button.usa-button-secondary:active, .usa-button.usa-button-secondary.usa-button-active,\n.usa-button-primary.usa-button-secondary:active,\n.usa-button-primary.usa-button-secondary.usa-button-active,\n.usa-button:visited.usa-button-secondary:active,\n.usa-button:visited.usa-button-secondary.usa-button-active,\n.usa-button-primary:visited.usa-button-secondary:active,\n.usa-button-primary:visited.usa-button-secondary.usa-button-active,\nbutton.usa-button-secondary:active,\nbutton.usa-button-secondary.usa-button-active,\n[type=button].usa-button-secondary:active,\n[type=button].usa-button-secondary.usa-button-active,\n[type=submit].usa-button-secondary:active,\n[type=submit].usa-button-secondary.usa-button-active,\n[type=reset].usa-button-secondary:active,\n[type=reset].usa-button-secondary.usa-button-active,\n[type=image].usa-button-secondary:active,\n[type=image].usa-button-secondary.usa-button-active {\n box-shadow: inset 0 0 0 2px #112e51;\n color: #112e51;\n}\n\n.usa-button.usa-button-secondary-inverse, .usa-button.usa-button-outline-inverse,\n.usa-button-primary.usa-button-secondary-inverse,\n.usa-button-primary.usa-button-outline-inverse,\n.usa-button:visited.usa-button-secondary-inverse,\n.usa-button:visited.usa-button-outline-inverse,\n.usa-button-primary:visited.usa-button-secondary-inverse,\n.usa-button-primary:visited.usa-button-outline-inverse,\nbutton.usa-button-secondary-inverse,\nbutton.usa-button-outline-inverse,\n[type=button].usa-button-secondary-inverse,\n[type=button].usa-button-outline-inverse,\n[type=submit].usa-button-secondary-inverse,\n[type=submit].usa-button-outline-inverse,\n[type=reset].usa-button-secondary-inverse,\n[type=reset].usa-button-outline-inverse,\n[type=image].usa-button-secondary-inverse,\n[type=image].usa-button-outline-inverse {\n background: transparent;\n box-shadow: inset 0 0 0 2px #ffffff;\n color: #ffffff;\n}\n\n.usa-button.usa-button-secondary-inverse:hover, .usa-button.usa-button-secondary-inverse.usa-button-hover, .usa-button.usa-button-outline-inverse:hover, .usa-button.usa-button-outline-inverse.usa-button-hover,\n.usa-button-primary.usa-button-secondary-inverse:hover,\n.usa-button-primary.usa-button-secondary-inverse.usa-button-hover,\n.usa-button-primary.usa-button-outline-inverse:hover,\n.usa-button-primary.usa-button-outline-inverse.usa-button-hover,\n.usa-button:visited.usa-button-secondary-inverse:hover,\n.usa-button:visited.usa-button-secondary-inverse.usa-button-hover,\n.usa-button:visited.usa-button-outline-inverse:hover,\n.usa-button:visited.usa-button-outline-inverse.usa-button-hover,\n.usa-button-primary:visited.usa-button-secondary-inverse:hover,\n.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-hover,\n.usa-button-primary:visited.usa-button-outline-inverse:hover,\n.usa-button-primary:visited.usa-button-outline-inverse.usa-button-hover,\nbutton.usa-button-secondary-inverse:hover,\nbutton.usa-button-secondary-inverse.usa-button-hover,\nbutton.usa-button-outline-inverse:hover,\nbutton.usa-button-outline-inverse.usa-button-hover,\n[type=button].usa-button-secondary-inverse:hover,\n[type=button].usa-button-secondary-inverse.usa-button-hover,\n[type=button].usa-button-outline-inverse:hover,\n[type=button].usa-button-outline-inverse.usa-button-hover,\n[type=submit].usa-button-secondary-inverse:hover,\n[type=submit].usa-button-secondary-inverse.usa-button-hover,\n[type=submit].usa-button-outline-inverse:hover,\n[type=submit].usa-button-outline-inverse.usa-button-hover,\n[type=reset].usa-button-secondary-inverse:hover,\n[type=reset].usa-button-secondary-inverse.usa-button-hover,\n[type=reset].usa-button-outline-inverse:hover,\n[type=reset].usa-button-outline-inverse.usa-button-hover,\n[type=image].usa-button-secondary-inverse:hover,\n[type=image].usa-button-secondary-inverse.usa-button-hover,\n[type=image].usa-button-outline-inverse:hover,\n[type=image].usa-button-outline-inverse.usa-button-hover {\n box-shadow: inset 0 0 0 2px #d6d7d9;\n color: #d6d7d9;\n}\n\n.usa-button.usa-button-secondary-inverse:active, .usa-button.usa-button-secondary-inverse.usa-button-active, .usa-button.usa-button-outline-inverse:active, .usa-button.usa-button-outline-inverse.usa-button-active,\n.usa-button-primary.usa-button-secondary-inverse:active,\n.usa-button-primary.usa-button-secondary-inverse.usa-button-active,\n.usa-button-primary.usa-button-outline-inverse:active,\n.usa-button-primary.usa-button-outline-inverse.usa-button-active,\n.usa-button:visited.usa-button-secondary-inverse:active,\n.usa-button:visited.usa-button-secondary-inverse.usa-button-active,\n.usa-button:visited.usa-button-outline-inverse:active,\n.usa-button:visited.usa-button-outline-inverse.usa-button-active,\n.usa-button-primary:visited.usa-button-secondary-inverse:active,\n.usa-button-primary:visited.usa-button-secondary-inverse.usa-button-active,\n.usa-button-primary:visited.usa-button-outline-inverse:active,\n.usa-button-primary:visited.usa-button-outline-inverse.usa-button-active,\nbutton.usa-button-secondary-inverse:active,\nbutton.usa-button-secondary-inverse.usa-button-active,\nbutton.usa-button-outline-inverse:active,\nbutton.usa-button-outline-inverse.usa-button-active,\n[type=button].usa-button-secondary-inverse:active,\n[type=button].usa-button-secondary-inverse.usa-button-active,\n[type=button].usa-button-outline-inverse:active,\n[type=button].usa-button-outline-inverse.usa-button-active,\n[type=submit].usa-button-secondary-inverse:active,\n[type=submit].usa-button-secondary-inverse.usa-button-active,\n[type=submit].usa-button-outline-inverse:active,\n[type=submit].usa-button-outline-inverse.usa-button-active,\n[type=reset].usa-button-secondary-inverse:active,\n[type=reset].usa-button-secondary-inverse.usa-button-active,\n[type=reset].usa-button-outline-inverse:active,\n[type=reset].usa-button-outline-inverse.usa-button-active,\n[type=image].usa-button-secondary-inverse:active,\n[type=image].usa-button-secondary-inverse.usa-button-active,\n[type=image].usa-button-outline-inverse:active,\n[type=image].usa-button-outline-inverse.usa-button-active {\n box-shadow: inset 0 0 0 2px #aeb0b5;\n color: #d6d7d9;\n}\n\n.usa-button.usa-button-gray,\n.usa-button-primary.usa-button-gray,\n.usa-button:visited.usa-button-gray,\n.usa-button-primary:visited.usa-button-gray,\nbutton.usa-button-gray,\n[type=button].usa-button-gray,\n[type=submit].usa-button-gray,\n[type=reset].usa-button-gray,\n[type=image].usa-button-gray {\n background-color: #5b616b;\n}\n\n.usa-button.usa-button-gray:hover, .usa-button.usa-button-gray.usa-button-hover,\n.usa-button-primary.usa-button-gray:hover,\n.usa-button-primary.usa-button-gray.usa-button-hover,\n.usa-button:visited.usa-button-gray:hover,\n.usa-button:visited.usa-button-gray.usa-button-hover,\n.usa-button-primary:visited.usa-button-gray:hover,\n.usa-button-primary:visited.usa-button-gray.usa-button-hover,\nbutton.usa-button-gray:hover,\nbutton.usa-button-gray.usa-button-hover,\n[type=button].usa-button-gray:hover,\n[type=button].usa-button-gray.usa-button-hover,\n[type=submit].usa-button-gray:hover,\n[type=submit].usa-button-gray.usa-button-hover,\n[type=reset].usa-button-gray:hover,\n[type=reset].usa-button-gray.usa-button-hover,\n[type=image].usa-button-gray:hover,\n[type=image].usa-button-gray.usa-button-hover {\n background-color: #323a45;\n}\n\n.usa-button.usa-button-gray:active, .usa-button.usa-button-gray.usa-button-active,\n.usa-button-primary.usa-button-gray:active,\n.usa-button-primary.usa-button-gray.usa-button-active,\n.usa-button:visited.usa-button-gray:active,\n.usa-button:visited.usa-button-gray.usa-button-active,\n.usa-button-primary:visited.usa-button-gray:active,\n.usa-button-primary:visited.usa-button-gray.usa-button-active,\nbutton.usa-button-gray:active,\nbutton.usa-button-gray.usa-button-active,\n[type=button].usa-button-gray:active,\n[type=button].usa-button-gray.usa-button-active,\n[type=submit].usa-button-gray:active,\n[type=submit].usa-button-gray.usa-button-active,\n[type=reset].usa-button-gray:active,\n[type=reset].usa-button-gray.usa-button-active,\n[type=image].usa-button-gray:active,\n[type=image].usa-button-gray.usa-button-active {\n background-color: #212121;\n}\n\n.usa-button.usa-button-red,\n.usa-button-primary.usa-button-red,\n.usa-button:visited.usa-button-red,\n.usa-button-primary:visited.usa-button-red,\nbutton.usa-button-red,\n[type=button].usa-button-red,\n[type=submit].usa-button-red,\n[type=reset].usa-button-red,\n[type=image].usa-button-red {\n background-color: #e31c3d;\n}\n\n.usa-button.usa-button-red:hover, .usa-button.usa-button-red.usa-button-hover,\n.usa-button-primary.usa-button-red:hover,\n.usa-button-primary.usa-button-red.usa-button-hover,\n.usa-button:visited.usa-button-red:hover,\n.usa-button:visited.usa-button-red.usa-button-hover,\n.usa-button-primary:visited.usa-button-red:hover,\n.usa-button-primary:visited.usa-button-red.usa-button-hover,\nbutton.usa-button-red:hover,\nbutton.usa-button-red.usa-button-hover,\n[type=button].usa-button-red:hover,\n[type=button].usa-button-red.usa-button-hover,\n[type=submit].usa-button-red:hover,\n[type=submit].usa-button-red.usa-button-hover,\n[type=reset].usa-button-red:hover,\n[type=reset].usa-button-red.usa-button-hover,\n[type=image].usa-button-red:hover,\n[type=image].usa-button-red.usa-button-hover {\n background-color: #cd2026;\n}\n\n.usa-button.usa-button-red:active, .usa-button.usa-button-red.usa-button-active,\n.usa-button-primary.usa-button-red:active,\n.usa-button-primary.usa-button-red.usa-button-active,\n.usa-button:visited.usa-button-red:active,\n.usa-button:visited.usa-button-red.usa-button-active,\n.usa-button-primary:visited.usa-button-red:active,\n.usa-button-primary:visited.usa-button-red.usa-button-active,\nbutton.usa-button-red:active,\nbutton.usa-button-red.usa-button-active,\n[type=button].usa-button-red:active,\n[type=button].usa-button-red.usa-button-active,\n[type=submit].usa-button-red:active,\n[type=submit].usa-button-red.usa-button-active,\n[type=reset].usa-button-red:active,\n[type=reset].usa-button-red.usa-button-active,\n[type=image].usa-button-red:active,\n[type=image].usa-button-red.usa-button-active {\n background-color: #981b1e;\n}\n\n.usa-button.usa-button-big,\n.usa-button-primary.usa-button-big,\n.usa-button:visited.usa-button-big,\n.usa-button-primary:visited.usa-button-big,\nbutton.usa-button-big,\n[type=button].usa-button-big,\n[type=submit].usa-button-big,\n[type=reset].usa-button-big,\n[type=image].usa-button-big {\n border-radius: 8px;\n font-size: 2.4rem;\n padding: 1.5rem 3rem;\n}\n\n.usa-button:disabled,\n.usa-button-primary:disabled,\n.usa-button:visited:disabled,\n.usa-button-primary:visited:disabled,\nbutton:disabled,\n[type=button]:disabled,\n[type=submit]:disabled,\n[type=reset]:disabled,\n[type=image]:disabled {\n background-color: #d6d7d9;\n pointer-events: none;\n}\n\n.usa-button:disabled:hover, .usa-button:disabled.usa-button-hover, .usa-button:disabled:active, .usa-button:disabled.usa-button-active, .usa-button:disabled:focus, .usa-button:disabled.usa-focus,\n.usa-button-primary:disabled:hover,\n.usa-button-primary:disabled.usa-button-hover,\n.usa-button-primary:disabled:active,\n.usa-button-primary:disabled.usa-button-active,\n.usa-button-primary:disabled:focus,\n.usa-button-primary:disabled.usa-focus,\n.usa-button:visited:disabled:hover,\n.usa-button:visited:disabled.usa-button-hover,\n.usa-button:visited:disabled:active,\n.usa-button:visited:disabled.usa-button-active,\n.usa-button:visited:disabled:focus,\n.usa-button:visited:disabled.usa-focus,\n.usa-button-primary:visited:disabled:hover,\n.usa-button-primary:visited:disabled.usa-button-hover,\n.usa-button-primary:visited:disabled:active,\n.usa-button-primary:visited:disabled.usa-button-active,\n.usa-button-primary:visited:disabled:focus,\n.usa-button-primary:visited:disabled.usa-focus,\nbutton:disabled:hover,\nbutton:disabled.usa-button-hover,\nbutton:disabled:active,\nbutton:disabled.usa-button-active,\nbutton:disabled:focus,\nbutton:disabled.usa-focus,\n[type=button]:disabled:hover,\n[type=button]:disabled.usa-button-hover,\n[type=button]:disabled:active,\n[type=button]:disabled.usa-button-active,\n[type=button]:disabled:focus,\n[type=button]:disabled.usa-focus,\n[type=submit]:disabled:hover,\n[type=submit]:disabled.usa-button-hover,\n[type=submit]:disabled:active,\n[type=submit]:disabled.usa-button-active,\n[type=submit]:disabled:focus,\n[type=submit]:disabled.usa-focus,\n[type=reset]:disabled:hover,\n[type=reset]:disabled.usa-button-hover,\n[type=reset]:disabled:active,\n[type=reset]:disabled.usa-button-active,\n[type=reset]:disabled:focus,\n[type=reset]:disabled.usa-focus,\n[type=image]:disabled:hover,\n[type=image]:disabled.usa-button-hover,\n[type=image]:disabled:active,\n[type=image]:disabled.usa-button-active,\n[type=image]:disabled:focus,\n[type=image]:disabled.usa-focus {\n background-color: #d6d7d9;\n border: 0;\n box-shadow: none;\n}\n\n/* stylelint-disable */\n.usa-button-disabled {\n background-color: #d6d7d9;\n pointer-events: none;\n}\n\n.usa-button-disabled:hover, .usa-button-disabled.usa-button-hover, .usa-button-disabled:active, .usa-button-disabled.usa-button-active, .usa-button-disabled:focus, .usa-button-disabled.usa-focus {\n background-color: #d6d7d9;\n border: 0;\n box-shadow: none;\n}\n\n.usa-button-secondary-disabled,\n.usa-button-secondary-inverse-disabled,\n.usa-button-secondary:disabled,\n.usa-button-secondary-inverse:disabled,\n.usa-button-outline-inverse:disabled {\n box-shadow: inset 0 0 0 2px #d6d7d9;\n pointer-events: none;\n color: #d6d7d9;\n}\n\n.usa-button-secondary-disabled:hover, .usa-button-secondary-disabled.usa-button-hover, .usa-button-secondary-disabled:active, .usa-button-secondary-disabled.usa-button-active, .usa-button-secondary-disabled:focus, .usa-button-secondary-disabled.usa-focus,\n.usa-button-secondary-inverse-disabled:hover,\n.usa-button-secondary-inverse-disabled.usa-button-hover,\n.usa-button-secondary-inverse-disabled:active,\n.usa-button-secondary-inverse-disabled.usa-button-active,\n.usa-button-secondary-inverse-disabled:focus,\n.usa-button-secondary-inverse-disabled.usa-focus,\n.usa-button-secondary:disabled:hover,\n.usa-button-secondary:disabled.usa-button-hover,\n.usa-button-secondary:disabled:active,\n.usa-button-secondary:disabled.usa-button-active,\n.usa-button-secondary:disabled:focus,\n.usa-button-secondary:disabled.usa-focus,\n.usa-button-secondary-inverse:disabled:hover,\n.usa-button-secondary-inverse:disabled.usa-button-hover,\n.usa-button-secondary-inverse:disabled:active,\n.usa-button-secondary-inverse:disabled.usa-button-active,\n.usa-button-secondary-inverse:disabled:focus,\n.usa-button-secondary-inverse:disabled.usa-focus,\n.usa-button-outline-inverse:disabled:hover,\n.usa-button-outline-inverse:disabled.usa-button-hover,\n.usa-button-outline-inverse:disabled:active,\n.usa-button-outline-inverse:disabled.usa-button-active,\n.usa-button-outline-inverse:disabled:focus,\n.usa-button-outline-inverse:disabled.usa-focus {\n background-color: #ffffff;\n border: 0;\n}\n\nhtml .usa-button-secondary-disabled,\n.usa-button-secondary:disabled {\n background-color: #ffffff;\n}\n\nhtml .usa-button-secondary-inverse-disabled,\n.usa-button-secondary-inverse:disabled {\n background-color: transparent;\n color: #5b616b;\n box-shadow: inset 0 0 0 2px #5b616b;\n}\n\n.usa-button-unstyled {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n}\n\n.usa-button-unstyled:hover {\n background-color: transparent;\n}\n\n.usa-embed-container iframe,\n.usa-embed-container object,\n.usa-embed-container embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.usa-embed-container {\n padding-bottom: 56.25%;\n position: relative;\n height: 0;\n overflow: hidden;\n max-width: 100%;\n}\n\nimg {\n max-width: 100%;\n}\n\n.media_link {\n display: inline-block;\n line-height: 0;\n}\n\n/* stylelint-disable selector-no-qualifying-type */\ninput,\ntextarea,\nselect {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: 0.1rem solid #5b616b;\n border-radius: 0;\n box-sizing: border-box;\n color: #212121;\n display: block;\n font-size: 1.7rem;\n height: 4.4rem;\n line-height: 1.3;\n margin: 0.2em 0;\n max-width: 46rem;\n padding: 1rem 0.7em;\n width: 100%;\n}\n\ninput.usa-input-success,\ntextarea.usa-input-success,\nselect.usa-input-success {\n border: 3px solid #4aa564;\n}\n\n/* stylelint-enable */\n.usa-input-error {\n border-left: 4px solid #cd2026;\n margin-top: 3rem;\n padding-bottom: 0.8rem;\n padding-left: 1.5rem;\n padding-top: 0.8rem;\n position: relative;\n right: 1.9rem;\n}\n\n.usa-input-error input,\n.usa-input-error textarea,\n.usa-input-error select {\n border: 3px solid #cd2026;\n width: calc(100% + 1.9rem);\n}\n\n.usa-input-error label {\n margin-top: 0;\n}\n\n.usa-input-error .usa-input-inline {\n border: 0.1rem solid #5b616b;\n width: inherit;\n}\n\n.usa-input-error .usa-input-inline-error {\n border: 3px solid #cd2026;\n}\n\n.usa-input-error-label {\n display: block;\n font-size: 1.7rem;\n font-weight: 700;\n}\n\n.usa-input-error-message {\n color: #cd2026;\n display: block;\n font-size: 1.7rem;\n font-weight: 700;\n padding-bottom: 3px;\n padding-top: 3px;\n}\n\n.usa-input-required:after {\n color: #981b1e;\n content: ' (*required)';\n}\n\n.usa-input-optional:after {\n color: #757575;\n content: ' (optional)';\n}\n\nlabel {\n display: block;\n margin-top: 3rem;\n max-width: 46rem;\n}\n\ntextarea {\n height: 16rem;\n}\n\nselect {\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n background-color: #ffffff;\n background-image: url(\"../img/arrow-both.png\");\n background-image: url(\"../img/arrow-both.svg\");\n background-position: right 1.3rem center;\n background-repeat: no-repeat;\n background-size: 1rem;\n padding-right: 3rem;\n}\n\nselect::-ms-expand {\n display: none;\n}\n\nselect:-webkit-autofill {\n -webkit-appearance: menulist;\n appearance: menulist;\n}\n\nselect:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #000000;\n}\n\noption:first-child {\n font-weight: 700;\n}\n\nlegend {\n font-size: 3rem;\n font-weight: 700;\n}\n\n.usa-fieldset-inputs label {\n margin-top: 0;\n}\n\n.usa-form-hint {\n color: #757575;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n margin-bottom: 0;\n}\n\n[type=checkbox],\n[type=radio] {\n position: absolute;\n left: -999em;\n}\n\n.lt-ie9 [type=checkbox], .lt-ie9\n[type=radio] {\n border: 0;\n float: left;\n margin: 0.4em 0.4em 0 0;\n position: static;\n width: auto;\n}\n\n[type=checkbox] + label,\n[type=radio] + label {\n cursor: pointer;\n font-weight: 400;\n margin-bottom: 0.65em;\n}\n\n[type=checkbox] + label::before,\n[type=radio] + label::before {\n background: #ffffff;\n border-radius: 2px;\n box-shadow: 0 0 0 1px #757575;\n content: '\\a0';\n display: inline-block;\n height: 2rem;\n line-height: 2rem;\n margin-right: 0.6em;\n text-indent: 0.15em;\n vertical-align: middle\\0;\n width: 2rem;\n}\n\n[type=radio] + label::before {\n border-radius: 100%;\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #757575;\n height: 1.4rem;\n line-height: 1.4rem;\n margin-right: 0.75em;\n width: 1.4rem;\n}\n\n[type=checkbox]:checked + label::before,\n[type=radio]:checked + label::before {\n background-color: #0071bc;\n box-shadow: 0 0 0 1px #0071bc;\n}\n\n[type=radio]:checked + label::before {\n box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0071bc;\n}\n\n[type=checkbox]:checked + label::before,\n[type=checkbox]:checked:disabled + label::before {\n background-image: url(\"../img/correct8.png\");\n background-image: url(\"../img/correct8.svg\");\n background-position: 50%;\n background-repeat: no-repeat;\n}\n\n[type=radio]:focus + label::before {\n outline: 2px dotted #aeb0b5;\n outline-offset: 6px;\n}\n\n[type=checkbox]:disabled + label {\n color: #d6d7d9;\n}\n\n[type=checkbox]:focus + label::before {\n outline: 2px dotted #aeb0b5;\n outline-offset: 3px;\n}\n\n[type=checkbox]:disabled + label::before,\n[type=radio]:disabled + label::before {\n background: #f1f1f1;\n box-shadow: 0 0 0 1px #aeb0b5;\n cursor: not-allowed;\n}\n\n[type=range] {\n -webkit-appearance: none;\n border: none;\n padding-left: 0;\n width: 100%;\n}\n\n[type=range]::-webkit-slider-runnable-track {\n background: #aeb0b5;\n border: 1px solid #757575;\n cursor: pointer;\n height: 1.2rem;\n width: 100%;\n}\n\n[type=range]::-moz-range-track {\n background: #0071bc;\n border: 1px solid #757575;\n cursor: pointer;\n height: 1.2rem;\n width: 100%;\n}\n\n[type=range]::-ms-track {\n background: transparent;\n color: transparent;\n cursor: pointer;\n height: 1.2rem;\n width: 100%;\n}\n\n[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: 1px solid #757575;\n height: 2.2rem;\n border-radius: 1.5rem;\n background: #f1f1f1;\n cursor: pointer;\n margin-top: -.65rem;\n width: 2.2rem;\n}\n\n[type=range]::-moz-range-thumb {\n background: #f1f1f1;\n border: 1px solid #757575;\n border-radius: 1.5rem;\n cursor: pointer;\n height: 2.2rem;\n width: 2.2rem;\n}\n\n[type=range]::-ms-thumb {\n background: #f1f1f1;\n border: 1px solid #757575;\n border-radius: 1.5rem;\n cursor: pointer;\n height: 2.2rem;\n width: 2.2rem;\n}\n\n[type=range]::-ms-fill-lower {\n background: #aeb0b5;\n border: 1px solid #757575;\n border-radius: 2rem;\n}\n\n[type=range]::-ms-fill-upper {\n background: #aeb0b5;\n border: 1px solid #757575;\n border-radius: 2rem;\n}\n\n.usa-date-of-birth label {\n margin-top: 0;\n}\n\n.usa-date-of-birth [type=number]::-webkit-inner-spin-button,\n.usa-date-of-birth [type=number]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n appearance: none;\n margin: 0;\n}\n\n.usa-date-of-birth [type=number] {\n -moz-appearance: textfield;\n}\n\n.usa-form-group-day,\n.usa-form-group-month,\n.usa-form-group-year {\n clear: none;\n float: left;\n margin-right: 1.5rem;\n width: 5rem;\n}\n\n.usa-form-group-year {\n width: 7rem;\n}\n\n.usa-label, .usa-label-big {\n background-color: #5b616b;\n border-radius: 2px;\n color: #ffffff;\n font-size: 1.5rem;\n margin-right: 0.5rem;\n padding: 0.1rem 0.7rem;\n text-transform: uppercase;\n}\n\n.usa-label:only-of-type, .usa-label-big:only-of-type {\n margin-right: 0;\n}\n\n.usa-label-big {\n font-size: 1.7rem;\n padding-left: 0.9rem;\n padding-right: 0.9rem;\n}\n\nul,\nol {\n margin-top: 1em;\n margin-bottom: 1em;\n padding-left: 1.94em;\n}\n\nli {\n line-height: 1.5;\n margin-bottom: 0.5em;\n}\n\nli:last-child {\n margin-bottom: 0;\n}\n\nh1 + ul,\nh1 + ol,\nh2 + ul,\nh2 + ol,\nh3 + ul,\nh3 + ol,\nh4 + ul,\nh4 + ol,\nh5 + ul,\nh5 + ol,\nh6 + ul,\nh6 + ol,\np + ul,\np + ol {\n margin-top: 0;\n}\n\n.usa-unstyled-list {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n}\n\n.usa-unstyled-list > li {\n margin-bottom: 0;\n}\n\ntable {\n border-spacing: 0;\n margin: 2em 0;\n}\n\nthead th {\n font-weight: 700;\n}\n\nthead th,\nthead td {\n background-color: #f1f1f1;\n}\n\nth {\n text-align: left;\n}\n\nth,\ntd {\n background-color: #ffffff;\n border: 1px solid #5b616b;\n font-weight: 400;\n padding: 1rem 1.5rem;\n}\n\n.usa-table-borderless thead th {\n background-color: transparent;\n border-top: 0;\n}\n\n.usa-table-borderless th,\n.usa-table-borderless td {\n border-left: 0;\n border-right: 0;\n}\n\n.usa-table-borderless th:first-child {\n padding-left: 0;\n}\n\ncaption {\n font-size: 1.5rem;\n font-weight: 700;\n font-family: \"Merriweather\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif;\n margin-bottom: 1.2rem;\n text-align: left;\n}\n\nhtml {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-size: 10px;\n}\n\nbody {\n font-size: 1.7rem;\n}\n\np {\n line-height: 1.5;\n margin-bottom: 1em;\n margin-top: 1em;\n}\n\na {\n color: #0071bc;\n text-decoration: underline;\n}\n\na:hover, a:active {\n color: #205493;\n}\n\na:focus {\n outline: 2px dotted #aeb0b5;\n outline-offset: 3px;\n}\n\na:visited {\n color: #4c2c92;\n}\n\n.usa-external_link::after {\n background: url(\"../img/external-link.png\") no-repeat 0 0;\n background: url(\"../img/external-link.svg\") no-repeat 0 0;\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 0.65em;\n margin-bottom: -1px;\n margin-left: 4px;\n width: 0.65em;\n}\n\n.usa-external_link:hover::after {\n background-image: url(\"../img/external-link-hover.png\");\n background-image: url(\"../img/external-link-hover.svg\");\n}\n\n.usa-external_link-alt::after {\n background: url(\"../img/external-link-alt.png\") no-repeat 0 0;\n background: url(\"../img/external-link-alt.svg\") no-repeat 0 0;\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 0.65em;\n margin-bottom: -1px;\n margin-left: 4px;\n width: 0.65em;\n}\n\n.usa-external_link-alt:hover::after {\n background-image: url(\"../img/external-link-alt-hover.png\");\n background-image: url(\"../img/external-link-alt-hover.svg\");\n}\n\nh1,\nh2,\nh3,\nh4,\nh5 {\n clear: both;\n font-family: \"Merriweather\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif;\n line-height: 1.3;\n margin-bottom: .5em;\n margin-top: 1.5em;\n}\n\nh6 {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n}\n\nh1 {\n font-size: 4rem;\n font-weight: 700;\n}\n\nh2 {\n font-size: 3rem;\n font-weight: 700;\n}\n\nh3 {\n font-size: 2rem;\n font-weight: 700;\n}\n\nh4 {\n font-size: 1.7rem;\n font-weight: 700;\n}\n\nh5 {\n font-size: 1.5rem;\n font-weight: 700;\n}\n\nh6 {\n font-size: 1.3rem;\n font-weight: 400;\n line-height: 1.5;\n text-transform: uppercase;\n}\n\ncite,\nvar,\naddress,\ndfn {\n font-style: normal;\n}\n\n.usa-content p,\n.usa-content ul:not(.usa-accordion):not(.usa-accordion-bordered),\n.usa-content ol:not(.usa-accordion):not(.usa-accordion-bordered) {\n max-width: 66ch;\n}\n\n.usa-content-list {\n max-width: 66ch;\n}\n\n.usa-sans p,\n.usa-sans a,\n.usa-sans li,\n.usa-sans span {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n}\n\n.usa-sans a {\n border-bottom: none;\n font-weight: 700;\n}\n\n.usa-serif p,\n.usa-serif a,\n.usa-serif li,\n.usa-serif span {\n font-family: \"Merriweather\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif;\n}\n\n.usa-display {\n font-size: 2rem;\n font-weight: 700;\n margin-bottom: 0;\n}\n\n@media screen and (min-width: 481px) {\n .usa-display {\n font-size: 4rem;\n font-weight: 700;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-display {\n font-size: 5.2rem;\n font-weight: 700;\n }\n}\n\n.usa-font-lead {\n font-family: \"Merriweather\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif;\n font-size: 2rem;\n font-weight: 400;\n line-height: 1.7;\n max-width: 77rem;\n}\n\n.usa-image-block {\n position: relative;\n}\n\n.usa-image-text-block {\n color: #ffffff;\n left: 0;\n margin-left: 8%;\n position: absolute;\n top: 0;\n}\n\n.usa-image-text {\n margin-top: 0;\n}\n\n.usa-drop_text {\n margin-bottom: 0;\n}\n\n.usa-background-dark {\n background-color: #323a45;\n}\n\n.usa-background-dark p,\n.usa-background-dark span {\n color: #ffffff;\n}\n\n.usa-background-dark a {\n color: #d6d7d9;\n}\n\n.usa-background-dark a:hover {\n color: #ffffff;\n}\n\n.usa-text-small {\n font-size: 1.3rem;\n margin-top: 0;\n}\n\n.usa-section > :first-child,\n.usa-grid > :first-child,\n.usa-grid-full > :first-child {\n margin-top: 0;\n}\n\n.usa-section > :last-child,\n.usa-grid > :last-child,\n.usa-grid-full > :last-child {\n margin-bottom: 0;\n}\n\n.usa-width-one-whole:first-child > :first-child,\n.usa-width-one-half:first-child > :first-child,\n.usa-width-one-third:first-child > :first-child,\n.usa-width-two-thirds:first-child > :first-child,\n.usa-width-one-fourth:first-child > :first-child,\n.usa-width-three-fourths:first-child > :first-child,\n.usa-width-one-sixth:first-child > :first-child,\n.usa-width-five-sixths:first-child > :first-child,\n.usa-width-one-twelfth:first-child > :first-child {\n margin-top: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-width-one-whole > :first-child,\n .usa-width-one-half > :first-child,\n .usa-width-one-third > :first-child,\n .usa-width-two-thirds > :first-child,\n .usa-width-one-fourth > :first-child,\n .usa-width-three-fourths > :first-child,\n .usa-width-one-sixth > :first-child,\n .usa-width-five-sixths > :first-child,\n .usa-width-one-twelfth > :first-child {\n margin-top: 0;\n }\n}\n\n.usa-width-one-whole:last-child > :last-child,\n.usa-width-one-half:last-child > :last-child,\n.usa-width-one-third:last-child > :last-child,\n.usa-width-two-thirds:last-child > :last-child,\n.usa-width-one-fourth:last-child > :last-child,\n.usa-width-three-fourths:last-child > :last-child,\n.usa-width-one-sixth:last-child > :last-child,\n.usa-width-five-sixths:last-child > :last-child,\n.usa-width-one-twelfth:last-child > :last-child {\n margin-bottom: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-width-one-whole > :last-child,\n .usa-width-one-half > :last-child,\n .usa-width-one-third > :last-child,\n .usa-width-two-thirds > :last-child,\n .usa-width-one-fourth > :last-child,\n .usa-width-three-fourths > :last-child,\n .usa-width-one-sixth > :last-child,\n .usa-width-five-sixths > :last-child,\n .usa-width-one-twelfth > :last-child {\n margin-bottom: 0;\n }\n}\n\n.usa-accordion,\n.usa-accordion-bordered {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n color: #212121;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.usa-accordion > li,\n.usa-accordion-bordered > li {\n margin-bottom: 0;\n}\n\n.usa-accordion > ul li ul,\n.usa-accordion-bordered > ul li ul {\n list-style: disc;\n}\n\n.usa-accordion > ul li ul > li > ul,\n.usa-accordion-bordered > ul li ul > li > ul {\n list-style: circle;\n}\n\n.usa-accordion > ul li ul > li > ul > li > ul,\n.usa-accordion-bordered > ul li ul > li > ul > li > ul {\n list-style: square;\n}\n\n.usa-accordion + .usa-accordion,\n.usa-accordion + .usa-accordion-bordered,\n.usa-accordion-bordered + .usa-accordion,\n.usa-accordion-bordered + .usa-accordion-bordered {\n margin-top: 1rem;\n}\n\n.usa-accordion > ul,\n.usa-accordion-bordered > ul {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n color: #212121;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.usa-accordion > ul > li,\n.usa-accordion-bordered > ul > li {\n margin-bottom: 0;\n}\n\n.usa-accordion > ul > li,\n.usa-accordion-bordered > ul > li {\n background-color: #f1f1f1;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n list-style: none;\n margin-bottom: 0.5rem;\n width: 100%;\n}\n\n.usa-accordion > ul button,\n.usa-accordion-bordered > ul button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n background-color: #f1f1f1;\n background-image: url(\"../img/minus.png\");\n background-image: url(\"../img/minus.svg\");\n background-position: right 2rem center;\n background-repeat: no-repeat;\n background-size: 1.5rem;\n color: #212121;\n cursor: pointer;\n display: inline-block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-weight: 700;\n margin: 0;\n padding: 1.5rem 5.5rem 1.5rem 2rem;\n width: 100%;\n}\n\n.usa-accordion > ul button:hover,\n.usa-accordion-bordered > ul button:hover {\n background-color: transparent;\n}\n\n.usa-accordion > ul button:hover,\n.usa-accordion-bordered > ul button:hover {\n background-color: #d6d7d9;\n color: #212121;\n}\n\n.usa-accordion > ul button h1,\n.usa-accordion > ul button h2,\n.usa-accordion > ul button h3,\n.usa-accordion > ul button h4,\n.usa-accordion > ul button h5,\n.usa-accordion > ul button h6,\n.usa-accordion-bordered > ul button h1,\n.usa-accordion-bordered > ul button h2,\n.usa-accordion-bordered > ul button h3,\n.usa-accordion-bordered > ul button h4,\n.usa-accordion-bordered > ul button h5,\n.usa-accordion-bordered > ul button h6 {\n margin: 0;\n}\n\n.usa-accordion > ul [aria-expanded=false],\n.usa-accordion-bordered > ul [aria-expanded=false] {\n background-image: url(\"../img/plus.png\");\n background-image: url(\"../img/plus.svg\");\n background-repeat: no-repeat;\n background-size: 1.5rem;\n}\n\n.usa-accordion > li,\n.usa-accordion-bordered > li {\n background-color: #f1f1f1;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n list-style: none;\n margin-bottom: 0.5rem;\n width: 100%;\n}\n\n.usa-accordion-bordered .usa-accordion-content {\n border-bottom: 3px solid #f1f1f1;\n border-left: 3px solid #f1f1f1;\n border-right: 3px solid #f1f1f1;\n}\n\n.usa-accordion-content {\n background-color: #ffffff;\n overflow: auto;\n padding: 1.5rem 2rem;\n}\n\n.usa-accordion-content > *:first-child {\n margin-top: 0;\n}\n\n.usa-accordion-content > *:last-child {\n margin-bottom: 0;\n}\n\n.usa-accordion-content:not([aria-hidden]) {\n position: absolute;\n left: -999em;\n}\n\n.usa-accordion-content[aria-hidden=true] {\n display: none;\n}\n\n.usa-accordion-button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n background-color: #f1f1f1;\n background-image: url(\"../img/minus.png\");\n background-image: url(\"../img/minus.svg\");\n background-position: right 2rem center;\n background-repeat: no-repeat;\n background-size: 1.5rem;\n color: #212121;\n cursor: pointer;\n display: inline-block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-weight: 700;\n margin: 0;\n padding: 1.5rem 5.5rem 1.5rem 2rem;\n width: 100%;\n}\n\n.usa-accordion-button:hover {\n background-color: transparent;\n}\n\n.usa-accordion-button:hover {\n background-color: #d6d7d9;\n color: #212121;\n}\n\n.usa-accordion-button h1,\n.usa-accordion-button h2,\n.usa-accordion-button h3,\n.usa-accordion-button h4,\n.usa-accordion-button h5,\n.usa-accordion-button h6 {\n margin: 0;\n}\n\n.usa-accordion-button[aria-expanded=false] {\n background-image: url(\"../img/plus.png\");\n background-image: url(\"../img/plus.svg\");\n background-repeat: no-repeat;\n background-size: 1.5rem;\n}\n\n.usa-alert {\n background-color: #f1f1f1;\n background-position: 2rem 2rem;\n background-repeat: no-repeat;\n background-size: 5.2rem;\n padding-bottom: 1.4rem;\n padding-left: 3rem;\n padding-right: 2rem;\n padding-top: 2rem;\n position: relative;\n}\n\n.usa-alert::before {\n background-color: #8b8b8b;\n content: '';\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 1rem;\n}\n\n.usa-alert a {\n color: #205493;\n}\n\n.usa-alert a:focus, .usa-alert a:hover {\n color: #112e51;\n}\n\n.usa-alert ul {\n margin-bottom: 0;\n margin-top: 1rem;\n padding-left: 1rem;\n}\n\n.usa-alert-slim {\n background-position: 2rem 1rem;\n padding-bottom: 1rem;\n padding-top: 1rem;\n}\n\n.usa-alert-slim .usa-alert-text:only-child {\n margin-bottom: 0.5rem;\n padding-top: 0.5rem;\n}\n\n.usa-alert-icon {\n display: table-cell;\n padding-right: 1rem;\n}\n\n.usa-alert-body {\n display: table-cell;\n padding-left: 5rem;\n vertical-align: top;\n}\n\n.usa-alert-heading {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.usa-alert-text {\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.usa-alert-text:only-child {\n margin-bottom: 1rem;\n padding-top: 0.5rem;\n}\n\n.usa-alert-success {\n background-color: #e7f4e4;\n background-image: url(\"../img/alerts/success.png\");\n background-image: url(\"../img/alerts/success.svg\");\n}\n\n.usa-alert-success::before {\n background-color: #2e8540;\n}\n\n.usa-alert-warning {\n background-color: #fff1d2;\n background-image: url(\"../img/alerts/warning.png\");\n background-image: url(\"../img/alerts/warning.svg\");\n}\n\n.usa-alert-warning::before {\n background-color: #fdb81e;\n}\n\n.usa-alert-error {\n background-color: #f9dede;\n background-image: url(\"../img/alerts/error.png\");\n background-image: url(\"../img/alerts/error.svg\");\n}\n\n.usa-alert-error::before {\n background-color: #e31c3d;\n}\n\n.usa-alert-info {\n background-color: #e1f3f8;\n background-image: url(\"../img/alerts/info.png\");\n background-image: url(\"../img/alerts/info.svg\");\n}\n\n.usa-alert-info::before {\n background-color: #02bfe7;\n}\n\n.usa-alert-no_icon {\n background-image: none;\n}\n\n.usa-alert-paragraph {\n width: 66ch;\n}\n\n.usa-alert {\n margin-top: 1.5em;\n}\n\n.usa-banner {\n background-color: #f1f1f1;\n padding-bottom: 0.7rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner {\n font-size: 1.3rem;\n padding-bottom: 0;\n }\n}\n\n.usa-banner-content {\n padding-right: 1.5rem;\n padding-bottom: 3px;\n padding-left: 1.5rem;\n background-color: transparent;\n font-size: 1.5rem;\n padding-top: 2rem;\n width: 100%;\n}\n\n@media screen and (min-width: 600px) {\n .usa-banner-content {\n padding-bottom: 2.3rem;\n padding-top: 4rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-banner-content {\n padding-right: 3rem;\n padding-left: 3rem;\n }\n}\n\n.usa-banner-content p:first-child {\n margin-top: 1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-banner-content p:first-child {\n margin-top: 0;\n }\n}\n\n.usa-banner-inner {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 1.5rem;\n padding-left: 1.5rem;\n max-width: 1040px;\n}\n\n.usa-banner-inner::after {\n clear: both;\n content: \"\";\n display: block;\n}\n\n@media screen and (min-width: 951px) {\n .usa-banner-inner {\n padding-right: 3rem;\n padding-left: 3rem;\n }\n}\n\n.usa-banner-header {\n padding-top: 0.55rem;\n padding-bottom: 0.55rem;\n font-size: 1.2rem;\n font-weight: 400;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header {\n padding-top: 0;\n padding-bottom: 0;\n }\n}\n\n.usa-banner-header p {\n margin-top: 0;\n margin-bottom: 0;\n display: inline;\n overflow: hidden;\n vertical-align: middle;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header p {\n margin-top: 2px;\n margin-bottom: 2px;\n display: inline-block;\n }\n}\n\n.usa-banner-header img {\n float: left;\n margin-right: 1rem;\n margin-top: 1px;\n width: 2.4rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header img {\n margin-right: 0.7rem;\n width: 2rem;\n }\n}\n\n.usa-banner-header-expanded {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n border-bottom: 1px solid #aeb0b5;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n font-size: 1.5rem;\n min-height: 5.6rem;\n padding-right: 3rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded {\n border-bottom: none;\n display: block;\n font-size: 1.2rem;\n font-weight: 400;\n min-height: 0;\n padding-right: 0;\n }\n}\n\n.usa-banner-header-expanded > .usa-banner-inner {\n margin-left: 0;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded > .usa-banner-inner {\n margin-left: auto;\n }\n}\n\n.usa-banner-header-expanded img {\n margin-right: 2.4rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded img {\n margin-right: 0.7rem;\n }\n}\n\n.usa-banner-header-expanded p {\n line-height: 1.3;\n vertical-align: top;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-header-expanded p {\n line-height: 1.5;\n vertical-align: middle;\n }\n}\n\n.usa-banner-button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n padding-top: 1.3rem;\n padding-left: 4.8rem;\n background-position-x: right;\n color: #0071bc;\n display: block;\n font-size: 1.2rem;\n height: 4.3rem;\n left: 0;\n position: absolute;\n text-decoration: underline;\n top: 0;\n width: 100%;\n}\n\n.usa-banner-button:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button {\n padding-top: 0;\n padding-left: 0;\n /* stylelint-disable declaration-block-no-ignored-properties */\n display: inline;\n height: initial;\n margin-left: 3px;\n position: relative;\n vertical-align: middle;\n width: initial;\n /* stylelint-enable */\n }\n}\n\n.usa-banner-button:hover {\n color: #205493;\n text-decoration: underline;\n}\n\n.usa-banner-button[aria-expanded=false] {\n background-image: none;\n}\n\n.usa-banner-button[aria-expanded=false]::after {\n background-image: url(\"../img/angle-arrow-down-primary.png\");\n background-image: url(\"../img/angle-arrow-down-primary.svg\");\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 1rem;\n width: 1rem;\n /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n margin-left: 0;\n /* stylelint-enable */\n}\n\n.usa-banner-button[aria-expanded=false]:hover::after {\n background-image: url(\"../img/angle-arrow-down-primary-hover.png\");\n background-image: url(\"../img/angle-arrow-down-primary-hover.svg\");\n}\n\n.usa-banner-button[aria-expanded=false]::after {\n background-position-y: 1px;\n}\n\n.usa-banner-button[aria-expanded=true] {\n background-image: none;\n height: 5.6rem;\n}\n\n.usa-banner-button[aria-expanded=true]::after {\n background-image: url(\"../img/close.png\");\n background-image: url(\"../img/close.svg\");\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 1.3rem;\n width: 1.3rem;\n /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n margin-left: 0;\n /* stylelint-enable */\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button[aria-expanded=true] {\n height: initial;\n padding: 0;\n position: relative;\n }\n .usa-banner-button[aria-expanded=true]::after {\n background-image: url(\"../img/angle-arrow-up-primary.png\");\n background-image: url(\"../img/angle-arrow-up-primary.svg\");\n background-size: 100%;\n content: '';\n display: inline-block;\n height: 1rem;\n width: 1rem;\n /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n margin-left: 0;\n /* stylelint-enable */\n }\n .usa-banner-button[aria-expanded=true]:hover::after {\n background-image: url(\"../img/angle-arrow-up-primary-hover.png\");\n background-image: url(\"../img/angle-arrow-up-primary-hover.svg\");\n }\n .usa-banner-button[aria-expanded=true]::after {\n background-position-y: 1px;\n }\n}\n\n.usa-banner-button[aria-expanded=true]::after {\n position: absolute;\n right: 1.5rem;\n top: 2.15rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button[aria-expanded=true]::after {\n position: static;\n }\n}\n\n.usa-banner-button[aria-expanded=true] .usa-banner-button-text {\n display: none;\n}\n\n@media screen and (min-width: 481px) {\n .usa-banner-button[aria-expanded=true] .usa-banner-button-text {\n display: inline;\n }\n}\n\n.usa-banner-icon {\n width: 3.8rem;\n}\n\n.usa-footer .usa-unstyled-list {\n display: block;\n}\n\n.usa-footer .usa-footer-primary-link {\n color: #212121;\n display: block;\n font-weight: 700;\n margin-top: 0;\n padding-bottom: 2rem;\n padding-top: 2rem;\n text-decoration: none;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer .usa-footer-primary-link {\n border-top: none;\n }\n}\n\n.usa-footer .usa-footer-primary-link:hover {\n text-decoration: underline;\n}\n\n.usa-footer .usa-footer-primary-link ~ li a,\n.usa-footer .usa-footer-secondary-link {\n text-decoration: none;\n}\n\n.usa-footer-contact_info {\n display: inline-block;\n}\n\n.usa-footer-contact_info a {\n color: #212121;\n text-decoration: none;\n}\n\n.usa-footer-contact_info:hover {\n text-decoration: underline;\n}\n\n.usa-footer-return-to-top {\n color: #0071bc;\n padding-bottom: 2rem;\n padding-top: 2rem;\n text-decoration: underline;\n}\n\n.usa-footer-primary-section {\n background-color: #f1f1f1;\n}\n\n.usa-footer-primary-section .usa-footer-primary-content {\n padding-left: 1.5rem;\n padding-right: 2.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-primary-section .usa-footer-primary-content {\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n.usa-footer-primary-section .usa-footer-primary-content li {\n margin-left: 1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-primary-section .usa-footer-primary-content li {\n margin-left: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-primary-section .usa-grid-full {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n }\n}\n\n.usa-footer-medium .usa-footer-contact_info p {\n margin: 0 1rem 0 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-medium .usa-footer-contact_info p {\n margin: 0 0 0 1rem;\n }\n}\n\n.usa-footer-medium .usa-footer-contact-heading {\n margin-top: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-medium .usa-footer-contact-heading {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n }\n}\n\n.usa-footer-medium .usa-footer-logo {\n padding: 1rem 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-medium .usa-footer-logo {\n padding: 2rem 0;\n }\n}\n\n.usa-footer-medium .usa-footer-primary-link {\n padding-bottom: 1.5rem;\n padding-top: 1.5rem;\n}\n\n.usa-footer-medium .usa-footer-primary-section > .usa-grid {\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-medium .usa-footer-primary-section > .usa-grid {\n padding-left: 3rem;\n padding-right: 3rem;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content {\n margin-right: 5%;\n width: inherit;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-medium .usa-footer-primary-section .usa-footer-primary-content:last-child {\n margin-right: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-medium .usa-footer-nav ul {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n}\n\n.usa-footer-slim .usa-footer-nav a {\n display: block;\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-slim .usa-footer-nav .usa-footer-primary-content {\n margin-right: 5%;\n width: inherit;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-slim .usa-footer-nav .usa-footer-primary-content:last-child {\n margin-right: 0;\n }\n}\n\n.usa-footer-slim .usa-footer-primary-link {\n padding-bottom: 1.5rem;\n padding-top: 1.5rem;\n}\n\n.usa-footer-slim .usa-footer-primary-section > .usa-grid {\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-primary-section > .usa-grid {\n padding-left: 3rem;\n padding-right: 3rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-primary-section {\n padding-bottom: 0;\n padding-top: 0;\n }\n .usa-footer-slim .usa-footer-primary-section .usa-grid-full {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-contact_info > * {\n margin: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-contact_info {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-slim .usa-footer-contact_info {\n width: 100%;\n }\n}\n\n@media screen and (min-width: 1201px) {\n .usa-footer-slim .usa-footer-contact_info {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 48.82117%;\n }\n .usa-footer-slim .usa-footer-contact_info:last-child {\n margin-right: 0;\n }\n}\n\n/* stylelint-disable selector-no-qualifying-type */\nul.usa-footer-primary-content,\nli.usa-footer-primary-content,\nli.usa-footer-primary-content {\n border-top: 1px solid #aeb0b5;\n}\n\n@media screen and (min-width: 600px) {\n ul.usa-footer-primary-content,\n li.usa-footer-primary-content,\n li.usa-footer-primary-content {\n border: none;\n }\n}\n\nul.usa-footer-primary-content:last-child,\nli.usa-footer-primary-content:last-child,\nli.usa-footer-primary-content:last-child {\n border-bottom: 1px solid #aeb0b5;\n}\n\n@media screen and (min-width: 600px) {\n ul.usa-footer-primary-content:last-child,\n li.usa-footer-primary-content:last-child,\n li.usa-footer-primary-content:last-child {\n border-bottom: none;\n }\n}\n\n/* stylelint-enable */\n.usa-sign_up-block {\n padding-bottom: 4.5rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-sign_up-block {\n float: right;\n padding: 0;\n }\n}\n\n.usa-sign_up-block label:first-of-type {\n margin-top: 0;\n}\n\n.usa-sign_up-block button {\n float: none;\n margin-right: 0;\n margin-top: 1.5rem;\n}\n\n.usa-sign_up-block input {\n width: 100%;\n}\n\n.usa-footer-secondary_section {\n background-color: #d6d7d9;\n padding-bottom: 2rem;\n padding-top: 2rem;\n}\n\n.usa-footer-secondary_section a {\n color: #212121;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big-secondary-section {\n padding-top: 2rem;\n padding-bottom: 2rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-contact-links {\n text-align: right;\n }\n}\n\n.usa-social-links a {\n text-decoration: none;\n}\n\n.usa-footer-big .usa-footer-contact_info {\n display: block;\n}\n\n.usa-footer-big .usa-footer-contact_info p {\n margin: 0 1rem 0 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big .usa-footer-contact_info p {\n margin: 0.5rem 0 0 1rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big .usa-footer-contact-links {\n padding-top: 2rem;\n }\n}\n\n.usa-footer-big .usa-footer-logo {\n padding: 1rem 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big .usa-footer-logo {\n padding: 2rem 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big .usa-footer-primary-section {\n padding-bottom: 4rem;\n padding-top: 3rem;\n }\n}\n\n.usa-footer-big .usa-footer-primary-section > .usa-grid {\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big .usa-footer-primary-section > .usa-grid {\n padding-left: 3rem;\n padding-right: 3rem;\n }\n}\n\n.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content {\n padding-left: 0;\n padding-right: 0;\n}\n\n.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content li {\n margin-left: 1.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big .usa-footer-primary-section .usa-footer-primary-content li {\n margin-left: 0;\n }\n}\n\n.usa-footer-big .usa-footer-primary-section .usa-footer-primary-content .usa-footer-primary-link {\n margin-left: 0;\n}\n\n.usa-footer-big ul {\n padding-bottom: 2.4rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul {\n padding-bottom: 0;\n }\n}\n\n.usa-footer-big ul:last-child {\n border-bottom: 1px solid #aeb0b5;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul:last-child {\n border-bottom: none;\n }\n}\n\n.usa-footer-big ul li:not(.usa-footer-primary-link) {\n line-height: 1.3;\n padding-bottom: 0.35em;\n padding-top: 0.35em;\n}\n\n.usa-footer-big ul .usa-footer-primary-link {\n background-image: url(\"../img/arrow-down.png\");\n background-image: url(\"../img/arrow-down.svg\");\n background-position: 1.5rem center;\n background-repeat: no-repeat;\n background-size: 1.3rem;\n margin-left: 0;\n padding-left: 3.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul .usa-footer-primary-link {\n background: none;\n margin-bottom: .8rem;\n padding-bottom: 0;\n padding-left: 0;\n }\n}\n\n.usa-footer-big ul .usa-footer-primary-link > * {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.usa-footer-big ul.hidden {\n /* stylelint-disable-line selector-no-qualifying-type */\n padding-bottom: 0;\n}\n\n.usa-footer-big ul.hidden li {\n display: none;\n}\n\n.usa-footer-big ul.hidden .usa-footer-primary-link {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-image: url(\"../img/arrow-right.png\");\n background-image: url(\"../img/arrow-right.svg\");\n cursor: pointer;\n display: block;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big ul.hidden .usa-footer-primary-link {\n background: none;\n padding-left: 0;\n }\n}\n\n.usa-footer-topic {\n margin: 0;\n padding: 2rem 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-sign_up-header {\n margin: 0;\n padding: 2rem 0;\n }\n}\n\n.usa-footer-logo-img {\n max-width: 8rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-logo-img {\n float: left;\n }\n}\n\n.usa-footer-big-logo-img {\n max-width: 10rem;\n}\n\n.usa-footer-slim-logo-img {\n float: left;\n max-width: 5rem;\n}\n\n.usa-footer-logo-heading {\n display: block;\n margin-top: 1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-logo-heading {\n display: inline-block;\n margin-top: 3rem;\n padding-left: 1.5rem;\n }\n}\n\n.usa-footer-big-logo-heading {\n margin-top: 1.5rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-big-logo-heading {\n margin-top: 2rem;\n }\n}\n\n.usa-footer-slim-logo-heading {\n display: inline-block;\n margin-top: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.usa-footer-contact-heading {\n margin-top: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-footer-contact-heading {\n margin-top: 1rem;\n }\n}\n\n.usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {\n margin: 2.5rem 1rem 1.5rem 0;\n background-position: center center;\n background-repeat: no-repeat;\n background-size: auto 3rem;\n display: inline-block;\n height: 4.4rem;\n left: -1.6rem;\n position: relative;\n text-align: center;\n width: 4.4rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-social_link, .usa-link-facebook, .usa-link-twitter, .usa-link-youtube, .usa-link-rss {\n margin: 0 0 0 0.5rem;\n left: 1.5rem;\n }\n}\n\n.usa-social_link span, .usa-link-facebook span, .usa-link-twitter span, .usa-link-youtube span, .usa-link-rss span {\n position: absolute;\n left: -999em;\n}\n\n.usa-link-facebook {\n background-image: url(\"../img/social-icons/png/facebook25.png\");\n background-image: url(\"../img/social-icons/svg/facebook25.svg\");\n}\n\n.usa-link-twitter {\n background-image: url(\"../img/social-icons/png/twitter16.png\");\n background-image: url(\"../img/social-icons/svg/twitter16.svg\");\n}\n\n.usa-link-youtube {\n background-image: url(\"../img/social-icons/png/youtube15.png\");\n background-image: url(\"../img/social-icons/svg/youtube15.svg\");\n}\n\n.usa-link-rss {\n background-image: url(\"../img/social-icons/png/rss25.png\");\n background-image: url(\"../img/social-icons/svg/rss25.svg\");\n}\n\nform a {\n border-bottom: 0;\n}\n\nform [type=submit],\nform [type=submit] {\n display: block;\n margin-bottom: 1.5em;\n margin-top: 2.5rem;\n}\n\n@media screen and (min-width: 600px) {\n form [type=submit],\n form [type=submit] {\n padding-left: 2.7em;\n padding-right: 2.7em;\n width: auto;\n }\n}\n\nform [name=password],\nform [name=confirmPassword] {\n margin-bottom: 1.1rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-form {\n max-width: 32rem;\n }\n}\n\n.usa-form-note {\n float: right;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n font-size: 1.5rem;\n margin: 0 0 1.5rem;\n}\n\n.usa-form-note + * {\n clear: both;\n}\n\nfieldset {\n border: none;\n margin: 0;\n padding: 0;\n}\n\n@media screen and (min-width: 600px) {\n .usa-form-large {\n max-width: 46rem;\n }\n}\n\ninput.usa-input-tiny {\n /* stylelint-disable-line selector-no-qualifying-type */\n}\n\n@media screen and (min-width: 600px) {\n input.usa-input-tiny {\n max-width: 6rem;\n }\n}\n\ninput.usa-input-medium {\n /* stylelint-disable-line selector-no-qualifying-type */\n}\n\n@media screen and (min-width: 600px) {\n input.usa-input-medium {\n max-width: 12rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid {\n padding-right: 5%;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid:last-of-type {\n padding-right: 0;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid-small {\n float: left;\n width: 35%;\n }\n}\n\n.usa-input-grid-small input {\n margin-bottom: 3rem;\n}\n\n.usa-input-grid-small select {\n margin-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid-medium {\n float: left;\n width: 65%;\n }\n}\n\n.usa-input-grid-medium input {\n margin-bottom: 3rem;\n}\n\n.usa-input-grid-medium select {\n margin-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-input-grid-large {\n float: left;\n width: 100%;\n }\n}\n\n.usa-input-grid-large input {\n margin-bottom: 3rem;\n}\n\n.usa-input-grid-large select {\n margin-bottom: 3rem;\n}\n\n.usa-additional_text {\n font-weight: normal;\n}\n\n.usa-checklist {\n list-style: none;\n margin-left: 0;\n padding-left: 0;\n}\n\n.usa-checklist li {\n display: inline-block;\n list-style: none;\n margin-bottom: 0;\n margin-top: 0;\n padding-left: 3em;\n text-indent: -2em;\n}\n\n.usa-checklist li::before {\n content: ' ';\n display: inline-block;\n height: .8em;\n margin-right: .2em;\n width: 1.8em;\n}\n\n.usa-checklist-checked::before {\n background-image: url(\"../img/correct9.png\");\n background-image: url(\"../img/correct9.svg\");\n background-position: 100%;\n background-repeat: no-repeat;\n background-size: 100%;\n}\n\n.usa-graphic_list .usa-graphic_list-row .usa-media_block {\n margin-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-graphic_list .usa-graphic_list-row .usa-media_block {\n margin-bottom: 6rem;\n }\n}\n\n@media screen and (min-width: 600px) {\n .usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block {\n margin-bottom: 0;\n }\n}\n\n.usa-graphic_list .usa-graphic_list-row:last-child .usa-media_block:last-child {\n margin-bottom: 0;\n}\n\n.usa-graphic_list .usa-media_block-img {\n margin-right: 3rem;\n}\n\n.usa-graphic_list .usa-media_block-body > :first-child {\n margin-top: 0;\n}\n\n.usa-header {\n width: 100%;\n z-index: 7000;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header {\n border-bottom: 1px solid #d6d7d9;\n }\n}\n\n.usa-header a {\n border-bottom: none;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header .usa-search {\n float: right;\n max-width: 21.5rem;\n }\n}\n\n.usa-logo {\n float: left;\n line-height: 4rem;\n margin-left: 1.5rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-logo {\n line-height: 7.5rem;\n margin-left: 0;\n }\n}\n\n.usa-logo a {\n color: #212121;\n text-decoration: none;\n}\n\n.usa-logo br {\n display: none;\n}\n\n@media screen and (min-width: 951px) {\n .usa-logo br {\n display: block;\n }\n}\n\n.usa-logo-text {\n display: block;\n font-size: 1.5rem;\n font-style: normal;\n font-weight: 700;\n margin: 0;\n}\n\n@media screen and (min-width: 951px) {\n .usa-logo-text {\n display: block;\n font-size: 2.4rem;\n line-height: 1.3;\n }\n}\n\n.usa-menu-btn {\n /* stylelint-disable declaration-block-no-ignored-properties */\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n background-color: #0071bc;\n color: #ffffff;\n display: inline;\n float: right;\n font-size: 1.3rem;\n height: 4rem;\n line-height: 4rem;\n text-align: center;\n text-decoration: none;\n text-transform: uppercase;\n width: 5.8rem;\n /* stylelint-enable */\n}\n\n.usa-menu-btn:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-menu-btn {\n display: none;\n }\n}\n\n.usa-menu-btn:hover {\n color: #ffffff;\n background-color: #205493;\n}\n\n.usa-menu-btn:visited {\n color: #ffffff;\n}\n\n.usa-overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: #000000;\n opacity: 0;\n transition: all 0.2s ease-in-out;\n visibility: hidden;\n z-index: 8000;\n}\n\n.usa-overlay.is-visible {\n opacity: 0.1;\n visibility: visible;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic .usa-logo {\n bottom: 0;\n position: absolute;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic .usa-navbar {\n position: relative;\n width: 18%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-header {\n border-bottom: none;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-logo {\n margin-top: 3rem;\n margin-bottom: 3rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended em {\n font-size: 3.2rem;\n line-height: 1;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-navbar {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 3rem;\n padding-left: 3rem;\n display: block;\n height: auto;\n max-width: 1040px;\n }\n .usa-header-extended .usa-navbar::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav {\n border-top: 1px solid #d6d7d9;\n float: none;\n padding: 0;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-inner {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 3rem;\n padding-left: 1.5rem;\n margin-top: -1px;\n max-width: 1040px;\n position: relative;\n }\n .usa-header-extended .usa-nav-inner::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-primary::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n.usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {\n /* stylelint-disable-line selector-no-qualifying-type */\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-primary button[aria-expanded=false], .usa-header-extended .usa-nav-primary button[aria-expanded=true] {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-position: right 1.5rem top 53%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-link {\n padding-top: 1.8rem;\n padding-bottom: 1.8rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-submenu .usa-grid-full {\n padding-left: 1.2rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-megamenu {\n padding-left: 3rem;\n }\n}\n\n.usa-hero {\n padding-top: 3rem;\n padding-bottom: 3rem;\n background-image: url(\"../img/hero.png\");\n background-position: center;\n background-size: cover;\n}\n\n.usa-hero .usa-button {\n color: #ffffff;\n}\n\n.usa-section-dark .usa-hero-link {\n color: #02bfe7;\n}\n\n.usa-hero-callout {\n background-color: #112e51;\n padding: 3rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-hero-callout {\n max-width: 30rem;\n }\n}\n\n.usa-hero-callout > *:first-child {\n margin-top: 0;\n margin-bottom: 2rem;\n}\n\n.usa-hero-callout-alt {\n color: #ffffff;\n display: block;\n}\n\n.usa-layout-docs {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n@media screen and (min-width: 1201px) {\n .usa-layout-docs {\n display: inherit;\n }\n}\n\n.usa-layout-docs .usa-grid > :first-child:not(.usa-width-*) {\n margin-top: 0;\n}\n\n.usa-layout-docs .usa-grid > :last-child:not(.usa-width-*) {\n margin-bottom: 0;\n}\n\n.usa-layout-docs-sidenav {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n\n.usa-layout-docs-main_content {\n margin-bottom: 3rem;\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n\n@media screen and (min-width: 1201px) {\n .usa-layout-docs-main_content {\n margin-bottom: 0;\n }\n}\n\n.usa-layout-docs-main_content > :first-child {\n margin-top: 0;\n}\n\n.usa-media_block-img {\n float: left;\n margin-right: 1rem;\n}\n\n.usa-media_block-body {\n overflow: hidden;\n}\n\n.usa-navbar {\n border-bottom: 1px solid #aeb0b5;\n height: 4rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-navbar {\n border-bottom: none;\n display: inline-block;\n height: 7.8rem;\n }\n}\n\n.usa-nav-link {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-link:hover span {\n border-bottom: 0.4rem solid #0071bc;\n padding-bottom: 0.6rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-link.usa-accordion-button span {\n margin-right: 0;\n padding-right: 1.5rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-container {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-right: 3rem;\n padding-left: 3rem;\n max-width: 1040px;\n }\n .usa-nav-container::after {\n clear: both;\n content: \"\";\n display: block;\n }\n}\n\n.usa-nav {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: auto;\n background: #ffffff;\n border-left: 1px solid #aeb0b5;\n border-right: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n overflow-y: auto;\n padding: 2rem;\n -webkit-transform: translateX(26rem);\n -ms-transform: translateX(26rem);\n transform: translateX(26rem);\n width: 26rem;\n z-index: 9000;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav {\n padding-top: 4.5rem;\n padding-right: 0;\n padding-bottom: 0;\n border-left: none;\n display: block;\n float: right;\n overflow-y: visible;\n position: relative;\n -webkit-transform: translateX(0);\n -ms-transform: translateX(0);\n transform: translateX(0);\n width: auto;\n }\n}\n\n.usa-nav.is-visible {\n -webkit-transform: translateX(0);\n -ms-transform: translateX(0);\n transform: translateX(0);\n transition: all 0.3s ease-in-out;\n}\n\n.usa-nav nav {\n margin-top: 6rem;\n min-height: 100%;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav nav {\n margin-top: 0;\n }\n}\n\n.usa-nav .usa-current {\n border-left: 4px solid #0071bc;\n color: #0071bc;\n font-weight: 700;\n padding-left: 1.4rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav .usa-current {\n color: #212121;\n }\n}\n\n.usa-nav .usa-button {\n width: 100%;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav .usa-search {\n margin-left: 1.5rem;\n top: 4px;\n }\n}\n\n.usa-nav-primary {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n margin-top: 1.5rem;\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n\n.usa-nav-primary > li {\n margin-bottom: 0;\n}\n\n.usa-nav-primary > li {\n background-color: transparent;\n border-top: 1px solid #5b616b;\n font-size: 1.7rem;\n}\n\n.usa-nav-primary > li:first-child {\n border-top: none;\n}\n\n.usa-nav-primary a {\n border: none;\n color: #212121;\n display: block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n line-height: 1.3;\n padding: 0.85rem 1rem 0.85rem 1.8rem;\n text-decoration: none;\n}\n\n.usa-nav-primary a:hover {\n background-color: #f1f1f1;\n color: #0071bc;\n text-decoration: none;\n}\n\n.usa-nav-primary a:focus {\n outline-offset: 0;\n position: relative;\n z-index: 1;\n}\n\n.usa-nav-primary a.usa-current {\n /* stylelint-disable-line selector-no-qualifying-type */\n border-left: 0.4rem solid #0071bc;\n color: #0071bc;\n font-weight: 700;\n padding-left: 1.4rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary {\n display: inline;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary li {\n border-top: none;\n }\n}\n\n.usa-nav-primary > li {\n width: auto;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary > li {\n display: inline-block;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary > li > a {\n padding: 1.3rem 1.5rem 2.2rem;\n color: #5b616b;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary > li > a:hover {\n background-color: transparent;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary a {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n }\n}\n\n.usa-nav-primary button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n font-weight: 400;\n line-height: 1.3;\n padding: 0.85rem 1.5rem 0.85rem 1.8rem;\n}\n\n.usa-nav-primary button:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button {\n padding: 1.3rem 1.5rem 2.2rem;\n color: #5b616b;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n width: initial;\n }\n}\n\n.usa-nav-primary button:focus, .usa-nav-primary button:active {\n box-shadow: 2px dotted #aeb0b5;\n}\n\n.usa-nav-primary button:hover {\n background-color: #f1f1f1;\n color: #0071bc;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button:hover {\n background-color: transparent;\n }\n}\n\n.usa-nav-primary button[aria-expanded=false] {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-image: url(\"../img/plus-alt.png\");\n background-image: url(\"../img/plus-alt.svg\");\n background-repeat: no-repeat;\n background-position: right 0 center;\n background-size: 1rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button[aria-expanded=false] {\n background-image: url(\"../img/angle-arrow-down.png\");\n background-image: url(\"../img/angle-arrow-down.svg\");\n background-position: right 1.5rem top 40%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button[aria-expanded=false]:hover {\n background-image: url(\"../img/angle-arrow-down-primary.png\");\n background-image: url(\"../img/angle-arrow-down-primary.svg\");\n }\n}\n\n.usa-nav-primary button[aria-expanded=true] {\n /* stylelint-disable-line selector-no-qualifying-type */\n background-image: url(\"../img/minus-alt.png\");\n background-image: url(\"../img/minus-alt.svg\");\n background-repeat: no-repeat;\n background-position: right 0 center;\n background-size: 1rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary button[aria-expanded=true] {\n background-color: #112e51;\n color: #ffffff;\n background-image: url(\"../img/angle-arrow-down-hover.png\");\n background-image: url(\"../img/angle-arrow-down-hover.svg\");\n background-position: right 1.5rem top 40%;\n }\n .usa-nav-primary button[aria-expanded=true]:hover {\n background-color: #112e51;\n }\n .usa-nav-primary button[aria-expanded=true] span {\n border-bottom: 0.4rem solid #0071bc;\n padding-bottom: 0.6rem;\n color: #ffffff;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-primary a.usa-current,\n .usa-nav-primary .usa-current {\n border-left: 0;\n padding-left: 1.5rem;\n }\n .usa-nav-primary a.usa-current:hover span,\n .usa-nav-primary .usa-current:hover span {\n color: #0071bc;\n }\n .usa-nav-primary a.usa-current span,\n .usa-nav-primary .usa-current span {\n border-bottom: 0.4rem solid #0071bc;\n padding-bottom: 0.6rem;\n color: #212121;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-link:hover span {\n border-bottom: 0.7rem solid #0071bc;\n padding-bottom: 0.9rem;\n }\n}\n\n.usa-header-extended .usa-nav-primary button[aria-expanded=true] {\n /* stylelint-disable-line selector-no-qualifying-type */\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-primary button[aria-expanded=true] span {\n border-bottom: 0.7rem solid #0071bc;\n padding-bottom: 0.9rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-extended .usa-nav-primary .usa-current span {\n border-bottom: 0.7rem solid #0071bc;\n padding-bottom: 0.9rem;\n }\n}\n\n.usa-nav-secondary {\n margin-top: 1.5rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary {\n margin-top: 0;\n position: absolute;\n right: 3rem;\n top: -5.7rem;\n }\n}\n\n.usa-nav-secondary .usa-search {\n margin-top: 1.5rem;\n margin-bottom: 0;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary .usa-search {\n margin-top: -0.9rem;\n margin-bottom: 0;\n margin-left: 0;\n float: left;\n }\n}\n\n.usa-nav-secondary-links {\n margin-top: 2.4rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links {\n float: left;\n margin-top: 0;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links li {\n display: inline;\n padding-left: 0.5rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links li:not(:last-child)::after {\n color: #d6d7d9;\n content: '|';\n padding-left: 0.5rem;\n }\n}\n\n.usa-nav-secondary-links a,\n.usa-nav-secondary-links .usa-header-search-button {\n color: #5b616b;\n display: inline-block;\n font-size: 1.5rem;\n text-decoration: none;\n}\n\n.usa-nav-secondary-links a:hover,\n.usa-nav-secondary-links .usa-header-search-button:hover {\n color: #0071bc;\n text-decoration: underline;\n}\n\n.usa-nav-secondary-links .usa-header-search-button {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n display: none;\n}\n\n.usa-nav-secondary-links .usa-header-search-button:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links .usa-header-search-button {\n background-image: url(\"../img/search-alt.png\");\n background-image: url(\"../img/search-alt.svg\");\n background-repeat: no-repeat;\n background-position: left center;\n background-size: 2.2rem;\n display: inline-block;\n padding-left: 2.3rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links .usa-header-search-button.is-hidden {\n display: none;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-secondary-links a.usa-current {\n border-left: 0;\n padding-left: 0;\n }\n}\n\n.usa-nav-submenu {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n margin: 0;\n width: 100%;\n}\n\n.usa-nav-submenu > li {\n margin-bottom: 0;\n}\n\n.usa-nav-submenu li {\n border: none;\n font-size: 1.5rem;\n}\n\n.usa-nav-submenu a {\n padding-left: 2.8rem;\n line-height: 1.3;\n}\n\n.usa-nav-submenu a:hover, .usa-nav-submenu a.usa-current {\n /* stylelint-disable-line selector-no-qualifying-type */\n border: none;\n padding-left: 2.8rem;\n}\n\n.usa-nav-submenu .usa-sidenav-sub_list a {\n padding-left: 3.8rem;\n}\n\n.usa-nav-submenu .usa-sidenav-sub_list a:focus {\n outline-offset: 0;\n}\n\n.usa-nav-submenu .usa-sidenav-sub_list a:hover {\n padding-left: 3.8rem;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-submenu {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n padding-top: 0.75rem;\n padding-bottom: 0.9rem;\n background-color: #112e51;\n width: 21.5rem;\n position: absolute;\n }\n .usa-nav-submenu > li {\n margin-bottom: 0;\n }\n}\n\n.usa-nav-submenu[aria-hidden=true] {\n display: none;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-submenu a {\n color: #ffffff;\n padding-left: 1.5rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-submenu a:hover {\n background-color: #112e51;\n color: #ffffff;\n padding-left: 1.5rem;\n text-decoration: underline;\n }\n}\n\n.usa-nav-submenu li {\n font-size: 1.5rem;\n margin-bottom: 0;\n}\n\n.usa-nav-close {\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-weight: 400;\n margin: 0;\n padding: 0;\n text-align: left;\n -webkit-font-smoothing: auto;\n margin: -1.2rem -1.5rem 1.5rem auto;\n float: right;\n height: 4.4rem;\n text-align: center;\n width: 4.4rem;\n}\n\n.usa-nav-close:hover {\n background-color: transparent;\n}\n\n@media screen and (min-width: 951px) {\n .usa-nav-close {\n display: none;\n }\n}\n\n.usa-nav-close img {\n width: 1.3rem;\n}\n\n.usa-nav-close + * {\n clear: both;\n}\n\n.usa-mobile_nav-active {\n overflow: hidden;\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu {\n padding-top: 3.15rem;\n padding-bottom: 3.15rem;\n left: -1rem;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu::before {\n background-color: #112e51;\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n top: 0;\n width: 1000%;\n right: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu::after {\n background-color: #112e51;\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n top: 0;\n width: 1000%;\n left: 100%;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic-megamenu .usa-nav {\n padding-left: 0;\n padding-top: 0;\n width: 100%;\n }\n}\n\n.usa-header-basic-megamenu .usa-nav-inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic-megamenu .usa-nav-inner {\n display: block;\n float: right;\n margin-top: -3.8rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-header-basic-megamenu .usa-nav-submenu .usa-grid-full {\n margin-left: -1.8rem;\n }\n}\n\n@media screen and (min-width: 951px) {\n .usa-megamenu-col {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-megamenu-col:last-child {\n margin-right: 0;\n }\n .usa-megamenu-col:nth-child(2n) {\n float: left;\n display: block;\n margin-right: 2.35765%;\n width: 23.23176%;\n }\n .usa-megamenu-col:nth-child(2n):last-child {\n margin-right: 0;\n }\n .usa-megamenu-col:nth-child(4n) {\n margin-right: 0;\n }\n}\n\n.usa-megamenu-col > ul {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n}\n\n.usa-megamenu-col > ul > li {\n margin-bottom: 0;\n}\n\n.usa-search {\n max-width: none;\n position: relative;\n}\n\n.usa-search::after {\n clear: both;\n content: \"\";\n display: block;\n}\n\n.usa-search [type=submit],\n.usa-search .usa-search-submit {\n background-image: url(\"../img/search.png\");\n background-image: url(\"../img/search.svg\");\n background-position: 50%;\n background-repeat: no-repeat;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n height: 3.3rem;\n margin: 0;\n padding: 0;\n width: 4.5rem;\n}\n\n@media screen and (min-width: 481px) {\n .usa-search [type=submit],\n .usa-search .usa-search-submit {\n background-image: none;\n width: 8.5rem;\n }\n}\n\n@media screen and (min-width: 481px) {\n .usa-search.usa-search-big [type=search],\n .usa-search.usa-search-big .usa-search-input {\n font-size: 1.7rem;\n height: 4.4rem;\n width: calc(100% - 11.6rem);\n }\n .usa-search.usa-search-big [type=submit],\n .usa-search.usa-search-big .usa-search-submit {\n font-size: 2rem;\n height: 4.4rem;\n width: 11.6rem;\n }\n}\n\n@media screen and (min-width: 481px) {\n .usa-search.usa-search-small [type=search],\n .usa-search.usa-search-small .usa-search-input {\n width: calc(100% - 4.5rem);\n }\n .usa-search.usa-search-small [type=submit],\n .usa-search.usa-search-small .usa-search-submit {\n background-image: url(\"../img/search.png\");\n background-image: url(\"../img/search.svg\");\n background-position: 50%;\n background-repeat: no-repeat;\n width: 4.5rem;\n }\n}\n\n@media screen and (max-width: 950px) {\n .usa-search.usa-search-small.usa-sr-only {\n left: auto;\n position: relative;\n }\n}\n\ninput[type=search] {\n /* stylelint-disable-line selector-no-qualifying-type */\n box-sizing: border-box;\n -webkit-appearance: none;\n}\n\n[type=search],\n.usa-search-input {\n padding-top: 0;\n padding-bottom: 0;\n border-bottom-right-radius: 0;\n border-right: none;\n border-top-right-radius: 0;\n box-sizing: border-box;\n float: left;\n font-size: 1.4rem;\n height: 3.3rem;\n margin: 0;\n width: calc(100% - 4.5rem);\n}\n\n@media screen and (min-width: 481px) {\n [type=search],\n .usa-search-input {\n width: calc(100% - 8.5rem);\n }\n}\n\n.usa-search-submit-text {\n position: absolute;\n left: -999em;\n}\n\n@media screen and (min-width: 481px) {\n .usa-search-submit-text {\n position: static;\n }\n}\n\n.usa-section {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n@media screen and (min-width: 600px) {\n .usa-section {\n padding-top: 6rem;\n padding-bottom: 6rem;\n }\n}\n\n.usa-section-light {\n background-color: #f1f1f1;\n}\n\n.usa-section-dark {\n background-color: #112e51;\n color: #ffffff;\n}\n\n.usa-section-dark h1,\n.usa-section-dark h2,\n.usa-section-dark h3,\n.usa-section-dark h4,\n.usa-section-dark h5,\n.usa-section-dark h6 {\n color: #02bfe7;\n}\n\n.usa-section-dark p {\n color: #ffffff;\n}\n\n.usa-section-dark a {\n color: #d6d7d9;\n}\n\n.usa-section-dark a:hover {\n color: #ffffff;\n}\n\n.usa-sidenav-list {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n}\n\n.usa-sidenav-list > li {\n margin-bottom: 0;\n}\n\n.usa-sidenav-list > li {\n background-color: transparent;\n border-top: 1px solid #5b616b;\n font-size: 1.7rem;\n}\n\n.usa-sidenav-list > li:first-child {\n border-top: none;\n}\n\n.usa-sidenav-list a {\n border: none;\n color: #212121;\n display: block;\n font-family: \"Source Sans Pro\", \"Helvetica Neue\", \"Helvetica\", \"Roboto\", \"Arial\", sans-serif;\n line-height: 1.3;\n padding: 0.85rem 1rem 0.85rem 1.8rem;\n text-decoration: none;\n}\n\n.usa-sidenav-list a:hover {\n background-color: #f1f1f1;\n color: #0071bc;\n text-decoration: none;\n}\n\n.usa-sidenav-list a:focus {\n outline-offset: 0;\n position: relative;\n z-index: 1;\n}\n\n.usa-sidenav-list a.usa-current {\n /* stylelint-disable-line selector-no-qualifying-type */\n border-left: 0.4rem solid #0071bc;\n color: #0071bc;\n font-weight: 700;\n padding-left: 1.4rem;\n}\n\n.usa-sidenav-sub_list {\n margin-top: 0;\n margin-bottom: 0;\n list-style-type: none;\n padding-left: 0;\n margin: 0;\n width: 100%;\n}\n\n.usa-sidenav-sub_list > li {\n margin-bottom: 0;\n}\n\n.usa-sidenav-sub_list li {\n border: none;\n font-size: 1.5rem;\n}\n\n.usa-sidenav-sub_list a {\n padding-left: 2.8rem;\n line-height: 1.3;\n}\n\n.usa-sidenav-sub_list a:hover, .usa-sidenav-sub_list a.usa-current {\n /* stylelint-disable-line selector-no-qualifying-type */\n border: none;\n padding-left: 2.8rem;\n}\n\n.usa-sidenav-sub_list .usa-sidenav-sub_list a {\n padding-left: 3.8rem;\n}\n\n.usa-sidenav-sub_list .usa-sidenav-sub_list a:focus {\n outline-offset: 0;\n}\n\n.usa-sidenav-sub_list .usa-sidenav-sub_list a:hover {\n padding-left: 3.8rem;\n}\n\n.usa-skipnav {\n background: transparent;\n color: #212121;\n left: 0;\n padding: 1rem 1.5rem;\n position: absolute;\n top: -4.2rem;\n transition: all 0.2s ease-in-out;\n z-index: 100;\n}\n\n.usa-skipnav:focus {\n background: #ffffff;\n left: 0;\n outline: 0;\n position: absolute;\n top: 0;\n transition: all 0.2s ease-in-out;\n}\n"]}
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 14"><g fill="#323a45" fill-rule="evenodd"><path d="M.62639628 5.99993896H9.3727389c.25339173.00130856.482416-.15074264.57956202-.38477624.09714598-.2340336.04312294-.50357616-.13670922-.6820964L5.4401815.1835435C5.32475606.06613116 5.1670083 0 5.00236114 0c-.16464716 0-.3223949.06613117-.43782037.1835435L.1835435 4.93306632C.06613116 5.0484918 0 5.20623953 0 5.3708867s.06613117.32239492.1835435.43782038c.1146444.1224934.27508006.19177244.44285278.19123188zM9.3727389 7.9999685H.6263963c-.1662653-.00316183-.32647608.06237894-.4428528.18116705C.0661312 8.296561 0 8.45430875 0 8.61895592s.06613117.32239492.1835435.43782037l4.38099726 4.7596802C4.67996622 13.9338688 4.83771396 14 5.00236113 14s.32239492-.0661312.43782038-.1835435l4.3754102-4.74961537c.17983216-.17852023.2338552-.44806278.13670922-.68209638-.09714602-.2340336-.3261703-.3860848-.579562-.38477625z"/></g></svg>
Binary file
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="15px" height="15px" viewBox="0 0 15 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+ <title>UI element / Icons / Close</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="UI-components" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="Headers---Mobile" transform="translate(-298.000000, -362.000000)" fill="#0071BB">
9
+ <g id="Header---Mobile---Collapse" transform="translate(0.000000, 279.000000)">
10
+ <g id="UI-element-/-Icons-/-Close" transform="translate(298.000000, 83.000000)">
11
+ <path d="M14.6467778,11.2126037 C14.8818403,11.4476661 15,11.7342663 15,12.0711472 C15,12.4080282 14.8818403,12.6946283 14.6467778,12.9296908 L12.9296908,14.6467778 C12.6933713,14.8830973 12.4067711,15.001257 12.0698902,15.001257 C11.7342663,15.001257 11.4476661,14.8830973 11.2126037,14.6467778 L7.49937149,10.9348026 L3.7873963,14.6467778 C3.55233386,14.8830973 3.26573368,15.001257 2.92885276,15.001257 C2.59197184,15.001257 2.30662868,14.8830973 2.07030923,14.6467778 L0.353222157,12.9296908 C0.116902707,12.6946283 0,12.4080282 0,12.0711472 C0,11.7342663 0.116902707,11.4476661 0.353222157,11.2126037 L4.06519735,7.50062851 L0.353222157,3.78865331 C0.116902707,3.55233386 0,3.2669907 0,2.92885276 C0,2.59322886 0.116902707,2.30662868 0.353222157,2.07156624 L2.07030923,0.353222157 C2.30662868,0.118159725 2.59197184,0 2.92885276,0 C3.26573368,0 3.55233386,0.118159725 3.7873963,0.353222157 L7.49937149,4.06519735 L11.2126037,0.353222157 C11.4476661,0.118159725 11.7342663,0 12.0698902,0 C12.4067711,0 12.6933713,0.118159725 12.9296908,0.353222157 L14.6467778,2.07156624 C14.8818403,2.30662868 15,2.59322886 15,2.92885276 C15,3.2669907 14.8818403,3.55233386 14.6467778,3.78865331 L10.9348026,7.50062851 L14.6467778,11.2126037 Z" id="Fill-15-Copy"></path>
12
+ </g>
13
+ </g>
14
+ </g>
15
+ </g>
16
+ </svg>
Binary file
@@ -1 +1,12 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 339.177 339.177"><path d="M247.244 169.59l83.938-83.938c5.332-5.327 7.994-11.798 7.994-19.414 0-7.614-2.67-14.084-7.994-19.414l-38.827-38.83c-5.33-5.33-11.8-7.994-19.41-7.994-7.618 0-14.086 2.665-19.418 7.993L169.59 91.93 85.65 7.994C80.326 2.665 73.855 0 66.238 0c-7.61 0-14.083 2.665-19.414 7.993l-38.83 38.83C2.668 52.15 0 58.624 0 66.24c0 7.616 2.664 14.084 7.994 19.414L91.93 169.59 7.995 253.528C2.667 258.858 0 265.328 0 272.945c0 7.61 2.664 14.082 7.994 19.41l38.83 38.828c5.33 5.332 11.803 7.994 19.414 7.994 7.616 0 14.084-2.67 19.414-7.994l83.94-83.938 83.943 83.938c5.328 5.332 11.793 7.994 19.417 7.994 7.61 0 14.082-2.67 19.41-7.994l38.82-38.828c5.333-5.324 7.995-11.8 7.995-19.41 0-7.618-2.662-14.086-7.994-19.417l-83.94-83.938z" fill="#5b616b"/></svg>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="15px" height="15px" viewBox="0 0 15 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+ <title>Fill 15 Copy</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="UI-element-/-Icons-/-Close" fill="#5B616B">
9
+ <path d="M14.6467778,11.2126037 C14.8818403,11.4476661 15,11.7342663 15,12.0711472 C15,12.4080282 14.8818403,12.6946283 14.6467778,12.9296908 L12.9296908,14.6467778 C12.6933713,14.8830973 12.4067711,15.001257 12.0698902,15.001257 C11.7342663,15.001257 11.4476661,14.8830973 11.2126037,14.6467778 L7.49937149,10.9348026 L3.7873963,14.6467778 C3.55233386,14.8830973 3.26573368,15.001257 2.92885276,15.001257 C2.59197184,15.001257 2.30662868,14.8830973 2.07030923,14.6467778 L0.353222157,12.9296908 C0.116902707,12.6946283 0,12.4080282 0,12.0711472 C0,11.7342663 0.116902707,11.4476661 0.353222157,11.2126037 L4.06519735,7.50062851 L0.353222157,3.78865331 C0.116902707,3.55233386 0,3.2669907 0,2.92885276 C0,2.59322886 0.116902707,2.30662868 0.353222157,2.07156624 L2.07030923,0.353222157 C2.30662868,0.118159725 2.59197184,0 2.92885276,0 C3.26573368,0 3.55233386,0.118159725 3.7873963,0.353222157 L7.49937149,4.06519735 L11.2126037,0.353222157 C11.4476661,0.118159725 11.7342663,0 12.0698902,0 C12.4067711,0 12.6933713,0.118159725 12.9296908,0.353222157 L14.6467778,2.07156624 C14.8818403,2.30662868 15,2.59322886 15,2.92885276 C15,3.2669907 14.8818403,3.55233386 14.6467778,3.78865331 L10.9348026,7.50062851 L14.6467778,11.2126037 Z" id="Fill-15-Copy"></path>
10
+ </g>
11
+ </g>
12
+ </svg>
Binary file
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="15px" height="15px" viewBox="0 0 15 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+ <title>Fill 200 Copy</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="UI-element-/-Icons-/-Search---blue" fill="#0071BC">
9
+ <path d="M9.19897377,9.19897377 C9.9895477,8.40935006 10.3848347,7.4581908 10.3848347,6.34644622 C10.3848347,5.23470163 9.9895477,4.28354238 9.19897377,3.49296845 C8.40935006,2.70334474 7.4581908,2.30805777 6.34644622,2.30805777 C5.23470163,2.30805777 4.28354238,2.70334474 3.49296845,3.49296845 C2.70334474,4.28354238 2.30805777,5.23470163 2.30805777,6.34644622 C2.30805777,7.4581908 2.70334474,8.40935006 3.49296845,9.19897377 C4.28354238,9.9895477 5.23470163,10.3848347 6.34644622,10.3848347 C7.4581908,10.3848347 8.40935006,9.9895477 9.19897377,9.19897377 L9.19897377,9.19897377 Z M14.6664766,13.0349677 C14.8888255,13.2573166 15,13.5281262 15,13.8464462 C15,14.159065 14.8859749,14.4289244 14.6569745,14.6569745 C14.4289244,14.8850247 14.159065,14.9990498 13.8464462,14.9990498 C13.5214747,14.9990498 13.2516154,14.8850247 13.0349677,14.6569745 L9.94298746,11.5744964 C8.86735082,12.3194603 7.66913721,12.6919422 6.34644622,12.6919422 C5.48745724,12.6919422 4.66552642,12.5256556 3.88065374,12.1911821 C3.09673128,11.8586089 2.42018244,11.4072596 1.85290764,10.8399848 C1.28468263,10.2717598 0.834283542,9.59616116 0.500760167,8.81128848 C0.167236792,8.02736602 0,7.2054352 0,6.34644622 C0,5.48745724 0.167236792,4.66552642 0.500760167,3.88065374 C0.834283542,3.09673128 1.28468263,2.42018244 1.85290764,1.85290764 C2.42018244,1.28468263 3.09673128,0.833333333 3.88065374,0.500760167 C4.66552642,0.166286583 5.48745724,0 6.34644622,0 C7.2054352,0 8.02831623,0.166286583 8.81223869,0.500760167 C9.59616116,0.833333333 10.2717598,1.28468263 10.8399848,1.85290764 C11.4072596,2.42018244 11.8586089,3.09673128 12.1921323,3.88065374 C12.5256556,4.66552642 12.6928924,5.48745724 12.6928924,6.34644622 C12.6928924,7.668187 12.3194603,8.86640061 11.5744964,9.94298746 L14.6664766,13.0349677 Z" id="Fill-200-Copy"></path>
10
+ </g>
11
+ </g>
12
+ </svg>
@@ -1297,7 +1297,6 @@ var accordion = require('./accordion');
1297
1297
  var CLICK = require('../events').CLICK;
1298
1298
  var PREFIX = require('../config').prefix;
1299
1299
 
1300
- var CONTEXT = 'header';
1301
1300
  var NAV = '.' + PREFIX + '-nav';
1302
1301
  var NAV_LINKS = NAV + ' a';
1303
1302
  var OPENERS = '.' + PREFIX + '-menu-btn';
@@ -1309,27 +1308,52 @@ var TOGGLES = [NAV, OVERLAY].join(', ');
1309
1308
  var ACTIVE_CLASS = 'usa-mobile_nav-active';
1310
1309
  var VISIBLE_CLASS = 'is-visible';
1311
1310
 
1311
+ var isActive = function isActive() {
1312
+ return document.body.classList.contains(ACTIVE_CLASS);
1313
+ };
1314
+
1312
1315
  var toggleNav = function toggleNav(active) {
1313
1316
  var body = document.body;
1314
1317
  if (typeof active !== 'boolean') {
1315
- active = !body.classList.contains(ACTIVE_CLASS);
1318
+ active = !isActive();
1316
1319
  }
1317
1320
  body.classList.toggle(ACTIVE_CLASS, active);
1318
1321
 
1319
- var context = this.closest(CONTEXT);
1320
1322
  forEach(select(TOGGLES), function (el) {
1321
- el.classList.toggle(VISIBLE_CLASS);
1323
+ el.classList.toggle(VISIBLE_CLASS, active);
1322
1324
  });
1323
1325
 
1324
- if (active && context) {
1325
- var closeButton = context.querySelector(CLOSE_BUTTON);
1326
- if (closeButton) {
1327
- closeButton.focus();
1328
- }
1326
+ var closeButton = body.querySelector(CLOSE_BUTTON);
1327
+ var menuButton = body.querySelector(OPENERS);
1328
+
1329
+ if (active && closeButton) {
1330
+ // The mobile nav was just activated, so focus on the close button,
1331
+ // which is just before all the nav elements in the tab order.
1332
+ closeButton.focus();
1333
+ } else if (!active && document.activeElement === closeButton && menuButton) {
1334
+ // The mobile nav was just deactivated, and focus was on the close
1335
+ // button, which is no longer visible. We don't want the focus to
1336
+ // disappear into the void, so focus on the menu button if it's
1337
+ // visible (this may have been what the user was just focused on,
1338
+ // if they triggered the mobile nav by mistake).
1339
+ menuButton.focus();
1329
1340
  }
1341
+
1330
1342
  return active;
1331
1343
  };
1332
1344
 
1345
+ var resize = function resize() {
1346
+ var closer = document.body.querySelector(CLOSE_BUTTON);
1347
+
1348
+ if (isActive() && closer && closer.getBoundingClientRect().width === 0) {
1349
+ // The mobile nav is active, but the close box isn't visible, which
1350
+ // means the user's viewport has been resized so that it is no longer
1351
+ // in mobile mode. Let's make the page state consistent by
1352
+ // deactivating the mobile nav.
1353
+ toggleNav.call(closer, false);
1354
+ }
1355
+ };
1356
+
1333
1357
  var navigation = behavior(_defineProperty({}, CLICK, (_CLICK = {}, _defineProperty(_CLICK, OPENERS, toggleNav), _defineProperty(_CLICK, CLOSERS, toggleNav), _defineProperty(_CLICK, NAV_LINKS, function () {
1334
1358
  // A navigation link has been clicked! We want to collapse any
1335
1359
  // hierarchical navigation UI it's a part of, so that the user
@@ -1345,10 +1369,18 @@ var navigation = behavior(_defineProperty({}, CLICK, (_CLICK = {}, _defineProper
1345
1369
  }
1346
1370
 
1347
1371
  // If the mobile navigation menu is active, we want to hide it.
1348
- if (document.body.classList.contains(ACTIVE_CLASS)) {
1349
- toggleNav.call(this);
1372
+ if (isActive()) {
1373
+ toggleNav.call(this, false);
1374
+ }
1375
+ }), _CLICK)), {
1376
+ init: function init() {
1377
+ resize();
1378
+ window.addEventListener('resize', resize, false);
1379
+ },
1380
+ teardown: function teardown() {
1381
+ window.removeEventListener('resize', resize, false);
1350
1382
  }
1351
- }), _CLICK)));
1383
+ });
1352
1384
 
1353
1385
  /**
1354
1386
  * TODO for 2.0, remove this statement and export `navigation` directly:
@@ -1828,4 +1860,4 @@ module.exports = function validate(el) {
1828
1860
  };
1829
1861
 
1830
1862
  },{"../config":25,"elem-dataset":5}]},{},[29])
1831
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJub2RlX21vZHVsZXMvYXJyYXktZmlsdGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FycmF5LWZvcmVhY2gvaW5kZXguanMiLCJub2RlX21vZHVsZXMvY2xhc3NsaXN0LXBvbHlmaWxsL3NyYy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kb21yZWFkeS9yZWFkeS5qcyIsIm5vZGVfbW9kdWxlcy9lbGVtLWRhdGFzZXQvZGlzdC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9lbGVtZW50LWNsb3Nlc3QvZWxlbWVudC1jbG9zZXN0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC5kZWJvdW5jZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2JlaGF2aW9yL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2NvbXBvc2UvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvZGVsZWdhdGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvZGVsZWdhdGVBbGwvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvaWdub3JlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL29uY2UvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVzb2x2ZS1pZC1yZWZzL2luZGV4LmpzIiwic3JjL2pzL2NvbXBvbmVudHMvYWNjb3JkaW9uLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvYmFubmVyLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvZm9vdGVyLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvaW5kZXguanMiLCJzcmMvanMvY29tcG9uZW50cy9uYXZpZ2F0aW9uLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvcGFzc3dvcmQuanMiLCJzcmMvanMvY29tcG9uZW50cy9zZWFyY2guanMiLCJzcmMvanMvY29tcG9uZW50cy9za2lwbmF2LmpzIiwic3JjL2pzL2NvbXBvbmVudHMvdmFsaWRhdG9yLmpzIiwic3JjL2pzL2NvbmZpZy5qcyIsInNyYy9qcy9ldmVudHMuanMiLCJzcmMvanMvcG9seWZpbGxzL2VsZW1lbnQtaGlkZGVuLmpzIiwic3JjL2pzL3BvbHlmaWxscy9pbmRleC5qcyIsInNyYy9qcy9zdGFydC5qcyIsInNyYy9qcy91dGlscy9iZWhhdmlvci5qcyIsInNyYy9qcy91dGlscy9pcy1pbi12aWV3cG9ydC5qcyIsInNyYy9qcy91dGlscy9zZWxlY3QuanMiLCJzcmMvanMvdXRpbHMvdG9nZ2xlLWZpZWxkLW1hc2suanMiLCJzcmMvanMvdXRpbHMvdG9nZ2xlLWZvcm0taW5wdXQuanMiLCJzcmMvanMvdXRpbHMvdG9nZ2xlLmpzIiwic3JjL2pzL3V0aWxzL3ZhbGlkYXRlLWlucHV0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNDQTs7Ozs7Ozs7OztBQVVBLE9BQU8sT0FBUCxHQUFpQixVQUFVLEdBQVYsRUFBZSxFQUFmLEVBQW1CLElBQW5CLEVBQXlCO0FBQ3hDLE1BQUksSUFBSSxNQUFSLEVBQWdCLE9BQU8sSUFBSSxNQUFKLENBQVcsRUFBWCxFQUFlLElBQWYsQ0FBUDtBQUNoQixNQUFJLEtBQUssQ0FBTCxLQUFXLEdBQVgsSUFBa0IsU0FBUyxHQUEvQixFQUFvQyxNQUFNLElBQUksU0FBSixFQUFOO0FBQ3BDLE1BQUksY0FBYyxPQUFPLEVBQXpCLEVBQTZCLE1BQU0sSUFBSSxTQUFKLEVBQU47QUFDN0IsTUFBSSxNQUFNLEVBQVY7QUFDQSxPQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksSUFBSSxNQUF4QixFQUFnQyxHQUFoQyxFQUFxQztBQUNuQyxRQUFJLENBQUMsT0FBTyxJQUFQLENBQVksR0FBWixFQUFpQixDQUFqQixDQUFMLEVBQTBCO0FBQzFCLFFBQUksTUFBTSxJQUFJLENBQUosQ0FBVjtBQUNBLFFBQUksR0FBRyxJQUFILENBQVEsSUFBUixF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QixFQUF1QjtBQUN0QyxNQUFNLE9BQU8sUUFBUSxFQUFSLENBQWI7QUFDQSxNQUFNLEtBQUssS0FBSyxpQkFBaEI7QUFDQSxNQUFNLFlBQVksR0FBRyxNQUFILENBQVUsQ0FBVixNQUFpQixHQUFqQixHQUNkLFNBQVMsYUFBVCxDQUF1QixFQUF2QixDQURjLEdBRWQsU0FBUyxjQUFULENBQXdCLEVBQXhCLENBRko7O0FBSUEsTUFBSSxDQUFDLFNBQUwsRUFBZ0I7QUFDZCxVQUFNLElBQUksS0FBSiw0Q0FDcUMsRUFEckMsT0FBTjtBQUdEOztBQUVELE9BQUssSUFBTSxHQUFYLElBQWtCLElBQWxCLEVBQXdCO0FBQ3RCLFFBQUksSUFBSSxVQUFKLENBQWUsVUFBZixDQUFKLEVBQWdDO0FBQzlCLFVBQU0sZ0JBQWdCLElBQUksTUFBSixDQUFXLFdBQVcsTUFBdEIsRUFBOEIsV0FBOUIsRUFBdEI7QUFDQSxVQUFNLG1CQUFtQixJQUFJLE1BQUosQ0FBVyxLQUFNLEdBQU4sQ0FBWCxDQUF6QjtBQUNBLFVBQU0sMENBQXdDLGFBQXhDLE9BQU47QUFDQSxVQUFNLG9CQUFvQixVQUFVLGFBQVYsQ0FBd0IsaUJBQXhCLENBQTFCO0FBQ0EsVUFBSSxDQUFDLGlCQUFMLEVBQXdCO0FBQ3RCLGNBQU0sSUFBSSxLQUFKLHdDQUNpQyxhQURqQyxPQUFOO0FBR0Q7O0FBRUQsVUFBTSxVQUFVLGlCQUFpQixJQUFqQixDQUFzQixHQUFHLEtBQXpCLENBQWhCO0FBQ0Esd0JBQWtCLFNBQWxCLENBQTRCLE1BQTVCLENBQW1DLGFBQW5DLEVBQWtELE9BQWxEO0FBQ0Esd0JBQWtCLFlBQWxCLENBQStCLE9BQS9CLEVBQXdDLE9BQXhDO0FBQ0Q7QUFDRjtBQUNGLENBOUJEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIlxuLyoqXG4gKiBBcnJheSNmaWx0ZXIuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gYXJyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHBhcmFtIHtPYmplY3Q9fSBzZWxmXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqIEB0aHJvdyBUeXBlRXJyb3JcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcnIsIGZuLCBzZWxmKSB7XG4gIGlmIChhcnIuZmlsdGVyKSByZXR1cm4gYXJyLmZpbHRlcihmbiwgc2VsZik7XG4gIGlmICh2b2lkIDAgPT09IGFyciB8fCBudWxsID09PSBhcnIpIHRocm93IG5ldyBUeXBlRXJyb3I7XG4gIGlmICgnZnVuY3Rpb24nICE9IHR5cGVvZiBmbikgdGhyb3cgbmV3IFR5cGVFcnJvcjtcbiAgdmFyIHJldCA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIGlmICghaGFzT3duLmNhbGwoYXJyLCBpKSkgY29udGludWU7XG4gICAgdmFyIHZhbCA9IGFycltpXTtcbiAgICBpZiAoZm4uY2FsbChzZWxmLCB2YWwsIGksIGFycikpIHJldC5wdXNoKHZhbCk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn07XG5cbnZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuIiwiLyoqXG4gKiBhcnJheS1mb3JlYWNoXG4gKiAgIEFycmF5I2ZvckVhY2ggcG9ueWZpbGwgZm9yIG9sZGVyIGJyb3dzZXJzXG4gKiAgIChQb255ZmlsbDogQSBwb2x5ZmlsbCB0aGF0IGRvZXNuJ3Qgb3ZlcndyaXRlIHRoZSBuYXRpdmUgbWV0aG9kKVxuICogXG4gKiBodHRwczovL2dpdGh1Yi5jb20vdHdhZGEvYXJyYXktZm9yZWFjaFxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNS0yMDE2IFRha3V0byBXYWRhXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiAgIGh0dHBzOi8vZ2l0aHViLmNvbS90d2FkYS9hcnJheS1mb3JlYWNoL2Jsb2IvbWFzdGVyL01JVC1MSUNFTlNFXG4gKi9cbid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmb3JFYWNoIChhcnksIGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gICAgaWYgKGFyeS5mb3JFYWNoKSB7XG4gICAgICAgIGFyeS5mb3JFYWNoKGNhbGxiYWNrLCB0aGlzQXJnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyeS5sZW5ndGg7IGkrPTEpIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCBhcnlbaV0sIGksIGFyeSk7XG4gICAgfVxufTtcbiIsIi8qXG4gKiBjbGFzc0xpc3QuanM6IENyb3NzLWJyb3dzZXIgZnVsbCBlbGVtZW50LmNsYXNzTGlzdCBpbXBsZW1lbnRhdGlvbi5cbiAqIDEuMS4yMDE3MDQyN1xuICpcbiAqIEJ5IEVsaSBHcmV5LCBodHRwOi8vZWxpZ3JleS5jb21cbiAqIExpY2Vuc2U6IERlZGljYXRlZCB0byB0aGUgcHVibGljIGRvbWFpbi5cbiAqICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9lbGlncmV5L2NsYXNzTGlzdC5qcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kXG4gKi9cblxuLypnbG9iYWwgc2VsZiwgZG9jdW1lbnQsIERPTUV4Y2VwdGlvbiAqL1xuXG4vKiEgQHNvdXJjZSBodHRwOi8vcHVybC5lbGlncmV5LmNvbS9naXRodWIvY2xhc3NMaXN0LmpzL2Jsb2IvbWFzdGVyL2NsYXNzTGlzdC5qcyAqL1xuXG5pZiAoXCJkb2N1bWVudFwiIGluIHdpbmRvdy5zZWxmKSB7XG5cbi8vIEZ1bGwgcG9seWZpbGwgZm9yIGJyb3dzZXJzIHdpdGggbm8gY2xhc3NMaXN0IHN1cHBvcnRcbi8vIEluY2x1ZGluZyBJRSA8IEVkZ2UgbWlzc2luZyBTVkdFbGVtZW50LmNsYXNzTGlzdFxuaWYgKCEoXCJjbGFzc0xpc3RcIiBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiX1wiKSkgXG5cdHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyAmJiAhKFwiY2xhc3NMaXN0XCIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImdcIikpKSB7XG5cbihmdW5jdGlvbiAodmlldykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuaWYgKCEoJ0VsZW1lbnQnIGluIHZpZXcpKSByZXR1cm47XG5cbnZhclxuXHQgIGNsYXNzTGlzdFByb3AgPSBcImNsYXNzTGlzdFwiXG5cdCwgcHJvdG9Qcm9wID0gXCJwcm90b3R5cGVcIlxuXHQsIGVsZW1DdHJQcm90byA9IHZpZXcuRWxlbWVudFtwcm90b1Byb3BdXG5cdCwgb2JqQ3RyID0gT2JqZWN0XG5cdCwgc3RyVHJpbSA9IFN0cmluZ1twcm90b1Byb3BdLnRyaW0gfHwgZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB0aGlzLnJlcGxhY2UoL15cXHMrfFxccyskL2csIFwiXCIpO1xuXHR9XG5cdCwgYXJySW5kZXhPZiA9IEFycmF5W3Byb3RvUHJvcF0uaW5kZXhPZiB8fCBmdW5jdGlvbiAoaXRlbSkge1xuXHRcdHZhclxuXHRcdFx0ICBpID0gMFxuXHRcdFx0LCBsZW4gPSB0aGlzLmxlbmd0aFxuXHRcdDtcblx0XHRmb3IgKDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoaSBpbiB0aGlzICYmIHRoaXNbaV0gPT09IGl0ZW0pIHtcblx0XHRcdFx0cmV0dXJuIGk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiAtMTtcblx0fVxuXHQvLyBWZW5kb3JzOiBwbGVhc2UgYWxsb3cgY29udGVudCBjb2RlIHRvIGluc3RhbnRpYXRlIERPTUV4Y2VwdGlvbnNcblx0LCBET01FeCA9IGZ1bmN0aW9uICh0eXBlLCBtZXNzYWdlKSB7XG5cdFx0dGhpcy5uYW1lID0gdHlwZTtcblx0XHR0aGlzLmNvZGUgPSBET01FeGNlcHRpb25bdHlwZV07XG5cdFx0dGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcblx0fVxuXHQsIGNoZWNrVG9rZW5BbmRHZXRJbmRleCA9IGZ1bmN0aW9uIChjbGFzc0xpc3QsIHRva2VuKSB7XG5cdFx0aWYgKHRva2VuID09PSBcIlwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRE9NRXgoXG5cdFx0XHRcdCAgXCJTWU5UQVhfRVJSXCJcblx0XHRcdFx0LCBcIkFuIGludmFsaWQgb3IgaWxsZWdhbCBzdHJpbmcgd2FzIHNwZWNpZmllZFwiXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAoL1xccy8udGVzdCh0b2tlbikpIHtcblx0XHRcdHRocm93IG5ldyBET01FeChcblx0XHRcdFx0ICBcIklOVkFMSURfQ0hBUkFDVEVSX0VSUlwiXG5cdFx0XHRcdCwgXCJTdHJpbmcgY29udGFpbnMgYW4gaW52YWxpZCBjaGFyYWN0ZXJcIlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIGFyckluZGV4T2YuY2FsbChjbGFzc0xpc3QsIHRva2VuKTtcblx0fVxuXHQsIENsYXNzTGlzdCA9IGZ1bmN0aW9uIChlbGVtKSB7XG5cdFx0dmFyXG5cdFx0XHQgIHRyaW1tZWRDbGFzc2VzID0gc3RyVHJpbS5jYWxsKGVsZW0uZ2V0QXR0cmlidXRlKFwiY2xhc3NcIikgfHwgXCJcIilcblx0XHRcdCwgY2xhc3NlcyA9IHRyaW1tZWRDbGFzc2VzID8gdHJpbW1lZENsYXNzZXMuc3BsaXQoL1xccysvKSA6IFtdXG5cdFx0XHQsIGkgPSAwXG5cdFx0XHQsIGxlbiA9IGNsYXNzZXMubGVuZ3RoXG5cdFx0O1xuXHRcdGZvciAoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdHRoaXMucHVzaChjbGFzc2VzW2ldKTtcblx0XHR9XG5cdFx0dGhpcy5fdXBkYXRlQ2xhc3NOYW1lID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCB0aGlzLnRvU3RyaW5nKCkpO1xuXHRcdH07XG5cdH1cblx0LCBjbGFzc0xpc3RQcm90byA9IENsYXNzTGlzdFtwcm90b1Byb3BdID0gW11cblx0LCBjbGFzc0xpc3RHZXR0ZXIgPSBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIG5ldyBDbGFzc0xpc3QodGhpcyk7XG5cdH1cbjtcbi8vIE1vc3QgRE9NRXhjZXB0aW9uIGltcGxlbWVudGF0aW9ucyBkb24ndCBhbGxvdyBjYWxsaW5nIERPTUV4Y2VwdGlvbidzIHRvU3RyaW5nKClcbi8vIG9uIG5vbi1ET01FeGNlcHRpb25zLiBFcnJvcidzIHRvU3RyaW5nKCkgaXMgc3VmZmljaWVudCBoZXJlLlxuRE9NRXhbcHJvdG9Qcm9wXSA9IEVycm9yW3Byb3RvUHJvcF07XG5jbGFzc0xpc3RQcm90by5pdGVtID0gZnVuY3Rpb24gKGkpIHtcblx0cmV0dXJuIHRoaXNbaV0gfHwgbnVsbDtcbn07XG5jbGFzc0xpc3RQcm90by5jb250YWlucyA9IGZ1bmN0aW9uICh0b2tlbikge1xuXHR0b2tlbiArPSBcIlwiO1xuXHRyZXR1cm4gY2hlY2tUb2tlbkFuZEdldEluZGV4KHRoaXMsIHRva2VuKSAhPT0gLTE7XG59O1xuY2xhc3NMaXN0UHJvdG8uYWRkID0gZnVuY3Rpb24gKCkge1xuXHR2YXJcblx0XHQgIHRva2VucyA9IGFyZ3VtZW50c1xuXHRcdCwgaSA9IDBcblx0XHQsIGwgPSB0b2tlbnMubGVuZ3RoXG5cdFx0LCB0b2tlblxuXHRcdCwgdXBkYXRlZCA9IGZhbHNlXG5cdDtcblx0ZG8ge1xuXHRcdHRva2VuID0gdG9rZW5zW2ldICsgXCJcIjtcblx0XHRpZiAoY2hlY2tUb2tlbkFuZEdldEluZGV4KHRoaXMsIHRva2VuKSA9PT0gLTEpIHtcblx0XHRcdHRoaXMucHVzaCh0b2tlbik7XG5cdFx0XHR1cGRhdGVkID0gdHJ1ZTtcblx0XHR9XG5cdH1cblx0d2hpbGUgKCsraSA8IGwpO1xuXG5cdGlmICh1cGRhdGVkKSB7XG5cdFx0dGhpcy5fdXBkYXRlQ2xhc3NOYW1lKCk7XG5cdH1cbn07XG5jbGFzc0xpc3RQcm90by5yZW1vdmUgPSBmdW5jdGlvbiAoKSB7XG5cdHZhclxuXHRcdCAgdG9rZW5zID0gYXJndW1lbnRzXG5cdFx0LCBpID0gMFxuXHRcdCwgbCA9IHRva2Vucy5sZW5ndGhcblx0XHQsIHRva2VuXG5cdFx0LCB1cGRhdGVkID0gZmFsc2Vcblx0XHQsIGluZGV4XG5cdDtcblx0ZG8ge1xuXHRcdHRva2VuID0gdG9rZW5zW2ldICsgXCJcIjtcblx0XHRpbmRleCA9IGNoZWNrVG9rZW5BbmRHZXRJbmRleCh0aGlzLCB0b2tlbik7XG5cdFx0d2hpbGUgKGluZGV4ICE9PSAtMSkge1xuXHRcdFx0dGhpcy5zcGxpY2UoaW5kZXgsIDEpO1xuXHRcdFx0dXBkYXRlZCA9IHRydWU7XG5cdFx0XHRpbmRleCA9IGNoZWNrVG9rZW5BbmRHZXRJbmRleCh0aGlzLCB0b2tlbik7XG5cdFx0fVxuXHR9XG5cdHdoaWxlICgrK2kgPCBsKTtcblxuXHRpZiAodXBkYXRlZCkge1xuXHRcdHRoaXMuX3VwZGF0ZUNsYXNzTmFtZSgpO1xuXHR9XG59O1xuY2xhc3NMaXN0UHJvdG8udG9nZ2xlID0gZnVuY3Rpb24gKHRva2VuLCBmb3JjZSkge1xuXHR0b2tlbiArPSBcIlwiO1xuXG5cdHZhclxuXHRcdCAgcmVzdWx0ID0gdGhpcy5jb250YWlucyh0b2tlbilcblx0XHQsIG1ldGhvZCA9IHJlc3VsdCA/XG5cdFx0XHRmb3JjZSAhPT0gdHJ1ZSAmJiBcInJlbW92ZVwiXG5cdFx0OlxuXHRcdFx0Zm9yY2UgIT09IGZhbHNlICYmIFwiYWRkXCJcblx0O1xuXG5cdGlmIChtZXRob2QpIHtcblx0XHR0aGlzW21ldGhvZF0odG9rZW4pO1xuXHR9XG5cblx0aWYgKGZvcmNlID09PSB0cnVlIHx8IGZvcmNlID09PSBmYWxzZSkge1xuXHRcdHJldHVybiBmb3JjZTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gIXJlc3VsdDtcblx0fVxufTtcbmNsYXNzTGlzdFByb3RvLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuXHRyZXR1cm4gdGhpcy5qb2luKFwiIFwiKTtcbn07XG5cbmlmIChvYmpDdHIuZGVmaW5lUHJvcGVydHkpIHtcblx0dmFyIGNsYXNzTGlzdFByb3BEZXNjID0ge1xuXHRcdCAgZ2V0OiBjbGFzc0xpc3RHZXR0ZXJcblx0XHQsIGVudW1lcmFibGU6IHRydWVcblx0XHQsIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuXHR9O1xuXHR0cnkge1xuXHRcdG9iakN0ci5kZWZpbmVQcm9wZXJ0eShlbGVtQ3RyUHJvdG8sIGNsYXNzTGlzdFByb3AsIGNsYXNzTGlzdFByb3BEZXNjKTtcblx0fSBjYXRjaCAoZXgpIHsgLy8gSUUgOCBkb2Vzbid0IHN1cHBvcnQgZW51bWVyYWJsZTp0cnVlXG5cdFx0Ly8gYWRkaW5nIHVuZGVmaW5lZCB0byBmaWdodCB0aGlzIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9lbGlncmV5L2NsYXNzTGlzdC5qcy9pc3N1ZXMvMzZcblx0XHQvLyBtb2Rlcm5pZSBJRTgtTVNXNyBtYWNoaW5lIGhhcyBJRTggOC4wLjYwMDEuMTg3MDIgYW5kIGlzIGFmZmVjdGVkXG5cdFx0aWYgKGV4Lm51bWJlciA9PT0gdW5kZWZpbmVkIHx8IGV4Lm51bWJlciA9PT0gLTB4N0ZGNUVDNTQpIHtcblx0XHRcdGNsYXNzTGlzdFByb3BEZXNjLmVudW1lcmFibGUgPSBmYWxzZTtcblx0XHRcdG9iakN0ci5kZWZpbmVQcm9wZXJ0eShlbGVtQ3RyUHJvdG8sIGNsYXNzTGlzdFByb3AsIGNsYXNzTGlzdFByb3BEZXNjKTtcblx0XHR9XG5cdH1cbn0gZWxzZSBpZiAob2JqQ3RyW3Byb3RvUHJvcF0uX19kZWZpbmVHZXR0ZXJfXykge1xuXHRlbGVtQ3RyUHJvdG8uX19kZWZpbmVHZXR0ZXJfXyhjbGFzc0xpc3RQcm9wLCBjbGFzc0xpc3RHZXR0ZXIpO1xufVxuXG59KHdpbmRvdy5zZWxmKSk7XG5cbn1cblxuLy8gVGhlcmUgaXMgZnVsbCBvciBwYXJ0aWFsIG5hdGl2ZSBjbGFzc0xpc3Qgc3VwcG9ydCwgc28ganVzdCBjaGVjayBpZiB3ZSBuZWVkXG4vLyB0byBub3JtYWxpemUgdGhlIGFkZC9yZW1vdmUgYW5kIHRvZ2dsZSBBUElzLlxuXG4oZnVuY3Rpb24gKCkge1xuXHRcInVzZSBzdHJpY3RcIjtcblxuXHR2YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiX1wiKTtcblxuXHR0ZXN0RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiYzFcIiwgXCJjMlwiKTtcblxuXHQvLyBQb2x5ZmlsbCBmb3IgSUUgMTAvMTEgYW5kIEZpcmVmb3ggPDI2LCB3aGVyZSBjbGFzc0xpc3QuYWRkIGFuZFxuXHQvLyBjbGFzc0xpc3QucmVtb3ZlIGV4aXN0IGJ1dCBzdXBwb3J0IG9ubHkgb25lIGFyZ3VtZW50IGF0IGEgdGltZS5cblx0aWYgKCF0ZXN0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJjMlwiKSkge1xuXHRcdHZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbihtZXRob2QpIHtcblx0XHRcdHZhciBvcmlnaW5hbCA9IERPTVRva2VuTGlzdC5wcm90b3R5cGVbbWV0aG9kXTtcblxuXHRcdFx0RE9NVG9rZW5MaXN0LnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24odG9rZW4pIHtcblx0XHRcdFx0dmFyIGksIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG5cblx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRcdFx0dG9rZW4gPSBhcmd1bWVudHNbaV07XG5cdFx0XHRcdFx0b3JpZ2luYWwuY2FsbCh0aGlzLCB0b2tlbik7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fTtcblx0XHRjcmVhdGVNZXRob2QoJ2FkZCcpO1xuXHRcdGNyZWF0ZU1ldGhvZCgncmVtb3ZlJyk7XG5cdH1cblxuXHR0ZXN0RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKFwiYzNcIiwgZmFsc2UpO1xuXG5cdC8vIFBvbHlmaWxsIGZvciBJRSAxMCBhbmQgRmlyZWZveCA8MjQsIHdoZXJlIGNsYXNzTGlzdC50b2dnbGUgZG9lcyBub3Rcblx0Ly8gc3VwcG9ydCB0aGUgc2Vjb25kIGFyZ3VtZW50LlxuXHRpZiAodGVzdEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiYzNcIikpIHtcblx0XHR2YXIgX3RvZ2dsZSA9IERPTVRva2VuTGlzdC5wcm90b3R5cGUudG9nZ2xlO1xuXG5cdFx0RE9NVG9rZW5MaXN0LnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbih0b2tlbiwgZm9yY2UpIHtcblx0XHRcdGlmICgxIGluIGFyZ3VtZW50cyAmJiAhdGhpcy5jb250YWlucyh0b2tlbikgPT09ICFmb3JjZSkge1xuXHRcdFx0XHRyZXR1cm4gZm9yY2U7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gX3RvZ2dsZS5jYWxsKHRoaXMsIHRva2VuKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdH1cblxuXHR0ZXN0RWxlbWVudCA9IG51bGw7XG59KCkpO1xuXG59XG4iLCIvKiFcbiAgKiBkb21yZWFkeSAoYykgRHVzdGluIERpYXogMjAxNCAtIExpY2Vuc2UgTUlUXG4gICovXG4hZnVuY3Rpb24gKG5hbWUsIGRlZmluaXRpb24pIHtcblxuICBpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykgbW9kdWxlLmV4cG9ydHMgPSBkZWZpbml0aW9uKClcbiAgZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09ICdvYmplY3QnKSBkZWZpbmUoZGVmaW5pdGlvbilcbiAgZWxzZSB0aGlzW25hbWVdID0gZGVmaW5pdGlvbigpXG5cbn0oJ2RvbXJlYWR5JywgZnVuY3Rpb24gKCkge1xuXG4gIHZhciBmbnMgPSBbXSwgbGlzdGVuZXJcbiAgICAsIGRvYyA9IGRvY3VtZW50XG4gICAgLCBoYWNrID0gZG9jLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbFxuICAgICwgZG9tQ29udGVudExvYWRlZCA9ICdET01Db250ZW50TG9hZGVkJ1xuICAgICwgbG9hZGVkID0gKGhhY2sgPyAvXmxvYWRlZHxeYy8gOiAvXmxvYWRlZHxeaXxeYy8pLnRlc3QoZG9jLnJlYWR5U3RhdGUpXG5cblxuICBpZiAoIWxvYWRlZClcbiAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoZG9tQ29udGVudExvYWRlZCwgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoZG9tQ29udGVudExvYWRlZCwgbGlzdGVuZXIpXG4gICAgbG9hZGVkID0gMVxuICAgIHdoaWxlIChsaXN0ZW5lciA9IGZucy5zaGlmdCgpKSBsaXN0ZW5lcigpXG4gIH0pXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChmbikge1xuICAgIGxvYWRlZCA/IHNldFRpbWVvdXQoZm4sIDApIDogZm5zLnB1c2goZm4pXG4gIH1cblxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8vIDwzIE1vZGVybml6clxuLy8gaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01vZGVybml6ci9Nb2Rlcm5penIvbWFzdGVyL2ZlYXR1cmUtZGV0ZWN0cy9kb20vZGF0YXNldC5qc1xuXG5mdW5jdGlvbiB1c2VOYXRpdmUoKSB7XG5cdHZhciBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdGVsZW0uc2V0QXR0cmlidXRlKCdkYXRhLWEtYicsICdjJyk7XG5cblx0cmV0dXJuIEJvb2xlYW4oZWxlbS5kYXRhc2V0ICYmIGVsZW0uZGF0YXNldC5hQiA9PT0gJ2MnKTtcbn1cblxuZnVuY3Rpb24gbmF0aXZlRGF0YXNldChlbGVtZW50KSB7XG5cdHJldHVybiBlbGVtZW50LmRhdGFzZXQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdXNlTmF0aXZlKCkgPyBuYXRpdmVEYXRhc2V0IDogZnVuY3Rpb24gKGVsZW1lbnQpIHtcblx0dmFyIG1hcCA9IHt9O1xuXHR2YXIgYXR0cmlidXRlcyA9IGVsZW1lbnQuYXR0cmlidXRlcztcblxuXHRmdW5jdGlvbiBnZXR0ZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMudmFsdWU7XG5cdH1cblxuXHRmdW5jdGlvbiBzZXR0ZXIobmFtZSwgdmFsdWUpIHtcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0dGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRmb3IgKHZhciBpID0gMCwgaiA9IGF0dHJpYnV0ZXMubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG5cdFx0dmFyIGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbaV07XG5cblx0XHRpZiAoYXR0cmlidXRlKSB7XG5cdFx0XHR2YXIgbmFtZSA9IGF0dHJpYnV0ZS5uYW1lO1xuXG5cdFx0XHRpZiAobmFtZS5pbmRleE9mKCdkYXRhLScpID09PSAwKSB7XG5cdFx0XHRcdHZhciBwcm9wID0gbmFtZS5zbGljZSg1KS5yZXBsYWNlKC8tLi9nLCBmdW5jdGlvbiAodSkge1xuXHRcdFx0XHRcdHJldHVybiB1LmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHR2YXIgdmFsdWUgPSBhdHRyaWJ1dGUudmFsdWU7XG5cblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1hcCwgcHJvcCwge1xuXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRcdFx0Z2V0OiBnZXR0ZXIuYmluZCh7IHZhbHVlOiB2YWx1ZSB8fCAnJyB9KSxcblx0XHRcdFx0XHRzZXQ6IHNldHRlci5iaW5kKGVsZW1lbnQsIG5hbWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBtYXA7XG59O1xuXG4iLCIvLyBlbGVtZW50LWNsb3Nlc3QgfCBDQzAtMS4wIHwgZ2l0aHViLmNvbS9qb25hdGhhbnRuZWFsL2Nsb3Nlc3RcblxuKGZ1bmN0aW9uIChFbGVtZW50UHJvdG8pIHtcblx0aWYgKHR5cGVvZiBFbGVtZW50UHJvdG8ubWF0Y2hlcyAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdEVsZW1lbnRQcm90by5tYXRjaGVzID0gRWxlbWVudFByb3RvLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnRQcm90by5tb3pNYXRjaGVzU2VsZWN0b3IgfHwgRWxlbWVudFByb3RvLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fCBmdW5jdGlvbiBtYXRjaGVzKHNlbGVjdG9yKSB7XG5cdFx0XHR2YXIgZWxlbWVudCA9IHRoaXM7XG5cdFx0XHR2YXIgZWxlbWVudHMgPSAoZWxlbWVudC5kb2N1bWVudCB8fCBlbGVtZW50Lm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuXHRcdFx0dmFyIGluZGV4ID0gMDtcblxuXHRcdFx0d2hpbGUgKGVsZW1lbnRzW2luZGV4XSAmJiBlbGVtZW50c1tpbmRleF0gIT09IGVsZW1lbnQpIHtcblx0XHRcdFx0KytpbmRleDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIEJvb2xlYW4oZWxlbWVudHNbaW5kZXhdKTtcblx0XHR9O1xuXHR9XG5cblx0aWYgKHR5cGVvZiBFbGVtZW50UHJvdG8uY2xvc2VzdCAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdEVsZW1lbnRQcm90by5jbG9zZXN0ID0gZnVuY3Rpb24gY2xvc2VzdChzZWxlY3Rvcikge1xuXHRcdFx0dmFyIGVsZW1lbnQgPSB0aGlzO1xuXG5cdFx0XHR3aGlsZSAoZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlID09PSAxKSB7XG5cdFx0XHRcdGlmIChlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW1lbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9O1xuXHR9XG59KSh3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUpO1xuIiwiLyoqXG4gKiBsb2Rhc2ggKEN1c3RvbSBCdWlsZCkgPGh0dHBzOi8vbG9kYXNoLmNvbS8+XG4gKiBCdWlsZDogYGxvZGFzaCBtb2R1bGFyaXplIGV4cG9ydHM9XCJucG1cIiAtbyAuL2BcbiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIDxodHRwczovL2pxdWVyeS5vcmcvPlxuICogUmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UgPGh0dHBzOi8vbG9kYXNoLmNvbS9saWNlbnNlPlxuICogQmFzZWQgb24gVW5kZXJzY29yZS5qcyAxLjguMyA8aHR0cDovL3VuZGVyc2NvcmVqcy5vcmcvTElDRU5TRT5cbiAqIENvcHlyaWdodCBKZXJlbXkgQXNoa2VuYXMsIERvY3VtZW50Q2xvdWQgYW5kIEludmVzdGlnYXRpdmUgUmVwb3J0ZXJzICYgRWRpdG9yc1xuICovXG5cbi8qKiBVc2VkIGFzIHRoZSBgVHlwZUVycm9yYCBtZXNzYWdlIGZvciBcIkZ1bmN0aW9uc1wiIG1ldGhvZHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBOQU4gPSAwIC8gMDtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLiAqL1xudmFyIHJlVHJpbSA9IC9eXFxzK3xcXHMrJC9nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCYWRIZXggPSAvXlstK10weFswLTlhLWZdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJpbmFyeSBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBvY3RhbCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbi8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG52YXIgZnJlZVBhcnNlSW50ID0gcGFyc2VJbnQ7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heCxcbiAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqXG4gKiBHZXRzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2VcbiAqIHRoZSBVbml4IGVwb2NoICgxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMi40LjBcbiAqIEBjYXRlZ29yeSBEYXRlXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSB0aW1lc3RhbXAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZGVmZXIoZnVuY3Rpb24oc3RhbXApIHtcbiAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAqIH0sIF8ubm93KCkpO1xuICogLy8gPT4gTG9ncyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpdCB0b29rIGZvciB0aGUgZGVmZXJyZWQgaW52b2NhdGlvbi5cbiAqL1xudmFyIG5vdyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gcm9vdC5EYXRlLm5vdygpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGVib3VuY2VkIGZ1bmN0aW9uIHRoYXQgZGVsYXlzIGludm9raW5nIGBmdW5jYCB1bnRpbCBhZnRlciBgd2FpdGBcbiAqIG1pbGxpc2Vjb25kcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgdGltZSB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIHdhc1xuICogaW52b2tlZC4gVGhlIGRlYm91bmNlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxuICogZGVsYXllZCBgZnVuY2AgaW52b2NhdGlvbnMgYW5kIGEgYGZsdXNoYCBtZXRob2QgdG8gaW1tZWRpYXRlbHkgaW52b2tlIHRoZW0uXG4gKiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYCBzaG91bGQgYmUgaW52b2tlZCBvbiB0aGVcbiAqIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcbiAqIHdpdGggdGhlIGxhc3QgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uIFN1YnNlcXVlbnRcbiAqIGNhbGxzIHRvIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGxhc3QgYGZ1bmNgXG4gKiBpbnZvY2F0aW9uLlxuICpcbiAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uXG4gKiBpcyBpbnZva2VkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyB0aGUgYHdhaXRgIHRpbWVvdXQuXG4gKlxuICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXG4gKiB1bnRpbCB0byB0aGUgbmV4dCB0aWNrLCBzaW1pbGFyIHRvIGBzZXRUaW1lb3V0YCB3aXRoIGEgdGltZW91dCBvZiBgMGAuXG4gKlxuICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXG4gKiBmb3IgZGV0YWlscyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGBfLmRlYm91bmNlYCBhbmQgYF8udGhyb3R0bGVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVhZGluZz1mYWxzZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4V2FpdF1cbiAqICBUaGUgbWF4aW11bSB0aW1lIGBmdW5jYCBpcyBhbGxvd2VkIHRvIGJlIGRlbGF5ZWQgYmVmb3JlIGl0J3MgaW52b2tlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaWxpbmc9dHJ1ZV1cbiAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZGVib3VuY2VkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBBdm9pZCBjb3N0bHkgY2FsY3VsYXRpb25zIHdoaWxlIHRoZSB3aW5kb3cgc2l6ZSBpcyBpbiBmbHV4LlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsIF8uZGVib3VuY2UoY2FsY3VsYXRlTGF5b3V0LCAxNTApKTtcbiAqXG4gKiAvLyBJbnZva2UgYHNlbmRNYWlsYCB3aGVuIGNsaWNrZWQsIGRlYm91bmNpbmcgc3Vic2VxdWVudCBjYWxscy5cbiAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmRlYm91bmNlKHNlbmRNYWlsLCAzMDAsIHtcbiAqICAgJ2xlYWRpbmcnOiB0cnVlLFxuICogICAndHJhaWxpbmcnOiBmYWxzZVxuICogfSkpO1xuICpcbiAqIC8vIEVuc3VyZSBgYmF0Y2hMb2dgIGlzIGludm9rZWQgb25jZSBhZnRlciAxIHNlY29uZCBvZiBkZWJvdW5jZWQgY2FsbHMuXG4gKiB2YXIgZGVib3VuY2VkID0gXy5kZWJvdW5jZShiYXRjaExvZywgMjUwLCB7ICdtYXhXYWl0JzogMTAwMCB9KTtcbiAqIHZhciBzb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoJy9zdHJlYW0nKTtcbiAqIGpRdWVyeShzb3VyY2UpLm9uKCdtZXNzYWdlJywgZGVib3VuY2VkKTtcbiAqXG4gKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIGRlYm91bmNlZCBpbnZvY2F0aW9uLlxuICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgZGVib3VuY2VkLmNhbmNlbCk7XG4gKi9cbmZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RBcmdzLFxuICAgICAgbGFzdFRoaXMsXG4gICAgICBtYXhXYWl0LFxuICAgICAgcmVzdWx0LFxuICAgICAgdGltZXJJZCxcbiAgICAgIGxhc3RDYWxsVGltZSxcbiAgICAgIGxhc3RJbnZva2VUaW1lID0gMCxcbiAgICAgIGxlYWRpbmcgPSBmYWxzZSxcbiAgICAgIG1heGluZyA9IGZhbHNlLFxuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuXG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHdhaXQgPSB0b051bWJlcih3YWl0KSB8fCAwO1xuICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICBsZWFkaW5nID0gISFvcHRpb25zLmxlYWRpbmc7XG4gICAgbWF4aW5nID0gJ21heFdhaXQnIGluIG9wdGlvbnM7XG4gICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcihvcHRpb25zLm1heFdhaXQpIHx8IDAsIHdhaXQpIDogbWF4V2FpdDtcbiAgICB0cmFpbGluZyA9ICd0cmFpbGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlRnVuYyh0aW1lKSB7XG4gICAgdmFyIGFyZ3MgPSBsYXN0QXJncyxcbiAgICAgICAgdGhpc0FyZyA9IGxhc3RUaGlzO1xuXG4gICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gbGVhZGluZ0VkZ2UodGltZSkge1xuICAgIC8vIFJlc2V0IGFueSBgbWF4V2FpdGAgdGltZXIuXG4gICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgIC8vIFN0YXJ0IHRoZSB0aW1lciBmb3IgdGhlIHRyYWlsaW5nIGVkZ2UuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAvLyBJbnZva2UgdGhlIGxlYWRpbmcgZWRnZS5cbiAgICByZXR1cm4gbGVhZGluZyA/IGludm9rZUZ1bmModGltZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiByZW1haW5pbmdXYWl0KHRpbWUpIHtcbiAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lLFxuICAgICAgICByZXN1bHQgPSB3YWl0IC0gdGltZVNpbmNlTGFzdENhbGw7XG5cbiAgICByZXR1cm4gbWF4aW5nID8gbmF0aXZlTWluKHJlc3VsdCwgbWF4V2FpdCAtIHRpbWVTaW5jZUxhc3RJbnZva2UpIDogcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gc2hvdWxkSW52b2tlKHRpbWUpIHtcbiAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lO1xuXG4gICAgLy8gRWl0aGVyIHRoaXMgaXMgdGhlIGZpcnN0IGNhbGwsIGFjdGl2aXR5IGhhcyBzdG9wcGVkIGFuZCB3ZSdyZSBhdCB0aGVcbiAgICAvLyB0cmFpbGluZyBlZGdlLCB0aGUgc3lzdGVtIHRpbWUgaGFzIGdvbmUgYmFja3dhcmRzIGFuZCB3ZSdyZSB0cmVhdGluZ1xuICAgIC8vIGl0IGFzIHRoZSB0cmFpbGluZyBlZGdlLCBvciB3ZSd2ZSBoaXQgdGhlIGBtYXhXYWl0YCBsaW1pdC5cbiAgICByZXR1cm4gKGxhc3RDYWxsVGltZSA9PT0gdW5kZWZpbmVkIHx8ICh0aW1lU2luY2VMYXN0Q2FsbCA+PSB3YWl0KSB8fFxuICAgICAgKHRpbWVTaW5jZUxhc3RDYWxsIDwgMCkgfHwgKG1heGluZyAmJiB0aW1lU2luY2VMYXN0SW52b2tlID49IG1heFdhaXQpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpO1xuICAgIGlmIChzaG91bGRJbnZva2UodGltZSkpIHtcbiAgICAgIHJldHVybiB0cmFpbGluZ0VkZ2UodGltZSk7XG4gICAgfVxuICAgIC8vIFJlc3RhcnQgdGhlIHRpbWVyLlxuICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgcmVtYWluaW5nV2FpdCh0aW1lKSk7XG4gIH1cblxuICBmdW5jdGlvbiB0cmFpbGluZ0VkZ2UodGltZSkge1xuICAgIHRpbWVySWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBPbmx5IGludm9rZSBpZiB3ZSBoYXZlIGBsYXN0QXJnc2Agd2hpY2ggbWVhbnMgYGZ1bmNgIGhhcyBiZWVuXG4gICAgLy8gZGVib3VuY2VkIGF0IGxlYXN0IG9uY2UuXG4gICAgaWYgKHRyYWlsaW5nICYmIGxhc3RBcmdzKSB7XG4gICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgIGlmICh0aW1lcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICB9XG4gICAgbGFzdEludm9rZVRpbWUgPSAwO1xuICAgIGxhc3RBcmdzID0gbGFzdENhbGxUaW1lID0gbGFzdFRoaXMgPSB0aW1lcklkID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgcmV0dXJuIHRpbWVySWQgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IHRyYWlsaW5nRWRnZShub3coKSk7XG4gIH1cblxuICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XG4gICAgdmFyIHRpbWUgPSBub3coKSxcbiAgICAgICAgaXNJbnZva2luZyA9IHNob3VsZEludm9rZSh0aW1lKTtcblxuICAgIGxhc3RBcmdzID0gYXJndW1lbnRzO1xuICAgIGxhc3RUaGlzID0gdGhpcztcbiAgICBsYXN0Q2FsbFRpbWUgPSB0aW1lO1xuXG4gICAgaWYgKGlzSW52b2tpbmcpIHtcbiAgICAgIGlmICh0aW1lcklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGxlYWRpbmdFZGdlKGxhc3RDYWxsVGltZSk7XG4gICAgICB9XG4gICAgICBpZiAobWF4aW5nKSB7XG4gICAgICAgIC8vIEhhbmRsZSBpbnZvY2F0aW9ucyBpbiBhIHRpZ2h0IGxvb3AuXG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgIHJldHVybiBpbnZva2VGdW5jKGxhc3RDYWxsVGltZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aW1lcklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgZGVib3VuY2VkLmNhbmNlbCA9IGNhbmNlbDtcbiAgZGVib3VuY2VkLmZsdXNoID0gZmx1c2g7XG4gIHJldHVybiBkZWJvdW5jZWQ7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlXG4gKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICogYW5kIGhhcyBhIGB0eXBlb2ZgIHJlc3VsdCBvZiBcIm9iamVjdFwiLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN5bWJvbGAgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgb2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gc3ltYm9sVGFnKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgbnVtYmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvTnVtYmVyKDMuMik7XG4gKiAvLyA9PiAzLjJcbiAqXG4gKiBfLnRvTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gNWUtMzI0XG4gKlxuICogXy50b051bWJlcihJbmZpbml0eSk7XG4gKiAvLyA9PiBJbmZpbml0eVxuICpcbiAqIF8udG9OdW1iZXIoJzMuMicpO1xuICogLy8gPT4gMy4yXG4gKi9cbmZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBOQU47XG4gIH1cbiAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHZhciBvdGhlciA9IHR5cGVvZiB2YWx1ZS52YWx1ZU9mID09ICdmdW5jdGlvbicgPyB2YWx1ZS52YWx1ZU9mKCkgOiB2YWx1ZTtcbiAgICB2YWx1ZSA9IGlzT2JqZWN0KG90aGVyKSA/IChvdGhlciArICcnKSA6IG90aGVyO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgfVxuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UocmVUcmltLCAnJyk7XG4gIHZhciBpc0JpbmFyeSA9IHJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7XG4gIHJldHVybiAoaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpKVxuICAgID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KVxuICAgIDogKHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRlYm91bmNlO1xuIiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsImNvbnN0IGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcbmNvbnN0IGRlbGVnYXRlID0gcmVxdWlyZSgnLi4vZGVsZWdhdGUnKTtcbmNvbnN0IGRlbGVnYXRlQWxsID0gcmVxdWlyZSgnLi4vZGVsZWdhdGVBbGwnKTtcblxuY29uc3QgREVMRUdBVEVfUEFUVEVSTiA9IC9eKC4rKTpkZWxlZ2F0ZVxcKCguKylcXCkkLztcbmNvbnN0IFNQQUNFID0gJyAnO1xuXG5jb25zdCBnZXRMaXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlLCBoYW5kbGVyKSB7XG4gIHZhciBtYXRjaCA9IHR5cGUubWF0Y2goREVMRUdBVEVfUEFUVEVSTik7XG4gIHZhciBzZWxlY3RvcjtcbiAgaWYgKG1hdGNoKSB7XG4gICAgdHlwZSA9IG1hdGNoWzFdO1xuICAgIHNlbGVjdG9yID0gbWF0Y2hbMl07XG4gIH1cblxuICB2YXIgb3B0aW9ucztcbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnb2JqZWN0Jykge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBjYXB0dXJlOiBwb3BLZXkoaGFuZGxlciwgJ2NhcHR1cmUnKSxcbiAgICAgIHBhc3NpdmU6IHBvcEtleShoYW5kbGVyLCAncGFzc2l2ZScpXG4gICAgfTtcbiAgfVxuXG4gIHZhciBsaXN0ZW5lciA9IHtcbiAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXG4gICAgZGVsZWdhdGU6ICh0eXBlb2YgaGFuZGxlciA9PT0gJ29iamVjdCcpXG4gICAgICA/IGRlbGVnYXRlQWxsKGhhbmRsZXIpXG4gICAgICA6IHNlbGVjdG9yXG4gICAgICAgID8gZGVsZWdhdGUoc2VsZWN0b3IsIGhhbmRsZXIpXG4gICAgICAgIDogaGFuZGxlcixcbiAgICBvcHRpb25zOiBvcHRpb25zXG4gIH07XG5cbiAgaWYgKHR5cGUuaW5kZXhPZihTUEFDRSkgPiAtMSkge1xuICAgIHJldHVybiB0eXBlLnNwbGl0KFNQQUNFKS5tYXAoZnVuY3Rpb24oX3R5cGUpIHtcbiAgICAgIHJldHVybiBhc3NpZ24oe3R5cGU6IF90eXBlfSwgbGlzdGVuZXIpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGxpc3RlbmVyLnR5cGUgPSB0eXBlO1xuICAgIHJldHVybiBbbGlzdGVuZXJdO1xuICB9XG59O1xuXG52YXIgcG9wS2V5ID0gZnVuY3Rpb24ob2JqLCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gb2JqW2tleV07XG4gIGRlbGV0ZSBvYmpba2V5XTtcbiAgcmV0dXJuIHZhbHVlO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBiZWhhdmlvcihldmVudHMsIHByb3BzKSB7XG4gIGNvbnN0IGxpc3RlbmVycyA9IE9iamVjdC5rZXlzKGV2ZW50cylcbiAgICAucmVkdWNlKGZ1bmN0aW9uKG1lbW8sIHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMgPSBnZXRMaXN0ZW5lcnModHlwZSwgZXZlbnRzW3R5cGVdKTtcbiAgICAgIHJldHVybiBtZW1vLmNvbmNhdChsaXN0ZW5lcnMpO1xuICAgIH0sIFtdKTtcblxuICByZXR1cm4gYXNzaWduKHtcbiAgICBhZGQ6IGZ1bmN0aW9uIGFkZEJlaGF2aW9yKGVsZW1lbnQpIHtcbiAgICAgIGxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBsaXN0ZW5lci50eXBlLFxuICAgICAgICAgIGxpc3RlbmVyLmRlbGVnYXRlLFxuICAgICAgICAgIGxpc3RlbmVyLm9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmVCZWhhdmlvcihlbGVtZW50KSB7XG4gICAgICBsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbihsaXN0ZW5lcikge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgbGlzdGVuZXIudHlwZSxcbiAgICAgICAgICBsaXN0ZW5lci5kZWxlZ2F0ZSxcbiAgICAgICAgICBsaXN0ZW5lci5vcHRpb25zXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHByb3BzKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNvbXBvc2UoZnVuY3Rpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbihlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9ucy5zb21lKGZ1bmN0aW9uKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCBlKSA9PT0gZmFsc2U7XG4gICAgfSwgdGhpcyk7XG4gIH07XG59O1xuIiwiLy8gcG9seWZpbGwgRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdFxucmVxdWlyZSgnZWxlbWVudC1jbG9zZXN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVsZWdhdGUoc2VsZWN0b3IsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBkZWxlZ2F0aW9uKGV2ZW50KSB7XG4gICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KHNlbGVjdG9yKTtcbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0YXJnZXQsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn07XG4iLCJjb25zdCBkZWxlZ2F0ZSA9IHJlcXVpcmUoJy4uL2RlbGVnYXRlJyk7XG5jb25zdCBjb21wb3NlID0gcmVxdWlyZSgnLi4vY29tcG9zZScpO1xuXG5jb25zdCBTUExBVCA9ICcqJztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBkZWxlZ2F0ZUFsbChzZWxlY3RvcnMpIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHNlbGVjdG9ycylcblxuICAvLyBYWFggb3B0aW1pemF0aW9uOiBpZiB0aGVyZSBpcyBvbmx5IG9uZSBoYW5kbGVyIGFuZCBpdCBhcHBsaWVzIHRvXG4gIC8vIGFsbCBlbGVtZW50cyAodGhlIFwiKlwiIENTUyBzZWxlY3RvciksIHRoZW4ganVzdCByZXR1cm4gdGhhdFxuICAvLyBoYW5kbGVyXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMSAmJiBrZXlzWzBdID09PSBTUExBVCkge1xuICAgIHJldHVybiBzZWxlY3RvcnNbU1BMQVRdO1xuICB9XG5cbiAgY29uc3QgZGVsZWdhdGVzID0ga2V5cy5yZWR1Y2UoZnVuY3Rpb24obWVtbywgc2VsZWN0b3IpIHtcbiAgICBtZW1vLnB1c2goZGVsZWdhdGUoc2VsZWN0b3IsIHNlbGVjdG9yc1tzZWxlY3Rvcl0pKTtcbiAgICByZXR1cm4gbWVtbztcbiAgfSwgW10pO1xuICByZXR1cm4gY29tcG9zZShkZWxlZ2F0ZXMpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaWdub3JlKGVsZW1lbnQsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBpZ25vcmFuY2UoZSkge1xuICAgIGlmIChlbGVtZW50ICE9PSBlLnRhcmdldCAmJiAhZWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoaXMsIGUpO1xuICAgIH1cbiAgfTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG9uY2UobGlzdGVuZXIsIG9wdGlvbnMpIHtcbiAgdmFyIHdyYXBwZWQgPSBmdW5jdGlvbiB3cmFwcGVkT25jZShlKSB7XG4gICAgZS5jdXJyZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZS50eXBlLCB3cmFwcGVkLCBvcHRpb25zKTtcbiAgICByZXR1cm4gbGlzdGVuZXIuY2FsbCh0aGlzLCBlKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59O1xuXG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBSRV9UUklNID0gLyheXFxzKyl8KFxccyskKS9nO1xudmFyIFJFX1NQTElUID0gL1xccysvO1xuXG52YXIgdHJpbSA9IFN0cmluZy5wcm90b3R5cGUudHJpbVxuICA/IGZ1bmN0aW9uKHN0cikgeyByZXR1cm4gc3RyLnRyaW0oKTsgfVxuICA6IGZ1bmN0aW9uKHN0cikgeyByZXR1cm4gc3RyLnJlcGxhY2UoUkVfVFJJTSwgJycpOyB9O1xuXG52YXIgcXVlcnlCeUlkID0gZnVuY3Rpb24oaWQpIHtcbiAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcignW2lkPVwiJyArIGlkLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKSArICdcIl0nKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcmVzb2x2ZUlkcyhpZHMsIGRvYykge1xuICBpZiAodHlwZW9mIGlkcyAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgc3RyaW5nIGJ1dCBnb3QgJyArICh0eXBlb2YgaWRzKSk7XG4gIH1cblxuICBpZiAoIWRvYykge1xuICAgIGRvYyA9IHdpbmRvdy5kb2N1bWVudDtcbiAgfVxuXG4gIHZhciBnZXRFbGVtZW50QnlJZCA9IGRvYy5nZXRFbGVtZW50QnlJZFxuICAgID8gZG9jLmdldEVsZW1lbnRCeUlkLmJpbmQoZG9jKVxuICAgIDogcXVlcnlCeUlkLmJpbmQoZG9jKTtcblxuICBpZHMgPSB0cmltKGlkcykuc3BsaXQoUkVfU1BMSVQpO1xuXG4gIC8vIFhYWCB3ZSBjYW4gc2hvcnQtY2lyY3VpdCBoZXJlIGJlY2F1c2UgdHJpbW1pbmcgYW5kIHNwbGl0dGluZyBhXG4gIC8vIHN0cmluZyBvZiBqdXN0IHdoaXRlc3BhY2UgcHJvZHVjZXMgYW4gYXJyYXkgY29udGFpbmluZyBhIHNpbmdsZSxcbiAgLy8gZW1wdHkgc3RyaW5nXG4gIGlmIChpZHMubGVuZ3RoID09PSAxICYmIGlkc1swXSA9PT0gJycpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gaWRzXG4gICAgLm1hcChmdW5jdGlvbihpZCkge1xuICAgICAgdmFyIGVsID0gZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgICAgaWYgKCFlbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGVsZW1lbnQgd2l0aCBpZDogXCInICsgaWQgKyAnXCInKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbDtcbiAgICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoJy4uL3V0aWxzL2JlaGF2aW9yJyk7XG5jb25zdCBmaWx0ZXIgPSByZXF1aXJlKCdhcnJheS1maWx0ZXInKTtcbmNvbnN0IGZvckVhY2ggPSByZXF1aXJlKCdhcnJheS1mb3JlYWNoJyk7XG5jb25zdCB0b2dnbGUgPSByZXF1aXJlKCcuLi91dGlscy90b2dnbGUnKTtcbmNvbnN0IGlzRWxlbWVudEluVmlld3BvcnQgPSByZXF1aXJlKCcuLi91dGlscy9pcy1pbi12aWV3cG9ydCcpO1xuXG5jb25zdCBDTElDSyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpLkNMSUNLO1xuY29uc3QgUFJFRklYID0gcmVxdWlyZSgnLi4vY29uZmlnJykucHJlZml4O1xuXG4vLyBYWFggbWF0Y2ggLnVzYS1hY2NvcmRpb24gYW5kIC51c2EtYWNjb3JkaW9uLWJvcmRlcmVkXG5jb25zdCBBQ0NPUkRJT04gPSBgLiR7UFJFRklYfS1hY2NvcmRpb24sIC4ke1BSRUZJWH0tYWNjb3JkaW9uLWJvcmRlcmVkYDtcbmNvbnN0IEJVVFRPTiA9IGAuJHtQUkVGSVh9LWFjY29yZGlvbi1idXR0b25bYXJpYS1jb250cm9sc11gO1xuY29uc3QgRVhQQU5ERUQgPSAnYXJpYS1leHBhbmRlZCc7XG5jb25zdCBNVUxUSVNFTEVDVEFCTEUgPSAnYXJpYS1tdWx0aXNlbGVjdGFibGUnO1xuXG4vKipcbiAqIFRvZ2dsZSBhIGJ1dHRvbidzIFwicHJlc3NlZFwiIHN0YXRlLCBvcHRpb25hbGx5IHByb3ZpZGluZyBhIHRhcmdldFxuICogc3RhdGUuXG4gKlxuICogQHBhcmFtIHtIVE1MQnV0dG9uRWxlbWVudH0gYnV0dG9uXG4gKiBAcGFyYW0ge2Jvb2xlYW4/fSBleHBhbmRlZCBJZiBubyBzdGF0ZSBpcyBwcm92aWRlZCwgdGhlIGN1cnJlbnRcbiAqIHN0YXRlIHdpbGwgYmUgdG9nZ2xlZCAoZnJvbSBmYWxzZSB0byB0cnVlLCBhbmQgdmljZS12ZXJzYSkuXG4gKiBAcmV0dXJuIHtib29sZWFufSB0aGUgcmVzdWx0aW5nIHN0YXRlXG4gKi9cbmNvbnN0IHRvZ2dsZUJ1dHRvbiA9IChidXR0b24sIGV4cGFuZGVkKSA9PiB7XG4gIHZhciBhY2NvcmRpb24gPSBidXR0b24uY2xvc2VzdChBQ0NPUkRJT04pO1xuICBpZiAoIWFjY29yZGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtCVVRUT059IGlzIG1pc3Npbmcgb3V0ZXIgJHtBQ0NPUkRJT059YCk7XG4gIH1cblxuICBleHBhbmRlZCA9IHRvZ2dsZShidXR0b24sIGV4cGFuZGVkKTtcbiAgLy8gWFhYIG11bHRpc2VsZWN0YWJsZSBpcyBvcHQtaW4sIHRvIHByZXNlcnZlIGxlZ2FjeSBiZWhhdmlvclxuICBjb25zdCBtdWx0aXNlbGVjdGFibGUgPSBhY2NvcmRpb24uZ2V0QXR0cmlidXRlKE1VTFRJU0VMRUNUQUJMRSkgPT09ICd0cnVlJztcblxuICBpZiAoZXhwYW5kZWQgJiYgIW11bHRpc2VsZWN0YWJsZSkge1xuICAgIGZvckVhY2goZ2V0QWNjb3JkaW9uQnV0dG9ucyhhY2NvcmRpb24pLCBvdGhlciA9PiB7XG4gICAgICBpZiAob3RoZXIgIT09IGJ1dHRvbikge1xuICAgICAgICB0b2dnbGUob3RoZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSBidXR0b25cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWVcbiAqL1xuY29uc3Qgc2hvd0J1dHRvbiA9IGJ1dHRvbiA9PiB0b2dnbGVCdXR0b24oYnV0dG9uLCB0cnVlKTtcblxuLyoqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSBidXR0b25cbiAqIEByZXR1cm4ge2Jvb2xlYW59IGZhbHNlXG4gKi9cbmNvbnN0IGhpZGVCdXR0b24gPSBidXR0b24gPT4gdG9nZ2xlQnV0dG9uKGJ1dHRvbiwgZmFsc2UpO1xuXG4vKipcbiAqIEdldCBhbiBBcnJheSBvZiBidXR0b24gZWxlbWVudHMgYmVsb25naW5nIGRpcmVjdGx5IHRvIHRoZSBnaXZlblxuICogYWNjb3JkaW9uIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBhY2NvcmRpb25cbiAqIEByZXR1cm4ge2FycmF5PEhUTUxCdXR0b25FbGVtZW50Pn1cbiAqL1xuY29uc3QgZ2V0QWNjb3JkaW9uQnV0dG9ucyA9IGFjY29yZGlvbiA9PiB7XG4gIHJldHVybiBmaWx0ZXIoYWNjb3JkaW9uLnF1ZXJ5U2VsZWN0b3JBbGwoQlVUVE9OKSwgYnV0dG9uID0+IHtcbiAgICByZXR1cm4gYnV0dG9uLmNsb3Nlc3QoQUNDT1JESU9OKSA9PT0gYWNjb3JkaW9uO1xuICB9KTtcbn07XG5cbmNvbnN0IGFjY29yZGlvbiA9IGJlaGF2aW9yKHtcbiAgWyBDTElDSyBdOiB7XG4gICAgWyBCVVRUT04gXTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdG9nZ2xlQnV0dG9uKHRoaXMpO1xuXG4gICAgICBpZiAodGhpcy5nZXRBdHRyaWJ1dGUoRVhQQU5ERUQpID09PSAndHJ1ZScpIHtcbiAgICAgICAgLy8gV2Ugd2VyZSBqdXN0IGV4cGFuZGVkLCBidXQgaWYgYW5vdGhlciBhY2NvcmRpb24gd2FzIGFsc28ganVzdFxuICAgICAgICAvLyBjb2xsYXBzZWQsIHdlIG1heSBubyBsb25nZXIgYmUgaW4gdGhlIHZpZXdwb3J0LiBUaGlzIGVuc3VyZXNcbiAgICAgICAgLy8gdGhhdCB3ZSBhcmUgc3RpbGwgdmlzaWJsZSwgc28gdGhlIHVzZXIgaXNuJ3QgY29uZnVzZWQuXG4gICAgICAgIGlmICghaXNFbGVtZW50SW5WaWV3cG9ydCh0aGlzKSkgdGhpcy5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59LCB7XG4gIGluaXQ6IHJvb3QgPT4ge1xuICAgIGZvckVhY2gocm9vdC5xdWVyeVNlbGVjdG9yQWxsKEJVVFRPTiksIGJ1dHRvbiA9PiB7XG4gICAgICBjb25zdCBleHBhbmRlZCA9IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoRVhQQU5ERUQpID09PSAndHJ1ZSc7XG4gICAgICB0b2dnbGVCdXR0b24oYnV0dG9uLCBleHBhbmRlZCk7XG4gICAgfSk7XG4gIH0sXG4gIEFDQ09SRElPTixcbiAgQlVUVE9OLFxuICBzaG93OiBzaG93QnV0dG9uLFxuICBoaWRlOiBoaWRlQnV0dG9uLFxuICB0b2dnbGU6IHRvZ2dsZUJ1dHRvbixcbiAgZ2V0QnV0dG9uczogZ2V0QWNjb3JkaW9uQnV0dG9ucyxcbn0pO1xuXG4vKipcbiAqIFRPRE86IGZvciAyLjAsIHJlbW92ZSBldmVyeXRoaW5nIGJlbG93IHRoaXMgY29tbWVudCBhbmQgZXhwb3J0IHRoZVxuICogYmVoYXZpb3IgZGlyZWN0bHk6XG4gKlxuICogbW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcih7Li4ufSk7XG4gKi9cbmNvbnN0IEFjY29yZGlvbiA9IGZ1bmN0aW9uIChyb290KSB7XG4gIHRoaXMucm9vdCA9IHJvb3Q7XG4gIGFjY29yZGlvbi5vbih0aGlzLnJvb3QpO1xufTtcblxuLy8gY29weSBhbGwgb2YgdGhlIGJlaGF2aW9yIG1ldGhvZHMgYW5kIHByb3BzIHRvIEFjY29yZGlvblxuY29uc3QgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuYXNzaWduKEFjY29yZGlvbiwgYWNjb3JkaW9uKTtcblxuQWNjb3JkaW9uLnByb3RvdHlwZS5zaG93ID0gc2hvd0J1dHRvbjtcbkFjY29yZGlvbi5wcm90b3R5cGUuaGlkZSA9IGhpZGVCdXR0b247XG5cbkFjY29yZGlvbi5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gKCkge1xuICBhY2NvcmRpb24ub2ZmKHRoaXMucm9vdCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY29yZGlvbjtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZSgnLi4vdXRpbHMvYmVoYXZpb3InKTtcbmNvbnN0IHRvZ2dsZSA9IHJlcXVpcmUoJy4uL3V0aWxzL3RvZ2dsZScpO1xuXG5jb25zdCBDTElDSyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpLkNMSUNLO1xuY29uc3QgUFJFRklYID0gcmVxdWlyZSgnLi4vY29uZmlnJykucHJlZml4O1xuXG5jb25zdCBIRUFERVIgPSBgLiR7UFJFRklYfS1iYW5uZXItaGVhZGVyYDtcbmNvbnN0IEVYUEFOREVEX0NMQVNTID0gYCR7UFJFRklYfS1iYW5uZXItaGVhZGVyLWV4cGFuZGVkYDtcblxuY29uc3QgdG9nZ2xlQmFubmVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIHRoaXMuY2xvc2VzdChIRUFERVIpLmNsYXNzTGlzdC50b2dnbGUoRVhQQU5ERURfQ0xBU1MpO1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJlaGF2aW9yKHtcbiAgWyBDTElDSyBdOiB7XG4gICAgWyBgJHtIRUFERVJ9IFthcmlhLWNvbnRyb2xzXWAgXTogdG9nZ2xlQmFubmVyLFxuICB9LFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBhY2NvcmRpb24gPSByZXF1aXJlKCcuL2FjY29yZGlvbicpO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKCcuLi91dGlscy9iZWhhdmlvcicpO1xuY29uc3QgZGVib3VuY2UgPSByZXF1aXJlKCdsb2Rhc2guZGVib3VuY2UnKTtcbmNvbnN0IGZvckVhY2ggPSByZXF1aXJlKCdhcnJheS1mb3JlYWNoJyk7XG5jb25zdCBzZWxlY3QgPSByZXF1aXJlKCcuLi91dGlscy9zZWxlY3QnKTtcblxuY29uc3QgQ0xJQ0sgPSByZXF1aXJlKCcuLi9ldmVudHMnKS5DTElDSztcbmNvbnN0IFBSRUZJWCA9IHJlcXVpcmUoJy4uL2NvbmZpZycpLnByZWZpeDtcblxuY29uc3QgSElEREVOID0gJ2hpZGRlbic7XG5jb25zdCBTQ09QRSA9IGAuJHtQUkVGSVh9LWZvb3Rlci1iaWdgO1xuY29uc3QgTkFWID0gYCR7U0NPUEV9IG5hdmA7XG5jb25zdCBCVVRUT04gPSBgJHtOQVZ9IC4ke1BSRUZJWH0tZm9vdGVyLXByaW1hcnktbGlua2A7XG5jb25zdCBMSVNUID0gYCR7TkFWfSB1bGA7XG5cbmNvbnN0IEhJREVfTUFYX1dJRFRIID0gNjAwO1xuY29uc3QgREVCT1VOQ0VfUkFURSA9IDE4MDtcblxuY29uc3Qgc2hvd1BhbmVsID0gZnVuY3Rpb24gKCkge1xuICBjb25zdCBsaXN0ID0gdGhpcy5jbG9zZXN0KExJU1QpO1xuICBsaXN0LmNsYXNzTGlzdC5yZW1vdmUoSElEREVOKTtcblxuICAvLyBOQjogdGhpcyAqc2hvdWxkKiBhbHdheXMgc3VjY2VlZCBiZWNhdXNlIHRoZSBidXR0b25cbiAgLy8gc2VsZWN0b3IgaXMgc2NvcGVkIHRvIFwiLntwcmVmaXh9LWZvb3Rlci1iaWcgbmF2XCJcbiAgY29uc3QgbGlzdHMgPSBsaXN0LmNsb3Nlc3QoTkFWKVxuICAgIC5xdWVyeVNlbGVjdG9yQWxsKCd1bCcpO1xuXG4gIGZvckVhY2gobGlzdHMsIGVsID0+IHtcbiAgICBpZiAoZWwgIT09IGxpc3QpIHtcbiAgICAgIGVsLmNsYXNzTGlzdC5hZGQoSElEREVOKTtcbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgcmVzaXplID0gZGVib3VuY2UoKCkgPT4ge1xuICBjb25zdCBoaWRkZW4gPSB3aW5kb3cuaW5uZXJXaWR0aCA8IEhJREVfTUFYX1dJRFRIO1xuICBmb3JFYWNoKHNlbGVjdChMSVNUKSwgbGlzdCA9PiB7XG4gICAgbGlzdC5jbGFzc0xpc3QudG9nZ2xlKEhJRERFTiwgaGlkZGVuKTtcbiAgfSk7XG59LCBERUJPVU5DRV9SQVRFKTtcblxubW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcih7XG4gIFsgQ0xJQ0sgXToge1xuICAgIFsgQlVUVE9OIF06IHNob3dQYW5lbCxcbiAgfSxcbn0sIHtcbiAgLy8gZXhwb3J0IGZvciB1c2UgZWxzZXdoZXJlXG4gIEhJREVfTUFYX1dJRFRILFxuICBERUJPVU5DRV9SQVRFLFxuXG4gIGluaXQ6IHRhcmdldCA9PiB7XG4gICAgcmVzaXplKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHJlc2l6ZSk7XG4gIH0sXG5cbiAgdGVhcmRvd246IHRhcmdldCA9PiB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHJlc2l6ZSk7XG4gIH0sXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBhY2NvcmRpb246ICByZXF1aXJlKCcuL2FjY29yZGlvbicpLFxuICBiYW5uZXI6ICAgICByZXF1aXJlKCcuL2Jhbm5lcicpLFxuICBmb290ZXI6ICAgICByZXF1aXJlKCcuL2Zvb3RlcicpLFxuICBuYXZpZ2F0aW9uOiByZXF1aXJlKCcuL25hdmlnYXRpb24nKSxcbiAgcGFzc3dvcmQ6ICAgcmVxdWlyZSgnLi9wYXNzd29yZCcpLFxuICBzZWFyY2g6ICAgICByZXF1aXJlKCcuL3NlYXJjaCcpLFxuICBza2lwbmF2OiAgICByZXF1aXJlKCcuL3NraXBuYXYnKSxcbiAgdmFsaWRhdG9yOiAgcmVxdWlyZSgnLi92YWxpZGF0b3InKSxcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZSgnLi4vdXRpbHMvYmVoYXZpb3InKTtcbmNvbnN0IGZvckVhY2ggPSByZXF1aXJlKCdhcnJheS1mb3JlYWNoJyk7XG5jb25zdCBzZWxlY3QgPSByZXF1aXJlKCcuLi91dGlscy9zZWxlY3QnKTtcbmNvbnN0IGFjY29yZGlvbiA9IHJlcXVpcmUoJy4vYWNjb3JkaW9uJyk7XG5cbmNvbnN0IENMSUNLID0gcmVxdWlyZSgnLi4vZXZlbnRzJykuQ0xJQ0s7XG5jb25zdCBQUkVGSVggPSByZXF1aXJlKCcuLi9jb25maWcnKS5wcmVmaXg7XG5cbmNvbnN0IENPTlRFWFQgPSAnaGVhZGVyJztcbmNvbnN0IE5BViA9IGAuJHtQUkVGSVh9LW5hdmA7XG5jb25zdCBOQVZfTElOS1MgPSBgJHtOQVZ9IGFgO1xuY29uc3QgT1BFTkVSUyA9IGAuJHtQUkVGSVh9LW1lbnUtYnRuYDtcbmNvbnN0IENMT1NFX0JVVFRPTiA9IGAuJHtQUkVGSVh9LW5hdi1jbG9zZWA7XG5jb25zdCBPVkVSTEFZID0gYC4ke1BSRUZJWH0tb3ZlcmxheWA7XG5jb25zdCBDTE9TRVJTID0gYCR7Q0xPU0VfQlVUVE9OfSwgLiR7UFJFRklYfS1vdmVybGF5YDtcbmNvbnN0IFRPR0dMRVMgPSBbIE5BViwgT1ZFUkxBWSBdLmpvaW4oJywgJyk7XG5cbmNvbnN0IEFDVElWRV9DTEFTUyA9ICd1c2EtbW9iaWxlX25hdi1hY3RpdmUnO1xuY29uc3QgVklTSUJMRV9DTEFTUyA9ICdpcy12aXNpYmxlJztcblxuY29uc3QgdG9nZ2xlTmF2ID0gZnVuY3Rpb24gKGFjdGl2ZSkge1xuICBjb25zdCBib2R5ID0gZG9jdW1lbnQuYm9keTtcbiAgaWYgKHR5cGVvZiBhY3RpdmUgIT09ICdib29sZWFuJykge1xuICAgIGFjdGl2ZSA9ICFib2R5LmNsYXNzTGlzdC5jb250YWlucyhBQ1RJVkVfQ0xBU1MpO1xuICB9XG4gIGJvZHkuY2xhc3NMaXN0LnRvZ2dsZShBQ1RJVkVfQ0xBU1MsIGFjdGl2ZSk7XG5cbiAgY29uc3QgY29udGV4dCA9IHRoaXMuY2xvc2VzdChDT05URVhUKTtcbiAgZm9yRWFjaChzZWxlY3QoVE9HR0xFUyksIGVsID0+IHtcbiAgICBlbC5jbGFzc0xpc3QudG9nZ2xlKFZJU0lCTEVfQ0xBU1MpO1xuICB9KTtcblxuICBpZiAoYWN0aXZlICYmIGNvbnRleHQpIHtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IGNvbnRleHQucXVlcnlTZWxlY3RvcihDTE9TRV9CVVRUT04pO1xuICAgIGlmIChjbG9zZUJ1dHRvbikge1xuICAgICAgY2xvc2VCdXR0b24uZm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFjdGl2ZTtcbn07XG5cbmNvbnN0IG5hdmlnYXRpb24gPSBiZWhhdmlvcih7XG4gIFsgQ0xJQ0sgXToge1xuICAgIFsgT1BFTkVSUyBdOiB0b2dnbGVOYXYsXG4gICAgWyBDTE9TRVJTIF06IHRvZ2dsZU5hdixcbiAgICBbIE5BVl9MSU5LUyBdOiBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBBIG5hdmlnYXRpb24gbGluayBoYXMgYmVlbiBjbGlja2VkISBXZSB3YW50IHRvIGNvbGxhcHNlIGFueVxuICAgICAgLy8gaGllcmFyY2hpY2FsIG5hdmlnYXRpb24gVUkgaXQncyBhIHBhcnQgb2YsIHNvIHRoYXQgdGhlIHVzZXJcbiAgICAgIC8vIGNhbiBmb2N1cyBvbiB3aGF0ZXZlciB0aGV5J3ZlIGp1c3Qgc2VsZWN0ZWQuXG5cbiAgICAgIC8vIFNvbWUgbmF2aWdhdGlvbiBsaW5rcyBhcmUgaW5zaWRlIGFjY29yZGlvbnM7IHdoZW4gdGhleSdyZVxuICAgICAgLy8gY2xpY2tlZCwgd2Ugd2FudCB0byBjb2xsYXBzZSB0aG9zZSBhY2NvcmRpb25zLlxuICAgICAgY29uc3QgYWNjID0gdGhpcy5jbG9zZXN0KGFjY29yZGlvbi5BQ0NPUkRJT04pO1xuICAgICAgaWYgKGFjYykge1xuICAgICAgICBhY2NvcmRpb24uZ2V0QnV0dG9ucyhhY2MpLmZvckVhY2goYnRuID0+IGFjY29yZGlvbi5oaWRlKGJ0bikpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgbW9iaWxlIG5hdmlnYXRpb24gbWVudSBpcyBhY3RpdmUsIHdlIHdhbnQgdG8gaGlkZSBpdC5cbiAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhBQ1RJVkVfQ0xBU1MpKSB7XG4gICAgICAgIHRvZ2dsZU5hdi5jYWxsKHRoaXMpO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59KTtcblxuLyoqXG4gKiBUT0RPIGZvciAyLjAsIHJlbW92ZSB0aGlzIHN0YXRlbWVudCBhbmQgZXhwb3J0IGBuYXZpZ2F0aW9uYCBkaXJlY3RseTpcbiAqXG4gKiBtb2R1bGUuZXhwb3J0cyA9IGJlaGF2aW9yKHsuLi59KTtcbiAqL1xuY29uc3QgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ24oXG4gIGVsID0+IG5hdmlnYXRpb24ub24oZWwpLFxuICBuYXZpZ2F0aW9uXG4pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKCcuLi91dGlscy9iZWhhdmlvcicpO1xuY29uc3QgdG9nZ2xlRm9ybUlucHV0ID0gcmVxdWlyZSgnLi4vdXRpbHMvdG9nZ2xlLWZvcm0taW5wdXQnKTtcblxuY29uc3QgQ0xJQ0sgPSByZXF1aXJlKCcuLi9ldmVudHMnKS5DTElDSztcbmNvbnN0IFBSRUZJWCA9IHJlcXVpcmUoJy4uL2NvbmZpZycpLnByZWZpeDtcblxuY29uc3QgTElOSyA9IGAuJHtQUkVGSVh9LXNob3dfcGFzc3dvcmQsIC4ke1BSRUZJWH0tc2hvd19tdWx0aXBhc3N3b3JkYDtcblxuY29uc3QgdG9nZ2xlID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIHRvZ2dsZUZvcm1JbnB1dCh0aGlzKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYmVoYXZpb3Ioe1xuICBbIENMSUNLIF06IHtcbiAgICBbIExJTksgXTogdG9nZ2xlLFxuICB9LFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoJy4uL3V0aWxzL2JlaGF2aW9yJyk7XG5jb25zdCBmb3JFYWNoID0gcmVxdWlyZSgnYXJyYXktZm9yZWFjaCcpO1xuY29uc3QgaWdub3JlID0gcmVxdWlyZSgncmVjZXB0b3IvaWdub3JlJyk7XG5jb25zdCBzZWxlY3QgPSByZXF1aXJlKCcuLi91dGlscy9zZWxlY3QnKTtcblxuY29uc3QgQ0xJQ0sgPSByZXF1aXJlKCcuLi9ldmVudHMnKS5DTElDSztcbmNvbnN0IFBSRUZJWCA9IHJlcXVpcmUoJy4uL2NvbmZpZycpLnByZWZpeDtcblxuY29uc3QgQlVUVE9OID0gJy5qcy1zZWFyY2gtYnV0dG9uJztcbmNvbnN0IEZPUk0gPSAnLmpzLXNlYXJjaC1mb3JtJztcbmNvbnN0IElOUFVUID0gJ1t0eXBlPXNlYXJjaF0nO1xuY29uc3QgQ09OVEVYVCA9ICdoZWFkZXInOyAvLyBYWFhcbmNvbnN0IFZJU1VBTExZX0hJRERFTiA9IGAke1BSRUZJWH0tc3Itb25seWA7XG5cbmxldCBsYXN0QnV0dG9uO1xuXG5jb25zdCBzaG93U2VhcmNoID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIHRvZ2dsZVNlYXJjaCh0aGlzLCB0cnVlKTtcbiAgbGFzdEJ1dHRvbiA9IHRoaXM7XG59O1xuXG5jb25zdCBoaWRlU2VhcmNoID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIHRvZ2dsZVNlYXJjaCh0aGlzLCBmYWxzZSk7XG4gIGxhc3RCdXR0b24gPSB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBnZXRGb3JtID0gYnV0dG9uID0+IHtcbiAgY29uc3QgY29udGV4dCA9IGJ1dHRvbi5jbG9zZXN0KENPTlRFWFQpO1xuICByZXR1cm4gY29udGV4dFxuICAgID8gY29udGV4dC5xdWVyeVNlbGVjdG9yKEZPUk0pXG4gICAgOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKEZPUk0pO1xufTtcblxuY29uc3QgdG9nZ2xlU2VhcmNoID0gKGJ1dHRvbiwgYWN0aXZlKSA9PiB7XG4gIGNvbnN0IGZvcm0gPSBnZXRGb3JtKGJ1dHRvbik7XG4gIGlmICghZm9ybSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gJHtGT1JNfSBmb3VuZCBmb3Igc2VhcmNoIHRvZ2dsZSBpbiAke0NPTlRFWFR9IWApO1xuICB9XG5cbiAgYnV0dG9uLmhpZGRlbiA9IGFjdGl2ZTtcbiAgZm9ybS5jbGFzc0xpc3QudG9nZ2xlKFZJU1VBTExZX0hJRERFTiwgIWFjdGl2ZSk7XG5cbiAgaWYgKGFjdGl2ZSkge1xuICAgIGNvbnN0IGlucHV0ID0gZm9ybS5xdWVyeVNlbGVjdG9yKElOUFVUKTtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfVxuICAgIC8vIHdoZW4gdGhlIHVzZXIgY2xpY2tzIF9vdXRzaWRlXyBvZiB0aGUgZm9ybSB3L2lnbm9yZSgpOiBoaWRlIHRoZVxuICAgIC8vIHNlYXJjaCwgdGhlbiByZW1vdmUgdGhlIGxpc3RlbmVyXG4gICAgY29uc3QgbGlzdGVuZXIgPSBpZ25vcmUoZm9ybSwgZSA9PiB7XG4gICAgICBpZiAobGFzdEJ1dHRvbikge1xuICAgICAgICBoaWRlU2VhcmNoLmNhbGwobGFzdEJ1dHRvbik7XG4gICAgICB9XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoQ0xJQ0ssIGxpc3RlbmVyKTtcbiAgICB9KTtcblxuICAgIC8vIE5vcm1hbGx5IHdlIHdvdWxkIGp1c3QgcnVuIHRoaXMgY29kZSB3aXRob3V0IGEgdGltZW91dCwgYnV0XG4gICAgLy8gSUUxMSBhbmQgRWRnZSB3aWxsIGFjdHVhbGx5IGNhbGwgdGhlIGxpc3RlbmVyICppbW1lZGlhdGVseSogYmVjYXVzZVxuICAgIC8vIHRoZXkgYXJlIGN1cnJlbnRseSBoYW5kbGluZyB0aGlzIGV4YWN0IHR5cGUgb2YgZXZlbnQsIHNvIHdlJ2xsXG4gICAgLy8gbWFrZSBzdXJlIHRoZSBicm93c2VyIGlzIGRvbmUgaGFuZGxpbmcgdGhlIGN1cnJlbnQgY2xpY2sgZXZlbnQsXG4gICAgLy8gaWYgYW55LCBiZWZvcmUgd2UgYXR0YWNoIHRoZSBsaXN0ZW5lci5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihDTElDSywgbGlzdGVuZXIpO1xuICAgIH0sIDApO1xuICB9XG59O1xuXG5jb25zdCBzZWFyY2ggPSBiZWhhdmlvcih7XG4gIFsgQ0xJQ0sgXToge1xuICAgIFsgQlVUVE9OIF06IHNob3dTZWFyY2gsXG4gIH0sXG59LCB7XG4gIGluaXQ6ICh0YXJnZXQpID0+IHtcbiAgICBmb3JFYWNoKHNlbGVjdChCVVRUT04sIHRhcmdldCksIGJ1dHRvbiA9PiB7XG4gICAgICB0b2dnbGVTZWFyY2goYnV0dG9uLCBmYWxzZSk7XG4gICAgfSk7XG4gIH0sXG4gIHRlYXJkb3duOiAodGFyZ2V0KSA9PiB7XG4gICAgLy8gZm9yZ2V0IHRoZSBsYXN0IGJ1dHRvbiBjbGlja2VkXG4gICAgbGFzdEJ1dHRvbiA9IHVuZGVmaW5lZDtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIFRPRE8gZm9yIDIuMCwgcmVtb3ZlIHRoaXMgc3RhdGVtZW50IGFuZCBleHBvcnQgYG5hdmlnYXRpb25gIGRpcmVjdGx5OlxuICpcbiAqIG1vZHVsZS5leHBvcnRzID0gYmVoYXZpb3Ioey4uLn0pO1xuICovXG5jb25zdCBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGFzc2lnbihcbiAgZWwgPT4gc2VhcmNoLm9uKGVsKSxcbiAgc2VhcmNoXG4pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKCcuLi91dGlscy9iZWhhdmlvcicpO1xuY29uc3Qgb25jZSA9IHJlcXVpcmUoJ3JlY2VwdG9yL29uY2UnKTtcblxuY29uc3QgQ0xJQ0sgPSByZXF1aXJlKCcuLi9ldmVudHMnKS5DTElDSztcbmNvbnN0IFBSRUZJWCA9IHJlcXVpcmUoJy4uL2NvbmZpZycpLnByZWZpeDtcbmNvbnN0IExJTksgPSBgLiR7UFJFRklYfS1za2lwbmF2W2hyZWZePVwiI1wiXWA7XG5cbmNvbnN0IHNldFRhYmluZGV4ID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIC8vIE5COiB3ZSBrbm93IGJlY2F1c2Ugb2YgdGhlIHNlbGVjdG9yIHdlJ3JlIGRlbGVnYXRpbmcgdG8gYmVsb3cgdGhhdCB0aGVcbiAgLy8gaHJlZiBhbHJlYWR5IGJlZ2lucyB3aXRoICcjJ1xuICBjb25zdCBpZCA9IHRoaXMuZ2V0QXR0cmlidXRlKCdocmVmJykuc2xpY2UoMSk7XG4gIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgaWYgKHRhcmdldCkge1xuICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgMCk7XG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBvbmNlKGV2ZW50ID0+IHtcbiAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgLTEpO1xuICAgIH0pKTtcbiAgfSBlbHNlIHtcbiAgICAvLyB0aHJvdyBhbiBlcnJvcj9cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcih7XG4gIFsgQ0xJQ0sgXToge1xuICAgIFsgTElOSyBdOiBzZXRUYWJpbmRleCxcbiAgfSxcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKCcuLi91dGlscy9iZWhhdmlvcicpO1xuY29uc3QgdmFsaWRhdGUgPSByZXF1aXJlKCcuLi91dGlscy92YWxpZGF0ZS1pbnB1dCcpO1xuY29uc3QgZGVib3VuY2UgPSByZXF1aXJlKCdsb2Rhc2guZGVib3VuY2UnKTtcblxuY29uc3QgY2hhbmdlID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIHJldHVybiB2YWxpZGF0ZSh0aGlzKTtcbn07XG5cbmNvbnN0IHZhbGlkYXRvciA9IGJlaGF2aW9yKHtcbiAgJ2tleXVwIGNoYW5nZSc6IHtcbiAgICAnaW5wdXRbZGF0YS12YWxpZGF0aW9uLWVsZW1lbnRdJzogY2hhbmdlLFxuICB9LFxufSk7XG5cbi8qKlxuICogVE9ETyBmb3IgMi4wLCByZW1vdmUgdGhpcyBzdGF0ZW1lbnQgYW5kIGV4cG9ydCBgbmF2aWdhdGlvbmAgZGlyZWN0bHk6XG4gKlxuICogbW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcih7Li4ufSk7XG4gKi9cbmNvbnN0IGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcbm1vZHVsZS5leHBvcnRzID0gYXNzaWduKFxuICBlbCA9PiB2YWxpZGF0b3Iub24oZWwpLFxuICB2YWxpZGF0b3Jcbik7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgcHJlZml4OiAndXNhJyxcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gVGhpcyB1c2VkIHRvIGJlIGNvbmRpdGlvbmFsbHkgZGVwZW5kZW50IG9uIHdoZXRoZXIgdGhlXG4gIC8vIGJyb3dzZXIgc3VwcG9ydGVkIHRvdWNoIGV2ZW50czsgaWYgaXQgZGlkLCBgQ0xJQ0tgIHdhcyBzZXQgdG9cbiAgLy8gYHRvdWNoc3RhcnRgLiAgSG93ZXZlciwgdGhpcyBoYWQgZG93bnNpZGVzOlxuICAvL1xuICAvLyAqIEl0IHByZS1lbXB0ZWQgbW9iaWxlIGJyb3dzZXJzJyBkZWZhdWx0IGJlaGF2aW9yIG9mIGRldGVjdGluZ1xuICAvLyAgIHdoZXRoZXIgYSB0b3VjaCB0dXJuZWQgaW50byBhIHNjcm9sbCwgdGhlcmVieSBwcmV2ZW50aW5nXG4gIC8vICAgdXNlcnMgZnJvbSB1c2luZyBzb21lIG9mIG91ciBjb21wb25lbnRzIGFzIHNjcm9sbCBzdXJmYWNlcy5cbiAgLy9cbiAgLy8gKiBTb21lIGRldmljZXMsIHN1Y2ggYXMgdGhlIE1pY3Jvc29mdCBTdXJmYWNlIFBybywgc3VwcG9ydCAqYm90aCpcbiAgLy8gICB0b3VjaCBhbmQgY2xpY2tzLiBUaGlzIG1lYW50IHRoZSBjb25kaXRpb25hbCBlZmZlY3RpdmVseSBkcm9wcGVkXG4gIC8vICAgc3VwcG9ydCBmb3IgdGhlIHVzZXIncyBtb3VzZSwgZnJ1c3RyYXRpbmcgdXNlcnMgd2hvIHByZWZlcnJlZFxuICAvLyAgIGl0IG9uIHRob3NlIHN5c3RlbXMuXG4gIENMSUNLOiAnY2xpY2snLFxufTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGVscHJvdG8gPSB3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlO1xuY29uc3QgSElEREVOID0gJ2hpZGRlbic7XG5cbmlmICghKEhJRERFTiBpbiBlbHByb3RvKSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxwcm90bywgSElEREVOLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoSElEREVOKTtcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoSElEREVOLCAnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShISURERU4pO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gcG9seWZpbGxzIEhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGFzc0xpc3QgYW5kIERPTVRva2VuTGlzdFxucmVxdWlyZSgnY2xhc3NsaXN0LXBvbHlmaWxsJyk7XG4vLyBwb2x5ZmlsbHMgSFRNTEVsZW1lbnQucHJvdG90eXBlLmhpZGRlblxucmVxdWlyZSgnLi9lbGVtZW50LWhpZGRlbicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgZG9tcmVhZHkgPSByZXF1aXJlKCdkb21yZWFkeScpO1xuXG4vKipcbiAqIFRoZSAncG9seWZpbGxzJyBkZWZpbmUga2V5IEVDTUFTY3JpcHQgNSBtZXRob2RzIHRoYXQgbWF5IGJlIG1pc3NpbmcgZnJvbVxuICogb2xkZXIgYnJvd3NlcnMsIHNvIG11c3QgYmUgbG9hZGVkIGZpcnN0LlxuICovXG5yZXF1aXJlKCcuL3BvbHlmaWxscycpO1xuXG5jb25zdCB1c3dkcyA9IHJlcXVpcmUoJy4vY29uZmlnJyk7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSByZXF1aXJlKCcuL2NvbXBvbmVudHMnKTtcbnVzd2RzLmNvbXBvbmVudHMgPSBjb21wb25lbnRzO1xuXG5kb21yZWFkeSgoKSA9PiB7XG4gIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LmJvZHk7XG4gIGZvciAobGV0IG5hbWUgaW4gY29tcG9uZW50cykge1xuICAgIGNvbnN0IGJlaGF2aW9yID0gY29tcG9uZW50c1sgbmFtZSBdO1xuICAgIGJlaGF2aW9yLm9uKHRhcmdldCk7XG4gIH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVzd2RzO1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuY29uc3QgZm9yRWFjaCA9IHJlcXVpcmUoJ2FycmF5LWZvcmVhY2gnKTtcbmNvbnN0IEJlaGF2aW9yID0gcmVxdWlyZSgncmVjZXB0b3IvYmVoYXZpb3InKTtcblxuY29uc3Qgc2VxdWVuY2UgPSBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHNlcSA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcbiAgICB9XG4gICAgZm9yRWFjaChzZXEsIG1ldGhvZCA9PiB7XG4gICAgICBpZiAodHlwZW9mIHRoaXNbIG1ldGhvZCBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXNbIG1ldGhvZCBdLmNhbGwodGhpcywgdGFyZ2V0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn07XG5cbi8qKlxuICogQG5hbWUgYmVoYXZpb3JcbiAqIEBwYXJhbSB7b2JqZWN0fSBldmVudHNcbiAqIEBwYXJhbSB7b2JqZWN0P30gcHJvcHNcbiAqIEByZXR1cm4ge3JlY2VwdG9yLmJlaGF2aW9yfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IChldmVudHMsIHByb3BzKSA9PiB7XG4gIHJldHVybiBCZWhhdmlvcihldmVudHMsIGFzc2lnbih7XG4gICAgb246ICAgc2VxdWVuY2UoJ2luaXQnLCAnYWRkJyksXG4gICAgb2ZmOiAgc2VxdWVuY2UoJ3RlYXJkb3duJywgJ3JlbW92ZScpLFxuICB9LCBwcm9wcykpO1xufTtcbiIsIi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83NTU3NDMzXG5mdW5jdGlvbiBpc0VsZW1lbnRJblZpZXdwb3J0IChlbCwgd2luPXdpbmRvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY0VsPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIHJldHVybiAoXG4gICAgcmVjdC50b3AgPj0gMCAmJlxuICAgIHJlY3QubGVmdCA+PSAwICYmXG4gICAgcmVjdC5ib3R0b20gPD0gKHdpbi5pbm5lckhlaWdodCB8fCBkb2NFbC5jbGllbnRIZWlnaHQpICYmXG4gICAgcmVjdC5yaWdodCA8PSAod2luLmlubmVyV2lkdGggfHwgZG9jRWwuY2xpZW50V2lkdGgpXG4gICk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNFbGVtZW50SW5WaWV3cG9ydDtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBAbmFtZSBpc0VsZW1lbnRcbiAqIEBkZXNjIHJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGdpdmVuIGFyZ3VtZW50IGlzIGEgRE9NIGVsZW1lbnQuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGlzRWxlbWVudCA9IHZhbHVlID0+IHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUubm9kZVR5cGUgPT09IDE7XG59O1xuXG4vKipcbiAqIEBuYW1lIHNlbGVjdFxuICogQGRlc2Mgc2VsZWN0cyBlbGVtZW50cyBmcm9tIHRoZSBET00gYnkgY2xhc3Mgc2VsZWN0b3Igb3IgSUQgc2VsZWN0b3IuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3IgLSBUaGUgc2VsZWN0b3IgdG8gdHJhdmVyc2UgdGhlIERPTSB3aXRoLlxuICogQHBhcmFtIHtEb2N1bWVudHxIVE1MRWxlbWVudD99IGNvbnRleHQgLSBUaGUgY29udGV4dCB0byB0cmF2ZXJzZSB0aGUgRE9NXG4gKiAgIGluLiBJZiBub3QgcHJvdmlkZWQsIGl0IGRlZmF1bHRzIHRvIHRoZSBkb2N1bWVudC5cbiAqIEByZXR1cm4ge0hUTUxFbGVtZW50W119IC0gQW4gYXJyYXkgb2YgRE9NIG5vZGVzIG9yIGFuIGVtcHR5IGFycmF5LlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHNlbGVjdCAoc2VsZWN0b3IsIGNvbnRleHQpIHtcblxuICBpZiAodHlwZW9mIHNlbGVjdG9yICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGlmICghY29udGV4dCB8fCAhaXNFbGVtZW50KGNvbnRleHQpKSB7XG4gICAgY29udGV4dCA9IHdpbmRvdy5kb2N1bWVudDtcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGlvbiA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChzZWxlY3Rpb24pO1xufTtcbiIsIi8qKlxuICogRmxpcHMgZ2l2ZW4gSU5QVVQgZWxlbWVudHMgYmV0d2VlbiBtYXNrZWQgKGhpZGluZyB0aGUgZmllbGQgdmFsdWUpIGFuZCB1bm1hc2tlZFxuICogQHBhcmFtIHtBcnJheS5IVE1MRWxlbWVudH0gZmllbGRzIC0gQW4gYXJyYXkgb2YgSU5QVVQgZWxlbWVudHNcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gbWFzayAtIFdoZXRoZXIgdGhlIG1hc2sgc2hvdWxkIGJlIGFwcGxpZWQsIGhpZGluZyB0aGUgZmllbGQgdmFsdWVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSAoZmllbGQsIG1hc2spID0+IHtcbiAgZmllbGQuc2V0QXR0cmlidXRlKCdhdXRvY2FwaXRhbGl6ZScsICdvZmYnKTtcbiAgZmllbGQuc2V0QXR0cmlidXRlKCdhdXRvY29ycmVjdCcsICdvZmYnKTtcbiAgZmllbGQuc2V0QXR0cmlidXRlKCd0eXBlJywgbWFzayA/ICdwYXNzd29yZCcgOiAndGV4dCcpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGZvckVhY2ggPSByZXF1aXJlKCdhcnJheS1mb3JlYWNoJyk7XG5jb25zdCByZXNvbHZlSWRSZWZzID0gcmVxdWlyZSgncmVzb2x2ZS1pZC1yZWZzJyk7XG5jb25zdCBzZWxlY3QgPSByZXF1aXJlKCcuL3NlbGVjdCcpO1xuY29uc3QgdG9nZ2xlRmllbGRNYXNrID0gcmVxdWlyZSgnLi90b2dnbGUtZmllbGQtbWFzaycpO1xuXG5jb25zdCBDT05UUk9MUyA9ICdhcmlhLWNvbnRyb2xzJztcbmNvbnN0IFBSRVNTRUQgPSAnYXJpYS1wcmVzc2VkJztcbmNvbnN0IFNIT1dfQVRUUiA9ICdkYXRhLXNob3ctdGV4dCc7XG5jb25zdCBISURFX0FUVFIgPSAnZGF0YS1oaWRlLXRleHQnO1xuXG4vKipcbiAqIFJlcGxhY2UgdGhlIHdvcmQgXCJTaG93XCIgKG9yIFwic2hvd1wiKSB3aXRoIFwiSGlkZVwiIChvciBcImhpZGVcIikgaW4gYSBzdHJpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2hvd1RleHRcbiAqIEByZXR1cm4ge3N0cm9uZ30gaGlkZVRleHRcbiAqL1xuY29uc3QgZ2V0SGlkZVRleHQgPSBzaG93VGV4dCA9PiB7XG4gIHJldHVybiBzaG93VGV4dC5yZXBsYWNlKC9cXGJTaG93XFxiL2ksIHNob3cgPT4ge1xuICAgIHJldHVybiAoJ1MnID09PSBzaG93WyAwIF0gPyAnSCcgOiAnaCcpICsgJ2lkZSc7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCBkZWNvcmF0ZXMgYW4gSFRNTCBlbGVtZW50IHdpdGggdGhlIGFiaWxpdHkgdG8gdG9nZ2xlIHRoZVxuICogbWFza2VkIHN0YXRlIG9mIGFuIGlucHV0IGZpZWxkIChsaWtlIGEgcGFzc3dvcmQpIHdoZW4gY2xpY2tlZC5cbiAqIFRoZSBpZHMgb2YgdGhlIGZpZWxkcyB0byBiZSBtYXNrZWQgd2lsbCBiZSBwdWxsZWQgZGlyZWN0bHkgZnJvbSB0aGUgYnV0dG9uJ3NcbiAqIGBhcmlhLWNvbnRyb2xzYCBhdHRyaWJ1dGUuXG4gKlxuICogQHBhcmFtICB7SFRNTEVsZW1lbnR9IGVsICAgIFBhcmVudCBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIGZpZWxkcyB0byBiZSBtYXNrZWRcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZWwgPT4ge1xuICAvLyB0aGlzIGlzIHRoZSAqdGFyZ2V0KiBzdGF0ZTpcbiAgLy8gKiBpZiB0aGUgZWxlbWVudCBoYXMgdGhlIGF0dHIgYW5kIGl0J3MgIT09IFwidHJ1ZVwiLCBwcmVzc2VkIGlzIHRydWVcbiAgLy8gKiBvdGhlcndpc2UsIHByZXNzZWQgaXMgZmFsc2VcbiAgY29uc3QgcHJlc3NlZCA9IGVsLmhhc0F0dHJpYnV0ZShQUkVTU0VEKVxuICAgICYmIGVsLmdldEF0dHJpYnV0ZShQUkVTU0VEKSAhPT0gJ3RydWUnO1xuXG4gIGNvbnN0IGZpZWxkcyA9IHJlc29sdmVJZFJlZnMoZWwuZ2V0QXR0cmlidXRlKENPTlRST0xTKSk7XG4gIGZvckVhY2goZmllbGRzLCBmaWVsZCA9PiB0b2dnbGVGaWVsZE1hc2soZmllbGQsIHByZXNzZWQpKTtcblxuICBpZiAoIWVsLmhhc0F0dHJpYnV0ZShTSE9XX0FUVFIpKSB7XG4gICAgZWwuc2V0QXR0cmlidXRlKFNIT1dfQVRUUiwgZWwudGV4dENvbnRlbnQpO1xuICB9XG5cbiAgY29uc3Qgc2hvd1RleHQgPSBlbC5nZXRBdHRyaWJ1dGUoU0hPV19BVFRSKTtcbiAgY29uc3QgaGlkZVRleHQgPSBlbC5nZXRBdHRyaWJ1dGUoSElERV9BVFRSKSB8fCBnZXRIaWRlVGV4dChzaG93VGV4dCk7XG5cbiAgZWwudGV4dENvbnRlbnQgPSBwcmVzc2VkID8gc2hvd1RleHQgOiBoaWRlVGV4dDtcbiAgZWwuc2V0QXR0cmlidXRlKFBSRVNTRUQsIHByZXNzZWQpO1xuICByZXR1cm4gcHJlc3NlZDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBFWFBBTkRFRCA9ICdhcmlhLWV4cGFuZGVkJztcbmNvbnN0IENPTlRST0xTID0gJ2FyaWEtY29udHJvbHMnO1xuY29uc3QgSElEREVOID0gJ2FyaWEtaGlkZGVuJztcblxubW9kdWxlLmV4cG9ydHMgPSAoYnV0dG9uLCBleHBhbmRlZCkgPT4ge1xuXG4gIGlmICh0eXBlb2YgZXhwYW5kZWQgIT09ICdib29sZWFuJykge1xuICAgIGV4cGFuZGVkID0gYnV0dG9uLmdldEF0dHJpYnV0ZShFWFBBTkRFRCkgPT09ICdmYWxzZSc7XG4gIH1cbiAgYnV0dG9uLnNldEF0dHJpYnV0ZShFWFBBTkRFRCwgZXhwYW5kZWQpO1xuXG4gIGNvbnN0IGlkID0gYnV0dG9uLmdldEF0dHJpYnV0ZShDT05UUk9MUyk7XG4gIGNvbnN0IGNvbnRyb2xzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICBpZiAoIWNvbnRyb2xzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05vIHRvZ2dsZSB0YXJnZXQgZm91bmQgd2l0aCBpZDogXCInICsgaWQgKyAnXCInXG4gICAgKTtcbiAgfVxuXG4gIGNvbnRyb2xzLnNldEF0dHJpYnV0ZShISURERU4sICFleHBhbmRlZCk7XG4gIHJldHVybiBleHBhbmRlZDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBkYXRhc2V0ID0gcmVxdWlyZSgnZWxlbS1kYXRhc2V0Jyk7XG5cbmNvbnN0IFBSRUZJWCA9IHJlcXVpcmUoJy4uL2NvbmZpZycpLnByZWZpeDtcbmNvbnN0IENIRUNLRUQgPSAnYXJpYS1jaGVja2VkJztcbmNvbnN0IENIRUNLRURfQ0xBU1MgPSBgJHtQUkVGSVh9LWNoZWNrbGlzdC1jaGVja2VkYDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB2YWxpZGF0ZSAoZWwpIHtcbiAgY29uc3QgZGF0YSA9IGRhdGFzZXQoZWwpO1xuICBjb25zdCBpZCA9IGRhdGEudmFsaWRhdGlvbkVsZW1lbnQ7XG4gIGNvbnN0IGNoZWNrTGlzdCA9IGlkLmNoYXJBdCgwKSA9PT0gJyMnXG4gICAgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGlkKVxuICAgIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuXG4gIGlmICghY2hlY2tMaXN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE5vIHZhbGlkYXRpb24gZWxlbWVudCBmb3VuZCB3aXRoIGlkOiBcIiR7aWR9XCJgXG4gICAgKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ3ZhbGlkYXRlJykpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvck5hbWUgPSBrZXkuc3Vic3RyKCd2YWxpZGF0ZScubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgdmFsaWRhdG9yUGF0dGVybiA9IG5ldyBSZWdFeHAoZGF0YVsga2V5IF0pO1xuICAgICAgY29uc3QgdmFsaWRhdG9yU2VsZWN0b3IgPSBgW2RhdGEtdmFsaWRhdG9yPVwiJHt2YWxpZGF0b3JOYW1lfVwiXWA7XG4gICAgICBjb25zdCB2YWxpZGF0b3JDaGVja2JveCA9IGNoZWNrTGlzdC5xdWVyeVNlbGVjdG9yKHZhbGlkYXRvclNlbGVjdG9yKTtcbiAgICAgIGlmICghdmFsaWRhdG9yQ2hlY2tib3gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBObyB2YWxpZGF0b3IgY2hlY2tib3ggZm91bmQgZm9yOiBcIiR7dmFsaWRhdG9yTmFtZX1cImBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hlY2tlZCA9IHZhbGlkYXRvclBhdHRlcm4udGVzdChlbC52YWx1ZSk7XG4gICAgICB2YWxpZGF0b3JDaGVja2JveC5jbGFzc0xpc3QudG9nZ2xlKENIRUNLRURfQ0xBU1MsIGNoZWNrZWQpO1xuICAgICAgdmFsaWRhdG9yQ2hlY2tib3guc2V0QXR0cmlidXRlKENIRUNLRUQsIGNoZWNrZWQpO1xuICAgIH1cbiAgfVxufTtcbiJdfQ==
1863
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJub2RlX21vZHVsZXMvYXJyYXktZmlsdGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FycmF5LWZvcmVhY2gvaW5kZXguanMiLCJub2RlX21vZHVsZXMvY2xhc3NsaXN0LXBvbHlmaWxsL3NyYy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kb21yZWFkeS9yZWFkeS5qcyIsIm5vZGVfbW9kdWxlcy9lbGVtLWRhdGFzZXQvZGlzdC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9lbGVtZW50LWNsb3Nlc3QvZWxlbWVudC1jbG9zZXN0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC5kZWJvdW5jZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2JlaGF2aW9yL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2NvbXBvc2UvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvZGVsZWdhdGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvZGVsZWdhdGVBbGwvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvaWdub3JlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL29uY2UvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVzb2x2ZS1pZC1yZWZzL2luZGV4LmpzIiwic3JjL2pzL2NvbXBvbmVudHMvYWNjb3JkaW9uLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvYmFubmVyLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvZm9vdGVyLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvaW5kZXguanMiLCJzcmMvanMvY29tcG9uZW50cy9uYXZpZ2F0aW9uLmpzIiwic3JjL2pzL2NvbXBvbmVudHMvcGFzc3dvcmQuanMiLCJzcmMvanMvY29tcG9uZW50cy9zZWFyY2guanMiLCJzcmMvanMvY29tcG9uZW50cy9za2lwbmF2LmpzIiwic3JjL2pzL2NvbXBvbmVudHMvdmFsaWRhdG9yLmpzIiwic3JjL2pzL2NvbmZpZy5qcyIsInNyYy9qcy9ldmVudHMuanMiLCJzcmMvanMvcG9seWZpbGxzL2VsZW1lbnQtaGlkZGVuLmpzIiwic3JjL2pzL3BvbHlmaWxscy9pbmRleC5qcyIsInNyYy9qcy9zdGFydC5qcyIsInNyYy9qcy91dGlscy9iZWhhdmlvci5qcyIsInNyYy9qcy91dGlscy9pcy1pbi12aWV3cG9ydC5qcyIsInNyYy9qcy91dGlscy9zZWxlY3QuanMiLCJzcmMvanMvdXRpbHMvdG9nZ2xlLWZpZWxkLW1hc2suanMiLCJzcmMvanMvdXRpbHMvdG9nZ2xlLWZvcm0taW5wdXQuanMiLCJzcmMvanMvdXRpbHMvdG9nZ2xlLmpzIiwic3JjL2pzL3V0aWxzL3ZhbGlkYXRlLWlucHV0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNDQTs7Ozs7Ozs7OztBQVVBLE9BQU8sT0FBUCxHQUFpQixVQUFVLEdBQVYsRUFBZSxFQUFmLEVBQW1CLElBQW5CLEVBQXlCO0FBQ3hDLE1BQUksSUFBSSxNQUFSLEVBQWdCLE9BQU8sSUFBSSxNQUFKLENBQVcsRUFBWCxFQUFlLElBQWYsQ0FBUDtBQUNoQixNQUFJLEtBQUssQ0FBTCxLQUFXLEdBQVgsSUFBa0IsU0FBUyxHQUEvQixFQUFvQyxNQUFNLElBQUksU0FBSixFQUFOO0FBQ3BDLE1BQUksY0FBYyxPQUFPLEVBQXpCLEVBQTZCLE1BQU0sSUFBSSxTQUFKLEVBQU47QUFDN0IsTUFBSSxNQUFNLEVBQVY7QUFDQSxPQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksSUFBSSxNQUF4QixFQUFnQyxHQUFoQyxFQUFxQztBQUNuQyxRQUFJLENBQUMsT0FBTyxJQUFQLENBQVksR0FBWixFQUFpQixDQUFqQixDQUFMLEVBQTBCO0FBQzFCLFFBQUksTUFBTSxJQUFJLENBQUosQ0FBVjtBQUNBLFFBQUksR0FBRyxJQUFILENBQVEsSUFBUixF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QixXQUE5QixFQUF0QjtBQUNBLFVBQU0sbUJBQW1CLElBQUksTUFBSixDQUFXLEtBQU0sR0FBTixDQUFYLENBQXpCO0FBQ0EsVUFBTSwwQ0FBd0MsYUFBeEMsT0FBTjtBQUNBLFVBQU0sb0JBQW9CLFVBQVUsYUFBVixDQUF3QixpQkFBeEIsQ0FBMUI7QUFDQSxVQUFJLENBQUMsaUJBQUwsRUFBd0I7QUFDdEIsY0FBTSxJQUFJLEtBQUosd0NBQ2lDLGFBRGpDLE9BQU47QUFHRDs7QUFFRCxVQUFNLFVBQVUsaUJBQWlCLElBQWpCLENBQXNCLEdBQUcsS0FBekIsQ0FBaEI7QUFDQSx3QkFBa0IsU0FBbEIsQ0FBNEIsTUFBNUIsQ0FBbUMsYUFBbkMsRUFBa0QsT0FBbEQ7QUFDQSx3QkFBa0IsWUFBbEIsQ0FBK0IsT0FBL0IsRUFBd0MsT0FBeEM7QUFDRDtBQUNGO0FBQ0YsQ0E5QkQiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiXG4vKipcbiAqIEFycmF5I2ZpbHRlci5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcGFyYW0ge09iamVjdD19IHNlbGZcbiAqIEByZXR1cm4ge0FycmF5fVxuICogQHRocm93IFR5cGVFcnJvclxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyciwgZm4sIHNlbGYpIHtcbiAgaWYgKGFyci5maWx0ZXIpIHJldHVybiBhcnIuZmlsdGVyKGZuLCBzZWxmKTtcbiAgaWYgKHZvaWQgMCA9PT0gYXJyIHx8IG51bGwgPT09IGFycikgdGhyb3cgbmV3IFR5cGVFcnJvcjtcbiAgaWYgKCdmdW5jdGlvbicgIT0gdHlwZW9mIGZuKSB0aHJvdyBuZXcgVHlwZUVycm9yO1xuICB2YXIgcmV0ID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCFoYXNPd24uY2FsbChhcnIsIGkpKSBjb250aW51ZTtcbiAgICB2YXIgdmFsID0gYXJyW2ldO1xuICAgIGlmIChmbi5jYWxsKHNlbGYsIHZhbCwgaSwgYXJyKSkgcmV0LnB1c2godmFsKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxudmFyIGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4iLCIvKipcbiAqIGFycmF5LWZvcmVhY2hcbiAqICAgQXJyYXkjZm9yRWFjaCBwb255ZmlsbCBmb3Igb2xkZXIgYnJvd3NlcnNcbiAqICAgKFBvbnlmaWxsOiBBIHBvbHlmaWxsIHRoYXQgZG9lc24ndCBvdmVyd3JpdGUgdGhlIG5hdGl2ZSBtZXRob2QpXG4gKiBcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90d2FkYS9hcnJheS1mb3JlYWNoXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1LTIwMTYgVGFrdXRvIFdhZGFcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqICAgaHR0cHM6Ly9naXRodWIuY29tL3R3YWRhL2FycmF5LWZvcmVhY2gvYmxvYi9tYXN0ZXIvTUlULUxJQ0VOU0VcbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZvckVhY2ggKGFyeSwgY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICBpZiAoYXJ5LmZvckVhY2gpIHtcbiAgICAgICAgYXJ5LmZvckVhY2goY2FsbGJhY2ssIHRoaXNBcmcpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJ5Lmxlbmd0aDsgaSs9MSkge1xuICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIGFyeVtpXSwgaSwgYXJ5KTtcbiAgICB9XG59O1xuIiwiLypcbiAqIGNsYXNzTGlzdC5qczogQ3Jvc3MtYnJvd3NlciBmdWxsIGVsZW1lbnQuY2xhc3NMaXN0IGltcGxlbWVudGF0aW9uLlxuICogMS4xLjIwMTcwNDI3XG4gKlxuICogQnkgRWxpIEdyZXksIGh0dHA6Ly9lbGlncmV5LmNvbVxuICogTGljZW5zZTogRGVkaWNhdGVkIHRvIHRoZSBwdWJsaWMgZG9tYWluLlxuICogICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2VsaWdyZXkvY2xhc3NMaXN0LmpzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWRcbiAqL1xuXG4vKmdsb2JhbCBzZWxmLCBkb2N1bWVudCwgRE9NRXhjZXB0aW9uICovXG5cbi8qISBAc291cmNlIGh0dHA6Ly9wdXJsLmVsaWdyZXkuY29tL2dpdGh1Yi9jbGFzc0xpc3QuanMvYmxvYi9tYXN0ZXIvY2xhc3NMaXN0LmpzICovXG5cbmlmIChcImRvY3VtZW50XCIgaW4gd2luZG93LnNlbGYpIHtcblxuLy8gRnVsbCBwb2x5ZmlsbCBmb3IgYnJvd3NlcnMgd2l0aCBubyBjbGFzc0xpc3Qgc3VwcG9ydFxuLy8gSW5jbHVkaW5nIElFIDwgRWRnZSBtaXNzaW5nIFNWR0VsZW1lbnQuY2xhc3NMaXN0XG5pZiAoIShcImNsYXNzTGlzdFwiIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJfXCIpKSBcblx0fHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TICYmICEoXCJjbGFzc0xpc3RcIiBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwiZ1wiKSkpIHtcblxuKGZ1bmN0aW9uICh2aWV3KSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5pZiAoISgnRWxlbWVudCcgaW4gdmlldykpIHJldHVybjtcblxudmFyXG5cdCAgY2xhc3NMaXN0UHJvcCA9IFwiY2xhc3NMaXN0XCJcblx0LCBwcm90b1Byb3AgPSBcInByb3RvdHlwZVwiXG5cdCwgZWxlbUN0clByb3RvID0gdmlldy5FbGVtZW50W3Byb3RvUHJvcF1cblx0LCBvYmpDdHIgPSBPYmplY3Rcblx0LCBzdHJUcmltID0gU3RyaW5nW3Byb3RvUHJvcF0udHJpbSB8fCBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRoaXMucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgXCJcIik7XG5cdH1cblx0LCBhcnJJbmRleE9mID0gQXJyYXlbcHJvdG9Qcm9wXS5pbmRleE9mIHx8IGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0dmFyXG5cdFx0XHQgIGkgPSAwXG5cdFx0XHQsIGxlbiA9IHRoaXMubGVuZ3RoXG5cdFx0O1xuXHRcdGZvciAoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChpIGluIHRoaXMgJiYgdGhpc1tpXSA9PT0gaXRlbSkge1xuXHRcdFx0XHRyZXR1cm4gaTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIC0xO1xuXHR9XG5cdC8vIFZlbmRvcnM6IHBsZWFzZSBhbGxvdyBjb250ZW50IGNvZGUgdG8gaW5zdGFudGlhdGUgRE9NRXhjZXB0aW9uc1xuXHQsIERPTUV4ID0gZnVuY3Rpb24gKHR5cGUsIG1lc3NhZ2UpIHtcblx0XHR0aGlzLm5hbWUgPSB0eXBlO1xuXHRcdHRoaXMuY29kZSA9IERPTUV4Y2VwdGlvblt0eXBlXTtcblx0XHR0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuXHR9XG5cdCwgY2hlY2tUb2tlbkFuZEdldEluZGV4ID0gZnVuY3Rpb24gKGNsYXNzTGlzdCwgdG9rZW4pIHtcblx0XHRpZiAodG9rZW4gPT09IFwiXCIpIHtcblx0XHRcdHRocm93IG5ldyBET01FeChcblx0XHRcdFx0ICBcIlNZTlRBWF9FUlJcIlxuXHRcdFx0XHQsIFwiQW4gaW52YWxpZCBvciBpbGxlZ2FsIHN0cmluZyB3YXMgc3BlY2lmaWVkXCJcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmICgvXFxzLy50ZXN0KHRva2VuKSkge1xuXHRcdFx0dGhyb3cgbmV3IERPTUV4KFxuXHRcdFx0XHQgIFwiSU5WQUxJRF9DSEFSQUNURVJfRVJSXCJcblx0XHRcdFx0LCBcIlN0cmluZyBjb250YWlucyBhbiBpbnZhbGlkIGNoYXJhY3RlclwiXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gYXJySW5kZXhPZi5jYWxsKGNsYXNzTGlzdCwgdG9rZW4pO1xuXHR9XG5cdCwgQ2xhc3NMaXN0ID0gZnVuY3Rpb24gKGVsZW0pIHtcblx0XHR2YXJcblx0XHRcdCAgdHJpbW1lZENsYXNzZXMgPSBzdHJUcmltLmNhbGwoZWxlbS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSB8fCBcIlwiKVxuXHRcdFx0LCBjbGFzc2VzID0gdHJpbW1lZENsYXNzZXMgPyB0cmltbWVkQ2xhc3Nlcy5zcGxpdCgvXFxzKy8pIDogW11cblx0XHRcdCwgaSA9IDBcblx0XHRcdCwgbGVuID0gY2xhc3Nlcy5sZW5ndGhcblx0XHQ7XG5cdFx0Zm9yICg7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0dGhpcy5wdXNoKGNsYXNzZXNbaV0pO1xuXHRcdH1cblx0XHR0aGlzLl91cGRhdGVDbGFzc05hbWUgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRlbGVtLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIHRoaXMudG9TdHJpbmcoKSk7XG5cdFx0fTtcblx0fVxuXHQsIGNsYXNzTGlzdFByb3RvID0gQ2xhc3NMaXN0W3Byb3RvUHJvcF0gPSBbXVxuXHQsIGNsYXNzTGlzdEdldHRlciA9IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gbmV3IENsYXNzTGlzdCh0aGlzKTtcblx0fVxuO1xuLy8gTW9zdCBET01FeGNlcHRpb24gaW1wbGVtZW50YXRpb25zIGRvbid0IGFsbG93IGNhbGxpbmcgRE9NRXhjZXB0aW9uJ3MgdG9TdHJpbmcoKVxuLy8gb24gbm9uLURPTUV4Y2VwdGlvbnMuIEVycm9yJ3MgdG9TdHJpbmcoKSBpcyBzdWZmaWNpZW50IGhlcmUuXG5ET01FeFtwcm90b1Byb3BdID0gRXJyb3JbcHJvdG9Qcm9wXTtcbmNsYXNzTGlzdFByb3RvLml0ZW0gPSBmdW5jdGlvbiAoaSkge1xuXHRyZXR1cm4gdGhpc1tpXSB8fCBudWxsO1xufTtcbmNsYXNzTGlzdFByb3RvLmNvbnRhaW5zID0gZnVuY3Rpb24gKHRva2VuKSB7XG5cdHRva2VuICs9IFwiXCI7XG5cdHJldHVybiBjaGVja1Rva2VuQW5kR2V0SW5kZXgodGhpcywgdG9rZW4pICE9PSAtMTtcbn07XG5jbGFzc0xpc3RQcm90by5hZGQgPSBmdW5jdGlvbiAoKSB7XG5cdHZhclxuXHRcdCAgdG9rZW5zID0gYXJndW1lbnRzXG5cdFx0LCBpID0gMFxuXHRcdCwgbCA9IHRva2Vucy5sZW5ndGhcblx0XHQsIHRva2VuXG5cdFx0LCB1cGRhdGVkID0gZmFsc2Vcblx0O1xuXHRkbyB7XG5cdFx0dG9rZW4gPSB0b2tlbnNbaV0gKyBcIlwiO1xuXHRcdGlmIChjaGVja1Rva2VuQW5kR2V0SW5kZXgodGhpcywgdG9rZW4pID09PSAtMSkge1xuXHRcdFx0dGhpcy5wdXNoKHRva2VuKTtcblx0XHRcdHVwZGF0ZWQgPSB0cnVlO1xuXHRcdH1cblx0fVxuXHR3aGlsZSAoKytpIDwgbCk7XG5cblx0aWYgKHVwZGF0ZWQpIHtcblx0XHR0aGlzLl91cGRhdGVDbGFzc05hbWUoKTtcblx0fVxufTtcbmNsYXNzTGlzdFByb3RvLnJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0dmFyXG5cdFx0ICB0b2tlbnMgPSBhcmd1bWVudHNcblx0XHQsIGkgPSAwXG5cdFx0LCBsID0gdG9rZW5zLmxlbmd0aFxuXHRcdCwgdG9rZW5cblx0XHQsIHVwZGF0ZWQgPSBmYWxzZVxuXHRcdCwgaW5kZXhcblx0O1xuXHRkbyB7XG5cdFx0dG9rZW4gPSB0b2tlbnNbaV0gKyBcIlwiO1xuXHRcdGluZGV4ID0gY2hlY2tUb2tlbkFuZEdldEluZGV4KHRoaXMsIHRva2VuKTtcblx0XHR3aGlsZSAoaW5kZXggIT09IC0xKSB7XG5cdFx0XHR0aGlzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHR1cGRhdGVkID0gdHJ1ZTtcblx0XHRcdGluZGV4ID0gY2hlY2tUb2tlbkFuZEdldEluZGV4KHRoaXMsIHRva2VuKTtcblx0XHR9XG5cdH1cblx0d2hpbGUgKCsraSA8IGwpO1xuXG5cdGlmICh1cGRhdGVkKSB7XG5cdFx0dGhpcy5fdXBkYXRlQ2xhc3NOYW1lKCk7XG5cdH1cbn07XG5jbGFzc0xpc3RQcm90by50b2dnbGUgPSBmdW5jdGlvbiAodG9rZW4sIGZvcmNlKSB7XG5cdHRva2VuICs9IFwiXCI7XG5cblx0dmFyXG5cdFx0ICByZXN1bHQgPSB0aGlzLmNvbnRhaW5zKHRva2VuKVxuXHRcdCwgbWV0aG9kID0gcmVzdWx0ID9cblx0XHRcdGZvcmNlICE9PSB0cnVlICYmIFwicmVtb3ZlXCJcblx0XHQ6XG5cdFx0XHRmb3JjZSAhPT0gZmFsc2UgJiYgXCJhZGRcIlxuXHQ7XG5cblx0aWYgKG1ldGhvZCkge1xuXHRcdHRoaXNbbWV0aG9kXSh0b2tlbik7XG5cdH1cblxuXHRpZiAoZm9yY2UgPT09IHRydWUgfHwgZm9yY2UgPT09IGZhbHNlKSB7XG5cdFx0cmV0dXJuIGZvcmNlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiAhcmVzdWx0O1xuXHR9XG59O1xuY2xhc3NMaXN0UHJvdG8udG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG5cdHJldHVybiB0aGlzLmpvaW4oXCIgXCIpO1xufTtcblxuaWYgKG9iakN0ci5kZWZpbmVQcm9wZXJ0eSkge1xuXHR2YXIgY2xhc3NMaXN0UHJvcERlc2MgPSB7XG5cdFx0ICBnZXQ6IGNsYXNzTGlzdEdldHRlclxuXHRcdCwgZW51bWVyYWJsZTogdHJ1ZVxuXHRcdCwgY29uZmlndXJhYmxlOiB0cnVlXG5cdH07XG5cdHRyeSB7XG5cdFx0b2JqQ3RyLmRlZmluZVByb3BlcnR5KGVsZW1DdHJQcm90bywgY2xhc3NMaXN0UHJvcCwgY2xhc3NMaXN0UHJvcERlc2MpO1xuXHR9IGNhdGNoIChleCkgeyAvLyBJRSA4IGRvZXNuJ3Qgc3VwcG9ydCBlbnVtZXJhYmxlOnRydWVcblx0XHQvLyBhZGRpbmcgdW5kZWZpbmVkIHRvIGZpZ2h0IHRoaXMgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL2VsaWdyZXkvY2xhc3NMaXN0LmpzL2lzc3Vlcy8zNlxuXHRcdC8vIG1vZGVybmllIElFOC1NU1c3IG1hY2hpbmUgaGFzIElFOCA4LjAuNjAwMS4xODcwMiBhbmQgaXMgYWZmZWN0ZWRcblx0XHRpZiAoZXgubnVtYmVyID09PSB1bmRlZmluZWQgfHwgZXgubnVtYmVyID09PSAtMHg3RkY1RUM1NCkge1xuXHRcdFx0Y2xhc3NMaXN0UHJvcERlc2MuZW51bWVyYWJsZSA9IGZhbHNlO1xuXHRcdFx0b2JqQ3RyLmRlZmluZVByb3BlcnR5KGVsZW1DdHJQcm90bywgY2xhc3NMaXN0UHJvcCwgY2xhc3NMaXN0UHJvcERlc2MpO1xuXHRcdH1cblx0fVxufSBlbHNlIGlmIChvYmpDdHJbcHJvdG9Qcm9wXS5fX2RlZmluZUdldHRlcl9fKSB7XG5cdGVsZW1DdHJQcm90by5fX2RlZmluZUdldHRlcl9fKGNsYXNzTGlzdFByb3AsIGNsYXNzTGlzdEdldHRlcik7XG59XG5cbn0od2luZG93LnNlbGYpKTtcblxufVxuXG4vLyBUaGVyZSBpcyBmdWxsIG9yIHBhcnRpYWwgbmF0aXZlIGNsYXNzTGlzdCBzdXBwb3J0LCBzbyBqdXN0IGNoZWNrIGlmIHdlIG5lZWRcbi8vIHRvIG5vcm1hbGl6ZSB0aGUgYWRkL3JlbW92ZSBhbmQgdG9nZ2xlIEFQSXMuXG5cbihmdW5jdGlvbiAoKSB7XG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdHZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJfXCIpO1xuXG5cdHRlc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjMVwiLCBcImMyXCIpO1xuXG5cdC8vIFBvbHlmaWxsIGZvciBJRSAxMC8xMSBhbmQgRmlyZWZveCA8MjYsIHdoZXJlIGNsYXNzTGlzdC5hZGQgYW5kXG5cdC8vIGNsYXNzTGlzdC5yZW1vdmUgZXhpc3QgYnV0IHN1cHBvcnQgb25seSBvbmUgYXJndW1lbnQgYXQgYSB0aW1lLlxuXHRpZiAoIXRlc3RFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImMyXCIpKSB7XG5cdFx0dmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uKG1ldGhvZCkge1xuXHRcdFx0dmFyIG9yaWdpbmFsID0gRE9NVG9rZW5MaXN0LnByb3RvdHlwZVttZXRob2RdO1xuXG5cdFx0XHRET01Ub2tlbkxpc3QucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbih0b2tlbikge1xuXHRcdFx0XHR2YXIgaSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcblxuXHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdFx0XHR0b2tlbiA9IGFyZ3VtZW50c1tpXTtcblx0XHRcdFx0XHRvcmlnaW5hbC5jYWxsKHRoaXMsIHRva2VuKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9O1xuXHRcdGNyZWF0ZU1ldGhvZCgnYWRkJyk7XG5cdFx0Y3JlYXRlTWV0aG9kKCdyZW1vdmUnKTtcblx0fVxuXG5cdHRlc3RFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJjM1wiLCBmYWxzZSk7XG5cblx0Ly8gUG9seWZpbGwgZm9yIElFIDEwIGFuZCBGaXJlZm94IDwyNCwgd2hlcmUgY2xhc3NMaXN0LnRvZ2dsZSBkb2VzIG5vdFxuXHQvLyBzdXBwb3J0IHRoZSBzZWNvbmQgYXJndW1lbnQuXG5cdGlmICh0ZXN0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJjM1wiKSkge1xuXHRcdHZhciBfdG9nZ2xlID0gRE9NVG9rZW5MaXN0LnByb3RvdHlwZS50b2dnbGU7XG5cblx0XHRET01Ub2tlbkxpc3QucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uKHRva2VuLCBmb3JjZSkge1xuXHRcdFx0aWYgKDEgaW4gYXJndW1lbnRzICYmICF0aGlzLmNvbnRhaW5zKHRva2VuKSA9PT0gIWZvcmNlKSB7XG5cdFx0XHRcdHJldHVybiBmb3JjZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBfdG9nZ2xlLmNhbGwodGhpcywgdG9rZW4pO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0fVxuXG5cdHRlc3RFbGVtZW50ID0gbnVsbDtcbn0oKSk7XG5cbn1cbiIsIi8qIVxuICAqIGRvbXJlYWR5IChjKSBEdXN0aW4gRGlheiAyMDE0IC0gTGljZW5zZSBNSVRcbiAgKi9cbiFmdW5jdGlvbiAobmFtZSwgZGVmaW5pdGlvbikge1xuXG4gIGlmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKSBtb2R1bGUuZXhwb3J0cyA9IGRlZmluaXRpb24oKVxuICBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT0gJ29iamVjdCcpIGRlZmluZShkZWZpbml0aW9uKVxuICBlbHNlIHRoaXNbbmFtZV0gPSBkZWZpbml0aW9uKClcblxufSgnZG9tcmVhZHknLCBmdW5jdGlvbiAoKSB7XG5cbiAgdmFyIGZucyA9IFtdLCBsaXN0ZW5lclxuICAgICwgZG9jID0gZG9jdW1lbnRcbiAgICAsIGhhY2sgPSBkb2MuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsXG4gICAgLCBkb21Db250ZW50TG9hZGVkID0gJ0RPTUNvbnRlbnRMb2FkZWQnXG4gICAgLCBsb2FkZWQgPSAoaGFjayA/IC9ebG9hZGVkfF5jLyA6IC9ebG9hZGVkfF5pfF5jLykudGVzdChkb2MucmVhZHlTdGF0ZSlcblxuXG4gIGlmICghbG9hZGVkKVxuICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihkb21Db250ZW50TG9hZGVkLCBsaXN0ZW5lciA9IGZ1bmN0aW9uICgpIHtcbiAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihkb21Db250ZW50TG9hZGVkLCBsaXN0ZW5lcilcbiAgICBsb2FkZWQgPSAxXG4gICAgd2hpbGUgKGxpc3RlbmVyID0gZm5zLnNoaWZ0KCkpIGxpc3RlbmVyKClcbiAgfSlcblxuICByZXR1cm4gZnVuY3Rpb24gKGZuKSB7XG4gICAgbG9hZGVkID8gc2V0VGltZW91dChmbiwgMCkgOiBmbnMucHVzaChmbilcbiAgfVxuXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gPDMgTW9kZXJuaXpyXG4vLyBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTW9kZXJuaXpyL01vZGVybml6ci9tYXN0ZXIvZmVhdHVyZS1kZXRlY3RzL2RvbS9kYXRhc2V0LmpzXG5cbmZ1bmN0aW9uIHVzZU5hdGl2ZSgpIHtcblx0dmFyIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0ZWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtYS1iJywgJ2MnKTtcblxuXHRyZXR1cm4gQm9vbGVhbihlbGVtLmRhdGFzZXQgJiYgZWxlbS5kYXRhc2V0LmFCID09PSAnYycpO1xufVxuXG5mdW5jdGlvbiBuYXRpdmVEYXRhc2V0KGVsZW1lbnQpIHtcblx0cmV0dXJuIGVsZW1lbnQuZGF0YXNldDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1c2VOYXRpdmUoKSA/IG5hdGl2ZURhdGFzZXQgOiBmdW5jdGlvbiAoZWxlbWVudCkge1xuXHR2YXIgbWFwID0ge307XG5cdHZhciBhdHRyaWJ1dGVzID0gZWxlbWVudC5hdHRyaWJ1dGVzO1xuXG5cdGZ1bmN0aW9uIGdldHRlcigpIHtcblx0XHRyZXR1cm4gdGhpcy52YWx1ZTtcblx0fVxuXG5cdGZ1bmN0aW9uIHNldHRlcihuYW1lLCB2YWx1ZSkge1xuXHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHR0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdGZvciAodmFyIGkgPSAwLCBqID0gYXR0cmlidXRlcy5sZW5ndGg7IGkgPCBqOyBpKyspIHtcblx0XHR2YXIgYXR0cmlidXRlID0gYXR0cmlidXRlc1tpXTtcblxuXHRcdGlmIChhdHRyaWJ1dGUpIHtcblx0XHRcdHZhciBuYW1lID0gYXR0cmlidXRlLm5hbWU7XG5cblx0XHRcdGlmIChuYW1lLmluZGV4T2YoJ2RhdGEtJykgPT09IDApIHtcblx0XHRcdFx0dmFyIHByb3AgPSBuYW1lLnNsaWNlKDUpLnJlcGxhY2UoLy0uL2csIGZ1bmN0aW9uICh1KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHUuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHZhciB2YWx1ZSA9IGF0dHJpYnV0ZS52YWx1ZTtcblxuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobWFwLCBwcm9wLCB7XG5cdFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRnZXQ6IGdldHRlci5iaW5kKHsgdmFsdWU6IHZhbHVlIHx8ICcnIH0pLFxuXHRcdFx0XHRcdHNldDogc2V0dGVyLmJpbmQoZWxlbWVudCwgbmFtZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG1hcDtcbn07XG5cbiIsIi8vIGVsZW1lbnQtY2xvc2VzdCB8IENDMC0xLjAgfCBnaXRodWIuY29tL2pvbmF0aGFudG5lYWwvY2xvc2VzdFxuXG4oZnVuY3Rpb24gKEVsZW1lbnRQcm90bykge1xuXHRpZiAodHlwZW9mIEVsZW1lbnRQcm90by5tYXRjaGVzICE9PSAnZnVuY3Rpb24nKSB7XG5cdFx0RWxlbWVudFByb3RvLm1hdGNoZXMgPSBFbGVtZW50UHJvdG8ubXNNYXRjaGVzU2VsZWN0b3IgfHwgRWxlbWVudFByb3RvLm1vek1hdGNoZXNTZWxlY3RvciB8fCBFbGVtZW50UHJvdG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yIHx8IGZ1bmN0aW9uIG1hdGNoZXMoc2VsZWN0b3IpIHtcblx0XHRcdHZhciBlbGVtZW50ID0gdGhpcztcblx0XHRcdHZhciBlbGVtZW50cyA9IChlbGVtZW50LmRvY3VtZW50IHx8IGVsZW1lbnQub3duZXJEb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG5cdFx0XHR2YXIgaW5kZXggPSAwO1xuXG5cdFx0XHR3aGlsZSAoZWxlbWVudHNbaW5kZXhdICYmIGVsZW1lbnRzW2luZGV4XSAhPT0gZWxlbWVudCkge1xuXHRcdFx0XHQrK2luZGV4O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gQm9vbGVhbihlbGVtZW50c1tpbmRleF0pO1xuXHRcdH07XG5cdH1cblxuXHRpZiAodHlwZW9mIEVsZW1lbnRQcm90by5jbG9zZXN0ICE9PSAnZnVuY3Rpb24nKSB7XG5cdFx0RWxlbWVudFByb3RvLmNsb3Nlc3QgPSBmdW5jdGlvbiBjbG9zZXN0KHNlbGVjdG9yKSB7XG5cdFx0XHR2YXIgZWxlbWVudCA9IHRoaXM7XG5cblx0XHRcdHdoaWxlIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IDEpIHtcblx0XHRcdFx0aWYgKGVsZW1lbnQubWF0Y2hlcyhzZWxlY3RvcikpIHtcblx0XHRcdFx0XHRyZXR1cm4gZWxlbWVudDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH07XG5cdH1cbn0pKHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZSk7XG4iLCIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVib3VuY2U7XG4iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwiY29uc3QgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuY29uc3QgZGVsZWdhdGUgPSByZXF1aXJlKCcuLi9kZWxlZ2F0ZScpO1xuY29uc3QgZGVsZWdhdGVBbGwgPSByZXF1aXJlKCcuLi9kZWxlZ2F0ZUFsbCcpO1xuXG5jb25zdCBERUxFR0FURV9QQVRURVJOID0gL14oLispOmRlbGVnYXRlXFwoKC4rKVxcKSQvO1xuY29uc3QgU1BBQ0UgPSAnICc7XG5cbmNvbnN0IGdldExpc3RlbmVycyA9IGZ1bmN0aW9uKHR5cGUsIGhhbmRsZXIpIHtcbiAgdmFyIG1hdGNoID0gdHlwZS5tYXRjaChERUxFR0FURV9QQVRURVJOKTtcbiAgdmFyIHNlbGVjdG9yO1xuICBpZiAobWF0Y2gpIHtcbiAgICB0eXBlID0gbWF0Y2hbMV07XG4gICAgc2VsZWN0b3IgPSBtYXRjaFsyXTtcbiAgfVxuXG4gIHZhciBvcHRpb25zO1xuICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdvYmplY3QnKSB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIGNhcHR1cmU6IHBvcEtleShoYW5kbGVyLCAnY2FwdHVyZScpLFxuICAgICAgcGFzc2l2ZTogcG9wS2V5KGhhbmRsZXIsICdwYXNzaXZlJylcbiAgICB9O1xuICB9XG5cbiAgdmFyIGxpc3RlbmVyID0ge1xuICAgIHNlbGVjdG9yOiBzZWxlY3RvcixcbiAgICBkZWxlZ2F0ZTogKHR5cGVvZiBoYW5kbGVyID09PSAnb2JqZWN0JylcbiAgICAgID8gZGVsZWdhdGVBbGwoaGFuZGxlcilcbiAgICAgIDogc2VsZWN0b3JcbiAgICAgICAgPyBkZWxlZ2F0ZShzZWxlY3RvciwgaGFuZGxlcilcbiAgICAgICAgOiBoYW5kbGVyLFxuICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgfTtcblxuICBpZiAodHlwZS5pbmRleE9mKFNQQUNFKSA+IC0xKSB7XG4gICAgcmV0dXJuIHR5cGUuc3BsaXQoU1BBQ0UpLm1hcChmdW5jdGlvbihfdHlwZSkge1xuICAgICAgcmV0dXJuIGFzc2lnbih7dHlwZTogX3R5cGV9LCBsaXN0ZW5lcik7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgbGlzdGVuZXIudHlwZSA9IHR5cGU7XG4gICAgcmV0dXJuIFtsaXN0ZW5lcl07XG4gIH1cbn07XG5cbnZhciBwb3BLZXkgPSBmdW5jdGlvbihvYmosIGtleSkge1xuICB2YXIgdmFsdWUgPSBvYmpba2V5XTtcbiAgZGVsZXRlIG9ialtrZXldO1xuICByZXR1cm4gdmFsdWU7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGJlaGF2aW9yKGV2ZW50cywgcHJvcHMpIHtcbiAgY29uc3QgbGlzdGVuZXJzID0gT2JqZWN0LmtleXMoZXZlbnRzKVxuICAgIC5yZWR1Y2UoZnVuY3Rpb24obWVtbywgdHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycyA9IGdldExpc3RlbmVycyh0eXBlLCBldmVudHNbdHlwZV0pO1xuICAgICAgcmV0dXJuIG1lbW8uY29uY2F0KGxpc3RlbmVycyk7XG4gICAgfSwgW10pO1xuXG4gIHJldHVybiBhc3NpZ24oe1xuICAgIGFkZDogZnVuY3Rpb24gYWRkQmVoYXZpb3IoZWxlbWVudCkge1xuICAgICAgbGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHtcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgIGxpc3RlbmVyLnR5cGUsXG4gICAgICAgICAgbGlzdGVuZXIuZGVsZWdhdGUsXG4gICAgICAgICAgbGlzdGVuZXIub3B0aW9uc1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZUJlaGF2aW9yKGVsZW1lbnQpIHtcbiAgICAgIGxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBsaXN0ZW5lci50eXBlLFxuICAgICAgICAgIGxpc3RlbmVyLmRlbGVnYXRlLFxuICAgICAgICAgIGxpc3RlbmVyLm9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgcHJvcHMpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY29tcG9zZShmdW5jdGlvbnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25zLnNvbWUoZnVuY3Rpb24oZm4pIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoaXMsIGUpID09PSBmYWxzZTtcbiAgICB9LCB0aGlzKTtcbiAgfTtcbn07XG4iLCIvLyBwb2x5ZmlsbCBFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0XG5yZXF1aXJlKCdlbGVtZW50LWNsb3Nlc3QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBkZWxlZ2F0ZShzZWxlY3RvciwgZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGRlbGVnYXRpb24oZXZlbnQpIHtcbiAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3Qoc2VsZWN0b3IpO1xuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRhcmdldCwgZXZlbnQpO1xuICAgIH1cbiAgfVxufTtcbiIsImNvbnN0IGRlbGVnYXRlID0gcmVxdWlyZSgnLi4vZGVsZWdhdGUnKTtcbmNvbnN0IGNvbXBvc2UgPSByZXF1aXJlKCcuLi9jb21wb3NlJyk7XG5cbmNvbnN0IFNQTEFUID0gJyonO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlbGVnYXRlQWxsKHNlbGVjdG9ycykge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc2VsZWN0b3JzKVxuXG4gIC8vIFhYWCBvcHRpbWl6YXRpb246IGlmIHRoZXJlIGlzIG9ubHkgb25lIGhhbmRsZXIgYW5kIGl0IGFwcGxpZXMgdG9cbiAgLy8gYWxsIGVsZW1lbnRzICh0aGUgXCIqXCIgQ1NTIHNlbGVjdG9yKSwgdGhlbiBqdXN0IHJldHVybiB0aGF0XG4gIC8vIGhhbmRsZXJcbiAgaWYgKGtleXMubGVuZ3RoID09PSAxICYmIGtleXNbMF0gPT09IFNQTEFUKSB7XG4gICAgcmV0dXJuIHNlbGVjdG9yc1tTUExBVF07XG4gIH1cblxuICBjb25zdCBkZWxlZ2F0ZXMgPSBrZXlzLnJlZHVjZShmdW5jdGlvbihtZW1vLCBzZWxlY3Rvcikge1xuICAgIG1lbW8ucHVzaChkZWxlZ2F0ZShzZWxlY3Rvciwgc2VsZWN0b3JzW3NlbGVjdG9yXSkpO1xuICAgIHJldHVybiBtZW1vO1xuICB9LCBbXSk7XG4gIHJldHVybiBjb21wb3NlKGRlbGVnYXRlcyk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpZ25vcmUoZWxlbWVudCwgZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGlnbm9yYW5jZShlKSB7XG4gICAgaWYgKGVsZW1lbnQgIT09IGUudGFyZ2V0ICYmICFlbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgZSk7XG4gICAgfVxuICB9O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gb25jZShsaXN0ZW5lciwgb3B0aW9ucykge1xuICB2YXIgd3JhcHBlZCA9IGZ1bmN0aW9uIHdyYXBwZWRPbmNlKGUpIHtcbiAgICBlLmN1cnJlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLnR5cGUsIHdyYXBwZWQsIG9wdGlvbnMpO1xuICAgIHJldHVybiBsaXN0ZW5lci5jYWxsKHRoaXMsIGUpO1xuICB9O1xuICByZXR1cm4gd3JhcHBlZDtcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFJFX1RSSU0gPSAvKF5cXHMrKXwoXFxzKyQpL2c7XG52YXIgUkVfU1BMSVQgPSAvXFxzKy87XG5cbnZhciB0cmltID0gU3RyaW5nLnByb3RvdHlwZS50cmltXG4gID8gZnVuY3Rpb24oc3RyKSB7IHJldHVybiBzdHIudHJpbSgpOyB9XG4gIDogZnVuY3Rpb24oc3RyKSB7IHJldHVybiBzdHIucmVwbGFjZShSRV9UUklNLCAnJyk7IH07XG5cbnZhciBxdWVyeUJ5SWQgPSBmdW5jdGlvbihpZCkge1xuICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKCdbaWQ9XCInICsgaWQucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpICsgJ1wiXScpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByZXNvbHZlSWRzKGlkcywgZG9jKSB7XG4gIGlmICh0eXBlb2YgaWRzICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYSBzdHJpbmcgYnV0IGdvdCAnICsgKHR5cGVvZiBpZHMpKTtcbiAgfVxuXG4gIGlmICghZG9jKSB7XG4gICAgZG9jID0gd2luZG93LmRvY3VtZW50O1xuICB9XG5cbiAgdmFyIGdldEVsZW1lbnRCeUlkID0gZG9jLmdldEVsZW1lbnRCeUlkXG4gICAgPyBkb2MuZ2V0RWxlbWVudEJ5SWQuYmluZChkb2MpXG4gICAgOiBxdWVyeUJ5SWQuYmluZChkb2MpO1xuXG4gIGlkcyA9IHRyaW0oaWRzKS5zcGxpdChSRV9TUExJVCk7XG5cbiAgLy8gWFhYIHdlIGNhbiBzaG9ydC1jaXJjdWl0IGhlcmUgYmVjYXVzZSB0cmltbWluZyBhbmQgc3BsaXR0aW5nIGFcbiAgLy8gc3RyaW5nIG9mIGp1c3Qgd2hpdGVzcGFjZSBwcm9kdWNlcyBhbiBhcnJheSBjb250YWluaW5nIGEgc2luZ2xlLFxuICAvLyBlbXB0eSBzdHJpbmdcbiAgaWYgKGlkcy5sZW5ndGggPT09IDEgJiYgaWRzWzBdID09PSAnJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBpZHNcbiAgICAubWFwKGZ1bmN0aW9uKGlkKSB7XG4gICAgICB2YXIgZWwgPSBnZXRFbGVtZW50QnlJZChpZCk7XG4gICAgICBpZiAoIWVsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbm8gZWxlbWVudCB3aXRoIGlkOiBcIicgKyBpZCArICdcIicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVsO1xuICAgIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZSgnLi4vdXRpbHMvYmVoYXZpb3InKTtcbmNvbnN0IGZpbHRlciA9IHJlcXVpcmUoJ2FycmF5LWZpbHRlcicpO1xuY29uc3QgZm9yRWFjaCA9IHJlcXVpcmUoJ2FycmF5LWZvcmVhY2gnKTtcbmNvbnN0IHRvZ2dsZSA9IHJlcXVpcmUoJy4uL3V0aWxzL3RvZ2dsZScpO1xuY29uc3QgaXNFbGVtZW50SW5WaWV3cG9ydCA9IHJlcXVpcmUoJy4uL3V0aWxzL2lzLWluLXZpZXdwb3J0Jyk7XG5cbmNvbnN0IENMSUNLID0gcmVxdWlyZSgnLi4vZXZlbnRzJykuQ0xJQ0s7XG5jb25zdCBQUkVGSVggPSByZXF1aXJlKCcuLi9jb25maWcnKS5wcmVmaXg7XG5cbi8vIFhYWCBtYXRjaCAudXNhLWFjY29yZGlvbiBhbmQgLnVzYS1hY2NvcmRpb24tYm9yZGVyZWRcbmNvbnN0IEFDQ09SRElPTiA9IGAuJHtQUkVGSVh9LWFjY29yZGlvbiwgLiR7UFJFRklYfS1hY2NvcmRpb24tYm9yZGVyZWRgO1xuY29uc3QgQlVUVE9OID0gYC4ke1BSRUZJWH0tYWNjb3JkaW9uLWJ1dHRvblthcmlhLWNvbnRyb2xzXWA7XG5jb25zdCBFWFBBTkRFRCA9ICdhcmlhLWV4cGFuZGVkJztcbmNvbnN0IE1VTFRJU0VMRUNUQUJMRSA9ICdhcmlhLW11bHRpc2VsZWN0YWJsZSc7XG5cbi8qKlxuICogVG9nZ2xlIGEgYnV0dG9uJ3MgXCJwcmVzc2VkXCIgc3RhdGUsIG9wdGlvbmFsbHkgcHJvdmlkaW5nIGEgdGFyZ2V0XG4gKiBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSBidXR0b25cbiAqIEBwYXJhbSB7Ym9vbGVhbj99IGV4cGFuZGVkIElmIG5vIHN0YXRlIGlzIHByb3ZpZGVkLCB0aGUgY3VycmVudFxuICogc3RhdGUgd2lsbCBiZSB0b2dnbGVkIChmcm9tIGZhbHNlIHRvIHRydWUsIGFuZCB2aWNlLXZlcnNhKS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHRoZSByZXN1bHRpbmcgc3RhdGVcbiAqL1xuY29uc3QgdG9nZ2xlQnV0dG9uID0gKGJ1dHRvbiwgZXhwYW5kZWQpID0+IHtcbiAgdmFyIGFjY29yZGlvbiA9IGJ1dHRvbi5jbG9zZXN0KEFDQ09SRElPTik7XG4gIGlmICghYWNjb3JkaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke0JVVFRPTn0gaXMgbWlzc2luZyBvdXRlciAke0FDQ09SRElPTn1gKTtcbiAgfVxuXG4gIGV4cGFuZGVkID0gdG9nZ2xlKGJ1dHRvbiwgZXhwYW5kZWQpO1xuICAvLyBYWFggbXVsdGlzZWxlY3RhYmxlIGlzIG9wdC1pbiwgdG8gcHJlc2VydmUgbGVnYWN5IGJlaGF2aW9yXG4gIGNvbnN0IG11bHRpc2VsZWN0YWJsZSA9IGFjY29yZGlvbi5nZXRBdHRyaWJ1dGUoTVVMVElTRUxFQ1RBQkxFKSA9PT0gJ3RydWUnO1xuXG4gIGlmIChleHBhbmRlZCAmJiAhbXVsdGlzZWxlY3RhYmxlKSB7XG4gICAgZm9yRWFjaChnZXRBY2NvcmRpb25CdXR0b25zKGFjY29yZGlvbiksIG90aGVyID0+IHtcbiAgICAgIGlmIChvdGhlciAhPT0gYnV0dG9uKSB7XG4gICAgICAgIHRvZ2dsZShvdGhlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGJ1dHRvblxuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZVxuICovXG5jb25zdCBzaG93QnV0dG9uID0gYnV0dG9uID0+IHRvZ2dsZUJ1dHRvbihidXR0b24sIHRydWUpO1xuXG4vKipcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGJ1dHRvblxuICogQHJldHVybiB7Ym9vbGVhbn0gZmFsc2VcbiAqL1xuY29uc3QgaGlkZUJ1dHRvbiA9IGJ1dHRvbiA9PiB0b2dnbGVCdXR0b24oYnV0dG9uLCBmYWxzZSk7XG5cbi8qKlxuICogR2V0IGFuIEFycmF5IG9mIGJ1dHRvbiBlbGVtZW50cyBiZWxvbmdpbmcgZGlyZWN0bHkgdG8gdGhlIGdpdmVuXG4gKiBhY2NvcmRpb24gZWxlbWVudC5cbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGFjY29yZGlvblxuICogQHJldHVybiB7YXJyYXk8SFRNTEJ1dHRvbkVsZW1lbnQ+fVxuICovXG5jb25zdCBnZXRBY2NvcmRpb25CdXR0b25zID0gYWNjb3JkaW9uID0+IHtcbiAgcmV0dXJuIGZpbHRlcihhY2NvcmRpb24ucXVlcnlTZWxlY3RvckFsbChCVVRUT04pLCBidXR0b24gPT4ge1xuICAgIHJldHVybiBidXR0b24uY2xvc2VzdChBQ0NPUkRJT04pID09PSBhY2NvcmRpb247XG4gIH0pO1xufTtcblxuY29uc3QgYWNjb3JkaW9uID0gYmVoYXZpb3Ioe1xuICBbIENMSUNLIF06IHtcbiAgICBbIEJVVFRPTiBdOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0b2dnbGVCdXR0b24odGhpcyk7XG5cbiAgICAgIGlmICh0aGlzLmdldEF0dHJpYnV0ZShFWFBBTkRFRCkgPT09ICd0cnVlJykge1xuICAgICAgICAvLyBXZSB3ZXJlIGp1c3QgZXhwYW5kZWQsIGJ1dCBpZiBhbm90aGVyIGFjY29yZGlvbiB3YXMgYWxzbyBqdXN0XG4gICAgICAgIC8vIGNvbGxhcHNlZCwgd2UgbWF5IG5vIGxvbmdlciBiZSBpbiB0aGUgdmlld3BvcnQuIFRoaXMgZW5zdXJlc1xuICAgICAgICAvLyB0aGF0IHdlIGFyZSBzdGlsbCB2aXNpYmxlLCBzbyB0aGUgdXNlciBpc24ndCBjb25mdXNlZC5cbiAgICAgICAgaWYgKCFpc0VsZW1lbnRJblZpZXdwb3J0KHRoaXMpKSB0aGlzLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbn0sIHtcbiAgaW5pdDogcm9vdCA9PiB7XG4gICAgZm9yRWFjaChyb290LnF1ZXJ5U2VsZWN0b3JBbGwoQlVUVE9OKSwgYnV0dG9uID0+IHtcbiAgICAgIGNvbnN0IGV4cGFuZGVkID0gYnV0dG9uLmdldEF0dHJpYnV0ZShFWFBBTkRFRCkgPT09ICd0cnVlJztcbiAgICAgIHRvZ2dsZUJ1dHRvbihidXR0b24sIGV4cGFuZGVkKTtcbiAgICB9KTtcbiAgfSxcbiAgQUNDT1JESU9OLFxuICBCVVRUT04sXG4gIHNob3c6IHNob3dCdXR0b24sXG4gIGhpZGU6IGhpZGVCdXR0b24sXG4gIHRvZ2dsZTogdG9nZ2xlQnV0dG9uLFxuICBnZXRCdXR0b25zOiBnZXRBY2NvcmRpb25CdXR0b25zLFxufSk7XG5cbi8qKlxuICogVE9ETzogZm9yIDIuMCwgcmVtb3ZlIGV2ZXJ5dGhpbmcgYmVsb3cgdGhpcyBjb21tZW50IGFuZCBleHBvcnQgdGhlXG4gKiBiZWhhdmlvciBkaXJlY3RseTpcbiAqXG4gKiBtb2R1bGUuZXhwb3J0cyA9IGJlaGF2aW9yKHsuLi59KTtcbiAqL1xuY29uc3QgQWNjb3JkaW9uID0gZnVuY3Rpb24gKHJvb3QpIHtcbiAgdGhpcy5yb290ID0gcm9vdDtcbiAgYWNjb3JkaW9uLm9uKHRoaXMucm9vdCk7XG59O1xuXG4vLyBjb3B5IGFsbCBvZiB0aGUgYmVoYXZpb3IgbWV0aG9kcyBhbmQgcHJvcHMgdG8gQWNjb3JkaW9uXG5jb25zdCBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5hc3NpZ24oQWNjb3JkaW9uLCBhY2NvcmRpb24pO1xuXG5BY2NvcmRpb24ucHJvdG90eXBlLnNob3cgPSBzaG93QnV0dG9uO1xuQWNjb3JkaW9uLnByb3RvdHlwZS5oaWRlID0gaGlkZUJ1dHRvbjtcblxuQWNjb3JkaW9uLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbiAoKSB7XG4gIGFjY29yZGlvbi5vZmYodGhpcy5yb290KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gQWNjb3JkaW9uO1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKCcuLi91dGlscy9iZWhhdmlvcicpO1xuY29uc3QgdG9nZ2xlID0gcmVxdWlyZSgnLi4vdXRpbHMvdG9nZ2xlJyk7XG5cbmNvbnN0IENMSUNLID0gcmVxdWlyZSgnLi4vZXZlbnRzJykuQ0xJQ0s7XG5jb25zdCBQUkVGSVggPSByZXF1aXJlKCcuLi9jb25maWcnKS5wcmVmaXg7XG5cbmNvbnN0IEhFQURFUiA9IGAuJHtQUkVGSVh9LWJhbm5lci1oZWFkZXJgO1xuY29uc3QgRVhQQU5ERURfQ0xBU1MgPSBgJHtQUkVGSVh9LWJhbm5lci1oZWFkZXItZXhwYW5kZWRgO1xuXG5jb25zdCB0b2dnbGVCYW5uZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgdGhpcy5jbG9zZXN0KEhFQURFUikuY2xhc3NMaXN0LnRvZ2dsZShFWFBBTkRFRF9DTEFTUyk7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYmVoYXZpb3Ioe1xuICBbIENMSUNLIF06IHtcbiAgICBbIGAke0hFQURFUn0gW2FyaWEtY29udHJvbHNdYCBdOiB0b2dnbGVCYW5uZXIsXG4gIH0sXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGFjY29yZGlvbiA9IHJlcXVpcmUoJy4vYWNjb3JkaW9uJyk7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoJy4uL3V0aWxzL2JlaGF2aW9yJyk7XG5jb25zdCBkZWJvdW5jZSA9IHJlcXVpcmUoJ2xvZGFzaC5kZWJvdW5jZScpO1xuY29uc3QgZm9yRWFjaCA9IHJlcXVpcmUoJ2FycmF5LWZvcmVhY2gnKTtcbmNvbnN0IHNlbGVjdCA9IHJlcXVpcmUoJy4uL3V0aWxzL3NlbGVjdCcpO1xuXG5jb25zdCBDTElDSyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpLkNMSUNLO1xuY29uc3QgUFJFRklYID0gcmVxdWlyZSgnLi4vY29uZmlnJykucHJlZml4O1xuXG5jb25zdCBISURERU4gPSAnaGlkZGVuJztcbmNvbnN0IFNDT1BFID0gYC4ke1BSRUZJWH0tZm9vdGVyLWJpZ2A7XG5jb25zdCBOQVYgPSBgJHtTQ09QRX0gbmF2YDtcbmNvbnN0IEJVVFRPTiA9IGAke05BVn0gLiR7UFJFRklYfS1mb290ZXItcHJpbWFyeS1saW5rYDtcbmNvbnN0IExJU1QgPSBgJHtOQVZ9IHVsYDtcblxuY29uc3QgSElERV9NQVhfV0lEVEggPSA2MDA7XG5jb25zdCBERUJPVU5DRV9SQVRFID0gMTgwO1xuXG5jb25zdCBzaG93UGFuZWwgPSBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGxpc3QgPSB0aGlzLmNsb3Nlc3QoTElTVCk7XG4gIGxpc3QuY2xhc3NMaXN0LnJlbW92ZShISURERU4pO1xuXG4gIC8vIE5COiB0aGlzICpzaG91bGQqIGFsd2F5cyBzdWNjZWVkIGJlY2F1c2UgdGhlIGJ1dHRvblxuICAvLyBzZWxlY3RvciBpcyBzY29wZWQgdG8gXCIue3ByZWZpeH0tZm9vdGVyLWJpZyBuYXZcIlxuICBjb25zdCBsaXN0cyA9IGxpc3QuY2xvc2VzdChOQVYpXG4gICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJ3VsJyk7XG5cbiAgZm9yRWFjaChsaXN0cywgZWwgPT4ge1xuICAgIGlmIChlbCAhPT0gbGlzdCkge1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZChISURERU4pO1xuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCByZXNpemUgPSBkZWJvdW5jZSgoKSA9PiB7XG4gIGNvbnN0IGhpZGRlbiA9IHdpbmRvdy5pbm5lcldpZHRoIDwgSElERV9NQVhfV0lEVEg7XG4gIGZvckVhY2goc2VsZWN0KExJU1QpLCBsaXN0ID0+IHtcbiAgICBsaXN0LmNsYXNzTGlzdC50b2dnbGUoSElEREVOLCBoaWRkZW4pO1xuICB9KTtcbn0sIERFQk9VTkNFX1JBVEUpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJlaGF2aW9yKHtcbiAgWyBDTElDSyBdOiB7XG4gICAgWyBCVVRUT04gXTogc2hvd1BhbmVsLFxuICB9LFxufSwge1xuICAvLyBleHBvcnQgZm9yIHVzZSBlbHNld2hlcmVcbiAgSElERV9NQVhfV0lEVEgsXG4gIERFQk9VTkNFX1JBVEUsXG5cbiAgaW5pdDogdGFyZ2V0ID0+IHtcbiAgICByZXNpemUoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzaXplKTtcbiAgfSxcblxuICB0ZWFyZG93bjogdGFyZ2V0ID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzaXplKTtcbiAgfSxcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFjY29yZGlvbjogIHJlcXVpcmUoJy4vYWNjb3JkaW9uJyksXG4gIGJhbm5lcjogICAgIHJlcXVpcmUoJy4vYmFubmVyJyksXG4gIGZvb3RlcjogICAgIHJlcXVpcmUoJy4vZm9vdGVyJyksXG4gIG5hdmlnYXRpb246IHJlcXVpcmUoJy4vbmF2aWdhdGlvbicpLFxuICBwYXNzd29yZDogICByZXF1aXJlKCcuL3Bhc3N3b3JkJyksXG4gIHNlYXJjaDogICAgIHJlcXVpcmUoJy4vc2VhcmNoJyksXG4gIHNraXBuYXY6ICAgIHJlcXVpcmUoJy4vc2tpcG5hdicpLFxuICB2YWxpZGF0b3I6ICByZXF1aXJlKCcuL3ZhbGlkYXRvcicpLFxufTtcblxuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKCcuLi91dGlscy9iZWhhdmlvcicpO1xuY29uc3QgZm9yRWFjaCA9IHJlcXVpcmUoJ2FycmF5LWZvcmVhY2gnKTtcbmNvbnN0IHNlbGVjdCA9IHJlcXVpcmUoJy4uL3V0aWxzL3NlbGVjdCcpO1xuY29uc3QgYWNjb3JkaW9uID0gcmVxdWlyZSgnLi9hY2NvcmRpb24nKTtcblxuY29uc3QgQ0xJQ0sgPSByZXF1aXJlKCcuLi9ldmVudHMnKS5DTElDSztcbmNvbnN0IFBSRUZJWCA9IHJlcXVpcmUoJy4uL2NvbmZpZycpLnByZWZpeDtcblxuY29uc3QgTkFWID0gYC4ke1BSRUZJWH0tbmF2YDtcbmNvbnN0IE5BVl9MSU5LUyA9IGAke05BVn0gYWA7XG5jb25zdCBPUEVORVJTID0gYC4ke1BSRUZJWH0tbWVudS1idG5gO1xuY29uc3QgQ0xPU0VfQlVUVE9OID0gYC4ke1BSRUZJWH0tbmF2LWNsb3NlYDtcbmNvbnN0IE9WRVJMQVkgPSBgLiR7UFJFRklYfS1vdmVybGF5YDtcbmNvbnN0IENMT1NFUlMgPSBgJHtDTE9TRV9CVVRUT059LCAuJHtQUkVGSVh9LW92ZXJsYXlgO1xuY29uc3QgVE9HR0xFUyA9IFsgTkFWLCBPVkVSTEFZIF0uam9pbignLCAnKTtcblxuY29uc3QgQUNUSVZFX0NMQVNTID0gJ3VzYS1tb2JpbGVfbmF2LWFjdGl2ZSc7XG5jb25zdCBWSVNJQkxFX0NMQVNTID0gJ2lzLXZpc2libGUnO1xuXG5jb25zdCBpc0FjdGl2ZSA9ICgpID0+IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKEFDVElWRV9DTEFTUyk7XG5cbmNvbnN0IHRvZ2dsZU5hdiA9IGZ1bmN0aW9uIChhY3RpdmUpIHtcbiAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XG4gIGlmICh0eXBlb2YgYWN0aXZlICE9PSAnYm9vbGVhbicpIHtcbiAgICBhY3RpdmUgPSAhaXNBY3RpdmUoKTtcbiAgfVxuICBib2R5LmNsYXNzTGlzdC50b2dnbGUoQUNUSVZFX0NMQVNTLCBhY3RpdmUpO1xuXG4gIGZvckVhY2goc2VsZWN0KFRPR0dMRVMpLCBlbCA9PiB7XG4gICAgZWwuY2xhc3NMaXN0LnRvZ2dsZShWSVNJQkxFX0NMQVNTLCBhY3RpdmUpO1xuICB9KTtcblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGJvZHkucXVlcnlTZWxlY3RvcihDTE9TRV9CVVRUT04pO1xuICBjb25zdCBtZW51QnV0dG9uID0gYm9keS5xdWVyeVNlbGVjdG9yKE9QRU5FUlMpO1xuXG4gIGlmIChhY3RpdmUgJiYgY2xvc2VCdXR0b24pIHtcbiAgICAvLyBUaGUgbW9iaWxlIG5hdiB3YXMganVzdCBhY3RpdmF0ZWQsIHNvIGZvY3VzIG9uIHRoZSBjbG9zZSBidXR0b24sXG4gICAgLy8gd2hpY2ggaXMganVzdCBiZWZvcmUgYWxsIHRoZSBuYXYgZWxlbWVudHMgaW4gdGhlIHRhYiBvcmRlci5cbiAgICBjbG9zZUJ1dHRvbi5mb2N1cygpO1xuICB9IGVsc2UgaWYgKCFhY3RpdmUgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gY2xvc2VCdXR0b24gJiZcbiAgICAgICAgICAgICBtZW51QnV0dG9uKSB7XG4gICAgLy8gVGhlIG1vYmlsZSBuYXYgd2FzIGp1c3QgZGVhY3RpdmF0ZWQsIGFuZCBmb2N1cyB3YXMgb24gdGhlIGNsb3NlXG4gICAgLy8gYnV0dG9uLCB3aGljaCBpcyBubyBsb25nZXIgdmlzaWJsZS4gV2UgZG9uJ3Qgd2FudCB0aGUgZm9jdXMgdG9cbiAgICAvLyBkaXNhcHBlYXIgaW50byB0aGUgdm9pZCwgc28gZm9jdXMgb24gdGhlIG1lbnUgYnV0dG9uIGlmIGl0J3NcbiAgICAvLyB2aXNpYmxlICh0aGlzIG1heSBoYXZlIGJlZW4gd2hhdCB0aGUgdXNlciB3YXMganVzdCBmb2N1c2VkIG9uLFxuICAgIC8vIGlmIHRoZXkgdHJpZ2dlcmVkIHRoZSBtb2JpbGUgbmF2IGJ5IG1pc3Rha2UpLlxuICAgIG1lbnVCdXR0b24uZm9jdXMoKTtcbiAgfVxuXG4gIHJldHVybiBhY3RpdmU7XG59O1xuXG5jb25zdCByZXNpemUgPSAoKSA9PiB7XG4gIGNvbnN0IGNsb3NlciA9IGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcihDTE9TRV9CVVRUT04pO1xuXG4gIGlmIChpc0FjdGl2ZSgpICYmIGNsb3NlciAmJiBjbG9zZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPT09IDApIHtcbiAgICAvLyBUaGUgbW9iaWxlIG5hdiBpcyBhY3RpdmUsIGJ1dCB0aGUgY2xvc2UgYm94IGlzbid0IHZpc2libGUsIHdoaWNoXG4gICAgLy8gbWVhbnMgdGhlIHVzZXIncyB2aWV3cG9ydCBoYXMgYmVlbiByZXNpemVkIHNvIHRoYXQgaXQgaXMgbm8gbG9uZ2VyXG4gICAgLy8gaW4gbW9iaWxlIG1vZGUuIExldCdzIG1ha2UgdGhlIHBhZ2Ugc3RhdGUgY29uc2lzdGVudCBieVxuICAgIC8vIGRlYWN0aXZhdGluZyB0aGUgbW9iaWxlIG5hdi5cbiAgICB0b2dnbGVOYXYuY2FsbChjbG9zZXIsIGZhbHNlKTtcbiAgfVxufTtcblxuY29uc3QgbmF2aWdhdGlvbiA9IGJlaGF2aW9yKHtcbiAgWyBDTElDSyBdOiB7XG4gICAgWyBPUEVORVJTIF06IHRvZ2dsZU5hdixcbiAgICBbIENMT1NFUlMgXTogdG9nZ2xlTmF2LFxuICAgIFsgTkFWX0xJTktTIF06IGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIEEgbmF2aWdhdGlvbiBsaW5rIGhhcyBiZWVuIGNsaWNrZWQhIFdlIHdhbnQgdG8gY29sbGFwc2UgYW55XG4gICAgICAvLyBoaWVyYXJjaGljYWwgbmF2aWdhdGlvbiBVSSBpdCdzIGEgcGFydCBvZiwgc28gdGhhdCB0aGUgdXNlclxuICAgICAgLy8gY2FuIGZvY3VzIG9uIHdoYXRldmVyIHRoZXkndmUganVzdCBzZWxlY3RlZC5cblxuICAgICAgLy8gU29tZSBuYXZpZ2F0aW9uIGxpbmtzIGFyZSBpbnNpZGUgYWNjb3JkaW9uczsgd2hlbiB0aGV5J3JlXG4gICAgICAvLyBjbGlja2VkLCB3ZSB3YW50IHRvIGNvbGxhcHNlIHRob3NlIGFjY29yZGlvbnMuXG4gICAgICBjb25zdCBhY2MgPSB0aGlzLmNsb3Nlc3QoYWNjb3JkaW9uLkFDQ09SRElPTik7XG4gICAgICBpZiAoYWNjKSB7XG4gICAgICAgIGFjY29yZGlvbi5nZXRCdXR0b25zKGFjYykuZm9yRWFjaChidG4gPT4gYWNjb3JkaW9uLmhpZGUoYnRuKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBtb2JpbGUgbmF2aWdhdGlvbiBtZW51IGlzIGFjdGl2ZSwgd2Ugd2FudCB0byBoaWRlIGl0LlxuICAgICAgaWYgKGlzQWN0aXZlKCkpIHtcbiAgICAgICAgdG9nZ2xlTmF2LmNhbGwodGhpcywgZmFsc2UpO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59LCB7XG4gIGluaXQgKCkge1xuICAgIHJlc2l6ZSgpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXNpemUsIGZhbHNlKTtcbiAgfSxcbiAgdGVhcmRvd24gKCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXNpemUsIGZhbHNlKTtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIFRPRE8gZm9yIDIuMCwgcmVtb3ZlIHRoaXMgc3RhdGVtZW50IGFuZCBleHBvcnQgYG5hdmlnYXRpb25gIGRpcmVjdGx5OlxuICpcbiAqIG1vZHVsZS5leHBvcnRzID0gYmVoYXZpb3Ioey4uLn0pO1xuICovXG5jb25zdCBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGFzc2lnbihcbiAgZWwgPT4gbmF2aWdhdGlvbi5vbihlbCksXG4gIG5hdmlnYXRpb25cbik7XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoJy4uL3V0aWxzL2JlaGF2aW9yJyk7XG5jb25zdCB0b2dnbGVGb3JtSW5wdXQgPSByZXF1aXJlKCcuLi91dGlscy90b2dnbGUtZm9ybS1pbnB1dCcpO1xuXG5jb25zdCBDTElDSyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpLkNMSUNLO1xuY29uc3QgUFJFRklYID0gcmVxdWlyZSgnLi4vY29uZmlnJykucHJlZml4O1xuXG5jb25zdCBMSU5LID0gYC4ke1BSRUZJWH0tc2hvd19wYXNzd29yZCwgLiR7UFJFRklYfS1zaG93X211bHRpcGFzc3dvcmRgO1xuXG5jb25zdCB0b2dnbGUgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgdG9nZ2xlRm9ybUlucHV0KHRoaXMpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcih7XG4gIFsgQ0xJQ0sgXToge1xuICAgIFsgTElOSyBdOiB0b2dnbGUsXG4gIH0sXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZSgnLi4vdXRpbHMvYmVoYXZpb3InKTtcbmNvbnN0IGZvckVhY2ggPSByZXF1aXJlKCdhcnJheS1mb3JlYWNoJyk7XG5jb25zdCBpZ25vcmUgPSByZXF1aXJlKCdyZWNlcHRvci9pZ25vcmUnKTtcbmNvbnN0IHNlbGVjdCA9IHJlcXVpcmUoJy4uL3V0aWxzL3NlbGVjdCcpO1xuXG5jb25zdCBDTElDSyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpLkNMSUNLO1xuY29uc3QgUFJFRklYID0gcmVxdWlyZSgnLi4vY29uZmlnJykucHJlZml4O1xuXG5jb25zdCBCVVRUT04gPSAnLmpzLXNlYXJjaC1idXR0b24nO1xuY29uc3QgRk9STSA9ICcuanMtc2VhcmNoLWZvcm0nO1xuY29uc3QgSU5QVVQgPSAnW3R5cGU9c2VhcmNoXSc7XG5jb25zdCBDT05URVhUID0gJ2hlYWRlcic7IC8vIFhYWFxuY29uc3QgVklTVUFMTFlfSElEREVOID0gYCR7UFJFRklYfS1zci1vbmx5YDtcblxubGV0IGxhc3RCdXR0b247XG5cbmNvbnN0IHNob3dTZWFyY2ggPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgdG9nZ2xlU2VhcmNoKHRoaXMsIHRydWUpO1xuICBsYXN0QnV0dG9uID0gdGhpcztcbn07XG5cbmNvbnN0IGhpZGVTZWFyY2ggPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgdG9nZ2xlU2VhcmNoKHRoaXMsIGZhbHNlKTtcbiAgbGFzdEJ1dHRvbiA9IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IGdldEZvcm0gPSBidXR0b24gPT4ge1xuICBjb25zdCBjb250ZXh0ID0gYnV0dG9uLmNsb3Nlc3QoQ09OVEVYVCk7XG4gIHJldHVybiBjb250ZXh0XG4gICAgPyBjb250ZXh0LnF1ZXJ5U2VsZWN0b3IoRk9STSlcbiAgICA6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoRk9STSk7XG59O1xuXG5jb25zdCB0b2dnbGVTZWFyY2ggPSAoYnV0dG9uLCBhY3RpdmUpID0+IHtcbiAgY29uc3QgZm9ybSA9IGdldEZvcm0oYnV0dG9uKTtcbiAgaWYgKCFmb3JtKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyAke0ZPUk19IGZvdW5kIGZvciBzZWFyY2ggdG9nZ2xlIGluICR7Q09OVEVYVH0hYCk7XG4gIH1cblxuICBidXR0b24uaGlkZGVuID0gYWN0aXZlO1xuICBmb3JtLmNsYXNzTGlzdC50b2dnbGUoVklTVUFMTFlfSElEREVOLCAhYWN0aXZlKTtcblxuICBpZiAoYWN0aXZlKSB7XG4gICAgY29uc3QgaW5wdXQgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoSU5QVVQpO1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICB9XG4gICAgLy8gd2hlbiB0aGUgdXNlciBjbGlja3MgX291dHNpZGVfIG9mIHRoZSBmb3JtIHcvaWdub3JlKCk6IGhpZGUgdGhlXG4gICAgLy8gc2VhcmNoLCB0aGVuIHJlbW92ZSB0aGUgbGlzdGVuZXJcbiAgICBjb25zdCBsaXN0ZW5lciA9IGlnbm9yZShmb3JtLCBlID0+IHtcbiAgICAgIGlmIChsYXN0QnV0dG9uKSB7XG4gICAgICAgIGhpZGVTZWFyY2guY2FsbChsYXN0QnV0dG9uKTtcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihDTElDSywgbGlzdGVuZXIpO1xuICAgIH0pO1xuXG4gICAgLy8gTm9ybWFsbHkgd2Ugd291bGQganVzdCBydW4gdGhpcyBjb2RlIHdpdGhvdXQgYSB0aW1lb3V0LCBidXRcbiAgICAvLyBJRTExIGFuZCBFZGdlIHdpbGwgYWN0dWFsbHkgY2FsbCB0aGUgbGlzdGVuZXIgKmltbWVkaWF0ZWx5KiBiZWNhdXNlXG4gICAgLy8gdGhleSBhcmUgY3VycmVudGx5IGhhbmRsaW5nIHRoaXMgZXhhY3QgdHlwZSBvZiBldmVudCwgc28gd2UnbGxcbiAgICAvLyBtYWtlIHN1cmUgdGhlIGJyb3dzZXIgaXMgZG9uZSBoYW5kbGluZyB0aGUgY3VycmVudCBjbGljayBldmVudCxcbiAgICAvLyBpZiBhbnksIGJlZm9yZSB3ZSBhdHRhY2ggdGhlIGxpc3RlbmVyLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKENMSUNLLCBsaXN0ZW5lcik7XG4gICAgfSwgMCk7XG4gIH1cbn07XG5cbmNvbnN0IHNlYXJjaCA9IGJlaGF2aW9yKHtcbiAgWyBDTElDSyBdOiB7XG4gICAgWyBCVVRUT04gXTogc2hvd1NlYXJjaCxcbiAgfSxcbn0sIHtcbiAgaW5pdDogKHRhcmdldCkgPT4ge1xuICAgIGZvckVhY2goc2VsZWN0KEJVVFRPTiwgdGFyZ2V0KSwgYnV0dG9uID0+IHtcbiAgICAgIHRvZ2dsZVNlYXJjaChidXR0b24sIGZhbHNlKTtcbiAgICB9KTtcbiAgfSxcbiAgdGVhcmRvd246ICh0YXJnZXQpID0+IHtcbiAgICAvLyBmb3JnZXQgdGhlIGxhc3QgYnV0dG9uIGNsaWNrZWRcbiAgICBsYXN0QnV0dG9uID0gdW5kZWZpbmVkO1xuICB9LFxufSk7XG5cbi8qKlxuICogVE9ETyBmb3IgMi4wLCByZW1vdmUgdGhpcyBzdGF0ZW1lbnQgYW5kIGV4cG9ydCBgbmF2aWdhdGlvbmAgZGlyZWN0bHk6XG4gKlxuICogbW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcih7Li4ufSk7XG4gKi9cbmNvbnN0IGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcbm1vZHVsZS5leHBvcnRzID0gYXNzaWduKFxuICBlbCA9PiBzZWFyY2gub24oZWwpLFxuICBzZWFyY2hcbik7XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoJy4uL3V0aWxzL2JlaGF2aW9yJyk7XG5jb25zdCBvbmNlID0gcmVxdWlyZSgncmVjZXB0b3Ivb25jZScpO1xuXG5jb25zdCBDTElDSyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpLkNMSUNLO1xuY29uc3QgUFJFRklYID0gcmVxdWlyZSgnLi4vY29uZmlnJykucHJlZml4O1xuY29uc3QgTElOSyA9IGAuJHtQUkVGSVh9LXNraXBuYXZbaHJlZl49XCIjXCJdYDtcblxuY29uc3Qgc2V0VGFiaW5kZXggPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgLy8gTkI6IHdlIGtub3cgYmVjYXVzZSBvZiB0aGUgc2VsZWN0b3Igd2UncmUgZGVsZWdhdGluZyB0byBiZWxvdyB0aGF0IHRoZVxuICAvLyBocmVmIGFscmVhZHkgYmVnaW5zIHdpdGggJyMnXG4gIGNvbnN0IGlkID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKS5zbGljZSgxKTtcbiAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICBpZiAodGFyZ2V0KSB7XG4gICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAwKTtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIG9uY2UoZXZlbnQgPT4ge1xuICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAtMSk7XG4gICAgfSkpO1xuICB9IGVsc2Uge1xuICAgIC8vIHRocm93IGFuIGVycm9yP1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJlaGF2aW9yKHtcbiAgWyBDTElDSyBdOiB7XG4gICAgWyBMSU5LIF06IHNldFRhYmluZGV4LFxuICB9LFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoJy4uL3V0aWxzL2JlaGF2aW9yJyk7XG5jb25zdCB2YWxpZGF0ZSA9IHJlcXVpcmUoJy4uL3V0aWxzL3ZhbGlkYXRlLWlucHV0Jyk7XG5jb25zdCBkZWJvdW5jZSA9IHJlcXVpcmUoJ2xvZGFzaC5kZWJvdW5jZScpO1xuXG5jb25zdCBjaGFuZ2UgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgcmV0dXJuIHZhbGlkYXRlKHRoaXMpO1xufTtcblxuY29uc3QgdmFsaWRhdG9yID0gYmVoYXZpb3Ioe1xuICAna2V5dXAgY2hhbmdlJzoge1xuICAgICdpbnB1dFtkYXRhLXZhbGlkYXRpb24tZWxlbWVudF0nOiBjaGFuZ2UsXG4gIH0sXG59KTtcblxuLyoqXG4gKiBUT0RPIGZvciAyLjAsIHJlbW92ZSB0aGlzIHN0YXRlbWVudCBhbmQgZXhwb3J0IGBuYXZpZ2F0aW9uYCBkaXJlY3RseTpcbiAqXG4gKiBtb2R1bGUuZXhwb3J0cyA9IGJlaGF2aW9yKHsuLi59KTtcbiAqL1xuY29uc3QgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ24oXG4gIGVsID0+IHZhbGlkYXRvci5vbihlbCksXG4gIHZhbGlkYXRvclxuKTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBwcmVmaXg6ICd1c2EnLFxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBUaGlzIHVzZWQgdG8gYmUgY29uZGl0aW9uYWxseSBkZXBlbmRlbnQgb24gd2hldGhlciB0aGVcbiAgLy8gYnJvd3NlciBzdXBwb3J0ZWQgdG91Y2ggZXZlbnRzOyBpZiBpdCBkaWQsIGBDTElDS2Agd2FzIHNldCB0b1xuICAvLyBgdG91Y2hzdGFydGAuICBIb3dldmVyLCB0aGlzIGhhZCBkb3duc2lkZXM6XG4gIC8vXG4gIC8vICogSXQgcHJlLWVtcHRlZCBtb2JpbGUgYnJvd3NlcnMnIGRlZmF1bHQgYmVoYXZpb3Igb2YgZGV0ZWN0aW5nXG4gIC8vICAgd2hldGhlciBhIHRvdWNoIHR1cm5lZCBpbnRvIGEgc2Nyb2xsLCB0aGVyZWJ5IHByZXZlbnRpbmdcbiAgLy8gICB1c2VycyBmcm9tIHVzaW5nIHNvbWUgb2Ygb3VyIGNvbXBvbmVudHMgYXMgc2Nyb2xsIHN1cmZhY2VzLlxuICAvL1xuICAvLyAqIFNvbWUgZGV2aWNlcywgc3VjaCBhcyB0aGUgTWljcm9zb2Z0IFN1cmZhY2UgUHJvLCBzdXBwb3J0ICpib3RoKlxuICAvLyAgIHRvdWNoIGFuZCBjbGlja3MuIFRoaXMgbWVhbnQgdGhlIGNvbmRpdGlvbmFsIGVmZmVjdGl2ZWx5IGRyb3BwZWRcbiAgLy8gICBzdXBwb3J0IGZvciB0aGUgdXNlcidzIG1vdXNlLCBmcnVzdHJhdGluZyB1c2VycyB3aG8gcHJlZmVycmVkXG4gIC8vICAgaXQgb24gdGhvc2Ugc3lzdGVtcy5cbiAgQ0xJQ0s6ICdjbGljaycsXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgZWxwcm90byA9IHdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGU7XG5jb25zdCBISURERU4gPSAnaGlkZGVuJztcblxuaWYgKCEoSElEREVOIGluIGVscHJvdG8pKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbHByb3RvLCBISURERU4sIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZShISURERU4pO1xuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZShISURERU4sICcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKEhJRERFTik7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG4vLyBwb2x5ZmlsbHMgSFRNTEVsZW1lbnQucHJvdG90eXBlLmNsYXNzTGlzdCBhbmQgRE9NVG9rZW5MaXN0XG5yZXF1aXJlKCdjbGFzc2xpc3QtcG9seWZpbGwnKTtcbi8vIHBvbHlmaWxscyBIVE1MRWxlbWVudC5wcm90b3R5cGUuaGlkZGVuXG5yZXF1aXJlKCcuL2VsZW1lbnQtaGlkZGVuJyk7XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBkb21yZWFkeSA9IHJlcXVpcmUoJ2RvbXJlYWR5Jyk7XG5cbi8qKlxuICogVGhlICdwb2x5ZmlsbHMnIGRlZmluZSBrZXkgRUNNQVNjcmlwdCA1IG1ldGhvZHMgdGhhdCBtYXkgYmUgbWlzc2luZyBmcm9tXG4gKiBvbGRlciBicm93c2Vycywgc28gbXVzdCBiZSBsb2FkZWQgZmlyc3QuXG4gKi9cbnJlcXVpcmUoJy4vcG9seWZpbGxzJyk7XG5cbmNvbnN0IHVzd2RzID0gcmVxdWlyZSgnLi9jb25maWcnKTtcblxuY29uc3QgY29tcG9uZW50cyA9IHJlcXVpcmUoJy4vY29tcG9uZW50cycpO1xudXN3ZHMuY29tcG9uZW50cyA9IGNvbXBvbmVudHM7XG5cbmRvbXJlYWR5KCgpID0+IHtcbiAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcbiAgZm9yIChsZXQgbmFtZSBpbiBjb21wb25lbnRzKSB7XG4gICAgY29uc3QgYmVoYXZpb3IgPSBjb21wb25lbnRzWyBuYW1lIF07XG4gICAgYmVoYXZpb3Iub24odGFyZ2V0KTtcbiAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gdXN3ZHM7XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5jb25zdCBmb3JFYWNoID0gcmVxdWlyZSgnYXJyYXktZm9yZWFjaCcpO1xuY29uc3QgQmVoYXZpb3IgPSByZXF1aXJlKCdyZWNlcHRvci9iZWhhdmlvcicpO1xuXG5jb25zdCBzZXF1ZW5jZSA9IGZ1bmN0aW9uICgpIHtcbiAgY29uc3Qgc2VxID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICB0YXJnZXQgPSBkb2N1bWVudC5ib2R5O1xuICAgIH1cbiAgICBmb3JFYWNoKHNlcSwgbWV0aG9kID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdGhpc1sgbWV0aG9kIF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpc1sgbWV0aG9kIF0uY2FsbCh0aGlzLCB0YXJnZXQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xufTtcblxuLyoqXG4gKiBAbmFtZSBiZWhhdmlvclxuICogQHBhcmFtIHtvYmplY3R9IGV2ZW50c1xuICogQHBhcmFtIHtvYmplY3Q/fSBwcm9wc1xuICogQHJldHVybiB7cmVjZXB0b3IuYmVoYXZpb3J9XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gKGV2ZW50cywgcHJvcHMpID0+IHtcbiAgcmV0dXJuIEJlaGF2aW9yKGV2ZW50cywgYXNzaWduKHtcbiAgICBvbjogICBzZXF1ZW5jZSgnaW5pdCcsICdhZGQnKSxcbiAgICBvZmY6ICBzZXF1ZW5jZSgndGVhcmRvd24nLCAncmVtb3ZlJyksXG4gIH0sIHByb3BzKSk7XG59O1xuIiwiLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzc1NTc0MzNcbmZ1bmN0aW9uIGlzRWxlbWVudEluVmlld3BvcnQgKGVsLCB3aW49d2luZG93LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jRWw9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gIHZhciByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgcmV0dXJuIChcbiAgICByZWN0LnRvcCA+PSAwICYmXG4gICAgcmVjdC5sZWZ0ID49IDAgJiZcbiAgICByZWN0LmJvdHRvbSA8PSAod2luLmlubmVySGVpZ2h0IHx8IGRvY0VsLmNsaWVudEhlaWdodCkgJiZcbiAgICByZWN0LnJpZ2h0IDw9ICh3aW4uaW5uZXJXaWR0aCB8fCBkb2NFbC5jbGllbnRXaWR0aClcbiAgKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0VsZW1lbnRJblZpZXdwb3J0O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEBuYW1lIGlzRWxlbWVudFxuICogQGRlc2MgcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gYXJndW1lbnQgaXMgYSBET00gZWxlbWVudC5cbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuY29uc3QgaXNFbGVtZW50ID0gdmFsdWUgPT4ge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMTtcbn07XG5cbi8qKlxuICogQG5hbWUgc2VsZWN0XG4gKiBAZGVzYyBzZWxlY3RzIGVsZW1lbnRzIGZyb20gdGhlIERPTSBieSBjbGFzcyBzZWxlY3RvciBvciBJRCBzZWxlY3Rvci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvciAtIFRoZSBzZWxlY3RvciB0byB0cmF2ZXJzZSB0aGUgRE9NIHdpdGguXG4gKiBAcGFyYW0ge0RvY3VtZW50fEhUTUxFbGVtZW50P30gY29udGV4dCAtIFRoZSBjb250ZXh0IHRvIHRyYXZlcnNlIHRoZSBET01cbiAqICAgaW4uIElmIG5vdCBwcm92aWRlZCwgaXQgZGVmYXVsdHMgdG8gdGhlIGRvY3VtZW50LlxuICogQHJldHVybiB7SFRNTEVsZW1lbnRbXX0gLSBBbiBhcnJheSBvZiBET00gbm9kZXMgb3IgYW4gZW1wdHkgYXJyYXkuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gc2VsZWN0IChzZWxlY3RvciwgY29udGV4dCkge1xuXG4gIGlmICh0eXBlb2Ygc2VsZWN0b3IgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgaWYgKCFjb250ZXh0IHx8ICFpc0VsZW1lbnQoY29udGV4dCkpIHtcbiAgICBjb250ZXh0ID0gd2luZG93LmRvY3VtZW50O1xuICB9XG5cbiAgY29uc3Qgc2VsZWN0aW9uID0gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHNlbGVjdGlvbik7XG59O1xuIiwiLyoqXG4gKiBGbGlwcyBnaXZlbiBJTlBVVCBlbGVtZW50cyBiZXR3ZWVuIG1hc2tlZCAoaGlkaW5nIHRoZSBmaWVsZCB2YWx1ZSkgYW5kIHVubWFza2VkXG4gKiBAcGFyYW0ge0FycmF5LkhUTUxFbGVtZW50fSBmaWVsZHMgLSBBbiBhcnJheSBvZiBJTlBVVCBlbGVtZW50c1xuICogQHBhcmFtIHtCb29sZWFufSBtYXNrIC0gV2hldGhlciB0aGUgbWFzayBzaG91bGQgYmUgYXBwbGllZCwgaGlkaW5nIHRoZSBmaWVsZCB2YWx1ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IChmaWVsZCwgbWFzaykgPT4ge1xuICBmaWVsZC5zZXRBdHRyaWJ1dGUoJ2F1dG9jYXBpdGFsaXplJywgJ29mZicpO1xuICBmaWVsZC5zZXRBdHRyaWJ1dGUoJ2F1dG9jb3JyZWN0JywgJ29mZicpO1xuICBmaWVsZC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCBtYXNrID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0Jyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgZm9yRWFjaCA9IHJlcXVpcmUoJ2FycmF5LWZvcmVhY2gnKTtcbmNvbnN0IHJlc29sdmVJZFJlZnMgPSByZXF1aXJlKCdyZXNvbHZlLWlkLXJlZnMnKTtcbmNvbnN0IHNlbGVjdCA9IHJlcXVpcmUoJy4vc2VsZWN0Jyk7XG5jb25zdCB0b2dnbGVGaWVsZE1hc2sgPSByZXF1aXJlKCcuL3RvZ2dsZS1maWVsZC1tYXNrJyk7XG5cbmNvbnN0IENPTlRST0xTID0gJ2FyaWEtY29udHJvbHMnO1xuY29uc3QgUFJFU1NFRCA9ICdhcmlhLXByZXNzZWQnO1xuY29uc3QgU0hPV19BVFRSID0gJ2RhdGEtc2hvdy10ZXh0JztcbmNvbnN0IEhJREVfQVRUUiA9ICdkYXRhLWhpZGUtdGV4dCc7XG5cbi8qKlxuICogUmVwbGFjZSB0aGUgd29yZCBcIlNob3dcIiAob3IgXCJzaG93XCIpIHdpdGggXCJIaWRlXCIgKG9yIFwiaGlkZVwiKSBpbiBhIHN0cmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzaG93VGV4dFxuICogQHJldHVybiB7c3Ryb25nfSBoaWRlVGV4dFxuICovXG5jb25zdCBnZXRIaWRlVGV4dCA9IHNob3dUZXh0ID0+IHtcbiAgcmV0dXJuIHNob3dUZXh0LnJlcGxhY2UoL1xcYlNob3dcXGIvaSwgc2hvdyA9PiB7XG4gICAgcmV0dXJuICgnUycgPT09IHNob3dbIDAgXSA/ICdIJyA6ICdoJykgKyAnaWRlJztcbiAgfSk7XG59O1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IGRlY29yYXRlcyBhbiBIVE1MIGVsZW1lbnQgd2l0aCB0aGUgYWJpbGl0eSB0byB0b2dnbGUgdGhlXG4gKiBtYXNrZWQgc3RhdGUgb2YgYW4gaW5wdXQgZmllbGQgKGxpa2UgYSBwYXNzd29yZCkgd2hlbiBjbGlja2VkLlxuICogVGhlIGlkcyBvZiB0aGUgZmllbGRzIHRvIGJlIG1hc2tlZCB3aWxsIGJlIHB1bGxlZCBkaXJlY3RseSBmcm9tIHRoZSBidXR0b24nc1xuICogYGFyaWEtY29udHJvbHNgIGF0dHJpYnV0ZS5cbiAqXG4gKiBAcGFyYW0gIHtIVE1MRWxlbWVudH0gZWwgICAgUGFyZW50IGVsZW1lbnQgY29udGFpbmluZyB0aGUgZmllbGRzIHRvIGJlIG1hc2tlZFxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBlbCA9PiB7XG4gIC8vIHRoaXMgaXMgdGhlICp0YXJnZXQqIHN0YXRlOlxuICAvLyAqIGlmIHRoZSBlbGVtZW50IGhhcyB0aGUgYXR0ciBhbmQgaXQncyAhPT0gXCJ0cnVlXCIsIHByZXNzZWQgaXMgdHJ1ZVxuICAvLyAqIG90aGVyd2lzZSwgcHJlc3NlZCBpcyBmYWxzZVxuICBjb25zdCBwcmVzc2VkID0gZWwuaGFzQXR0cmlidXRlKFBSRVNTRUQpXG4gICAgJiYgZWwuZ2V0QXR0cmlidXRlKFBSRVNTRUQpICE9PSAndHJ1ZSc7XG5cbiAgY29uc3QgZmllbGRzID0gcmVzb2x2ZUlkUmVmcyhlbC5nZXRBdHRyaWJ1dGUoQ09OVFJPTFMpKTtcbiAgZm9yRWFjaChmaWVsZHMsIGZpZWxkID0+IHRvZ2dsZUZpZWxkTWFzayhmaWVsZCwgcHJlc3NlZCkpO1xuXG4gIGlmICghZWwuaGFzQXR0cmlidXRlKFNIT1dfQVRUUikpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoU0hPV19BVFRSLCBlbC50ZXh0Q29udGVudCk7XG4gIH1cblxuICBjb25zdCBzaG93VGV4dCA9IGVsLmdldEF0dHJpYnV0ZShTSE9XX0FUVFIpO1xuICBjb25zdCBoaWRlVGV4dCA9IGVsLmdldEF0dHJpYnV0ZShISURFX0FUVFIpIHx8IGdldEhpZGVUZXh0KHNob3dUZXh0KTtcblxuICBlbC50ZXh0Q29udGVudCA9IHByZXNzZWQgPyBzaG93VGV4dCA6IGhpZGVUZXh0O1xuICBlbC5zZXRBdHRyaWJ1dGUoUFJFU1NFRCwgcHJlc3NlZCk7XG4gIHJldHVybiBwcmVzc2VkO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IEVYUEFOREVEID0gJ2FyaWEtZXhwYW5kZWQnO1xuY29uc3QgQ09OVFJPTFMgPSAnYXJpYS1jb250cm9scyc7XG5jb25zdCBISURERU4gPSAnYXJpYS1oaWRkZW4nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChidXR0b24sIGV4cGFuZGVkKSA9PiB7XG5cbiAgaWYgKHR5cGVvZiBleHBhbmRlZCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgZXhwYW5kZWQgPSBidXR0b24uZ2V0QXR0cmlidXRlKEVYUEFOREVEKSA9PT0gJ2ZhbHNlJztcbiAgfVxuICBidXR0b24uc2V0QXR0cmlidXRlKEVYUEFOREVELCBleHBhbmRlZCk7XG5cbiAgY29uc3QgaWQgPSBidXR0b24uZ2V0QXR0cmlidXRlKENPTlRST0xTKTtcbiAgY29uc3QgY29udHJvbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gIGlmICghY29udHJvbHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTm8gdG9nZ2xlIHRhcmdldCBmb3VuZCB3aXRoIGlkOiBcIicgKyBpZCArICdcIidcbiAgICApO1xuICB9XG5cbiAgY29udHJvbHMuc2V0QXR0cmlidXRlKEhJRERFTiwgIWV4cGFuZGVkKTtcbiAgcmV0dXJuIGV4cGFuZGVkO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGRhdGFzZXQgPSByZXF1aXJlKCdlbGVtLWRhdGFzZXQnKTtcblxuY29uc3QgUFJFRklYID0gcmVxdWlyZSgnLi4vY29uZmlnJykucHJlZml4O1xuY29uc3QgQ0hFQ0tFRCA9ICdhcmlhLWNoZWNrZWQnO1xuY29uc3QgQ0hFQ0tFRF9DTEFTUyA9IGAke1BSRUZJWH0tY2hlY2tsaXN0LWNoZWNrZWRgO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHZhbGlkYXRlIChlbCkge1xuICBjb25zdCBkYXRhID0gZGF0YXNldChlbCk7XG4gIGNvbnN0IGlkID0gZGF0YS52YWxpZGF0aW9uRWxlbWVudDtcbiAgY29uc3QgY2hlY2tMaXN0ID0gaWQuY2hhckF0KDApID09PSAnIydcbiAgICA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoaWQpXG4gICAgOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG5cbiAgaWYgKCFjaGVja0xpc3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gdmFsaWRhdGlvbiBlbGVtZW50IGZvdW5kIHdpdGggaWQ6IFwiJHtpZH1cImBcbiAgICApO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aCgndmFsaWRhdGUnKSkge1xuICAgICAgY29uc3QgdmFsaWRhdG9yTmFtZSA9IGtleS5zdWJzdHIoJ3ZhbGlkYXRlJy5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCB2YWxpZGF0b3JQYXR0ZXJuID0gbmV3IFJlZ0V4cChkYXRhWyBrZXkgXSk7XG4gICAgICBjb25zdCB2YWxpZGF0b3JTZWxlY3RvciA9IGBbZGF0YS12YWxpZGF0b3I9XCIke3ZhbGlkYXRvck5hbWV9XCJdYDtcbiAgICAgIGNvbnN0IHZhbGlkYXRvckNoZWNrYm94ID0gY2hlY2tMaXN0LnF1ZXJ5U2VsZWN0b3IodmFsaWRhdG9yU2VsZWN0b3IpO1xuICAgICAgaWYgKCF2YWxpZGF0b3JDaGVja2JveCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYE5vIHZhbGlkYXRvciBjaGVja2JveCBmb3VuZCBmb3I6IFwiJHt2YWxpZGF0b3JOYW1lfVwiYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaGVja2VkID0gdmFsaWRhdG9yUGF0dGVybi50ZXN0KGVsLnZhbHVlKTtcbiAgICAgIHZhbGlkYXRvckNoZWNrYm94LmNsYXNzTGlzdC50b2dnbGUoQ0hFQ0tFRF9DTEFTUywgY2hlY2tlZCk7XG4gICAgICB2YWxpZGF0b3JDaGVja2JveC5zZXRBdHRyaWJ1dGUoQ0hFQ0tFRCwgY2hlY2tlZCk7XG4gICAgfVxuICB9XG59O1xuIl19
@@ -1,2 +1,2 @@
1
- !function t(e,n,r){function o(u,c){if(!n[u]){if(!e[u]){var s="function"==typeof require&&require;if(!c&&s)return s(u,!0);if(i)return i(u,!0);var a=new Error("Cannot find module '"+u+"'");throw a.code="MODULE_NOT_FOUND",a}var f=n[u]={exports:{}};e[u][0].call(f.exports,function(t){var n=e[u][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[u].exports}for(var i="function"==typeof require&&require,u=0;u<r.length;u++)o(r[u]);return o}({1:[function(t,e,n){"use strict";e.exports=function(t,e,n){if(t.filter)return t.filter(e,n);if(void 0===t||null===t)throw new TypeError;if("function"!=typeof e)throw new TypeError;for(var o=[],i=0;i<t.length;i++)if(r.call(t,i)){var u=t[i];e.call(n,u,i,t)&&o.push(u)}return o};var r=Object.prototype.hasOwnProperty},{}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n){if(t.forEach)return void t.forEach(e,n);for(var r=0;r<t.length;r+=1)e.call(n,t[r],r,t)}},{}],3:[function(t,e,n){"use strict";"document"in window.self&&("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g"))||!function(t){if("Element"in t){var e="classList",n="prototype",r=t.Element[n],o=Object,i=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},u=Array[n].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1},c=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},s=function(t,e){if(""===e)throw new c("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new c("INVALID_CHARACTER_ERR","String contains an invalid character");return u.call(t,e)},a=function(t){for(var e=i.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],r=0,o=n.length;r<o;r++)this.push(n[r]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},f=a[n]=[],l=function(){return new a(this)};if(c[n]=Error[n],f.item=function(t){return this[t]||null},f.contains=function(t){return t+="",s(this,t)!==-1},f.add=function(){var t,e=arguments,n=0,r=e.length,o=!1;do t=e[n]+"",s(this,t)===-1&&(this.push(t),o=!0);while(++n<r);o&&this._updateClassName()},f.remove=function(){var t,e,n=arguments,r=0,o=n.length,i=!1;do for(t=n[r]+"",e=s(this,t);e!==-1;)this.splice(e,1),i=!0,e=s(this,t);while(++r<o);i&&this._updateClassName()},f.toggle=function(t,e){t+="";var n=this.contains(t),r=n?e!==!0&&"remove":e!==!1&&"add";return r&&this[r](t),e===!0||e===!1?e:!n},f.toString=function(){return this.join(" ")},o.defineProperty){var d={get:l,enumerable:!0,configurable:!0};try{o.defineProperty(r,e,d)}catch(p){void 0!==p.number&&p.number!==-2146823252||(d.enumerable=!1,o.defineProperty(r,e,d))}}else o[n].__defineGetter__&&r.__defineGetter__(e,l)}}(window.self),function(){var t=document.createElement("_");if(t.classList.add("c1","c2"),!t.classList.contains("c2")){var e=function(t){var e=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){var n,r=arguments.length;for(n=0;n<r;n++)t=arguments[n],e.call(this,t)}};e("add"),e("remove")}if(t.classList.toggle("c3",!1),t.classList.contains("c3")){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}t=null}())},{}],4:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(t,n){"undefined"!=typeof e?e.exports=n():"function"==typeof define&&"object"==r(define.amd)?define(n):this[t]=n()}("domready",function(){var t,e=[],n=document,r=n.documentElement.doScroll,o="DOMContentLoaded",i=(r?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return i||n.addEventListener(o,t=function(){for(n.removeEventListener(o,t),i=1;t=e.shift();)t()}),function(t){i?setTimeout(t,0):e.push(t)}})},{}],5:[function(t,e,n){"use strict";function r(){var t=document.createElement("div");return t.setAttribute("data-a-b","c"),Boolean(t.dataset&&"c"===t.dataset.aB)}function o(t){return t.dataset}e.exports=r()?o:function(t){function e(){return this.value}function n(t,e){"undefined"==typeof e?this.removeAttribute(t):this.setAttribute(t,e)}for(var r={},o=t.attributes,i=0,u=o.length;i<u;i++){var c=o[i];if(c){var s=c.name;if(0===s.indexOf("data-")){var a=s.slice(5).replace(/-./g,function(t){return t.charAt(1).toUpperCase()}),f=c.value;Object.defineProperty(r,a,{enumerable:!0,get:e.bind({value:f||""}),set:n.bind(t,s)})}}}return r}},{}],6:[function(t,e,n){"use strict";!function(t){"function"!=typeof t.matches&&(t.matches=t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||function(t){for(var e=this,n=(e.document||e.ownerDocument).querySelectorAll(t),r=0;n[r]&&n[r]!==e;)++r;return Boolean(n[r])}),"function"!=typeof t.closest&&(t.closest=function(t){for(var e=this;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null})}(window.Element.prototype)},{}],7:[function(t,e,n){(function(t){"use strict";function n(t,e,n){function o(e){var n=b,r=h;return b=h=void 0,S=e,g=t.apply(r,n)}function i(t){return S=t,m=setTimeout(f,e),O?o(t):g}function c(t){var n=t-w,r=t-S,o=e-n;return A?j(o,y-r):o}function a(t){var n=t-w,r=t-S;return void 0===w||n>=e||n<0||A&&r>=y}function f(){var t=E();return a(t)?l(t):void(m=setTimeout(f,c(t)))}function l(t){return m=void 0,L&&b?o(t):(b=h=void 0,g)}function d(){void 0!==m&&clearTimeout(m),S=0,b=w=h=m=void 0}function p(){return void 0===m?g:l(E())}function v(){var t=E(),n=a(t);if(b=arguments,h=this,w=t,n){if(void 0===m)return i(w);if(A)return m=setTimeout(f,e),o(w)}return void 0===m&&(m=setTimeout(f,e)),g}var b,h,y,g,m,w,S=0,O=!1,A=!1,L=!0;if("function"!=typeof t)throw new TypeError(s);return e=u(e)||0,r(n)&&(O=!!n.leading,A="maxWait"in n,y=A?x(u(n.maxWait)||0,e):y,L="trailing"in n?!!n.trailing:L),v.cancel=d,v.flush=p,v}function r(t){var e="undefined"==typeof t?"undefined":c(t);return!!t&&("object"==e||"function"==e)}function o(t){return!!t&&"object"==("undefined"==typeof t?"undefined":c(t))}function i(t){return"symbol"==("undefined"==typeof t?"undefined":c(t))||o(t)&&w.call(t)==f}function u(t){if("number"==typeof t)return t;if(i(t))return a;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(l,"");var n=p.test(t);return n||v.test(t)?b(t.slice(2),n?2:8):d.test(t)?a:+t}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s="Expected a function",a=NaN,f="[object Symbol]",l=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,v=/^0o[0-7]+$/i,b=parseInt,h="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,g=h||y||Function("return this")(),m=Object.prototype,w=m.toString,x=Math.max,j=Math.min,E=function(){return g.Date.now()};e.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(t,e,n){"use strict";function r(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function o(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(t){o[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(i){return!1}}var i=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;e.exports=o()?Object.assign:function(t,e){for(var n,o,s=r(t),a=1;a<arguments.length;a++){n=Object(arguments[a]);for(var f in n)u.call(n,f)&&(s[f]=n[f]);if(i){o=i(n);for(var l=0;l<o.length;l++)c.call(n,o[l])&&(s[o[l]]=n[o[l]])}}return s}},{}],9:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=t("object-assign"),i=t("../delegate"),u=t("../delegateAll"),c=/^(.+):delegate\((.+)\)$/,s=" ",a=function(t,e){var n,a=t.match(c);a&&(t=a[1],n=a[2]);var l;"object"===("undefined"==typeof e?"undefined":r(e))&&(l={capture:f(e,"capture"),passive:f(e,"passive")});var d={selector:n,delegate:"object"===("undefined"==typeof e?"undefined":r(e))?u(e):n?i(n,e):e,options:l};return t.indexOf(s)>-1?t.split(s).map(function(t){return o({type:t},d)}):(d.type=t,[d])},f=function(t,e){var n=t[e];return delete t[e],n};e.exports=function(t,e){var n=Object.keys(t).reduce(function(e,n){var r=a(n,t[n]);return e.concat(r)},[]);return o({add:function(t){n.forEach(function(e){t.addEventListener(e.type,e.delegate,e.options)})},remove:function(t){n.forEach(function(e){t.removeEventListener(e.type,e.delegate,e.options)})}},e)}},{"../delegate":11,"../delegateAll":12,"object-assign":8}],10:[function(t,e,n){"use strict";e.exports=function(t){return function(e){return t.some(function(t){return t.call(this,e)===!1},this)}}},{}],11:[function(t,e,n){"use strict";t("element-closest"),e.exports=function(t,e){return function(n){var r=n.target.closest(t);if(r)return e.call(r,n)}}},{"element-closest":6}],12:[function(t,e,n){"use strict";var r=t("../delegate"),o=t("../compose"),i="*";e.exports=function(t){var e=Object.keys(t);if(1===e.length&&e[0]===i)return t[i];var n=e.reduce(function(e,n){return e.push(r(n,t[n])),e},[]);return o(n)}},{"../compose":10,"../delegate":11}],13:[function(t,e,n){"use strict";e.exports=function(t,e){return function(n){if(t!==n.target&&!t.contains(n.target))return e.call(this,n)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t,e){var n=function(r){return r.currentTarget.removeEventListener(r.type,n,e),t.call(this,r)};return n}},{}],15:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=/(^\s+)|(\s+$)/g,i=/\s+/,u=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(o,"")},c=function(t){return this.querySelector('[id="'+t.replace(/"/g,'\\"')+'"]')};e.exports=function(t,e){if("string"!=typeof t)throw new Error("Expected a string but got "+("undefined"==typeof t?"undefined":r(t)));e||(e=window.document);var n=e.getElementById?e.getElementById.bind(e):c.bind(e);return t=u(t).split(i),1===t.length&&""===t[0]?[]:t.map(function(t){var e=n(t);if(!e)throw new Error('no element with id: "'+t+'"');return e})}},{}],16:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("array-filter"),u=t("array-foreach"),c=t("../utils/toggle"),s=t("../utils/is-in-viewport"),a=t("../events").CLICK,f=t("../config").prefix,l="."+f+"-accordion, ."+f+"-accordion-bordered",d="."+f+"-accordion-button[aria-controls]",p="aria-expanded",v="aria-multiselectable",b=function(t,e){var n=t.closest(l);if(!n)throw new Error(d+" is missing outer "+l);e=c(t,e);var r="true"===n.getAttribute(v);e&&!r&&u(g(n),function(e){e!==t&&c(e,!1)})},h=function(t){return b(t,!0)},y=function(t){return b(t,!1)},g=function(t){return i(t.querySelectorAll(d),function(e){return e.closest(l)===t})},m=o(r({},a,r({},d,function(t){t.preventDefault(),b(this),"true"===this.getAttribute(p)&&(s(this)||this.scrollIntoView())})),{init:function(t){u(t.querySelectorAll(d),function(t){var e="true"===t.getAttribute(p);b(t,e)})},ACCORDION:l,BUTTON:d,show:h,hide:y,toggle:b,getButtons:g}),w=function(t){this.root=t,m.on(this.root)},x=t("object-assign");x(w,m),w.prototype.show=h,w.prototype.hide=y,w.prototype.remove=function(){m.off(this.root)},e.exports=w},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/is-in-viewport":31,"../utils/toggle":35,"array-filter":1,"array-foreach":2,"object-assign":8}],17:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=(t("../utils/toggle"),t("../events").CLICK),u=t("../config").prefix,c="."+u+"-banner-header",s=u+"-banner-header-expanded",a=function(t){return t.preventDefault(),this.closest(c).classList.toggle(s),!1};e.exports=o(r({},i,r({},c+" [aria-controls]",a)))},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/toggle":35}],18:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=(t("./accordion"),t("../utils/behavior")),i=t("lodash.debounce"),u=t("array-foreach"),c=t("../utils/select"),s=t("../events").CLICK,a=t("../config").prefix,f="hidden",l="."+a+"-footer-big",d=l+" nav",p=d+" ."+a+"-footer-primary-link",v=d+" ul",b=600,h=180,y=function(){var t=this.closest(v);t.classList.remove(f);var e=t.closest(d).querySelectorAll("ul");u(e,function(e){e!==t&&e.classList.add(f)})},g=i(function(){var t=window.innerWidth<b;u(c(v),function(e){e.classList.toggle(f,t)})},h);e.exports=o(r({},s,r({},p,y)),{HIDE_MAX_WIDTH:b,DEBOUNCE_RATE:h,init:function(t){g(),window.addEventListener("resize",g)},teardown:function(t){window.removeEventListener("resize",g)}})},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/select":32,"./accordion":16,"array-foreach":2,"lodash.debounce":7}],19:[function(t,e,n){"use strict";e.exports={accordion:t("./accordion"),banner:t("./banner"),footer:t("./footer"),navigation:t("./navigation"),password:t("./password"),search:t("./search"),skipnav:t("./skipnav"),validator:t("./validator")}},{"./accordion":16,"./banner":17,"./footer":18,"./navigation":20,"./password":21,"./search":22,"./skipnav":23,"./validator":24}],20:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o,i=t("../utils/behavior"),u=t("array-foreach"),c=t("../utils/select"),s=t("./accordion"),a=t("../events").CLICK,f=t("../config").prefix,l="header",d="."+f+"-nav",p=d+" a",v="."+f+"-menu-btn",b="."+f+"-nav-close",h="."+f+"-overlay",y=b+", ."+f+"-overlay",g=[d,h].join(", "),m="usa-mobile_nav-active",w="is-visible",x=function(t){var e=document.body;"boolean"!=typeof t&&(t=!e.classList.contains(m)),e.classList.toggle(m,t);var n=this.closest(l);if(u(c(g),function(t){t.classList.toggle(w)}),t&&n){var r=n.querySelector(b);r&&r.focus()}return t},j=i(r({},a,(o={},r(o,v,x),r(o,y,x),r(o,p,function(){var t=this.closest(s.ACCORDION);t&&s.getButtons(t).forEach(function(t){return s.hide(t)}),document.body.classList.contains(m)&&x.call(this)}),o))),E=t("object-assign");e.exports=E(function(t){return j.on(t)},j)},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/select":32,"./accordion":16,"array-foreach":2,"object-assign":8}],21:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("../utils/toggle-form-input"),u=t("../events").CLICK,c=t("../config").prefix,s="."+c+"-show_password, ."+c+"-show_multipassword",a=function(t){t.preventDefault(),i(this)};e.exports=o(r({},u,r({},s,a)))},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/toggle-form-input":34}],22:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("array-foreach"),u=t("receptor/ignore"),c=t("../utils/select"),s=t("../events").CLICK,a=t("../config").prefix,f=".js-search-button",l=".js-search-form",d="[type=search]",p="header",v=a+"-sr-only",b=void 0,h=function(t){m(this,!0),b=this},y=function(t){m(this,!1),b=void 0},g=function(t){var e=t.closest(p);return e?e.querySelector(l):document.querySelector(l)},m=function(t,e){var n=g(t);if(!n)throw new Error("No "+l+" found for search toggle in "+p+"!");if(t.hidden=e,n.classList.toggle(v,!e),e){var r=n.querySelector(d);r&&r.focus();var o=u(n,function(t){b&&y.call(b),document.body.removeEventListener(s,o)});setTimeout(function(){document.body.addEventListener(s,o)},0)}},w=o(r({},s,r({},f,h)),{init:function(t){i(c(f,t),function(t){m(t,!1)})},teardown:function(t){b=void 0}}),x=t("object-assign");e.exports=x(function(t){return w.on(t)},w)},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/select":32,"array-foreach":2,"object-assign":8,"receptor/ignore":13}],23:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("receptor/once"),u=t("../events").CLICK,c=t("../config").prefix,s="."+c+'-skipnav[href^="#"]',a=function(t){var e=this.getAttribute("href").slice(1),n=document.getElementById(e);n&&(n.setAttribute("tabindex",0),n.addEventListener("blur",i(function(t){n.setAttribute("tabindex",-1)})))};e.exports=o(r({},u,r({},s,a)))},{"../config":25,"../events":26,"../utils/behavior":30,"receptor/once":14}],24:[function(t,e,n){"use strict";var r=t("../utils/behavior"),o=t("../utils/validate-input"),i=(t("lodash.debounce"),function(t){return o(this)}),u=r({"keyup change":{"input[data-validation-element]":i}}),c=t("object-assign");e.exports=c(function(t){return u.on(t)},u)},{"../utils/behavior":30,"../utils/validate-input":36,"lodash.debounce":7,"object-assign":8}],25:[function(t,e,n){"use strict";e.exports={prefix:"usa"}},{}],26:[function(t,e,n){"use strict";e.exports={CLICK:"click"}},{}],27:[function(t,e,n){"use strict";var r=window.HTMLElement.prototype,o="hidden";o in r||Object.defineProperty(r,o,{get:function(){return this.hasAttribute(o)},set:function(t){t?this.setAttribute(o,""):this.removeAttribute(o)}})},{}],28:[function(t,e,n){"use strict";t("classlist-polyfill"),t("./element-hidden")},{"./element-hidden":27,"classlist-polyfill":3}],29:[function(t,e,n){"use strict";var r=t("domready");t("./polyfills");var o=t("./config"),i=t("./components");o.components=i,r(function(){var t=document.body;for(var e in i){var n=i[e];n.on(t)}}),e.exports=o},{"./components":19,"./config":25,"./polyfills":28,domready:4}],30:[function(t,e,n){"use strict";var r=t("object-assign"),o=t("array-foreach"),i=t("receptor/behavior"),u=function(){var t=[].slice.call(arguments);return function(e){var n=this;e||(e=document.body),o(t,function(t){"function"==typeof n[t]&&n[t].call(n,e)})}};e.exports=function(t,e){return i(t,r({on:u("init","add"),off:u("teardown","remove")},e))}},{"array-foreach":2,"object-assign":8,"receptor/behavior":9}],31:[function(t,e,n){"use strict";function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:document.documentElement,r=t.getBoundingClientRect();return r.top>=0&&r.left>=0&&r.bottom<=(e.innerHeight||n.clientHeight)&&r.right<=(e.innerWidth||n.clientWidth)}e.exports=r},{}],32:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=function(t){return t&&"object"===("undefined"==typeof t?"undefined":r(t))&&1===t.nodeType};e.exports=function(t,e){if("string"!=typeof t)return[];e&&o(e)||(e=window.document);var n=e.querySelectorAll(t);return Array.prototype.slice.call(n)}},{}],33:[function(t,e,n){"use strict";e.exports=function(t,e){t.setAttribute("autocapitalize","off"),t.setAttribute("autocorrect","off"),t.setAttribute("type",e?"password":"text")}},{}],34:[function(t,e,n){"use strict";var r=t("array-foreach"),o=t("resolve-id-refs"),i=(t("./select"),t("./toggle-field-mask")),u="aria-controls",c="aria-pressed",s="data-show-text",a="data-hide-text",f=function(t){return t.replace(/\bShow\b/i,function(t){return("S"===t[0]?"H":"h")+"ide"})};e.exports=function(t){var e=t.hasAttribute(c)&&"true"!==t.getAttribute(c),n=o(t.getAttribute(u));r(n,function(t){return i(t,e)}),t.hasAttribute(s)||t.setAttribute(s,t.textContent);var l=t.getAttribute(s),d=t.getAttribute(a)||f(l);return t.textContent=e?l:d,t.setAttribute(c,e),e}},{"./select":32,"./toggle-field-mask":33,"array-foreach":2,"resolve-id-refs":15}],35:[function(t,e,n){"use strict";var r="aria-expanded",o="aria-controls",i="aria-hidden";e.exports=function(t,e){"boolean"!=typeof e&&(e="false"===t.getAttribute(r)),t.setAttribute(r,e);var n=t.getAttribute(o),u=document.getElementById(n);if(!u)throw new Error('No toggle target found with id: "'+n+'"');return u.setAttribute(i,!e),e}},{}],36:[function(t,e,n){"use strict";var r=t("elem-dataset"),o=t("../config").prefix,i="aria-checked",u=o+"-checklist-checked";e.exports=function(t){var e=r(t),n=e.validationElement,o="#"===n.charAt(0)?document.querySelector(n):document.getElementById(n);if(!o)throw new Error('No validation element found with id: "'+n+'"');for(var c in e)if(c.startsWith("validate")){var s=c.substr("validate".length).toLowerCase(),a=new RegExp(e[c]),f='[data-validator="'+s+'"]',l=o.querySelector(f);if(!l)throw new Error('No validator checkbox found for: "'+s+'"');var d=a.test(t.value);l.classList.toggle(u,d),l.setAttribute(i,d)}}},{"../config":25,"elem-dataset":5}]},{},[29]);
1
+ !function t(e,n,r){function o(u,c){if(!n[u]){if(!e[u]){var s="function"==typeof require&&require;if(!c&&s)return s(u,!0);if(i)return i(u,!0);var a=new Error("Cannot find module '"+u+"'");throw a.code="MODULE_NOT_FOUND",a}var f=n[u]={exports:{}};e[u][0].call(f.exports,function(t){var n=e[u][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[u].exports}for(var i="function"==typeof require&&require,u=0;u<r.length;u++)o(r[u]);return o}({1:[function(t,e,n){"use strict";e.exports=function(t,e,n){if(t.filter)return t.filter(e,n);if(void 0===t||null===t)throw new TypeError;if("function"!=typeof e)throw new TypeError;for(var o=[],i=0;i<t.length;i++)if(r.call(t,i)){var u=t[i];e.call(n,u,i,t)&&o.push(u)}return o};var r=Object.prototype.hasOwnProperty},{}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n){if(t.forEach)return void t.forEach(e,n);for(var r=0;r<t.length;r+=1)e.call(n,t[r],r,t)}},{}],3:[function(t,e,n){"use strict";"document"in window.self&&("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g"))||!function(t){if("Element"in t){var e="classList",n="prototype",r=t.Element[n],o=Object,i=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},u=Array[n].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1},c=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},s=function(t,e){if(""===e)throw new c("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new c("INVALID_CHARACTER_ERR","String contains an invalid character");return u.call(t,e)},a=function(t){for(var e=i.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],r=0,o=n.length;r<o;r++)this.push(n[r]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},f=a[n]=[],l=function(){return new a(this)};if(c[n]=Error[n],f.item=function(t){return this[t]||null},f.contains=function(t){return t+="",s(this,t)!==-1},f.add=function(){var t,e=arguments,n=0,r=e.length,o=!1;do t=e[n]+"",s(this,t)===-1&&(this.push(t),o=!0);while(++n<r);o&&this._updateClassName()},f.remove=function(){var t,e,n=arguments,r=0,o=n.length,i=!1;do for(t=n[r]+"",e=s(this,t);e!==-1;)this.splice(e,1),i=!0,e=s(this,t);while(++r<o);i&&this._updateClassName()},f.toggle=function(t,e){t+="";var n=this.contains(t),r=n?e!==!0&&"remove":e!==!1&&"add";return r&&this[r](t),e===!0||e===!1?e:!n},f.toString=function(){return this.join(" ")},o.defineProperty){var d={get:l,enumerable:!0,configurable:!0};try{o.defineProperty(r,e,d)}catch(p){void 0!==p.number&&p.number!==-2146823252||(d.enumerable=!1,o.defineProperty(r,e,d))}}else o[n].__defineGetter__&&r.__defineGetter__(e,l)}}(window.self),function(){var t=document.createElement("_");if(t.classList.add("c1","c2"),!t.classList.contains("c2")){var e=function(t){var e=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){var n,r=arguments.length;for(n=0;n<r;n++)t=arguments[n],e.call(this,t)}};e("add"),e("remove")}if(t.classList.toggle("c3",!1),t.classList.contains("c3")){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}t=null}())},{}],4:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(t,n){"undefined"!=typeof e?e.exports=n():"function"==typeof define&&"object"==r(define.amd)?define(n):this[t]=n()}("domready",function(){var t,e=[],n=document,r=n.documentElement.doScroll,o="DOMContentLoaded",i=(r?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return i||n.addEventListener(o,t=function(){for(n.removeEventListener(o,t),i=1;t=e.shift();)t()}),function(t){i?setTimeout(t,0):e.push(t)}})},{}],5:[function(t,e,n){"use strict";function r(){var t=document.createElement("div");return t.setAttribute("data-a-b","c"),Boolean(t.dataset&&"c"===t.dataset.aB)}function o(t){return t.dataset}e.exports=r()?o:function(t){function e(){return this.value}function n(t,e){"undefined"==typeof e?this.removeAttribute(t):this.setAttribute(t,e)}for(var r={},o=t.attributes,i=0,u=o.length;i<u;i++){var c=o[i];if(c){var s=c.name;if(0===s.indexOf("data-")){var a=s.slice(5).replace(/-./g,function(t){return t.charAt(1).toUpperCase()}),f=c.value;Object.defineProperty(r,a,{enumerable:!0,get:e.bind({value:f||""}),set:n.bind(t,s)})}}}return r}},{}],6:[function(t,e,n){"use strict";!function(t){"function"!=typeof t.matches&&(t.matches=t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||function(t){for(var e=this,n=(e.document||e.ownerDocument).querySelectorAll(t),r=0;n[r]&&n[r]!==e;)++r;return Boolean(n[r])}),"function"!=typeof t.closest&&(t.closest=function(t){for(var e=this;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null})}(window.Element.prototype)},{}],7:[function(t,e,n){(function(t){"use strict";function n(t,e,n){function o(e){var n=b,r=h;return b=h=void 0,S=e,g=t.apply(r,n)}function i(t){return S=t,m=setTimeout(f,e),O?o(t):g}function c(t){var n=t-w,r=t-S,o=e-n;return A?E(o,y-r):o}function a(t){var n=t-w,r=t-S;return void 0===w||n>=e||n<0||A&&r>=y}function f(){var t=j();return a(t)?l(t):void(m=setTimeout(f,c(t)))}function l(t){return m=void 0,L&&b?o(t):(b=h=void 0,g)}function d(){void 0!==m&&clearTimeout(m),S=0,b=w=h=m=void 0}function p(){return void 0===m?g:l(j())}function v(){var t=j(),n=a(t);if(b=arguments,h=this,w=t,n){if(void 0===m)return i(w);if(A)return m=setTimeout(f,e),o(w)}return void 0===m&&(m=setTimeout(f,e)),g}var b,h,y,g,m,w,S=0,O=!1,A=!1,L=!0;if("function"!=typeof t)throw new TypeError(s);return e=u(e)||0,r(n)&&(O=!!n.leading,A="maxWait"in n,y=A?x(u(n.maxWait)||0,e):y,L="trailing"in n?!!n.trailing:L),v.cancel=d,v.flush=p,v}function r(t){var e="undefined"==typeof t?"undefined":c(t);return!!t&&("object"==e||"function"==e)}function o(t){return!!t&&"object"==("undefined"==typeof t?"undefined":c(t))}function i(t){return"symbol"==("undefined"==typeof t?"undefined":c(t))||o(t)&&w.call(t)==f}function u(t){if("number"==typeof t)return t;if(i(t))return a;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(l,"");var n=p.test(t);return n||v.test(t)?b(t.slice(2),n?2:8):d.test(t)?a:+t}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s="Expected a function",a=NaN,f="[object Symbol]",l=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,v=/^0o[0-7]+$/i,b=parseInt,h="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,g=h||y||Function("return this")(),m=Object.prototype,w=m.toString,x=Math.max,E=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(t,e,n){"use strict";function r(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function o(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(t){o[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(i){return!1}}var i=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;e.exports=o()?Object.assign:function(t,e){for(var n,o,s=r(t),a=1;a<arguments.length;a++){n=Object(arguments[a]);for(var f in n)u.call(n,f)&&(s[f]=n[f]);if(i){o=i(n);for(var l=0;l<o.length;l++)c.call(n,o[l])&&(s[o[l]]=n[o[l]])}}return s}},{}],9:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=t("object-assign"),i=t("../delegate"),u=t("../delegateAll"),c=/^(.+):delegate\((.+)\)$/,s=" ",a=function(t,e){var n,a=t.match(c);a&&(t=a[1],n=a[2]);var l;"object"===("undefined"==typeof e?"undefined":r(e))&&(l={capture:f(e,"capture"),passive:f(e,"passive")});var d={selector:n,delegate:"object"===("undefined"==typeof e?"undefined":r(e))?u(e):n?i(n,e):e,options:l};return t.indexOf(s)>-1?t.split(s).map(function(t){return o({type:t},d)}):(d.type=t,[d])},f=function(t,e){var n=t[e];return delete t[e],n};e.exports=function(t,e){var n=Object.keys(t).reduce(function(e,n){var r=a(n,t[n]);return e.concat(r)},[]);return o({add:function(t){n.forEach(function(e){t.addEventListener(e.type,e.delegate,e.options)})},remove:function(t){n.forEach(function(e){t.removeEventListener(e.type,e.delegate,e.options)})}},e)}},{"../delegate":11,"../delegateAll":12,"object-assign":8}],10:[function(t,e,n){"use strict";e.exports=function(t){return function(e){return t.some(function(t){return t.call(this,e)===!1},this)}}},{}],11:[function(t,e,n){"use strict";t("element-closest"),e.exports=function(t,e){return function(n){var r=n.target.closest(t);if(r)return e.call(r,n)}}},{"element-closest":6}],12:[function(t,e,n){"use strict";var r=t("../delegate"),o=t("../compose"),i="*";e.exports=function(t){var e=Object.keys(t);if(1===e.length&&e[0]===i)return t[i];var n=e.reduce(function(e,n){return e.push(r(n,t[n])),e},[]);return o(n)}},{"../compose":10,"../delegate":11}],13:[function(t,e,n){"use strict";e.exports=function(t,e){return function(n){if(t!==n.target&&!t.contains(n.target))return e.call(this,n)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t,e){var n=function(r){return r.currentTarget.removeEventListener(r.type,n,e),t.call(this,r)};return n}},{}],15:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=/(^\s+)|(\s+$)/g,i=/\s+/,u=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(o,"")},c=function(t){return this.querySelector('[id="'+t.replace(/"/g,'\\"')+'"]')};e.exports=function(t,e){if("string"!=typeof t)throw new Error("Expected a string but got "+("undefined"==typeof t?"undefined":r(t)));e||(e=window.document);var n=e.getElementById?e.getElementById.bind(e):c.bind(e);return t=u(t).split(i),1===t.length&&""===t[0]?[]:t.map(function(t){var e=n(t);if(!e)throw new Error('no element with id: "'+t+'"');return e})}},{}],16:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("array-filter"),u=t("array-foreach"),c=t("../utils/toggle"),s=t("../utils/is-in-viewport"),a=t("../events").CLICK,f=t("../config").prefix,l="."+f+"-accordion, ."+f+"-accordion-bordered",d="."+f+"-accordion-button[aria-controls]",p="aria-expanded",v="aria-multiselectable",b=function(t,e){var n=t.closest(l);if(!n)throw new Error(d+" is missing outer "+l);e=c(t,e);var r="true"===n.getAttribute(v);e&&!r&&u(g(n),function(e){e!==t&&c(e,!1)})},h=function(t){return b(t,!0)},y=function(t){return b(t,!1)},g=function(t){return i(t.querySelectorAll(d),function(e){return e.closest(l)===t})},m=o(r({},a,r({},d,function(t){t.preventDefault(),b(this),"true"===this.getAttribute(p)&&(s(this)||this.scrollIntoView())})),{init:function(t){u(t.querySelectorAll(d),function(t){var e="true"===t.getAttribute(p);b(t,e)})},ACCORDION:l,BUTTON:d,show:h,hide:y,toggle:b,getButtons:g}),w=function(t){this.root=t,m.on(this.root)},x=t("object-assign");x(w,m),w.prototype.show=h,w.prototype.hide=y,w.prototype.remove=function(){m.off(this.root)},e.exports=w},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/is-in-viewport":31,"../utils/toggle":35,"array-filter":1,"array-foreach":2,"object-assign":8}],17:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=(t("../utils/toggle"),t("../events").CLICK),u=t("../config").prefix,c="."+u+"-banner-header",s=u+"-banner-header-expanded",a=function(t){return t.preventDefault(),this.closest(c).classList.toggle(s),!1};e.exports=o(r({},i,r({},c+" [aria-controls]",a)))},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/toggle":35}],18:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=(t("./accordion"),t("../utils/behavior")),i=t("lodash.debounce"),u=t("array-foreach"),c=t("../utils/select"),s=t("../events").CLICK,a=t("../config").prefix,f="hidden",l="."+a+"-footer-big",d=l+" nav",p=d+" ."+a+"-footer-primary-link",v=d+" ul",b=600,h=180,y=function(){var t=this.closest(v);t.classList.remove(f);var e=t.closest(d).querySelectorAll("ul");u(e,function(e){e!==t&&e.classList.add(f)})},g=i(function(){var t=window.innerWidth<b;u(c(v),function(e){e.classList.toggle(f,t)})},h);e.exports=o(r({},s,r({},p,y)),{HIDE_MAX_WIDTH:b,DEBOUNCE_RATE:h,init:function(t){g(),window.addEventListener("resize",g)},teardown:function(t){window.removeEventListener("resize",g)}})},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/select":32,"./accordion":16,"array-foreach":2,"lodash.debounce":7}],19:[function(t,e,n){"use strict";e.exports={accordion:t("./accordion"),banner:t("./banner"),footer:t("./footer"),navigation:t("./navigation"),password:t("./password"),search:t("./search"),skipnav:t("./skipnav"),validator:t("./validator")}},{"./accordion":16,"./banner":17,"./footer":18,"./navigation":20,"./password":21,"./search":22,"./skipnav":23,"./validator":24}],20:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o,i=t("../utils/behavior"),u=t("array-foreach"),c=t("../utils/select"),s=t("./accordion"),a=t("../events").CLICK,f=t("../config").prefix,l="."+f+"-nav",d=l+" a",p="."+f+"-menu-btn",v="."+f+"-nav-close",b="."+f+"-overlay",h=v+", ."+f+"-overlay",y=[l,b].join(", "),g="usa-mobile_nav-active",m="is-visible",w=function(){return document.body.classList.contains(g)},x=function(t){var e=document.body;"boolean"!=typeof t&&(t=!w()),e.classList.toggle(g,t),u(c(y),function(e){e.classList.toggle(m,t)});var n=e.querySelector(v),r=e.querySelector(p);return t&&n?n.focus():!t&&document.activeElement===n&&r&&r.focus(),t},E=function(){var t=document.body.querySelector(v);w()&&t&&0===t.getBoundingClientRect().width&&x.call(t,!1)},j=i(r({},a,(o={},r(o,p,x),r(o,h,x),r(o,d,function(){var t=this.closest(s.ACCORDION);t&&s.getButtons(t).forEach(function(t){return s.hide(t)}),w()&&x.call(this,!1)}),o)),{init:function(){E(),window.addEventListener("resize",E,!1)},teardown:function(){window.removeEventListener("resize",E,!1)}}),S=t("object-assign");e.exports=S(function(t){return j.on(t)},j)},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/select":32,"./accordion":16,"array-foreach":2,"object-assign":8}],21:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("../utils/toggle-form-input"),u=t("../events").CLICK,c=t("../config").prefix,s="."+c+"-show_password, ."+c+"-show_multipassword",a=function(t){t.preventDefault(),i(this)};e.exports=o(r({},u,r({},s,a)))},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/toggle-form-input":34}],22:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("array-foreach"),u=t("receptor/ignore"),c=t("../utils/select"),s=t("../events").CLICK,a=t("../config").prefix,f=".js-search-button",l=".js-search-form",d="[type=search]",p="header",v=a+"-sr-only",b=void 0,h=function(t){m(this,!0),b=this},y=function(t){m(this,!1),b=void 0},g=function(t){var e=t.closest(p);return e?e.querySelector(l):document.querySelector(l)},m=function(t,e){var n=g(t);if(!n)throw new Error("No "+l+" found for search toggle in "+p+"!");if(t.hidden=e,n.classList.toggle(v,!e),e){var r=n.querySelector(d);r&&r.focus();var o=u(n,function(t){b&&y.call(b),document.body.removeEventListener(s,o)});setTimeout(function(){document.body.addEventListener(s,o)},0)}},w=o(r({},s,r({},f,h)),{init:function(t){i(c(f,t),function(t){m(t,!1)})},teardown:function(t){b=void 0}}),x=t("object-assign");e.exports=x(function(t){return w.on(t)},w)},{"../config":25,"../events":26,"../utils/behavior":30,"../utils/select":32,"array-foreach":2,"object-assign":8,"receptor/ignore":13}],23:[function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),i=t("receptor/once"),u=t("../events").CLICK,c=t("../config").prefix,s="."+c+'-skipnav[href^="#"]',a=function(t){var e=this.getAttribute("href").slice(1),n=document.getElementById(e);n&&(n.setAttribute("tabindex",0),n.addEventListener("blur",i(function(t){n.setAttribute("tabindex",-1)})))};e.exports=o(r({},u,r({},s,a)))},{"../config":25,"../events":26,"../utils/behavior":30,"receptor/once":14}],24:[function(t,e,n){"use strict";var r=t("../utils/behavior"),o=t("../utils/validate-input"),i=(t("lodash.debounce"),function(t){return o(this)}),u=r({"keyup change":{"input[data-validation-element]":i}}),c=t("object-assign");e.exports=c(function(t){return u.on(t)},u)},{"../utils/behavior":30,"../utils/validate-input":36,"lodash.debounce":7,"object-assign":8}],25:[function(t,e,n){"use strict";e.exports={prefix:"usa"}},{}],26:[function(t,e,n){"use strict";e.exports={CLICK:"click"}},{}],27:[function(t,e,n){"use strict";var r=window.HTMLElement.prototype,o="hidden";o in r||Object.defineProperty(r,o,{get:function(){return this.hasAttribute(o)},set:function(t){t?this.setAttribute(o,""):this.removeAttribute(o)}})},{}],28:[function(t,e,n){"use strict";t("classlist-polyfill"),t("./element-hidden")},{"./element-hidden":27,"classlist-polyfill":3}],29:[function(t,e,n){"use strict";var r=t("domready");t("./polyfills");var o=t("./config"),i=t("./components");o.components=i,r(function(){var t=document.body;for(var e in i){var n=i[e];n.on(t)}}),e.exports=o},{"./components":19,"./config":25,"./polyfills":28,domready:4}],30:[function(t,e,n){"use strict";var r=t("object-assign"),o=t("array-foreach"),i=t("receptor/behavior"),u=function(){var t=[].slice.call(arguments);return function(e){var n=this;e||(e=document.body),o(t,function(t){"function"==typeof n[t]&&n[t].call(n,e)})}};e.exports=function(t,e){return i(t,r({on:u("init","add"),off:u("teardown","remove")},e))}},{"array-foreach":2,"object-assign":8,"receptor/behavior":9}],31:[function(t,e,n){"use strict";function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:document.documentElement,r=t.getBoundingClientRect();return r.top>=0&&r.left>=0&&r.bottom<=(e.innerHeight||n.clientHeight)&&r.right<=(e.innerWidth||n.clientWidth)}e.exports=r},{}],32:[function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=function(t){return t&&"object"===("undefined"==typeof t?"undefined":r(t))&&1===t.nodeType};e.exports=function(t,e){if("string"!=typeof t)return[];e&&o(e)||(e=window.document);var n=e.querySelectorAll(t);return Array.prototype.slice.call(n)}},{}],33:[function(t,e,n){"use strict";e.exports=function(t,e){t.setAttribute("autocapitalize","off"),t.setAttribute("autocorrect","off"),t.setAttribute("type",e?"password":"text")}},{}],34:[function(t,e,n){"use strict";var r=t("array-foreach"),o=t("resolve-id-refs"),i=(t("./select"),t("./toggle-field-mask")),u="aria-controls",c="aria-pressed",s="data-show-text",a="data-hide-text",f=function(t){return t.replace(/\bShow\b/i,function(t){return("S"===t[0]?"H":"h")+"ide"})};e.exports=function(t){var e=t.hasAttribute(c)&&"true"!==t.getAttribute(c),n=o(t.getAttribute(u));r(n,function(t){return i(t,e)}),t.hasAttribute(s)||t.setAttribute(s,t.textContent);var l=t.getAttribute(s),d=t.getAttribute(a)||f(l);return t.textContent=e?l:d,t.setAttribute(c,e),e}},{"./select":32,"./toggle-field-mask":33,"array-foreach":2,"resolve-id-refs":15}],35:[function(t,e,n){"use strict";var r="aria-expanded",o="aria-controls",i="aria-hidden";e.exports=function(t,e){"boolean"!=typeof e&&(e="false"===t.getAttribute(r)),t.setAttribute(r,e);var n=t.getAttribute(o),u=document.getElementById(n);if(!u)throw new Error('No toggle target found with id: "'+n+'"');return u.setAttribute(i,!e),e}},{}],36:[function(t,e,n){"use strict";var r=t("elem-dataset"),o=t("../config").prefix,i="aria-checked",u=o+"-checklist-checked";e.exports=function(t){var e=r(t),n=e.validationElement,o="#"===n.charAt(0)?document.querySelector(n):document.getElementById(n);if(!o)throw new Error('No validation element found with id: "'+n+'"');for(var c in e)if(c.startsWith("validate")){var s=c.substr("validate".length).toLowerCase(),a=new RegExp(e[c]),f='[data-validator="'+s+'"]',l=o.querySelector(f);if(!l)throw new Error('No validator checkbox found for: "'+s+'"');var d=a.test(t.value);l.classList.toggle(u,d),l.setAttribute(i,d)}}},{"../config":25,"elem-dataset":5}]},{},[29]);
2
2
  //# sourceMappingURL=uswds.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["node_modules/browser-pack/_prelude.js","uswds.js","node_modules/array-filter/index.js","node_modules/array-foreach/index.js","node_modules/classlist-polyfill/src/index.js","node_modules/domready/ready.js","node_modules/elem-dataset/dist/index.js","node_modules/element-closest/element-closest.js","node_modules/lodash.debounce/index.js","node_modules/object-assign/index.js","node_modules/receptor/behavior/index.js","node_modules/receptor/compose/index.js","node_modules/receptor/delegate/index.js","node_modules/receptor/delegateAll/index.js","node_modules/receptor/ignore/index.js","node_modules/receptor/once/index.js","node_modules/resolve-id-refs/index.js","src/js/components/accordion.js","src/js/components/banner.js","src/js/components/footer.js","src/js/components/index.js","src/js/components/navigation.js","src/js/components/password.js","src/js/components/search.js","src/js/components/skipnav.js","src/js/components/validator.js","src/js/config.js","src/js/events.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/start.js","src/js/utils/behavior.js","src/js/utils/is-in-viewport.js","src/js/utils/select.js","src/js/utils/toggle-field-mask.js","src/js/utils/toggle-form-input.js","src/js/utils/toggle.js","src/js/utils/validate-input.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","arr","fn","self","filter","TypeError","ret","hasOwn","val","push","Object","prototype","hasOwnProperty","2","ary","callback","thisArg","forEach","3","window","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","strTrim","String","trim","this","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","testElement","createMethod","original","DOMTokenList","_toggle","4","_typeof","Symbol","iterator","obj","constructor","definition","define","amd","_listener","fns","doc","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","setTimeout","5","useNative","Boolean","dataset","aB","nativeDataset","element","getter","value","setter","removeAttribute","map","attributes","j","attribute","prop","slice","charAt","toUpperCase","bind","set","6","ElementProto","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","elements","ownerDocument","querySelectorAll","closest","nodeType","parentNode","7","global","debounce","func","wait","options","invokeFunc","time","args","lastArgs","lastThis","lastInvokeTime","apply","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","trailing","cancel","clearTimeout","flush","debounced","isInvoking","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","isObjectLike","isSymbol","objectToString","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","reIsBadHex","parseInt","freeGlobal","freeSelf","root","Function","objectProto","Math","max","min","Date","8","toObject","shouldUseNative","assign","test1","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","keys","err","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","target","source","from","symbols","to","key","9","delegate","delegateAll","DELEGATE_PATTERN","SPACE","getListeners","handler","match","capture","popKey","passive","listener","_type","events","props","listeners","reduce","memo","concat","../delegate","../delegateAll","object-assign","10","functions","some","11","event","element-closest","12","compose","SPLAT","selectors","delegates","../compose","13","14","wrapped","currentTarget","15","RE_TRIM","RE_SPLIT","str","queryById","id","querySelector","ids","getElementById","el","16","_defineProperty","writable","behavior","isElementInViewport","CLICK","PREFIX","prefix","ACCORDION","BUTTON","EXPANDED","MULTISELECTABLE","toggleButton","button","expanded","accordion","multiselectable","getAccordionButtons","showButton","hideButton","preventDefault","scrollIntoView","init","show","hide","getButtons","Accordion","on","off","../config","../events","../utils/behavior","../utils/is-in-viewport","../utils/toggle","array-filter","array-foreach","17","HEADER","EXPANDED_CLASS","toggleBanner","18","select","HIDDEN","SCOPE","NAV","LIST","HIDE_MAX_WIDTH","DEBOUNCE_RATE","showPanel","list","lists","resize","hidden","innerWidth","teardown","../utils/select","./accordion","lodash.debounce","19","banner","footer","navigation","password","search","skipnav","validator","./banner","./footer","./navigation","./password","./search","./skipnav","./validator","20","_CLICK","CONTEXT","NAV_LINKS","OPENERS","CLOSE_BUTTON","OVERLAY","CLOSERS","TOGGLES","ACTIVE_CLASS","VISIBLE_CLASS","toggleNav","active","body","context","closeButton","focus","acc","btn","21","toggleFormInput","LINK","../utils/toggle-form-input","22","ignore","FORM","INPUT","VISUALLY_HIDDEN","lastButton","showSearch","toggleSearch","hideSearch","getForm","form","input","receptor/ignore","23","once","setTabindex","receptor/once","24","validate","change","keyup change","input[data-validation-element]","../utils/validate-input","25","26","27","elproto","HTMLElement","hasAttribute","28","./element-hidden","classlist-polyfill","29","domready","uswds","components","./components","./config","./polyfills","30","Behavior","sequence","seq","_this","receptor/behavior","31","win","docEl","rect","getBoundingClientRect","top","left","bottom","innerHeight","clientHeight","right","clientWidth","32","isElement","selection","33","field","mask","34","resolveIdRefs","toggleFieldMask","CONTROLS","PRESSED","SHOW_ATTR","HIDE_ATTR","getHideText","showText","pressed","fields","textContent","hideText","./select","./toggle-field-mask","resolve-id-refs","35","controls","36","CHECKED","CHECKED_CLASS","data","validationElement","checkList","startsWith","validatorName","substr","toLowerCase","validatorPattern","RegExp","validatorSelector","validatorCheckbox","checked","elem-dataset"],"mappings":"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","file":"uswds.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\n/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Object=} self\n * @return {Array}\n * @throw TypeError\n */\n\nmodule.exports = function (arr, fn, self) {\n if (arr.filter) return arr.filter(fn, self);\n if (void 0 === arr || null === arr) throw new TypeError();\n if ('function' != typeof fn) throw new TypeError();\n var ret = [];\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwn.call(arr, i)) continue;\n var val = arr[i];\n if (fn.call(self, val, i, arr)) ret.push(val);\n }\n return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\n},{}],2:[function(require,module,exports){\n/**\n * array-foreach\n * Array#forEach ponyfill for older browsers\n * (Ponyfill: A polyfill that doesn't overwrite the native method)\n * \n * https://github.com/twada/array-foreach\n *\n * Copyright (c) 2015-2016 Takuto Wada\n * Licensed under the MIT license.\n * https://github.com/twada/array-foreach/blob/master/MIT-LICENSE\n */\n'use strict';\n\nmodule.exports = function forEach(ary, callback, thisArg) {\n if (ary.forEach) {\n ary.forEach(callback, thisArg);\n return;\n }\n for (var i = 0; i < ary.length; i += 1) {\n callback.call(thisArg, ary[i], i, ary);\n }\n};\n\n},{}],3:[function(require,module,exports){\n\"use strict\";\n\n/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n\t// Full polyfill for browsers with no classList support\n\t// Including IE < Edge missing SVGElement.classList\n\tif (!(\"classList\" in document.createElement(\"_\")) || document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\"))) {\n\n\t\t(function (view) {\n\n\t\t\t\"use strict\";\n\n\t\t\tif (!('Element' in view)) return;\n\n\t\t\tvar classListProp = \"classList\",\n\t\t\t protoProp = \"prototype\",\n\t\t\t elemCtrProto = view.Element[protoProp],\n\t\t\t objCtr = Object,\n\t\t\t strTrim = String[protoProp].trim || function () {\n\t\t\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t\t\t},\n\t\t\t arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\t\t\tvar i = 0,\n\t\t\t\t len = this.length;\n\t\t\t\tfor (; i < len; i++) {\n\t\t\t\t\tif (i in this && this[i] === item) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\t// Vendors: please allow content code to instantiate DOMExceptions\n\t\t\t,\n\t\t\t DOMEx = function DOMEx(type, message) {\n\t\t\t\tthis.name = type;\n\t\t\t\tthis.code = DOMException[type];\n\t\t\t\tthis.message = message;\n\t\t\t},\n\t\t\t checkTokenAndGetIndex = function checkTokenAndGetIndex(classList, token) {\n\t\t\t\tif (token === \"\") {\n\t\t\t\t\tthrow new DOMEx(\"SYNTAX_ERR\", \"An invalid or illegal string was specified\");\n\t\t\t\t}\n\t\t\t\tif (/\\s/.test(token)) {\n\t\t\t\t\tthrow new DOMEx(\"INVALID_CHARACTER_ERR\", \"String contains an invalid character\");\n\t\t\t\t}\n\t\t\t\treturn arrIndexOf.call(classList, token);\n\t\t\t},\n\t\t\t ClassList = function ClassList(elem) {\n\t\t\t\tvar trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\"),\n\t\t\t\t classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : [],\n\t\t\t\t i = 0,\n\t\t\t\t len = classes.length;\n\t\t\t\tfor (; i < len; i++) {\n\t\t\t\t\tthis.push(classes[i]);\n\t\t\t\t}\n\t\t\t\tthis._updateClassName = function () {\n\t\t\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t\t\t};\n\t\t\t},\n\t\t\t classListProto = ClassList[protoProp] = [],\n\t\t\t classListGetter = function classListGetter() {\n\t\t\t\treturn new ClassList(this);\n\t\t\t};\n\t\t\t// Most DOMException implementations don't allow calling DOMException's toString()\n\t\t\t// on non-DOMExceptions. Error's toString() is sufficient here.\n\t\t\tDOMEx[protoProp] = Error[protoProp];\n\t\t\tclassListProto.item = function (i) {\n\t\t\t\treturn this[i] || null;\n\t\t\t};\n\t\t\tclassListProto.contains = function (token) {\n\t\t\t\ttoken += \"\";\n\t\t\t\treturn checkTokenAndGetIndex(this, token) !== -1;\n\t\t\t};\n\t\t\tclassListProto.add = function () {\n\t\t\t\tvar tokens = arguments,\n\t\t\t\t i = 0,\n\t\t\t\t l = tokens.length,\n\t\t\t\t token,\n\t\t\t\t updated = false;\n\t\t\t\tdo {\n\t\t\t\t\ttoken = tokens[i] + \"\";\n\t\t\t\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\t\t\t\tthis.push(token);\n\t\t\t\t\t\tupdated = true;\n\t\t\t\t\t}\n\t\t\t\t} while (++i < l);\n\n\t\t\t\tif (updated) {\n\t\t\t\t\tthis._updateClassName();\n\t\t\t\t}\n\t\t\t};\n\t\t\tclassListProto.remove = function () {\n\t\t\t\tvar tokens = arguments,\n\t\t\t\t i = 0,\n\t\t\t\t l = tokens.length,\n\t\t\t\t token,\n\t\t\t\t updated = false,\n\t\t\t\t index;\n\t\t\t\tdo {\n\t\t\t\t\ttoken = tokens[i] + \"\";\n\t\t\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t\t\t\twhile (index !== -1) {\n\t\t\t\t\t\tthis.splice(index, 1);\n\t\t\t\t\t\tupdated = true;\n\t\t\t\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t\t\t\t}\n\t\t\t\t} while (++i < l);\n\n\t\t\t\tif (updated) {\n\t\t\t\t\tthis._updateClassName();\n\t\t\t\t}\n\t\t\t};\n\t\t\tclassListProto.toggle = function (token, force) {\n\t\t\t\ttoken += \"\";\n\n\t\t\t\tvar result = this.contains(token),\n\t\t\t\t method = result ? force !== true && \"remove\" : force !== false && \"add\";\n\n\t\t\t\tif (method) {\n\t\t\t\t\tthis[method](token);\n\t\t\t\t}\n\n\t\t\t\tif (force === true || force === false) {\n\t\t\t\t\treturn force;\n\t\t\t\t} else {\n\t\t\t\t\treturn !result;\n\t\t\t\t}\n\t\t\t};\n\t\t\tclassListProto.toString = function () {\n\t\t\t\treturn this.join(\" \");\n\t\t\t};\n\n\t\t\tif (objCtr.defineProperty) {\n\t\t\t\tvar classListPropDesc = {\n\t\t\t\t\tget: classListGetter,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\t// IE 8 doesn't support enumerable:true\n\t\t\t\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t\t\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\t\t\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\t\t\t\tclassListPropDesc.enumerable = false;\n\t\t\t\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (objCtr[protoProp].__defineGetter__) {\n\t\t\t\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n\t\t\t}\n\t\t})(window.self);\n\t}\n\n\t// There is full or partial native classList support, so just check if we need\n\t// to normalize the add/remove and toggle APIs.\n\n\t(function () {\n\t\t\"use strict\";\n\n\t\tvar testElement = document.createElement(\"_\");\n\n\t\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t\t// classList.remove exist but support only one argument at a time.\n\t\tif (!testElement.classList.contains(\"c2\")) {\n\t\t\tvar createMethod = function createMethod(method) {\n\t\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\t\tDOMTokenList.prototype[method] = function (token) {\n\t\t\t\t\tvar i,\n\t\t\t\t\t len = arguments.length;\n\n\t\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tcreateMethod('add');\n\t\t\tcreateMethod('remove');\n\t\t}\n\n\t\ttestElement.classList.toggle(\"c3\", false);\n\n\t\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t\t// support the second argument.\n\t\tif (testElement.classList.contains(\"c3\")) {\n\t\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\t\tDOMTokenList.prototype.toggle = function (token, force) {\n\t\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\t\treturn force;\n\t\t\t\t} else {\n\t\t\t\t\treturn _toggle.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\ttestElement = null;\n\t})();\n}\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition();else if (typeof define == 'function' && _typeof(define.amd) == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n\n var fns = [],\n _listener,\n doc = document,\n hack = doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\n// <3 Modernizr\n// https://raw.githubusercontent.com/Modernizr/Modernizr/master/feature-detects/dom/dataset.js\n\nfunction useNative() {\n\tvar elem = document.createElement('div');\n\telem.setAttribute('data-a-b', 'c');\n\n\treturn Boolean(elem.dataset && elem.dataset.aB === 'c');\n}\n\nfunction nativeDataset(element) {\n\treturn element.dataset;\n}\n\nmodule.exports = useNative() ? nativeDataset : function (element) {\n\tvar map = {};\n\tvar attributes = element.attributes;\n\n\tfunction getter() {\n\t\treturn this.value;\n\t}\n\n\tfunction setter(name, value) {\n\t\tif (typeof value === 'undefined') {\n\t\t\tthis.removeAttribute(name);\n\t\t} else {\n\t\t\tthis.setAttribute(name, value);\n\t\t}\n\t}\n\n\tfor (var i = 0, j = attributes.length; i < j; i++) {\n\t\tvar attribute = attributes[i];\n\n\t\tif (attribute) {\n\t\t\tvar name = attribute.name;\n\n\t\t\tif (name.indexOf('data-') === 0) {\n\t\t\t\tvar prop = name.slice(5).replace(/-./g, function (u) {\n\t\t\t\t\treturn u.charAt(1).toUpperCase();\n\t\t\t\t});\n\n\t\t\t\tvar value = attribute.value;\n\n\t\t\t\tObject.defineProperty(map, prop, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: getter.bind({ value: value || '' }),\n\t\t\t\t\tset: setter.bind(element, name)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn map;\n};\n\n},{}],6:[function(require,module,exports){\n'use strict';\n\n// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n\n},{}],7:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function now() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = debounce;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],8:[function(require,module,exports){\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar assign = require('object-assign');\nvar delegate = require('../delegate');\nvar delegateAll = require('../delegateAll');\n\nvar DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nvar SPACE = ' ';\n\nvar getListeners = function getListeners(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if ((typeof handler === 'undefined' ? 'undefined' : _typeof(handler)) === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'undefined' ? 'undefined' : _typeof(handler)) === 'object' ? delegateAll(handler) : selector ? delegate(selector, handler) : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function (_type) {\n return assign({ type: _type }, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function popKey(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n var listeners = Object.keys(events).reduce(function (memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function (listener) {\n element.addEventListener(listener.type, listener.delegate, listener.options);\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function (listener) {\n element.removeEventListener(listener.type, listener.delegate, listener.options);\n });\n }\n }, props);\n};\n\n},{\"../delegate\":11,\"../delegateAll\":12,\"object-assign\":8}],10:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function compose(functions) {\n return function (e) {\n return functions.some(function (fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n\n},{}],11:[function(require,module,exports){\n'use strict';\n\n// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = event.target.closest(selector);\n if (target) {\n return fn.call(target, event);\n }\n };\n};\n\n},{\"element-closest\":6}],12:[function(require,module,exports){\n'use strict';\n\nvar delegate = require('../delegate');\nvar compose = require('../compose');\n\nvar SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n var keys = Object.keys(selectors);\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n var delegates = keys.reduce(function (memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n\n},{\"../compose\":10,\"../delegate\":11}],13:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n\n},{}],14:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function once(listener, options) {\n var wrapped = function wrappedOnce(e) {\n e.currentTarget.removeEventListener(e.type, wrapped, options);\n return listener.call(this, e);\n };\n return wrapped;\n};\n\n},{}],15:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim ? function (str) {\n return str.trim();\n} : function (str) {\n return str.replace(RE_TRIM, '');\n};\n\nvar queryById = function queryById(id) {\n return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n if (typeof ids !== 'string') {\n throw new Error('Expected a string but got ' + (typeof ids === 'undefined' ? 'undefined' : _typeof(ids)));\n }\n\n if (!doc) {\n doc = window.document;\n }\n\n var getElementById = doc.getElementById ? doc.getElementById.bind(doc) : queryById.bind(doc);\n\n ids = trim(ids).split(RE_SPLIT);\n\n // XXX we can short-circuit here because trimming and splitting a\n // string of just whitespace produces an array containing a single,\n // empty string\n if (ids.length === 1 && ids[0] === '') {\n return [];\n }\n\n return ids.map(function (id) {\n var el = getElementById(id);\n if (!el) {\n throw new Error('no element with id: \"' + id + '\"');\n }\n return el;\n });\n};\n\n},{}],16:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar filter = require('array-filter');\nvar forEach = require('array-foreach');\nvar toggle = require('../utils/toggle');\nvar isElementInViewport = require('../utils/is-in-viewport');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\n// XXX match .usa-accordion and .usa-accordion-bordered\nvar ACCORDION = '.' + PREFIX + '-accordion, .' + PREFIX + '-accordion-bordered';\nvar BUTTON = '.' + PREFIX + '-accordion-button[aria-controls]';\nvar EXPANDED = 'aria-expanded';\nvar MULTISELECTABLE = 'aria-multiselectable';\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nvar toggleButton = function toggleButton(button, expanded) {\n var accordion = button.closest(ACCORDION);\n if (!accordion) {\n throw new Error(BUTTON + ' is missing outer ' + ACCORDION);\n }\n\n expanded = toggle(button, expanded);\n // XXX multiselectable is opt-in, to preserve legacy behavior\n var multiselectable = accordion.getAttribute(MULTISELECTABLE) === 'true';\n\n if (expanded && !multiselectable) {\n forEach(getAccordionButtons(accordion), function (other) {\n if (other !== button) {\n toggle(other, false);\n }\n });\n }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nvar showButton = function showButton(button) {\n return toggleButton(button, true);\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nvar hideButton = function hideButton(button) {\n return toggleButton(button, false);\n};\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array<HTMLButtonElement>}\n */\nvar getAccordionButtons = function getAccordionButtons(accordion) {\n return filter(accordion.querySelectorAll(BUTTON), function (button) {\n return button.closest(ACCORDION) === accordion;\n });\n};\n\nvar accordion = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, function (event) {\n event.preventDefault();\n toggleButton(this);\n\n if (this.getAttribute(EXPANDED) === 'true') {\n // We were just expanded, but if another accordion was also just\n // collapsed, we may no longer be in the viewport. This ensures\n // that we are still visible, so the user isn't confused.\n if (!isElementInViewport(this)) this.scrollIntoView();\n }\n})), {\n init: function init(root) {\n forEach(root.querySelectorAll(BUTTON), function (button) {\n var expanded = button.getAttribute(EXPANDED) === 'true';\n toggleButton(button, expanded);\n });\n },\n ACCORDION: ACCORDION,\n BUTTON: BUTTON,\n show: showButton,\n hide: hideButton,\n toggle: toggleButton,\n getButtons: getAccordionButtons\n});\n\n/**\n * TODO: for 2.0, remove everything below this comment and export the\n * behavior directly:\n *\n * module.exports = behavior({...});\n */\nvar Accordion = function Accordion(root) {\n this.root = root;\n accordion.on(this.root);\n};\n\n// copy all of the behavior methods and props to Accordion\nvar assign = require('object-assign');\nassign(Accordion, accordion);\n\nAccordion.prototype.show = showButton;\nAccordion.prototype.hide = hideButton;\n\nAccordion.prototype.remove = function () {\n accordion.off(this.root);\n};\n\nmodule.exports = Accordion;\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/is-in-viewport\":31,\"../utils/toggle\":35,\"array-filter\":1,\"array-foreach\":2,\"object-assign\":8}],17:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar toggle = require('../utils/toggle');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar HEADER = '.' + PREFIX + '-banner-header';\nvar EXPANDED_CLASS = PREFIX + '-banner-header-expanded';\n\nvar toggleBanner = function toggleBanner(event) {\n event.preventDefault();\n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n return false;\n};\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, HEADER + ' [aria-controls]', toggleBanner)));\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/toggle\":35}],18:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar accordion = require('./accordion');\nvar behavior = require('../utils/behavior');\nvar debounce = require('lodash.debounce');\nvar forEach = require('array-foreach');\nvar select = require('../utils/select');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar HIDDEN = 'hidden';\nvar SCOPE = '.' + PREFIX + '-footer-big';\nvar NAV = SCOPE + ' nav';\nvar BUTTON = NAV + ' .' + PREFIX + '-footer-primary-link';\nvar LIST = NAV + ' ul';\n\nvar HIDE_MAX_WIDTH = 600;\nvar DEBOUNCE_RATE = 180;\n\nvar showPanel = function showPanel() {\n var list = this.closest(LIST);\n list.classList.remove(HIDDEN);\n\n // NB: this *should* always succeed because the button\n // selector is scoped to \".{prefix}-footer-big nav\"\n var lists = list.closest(NAV).querySelectorAll('ul');\n\n forEach(lists, function (el) {\n if (el !== list) {\n el.classList.add(HIDDEN);\n }\n });\n};\n\nvar resize = debounce(function () {\n var hidden = window.innerWidth < HIDE_MAX_WIDTH;\n forEach(select(LIST), function (list) {\n list.classList.toggle(HIDDEN, hidden);\n });\n}, DEBOUNCE_RATE);\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, showPanel)), {\n // export for use elsewhere\n HIDE_MAX_WIDTH: HIDE_MAX_WIDTH,\n DEBOUNCE_RATE: DEBOUNCE_RATE,\n\n init: function init(target) {\n resize();\n window.addEventListener('resize', resize);\n },\n\n teardown: function teardown(target) {\n window.removeEventListener('resize', resize);\n }\n});\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/select\":32,\"./accordion\":16,\"array-foreach\":2,\"lodash.debounce\":7}],19:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n accordion: require('./accordion'),\n banner: require('./banner'),\n footer: require('./footer'),\n navigation: require('./navigation'),\n password: require('./password'),\n search: require('./search'),\n skipnav: require('./skipnav'),\n validator: require('./validator')\n};\n\n},{\"./accordion\":16,\"./banner\":17,\"./footer\":18,\"./navigation\":20,\"./password\":21,\"./search\":22,\"./skipnav\":23,\"./validator\":24}],20:[function(require,module,exports){\n'use strict';\n\nvar _CLICK;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar forEach = require('array-foreach');\nvar select = require('../utils/select');\nvar accordion = require('./accordion');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar CONTEXT = 'header';\nvar NAV = '.' + PREFIX + '-nav';\nvar NAV_LINKS = NAV + ' a';\nvar OPENERS = '.' + PREFIX + '-menu-btn';\nvar CLOSE_BUTTON = '.' + PREFIX + '-nav-close';\nvar OVERLAY = '.' + PREFIX + '-overlay';\nvar CLOSERS = CLOSE_BUTTON + ', .' + PREFIX + '-overlay';\nvar TOGGLES = [NAV, OVERLAY].join(', ');\n\nvar ACTIVE_CLASS = 'usa-mobile_nav-active';\nvar VISIBLE_CLASS = 'is-visible';\n\nvar toggleNav = function toggleNav(active) {\n var body = document.body;\n if (typeof active !== 'boolean') {\n active = !body.classList.contains(ACTIVE_CLASS);\n }\n body.classList.toggle(ACTIVE_CLASS, active);\n\n var context = this.closest(CONTEXT);\n forEach(select(TOGGLES), function (el) {\n el.classList.toggle(VISIBLE_CLASS);\n });\n\n if (active && context) {\n var closeButton = context.querySelector(CLOSE_BUTTON);\n if (closeButton) {\n closeButton.focus();\n }\n }\n return active;\n};\n\nvar navigation = behavior(_defineProperty({}, CLICK, (_CLICK = {}, _defineProperty(_CLICK, OPENERS, toggleNav), _defineProperty(_CLICK, CLOSERS, toggleNav), _defineProperty(_CLICK, NAV_LINKS, function () {\n // A navigation link has been clicked! We want to collapse any\n // hierarchical navigation UI it's a part of, so that the user\n // can focus on whatever they've just selected.\n\n // Some navigation links are inside accordions; when they're\n // clicked, we want to collapse those accordions.\n var acc = this.closest(accordion.ACCORDION);\n if (acc) {\n accordion.getButtons(acc).forEach(function (btn) {\n return accordion.hide(btn);\n });\n }\n\n // If the mobile navigation menu is active, we want to hide it.\n if (document.body.classList.contains(ACTIVE_CLASS)) {\n toggleNav.call(this);\n }\n}), _CLICK)));\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nvar assign = require('object-assign');\nmodule.exports = assign(function (el) {\n return navigation.on(el);\n}, navigation);\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/select\":32,\"./accordion\":16,\"array-foreach\":2,\"object-assign\":8}],21:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar toggleFormInput = require('../utils/toggle-form-input');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar LINK = '.' + PREFIX + '-show_password, .' + PREFIX + '-show_multipassword';\n\nvar toggle = function toggle(event) {\n event.preventDefault();\n toggleFormInput(this);\n};\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, LINK, toggle)));\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/toggle-form-input\":34}],22:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar forEach = require('array-foreach');\nvar ignore = require('receptor/ignore');\nvar select = require('../utils/select');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar BUTTON = '.js-search-button';\nvar FORM = '.js-search-form';\nvar INPUT = '[type=search]';\nvar CONTEXT = 'header'; // XXX\nvar VISUALLY_HIDDEN = PREFIX + '-sr-only';\n\nvar lastButton = void 0;\n\nvar showSearch = function showSearch(event) {\n toggleSearch(this, true);\n lastButton = this;\n};\n\nvar hideSearch = function hideSearch(event) {\n toggleSearch(this, false);\n lastButton = undefined;\n};\n\nvar getForm = function getForm(button) {\n var context = button.closest(CONTEXT);\n return context ? context.querySelector(FORM) : document.querySelector(FORM);\n};\n\nvar toggleSearch = function toggleSearch(button, active) {\n var form = getForm(button);\n if (!form) {\n throw new Error('No ' + FORM + ' found for search toggle in ' + CONTEXT + '!');\n }\n\n button.hidden = active;\n form.classList.toggle(VISUALLY_HIDDEN, !active);\n\n if (active) {\n var input = form.querySelector(INPUT);\n if (input) {\n input.focus();\n }\n // when the user clicks _outside_ of the form w/ignore(): hide the\n // search, then remove the listener\n var listener = ignore(form, function (e) {\n if (lastButton) {\n hideSearch.call(lastButton);\n }\n document.body.removeEventListener(CLICK, listener);\n });\n\n // Normally we would just run this code without a timeout, but\n // IE11 and Edge will actually call the listener *immediately* because\n // they are currently handling this exact type of event, so we'll\n // make sure the browser is done handling the current click event,\n // if any, before we attach the listener.\n setTimeout(function () {\n document.body.addEventListener(CLICK, listener);\n }, 0);\n }\n};\n\nvar search = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, showSearch)), {\n init: function init(target) {\n forEach(select(BUTTON, target), function (button) {\n toggleSearch(button, false);\n });\n },\n teardown: function teardown(target) {\n // forget the last button clicked\n lastButton = undefined;\n }\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nvar assign = require('object-assign');\nmodule.exports = assign(function (el) {\n return search.on(el);\n}, search);\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/select\":32,\"array-foreach\":2,\"object-assign\":8,\"receptor/ignore\":13}],23:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar once = require('receptor/once');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\nvar LINK = '.' + PREFIX + '-skipnav[href^=\"#\"]';\n\nvar setTabindex = function setTabindex(event) {\n // NB: we know because of the selector we're delegating to below that the\n // href already begins with '#'\n var id = this.getAttribute('href').slice(1);\n var target = document.getElementById(id);\n if (target) {\n target.setAttribute('tabindex', 0);\n target.addEventListener('blur', once(function (event) {\n target.setAttribute('tabindex', -1);\n }));\n } else {\n // throw an error?\n }\n};\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, LINK, setTabindex)));\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"receptor/once\":14}],24:[function(require,module,exports){\n'use strict';\n\nvar behavior = require('../utils/behavior');\nvar validate = require('../utils/validate-input');\nvar debounce = require('lodash.debounce');\n\nvar change = function change(event) {\n return validate(this);\n};\n\nvar validator = behavior({\n 'keyup change': {\n 'input[data-validation-element]': change\n }\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nvar assign = require('object-assign');\nmodule.exports = assign(function (el) {\n return validator.on(el);\n}, validator);\n\n},{\"../utils/behavior\":30,\"../utils/validate-input\":36,\"lodash.debounce\":7,\"object-assign\":8}],25:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n prefix: 'usa'\n};\n\n},{}],26:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n // This used to be conditionally dependent on whether the\n // browser supported touch events; if it did, `CLICK` was set to\n // `touchstart`. However, this had downsides:\n //\n // * It pre-empted mobile browsers' default behavior of detecting\n // whether a touch turned into a scroll, thereby preventing\n // users from using some of our components as scroll surfaces.\n //\n // * Some devices, such as the Microsoft Surface Pro, support *both*\n // touch and clicks. This meant the conditional effectively dropped\n // support for the user's mouse, frustrating users who preferred\n // it on those systems.\n CLICK: 'click'\n};\n\n},{}],27:[function(require,module,exports){\n'use strict';\n\nvar elproto = window.HTMLElement.prototype;\nvar HIDDEN = 'hidden';\n\nif (!(HIDDEN in elproto)) {\n Object.defineProperty(elproto, HIDDEN, {\n get: function get() {\n return this.hasAttribute(HIDDEN);\n },\n set: function set(value) {\n if (value) {\n this.setAttribute(HIDDEN, '');\n } else {\n this.removeAttribute(HIDDEN);\n }\n }\n });\n}\n\n},{}],28:[function(require,module,exports){\n'use strict';\n// polyfills HTMLElement.prototype.classList and DOMTokenList\n\nrequire('classlist-polyfill');\n// polyfills HTMLElement.prototype.hidden\nrequire('./element-hidden');\n\n},{\"./element-hidden\":27,\"classlist-polyfill\":3}],29:[function(require,module,exports){\n'use strict';\n\nvar domready = require('domready');\n\n/**\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\n * older browsers, so must be loaded first.\n */\nrequire('./polyfills');\n\nvar uswds = require('./config');\n\nvar components = require('./components');\nuswds.components = components;\n\ndomready(function () {\n var target = document.body;\n for (var name in components) {\n var behavior = components[name];\n behavior.on(target);\n }\n});\n\nmodule.exports = uswds;\n\n},{\"./components\":19,\"./config\":25,\"./polyfills\":28,\"domready\":4}],30:[function(require,module,exports){\n'use strict';\n\nvar assign = require('object-assign');\nvar forEach = require('array-foreach');\nvar Behavior = require('receptor/behavior');\n\nvar sequence = function sequence() {\n var seq = [].slice.call(arguments);\n return function (target) {\n var _this = this;\n\n if (!target) {\n target = document.body;\n }\n forEach(seq, function (method) {\n if (typeof _this[method] === 'function') {\n _this[method].call(_this, target);\n }\n });\n };\n};\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = function (events, props) {\n return Behavior(events, assign({\n on: sequence('init', 'add'),\n off: sequence('teardown', 'remove')\n }, props));\n};\n\n},{\"array-foreach\":2,\"object-assign\":8,\"receptor/behavior\":9}],31:[function(require,module,exports){\n\"use strict\";\n\n// https://stackoverflow.com/a/7557433\nfunction isElementInViewport(el) {\n var win = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n var docEl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document.documentElement;\n\n var rect = el.getBoundingClientRect();\n\n return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (win.innerHeight || docEl.clientHeight) && rect.right <= (win.innerWidth || docEl.clientWidth);\n}\n\nmodule.exports = isElementInViewport;\n\n},{}],32:[function(require,module,exports){\n'use strict';\n\n/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isElement = function isElement(value) {\n return value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.nodeType === 1;\n};\n\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n * in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = function select(selector, context) {\n\n if (typeof selector !== 'string') {\n return [];\n }\n\n if (!context || !isElement(context)) {\n context = window.document;\n }\n\n var selection = context.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n};\n\n},{}],33:[function(require,module,exports){\n'use strict';\n\n/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = function (field, mask) {\n field.setAttribute('autocapitalize', 'off');\n field.setAttribute('autocorrect', 'off');\n field.setAttribute('type', mask ? 'password' : 'text');\n};\n\n},{}],34:[function(require,module,exports){\n'use strict';\n\nvar forEach = require('array-foreach');\nvar resolveIdRefs = require('resolve-id-refs');\nvar select = require('./select');\nvar toggleFieldMask = require('./toggle-field-mask');\n\nvar CONTROLS = 'aria-controls';\nvar PRESSED = 'aria-pressed';\nvar SHOW_ATTR = 'data-show-text';\nvar HIDE_ATTR = 'data-hide-text';\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nvar getHideText = function getHideText(showText) {\n return showText.replace(/\\bShow\\b/i, function (show) {\n return ('S' === show[0] ? 'H' : 'h') + 'ide';\n });\n};\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @return {boolean}\n */\nmodule.exports = function (el) {\n // this is the *target* state:\n // * if the element has the attr and it's !== \"true\", pressed is true\n // * otherwise, pressed is false\n var pressed = el.hasAttribute(PRESSED) && el.getAttribute(PRESSED) !== 'true';\n\n var fields = resolveIdRefs(el.getAttribute(CONTROLS));\n forEach(fields, function (field) {\n return toggleFieldMask(field, pressed);\n });\n\n if (!el.hasAttribute(SHOW_ATTR)) {\n el.setAttribute(SHOW_ATTR, el.textContent);\n }\n\n var showText = el.getAttribute(SHOW_ATTR);\n var hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n el.textContent = pressed ? showText : hideText;\n el.setAttribute(PRESSED, pressed);\n return pressed;\n};\n\n},{\"./select\":32,\"./toggle-field-mask\":33,\"array-foreach\":2,\"resolve-id-refs\":15}],35:[function(require,module,exports){\n'use strict';\n\nvar EXPANDED = 'aria-expanded';\nvar CONTROLS = 'aria-controls';\nvar HIDDEN = 'aria-hidden';\n\nmodule.exports = function (button, expanded) {\n\n if (typeof expanded !== 'boolean') {\n expanded = button.getAttribute(EXPANDED) === 'false';\n }\n button.setAttribute(EXPANDED, expanded);\n\n var id = button.getAttribute(CONTROLS);\n var controls = document.getElementById(id);\n if (!controls) {\n throw new Error('No toggle target found with id: \"' + id + '\"');\n }\n\n controls.setAttribute(HIDDEN, !expanded);\n return expanded;\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar dataset = require('elem-dataset');\n\nvar PREFIX = require('../config').prefix;\nvar CHECKED = 'aria-checked';\nvar CHECKED_CLASS = PREFIX + '-checklist-checked';\n\nmodule.exports = function validate(el) {\n var data = dataset(el);\n var id = data.validationElement;\n var checkList = id.charAt(0) === '#' ? document.querySelector(id) : document.getElementById(id);\n\n if (!checkList) {\n throw new Error('No validation element found with id: \"' + id + '\"');\n }\n\n for (var key in data) {\n if (key.startsWith('validate')) {\n var validatorName = key.substr('validate'.length).toLowerCase();\n var validatorPattern = new RegExp(data[key]);\n var validatorSelector = '[data-validator=\"' + validatorName + '\"]';\n var validatorCheckbox = checkList.querySelector(validatorSelector);\n if (!validatorCheckbox) {\n throw new Error('No validator checkbox found for: \"' + validatorName + '\"');\n }\n\n var checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n validatorCheckbox.setAttribute(CHECKED, checked);\n }\n }\n};\n\n},{\"../config\":25,\"elem-dataset\":5}]},{},[29])\n\n","\n/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Object=} self\n * @return {Array}\n * @throw TypeError\n */\n\nmodule.exports = function (arr, fn, self) {\n if (arr.filter) return arr.filter(fn, self);\n if (void 0 === arr || null === arr) throw new TypeError;\n if ('function' != typeof fn) throw new TypeError;\n var ret = [];\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwn.call(arr, i)) continue;\n var val = arr[i];\n if (fn.call(self, val, i, arr)) ret.push(val);\n }\n return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n","/**\n * array-foreach\n * Array#forEach ponyfill for older browsers\n * (Ponyfill: A polyfill that doesn't overwrite the native method)\n * \n * https://github.com/twada/array-foreach\n *\n * Copyright (c) 2015-2016 Takuto Wada\n * Licensed under the MIT license.\n * https://github.com/twada/array-foreach/blob/master/MIT-LICENSE\n */\n'use strict';\n\nmodule.exports = function forEach (ary, callback, thisArg) {\n if (ary.forEach) {\n ary.forEach(callback, thisArg);\n return;\n }\n for (var i = 0; i < ary.length; i+=1) {\n callback.call(thisArg, ary[i], i, ary);\n }\n};\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n","'use strict';\n\n// <3 Modernizr\n// https://raw.githubusercontent.com/Modernizr/Modernizr/master/feature-detects/dom/dataset.js\n\nfunction useNative() {\n\tvar elem = document.createElement('div');\n\telem.setAttribute('data-a-b', 'c');\n\n\treturn Boolean(elem.dataset && elem.dataset.aB === 'c');\n}\n\nfunction nativeDataset(element) {\n\treturn element.dataset;\n}\n\nmodule.exports = useNative() ? nativeDataset : function (element) {\n\tvar map = {};\n\tvar attributes = element.attributes;\n\n\tfunction getter() {\n\t\treturn this.value;\n\t}\n\n\tfunction setter(name, value) {\n\t\tif (typeof value === 'undefined') {\n\t\t\tthis.removeAttribute(name);\n\t\t} else {\n\t\t\tthis.setAttribute(name, value);\n\t\t}\n\t}\n\n\tfor (var i = 0, j = attributes.length; i < j; i++) {\n\t\tvar attribute = attributes[i];\n\n\t\tif (attribute) {\n\t\t\tvar name = attribute.name;\n\n\t\t\tif (name.indexOf('data-') === 0) {\n\t\t\t\tvar prop = name.slice(5).replace(/-./g, function (u) {\n\t\t\t\t\treturn u.charAt(1).toUpperCase();\n\t\t\t\t});\n\n\t\t\t\tvar value = attribute.value;\n\n\t\t\t\tObject.defineProperty(map, prop, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: getter.bind({ value: value || '' }),\n\t\t\t\t\tset: setter.bind(element, name)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn map;\n};\n\n","// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('../delegate');\nconst delegateAll = require('../delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = event.target.closest(selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('../delegate');\nconst compose = require('../compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","module.exports = function once(listener, options) {\n var wrapped = function wrappedOnce(e) {\n e.currentTarget.removeEventListener(e.type, wrapped, options);\n return listener.call(this, e);\n };\n return wrapped;\n};\n\n","'use strict';\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim\n ? function(str) { return str.trim(); }\n : function(str) { return str.replace(RE_TRIM, ''); };\n\nvar queryById = function(id) {\n return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n if (typeof ids !== 'string') {\n throw new Error('Expected a string but got ' + (typeof ids));\n }\n\n if (!doc) {\n doc = window.document;\n }\n\n var getElementById = doc.getElementById\n ? doc.getElementById.bind(doc)\n : queryById.bind(doc);\n\n ids = trim(ids).split(RE_SPLIT);\n\n // XXX we can short-circuit here because trimming and splitting a\n // string of just whitespace produces an array containing a single,\n // empty string\n if (ids.length === 1 && ids[0] === '') {\n return [];\n }\n\n return ids\n .map(function(id) {\n var el = getElementById(id);\n if (!el) {\n throw new Error('no element with id: \"' + id + '\"');\n }\n return el;\n });\n};\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst filter = require('array-filter');\nconst forEach = require('array-foreach');\nconst toggle = require('../utils/toggle');\nconst isElementInViewport = require('../utils/is-in-viewport');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\n// XXX match .usa-accordion and .usa-accordion-bordered\nconst ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion-bordered`;\nconst BUTTON = `.${PREFIX}-accordion-button[aria-controls]`;\nconst EXPANDED = 'aria-expanded';\nconst MULTISELECTABLE = 'aria-multiselectable';\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nconst toggleButton = (button, expanded) => {\n var accordion = button.closest(ACCORDION);\n if (!accordion) {\n throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);\n }\n\n expanded = toggle(button, expanded);\n // XXX multiselectable is opt-in, to preserve legacy behavior\n const multiselectable = accordion.getAttribute(MULTISELECTABLE) === 'true';\n\n if (expanded && !multiselectable) {\n forEach(getAccordionButtons(accordion), other => {\n if (other !== button) {\n toggle(other, false);\n }\n });\n }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nconst showButton = button => toggleButton(button, true);\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nconst hideButton = button => toggleButton(button, false);\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array<HTMLButtonElement>}\n */\nconst getAccordionButtons = accordion => {\n return filter(accordion.querySelectorAll(BUTTON), button => {\n return button.closest(ACCORDION) === accordion;\n });\n};\n\nconst accordion = behavior({\n [ CLICK ]: {\n [ BUTTON ]: function (event) {\n event.preventDefault();\n toggleButton(this);\n\n if (this.getAttribute(EXPANDED) === 'true') {\n // We were just expanded, but if another accordion was also just\n // collapsed, we may no longer be in the viewport. This ensures\n // that we are still visible, so the user isn't confused.\n if (!isElementInViewport(this)) this.scrollIntoView();\n }\n },\n },\n}, {\n init: root => {\n forEach(root.querySelectorAll(BUTTON), button => {\n const expanded = button.getAttribute(EXPANDED) === 'true';\n toggleButton(button, expanded);\n });\n },\n ACCORDION,\n BUTTON,\n show: showButton,\n hide: hideButton,\n toggle: toggleButton,\n getButtons: getAccordionButtons,\n});\n\n/**\n * TODO: for 2.0, remove everything below this comment and export the\n * behavior directly:\n *\n * module.exports = behavior({...});\n */\nconst Accordion = function (root) {\n this.root = root;\n accordion.on(this.root);\n};\n\n// copy all of the behavior methods and props to Accordion\nconst assign = require('object-assign');\nassign(Accordion, accordion);\n\nAccordion.prototype.show = showButton;\nAccordion.prototype.hide = hideButton;\n\nAccordion.prototype.remove = function () {\n accordion.off(this.root);\n};\n\nmodule.exports = Accordion;\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst toggle = require('../utils/toggle');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst HEADER = `.${PREFIX}-banner-header`;\nconst EXPANDED_CLASS = `${PREFIX}-banner-header-expanded`;\n\nconst toggleBanner = function (event) {\n event.preventDefault();\n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n return false;\n};\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ `${HEADER} [aria-controls]` ]: toggleBanner,\n },\n});\n","'use strict';\nconst accordion = require('./accordion');\nconst behavior = require('../utils/behavior');\nconst debounce = require('lodash.debounce');\nconst forEach = require('array-foreach');\nconst select = require('../utils/select');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst HIDDEN = 'hidden';\nconst SCOPE = `.${PREFIX}-footer-big`;\nconst NAV = `${SCOPE} nav`;\nconst BUTTON = `${NAV} .${PREFIX}-footer-primary-link`;\nconst LIST = `${NAV} ul`;\n\nconst HIDE_MAX_WIDTH = 600;\nconst DEBOUNCE_RATE = 180;\n\nconst showPanel = function () {\n const list = this.closest(LIST);\n list.classList.remove(HIDDEN);\n\n // NB: this *should* always succeed because the button\n // selector is scoped to \".{prefix}-footer-big nav\"\n const lists = list.closest(NAV)\n .querySelectorAll('ul');\n\n forEach(lists, el => {\n if (el !== list) {\n el.classList.add(HIDDEN);\n }\n });\n};\n\nconst resize = debounce(() => {\n const hidden = window.innerWidth < HIDE_MAX_WIDTH;\n forEach(select(LIST), list => {\n list.classList.toggle(HIDDEN, hidden);\n });\n}, DEBOUNCE_RATE);\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ BUTTON ]: showPanel,\n },\n}, {\n // export for use elsewhere\n HIDE_MAX_WIDTH,\n DEBOUNCE_RATE,\n\n init: target => {\n resize();\n window.addEventListener('resize', resize);\n },\n\n teardown: target => {\n window.removeEventListener('resize', resize);\n },\n});\n","module.exports = {\n accordion: require('./accordion'),\n banner: require('./banner'),\n footer: require('./footer'),\n navigation: require('./navigation'),\n password: require('./password'),\n search: require('./search'),\n skipnav: require('./skipnav'),\n validator: require('./validator'),\n};\n\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst forEach = require('array-foreach');\nconst select = require('../utils/select');\nconst accordion = require('./accordion');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst CONTEXT = 'header';\nconst NAV = `.${PREFIX}-nav`;\nconst NAV_LINKS = `${NAV} a`;\nconst OPENERS = `.${PREFIX}-menu-btn`;\nconst CLOSE_BUTTON = `.${PREFIX}-nav-close`;\nconst OVERLAY = `.${PREFIX}-overlay`;\nconst CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;\nconst TOGGLES = [ NAV, OVERLAY ].join(', ');\n\nconst ACTIVE_CLASS = 'usa-mobile_nav-active';\nconst VISIBLE_CLASS = 'is-visible';\n\nconst toggleNav = function (active) {\n const body = document.body;\n if (typeof active !== 'boolean') {\n active = !body.classList.contains(ACTIVE_CLASS);\n }\n body.classList.toggle(ACTIVE_CLASS, active);\n\n const context = this.closest(CONTEXT);\n forEach(select(TOGGLES), el => {\n el.classList.toggle(VISIBLE_CLASS);\n });\n\n if (active && context) {\n const closeButton = context.querySelector(CLOSE_BUTTON);\n if (closeButton) {\n closeButton.focus();\n }\n }\n return active;\n};\n\nconst navigation = behavior({\n [ CLICK ]: {\n [ OPENERS ]: toggleNav,\n [ CLOSERS ]: toggleNav,\n [ NAV_LINKS ]: function () {\n // A navigation link has been clicked! We want to collapse any\n // hierarchical navigation UI it's a part of, so that the user\n // can focus on whatever they've just selected.\n\n // Some navigation links are inside accordions; when they're\n // clicked, we want to collapse those accordions.\n const acc = this.closest(accordion.ACCORDION);\n if (acc) {\n accordion.getButtons(acc).forEach(btn => accordion.hide(btn));\n }\n\n // If the mobile navigation menu is active, we want to hide it.\n if (document.body.classList.contains(ACTIVE_CLASS)) {\n toggleNav.call(this);\n }\n },\n },\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nconst assign = require('object-assign');\nmodule.exports = assign(\n el => navigation.on(el),\n navigation\n);\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst toggleFormInput = require('../utils/toggle-form-input');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst LINK = `.${PREFIX}-show_password, .${PREFIX}-show_multipassword`;\n\nconst toggle = function (event) {\n event.preventDefault();\n toggleFormInput(this);\n};\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ LINK ]: toggle,\n },\n});\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst forEach = require('array-foreach');\nconst ignore = require('receptor/ignore');\nconst select = require('../utils/select');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst BUTTON = '.js-search-button';\nconst FORM = '.js-search-form';\nconst INPUT = '[type=search]';\nconst CONTEXT = 'header'; // XXX\nconst VISUALLY_HIDDEN = `${PREFIX}-sr-only`;\n\nlet lastButton;\n\nconst showSearch = function (event) {\n toggleSearch(this, true);\n lastButton = this;\n};\n\nconst hideSearch = function (event) {\n toggleSearch(this, false);\n lastButton = undefined;\n};\n\nconst getForm = button => {\n const context = button.closest(CONTEXT);\n return context\n ? context.querySelector(FORM)\n : document.querySelector(FORM);\n};\n\nconst toggleSearch = (button, active) => {\n const form = getForm(button);\n if (!form) {\n throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);\n }\n\n button.hidden = active;\n form.classList.toggle(VISUALLY_HIDDEN, !active);\n\n if (active) {\n const input = form.querySelector(INPUT);\n if (input) {\n input.focus();\n }\n // when the user clicks _outside_ of the form w/ignore(): hide the\n // search, then remove the listener\n const listener = ignore(form, e => {\n if (lastButton) {\n hideSearch.call(lastButton);\n }\n document.body.removeEventListener(CLICK, listener);\n });\n\n // Normally we would just run this code without a timeout, but\n // IE11 and Edge will actually call the listener *immediately* because\n // they are currently handling this exact type of event, so we'll\n // make sure the browser is done handling the current click event,\n // if any, before we attach the listener.\n setTimeout(() => {\n document.body.addEventListener(CLICK, listener);\n }, 0);\n }\n};\n\nconst search = behavior({\n [ CLICK ]: {\n [ BUTTON ]: showSearch,\n },\n}, {\n init: (target) => {\n forEach(select(BUTTON, target), button => {\n toggleSearch(button, false);\n });\n },\n teardown: (target) => {\n // forget the last button clicked\n lastButton = undefined;\n },\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nconst assign = require('object-assign');\nmodule.exports = assign(\n el => search.on(el),\n search\n);\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst once = require('receptor/once');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\nconst LINK = `.${PREFIX}-skipnav[href^=\"#\"]`;\n\nconst setTabindex = function (event) {\n // NB: we know because of the selector we're delegating to below that the\n // href already begins with '#'\n const id = this.getAttribute('href').slice(1);\n const target = document.getElementById(id);\n if (target) {\n target.setAttribute('tabindex', 0);\n target.addEventListener('blur', once(event => {\n target.setAttribute('tabindex', -1);\n }));\n } else {\n // throw an error?\n }\n};\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ LINK ]: setTabindex,\n },\n});\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst validate = require('../utils/validate-input');\nconst debounce = require('lodash.debounce');\n\nconst change = function (event) {\n return validate(this);\n};\n\nconst validator = behavior({\n 'keyup change': {\n 'input[data-validation-element]': change,\n },\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nconst assign = require('object-assign');\nmodule.exports = assign(\n el => validator.on(el),\n validator\n);\n","module.exports = {\n prefix: 'usa',\n};\n","module.exports = {\n // This used to be conditionally dependent on whether the\n // browser supported touch events; if it did, `CLICK` was set to\n // `touchstart`. However, this had downsides:\n //\n // * It pre-empted mobile browsers' default behavior of detecting\n // whether a touch turned into a scroll, thereby preventing\n // users from using some of our components as scroll surfaces.\n //\n // * Some devices, such as the Microsoft Surface Pro, support *both*\n // touch and clicks. This meant the conditional effectively dropped\n // support for the user's mouse, frustrating users who preferred\n // it on those systems.\n CLICK: 'click',\n};\n","'use strict';\nconst elproto = window.HTMLElement.prototype;\nconst HIDDEN = 'hidden';\n\nif (!(HIDDEN in elproto)) {\n Object.defineProperty(elproto, HIDDEN, {\n get: function () {\n return this.hasAttribute(HIDDEN);\n },\n set: function (value) {\n if (value) {\n this.setAttribute(HIDDEN, '');\n } else {\n this.removeAttribute(HIDDEN);\n }\n },\n });\n}\n","'use strict';\n// polyfills HTMLElement.prototype.classList and DOMTokenList\nrequire('classlist-polyfill');\n// polyfills HTMLElement.prototype.hidden\nrequire('./element-hidden');\n","'use strict';\nconst domready = require('domready');\n\n/**\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\n * older browsers, so must be loaded first.\n */\nrequire('./polyfills');\n\nconst uswds = require('./config');\n\nconst components = require('./components');\nuswds.components = components;\n\ndomready(() => {\n const target = document.body;\n for (let name in components) {\n const behavior = components[ name ];\n behavior.on(target);\n }\n});\n\nmodule.exports = uswds;\n","'use strict';\nconst assign = require('object-assign');\nconst forEach = require('array-foreach');\nconst Behavior = require('receptor/behavior');\n\nconst sequence = function () {\n const seq = [].slice.call(arguments);\n return function (target) {\n if (!target) {\n target = document.body;\n }\n forEach(seq, method => {\n if (typeof this[ method ] === 'function') {\n this[ method ].call(this, target);\n }\n });\n };\n};\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = (events, props) => {\n return Behavior(events, assign({\n on: sequence('init', 'add'),\n off: sequence('teardown', 'remove'),\n }, props));\n};\n","// https://stackoverflow.com/a/7557433\nfunction isElementInViewport (el, win=window,\n docEl=document.documentElement) {\n var rect = el.getBoundingClientRect();\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (win.innerHeight || docEl.clientHeight) &&\n rect.right <= (win.innerWidth || docEl.clientWidth)\n );\n}\n\nmodule.exports = isElementInViewport;\n","'use strict';\n\n/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\nconst isElement = value => {\n return value && typeof value === 'object' && value.nodeType === 1;\n};\n\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n * in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = function select (selector, context) {\n\n if (typeof selector !== 'string') {\n return [];\n }\n\n if (!context || !isElement(context)) {\n context = window.document;\n }\n\n const selection = context.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n};\n","/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = (field, mask) => {\n field.setAttribute('autocapitalize', 'off');\n field.setAttribute('autocorrect', 'off');\n field.setAttribute('type', mask ? 'password' : 'text');\n};\n","'use strict';\nconst forEach = require('array-foreach');\nconst resolveIdRefs = require('resolve-id-refs');\nconst select = require('./select');\nconst toggleFieldMask = require('./toggle-field-mask');\n\nconst CONTROLS = 'aria-controls';\nconst PRESSED = 'aria-pressed';\nconst SHOW_ATTR = 'data-show-text';\nconst HIDE_ATTR = 'data-hide-text';\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nconst getHideText = showText => {\n return showText.replace(/\\bShow\\b/i, show => {\n return ('S' === show[ 0 ] ? 'H' : 'h') + 'ide';\n });\n};\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @return {boolean}\n */\nmodule.exports = el => {\n // this is the *target* state:\n // * if the element has the attr and it's !== \"true\", pressed is true\n // * otherwise, pressed is false\n const pressed = el.hasAttribute(PRESSED)\n && el.getAttribute(PRESSED) !== 'true';\n\n const fields = resolveIdRefs(el.getAttribute(CONTROLS));\n forEach(fields, field => toggleFieldMask(field, pressed));\n\n if (!el.hasAttribute(SHOW_ATTR)) {\n el.setAttribute(SHOW_ATTR, el.textContent);\n }\n\n const showText = el.getAttribute(SHOW_ATTR);\n const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n el.textContent = pressed ? showText : hideText;\n el.setAttribute(PRESSED, pressed);\n return pressed;\n};\n","'use strict';\nconst EXPANDED = 'aria-expanded';\nconst CONTROLS = 'aria-controls';\nconst HIDDEN = 'aria-hidden';\n\nmodule.exports = (button, expanded) => {\n\n if (typeof expanded !== 'boolean') {\n expanded = button.getAttribute(EXPANDED) === 'false';\n }\n button.setAttribute(EXPANDED, expanded);\n\n const id = button.getAttribute(CONTROLS);\n const controls = document.getElementById(id);\n if (!controls) {\n throw new Error(\n 'No toggle target found with id: \"' + id + '\"'\n );\n }\n\n controls.setAttribute(HIDDEN, !expanded);\n return expanded;\n};\n","'use strict';\nconst dataset = require('elem-dataset');\n\nconst PREFIX = require('../config').prefix;\nconst CHECKED = 'aria-checked';\nconst CHECKED_CLASS = `${PREFIX}-checklist-checked`;\n\nmodule.exports = function validate (el) {\n const data = dataset(el);\n const id = data.validationElement;\n const checkList = id.charAt(0) === '#'\n ? document.querySelector(id)\n : document.getElementById(id);\n\n if (!checkList) {\n throw new Error(\n `No validation element found with id: \"${id}\"`\n );\n }\n\n for (const key in data) {\n if (key.startsWith('validate')) {\n const validatorName = key.substr('validate'.length).toLowerCase();\n const validatorPattern = new RegExp(data[ key ]);\n const validatorSelector = `[data-validator=\"${validatorName}\"]`;\n const validatorCheckbox = checkList.querySelector(validatorSelector);\n if (!validatorCheckbox) {\n throw new Error(\n `No validator checkbox found for: \"${validatorName}\"`\n );\n }\n\n const checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n validatorCheckbox.setAttribute(CHECKED, checked);\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["node_modules/browser-pack/_prelude.js","uswds.js","node_modules/array-filter/index.js","node_modules/array-foreach/index.js","node_modules/classlist-polyfill/src/index.js","node_modules/domready/ready.js","node_modules/elem-dataset/dist/index.js","node_modules/element-closest/element-closest.js","node_modules/lodash.debounce/index.js","node_modules/object-assign/index.js","node_modules/receptor/behavior/index.js","node_modules/receptor/compose/index.js","node_modules/receptor/delegate/index.js","node_modules/receptor/delegateAll/index.js","node_modules/receptor/ignore/index.js","node_modules/receptor/once/index.js","node_modules/resolve-id-refs/index.js","src/js/components/accordion.js","src/js/components/banner.js","src/js/components/footer.js","src/js/components/index.js","src/js/components/navigation.js","src/js/components/password.js","src/js/components/search.js","src/js/components/skipnav.js","src/js/components/validator.js","src/js/config.js","src/js/events.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/start.js","src/js/utils/behavior.js","src/js/utils/is-in-viewport.js","src/js/utils/select.js","src/js/utils/toggle-field-mask.js","src/js/utils/toggle-form-input.js","src/js/utils/toggle.js","src/js/utils/validate-input.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","arr","fn","self","filter","TypeError","ret","hasOwn","val","push","Object","prototype","hasOwnProperty","2","ary","callback","thisArg","forEach","3","window","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","strTrim","String","trim","this","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","testElement","createMethod","original","DOMTokenList","_toggle","4","_typeof","Symbol","iterator","obj","constructor","definition","define","amd","_listener","fns","doc","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","setTimeout","5","useNative","Boolean","dataset","aB","nativeDataset","element","getter","value","setter","removeAttribute","map","attributes","j","attribute","prop","slice","charAt","toUpperCase","bind","set","6","ElementProto","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","elements","ownerDocument","querySelectorAll","closest","nodeType","parentNode","7","global","debounce","func","wait","options","invokeFunc","time","args","lastArgs","lastThis","lastInvokeTime","apply","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","trailing","cancel","clearTimeout","flush","debounced","isInvoking","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","isObjectLike","isSymbol","objectToString","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","reIsBadHex","parseInt","freeGlobal","freeSelf","root","Function","objectProto","Math","max","min","Date","8","toObject","shouldUseNative","assign","test1","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","keys","err","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","target","source","from","symbols","to","key","9","delegate","delegateAll","DELEGATE_PATTERN","SPACE","getListeners","handler","match","capture","popKey","passive","listener","_type","events","props","listeners","reduce","memo","concat","../delegate","../delegateAll","object-assign","10","functions","some","11","event","element-closest","12","compose","SPLAT","selectors","delegates","../compose","13","14","wrapped","currentTarget","15","RE_TRIM","RE_SPLIT","str","queryById","id","querySelector","ids","getElementById","el","16","_defineProperty","writable","behavior","isElementInViewport","CLICK","PREFIX","prefix","ACCORDION","BUTTON","EXPANDED","MULTISELECTABLE","toggleButton","button","expanded","accordion","multiselectable","getAccordionButtons","showButton","hideButton","preventDefault","scrollIntoView","init","show","hide","getButtons","Accordion","on","off","../config","../events","../utils/behavior","../utils/is-in-viewport","../utils/toggle","array-filter","array-foreach","17","HEADER","EXPANDED_CLASS","toggleBanner","18","select","HIDDEN","SCOPE","NAV","LIST","HIDE_MAX_WIDTH","DEBOUNCE_RATE","showPanel","list","lists","resize","hidden","innerWidth","teardown","../utils/select","./accordion","lodash.debounce","19","banner","footer","navigation","password","search","skipnav","validator","./banner","./footer","./navigation","./password","./search","./skipnav","./validator","20","_CLICK","NAV_LINKS","OPENERS","CLOSE_BUTTON","OVERLAY","CLOSERS","TOGGLES","ACTIVE_CLASS","VISIBLE_CLASS","isActive","body","toggleNav","active","closeButton","menuButton","focus","activeElement","closer","getBoundingClientRect","width","acc","btn","21","toggleFormInput","LINK","../utils/toggle-form-input","22","ignore","FORM","INPUT","CONTEXT","VISUALLY_HIDDEN","lastButton","showSearch","toggleSearch","hideSearch","getForm","context","form","input","receptor/ignore","23","once","setTabindex","receptor/once","24","validate","change","keyup change","input[data-validation-element]","../utils/validate-input","25","26","27","elproto","HTMLElement","hasAttribute","28","./element-hidden","classlist-polyfill","29","domready","uswds","components","./components","./config","./polyfills","30","Behavior","sequence","seq","_this","receptor/behavior","31","win","docEl","rect","top","left","bottom","innerHeight","clientHeight","right","clientWidth","32","isElement","selection","33","field","mask","34","resolveIdRefs","toggleFieldMask","CONTROLS","PRESSED","SHOW_ATTR","HIDE_ATTR","getHideText","showText","pressed","fields","textContent","hideText","./select","./toggle-field-mask","resolve-id-refs","35","controls","36","CHECKED","CHECKED_CLASS","data","validationElement","checkList","startsWith","validatorName","substr","toLowerCase","validatorPattern","RegExp","validatorSelector","validatorCheckbox","checked","elem-dataset"],"mappings":"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","file":"uswds.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\n/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Object=} self\n * @return {Array}\n * @throw TypeError\n */\n\nmodule.exports = function (arr, fn, self) {\n if (arr.filter) return arr.filter(fn, self);\n if (void 0 === arr || null === arr) throw new TypeError();\n if ('function' != typeof fn) throw new TypeError();\n var ret = [];\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwn.call(arr, i)) continue;\n var val = arr[i];\n if (fn.call(self, val, i, arr)) ret.push(val);\n }\n return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\n},{}],2:[function(require,module,exports){\n/**\n * array-foreach\n * Array#forEach ponyfill for older browsers\n * (Ponyfill: A polyfill that doesn't overwrite the native method)\n * \n * https://github.com/twada/array-foreach\n *\n * Copyright (c) 2015-2016 Takuto Wada\n * Licensed under the MIT license.\n * https://github.com/twada/array-foreach/blob/master/MIT-LICENSE\n */\n'use strict';\n\nmodule.exports = function forEach(ary, callback, thisArg) {\n if (ary.forEach) {\n ary.forEach(callback, thisArg);\n return;\n }\n for (var i = 0; i < ary.length; i += 1) {\n callback.call(thisArg, ary[i], i, ary);\n }\n};\n\n},{}],3:[function(require,module,exports){\n\"use strict\";\n\n/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n\t// Full polyfill for browsers with no classList support\n\t// Including IE < Edge missing SVGElement.classList\n\tif (!(\"classList\" in document.createElement(\"_\")) || document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\"))) {\n\n\t\t(function (view) {\n\n\t\t\t\"use strict\";\n\n\t\t\tif (!('Element' in view)) return;\n\n\t\t\tvar classListProp = \"classList\",\n\t\t\t protoProp = \"prototype\",\n\t\t\t elemCtrProto = view.Element[protoProp],\n\t\t\t objCtr = Object,\n\t\t\t strTrim = String[protoProp].trim || function () {\n\t\t\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t\t\t},\n\t\t\t arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\t\t\tvar i = 0,\n\t\t\t\t len = this.length;\n\t\t\t\tfor (; i < len; i++) {\n\t\t\t\t\tif (i in this && this[i] === item) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\t// Vendors: please allow content code to instantiate DOMExceptions\n\t\t\t,\n\t\t\t DOMEx = function DOMEx(type, message) {\n\t\t\t\tthis.name = type;\n\t\t\t\tthis.code = DOMException[type];\n\t\t\t\tthis.message = message;\n\t\t\t},\n\t\t\t checkTokenAndGetIndex = function checkTokenAndGetIndex(classList, token) {\n\t\t\t\tif (token === \"\") {\n\t\t\t\t\tthrow new DOMEx(\"SYNTAX_ERR\", \"An invalid or illegal string was specified\");\n\t\t\t\t}\n\t\t\t\tif (/\\s/.test(token)) {\n\t\t\t\t\tthrow new DOMEx(\"INVALID_CHARACTER_ERR\", \"String contains an invalid character\");\n\t\t\t\t}\n\t\t\t\treturn arrIndexOf.call(classList, token);\n\t\t\t},\n\t\t\t ClassList = function ClassList(elem) {\n\t\t\t\tvar trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\"),\n\t\t\t\t classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : [],\n\t\t\t\t i = 0,\n\t\t\t\t len = classes.length;\n\t\t\t\tfor (; i < len; i++) {\n\t\t\t\t\tthis.push(classes[i]);\n\t\t\t\t}\n\t\t\t\tthis._updateClassName = function () {\n\t\t\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t\t\t};\n\t\t\t},\n\t\t\t classListProto = ClassList[protoProp] = [],\n\t\t\t classListGetter = function classListGetter() {\n\t\t\t\treturn new ClassList(this);\n\t\t\t};\n\t\t\t// Most DOMException implementations don't allow calling DOMException's toString()\n\t\t\t// on non-DOMExceptions. Error's toString() is sufficient here.\n\t\t\tDOMEx[protoProp] = Error[protoProp];\n\t\t\tclassListProto.item = function (i) {\n\t\t\t\treturn this[i] || null;\n\t\t\t};\n\t\t\tclassListProto.contains = function (token) {\n\t\t\t\ttoken += \"\";\n\t\t\t\treturn checkTokenAndGetIndex(this, token) !== -1;\n\t\t\t};\n\t\t\tclassListProto.add = function () {\n\t\t\t\tvar tokens = arguments,\n\t\t\t\t i = 0,\n\t\t\t\t l = tokens.length,\n\t\t\t\t token,\n\t\t\t\t updated = false;\n\t\t\t\tdo {\n\t\t\t\t\ttoken = tokens[i] + \"\";\n\t\t\t\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\t\t\t\tthis.push(token);\n\t\t\t\t\t\tupdated = true;\n\t\t\t\t\t}\n\t\t\t\t} while (++i < l);\n\n\t\t\t\tif (updated) {\n\t\t\t\t\tthis._updateClassName();\n\t\t\t\t}\n\t\t\t};\n\t\t\tclassListProto.remove = function () {\n\t\t\t\tvar tokens = arguments,\n\t\t\t\t i = 0,\n\t\t\t\t l = tokens.length,\n\t\t\t\t token,\n\t\t\t\t updated = false,\n\t\t\t\t index;\n\t\t\t\tdo {\n\t\t\t\t\ttoken = tokens[i] + \"\";\n\t\t\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t\t\t\twhile (index !== -1) {\n\t\t\t\t\t\tthis.splice(index, 1);\n\t\t\t\t\t\tupdated = true;\n\t\t\t\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t\t\t\t}\n\t\t\t\t} while (++i < l);\n\n\t\t\t\tif (updated) {\n\t\t\t\t\tthis._updateClassName();\n\t\t\t\t}\n\t\t\t};\n\t\t\tclassListProto.toggle = function (token, force) {\n\t\t\t\ttoken += \"\";\n\n\t\t\t\tvar result = this.contains(token),\n\t\t\t\t method = result ? force !== true && \"remove\" : force !== false && \"add\";\n\n\t\t\t\tif (method) {\n\t\t\t\t\tthis[method](token);\n\t\t\t\t}\n\n\t\t\t\tif (force === true || force === false) {\n\t\t\t\t\treturn force;\n\t\t\t\t} else {\n\t\t\t\t\treturn !result;\n\t\t\t\t}\n\t\t\t};\n\t\t\tclassListProto.toString = function () {\n\t\t\t\treturn this.join(\" \");\n\t\t\t};\n\n\t\t\tif (objCtr.defineProperty) {\n\t\t\t\tvar classListPropDesc = {\n\t\t\t\t\tget: classListGetter,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\t// IE 8 doesn't support enumerable:true\n\t\t\t\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t\t\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\t\t\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\t\t\t\tclassListPropDesc.enumerable = false;\n\t\t\t\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (objCtr[protoProp].__defineGetter__) {\n\t\t\t\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n\t\t\t}\n\t\t})(window.self);\n\t}\n\n\t// There is full or partial native classList support, so just check if we need\n\t// to normalize the add/remove and toggle APIs.\n\n\t(function () {\n\t\t\"use strict\";\n\n\t\tvar testElement = document.createElement(\"_\");\n\n\t\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t\t// classList.remove exist but support only one argument at a time.\n\t\tif (!testElement.classList.contains(\"c2\")) {\n\t\t\tvar createMethod = function createMethod(method) {\n\t\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\t\tDOMTokenList.prototype[method] = function (token) {\n\t\t\t\t\tvar i,\n\t\t\t\t\t len = arguments.length;\n\n\t\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tcreateMethod('add');\n\t\t\tcreateMethod('remove');\n\t\t}\n\n\t\ttestElement.classList.toggle(\"c3\", false);\n\n\t\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t\t// support the second argument.\n\t\tif (testElement.classList.contains(\"c3\")) {\n\t\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\t\tDOMTokenList.prototype.toggle = function (token, force) {\n\t\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\t\treturn force;\n\t\t\t\t} else {\n\t\t\t\t\treturn _toggle.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\ttestElement = null;\n\t})();\n}\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition();else if (typeof define == 'function' && _typeof(define.amd) == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n\n var fns = [],\n _listener,\n doc = document,\n hack = doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\n// <3 Modernizr\n// https://raw.githubusercontent.com/Modernizr/Modernizr/master/feature-detects/dom/dataset.js\n\nfunction useNative() {\n\tvar elem = document.createElement('div');\n\telem.setAttribute('data-a-b', 'c');\n\n\treturn Boolean(elem.dataset && elem.dataset.aB === 'c');\n}\n\nfunction nativeDataset(element) {\n\treturn element.dataset;\n}\n\nmodule.exports = useNative() ? nativeDataset : function (element) {\n\tvar map = {};\n\tvar attributes = element.attributes;\n\n\tfunction getter() {\n\t\treturn this.value;\n\t}\n\n\tfunction setter(name, value) {\n\t\tif (typeof value === 'undefined') {\n\t\t\tthis.removeAttribute(name);\n\t\t} else {\n\t\t\tthis.setAttribute(name, value);\n\t\t}\n\t}\n\n\tfor (var i = 0, j = attributes.length; i < j; i++) {\n\t\tvar attribute = attributes[i];\n\n\t\tif (attribute) {\n\t\t\tvar name = attribute.name;\n\n\t\t\tif (name.indexOf('data-') === 0) {\n\t\t\t\tvar prop = name.slice(5).replace(/-./g, function (u) {\n\t\t\t\t\treturn u.charAt(1).toUpperCase();\n\t\t\t\t});\n\n\t\t\t\tvar value = attribute.value;\n\n\t\t\t\tObject.defineProperty(map, prop, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: getter.bind({ value: value || '' }),\n\t\t\t\t\tset: setter.bind(element, name)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn map;\n};\n\n},{}],6:[function(require,module,exports){\n'use strict';\n\n// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n\n},{}],7:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function now() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = debounce;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],8:[function(require,module,exports){\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar assign = require('object-assign');\nvar delegate = require('../delegate');\nvar delegateAll = require('../delegateAll');\n\nvar DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nvar SPACE = ' ';\n\nvar getListeners = function getListeners(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if ((typeof handler === 'undefined' ? 'undefined' : _typeof(handler)) === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'undefined' ? 'undefined' : _typeof(handler)) === 'object' ? delegateAll(handler) : selector ? delegate(selector, handler) : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function (_type) {\n return assign({ type: _type }, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function popKey(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n var listeners = Object.keys(events).reduce(function (memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function (listener) {\n element.addEventListener(listener.type, listener.delegate, listener.options);\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function (listener) {\n element.removeEventListener(listener.type, listener.delegate, listener.options);\n });\n }\n }, props);\n};\n\n},{\"../delegate\":11,\"../delegateAll\":12,\"object-assign\":8}],10:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function compose(functions) {\n return function (e) {\n return functions.some(function (fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n\n},{}],11:[function(require,module,exports){\n'use strict';\n\n// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = event.target.closest(selector);\n if (target) {\n return fn.call(target, event);\n }\n };\n};\n\n},{\"element-closest\":6}],12:[function(require,module,exports){\n'use strict';\n\nvar delegate = require('../delegate');\nvar compose = require('../compose');\n\nvar SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n var keys = Object.keys(selectors);\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n var delegates = keys.reduce(function (memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n\n},{\"../compose\":10,\"../delegate\":11}],13:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n\n},{}],14:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function once(listener, options) {\n var wrapped = function wrappedOnce(e) {\n e.currentTarget.removeEventListener(e.type, wrapped, options);\n return listener.call(this, e);\n };\n return wrapped;\n};\n\n},{}],15:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim ? function (str) {\n return str.trim();\n} : function (str) {\n return str.replace(RE_TRIM, '');\n};\n\nvar queryById = function queryById(id) {\n return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n if (typeof ids !== 'string') {\n throw new Error('Expected a string but got ' + (typeof ids === 'undefined' ? 'undefined' : _typeof(ids)));\n }\n\n if (!doc) {\n doc = window.document;\n }\n\n var getElementById = doc.getElementById ? doc.getElementById.bind(doc) : queryById.bind(doc);\n\n ids = trim(ids).split(RE_SPLIT);\n\n // XXX we can short-circuit here because trimming and splitting a\n // string of just whitespace produces an array containing a single,\n // empty string\n if (ids.length === 1 && ids[0] === '') {\n return [];\n }\n\n return ids.map(function (id) {\n var el = getElementById(id);\n if (!el) {\n throw new Error('no element with id: \"' + id + '\"');\n }\n return el;\n });\n};\n\n},{}],16:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar filter = require('array-filter');\nvar forEach = require('array-foreach');\nvar toggle = require('../utils/toggle');\nvar isElementInViewport = require('../utils/is-in-viewport');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\n// XXX match .usa-accordion and .usa-accordion-bordered\nvar ACCORDION = '.' + PREFIX + '-accordion, .' + PREFIX + '-accordion-bordered';\nvar BUTTON = '.' + PREFIX + '-accordion-button[aria-controls]';\nvar EXPANDED = 'aria-expanded';\nvar MULTISELECTABLE = 'aria-multiselectable';\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nvar toggleButton = function toggleButton(button, expanded) {\n var accordion = button.closest(ACCORDION);\n if (!accordion) {\n throw new Error(BUTTON + ' is missing outer ' + ACCORDION);\n }\n\n expanded = toggle(button, expanded);\n // XXX multiselectable is opt-in, to preserve legacy behavior\n var multiselectable = accordion.getAttribute(MULTISELECTABLE) === 'true';\n\n if (expanded && !multiselectable) {\n forEach(getAccordionButtons(accordion), function (other) {\n if (other !== button) {\n toggle(other, false);\n }\n });\n }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nvar showButton = function showButton(button) {\n return toggleButton(button, true);\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nvar hideButton = function hideButton(button) {\n return toggleButton(button, false);\n};\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array<HTMLButtonElement>}\n */\nvar getAccordionButtons = function getAccordionButtons(accordion) {\n return filter(accordion.querySelectorAll(BUTTON), function (button) {\n return button.closest(ACCORDION) === accordion;\n });\n};\n\nvar accordion = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, function (event) {\n event.preventDefault();\n toggleButton(this);\n\n if (this.getAttribute(EXPANDED) === 'true') {\n // We were just expanded, but if another accordion was also just\n // collapsed, we may no longer be in the viewport. This ensures\n // that we are still visible, so the user isn't confused.\n if (!isElementInViewport(this)) this.scrollIntoView();\n }\n})), {\n init: function init(root) {\n forEach(root.querySelectorAll(BUTTON), function (button) {\n var expanded = button.getAttribute(EXPANDED) === 'true';\n toggleButton(button, expanded);\n });\n },\n ACCORDION: ACCORDION,\n BUTTON: BUTTON,\n show: showButton,\n hide: hideButton,\n toggle: toggleButton,\n getButtons: getAccordionButtons\n});\n\n/**\n * TODO: for 2.0, remove everything below this comment and export the\n * behavior directly:\n *\n * module.exports = behavior({...});\n */\nvar Accordion = function Accordion(root) {\n this.root = root;\n accordion.on(this.root);\n};\n\n// copy all of the behavior methods and props to Accordion\nvar assign = require('object-assign');\nassign(Accordion, accordion);\n\nAccordion.prototype.show = showButton;\nAccordion.prototype.hide = hideButton;\n\nAccordion.prototype.remove = function () {\n accordion.off(this.root);\n};\n\nmodule.exports = Accordion;\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/is-in-viewport\":31,\"../utils/toggle\":35,\"array-filter\":1,\"array-foreach\":2,\"object-assign\":8}],17:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar toggle = require('../utils/toggle');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar HEADER = '.' + PREFIX + '-banner-header';\nvar EXPANDED_CLASS = PREFIX + '-banner-header-expanded';\n\nvar toggleBanner = function toggleBanner(event) {\n event.preventDefault();\n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n return false;\n};\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, HEADER + ' [aria-controls]', toggleBanner)));\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/toggle\":35}],18:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar accordion = require('./accordion');\nvar behavior = require('../utils/behavior');\nvar debounce = require('lodash.debounce');\nvar forEach = require('array-foreach');\nvar select = require('../utils/select');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar HIDDEN = 'hidden';\nvar SCOPE = '.' + PREFIX + '-footer-big';\nvar NAV = SCOPE + ' nav';\nvar BUTTON = NAV + ' .' + PREFIX + '-footer-primary-link';\nvar LIST = NAV + ' ul';\n\nvar HIDE_MAX_WIDTH = 600;\nvar DEBOUNCE_RATE = 180;\n\nvar showPanel = function showPanel() {\n var list = this.closest(LIST);\n list.classList.remove(HIDDEN);\n\n // NB: this *should* always succeed because the button\n // selector is scoped to \".{prefix}-footer-big nav\"\n var lists = list.closest(NAV).querySelectorAll('ul');\n\n forEach(lists, function (el) {\n if (el !== list) {\n el.classList.add(HIDDEN);\n }\n });\n};\n\nvar resize = debounce(function () {\n var hidden = window.innerWidth < HIDE_MAX_WIDTH;\n forEach(select(LIST), function (list) {\n list.classList.toggle(HIDDEN, hidden);\n });\n}, DEBOUNCE_RATE);\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, showPanel)), {\n // export for use elsewhere\n HIDE_MAX_WIDTH: HIDE_MAX_WIDTH,\n DEBOUNCE_RATE: DEBOUNCE_RATE,\n\n init: function init(target) {\n resize();\n window.addEventListener('resize', resize);\n },\n\n teardown: function teardown(target) {\n window.removeEventListener('resize', resize);\n }\n});\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/select\":32,\"./accordion\":16,\"array-foreach\":2,\"lodash.debounce\":7}],19:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n accordion: require('./accordion'),\n banner: require('./banner'),\n footer: require('./footer'),\n navigation: require('./navigation'),\n password: require('./password'),\n search: require('./search'),\n skipnav: require('./skipnav'),\n validator: require('./validator')\n};\n\n},{\"./accordion\":16,\"./banner\":17,\"./footer\":18,\"./navigation\":20,\"./password\":21,\"./search\":22,\"./skipnav\":23,\"./validator\":24}],20:[function(require,module,exports){\n'use strict';\n\nvar _CLICK;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar forEach = require('array-foreach');\nvar select = require('../utils/select');\nvar accordion = require('./accordion');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar NAV = '.' + PREFIX + '-nav';\nvar NAV_LINKS = NAV + ' a';\nvar OPENERS = '.' + PREFIX + '-menu-btn';\nvar CLOSE_BUTTON = '.' + PREFIX + '-nav-close';\nvar OVERLAY = '.' + PREFIX + '-overlay';\nvar CLOSERS = CLOSE_BUTTON + ', .' + PREFIX + '-overlay';\nvar TOGGLES = [NAV, OVERLAY].join(', ');\n\nvar ACTIVE_CLASS = 'usa-mobile_nav-active';\nvar VISIBLE_CLASS = 'is-visible';\n\nvar isActive = function isActive() {\n return document.body.classList.contains(ACTIVE_CLASS);\n};\n\nvar toggleNav = function toggleNav(active) {\n var body = document.body;\n if (typeof active !== 'boolean') {\n active = !isActive();\n }\n body.classList.toggle(ACTIVE_CLASS, active);\n\n forEach(select(TOGGLES), function (el) {\n el.classList.toggle(VISIBLE_CLASS, active);\n });\n\n var closeButton = body.querySelector(CLOSE_BUTTON);\n var menuButton = body.querySelector(OPENERS);\n\n if (active && closeButton) {\n // The mobile nav was just activated, so focus on the close button,\n // which is just before all the nav elements in the tab order.\n closeButton.focus();\n } else if (!active && document.activeElement === closeButton && menuButton) {\n // The mobile nav was just deactivated, and focus was on the close\n // button, which is no longer visible. We don't want the focus to\n // disappear into the void, so focus on the menu button if it's\n // visible (this may have been what the user was just focused on,\n // if they triggered the mobile nav by mistake).\n menuButton.focus();\n }\n\n return active;\n};\n\nvar resize = function resize() {\n var closer = document.body.querySelector(CLOSE_BUTTON);\n\n if (isActive() && closer && closer.getBoundingClientRect().width === 0) {\n // The mobile nav is active, but the close box isn't visible, which\n // means the user's viewport has been resized so that it is no longer\n // in mobile mode. Let's make the page state consistent by\n // deactivating the mobile nav.\n toggleNav.call(closer, false);\n }\n};\n\nvar navigation = behavior(_defineProperty({}, CLICK, (_CLICK = {}, _defineProperty(_CLICK, OPENERS, toggleNav), _defineProperty(_CLICK, CLOSERS, toggleNav), _defineProperty(_CLICK, NAV_LINKS, function () {\n // A navigation link has been clicked! We want to collapse any\n // hierarchical navigation UI it's a part of, so that the user\n // can focus on whatever they've just selected.\n\n // Some navigation links are inside accordions; when they're\n // clicked, we want to collapse those accordions.\n var acc = this.closest(accordion.ACCORDION);\n if (acc) {\n accordion.getButtons(acc).forEach(function (btn) {\n return accordion.hide(btn);\n });\n }\n\n // If the mobile navigation menu is active, we want to hide it.\n if (isActive()) {\n toggleNav.call(this, false);\n }\n}), _CLICK)), {\n init: function init() {\n resize();\n window.addEventListener('resize', resize, false);\n },\n teardown: function teardown() {\n window.removeEventListener('resize', resize, false);\n }\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nvar assign = require('object-assign');\nmodule.exports = assign(function (el) {\n return navigation.on(el);\n}, navigation);\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/select\":32,\"./accordion\":16,\"array-foreach\":2,\"object-assign\":8}],21:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar toggleFormInput = require('../utils/toggle-form-input');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar LINK = '.' + PREFIX + '-show_password, .' + PREFIX + '-show_multipassword';\n\nvar toggle = function toggle(event) {\n event.preventDefault();\n toggleFormInput(this);\n};\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, LINK, toggle)));\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/toggle-form-input\":34}],22:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar forEach = require('array-foreach');\nvar ignore = require('receptor/ignore');\nvar select = require('../utils/select');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\n\nvar BUTTON = '.js-search-button';\nvar FORM = '.js-search-form';\nvar INPUT = '[type=search]';\nvar CONTEXT = 'header'; // XXX\nvar VISUALLY_HIDDEN = PREFIX + '-sr-only';\n\nvar lastButton = void 0;\n\nvar showSearch = function showSearch(event) {\n toggleSearch(this, true);\n lastButton = this;\n};\n\nvar hideSearch = function hideSearch(event) {\n toggleSearch(this, false);\n lastButton = undefined;\n};\n\nvar getForm = function getForm(button) {\n var context = button.closest(CONTEXT);\n return context ? context.querySelector(FORM) : document.querySelector(FORM);\n};\n\nvar toggleSearch = function toggleSearch(button, active) {\n var form = getForm(button);\n if (!form) {\n throw new Error('No ' + FORM + ' found for search toggle in ' + CONTEXT + '!');\n }\n\n button.hidden = active;\n form.classList.toggle(VISUALLY_HIDDEN, !active);\n\n if (active) {\n var input = form.querySelector(INPUT);\n if (input) {\n input.focus();\n }\n // when the user clicks _outside_ of the form w/ignore(): hide the\n // search, then remove the listener\n var listener = ignore(form, function (e) {\n if (lastButton) {\n hideSearch.call(lastButton);\n }\n document.body.removeEventListener(CLICK, listener);\n });\n\n // Normally we would just run this code without a timeout, but\n // IE11 and Edge will actually call the listener *immediately* because\n // they are currently handling this exact type of event, so we'll\n // make sure the browser is done handling the current click event,\n // if any, before we attach the listener.\n setTimeout(function () {\n document.body.addEventListener(CLICK, listener);\n }, 0);\n }\n};\n\nvar search = behavior(_defineProperty({}, CLICK, _defineProperty({}, BUTTON, showSearch)), {\n init: function init(target) {\n forEach(select(BUTTON, target), function (button) {\n toggleSearch(button, false);\n });\n },\n teardown: function teardown(target) {\n // forget the last button clicked\n lastButton = undefined;\n }\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nvar assign = require('object-assign');\nmodule.exports = assign(function (el) {\n return search.on(el);\n}, search);\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"../utils/select\":32,\"array-foreach\":2,\"object-assign\":8,\"receptor/ignore\":13}],23:[function(require,module,exports){\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar behavior = require('../utils/behavior');\nvar once = require('receptor/once');\n\nvar CLICK = require('../events').CLICK;\nvar PREFIX = require('../config').prefix;\nvar LINK = '.' + PREFIX + '-skipnav[href^=\"#\"]';\n\nvar setTabindex = function setTabindex(event) {\n // NB: we know because of the selector we're delegating to below that the\n // href already begins with '#'\n var id = this.getAttribute('href').slice(1);\n var target = document.getElementById(id);\n if (target) {\n target.setAttribute('tabindex', 0);\n target.addEventListener('blur', once(function (event) {\n target.setAttribute('tabindex', -1);\n }));\n } else {\n // throw an error?\n }\n};\n\nmodule.exports = behavior(_defineProperty({}, CLICK, _defineProperty({}, LINK, setTabindex)));\n\n},{\"../config\":25,\"../events\":26,\"../utils/behavior\":30,\"receptor/once\":14}],24:[function(require,module,exports){\n'use strict';\n\nvar behavior = require('../utils/behavior');\nvar validate = require('../utils/validate-input');\nvar debounce = require('lodash.debounce');\n\nvar change = function change(event) {\n return validate(this);\n};\n\nvar validator = behavior({\n 'keyup change': {\n 'input[data-validation-element]': change\n }\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nvar assign = require('object-assign');\nmodule.exports = assign(function (el) {\n return validator.on(el);\n}, validator);\n\n},{\"../utils/behavior\":30,\"../utils/validate-input\":36,\"lodash.debounce\":7,\"object-assign\":8}],25:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n prefix: 'usa'\n};\n\n},{}],26:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n // This used to be conditionally dependent on whether the\n // browser supported touch events; if it did, `CLICK` was set to\n // `touchstart`. However, this had downsides:\n //\n // * It pre-empted mobile browsers' default behavior of detecting\n // whether a touch turned into a scroll, thereby preventing\n // users from using some of our components as scroll surfaces.\n //\n // * Some devices, such as the Microsoft Surface Pro, support *both*\n // touch and clicks. This meant the conditional effectively dropped\n // support for the user's mouse, frustrating users who preferred\n // it on those systems.\n CLICK: 'click'\n};\n\n},{}],27:[function(require,module,exports){\n'use strict';\n\nvar elproto = window.HTMLElement.prototype;\nvar HIDDEN = 'hidden';\n\nif (!(HIDDEN in elproto)) {\n Object.defineProperty(elproto, HIDDEN, {\n get: function get() {\n return this.hasAttribute(HIDDEN);\n },\n set: function set(value) {\n if (value) {\n this.setAttribute(HIDDEN, '');\n } else {\n this.removeAttribute(HIDDEN);\n }\n }\n });\n}\n\n},{}],28:[function(require,module,exports){\n'use strict';\n// polyfills HTMLElement.prototype.classList and DOMTokenList\n\nrequire('classlist-polyfill');\n// polyfills HTMLElement.prototype.hidden\nrequire('./element-hidden');\n\n},{\"./element-hidden\":27,\"classlist-polyfill\":3}],29:[function(require,module,exports){\n'use strict';\n\nvar domready = require('domready');\n\n/**\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\n * older browsers, so must be loaded first.\n */\nrequire('./polyfills');\n\nvar uswds = require('./config');\n\nvar components = require('./components');\nuswds.components = components;\n\ndomready(function () {\n var target = document.body;\n for (var name in components) {\n var behavior = components[name];\n behavior.on(target);\n }\n});\n\nmodule.exports = uswds;\n\n},{\"./components\":19,\"./config\":25,\"./polyfills\":28,\"domready\":4}],30:[function(require,module,exports){\n'use strict';\n\nvar assign = require('object-assign');\nvar forEach = require('array-foreach');\nvar Behavior = require('receptor/behavior');\n\nvar sequence = function sequence() {\n var seq = [].slice.call(arguments);\n return function (target) {\n var _this = this;\n\n if (!target) {\n target = document.body;\n }\n forEach(seq, function (method) {\n if (typeof _this[method] === 'function') {\n _this[method].call(_this, target);\n }\n });\n };\n};\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = function (events, props) {\n return Behavior(events, assign({\n on: sequence('init', 'add'),\n off: sequence('teardown', 'remove')\n }, props));\n};\n\n},{\"array-foreach\":2,\"object-assign\":8,\"receptor/behavior\":9}],31:[function(require,module,exports){\n\"use strict\";\n\n// https://stackoverflow.com/a/7557433\nfunction isElementInViewport(el) {\n var win = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n var docEl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document.documentElement;\n\n var rect = el.getBoundingClientRect();\n\n return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (win.innerHeight || docEl.clientHeight) && rect.right <= (win.innerWidth || docEl.clientWidth);\n}\n\nmodule.exports = isElementInViewport;\n\n},{}],32:[function(require,module,exports){\n'use strict';\n\n/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isElement = function isElement(value) {\n return value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.nodeType === 1;\n};\n\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n * in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = function select(selector, context) {\n\n if (typeof selector !== 'string') {\n return [];\n }\n\n if (!context || !isElement(context)) {\n context = window.document;\n }\n\n var selection = context.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n};\n\n},{}],33:[function(require,module,exports){\n'use strict';\n\n/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = function (field, mask) {\n field.setAttribute('autocapitalize', 'off');\n field.setAttribute('autocorrect', 'off');\n field.setAttribute('type', mask ? 'password' : 'text');\n};\n\n},{}],34:[function(require,module,exports){\n'use strict';\n\nvar forEach = require('array-foreach');\nvar resolveIdRefs = require('resolve-id-refs');\nvar select = require('./select');\nvar toggleFieldMask = require('./toggle-field-mask');\n\nvar CONTROLS = 'aria-controls';\nvar PRESSED = 'aria-pressed';\nvar SHOW_ATTR = 'data-show-text';\nvar HIDE_ATTR = 'data-hide-text';\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nvar getHideText = function getHideText(showText) {\n return showText.replace(/\\bShow\\b/i, function (show) {\n return ('S' === show[0] ? 'H' : 'h') + 'ide';\n });\n};\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @return {boolean}\n */\nmodule.exports = function (el) {\n // this is the *target* state:\n // * if the element has the attr and it's !== \"true\", pressed is true\n // * otherwise, pressed is false\n var pressed = el.hasAttribute(PRESSED) && el.getAttribute(PRESSED) !== 'true';\n\n var fields = resolveIdRefs(el.getAttribute(CONTROLS));\n forEach(fields, function (field) {\n return toggleFieldMask(field, pressed);\n });\n\n if (!el.hasAttribute(SHOW_ATTR)) {\n el.setAttribute(SHOW_ATTR, el.textContent);\n }\n\n var showText = el.getAttribute(SHOW_ATTR);\n var hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n el.textContent = pressed ? showText : hideText;\n el.setAttribute(PRESSED, pressed);\n return pressed;\n};\n\n},{\"./select\":32,\"./toggle-field-mask\":33,\"array-foreach\":2,\"resolve-id-refs\":15}],35:[function(require,module,exports){\n'use strict';\n\nvar EXPANDED = 'aria-expanded';\nvar CONTROLS = 'aria-controls';\nvar HIDDEN = 'aria-hidden';\n\nmodule.exports = function (button, expanded) {\n\n if (typeof expanded !== 'boolean') {\n expanded = button.getAttribute(EXPANDED) === 'false';\n }\n button.setAttribute(EXPANDED, expanded);\n\n var id = button.getAttribute(CONTROLS);\n var controls = document.getElementById(id);\n if (!controls) {\n throw new Error('No toggle target found with id: \"' + id + '\"');\n }\n\n controls.setAttribute(HIDDEN, !expanded);\n return expanded;\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar dataset = require('elem-dataset');\n\nvar PREFIX = require('../config').prefix;\nvar CHECKED = 'aria-checked';\nvar CHECKED_CLASS = PREFIX + '-checklist-checked';\n\nmodule.exports = function validate(el) {\n var data = dataset(el);\n var id = data.validationElement;\n var checkList = id.charAt(0) === '#' ? document.querySelector(id) : document.getElementById(id);\n\n if (!checkList) {\n throw new Error('No validation element found with id: \"' + id + '\"');\n }\n\n for (var key in data) {\n if (key.startsWith('validate')) {\n var validatorName = key.substr('validate'.length).toLowerCase();\n var validatorPattern = new RegExp(data[key]);\n var validatorSelector = '[data-validator=\"' + validatorName + '\"]';\n var validatorCheckbox = checkList.querySelector(validatorSelector);\n if (!validatorCheckbox) {\n throw new Error('No validator checkbox found for: \"' + validatorName + '\"');\n }\n\n var checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n validatorCheckbox.setAttribute(CHECKED, checked);\n }\n }\n};\n\n},{\"../config\":25,\"elem-dataset\":5}]},{},[29])\n\n","\n/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Object=} self\n * @return {Array}\n * @throw TypeError\n */\n\nmodule.exports = function (arr, fn, self) {\n if (arr.filter) return arr.filter(fn, self);\n if (void 0 === arr || null === arr) throw new TypeError;\n if ('function' != typeof fn) throw new TypeError;\n var ret = [];\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwn.call(arr, i)) continue;\n var val = arr[i];\n if (fn.call(self, val, i, arr)) ret.push(val);\n }\n return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n","/**\n * array-foreach\n * Array#forEach ponyfill for older browsers\n * (Ponyfill: A polyfill that doesn't overwrite the native method)\n * \n * https://github.com/twada/array-foreach\n *\n * Copyright (c) 2015-2016 Takuto Wada\n * Licensed under the MIT license.\n * https://github.com/twada/array-foreach/blob/master/MIT-LICENSE\n */\n'use strict';\n\nmodule.exports = function forEach (ary, callback, thisArg) {\n if (ary.forEach) {\n ary.forEach(callback, thisArg);\n return;\n }\n for (var i = 0; i < ary.length; i+=1) {\n callback.call(thisArg, ary[i], i, ary);\n }\n};\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n","'use strict';\n\n// <3 Modernizr\n// https://raw.githubusercontent.com/Modernizr/Modernizr/master/feature-detects/dom/dataset.js\n\nfunction useNative() {\n\tvar elem = document.createElement('div');\n\telem.setAttribute('data-a-b', 'c');\n\n\treturn Boolean(elem.dataset && elem.dataset.aB === 'c');\n}\n\nfunction nativeDataset(element) {\n\treturn element.dataset;\n}\n\nmodule.exports = useNative() ? nativeDataset : function (element) {\n\tvar map = {};\n\tvar attributes = element.attributes;\n\n\tfunction getter() {\n\t\treturn this.value;\n\t}\n\n\tfunction setter(name, value) {\n\t\tif (typeof value === 'undefined') {\n\t\t\tthis.removeAttribute(name);\n\t\t} else {\n\t\t\tthis.setAttribute(name, value);\n\t\t}\n\t}\n\n\tfor (var i = 0, j = attributes.length; i < j; i++) {\n\t\tvar attribute = attributes[i];\n\n\t\tif (attribute) {\n\t\t\tvar name = attribute.name;\n\n\t\t\tif (name.indexOf('data-') === 0) {\n\t\t\t\tvar prop = name.slice(5).replace(/-./g, function (u) {\n\t\t\t\t\treturn u.charAt(1).toUpperCase();\n\t\t\t\t});\n\n\t\t\t\tvar value = attribute.value;\n\n\t\t\t\tObject.defineProperty(map, prop, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: getter.bind({ value: value || '' }),\n\t\t\t\t\tset: setter.bind(element, name)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn map;\n};\n\n","// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('../delegate');\nconst delegateAll = require('../delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = event.target.closest(selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('../delegate');\nconst compose = require('../compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","module.exports = function once(listener, options) {\n var wrapped = function wrappedOnce(e) {\n e.currentTarget.removeEventListener(e.type, wrapped, options);\n return listener.call(this, e);\n };\n return wrapped;\n};\n\n","'use strict';\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim\n ? function(str) { return str.trim(); }\n : function(str) { return str.replace(RE_TRIM, ''); };\n\nvar queryById = function(id) {\n return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n if (typeof ids !== 'string') {\n throw new Error('Expected a string but got ' + (typeof ids));\n }\n\n if (!doc) {\n doc = window.document;\n }\n\n var getElementById = doc.getElementById\n ? doc.getElementById.bind(doc)\n : queryById.bind(doc);\n\n ids = trim(ids).split(RE_SPLIT);\n\n // XXX we can short-circuit here because trimming and splitting a\n // string of just whitespace produces an array containing a single,\n // empty string\n if (ids.length === 1 && ids[0] === '') {\n return [];\n }\n\n return ids\n .map(function(id) {\n var el = getElementById(id);\n if (!el) {\n throw new Error('no element with id: \"' + id + '\"');\n }\n return el;\n });\n};\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst filter = require('array-filter');\nconst forEach = require('array-foreach');\nconst toggle = require('../utils/toggle');\nconst isElementInViewport = require('../utils/is-in-viewport');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\n// XXX match .usa-accordion and .usa-accordion-bordered\nconst ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion-bordered`;\nconst BUTTON = `.${PREFIX}-accordion-button[aria-controls]`;\nconst EXPANDED = 'aria-expanded';\nconst MULTISELECTABLE = 'aria-multiselectable';\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nconst toggleButton = (button, expanded) => {\n var accordion = button.closest(ACCORDION);\n if (!accordion) {\n throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);\n }\n\n expanded = toggle(button, expanded);\n // XXX multiselectable is opt-in, to preserve legacy behavior\n const multiselectable = accordion.getAttribute(MULTISELECTABLE) === 'true';\n\n if (expanded && !multiselectable) {\n forEach(getAccordionButtons(accordion), other => {\n if (other !== button) {\n toggle(other, false);\n }\n });\n }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nconst showButton = button => toggleButton(button, true);\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nconst hideButton = button => toggleButton(button, false);\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array<HTMLButtonElement>}\n */\nconst getAccordionButtons = accordion => {\n return filter(accordion.querySelectorAll(BUTTON), button => {\n return button.closest(ACCORDION) === accordion;\n });\n};\n\nconst accordion = behavior({\n [ CLICK ]: {\n [ BUTTON ]: function (event) {\n event.preventDefault();\n toggleButton(this);\n\n if (this.getAttribute(EXPANDED) === 'true') {\n // We were just expanded, but if another accordion was also just\n // collapsed, we may no longer be in the viewport. This ensures\n // that we are still visible, so the user isn't confused.\n if (!isElementInViewport(this)) this.scrollIntoView();\n }\n },\n },\n}, {\n init: root => {\n forEach(root.querySelectorAll(BUTTON), button => {\n const expanded = button.getAttribute(EXPANDED) === 'true';\n toggleButton(button, expanded);\n });\n },\n ACCORDION,\n BUTTON,\n show: showButton,\n hide: hideButton,\n toggle: toggleButton,\n getButtons: getAccordionButtons,\n});\n\n/**\n * TODO: for 2.0, remove everything below this comment and export the\n * behavior directly:\n *\n * module.exports = behavior({...});\n */\nconst Accordion = function (root) {\n this.root = root;\n accordion.on(this.root);\n};\n\n// copy all of the behavior methods and props to Accordion\nconst assign = require('object-assign');\nassign(Accordion, accordion);\n\nAccordion.prototype.show = showButton;\nAccordion.prototype.hide = hideButton;\n\nAccordion.prototype.remove = function () {\n accordion.off(this.root);\n};\n\nmodule.exports = Accordion;\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst toggle = require('../utils/toggle');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst HEADER = `.${PREFIX}-banner-header`;\nconst EXPANDED_CLASS = `${PREFIX}-banner-header-expanded`;\n\nconst toggleBanner = function (event) {\n event.preventDefault();\n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n return false;\n};\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ `${HEADER} [aria-controls]` ]: toggleBanner,\n },\n});\n","'use strict';\nconst accordion = require('./accordion');\nconst behavior = require('../utils/behavior');\nconst debounce = require('lodash.debounce');\nconst forEach = require('array-foreach');\nconst select = require('../utils/select');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst HIDDEN = 'hidden';\nconst SCOPE = `.${PREFIX}-footer-big`;\nconst NAV = `${SCOPE} nav`;\nconst BUTTON = `${NAV} .${PREFIX}-footer-primary-link`;\nconst LIST = `${NAV} ul`;\n\nconst HIDE_MAX_WIDTH = 600;\nconst DEBOUNCE_RATE = 180;\n\nconst showPanel = function () {\n const list = this.closest(LIST);\n list.classList.remove(HIDDEN);\n\n // NB: this *should* always succeed because the button\n // selector is scoped to \".{prefix}-footer-big nav\"\n const lists = list.closest(NAV)\n .querySelectorAll('ul');\n\n forEach(lists, el => {\n if (el !== list) {\n el.classList.add(HIDDEN);\n }\n });\n};\n\nconst resize = debounce(() => {\n const hidden = window.innerWidth < HIDE_MAX_WIDTH;\n forEach(select(LIST), list => {\n list.classList.toggle(HIDDEN, hidden);\n });\n}, DEBOUNCE_RATE);\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ BUTTON ]: showPanel,\n },\n}, {\n // export for use elsewhere\n HIDE_MAX_WIDTH,\n DEBOUNCE_RATE,\n\n init: target => {\n resize();\n window.addEventListener('resize', resize);\n },\n\n teardown: target => {\n window.removeEventListener('resize', resize);\n },\n});\n","module.exports = {\n accordion: require('./accordion'),\n banner: require('./banner'),\n footer: require('./footer'),\n navigation: require('./navigation'),\n password: require('./password'),\n search: require('./search'),\n skipnav: require('./skipnav'),\n validator: require('./validator'),\n};\n\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst forEach = require('array-foreach');\nconst select = require('../utils/select');\nconst accordion = require('./accordion');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst NAV = `.${PREFIX}-nav`;\nconst NAV_LINKS = `${NAV} a`;\nconst OPENERS = `.${PREFIX}-menu-btn`;\nconst CLOSE_BUTTON = `.${PREFIX}-nav-close`;\nconst OVERLAY = `.${PREFIX}-overlay`;\nconst CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;\nconst TOGGLES = [ NAV, OVERLAY ].join(', ');\n\nconst ACTIVE_CLASS = 'usa-mobile_nav-active';\nconst VISIBLE_CLASS = 'is-visible';\n\nconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);\n\nconst toggleNav = function (active) {\n const body = document.body;\n if (typeof active !== 'boolean') {\n active = !isActive();\n }\n body.classList.toggle(ACTIVE_CLASS, active);\n\n forEach(select(TOGGLES), el => {\n el.classList.toggle(VISIBLE_CLASS, active);\n });\n\n const closeButton = body.querySelector(CLOSE_BUTTON);\n const menuButton = body.querySelector(OPENERS);\n\n if (active && closeButton) {\n // The mobile nav was just activated, so focus on the close button,\n // which is just before all the nav elements in the tab order.\n closeButton.focus();\n } else if (!active && document.activeElement === closeButton &&\n menuButton) {\n // The mobile nav was just deactivated, and focus was on the close\n // button, which is no longer visible. We don't want the focus to\n // disappear into the void, so focus on the menu button if it's\n // visible (this may have been what the user was just focused on,\n // if they triggered the mobile nav by mistake).\n menuButton.focus();\n }\n\n return active;\n};\n\nconst resize = () => {\n const closer = document.body.querySelector(CLOSE_BUTTON);\n\n if (isActive() && closer && closer.getBoundingClientRect().width === 0) {\n // The mobile nav is active, but the close box isn't visible, which\n // means the user's viewport has been resized so that it is no longer\n // in mobile mode. Let's make the page state consistent by\n // deactivating the mobile nav.\n toggleNav.call(closer, false);\n }\n};\n\nconst navigation = behavior({\n [ CLICK ]: {\n [ OPENERS ]: toggleNav,\n [ CLOSERS ]: toggleNav,\n [ NAV_LINKS ]: function () {\n // A navigation link has been clicked! We want to collapse any\n // hierarchical navigation UI it's a part of, so that the user\n // can focus on whatever they've just selected.\n\n // Some navigation links are inside accordions; when they're\n // clicked, we want to collapse those accordions.\n const acc = this.closest(accordion.ACCORDION);\n if (acc) {\n accordion.getButtons(acc).forEach(btn => accordion.hide(btn));\n }\n\n // If the mobile navigation menu is active, we want to hide it.\n if (isActive()) {\n toggleNav.call(this, false);\n }\n },\n },\n}, {\n init () {\n resize();\n window.addEventListener('resize', resize, false);\n },\n teardown () {\n window.removeEventListener('resize', resize, false);\n },\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nconst assign = require('object-assign');\nmodule.exports = assign(\n el => navigation.on(el),\n navigation\n);\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst toggleFormInput = require('../utils/toggle-form-input');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst LINK = `.${PREFIX}-show_password, .${PREFIX}-show_multipassword`;\n\nconst toggle = function (event) {\n event.preventDefault();\n toggleFormInput(this);\n};\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ LINK ]: toggle,\n },\n});\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst forEach = require('array-foreach');\nconst ignore = require('receptor/ignore');\nconst select = require('../utils/select');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\n\nconst BUTTON = '.js-search-button';\nconst FORM = '.js-search-form';\nconst INPUT = '[type=search]';\nconst CONTEXT = 'header'; // XXX\nconst VISUALLY_HIDDEN = `${PREFIX}-sr-only`;\n\nlet lastButton;\n\nconst showSearch = function (event) {\n toggleSearch(this, true);\n lastButton = this;\n};\n\nconst hideSearch = function (event) {\n toggleSearch(this, false);\n lastButton = undefined;\n};\n\nconst getForm = button => {\n const context = button.closest(CONTEXT);\n return context\n ? context.querySelector(FORM)\n : document.querySelector(FORM);\n};\n\nconst toggleSearch = (button, active) => {\n const form = getForm(button);\n if (!form) {\n throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);\n }\n\n button.hidden = active;\n form.classList.toggle(VISUALLY_HIDDEN, !active);\n\n if (active) {\n const input = form.querySelector(INPUT);\n if (input) {\n input.focus();\n }\n // when the user clicks _outside_ of the form w/ignore(): hide the\n // search, then remove the listener\n const listener = ignore(form, e => {\n if (lastButton) {\n hideSearch.call(lastButton);\n }\n document.body.removeEventListener(CLICK, listener);\n });\n\n // Normally we would just run this code without a timeout, but\n // IE11 and Edge will actually call the listener *immediately* because\n // they are currently handling this exact type of event, so we'll\n // make sure the browser is done handling the current click event,\n // if any, before we attach the listener.\n setTimeout(() => {\n document.body.addEventListener(CLICK, listener);\n }, 0);\n }\n};\n\nconst search = behavior({\n [ CLICK ]: {\n [ BUTTON ]: showSearch,\n },\n}, {\n init: (target) => {\n forEach(select(BUTTON, target), button => {\n toggleSearch(button, false);\n });\n },\n teardown: (target) => {\n // forget the last button clicked\n lastButton = undefined;\n },\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nconst assign = require('object-assign');\nmodule.exports = assign(\n el => search.on(el),\n search\n);\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst once = require('receptor/once');\n\nconst CLICK = require('../events').CLICK;\nconst PREFIX = require('../config').prefix;\nconst LINK = `.${PREFIX}-skipnav[href^=\"#\"]`;\n\nconst setTabindex = function (event) {\n // NB: we know because of the selector we're delegating to below that the\n // href already begins with '#'\n const id = this.getAttribute('href').slice(1);\n const target = document.getElementById(id);\n if (target) {\n target.setAttribute('tabindex', 0);\n target.addEventListener('blur', once(event => {\n target.setAttribute('tabindex', -1);\n }));\n } else {\n // throw an error?\n }\n};\n\nmodule.exports = behavior({\n [ CLICK ]: {\n [ LINK ]: setTabindex,\n },\n});\n","'use strict';\nconst behavior = require('../utils/behavior');\nconst validate = require('../utils/validate-input');\nconst debounce = require('lodash.debounce');\n\nconst change = function (event) {\n return validate(this);\n};\n\nconst validator = behavior({\n 'keyup change': {\n 'input[data-validation-element]': change,\n },\n});\n\n/**\n * TODO for 2.0, remove this statement and export `navigation` directly:\n *\n * module.exports = behavior({...});\n */\nconst assign = require('object-assign');\nmodule.exports = assign(\n el => validator.on(el),\n validator\n);\n","module.exports = {\n prefix: 'usa',\n};\n","module.exports = {\n // This used to be conditionally dependent on whether the\n // browser supported touch events; if it did, `CLICK` was set to\n // `touchstart`. However, this had downsides:\n //\n // * It pre-empted mobile browsers' default behavior of detecting\n // whether a touch turned into a scroll, thereby preventing\n // users from using some of our components as scroll surfaces.\n //\n // * Some devices, such as the Microsoft Surface Pro, support *both*\n // touch and clicks. This meant the conditional effectively dropped\n // support for the user's mouse, frustrating users who preferred\n // it on those systems.\n CLICK: 'click',\n};\n","'use strict';\nconst elproto = window.HTMLElement.prototype;\nconst HIDDEN = 'hidden';\n\nif (!(HIDDEN in elproto)) {\n Object.defineProperty(elproto, HIDDEN, {\n get: function () {\n return this.hasAttribute(HIDDEN);\n },\n set: function (value) {\n if (value) {\n this.setAttribute(HIDDEN, '');\n } else {\n this.removeAttribute(HIDDEN);\n }\n },\n });\n}\n","'use strict';\n// polyfills HTMLElement.prototype.classList and DOMTokenList\nrequire('classlist-polyfill');\n// polyfills HTMLElement.prototype.hidden\nrequire('./element-hidden');\n","'use strict';\nconst domready = require('domready');\n\n/**\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\n * older browsers, so must be loaded first.\n */\nrequire('./polyfills');\n\nconst uswds = require('./config');\n\nconst components = require('./components');\nuswds.components = components;\n\ndomready(() => {\n const target = document.body;\n for (let name in components) {\n const behavior = components[ name ];\n behavior.on(target);\n }\n});\n\nmodule.exports = uswds;\n","'use strict';\nconst assign = require('object-assign');\nconst forEach = require('array-foreach');\nconst Behavior = require('receptor/behavior');\n\nconst sequence = function () {\n const seq = [].slice.call(arguments);\n return function (target) {\n if (!target) {\n target = document.body;\n }\n forEach(seq, method => {\n if (typeof this[ method ] === 'function') {\n this[ method ].call(this, target);\n }\n });\n };\n};\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = (events, props) => {\n return Behavior(events, assign({\n on: sequence('init', 'add'),\n off: sequence('teardown', 'remove'),\n }, props));\n};\n","// https://stackoverflow.com/a/7557433\nfunction isElementInViewport (el, win=window,\n docEl=document.documentElement) {\n var rect = el.getBoundingClientRect();\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (win.innerHeight || docEl.clientHeight) &&\n rect.right <= (win.innerWidth || docEl.clientWidth)\n );\n}\n\nmodule.exports = isElementInViewport;\n","'use strict';\n\n/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\nconst isElement = value => {\n return value && typeof value === 'object' && value.nodeType === 1;\n};\n\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n * in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = function select (selector, context) {\n\n if (typeof selector !== 'string') {\n return [];\n }\n\n if (!context || !isElement(context)) {\n context = window.document;\n }\n\n const selection = context.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n};\n","/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = (field, mask) => {\n field.setAttribute('autocapitalize', 'off');\n field.setAttribute('autocorrect', 'off');\n field.setAttribute('type', mask ? 'password' : 'text');\n};\n","'use strict';\nconst forEach = require('array-foreach');\nconst resolveIdRefs = require('resolve-id-refs');\nconst select = require('./select');\nconst toggleFieldMask = require('./toggle-field-mask');\n\nconst CONTROLS = 'aria-controls';\nconst PRESSED = 'aria-pressed';\nconst SHOW_ATTR = 'data-show-text';\nconst HIDE_ATTR = 'data-hide-text';\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nconst getHideText = showText => {\n return showText.replace(/\\bShow\\b/i, show => {\n return ('S' === show[ 0 ] ? 'H' : 'h') + 'ide';\n });\n};\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @return {boolean}\n */\nmodule.exports = el => {\n // this is the *target* state:\n // * if the element has the attr and it's !== \"true\", pressed is true\n // * otherwise, pressed is false\n const pressed = el.hasAttribute(PRESSED)\n && el.getAttribute(PRESSED) !== 'true';\n\n const fields = resolveIdRefs(el.getAttribute(CONTROLS));\n forEach(fields, field => toggleFieldMask(field, pressed));\n\n if (!el.hasAttribute(SHOW_ATTR)) {\n el.setAttribute(SHOW_ATTR, el.textContent);\n }\n\n const showText = el.getAttribute(SHOW_ATTR);\n const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n el.textContent = pressed ? showText : hideText;\n el.setAttribute(PRESSED, pressed);\n return pressed;\n};\n","'use strict';\nconst EXPANDED = 'aria-expanded';\nconst CONTROLS = 'aria-controls';\nconst HIDDEN = 'aria-hidden';\n\nmodule.exports = (button, expanded) => {\n\n if (typeof expanded !== 'boolean') {\n expanded = button.getAttribute(EXPANDED) === 'false';\n }\n button.setAttribute(EXPANDED, expanded);\n\n const id = button.getAttribute(CONTROLS);\n const controls = document.getElementById(id);\n if (!controls) {\n throw new Error(\n 'No toggle target found with id: \"' + id + '\"'\n );\n }\n\n controls.setAttribute(HIDDEN, !expanded);\n return expanded;\n};\n","'use strict';\nconst dataset = require('elem-dataset');\n\nconst PREFIX = require('../config').prefix;\nconst CHECKED = 'aria-checked';\nconst CHECKED_CLASS = `${PREFIX}-checklist-checked`;\n\nmodule.exports = function validate (el) {\n const data = dataset(el);\n const id = data.validationElement;\n const checkList = id.charAt(0) === '#'\n ? document.querySelector(id)\n : document.getElementById(id);\n\n if (!checkList) {\n throw new Error(\n `No validation element found with id: \"${id}\"`\n );\n }\n\n for (const key in data) {\n if (key.startsWith('validate')) {\n const validatorName = key.substr('validate'.length).toLowerCase();\n const validatorPattern = new RegExp(data[ key ]);\n const validatorSelector = `[data-validator=\"${validatorName}\"]`;\n const validatorCheckbox = checkList.querySelector(validatorSelector);\n if (!validatorCheckbox) {\n throw new Error(\n `No validator checkbox found for: \"${validatorName}\"`\n );\n }\n\n const checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n validatorCheckbox.setAttribute(CHECKED, checked);\n }\n }\n};\n"]}
@@ -4,6 +4,10 @@ $accordion-border: 3px solid $color-gray-lightest;
4
4
 
5
5
  // Accordion Styles
6
6
 
7
+ $icon-size: $spacing-md-small;
8
+ $h-padding: $spacing-medium;
9
+ $v-padding: $spacing-md-small;
10
+
7
11
  @mixin accordion-list-styles {
8
12
  @include unstyled-list;
9
13
  color: $color-base;
@@ -16,7 +20,7 @@ $accordion-border: 3px solid $color-gray-lightest;
16
20
  background-color: $color-gray-lightest;
17
21
  font-family: $font-sans;
18
22
  list-style: none;
19
- margin-bottom: 6px;
23
+ margin-bottom: $spacing-x-small;
20
24
  width: 100%;
21
25
  }
22
26
 
@@ -26,22 +30,18 @@ $accordion-border: 3px solid $color-gray-lightest;
26
30
  background-color: $color-gray-lightest;
27
31
  background-image: url('#{$image-path}/minus.png');
28
32
  background-image: url('#{$image-path}/minus.svg');
29
- background-position: right 3rem center;
33
+ background-position: right $h-padding center;
30
34
  background-repeat: no-repeat;
31
- background-size: 13px;
35
+ background-size: $icon-size;
32
36
  color: $color-base;
33
37
  cursor: pointer;
34
38
  display: inline-block;
35
39
  font-family: $font-sans;
36
40
  font-weight: $font-bold;
37
41
  margin: 0;
38
- padding: 1.5rem 5.5rem 1.5rem 3rem;
42
+ padding: $v-padding ($h-padding * 2 + $icon-size) $v-padding $h-padding;
39
43
  width: 100%;
40
44
 
41
- &:focus {
42
- box-shadow: $focus-shadow;
43
- }
44
-
45
45
  &:hover {
46
46
  background-color: $color-gray-lighter;
47
47
  color: $color-base;
@@ -62,7 +62,7 @@ $accordion-border: 3px solid $color-gray-lightest;
62
62
  background-image: url('#{$image-path}/plus.png');
63
63
  background-image: url('#{$image-path}/plus.svg');
64
64
  background-repeat: no-repeat;
65
- background-size: 1.3rem;
65
+ background-size: $icon-size;
66
66
  }
67
67
 
68
68
  @mixin accordion-nested-list {
@@ -84,7 +84,7 @@ $accordion-border: 3px solid $color-gray-lightest;
84
84
 
85
85
  + .usa-accordion,
86
86
  + .usa-accordion-bordered {
87
- margin-top: 1rem;
87
+ margin-top: $spacing-small;
88
88
  }
89
89
 
90
90
  // TODO deprecated ruleset based on old accordion.
@@ -124,7 +124,7 @@ $accordion-border: 3px solid $color-gray-lightest;
124
124
  .usa-accordion-content {
125
125
  background-color: $color-white;
126
126
  overflow: auto;
127
- padding: 3rem;
127
+ padding: $spacing-md-small $spacing-medium;
128
128
 
129
129
  > *:first-child {
130
130
  margin-top: 0;
@@ -1,5 +1,6 @@
1
1
  // Alert variables ---------- //
2
2
  $usa-custom-alerts: () !default;
3
+ $usa-custom-alerts-bar: () !default;
3
4
 
4
5
  $usa-alerts: (
5
6
  success: $color-green-lightest,
@@ -8,18 +9,40 @@ $usa-alerts: (
8
9
  info: $color-primary-alt-lightest
9
10
  );
10
11
 
12
+ $usa-alerts-bar: (
13
+ success: $color-green,
14
+ warning: $color-gold,
15
+ error: $color-secondary,
16
+ info: $color-primary-alt
17
+ );
18
+
11
19
  $alerts: map-merge($usa-alerts, $usa-custom-alerts);
20
+ $alerts-bar: map-merge($usa-alerts-bar, $usa-custom-alerts-bar);
21
+
22
+ $h-padding: $spacing-medium;
23
+ $bar-size: $spacing-small;
24
+ $left-padding: $h-padding + $bar-size;
25
+ $icon-size: 3rem;
12
26
 
13
27
  .usa-alert {
14
28
  background-color: $color-gray-lightest;
15
- background-position: 1rem 2rem;
29
+ background-position: $h-padding $h-padding;
16
30
  background-repeat: no-repeat;
17
- background-size: 4rem;
18
- margin-top: 1.5em;
19
- padding: 1em;
20
-
21
- @include media($medium-screen) {
22
- background-size: 5.2rem;
31
+ background-size: 5.2rem; // TODO abrituary number based on svg size maybe?
32
+ padding-bottom: $h-padding * 0.7;
33
+ padding-left: $left-padding;
34
+ padding-right: $h-padding;
35
+ padding-top: $h-padding;
36
+ position: relative;
37
+
38
+ &::before {
39
+ background-color: darken($color-gray-lightest, 40%);
40
+ content: '';
41
+ height: 100%;
42
+ left: 0;
43
+ position: absolute;
44
+ top: 0;
45
+ width: $bar-size;
23
46
  }
24
47
 
25
48
  a {
@@ -33,41 +56,36 @@ $alerts: map-merge($usa-alerts, $usa-custom-alerts);
33
56
 
34
57
  ul {
35
58
  margin-bottom: 0;
36
- margin-top: 1em;
37
- padding-left: 1em;
59
+ margin-top: $spacing-small;
60
+ padding-left: $spacing-small;
61
+ }
62
+ }
63
+
64
+ .usa-alert-slim {
65
+ background-position: $h-padding $spacing-small;
66
+ padding-bottom: $spacing-small;
67
+ padding-top: $spacing-small;
68
+
69
+ .usa-alert-text:only-child {
70
+ margin-bottom: $spacing-x-small;
71
+ padding-top: $spacing-x-small;
38
72
  }
39
73
  }
40
74
 
41
75
  .usa-alert-icon {
42
76
  display: table-cell;
43
- padding-right: 1rem;
77
+ padding-right: $spacing-small;
44
78
  }
45
79
 
46
80
  .usa-alert-body {
47
81
  display: table-cell;
48
- padding-left: 3.5rem;
82
+ padding-left: $icon-size + $h-padding;
49
83
  vertical-align: top;
50
-
51
- @include media($medium-screen) {
52
- padding-left: 5rem;
53
- }
54
-
55
- p:first-child {
56
- margin-top: 0.8rem;
57
- }
58
-
59
- p:last-child {
60
- margin-bottom: 0.8rem;
61
- }
62
84
  }
63
85
 
64
86
  .usa-alert-heading {
65
- margin-bottom: .3rem;
66
87
  margin-top: 0;
67
-
68
- @include media($medium-screen) {
69
- margin-top: .3rem;
70
- }
88
+ margin-bottom: 0;
71
89
  }
72
90
 
73
91
  .usa-alert-text {
@@ -76,11 +94,20 @@ $alerts: map-merge($usa-alerts, $usa-custom-alerts);
76
94
  margin-top: 0;
77
95
  }
78
96
 
97
+ .usa-alert-text:only-child {
98
+ margin-bottom: $spacing-small;
99
+ padding-top: $spacing-x-small;
100
+ }
101
+
79
102
  @each $name, $bgcolor in $alerts {
80
103
  .usa-alert-#{$name} {
81
104
  background-color: $bgcolor;
82
105
  background-image: url('#{$image-path}/alerts/#{$name}.png');
83
106
  background-image: url('#{$image-path}/alerts/#{$name}.svg');
107
+
108
+ &::before {
109
+ background-color: map-get($alerts-bar, $name);
110
+ }
84
111
  }
85
112
  }
86
113
 
@@ -90,5 +117,9 @@ $alerts: map-merge($usa-alerts, $usa-custom-alerts);
90
117
 
91
118
  .usa-alert-paragraph {
92
119
  width: $text-max-width;
93
- padding: 1em 3em 1em 1em;
120
+ }
121
+
122
+ // Deprecated
123
+ .usa-alert {
124
+ margin-top: 1.5em; // TODO deprecate
94
125
  }
@@ -8,8 +8,8 @@
8
8
  display: block;
9
9
  font-weight: $font-bold;
10
10
  margin-top: 0;
11
- padding-bottom: 2rem;
12
- padding-top: 2rem;
11
+ padding-bottom: $spacing-medium;
12
+ padding-top: $spacing-medium;
13
13
  text-decoration: none;
14
14
 
15
15
  @include media($medium-screen) {
@@ -21,21 +21,37 @@
21
21
  }
22
22
  }
23
23
 
24
+ .usa-footer-primary-link ~ li a,
25
+ .usa-footer-secondary-link {
26
+ text-decoration: none;
27
+ }
28
+ }
29
+
30
+ .usa-footer-contact_info {
31
+ display: inline-block;
32
+
24
33
  a {
25
- font-weight: normal;
34
+ color: $color-base;
35
+ text-decoration: none;
36
+ }
37
+
38
+ &:hover {
39
+ text-decoration: underline;
26
40
  }
27
41
  }
28
42
 
29
43
  .usa-footer-return-to-top {
30
- padding-bottom: 2rem;
31
- padding-top: 2rem;
44
+ color: $color-primary;
45
+ padding-bottom: $spacing-medium;
46
+ padding-top: $spacing-medium;
47
+ text-decoration: underline;
32
48
  }
33
49
 
34
50
  .usa-footer-primary-section {
35
51
  background-color: $color-gray-lightest;
36
52
 
37
53
  .usa-footer-primary-content {
38
- padding-left: 2.5rem;
54
+ padding-left: 1.5rem;
39
55
  padding-right: 2.5rem;
40
56
 
41
57
  @include media($medium-screen) {
@@ -61,17 +77,51 @@
61
77
  }
62
78
 
63
79
  .usa-footer-medium {
64
- .usa-footer-primary-section {
65
- padding: 0;
80
+ .usa-footer-contact_info {
81
+ p {
82
+ margin: 0 $spacing-small 0 0;
83
+
84
+ @include media($medium-screen) {
85
+ margin: 0 0 0 $spacing-small;
86
+ }
87
+ }
88
+ }
89
+
90
+ .usa-footer-contact-heading {
91
+ margin-top: 0;
66
92
 
67
93
  @include media($medium-screen) {
68
- padding-bottom: 1rem;
69
- padding-top: 1rem;
94
+ margin-top: $spacing-x-small;
95
+ margin-bottom: $spacing-x-small;
96
+ }
97
+ }
98
+
99
+ .usa-footer-logo {
100
+ padding: $spacing-small 0;
101
+
102
+ @include media($medium-screen) {
103
+ padding: $spacing-medium 0;
104
+ }
105
+ }
106
+
107
+ .usa-footer-primary-link {
108
+ padding-bottom: $spacing-md-small;
109
+ padding-top: $spacing-md-small;
110
+ }
111
+
112
+ .usa-footer-primary-section {
113
+ > .usa-grid {
114
+ padding: 0;
115
+
116
+ @include media($medium-screen) {
117
+ padding-left: $spacing-large;
118
+ padding-right: $spacing-large;
119
+ }
70
120
  }
71
121
 
72
122
  .usa-footer-primary-content {
73
123
  @include media($large-screen) {
74
- margin-right: 6%;
124
+ margin-right: 5%;
75
125
  width: inherit;
76
126
  }
77
127
 
@@ -98,7 +148,7 @@
98
148
 
99
149
  .usa-footer-primary-content {
100
150
  @include media($large-screen) {
101
- margin-right: 9%;
151
+ margin-right: 5%;
102
152
  width: inherit;
103
153
  }
104
154
 
@@ -110,12 +160,24 @@
110
160
  }
111
161
  }
112
162
 
163
+ .usa-footer-primary-link {
164
+ padding-bottom: $spacing-md-small;
165
+ padding-top: $spacing-md-small;
166
+ }
167
+
113
168
  .usa-footer-primary-section {
114
- padding-bottom: 2rem;
169
+ > .usa-grid {
170
+ padding: 0;
171
+
172
+ @include media($medium-screen) {
173
+ padding-left: $spacing-large;
174
+ padding-right: $spacing-large;
175
+ }
176
+ }
115
177
 
116
178
  @include media($medium-screen) {
117
- padding-bottom: 1rem;
118
- padding-top: 1rem;
179
+ padding-bottom: 0;
180
+ padding-top: 0;
119
181
 
120
182
  .usa-grid-full {
121
183
  align-items: center;
@@ -131,7 +193,7 @@
131
193
  }
132
194
 
133
195
  @include media($medium-screen) {
134
- @include padding (2rem null);
196
+ @include padding ($spacing-md-small null);
135
197
  }
136
198
 
137
199
  @include media($medium-screen) {
@@ -148,14 +210,14 @@
148
210
  ul.usa-footer-primary-content,
149
211
  li.usa-footer-primary-content,
150
212
  li.usa-footer-primary-content {
151
- border-top: 1px solid $color-base;
213
+ border-top: 1px solid $color-gray-light;
152
214
 
153
215
  @include media($medium-screen) {
154
216
  border: none;
155
217
  }
156
218
 
157
219
  &:last-child {
158
- border-bottom: 1px solid $color-base;
220
+ border-bottom: 1px solid $color-gray-light;
159
221
 
160
222
  @include media($medium-screen) {
161
223
  border-bottom: none;
@@ -165,9 +227,9 @@ li.usa-footer-primary-content {
165
227
  /* stylelint-enable */
166
228
 
167
229
  .usa-sign_up-block {
168
- padding-bottom: 2rem;
169
- padding-left: 2.5rem;
170
- padding-right: 2.5rem;
230
+ padding-bottom: 4.5rem;
231
+ padding-left: 1.5rem;
232
+ padding-right: 1.5rem;
171
233
 
172
234
  @include media($medium-screen) {
173
235
  float: right;
@@ -191,8 +253,8 @@ li.usa-footer-primary-content {
191
253
 
192
254
  .usa-footer-secondary_section {
193
255
  background-color: $color-gray-lighter;
194
- padding-bottom: 3rem;
195
- padding-top: 3rem;
256
+ padding-bottom: $spacing-medium;
257
+ padding-top: $spacing-medium;
196
258
 
197
259
  a {
198
260
  color: $color-base;
@@ -201,7 +263,8 @@ li.usa-footer-primary-content {
201
263
 
202
264
  .usa-footer-big-secondary-section {
203
265
  @include media($medium-screen) {
204
- padding-top: 5rem;
266
+ padding-top: $spacing-medium;
267
+ padding-bottom: $spacing-medium;
205
268
  }
206
269
  }
207
270
 
@@ -218,30 +281,84 @@ li.usa-footer-primary-content {
218
281
  }
219
282
 
220
283
  .usa-footer-big {
284
+ .usa-footer-contact_info {
285
+ display: block;
286
+
287
+ p {
288
+ margin: 0 $spacing-small 0 0;
289
+
290
+ @include media($medium-screen) {
291
+ margin: $spacing-x-small 0 0 $spacing-small;
292
+ }
293
+ }
294
+ }
295
+
296
+ .usa-footer-contact-links {
297
+ @include media($medium-screen) {
298
+ padding-top: $spacing-medium;
299
+ }
300
+ }
301
+
302
+ .usa-footer-logo {
303
+ padding: $spacing-small 0;
304
+
305
+ @include media($medium-screen) {
306
+ padding: $spacing-medium 0;
307
+ }
308
+ }
309
+
221
310
  .usa-footer-primary-section {
222
311
  @include media($medium-screen) {
223
312
  padding-bottom: 4rem;
224
313
  padding-top: 3rem;
225
314
  }
315
+
316
+ > .usa-grid {
317
+ padding: 0;
318
+
319
+ @include media($medium-screen) {
320
+ padding-left: $spacing-large;
321
+ padding-right: $spacing-large;
322
+ }
323
+ }
324
+
325
+ .usa-footer-primary-content {
326
+ padding-left: 0;
327
+ padding-right: 0;
328
+
329
+ li {
330
+ margin-left: $spacing-md-small;
331
+
332
+ @include media($medium-screen) {
333
+ margin-left: 0;
334
+ }
335
+ }
336
+
337
+ .usa-footer-primary-link {
338
+ margin-left: 0;
339
+ }
340
+ }
226
341
  }
227
342
 
228
343
  ul {
229
- padding-bottom: 2.5rem;
344
+ padding-bottom: 2.4rem;
230
345
 
231
346
  @include media($medium-screen) {
232
347
  padding-bottom: 0;
233
348
  }
234
349
 
235
350
  &:last-child {
236
- border-bottom: 1px solid $color-base;
351
+ border-bottom: 1px solid $color-gray-light;
237
352
 
238
353
  @include media($medium-screen) {
239
354
  border-bottom: none;
240
355
  }
241
356
  }
242
357
 
243
- li {
244
- line-height: 2em;
358
+ li:not(.usa-footer-primary-link) {
359
+ line-height: $heading-line-height;
360
+ padding-bottom: 0.35em;
361
+ padding-top: 0.35em;
245
362
  }
246
363
 
247
364
  .usa-footer-primary-link {
@@ -300,33 +417,52 @@ li.usa-footer-primary-content {
300
417
  }
301
418
 
302
419
  .usa-footer-logo-img {
303
- max-width: 14rem;
420
+ max-width: 8rem;
421
+
422
+ @include media($medium-screen) {
423
+ float: left;
424
+ }
425
+ }
426
+
427
+ .usa-footer-big-logo-img {
428
+ max-width: 10rem;
304
429
  }
305
430
 
306
431
  .usa-footer-slim-logo-img {
307
432
  float: left;
308
- max-width: 10rem;
433
+ max-width: 5rem;
309
434
  }
310
435
 
311
436
  .usa-footer-logo-heading {
312
- margin-top: 2rem;
437
+ display: block;
438
+ margin-top: $spacing-small;
439
+
440
+ @include media($medium-screen) {
441
+ display: inline-block;
442
+ margin-top: $spacing-large;
443
+ padding-left: $spacing-md-small;
444
+ }
313
445
  }
314
446
 
315
- .usa-footer-contact-heading {
316
- margin-top: 0;
447
+ .usa-footer-big-logo-heading {
448
+ margin-top: $spacing-md-small;
317
449
 
318
450
  @include media($medium-screen) {
319
- margin-top: 1rem;
451
+ margin-top: $spacing-medium;
320
452
  }
321
453
  }
322
454
 
323
455
  .usa-footer-slim-logo-heading {
324
- display: block;
325
- padding-top: 1rem;
456
+ display: inline-block;
457
+ margin-top: $spacing-md-small;
458
+ padding-left: $spacing-md-small;
459
+ }
460
+
461
+ .usa-footer-contact-heading {
462
+ margin-top: 0;
326
463
 
327
464
  @include media($medium-screen) {
328
- display: inline-block;
329
- padding-left: 1em;
465
+ margin-top: 1rem;
330
466
  }
331
467
  }
332
468
 
@@ -348,8 +484,8 @@ li.usa-footer-primary-content {
348
484
  width: $hit-area;
349
485
 
350
486
  @include media($medium-screen) {
351
- @include margin(0 0 0 1rem);
352
- left: 1.2rem;
487
+ @include margin(0 0 0 $spacing-x-small);
488
+ left: $spacing-md-small;
353
489
  }
354
490
 
355
491
  span {