create-docusaurus 0.0.0-4378 → 0.0.0-4379

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (893) hide show
  1. package/package.json +3 -3
  2. package/templates/classic/package.json +3 -3
  3. package/templates/classic-typescript/package.json +4 -4
  4. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/CHANGELOG.md +18 -0
  5. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/LICENSE +21 -0
  6. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/README.md +91 -0
  7. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/camel-case.js +13 -0
  8. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/extract.js +462 -0
  9. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/get-template.js +7 -0
  10. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/index.js +6 -0
  11. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/literal.js +23 -0
  12. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-parse.js +15 -0
  13. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-parser.js +357 -0
  14. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-stringifier.js +153 -0
  15. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-stringify.js +9 -0
  16. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-syntax.js +11 -0
  17. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object.js +24 -0
  18. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/package.json +119 -0
  19. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-parse.js +19 -0
  20. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-parser-helper.js +260 -0
  21. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-parser.js +20 -0
  22. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-safe-parse.js +19 -0
  23. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-safe-parser.js +21 -0
  24. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-stringifier.js +23 -0
  25. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-stringify.js +9 -0
  26. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-tokenize.js +67 -0
  27. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/un-camel-case.js +13 -0
  28. package/templates/facebook/node_modules/@stylelint/postcss-markdown/CHANGELOG.md +13 -0
  29. package/templates/facebook/node_modules/@stylelint/postcss-markdown/LICENSE +21 -0
  30. package/templates/facebook/node_modules/@stylelint/postcss-markdown/README.md +92 -0
  31. package/templates/facebook/node_modules/@stylelint/postcss-markdown/extract.js +42 -0
  32. package/templates/facebook/node_modules/@stylelint/postcss-markdown/index.js +5 -0
  33. package/templates/facebook/node_modules/@stylelint/postcss-markdown/package.json +63 -0
  34. package/templates/facebook/node_modules/autoprefixer/LICENSE +20 -0
  35. package/templates/facebook/node_modules/autoprefixer/README.md +73 -0
  36. package/templates/facebook/node_modules/autoprefixer/bin/autoprefixer +22 -0
  37. package/templates/facebook/node_modules/autoprefixer/data/prefixes.js +714 -0
  38. package/templates/facebook/node_modules/autoprefixer/lib/at-rule.js +62 -0
  39. package/templates/facebook/node_modules/autoprefixer/lib/autoprefixer.js +150 -0
  40. package/templates/facebook/node_modules/autoprefixer/lib/brackets.js +64 -0
  41. package/templates/facebook/node_modules/autoprefixer/lib/browsers.js +96 -0
  42. package/templates/facebook/node_modules/autoprefixer/lib/declaration.js +243 -0
  43. package/templates/facebook/node_modules/autoprefixer/lib/hacks/align-content.js +79 -0
  44. package/templates/facebook/node_modules/autoprefixer/lib/hacks/align-items.js +76 -0
  45. package/templates/facebook/node_modules/autoprefixer/lib/hacks/align-self.js +84 -0
  46. package/templates/facebook/node_modules/autoprefixer/lib/hacks/animation.js +35 -0
  47. package/templates/facebook/node_modules/autoprefixer/lib/hacks/appearance.js +39 -0
  48. package/templates/facebook/node_modules/autoprefixer/lib/hacks/backdrop-filter.js +35 -0
  49. package/templates/facebook/node_modules/autoprefixer/lib/hacks/background-clip.js +41 -0
  50. package/templates/facebook/node_modules/autoprefixer/lib/hacks/background-size.js +38 -0
  51. package/templates/facebook/node_modules/autoprefixer/lib/hacks/block-logical.js +48 -0
  52. package/templates/facebook/node_modules/autoprefixer/lib/hacks/border-image.js +33 -0
  53. package/templates/facebook/node_modules/autoprefixer/lib/hacks/border-radius.js +62 -0
  54. package/templates/facebook/node_modules/autoprefixer/lib/hacks/break-props.js +76 -0
  55. package/templates/facebook/node_modules/autoprefixer/lib/hacks/color-adjust.js +40 -0
  56. package/templates/facebook/node_modules/autoprefixer/lib/hacks/cross-fade.js +54 -0
  57. package/templates/facebook/node_modules/autoprefixer/lib/hacks/display-flex.js +94 -0
  58. package/templates/facebook/node_modules/autoprefixer/lib/hacks/display-grid.js +41 -0
  59. package/templates/facebook/node_modules/autoprefixer/lib/hacks/filter-value.js +31 -0
  60. package/templates/facebook/node_modules/autoprefixer/lib/hacks/filter.js +33 -0
  61. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-basis.js +72 -0
  62. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-direction.js +108 -0
  63. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-flow.js +81 -0
  64. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-grow.js +57 -0
  65. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-shrink.js +72 -0
  66. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-spec.js +22 -0
  67. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-wrap.js +40 -0
  68. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex.js +85 -0
  69. package/templates/facebook/node_modules/autoprefixer/lib/hacks/fullscreen.js +40 -0
  70. package/templates/facebook/node_modules/autoprefixer/lib/hacks/gradient.js +519 -0
  71. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-area.js +52 -0
  72. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-column-align.js +48 -0
  73. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-end.js +62 -0
  74. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-row-align.js +48 -0
  75. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-row-column.js +52 -0
  76. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js +149 -0
  77. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-start.js +55 -0
  78. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-template-areas.js +101 -0
  79. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-template.js +90 -0
  80. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-utils.js +1123 -0
  81. package/templates/facebook/node_modules/autoprefixer/lib/hacks/image-rendering.js +71 -0
  82. package/templates/facebook/node_modules/autoprefixer/lib/hacks/image-set.js +38 -0
  83. package/templates/facebook/node_modules/autoprefixer/lib/hacks/inline-logical.js +40 -0
  84. package/templates/facebook/node_modules/autoprefixer/lib/hacks/intrinsic.js +74 -0
  85. package/templates/facebook/node_modules/autoprefixer/lib/hacks/justify-content.js +85 -0
  86. package/templates/facebook/node_modules/autoprefixer/lib/hacks/mask-border.js +46 -0
  87. package/templates/facebook/node_modules/autoprefixer/lib/hacks/mask-composite.js +104 -0
  88. package/templates/facebook/node_modules/autoprefixer/lib/hacks/order.js +72 -0
  89. package/templates/facebook/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js +54 -0
  90. package/templates/facebook/node_modules/autoprefixer/lib/hacks/pixelated.js +58 -0
  91. package/templates/facebook/node_modules/autoprefixer/lib/hacks/place-self.js +55 -0
  92. package/templates/facebook/node_modules/autoprefixer/lib/hacks/placeholder-shown.js +36 -0
  93. package/templates/facebook/node_modules/autoprefixer/lib/hacks/placeholder.js +56 -0
  94. package/templates/facebook/node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js +38 -0
  95. package/templates/facebook/node_modules/autoprefixer/lib/hacks/text-decoration.js +36 -0
  96. package/templates/facebook/node_modules/autoprefixer/lib/hacks/text-emphasis-position.js +33 -0
  97. package/templates/facebook/node_modules/autoprefixer/lib/hacks/transform-decl.js +105 -0
  98. package/templates/facebook/node_modules/autoprefixer/lib/hacks/user-select.js +36 -0
  99. package/templates/facebook/node_modules/autoprefixer/lib/hacks/writing-mode.js +59 -0
  100. package/templates/facebook/node_modules/autoprefixer/lib/info.js +149 -0
  101. package/templates/facebook/node_modules/autoprefixer/lib/old-selector.js +88 -0
  102. package/templates/facebook/node_modules/autoprefixer/lib/old-value.js +30 -0
  103. package/templates/facebook/node_modules/autoprefixer/lib/prefixer.js +167 -0
  104. package/templates/facebook/node_modules/autoprefixer/lib/prefixes.js +471 -0
  105. package/templates/facebook/node_modules/autoprefixer/lib/processor.js +703 -0
  106. package/templates/facebook/node_modules/autoprefixer/lib/resolution.js +125 -0
  107. package/templates/facebook/node_modules/autoprefixer/lib/selector.js +198 -0
  108. package/templates/facebook/node_modules/autoprefixer/lib/supports.js +346 -0
  109. package/templates/facebook/node_modules/autoprefixer/lib/transition.js +411 -0
  110. package/templates/facebook/node_modules/autoprefixer/lib/utils.js +103 -0
  111. package/templates/facebook/node_modules/autoprefixer/lib/value.js +164 -0
  112. package/templates/facebook/node_modules/autoprefixer/package.json +30 -0
  113. package/templates/facebook/node_modules/hosted-git-info/CHANGELOG.md +185 -0
  114. package/templates/facebook/node_modules/hosted-git-info/LICENSE +13 -0
  115. package/templates/facebook/node_modules/hosted-git-info/README.md +133 -0
  116. package/templates/facebook/node_modules/hosted-git-info/git-host-info.js +154 -0
  117. package/templates/facebook/node_modules/hosted-git-info/git-host.js +110 -0
  118. package/templates/facebook/node_modules/hosted-git-info/index.js +237 -0
  119. package/templates/facebook/node_modules/hosted-git-info/package.json +52 -0
  120. package/templates/facebook/node_modules/known-css-properties/LICENSE +21 -0
  121. package/templates/facebook/node_modules/known-css-properties/README.md +48 -0
  122. package/templates/facebook/node_modules/known-css-properties/data/all.json +1144 -0
  123. package/templates/facebook/node_modules/known-css-properties/index.js +1 -0
  124. package/templates/facebook/node_modules/known-css-properties/package.json +56 -0
  125. package/templates/facebook/node_modules/lru-cache/LICENSE +15 -0
  126. package/templates/facebook/node_modules/lru-cache/README.md +166 -0
  127. package/templates/facebook/node_modules/lru-cache/index.js +334 -0
  128. package/templates/facebook/node_modules/lru-cache/package.json +34 -0
  129. package/templates/facebook/node_modules/meow/index.d.ts +315 -0
  130. package/templates/facebook/node_modules/meow/index.js +236 -0
  131. package/templates/facebook/node_modules/meow/license +9 -0
  132. package/templates/facebook/node_modules/meow/package.json +77 -0
  133. package/templates/facebook/node_modules/meow/readme.md +352 -0
  134. package/templates/facebook/node_modules/normalize-package-data/AUTHORS +4 -0
  135. package/templates/facebook/node_modules/normalize-package-data/LICENSE +15 -0
  136. package/templates/facebook/node_modules/normalize-package-data/README.md +108 -0
  137. package/templates/facebook/node_modules/normalize-package-data/lib/extract_description.js +22 -0
  138. package/templates/facebook/node_modules/normalize-package-data/lib/fixer.js +474 -0
  139. package/templates/facebook/node_modules/normalize-package-data/lib/make_warning.js +22 -0
  140. package/templates/facebook/node_modules/normalize-package-data/lib/normalize.js +48 -0
  141. package/templates/facebook/node_modules/normalize-package-data/lib/safe_format.js +11 -0
  142. package/templates/facebook/node_modules/normalize-package-data/lib/typos.json +25 -0
  143. package/templates/facebook/node_modules/normalize-package-data/lib/warning_messages.json +30 -0
  144. package/templates/facebook/node_modules/normalize-package-data/package.json +41 -0
  145. package/templates/facebook/node_modules/picocolors/LICENSE +15 -0
  146. package/templates/facebook/node_modules/picocolors/README.md +23 -0
  147. package/templates/facebook/node_modules/picocolors/package.json +25 -0
  148. package/templates/facebook/node_modules/picocolors/picocolors.browser.js +4 -0
  149. package/templates/facebook/node_modules/picocolors/picocolors.d.ts +5 -0
  150. package/templates/facebook/node_modules/picocolors/picocolors.js +60 -0
  151. package/templates/facebook/node_modules/picocolors/types.ts +30 -0
  152. package/templates/facebook/node_modules/postcss/LICENSE +20 -0
  153. package/templates/facebook/node_modules/postcss/README.md +43 -0
  154. package/templates/facebook/node_modules/postcss/lib/at-rule.js +127 -0
  155. package/templates/facebook/node_modules/postcss/lib/comment.js +55 -0
  156. package/templates/facebook/node_modules/postcss/lib/container.js +774 -0
  157. package/templates/facebook/node_modules/postcss/lib/css-syntax-error.js +296 -0
  158. package/templates/facebook/node_modules/postcss/lib/declaration.js +96 -0
  159. package/templates/facebook/node_modules/postcss/lib/input.js +214 -0
  160. package/templates/facebook/node_modules/postcss/lib/lazy-result.js +437 -0
  161. package/templates/facebook/node_modules/postcss/lib/list.js +93 -0
  162. package/templates/facebook/node_modules/postcss/lib/map-generator.js +347 -0
  163. package/templates/facebook/node_modules/postcss/lib/node.js +606 -0
  164. package/templates/facebook/node_modules/postcss/lib/parse.js +40 -0
  165. package/templates/facebook/node_modules/postcss/lib/parser.js +609 -0
  166. package/templates/facebook/node_modules/postcss/lib/postcss.d.ts +1283 -0
  167. package/templates/facebook/node_modules/postcss/lib/postcss.js +285 -0
  168. package/templates/facebook/node_modules/postcss/lib/previous-map.js +172 -0
  169. package/templates/facebook/node_modules/postcss/lib/processor.js +264 -0
  170. package/templates/facebook/node_modules/postcss/lib/result.js +213 -0
  171. package/templates/facebook/node_modules/postcss/lib/root.js +122 -0
  172. package/templates/facebook/node_modules/postcss/lib/rule.js +116 -0
  173. package/templates/facebook/node_modules/postcss/lib/stringifier.js +362 -0
  174. package/templates/facebook/node_modules/postcss/lib/stringify.js +18 -0
  175. package/templates/facebook/node_modules/postcss/lib/terminal-highlight.js +84 -0
  176. package/templates/facebook/node_modules/postcss/lib/tokenize.js +295 -0
  177. package/templates/facebook/node_modules/postcss/lib/vendor.js +53 -0
  178. package/templates/facebook/node_modules/postcss/lib/warn-once.js +17 -0
  179. package/templates/facebook/node_modules/postcss/lib/warning.js +131 -0
  180. package/templates/facebook/node_modules/postcss/package.json +37 -0
  181. package/templates/facebook/node_modules/postcss-html/LICENSE +21 -0
  182. package/templates/facebook/node_modules/postcss-html/README.md +78 -0
  183. package/templates/facebook/node_modules/postcss-html/extract.js +122 -0
  184. package/templates/facebook/node_modules/postcss-html/index.js +5 -0
  185. package/templates/facebook/node_modules/postcss-html/package.json +63 -0
  186. package/templates/facebook/node_modules/postcss-html/template-parse.js +14 -0
  187. package/templates/facebook/node_modules/postcss-html/template-parser.js +9 -0
  188. package/templates/facebook/node_modules/postcss-html/template-safe-parse.js +14 -0
  189. package/templates/facebook/node_modules/postcss-html/template-safe-parser.js +9 -0
  190. package/templates/facebook/node_modules/postcss-html/template-tokenize.js +49 -0
  191. package/templates/facebook/node_modules/postcss-safe-parser/CHANGELOG.md +51 -0
  192. package/templates/facebook/node_modules/postcss-safe-parser/LICENSE +20 -0
  193. package/templates/facebook/node_modules/postcss-safe-parser/README.md +33 -0
  194. package/templates/facebook/node_modules/postcss-safe-parser/lib/safe-parse.js +13 -0
  195. package/templates/facebook/node_modules/postcss-safe-parser/lib/safe-parser.js +115 -0
  196. package/templates/facebook/node_modules/postcss-safe-parser/package.json +102 -0
  197. package/templates/facebook/node_modules/postcss-syntax/LICENSE +21 -0
  198. package/templates/facebook/node_modules/postcss-syntax/README.md +85 -0
  199. package/templates/facebook/node_modules/postcss-syntax/document.js +41 -0
  200. package/templates/facebook/node_modules/postcss-syntax/get-lang.js +111 -0
  201. package/templates/facebook/node_modules/postcss-syntax/get-syntax.js +63 -0
  202. package/templates/facebook/node_modules/postcss-syntax/index.js +26 -0
  203. package/templates/facebook/node_modules/postcss-syntax/load-syntax.js +23 -0
  204. package/templates/facebook/node_modules/postcss-syntax/normal-opts.js +11 -0
  205. package/templates/facebook/node_modules/postcss-syntax/package.json +102 -0
  206. package/templates/facebook/node_modules/postcss-syntax/parse-style.js +127 -0
  207. package/templates/facebook/node_modules/postcss-syntax/parse.js +34 -0
  208. package/templates/facebook/node_modules/postcss-syntax/parser.js +18 -0
  209. package/templates/facebook/node_modules/postcss-syntax/patch-postcss.js +77 -0
  210. package/templates/facebook/node_modules/postcss-syntax/processor.js +29 -0
  211. package/templates/facebook/node_modules/postcss-syntax/stringify.js +20 -0
  212. package/templates/facebook/node_modules/postcss-syntax/syntax.js +37 -0
  213. package/templates/facebook/node_modules/remark/index.js +7 -0
  214. package/templates/facebook/node_modules/remark/package.json +46 -0
  215. package/templates/facebook/node_modules/remark/readme.md +260 -0
  216. package/templates/facebook/node_modules/remark/types/index.d.ts +19 -0
  217. package/templates/facebook/node_modules/remark-parse/index.js +24 -0
  218. package/templates/facebook/node_modules/remark-parse/package.json +46 -0
  219. package/templates/facebook/node_modules/remark-parse/readme.md +197 -0
  220. package/templates/facebook/node_modules/remark-parse/types/index.d.ts +14 -0
  221. package/templates/facebook/node_modules/remark-stringify/index.js +23 -0
  222. package/templates/facebook/node_modules/remark-stringify/license +22 -0
  223. package/templates/facebook/node_modules/remark-stringify/package.json +46 -0
  224. package/templates/facebook/node_modules/remark-stringify/readme.md +217 -0
  225. package/templates/facebook/node_modules/remark-stringify/types/index.d.ts +14 -0
  226. package/templates/facebook/node_modules/stylelint/CHANGELOG.md +1701 -0
  227. package/templates/facebook/node_modules/stylelint/CONTRIBUTING.md +81 -0
  228. package/templates/facebook/node_modules/stylelint/LICENSE +20 -0
  229. package/templates/facebook/node_modules/stylelint/README.md +48 -0
  230. package/templates/facebook/node_modules/stylelint/bin/stylelint.js +8 -0
  231. package/templates/facebook/node_modules/stylelint/docs/about/linting.md +34 -0
  232. package/templates/facebook/node_modules/stylelint/docs/about/semantic-versioning.md +37 -0
  233. package/templates/facebook/node_modules/stylelint/docs/about/syntaxes.md +18 -0
  234. package/templates/facebook/node_modules/stylelint/docs/about/vision.md +63 -0
  235. package/templates/facebook/node_modules/stylelint/docs/developer-guide/formatters.md +77 -0
  236. package/templates/facebook/node_modules/stylelint/docs/developer-guide/plugins.md +324 -0
  237. package/templates/facebook/node_modules/stylelint/docs/developer-guide/processors.md +28 -0
  238. package/templates/facebook/node_modules/stylelint/docs/developer-guide/rules.md +244 -0
  239. package/templates/facebook/node_modules/stylelint/docs/developer-guide/syntaxes.md +35 -0
  240. package/templates/facebook/node_modules/stylelint/docs/developer-guide/system-tests.md +23 -0
  241. package/templates/facebook/node_modules/stylelint/docs/maintainer-guide/issues.md +94 -0
  242. package/templates/facebook/node_modules/stylelint/docs/maintainer-guide/pull-requests.md +33 -0
  243. package/templates/facebook/node_modules/stylelint/docs/maintainer-guide/releases.md +47 -0
  244. package/templates/facebook/node_modules/stylelint/docs/toc.md +37 -0
  245. package/templates/facebook/node_modules/stylelint/docs/user-guide/configure.md +420 -0
  246. package/templates/facebook/node_modules/stylelint/docs/user-guide/errors.md +29 -0
  247. package/templates/facebook/node_modules/stylelint/docs/user-guide/get-started.md +55 -0
  248. package/templates/facebook/node_modules/stylelint/docs/user-guide/ignore-code.md +88 -0
  249. package/templates/facebook/node_modules/stylelint/docs/user-guide/integrations/editor.md +12 -0
  250. package/templates/facebook/node_modules/stylelint/docs/user-guide/integrations/other.md +19 -0
  251. package/templates/facebook/node_modules/stylelint/docs/user-guide/integrations/task-runner.md +10 -0
  252. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/about.md +203 -0
  253. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/combine.md +360 -0
  254. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/list.md +399 -0
  255. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/regex.md +29 -0
  256. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/cli.md +195 -0
  257. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/node-api.md +169 -0
  258. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/options.md +208 -0
  259. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/postcss-plugin.md +84 -0
  260. package/templates/facebook/node_modules/stylelint/lib/assignDisabledRanges.js +407 -0
  261. package/templates/facebook/node_modules/stylelint/lib/augmentConfig.js +359 -0
  262. package/templates/facebook/node_modules/stylelint/lib/cli.js +544 -0
  263. package/templates/facebook/node_modules/stylelint/lib/createPartialStylelintResult.js +103 -0
  264. package/templates/facebook/node_modules/stylelint/lib/createPlugin.js +15 -0
  265. package/templates/facebook/node_modules/stylelint/lib/createStylelint.js +88 -0
  266. package/templates/facebook/node_modules/stylelint/lib/createStylelintResult.js +39 -0
  267. package/templates/facebook/node_modules/stylelint/lib/descriptionlessDisables.js +62 -0
  268. package/templates/facebook/node_modules/stylelint/lib/formatters/compactFormatter.js +20 -0
  269. package/templates/facebook/node_modules/stylelint/lib/formatters/index.js +12 -0
  270. package/templates/facebook/node_modules/stylelint/lib/formatters/jsonFormatter.js +20 -0
  271. package/templates/facebook/node_modules/stylelint/lib/formatters/stringFormatter.js +225 -0
  272. package/templates/facebook/node_modules/stylelint/lib/formatters/tapFormatter.js +39 -0
  273. package/templates/facebook/node_modules/stylelint/lib/formatters/unixFormatter.js +26 -0
  274. package/templates/facebook/node_modules/stylelint/lib/formatters/verboseFormatter.js +61 -0
  275. package/templates/facebook/node_modules/stylelint/lib/getConfigForFile.js +61 -0
  276. package/templates/facebook/node_modules/stylelint/lib/getPostcssResult.js +182 -0
  277. package/templates/facebook/node_modules/stylelint/lib/index.js +33 -0
  278. package/templates/facebook/node_modules/stylelint/lib/invalidScopeDisables.js +50 -0
  279. package/templates/facebook/node_modules/stylelint/lib/isPathIgnored.js +48 -0
  280. package/templates/facebook/node_modules/stylelint/lib/lintPostcssResult.js +134 -0
  281. package/templates/facebook/node_modules/stylelint/lib/lintSource.js +133 -0
  282. package/templates/facebook/node_modules/stylelint/lib/needlessDisables.js +110 -0
  283. package/templates/facebook/node_modules/stylelint/lib/normalizeAllRuleSettings.js +41 -0
  284. package/templates/facebook/node_modules/stylelint/lib/normalizeRuleSettings.js +74 -0
  285. package/templates/facebook/node_modules/stylelint/lib/postcssPlugin.js +25 -0
  286. package/templates/facebook/node_modules/stylelint/lib/prepareReturnValue.js +59 -0
  287. package/templates/facebook/node_modules/stylelint/lib/printConfig.js +58 -0
  288. package/templates/facebook/node_modules/stylelint/lib/reference/keywordSets.js +690 -0
  289. package/templates/facebook/node_modules/stylelint/lib/reference/mathFunctions.js +3 -0
  290. package/templates/facebook/node_modules/stylelint/lib/reference/namedColorData.js +152 -0
  291. package/templates/facebook/node_modules/stylelint/lib/reference/propertySets.js +18 -0
  292. package/templates/facebook/node_modules/stylelint/lib/reference/punctuationSets.js +9 -0
  293. package/templates/facebook/node_modules/stylelint/lib/reference/shorthandData.js +143 -0
  294. package/templates/facebook/node_modules/stylelint/lib/reportDisables.js +62 -0
  295. package/templates/facebook/node_modules/stylelint/lib/reportUnknownRuleNames.js +76 -0
  296. package/templates/facebook/node_modules/stylelint/lib/rules/alpha-value-notation/README.md +110 -0
  297. package/templates/facebook/node_modules/stylelint/lib/rules/alpha-value-notation/index.js +160 -0
  298. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-allowed-list/README.md +65 -0
  299. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-allowed-list/index.js +57 -0
  300. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-blacklist/README.md +52 -0
  301. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-blacklist/index.js +64 -0
  302. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-disallowed-list/README.md +50 -0
  303. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-disallowed-list/index.js +57 -0
  304. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-empty-line-before/README.md +421 -0
  305. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-empty-line-before/index.js +161 -0
  306. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-case/README.md +110 -0
  307. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-case/index.js +58 -0
  308. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-newline-after/README.md +108 -0
  309. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-newline-after/index.js +40 -0
  310. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-space-after/README.md +117 -0
  311. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-space-after/index.js +45 -0
  312. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-unknown/README.md +74 -0
  313. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-unknown/index.js +67 -0
  314. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-vendor-prefix/README.md +40 -0
  315. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-vendor-prefix/index.js +58 -0
  316. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-required-list/README.md +53 -0
  317. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-required-list/index.js +65 -0
  318. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-requirelist/README.md +55 -0
  319. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-requirelist/index.js +74 -0
  320. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-newline-after/README.md +63 -0
  321. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-newline-after/index.js +78 -0
  322. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-space-before/README.md +50 -0
  323. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-space-before/index.js +63 -0
  324. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-whitelist/README.md +67 -0
  325. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-whitelist/index.js +64 -0
  326. package/templates/facebook/node_modules/stylelint/lib/rules/atRuleNameSpaceChecker.js +43 -0
  327. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-empty-line-before/README.md +238 -0
  328. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-empty-line-before/index.js +118 -0
  329. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-after/README.md +196 -0
  330. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-after/index.js +137 -0
  331. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-before/README.md +93 -0
  332. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-before/index.js +117 -0
  333. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-after/README.md +179 -0
  334. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-after/index.js +88 -0
  335. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-before/README.md +174 -0
  336. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-before/index.js +96 -0
  337. package/templates/facebook/node_modules/stylelint/lib/rules/block-no-empty/README.md +75 -0
  338. package/templates/facebook/node_modules/stylelint/lib/rules/block-no-empty/index.js +83 -0
  339. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-after/README.md +125 -0
  340. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-after/index.js +145 -0
  341. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-before/README.md +176 -0
  342. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-before/index.js +107 -0
  343. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-after/README.md +174 -0
  344. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-after/index.js +88 -0
  345. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-before/README.md +218 -0
  346. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-before/index.js +124 -0
  347. package/templates/facebook/node_modules/stylelint/lib/rules/color-function-notation/README.md +116 -0
  348. package/templates/facebook/node_modules/stylelint/lib/rules/color-function-notation/index.js +108 -0
  349. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-case/README.md +58 -0
  350. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-case/index.js +82 -0
  351. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-length/README.md +73 -0
  352. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-length/index.js +120 -0
  353. package/templates/facebook/node_modules/stylelint/lib/rules/color-named/README.md +176 -0
  354. package/templates/facebook/node_modules/stylelint/lib/rules/color-named/generateColorFuncs.js +198 -0
  355. package/templates/facebook/node_modules/stylelint/lib/rules/color-named/index.js +169 -0
  356. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-hex/README.md +60 -0
  357. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-hex/index.js +60 -0
  358. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-invalid-hex/README.md +55 -0
  359. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-invalid-hex/index.js +54 -0
  360. package/templates/facebook/node_modules/stylelint/lib/rules/comment-empty-line-before/README.md +195 -0
  361. package/templates/facebook/node_modules/stylelint/lib/rules/comment-empty-line-before/index.js +126 -0
  362. package/templates/facebook/node_modules/stylelint/lib/rules/comment-no-empty/README.md +51 -0
  363. package/templates/facebook/node_modules/stylelint/lib/rules/comment-no-empty/index.js +46 -0
  364. package/templates/facebook/node_modules/stylelint/lib/rules/comment-pattern/README.md +38 -0
  365. package/templates/facebook/node_modules/stylelint/lib/rules/comment-pattern/index.js +48 -0
  366. package/templates/facebook/node_modules/stylelint/lib/rules/comment-whitespace-inside/README.md +99 -0
  367. package/templates/facebook/node_modules/stylelint/lib/rules/comment-whitespace-inside/index.js +117 -0
  368. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-blacklist/README.md +50 -0
  369. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-blacklist/index.js +66 -0
  370. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-disallowed-list/README.md +48 -0
  371. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-disallowed-list/index.js +59 -0
  372. package/templates/facebook/node_modules/stylelint/lib/rules/custom-media-pattern/README.md +36 -0
  373. package/templates/facebook/node_modules/stylelint/lib/rules/custom-media-pattern/index.js +54 -0
  374. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-empty-line-before/README.md +272 -0
  375. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-empty-line-before/index.js +129 -0
  376. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-pattern/README.md +36 -0
  377. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-pattern/index.js +53 -0
  378. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-after/README.md +72 -0
  379. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-after/index.js +82 -0
  380. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-before/README.md +67 -0
  381. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-before/index.js +83 -0
  382. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-custom-properties/README.md +40 -0
  383. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-custom-properties/index.js +61 -0
  384. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-properties/README.md +143 -0
  385. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-properties/index.js +121 -0
  386. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-redundant-longhand-properties/README.md +197 -0
  387. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-redundant-longhand-properties/index.js +99 -0
  388. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-shorthand-property-overrides/README.md +69 -0
  389. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-shorthand-property-overrides/index.js +61 -0
  390. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-after/README.md +141 -0
  391. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-after/index.js +95 -0
  392. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-before/README.md +120 -0
  393. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-before/index.js +62 -0
  394. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-after/README.md +147 -0
  395. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-after/index.js +84 -0
  396. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-before/README.md +130 -0
  397. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-before/index.js +91 -0
  398. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-single-line-max-declarations/README.md +50 -0
  399. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-single-line-max-declarations/index.js +58 -0
  400. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-trailing-semicolon/README.md +108 -0
  401. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-trailing-semicolon/index.js +123 -0
  402. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-newline-after/README.md +78 -0
  403. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-newline-after/index.js +90 -0
  404. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-after/README.md +111 -0
  405. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-after/index.js +63 -0
  406. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-before/README.md +72 -0
  407. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-before/index.js +62 -0
  408. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-empty-line-before/README.md +322 -0
  409. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-empty-line-before/index.js +139 -0
  410. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-no-important/README.md +40 -0
  411. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-no-important/index.js +41 -0
  412. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-allowed-list/README.md +119 -0
  413. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-allowed-list/index.js +94 -0
  414. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-blacklist/README.md +76 -0
  415. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-blacklist/index.js +86 -0
  416. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-disallowed-list/README.md +74 -0
  417. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-disallowed-list/index.js +76 -0
  418. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-whitelist/README.md +87 -0
  419. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-whitelist/index.js +86 -0
  420. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-allowed-list/README.md +86 -0
  421. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-allowed-list/index.js +58 -0
  422. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-blacklist/README.md +107 -0
  423. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-blacklist/index.js +68 -0
  424. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-disallowed-list/README.md +105 -0
  425. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-disallowed-list/index.js +58 -0
  426. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-whitelist/README.md +98 -0
  427. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-whitelist/index.js +68 -0
  428. package/templates/facebook/node_modules/stylelint/lib/rules/declarationBangSpaceChecker.js +43 -0
  429. package/templates/facebook/node_modules/stylelint/lib/rules/declarationColonSpaceChecker.js +48 -0
  430. package/templates/facebook/node_modules/stylelint/lib/rules/findMediaOperator.js +24 -0
  431. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-name-quotes/README.md +163 -0
  432. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-name-quotes/index.js +147 -0
  433. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-duplicate-names/README.md +76 -0
  434. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-duplicate-names/index.js +103 -0
  435. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-missing-generic-family-keyword/README.md +89 -0
  436. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-missing-generic-family-keyword/index.js +97 -0
  437. package/templates/facebook/node_modules/stylelint/lib/rules/font-weight-notation/README.md +94 -0
  438. package/templates/facebook/node_modules/stylelint/lib/rules/font-weight-notation/index.js +154 -0
  439. package/templates/facebook/node_modules/stylelint/lib/rules/function-allowed-list/README.md +73 -0
  440. package/templates/facebook/node_modules/stylelint/lib/rules/function-allowed-list/index.js +66 -0
  441. package/templates/facebook/node_modules/stylelint/lib/rules/function-blacklist/README.md +54 -0
  442. package/templates/facebook/node_modules/stylelint/lib/rules/function-blacklist/index.js +71 -0
  443. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-invalid/README.md +96 -0
  444. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-invalid/index.js +259 -0
  445. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-unspaced-operator/README.md +56 -0
  446. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-unspaced-operator/index.js +138 -0
  447. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-after/README.md +113 -0
  448. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-after/index.js +55 -0
  449. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-before/README.md +129 -0
  450. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-before/index.js +55 -0
  451. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-after/README.md +144 -0
  452. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-after/index.js +56 -0
  453. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-before/README.md +144 -0
  454. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-before/index.js +56 -0
  455. package/templates/facebook/node_modules/stylelint/lib/rules/function-disallowed-list/README.md +52 -0
  456. package/templates/facebook/node_modules/stylelint/lib/rules/function-disallowed-list/index.js +64 -0
  457. package/templates/facebook/node_modules/stylelint/lib/rules/function-linear-gradient-no-nonstandard-direction/README.md +77 -0
  458. package/templates/facebook/node_modules/stylelint/lib/rules/function-linear-gradient-no-nonstandard-direction/index.js +110 -0
  459. package/templates/facebook/node_modules/stylelint/lib/rules/function-max-empty-lines/README.md +78 -0
  460. package/templates/facebook/node_modules/stylelint/lib/rules/function-max-empty-lines/index.js +101 -0
  461. package/templates/facebook/node_modules/stylelint/lib/rules/function-name-case/README.md +181 -0
  462. package/templates/facebook/node_modules/stylelint/lib/rules/function-name-case/index.js +111 -0
  463. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-newline-inside/README.md +144 -0
  464. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-newline-inside/index.js +247 -0
  465. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-space-inside/README.md +140 -0
  466. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-space-inside/index.js +165 -0
  467. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-no-scheme-relative/README.md +50 -0
  468. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-no-scheme-relative/index.js +48 -0
  469. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-quotes/README.md +120 -0
  470. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-quotes/index.js +113 -0
  471. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-allowed-list/README.md +76 -0
  472. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-allowed-list/index.js +66 -0
  473. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-blacklist/README.md +73 -0
  474. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-blacklist/index.js +76 -0
  475. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-disallowed-list/README.md +71 -0
  476. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-disallowed-list/index.js +66 -0
  477. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-whitelist/README.md +78 -0
  478. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-whitelist/index.js +76 -0
  479. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitelist/README.md +75 -0
  480. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitelist/index.js +73 -0
  481. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitespace-after/README.md +80 -0
  482. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitespace-after/index.js +167 -0
  483. package/templates/facebook/node_modules/stylelint/lib/rules/functionCommaSpaceChecker.js +109 -0
  484. package/templates/facebook/node_modules/stylelint/lib/rules/functionCommaSpaceFix.js +34 -0
  485. package/templates/facebook/node_modules/stylelint/lib/rules/hue-degree-notation/README.md +74 -0
  486. package/templates/facebook/node_modules/stylelint/lib/rules/hue-degree-notation/index.js +122 -0
  487. package/templates/facebook/node_modules/stylelint/lib/rules/indentation/README.md +338 -0
  488. package/templates/facebook/node_modules/stylelint/lib/rules/indentation/index.js +615 -0
  489. package/templates/facebook/node_modules/stylelint/lib/rules/index.js +401 -0
  490. package/templates/facebook/node_modules/stylelint/lib/rules/keyframe-declaration-no-important/README.md +52 -0
  491. package/templates/facebook/node_modules/stylelint/lib/rules/keyframe-declaration-no-important/index.js +43 -0
  492. package/templates/facebook/node_modules/stylelint/lib/rules/keyframes-name-pattern/README.md +46 -0
  493. package/templates/facebook/node_modules/stylelint/lib/rules/keyframes-name-pattern/index.js +51 -0
  494. package/templates/facebook/node_modules/stylelint/lib/rules/length-zero-no-unit/README.md +69 -0
  495. package/templates/facebook/node_modules/stylelint/lib/rules/length-zero-no-unit/index.js +163 -0
  496. package/templates/facebook/node_modules/stylelint/lib/rules/linebreaks/README.md +21 -0
  497. package/templates/facebook/node_modules/stylelint/lib/rules/linebreaks/index.js +102 -0
  498. package/templates/facebook/node_modules/stylelint/lib/rules/max-empty-lines/README.md +116 -0
  499. package/templates/facebook/node_modules/stylelint/lib/rules/max-empty-lines/index.js +209 -0
  500. package/templates/facebook/node_modules/stylelint/lib/rules/max-line-length/README.md +151 -0
  501. package/templates/facebook/node_modules/stylelint/lib/rules/max-line-length/index.js +183 -0
  502. package/templates/facebook/node_modules/stylelint/lib/rules/max-nesting-depth/README.md +355 -0
  503. package/templates/facebook/node_modules/stylelint/lib/rules/max-nesting-depth/index.js +114 -0
  504. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-after/README.md +72 -0
  505. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-after/index.js +82 -0
  506. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-before/README.md +72 -0
  507. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-before/index.js +82 -0
  508. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-allowed-list/README.md +64 -0
  509. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-allowed-list/index.js +76 -0
  510. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-blacklist/README.md +66 -0
  511. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-blacklist/index.js +86 -0
  512. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-case/README.md +108 -0
  513. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-case/index.js +96 -0
  514. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-disallowed-list/README.md +64 -0
  515. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-disallowed-list/index.js +76 -0
  516. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-unknown/README.md +94 -0
  517. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-unknown/index.js +88 -0
  518. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-vendor-prefix/README.md +47 -0
  519. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-vendor-prefix/index.js +58 -0
  520. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-allowed-list/README.md +84 -0
  521. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-allowed-list/index.js +89 -0
  522. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-whitelist/README.md +86 -0
  523. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-whitelist/index.js +99 -0
  524. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-whitelist/README.md +66 -0
  525. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-whitelist/index.js +86 -0
  526. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-parentheses-space-inside/README.md +62 -0
  527. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-parentheses-space-inside/index.js +106 -0
  528. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-after/README.md +72 -0
  529. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-after/index.js +92 -0
  530. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-before/README.md +72 -0
  531. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-before/index.js +92 -0
  532. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-after/README.md +113 -0
  533. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-after/index.js +88 -0
  534. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-before/README.md +111 -0
  535. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-before/index.js +42 -0
  536. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-after/README.md +136 -0
  537. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-after/index.js +84 -0
  538. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-before/README.md +136 -0
  539. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-before/index.js +84 -0
  540. package/templates/facebook/node_modules/stylelint/lib/rules/mediaFeatureColonSpaceChecker.js +39 -0
  541. package/templates/facebook/node_modules/stylelint/lib/rules/mediaQueryListCommaWhitespaceChecker.js +54 -0
  542. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/README.md +50 -0
  543. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/index.js +80 -0
  544. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/utils/findNotContiguousOrRectangular.js +61 -0
  545. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/utils/isRectangular.js +12 -0
  546. package/templates/facebook/node_modules/stylelint/lib/rules/no-descending-specificity/README.md +166 -0
  547. package/templates/facebook/node_modules/stylelint/lib/rules/no-descending-specificity/index.js +146 -0
  548. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-at-import-rules/README.md +56 -0
  549. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-at-import-rules/index.js +68 -0
  550. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-selectors/README.md +136 -0
  551. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-selectors/index.js +149 -0
  552. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-first-line/README.md +34 -0
  553. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-first-line/index.js +49 -0
  554. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-source/README.md +45 -0
  555. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-source/index.js +40 -0
  556. package/templates/facebook/node_modules/stylelint/lib/rules/no-eol-whitespace/README.md +79 -0
  557. package/templates/facebook/node_modules/stylelint/lib/rules/no-eol-whitespace/index.js +260 -0
  558. package/templates/facebook/node_modules/stylelint/lib/rules/no-extra-semicolons/README.md +78 -0
  559. package/templates/facebook/node_modules/stylelint/lib/rules/no-extra-semicolons/index.js +243 -0
  560. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-double-slash-comments/README.md +54 -0
  561. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-double-slash-comments/index.js +51 -0
  562. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-position-at-import-rule/README.md +51 -0
  563. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-position-at-import-rule/index.js +58 -0
  564. package/templates/facebook/node_modules/stylelint/lib/rules/no-irregular-whitespace/README.md +57 -0
  565. package/templates/facebook/node_modules/stylelint/lib/rules/no-irregular-whitespace/index.js +134 -0
  566. package/templates/facebook/node_modules/stylelint/lib/rules/no-missing-end-of-source-newline/README.md +34 -0
  567. package/templates/facebook/node_modules/stylelint/lib/rules/no-missing-end-of-source-newline/index.js +52 -0
  568. package/templates/facebook/node_modules/stylelint/lib/rules/no-unknown-animations/README.md +76 -0
  569. package/templates/facebook/node_modules/stylelint/lib/rules/no-unknown-animations/index.js +64 -0
  570. package/templates/facebook/node_modules/stylelint/lib/rules/number-leading-zero/README.md +74 -0
  571. package/templates/facebook/node_modules/stylelint/lib/rules/number-leading-zero/index.js +163 -0
  572. package/templates/facebook/node_modules/stylelint/lib/rules/number-max-precision/README.md +107 -0
  573. package/templates/facebook/node_modules/stylelint/lib/rules/number-max-precision/index.js +101 -0
  574. package/templates/facebook/node_modules/stylelint/lib/rules/number-no-trailing-zeros/README.md +40 -0
  575. package/templates/facebook/node_modules/stylelint/lib/rules/number-no-trailing-zeros/index.js +119 -0
  576. package/templates/facebook/node_modules/stylelint/lib/rules/property-allowed-list/README.md +75 -0
  577. package/templates/facebook/node_modules/stylelint/lib/rules/property-allowed-list/index.js +60 -0
  578. package/templates/facebook/node_modules/stylelint/lib/rules/property-blacklist/README.md +66 -0
  579. package/templates/facebook/node_modules/stylelint/lib/rules/property-blacklist/index.js +67 -0
  580. package/templates/facebook/node_modules/stylelint/lib/rules/property-case/README.md +168 -0
  581. package/templates/facebook/node_modules/stylelint/lib/rules/property-case/index.js +63 -0
  582. package/templates/facebook/node_modules/stylelint/lib/rules/property-disallowed-list/README.md +64 -0
  583. package/templates/facebook/node_modules/stylelint/lib/rules/property-disallowed-list/index.js +60 -0
  584. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-unknown/README.md +187 -0
  585. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-unknown/index.js +107 -0
  586. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-vendor-prefix/README.md +70 -0
  587. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-vendor-prefix/index.js +76 -0
  588. package/templates/facebook/node_modules/stylelint/lib/rules/property-whitelist/README.md +77 -0
  589. package/templates/facebook/node_modules/stylelint/lib/rules/property-whitelist/index.js +67 -0
  590. package/templates/facebook/node_modules/stylelint/lib/rules/rangeContextNodeParser.js +65 -0
  591. package/templates/facebook/node_modules/stylelint/lib/rules/rule-empty-line-before/README.md +326 -0
  592. package/templates/facebook/node_modules/stylelint/lib/rules/rule-empty-line-before/index.js +145 -0
  593. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-brackets-space-inside/README.md +112 -0
  594. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-brackets-space-inside/index.js +182 -0
  595. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-name-disallowed-list/README.md +54 -0
  596. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-name-disallowed-list/index.js +66 -0
  597. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-allowed-list/README.md +54 -0
  598. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-allowed-list/index.js +65 -0
  599. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-blacklist/README.md +46 -0
  600. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-blacklist/index.js +75 -0
  601. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-disallowed-list/README.md +44 -0
  602. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-disallowed-list/index.js +65 -0
  603. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-after/README.md +162 -0
  604. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-after/index.js +89 -0
  605. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-before/README.md +162 -0
  606. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-before/index.js +73 -0
  607. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-whitelist/README.md +56 -0
  608. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-whitelist/index.js +75 -0
  609. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-quotes/README.md +102 -0
  610. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-quotes/index.js +94 -0
  611. package/templates/facebook/node_modules/stylelint/lib/rules/selector-class-pattern/README.md +100 -0
  612. package/templates/facebook/node_modules/stylelint/lib/rules/selector-class-pattern/index.js +121 -0
  613. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-allowed-list/README.md +54 -0
  614. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-allowed-list/index.js +70 -0
  615. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-blacklist/README.md +56 -0
  616. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-blacklist/index.js +80 -0
  617. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-disallowed-list/README.md +54 -0
  618. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-disallowed-list/index.js +70 -0
  619. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-after/README.md +78 -0
  620. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-after/index.js +57 -0
  621. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-before/README.md +78 -0
  622. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-before/index.js +57 -0
  623. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-whitelist/README.md +56 -0
  624. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-whitelist/index.js +80 -0
  625. package/templates/facebook/node_modules/stylelint/lib/rules/selector-descendant-combinator-no-non-space/README.md +40 -0
  626. package/templates/facebook/node_modules/stylelint/lib/rules/selector-descendant-combinator-no-non-space/index.js +86 -0
  627. package/templates/facebook/node_modules/stylelint/lib/rules/selector-disallowed-list/README.md +68 -0
  628. package/templates/facebook/node_modules/stylelint/lib/rules/selector-disallowed-list/index.js +56 -0
  629. package/templates/facebook/node_modules/stylelint/lib/rules/selector-id-pattern/README.md +63 -0
  630. package/templates/facebook/node_modules/stylelint/lib/rules/selector-id-pattern/index.js +67 -0
  631. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-after/README.md +120 -0
  632. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-after/index.js +117 -0
  633. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-before/README.md +112 -0
  634. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-before/index.js +91 -0
  635. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-after/README.md +110 -0
  636. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-after/index.js +83 -0
  637. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-before/README.md +110 -0
  638. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-before/index.js +83 -0
  639. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-attribute/README.md +113 -0
  640. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-attribute/index.js +96 -0
  641. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-class/README.md +58 -0
  642. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-class/index.js +71 -0
  643. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-combinators/README.md +72 -0
  644. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-combinators/index.js +72 -0
  645. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-compound-selectors/README.md +59 -0
  646. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-compound-selectors/index.js +79 -0
  647. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-empty-lines/README.md +103 -0
  648. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-empty-lines/index.js +65 -0
  649. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-id/README.md +105 -0
  650. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-id/index.js +95 -0
  651. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-pseudo-class/README.md +50 -0
  652. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-pseudo-class/index.js +85 -0
  653. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-specificity/README.md +138 -0
  654. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-specificity/index.js +182 -0
  655. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-type/README.md +179 -0
  656. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-type/index.js +176 -0
  657. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-universal/README.md +76 -0
  658. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-universal/index.js +84 -0
  659. package/templates/facebook/node_modules/stylelint/lib/rules/selector-nested-pattern/README.md +77 -0
  660. package/templates/facebook/node_modules/stylelint/lib/rules/selector-nested-pattern/index.js +58 -0
  661. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-qualifying-type/README.md +105 -0
  662. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-qualifying-type/index.js +134 -0
  663. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-vendor-prefix/README.md +67 -0
  664. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-vendor-prefix/index.js +75 -0
  665. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-allowed-list/README.md +53 -0
  666. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-allowed-list/index.js +74 -0
  667. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-blacklist/README.md +55 -0
  668. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-blacklist/index.js +85 -0
  669. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-case/README.md +108 -0
  670. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-case/index.js +97 -0
  671. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-disallowed-list/README.md +53 -0
  672. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-disallowed-list/index.js +75 -0
  673. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-no-unknown/README.md +84 -0
  674. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-no-unknown/index.js +157 -0
  675. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-parentheses-space-inside/README.md +62 -0
  676. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-parentheses-space-inside/index.js +141 -0
  677. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-whitelist/README.md +55 -0
  678. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-whitelist/index.js +84 -0
  679. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-allowed-list/README.md +54 -0
  680. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-allowed-list/index.js +74 -0
  681. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-blacklist/README.md +56 -0
  682. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-blacklist/index.js +84 -0
  683. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-case/README.md +128 -0
  684. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-case/index.js +84 -0
  685. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-colon-notation/README.md +136 -0
  686. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-colon-notation/index.js +94 -0
  687. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-disallowed-list/README.md +54 -0
  688. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-disallowed-list/index.js +74 -0
  689. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-no-unknown/README.md +84 -0
  690. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-no-unknown/index.js +92 -0
  691. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-whitelist/README.md +56 -0
  692. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-whitelist/index.js +84 -0
  693. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-case/README.md +91 -0
  694. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-case/index.js +107 -0
  695. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-no-unknown/README.md +140 -0
  696. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-no-unknown/index.js +115 -0
  697. package/templates/facebook/node_modules/stylelint/lib/rules/selectorAttributeOperatorSpaceChecker.js +74 -0
  698. package/templates/facebook/node_modules/stylelint/lib/rules/selectorCombinatorSpaceChecker.js +87 -0
  699. package/templates/facebook/node_modules/stylelint/lib/rules/selectorListCommaWhitespaceChecker.js +48 -0
  700. package/templates/facebook/node_modules/stylelint/lib/rules/shorthand-property-no-redundant-values/README.md +75 -0
  701. package/templates/facebook/node_modules/stylelint/lib/rules/shorthand-property-no-redundant-values/index.js +137 -0
  702. package/templates/facebook/node_modules/stylelint/lib/rules/string-no-newline/README.md +73 -0
  703. package/templates/facebook/node_modules/stylelint/lib/rules/string-no-newline/index.js +115 -0
  704. package/templates/facebook/node_modules/stylelint/lib/rules/string-quotes/README.md +130 -0
  705. package/templates/facebook/node_modules/stylelint/lib/rules/string-quotes/index.js +221 -0
  706. package/templates/facebook/node_modules/stylelint/lib/rules/time-min-milliseconds/README.md +77 -0
  707. package/templates/facebook/node_modules/stylelint/lib/rules/time-min-milliseconds/index.js +142 -0
  708. package/templates/facebook/node_modules/stylelint/lib/rules/unicode-bom/README.md +41 -0
  709. package/templates/facebook/node_modules/stylelint/lib/rules/unicode-bom/index.js +59 -0
  710. package/templates/facebook/node_modules/stylelint/lib/rules/unit-allowed-list/README.md +115 -0
  711. package/templates/facebook/node_modules/stylelint/lib/rules/unit-allowed-list/index.js +85 -0
  712. package/templates/facebook/node_modules/stylelint/lib/rules/unit-blacklist/README.md +161 -0
  713. package/templates/facebook/node_modules/stylelint/lib/rules/unit-blacklist/index.js +132 -0
  714. package/templates/facebook/node_modules/stylelint/lib/rules/unit-case/README.md +126 -0
  715. package/templates/facebook/node_modules/stylelint/lib/rules/unit-case/index.js +114 -0
  716. package/templates/facebook/node_modules/stylelint/lib/rules/unit-disallowed-list/README.md +159 -0
  717. package/templates/facebook/node_modules/stylelint/lib/rules/unit-disallowed-list/index.js +125 -0
  718. package/templates/facebook/node_modules/stylelint/lib/rules/unit-no-unknown/README.md +138 -0
  719. package/templates/facebook/node_modules/stylelint/lib/rules/unit-no-unknown/index.js +158 -0
  720. package/templates/facebook/node_modules/stylelint/lib/rules/unit-whitelist/README.md +117 -0
  721. package/templates/facebook/node_modules/stylelint/lib/rules/unit-whitelist/index.js +92 -0
  722. package/templates/facebook/node_modules/stylelint/lib/rules/value-keyword-case/README.md +320 -0
  723. package/templates/facebook/node_modules/stylelint/lib/rules/value-keyword-case/index.js +236 -0
  724. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-after/README.md +102 -0
  725. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-after/index.js +100 -0
  726. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-before/README.md +100 -0
  727. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-before/index.js +42 -0
  728. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-after/README.md +136 -0
  729. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-after/index.js +86 -0
  730. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-before/README.md +136 -0
  731. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-before/index.js +86 -0
  732. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-max-empty-lines/README.md +121 -0
  733. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-max-empty-lines/index.js +60 -0
  734. package/templates/facebook/node_modules/stylelint/lib/rules/value-no-vendor-prefix/README.md +74 -0
  735. package/templates/facebook/node_modules/stylelint/lib/rules/value-no-vendor-prefix/index.js +90 -0
  736. package/templates/facebook/node_modules/stylelint/lib/rules/valueListCommaWhitespaceChecker.js +57 -0
  737. package/templates/facebook/node_modules/stylelint/lib/standalone.js +334 -0
  738. package/templates/facebook/node_modules/stylelint/lib/syntaxes/index.js +16 -0
  739. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-css-in-js.js +3 -0
  740. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-html.js +8 -0
  741. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-less.js +3 -0
  742. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-markdown.js +8 -0
  743. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-sass.js +3 -0
  744. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-scss.js +3 -0
  745. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-sugarss.js +3 -0
  746. package/templates/facebook/node_modules/stylelint/lib/utils/FileCache.js +68 -0
  747. package/templates/facebook/node_modules/stylelint/lib/utils/addEmptyLineAfter.js +30 -0
  748. package/templates/facebook/node_modules/stylelint/lib/utils/addEmptyLineBefore.js +26 -0
  749. package/templates/facebook/node_modules/stylelint/lib/utils/atRuleParamIndex.js +16 -0
  750. package/templates/facebook/node_modules/stylelint/lib/utils/beforeBlockString.js +54 -0
  751. package/templates/facebook/node_modules/stylelint/lib/utils/blockString.js +25 -0
  752. package/templates/facebook/node_modules/stylelint/lib/utils/blurComments.js +10 -0
  753. package/templates/facebook/node_modules/stylelint/lib/utils/blurFunctionArguments.js +53 -0
  754. package/templates/facebook/node_modules/stylelint/lib/utils/blurInterpolation.js +10 -0
  755. package/templates/facebook/node_modules/stylelint/lib/utils/checkAgainstRule.js +52 -0
  756. package/templates/facebook/node_modules/stylelint/lib/utils/checkInvalidCLIOptions.js +92 -0
  757. package/templates/facebook/node_modules/stylelint/lib/utils/configurationError.js +15 -0
  758. package/templates/facebook/node_modules/stylelint/lib/utils/containsString.js +56 -0
  759. package/templates/facebook/node_modules/stylelint/lib/utils/declarationValueIndex.js +26 -0
  760. package/templates/facebook/node_modules/stylelint/lib/utils/eachDeclarationBlock.js +59 -0
  761. package/templates/facebook/node_modules/stylelint/lib/utils/filterFilePaths.js +19 -0
  762. package/templates/facebook/node_modules/stylelint/lib/utils/findAnimationName.js +69 -0
  763. package/templates/facebook/node_modules/stylelint/lib/utils/findAtRuleContext.js +23 -0
  764. package/templates/facebook/node_modules/stylelint/lib/utils/findFontFamily.js +128 -0
  765. package/templates/facebook/node_modules/stylelint/lib/utils/findListStyleType.js +60 -0
  766. package/templates/facebook/node_modules/stylelint/lib/utils/functionArgumentsSearch.js +41 -0
  767. package/templates/facebook/node_modules/stylelint/lib/utils/getAtRuleParams.js +11 -0
  768. package/templates/facebook/node_modules/stylelint/lib/utils/getCacheFile.js +52 -0
  769. package/templates/facebook/node_modules/stylelint/lib/utils/getDeclarationValue.js +11 -0
  770. package/templates/facebook/node_modules/stylelint/lib/utils/getFileIgnorer.js +34 -0
  771. package/templates/facebook/node_modules/stylelint/lib/utils/getFormatterOptionsText.js +19 -0
  772. package/templates/facebook/node_modules/stylelint/lib/utils/getModulePath.js +31 -0
  773. package/templates/facebook/node_modules/stylelint/lib/utils/getNextNonSharedLineCommentNode.js +38 -0
  774. package/templates/facebook/node_modules/stylelint/lib/utils/getOsEol.js +11 -0
  775. package/templates/facebook/node_modules/stylelint/lib/utils/getPreviousNonSharedLineCommentNode.js +40 -0
  776. package/templates/facebook/node_modules/stylelint/lib/utils/getRuleSelector.js +13 -0
  777. package/templates/facebook/node_modules/stylelint/lib/utils/getSchemeFromUrl.js +39 -0
  778. package/templates/facebook/node_modules/stylelint/lib/utils/getUnitFromValueNode.js +49 -0
  779. package/templates/facebook/node_modules/stylelint/lib/utils/hasBlock.js +11 -0
  780. package/templates/facebook/node_modules/stylelint/lib/utils/hasEmptyBlock.js +13 -0
  781. package/templates/facebook/node_modules/stylelint/lib/utils/hasEmptyLine.js +14 -0
  782. package/templates/facebook/node_modules/stylelint/lib/utils/hasInterpolation.js +26 -0
  783. package/templates/facebook/node_modules/stylelint/lib/utils/hasLessInterpolation.js +11 -0
  784. package/templates/facebook/node_modules/stylelint/lib/utils/hasPsvInterpolation.js +10 -0
  785. package/templates/facebook/node_modules/stylelint/lib/utils/hasScssInterpolation.js +10 -0
  786. package/templates/facebook/node_modules/stylelint/lib/utils/hasTplInterpolation.js +11 -0
  787. package/templates/facebook/node_modules/stylelint/lib/utils/hash.js +12 -0
  788. package/templates/facebook/node_modules/stylelint/lib/utils/isAfterComment.js +16 -0
  789. package/templates/facebook/node_modules/stylelint/lib/utils/isAfterSingleLineComment.js +22 -0
  790. package/templates/facebook/node_modules/stylelint/lib/utils/isAfterStandardPropertyDeclaration.js +20 -0
  791. package/templates/facebook/node_modules/stylelint/lib/utils/isAutoprefixable.js +86 -0
  792. package/templates/facebook/node_modules/stylelint/lib/utils/isBlocklessAtRuleAfterBlocklessAtRule.js +22 -0
  793. package/templates/facebook/node_modules/stylelint/lib/utils/isBlocklessAtRuleAfterSameNameBlocklessAtRule.js +19 -0
  794. package/templates/facebook/node_modules/stylelint/lib/utils/isContextFunctionalPseudoClass.js +23 -0
  795. package/templates/facebook/node_modules/stylelint/lib/utils/isCounterIncrementCustomIdentValue.js +21 -0
  796. package/templates/facebook/node_modules/stylelint/lib/utils/isCounterResetCustomIdentValue.js +21 -0
  797. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomElement.js +46 -0
  798. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomMediaQuery.js +10 -0
  799. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomProperty.js +10 -0
  800. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomPropertySet.js +18 -0
  801. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomSelector.js +11 -0
  802. package/templates/facebook/node_modules/stylelint/lib/utils/isFirstNested.js +67 -0
  803. package/templates/facebook/node_modules/stylelint/lib/utils/isFirstNodeOfRoot.js +15 -0
  804. package/templates/facebook/node_modules/stylelint/lib/utils/isKeyframeRule.js +13 -0
  805. package/templates/facebook/node_modules/stylelint/lib/utils/isKeyframeSelector.js +22 -0
  806. package/templates/facebook/node_modules/stylelint/lib/utils/isLessVariable.js +14 -0
  807. package/templates/facebook/node_modules/stylelint/lib/utils/isMap.js +44 -0
  808. package/templates/facebook/node_modules/stylelint/lib/utils/isMathFunction.js +13 -0
  809. package/templates/facebook/node_modules/stylelint/lib/utils/isNonNegativeInteger.js +17 -0
  810. package/templates/facebook/node_modules/stylelint/lib/utils/isNumbery.js +13 -0
  811. package/templates/facebook/node_modules/stylelint/lib/utils/isOnlyWhitespace.js +22 -0
  812. package/templates/facebook/node_modules/stylelint/lib/utils/isRangeContextMediaFeature.js +11 -0
  813. package/templates/facebook/node_modules/stylelint/lib/utils/isScssVariable.js +21 -0
  814. package/templates/facebook/node_modules/stylelint/lib/utils/isSharedLineComment.js +53 -0
  815. package/templates/facebook/node_modules/stylelint/lib/utils/isSingleLineString.js +12 -0
  816. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxAtRule.js +29 -0
  817. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxCombinator.js +34 -0
  818. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxDeclaration.js +61 -0
  819. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxFunction.js +16 -0
  820. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxMathFunction.js +21 -0
  821. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxMediaFeature.js +26 -0
  822. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxMediaFeatureName.js +16 -0
  823. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxProperty.js +34 -0
  824. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxRule.js +69 -0
  825. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxSelector.js +38 -0
  826. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxTypeSelector.js +53 -0
  827. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxUrl.js +48 -0
  828. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxValue.js +47 -0
  829. package/templates/facebook/node_modules/stylelint/lib/utils/isValidFontSize.js +38 -0
  830. package/templates/facebook/node_modules/stylelint/lib/utils/isValidHex.js +11 -0
  831. package/templates/facebook/node_modules/stylelint/lib/utils/isVariable.js +11 -0
  832. package/templates/facebook/node_modules/stylelint/lib/utils/isWhitespace.js +11 -0
  833. package/templates/facebook/node_modules/stylelint/lib/utils/matchesStringOrRegExp.js +85 -0
  834. package/templates/facebook/node_modules/stylelint/lib/utils/nextNonCommentNode.js +20 -0
  835. package/templates/facebook/node_modules/stylelint/lib/utils/noFilesFoundError.js +20 -0
  836. package/templates/facebook/node_modules/stylelint/lib/utils/nodeContextLookup.js +43 -0
  837. package/templates/facebook/node_modules/stylelint/lib/utils/optionsMatches.js +22 -0
  838. package/templates/facebook/node_modules/stylelint/lib/utils/parseCalcExpression/index.js +15 -0
  839. package/templates/facebook/node_modules/stylelint/lib/utils/parseCalcExpression/parser.jison +172 -0
  840. package/templates/facebook/node_modules/stylelint/lib/utils/parseCalcExpression/parser.js +3929 -0
  841. package/templates/facebook/node_modules/stylelint/lib/utils/parseSelector.js +18 -0
  842. package/templates/facebook/node_modules/stylelint/lib/utils/putIfAbsent.js +22 -0
  843. package/templates/facebook/node_modules/stylelint/lib/utils/rawNodeString.js +20 -0
  844. package/templates/facebook/node_modules/stylelint/lib/utils/removeEmptyLinesAfter.js +15 -0
  845. package/templates/facebook/node_modules/stylelint/lib/utils/removeEmptyLinesBefore.js +15 -0
  846. package/templates/facebook/node_modules/stylelint/lib/utils/report.js +113 -0
  847. package/templates/facebook/node_modules/stylelint/lib/utils/ruleMessages.js +35 -0
  848. package/templates/facebook/node_modules/stylelint/lib/utils/setAtRuleParams.js +20 -0
  849. package/templates/facebook/node_modules/stylelint/lib/utils/setDeclarationValue.js +23 -0
  850. package/templates/facebook/node_modules/stylelint/lib/utils/transformSelector.js +17 -0
  851. package/templates/facebook/node_modules/stylelint/lib/utils/typeGuards.js +44 -0
  852. package/templates/facebook/node_modules/stylelint/lib/utils/validateObjectWithArrayProps.js +41 -0
  853. package/templates/facebook/node_modules/stylelint/lib/utils/validateOptions.js +169 -0
  854. package/templates/facebook/node_modules/stylelint/lib/utils/vendor.js +45 -0
  855. package/templates/facebook/node_modules/stylelint/lib/utils/whitespaceChecker.js +370 -0
  856. package/templates/facebook/node_modules/stylelint/lib/validateDisableSettings.js +79 -0
  857. package/templates/facebook/node_modules/stylelint/lib/writeOutputFile.js +13 -0
  858. package/templates/facebook/node_modules/stylelint/package.json +197 -0
  859. package/templates/facebook/node_modules/type-fest/index.d.ts +35 -0
  860. package/templates/facebook/node_modules/type-fest/license +9 -0
  861. package/templates/facebook/node_modules/type-fest/package.json +45 -0
  862. package/templates/facebook/node_modules/type-fest/readme.md +648 -0
  863. package/templates/facebook/node_modules/type-fest/source/async-return-type.d.ts +23 -0
  864. package/templates/facebook/node_modules/type-fest/source/asyncify.d.ts +31 -0
  865. package/templates/facebook/node_modules/type-fest/source/basic.d.ts +67 -0
  866. package/templates/facebook/node_modules/type-fest/source/conditional-except.d.ts +43 -0
  867. package/templates/facebook/node_modules/type-fest/source/conditional-keys.d.ts +43 -0
  868. package/templates/facebook/node_modules/type-fest/source/conditional-pick.d.ts +42 -0
  869. package/templates/facebook/node_modules/type-fest/source/entries.d.ts +57 -0
  870. package/templates/facebook/node_modules/type-fest/source/entry.d.ts +60 -0
  871. package/templates/facebook/node_modules/type-fest/source/except.d.ts +22 -0
  872. package/templates/facebook/node_modules/type-fest/source/fixed-length-array.d.ts +38 -0
  873. package/templates/facebook/node_modules/type-fest/source/iterable-element.d.ts +46 -0
  874. package/templates/facebook/node_modules/type-fest/source/literal-union.d.ts +33 -0
  875. package/templates/facebook/node_modules/type-fest/source/merge-exclusive.d.ts +39 -0
  876. package/templates/facebook/node_modules/type-fest/source/merge.d.ts +22 -0
  877. package/templates/facebook/node_modules/type-fest/source/mutable.d.ts +22 -0
  878. package/templates/facebook/node_modules/type-fest/source/opaque.d.ts +65 -0
  879. package/templates/facebook/node_modules/type-fest/source/package-json.d.ts +627 -0
  880. package/templates/facebook/node_modules/type-fest/source/partial-deep.d.ts +72 -0
  881. package/templates/facebook/node_modules/type-fest/source/promisable.d.ts +23 -0
  882. package/templates/facebook/node_modules/type-fest/source/promise-value.d.ts +27 -0
  883. package/templates/facebook/node_modules/type-fest/source/readonly-deep.d.ts +59 -0
  884. package/templates/facebook/node_modules/type-fest/source/require-at-least-one.d.ts +32 -0
  885. package/templates/facebook/node_modules/type-fest/source/require-exactly-one.d.ts +35 -0
  886. package/templates/facebook/node_modules/type-fest/source/set-optional.d.ts +34 -0
  887. package/templates/facebook/node_modules/type-fest/source/set-required.d.ts +34 -0
  888. package/templates/facebook/node_modules/type-fest/source/set-return-type.d.ts +29 -0
  889. package/templates/facebook/node_modules/type-fest/source/stringified.d.ts +21 -0
  890. package/templates/facebook/node_modules/type-fest/source/tsconfig-json.d.ts +872 -0
  891. package/templates/facebook/node_modules/type-fest/source/union-to-intersection.d.ts +58 -0
  892. package/templates/facebook/node_modules/type-fest/source/value-of.d.ts +40 -0
  893. package/templates/facebook/package.json +3 -3
