create-docusaurus 0.0.0-4466 → 0.0.0-4484

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 (872) hide show
  1. package/lib/index.js +3 -4
  2. package/package.json +3 -3
  3. package/templates/classic/package.json +3 -3
  4. package/templates/classic-typescript/package.json +4 -4
  5. package/templates/facebook/package.json +3 -3
  6. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/CHANGELOG.md +0 -18
  7. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/LICENSE +0 -21
  8. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/README.md +0 -91
  9. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/camel-case.js +0 -13
  10. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/extract.js +0 -462
  11. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/get-template.js +0 -7
  12. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/index.js +0 -6
  13. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/literal.js +0 -23
  14. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-parse.js +0 -15
  15. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-parser.js +0 -357
  16. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-stringifier.js +0 -153
  17. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-stringify.js +0 -9
  18. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object-syntax.js +0 -11
  19. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/object.js +0 -24
  20. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/package.json +0 -119
  21. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-parse.js +0 -19
  22. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-parser-helper.js +0 -260
  23. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-parser.js +0 -20
  24. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-safe-parse.js +0 -19
  25. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-safe-parser.js +0 -21
  26. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-stringifier.js +0 -23
  27. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-stringify.js +0 -9
  28. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/template-tokenize.js +0 -67
  29. package/templates/facebook/node_modules/@stylelint/postcss-css-in-js/un-camel-case.js +0 -13
  30. package/templates/facebook/node_modules/@stylelint/postcss-markdown/CHANGELOG.md +0 -13
  31. package/templates/facebook/node_modules/@stylelint/postcss-markdown/LICENSE +0 -21
  32. package/templates/facebook/node_modules/@stylelint/postcss-markdown/README.md +0 -92
  33. package/templates/facebook/node_modules/@stylelint/postcss-markdown/extract.js +0 -42
  34. package/templates/facebook/node_modules/@stylelint/postcss-markdown/index.js +0 -5
  35. package/templates/facebook/node_modules/@stylelint/postcss-markdown/package.json +0 -63
  36. package/templates/facebook/node_modules/autoprefixer/LICENSE +0 -20
  37. package/templates/facebook/node_modules/autoprefixer/README.md +0 -73
  38. package/templates/facebook/node_modules/autoprefixer/bin/autoprefixer +0 -22
  39. package/templates/facebook/node_modules/autoprefixer/data/prefixes.js +0 -714
  40. package/templates/facebook/node_modules/autoprefixer/lib/at-rule.js +0 -62
  41. package/templates/facebook/node_modules/autoprefixer/lib/autoprefixer.js +0 -150
  42. package/templates/facebook/node_modules/autoprefixer/lib/brackets.js +0 -64
  43. package/templates/facebook/node_modules/autoprefixer/lib/browsers.js +0 -96
  44. package/templates/facebook/node_modules/autoprefixer/lib/declaration.js +0 -243
  45. package/templates/facebook/node_modules/autoprefixer/lib/hacks/align-content.js +0 -79
  46. package/templates/facebook/node_modules/autoprefixer/lib/hacks/align-items.js +0 -76
  47. package/templates/facebook/node_modules/autoprefixer/lib/hacks/align-self.js +0 -84
  48. package/templates/facebook/node_modules/autoprefixer/lib/hacks/animation.js +0 -35
  49. package/templates/facebook/node_modules/autoprefixer/lib/hacks/appearance.js +0 -39
  50. package/templates/facebook/node_modules/autoprefixer/lib/hacks/backdrop-filter.js +0 -35
  51. package/templates/facebook/node_modules/autoprefixer/lib/hacks/background-clip.js +0 -41
  52. package/templates/facebook/node_modules/autoprefixer/lib/hacks/background-size.js +0 -38
  53. package/templates/facebook/node_modules/autoprefixer/lib/hacks/block-logical.js +0 -48
  54. package/templates/facebook/node_modules/autoprefixer/lib/hacks/border-image.js +0 -33
  55. package/templates/facebook/node_modules/autoprefixer/lib/hacks/border-radius.js +0 -62
  56. package/templates/facebook/node_modules/autoprefixer/lib/hacks/break-props.js +0 -76
  57. package/templates/facebook/node_modules/autoprefixer/lib/hacks/color-adjust.js +0 -40
  58. package/templates/facebook/node_modules/autoprefixer/lib/hacks/cross-fade.js +0 -54
  59. package/templates/facebook/node_modules/autoprefixer/lib/hacks/display-flex.js +0 -94
  60. package/templates/facebook/node_modules/autoprefixer/lib/hacks/display-grid.js +0 -41
  61. package/templates/facebook/node_modules/autoprefixer/lib/hacks/filter-value.js +0 -31
  62. package/templates/facebook/node_modules/autoprefixer/lib/hacks/filter.js +0 -33
  63. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-basis.js +0 -72
  64. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-direction.js +0 -108
  65. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-flow.js +0 -81
  66. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-grow.js +0 -57
  67. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-shrink.js +0 -72
  68. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-spec.js +0 -22
  69. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex-wrap.js +0 -40
  70. package/templates/facebook/node_modules/autoprefixer/lib/hacks/flex.js +0 -85
  71. package/templates/facebook/node_modules/autoprefixer/lib/hacks/fullscreen.js +0 -40
  72. package/templates/facebook/node_modules/autoprefixer/lib/hacks/gradient.js +0 -519
  73. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-area.js +0 -52
  74. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-column-align.js +0 -48
  75. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-end.js +0 -62
  76. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-row-align.js +0 -48
  77. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-row-column.js +0 -52
  78. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js +0 -149
  79. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-start.js +0 -55
  80. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-template-areas.js +0 -101
  81. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-template.js +0 -90
  82. package/templates/facebook/node_modules/autoprefixer/lib/hacks/grid-utils.js +0 -1123
  83. package/templates/facebook/node_modules/autoprefixer/lib/hacks/image-rendering.js +0 -71
  84. package/templates/facebook/node_modules/autoprefixer/lib/hacks/image-set.js +0 -38
  85. package/templates/facebook/node_modules/autoprefixer/lib/hacks/inline-logical.js +0 -40
  86. package/templates/facebook/node_modules/autoprefixer/lib/hacks/intrinsic.js +0 -74
  87. package/templates/facebook/node_modules/autoprefixer/lib/hacks/justify-content.js +0 -85
  88. package/templates/facebook/node_modules/autoprefixer/lib/hacks/mask-border.js +0 -46
  89. package/templates/facebook/node_modules/autoprefixer/lib/hacks/mask-composite.js +0 -104
  90. package/templates/facebook/node_modules/autoprefixer/lib/hacks/order.js +0 -72
  91. package/templates/facebook/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js +0 -54
  92. package/templates/facebook/node_modules/autoprefixer/lib/hacks/pixelated.js +0 -58
  93. package/templates/facebook/node_modules/autoprefixer/lib/hacks/place-self.js +0 -55
  94. package/templates/facebook/node_modules/autoprefixer/lib/hacks/placeholder-shown.js +0 -36
  95. package/templates/facebook/node_modules/autoprefixer/lib/hacks/placeholder.js +0 -56
  96. package/templates/facebook/node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js +0 -38
  97. package/templates/facebook/node_modules/autoprefixer/lib/hacks/text-decoration.js +0 -36
  98. package/templates/facebook/node_modules/autoprefixer/lib/hacks/text-emphasis-position.js +0 -33
  99. package/templates/facebook/node_modules/autoprefixer/lib/hacks/transform-decl.js +0 -105
  100. package/templates/facebook/node_modules/autoprefixer/lib/hacks/user-select.js +0 -36
  101. package/templates/facebook/node_modules/autoprefixer/lib/hacks/writing-mode.js +0 -59
  102. package/templates/facebook/node_modules/autoprefixer/lib/info.js +0 -149
  103. package/templates/facebook/node_modules/autoprefixer/lib/old-selector.js +0 -88
  104. package/templates/facebook/node_modules/autoprefixer/lib/old-value.js +0 -30
  105. package/templates/facebook/node_modules/autoprefixer/lib/prefixer.js +0 -167
  106. package/templates/facebook/node_modules/autoprefixer/lib/prefixes.js +0 -471
  107. package/templates/facebook/node_modules/autoprefixer/lib/processor.js +0 -703
  108. package/templates/facebook/node_modules/autoprefixer/lib/resolution.js +0 -125
  109. package/templates/facebook/node_modules/autoprefixer/lib/selector.js +0 -198
  110. package/templates/facebook/node_modules/autoprefixer/lib/supports.js +0 -346
  111. package/templates/facebook/node_modules/autoprefixer/lib/transition.js +0 -411
  112. package/templates/facebook/node_modules/autoprefixer/lib/utils.js +0 -103
  113. package/templates/facebook/node_modules/autoprefixer/lib/value.js +0 -164
  114. package/templates/facebook/node_modules/autoprefixer/package.json +0 -30
  115. package/templates/facebook/node_modules/known-css-properties/LICENSE +0 -21
  116. package/templates/facebook/node_modules/known-css-properties/README.md +0 -48
  117. package/templates/facebook/node_modules/known-css-properties/data/all.json +0 -1144
  118. package/templates/facebook/node_modules/known-css-properties/index.js +0 -1
  119. package/templates/facebook/node_modules/known-css-properties/package.json +0 -56
  120. package/templates/facebook/node_modules/meow/index.d.ts +0 -315
  121. package/templates/facebook/node_modules/meow/index.js +0 -236
  122. package/templates/facebook/node_modules/meow/license +0 -9
  123. package/templates/facebook/node_modules/meow/package.json +0 -77
  124. package/templates/facebook/node_modules/meow/readme.md +0 -352
  125. package/templates/facebook/node_modules/picocolors/LICENSE +0 -15
  126. package/templates/facebook/node_modules/picocolors/README.md +0 -23
  127. package/templates/facebook/node_modules/picocolors/package.json +0 -25
  128. package/templates/facebook/node_modules/picocolors/picocolors.browser.js +0 -4
  129. package/templates/facebook/node_modules/picocolors/picocolors.d.ts +0 -5
  130. package/templates/facebook/node_modules/picocolors/picocolors.js +0 -60
  131. package/templates/facebook/node_modules/picocolors/types.ts +0 -30
  132. package/templates/facebook/node_modules/postcss/LICENSE +0 -20
  133. package/templates/facebook/node_modules/postcss/README.md +0 -43
  134. package/templates/facebook/node_modules/postcss/lib/at-rule.js +0 -127
  135. package/templates/facebook/node_modules/postcss/lib/comment.js +0 -55
  136. package/templates/facebook/node_modules/postcss/lib/container.js +0 -774
  137. package/templates/facebook/node_modules/postcss/lib/css-syntax-error.js +0 -296
  138. package/templates/facebook/node_modules/postcss/lib/declaration.js +0 -96
  139. package/templates/facebook/node_modules/postcss/lib/input.js +0 -214
  140. package/templates/facebook/node_modules/postcss/lib/lazy-result.js +0 -437
  141. package/templates/facebook/node_modules/postcss/lib/list.js +0 -93
  142. package/templates/facebook/node_modules/postcss/lib/map-generator.js +0 -347
  143. package/templates/facebook/node_modules/postcss/lib/node.js +0 -606
  144. package/templates/facebook/node_modules/postcss/lib/parse.js +0 -40
  145. package/templates/facebook/node_modules/postcss/lib/parser.js +0 -609
  146. package/templates/facebook/node_modules/postcss/lib/postcss.d.ts +0 -1283
  147. package/templates/facebook/node_modules/postcss/lib/postcss.js +0 -285
  148. package/templates/facebook/node_modules/postcss/lib/previous-map.js +0 -172
  149. package/templates/facebook/node_modules/postcss/lib/processor.js +0 -264
  150. package/templates/facebook/node_modules/postcss/lib/result.js +0 -213
  151. package/templates/facebook/node_modules/postcss/lib/root.js +0 -122
  152. package/templates/facebook/node_modules/postcss/lib/rule.js +0 -116
  153. package/templates/facebook/node_modules/postcss/lib/stringifier.js +0 -362
  154. package/templates/facebook/node_modules/postcss/lib/stringify.js +0 -18
  155. package/templates/facebook/node_modules/postcss/lib/terminal-highlight.js +0 -84
  156. package/templates/facebook/node_modules/postcss/lib/tokenize.js +0 -295
  157. package/templates/facebook/node_modules/postcss/lib/vendor.js +0 -53
  158. package/templates/facebook/node_modules/postcss/lib/warn-once.js +0 -17
  159. package/templates/facebook/node_modules/postcss/lib/warning.js +0 -131
  160. package/templates/facebook/node_modules/postcss/package.json +0 -37
  161. package/templates/facebook/node_modules/postcss-html/LICENSE +0 -21
  162. package/templates/facebook/node_modules/postcss-html/README.md +0 -78
  163. package/templates/facebook/node_modules/postcss-html/extract.js +0 -122
  164. package/templates/facebook/node_modules/postcss-html/index.js +0 -5
  165. package/templates/facebook/node_modules/postcss-html/package.json +0 -63
  166. package/templates/facebook/node_modules/postcss-html/template-parse.js +0 -14
  167. package/templates/facebook/node_modules/postcss-html/template-parser.js +0 -9
  168. package/templates/facebook/node_modules/postcss-html/template-safe-parse.js +0 -14
  169. package/templates/facebook/node_modules/postcss-html/template-safe-parser.js +0 -9
  170. package/templates/facebook/node_modules/postcss-html/template-tokenize.js +0 -49
  171. package/templates/facebook/node_modules/postcss-safe-parser/CHANGELOG.md +0 -51
  172. package/templates/facebook/node_modules/postcss-safe-parser/LICENSE +0 -20
  173. package/templates/facebook/node_modules/postcss-safe-parser/README.md +0 -33
  174. package/templates/facebook/node_modules/postcss-safe-parser/lib/safe-parse.js +0 -13
  175. package/templates/facebook/node_modules/postcss-safe-parser/lib/safe-parser.js +0 -115
  176. package/templates/facebook/node_modules/postcss-safe-parser/package.json +0 -102
  177. package/templates/facebook/node_modules/postcss-syntax/LICENSE +0 -21
  178. package/templates/facebook/node_modules/postcss-syntax/README.md +0 -85
  179. package/templates/facebook/node_modules/postcss-syntax/document.js +0 -41
  180. package/templates/facebook/node_modules/postcss-syntax/get-lang.js +0 -111
  181. package/templates/facebook/node_modules/postcss-syntax/get-syntax.js +0 -63
  182. package/templates/facebook/node_modules/postcss-syntax/index.js +0 -26
  183. package/templates/facebook/node_modules/postcss-syntax/load-syntax.js +0 -23
  184. package/templates/facebook/node_modules/postcss-syntax/normal-opts.js +0 -11
  185. package/templates/facebook/node_modules/postcss-syntax/package.json +0 -102
  186. package/templates/facebook/node_modules/postcss-syntax/parse-style.js +0 -127
  187. package/templates/facebook/node_modules/postcss-syntax/parse.js +0 -34
  188. package/templates/facebook/node_modules/postcss-syntax/parser.js +0 -18
  189. package/templates/facebook/node_modules/postcss-syntax/patch-postcss.js +0 -77
  190. package/templates/facebook/node_modules/postcss-syntax/processor.js +0 -29
  191. package/templates/facebook/node_modules/postcss-syntax/stringify.js +0 -20
  192. package/templates/facebook/node_modules/postcss-syntax/syntax.js +0 -37
  193. package/templates/facebook/node_modules/remark/index.js +0 -7
  194. package/templates/facebook/node_modules/remark/package.json +0 -46
  195. package/templates/facebook/node_modules/remark/readme.md +0 -260
  196. package/templates/facebook/node_modules/remark/types/index.d.ts +0 -19
  197. package/templates/facebook/node_modules/remark-parse/index.js +0 -24
  198. package/templates/facebook/node_modules/remark-parse/package.json +0 -46
  199. package/templates/facebook/node_modules/remark-parse/readme.md +0 -197
  200. package/templates/facebook/node_modules/remark-parse/types/index.d.ts +0 -14
  201. package/templates/facebook/node_modules/remark-stringify/index.js +0 -23
  202. package/templates/facebook/node_modules/remark-stringify/license +0 -22
  203. package/templates/facebook/node_modules/remark-stringify/package.json +0 -46
  204. package/templates/facebook/node_modules/remark-stringify/readme.md +0 -217
  205. package/templates/facebook/node_modules/remark-stringify/types/index.d.ts +0 -14
  206. package/templates/facebook/node_modules/stylelint/CHANGELOG.md +0 -1701
  207. package/templates/facebook/node_modules/stylelint/CONTRIBUTING.md +0 -81
  208. package/templates/facebook/node_modules/stylelint/LICENSE +0 -20
  209. package/templates/facebook/node_modules/stylelint/README.md +0 -48
  210. package/templates/facebook/node_modules/stylelint/bin/stylelint.js +0 -8
  211. package/templates/facebook/node_modules/stylelint/docs/about/linting.md +0 -34
  212. package/templates/facebook/node_modules/stylelint/docs/about/semantic-versioning.md +0 -37
  213. package/templates/facebook/node_modules/stylelint/docs/about/syntaxes.md +0 -18
  214. package/templates/facebook/node_modules/stylelint/docs/about/vision.md +0 -63
  215. package/templates/facebook/node_modules/stylelint/docs/developer-guide/formatters.md +0 -77
  216. package/templates/facebook/node_modules/stylelint/docs/developer-guide/plugins.md +0 -324
  217. package/templates/facebook/node_modules/stylelint/docs/developer-guide/processors.md +0 -28
  218. package/templates/facebook/node_modules/stylelint/docs/developer-guide/rules.md +0 -244
  219. package/templates/facebook/node_modules/stylelint/docs/developer-guide/syntaxes.md +0 -35
  220. package/templates/facebook/node_modules/stylelint/docs/developer-guide/system-tests.md +0 -23
  221. package/templates/facebook/node_modules/stylelint/docs/maintainer-guide/issues.md +0 -94
  222. package/templates/facebook/node_modules/stylelint/docs/maintainer-guide/pull-requests.md +0 -33
  223. package/templates/facebook/node_modules/stylelint/docs/maintainer-guide/releases.md +0 -47
  224. package/templates/facebook/node_modules/stylelint/docs/toc.md +0 -37
  225. package/templates/facebook/node_modules/stylelint/docs/user-guide/configure.md +0 -420
  226. package/templates/facebook/node_modules/stylelint/docs/user-guide/errors.md +0 -29
  227. package/templates/facebook/node_modules/stylelint/docs/user-guide/get-started.md +0 -55
  228. package/templates/facebook/node_modules/stylelint/docs/user-guide/ignore-code.md +0 -88
  229. package/templates/facebook/node_modules/stylelint/docs/user-guide/integrations/editor.md +0 -12
  230. package/templates/facebook/node_modules/stylelint/docs/user-guide/integrations/other.md +0 -19
  231. package/templates/facebook/node_modules/stylelint/docs/user-guide/integrations/task-runner.md +0 -10
  232. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/about.md +0 -203
  233. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/combine.md +0 -360
  234. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/list.md +0 -399
  235. package/templates/facebook/node_modules/stylelint/docs/user-guide/rules/regex.md +0 -29
  236. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/cli.md +0 -195
  237. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/node-api.md +0 -169
  238. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/options.md +0 -208
  239. package/templates/facebook/node_modules/stylelint/docs/user-guide/usage/postcss-plugin.md +0 -84
  240. package/templates/facebook/node_modules/stylelint/lib/assignDisabledRanges.js +0 -407
  241. package/templates/facebook/node_modules/stylelint/lib/augmentConfig.js +0 -359
  242. package/templates/facebook/node_modules/stylelint/lib/cli.js +0 -544
  243. package/templates/facebook/node_modules/stylelint/lib/createPartialStylelintResult.js +0 -103
  244. package/templates/facebook/node_modules/stylelint/lib/createPlugin.js +0 -15
  245. package/templates/facebook/node_modules/stylelint/lib/createStylelint.js +0 -88
  246. package/templates/facebook/node_modules/stylelint/lib/createStylelintResult.js +0 -39
  247. package/templates/facebook/node_modules/stylelint/lib/descriptionlessDisables.js +0 -62
  248. package/templates/facebook/node_modules/stylelint/lib/formatters/compactFormatter.js +0 -20
  249. package/templates/facebook/node_modules/stylelint/lib/formatters/index.js +0 -12
  250. package/templates/facebook/node_modules/stylelint/lib/formatters/jsonFormatter.js +0 -20
  251. package/templates/facebook/node_modules/stylelint/lib/formatters/stringFormatter.js +0 -225
  252. package/templates/facebook/node_modules/stylelint/lib/formatters/tapFormatter.js +0 -39
  253. package/templates/facebook/node_modules/stylelint/lib/formatters/unixFormatter.js +0 -26
  254. package/templates/facebook/node_modules/stylelint/lib/formatters/verboseFormatter.js +0 -61
  255. package/templates/facebook/node_modules/stylelint/lib/getConfigForFile.js +0 -61
  256. package/templates/facebook/node_modules/stylelint/lib/getPostcssResult.js +0 -182
  257. package/templates/facebook/node_modules/stylelint/lib/index.js +0 -33
  258. package/templates/facebook/node_modules/stylelint/lib/invalidScopeDisables.js +0 -50
  259. package/templates/facebook/node_modules/stylelint/lib/isPathIgnored.js +0 -48
  260. package/templates/facebook/node_modules/stylelint/lib/lintPostcssResult.js +0 -134
  261. package/templates/facebook/node_modules/stylelint/lib/lintSource.js +0 -133
  262. package/templates/facebook/node_modules/stylelint/lib/needlessDisables.js +0 -110
  263. package/templates/facebook/node_modules/stylelint/lib/normalizeAllRuleSettings.js +0 -41
  264. package/templates/facebook/node_modules/stylelint/lib/normalizeRuleSettings.js +0 -74
  265. package/templates/facebook/node_modules/stylelint/lib/postcssPlugin.js +0 -25
  266. package/templates/facebook/node_modules/stylelint/lib/prepareReturnValue.js +0 -59
  267. package/templates/facebook/node_modules/stylelint/lib/printConfig.js +0 -58
  268. package/templates/facebook/node_modules/stylelint/lib/reference/keywordSets.js +0 -690
  269. package/templates/facebook/node_modules/stylelint/lib/reference/mathFunctions.js +0 -3
  270. package/templates/facebook/node_modules/stylelint/lib/reference/namedColorData.js +0 -152
  271. package/templates/facebook/node_modules/stylelint/lib/reference/propertySets.js +0 -18
  272. package/templates/facebook/node_modules/stylelint/lib/reference/punctuationSets.js +0 -9
  273. package/templates/facebook/node_modules/stylelint/lib/reference/shorthandData.js +0 -143
  274. package/templates/facebook/node_modules/stylelint/lib/reportDisables.js +0 -62
  275. package/templates/facebook/node_modules/stylelint/lib/reportUnknownRuleNames.js +0 -76
  276. package/templates/facebook/node_modules/stylelint/lib/rules/alpha-value-notation/README.md +0 -110
  277. package/templates/facebook/node_modules/stylelint/lib/rules/alpha-value-notation/index.js +0 -160
  278. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-allowed-list/README.md +0 -65
  279. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-allowed-list/index.js +0 -57
  280. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-blacklist/README.md +0 -52
  281. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-blacklist/index.js +0 -64
  282. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-disallowed-list/README.md +0 -50
  283. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-disallowed-list/index.js +0 -57
  284. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-empty-line-before/README.md +0 -421
  285. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-empty-line-before/index.js +0 -161
  286. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-case/README.md +0 -110
  287. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-case/index.js +0 -58
  288. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-newline-after/README.md +0 -108
  289. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-newline-after/index.js +0 -40
  290. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-space-after/README.md +0 -117
  291. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-name-space-after/index.js +0 -45
  292. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-unknown/README.md +0 -74
  293. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-unknown/index.js +0 -67
  294. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-vendor-prefix/README.md +0 -40
  295. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-no-vendor-prefix/index.js +0 -58
  296. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-required-list/README.md +0 -53
  297. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-required-list/index.js +0 -65
  298. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-requirelist/README.md +0 -55
  299. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-property-requirelist/index.js +0 -74
  300. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-newline-after/README.md +0 -63
  301. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-newline-after/index.js +0 -78
  302. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-space-before/README.md +0 -50
  303. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-semicolon-space-before/index.js +0 -63
  304. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-whitelist/README.md +0 -67
  305. package/templates/facebook/node_modules/stylelint/lib/rules/at-rule-whitelist/index.js +0 -64
  306. package/templates/facebook/node_modules/stylelint/lib/rules/atRuleNameSpaceChecker.js +0 -43
  307. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-empty-line-before/README.md +0 -238
  308. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-empty-line-before/index.js +0 -118
  309. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-after/README.md +0 -196
  310. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-after/index.js +0 -137
  311. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-before/README.md +0 -93
  312. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-newline-before/index.js +0 -117
  313. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-after/README.md +0 -179
  314. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-after/index.js +0 -88
  315. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-before/README.md +0 -174
  316. package/templates/facebook/node_modules/stylelint/lib/rules/block-closing-brace-space-before/index.js +0 -96
  317. package/templates/facebook/node_modules/stylelint/lib/rules/block-no-empty/README.md +0 -75
  318. package/templates/facebook/node_modules/stylelint/lib/rules/block-no-empty/index.js +0 -83
  319. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-after/README.md +0 -125
  320. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-after/index.js +0 -145
  321. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-before/README.md +0 -176
  322. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-newline-before/index.js +0 -107
  323. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-after/README.md +0 -174
  324. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-after/index.js +0 -88
  325. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-before/README.md +0 -218
  326. package/templates/facebook/node_modules/stylelint/lib/rules/block-opening-brace-space-before/index.js +0 -124
  327. package/templates/facebook/node_modules/stylelint/lib/rules/color-function-notation/README.md +0 -116
  328. package/templates/facebook/node_modules/stylelint/lib/rules/color-function-notation/index.js +0 -108
  329. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-case/README.md +0 -58
  330. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-case/index.js +0 -82
  331. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-length/README.md +0 -73
  332. package/templates/facebook/node_modules/stylelint/lib/rules/color-hex-length/index.js +0 -120
  333. package/templates/facebook/node_modules/stylelint/lib/rules/color-named/README.md +0 -176
  334. package/templates/facebook/node_modules/stylelint/lib/rules/color-named/generateColorFuncs.js +0 -198
  335. package/templates/facebook/node_modules/stylelint/lib/rules/color-named/index.js +0 -169
  336. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-hex/README.md +0 -60
  337. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-hex/index.js +0 -60
  338. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-invalid-hex/README.md +0 -55
  339. package/templates/facebook/node_modules/stylelint/lib/rules/color-no-invalid-hex/index.js +0 -54
  340. package/templates/facebook/node_modules/stylelint/lib/rules/comment-empty-line-before/README.md +0 -195
  341. package/templates/facebook/node_modules/stylelint/lib/rules/comment-empty-line-before/index.js +0 -126
  342. package/templates/facebook/node_modules/stylelint/lib/rules/comment-no-empty/README.md +0 -51
  343. package/templates/facebook/node_modules/stylelint/lib/rules/comment-no-empty/index.js +0 -46
  344. package/templates/facebook/node_modules/stylelint/lib/rules/comment-pattern/README.md +0 -38
  345. package/templates/facebook/node_modules/stylelint/lib/rules/comment-pattern/index.js +0 -48
  346. package/templates/facebook/node_modules/stylelint/lib/rules/comment-whitespace-inside/README.md +0 -99
  347. package/templates/facebook/node_modules/stylelint/lib/rules/comment-whitespace-inside/index.js +0 -117
  348. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-blacklist/README.md +0 -50
  349. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-blacklist/index.js +0 -66
  350. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-disallowed-list/README.md +0 -48
  351. package/templates/facebook/node_modules/stylelint/lib/rules/comment-word-disallowed-list/index.js +0 -59
  352. package/templates/facebook/node_modules/stylelint/lib/rules/custom-media-pattern/README.md +0 -36
  353. package/templates/facebook/node_modules/stylelint/lib/rules/custom-media-pattern/index.js +0 -54
  354. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-empty-line-before/README.md +0 -272
  355. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-empty-line-before/index.js +0 -129
  356. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-pattern/README.md +0 -36
  357. package/templates/facebook/node_modules/stylelint/lib/rules/custom-property-pattern/index.js +0 -53
  358. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-after/README.md +0 -72
  359. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-after/index.js +0 -82
  360. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-before/README.md +0 -67
  361. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-bang-space-before/index.js +0 -83
  362. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-custom-properties/README.md +0 -40
  363. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-custom-properties/index.js +0 -61
  364. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-properties/README.md +0 -143
  365. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-duplicate-properties/index.js +0 -121
  366. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-redundant-longhand-properties/README.md +0 -197
  367. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-redundant-longhand-properties/index.js +0 -99
  368. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-shorthand-property-overrides/README.md +0 -69
  369. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-no-shorthand-property-overrides/index.js +0 -61
  370. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-after/README.md +0 -141
  371. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-after/index.js +0 -95
  372. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-before/README.md +0 -120
  373. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-newline-before/index.js +0 -62
  374. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-after/README.md +0 -147
  375. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-after/index.js +0 -84
  376. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-before/README.md +0 -130
  377. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-semicolon-space-before/index.js +0 -91
  378. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-single-line-max-declarations/README.md +0 -50
  379. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-single-line-max-declarations/index.js +0 -58
  380. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-trailing-semicolon/README.md +0 -108
  381. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-block-trailing-semicolon/index.js +0 -123
  382. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-newline-after/README.md +0 -78
  383. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-newline-after/index.js +0 -90
  384. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-after/README.md +0 -111
  385. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-after/index.js +0 -63
  386. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-before/README.md +0 -72
  387. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-colon-space-before/index.js +0 -62
  388. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-empty-line-before/README.md +0 -322
  389. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-empty-line-before/index.js +0 -139
  390. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-no-important/README.md +0 -40
  391. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-no-important/index.js +0 -41
  392. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-allowed-list/README.md +0 -119
  393. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-allowed-list/index.js +0 -94
  394. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-blacklist/README.md +0 -76
  395. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-blacklist/index.js +0 -86
  396. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-disallowed-list/README.md +0 -74
  397. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-disallowed-list/index.js +0 -76
  398. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-whitelist/README.md +0 -87
  399. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-unit-whitelist/index.js +0 -86
  400. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-allowed-list/README.md +0 -86
  401. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-allowed-list/index.js +0 -58
  402. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-blacklist/README.md +0 -107
  403. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-blacklist/index.js +0 -68
  404. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-disallowed-list/README.md +0 -105
  405. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-disallowed-list/index.js +0 -58
  406. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-whitelist/README.md +0 -98
  407. package/templates/facebook/node_modules/stylelint/lib/rules/declaration-property-value-whitelist/index.js +0 -68
  408. package/templates/facebook/node_modules/stylelint/lib/rules/declarationBangSpaceChecker.js +0 -43
  409. package/templates/facebook/node_modules/stylelint/lib/rules/declarationColonSpaceChecker.js +0 -48
  410. package/templates/facebook/node_modules/stylelint/lib/rules/findMediaOperator.js +0 -24
  411. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-name-quotes/README.md +0 -163
  412. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-name-quotes/index.js +0 -147
  413. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-duplicate-names/README.md +0 -76
  414. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-duplicate-names/index.js +0 -103
  415. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-missing-generic-family-keyword/README.md +0 -89
  416. package/templates/facebook/node_modules/stylelint/lib/rules/font-family-no-missing-generic-family-keyword/index.js +0 -97
  417. package/templates/facebook/node_modules/stylelint/lib/rules/font-weight-notation/README.md +0 -94
  418. package/templates/facebook/node_modules/stylelint/lib/rules/font-weight-notation/index.js +0 -154
  419. package/templates/facebook/node_modules/stylelint/lib/rules/function-allowed-list/README.md +0 -73
  420. package/templates/facebook/node_modules/stylelint/lib/rules/function-allowed-list/index.js +0 -66
  421. package/templates/facebook/node_modules/stylelint/lib/rules/function-blacklist/README.md +0 -54
  422. package/templates/facebook/node_modules/stylelint/lib/rules/function-blacklist/index.js +0 -71
  423. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-invalid/README.md +0 -96
  424. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-invalid/index.js +0 -259
  425. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-unspaced-operator/README.md +0 -56
  426. package/templates/facebook/node_modules/stylelint/lib/rules/function-calc-no-unspaced-operator/index.js +0 -138
  427. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-after/README.md +0 -113
  428. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-after/index.js +0 -55
  429. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-before/README.md +0 -129
  430. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-newline-before/index.js +0 -55
  431. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-after/README.md +0 -144
  432. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-after/index.js +0 -56
  433. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-before/README.md +0 -144
  434. package/templates/facebook/node_modules/stylelint/lib/rules/function-comma-space-before/index.js +0 -56
  435. package/templates/facebook/node_modules/stylelint/lib/rules/function-disallowed-list/README.md +0 -52
  436. package/templates/facebook/node_modules/stylelint/lib/rules/function-disallowed-list/index.js +0 -64
  437. package/templates/facebook/node_modules/stylelint/lib/rules/function-linear-gradient-no-nonstandard-direction/README.md +0 -77
  438. package/templates/facebook/node_modules/stylelint/lib/rules/function-linear-gradient-no-nonstandard-direction/index.js +0 -110
  439. package/templates/facebook/node_modules/stylelint/lib/rules/function-max-empty-lines/README.md +0 -78
  440. package/templates/facebook/node_modules/stylelint/lib/rules/function-max-empty-lines/index.js +0 -101
  441. package/templates/facebook/node_modules/stylelint/lib/rules/function-name-case/README.md +0 -181
  442. package/templates/facebook/node_modules/stylelint/lib/rules/function-name-case/index.js +0 -111
  443. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-newline-inside/README.md +0 -144
  444. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-newline-inside/index.js +0 -247
  445. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-space-inside/README.md +0 -140
  446. package/templates/facebook/node_modules/stylelint/lib/rules/function-parentheses-space-inside/index.js +0 -165
  447. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-no-scheme-relative/README.md +0 -50
  448. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-no-scheme-relative/index.js +0 -48
  449. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-quotes/README.md +0 -120
  450. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-quotes/index.js +0 -113
  451. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-allowed-list/README.md +0 -76
  452. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-allowed-list/index.js +0 -66
  453. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-blacklist/README.md +0 -73
  454. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-blacklist/index.js +0 -76
  455. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-disallowed-list/README.md +0 -71
  456. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-disallowed-list/index.js +0 -66
  457. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-whitelist/README.md +0 -78
  458. package/templates/facebook/node_modules/stylelint/lib/rules/function-url-scheme-whitelist/index.js +0 -76
  459. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitelist/README.md +0 -75
  460. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitelist/index.js +0 -73
  461. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitespace-after/README.md +0 -80
  462. package/templates/facebook/node_modules/stylelint/lib/rules/function-whitespace-after/index.js +0 -167
  463. package/templates/facebook/node_modules/stylelint/lib/rules/functionCommaSpaceChecker.js +0 -109
  464. package/templates/facebook/node_modules/stylelint/lib/rules/functionCommaSpaceFix.js +0 -34
  465. package/templates/facebook/node_modules/stylelint/lib/rules/hue-degree-notation/README.md +0 -74
  466. package/templates/facebook/node_modules/stylelint/lib/rules/hue-degree-notation/index.js +0 -122
  467. package/templates/facebook/node_modules/stylelint/lib/rules/indentation/README.md +0 -338
  468. package/templates/facebook/node_modules/stylelint/lib/rules/indentation/index.js +0 -615
  469. package/templates/facebook/node_modules/stylelint/lib/rules/index.js +0 -401
  470. package/templates/facebook/node_modules/stylelint/lib/rules/keyframe-declaration-no-important/README.md +0 -52
  471. package/templates/facebook/node_modules/stylelint/lib/rules/keyframe-declaration-no-important/index.js +0 -43
  472. package/templates/facebook/node_modules/stylelint/lib/rules/keyframes-name-pattern/README.md +0 -46
  473. package/templates/facebook/node_modules/stylelint/lib/rules/keyframes-name-pattern/index.js +0 -51
  474. package/templates/facebook/node_modules/stylelint/lib/rules/length-zero-no-unit/README.md +0 -69
  475. package/templates/facebook/node_modules/stylelint/lib/rules/length-zero-no-unit/index.js +0 -163
  476. package/templates/facebook/node_modules/stylelint/lib/rules/linebreaks/README.md +0 -21
  477. package/templates/facebook/node_modules/stylelint/lib/rules/linebreaks/index.js +0 -102
  478. package/templates/facebook/node_modules/stylelint/lib/rules/max-empty-lines/README.md +0 -116
  479. package/templates/facebook/node_modules/stylelint/lib/rules/max-empty-lines/index.js +0 -209
  480. package/templates/facebook/node_modules/stylelint/lib/rules/max-line-length/README.md +0 -151
  481. package/templates/facebook/node_modules/stylelint/lib/rules/max-line-length/index.js +0 -183
  482. package/templates/facebook/node_modules/stylelint/lib/rules/max-nesting-depth/README.md +0 -355
  483. package/templates/facebook/node_modules/stylelint/lib/rules/max-nesting-depth/index.js +0 -114
  484. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-after/README.md +0 -72
  485. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-after/index.js +0 -82
  486. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-before/README.md +0 -72
  487. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-colon-space-before/index.js +0 -82
  488. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-allowed-list/README.md +0 -64
  489. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-allowed-list/index.js +0 -76
  490. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-blacklist/README.md +0 -66
  491. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-blacklist/index.js +0 -86
  492. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-case/README.md +0 -108
  493. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-case/index.js +0 -96
  494. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-disallowed-list/README.md +0 -64
  495. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-disallowed-list/index.js +0 -76
  496. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-unknown/README.md +0 -94
  497. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-unknown/index.js +0 -88
  498. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-vendor-prefix/README.md +0 -47
  499. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-no-vendor-prefix/index.js +0 -58
  500. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-allowed-list/README.md +0 -84
  501. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-allowed-list/index.js +0 -89
  502. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-whitelist/README.md +0 -86
  503. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-value-whitelist/index.js +0 -99
  504. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-whitelist/README.md +0 -66
  505. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-name-whitelist/index.js +0 -86
  506. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-parentheses-space-inside/README.md +0 -62
  507. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-parentheses-space-inside/index.js +0 -106
  508. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-after/README.md +0 -72
  509. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-after/index.js +0 -92
  510. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-before/README.md +0 -72
  511. package/templates/facebook/node_modules/stylelint/lib/rules/media-feature-range-operator-space-before/index.js +0 -92
  512. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-after/README.md +0 -113
  513. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-after/index.js +0 -88
  514. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-before/README.md +0 -111
  515. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-newline-before/index.js +0 -42
  516. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-after/README.md +0 -136
  517. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-after/index.js +0 -84
  518. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-before/README.md +0 -136
  519. package/templates/facebook/node_modules/stylelint/lib/rules/media-query-list-comma-space-before/index.js +0 -84
  520. package/templates/facebook/node_modules/stylelint/lib/rules/mediaFeatureColonSpaceChecker.js +0 -39
  521. package/templates/facebook/node_modules/stylelint/lib/rules/mediaQueryListCommaWhitespaceChecker.js +0 -54
  522. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/README.md +0 -50
  523. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/index.js +0 -80
  524. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/utils/findNotContiguousOrRectangular.js +0 -61
  525. package/templates/facebook/node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/utils/isRectangular.js +0 -12
  526. package/templates/facebook/node_modules/stylelint/lib/rules/no-descending-specificity/README.md +0 -166
  527. package/templates/facebook/node_modules/stylelint/lib/rules/no-descending-specificity/index.js +0 -146
  528. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-at-import-rules/README.md +0 -56
  529. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-at-import-rules/index.js +0 -68
  530. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-selectors/README.md +0 -136
  531. package/templates/facebook/node_modules/stylelint/lib/rules/no-duplicate-selectors/index.js +0 -149
  532. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-first-line/README.md +0 -34
  533. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-first-line/index.js +0 -49
  534. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-source/README.md +0 -45
  535. package/templates/facebook/node_modules/stylelint/lib/rules/no-empty-source/index.js +0 -40
  536. package/templates/facebook/node_modules/stylelint/lib/rules/no-eol-whitespace/README.md +0 -79
  537. package/templates/facebook/node_modules/stylelint/lib/rules/no-eol-whitespace/index.js +0 -260
  538. package/templates/facebook/node_modules/stylelint/lib/rules/no-extra-semicolons/README.md +0 -78
  539. package/templates/facebook/node_modules/stylelint/lib/rules/no-extra-semicolons/index.js +0 -243
  540. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-double-slash-comments/README.md +0 -54
  541. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-double-slash-comments/index.js +0 -51
  542. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-position-at-import-rule/README.md +0 -51
  543. package/templates/facebook/node_modules/stylelint/lib/rules/no-invalid-position-at-import-rule/index.js +0 -58
  544. package/templates/facebook/node_modules/stylelint/lib/rules/no-irregular-whitespace/README.md +0 -57
  545. package/templates/facebook/node_modules/stylelint/lib/rules/no-irregular-whitespace/index.js +0 -134
  546. package/templates/facebook/node_modules/stylelint/lib/rules/no-missing-end-of-source-newline/README.md +0 -34
  547. package/templates/facebook/node_modules/stylelint/lib/rules/no-missing-end-of-source-newline/index.js +0 -52
  548. package/templates/facebook/node_modules/stylelint/lib/rules/no-unknown-animations/README.md +0 -76
  549. package/templates/facebook/node_modules/stylelint/lib/rules/no-unknown-animations/index.js +0 -64
  550. package/templates/facebook/node_modules/stylelint/lib/rules/number-leading-zero/README.md +0 -74
  551. package/templates/facebook/node_modules/stylelint/lib/rules/number-leading-zero/index.js +0 -163
  552. package/templates/facebook/node_modules/stylelint/lib/rules/number-max-precision/README.md +0 -107
  553. package/templates/facebook/node_modules/stylelint/lib/rules/number-max-precision/index.js +0 -101
  554. package/templates/facebook/node_modules/stylelint/lib/rules/number-no-trailing-zeros/README.md +0 -40
  555. package/templates/facebook/node_modules/stylelint/lib/rules/number-no-trailing-zeros/index.js +0 -119
  556. package/templates/facebook/node_modules/stylelint/lib/rules/property-allowed-list/README.md +0 -75
  557. package/templates/facebook/node_modules/stylelint/lib/rules/property-allowed-list/index.js +0 -60
  558. package/templates/facebook/node_modules/stylelint/lib/rules/property-blacklist/README.md +0 -66
  559. package/templates/facebook/node_modules/stylelint/lib/rules/property-blacklist/index.js +0 -67
  560. package/templates/facebook/node_modules/stylelint/lib/rules/property-case/README.md +0 -168
  561. package/templates/facebook/node_modules/stylelint/lib/rules/property-case/index.js +0 -63
  562. package/templates/facebook/node_modules/stylelint/lib/rules/property-disallowed-list/README.md +0 -64
  563. package/templates/facebook/node_modules/stylelint/lib/rules/property-disallowed-list/index.js +0 -60
  564. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-unknown/README.md +0 -187
  565. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-unknown/index.js +0 -107
  566. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-vendor-prefix/README.md +0 -70
  567. package/templates/facebook/node_modules/stylelint/lib/rules/property-no-vendor-prefix/index.js +0 -76
  568. package/templates/facebook/node_modules/stylelint/lib/rules/property-whitelist/README.md +0 -77
  569. package/templates/facebook/node_modules/stylelint/lib/rules/property-whitelist/index.js +0 -67
  570. package/templates/facebook/node_modules/stylelint/lib/rules/rangeContextNodeParser.js +0 -65
  571. package/templates/facebook/node_modules/stylelint/lib/rules/rule-empty-line-before/README.md +0 -326
  572. package/templates/facebook/node_modules/stylelint/lib/rules/rule-empty-line-before/index.js +0 -145
  573. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-brackets-space-inside/README.md +0 -112
  574. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-brackets-space-inside/index.js +0 -182
  575. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-name-disallowed-list/README.md +0 -54
  576. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-name-disallowed-list/index.js +0 -66
  577. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-allowed-list/README.md +0 -54
  578. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-allowed-list/index.js +0 -65
  579. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-blacklist/README.md +0 -46
  580. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-blacklist/index.js +0 -75
  581. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-disallowed-list/README.md +0 -44
  582. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-disallowed-list/index.js +0 -65
  583. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-after/README.md +0 -162
  584. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-after/index.js +0 -89
  585. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-before/README.md +0 -162
  586. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-space-before/index.js +0 -73
  587. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-whitelist/README.md +0 -56
  588. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-operator-whitelist/index.js +0 -75
  589. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-quotes/README.md +0 -102
  590. package/templates/facebook/node_modules/stylelint/lib/rules/selector-attribute-quotes/index.js +0 -94
  591. package/templates/facebook/node_modules/stylelint/lib/rules/selector-class-pattern/README.md +0 -100
  592. package/templates/facebook/node_modules/stylelint/lib/rules/selector-class-pattern/index.js +0 -121
  593. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-allowed-list/README.md +0 -54
  594. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-allowed-list/index.js +0 -70
  595. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-blacklist/README.md +0 -56
  596. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-blacklist/index.js +0 -80
  597. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-disallowed-list/README.md +0 -54
  598. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-disallowed-list/index.js +0 -70
  599. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-after/README.md +0 -78
  600. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-after/index.js +0 -57
  601. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-before/README.md +0 -78
  602. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-space-before/index.js +0 -57
  603. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-whitelist/README.md +0 -56
  604. package/templates/facebook/node_modules/stylelint/lib/rules/selector-combinator-whitelist/index.js +0 -80
  605. package/templates/facebook/node_modules/stylelint/lib/rules/selector-descendant-combinator-no-non-space/README.md +0 -40
  606. package/templates/facebook/node_modules/stylelint/lib/rules/selector-descendant-combinator-no-non-space/index.js +0 -86
  607. package/templates/facebook/node_modules/stylelint/lib/rules/selector-disallowed-list/README.md +0 -68
  608. package/templates/facebook/node_modules/stylelint/lib/rules/selector-disallowed-list/index.js +0 -56
  609. package/templates/facebook/node_modules/stylelint/lib/rules/selector-id-pattern/README.md +0 -63
  610. package/templates/facebook/node_modules/stylelint/lib/rules/selector-id-pattern/index.js +0 -67
  611. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-after/README.md +0 -120
  612. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-after/index.js +0 -117
  613. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-before/README.md +0 -112
  614. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-newline-before/index.js +0 -91
  615. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-after/README.md +0 -110
  616. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-after/index.js +0 -83
  617. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-before/README.md +0 -110
  618. package/templates/facebook/node_modules/stylelint/lib/rules/selector-list-comma-space-before/index.js +0 -83
  619. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-attribute/README.md +0 -113
  620. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-attribute/index.js +0 -96
  621. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-class/README.md +0 -58
  622. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-class/index.js +0 -71
  623. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-combinators/README.md +0 -72
  624. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-combinators/index.js +0 -72
  625. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-compound-selectors/README.md +0 -59
  626. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-compound-selectors/index.js +0 -79
  627. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-empty-lines/README.md +0 -103
  628. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-empty-lines/index.js +0 -65
  629. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-id/README.md +0 -105
  630. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-id/index.js +0 -95
  631. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-pseudo-class/README.md +0 -50
  632. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-pseudo-class/index.js +0 -85
  633. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-specificity/README.md +0 -138
  634. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-specificity/index.js +0 -182
  635. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-type/README.md +0 -179
  636. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-type/index.js +0 -176
  637. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-universal/README.md +0 -76
  638. package/templates/facebook/node_modules/stylelint/lib/rules/selector-max-universal/index.js +0 -84
  639. package/templates/facebook/node_modules/stylelint/lib/rules/selector-nested-pattern/README.md +0 -77
  640. package/templates/facebook/node_modules/stylelint/lib/rules/selector-nested-pattern/index.js +0 -58
  641. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-qualifying-type/README.md +0 -105
  642. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-qualifying-type/index.js +0 -134
  643. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-vendor-prefix/README.md +0 -67
  644. package/templates/facebook/node_modules/stylelint/lib/rules/selector-no-vendor-prefix/index.js +0 -75
  645. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-allowed-list/README.md +0 -53
  646. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-allowed-list/index.js +0 -74
  647. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-blacklist/README.md +0 -55
  648. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-blacklist/index.js +0 -85
  649. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-case/README.md +0 -108
  650. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-case/index.js +0 -97
  651. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-disallowed-list/README.md +0 -53
  652. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-disallowed-list/index.js +0 -75
  653. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-no-unknown/README.md +0 -84
  654. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-no-unknown/index.js +0 -157
  655. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-parentheses-space-inside/README.md +0 -62
  656. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-parentheses-space-inside/index.js +0 -141
  657. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-whitelist/README.md +0 -55
  658. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-class-whitelist/index.js +0 -84
  659. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-allowed-list/README.md +0 -54
  660. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-allowed-list/index.js +0 -74
  661. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-blacklist/README.md +0 -56
  662. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-blacklist/index.js +0 -84
  663. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-case/README.md +0 -128
  664. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-case/index.js +0 -84
  665. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-colon-notation/README.md +0 -136
  666. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-colon-notation/index.js +0 -94
  667. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-disallowed-list/README.md +0 -54
  668. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-disallowed-list/index.js +0 -74
  669. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-no-unknown/README.md +0 -84
  670. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-no-unknown/index.js +0 -92
  671. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-whitelist/README.md +0 -56
  672. package/templates/facebook/node_modules/stylelint/lib/rules/selector-pseudo-element-whitelist/index.js +0 -84
  673. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-case/README.md +0 -91
  674. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-case/index.js +0 -107
  675. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-no-unknown/README.md +0 -140
  676. package/templates/facebook/node_modules/stylelint/lib/rules/selector-type-no-unknown/index.js +0 -115
  677. package/templates/facebook/node_modules/stylelint/lib/rules/selectorAttributeOperatorSpaceChecker.js +0 -74
  678. package/templates/facebook/node_modules/stylelint/lib/rules/selectorCombinatorSpaceChecker.js +0 -87
  679. package/templates/facebook/node_modules/stylelint/lib/rules/selectorListCommaWhitespaceChecker.js +0 -48
  680. package/templates/facebook/node_modules/stylelint/lib/rules/shorthand-property-no-redundant-values/README.md +0 -75
  681. package/templates/facebook/node_modules/stylelint/lib/rules/shorthand-property-no-redundant-values/index.js +0 -137
  682. package/templates/facebook/node_modules/stylelint/lib/rules/string-no-newline/README.md +0 -73
  683. package/templates/facebook/node_modules/stylelint/lib/rules/string-no-newline/index.js +0 -115
  684. package/templates/facebook/node_modules/stylelint/lib/rules/string-quotes/README.md +0 -130
  685. package/templates/facebook/node_modules/stylelint/lib/rules/string-quotes/index.js +0 -221
  686. package/templates/facebook/node_modules/stylelint/lib/rules/time-min-milliseconds/README.md +0 -77
  687. package/templates/facebook/node_modules/stylelint/lib/rules/time-min-milliseconds/index.js +0 -142
  688. package/templates/facebook/node_modules/stylelint/lib/rules/unicode-bom/README.md +0 -41
  689. package/templates/facebook/node_modules/stylelint/lib/rules/unicode-bom/index.js +0 -59
  690. package/templates/facebook/node_modules/stylelint/lib/rules/unit-allowed-list/README.md +0 -115
  691. package/templates/facebook/node_modules/stylelint/lib/rules/unit-allowed-list/index.js +0 -85
  692. package/templates/facebook/node_modules/stylelint/lib/rules/unit-blacklist/README.md +0 -161
  693. package/templates/facebook/node_modules/stylelint/lib/rules/unit-blacklist/index.js +0 -132
  694. package/templates/facebook/node_modules/stylelint/lib/rules/unit-case/README.md +0 -126
  695. package/templates/facebook/node_modules/stylelint/lib/rules/unit-case/index.js +0 -114
  696. package/templates/facebook/node_modules/stylelint/lib/rules/unit-disallowed-list/README.md +0 -159
  697. package/templates/facebook/node_modules/stylelint/lib/rules/unit-disallowed-list/index.js +0 -125
  698. package/templates/facebook/node_modules/stylelint/lib/rules/unit-no-unknown/README.md +0 -138
  699. package/templates/facebook/node_modules/stylelint/lib/rules/unit-no-unknown/index.js +0 -158
  700. package/templates/facebook/node_modules/stylelint/lib/rules/unit-whitelist/README.md +0 -117
  701. package/templates/facebook/node_modules/stylelint/lib/rules/unit-whitelist/index.js +0 -92
  702. package/templates/facebook/node_modules/stylelint/lib/rules/value-keyword-case/README.md +0 -320
  703. package/templates/facebook/node_modules/stylelint/lib/rules/value-keyword-case/index.js +0 -236
  704. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-after/README.md +0 -102
  705. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-after/index.js +0 -100
  706. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-before/README.md +0 -100
  707. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-newline-before/index.js +0 -42
  708. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-after/README.md +0 -136
  709. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-after/index.js +0 -86
  710. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-before/README.md +0 -136
  711. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-comma-space-before/index.js +0 -86
  712. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-max-empty-lines/README.md +0 -121
  713. package/templates/facebook/node_modules/stylelint/lib/rules/value-list-max-empty-lines/index.js +0 -60
  714. package/templates/facebook/node_modules/stylelint/lib/rules/value-no-vendor-prefix/README.md +0 -74
  715. package/templates/facebook/node_modules/stylelint/lib/rules/value-no-vendor-prefix/index.js +0 -90
  716. package/templates/facebook/node_modules/stylelint/lib/rules/valueListCommaWhitespaceChecker.js +0 -57
  717. package/templates/facebook/node_modules/stylelint/lib/standalone.js +0 -334
  718. package/templates/facebook/node_modules/stylelint/lib/syntaxes/index.js +0 -16
  719. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-css-in-js.js +0 -3
  720. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-html.js +0 -8
  721. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-less.js +0 -3
  722. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-markdown.js +0 -8
  723. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-sass.js +0 -3
  724. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-scss.js +0 -3
  725. package/templates/facebook/node_modules/stylelint/lib/syntaxes/syntax-sugarss.js +0 -3
  726. package/templates/facebook/node_modules/stylelint/lib/utils/FileCache.js +0 -68
  727. package/templates/facebook/node_modules/stylelint/lib/utils/addEmptyLineAfter.js +0 -30
  728. package/templates/facebook/node_modules/stylelint/lib/utils/addEmptyLineBefore.js +0 -26
  729. package/templates/facebook/node_modules/stylelint/lib/utils/atRuleParamIndex.js +0 -16
  730. package/templates/facebook/node_modules/stylelint/lib/utils/beforeBlockString.js +0 -54
  731. package/templates/facebook/node_modules/stylelint/lib/utils/blockString.js +0 -25
  732. package/templates/facebook/node_modules/stylelint/lib/utils/blurComments.js +0 -10
  733. package/templates/facebook/node_modules/stylelint/lib/utils/blurFunctionArguments.js +0 -53
  734. package/templates/facebook/node_modules/stylelint/lib/utils/blurInterpolation.js +0 -10
  735. package/templates/facebook/node_modules/stylelint/lib/utils/checkAgainstRule.js +0 -52
  736. package/templates/facebook/node_modules/stylelint/lib/utils/checkInvalidCLIOptions.js +0 -92
  737. package/templates/facebook/node_modules/stylelint/lib/utils/configurationError.js +0 -15
  738. package/templates/facebook/node_modules/stylelint/lib/utils/containsString.js +0 -56
  739. package/templates/facebook/node_modules/stylelint/lib/utils/declarationValueIndex.js +0 -26
  740. package/templates/facebook/node_modules/stylelint/lib/utils/eachDeclarationBlock.js +0 -59
  741. package/templates/facebook/node_modules/stylelint/lib/utils/filterFilePaths.js +0 -19
  742. package/templates/facebook/node_modules/stylelint/lib/utils/findAnimationName.js +0 -69
  743. package/templates/facebook/node_modules/stylelint/lib/utils/findAtRuleContext.js +0 -23
  744. package/templates/facebook/node_modules/stylelint/lib/utils/findFontFamily.js +0 -128
  745. package/templates/facebook/node_modules/stylelint/lib/utils/findListStyleType.js +0 -60
  746. package/templates/facebook/node_modules/stylelint/lib/utils/functionArgumentsSearch.js +0 -41
  747. package/templates/facebook/node_modules/stylelint/lib/utils/getAtRuleParams.js +0 -11
  748. package/templates/facebook/node_modules/stylelint/lib/utils/getCacheFile.js +0 -52
  749. package/templates/facebook/node_modules/stylelint/lib/utils/getDeclarationValue.js +0 -11
  750. package/templates/facebook/node_modules/stylelint/lib/utils/getFileIgnorer.js +0 -34
  751. package/templates/facebook/node_modules/stylelint/lib/utils/getFormatterOptionsText.js +0 -19
  752. package/templates/facebook/node_modules/stylelint/lib/utils/getModulePath.js +0 -31
  753. package/templates/facebook/node_modules/stylelint/lib/utils/getNextNonSharedLineCommentNode.js +0 -38
  754. package/templates/facebook/node_modules/stylelint/lib/utils/getOsEol.js +0 -11
  755. package/templates/facebook/node_modules/stylelint/lib/utils/getPreviousNonSharedLineCommentNode.js +0 -40
  756. package/templates/facebook/node_modules/stylelint/lib/utils/getRuleSelector.js +0 -13
  757. package/templates/facebook/node_modules/stylelint/lib/utils/getSchemeFromUrl.js +0 -39
  758. package/templates/facebook/node_modules/stylelint/lib/utils/getUnitFromValueNode.js +0 -49
  759. package/templates/facebook/node_modules/stylelint/lib/utils/hasBlock.js +0 -11
  760. package/templates/facebook/node_modules/stylelint/lib/utils/hasEmptyBlock.js +0 -13
  761. package/templates/facebook/node_modules/stylelint/lib/utils/hasEmptyLine.js +0 -14
  762. package/templates/facebook/node_modules/stylelint/lib/utils/hasInterpolation.js +0 -26
  763. package/templates/facebook/node_modules/stylelint/lib/utils/hasLessInterpolation.js +0 -11
  764. package/templates/facebook/node_modules/stylelint/lib/utils/hasPsvInterpolation.js +0 -10
  765. package/templates/facebook/node_modules/stylelint/lib/utils/hasScssInterpolation.js +0 -10
  766. package/templates/facebook/node_modules/stylelint/lib/utils/hasTplInterpolation.js +0 -11
  767. package/templates/facebook/node_modules/stylelint/lib/utils/hash.js +0 -12
  768. package/templates/facebook/node_modules/stylelint/lib/utils/isAfterComment.js +0 -16
  769. package/templates/facebook/node_modules/stylelint/lib/utils/isAfterSingleLineComment.js +0 -22
  770. package/templates/facebook/node_modules/stylelint/lib/utils/isAfterStandardPropertyDeclaration.js +0 -20
  771. package/templates/facebook/node_modules/stylelint/lib/utils/isAutoprefixable.js +0 -86
  772. package/templates/facebook/node_modules/stylelint/lib/utils/isBlocklessAtRuleAfterBlocklessAtRule.js +0 -22
  773. package/templates/facebook/node_modules/stylelint/lib/utils/isBlocklessAtRuleAfterSameNameBlocklessAtRule.js +0 -19
  774. package/templates/facebook/node_modules/stylelint/lib/utils/isContextFunctionalPseudoClass.js +0 -23
  775. package/templates/facebook/node_modules/stylelint/lib/utils/isCounterIncrementCustomIdentValue.js +0 -21
  776. package/templates/facebook/node_modules/stylelint/lib/utils/isCounterResetCustomIdentValue.js +0 -21
  777. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomElement.js +0 -46
  778. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomMediaQuery.js +0 -10
  779. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomProperty.js +0 -10
  780. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomPropertySet.js +0 -18
  781. package/templates/facebook/node_modules/stylelint/lib/utils/isCustomSelector.js +0 -11
  782. package/templates/facebook/node_modules/stylelint/lib/utils/isFirstNested.js +0 -67
  783. package/templates/facebook/node_modules/stylelint/lib/utils/isFirstNodeOfRoot.js +0 -15
  784. package/templates/facebook/node_modules/stylelint/lib/utils/isKeyframeRule.js +0 -13
  785. package/templates/facebook/node_modules/stylelint/lib/utils/isKeyframeSelector.js +0 -22
  786. package/templates/facebook/node_modules/stylelint/lib/utils/isLessVariable.js +0 -14
  787. package/templates/facebook/node_modules/stylelint/lib/utils/isMap.js +0 -44
  788. package/templates/facebook/node_modules/stylelint/lib/utils/isMathFunction.js +0 -13
  789. package/templates/facebook/node_modules/stylelint/lib/utils/isNonNegativeInteger.js +0 -17
  790. package/templates/facebook/node_modules/stylelint/lib/utils/isNumbery.js +0 -13
  791. package/templates/facebook/node_modules/stylelint/lib/utils/isOnlyWhitespace.js +0 -22
  792. package/templates/facebook/node_modules/stylelint/lib/utils/isRangeContextMediaFeature.js +0 -11
  793. package/templates/facebook/node_modules/stylelint/lib/utils/isScssVariable.js +0 -21
  794. package/templates/facebook/node_modules/stylelint/lib/utils/isSharedLineComment.js +0 -53
  795. package/templates/facebook/node_modules/stylelint/lib/utils/isSingleLineString.js +0 -12
  796. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxAtRule.js +0 -29
  797. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxCombinator.js +0 -34
  798. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxDeclaration.js +0 -61
  799. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxFunction.js +0 -16
  800. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxMathFunction.js +0 -21
  801. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxMediaFeature.js +0 -26
  802. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxMediaFeatureName.js +0 -16
  803. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxProperty.js +0 -34
  804. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxRule.js +0 -69
  805. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxSelector.js +0 -38
  806. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxTypeSelector.js +0 -53
  807. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxUrl.js +0 -48
  808. package/templates/facebook/node_modules/stylelint/lib/utils/isStandardSyntaxValue.js +0 -47
  809. package/templates/facebook/node_modules/stylelint/lib/utils/isValidFontSize.js +0 -38
  810. package/templates/facebook/node_modules/stylelint/lib/utils/isValidHex.js +0 -11
  811. package/templates/facebook/node_modules/stylelint/lib/utils/isVariable.js +0 -11
  812. package/templates/facebook/node_modules/stylelint/lib/utils/isWhitespace.js +0 -11
  813. package/templates/facebook/node_modules/stylelint/lib/utils/matchesStringOrRegExp.js +0 -85
  814. package/templates/facebook/node_modules/stylelint/lib/utils/nextNonCommentNode.js +0 -20
  815. package/templates/facebook/node_modules/stylelint/lib/utils/noFilesFoundError.js +0 -20
  816. package/templates/facebook/node_modules/stylelint/lib/utils/nodeContextLookup.js +0 -43
  817. package/templates/facebook/node_modules/stylelint/lib/utils/optionsMatches.js +0 -22
  818. package/templates/facebook/node_modules/stylelint/lib/utils/parseCalcExpression/index.js +0 -15
  819. package/templates/facebook/node_modules/stylelint/lib/utils/parseCalcExpression/parser.jison +0 -172
  820. package/templates/facebook/node_modules/stylelint/lib/utils/parseCalcExpression/parser.js +0 -3929
  821. package/templates/facebook/node_modules/stylelint/lib/utils/parseSelector.js +0 -18
  822. package/templates/facebook/node_modules/stylelint/lib/utils/putIfAbsent.js +0 -22
  823. package/templates/facebook/node_modules/stylelint/lib/utils/rawNodeString.js +0 -20
  824. package/templates/facebook/node_modules/stylelint/lib/utils/removeEmptyLinesAfter.js +0 -15
  825. package/templates/facebook/node_modules/stylelint/lib/utils/removeEmptyLinesBefore.js +0 -15
  826. package/templates/facebook/node_modules/stylelint/lib/utils/report.js +0 -113
  827. package/templates/facebook/node_modules/stylelint/lib/utils/ruleMessages.js +0 -35
  828. package/templates/facebook/node_modules/stylelint/lib/utils/setAtRuleParams.js +0 -20
  829. package/templates/facebook/node_modules/stylelint/lib/utils/setDeclarationValue.js +0 -23
  830. package/templates/facebook/node_modules/stylelint/lib/utils/transformSelector.js +0 -17
  831. package/templates/facebook/node_modules/stylelint/lib/utils/typeGuards.js +0 -44
  832. package/templates/facebook/node_modules/stylelint/lib/utils/validateObjectWithArrayProps.js +0 -41
  833. package/templates/facebook/node_modules/stylelint/lib/utils/validateOptions.js +0 -169
  834. package/templates/facebook/node_modules/stylelint/lib/utils/vendor.js +0 -45
  835. package/templates/facebook/node_modules/stylelint/lib/utils/whitespaceChecker.js +0 -370
  836. package/templates/facebook/node_modules/stylelint/lib/validateDisableSettings.js +0 -79
  837. package/templates/facebook/node_modules/stylelint/lib/writeOutputFile.js +0 -13
  838. package/templates/facebook/node_modules/stylelint/package.json +0 -197
  839. package/templates/facebook/node_modules/type-fest/index.d.ts +0 -35
  840. package/templates/facebook/node_modules/type-fest/license +0 -9
  841. package/templates/facebook/node_modules/type-fest/package.json +0 -45
  842. package/templates/facebook/node_modules/type-fest/readme.md +0 -648
  843. package/templates/facebook/node_modules/type-fest/source/async-return-type.d.ts +0 -23
  844. package/templates/facebook/node_modules/type-fest/source/asyncify.d.ts +0 -31
  845. package/templates/facebook/node_modules/type-fest/source/basic.d.ts +0 -67
  846. package/templates/facebook/node_modules/type-fest/source/conditional-except.d.ts +0 -43
  847. package/templates/facebook/node_modules/type-fest/source/conditional-keys.d.ts +0 -43
  848. package/templates/facebook/node_modules/type-fest/source/conditional-pick.d.ts +0 -42
  849. package/templates/facebook/node_modules/type-fest/source/entries.d.ts +0 -57
  850. package/templates/facebook/node_modules/type-fest/source/entry.d.ts +0 -60
  851. package/templates/facebook/node_modules/type-fest/source/except.d.ts +0 -22
  852. package/templates/facebook/node_modules/type-fest/source/fixed-length-array.d.ts +0 -38
  853. package/templates/facebook/node_modules/type-fest/source/iterable-element.d.ts +0 -46
  854. package/templates/facebook/node_modules/type-fest/source/literal-union.d.ts +0 -33
  855. package/templates/facebook/node_modules/type-fest/source/merge-exclusive.d.ts +0 -39
  856. package/templates/facebook/node_modules/type-fest/source/merge.d.ts +0 -22
  857. package/templates/facebook/node_modules/type-fest/source/mutable.d.ts +0 -22
  858. package/templates/facebook/node_modules/type-fest/source/opaque.d.ts +0 -65
  859. package/templates/facebook/node_modules/type-fest/source/package-json.d.ts +0 -627
  860. package/templates/facebook/node_modules/type-fest/source/partial-deep.d.ts +0 -72
  861. package/templates/facebook/node_modules/type-fest/source/promisable.d.ts +0 -23
  862. package/templates/facebook/node_modules/type-fest/source/promise-value.d.ts +0 -27
  863. package/templates/facebook/node_modules/type-fest/source/readonly-deep.d.ts +0 -59
  864. package/templates/facebook/node_modules/type-fest/source/require-at-least-one.d.ts +0 -32
  865. package/templates/facebook/node_modules/type-fest/source/require-exactly-one.d.ts +0 -35
  866. package/templates/facebook/node_modules/type-fest/source/set-optional.d.ts +0 -34
  867. package/templates/facebook/node_modules/type-fest/source/set-required.d.ts +0 -34
  868. package/templates/facebook/node_modules/type-fest/source/set-return-type.d.ts +0 -29
  869. package/templates/facebook/node_modules/type-fest/source/stringified.d.ts +0 -21
  870. package/templates/facebook/node_modules/type-fest/source/tsconfig-json.d.ts +0 -872
  871. package/templates/facebook/node_modules/type-fest/source/union-to-intersection.d.ts +0 -58
  872. package/templates/facebook/node_modules/type-fest/source/value-of.d.ts +0 -40
@@ -1,774 +0,0 @@
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