@@ -0,0 +1,774 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _declaration = _interopRequireDefault(require("./declaration"));
7
+
8
+ var _comment = _interopRequireDefault(require("./comment"));
9
+
10
+ var _node = _interopRequireDefault(require("./node"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
+
20
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21
+
22
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
23
+
24
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
25
+
26
+ function cleanSource(nodes) {
27
+ return nodes.map(function (i) {
28
+ if (i.nodes) i.nodes = cleanSource(i.nodes);
29
+ delete i.source;
30
+ return i;
31
+ });
32
+ }
33
+ /**
34
+ * The {@link Root}, {@link AtRule}, and {@link Rule} container nodes
35
+ * inherit some common methods to help work with their children.
36
+ *
37
+ * Note that all containers can store any content. If you write a rule inside
38
+ * a rule, PostCSS will parse it.
39
+ *
40
+ * @extends Node
41
+ * @abstract
42
+ */
43
+
44
+
45
+ var Container = /*#__PURE__*/function (_Node) {
46
+ _inheritsLoose(Container, _Node);
47
+
48
+ function Container() {
49
+ return _Node.apply(this, arguments) || this;
50
+ }
51
+
52
+ var _proto = Container.prototype;
53
+
54
+ _proto.push = function push(child) {
55
+ child.parent = this;
56
+ this.nodes.push(child);
57
+ return this;
58
+ }
59
+ /**
60
+ * Iterates through the container’s immediate children,
61
+ * calling `callback` for each child.
62
+ *
63
+ * Returning `false` in the callback will break iteration.
64
+ *
65
+ * This method only iterates through the container’s immediate children.
66
+ * If you need to recursively iterate through all the container’s descendant
67
+ * nodes, use {@link Container#walk}.
68
+ *
69
+ * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe
70
+ * if you are mutating the array of child nodes during iteration.
71
+ * PostCSS will adjust the current index to match the mutations.
72
+ *
73
+ * @param {childIterator} callback Iterator receives each node and index.
74
+ *
75
+ * @return {false|undefined} Returns `false` if iteration was broke.
76
+ *
77
+ * @example
78
+ * const root = postcss.parse('a { color: black; z-index: 1 }')
79
+ * const rule = root.first
80
+ *
81
+ * for (const decl of rule.nodes) {
82
+ * decl.cloneBefore({ prop: '-webkit-' + decl.prop })
83
+ * // Cycle will be infinite, because cloneBefore moves the current node
84
+ * // to the next index
85
+ * }
86
+ *
87
+ * rule.each(decl => {
88
+ * decl.cloneBefore({ prop: '-webkit-' + decl.prop })
89
+ * // Will be executed only for color and z-index
90
+ * })
91
+ */
92
+ ;
93
+
94
+ _proto.each = function each(callback) {
95
+ if (!this.lastEach) this.lastEach = 0;
96
+ if (!this.indexes) this.indexes = {};
97
+ this.lastEach += 1;
98
+ var id = this.lastEach;
99
+ this.indexes[id] = 0;
100
+ if (!this.nodes) return undefined;
101
+ var index, result;
102
+
103
+ while (this.indexes[id] < this.nodes.length) {
104
+ index = this.indexes[id];
105
+ result = callback(this.nodes[index], index);
106
+ if (result === false) break;
107
+ this.indexes[id] += 1;
108
+ }
109
+
110
+ delete this.indexes[id];
111
+ return result;
112
+ }
113
+ /**
114
+ * Traverses the container’s descendant nodes, calling callback
115
+ * for each node.
116
+ *
117
+ * Like container.each(), this method is safe to use
118
+ * if you are mutating arrays during iteration.
119
+ *
120
+ * If you only need to iterate through the container’s immediate children,
121
+ * use {@link Container#each}.
122
+ *
123
+ * @param {childIterator} callback Iterator receives each node and index.
124
+ *
125
+ * @return {false|undefined} Returns `false` if iteration was broke.
126
+ *
127
+ * @example
128
+ * root.walk(node => {
129
+ * // Traverses all descendant nodes.
130
+ * })
131
+ */
132
+ ;
133
+
134
+ _proto.walk = function walk(callback) {
135
+ return this.each(function (child, i) {
136
+ var result;
137
+
138
+ try {
139
+ result = callback(child, i);
140
+ } catch (e) {
141
+ e.postcssNode = child;
142
+
143
+ if (e.stack && child.source && /\n\s{4}at /.test(e.stack)) {
144
+ var s = child.source;
145
+ e.stack = e.stack.replace(/\n\s{4}at /, "$&" + s.input.from + ":" + s.start.line + ":" + s.start.column + "$&");
146
+ }
147
+
148
+ throw e;
149
+ }
150
+
151
+ if (result !== false && child.walk) {
152
+ result = child.walk(callback);
153
+ }
154
+
155
+ return result;
156
+ });
157
+ }
158
+ /**
159
+ * Traverses the container’s descendant nodes, calling callback
160
+ * for each declaration node.
161
+ *
162
+ * If you pass a filter, iteration will only happen over declarations
163
+ * with matching properties.
164
+ *
165
+ * Like {@link Container#each}, this method is safe
166
+ * to use if you are mutating arrays during iteration.
167
+ *
168
+ * @param {string|RegExp} [prop] String or regular expression
169
+ * to filter declarations by property name.
170
+ * @param {childIterator} callback Iterator receives each node and index.
171
+ *
172
+ * @return {false|undefined} Returns `false` if iteration was broke.
173
+ *
174
+ * @example
175
+ * root.walkDecls(decl => {
176
+ * checkPropertySupport(decl.prop)
177
+ * })
178
+ *
179
+ * root.walkDecls('border-radius', decl => {
180
+ * decl.remove()
181
+ * })
182
+ *
183
+ * root.walkDecls(/^background/, decl => {
184
+ * decl.value = takeFirstColorFromGradient(decl.value)
185
+ * })
186
+ */
187
+ ;
188
+
189
+ _proto.walkDecls = function walkDecls(prop, callback) {
190
+ if (!callback) {
191
+ callback = prop;
192
+ return this.walk(function (child, i) {
193
+ if (child.type === 'decl') {
194
+ return callback(child, i);
195
+ }
196
+ });
197
+ }
198
+
199
+ if (prop instanceof RegExp) {
200
+ return this.walk(function (child, i) {
201
+ if (child.type === 'decl' && prop.test(child.prop)) {
202
+ return callback(child, i);
203
+ }
204
+ });
205
+ }
206
+
207
+ return this.walk(function (child, i) {
208
+ if (child.type === 'decl' && child.prop === prop) {
209
+ return callback(child, i);
210
+ }
211
+ });
212
+ }
213
+ /**
214
+ * Traverses the container’s descendant nodes, calling callback
215
+ * for each rule node.
216
+ *
217
+ * If you pass a filter, iteration will only happen over rules
218
+ * with matching selectors.
219
+ *
220
+ * Like {@link Container#each}, this method is safe
221
+ * to use if you are mutating arrays during iteration.
222
+ *
223
+ * @param {string|RegExp} [selector] String or regular expression
224
+ * to filter rules by selector.
225
+ * @param {childIterator} callback Iterator receives each node and index.
226
+ *
227
+ * @return {false|undefined} returns `false` if iteration was broke.
228
+ *
229
+ * @example
230
+ * const selectors = []
231
+ * root.walkRules(rule => {
232
+ * selectors.push(rule.selector)
233
+ * })
234
+ * console.log(`Your CSS uses ${ selectors.length } selectors`)
235
+ */
236
+ ;
237
+
238
+ _proto.walkRules = function walkRules(selector, callback) {
239
+ if (!callback) {
240
+ callback = selector;
241
+ return this.walk(function (child, i) {
242
+ if (child.type === 'rule') {
243
+ return callback(child, i);
244
+ }
245
+ });
246
+ }
247
+
248
+ if (selector instanceof RegExp) {
249
+ return this.walk(function (child, i) {
250
+ if (child.type === 'rule' && selector.test(child.selector)) {
251
+ return callback(child, i);
252
+ }
253
+ });
254
+ }
255
+
256
+ return this.walk(function (child, i) {
257
+ if (child.type === 'rule' && child.selector === selector) {
258
+ return callback(child, i);
259
+ }
260
+ });
261
+ }
262
+ /**
263
+ * Traverses the container’s descendant nodes, calling callback
264
+ * for each at-rule node.
265
+ *
266
+ * If you pass a filter, iteration will only happen over at-rules
267
+ * that have matching names.
268
+ *
269
+ * Like {@link Container#each}, this method is safe
270
+ * to use if you are mutating arrays during iteration.
271
+ *
272
+ * @param {string|RegExp} [name] String or regular expression
273
+ * to filter at-rules by name.
274
+ * @param {childIterator} callback Iterator receives each node and index.
275
+ *
276
+ * @return {false|undefined} Returns `false` if iteration was broke.
277
+ *
278
+ * @example
279
+ * root.walkAtRules(rule => {
280
+ * if (isOld(rule.name)) rule.remove()
281
+ * })
282
+ *
283
+ * let first = false
284
+ * root.walkAtRules('charset', rule => {
285
+ * if (!first) {
286
+ * first = true
287
+ * } else {
288
+ * rule.remove()
289
+ * }
290
+ * })
291
+ */
292
+ ;
293
+
294
+ _proto.walkAtRules = function walkAtRules(name, callback) {
295
+ if (!callback) {
296
+ callback = name;
297
+ return this.walk(function (child, i) {
298
+ if (child.type === 'atrule') {
299
+ return callback(child, i);
300
+ }
301
+ });
302
+ }
303
+
304
+ if (name instanceof RegExp) {
305
+ return this.walk(function (child, i) {
306
+ if (child.type === 'atrule' && name.test(child.name)) {
307
+ return callback(child, i);
308
+ }
309
+ });
310
+ }
311
+
312
+ return this.walk(function (child, i) {
313
+ if (child.type === 'atrule' && child.name === name) {
314
+ return callback(child, i);
315
+ }
316
+ });
317
+ }
318
+ /**
319
+ * Traverses the container’s descendant nodes, calling callback
320
+ * for each comment node.
321
+ *
322
+ * Like {@link Container#each}, this method is safe
323
+ * to use if you are mutating arrays during iteration.
324
+ *
325
+ * @param {childIterator} callback Iterator receives each node and index.
326
+ *
327
+ * @return {false|undefined} Returns `false` if iteration was broke.
328
+ *
329
+ * @example
330
+ * root.walkComments(comment => {
331
+ * comment.remove()
332
+ * })
333
+ */
334
+ ;
335
+
336
+ _proto.walkComments = function walkComments(callback) {
337
+ return this.walk(function (child, i) {
338
+ if (child.type === 'comment') {
339
+ return callback(child, i);
340
+ }
341
+ });
342
+ }
343
+ /**
344
+ * Inserts new nodes to the end of the container.
345
+ *
346
+ * @param {...(Node|object|string|Node[])} children New nodes.
347
+ *
348
+ * @return {Node} This node for methods chain.
349
+ *
350
+ * @example
351
+ * const decl1 = postcss.decl({ prop: 'color', value: 'black' })
352
+ * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' })
353
+ * rule.append(decl1, decl2)
354
+ *
355
+ * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
356
+ * root.append({ selector: 'a' }) // rule
357
+ * rule.append({ prop: 'color', value: 'black' }) // declaration
358
+ * rule.append({ text: 'Comment' }) // comment
359
+ *
360
+ * root.append('a {}')
361
+ * root.first.append('color: black; z-index: 1')
362
+ */
363
+ ;
364
+
365
+ _proto.append = function append() {
366
+ for (var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++) {
367
+ children[_key] = arguments[_key];
368
+ }
369
+
370
+ for (var _i = 0, _children = children; _i < _children.length; _i++) {
371
+ var child = _children[_i];
372
+ var nodes = this.normalize(child, this.last);
373
+
374
+ for (var _iterator = _createForOfIteratorHelperLoose(nodes), _step; !(_step = _iterator()).done;) {
375
+ var node = _step.value;
376
+ this.nodes.push(node);
377
+ }
378
+ }
379
+
380
+ return this;
381
+ }
382
+ /**
383
+ * Inserts new nodes to the start of the container.
384
+ *
385
+ * @param {...(Node|object|string|Node[])} children New nodes.
386
+ *
387
+ * @return {Node} This node for methods chain.
388
+ *
389
+ * @example
390
+ * const decl1 = postcss.decl({ prop: 'color', value: 'black' })
391
+ * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' })
392
+ * rule.prepend(decl1, decl2)
393
+ *
394
+ * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
395
+ * root.append({ selector: 'a' }) // rule
396
+ * rule.append({ prop: 'color', value: 'black' }) // declaration
397
+ * rule.append({ text: 'Comment' }) // comment
398
+ *
399
+ * root.append('a {}')
400
+ * root.first.append('color: black; z-index: 1')
401
+ */
402
+ ;
403
+
404
+ _proto.prepend = function prepend() {
405
+ for (var _len2 = arguments.length, children = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
406
+ children[_key2] = arguments[_key2];
407
+ }
408
+
409
+ children = children.reverse();
410
+
411
+ for (var _iterator2 = _createForOfIteratorHelperLoose(children), _step2; !(_step2 = _iterator2()).done;) {
412
+ var child = _step2.value;
413
+ var nodes = this.normalize(child, this.first, 'prepend').reverse();
414
+
415
+ for (var _iterator3 = _createForOfIteratorHelperLoose(nodes), _step3; !(_step3 = _iterator3()).done;) {
416
+ var node = _step3.value;
417
+ this.nodes.unshift(node);
418
+ }
419
+
420
+ for (var id in this.indexes) {
421
+ this.indexes[id] = this.indexes[id] + nodes.length;
422
+ }
423
+ }
424
+
425
+ return this;
426
+ };
427
+
428
+ _proto.cleanRaws = function cleanRaws(keepBetween) {
429
+ _Node.prototype.cleanRaws.call(this, keepBetween);
430
+
431
+ if (this.nodes) {
432
+ for (var _iterator4 = _createForOfIteratorHelperLoose(this.nodes), _step4; !(_step4 = _iterator4()).done;) {
433
+ var node = _step4.value;
434
+ node.cleanRaws(keepBetween);
435
+ }
436
+ }
437
+ }
438
+ /**
439
+ * Insert new node before old node within the container.
440
+ *
441
+ * @param {Node|number} exist Child or child’s index.
442
+ * @param {Node|object|string|Node[]} add New node.
443
+ *
444
+ * @return {Node} This node for methods chain.
445
+ *
446
+ * @example
447
+ * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }))
448
+ */
449
+ ;
450
+
451
+ _proto.insertBefore = function insertBefore(exist, add) {
452
+ exist = this.index(exist);
453
+ var type = exist === 0 ? 'prepend' : false;
454
+ var nodes = this.normalize(add, this.nodes[exist], type).reverse();
455
+
456
+ for (var _iterator5 = _createForOfIteratorHelperLoose(nodes), _step5; !(_step5 = _iterator5()).done;) {
457
+ var node = _step5.value;
458
+ this.nodes.splice(exist, 0, node);
459
+ }
460
+
461
+ var index;
462
+
463
+ for (var id in this.indexes) {
464
+ index = this.indexes[id];
465
+
466
+ if (exist <= index) {
467
+ this.indexes[id] = index + nodes.length;
468
+ }
469
+ }
470
+
471
+ return this;
472
+ }
473
+ /**
474
+ * Insert new node after old node within the container.
475
+ *
476
+ * @param {Node|number} exist Child or child’s index.
477
+ * @param {Node|object|string|Node[]} add New node.
478
+ *
479
+ * @return {Node} This node for methods chain.
480
+ */
481
+ ;
482
+
483
+ _proto.insertAfter = function insertAfter(exist, add) {
484
+ exist = this.index(exist);
485
+ var nodes = this.normalize(add, this.nodes[exist]).reverse();
486
+
487
+ for (var _iterator6 = _createForOfIteratorHelperLoose(nodes), _step6; !(_step6 = _iterator6()).done;) {
488
+ var node = _step6.value;
489
+ this.nodes.splice(exist + 1, 0, node);
490
+ }
491
+
492
+ var index;
493
+
494
+ for (var id in this.indexes) {
495
+ index = this.indexes[id];
496
+
497
+ if (exist < index) {
498
+ this.indexes[id] = index + nodes.length;
499
+ }
500
+ }
501
+
502
+ return this;
503
+ }
504
+ /**
505
+ * Removes node from the container and cleans the parent properties
506
+ * from the node and its children.
507
+ *
508
+ * @param {Node|number} child Child or child’s index.
509
+ *
510
+ * @return {Node} This node for methods chain
511
+ *
512
+ * @example
513
+ * rule.nodes.length //=> 5
514
+ * rule.removeChild(decl)
515
+ * rule.nodes.length //=> 4
516
+ * decl.parent //=> undefined
517
+ */
518
+ ;
519
+
520
+ _proto.removeChild = function removeChild(child) {
521
+ child = this.index(child);
522
+ this.nodes[child].parent = undefined;
523
+ this.nodes.splice(child, 1);
524
+ var index;
525
+
526
+ for (var id in this.indexes) {
527
+ index = this.indexes[id];
528
+
529
+ if (index >= child) {
530
+ this.indexes[id] = index - 1;
531
+ }
532
+ }
533
+
534
+ return this;
535
+ }
536
+ /**
537
+ * Removes all children from the container
538
+ * and cleans their parent properties.
539
+ *
540
+ * @return {Node} This node for methods chain.
541
+ *
542
+ * @example
543
+ * rule.removeAll()
544
+ * rule.nodes.length //=> 0
545
+ */
546
+ ;
547
+
548
+ _proto.removeAll = function removeAll() {
549
+ for (var _iterator7 = _createForOfIteratorHelperLoose(this.nodes), _step7; !(_step7 = _iterator7()).done;) {
550
+ var node = _step7.value;
551
+ node.parent = undefined;
552
+ }
553
+
554
+ this.nodes = [];
555
+ return this;
556
+ }
557
+ /**
558
+ * Passes all declaration values within the container that match pattern
559
+ * through callback, replacing those values with the returned result
560
+ * of callback.
561
+ *
562
+ * This method is useful if you are using a custom unit or function
563
+ * and need to iterate through all values.
564
+ *
565
+ * @param {string|RegExp} pattern Replace pattern.
566
+ * @param {object} opts Options to speed up the search.
567
+ * @param {string|string[]} opts.props An array of property names.
568
+ * @param {string} opts.fast String that’s used to narrow down
569
+ * values and speed up the regexp search.
570
+ * @param {function|string} callback String to replace pattern or callback
571
+ * that returns a new value. The callback
572
+ * will receive the same arguments
573
+ * as those passed to a function parameter
574
+ * of `String#replace`.
575
+ *
576
+ * @return {Node} This node for methods chain.
577
+ *
578
+ * @example
579
+ * root.replaceValues(/\d+rem/, { fast: 'rem' }, string => {
580
+ * return 15 * parseInt(string) + 'px'
581
+ * })
582
+ */
583
+ ;
584
+
585
+ _proto.replaceValues = function replaceValues(pattern, opts, callback) {
586
+ if (!callback) {
587
+ callback = opts;
588
+ opts = {};
589
+ }
590
+
591
+ this.walkDecls(function (decl) {
592
+ if (opts.props && opts.props.indexOf(decl.prop) === -1) return;
593
+ if (opts.fast && decl.value.indexOf(opts.fast) === -1) return;
594
+ decl.value = decl.value.replace(pattern, callback);
595
+ });
596
+ return this;
597
+ }
598
+ /**
599
+ * Returns `true` if callback returns `true`
600
+ * for all of the container’s children.
601
+ *
602
+ * @param {childCondition} condition Iterator returns true or false.
603
+ *
604
+ * @return {boolean} Is every child pass condition.
605
+ *
606
+ * @example
607
+ * const noPrefixes = rule.every(i => i.prop[0] !== '-')
608
+ */
609
+ ;
610
+
611
+ _proto.every = function every(condition) {
612
+ return this.nodes.every(condition);
613
+ }
614
+ /**
615
+ * Returns `true` if callback returns `true` for (at least) one
616
+ * of the container’s children.
617
+ *
618
+ * @param {childCondition} condition Iterator returns true or false.
619
+ *
620
+ * @return {boolean} Is some child pass condition.
621
+ *
622
+ * @example
623
+ * const hasPrefix = rule.some(i => i.prop[0] === '-')
624
+ */
625
+ ;
626
+
627
+ _proto.some = function some(condition) {
628
+ return this.nodes.some(condition);
629
+ }
630
+ /**
631
+ * Returns a `child`’s index within the {@link Container#nodes} array.
632
+ *
633
+ * @param {Node} child Child of the current container.
634
+ *
635
+ * @return {number} Child index.
636
+ *
637
+ * @example
638
+ * rule.index( rule.nodes[2] ) //=> 2
639
+ */
640
+ ;
641
+
642
+ _proto.index = function index(child) {
643
+ if (typeof child === 'number') {
644
+ return child;
645
+ }
646
+
647
+ return this.nodes.indexOf(child);
648
+ }
649
+ /**
650
+ * The container’s first child.
651
+ *
652
+ * @type {Node}
653
+ *
654
+ * @example
655
+ * rule.first === rules.nodes[0]
656
+ */
657
+ ;
658
+
659
+ _proto.normalize = function normalize(nodes, sample) {
660
+ var _this = this;
661
+
662
+ if (typeof nodes === 'string') {
663
+ var parse = require('./parse');
664
+
665
+ nodes = cleanSource(parse(nodes).nodes);
666
+ } else if (Array.isArray(nodes)) {
667
+ nodes = nodes.slice(0);
668
+
669
+ for (var _iterator8 = _createForOfIteratorHelperLoose(nodes), _step8; !(_step8 = _iterator8()).done;) {
670
+ var i = _step8.value;
671
+ if (i.parent) i.parent.removeChild(i, 'ignore');
672
+ }
673
+ } else if (nodes.type === 'root') {
674
+ nodes = nodes.nodes.slice(0);
675
+
676
+ for (var _iterator9 = _createForOfIteratorHelperLoose(nodes), _step9; !(_step9 = _iterator9()).done;) {
677
+ var _i2 = _step9.value;
678
+ if (_i2.parent) _i2.parent.removeChild(_i2, 'ignore');
679
+ }
680
+ } else if (nodes.type) {
681
+ nodes = [nodes];
682
+ } else if (nodes.prop) {
683
+ if (typeof nodes.value === 'undefined') {
684
+ throw new Error('Value field is missed in node creation');
685
+ } else if (typeof nodes.value !== 'string') {
686
+ nodes.value = String(nodes.value);
687
+ }
688
+
689
+ nodes = [new _declaration.default(nodes)];
690
+ } else if (nodes.selector) {
691
+ var Rule = require('./rule');
692
+
693
+ nodes = [new Rule(nodes)];
694
+ } else if (nodes.name) {
695
+ var AtRule = require('./at-rule');
696
+
697
+ nodes = [new AtRule(nodes)];
698
+ } else if (nodes.text) {
699
+ nodes = [new _comment.default(nodes)];
700
+ } else {
701
+ throw new Error('Unknown node type in node creation');
702
+ }
703
+
704
+ var processed = nodes.map(function (i) {
705
+ if (i.parent) i.parent.removeChild(i);
706
+
707
+ if (typeof i.raws.before === 'undefined') {
708
+ if (sample && typeof sample.raws.before !== 'undefined') {
709
+ i.raws.before = sample.raws.before.replace(/[^\s]/g, '');
710
+ }
711
+ }
712
+
713
+ i.parent = _this;
714
+ return i;
715
+ });
716
+ return processed;
717
+ }
718
+ /**
719
+ * @memberof Container#
720
+ * @member {Node[]} nodes An array containing the container’s children.
721
+ *
722
+ * @example
723
+ * const root = postcss.parse('a { color: black }')
724
+ * root.nodes.length //=> 1
725
+ * root.nodes[0].selector //=> 'a'
726
+ * root.nodes[0].nodes[0].prop //=> 'color'
727
+ */
728
+ ;
729
+
730
+ _createClass(Container, [{
731
+ key: "first",
732
+ get: function get() {
733
+ if (!this.nodes) return undefined;
734
+ return this.nodes[0];
735
+ }
736
+ /**
737
+ * The container’s last child.
738
+ *
739
+ * @type {Node}
740
+ *
741
+ * @example
742
+ * rule.last === rule.nodes[rule.nodes.length - 1]
743
+ */
744
+
745
+ }, {
746
+ key: "last",
747
+ get: function get() {
748
+ if (!this.nodes) return undefined;
749
+ return this.nodes[this.nodes.length - 1];
750
+ }
751
+ }]);
752
+
753
+ return Container;
754
+ }(_node.default);
755
+
756
+ var _default = Container;
757
+ /**
758
+ * @callback childCondition
759
+ * @param {Node} node Container child.
760
+ * @param {number} index Child index.
761
+ * @param {Node[]} nodes All container children.
762
+ * @return {boolean}
763
+ */
764
+
765
+ /**
766
+ * @callback childIterator
767
+ * @param {Node} node Container child.
768
+ * @param {number} index Child index.
769
+ * @return {false|undefined} Returning `false` will break iteration.
770
+ */
771
+
772
+ exports.default = _default;
773
+ module.exports = exports.default;
774
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRhaW5lci5lczYiXSwibmFtZXMiOlsiY2xlYW5Tb3VyY2UiLCJub2RlcyIsIm1hcCIsImkiLCJzb3VyY2UiLCJDb250YWluZXIiLCJwdXNoIiwiY2hpbGQiLCJwYXJlbnQiLCJlYWNoIiwiY2FsbGJhY2siLCJsYXN0RWFjaCIsImluZGV4ZXMiLCJpZCIsInVuZGVmaW5lZCIsImluZGV4IiwicmVzdWx0IiwibGVuZ3RoIiwid2FsayIsImUiLCJwb3N0Y3NzTm9kZSIsInN0YWNrIiwidGVzdCIsInMiLCJyZXBsYWNlIiwiaW5wdXQiLCJmcm9tIiwic3RhcnQiLCJsaW5lIiwiY29sdW1uIiwid2Fsa0RlY2xzIiwicHJvcCIsInR5cGUiLCJSZWdFeHAiLCJ3YWxrUnVsZXMiLCJzZWxlY3RvciIsIndhbGtBdFJ1bGVzIiwibmFtZSIsIndhbGtDb21tZW50cyIsImFwcGVuZCIsImNoaWxkcmVuIiwibm9ybWFsaXplIiwibGFzdCIsIm5vZGUiLCJwcmVwZW5kIiwicmV2ZXJzZSIsImZpcnN0IiwidW5zaGlmdCIsImNsZWFuUmF3cyIsImtlZXBCZXR3ZWVuIiwiaW5zZXJ0QmVmb3JlIiwiZXhpc3QiLCJhZGQiLCJzcGxpY2UiLCJpbnNlcnRBZnRlciIsInJlbW92ZUNoaWxkIiwicmVtb3ZlQWxsIiwicmVwbGFjZVZhbHVlcyIsInBhdHRlcm4iLCJvcHRzIiwiZGVjbCIsInByb3BzIiwiaW5kZXhPZiIsImZhc3QiLCJ2YWx1ZSIsImV2ZXJ5IiwiY29uZGl0aW9uIiwic29tZSIsInNhbXBsZSIsInBhcnNlIiwicmVxdWlyZSIsIkFycmF5IiwiaXNBcnJheSIsInNsaWNlIiwiRXJyb3IiLCJTdHJpbmciLCJEZWNsYXJhdGlvbiIsIlJ1bGUiLCJBdFJ1bGUiLCJ0ZXh0IiwiQ29tbWVudCIsInByb2Nlc3NlZCIsInJhd3MiLCJiZWZvcmUiLCJOb2RlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsU0FBU0EsV0FBVCxDQUFzQkMsS0FBdEIsRUFBNkI7QUFDM0IsU0FBT0EsS0FBSyxDQUFDQyxHQUFOLENBQVUsVUFBQUMsQ0FBQyxFQUFJO0FBQ3BCLFFBQUlBLENBQUMsQ0FBQ0YsS0FBTixFQUFhRSxDQUFDLENBQUNGLEtBQUYsR0FBVUQsV0FBVyxDQUFDRyxDQUFDLENBQUNGLEtBQUgsQ0FBckI7QUFDYixXQUFPRSxDQUFDLENBQUNDLE1BQVQ7QUFDQSxXQUFPRCxDQUFQO0FBQ0QsR0FKTSxDQUFQO0FBS0Q7QUFFRDs7Ozs7Ozs7Ozs7O0lBVU1FLFM7Ozs7Ozs7OztTQUNKQyxJLEdBQUEsY0FBTUMsS0FBTixFQUFhO0FBQ1hBLElBQUFBLEtBQUssQ0FBQ0MsTUFBTixHQUFlLElBQWY7QUFDQSxTQUFLUCxLQUFMLENBQVdLLElBQVgsQ0FBZ0JDLEtBQWhCO0FBQ0EsV0FBTyxJQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FpQ0FFLEksR0FBQSxjQUFNQyxRQUFOLEVBQWdCO0FBQ2QsUUFBSSxDQUFDLEtBQUtDLFFBQVYsRUFBb0IsS0FBS0EsUUFBTCxHQUFnQixDQUFoQjtBQUNwQixRQUFJLENBQUMsS0FBS0MsT0FBVixFQUFtQixLQUFLQSxPQUFMLEdBQWUsRUFBZjtBQUVuQixTQUFLRCxRQUFMLElBQWlCLENBQWpCO0FBQ0EsUUFBSUUsRUFBRSxHQUFHLEtBQUtGLFFBQWQ7QUFDQSxTQUFLQyxPQUFMLENBQWFDLEVBQWIsSUFBbUIsQ0FBbkI7QUFFQSxRQUFJLENBQUMsS0FBS1osS0FBVixFQUFpQixPQUFPYSxTQUFQO0FBRWpCLFFBQUlDLEtBQUosRUFBV0MsTUFBWDs7QUFDQSxXQUFPLEtBQUtKLE9BQUwsQ0FBYUMsRUFBYixJQUFtQixLQUFLWixLQUFMLENBQVdnQixNQUFyQyxFQUE2QztBQUMzQ0YsTUFBQUEsS0FBSyxHQUFHLEtBQUtILE9BQUwsQ0FBYUMsRUFBYixDQUFSO0FBQ0FHLE1BQUFBLE1BQU0sR0FBR04sUUFBUSxDQUFDLEtBQUtULEtBQUwsQ0FBV2MsS0FBWCxDQUFELEVBQW9CQSxLQUFwQixDQUFqQjtBQUNBLFVBQUlDLE1BQU0sS0FBSyxLQUFmLEVBQXNCO0FBRXRCLFdBQUtKLE9BQUwsQ0FBYUMsRUFBYixLQUFvQixDQUFwQjtBQUNEOztBQUVELFdBQU8sS0FBS0QsT0FBTCxDQUFhQyxFQUFiLENBQVA7QUFFQSxXQUFPRyxNQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBbUJBRSxJLEdBQUEsY0FBTVIsUUFBTixFQUFnQjtBQUNkLFdBQU8sS0FBS0QsSUFBTCxDQUFVLFVBQUNGLEtBQUQsRUFBUUosQ0FBUixFQUFjO0FBQzdCLFVBQUlhLE1BQUo7O0FBQ0EsVUFBSTtBQUNGQSxRQUFBQSxNQUFNLEdBQUdOLFFBQVEsQ0FBQ0gsS0FBRCxFQUFRSixDQUFSLENBQWpCO0FBQ0QsT0FGRCxDQUVFLE9BQU9nQixDQUFQLEVBQVU7QUFDVkEsUUFBQUEsQ0FBQyxDQUFDQyxXQUFGLEdBQWdCYixLQUFoQjs7QUFDQSxZQUFJWSxDQUFDLENBQUNFLEtBQUYsSUFBV2QsS0FBSyxDQUFDSCxNQUFqQixJQUEyQixhQUFha0IsSUFBYixDQUFrQkgsQ0FBQyxDQUFDRSxLQUFwQixDQUEvQixFQUEyRDtBQUN6RCxjQUFJRSxDQUFDLEdBQUdoQixLQUFLLENBQUNILE1BQWQ7QUFDQWUsVUFBQUEsQ0FBQyxDQUFDRSxLQUFGLEdBQVVGLENBQUMsQ0FBQ0UsS0FBRixDQUFRRyxPQUFSLENBQWdCLFlBQWhCLFNBQ0ZELENBQUMsQ0FBQ0UsS0FBRixDQUFRQyxJQUROLFNBQ2dCSCxDQUFDLENBQUNJLEtBQUYsQ0FBUUMsSUFEeEIsU0FDa0NMLENBQUMsQ0FBQ0ksS0FBRixDQUFRRSxNQUQxQyxRQUFWO0FBRUQ7O0FBQ0QsY0FBTVYsQ0FBTjtBQUNEOztBQUNELFVBQUlILE1BQU0sS0FBSyxLQUFYLElBQW9CVCxLQUFLLENBQUNXLElBQTlCLEVBQW9DO0FBQ2xDRixRQUFBQSxNQUFNLEdBQUdULEtBQUssQ0FBQ1csSUFBTixDQUFXUixRQUFYLENBQVQ7QUFDRDs7QUFDRCxhQUFPTSxNQUFQO0FBQ0QsS0FqQk0sQ0FBUDtBQWtCRDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBNkJBYyxTLEdBQUEsbUJBQVdDLElBQVgsRUFBaUJyQixRQUFqQixFQUEyQjtBQUN6QixRQUFJLENBQUNBLFFBQUwsRUFBZTtBQUNiQSxNQUFBQSxRQUFRLEdBQUdxQixJQUFYO0FBQ0EsYUFBTyxLQUFLYixJQUFMLENBQVUsVUFBQ1gsS0FBRCxFQUFRSixDQUFSLEVBQWM7QUFDN0IsWUFBSUksS0FBSyxDQUFDeUIsSUFBTixLQUFlLE1BQW5CLEVBQTJCO0FBQ3pCLGlCQUFPdEIsUUFBUSxDQUFDSCxLQUFELEVBQVFKLENBQVIsQ0FBZjtBQUNEO0FBQ0YsT0FKTSxDQUFQO0FBS0Q7O0FBQ0QsUUFBSTRCLElBQUksWUFBWUUsTUFBcEIsRUFBNEI7QUFDMUIsYUFBTyxLQUFLZixJQUFMLENBQVUsVUFBQ1gsS0FBRCxFQUFRSixDQUFSLEVBQWM7QUFDN0IsWUFBSUksS0FBSyxDQUFDeUIsSUFBTixLQUFlLE1BQWYsSUFBeUJELElBQUksQ0FBQ1QsSUFBTCxDQUFVZixLQUFLLENBQUN3QixJQUFoQixDQUE3QixFQUFvRDtBQUNsRCxpQkFBT3JCLFFBQVEsQ0FBQ0gsS0FBRCxFQUFRSixDQUFSLENBQWY7QUFDRDtBQUNGLE9BSk0sQ0FBUDtBQUtEOztBQUNELFdBQU8sS0FBS2UsSUFBTCxDQUFVLFVBQUNYLEtBQUQsRUFBUUosQ0FBUixFQUFjO0FBQzdCLFVBQUlJLEtBQUssQ0FBQ3lCLElBQU4sS0FBZSxNQUFmLElBQXlCekIsS0FBSyxDQUFDd0IsSUFBTixLQUFlQSxJQUE1QyxFQUFrRDtBQUNoRCxlQUFPckIsUUFBUSxDQUFDSCxLQUFELEVBQVFKLENBQVIsQ0FBZjtBQUNEO0FBQ0YsS0FKTSxDQUFQO0FBS0Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQXVCQStCLFMsR0FBQSxtQkFBV0MsUUFBWCxFQUFxQnpCLFFBQXJCLEVBQStCO0FBQzdCLFFBQUksQ0FBQ0EsUUFBTCxFQUFlO0FBQ2JBLE1BQUFBLFFBQVEsR0FBR3lCLFFBQVg7QUFFQSxhQUFPLEtBQUtqQixJQUFMLENBQVUsVUFBQ1gsS0FBRCxFQUFRSixDQUFSLEVBQWM7QUFDN0IsWUFBSUksS0FBSyxDQUFDeUIsSUFBTixLQUFlLE1BQW5CLEVBQTJCO0FBQ3pCLGlCQUFPdEIsUUFBUSxDQUFDSCxLQUFELEVBQVFKLENBQVIsQ0FBZjtBQUNEO0FBQ0YsT0FKTSxDQUFQO0FBS0Q7O0FBQ0QsUUFBSWdDLFFBQVEsWUFBWUYsTUFBeEIsRUFBZ0M7QUFDOUIsYUFBTyxLQUFLZixJQUFMLENBQVUsVUFBQ1gsS0FBRCxFQUFRSixDQUFSLEVBQWM7QUFDN0IsWUFBSUksS0FBSyxDQUFDeUIsSUFBTixLQUFlLE1BQWYsSUFBeUJHLFFBQVEsQ0FBQ2IsSUFBVCxDQUFjZixLQUFLLENBQUM0QixRQUFwQixDQUE3QixFQUE0RDtBQUMxRCxpQkFBT3pCLFFBQVEsQ0FBQ0gsS0FBRCxFQUFRSixDQUFSLENBQWY7QUFDRDtBQUNGLE9BSk0sQ0FBUDtBQUtEOztBQUNELFdBQU8sS0FBS2UsSUFBTCxDQUFVLFVBQUNYLEtBQUQsRUFBUUosQ0FBUixFQUFjO0FBQzdCLFVBQUlJLEtBQUssQ0FBQ3lCLElBQU4sS0FBZSxNQUFmLElBQXlCekIsS0FBSyxDQUFDNEIsUUFBTixLQUFtQkEsUUFBaEQsRUFBMEQ7QUFDeEQsZUFBT3pCLFFBQVEsQ0FBQ0gsS0FBRCxFQUFRSixDQUFSLENBQWY7QUFDRDtBQUNGLEtBSk0sQ0FBUDtBQUtEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBOEJBaUMsVyxHQUFBLHFCQUFhQyxJQUFiLEVBQW1CM0IsUUFBbkIsRUFBNkI7QUFDM0IsUUFBSSxDQUFDQSxRQUFMLEVBQWU7QUFDYkEsTUFBQUEsUUFBUSxHQUFHMkIsSUFBWDtBQUNBLGFBQU8sS0FBS25CLElBQUwsQ0FBVSxVQUFDWCxLQUFELEVBQVFKLENBQVIsRUFBYztBQUM3QixZQUFJSSxLQUFLLENBQUN5QixJQUFOLEtBQWUsUUFBbkIsRUFBNkI7QUFDM0IsaUJBQU90QixRQUFRLENBQUNILEtBQUQsRUFBUUosQ0FBUixDQUFmO0FBQ0Q7QUFDRixPQUpNLENBQVA7QUFLRDs7QUFDRCxRQUFJa0MsSUFBSSxZQUFZSixNQUFwQixFQUE0QjtBQUMxQixhQUFPLEtBQUtmLElBQUwsQ0FBVSxVQUFDWCxLQUFELEVBQVFKLENBQVIsRUFBYztBQUM3QixZQUFJSSxLQUFLLENBQUN5QixJQUFOLEtBQWUsUUFBZixJQUEyQkssSUFBSSxDQUFDZixJQUFMLENBQVVmLEtBQUssQ0FBQzhCLElBQWhCLENBQS9CLEVBQXNEO0FBQ3BELGlCQUFPM0IsUUFBUSxDQUFDSCxLQUFELEVBQVFKLENBQVIsQ0FBZjtBQUNEO0FBQ0YsT0FKTSxDQUFQO0FBS0Q7O0FBQ0QsV0FBTyxLQUFLZSxJQUFMLENBQVUsVUFBQ1gsS0FBRCxFQUFRSixDQUFSLEVBQWM7QUFDN0IsVUFBSUksS0FBSyxDQUFDeUIsSUFBTixLQUFlLFFBQWYsSUFBMkJ6QixLQUFLLENBQUM4QixJQUFOLEtBQWVBLElBQTlDLEVBQW9EO0FBQ2xELGVBQU8zQixRQUFRLENBQUNILEtBQUQsRUFBUUosQ0FBUixDQUFmO0FBQ0Q7QUFDRixLQUpNLENBQVA7QUFLRDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQkFtQyxZLEdBQUEsc0JBQWM1QixRQUFkLEVBQXdCO0FBQ3RCLFdBQU8sS0FBS1EsSUFBTCxDQUFVLFVBQUNYLEtBQUQsRUFBUUosQ0FBUixFQUFjO0FBQzdCLFVBQUlJLEtBQUssQ0FBQ3lCLElBQU4sS0FBZSxTQUFuQixFQUE4QjtBQUM1QixlQUFPdEIsUUFBUSxDQUFDSCxLQUFELEVBQVFKLENBQVIsQ0FBZjtBQUNEO0FBQ0YsS0FKTSxDQUFQO0FBS0Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQW9CQW9DLE0sR0FBQSxrQkFBcUI7QUFBQSxzQ0FBVkMsUUFBVTtBQUFWQSxNQUFBQSxRQUFVO0FBQUE7O0FBQ25CLGlDQUFrQkEsUUFBbEIsK0JBQTRCO0FBQXZCLFVBQUlqQyxLQUFLLGdCQUFUO0FBQ0gsVUFBSU4sS0FBSyxHQUFHLEtBQUt3QyxTQUFMLENBQWVsQyxLQUFmLEVBQXNCLEtBQUttQyxJQUEzQixDQUFaOztBQUNBLDJEQUFpQnpDLEtBQWpCO0FBQUEsWUFBUzBDLElBQVQ7QUFBd0IsYUFBSzFDLEtBQUwsQ0FBV0ssSUFBWCxDQUFnQnFDLElBQWhCO0FBQXhCO0FBQ0Q7O0FBQ0QsV0FBTyxJQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQW9CQUMsTyxHQUFBLG1CQUFzQjtBQUFBLHVDQUFWSixRQUFVO0FBQVZBLE1BQUFBLFFBQVU7QUFBQTs7QUFDcEJBLElBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDSyxPQUFULEVBQVg7O0FBQ0EsMERBQWtCTCxRQUFsQiwyQ0FBNEI7QUFBQSxVQUFuQmpDLEtBQW1CO0FBQzFCLFVBQUlOLEtBQUssR0FBRyxLQUFLd0MsU0FBTCxDQUFlbEMsS0FBZixFQUFzQixLQUFLdUMsS0FBM0IsRUFBa0MsU0FBbEMsRUFBNkNELE9BQTdDLEVBQVo7O0FBQ0EsNERBQWlCNUMsS0FBakI7QUFBQSxZQUFTMEMsSUFBVDtBQUF3QixhQUFLMUMsS0FBTCxDQUFXOEMsT0FBWCxDQUFtQkosSUFBbkI7QUFBeEI7O0FBQ0EsV0FBSyxJQUFJOUIsRUFBVCxJQUFlLEtBQUtELE9BQXBCLEVBQTZCO0FBQzNCLGFBQUtBLE9BQUwsQ0FBYUMsRUFBYixJQUFtQixLQUFLRCxPQUFMLENBQWFDLEVBQWIsSUFBbUJaLEtBQUssQ0FBQ2dCLE1BQTVDO0FBQ0Q7QUFDRjs7QUFDRCxXQUFPLElBQVA7QUFDRCxHOztTQUVEK0IsUyxHQUFBLG1CQUFXQyxXQUFYLEVBQXdCO0FBQ3RCLG9CQUFNRCxTQUFOLFlBQWdCQyxXQUFoQjs7QUFDQSxRQUFJLEtBQUtoRCxLQUFULEVBQWdCO0FBQ2QsNERBQWlCLEtBQUtBLEtBQXRCO0FBQUEsWUFBUzBDLElBQVQ7QUFBNkJBLFFBQUFBLElBQUksQ0FBQ0ssU0FBTCxDQUFlQyxXQUFmO0FBQTdCO0FBQ0Q7QUFDRjtBQUVEOzs7Ozs7Ozs7Ozs7O1NBV0FDLFksR0FBQSxzQkFBY0MsS0FBZCxFQUFxQkMsR0FBckIsRUFBMEI7QUFDeEJELElBQUFBLEtBQUssR0FBRyxLQUFLcEMsS0FBTCxDQUFXb0MsS0FBWCxDQUFSO0FBRUEsUUFBSW5CLElBQUksR0FBR21CLEtBQUssS0FBSyxDQUFWLEdBQWMsU0FBZCxHQUEwQixLQUFyQztBQUNBLFFBQUlsRCxLQUFLLEdBQUcsS0FBS3dDLFNBQUwsQ0FBZVcsR0FBZixFQUFvQixLQUFLbkQsS0FBTCxDQUFXa0QsS0FBWCxDQUFwQixFQUF1Q25CLElBQXZDLEVBQTZDYSxPQUE3QyxFQUFaOztBQUNBLDBEQUFpQjVDLEtBQWpCO0FBQUEsVUFBUzBDLElBQVQ7QUFBd0IsV0FBSzFDLEtBQUwsQ0FBV29ELE1BQVgsQ0FBa0JGLEtBQWxCLEVBQXlCLENBQXpCLEVBQTRCUixJQUE1QjtBQUF4Qjs7QUFFQSxRQUFJNUIsS0FBSjs7QUFDQSxTQUFLLElBQUlGLEVBQVQsSUFBZSxLQUFLRCxPQUFwQixFQUE2QjtBQUMzQkcsTUFBQUEsS0FBSyxHQUFHLEtBQUtILE9BQUwsQ0FBYUMsRUFBYixDQUFSOztBQUNBLFVBQUlzQyxLQUFLLElBQUlwQyxLQUFiLEVBQW9CO0FBQ2xCLGFBQUtILE9BQUwsQ0FBYUMsRUFBYixJQUFtQkUsS0FBSyxHQUFHZCxLQUFLLENBQUNnQixNQUFqQztBQUNEO0FBQ0Y7O0FBRUQsV0FBTyxJQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7OztTQVFBcUMsVyxHQUFBLHFCQUFhSCxLQUFiLEVBQW9CQyxHQUFwQixFQUF5QjtBQUN2QkQsSUFBQUEsS0FBSyxHQUFHLEtBQUtwQyxLQUFMLENBQVdvQyxLQUFYLENBQVI7QUFFQSxRQUFJbEQsS0FBSyxHQUFHLEtBQUt3QyxTQUFMLENBQWVXLEdBQWYsRUFBb0IsS0FBS25ELEtBQUwsQ0FBV2tELEtBQVgsQ0FBcEIsRUFBdUNOLE9BQXZDLEVBQVo7O0FBQ0EsMERBQWlCNUMsS0FBakI7QUFBQSxVQUFTMEMsSUFBVDtBQUF3QixXQUFLMUMsS0FBTCxDQUFXb0QsTUFBWCxDQUFrQkYsS0FBSyxHQUFHLENBQTFCLEVBQTZCLENBQTdCLEVBQWdDUixJQUFoQztBQUF4Qjs7QUFFQSxRQUFJNUIsS0FBSjs7QUFDQSxTQUFLLElBQUlGLEVBQVQsSUFBZSxLQUFLRCxPQUFwQixFQUE2QjtBQUMzQkcsTUFBQUEsS0FBSyxHQUFHLEtBQUtILE9BQUwsQ0FBYUMsRUFBYixDQUFSOztBQUNBLFVBQUlzQyxLQUFLLEdBQUdwQyxLQUFaLEVBQW1CO0FBQ2pCLGFBQUtILE9BQUwsQ0FBYUMsRUFBYixJQUFtQkUsS0FBSyxHQUFHZCxLQUFLLENBQUNnQixNQUFqQztBQUNEO0FBQ0Y7O0FBRUQsV0FBTyxJQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztTQWNBc0MsVyxHQUFBLHFCQUFhaEQsS0FBYixFQUFvQjtBQUNsQkEsSUFBQUEsS0FBSyxHQUFHLEtBQUtRLEtBQUwsQ0FBV1IsS0FBWCxDQUFSO0FBQ0EsU0FBS04sS0FBTCxDQUFXTSxLQUFYLEVBQWtCQyxNQUFsQixHQUEyQk0sU0FBM0I7QUFDQSxTQUFLYixLQUFMLENBQVdvRCxNQUFYLENBQWtCOUMsS0FBbEIsRUFBeUIsQ0FBekI7QUFFQSxRQUFJUSxLQUFKOztBQUNBLFNBQUssSUFBSUYsRUFBVCxJQUFlLEtBQUtELE9BQXBCLEVBQTZCO0FBQzNCRyxNQUFBQSxLQUFLLEdBQUcsS0FBS0gsT0FBTCxDQUFhQyxFQUFiLENBQVI7O0FBQ0EsVUFBSUUsS0FBSyxJQUFJUixLQUFiLEVBQW9CO0FBQ2xCLGFBQUtLLE9BQUwsQ0FBYUMsRUFBYixJQUFtQkUsS0FBSyxHQUFHLENBQTNCO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPLElBQVA7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7U0FVQXlDLFMsR0FBQSxxQkFBYTtBQUNYLDBEQUFpQixLQUFLdkQsS0FBdEI7QUFBQSxVQUFTMEMsSUFBVDtBQUE2QkEsTUFBQUEsSUFBSSxDQUFDbkMsTUFBTCxHQUFjTSxTQUFkO0FBQTdCOztBQUNBLFNBQUtiLEtBQUwsR0FBYSxFQUFiO0FBQ0EsV0FBTyxJQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQTBCQXdELGEsR0FBQSx1QkFBZUMsT0FBZixFQUF3QkMsSUFBeEIsRUFBOEJqRCxRQUE5QixFQUF3QztBQUN0QyxRQUFJLENBQUNBLFFBQUwsRUFBZTtBQUNiQSxNQUFBQSxRQUFRLEdBQUdpRCxJQUFYO0FBQ0FBLE1BQUFBLElBQUksR0FBRyxFQUFQO0FBQ0Q7O0FBRUQsU0FBSzdCLFNBQUwsQ0FBZSxVQUFBOEIsSUFBSSxFQUFJO0FBQ3JCLFVBQUlELElBQUksQ0FBQ0UsS0FBTCxJQUFjRixJQUFJLENBQUNFLEtBQUwsQ0FBV0MsT0FBWCxDQUFtQkYsSUFBSSxDQUFDN0IsSUFBeEIsTUFBa0MsQ0FBQyxDQUFyRCxFQUF3RDtBQUN4RCxVQUFJNEIsSUFBSSxDQUFDSSxJQUFMLElBQWFILElBQUksQ0FBQ0ksS0FBTCxDQUFXRixPQUFYLENBQW1CSCxJQUFJLENBQUNJLElBQXhCLE1BQWtDLENBQUMsQ0FBcEQsRUFBdUQ7QUFFdkRILE1BQUFBLElBQUksQ0FBQ0ksS0FBTCxHQUFhSixJQUFJLENBQUNJLEtBQUwsQ0FBV3hDLE9BQVgsQ0FBbUJrQyxPQUFuQixFQUE0QmhELFFBQTVCLENBQWI7QUFDRCxLQUxEO0FBT0EsV0FBTyxJQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7OztTQVdBdUQsSyxHQUFBLGVBQU9DLFNBQVAsRUFBa0I7QUFDaEIsV0FBTyxLQUFLakUsS0FBTCxDQUFXZ0UsS0FBWCxDQUFpQkMsU0FBakIsQ0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7U0FXQUMsSSxHQUFBLGNBQU1ELFNBQU4sRUFBaUI7QUFDZixXQUFPLEtBQUtqRSxLQUFMLENBQVdrRSxJQUFYLENBQWdCRCxTQUFoQixDQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7O1NBVUFuRCxLLEdBQUEsZUFBT1IsS0FBUCxFQUFjO0FBQ1osUUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLGFBQU9BLEtBQVA7QUFDRDs7QUFDRCxXQUFPLEtBQUtOLEtBQUwsQ0FBVzZELE9BQVgsQ0FBbUJ2RCxLQUFuQixDQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7OztTQTBCQWtDLFMsR0FBQSxtQkFBV3hDLEtBQVgsRUFBa0JtRSxNQUFsQixFQUEwQjtBQUFBOztBQUN4QixRQUFJLE9BQU9uRSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFVBQUlvRSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQW5COztBQUNBckUsTUFBQUEsS0FBSyxHQUFHRCxXQUFXLENBQUNxRSxLQUFLLENBQUNwRSxLQUFELENBQUwsQ0FBYUEsS0FBZCxDQUFuQjtBQUNELEtBSEQsTUFHTyxJQUFJc0UsS0FBSyxDQUFDQyxPQUFOLENBQWN2RSxLQUFkLENBQUosRUFBMEI7QUFDL0JBLE1BQUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDd0UsS0FBTixDQUFZLENBQVosQ0FBUjs7QUFDQSw0REFBY3hFLEtBQWQsMkNBQXFCO0FBQUEsWUFBWkUsQ0FBWTtBQUNuQixZQUFJQSxDQUFDLENBQUNLLE1BQU4sRUFBY0wsQ0FBQyxDQUFDSyxNQUFGLENBQVMrQyxXQUFULENBQXFCcEQsQ0FBckIsRUFBd0IsUUFBeEI7QUFDZjtBQUNGLEtBTE0sTUFLQSxJQUFJRixLQUFLLENBQUMrQixJQUFOLEtBQWUsTUFBbkIsRUFBMkI7QUFDaEMvQixNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0EsS0FBTixDQUFZd0UsS0FBWixDQUFrQixDQUFsQixDQUFSOztBQUNBLDREQUFjeEUsS0FBZCwyQ0FBcUI7QUFBQSxZQUFaRSxHQUFZO0FBQ25CLFlBQUlBLEdBQUMsQ0FBQ0ssTUFBTixFQUFjTCxHQUFDLENBQUNLLE1BQUYsQ0FBUytDLFdBQVQsQ0FBcUJwRCxHQUFyQixFQUF3QixRQUF4QjtBQUNmO0FBQ0YsS0FMTSxNQUtBLElBQUlGLEtBQUssQ0FBQytCLElBQVYsRUFBZ0I7QUFDckIvQixNQUFBQSxLQUFLLEdBQUcsQ0FBQ0EsS0FBRCxDQUFSO0FBQ0QsS0FGTSxNQUVBLElBQUlBLEtBQUssQ0FBQzhCLElBQVYsRUFBZ0I7QUFDckIsVUFBSSxPQUFPOUIsS0FBSyxDQUFDK0QsS0FBYixLQUF1QixXQUEzQixFQUF3QztBQUN0QyxjQUFNLElBQUlVLEtBQUosQ0FBVSx3Q0FBVixDQUFOO0FBQ0QsT0FGRCxNQUVPLElBQUksT0FBT3pFLEtBQUssQ0FBQytELEtBQWIsS0FBdUIsUUFBM0IsRUFBcUM7QUFDMUMvRCxRQUFBQSxLQUFLLENBQUMrRCxLQUFOLEdBQWNXLE1BQU0sQ0FBQzFFLEtBQUssQ0FBQytELEtBQVAsQ0FBcEI7QUFDRDs7QUFDRC9ELE1BQUFBLEtBQUssR0FBRyxDQUFDLElBQUkyRSxvQkFBSixDQUFnQjNFLEtBQWhCLENBQUQsQ0FBUjtBQUNELEtBUE0sTUFPQSxJQUFJQSxLQUFLLENBQUNrQyxRQUFWLEVBQW9CO0FBQ3pCLFVBQUkwQyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxRQUFELENBQWxCOztBQUNBckUsTUFBQUEsS0FBSyxHQUFHLENBQUMsSUFBSTRFLElBQUosQ0FBUzVFLEtBQVQsQ0FBRCxDQUFSO0FBQ0QsS0FITSxNQUdBLElBQUlBLEtBQUssQ0FBQ29DLElBQVYsRUFBZ0I7QUFDckIsVUFBSXlDLE1BQU0sR0FBR1IsT0FBTyxDQUFDLFdBQUQsQ0FBcEI7O0FBQ0FyRSxNQUFBQSxLQUFLLEdBQUcsQ0FBQyxJQUFJNkUsTUFBSixDQUFXN0UsS0FBWCxDQUFELENBQVI7QUFDRCxLQUhNLE1BR0EsSUFBSUEsS0FBSyxDQUFDOEUsSUFBVixFQUFnQjtBQUNyQjlFLE1BQUFBLEtBQUssR0FBRyxDQUFDLElBQUkrRSxnQkFBSixDQUFZL0UsS0FBWixDQUFELENBQVI7QUFDRCxLQUZNLE1BRUE7QUFDTCxZQUFNLElBQUl5RSxLQUFKLENBQVUsb0NBQVYsQ0FBTjtBQUNEOztBQUVELFFBQUlPLFNBQVMsR0FBR2hGLEtBQUssQ0FBQ0MsR0FBTixDQUFVLFVBQUFDLENBQUMsRUFBSTtBQUM3QixVQUFJQSxDQUFDLENBQUNLLE1BQU4sRUFBY0wsQ0FBQyxDQUFDSyxNQUFGLENBQVMrQyxXQUFULENBQXFCcEQsQ0FBckI7O0FBQ2QsVUFBSSxPQUFPQSxDQUFDLENBQUMrRSxJQUFGLENBQU9DLE1BQWQsS0FBeUIsV0FBN0IsRUFBMEM7QUFDeEMsWUFBSWYsTUFBTSxJQUFJLE9BQU9BLE1BQU0sQ0FBQ2MsSUFBUCxDQUFZQyxNQUFuQixLQUE4QixXQUE1QyxFQUF5RDtBQUN2RGhGLFVBQUFBLENBQUMsQ0FBQytFLElBQUYsQ0FBT0MsTUFBUCxHQUFnQmYsTUFBTSxDQUFDYyxJQUFQLENBQVlDLE1BQVosQ0FBbUIzRCxPQUFuQixDQUEyQixRQUEzQixFQUFxQyxFQUFyQyxDQUFoQjtBQUNEO0FBQ0Y7O0FBQ0RyQixNQUFBQSxDQUFDLENBQUNLLE1BQUYsR0FBVyxLQUFYO0FBQ0EsYUFBT0wsQ0FBUDtBQUNELEtBVGUsQ0FBaEI7QUFXQSxXQUFPOEUsU0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O3dCQW5FYTtBQUNYLFVBQUksQ0FBQyxLQUFLaEYsS0FBVixFQUFpQixPQUFPYSxTQUFQO0FBQ2pCLGFBQU8sS0FBS2IsS0FBTCxDQUFXLENBQVgsQ0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7O3dCQVFZO0FBQ1YsVUFBSSxDQUFDLEtBQUtBLEtBQVYsRUFBaUIsT0FBT2EsU0FBUDtBQUNqQixhQUFPLEtBQUtiLEtBQUwsQ0FBVyxLQUFLQSxLQUFMLENBQVdnQixNQUFYLEdBQW9CLENBQS9CLENBQVA7QUFDRDs7OztFQWhqQnFCbUUsYTs7ZUErbUJUL0UsUztBQUVmOzs7Ozs7OztBQVFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gJy4vZGVjbGFyYXRpb24nXG5pbXBvcnQgQ29tbWVudCBmcm9tICcuL2NvbW1lbnQnXG5pbXBvcnQgTm9kZSBmcm9tICcuL25vZGUnXG5cbmZ1bmN0aW9uIGNsZWFuU291cmNlIChub2Rlcykge1xuICByZXR1cm4gbm9kZXMubWFwKGkgPT4ge1xuICAgIGlmIChpLm5vZGVzKSBpLm5vZGVzID0gY2xlYW5Tb3VyY2UoaS5ub2RlcylcbiAgICBkZWxldGUgaS5zb3VyY2VcbiAgICByZXR1cm4gaVxuICB9KVxufVxuXG4vKipcbiAqIFRoZSB7QGxpbmsgUm9vdH0sIHtAbGluayBBdFJ1bGV9LCBhbmQge0BsaW5rIFJ1bGV9IGNvbnRhaW5lciBub2Rlc1xuICogaW5oZXJpdCBzb21lIGNvbW1vbiBtZXRob2RzIHRvIGhlbHAgd29yayB3aXRoIHRoZWlyIGNoaWxkcmVuLlxuICpcbiAqIE5vdGUgdGhhdCBhbGwgY29udGFpbmVycyBjYW4gc3RvcmUgYW55IGNvbnRlbnQuIElmIHlvdSB3cml0ZSBhIHJ1bGUgaW5zaWRlXG4gKiBhIHJ1bGUsIFBvc3RDU1Mgd2lsbCBwYXJzZSBpdC5cbiAqXG4gKiBAZXh0ZW5kcyBOb2RlXG4gKiBAYWJzdHJhY3RcbiAqL1xuY2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgTm9kZSB7XG4gIHB1c2ggKGNoaWxkKSB7XG4gICAgY2hpbGQucGFyZW50ID0gdGhpc1xuICAgIHRoaXMubm9kZXMucHVzaChjaGlsZClcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEl0ZXJhdGVzIHRocm91Z2ggdGhlIGNvbnRhaW5lcuKAmXMgaW1tZWRpYXRlIGNoaWxkcmVuLFxuICAgKiBjYWxsaW5nIGBjYWxsYmFja2AgZm9yIGVhY2ggY2hpbGQuXG4gICAqXG4gICAqIFJldHVybmluZyBgZmFsc2VgIGluIHRoZSBjYWxsYmFjayB3aWxsIGJyZWFrIGl0ZXJhdGlvbi5cbiAgICpcbiAgICogVGhpcyBtZXRob2Qgb25seSBpdGVyYXRlcyB0aHJvdWdoIHRoZSBjb250YWluZXLigJlzIGltbWVkaWF0ZSBjaGlsZHJlbi5cbiAgICogSWYgeW91IG5lZWQgdG8gcmVjdXJzaXZlbHkgaXRlcmF0ZSB0aHJvdWdoIGFsbCB0aGUgY29udGFpbmVy4oCZcyBkZXNjZW5kYW50XG4gICAqIG5vZGVzLCB1c2Uge0BsaW5rIENvbnRhaW5lciN3YWxrfS5cbiAgICpcbiAgICogVW5saWtlIHRoZSBmb3IgYHt9YC1jeWNsZSBvciBgQXJyYXkjZm9yRWFjaGAgdGhpcyBpdGVyYXRvciBpcyBzYWZlXG4gICAqIGlmIHlvdSBhcmUgbXV0YXRpbmcgdGhlIGFycmF5IG9mIGNoaWxkIG5vZGVzIGR1cmluZyBpdGVyYXRpb24uXG4gICAqIFBvc3RDU1Mgd2lsbCBhZGp1c3QgdGhlIGN1cnJlbnQgaW5kZXggdG8gbWF0Y2ggdGhlIG11dGF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHtjaGlsZEl0ZXJhdG9yfSBjYWxsYmFjayBJdGVyYXRvciByZWNlaXZlcyBlYWNoIG5vZGUgYW5kIGluZGV4LlxuICAgKlxuICAgKiBAcmV0dXJuIHtmYWxzZXx1bmRlZmluZWR9IFJldHVybnMgYGZhbHNlYCBpZiBpdGVyYXRpb24gd2FzIGJyb2tlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYSB7IGNvbG9yOiBibGFjazsgei1pbmRleDogMSB9JylcbiAgICogY29uc3QgcnVsZSA9IHJvb3QuZmlyc3RcbiAgICpcbiAgICogZm9yIChjb25zdCBkZWNsIG9mIHJ1bGUubm9kZXMpIHtcbiAgICogICBkZWNsLmNsb25lQmVmb3JlKHsgcHJvcDogJy13ZWJraXQtJyArIGRlY2wucHJvcCB9KVxuICAgKiAgIC8vIEN5Y2xlIHdpbGwgYmUgaW5maW5pdGUsIGJlY2F1c2UgY2xvbmVCZWZvcmUgbW92ZXMgdGhlIGN1cnJlbnQgbm9kZVxuICAgKiAgIC8vIHRvIHRoZSBuZXh0IGluZGV4XG4gICAqIH1cbiAgICpcbiAgICogcnVsZS5lYWNoKGRlY2wgPT4ge1xuICAgKiAgIGRlY2wuY2xvbmVCZWZvcmUoeyBwcm9wOiAnLXdlYmtpdC0nICsgZGVjbC5wcm9wIH0pXG4gICAqICAgLy8gV2lsbCBiZSBleGVjdXRlZCBvbmx5IGZvciBjb2xvciBhbmQgei1pbmRleFxuICAgKiB9KVxuICAgKi9cbiAgZWFjaCAoY2FsbGJhY2spIHtcbiAgICBpZiAoIXRoaXMubGFzdEVhY2gpIHRoaXMubGFzdEVhY2ggPSAwXG4gICAgaWYgKCF0aGlzLmluZGV4ZXMpIHRoaXMuaW5kZXhlcyA9IHsgfVxuXG4gICAgdGhpcy5sYXN0RWFjaCArPSAxXG4gICAgbGV0IGlkID0gdGhpcy5sYXN0RWFjaFxuICAgIHRoaXMuaW5kZXhlc1tpZF0gPSAwXG5cbiAgICBpZiAoIXRoaXMubm9kZXMpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGxldCBpbmRleCwgcmVzdWx0XG4gICAgd2hpbGUgKHRoaXMuaW5kZXhlc1tpZF0gPCB0aGlzLm5vZGVzLmxlbmd0aCkge1xuICAgICAgaW5kZXggPSB0aGlzLmluZGV4ZXNbaWRdXG4gICAgICByZXN1bHQgPSBjYWxsYmFjayh0aGlzLm5vZGVzW2luZGV4XSwgaW5kZXgpXG4gICAgICBpZiAocmVzdWx0ID09PSBmYWxzZSkgYnJlYWtcblxuICAgICAgdGhpcy5pbmRleGVzW2lkXSArPSAxXG4gICAgfVxuXG4gICAgZGVsZXRlIHRoaXMuaW5kZXhlc1tpZF1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmF2ZXJzZXMgdGhlIGNvbnRhaW5lcuKAmXMgZGVzY2VuZGFudCBub2RlcywgY2FsbGluZyBjYWxsYmFja1xuICAgKiBmb3IgZWFjaCBub2RlLlxuICAgKlxuICAgKiBMaWtlIGNvbnRhaW5lci5lYWNoKCksIHRoaXMgbWV0aG9kIGlzIHNhZmUgdG8gdXNlXG4gICAqIGlmIHlvdSBhcmUgbXV0YXRpbmcgYXJyYXlzIGR1cmluZyBpdGVyYXRpb24uXG4gICAqXG4gICAqIElmIHlvdSBvbmx5IG5lZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBjb250YWluZXLigJlzIGltbWVkaWF0ZSBjaGlsZHJlbixcbiAgICogdXNlIHtAbGluayBDb250YWluZXIjZWFjaH0uXG4gICAqXG4gICAqIEBwYXJhbSB7Y2hpbGRJdGVyYXRvcn0gY2FsbGJhY2sgSXRlcmF0b3IgcmVjZWl2ZXMgZWFjaCBub2RlIGFuZCBpbmRleC5cbiAgICpcbiAgICogQHJldHVybiB7ZmFsc2V8dW5kZWZpbmVkfSBSZXR1cm5zIGBmYWxzZWAgaWYgaXRlcmF0aW9uIHdhcyBicm9rZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogcm9vdC53YWxrKG5vZGUgPT4ge1xuICAgKiAgIC8vIFRyYXZlcnNlcyBhbGwgZGVzY2VuZGFudCBub2Rlcy5cbiAgICogfSlcbiAgICovXG4gIHdhbGsgKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaCgoY2hpbGQsIGkpID0+IHtcbiAgICAgIGxldCByZXN1bHRcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKGNoaWxkLCBpKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlLnBvc3Rjc3NOb2RlID0gY2hpbGRcbiAgICAgICAgaWYgKGUuc3RhY2sgJiYgY2hpbGQuc291cmNlICYmIC9cXG5cXHN7NH1hdCAvLnRlc3QoZS5zdGFjaykpIHtcbiAgICAgICAgICBsZXQgcyA9IGNoaWxkLnNvdXJjZVxuICAgICAgICAgIGUuc3RhY2sgPSBlLnN0YWNrLnJlcGxhY2UoL1xcblxcc3s0fWF0IC8sXG4gICAgICAgICAgICBgJCYkeyBzLmlucHV0LmZyb20gfTokeyBzLnN0YXJ0LmxpbmUgfTokeyBzLnN0YXJ0LmNvbHVtbiB9JCZgKVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQgIT09IGZhbHNlICYmIGNoaWxkLndhbGspIHtcbiAgICAgICAgcmVzdWx0ID0gY2hpbGQud2FsayhjYWxsYmFjaylcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlcyB0aGUgY29udGFpbmVy4oCZcyBkZXNjZW5kYW50IG5vZGVzLCBjYWxsaW5nIGNhbGxiYWNrXG4gICAqIGZvciBlYWNoIGRlY2xhcmF0aW9uIG5vZGUuXG4gICAqXG4gICAqIElmIHlvdSBwYXNzIGEgZmlsdGVyLCBpdGVyYXRpb24gd2lsbCBvbmx5IGhhcHBlbiBvdmVyIGRlY2xhcmF0aW9uc1xuICAgKiB3aXRoIG1hdGNoaW5nIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIExpa2Uge0BsaW5rIENvbnRhaW5lciNlYWNofSwgdGhpcyBtZXRob2QgaXMgc2FmZVxuICAgKiB0byB1c2UgaWYgeW91IGFyZSBtdXRhdGluZyBhcnJheXMgZHVyaW5nIGl0ZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBbcHJvcF0gICBTdHJpbmcgb3IgcmVndWxhciBleHByZXNzaW9uXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gZmlsdGVyIGRlY2xhcmF0aW9ucyBieSBwcm9wZXJ0eSBuYW1lLlxuICAgKiBAcGFyYW0ge2NoaWxkSXRlcmF0b3J9IGNhbGxiYWNrIEl0ZXJhdG9yIHJlY2VpdmVzIGVhY2ggbm9kZSBhbmQgaW5kZXguXG4gICAqXG4gICAqIEByZXR1cm4ge2ZhbHNlfHVuZGVmaW5lZH0gUmV0dXJucyBgZmFsc2VgIGlmIGl0ZXJhdGlvbiB3YXMgYnJva2UuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHJvb3Qud2Fsa0RlY2xzKGRlY2wgPT4ge1xuICAgKiAgIGNoZWNrUHJvcGVydHlTdXBwb3J0KGRlY2wucHJvcClcbiAgICogfSlcbiAgICpcbiAgICogcm9vdC53YWxrRGVjbHMoJ2JvcmRlci1yYWRpdXMnLCBkZWNsID0+IHtcbiAgICogICBkZWNsLnJlbW92ZSgpXG4gICAqIH0pXG4gICAqXG4gICAqIHJvb3Qud2Fsa0RlY2xzKC9eYmFja2dyb3VuZC8sIGRlY2wgPT4ge1xuICAgKiAgIGRlY2wudmFsdWUgPSB0YWtlRmlyc3RDb2xvckZyb21HcmFkaWVudChkZWNsLnZhbHVlKVxuICAgKiB9KVxuICAgKi9cbiAgd2Fsa0RlY2xzIChwcm9wLCBjYWxsYmFjaykge1xuICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrID0gcHJvcFxuICAgICAgcmV0dXJuIHRoaXMud2FsaygoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09ICdkZWNsJykge1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjayhjaGlsZCwgaSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHByb3AgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgIHJldHVybiB0aGlzLndhbGsoKGNoaWxkLCBpKSA9PiB7XG4gICAgICAgIGlmIChjaGlsZC50eXBlID09PSAnZGVjbCcgJiYgcHJvcC50ZXN0KGNoaWxkLnByb3ApKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy53YWxrKChjaGlsZCwgaSkgPT4ge1xuICAgICAgaWYgKGNoaWxkLnR5cGUgPT09ICdkZWNsJyAmJiBjaGlsZC5wcm9wID09PSBwcm9wKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhjaGlsZCwgaSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlcyB0aGUgY29udGFpbmVy4oCZcyBkZXNjZW5kYW50IG5vZGVzLCBjYWxsaW5nIGNhbGxiYWNrXG4gICAqIGZvciBlYWNoIHJ1bGUgbm9kZS5cbiAgICpcbiAgICogSWYgeW91IHBhc3MgYSBmaWx0ZXIsIGl0ZXJhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIG92ZXIgcnVsZXNcbiAgICogd2l0aCBtYXRjaGluZyBzZWxlY3RvcnMuXG4gICAqXG4gICAqIExpa2Uge0BsaW5rIENvbnRhaW5lciNlYWNofSwgdGhpcyBtZXRob2QgaXMgc2FmZVxuICAgKiB0byB1c2UgaWYgeW91IGFyZSBtdXRhdGluZyBhcnJheXMgZHVyaW5nIGl0ZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBbc2VsZWN0b3JdIFN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb25cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGZpbHRlciBydWxlcyBieSBzZWxlY3Rvci5cbiAgICogQHBhcmFtIHtjaGlsZEl0ZXJhdG9yfSBjYWxsYmFjayAgIEl0ZXJhdG9yIHJlY2VpdmVzIGVhY2ggbm9kZSBhbmQgaW5kZXguXG4gICAqXG4gICAqIEByZXR1cm4ge2ZhbHNlfHVuZGVmaW5lZH0gcmV0dXJucyBgZmFsc2VgIGlmIGl0ZXJhdGlvbiB3YXMgYnJva2UuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHNlbGVjdG9ycyA9IFtdXG4gICAqIHJvb3Qud2Fsa1J1bGVzKHJ1bGUgPT4ge1xuICAgKiAgIHNlbGVjdG9ycy5wdXNoKHJ1bGUuc2VsZWN0b3IpXG4gICAqIH0pXG4gICAqIGNvbnNvbGUubG9nKGBZb3VyIENTUyB1c2VzICR7IHNlbGVjdG9ycy5sZW5ndGggfSBzZWxlY3RvcnNgKVxuICAgKi9cbiAgd2Fsa1J1bGVzIChzZWxlY3RvciwgY2FsbGJhY2spIHtcbiAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICBjYWxsYmFjayA9IHNlbGVjdG9yXG5cbiAgICAgIHJldHVybiB0aGlzLndhbGsoKGNoaWxkLCBpKSA9PiB7XG4gICAgICAgIGlmIChjaGlsZC50eXBlID09PSAncnVsZScpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soY2hpbGQsIGkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChzZWxlY3RvciBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHRoaXMud2FsaygoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09ICdydWxlJyAmJiBzZWxlY3Rvci50ZXN0KGNoaWxkLnNlbGVjdG9yKSkge1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjayhjaGlsZCwgaSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMud2FsaygoY2hpbGQsIGkpID0+IHtcbiAgICAgIGlmIChjaGlsZC50eXBlID09PSAncnVsZScgJiYgY2hpbGQuc2VsZWN0b3IgPT09IHNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhjaGlsZCwgaSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlcyB0aGUgY29udGFpbmVy4oCZcyBkZXNjZW5kYW50IG5vZGVzLCBjYWxsaW5nIGNhbGxiYWNrXG4gICAqIGZvciBlYWNoIGF0LXJ1bGUgbm9kZS5cbiAgICpcbiAgICogSWYgeW91IHBhc3MgYSBmaWx0ZXIsIGl0ZXJhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIG92ZXIgYXQtcnVsZXNcbiAgICogdGhhdCBoYXZlIG1hdGNoaW5nIG5hbWVzLlxuICAgKlxuICAgKiBMaWtlIHtAbGluayBDb250YWluZXIjZWFjaH0sIHRoaXMgbWV0aG9kIGlzIHNhZmVcbiAgICogdG8gdXNlIGlmIHlvdSBhcmUgbXV0YXRpbmcgYXJyYXlzIGR1cmluZyBpdGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gW25hbWVdICAgU3RyaW5nIG9yIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGZpbHRlciBhdC1ydWxlcyBieSBuYW1lLlxuICAgKiBAcGFyYW0ge2NoaWxkSXRlcmF0b3J9IGNhbGxiYWNrIEl0ZXJhdG9yIHJlY2VpdmVzIGVhY2ggbm9kZSBhbmQgaW5kZXguXG4gICAqXG4gICAqIEByZXR1cm4ge2ZhbHNlfHVuZGVmaW5lZH0gUmV0dXJucyBgZmFsc2VgIGlmIGl0ZXJhdGlvbiB3YXMgYnJva2UuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHJvb3Qud2Fsa0F0UnVsZXMocnVsZSA9PiB7XG4gICAqICAgaWYgKGlzT2xkKHJ1bGUubmFtZSkpIHJ1bGUucmVtb3ZlKClcbiAgICogfSlcbiAgICpcbiAgICogbGV0IGZpcnN0ID0gZmFsc2VcbiAgICogcm9vdC53YWxrQXRSdWxlcygnY2hhcnNldCcsIHJ1bGUgPT4ge1xuICAgKiAgIGlmICghZmlyc3QpIHtcbiAgICogICAgIGZpcnN0ID0gdHJ1ZVxuICAgKiAgIH0gZWxzZSB7XG4gICAqICAgICBydWxlLnJlbW92ZSgpXG4gICAqICAgfVxuICAgKiB9KVxuICAgKi9cbiAgd2Fsa0F0UnVsZXMgKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sgPSBuYW1lXG4gICAgICByZXR1cm4gdGhpcy53YWxrKChjaGlsZCwgaSkgPT4ge1xuICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ2F0cnVsZScpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soY2hpbGQsIGkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChuYW1lIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICByZXR1cm4gdGhpcy53YWxrKChjaGlsZCwgaSkgPT4ge1xuICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ2F0cnVsZScgJiYgbmFtZS50ZXN0KGNoaWxkLm5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy53YWxrKChjaGlsZCwgaSkgPT4ge1xuICAgICAgaWYgKGNoaWxkLnR5cGUgPT09ICdhdHJ1bGUnICYmIGNoaWxkLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVHJhdmVyc2VzIHRoZSBjb250YWluZXLigJlzIGRlc2NlbmRhbnQgbm9kZXMsIGNhbGxpbmcgY2FsbGJhY2tcbiAgICogZm9yIGVhY2ggY29tbWVudCBub2RlLlxuICAgKlxuICAgKiBMaWtlIHtAbGluayBDb250YWluZXIjZWFjaH0sIHRoaXMgbWV0aG9kIGlzIHNhZmVcbiAgICogdG8gdXNlIGlmIHlvdSBhcmUgbXV0YXRpbmcgYXJyYXlzIGR1cmluZyBpdGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7Y2hpbGRJdGVyYXRvcn0gY2FsbGJhY2sgSXRlcmF0b3IgcmVjZWl2ZXMgZWFjaCBub2RlIGFuZCBpbmRleC5cbiAgICpcbiAgICogQHJldHVybiB7ZmFsc2V8dW5kZWZpbmVkfSBSZXR1cm5zIGBmYWxzZWAgaWYgaXRlcmF0aW9uIHdhcyBicm9rZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogcm9vdC53YWxrQ29tbWVudHMoY29tbWVudCA9PiB7XG4gICAqICAgY29tbWVudC5yZW1vdmUoKVxuICAgKiB9KVxuICAgKi9cbiAgd2Fsa0NvbW1lbnRzIChjYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLndhbGsoKGNoaWxkLCBpKSA9PiB7XG4gICAgICBpZiAoY2hpbGQudHlwZSA9PT0gJ2NvbW1lbnQnKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhjaGlsZCwgaSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydHMgbmV3IG5vZGVzIHRvIHRoZSBlbmQgb2YgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQHBhcmFtIHsuLi4oTm9kZXxvYmplY3R8c3RyaW5nfE5vZGVbXSl9IGNoaWxkcmVuIE5ldyBub2Rlcy5cbiAgICpcbiAgICogQHJldHVybiB7Tm9kZX0gVGhpcyBub2RlIGZvciBtZXRob2RzIGNoYWluLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBkZWNsMSA9IHBvc3Rjc3MuZGVjbCh7IHByb3A6ICdjb2xvcicsIHZhbHVlOiAnYmxhY2snIH0pXG4gICAqIGNvbnN0IGRlY2wyID0gcG9zdGNzcy5kZWNsKHsgcHJvcDogJ2JhY2tncm91bmQtY29sb3InLCB2YWx1ZTogJ3doaXRlJyB9KVxuICAgKiBydWxlLmFwcGVuZChkZWNsMSwgZGVjbDIpXG4gICAqXG4gICAqIHJvb3QuYXBwZW5kKHsgbmFtZTogJ2NoYXJzZXQnLCBwYXJhbXM6ICdcIlVURi04XCInIH0pICAvLyBhdC1ydWxlXG4gICAqIHJvb3QuYXBwZW5kKHsgc2VsZWN0b3I6ICdhJyB9KSAgICAgICAgICAgICAgICAgICAgICAgLy8gcnVsZVxuICAgKiBydWxlLmFwcGVuZCh7IHByb3A6ICdjb2xvcicsIHZhbHVlOiAnYmxhY2snIH0pICAgICAgIC8vIGRlY2xhcmF0aW9uXG4gICAqIHJ1bGUuYXBwZW5kKHsgdGV4dDogJ0NvbW1lbnQnIH0pICAgICAgICAgICAgICAgICAgICAgLy8gY29tbWVudFxuICAgKlxuICAgKiByb290LmFwcGVuZCgnYSB7fScpXG4gICAqIHJvb3QuZmlyc3QuYXBwZW5kKCdjb2xvcjogYmxhY2s7IHotaW5kZXg6IDEnKVxuICAgKi9cbiAgYXBwZW5kICguLi5jaGlsZHJlbikge1xuICAgIGZvciAobGV0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICBsZXQgbm9kZXMgPSB0aGlzLm5vcm1hbGl6ZShjaGlsZCwgdGhpcy5sYXN0KVxuICAgICAgZm9yIChsZXQgbm9kZSBvZiBub2RlcykgdGhpcy5ub2Rlcy5wdXNoKG5vZGUpXG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogSW5zZXJ0cyBuZXcgbm9kZXMgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7Li4uKE5vZGV8b2JqZWN0fHN0cmluZ3xOb2RlW10pfSBjaGlsZHJlbiBOZXcgbm9kZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge05vZGV9IFRoaXMgbm9kZSBmb3IgbWV0aG9kcyBjaGFpbi5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgZGVjbDEgPSBwb3N0Y3NzLmRlY2woeyBwcm9wOiAnY29sb3InLCB2YWx1ZTogJ2JsYWNrJyB9KVxuICAgKiBjb25zdCBkZWNsMiA9IHBvc3Rjc3MuZGVjbCh7IHByb3A6ICdiYWNrZ3JvdW5kLWNvbG9yJywgdmFsdWU6ICd3aGl0ZScgfSlcbiAgICogcnVsZS5wcmVwZW5kKGRlY2wxLCBkZWNsMilcbiAgICpcbiAgICogcm9vdC5hcHBlbmQoeyBuYW1lOiAnY2hhcnNldCcsIHBhcmFtczogJ1wiVVRGLThcIicgfSkgIC8vIGF0LXJ1bGVcbiAgICogcm9vdC5hcHBlbmQoeyBzZWxlY3RvcjogJ2EnIH0pICAgICAgICAgICAgICAgICAgICAgICAvLyBydWxlXG4gICAqIHJ1bGUuYXBwZW5kKHsgcHJvcDogJ2NvbG9yJywgdmFsdWU6ICdibGFjaycgfSkgICAgICAgLy8gZGVjbGFyYXRpb25cbiAgICogcnVsZS5hcHBlbmQoeyB0ZXh0OiAnQ29tbWVudCcgfSkgICAgICAgICAgICAgICAgICAgICAvLyBjb21tZW50XG4gICAqXG4gICAqIHJvb3QuYXBwZW5kKCdhIHt9JylcbiAgICogcm9vdC5maXJzdC5hcHBlbmQoJ2NvbG9yOiBibGFjazsgei1pbmRleDogMScpXG4gICAqL1xuICBwcmVwZW5kICguLi5jaGlsZHJlbikge1xuICAgIGNoaWxkcmVuID0gY2hpbGRyZW4ucmV2ZXJzZSgpXG4gICAgZm9yIChsZXQgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGxldCBub2RlcyA9IHRoaXMubm9ybWFsaXplKGNoaWxkLCB0aGlzLmZpcnN0LCAncHJlcGVuZCcpLnJldmVyc2UoKVxuICAgICAgZm9yIChsZXQgbm9kZSBvZiBub2RlcykgdGhpcy5ub2Rlcy51bnNoaWZ0KG5vZGUpXG4gICAgICBmb3IgKGxldCBpZCBpbiB0aGlzLmluZGV4ZXMpIHtcbiAgICAgICAgdGhpcy5pbmRleGVzW2lkXSA9IHRoaXMuaW5kZXhlc1tpZF0gKyBub2Rlcy5sZW5ndGhcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGNsZWFuUmF3cyAoa2VlcEJldHdlZW4pIHtcbiAgICBzdXBlci5jbGVhblJhd3Moa2VlcEJldHdlZW4pXG4gICAgaWYgKHRoaXMubm9kZXMpIHtcbiAgICAgIGZvciAobGV0IG5vZGUgb2YgdGhpcy5ub2Rlcykgbm9kZS5jbGVhblJhd3Moa2VlcEJldHdlZW4pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCBuZXcgbm9kZSBiZWZvcmUgb2xkIG5vZGUgd2l0aGluIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7Tm9kZXxudW1iZXJ9IGV4aXN0ICAgICAgICAgICAgIENoaWxkIG9yIGNoaWxk4oCZcyBpbmRleC5cbiAgICogQHBhcmFtIHtOb2RlfG9iamVjdHxzdHJpbmd8Tm9kZVtdfSBhZGQgTmV3IG5vZGUuXG4gICAqXG4gICAqIEByZXR1cm4ge05vZGV9IFRoaXMgbm9kZSBmb3IgbWV0aG9kcyBjaGFpbi5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogcnVsZS5pbnNlcnRCZWZvcmUoZGVjbCwgZGVjbC5jbG9uZSh7IHByb3A6ICctd2Via2l0LScgKyBkZWNsLnByb3AgfSkpXG4gICAqL1xuICBpbnNlcnRCZWZvcmUgKGV4aXN0LCBhZGQpIHtcbiAgICBleGlzdCA9IHRoaXMuaW5kZXgoZXhpc3QpXG5cbiAgICBsZXQgdHlwZSA9IGV4aXN0ID09PSAwID8gJ3ByZXBlbmQnIDogZmFsc2VcbiAgICBsZXQgbm9kZXMgPSB0aGlzLm5vcm1hbGl6ZShhZGQsIHRoaXMubm9kZXNbZXhpc3RdLCB0eXBlKS5yZXZlcnNlKClcbiAgICBmb3IgKGxldCBub2RlIG9mIG5vZGVzKSB0aGlzLm5vZGVzLnNwbGljZShleGlzdCwgMCwgbm9kZSlcblxuICAgIGxldCBpbmRleFxuICAgIGZvciAobGV0IGlkIGluIHRoaXMuaW5kZXhlcykge1xuICAgICAgaW5kZXggPSB0aGlzLmluZGV4ZXNbaWRdXG4gICAgICBpZiAoZXhpc3QgPD0gaW5kZXgpIHtcbiAgICAgICAgdGhpcy5pbmRleGVzW2lkXSA9IGluZGV4ICsgbm9kZXMubGVuZ3RoXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnNlcnQgbmV3IG5vZGUgYWZ0ZXIgb2xkIG5vZGUgd2l0aGluIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7Tm9kZXxudW1iZXJ9IGV4aXN0ICAgICAgICAgICAgIENoaWxkIG9yIGNoaWxk4oCZcyBpbmRleC5cbiAgICogQHBhcmFtIHtOb2RlfG9iamVjdHxzdHJpbmd8Tm9kZVtdfSBhZGQgTmV3IG5vZGUuXG4gICAqXG4gICAqIEByZXR1cm4ge05vZGV9IFRoaXMgbm9kZSBmb3IgbWV0aG9kcyBjaGFpbi5cbiAgICovXG4gIGluc2VydEFmdGVyIChleGlzdCwgYWRkKSB7XG4gICAgZXhpc3QgPSB0aGlzLmluZGV4KGV4aXN0KVxuXG4gICAgbGV0IG5vZGVzID0gdGhpcy5ub3JtYWxpemUoYWRkLCB0aGlzLm5vZGVzW2V4aXN0XSkucmV2ZXJzZSgpXG4gICAgZm9yIChsZXQgbm9kZSBvZiBub2RlcykgdGhpcy5ub2Rlcy5zcGxpY2UoZXhpc3QgKyAxLCAwLCBub2RlKVxuXG4gICAgbGV0IGluZGV4XG4gICAgZm9yIChsZXQgaWQgaW4gdGhpcy5pbmRleGVzKSB7XG4gICAgICBpbmRleCA9IHRoaXMuaW5kZXhlc1tpZF1cbiAgICAgIGlmIChleGlzdCA8IGluZGV4KSB7XG4gICAgICAgIHRoaXMuaW5kZXhlc1tpZF0gPSBpbmRleCArIG5vZGVzLmxlbmd0aFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBub2RlIGZyb20gdGhlIGNvbnRhaW5lciBhbmQgY2xlYW5zIHRoZSBwYXJlbnQgcHJvcGVydGllc1xuICAgKiBmcm9tIHRoZSBub2RlIGFuZCBpdHMgY2hpbGRyZW4uXG4gICAqXG4gICAqIEBwYXJhbSB7Tm9kZXxudW1iZXJ9IGNoaWxkIENoaWxkIG9yIGNoaWxk4oCZcyBpbmRleC5cbiAgICpcbiAgICogQHJldHVybiB7Tm9kZX0gVGhpcyBub2RlIGZvciBtZXRob2RzIGNoYWluXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHJ1bGUubm9kZXMubGVuZ3RoICAvLz0+IDVcbiAgICogcnVsZS5yZW1vdmVDaGlsZChkZWNsKVxuICAgKiBydWxlLm5vZGVzLmxlbmd0aCAgLy89PiA0XG4gICAqIGRlY2wucGFyZW50ICAgICAgICAvLz0+IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVtb3ZlQ2hpbGQgKGNoaWxkKSB7XG4gICAgY2hpbGQgPSB0aGlzLmluZGV4KGNoaWxkKVxuICAgIHRoaXMubm9kZXNbY2hpbGRdLnBhcmVudCA9IHVuZGVmaW5lZFxuICAgIHRoaXMubm9kZXMuc3BsaWNlKGNoaWxkLCAxKVxuXG4gICAgbGV0IGluZGV4XG4gICAgZm9yIChsZXQgaWQgaW4gdGhpcy5pbmRleGVzKSB7XG4gICAgICBpbmRleCA9IHRoaXMuaW5kZXhlc1tpZF1cbiAgICAgIGlmIChpbmRleCA+PSBjaGlsZCkge1xuICAgICAgICB0aGlzLmluZGV4ZXNbaWRdID0gaW5kZXggLSAxXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFsbCBjaGlsZHJlbiBmcm9tIHRoZSBjb250YWluZXJcbiAgICogYW5kIGNsZWFucyB0aGVpciBwYXJlbnQgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHJldHVybiB7Tm9kZX0gVGhpcyBub2RlIGZvciBtZXRob2RzIGNoYWluLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBydWxlLnJlbW92ZUFsbCgpXG4gICAqIHJ1bGUubm9kZXMubGVuZ3RoIC8vPT4gMFxuICAgKi9cbiAgcmVtb3ZlQWxsICgpIHtcbiAgICBmb3IgKGxldCBub2RlIG9mIHRoaXMubm9kZXMpIG5vZGUucGFyZW50ID0gdW5kZWZpbmVkXG4gICAgdGhpcy5ub2RlcyA9IFtdXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXNzZXMgYWxsIGRlY2xhcmF0aW9uIHZhbHVlcyB3aXRoaW4gdGhlIGNvbnRhaW5lciB0aGF0IG1hdGNoIHBhdHRlcm5cbiAgICogdGhyb3VnaCBjYWxsYmFjaywgcmVwbGFjaW5nIHRob3NlIHZhbHVlcyB3aXRoIHRoZSByZXR1cm5lZCByZXN1bHRcbiAgICogb2YgY2FsbGJhY2suXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3UgYXJlIHVzaW5nIGEgY3VzdG9tIHVuaXQgb3IgZnVuY3Rpb25cbiAgICogYW5kIG5lZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGFsbCB2YWx1ZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gcGF0dGVybiAgICAgIFJlcGxhY2UgcGF0dGVybi5cbiAgICogQHBhcmFtIHtvYmplY3R9IG9wdHMgICAgICAgICAgICAgICAgT3B0aW9ucyB0byBzcGVlZCB1cCB0aGUgc2VhcmNoLlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gb3B0cy5wcm9wcyBBbiBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuZmFzdCAgICAgICAgICAgU3RyaW5nIHRoYXTigJlzIHVzZWQgdG8gbmFycm93IGRvd25cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzIGFuZCBzcGVlZCB1cCB0aGUgcmVnZXhwIHNlYXJjaC5cbiAgICogQHBhcmFtIHtmdW5jdGlvbnxzdHJpbmd9IGNhbGxiYWNrICAgU3RyaW5nIHRvIHJlcGxhY2UgcGF0dGVybiBvciBjYWxsYmFja1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHJldHVybnMgYSBuZXcgdmFsdWUuIFRoZSBjYWxsYmFja1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIHJlY2VpdmUgdGhlIHNhbWUgYXJndW1lbnRzXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIHRob3NlIHBhc3NlZCB0byBhIGZ1bmN0aW9uIHBhcmFtZXRlclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBgU3RyaW5nI3JlcGxhY2VgLlxuICAgKlxuICAgKiBAcmV0dXJuIHtOb2RlfSBUaGlzIG5vZGUgZm9yIG1ldGhvZHMgY2hhaW4uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHJvb3QucmVwbGFjZVZhbHVlcygvXFxkK3JlbS8sIHsgZmFzdDogJ3JlbScgfSwgc3RyaW5nID0+IHtcbiAgICogICByZXR1cm4gMTUgKiBwYXJzZUludChzdHJpbmcpICsgJ3B4J1xuICAgKiB9KVxuICAgKi9cbiAgcmVwbGFjZVZhbHVlcyAocGF0dGVybiwgb3B0cywgY2FsbGJhY2spIHtcbiAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdHNcbiAgICAgIG9wdHMgPSB7IH1cbiAgICB9XG5cbiAgICB0aGlzLndhbGtEZWNscyhkZWNsID0+IHtcbiAgICAgIGlmIChvcHRzLnByb3BzICYmIG9wdHMucHJvcHMuaW5kZXhPZihkZWNsLnByb3ApID09PSAtMSkgcmV0dXJuXG4gICAgICBpZiAob3B0cy5mYXN0ICYmIGRlY2wudmFsdWUuaW5kZXhPZihvcHRzLmZhc3QpID09PSAtMSkgcmV0dXJuXG5cbiAgICAgIGRlY2wudmFsdWUgPSBkZWNsLnZhbHVlLnJlcGxhY2UocGF0dGVybiwgY2FsbGJhY2spXG4gICAgfSlcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgY2FsbGJhY2sgcmV0dXJucyBgdHJ1ZWBcbiAgICogZm9yIGFsbCBvZiB0aGUgY29udGFpbmVy4oCZcyBjaGlsZHJlbi5cbiAgICpcbiAgICogQHBhcmFtIHtjaGlsZENvbmRpdGlvbn0gY29uZGl0aW9uIEl0ZXJhdG9yIHJldHVybnMgdHJ1ZSBvciBmYWxzZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gSXMgZXZlcnkgY2hpbGQgcGFzcyBjb25kaXRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IG5vUHJlZml4ZXMgPSBydWxlLmV2ZXJ5KGkgPT4gaS5wcm9wWzBdICE9PSAnLScpXG4gICAqL1xuICBldmVyeSAoY29uZGl0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXMuZXZlcnkoY29uZGl0aW9uKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYHRydWVgIGlmIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciAoYXQgbGVhc3QpIG9uZVxuICAgKiBvZiB0aGUgY29udGFpbmVy4oCZcyBjaGlsZHJlbi5cbiAgICpcbiAgICogQHBhcmFtIHtjaGlsZENvbmRpdGlvbn0gY29uZGl0aW9uIEl0ZXJhdG9yIHJldHVybnMgdHJ1ZSBvciBmYWxzZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gSXMgc29tZSBjaGlsZCBwYXNzIGNvbmRpdGlvbi5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgaGFzUHJlZml4ID0gcnVsZS5zb21lKGkgPT4gaS5wcm9wWzBdID09PSAnLScpXG4gICAqL1xuICBzb21lIChjb25kaXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5ub2Rlcy5zb21lKGNvbmRpdGlvbilcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYGNoaWxkYOKAmXMgaW5kZXggd2l0aGluIHRoZSB7QGxpbmsgQ29udGFpbmVyI25vZGVzfSBhcnJheS5cbiAgICpcbiAgICogQHBhcmFtIHtOb2RlfSBjaGlsZCBDaGlsZCBvZiB0aGUgY3VycmVudCBjb250YWluZXIuXG4gICAqXG4gICAqIEByZXR1cm4ge251bWJlcn0gQ2hpbGQgaW5kZXguXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHJ1bGUuaW5kZXgoIHJ1bGUubm9kZXNbMl0gKSAvLz0+IDJcbiAgICovXG4gIGluZGV4IChjaGlsZCkge1xuICAgIGlmICh0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gY2hpbGRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubm9kZXMuaW5kZXhPZihjaGlsZClcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmVy4oCZcyBmaXJzdCBjaGlsZC5cbiAgICpcbiAgICogQHR5cGUge05vZGV9XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHJ1bGUuZmlyc3QgPT09IHJ1bGVzLm5vZGVzWzBdXG4gICAqL1xuICBnZXQgZmlyc3QgKCkge1xuICAgIGlmICghdGhpcy5ub2RlcykgcmV0dXJuIHVuZGVmaW5lZFxuICAgIHJldHVybiB0aGlzLm5vZGVzWzBdXG4gIH1cblxuICAvKipcbiAgICogVGhlIGNvbnRhaW5lcuKAmXMgbGFzdCBjaGlsZC5cbiAgICpcbiAgICogQHR5cGUge05vZGV9XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHJ1bGUubGFzdCA9PT0gcnVsZS5ub2Rlc1tydWxlLm5vZGVzLmxlbmd0aCAtIDFdXG4gICAqL1xuICBnZXQgbGFzdCAoKSB7XG4gICAgaWYgKCF0aGlzLm5vZGVzKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgcmV0dXJuIHRoaXMubm9kZXNbdGhpcy5ub2Rlcy5sZW5ndGggLSAxXVxuICB9XG5cbiAgbm9ybWFsaXplIChub2Rlcywgc2FtcGxlKSB7XG4gICAgaWYgKHR5cGVvZiBub2RlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBwYXJzZSA9IHJlcXVpcmUoJy4vcGFyc2UnKVxuICAgICAgbm9kZXMgPSBjbGVhblNvdXJjZShwYXJzZShub2Rlcykubm9kZXMpXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5vZGVzKSkge1xuICAgICAgbm9kZXMgPSBub2Rlcy5zbGljZSgwKVxuICAgICAgZm9yIChsZXQgaSBvZiBub2Rlcykge1xuICAgICAgICBpZiAoaS5wYXJlbnQpIGkucGFyZW50LnJlbW92ZUNoaWxkKGksICdpZ25vcmUnKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZXMudHlwZSA9PT0gJ3Jvb3QnKSB7XG4gICAgICBub2RlcyA9IG5vZGVzLm5vZGVzLnNsaWNlKDApXG4gICAgICBmb3IgKGxldCBpIG9mIG5vZGVzKSB7XG4gICAgICAgIGlmIChpLnBhcmVudCkgaS5wYXJlbnQucmVtb3ZlQ2hpbGQoaSwgJ2lnbm9yZScpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2Rlcy50eXBlKSB7XG4gICAgICBub2RlcyA9IFtub2Rlc11cbiAgICB9IGVsc2UgaWYgKG5vZGVzLnByb3ApIHtcbiAgICAgIGlmICh0eXBlb2Ygbm9kZXMudmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgZmllbGQgaXMgbWlzc2VkIGluIG5vZGUgY3JlYXRpb24nKVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygbm9kZXMudmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5vZGVzLnZhbHVlID0gU3RyaW5nKG5vZGVzLnZhbHVlKVxuICAgICAgfVxuICAgICAgbm9kZXMgPSBbbmV3IERlY2xhcmF0aW9uKG5vZGVzKV1cbiAgICB9IGVsc2UgaWYgKG5vZGVzLnNlbGVjdG9yKSB7XG4gICAgICBsZXQgUnVsZSA9IHJlcXVpcmUoJy4vcnVsZScpXG4gICAgICBub2RlcyA9IFtuZXcgUnVsZShub2RlcyldXG4gICAgfSBlbHNlIGlmIChub2Rlcy5uYW1lKSB7XG4gICAgICBsZXQgQXRSdWxlID0gcmVxdWlyZSgnLi9hdC1ydWxlJylcbiAgICAgIG5vZGVzID0gW25ldyBBdFJ1bGUobm9kZXMpXVxuICAgIH0gZWxzZSBpZiAobm9kZXMudGV4dCkge1xuICAgICAgbm9kZXMgPSBbbmV3IENvbW1lbnQobm9kZXMpXVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbm9kZSB0eXBlIGluIG5vZGUgY3JlYXRpb24nKVxuICAgIH1cblxuICAgIGxldCBwcm9jZXNzZWQgPSBub2Rlcy5tYXAoaSA9PiB7XG4gICAgICBpZiAoaS5wYXJlbnQpIGkucGFyZW50LnJlbW92ZUNoaWxkKGkpXG4gICAgICBpZiAodHlwZW9mIGkucmF3cy5iZWZvcmUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChzYW1wbGUgJiYgdHlwZW9mIHNhbXBsZS5yYXdzLmJlZm9yZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBpLnJhd3MuYmVmb3JlID0gc2FtcGxlLnJhd3MuYmVmb3JlLnJlcGxhY2UoL1teXFxzXS9nLCAnJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaS5wYXJlbnQgPSB0aGlzXG4gICAgICByZXR1cm4gaVxuICAgIH0pXG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkXG4gIH1cblxuICAvKipcbiAgICogQG1lbWJlcm9mIENvbnRhaW5lciNcbiAgICogQG1lbWJlciB7Tm9kZVtdfSBub2RlcyBBbiBhcnJheSBjb250YWluaW5nIHRoZSBjb250YWluZXLigJlzIGNoaWxkcmVuLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYSB7IGNvbG9yOiBibGFjayB9JylcbiAgICogcm9vdC5ub2Rlcy5sZW5ndGggICAgICAgICAgIC8vPT4gMVxuICAgKiByb290Lm5vZGVzWzBdLnNlbGVjdG9yICAgICAgLy89PiAnYSdcbiAgICogcm9vdC5ub2Rlc1swXS5ub2Rlc1swXS5wcm9wIC8vPT4gJ2NvbG9yJ1xuICAgKi9cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29udGFpbmVyXG5cbi8qKlxuICogQGNhbGxiYWNrIGNoaWxkQ29uZGl0aW9uXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgICAgQ29udGFpbmVyIGNoaWxkLlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IENoaWxkIGluZGV4LlxuICogQHBhcmFtIHtOb2RlW119IG5vZGVzIEFsbCBjb250YWluZXIgY2hpbGRyZW4uXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIGNoaWxkSXRlcmF0b3JcbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAgICBDb250YWluZXIgY2hpbGQuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggQ2hpbGQgaW5kZXguXG4gKiBAcmV0dXJuIHtmYWxzZXx1bmRlZmluZWR9IFJldHVybmluZyBgZmFsc2VgIHdpbGwgYnJlYWsgaXRlcmF0aW9uLlxuICovXG4iXSwiZmlsZSI6ImNvbnRhaW5lci5qcyJ9