@hitsoft/e-donusum 1.0.5 → 1.0.7

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 (1231) hide show
  1. package/config/e-donusum-config.module.d.ts +8 -0
  2. package/config/enums/eDonusum-route-names.d.ts +8 -0
  3. package/config/enums/route-names.d.ts +3 -0
  4. package/config/index.d.ts +5 -0
  5. package/config/providers/branch-route.provider.d.ts +9 -0
  6. package/config/providers/business-partner-group-route.provider.d.ts +9 -0
  7. package/config/providers/business-partner-route.provider.d.ts +9 -0
  8. package/config/providers/despatch-document-reference-route.provider.d.ts +9 -0
  9. package/config/providers/despatch-line-order-line-reference-route.provider.d.ts +9 -0
  10. package/config/providers/despatch-line-route.provider.d.ts +9 -0
  11. package/config/providers/despatch-note-route.provider.d.ts +9 -0
  12. package/config/providers/despatch-route.provider.d.ts +9 -0
  13. package/config/providers/gib-partner-pk-all-route.provider.d.ts +9 -0
  14. package/config/providers/gib-partner-pk-route.provider.d.ts +9 -0
  15. package/config/providers/hit-providers/branch-route.provider.d.ts +9 -0
  16. package/config/providers/hit-providers/business-partner-group-route.provider.d.ts +9 -0
  17. package/config/providers/hit-providers/business-partner-route.provider.d.ts +9 -0
  18. package/config/providers/hit-providers/despatch-route.provider.d.ts +9 -0
  19. package/config/providers/hit-providers/gib-partner-pk-all-route.provider.d.ts +9 -0
  20. package/config/providers/hit-providers/gib-partner-pk-route.provider.d.ts +9 -0
  21. package/config/providers/hit-providers/inbound-invoice-route.provider.d.ts +9 -0
  22. package/config/providers/hit-providers/invoice-route.provider.d.ts +9 -0
  23. package/config/providers/hit-providers/note-rule-route.provider.d.ts +9 -0
  24. package/config/providers/hit-providers/route.provider.d.ts +8 -0
  25. package/config/providers/hit-providers/wizard-route.provider.d.ts +9 -0
  26. package/config/providers/hit-providers/xslt-format-route.provider.d.ts +9 -0
  27. package/config/providers/hit-providers/xslt-rule-route.provider.d.ts +9 -0
  28. package/config/providers/invoice-document-reference-route.provider.d.ts +9 -0
  29. package/config/providers/invoice-line-despatch-line-reference-route.provider.d.ts +9 -0
  30. package/config/providers/invoice-line-order-line-reference-route.provider.d.ts +9 -0
  31. package/config/providers/invoice-line-receipt-line-reference-route.provider.d.ts +9 -0
  32. package/config/providers/invoice-line-route.provider.d.ts +9 -0
  33. package/config/providers/invoice-note-route.provider.d.ts +9 -0
  34. package/config/providers/invoice-route.provider.d.ts +9 -0
  35. package/config/providers/note-rule-doc-type-route.provider.d.ts +9 -0
  36. package/config/providers/note-rule-route.provider.d.ts +9 -0
  37. package/config/providers/note-rule-scenario-route.provider.d.ts +9 -0
  38. package/config/providers/params-company-route.provider.d.ts +9 -0
  39. package/config/providers/params-general-route.provider.d.ts +9 -0
  40. package/config/providers/params-integrator-route.provider.d.ts +9 -0
  41. package/config/providers/paramse-dispatch-route.provider.d.ts +9 -0
  42. package/config/providers/paramse-invoice-route.provider.d.ts +9 -0
  43. package/config/providers/route.provider.d.ts +8 -0
  44. package/config/providers/xslt-format-route.provider.d.ts +9 -0
  45. package/config/providers/xslt-rule-doc-type-route.provider.d.ts +9 -0
  46. package/config/providers/xslt-rule-route.provider.d.ts +9 -0
  47. package/config/providers/xslt-rule-scenario-route.provider.d.ts +9 -0
  48. package/esm2020/config/e-donusum-config.module.mjs +104 -0
  49. package/esm2020/config/enums/eDonusum-route-names.mjs +2 -0
  50. package/esm2020/config/enums/index.mjs +2 -0
  51. package/esm2020/config/enums/route-names.mjs +2 -0
  52. package/esm2020/config/hitsoft-e-donusum-config.mjs +5 -0
  53. package/esm2020/config/providers/branch-route.provider.mjs +19 -0
  54. package/esm2020/config/providers/business-partner-group-route.provider.mjs +19 -0
  55. package/esm2020/config/providers/business-partner-route.provider.mjs +19 -0
  56. package/esm2020/config/providers/despatch-document-reference-route.provider.mjs +19 -0
  57. package/esm2020/config/providers/despatch-line-order-line-reference-route.provider.mjs +17 -0
  58. package/esm2020/config/providers/despatch-line-route.provider.mjs +19 -0
  59. package/esm2020/config/providers/despatch-note-route.provider.mjs +19 -0
  60. package/esm2020/config/providers/despatch-route.provider.mjs +19 -0
  61. package/esm2020/config/providers/gib-partner-pk-all-route.provider.mjs +19 -0
  62. package/esm2020/config/providers/gib-partner-pk-route.provider.mjs +19 -0
  63. package/esm2020/config/providers/hit-providers/branch-route.provider.mjs +20 -0
  64. package/esm2020/config/providers/hit-providers/business-partner-group-route.provider.mjs +20 -0
  65. package/esm2020/config/providers/hit-providers/business-partner-route.provider.mjs +20 -0
  66. package/esm2020/config/providers/hit-providers/despatch-route.provider.mjs +20 -0
  67. package/esm2020/config/providers/hit-providers/gib-partner-pk-all-route.provider.mjs +20 -0
  68. package/esm2020/config/providers/hit-providers/gib-partner-pk-route.provider.mjs +20 -0
  69. package/esm2020/config/providers/hit-providers/inbound-invoice-route.provider.mjs +20 -0
  70. package/esm2020/config/providers/hit-providers/invoice-route.provider.mjs +20 -0
  71. package/esm2020/config/providers/hit-providers/note-rule-route.provider.mjs +20 -0
  72. package/esm2020/config/providers/hit-providers/route.provider.mjs +59 -0
  73. package/esm2020/config/providers/hit-providers/wizard-route.provider.mjs +19 -0
  74. package/esm2020/config/providers/hit-providers/xslt-format-route.provider.mjs +20 -0
  75. package/esm2020/config/providers/hit-providers/xslt-rule-route.provider.mjs +20 -0
  76. package/esm2020/config/providers/index.mjs +2 -0
  77. package/esm2020/config/providers/invoice-document-reference-route.provider.mjs +19 -0
  78. package/esm2020/config/providers/invoice-line-despatch-line-reference-route.provider.mjs +17 -0
  79. package/esm2020/config/providers/invoice-line-order-line-reference-route.provider.mjs +19 -0
  80. package/esm2020/config/providers/invoice-line-receipt-line-reference-route.provider.mjs +17 -0
  81. package/esm2020/config/providers/invoice-line-route.provider.mjs +19 -0
  82. package/esm2020/config/providers/invoice-note-route.provider.mjs +19 -0
  83. package/esm2020/config/providers/invoice-route.provider.mjs +19 -0
  84. package/esm2020/config/providers/note-rule-doc-type-route.provider.mjs +19 -0
  85. package/esm2020/config/providers/note-rule-route.provider.mjs +19 -0
  86. package/esm2020/config/providers/note-rule-scenario-route.provider.mjs +19 -0
  87. package/esm2020/config/providers/params-company-route.provider.mjs +19 -0
  88. package/esm2020/config/providers/params-general-route.provider.mjs +19 -0
  89. package/esm2020/config/providers/params-integrator-route.provider.mjs +19 -0
  90. package/esm2020/config/providers/paramse-dispatch-route.provider.mjs +19 -0
  91. package/esm2020/config/providers/paramse-invoice-route.provider.mjs +19 -0
  92. package/esm2020/config/providers/route.provider.mjs +24 -0
  93. package/esm2020/config/providers/xslt-format-route.provider.mjs +19 -0
  94. package/esm2020/config/providers/xslt-rule-doc-type-route.provider.mjs +19 -0
  95. package/esm2020/config/providers/xslt-rule-route.provider.mjs +19 -0
  96. package/esm2020/config/providers/xslt-rule-scenario-route.provider.mjs +19 -0
  97. package/esm2020/config/public-api.mjs +4 -0
  98. package/esm2020/hitsoft-e-donusum.mjs +5 -0
  99. package/esm2020/lib/branches/branch/branch-routing.module.mjs +38 -0
  100. package/esm2020/lib/branches/branch/branch.module.mjs +52 -0
  101. package/esm2020/lib/branches/branch/components/branch.component.mjs +113 -0
  102. package/esm2020/lib/business-partner-groups/business-partner-group/business-partner-group-routing.module.mjs +38 -0
  103. package/esm2020/lib/business-partner-groups/business-partner-group/business-partner-group.module.mjs +52 -0
  104. package/esm2020/lib/business-partner-groups/business-partner-group/components/business-partner-group.component.mjs +104 -0
  105. package/esm2020/lib/business-partners/business-partner/business-partner-routing.module.mjs +38 -0
  106. package/esm2020/lib/business-partners/business-partner/business-partner.module.mjs +52 -0
  107. package/esm2020/lib/business-partners/business-partner/components/business-partner.component.mjs +112 -0
  108. package/esm2020/lib/components/e-donusum.component.mjs +18 -0
  109. package/esm2020/lib/components/hit-inbound-invoices/hit-inbound-invoice-routing.module.mjs +38 -0
  110. package/esm2020/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.mjs +119 -0
  111. package/esm2020/lib/components/hit-inbound-invoices/hit-inbound-invoice.module.mjs +77 -0
  112. package/esm2020/lib/components/hit-invoices/hit-invoice.component.mjs +99 -0
  113. package/esm2020/lib/components/hit-invoices/hit-invoice.module.mjs +71 -0
  114. package/esm2020/lib/components/hit-invoices/sanitize-html.pipe.mjs +19 -0
  115. package/esm2020/lib/components/hit-note-rules/hit-note-rule.component.mjs +319 -0
  116. package/esm2020/lib/components/hit-note-rules/hit-note-rule.module.mjs +70 -0
  117. package/esm2020/lib/components/hit-paramas-invoices/hit-params-invoice.component.mjs +108 -0
  118. package/esm2020/lib/components/hit-paramas-invoices/hit-params-invoice.module.mjs +36 -0
  119. package/esm2020/lib/components/hit-params-companies/hit-params-company.component.mjs +110 -0
  120. package/esm2020/lib/components/hit-params-companies/hit-params-company.module.mjs +32 -0
  121. package/esm2020/lib/components/hit-params-dispatches/hit-params-dispatch.component.mjs +120 -0
  122. package/esm2020/lib/components/hit-params-dispatches/hit-params-dispatch.module.mjs +36 -0
  123. package/esm2020/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.mjs +153 -0
  124. package/esm2020/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.module.mjs +39 -0
  125. package/esm2020/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.mjs +76 -0
  126. package/esm2020/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.module.mjs +36 -0
  127. package/esm2020/lib/components/hit-params-integrators/hit-params-integrator.component.mjs +152 -0
  128. package/esm2020/lib/components/hit-params-integrators/hit-params-integrator.module.mjs +36 -0
  129. package/esm2020/lib/components/hit-setup-wizard/hit-setup-wizard-routing.module.mjs +38 -0
  130. package/esm2020/lib/components/hit-setup-wizard/hit-setup-wizard.component.mjs +134 -0
  131. package/esm2020/lib/components/hit-setup-wizard/hit-setup-wizard.module.mjs +66 -0
  132. package/esm2020/lib/components/hit-xslt-formats/hit-xslt-format.component.mjs +139 -0
  133. package/esm2020/lib/components/hit-xslt-formats/hit-xslt-format.module.mjs +67 -0
  134. package/esm2020/lib/components/hit-xslt-rules/hit-xslt-rule.component.mjs +299 -0
  135. package/esm2020/lib/components/hit-xslt-rules/hit-xslt-rule.module.mjs +73 -0
  136. package/esm2020/lib/despatch-document-references/despatch-document-reference/components/despatch-document-reference.component.mjs +117 -0
  137. package/esm2020/lib/despatch-document-references/despatch-document-reference/despatch-document-reference-routing.module.mjs +38 -0
  138. package/esm2020/lib/despatch-document-references/despatch-document-reference/despatch-document-reference.module.mjs +52 -0
  139. package/esm2020/lib/despatch-line-order-line-references/despatch-line-order-line-reference/components/despatch-line-order-line-reference.component.mjs +121 -0
  140. package/esm2020/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference-routing.module.mjs +38 -0
  141. package/esm2020/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference.module.mjs +52 -0
  142. package/esm2020/lib/despatch-lines/despatch-line/components/despatch-line.component.mjs +137 -0
  143. package/esm2020/lib/despatch-lines/despatch-line/despatch-line-routing.module.mjs +38 -0
  144. package/esm2020/lib/despatch-lines/despatch-line/despatch-line.module.mjs +52 -0
  145. package/esm2020/lib/despatch-notes/despatch-note/components/despatch-note.component.mjs +108 -0
  146. package/esm2020/lib/despatch-notes/despatch-note/despatch-note-routing.module.mjs +38 -0
  147. package/esm2020/lib/despatch-notes/despatch-note/despatch-note.module.mjs +52 -0
  148. package/esm2020/lib/despatches/despatch/components/despatch.component.mjs +285 -0
  149. package/esm2020/lib/despatches/despatch/despatch-routing.module.mjs +38 -0
  150. package/esm2020/lib/despatches/despatch/despatch.module.mjs +52 -0
  151. package/esm2020/lib/e-donusum-routing.module.mjs +110 -0
  152. package/esm2020/lib/e-donusum.module.mjs +61 -0
  153. package/esm2020/lib/gib-partner-pk-alls/gib-partner-pk-all/components/gib-partner-pk-all.component.mjs +116 -0
  154. package/esm2020/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all-routing.module.mjs +38 -0
  155. package/esm2020/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all.module.mjs +52 -0
  156. package/esm2020/lib/gib-partner-pks/gib-partner-pk/components/gib-partner-pk.component.mjs +116 -0
  157. package/esm2020/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk-routing.module.mjs +38 -0
  158. package/esm2020/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk.module.mjs +52 -0
  159. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.mjs +2 -0
  160. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.mjs +54 -0
  161. package/esm2020/lib/hit-proxy/hit-branches/hit-branch.service.mjs +26 -0
  162. package/esm2020/lib/hit-proxy/hit-connectors/hit-connector.service.mjs +37 -0
  163. package/esm2020/lib/hit-proxy/hit-content-master/models.mjs +2 -0
  164. package/esm2020/lib/hit-proxy/hit-document-types/hit-document-type.service.mjs +28 -0
  165. package/esm2020/lib/hit-proxy/hit-entegrators/hit-entegrator.service.mjs +39 -0
  166. package/esm2020/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.mjs +34 -0
  167. package/esm2020/lib/hit-proxy/hit-inventory-transfer-addresses/hit-inventory-transfer-address.service.mjs +22 -0
  168. package/esm2020/lib/hit-proxy/hit-invoices/hit-invoice.service.mjs +62 -0
  169. package/esm2020/lib/hit-proxy/hit-note-rule-doc-types/hit-note-rule-doc-type.service.mjs +23 -0
  170. package/esm2020/lib/hit-proxy/hit-note-rule-scenarios/hit-note-rule-scenario.service.mjs +23 -0
  171. package/esm2020/lib/hit-proxy/hit-note-rules/hit-note-rule.service.mjs +63 -0
  172. package/esm2020/lib/hit-proxy/hit-note-rules/models.mjs +2 -0
  173. package/esm2020/lib/hit-proxy/hit-params-companies/hit-params-company.service.mjs +30 -0
  174. package/esm2020/lib/hit-proxy/hit-params-dispatches/hit-params-dispatch.service.mjs +22 -0
  175. package/esm2020/lib/hit-proxy/hit-params-generals/hit-params-general.service.mjs +22 -0
  176. package/esm2020/lib/hit-proxy/hit-params-integrators/hit-params-integrator.service.mjs +22 -0
  177. package/esm2020/lib/hit-proxy/hit-params-invoices/hit-params-invoice.service.mjs +22 -0
  178. package/esm2020/lib/hit-proxy/hit-scenario-types/hit-scenario-type.service.mjs +28 -0
  179. package/esm2020/lib/hit-proxy/hit-xslt-formats/hit-xslt-format.service.mjs +46 -0
  180. package/esm2020/lib/hit-proxy/hit-xslt-formats/models.mjs +2 -0
  181. package/esm2020/lib/hit-proxy/hit-xslt-rule-doc-types/hit-xslt-rule-doc-type.service.mjs +23 -0
  182. package/esm2020/lib/hit-proxy/hit-xslt-rule-scenarios/hit-xslt-rule-scenario.service.mjs +23 -0
  183. package/esm2020/lib/hit-proxy/hit-xslt-rules/hit-xslt-rule.service.mjs +55 -0
  184. package/esm2020/lib/hit-proxy/hit-xslt-rules/models.mjs +2 -0
  185. package/esm2020/lib/invoice-document-references/invoice-document-reference/components/invoice-document-reference.component.mjs +117 -0
  186. package/esm2020/lib/invoice-document-references/invoice-document-reference/invoice-document-reference-routing.module.mjs +38 -0
  187. package/esm2020/lib/invoice-document-references/invoice-document-reference/invoice-document-reference.module.mjs +52 -0
  188. package/esm2020/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/components/invoice-line-despatch-line-reference.component.mjs +115 -0
  189. package/esm2020/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference-routing.module.mjs +38 -0
  190. package/esm2020/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference.module.mjs +52 -0
  191. package/esm2020/lib/invoice-line-order-line-references/invoice-line-order-line-reference/components/invoice-line-order-line-reference.component.mjs +121 -0
  192. package/esm2020/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference-routing.module.mjs +38 -0
  193. package/esm2020/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference.module.mjs +52 -0
  194. package/esm2020/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/components/invoice-line-receipt-line-reference.component.mjs +115 -0
  195. package/esm2020/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference-routing.module.mjs +38 -0
  196. package/esm2020/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference.module.mjs +52 -0
  197. package/esm2020/lib/invoice-lines/invoice-line/components/invoice-line.component.mjs +137 -0
  198. package/esm2020/lib/invoice-lines/invoice-line/invoice-line-routing.module.mjs +38 -0
  199. package/esm2020/lib/invoice-lines/invoice-line/invoice-line.module.mjs +52 -0
  200. package/esm2020/lib/invoice-notes/invoice-note/components/invoice-note.component.mjs +108 -0
  201. package/esm2020/lib/invoice-notes/invoice-note/invoice-note-routing.module.mjs +38 -0
  202. package/esm2020/lib/invoice-notes/invoice-note/invoice-note.module.mjs +52 -0
  203. package/esm2020/lib/invoices/invoice/components/invoice.component.mjs +271 -0
  204. package/esm2020/lib/invoices/invoice/invoice-routing.module.mjs +38 -0
  205. package/esm2020/lib/invoices/invoice/invoice.module.mjs +52 -0
  206. package/esm2020/lib/note-rule-doc-types/note-rule-doc-type/components/note-rule-doc-type.component.mjs +98 -0
  207. package/esm2020/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type-routing.module.mjs +38 -0
  208. package/esm2020/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type.module.mjs +52 -0
  209. package/esm2020/lib/note-rule-scenarios/note-rule-scenario/components/note-rule-scenario.component.mjs +98 -0
  210. package/esm2020/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario-routing.module.mjs +38 -0
  211. package/esm2020/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario.module.mjs +52 -0
  212. package/esm2020/lib/note-rules/note-rule/components/note-rule.component.mjs +120 -0
  213. package/esm2020/lib/note-rules/note-rule/note-rule-routing.module.mjs +38 -0
  214. package/esm2020/lib/note-rules/note-rule/note-rule.module.mjs +52 -0
  215. package/esm2020/lib/params-companies/params-company/components/params-company.component.mjs +124 -0
  216. package/esm2020/lib/params-companies/params-company/params-company-routing.module.mjs +38 -0
  217. package/esm2020/lib/params-companies/params-company/params-company.module.mjs +52 -0
  218. package/esm2020/lib/params-generals/params-general/components/params-general.component.mjs +108 -0
  219. package/esm2020/lib/params-generals/params-general/params-general-routing.module.mjs +38 -0
  220. package/esm2020/lib/params-generals/params-general/params-general.module.mjs +52 -0
  221. package/esm2020/lib/params-integrators/params-integrator/components/params-integrator.component.mjs +117 -0
  222. package/esm2020/lib/params-integrators/params-integrator/params-integrator-routing.module.mjs +38 -0
  223. package/esm2020/lib/params-integrators/params-integrator/params-integrator.module.mjs +52 -0
  224. package/esm2020/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.mjs +119 -0
  225. package/esm2020/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch-routing.module.mjs +38 -0
  226. package/esm2020/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch.module.mjs +52 -0
  227. package/esm2020/lib/paramse-invoices/paramse-invoice/components/paramse-invoice.component.mjs +113 -0
  228. package/esm2020/lib/paramse-invoices/paramse-invoice/paramse-invoice-routing.module.mjs +38 -0
  229. package/esm2020/lib/paramse-invoices/paramse-invoice/paramse-invoice.module.mjs +52 -0
  230. package/esm2020/lib/proxy/branches/branch.service.mjs +51 -0
  231. package/esm2020/lib/proxy/branches/models.mjs +2 -0
  232. package/esm2020/lib/proxy/business-partner-groups/business-partner-group.service.mjs +41 -0
  233. package/esm2020/lib/proxy/business-partner-groups/models.mjs +2 -0
  234. package/esm2020/lib/proxy/business-partners/business-partner.service.mjs +50 -0
  235. package/esm2020/lib/proxy/business-partners/models.mjs +2 -0
  236. package/esm2020/lib/proxy/despatch-document-references/despatch-document-reference.service.mjs +60 -0
  237. package/esm2020/lib/proxy/despatch-document-references/models.mjs +2 -0
  238. package/esm2020/lib/proxy/despatch-line-order-line-references/despatch-line-order-line-reference.service.mjs +60 -0
  239. package/esm2020/lib/proxy/despatch-line-order-line-references/models.mjs +2 -0
  240. package/esm2020/lib/proxy/despatch-lines/despatch-line.service.mjs +60 -0
  241. package/esm2020/lib/proxy/despatch-lines/models.mjs +2 -0
  242. package/esm2020/lib/proxy/despatch-notes/despatch-note.service.mjs +60 -0
  243. package/esm2020/lib/proxy/despatch-notes/models.mjs +2 -0
  244. package/esm2020/lib/proxy/despatches/despatch.service.mjs +51 -0
  245. package/esm2020/lib/proxy/despatches/models.mjs +2 -0
  246. package/esm2020/lib/proxy/gib-partner-pk-alls/gib-partner-pk-all.service.mjs +51 -0
  247. package/esm2020/lib/proxy/gib-partner-pk-alls/models.mjs +2 -0
  248. package/esm2020/lib/proxy/gib-partner-pks/gib-partner-pk.service.mjs +51 -0
  249. package/esm2020/lib/proxy/gib-partner-pks/models.mjs +2 -0
  250. package/esm2020/lib/proxy/invoice-document-references/invoice-document-reference.service.mjs +60 -0
  251. package/esm2020/lib/proxy/invoice-document-references/models.mjs +2 -0
  252. package/esm2020/lib/proxy/invoice-line-despatch-line-references/invoice-line-despatch-line-reference.service.mjs +60 -0
  253. package/esm2020/lib/proxy/invoice-line-despatch-line-references/models.mjs +2 -0
  254. package/esm2020/lib/proxy/invoice-line-order-line-references/invoice-line-order-line-reference.service.mjs +60 -0
  255. package/esm2020/lib/proxy/invoice-line-order-line-references/models.mjs +2 -0
  256. package/esm2020/lib/proxy/invoice-line-receipt-line-references/invoice-line-receipt-line-reference.service.mjs +60 -0
  257. package/esm2020/lib/proxy/invoice-line-receipt-line-references/models.mjs +2 -0
  258. package/esm2020/lib/proxy/invoice-lines/invoice-line.service.mjs +60 -0
  259. package/esm2020/lib/proxy/invoice-lines/models.mjs +2 -0
  260. package/esm2020/lib/proxy/invoice-notes/invoice-note.service.mjs +60 -0
  261. package/esm2020/lib/proxy/invoice-notes/models.mjs +2 -0
  262. package/esm2020/lib/proxy/invoices/invoice.service.mjs +51 -0
  263. package/esm2020/lib/proxy/invoices/models.mjs +2 -0
  264. package/esm2020/lib/proxy/note-rule-doc-types/index.mjs +3 -0
  265. package/esm2020/lib/proxy/note-rule-doc-types/models.mjs +2 -0
  266. package/esm2020/lib/proxy/note-rule-doc-types/note-rule-doc-type.service.mjs +50 -0
  267. package/esm2020/lib/proxy/note-rule-scenarios/index.mjs +3 -0
  268. package/esm2020/lib/proxy/note-rule-scenarios/models.mjs +2 -0
  269. package/esm2020/lib/proxy/note-rule-scenarios/note-rule-scenario.service.mjs +50 -0
  270. package/esm2020/lib/proxy/note-rules/index.mjs +3 -0
  271. package/esm2020/lib/proxy/note-rules/models.mjs +2 -0
  272. package/esm2020/lib/proxy/note-rules/note-rule.service.mjs +51 -0
  273. package/esm2020/lib/proxy/params-companies/index.mjs +3 -0
  274. package/esm2020/lib/proxy/params-companies/models.mjs +2 -0
  275. package/esm2020/lib/proxy/params-companies/params-company.service.mjs +51 -0
  276. package/esm2020/lib/proxy/params-generals/index.mjs +3 -0
  277. package/esm2020/lib/proxy/params-generals/models.mjs +2 -0
  278. package/esm2020/lib/proxy/params-generals/params-general.service.mjs +51 -0
  279. package/esm2020/lib/proxy/params-integrators/index.mjs +3 -0
  280. package/esm2020/lib/proxy/params-integrators/models.mjs +2 -0
  281. package/esm2020/lib/proxy/params-integrators/params-integrator.service.mjs +60 -0
  282. package/esm2020/lib/proxy/paramse-dispatches/index.mjs +3 -0
  283. package/esm2020/lib/proxy/paramse-dispatches/models.mjs +2 -0
  284. package/esm2020/lib/proxy/paramse-dispatches/paramse-dispatch.service.mjs +51 -0
  285. package/esm2020/lib/proxy/paramse-invoices/index.mjs +3 -0
  286. package/esm2020/lib/proxy/paramse-invoices/models.mjs +2 -0
  287. package/esm2020/lib/proxy/paramse-invoices/paramse-invoice.service.mjs +51 -0
  288. package/esm2020/lib/proxy/shared/models.mjs +2 -0
  289. package/esm2020/lib/proxy/xslt-formats/index.mjs +3 -0
  290. package/esm2020/lib/proxy/xslt-formats/models.mjs +2 -0
  291. package/esm2020/lib/proxy/xslt-formats/xslt-format.service.mjs +41 -0
  292. package/esm2020/lib/proxy/xslt-rule-doc-types/index.mjs +3 -0
  293. package/esm2020/lib/proxy/xslt-rule-doc-types/models.mjs +2 -0
  294. package/esm2020/lib/proxy/xslt-rule-doc-types/xslt-rule-doc-type.service.mjs +50 -0
  295. package/esm2020/lib/proxy/xslt-rule-scenarios/index.mjs +3 -0
  296. package/esm2020/lib/proxy/xslt-rule-scenarios/models.mjs +2 -0
  297. package/esm2020/lib/proxy/xslt-rule-scenarios/xslt-rule-scenario.service.mjs +50 -0
  298. package/esm2020/lib/proxy/xslt-rules/index.mjs +3 -0
  299. package/esm2020/lib/proxy/xslt-rules/models.mjs +2 -0
  300. package/esm2020/lib/proxy/xslt-rules/xslt-rule.service.mjs +50 -0
  301. package/esm2020/lib/services/e-donusum.service.mjs +21 -0
  302. package/esm2020/lib/xslt-formats/xslt-format/components/xslt-format.component.mjs +101 -0
  303. package/esm2020/lib/xslt-formats/xslt-format/xslt-format-routing.module.mjs +38 -0
  304. package/esm2020/lib/xslt-formats/xslt-format/xslt-format.module.mjs +52 -0
  305. package/esm2020/lib/xslt-rule-doc-types/xslt-rule-doc-type/components/xslt-rule-doc-type.component.mjs +98 -0
  306. package/esm2020/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type-routing.module.mjs +26 -0
  307. package/esm2020/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type.module.mjs +52 -0
  308. package/esm2020/lib/xslt-rule-scenarios/xslt-rule-scenario/components/xslt-rule-scenario.component.mjs +98 -0
  309. package/esm2020/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario-routing.module.mjs +26 -0
  310. package/esm2020/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario.module.mjs +52 -0
  311. package/esm2020/lib/xslt-rules/xslt-rule/components/xslt-rule.component.mjs +106 -0
  312. package/esm2020/lib/xslt-rules/xslt-rule/xslt-rule-routing.module.mjs +38 -0
  313. package/esm2020/lib/xslt-rules/xslt-rule/xslt-rule.module.mjs +52 -0
  314. package/esm2020/public-api.mjs +7 -0
  315. package/fesm2015/hitsoft-e-donusum-config.mjs +850 -0
  316. package/fesm2015/hitsoft-e-donusum-config.mjs.map +1 -0
  317. package/fesm2015/hitsoft-e-donusum.mjs +9581 -0
  318. package/fesm2015/hitsoft-e-donusum.mjs.map +1 -0
  319. package/fesm2020/hitsoft-e-donusum-config.mjs +850 -0
  320. package/fesm2020/hitsoft-e-donusum-config.mjs.map +1 -0
  321. package/fesm2020/hitsoft-e-donusum.mjs +9734 -0
  322. package/fesm2020/hitsoft-e-donusum.mjs.map +1 -0
  323. package/index.d.ts +5 -0
  324. package/lib/branches/branch/branch-routing.module.d.ts +7 -0
  325. package/lib/branches/branch/branch.module.d.ts +15 -0
  326. package/lib/branches/branch/components/branch.component.d.ts +35 -0
  327. package/lib/business-partner-groups/business-partner-group/business-partner-group-routing.module.d.ts +7 -0
  328. package/lib/business-partner-groups/business-partner-group/business-partner-group.module.d.ts +15 -0
  329. package/lib/business-partner-groups/business-partner-group/components/business-partner-group.component.d.ts +33 -0
  330. package/lib/business-partners/business-partner/business-partner-routing.module.d.ts +7 -0
  331. package/lib/business-partners/business-partner/business-partner.module.d.ts +15 -0
  332. package/lib/business-partners/business-partner/components/business-partner.component.d.ts +33 -0
  333. package/lib/components/e-donusum.component.d.ts +10 -0
  334. package/lib/components/hit-inbound-invoices/hit-inbound-invoice-routing.module.d.ts +7 -0
  335. package/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.d.ts +36 -0
  336. package/lib/components/hit-inbound-invoices/hit-inbound-invoice.module.d.ts +16 -0
  337. package/lib/components/hit-invoices/hit-invoice.component.d.ts +30 -0
  338. package/lib/components/hit-invoices/hit-invoice.module.d.ts +16 -0
  339. package/lib/components/hit-invoices/sanitize-html.pipe.d.ts +10 -0
  340. package/lib/components/hit-note-rules/hit-note-rule.component.d.ts +67 -0
  341. package/lib/components/hit-note-rules/hit-note-rule.module.d.ts +15 -0
  342. package/lib/components/hit-paramas-invoices/hit-params-invoice.component.d.ts +34 -0
  343. package/lib/components/hit-paramas-invoices/hit-params-invoice.module.d.ts +12 -0
  344. package/lib/components/hit-params-companies/hit-params-company.component.d.ts +30 -0
  345. package/lib/components/hit-params-companies/hit-params-company.module.d.ts +11 -0
  346. package/lib/components/hit-params-dispatches/hit-params-dispatch.component.d.ts +37 -0
  347. package/lib/components/hit-params-dispatches/hit-params-dispatch.module.d.ts +12 -0
  348. package/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.d.ts +39 -0
  349. package/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.module.d.ts +12 -0
  350. package/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.d.ts +27 -0
  351. package/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.module.d.ts +12 -0
  352. package/lib/components/hit-params-integrators/hit-params-integrator.component.d.ts +38 -0
  353. package/lib/components/hit-params-integrators/hit-params-integrator.module.d.ts +12 -0
  354. package/lib/components/hit-setup-wizard/hit-setup-wizard-routing.module.d.ts +7 -0
  355. package/lib/components/hit-setup-wizard/hit-setup-wizard.component.d.ts +37 -0
  356. package/lib/components/hit-setup-wizard/hit-setup-wizard.module.d.ts +20 -0
  357. package/lib/components/hit-xslt-formats/hit-xslt-format.component.d.ts +39 -0
  358. package/lib/components/hit-xslt-formats/hit-xslt-format.module.d.ts +15 -0
  359. package/lib/components/hit-xslt-rules/hit-xslt-rule.component.d.ts +73 -0
  360. package/lib/components/hit-xslt-rules/hit-xslt-rule.module.d.ts +15 -0
  361. package/lib/despatch-document-references/despatch-document-reference/components/despatch-document-reference.component.d.ts +35 -0
  362. package/lib/despatch-document-references/despatch-document-reference/despatch-document-reference-routing.module.d.ts +7 -0
  363. package/lib/despatch-document-references/despatch-document-reference/despatch-document-reference.module.d.ts +15 -0
  364. package/lib/despatch-line-order-line-references/despatch-line-order-line-reference/components/despatch-line-order-line-reference.component.d.ts +35 -0
  365. package/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference-routing.module.d.ts +7 -0
  366. package/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference.module.d.ts +15 -0
  367. package/lib/despatch-lines/despatch-line/components/despatch-line.component.d.ts +35 -0
  368. package/lib/despatch-lines/despatch-line/despatch-line-routing.module.d.ts +7 -0
  369. package/lib/despatch-lines/despatch-line/despatch-line.module.d.ts +15 -0
  370. package/lib/despatch-notes/despatch-note/components/despatch-note.component.d.ts +35 -0
  371. package/lib/despatch-notes/despatch-note/despatch-note-routing.module.d.ts +7 -0
  372. package/lib/despatch-notes/despatch-note/despatch-note.module.d.ts +15 -0
  373. package/lib/despatches/despatch/components/despatch.component.d.ts +35 -0
  374. package/lib/despatches/despatch/despatch-routing.module.d.ts +7 -0
  375. package/lib/despatches/despatch/despatch.module.d.ts +15 -0
  376. package/lib/e-donusum-routing.module.d.ts +7 -0
  377. package/lib/e-donusum.module.d.ts +17 -0
  378. package/lib/gib-partner-pk-alls/gib-partner-pk-all/components/gib-partner-pk-all.component.d.ts +35 -0
  379. package/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all-routing.module.d.ts +7 -0
  380. package/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all.module.d.ts +15 -0
  381. package/lib/gib-partner-pks/gib-partner-pk/components/gib-partner-pk.component.d.ts +35 -0
  382. package/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk-routing.module.d.ts +7 -0
  383. package/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk.module.d.ts +15 -0
  384. package/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.d.ts +17 -0
  385. package/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.d.ts +18 -0
  386. package/lib/hit-proxy/hit-branches/hit-branch.service.d.ts +11 -0
  387. package/lib/hit-proxy/hit-connectors/hit-connector.service.d.ts +12 -0
  388. package/lib/hit-proxy/hit-content-master/models.d.ts +12 -0
  389. package/lib/hit-proxy/hit-document-types/hit-document-type.service.d.ts +14 -0
  390. package/lib/hit-proxy/hit-entegrators/hit-entegrator.service.d.ts +12 -0
  391. package/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.d.ts +14 -0
  392. package/lib/hit-proxy/hit-inventory-transfer-addresses/hit-inventory-transfer-address.service.d.ts +10 -0
  393. package/lib/hit-proxy/hit-invoices/hit-invoice.service.d.ts +21 -0
  394. package/lib/hit-proxy/hit-note-rule-doc-types/hit-note-rule-doc-type.service.d.ts +11 -0
  395. package/lib/hit-proxy/hit-note-rule-scenarios/hit-note-rule-scenario.service.d.ts +11 -0
  396. package/lib/hit-proxy/hit-note-rules/hit-note-rule.service.d.ts +23 -0
  397. package/lib/hit-proxy/hit-note-rules/models.d.ts +34 -0
  398. package/lib/hit-proxy/hit-params-companies/hit-params-company.service.d.ts +12 -0
  399. package/lib/hit-proxy/hit-params-dispatches/hit-params-dispatch.service.d.ts +10 -0
  400. package/lib/hit-proxy/hit-params-generals/hit-params-general.service.d.ts +10 -0
  401. package/lib/hit-proxy/hit-params-integrators/hit-params-integrator.service.d.ts +10 -0
  402. package/lib/hit-proxy/hit-params-invoices/hit-params-invoice.service.d.ts +10 -0
  403. package/lib/hit-proxy/hit-scenario-types/hit-scenario-type.service.d.ts +14 -0
  404. package/lib/hit-proxy/hit-xslt-formats/hit-xslt-format.service.d.ts +19 -0
  405. package/lib/hit-proxy/hit-xslt-formats/models.d.ts +10 -0
  406. package/lib/hit-proxy/hit-xslt-rule-doc-types/hit-xslt-rule-doc-type.service.d.ts +11 -0
  407. package/lib/hit-proxy/hit-xslt-rule-scenarios/hit-xslt-rule-scenario.service.d.ts +11 -0
  408. package/lib/hit-proxy/hit-xslt-rules/hit-xslt-rule.service.d.ts +22 -0
  409. package/lib/hit-proxy/hit-xslt-rules/models.d.ts +34 -0
  410. package/lib/invoice-document-references/invoice-document-reference/components/invoice-document-reference.component.d.ts +35 -0
  411. package/lib/invoice-document-references/invoice-document-reference/invoice-document-reference-routing.module.d.ts +7 -0
  412. package/lib/invoice-document-references/invoice-document-reference/invoice-document-reference.module.d.ts +15 -0
  413. package/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/components/invoice-line-despatch-line-reference.component.d.ts +35 -0
  414. package/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference-routing.module.d.ts +7 -0
  415. package/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference.module.d.ts +15 -0
  416. package/lib/invoice-line-order-line-references/invoice-line-order-line-reference/components/invoice-line-order-line-reference.component.d.ts +35 -0
  417. package/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference-routing.module.d.ts +7 -0
  418. package/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference.module.d.ts +15 -0
  419. package/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/components/invoice-line-receipt-line-reference.component.d.ts +35 -0
  420. package/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference-routing.module.d.ts +7 -0
  421. package/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference.module.d.ts +15 -0
  422. package/lib/invoice-lines/invoice-line/components/invoice-line.component.d.ts +35 -0
  423. package/lib/invoice-lines/invoice-line/invoice-line-routing.module.d.ts +7 -0
  424. package/lib/invoice-lines/invoice-line/invoice-line.module.d.ts +15 -0
  425. package/lib/invoice-notes/invoice-note/components/invoice-note.component.d.ts +35 -0
  426. package/lib/invoice-notes/invoice-note/invoice-note-routing.module.d.ts +7 -0
  427. package/lib/invoice-notes/invoice-note/invoice-note.module.d.ts +15 -0
  428. package/lib/invoices/invoice/components/invoice.component.d.ts +35 -0
  429. package/lib/invoices/invoice/invoice-routing.module.d.ts +7 -0
  430. package/lib/invoices/invoice/invoice.module.d.ts +15 -0
  431. package/lib/note-rule-doc-types/note-rule-doc-type/components/note-rule-doc-type.component.d.ts +33 -0
  432. package/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type-routing.module.d.ts +7 -0
  433. package/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type.module.d.ts +15 -0
  434. package/lib/note-rule-scenarios/note-rule-scenario/components/note-rule-scenario.component.d.ts +33 -0
  435. package/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario-routing.module.d.ts +7 -0
  436. package/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario.module.d.ts +15 -0
  437. package/lib/note-rules/note-rule/components/note-rule.component.d.ts +35 -0
  438. package/lib/note-rules/note-rule/note-rule-routing.module.d.ts +7 -0
  439. package/lib/note-rules/note-rule/note-rule.module.d.ts +15 -0
  440. package/lib/params-companies/params-company/components/params-company.component.d.ts +35 -0
  441. package/lib/params-companies/params-company/params-company-routing.module.d.ts +7 -0
  442. package/lib/params-companies/params-company/params-company.module.d.ts +15 -0
  443. package/lib/params-generals/params-general/components/params-general.component.d.ts +35 -0
  444. package/lib/params-generals/params-general/params-general-routing.module.d.ts +7 -0
  445. package/lib/params-generals/params-general/params-general.module.d.ts +15 -0
  446. package/lib/params-integrators/params-integrator/components/params-integrator.component.d.ts +35 -0
  447. package/lib/params-integrators/params-integrator/params-integrator-routing.module.d.ts +7 -0
  448. package/lib/params-integrators/params-integrator/params-integrator.module.d.ts +15 -0
  449. package/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.d.ts +35 -0
  450. package/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch-routing.module.d.ts +7 -0
  451. package/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch.module.d.ts +15 -0
  452. package/lib/paramse-invoices/paramse-invoice/components/paramse-invoice.component.d.ts +35 -0
  453. package/lib/paramse-invoices/paramse-invoice/paramse-invoice-routing.module.d.ts +7 -0
  454. package/lib/paramse-invoices/paramse-invoice/paramse-invoice.module.d.ts +15 -0
  455. package/lib/proxy/branches/branch.service.d.ts +19 -0
  456. package/lib/proxy/branches/models.d.ts +41 -0
  457. package/lib/proxy/business-partner-groups/business-partner-group.service.d.ts +16 -0
  458. package/lib/proxy/business-partner-groups/models.d.ts +32 -0
  459. package/lib/proxy/business-partners/business-partner.service.d.ts +19 -0
  460. package/lib/proxy/business-partners/models.d.ts +65 -0
  461. package/lib/proxy/despatch-document-references/despatch-document-reference.service.d.ts +21 -0
  462. package/lib/proxy/despatch-document-references/models.d.ts +51 -0
  463. package/lib/proxy/despatch-line-order-line-references/despatch-line-order-line-reference.service.d.ts +21 -0
  464. package/lib/proxy/despatch-line-order-line-references/models.d.ts +80 -0
  465. package/lib/proxy/despatch-lines/despatch-line.service.d.ts +21 -0
  466. package/lib/proxy/despatch-lines/models.d.ts +102 -0
  467. package/lib/proxy/despatch-notes/despatch-note.service.d.ts +21 -0
  468. package/lib/proxy/despatch-notes/models.d.ts +30 -0
  469. package/lib/proxy/despatches/despatch.service.d.ts +19 -0
  470. package/lib/proxy/despatches/models.d.ts +333 -0
  471. package/lib/proxy/gib-partner-pk-alls/gib-partner-pk-all.service.d.ts +19 -0
  472. package/lib/proxy/gib-partner-pk-alls/models.d.ts +57 -0
  473. package/lib/proxy/gib-partner-pks/gib-partner-pk.service.d.ts +19 -0
  474. package/lib/proxy/gib-partner-pks/models.d.ts +57 -0
  475. package/lib/proxy/invoice-document-references/invoice-document-reference.service.d.ts +21 -0
  476. package/lib/proxy/invoice-document-references/models.d.ts +51 -0
  477. package/lib/proxy/invoice-line-despatch-line-references/invoice-line-despatch-line-reference.service.d.ts +21 -0
  478. package/lib/proxy/invoice-line-despatch-line-references/models.d.ts +55 -0
  479. package/lib/proxy/invoice-line-order-line-references/invoice-line-order-line-reference.service.d.ts +21 -0
  480. package/lib/proxy/invoice-line-order-line-references/models.d.ts +80 -0
  481. package/lib/proxy/invoice-line-receipt-line-references/invoice-line-receipt-line-reference.service.d.ts +21 -0
  482. package/lib/proxy/invoice-line-receipt-line-references/models.d.ts +55 -0
  483. package/lib/proxy/invoice-lines/invoice-line.service.d.ts +21 -0
  484. package/lib/proxy/invoice-lines/models.d.ts +102 -0
  485. package/lib/proxy/invoice-notes/invoice-note.service.d.ts +21 -0
  486. package/lib/proxy/invoice-notes/models.d.ts +30 -0
  487. package/lib/proxy/invoices/invoice.service.d.ts +19 -0
  488. package/lib/proxy/invoices/models.d.ts +354 -0
  489. package/lib/proxy/note-rule-doc-types/index.d.ts +2 -0
  490. package/lib/proxy/note-rule-doc-types/models.d.ts +26 -0
  491. package/lib/proxy/note-rule-doc-types/note-rule-doc-type.service.d.ts +19 -0
  492. package/lib/proxy/note-rule-scenarios/index.d.ts +2 -0
  493. package/lib/proxy/note-rule-scenarios/models.d.ts +26 -0
  494. package/lib/proxy/note-rule-scenarios/note-rule-scenario.service.d.ts +19 -0
  495. package/lib/proxy/note-rules/index.d.ts +2 -0
  496. package/lib/proxy/note-rules/models.d.ts +73 -0
  497. package/lib/proxy/note-rules/note-rule.service.d.ts +19 -0
  498. package/lib/proxy/params-companies/index.d.ts +2 -0
  499. package/lib/proxy/params-companies/models.d.ts +96 -0
  500. package/lib/proxy/params-companies/params-company.service.d.ts +19 -0
  501. package/lib/proxy/params-generals/index.d.ts +2 -0
  502. package/lib/proxy/params-generals/models.d.ts +39 -0
  503. package/lib/proxy/params-generals/params-general.service.d.ts +19 -0
  504. package/lib/proxy/params-integrators/index.d.ts +2 -0
  505. package/lib/proxy/params-integrators/models.d.ts +66 -0
  506. package/lib/proxy/params-integrators/params-integrator.service.d.ts +21 -0
  507. package/lib/proxy/paramse-dispatches/index.d.ts +2 -0
  508. package/lib/proxy/paramse-dispatches/models.d.ts +68 -0
  509. package/lib/proxy/paramse-dispatches/paramse-dispatch.service.d.ts +19 -0
  510. package/lib/proxy/paramse-invoices/index.d.ts +2 -0
  511. package/lib/proxy/paramse-invoices/models.d.ts +43 -0
  512. package/lib/proxy/paramse-invoices/paramse-invoice.service.d.ts +19 -0
  513. package/lib/proxy/shared/models.d.ts +11 -0
  514. package/lib/proxy/xslt-formats/index.d.ts +2 -0
  515. package/lib/proxy/xslt-formats/models.d.ts +29 -0
  516. package/lib/proxy/xslt-formats/xslt-format.service.d.ts +16 -0
  517. package/lib/proxy/xslt-rule-doc-types/index.d.ts +2 -0
  518. package/lib/proxy/xslt-rule-doc-types/models.d.ts +26 -0
  519. package/lib/proxy/xslt-rule-doc-types/xslt-rule-doc-type.service.d.ts +19 -0
  520. package/lib/proxy/xslt-rule-scenarios/index.d.ts +2 -0
  521. package/lib/proxy/xslt-rule-scenarios/models.d.ts +26 -0
  522. package/lib/proxy/xslt-rule-scenarios/xslt-rule-scenario.service.d.ts +19 -0
  523. package/lib/proxy/xslt-rules/index.d.ts +2 -0
  524. package/lib/proxy/xslt-rules/models.d.ts +56 -0
  525. package/lib/proxy/xslt-rules/xslt-rule.service.d.ts +19 -0
  526. package/lib/services/e-donusum.service.d.ts +10 -0
  527. package/lib/xslt-formats/xslt-format/components/xslt-format.component.d.ts +33 -0
  528. package/lib/xslt-formats/xslt-format/xslt-format-routing.module.d.ts +7 -0
  529. package/lib/xslt-formats/xslt-format/xslt-format.module.d.ts +15 -0
  530. package/lib/xslt-rule-doc-types/xslt-rule-doc-type/components/xslt-rule-doc-type.component.d.ts +33 -0
  531. package/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type-routing.module.d.ts +7 -0
  532. package/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type.module.d.ts +15 -0
  533. package/lib/xslt-rule-scenarios/xslt-rule-scenario/components/xslt-rule-scenario.component.d.ts +33 -0
  534. package/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario-routing.module.d.ts +7 -0
  535. package/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario.module.d.ts +15 -0
  536. package/lib/xslt-rules/xslt-rule/components/xslt-rule.component.d.ts +33 -0
  537. package/lib/xslt-rules/xslt-rule/xslt-rule-routing.module.d.ts +7 -0
  538. package/lib/xslt-rules/xslt-rule/xslt-rule.module.d.ts +15 -0
  539. package/package.json +31 -6
  540. package/public-api.d.ts +3 -0
  541. package/.eslintrc.json +0 -44
  542. package/_metronic/kt/_utils/DomHelpers.ts +0 -478
  543. package/_metronic/kt/_utils/ElementAnimateUtil.ts +0 -111
  544. package/_metronic/kt/_utils/EventHandlerUtil.ts +0 -144
  545. package/_metronic/kt/_utils/_DOMEventHandlerUtil.ts +0 -60
  546. package/_metronic/kt/_utils/_DataUtil.ts +0 -72
  547. package/_metronic/kt/_utils/_ElementStyleUtil.ts +0 -17
  548. package/_metronic/kt/_utils/_TypesHelpers.ts +0 -54
  549. package/_metronic/kt/_utils/index.ts +0 -12
  550. package/_metronic/kt/_utils/models/OffsetModel.ts +0 -4
  551. package/_metronic/kt/_utils/models/ViewPortModel.ts +0 -4
  552. package/_metronic/kt/components/MenuComponent.ts +0 -1093
  553. package/_metronic/kt/components/_CookieComponent.ts +0 -60
  554. package/_metronic/kt/components/_DrawerComponent.ts +0 -385
  555. package/_metronic/kt/components/_FeedbackComponent.ts +0 -152
  556. package/_metronic/kt/components/_PasswordMeterComponent.ts +0 -273
  557. package/_metronic/kt/components/_ScrollComponent.ts +0 -312
  558. package/_metronic/kt/components/_ScrollTopComponent.ts +0 -148
  559. package/_metronic/kt/components/_StepperComponent.ts +0 -354
  560. package/_metronic/kt/components/_StickyComponent.ts +0 -293
  561. package/_metronic/kt/components/_SwapperComponent.ts +0 -208
  562. package/_metronic/kt/components/_ToggleComponent.ts +0 -218
  563. package/_metronic/kt/components/index.ts +0 -11
  564. package/_metronic/kt/index.ts +0 -3
  565. package/_metronic/kt/kt-helpers.ts +0 -12
  566. package/_metronic/kt/layout/ThemeMode.ts +0 -211
  567. package/_metronic/kt/layout/index.ts +0 -1
  568. package/_metronic/layout/components/content/content.component.html +0 -12
  569. package/_metronic/layout/components/content/content.component.scss +0 -0
  570. package/_metronic/layout/components/content/content.component.ts +0 -35
  571. package/_metronic/layout/components/footer/footer.component.html +0 -32
  572. package/_metronic/layout/components/footer/footer.component.scss +0 -0
  573. package/_metronic/layout/components/footer/footer.component.spec.ts +0 -25
  574. package/_metronic/layout/components/footer/footer.component.ts +0 -13
  575. package/_metronic/layout/components/header/header-menu/header-menu.component.html +0 -546
  576. package/_metronic/layout/components/header/header-menu/header-menu.component.scss +0 -4
  577. package/_metronic/layout/components/header/header-menu/header-menu.component.spec.ts +0 -25
  578. package/_metronic/layout/components/header/header-menu/header-menu.component.ts +0 -53
  579. package/_metronic/layout/components/header/header.component.html +0 -87
  580. package/_metronic/layout/components/header/header.component.scss +0 -0
  581. package/_metronic/layout/components/header/header.component.spec.ts +0 -25
  582. package/_metronic/layout/components/header/header.component.ts +0 -139
  583. package/_metronic/layout/components/header/navbar/navbar.component.html +0 -92
  584. package/_metronic/layout/components/header/navbar/navbar.component.scss +0 -0
  585. package/_metronic/layout/components/header/navbar/navbar.component.spec.ts +0 -23
  586. package/_metronic/layout/components/header/navbar/navbar.component.ts +0 -26
  587. package/_metronic/layout/components/header/page-title/page-title.component.html +0 -57
  588. package/_metronic/layout/components/header/page-title/page-title.component.ts +0 -31
  589. package/_metronic/layout/components/scripts-init/scripts-init.component.html +0 -0
  590. package/_metronic/layout/components/scripts-init/scripts-init.component.ts +0 -82
  591. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.html +0 -9
  592. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.scss +0 -0
  593. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +0 -23
  594. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.ts +0 -15
  595. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.html +0 -26
  596. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.scss +0 -0
  597. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.spec.ts +0 -23
  598. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.ts +0 -36
  599. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.html +0 -397
  600. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.scss +0 -0
  601. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +0 -23
  602. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.ts +0 -15
  603. package/_metronic/layout/components/sidebar/sidebar.component.html +0 -16
  604. package/_metronic/layout/components/sidebar/sidebar.component.scss +0 -0
  605. package/_metronic/layout/components/sidebar/sidebar.component.spec.ts +0 -23
  606. package/_metronic/layout/components/sidebar/sidebar.component.ts +0 -203
  607. package/_metronic/layout/components/toolbar/accounting/accounting.component.html +0 -84
  608. package/_metronic/layout/components/toolbar/accounting/accounting.component.scss +0 -0
  609. package/_metronic/layout/components/toolbar/accounting/accounting.component.spec.ts +0 -23
  610. package/_metronic/layout/components/toolbar/accounting/accounting.component.ts +0 -14
  611. package/_metronic/layout/components/toolbar/classic/classic.component.html +0 -37
  612. package/_metronic/layout/components/toolbar/classic/classic.component.scss +0 -0
  613. package/_metronic/layout/components/toolbar/classic/classic.component.spec.ts +0 -23
  614. package/_metronic/layout/components/toolbar/classic/classic.component.ts +0 -88
  615. package/_metronic/layout/components/toolbar/extended/extended.component.html +0 -100
  616. package/_metronic/layout/components/toolbar/extended/extended.component.scss +0 -0
  617. package/_metronic/layout/components/toolbar/extended/extended.component.spec.ts +0 -23
  618. package/_metronic/layout/components/toolbar/extended/extended.component.ts +0 -12
  619. package/_metronic/layout/components/toolbar/reports/reports.component.html +0 -62
  620. package/_metronic/layout/components/toolbar/reports/reports.component.scss +0 -0
  621. package/_metronic/layout/components/toolbar/reports/reports.component.spec.ts +0 -23
  622. package/_metronic/layout/components/toolbar/reports/reports.component.ts +0 -14
  623. package/_metronic/layout/components/toolbar/saas/saas.component.html +0 -77
  624. package/_metronic/layout/components/toolbar/saas/saas.component.scss +0 -0
  625. package/_metronic/layout/components/toolbar/saas/saas.component.spec.ts +0 -23
  626. package/_metronic/layout/components/toolbar/saas/saas.component.ts +0 -14
  627. package/_metronic/layout/components/toolbar/toolbar.component.html +0 -27
  628. package/_metronic/layout/components/toolbar/toolbar.component.scss +0 -0
  629. package/_metronic/layout/components/toolbar/toolbar.component.spec.ts +0 -25
  630. package/_metronic/layout/components/toolbar/toolbar.component.ts +0 -126
  631. package/_metronic/layout/components/topbar/topbar.component.html +0 -90
  632. package/_metronic/layout/components/topbar/topbar.component.scss +0 -0
  633. package/_metronic/layout/components/topbar/topbar.component.spec.ts +0 -25
  634. package/_metronic/layout/components/topbar/topbar.component.ts +0 -21
  635. package/_metronic/layout/core/configs/config.ts +0 -215
  636. package/_metronic/layout/core/configs/dark-header.config.ts +0 -138
  637. package/_metronic/layout/core/configs/dark-sidebar.config.ts +0 -138
  638. package/_metronic/layout/core/configs/light-header.config.ts +0 -138
  639. package/_metronic/layout/core/configs/light-sidebar.config.ts +0 -138
  640. package/_metronic/layout/core/layout-init.service.ts +0 -133
  641. package/_metronic/layout/core/layout.service.ts +0 -227
  642. package/_metronic/layout/core/page-info.service.ts +0 -151
  643. package/_metronic/layout/index.ts +0 -3
  644. package/_metronic/layout/layout.component.html +0 -70
  645. package/_metronic/layout/layout.component.scss +0 -15
  646. package/_metronic/layout/layout.component.ts +0 -400
  647. package/_metronic/layout/layout.module.ts +0 -93
  648. package/_metronic/partials/content/cards/card1/card1.component.html +0 -80
  649. package/_metronic/partials/content/cards/card1/card1.component.ts +0 -19
  650. package/_metronic/partials/content/cards/card2/card2.component.html +0 -69
  651. package/_metronic/partials/content/cards/card2/card2.component.ts +0 -21
  652. package/_metronic/partials/content/cards/card3/card3.component.html +0 -78
  653. package/_metronic/partials/content/cards/card3/card3.component.ts +0 -18
  654. package/_metronic/partials/content/cards/card4/card4.component.html +0 -9
  655. package/_metronic/partials/content/cards/card4/card4.component.ts +0 -14
  656. package/_metronic/partials/content/cards/card5/card5.component.html +0 -58
  657. package/_metronic/partials/content/cards/card5/card5.component.ts +0 -19
  658. package/_metronic/partials/content/cards/cards.module.ts +0 -39
  659. package/_metronic/partials/content/cards/icon-user.model.ts +0 -6
  660. package/_metronic/partials/content/cards/user-list/user-list.component.html +0 -15
  661. package/_metronic/partials/content/cards/user-list/user-list.component.scss +0 -0
  662. package/_metronic/partials/content/cards/user-list/user-list.component.spec.ts +0 -25
  663. package/_metronic/partials/content/cards/user-list/user-list.component.ts +0 -15
  664. package/_metronic/partials/content/chat-inner/chat-inner.component.html +0 -122
  665. package/_metronic/partials/content/chat-inner/chat-inner.component.ts +0 -74
  666. package/_metronic/partials/content/chat-inner/chat-inner.module.ts +0 -11
  667. package/_metronic/partials/content/chat-inner/dataExample.ts +0 -209
  668. package/_metronic/partials/content/dropdown-menus/dropdown-menu1/dropdown-menu1.component.html +0 -88
  669. package/_metronic/partials/content/dropdown-menus/dropdown-menu1/dropdown-menu1.component.ts +0 -15
  670. package/_metronic/partials/content/dropdown-menus/dropdown-menu2/dropdown-menu2.component.html +0 -53
  671. package/_metronic/partials/content/dropdown-menus/dropdown-menu2/dropdown-menu2.component.ts +0 -15
  672. package/_metronic/partials/content/dropdown-menus/dropdown-menu3/dropdown-menu3.component.html +0 -74
  673. package/_metronic/partials/content/dropdown-menus/dropdown-menu3/dropdown-menu3.component.ts +0 -15
  674. package/_metronic/partials/content/dropdown-menus/dropdown-menus.module.ts +0 -20
  675. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.html +0 -100
  676. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.scss +0 -0
  677. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.spec.ts +0 -23
  678. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.ts +0 -89
  679. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.html +0 -154
  680. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.scss +0 -0
  681. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.spec.ts +0 -23
  682. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.ts +0 -28
  683. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.html +0 -40
  684. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.scss +0 -3
  685. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.spec.ts +0 -23
  686. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.ts +0 -16
  687. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.html +0 -47
  688. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.scss +0 -0
  689. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.spec.ts +0 -23
  690. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.ts +0 -29
  691. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.html +0 -298
  692. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.scss +0 -0
  693. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.spec.ts +0 -23
  694. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.ts +0 -358
  695. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.html +0 -47
  696. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.scss +0 -0
  697. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.spec.ts +0 -23
  698. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.ts +0 -15
  699. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.html +0 -46
  700. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.scss +0 -0
  701. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.spec.ts +0 -23
  702. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.ts +0 -20
  703. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.html +0 -1
  704. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.scss +0 -0
  705. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.spec.ts +0 -23
  706. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.ts +0 -15
  707. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget1/advance-tables-widget1.component.html +0 -400
  708. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget1/advance-tables-widget1.component.ts +0 -10
  709. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget2/advance-tables-widget2.component.html +0 -357
  710. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget2/advance-tables-widget2.component.ts +0 -17
  711. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget7/advance-tables-widget7.component.html +0 -1267
  712. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget7/advance-tables-widget7.component.ts +0 -16
  713. package/_metronic/partials/content/widgets/base-tables/base-tables-widget1/base-tables-widget1.component.html +0 -1108
  714. package/_metronic/partials/content/widgets/base-tables/base-tables-widget1/base-tables-widget1.component.ts +0 -25
  715. package/_metronic/partials/content/widgets/base-tables/base-tables-widget2/base-tables-widget2.component.html +0 -675
  716. package/_metronic/partials/content/widgets/base-tables/base-tables-widget2/base-tables-widget2.component.ts +0 -21
  717. package/_metronic/partials/content/widgets/base-tables/base-tables-widget6/base-tables-widget6.component.html +0 -985
  718. package/_metronic/partials/content/widgets/base-tables/base-tables-widget6/base-tables-widget6.component.ts +0 -21
  719. package/_metronic/partials/content/widgets/charts/charts-widget1/charts-widget1.component.html +0 -51
  720. package/_metronic/partials/content/widgets/charts/charts-widget1/charts-widget1.component.ts +0 -128
  721. package/_metronic/partials/content/widgets/charts/charts-widget2/charts-widget2.component.html +0 -62
  722. package/_metronic/partials/content/widgets/charts/charts-widget2/charts-widget2.component.ts +0 -129
  723. package/_metronic/partials/content/widgets/charts/charts-widget3/charts-widget3.component.html +0 -63
  724. package/_metronic/partials/content/widgets/charts/charts-widget3/charts-widget3.component.ts +0 -141
  725. package/_metronic/partials/content/widgets/charts/charts-widget4/charts-widget4.component.html +0 -55
  726. package/_metronic/partials/content/widgets/charts/charts-widget4/charts-widget4.component.ts +0 -146
  727. package/_metronic/partials/content/widgets/charts/charts-widget5/charts-widget5.component.html +0 -36
  728. package/_metronic/partials/content/widgets/charts/charts-widget5/charts-widget5.component.ts +0 -132
  729. package/_metronic/partials/content/widgets/charts/charts-widget6/charts-widget6.component.html +0 -54
  730. package/_metronic/partials/content/widgets/charts/charts-widget6/charts-widget6.component.ts +0 -146
  731. package/_metronic/partials/content/widgets/charts/charts-widget7/charts-widget7.component.html +0 -66
  732. package/_metronic/partials/content/widgets/charts/charts-widget7/charts-widget7.component.ts +0 -167
  733. package/_metronic/partials/content/widgets/charts/charts-widget8/charts-widget8.component.html +0 -66
  734. package/_metronic/partials/content/widgets/charts/charts-widget8/charts-widget8.component.ts +0 -170
  735. package/_metronic/partials/content/widgets/feeds/feeds-widget2/feeds-widget2.component.html +0 -107
  736. package/_metronic/partials/content/widgets/feeds/feeds-widget2/feeds-widget2.component.ts +0 -11
  737. package/_metronic/partials/content/widgets/feeds/feeds-widget3/feeds-widget3.component.html +0 -186
  738. package/_metronic/partials/content/widgets/feeds/feeds-widget3/feeds-widget3.component.ts +0 -11
  739. package/_metronic/partials/content/widgets/feeds/feeds-widget4/feeds-widget4.component.html +0 -106
  740. package/_metronic/partials/content/widgets/feeds/feeds-widget4/feeds-widget4.component.ts +0 -11
  741. package/_metronic/partials/content/widgets/feeds/feeds-widget5/feeds-widget5.component.html +0 -114
  742. package/_metronic/partials/content/widgets/feeds/feeds-widget5/feeds-widget5.component.ts +0 -11
  743. package/_metronic/partials/content/widgets/feeds/feeds-widget6/feeds-widget6.component.html +0 -117
  744. package/_metronic/partials/content/widgets/feeds/feeds-widget6/feeds-widget6.component.ts +0 -11
  745. package/_metronic/partials/content/widgets/lists/lists-widget1/lists-widget1.component.html +0 -123
  746. package/_metronic/partials/content/widgets/lists/lists-widget1/lists-widget1.component.ts +0 -9
  747. package/_metronic/partials/content/widgets/lists/lists-widget2/lists-widget2.component.html +0 -108
  748. package/_metronic/partials/content/widgets/lists/lists-widget2/lists-widget2.component.ts +0 -9
  749. package/_metronic/partials/content/widgets/lists/lists-widget3/lists-widget3.component.html +0 -149
  750. package/_metronic/partials/content/widgets/lists/lists-widget3/lists-widget3.component.ts +0 -9
  751. package/_metronic/partials/content/widgets/lists/lists-widget4/lists-widget4.component.html +0 -192
  752. package/_metronic/partials/content/widgets/lists/lists-widget4/lists-widget4.component.ts +0 -10
  753. package/_metronic/partials/content/widgets/lists/lists-widget5/lists-widget5.component.html +0 -169
  754. package/_metronic/partials/content/widgets/lists/lists-widget5/lists-widget5.component.ts +0 -9
  755. package/_metronic/partials/content/widgets/lists/lists-widget6/lists-widget6.component.html +0 -103
  756. package/_metronic/partials/content/widgets/lists/lists-widget6/lists-widget6.component.ts +0 -9
  757. package/_metronic/partials/content/widgets/lists/lists-widget7/lists-widget7.component.html +0 -130
  758. package/_metronic/partials/content/widgets/lists/lists-widget7/lists-widget7.component.ts +0 -9
  759. package/_metronic/partials/content/widgets/lists/lists-widget8/lists-widget8.component.html +0 -182
  760. package/_metronic/partials/content/widgets/lists/lists-widget8/lists-widget8.component.ts +0 -10
  761. package/_metronic/partials/content/widgets/mixed/mixed-widget1/mixed-widget1.component.html +0 -169
  762. package/_metronic/partials/content/widgets/mixed/mixed-widget1/mixed-widget1.component.ts +0 -10
  763. package/_metronic/partials/content/widgets/mixed/mixed-widget10/mixed-widget10.component.html +0 -39
  764. package/_metronic/partials/content/widgets/mixed/mixed-widget10/mixed-widget10.component.ts +0 -140
  765. package/_metronic/partials/content/widgets/mixed/mixed-widget11/mixed-widget11.component.html +0 -40
  766. package/_metronic/partials/content/widgets/mixed/mixed-widget11/mixed-widget11.component.ts +0 -133
  767. package/_metronic/partials/content/widgets/mixed/mixed-widget2/mixed-widget2.component.html +0 -84
  768. package/_metronic/partials/content/widgets/mixed/mixed-widget2/mixed-widget2.component.ts +0 -157
  769. package/_metronic/partials/content/widgets/mixed/mixed-widget3/mixed-widget3.component.html +0 -92
  770. package/_metronic/partials/content/widgets/mixed/mixed-widget3/mixed-widget3.component.ts +0 -141
  771. package/_metronic/partials/content/widgets/mixed/mixed-widget4/mixed-widget4.component.html +0 -101
  772. package/_metronic/partials/content/widgets/mixed/mixed-widget4/mixed-widget4.component.ts +0 -14
  773. package/_metronic/partials/content/widgets/mixed/mixed-widget5/mixed-widget5.component.html +0 -57
  774. package/_metronic/partials/content/widgets/mixed/mixed-widget5/mixed-widget5.component.ts +0 -14
  775. package/_metronic/partials/content/widgets/mixed/mixed-widget6/mixed-widget6.component.html +0 -118
  776. package/_metronic/partials/content/widgets/mixed/mixed-widget6/mixed-widget6.component.ts +0 -140
  777. package/_metronic/partials/content/widgets/mixed/mixed-widget7/mixed-widget7.component.html +0 -60
  778. package/_metronic/partials/content/widgets/mixed/mixed-widget7/mixed-widget7.component.ts +0 -65
  779. package/_metronic/partials/content/widgets/mixed/mixed-widget8/mixed-widget8.component.html +0 -158
  780. package/_metronic/partials/content/widgets/mixed/mixed-widget8/mixed-widget8.component.ts +0 -164
  781. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.html +0 -147
  782. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.scss +0 -0
  783. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.spec.ts +0 -25
  784. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.ts +0 -140
  785. package/_metronic/partials/content/widgets/stats/stats-widget1/stats-widget1.component.html +0 -12
  786. package/_metronic/partials/content/widgets/stats/stats-widget1/stats-widget1.component.ts +0 -13
  787. package/_metronic/partials/content/widgets/stats/stats-widget2/stats-widget2.component.html +0 -13
  788. package/_metronic/partials/content/widgets/stats/stats-widget2/stats-widget2.component.ts +0 -14
  789. package/_metronic/partials/content/widgets/stats/stats-widget3/stats-widget3.component.html +0 -46
  790. package/_metronic/partials/content/widgets/stats/stats-widget3/stats-widget3.component.ts +0 -160
  791. package/_metronic/partials/content/widgets/stats/stats-widget4/stats-widget4.component.html +0 -44
  792. package/_metronic/partials/content/widgets/stats/stats-widget4/stats-widget4.component.ts +0 -159
  793. package/_metronic/partials/content/widgets/stats/stats-widget5/stats-widget5.component.html +0 -14
  794. package/_metronic/partials/content/widgets/stats/stats-widget5/stats-widget5.component.ts +0 -15
  795. package/_metronic/partials/content/widgets/stats/stats-widget6/stats-widget6.component.html +0 -24
  796. package/_metronic/partials/content/widgets/stats/stats-widget6/stats-widget6.component.ts +0 -14
  797. package/_metronic/partials/content/widgets/tables/tables-widget1/tables-widget1.component.html +0 -273
  798. package/_metronic/partials/content/widgets/tables/tables-widget1/tables-widget1.component.ts +0 -9
  799. package/_metronic/partials/content/widgets/tables/tables-widget10/tables-widget10.component.html +0 -489
  800. package/_metronic/partials/content/widgets/tables/tables-widget10/tables-widget10.component.ts +0 -11
  801. package/_metronic/partials/content/widgets/tables/tables-widget11/tables-widget11.component.html +0 -464
  802. package/_metronic/partials/content/widgets/tables/tables-widget11/tables-widget11.component.ts +0 -11
  803. package/_metronic/partials/content/widgets/tables/tables-widget12/tables-widget12.component.html +0 -550
  804. package/_metronic/partials/content/widgets/tables/tables-widget12/tables-widget12.component.ts +0 -11
  805. package/_metronic/partials/content/widgets/tables/tables-widget13/tables-widget13.component.html +0 -485
  806. package/_metronic/partials/content/widgets/tables/tables-widget13/tables-widget13.component.ts +0 -11
  807. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.html +0 -1
  808. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.scss +0 -0
  809. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.spec.ts +0 -25
  810. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.ts +0 -15
  811. package/_metronic/partials/content/widgets/tables/tables-widget2/tables-widget2.component.html +0 -238
  812. package/_metronic/partials/content/widgets/tables/tables-widget2/tables-widget2.component.ts +0 -9
  813. package/_metronic/partials/content/widgets/tables/tables-widget3/tables-widget3.component.html +0 -150
  814. package/_metronic/partials/content/widgets/tables/tables-widget3/tables-widget3.component.ts +0 -11
  815. package/_metronic/partials/content/widgets/tables/tables-widget4/tables-widget4.component.html +0 -707
  816. package/_metronic/partials/content/widgets/tables/tables-widget4/tables-widget4.component.ts +0 -24
  817. package/_metronic/partials/content/widgets/tables/tables-widget5/tables-widget5.component.html +0 -608
  818. package/_metronic/partials/content/widgets/tables/tables-widget5/tables-widget5.component.ts +0 -26
  819. package/_metronic/partials/content/widgets/tables/tables-widget6/tables-widget6.component.html +0 -632
  820. package/_metronic/partials/content/widgets/tables/tables-widget6/tables-widget6.component.ts +0 -26
  821. package/_metronic/partials/content/widgets/tables/tables-widget7/tables-widget7.component.html +0 -616
  822. package/_metronic/partials/content/widgets/tables/tables-widget7/tables-widget7.component.ts +0 -26
  823. package/_metronic/partials/content/widgets/tables/tables-widget8/tables-widget8.component.html +0 -575
  824. package/_metronic/partials/content/widgets/tables/tables-widget8/tables-widget8.component.ts +0 -26
  825. package/_metronic/partials/content/widgets/tables/tables-widget9/tables-widget9.component.html +0 -489
  826. package/_metronic/partials/content/widgets/tables/tables-widget9/tables-widget9.component.ts +0 -9
  827. package/_metronic/partials/content/widgets/tiles/tiles-widget1/tiles-widget1.component.html +0 -175
  828. package/_metronic/partials/content/widgets/tiles/tiles-widget1/tiles-widget1.component.ts +0 -202
  829. package/_metronic/partials/content/widgets/tiles/tiles-widget10/tiles-widget10.component.html +0 -27
  830. package/_metronic/partials/content/widgets/tiles/tiles-widget10/tiles-widget10.component.ts +0 -12
  831. package/_metronic/partials/content/widgets/tiles/tiles-widget11/tiles-widget11.component.html +0 -28
  832. package/_metronic/partials/content/widgets/tiles/tiles-widget11/tiles-widget11.component.ts +0 -19
  833. package/_metronic/partials/content/widgets/tiles/tiles-widget12/tiles-widget12.component.html +0 -21
  834. package/_metronic/partials/content/widgets/tiles/tiles-widget12/tiles-widget12.component.ts +0 -18
  835. package/_metronic/partials/content/widgets/tiles/tiles-widget13/tiles-widget13.component.html +0 -26
  836. package/_metronic/partials/content/widgets/tiles/tiles-widget13/tiles-widget13.component.ts +0 -12
  837. package/_metronic/partials/content/widgets/tiles/tiles-widget14/tiles-widget14.component.html +0 -24
  838. package/_metronic/partials/content/widgets/tiles/tiles-widget14/tiles-widget14.component.ts +0 -10
  839. package/_metronic/partials/content/widgets/tiles/tiles-widget3/tiles-widget3.component.html +0 -23
  840. package/_metronic/partials/content/widgets/tiles/tiles-widget3/tiles-widget3.component.ts +0 -12
  841. package/_metronic/partials/content/widgets/widgets.module.ts +0 -262
  842. package/_metronic/partials/index.ts +0 -16
  843. package/_metronic/partials/layout/drawers/activity-drawer/activity-drawer.component.html +0 -649
  844. package/_metronic/partials/layout/drawers/activity-drawer/activity-drawer.component.ts +0 -11
  845. package/_metronic/partials/layout/drawers/drawers.module.ts +0 -21
  846. package/_metronic/partials/layout/drawers/messenger-drawer/messenger-drawer.component.html +0 -59
  847. package/_metronic/partials/layout/drawers/messenger-drawer/messenger-drawer.component.ts +0 -11
  848. package/_metronic/partials/layout/engages/engages.component.html +0 -29
  849. package/_metronic/partials/layout/engages/engages.component.scss +0 -0
  850. package/_metronic/partials/layout/engages/engages.component.ts +0 -15
  851. package/_metronic/partials/layout/engages/engages.module.ts +0 -29
  852. package/_metronic/partials/layout/engages/explore-main-drawer/explore-main-drawer.component.html +0 -177
  853. package/_metronic/partials/layout/engages/explore-main-drawer/explore-main-drawer.component.ts +0 -19
  854. package/_metronic/partials/layout/engages/help-drawer/help-drawer.component.html +0 -156
  855. package/_metronic/partials/layout/engages/help-drawer/help-drawer.component.ts +0 -17
  856. package/_metronic/partials/layout/engages/purchase-toolbar/purchase-toolbar.component.html +0 -8
  857. package/_metronic/partials/layout/engages/purchase-toolbar/purchase-toolbar.component.ts +0 -16
  858. package/_metronic/partials/layout/extras/dropdown-inner/notifications-inner/notifications-inner.component.html +0 -176
  859. package/_metronic/partials/layout/extras/dropdown-inner/notifications-inner/notifications-inner.component.ts +0 -155
  860. package/_metronic/partials/layout/extras/dropdown-inner/quick-links-inner/quick-links-inner.component.html +0 -77
  861. package/_metronic/partials/layout/extras/dropdown-inner/quick-links-inner/quick-links-inner.component.ts +0 -13
  862. package/_metronic/partials/layout/extras/dropdown-inner/search-result-inner/search-result-inner.component.html +0 -120
  863. package/_metronic/partials/layout/extras/dropdown-inner/search-result-inner/search-result-inner.component.ts +0 -104
  864. package/_metronic/partials/layout/extras/dropdown-inner/user-inner/user-inner.component.html +0 -161
  865. package/_metronic/partials/layout/extras/dropdown-inner/user-inner/user-inner.component.ts +0 -95
  866. package/_metronic/partials/layout/extras/extras.module.ts +0 -41
  867. package/_metronic/partials/layout/extras/scroll-top/scroll-top.component.html +0 -1
  868. package/_metronic/partials/layout/extras/scroll-top/scroll-top.component.ts +0 -75
  869. package/_metronic/partials/layout/modals/invite-users-modal/invite-users-modal.component.html +0 -0
  870. package/_metronic/partials/layout/modals/invite-users-modal/invite-users-modal.component.ts +0 -9
  871. package/_metronic/partials/layout/modals/main-modal/main-modal.component.html +0 -0
  872. package/_metronic/partials/layout/modals/main-modal/main-modal.component.ts +0 -9
  873. package/_metronic/partials/layout/modals/modal/modal.component.html +0 -31
  874. package/_metronic/partials/layout/modals/modal/modal.component.ts +0 -50
  875. package/_metronic/partials/layout/modals/modal.config.ts +0 -13
  876. package/_metronic/partials/layout/modals/modals.module.ts +0 -34
  877. package/_metronic/partials/layout/modals/upgrade-plan-modal/upgrade-plan-modal.component.html +0 -0
  878. package/_metronic/partials/layout/modals/upgrade-plan-modal/upgrade-plan-modal.component.ts +0 -9
  879. package/_metronic/partials/layout/splash-screen/splash-screen.component.html +0 -14
  880. package/_metronic/partials/layout/splash-screen/splash-screen.component.scss +0 -57
  881. package/_metronic/partials/layout/splash-screen/splash-screen.component.ts +0 -17
  882. package/_metronic/partials/layout/splash-screen/splash-screen.module.ts +0 -10
  883. package/_metronic/partials/layout/splash-screen/splash-screen.service.ts +0 -51
  884. package/_metronic/partials/layout/theme-mode-switcher/theme-mode-switcher.component.html +0 -56
  885. package/_metronic/partials/layout/theme-mode-switcher/theme-mode-switcher.component.ts +0 -27
  886. package/_metronic/partials/layout/theme-mode-switcher/theme-mode.module.ts +0 -16
  887. package/_metronic/partials/layout/theme-mode-switcher/theme-mode.service.ts +0 -87
  888. package/_metronic/shared/keenicon/icons.json +0 -1
  889. package/_metronic/shared/keenicon/keenicon.component.html +0 -4
  890. package/_metronic/shared/keenicon/keenicon.component.scss +0 -0
  891. package/_metronic/shared/keenicon/keenicon.component.spec.ts +0 -23
  892. package/_metronic/shared/keenicon/keenicon.component.ts +0 -30
  893. package/_metronic/shared/shared.module.ts +0 -17
  894. package/config/ng-package.json +0 -7
  895. package/config/src/e-donusum-config.module.ts +0 -98
  896. package/config/src/enums/eDonusum-route-names.ts +0 -9
  897. package/config/src/enums/route-names.ts +0 -3
  898. package/config/src/providers/branch-route.provider.ts +0 -21
  899. package/config/src/providers/business-partner-group-route.provider.ts +0 -21
  900. package/config/src/providers/business-partner-route.provider.ts +0 -21
  901. package/config/src/providers/despatch-document-reference-route.provider.ts +0 -21
  902. package/config/src/providers/despatch-line-order-line-reference-route.provider.ts +0 -20
  903. package/config/src/providers/despatch-line-route.provider.ts +0 -21
  904. package/config/src/providers/despatch-note-route.provider.ts +0 -21
  905. package/config/src/providers/despatch-route.provider.ts +0 -21
  906. package/config/src/providers/gib-partner-pk-all-route.provider.ts +0 -21
  907. package/config/src/providers/gib-partner-pk-route.provider.ts +0 -21
  908. package/config/src/providers/hit-providers/branch-route.provider.ts +0 -23
  909. package/config/src/providers/hit-providers/business-partner-group-route.provider.ts +0 -23
  910. package/config/src/providers/hit-providers/business-partner-route.provider.ts +0 -23
  911. package/config/src/providers/hit-providers/despatch-route.provider.ts +0 -22
  912. package/config/src/providers/hit-providers/gib-partner-pk-all-route.provider.ts +0 -22
  913. package/config/src/providers/hit-providers/gib-partner-pk-route.provider.ts +0 -22
  914. package/config/src/providers/hit-providers/inbound-invoice-route.provider.ts +0 -22
  915. package/config/src/providers/hit-providers/invoice-route.provider.ts +0 -22
  916. package/config/src/providers/hit-providers/note-rule-route.provider.ts +0 -23
  917. package/config/src/providers/hit-providers/route.provider.ts +0 -62
  918. package/config/src/providers/hit-providers/wizard-route.provider.ts +0 -21
  919. package/config/src/providers/hit-providers/xslt-format-route.provider.ts +0 -22
  920. package/config/src/providers/hit-providers/xslt-rule-route.provider.ts +0 -22
  921. package/config/src/providers/invoice-document-reference-route.provider.ts +0 -21
  922. package/config/src/providers/invoice-line-despatch-line-reference-route.provider.ts +0 -20
  923. package/config/src/providers/invoice-line-order-line-reference-route.provider.ts +0 -21
  924. package/config/src/providers/invoice-line-receipt-line-reference-route.provider.ts +0 -20
  925. package/config/src/providers/invoice-line-route.provider.ts +0 -21
  926. package/config/src/providers/invoice-note-route.provider.ts +0 -21
  927. package/config/src/providers/invoice-route.provider.ts +0 -21
  928. package/config/src/providers/note-rule-doc-type-route.provider.ts +0 -21
  929. package/config/src/providers/note-rule-route.provider.ts +0 -21
  930. package/config/src/providers/note-rule-scenario-route.provider.ts +0 -21
  931. package/config/src/providers/params-company-route.provider.ts +0 -21
  932. package/config/src/providers/params-general-route.provider.ts +0 -21
  933. package/config/src/providers/params-integrator-route.provider.ts +0 -21
  934. package/config/src/providers/paramse-dispatch-route.provider.ts +0 -21
  935. package/config/src/providers/paramse-invoice-route.provider.ts +0 -21
  936. package/config/src/providers/route.provider.ts +0 -26
  937. package/config/src/providers/xslt-format-route.provider.ts +0 -21
  938. package/config/src/providers/xslt-rule-doc-type-route.provider.ts +0 -21
  939. package/config/src/providers/xslt-rule-route.provider.ts +0 -21
  940. package/config/src/providers/xslt-rule-scenario-route.provider.ts +0 -21
  941. package/karma.conf.js +0 -44
  942. package/ng-package.json +0 -7
  943. package/src/lib/branches/branch/branch-routing.module.ts +0 -36
  944. package/src/lib/branches/branch/branch.module.ts +0 -34
  945. package/src/lib/branches/branch/components/branch.component.html +0 -375
  946. package/src/lib/branches/branch/components/branch.component.ts +0 -141
  947. package/src/lib/business-partner-groups/business-partner-group/business-partner-group-routing.module.ts +0 -36
  948. package/src/lib/business-partner-groups/business-partner-group/business-partner-group.module.ts +0 -34
  949. package/src/lib/business-partner-groups/business-partner-group/components/business-partner-group.component.html +0 -273
  950. package/src/lib/business-partner-groups/business-partner-group/components/business-partner-group.component.ts +0 -129
  951. package/src/lib/business-partners/business-partner/business-partner-routing.module.ts +0 -36
  952. package/src/lib/business-partners/business-partner/business-partner.module.ts +0 -34
  953. package/src/lib/business-partners/business-partner/components/business-partner.component.html +0 -584
  954. package/src/lib/business-partners/business-partner/components/business-partner.component.ts +0 -150
  955. package/src/lib/components/e-donusum.component.ts +0 -15
  956. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice-routing.module.ts +0 -37
  957. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.html +0 -165
  958. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.ts +0 -131
  959. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice.module.ts +0 -44
  960. package/src/lib/components/hit-invoices/hit-invoice.component.html +0 -1309
  961. package/src/lib/components/hit-invoices/hit-invoice.component.ts +0 -114
  962. package/src/lib/components/hit-invoices/hit-invoice.module.ts +0 -43
  963. package/src/lib/components/hit-invoices/sanitize-html.pipe.ts +0 -15
  964. package/src/lib/components/hit-note-rules/hit-note-rule.component.html +0 -384
  965. package/src/lib/components/hit-note-rules/hit-note-rule.component.ts +0 -388
  966. package/src/lib/components/hit-note-rules/hit-note-rule.module.ts +0 -40
  967. package/src/lib/components/hit-paramas-invoices/hit-params-invoice.component.html +0 -90
  968. package/src/lib/components/hit-paramas-invoices/hit-params-invoice.component.ts +0 -147
  969. package/src/lib/components/hit-paramas-invoices/hit-params-invoice.module.ts +0 -20
  970. package/src/lib/components/hit-params-companies/hit-params-company.component.html +0 -209
  971. package/src/lib/components/hit-params-companies/hit-params-company.component.ts +0 -153
  972. package/src/lib/components/hit-params-companies/hit-params-company.module.ts +0 -18
  973. package/src/lib/components/hit-params-dispatches/hit-params-dispatch.component.html +0 -178
  974. package/src/lib/components/hit-params-dispatches/hit-params-dispatch.component.ts +0 -167
  975. package/src/lib/components/hit-params-dispatches/hit-params-dispatch.module.ts +0 -20
  976. package/src/lib/components/hit-params-generals/hit-params-general.component.html +0 -0
  977. package/src/lib/components/hit-params-generals/hit-params-general.component.ts +0 -67
  978. package/src/lib/components/hit-params-generals/hit-params-general.module.ts +0 -22
  979. package/src/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.html +0 -91
  980. package/src/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.ts +0 -203
  981. package/src/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.module.ts +0 -21
  982. package/src/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.html +0 -27
  983. package/src/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.ts +0 -94
  984. package/src/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.module.ts +0 -20
  985. package/src/lib/components/hit-params-integrators/hit-params-integrator.component.html +0 -116
  986. package/src/lib/components/hit-params-integrators/hit-params-integrator.component.ts +0 -216
  987. package/src/lib/components/hit-params-integrators/hit-params-integrator.module.ts +0 -20
  988. package/src/lib/components/hit-setup-wizard/hit-setup-wizard-routing.module.ts +0 -37
  989. package/src/lib/components/hit-setup-wizard/hit-setup-wizard.component.html +0 -277
  990. package/src/lib/components/hit-setup-wizard/hit-setup-wizard.component.ts +0 -147
  991. package/src/lib/components/hit-setup-wizard/hit-setup-wizard.module.ts +0 -37
  992. package/src/lib/components/hit-xslt-formats/hit-xslt-format.component.html +0 -142
  993. package/src/lib/components/hit-xslt-formats/hit-xslt-format.component.ts +0 -179
  994. package/src/lib/components/hit-xslt-formats/hit-xslt-format.module.ts +0 -38
  995. package/src/lib/components/hit-xslt-rules/hit-xslt-rule.component.html +0 -341
  996. package/src/lib/components/hit-xslt-rules/hit-xslt-rule.component.ts +0 -363
  997. package/src/lib/components/hit-xslt-rules/hit-xslt-rule.module.ts +0 -40
  998. package/src/lib/despatch-document-references/despatch-document-reference/components/despatch-document-reference.component.html +0 -446
  999. package/src/lib/despatch-document-references/despatch-document-reference/components/despatch-document-reference.component.ts +0 -157
  1000. package/src/lib/despatch-document-references/despatch-document-reference/despatch-document-reference-routing.module.ts +0 -36
  1001. package/src/lib/despatch-document-references/despatch-document-reference/despatch-document-reference.module.ts +0 -34
  1002. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/components/despatch-line-order-line-reference.component.html +0 -786
  1003. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/components/despatch-line-order-line-reference.component.ts +0 -169
  1004. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference-routing.module.ts +0 -36
  1005. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference.module.ts +0 -34
  1006. package/src/lib/despatch-lines/despatch-line/components/despatch-line.component.html +0 -843
  1007. package/src/lib/despatch-lines/despatch-line/components/despatch-line.component.ts +0 -190
  1008. package/src/lib/despatch-lines/despatch-line/despatch-line-routing.module.ts +0 -36
  1009. package/src/lib/despatch-lines/despatch-line/despatch-line.module.ts +0 -34
  1010. package/src/lib/despatch-notes/despatch-note/components/despatch-note.component.html +0 -181
  1011. package/src/lib/despatch-notes/despatch-note/components/despatch-note.component.ts +0 -141
  1012. package/src/lib/despatch-notes/despatch-note/despatch-note-routing.module.ts +0 -36
  1013. package/src/lib/despatch-notes/despatch-note/despatch-note.module.ts +0 -34
  1014. package/src/lib/despatches/despatch/components/despatch.component.html +0 -3798
  1015. package/src/lib/despatches/despatch/components/despatch.component.ts +0 -387
  1016. package/src/lib/despatches/despatch/despatch-routing.module.ts +0 -36
  1017. package/src/lib/despatches/despatch/despatch.module.ts +0 -34
  1018. package/src/lib/e-donusum-routing.module.ts +0 -102
  1019. package/src/lib/e-donusum.component.spec.ts +0 -25
  1020. package/src/lib/e-donusum.module.ts +0 -54
  1021. package/src/lib/e-donusum.service.spec.ts +0 -16
  1022. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/components/gib-partner-pk-all.component.html +0 -671
  1023. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/components/gib-partner-pk-all.component.ts +0 -157
  1024. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all-routing.module.ts +0 -36
  1025. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all.module.ts +0 -34
  1026. package/src/lib/gib-partner-pks/gib-partner-pk/components/gib-partner-pk.component.html +0 -671
  1027. package/src/lib/gib-partner-pks/gib-partner-pk/components/gib-partner-pk.component.ts +0 -154
  1028. package/src/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk-routing.module.ts +0 -36
  1029. package/src/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk.module.ts +0 -34
  1030. package/src/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.ts +0 -20
  1031. package/src/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.ts +0 -51
  1032. package/src/lib/hit-proxy/hit-branches/hit-branch.service.ts +0 -29
  1033. package/src/lib/hit-proxy/hit-connectors/hit-connector.service.ts +0 -43
  1034. package/src/lib/hit-proxy/hit-content-master/models.ts +0 -14
  1035. package/src/lib/hit-proxy/hit-document-types/hit-document-type.service.ts +0 -27
  1036. package/src/lib/hit-proxy/hit-entegrators/hit-entegrator.service.ts +0 -45
  1037. package/src/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.ts +0 -34
  1038. package/src/lib/hit-proxy/hit-inventory-transfer-addresses/hit-inventory-transfer-address.service.ts +0 -20
  1039. package/src/lib/hit-proxy/hit-invoices/hit-invoice.service.ts +0 -96
  1040. package/src/lib/hit-proxy/hit-note-rule-doc-types/hit-note-rule-doc-type.service.ts +0 -20
  1041. package/src/lib/hit-proxy/hit-note-rule-scenarios/hit-note-rule-scenario.service.ts +0 -20
  1042. package/src/lib/hit-proxy/hit-note-rules/hit-note-rule.service.ts +0 -83
  1043. package/src/lib/hit-proxy/hit-note-rules/models.ts +0 -42
  1044. package/src/lib/hit-proxy/hit-params-companies/hit-params-company.service.ts +0 -37
  1045. package/src/lib/hit-proxy/hit-params-dispatches/hit-params-dispatch.service.ts +0 -20
  1046. package/src/lib/hit-proxy/hit-params-generals/hit-params-general.service.ts +0 -20
  1047. package/src/lib/hit-proxy/hit-params-integrators/hit-params-integrator.service.ts +0 -20
  1048. package/src/lib/hit-proxy/hit-params-invoices/hit-params-invoice.service.ts +0 -20
  1049. package/src/lib/hit-proxy/hit-scenario-types/hit-scenario-type.service.ts +0 -27
  1050. package/src/lib/hit-proxy/hit-xslt-formats/hit-xslt-format.service.ts +0 -57
  1051. package/src/lib/hit-proxy/hit-xslt-formats/models.ts +0 -12
  1052. package/src/lib/hit-proxy/hit-xslt-rule-doc-types/hit-xslt-rule-doc-type.service.ts +0 -20
  1053. package/src/lib/hit-proxy/hit-xslt-rule-scenarios/hit-xslt-rule-scenario.service.ts +0 -20
  1054. package/src/lib/hit-proxy/hit-xslt-rules/hit-xslt-rule.service.ts +0 -71
  1055. package/src/lib/hit-proxy/hit-xslt-rules/models.ts +0 -42
  1056. package/src/lib/invoice-document-references/invoice-document-reference/components/invoice-document-reference.component.html +0 -446
  1057. package/src/lib/invoice-document-references/invoice-document-reference/components/invoice-document-reference.component.ts +0 -157
  1058. package/src/lib/invoice-document-references/invoice-document-reference/invoice-document-reference-routing.module.ts +0 -36
  1059. package/src/lib/invoice-document-references/invoice-document-reference/invoice-document-reference.module.ts +0 -34
  1060. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/components/invoice-line-despatch-line-reference.component.html +0 -497
  1061. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/components/invoice-line-despatch-line-reference.component.ts +0 -157
  1062. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference-routing.module.ts +0 -36
  1063. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference.module.ts +0 -34
  1064. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/components/invoice-line-order-line-reference.component.html +0 -783
  1065. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/components/invoice-line-order-line-reference.component.ts +0 -169
  1066. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference-routing.module.ts +0 -36
  1067. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference.module.ts +0 -34
  1068. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/components/invoice-line-receipt-line-reference.component.html +0 -494
  1069. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/components/invoice-line-receipt-line-reference.component.ts +0 -157
  1070. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference-routing.module.ts +0 -36
  1071. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference.module.ts +0 -34
  1072. package/src/lib/invoice-lines/invoice-line/components/invoice-line.component.html +0 -843
  1073. package/src/lib/invoice-lines/invoice-line/components/invoice-line.component.ts +0 -190
  1074. package/src/lib/invoice-lines/invoice-line/invoice-line-routing.module.ts +0 -36
  1075. package/src/lib/invoice-lines/invoice-line/invoice-line.module.ts +0 -34
  1076. package/src/lib/invoice-notes/invoice-note/components/invoice-note.component.html +0 -181
  1077. package/src/lib/invoice-notes/invoice-note/components/invoice-note.component.ts +0 -141
  1078. package/src/lib/invoice-notes/invoice-note/invoice-note-routing.module.ts +0 -36
  1079. package/src/lib/invoice-notes/invoice-note/invoice-note.module.ts +0 -34
  1080. package/src/lib/invoices/invoice/components/invoice.component.html +0 -4182
  1081. package/src/lib/invoices/invoice/components/invoice.component.ts +0 -377
  1082. package/src/lib/invoices/invoice/invoice-routing.module.ts +0 -30
  1083. package/src/lib/invoices/invoice/invoice.module.ts +0 -34
  1084. package/src/lib/note-rule-doc-types/note-rule-doc-type/components/note-rule-doc-type.component.html +0 -199
  1085. package/src/lib/note-rule-doc-types/note-rule-doc-type/components/note-rule-doc-type.component.ts +0 -124
  1086. package/src/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type-routing.module.ts +0 -36
  1087. package/src/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type.module.ts +0 -34
  1088. package/src/lib/note-rule-scenarios/note-rule-scenario/components/note-rule-scenario.component.html +0 -199
  1089. package/src/lib/note-rule-scenarios/note-rule-scenario/components/note-rule-scenario.component.ts +0 -124
  1090. package/src/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario-routing.module.ts +0 -36
  1091. package/src/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario.module.ts +0 -34
  1092. package/src/lib/note-rules/note-rule/components/note-rule.component.html +0 -624
  1093. package/src/lib/note-rules/note-rule/components/note-rule.component.ts +0 -162
  1094. package/src/lib/note-rules/note-rule/note-rule-routing.module.ts +0 -31
  1095. package/src/lib/note-rules/note-rule/note-rule.module.ts +0 -34
  1096. package/src/lib/params-companies/params-company/components/params-company.component.html +0 -847
  1097. package/src/lib/params-companies/params-company/components/params-company.component.ts +0 -176
  1098. package/src/lib/params-companies/params-company/params-company-routing.module.ts +0 -34
  1099. package/src/lib/params-companies/params-company/params-company.module.ts +0 -34
  1100. package/src/lib/params-generals/params-general/components/params-general.component.html +0 -504
  1101. package/src/lib/params-generals/params-general/components/params-general.component.ts +0 -141
  1102. package/src/lib/params-generals/params-general/params-general-routing.module.ts +0 -34
  1103. package/src/lib/params-generals/params-general/params-general.module.ts +0 -34
  1104. package/src/lib/params-integrators/params-integrator/components/params-integrator.component.html +0 -499
  1105. package/src/lib/params-integrators/params-integrator/components/params-integrator.component.ts +0 -162
  1106. package/src/lib/params-integrators/params-integrator/params-integrator-routing.module.ts +0 -34
  1107. package/src/lib/params-integrators/params-integrator/params-integrator.module.ts +0 -34
  1108. package/src/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.html +0 -771
  1109. package/src/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.ts +0 -163
  1110. package/src/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch-routing.module.ts +0 -34
  1111. package/src/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch.module.ts +0 -34
  1112. package/src/lib/paramse-invoices/paramse-invoice/components/paramse-invoice.component.html +0 -433
  1113. package/src/lib/paramse-invoices/paramse-invoice/components/paramse-invoice.component.ts +0 -151
  1114. package/src/lib/paramse-invoices/paramse-invoice/paramse-invoice-routing.module.ts +0 -34
  1115. package/src/lib/paramse-invoices/paramse-invoice/paramse-invoice.module.ts +0 -34
  1116. package/src/lib/proxy/branches/branch.service.ts +0 -75
  1117. package/src/lib/proxy/branches/index.ts +0 -2
  1118. package/src/lib/proxy/branches/models.ts +0 -46
  1119. package/src/lib/proxy/business-partner-groups/business-partner-group.service.ts +0 -56
  1120. package/src/lib/proxy/business-partner-groups/index.ts +0 -2
  1121. package/src/lib/proxy/business-partner-groups/models.ts +0 -36
  1122. package/src/lib/proxy/business-partners/business-partner.service.ts +0 -74
  1123. package/src/lib/proxy/business-partners/index.ts +0 -2
  1124. package/src/lib/proxy/business-partners/models.ts +0 -70
  1125. package/src/lib/proxy/despatch-document-references/despatch-document-reference.service.ts +0 -92
  1126. package/src/lib/proxy/despatch-document-references/index.ts +0 -2
  1127. package/src/lib/proxy/despatch-document-references/models.ts +0 -57
  1128. package/src/lib/proxy/despatch-line-order-line-references/despatch-line-order-line-reference.service.ts +0 -92
  1129. package/src/lib/proxy/despatch-line-order-line-references/index.ts +0 -2
  1130. package/src/lib/proxy/despatch-line-order-line-references/models.ts +0 -86
  1131. package/src/lib/proxy/despatch-lines/despatch-line.service.ts +0 -92
  1132. package/src/lib/proxy/despatch-lines/index.ts +0 -2
  1133. package/src/lib/proxy/despatch-lines/models.ts +0 -108
  1134. package/src/lib/proxy/despatch-notes/despatch-note.service.ts +0 -92
  1135. package/src/lib/proxy/despatch-notes/index.ts +0 -2
  1136. package/src/lib/proxy/despatch-notes/models.ts +0 -36
  1137. package/src/lib/proxy/despatches/despatch.service.ts +0 -75
  1138. package/src/lib/proxy/despatches/index.ts +0 -2
  1139. package/src/lib/proxy/despatches/models.ts +0 -338
  1140. package/src/lib/proxy/generate-proxy.json +0 -31780
  1141. package/src/lib/proxy/gib-partner-pk-alls/gib-partner-pk-all.service.ts +0 -75
  1142. package/src/lib/proxy/gib-partner-pk-alls/index.ts +0 -2
  1143. package/src/lib/proxy/gib-partner-pk-alls/models.ts +0 -62
  1144. package/src/lib/proxy/gib-partner-pks/gib-partner-pk.service.ts +0 -75
  1145. package/src/lib/proxy/gib-partner-pks/index.ts +0 -2
  1146. package/src/lib/proxy/gib-partner-pks/models.ts +0 -62
  1147. package/src/lib/proxy/index.ts +0 -31
  1148. package/src/lib/proxy/invoice-document-references/index.ts +0 -2
  1149. package/src/lib/proxy/invoice-document-references/invoice-document-reference.service.ts +0 -92
  1150. package/src/lib/proxy/invoice-document-references/models.ts +0 -57
  1151. package/src/lib/proxy/invoice-line-despatch-line-references/index.ts +0 -2
  1152. package/src/lib/proxy/invoice-line-despatch-line-references/invoice-line-despatch-line-reference.service.ts +0 -92
  1153. package/src/lib/proxy/invoice-line-despatch-line-references/models.ts +0 -61
  1154. package/src/lib/proxy/invoice-line-order-line-references/index.ts +0 -2
  1155. package/src/lib/proxy/invoice-line-order-line-references/invoice-line-order-line-reference.service.ts +0 -92
  1156. package/src/lib/proxy/invoice-line-order-line-references/models.ts +0 -86
  1157. package/src/lib/proxy/invoice-line-receipt-line-references/index.ts +0 -2
  1158. package/src/lib/proxy/invoice-line-receipt-line-references/invoice-line-receipt-line-reference.service.ts +0 -92
  1159. package/src/lib/proxy/invoice-line-receipt-line-references/models.ts +0 -61
  1160. package/src/lib/proxy/invoice-lines/index.ts +0 -2
  1161. package/src/lib/proxy/invoice-lines/invoice-line.service.ts +0 -92
  1162. package/src/lib/proxy/invoice-lines/models.ts +0 -108
  1163. package/src/lib/proxy/invoice-notes/index.ts +0 -2
  1164. package/src/lib/proxy/invoice-notes/invoice-note.service.ts +0 -92
  1165. package/src/lib/proxy/invoice-notes/models.ts +0 -36
  1166. package/src/lib/proxy/invoices/index.ts +0 -2
  1167. package/src/lib/proxy/invoices/invoice.service.ts +0 -75
  1168. package/src/lib/proxy/invoices/models.ts +0 -359
  1169. package/src/lib/proxy/note-rule-doc-types/index.ts +0 -2
  1170. package/src/lib/proxy/note-rule-doc-types/models.ts +0 -31
  1171. package/src/lib/proxy/note-rule-doc-types/note-rule-doc-type.service.ts +0 -74
  1172. package/src/lib/proxy/note-rule-scenarios/index.ts +0 -2
  1173. package/src/lib/proxy/note-rule-scenarios/models.ts +0 -31
  1174. package/src/lib/proxy/note-rule-scenarios/note-rule-scenario.service.ts +0 -74
  1175. package/src/lib/proxy/note-rules/index.ts +0 -2
  1176. package/src/lib/proxy/note-rules/models.ts +0 -78
  1177. package/src/lib/proxy/note-rules/note-rule.service.ts +0 -75
  1178. package/src/lib/proxy/params-companies/index.ts +0 -2
  1179. package/src/lib/proxy/params-companies/models.ts +0 -101
  1180. package/src/lib/proxy/params-companies/params-company.service.ts +0 -75
  1181. package/src/lib/proxy/params-generals/index.ts +0 -2
  1182. package/src/lib/proxy/params-generals/models.ts +0 -44
  1183. package/src/lib/proxy/params-generals/params-general.service.ts +0 -75
  1184. package/src/lib/proxy/params-integrators/index.ts +0 -2
  1185. package/src/lib/proxy/params-integrators/models.ts +0 -72
  1186. package/src/lib/proxy/params-integrators/params-integrator.service.ts +0 -92
  1187. package/src/lib/proxy/paramse-dispatches/index.ts +0 -2
  1188. package/src/lib/proxy/paramse-dispatches/models.ts +0 -73
  1189. package/src/lib/proxy/paramse-dispatches/paramse-dispatch.service.ts +0 -75
  1190. package/src/lib/proxy/paramse-invoices/index.ts +0 -2
  1191. package/src/lib/proxy/paramse-invoices/models.ts +0 -48
  1192. package/src/lib/proxy/paramse-invoices/paramse-invoice.service.ts +0 -75
  1193. package/src/lib/proxy/shared/index.ts +0 -1
  1194. package/src/lib/proxy/shared/models.ts +0 -14
  1195. package/src/lib/proxy/xslt-formats/index.ts +0 -2
  1196. package/src/lib/proxy/xslt-formats/models.ts +0 -33
  1197. package/src/lib/proxy/xslt-formats/xslt-format.service.ts +0 -56
  1198. package/src/lib/proxy/xslt-rule-doc-types/index.ts +0 -2
  1199. package/src/lib/proxy/xslt-rule-doc-types/models.ts +0 -31
  1200. package/src/lib/proxy/xslt-rule-doc-types/xslt-rule-doc-type.service.ts +0 -74
  1201. package/src/lib/proxy/xslt-rule-scenarios/index.ts +0 -2
  1202. package/src/lib/proxy/xslt-rule-scenarios/models.ts +0 -31
  1203. package/src/lib/proxy/xslt-rule-scenarios/xslt-rule-scenario.service.ts +0 -74
  1204. package/src/lib/proxy/xslt-rules/index.ts +0 -2
  1205. package/src/lib/proxy/xslt-rules/models.ts +0 -61
  1206. package/src/lib/proxy/xslt-rules/xslt-rule.service.ts +0 -74
  1207. package/src/lib/services/e-donusum.service.ts +0 -18
  1208. package/src/lib/xslt-formats/xslt-format/components/xslt-format.component.html +0 -272
  1209. package/src/lib/xslt-formats/xslt-format/components/xslt-format.component.ts +0 -122
  1210. package/src/lib/xslt-formats/xslt-format/xslt-format-routing.module.ts +0 -36
  1211. package/src/lib/xslt-formats/xslt-format/xslt-format.module.ts +0 -34
  1212. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/components/xslt-rule-doc-type.component.html +0 -199
  1213. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/components/xslt-rule-doc-type.component.ts +0 -124
  1214. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type-routing.module.ts +0 -18
  1215. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type.module.ts +0 -34
  1216. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/components/xslt-rule-scenario.component.html +0 -199
  1217. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/components/xslt-rule-scenario.component.ts +0 -124
  1218. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario-routing.module.ts +0 -18
  1219. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario.module.ts +0 -34
  1220. package/src/lib/xslt-rules/xslt-rule/components/xslt-rule.component.html +0 -496
  1221. package/src/lib/xslt-rules/xslt-rule/components/xslt-rule.component.ts +0 -141
  1222. package/src/lib/xslt-rules/xslt-rule/xslt-rule-routing.module.ts +0 -30
  1223. package/src/lib/xslt-rules/xslt-rule/xslt-rule.module.ts +0 -34
  1224. package/src/public-api.ts +0 -7
  1225. package/src/test.ts +0 -29
  1226. package/tsconfig.lib.json +0 -20
  1227. package/tsconfig.lib.prod.json +0 -10
  1228. package/tsconfig.spec.json +0 -17
  1229. /package/config/{src/enums/index.ts → enums/index.d.ts} +0 -0
  1230. /package/config/{src/providers/index.ts → providers/index.d.ts} +0 -0
  1231. /package/config/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,271 @@
1
+ import { downloadBlob, ListService } from '@abp/ng.core';
2
+ import { Confirmation } from '@abp/ng.theme.shared';
3
+ import { DateAdapter } from '@abp/ng.theme.shared/extensions';
4
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
5
+ import { Validators } from '@angular/forms';
6
+ import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
7
+ import { filter, finalize, switchMap, tap } from 'rxjs/operators';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@abp/ng.core";
10
+ import * as i2 from "../../../proxy/invoices/invoice.service";
11
+ import * as i3 from "@abp/ng.theme.shared";
12
+ import * as i4 from "@angular/forms";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "@swimlane/ngx-datatable";
15
+ import * as i7 from "@volo/abp.commercial.ng.ui";
16
+ import * as i8 from "@ngx-validate/core";
17
+ import * as i9 from "@ng-bootstrap/ng-bootstrap";
18
+ import * as i10 from "@abp/ng.components/page";
19
+ export class InvoiceComponent {
20
+ constructor(list, track, service, confirmation, fb) {
21
+ this.list = list;
22
+ this.track = track;
23
+ this.service = service;
24
+ this.confirmation = confirmation;
25
+ this.fb = fb;
26
+ this.data = {
27
+ items: [],
28
+ totalCount: 0,
29
+ };
30
+ this.filters = {};
31
+ this.isFiltersHidden = true;
32
+ this.isModalBusy = false;
33
+ this.isModalOpen = false;
34
+ this.isExportToExcelBusy = false;
35
+ }
36
+ ngOnInit() {
37
+ const getData = (query) => this.service.getList({
38
+ ...query,
39
+ ...this.filters,
40
+ filterText: query.filter,
41
+ });
42
+ const setData = (list) => (this.data = list);
43
+ this.list.hookToQuery(getData).subscribe(setData);
44
+ }
45
+ clearFilters() {
46
+ this.filters = {};
47
+ }
48
+ buildForm() {
49
+ const { ublVersionId, customizationId, profileId, invoiceId, copyIndicator, uuId, issueDate, issueTime, invoiceTypeCode, documentCurrencyCode, taxCurrencyCode, pricingCurrencyCode, paymentCurrencyCode, paymentAlternativeCurrencyCode, accountingCost, lineCountNumeric, invoicePeriodStartDate, invoicePeriodStartTime, invoicePeriodEndDate, invoicePeriodEndTime, invoicePeriodDurationMeasure, invoicePeriodDescription, orderReferenceId, orderReferenceSalesOrderId, orderReferenceIssueDate, orderReferenceOrderTypeCode, accountingSupplierPartyName, accountingSupplierPartySchemeId, accountingSupplierPartyVknTckn, accountingCustomerPartyName, accountingCustomerPartySchemeId, accountingCustomerPartyVknTckn, buyerCustomerPartyName, buyerCustomerPartySchemeId, buyerCustomerPartyVknTckn, sellerSupplierPartyName, sellerSupplierPartySchemeId, sellerSupplierPartyVknTckn, taxRepresentativePartyName, taxRepresentativePartySchemeId, taxRepresentativePartyVknTckn, taxExchangeRateSourceCurrencyCode, taxExchangeRateTargetCurrencyCode, taxExchangeRateCalculationRate, taxExchangeRateDate, pricingExchangeRateSourceCurrencyCode, pricingExchangeRateTargetCurrencyCode, pricingExchangeRateCalculationRate, pricingExchangeRateDate, paymentExchangeRateSourceCurrencyCode, paymentExchangeRateTargetCurrencyCode, paymentExchangeRateCalculationRate, paymentExchangeRateDate, paymentAlternativeExchangeRateSourceCurrencyCode, paymentAlternativeExchangeRateTargetCurrencyCode, paymentAlternativeExchangeRateCalculationRate, paymentAlternativeExchangeRateDate, legalMonetaryTotalLineExtensionAmount, legalMonetaryTotalTaxExclusiveAmount, legalMonetaryTotalTaxInclusiveAmount, legalMonetaryTotalAllowanceTotalAmount, legalMonetaryTotalChargeTotalAmount, legalMonetaryTotalPayableRoundingAmount, legalMonetaryTotalPayableAmount, paymentTermsNote, paymentTermsPaymentDueDate, custInvId, isCanceled, cancelCode, cancelDescription, resourceDocType, resourceDocEntry, status, receiverResponse, receiverResponseDesc, docType, isEArchive, } = this.selected || {};
50
+ this.form = this.fb.group({
51
+ ublVersionId: [ublVersionId ?? null, [Validators.required, Validators.maxLength(8)]],
52
+ customizationId: [customizationId ?? null, [Validators.required, Validators.maxLength(8)]],
53
+ profileId: [profileId ?? null, [Validators.required, Validators.maxLength(32)]],
54
+ invoiceId: [invoiceId ?? null, [Validators.required, Validators.maxLength(32)]],
55
+ copyIndicator: [false, []],
56
+ uuId: [uuId ?? null, [Validators.required, Validators.maxLength(64)]],
57
+ issueDate: [issueDate ? new Date(issueDate) : null, []],
58
+ issueTime: [issueTime ? new Date(issueTime) : null, []],
59
+ invoiceTypeCode: [invoiceTypeCode ?? null, [Validators.required, Validators.maxLength(32)]],
60
+ documentCurrencyCode: [
61
+ documentCurrencyCode ?? null,
62
+ [Validators.required, Validators.maxLength(3)],
63
+ ],
64
+ taxCurrencyCode: [taxCurrencyCode ?? null, [Validators.maxLength(3)]],
65
+ pricingCurrencyCode: [pricingCurrencyCode ?? null, [Validators.maxLength(3)]],
66
+ paymentCurrencyCode: [paymentCurrencyCode ?? null, [Validators.maxLength(3)]],
67
+ paymentAlternativeCurrencyCode: [
68
+ paymentAlternativeCurrencyCode ?? null,
69
+ [Validators.maxLength(3)],
70
+ ],
71
+ accountingCost: [accountingCost ?? null, [Validators.maxLength(32)]],
72
+ lineCountNumeric: [lineCountNumeric ?? null, []],
73
+ invoicePeriodStartDate: [
74
+ invoicePeriodStartDate ? new Date(invoicePeriodStartDate) : null,
75
+ [],
76
+ ],
77
+ invoicePeriodStartTime: [
78
+ invoicePeriodStartTime ? new Date(invoicePeriodStartTime) : null,
79
+ [],
80
+ ],
81
+ invoicePeriodEndDate: [invoicePeriodEndDate ? new Date(invoicePeriodEndDate) : null, []],
82
+ invoicePeriodEndTime: [invoicePeriodEndTime ? new Date(invoicePeriodEndTime) : null, []],
83
+ invoicePeriodDurationMeasure: [
84
+ invoicePeriodDurationMeasure ? new Date(invoicePeriodDurationMeasure) : null,
85
+ [],
86
+ ],
87
+ invoicePeriodDescription: [invoicePeriodDescription ?? null, []],
88
+ orderReferenceId: [orderReferenceId ?? null, [Validators.maxLength(64)]],
89
+ orderReferenceSalesOrderId: [orderReferenceSalesOrderId ?? null, [Validators.maxLength(64)]],
90
+ orderReferenceIssueDate: [
91
+ orderReferenceIssueDate ? new Date(orderReferenceIssueDate) : null,
92
+ [],
93
+ ],
94
+ orderReferenceOrderTypeCode: [
95
+ orderReferenceOrderTypeCode ?? null,
96
+ [Validators.maxLength(64)],
97
+ ],
98
+ accountingSupplierPartyName: [
99
+ accountingSupplierPartyName ?? null,
100
+ [Validators.maxLength(256)],
101
+ ],
102
+ accountingSupplierPartySchemeId: [
103
+ accountingSupplierPartySchemeId ?? null,
104
+ [Validators.maxLength(8)],
105
+ ],
106
+ accountingSupplierPartyVknTckn: [
107
+ accountingSupplierPartyVknTckn ?? null,
108
+ [Validators.maxLength(16)],
109
+ ],
110
+ accountingCustomerPartyName: [
111
+ accountingCustomerPartyName ?? null,
112
+ [Validators.maxLength(256)],
113
+ ],
114
+ accountingCustomerPartySchemeId: [
115
+ accountingCustomerPartySchemeId ?? null,
116
+ [Validators.maxLength(8)],
117
+ ],
118
+ accountingCustomerPartyVknTckn: [
119
+ accountingCustomerPartyVknTckn ?? null,
120
+ [Validators.maxLength(16)],
121
+ ],
122
+ buyerCustomerPartyName: [buyerCustomerPartyName ?? null, [Validators.maxLength(256)]],
123
+ buyerCustomerPartySchemeId: [buyerCustomerPartySchemeId ?? null, [Validators.maxLength(8)]],
124
+ buyerCustomerPartyVknTckn: [buyerCustomerPartyVknTckn ?? null, [Validators.maxLength(16)]],
125
+ sellerSupplierPartyName: [sellerSupplierPartyName ?? null, [Validators.maxLength(256)]],
126
+ sellerSupplierPartySchemeId: [sellerSupplierPartySchemeId ?? null, [Validators.maxLength(8)]],
127
+ sellerSupplierPartyVknTckn: [sellerSupplierPartyVknTckn ?? null, [Validators.maxLength(16)]],
128
+ taxRepresentativePartyName: [taxRepresentativePartyName ?? null, [Validators.maxLength(256)]],
129
+ taxRepresentativePartySchemeId: [
130
+ taxRepresentativePartySchemeId ?? null,
131
+ [Validators.maxLength(8)],
132
+ ],
133
+ taxRepresentativePartyVknTckn: [
134
+ taxRepresentativePartyVknTckn ?? null,
135
+ [Validators.maxLength(16)],
136
+ ],
137
+ taxExchangeRateSourceCurrencyCode: [
138
+ taxExchangeRateSourceCurrencyCode ?? null,
139
+ [Validators.maxLength(3)],
140
+ ],
141
+ taxExchangeRateTargetCurrencyCode: [
142
+ taxExchangeRateTargetCurrencyCode ?? null,
143
+ [Validators.maxLength(3)],
144
+ ],
145
+ taxExchangeRateCalculationRate: [taxExchangeRateCalculationRate ?? null, []],
146
+ taxExchangeRateDate: [taxExchangeRateDate ? new Date(taxExchangeRateDate) : null, []],
147
+ pricingExchangeRateSourceCurrencyCode: [
148
+ pricingExchangeRateSourceCurrencyCode ?? null,
149
+ [Validators.maxLength(3)],
150
+ ],
151
+ pricingExchangeRateTargetCurrencyCode: [
152
+ pricingExchangeRateTargetCurrencyCode ?? null,
153
+ [Validators.maxLength(3)],
154
+ ],
155
+ pricingExchangeRateCalculationRate: [pricingExchangeRateCalculationRate ?? null, []],
156
+ pricingExchangeRateDate: [
157
+ pricingExchangeRateDate ? new Date(pricingExchangeRateDate) : null,
158
+ [],
159
+ ],
160
+ paymentExchangeRateSourceCurrencyCode: [
161
+ paymentExchangeRateSourceCurrencyCode ?? null,
162
+ [Validators.maxLength(3)],
163
+ ],
164
+ paymentExchangeRateTargetCurrencyCode: [
165
+ paymentExchangeRateTargetCurrencyCode ?? null,
166
+ [Validators.maxLength(3)],
167
+ ],
168
+ paymentExchangeRateCalculationRate: [paymentExchangeRateCalculationRate ?? null, []],
169
+ paymentExchangeRateDate: [
170
+ paymentExchangeRateDate ? new Date(paymentExchangeRateDate) : null,
171
+ [],
172
+ ],
173
+ paymentAlternativeExchangeRateSourceCurrencyCode: [
174
+ paymentAlternativeExchangeRateSourceCurrencyCode ?? null,
175
+ [Validators.maxLength(3)],
176
+ ],
177
+ paymentAlternativeExchangeRateTargetCurrencyCode: [
178
+ paymentAlternativeExchangeRateTargetCurrencyCode ?? null,
179
+ [Validators.maxLength(3)],
180
+ ],
181
+ paymentAlternativeExchangeRateCalculationRate: [
182
+ paymentAlternativeExchangeRateCalculationRate ?? null,
183
+ [],
184
+ ],
185
+ paymentAlternativeExchangeRateDate: [
186
+ paymentAlternativeExchangeRateDate ? new Date(paymentAlternativeExchangeRateDate) : null,
187
+ [],
188
+ ],
189
+ legalMonetaryTotalLineExtensionAmount: [legalMonetaryTotalLineExtensionAmount ?? null, []],
190
+ legalMonetaryTotalTaxExclusiveAmount: [legalMonetaryTotalTaxExclusiveAmount ?? null, []],
191
+ legalMonetaryTotalTaxInclusiveAmount: [legalMonetaryTotalTaxInclusiveAmount ?? null, []],
192
+ legalMonetaryTotalAllowanceTotalAmount: [legalMonetaryTotalAllowanceTotalAmount ?? null, []],
193
+ legalMonetaryTotalChargeTotalAmount: [legalMonetaryTotalChargeTotalAmount ?? null, []],
194
+ legalMonetaryTotalPayableRoundingAmount: [
195
+ legalMonetaryTotalPayableRoundingAmount ?? null,
196
+ [],
197
+ ],
198
+ legalMonetaryTotalPayableAmount: [legalMonetaryTotalPayableAmount ?? null, []],
199
+ paymentTermsNote: [paymentTermsNote ?? null, [Validators.maxLength(512)]],
200
+ paymentTermsPaymentDueDate: [
201
+ paymentTermsPaymentDueDate ? new Date(paymentTermsPaymentDueDate) : null,
202
+ [],
203
+ ],
204
+ custInvId: [custInvId ?? null, [Validators.maxLength(64)]],
205
+ isCanceled: [false, []],
206
+ cancelCode: [cancelCode ?? null, [Validators.maxLength(16)]],
207
+ cancelDescription: [cancelDescription ?? null, [Validators.maxLength(256)]],
208
+ resourceDocType: [resourceDocType ?? null, []],
209
+ resourceDocEntry: [resourceDocEntry ?? null, [Validators.maxLength(64)]],
210
+ status: [status ?? null, []],
211
+ receiverResponse: [receiverResponse ?? null, []],
212
+ receiverResponseDesc: [receiverResponseDesc ?? null, [Validators.maxLength(1024)]],
213
+ docType: [docType ?? null, []],
214
+ isEArchive: [false, []],
215
+ });
216
+ }
217
+ hideForm() {
218
+ this.isModalOpen = false;
219
+ this.form.reset();
220
+ }
221
+ showForm() {
222
+ this.buildForm();
223
+ this.isModalOpen = true;
224
+ }
225
+ submitForm() {
226
+ if (this.form.invalid)
227
+ return;
228
+ const request = this.selected
229
+ ? this.service.update(this.selected.id, {
230
+ ...this.form.value,
231
+ concurrencyStamp: this.selected.concurrencyStamp,
232
+ })
233
+ : this.service.create(this.form.value);
234
+ this.isModalBusy = true;
235
+ request
236
+ .pipe(finalize(() => (this.isModalBusy = false)), tap(() => this.hideForm()))
237
+ .subscribe(this.list.get);
238
+ }
239
+ create() {
240
+ this.selected = undefined;
241
+ this.showForm();
242
+ }
243
+ update(record) {
244
+ this.selected = record;
245
+ this.showForm();
246
+ }
247
+ delete(record) {
248
+ this.confirmation
249
+ .warn('eDonusum::DeleteConfirmationMessage', 'eDonusum::AreYouSure', {
250
+ messageLocalizationParams: [],
251
+ })
252
+ .pipe(filter(status => status === Confirmation.Status.confirm), switchMap(() => this.service.delete(record.id)))
253
+ .subscribe(this.list.get);
254
+ }
255
+ exportToExcel() {
256
+ this.isExportToExcelBusy = true;
257
+ this.service
258
+ .getDownloadToken()
259
+ .pipe(switchMap(({ token }) => this.service.getListAsExcelFile({ downloadToken: token, filterText: this.list.filter })), finalize(() => (this.isExportToExcelBusy = false)))
260
+ .subscribe(result => {
261
+ downloadBlob(result, 'Invoice.xlsx');
262
+ });
263
+ }
264
+ }
265
+ InvoiceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: InvoiceComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.InvoiceService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
266
+ InvoiceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: InvoiceComponent, selector: "lib-invoice", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::Invoices' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'eDonusum.Invoices.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewInvoice' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ublVersionIdFilter\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ublVersionIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.ublVersionId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"customizationIdFilter\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"customizationIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.customizationId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"profileIdFilter\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"profileIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.profileId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoiceIdFilter\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoiceIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.invoiceId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"copyIndicatorFilter\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"copyIndicator\"\r\n id=\"copyIndicatorFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.copyIndicator\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"uuIdFilter\">\r\n {{ 'eDonusum::UuId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"uuIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.uuId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minIssueDate\">\r\n {{ 'eDonusum::MinIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minIssueDate\"\r\n class=\"form-control\"\r\n #minIssueDateInput\r\n #minIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"minIssueDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"minIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minIssueDateDatepicker.writeValue(null);\r\n minIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxIssueDate\">\r\n {{ 'eDonusum::MaxIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxIssueDate\"\r\n class=\"form-control\"\r\n #maxIssueDateInput\r\n #maxIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxIssueDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxIssueDateDatepicker.writeValue(null);\r\n maxIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minIssueTime\">\r\n {{ 'eDonusum::MinIssueTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minIssueTime\"\r\n class=\"form-control\"\r\n #minIssueTimeInput\r\n #minIssueTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minIssueTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minIssueTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minIssueTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minIssueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minIssueTimeDatepicker.writeValue(null);\r\n minIssueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxIssueTime\">\r\n {{ 'eDonusum::MaxIssueTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxIssueTime\"\r\n class=\"form-control\"\r\n #maxIssueTimeInput\r\n #maxIssueTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxIssueTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxIssueTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxIssueTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxIssueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxIssueTimeDatepicker.writeValue(null);\r\n maxIssueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoiceTypeCodeFilter\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoiceTypeCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.invoiceTypeCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"documentCurrencyCodeFilter\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"documentCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.documentCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxCurrencyCodeFilter\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pricingCurrencyCodeFilter\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pricingCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentAlternativeCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentAlternativeCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCostFilter\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCostFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCost\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLineCountNumeric\">\r\n {{ 'eDonusum::MinLineCountNumeric' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLineCountNumeric\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.lineCountNumericMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLineCountNumeric\">\r\n {{ 'eDonusum::MaxLineCountNumeric' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLineCountNumeric\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.lineCountNumericMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodStartDate\">\r\n {{ 'eDonusum::MinInvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodStartDate\"\r\n class=\"form-control\"\r\n #minInvoicePeriodStartDateInput\r\n #minInvoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodStartDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodStartDateDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodStartDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodStartDateDatepicker.writeValue(null);\r\n minInvoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodStartDate\">\r\n {{ 'eDonusum::MaxInvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodStartDate\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodStartDateInput\r\n #maxInvoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodStartDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodStartDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodStartDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodStartDateDatepicker.writeValue(null);\r\n maxInvoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodStartTime\">\r\n {{ 'eDonusum::MinInvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodStartTime\"\r\n class=\"form-control\"\r\n #minInvoicePeriodStartTimeInput\r\n #minInvoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodStartTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodStartTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodStartTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodStartTimeDatepicker.writeValue(null);\r\n minInvoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodStartTime\">\r\n {{ 'eDonusum::MaxInvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodStartTime\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodStartTimeInput\r\n #maxInvoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodStartTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodStartTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodStartTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodStartTimeDatepicker.writeValue(null);\r\n maxInvoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodEndDate\">\r\n {{ 'eDonusum::MinInvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodEndDate\"\r\n class=\"form-control\"\r\n #minInvoicePeriodEndDateInput\r\n #minInvoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodEndDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodEndDateDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodEndDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodEndDateDatepicker.writeValue(null);\r\n minInvoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodEndDate\">\r\n {{ 'eDonusum::MaxInvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodEndDate\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodEndDateInput\r\n #maxInvoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodEndDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodEndDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodEndDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodEndDateDatepicker.writeValue(null);\r\n maxInvoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodEndTime\">\r\n {{ 'eDonusum::MinInvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodEndTime\"\r\n class=\"form-control\"\r\n #minInvoicePeriodEndTimeInput\r\n #minInvoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodEndTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodEndTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodEndTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodEndTimeDatepicker.writeValue(null);\r\n minInvoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodEndTime\">\r\n {{ 'eDonusum::MaxInvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodEndTime\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodEndTimeInput\r\n #maxInvoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodEndTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodEndTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodEndTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodEndTimeDatepicker.writeValue(null);\r\n maxInvoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodDurationMeasure\">\r\n {{ 'eDonusum::MinInvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n #minInvoicePeriodDurationMeasureInput\r\n #minInvoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodDurationMeasure\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodDurationMeasureMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n minInvoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodDurationMeasure\">\r\n {{ 'eDonusum::MaxInvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodDurationMeasureInput\r\n #maxInvoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodDurationMeasure\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodDurationMeasureMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n maxInvoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoicePeriodDescriptionFilter\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoicePeriodDescriptionFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.invoicePeriodDescription\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"orderReferenceIdFilter\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"orderReferenceIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"orderReferenceSalesOrderIdFilter\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"orderReferenceSalesOrderIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceSalesOrderId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minOrderReferenceIssueDate\">\r\n {{ 'eDonusum::MinOrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minOrderReferenceIssueDate\"\r\n class=\"form-control\"\r\n #minOrderReferenceIssueDateInput\r\n #minOrderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"minOrderReferenceIssueDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minOrderReferenceIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"minOrderReferenceIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.orderReferenceIssueDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minOrderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minOrderReferenceIssueDateDatepicker.writeValue(null);\r\n minOrderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxOrderReferenceIssueDate\">\r\n {{ 'eDonusum::MaxOrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxOrderReferenceIssueDate\"\r\n class=\"form-control\"\r\n #maxOrderReferenceIssueDateInput\r\n #maxOrderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxOrderReferenceIssueDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxOrderReferenceIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxOrderReferenceIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.orderReferenceIssueDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxOrderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxOrderReferenceIssueDateDatepicker.writeValue(null);\r\n maxOrderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"orderReferenceOrderTypeCodeFilter\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"orderReferenceOrderTypeCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceOrderTypeCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingSupplierPartyNameFilter\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingSupplierPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingSupplierPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingSupplierPartySchemeIdFilter\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingSupplierPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingSupplierPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingSupplierPartyVknTcknFilter\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingSupplierPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingSupplierPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCustomerPartyNameFilter\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCustomerPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCustomerPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCustomerPartySchemeIdFilter\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCustomerPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCustomerPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCustomerPartyVknTcknFilter\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCustomerPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCustomerPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"buyerCustomerPartyNameFilter\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"buyerCustomerPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.buyerCustomerPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"buyerCustomerPartySchemeIdFilter\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"buyerCustomerPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.buyerCustomerPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"buyerCustomerPartyVknTcknFilter\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"buyerCustomerPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.buyerCustomerPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"sellerSupplierPartyNameFilter\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"sellerSupplierPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.sellerSupplierPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"sellerSupplierPartySchemeIdFilter\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"sellerSupplierPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.sellerSupplierPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"sellerSupplierPartyVknTcknFilter\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"sellerSupplierPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.sellerSupplierPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxRepresentativePartyNameFilter\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxRepresentativePartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxRepresentativePartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxRepresentativePartySchemeIdFilter\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxRepresentativePartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxRepresentativePartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxRepresentativePartyVknTcknFilter\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxRepresentativePartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxRepresentativePartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxExchangeRateSourceCurrencyCodeFilter\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxExchangeRateTargetCurrencyCodeFilter\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minTaxExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinTaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minTaxExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxTaxExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxTaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxTaxExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minTaxExchangeRateDate\">\r\n {{ 'eDonusum::MinTaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minTaxExchangeRateDate\"\r\n class=\"form-control\"\r\n #minTaxExchangeRateDateInput\r\n #minTaxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minTaxExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minTaxExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minTaxExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.taxExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minTaxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minTaxExchangeRateDateDatepicker.writeValue(null);\r\n minTaxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxTaxExchangeRateDate\">\r\n {{ 'eDonusum::MaxTaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxTaxExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxTaxExchangeRateDateInput\r\n #maxTaxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxTaxExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxTaxExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxTaxExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.taxExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxTaxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxTaxExchangeRateDateDatepicker.writeValue(null);\r\n maxTaxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pricingExchangeRateSourceCurrencyCodeFilter\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pricingExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pricingExchangeRateTargetCurrencyCodeFilter\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pricingExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPricingExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinPricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minPricingExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPricingExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxPricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxPricingExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPricingExchangeRateDate\">\r\n {{ 'eDonusum::MinPricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPricingExchangeRateDate\"\r\n class=\"form-control\"\r\n #minPricingExchangeRateDateInput\r\n #minPricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPricingExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPricingExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPricingExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.pricingExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minPricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPricingExchangeRateDateDatepicker.writeValue(null);\r\n minPricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPricingExchangeRateDate\">\r\n {{ 'eDonusum::MaxPricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPricingExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxPricingExchangeRateDateInput\r\n #maxPricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPricingExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPricingExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPricingExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.pricingExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxPricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPricingExchangeRateDateDatepicker.writeValue(null);\r\n maxPricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentExchangeRateSourceCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentExchangeRateTargetCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinPaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minPaymentExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxPaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxPaymentExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentExchangeRateDate\">\r\n {{ 'eDonusum::MinPaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPaymentExchangeRateDate\"\r\n class=\"form-control\"\r\n #minPaymentExchangeRateDateInput\r\n #minPaymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPaymentExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPaymentExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPaymentExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minPaymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPaymentExchangeRateDateDatepicker.writeValue(null);\r\n minPaymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentExchangeRateDate\">\r\n {{ 'eDonusum::MaxPaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPaymentExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxPaymentExchangeRateDateInput\r\n #maxPaymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPaymentExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPaymentExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPaymentExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxPaymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPaymentExchangeRateDateDatepicker.writeValue(null);\r\n maxPaymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"paymentAlternativeExchangeRateSourceCurrencyCodeFilter\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentAlternativeExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"paymentAlternativeExchangeRateTargetCurrencyCodeFilter\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentAlternativeExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentAlternativeExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinPaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minPaymentAlternativeExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentAlternativeExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxPaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxPaymentAlternativeExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentAlternativeExchangeRateDate\">\r\n {{ 'eDonusum::MinPaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPaymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n #minPaymentAlternativeExchangeRateDateInput\r\n #minPaymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPaymentAlternativeExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div\r\n *ngIf=\"minPaymentAlternativeExchangeRateDateInput.value\"\r\n class=\"input-group-append\"\r\n >\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPaymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n minPaymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentAlternativeExchangeRateDate\">\r\n {{ 'eDonusum::MaxPaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPaymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxPaymentAlternativeExchangeRateDateInput\r\n #maxPaymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPaymentAlternativeExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div\r\n *ngIf=\"maxPaymentAlternativeExchangeRateDateInput.value\"\r\n class=\"input-group-append\"\r\n >\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPaymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n maxPaymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalLineExtensionAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalLineExtensionAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalLineExtensionAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalLineExtensionAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalLineExtensionAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalLineExtensionAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalTaxExclusiveAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalTaxExclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxExclusiveAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalTaxExclusiveAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalTaxExclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxExclusiveAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalTaxInclusiveAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalTaxInclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxInclusiveAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalTaxInclusiveAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalTaxInclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxInclusiveAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalAllowanceTotalAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalAllowanceTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalAllowanceTotalAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalAllowanceTotalAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalAllowanceTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalAllowanceTotalAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalChargeTotalAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalChargeTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalChargeTotalAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalChargeTotalAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalChargeTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalChargeTotalAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalPayableRoundingAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalPayableRoundingAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableRoundingAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalPayableRoundingAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalPayableRoundingAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableRoundingAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalPayableAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalPayableAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalPayableAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalPayableAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentTermsNoteFilter\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentTermsNoteFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentTermsNote\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentTermsPaymentDueDate\">\r\n {{ 'eDonusum::MinPaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPaymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n #minPaymentTermsPaymentDueDateInput\r\n #minPaymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPaymentTermsPaymentDueDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentTermsPaymentDueDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minPaymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPaymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n minPaymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentTermsPaymentDueDate\">\r\n {{ 'eDonusum::MaxPaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPaymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n #maxPaymentTermsPaymentDueDateInput\r\n #maxPaymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPaymentTermsPaymentDueDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentTermsPaymentDueDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxPaymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPaymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n maxPaymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"custInvIdFilter\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"custInvIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.custInvId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isCanceledFilter\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isCanceled\"\r\n id=\"isCanceledFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isCanceled\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cancelCodeFilter\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cancelCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cancelCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cancelDescriptionFilter\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cancelDescriptionFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cancelDescription\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResourceDocType\">\r\n {{ 'eDonusum::MinResourceDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minResourceDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.resourceDocTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResourceDocType\">\r\n {{ 'eDonusum::MaxResourceDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxResourceDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.resourceDocTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"resourceDocEntryFilter\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"resourceDocEntryFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.resourceDocEntry\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minStatus\">\r\n {{ 'eDonusum::MinStatus' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minStatus\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxStatus\">\r\n {{ 'eDonusum::MaxStatus' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxStatus\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minReceiverResponse\">\r\n {{ 'eDonusum::MinReceiverResponse' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minReceiverResponse\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.receiverResponseMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxReceiverResponse\">\r\n {{ 'eDonusum::MaxReceiverResponse' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxReceiverResponse\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.receiverResponseMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"receiverResponseDescFilter\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"receiverResponseDescFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.receiverResponseDesc\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDocType\">\r\n {{ 'eDonusum::MinDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.docTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDocType\">\r\n {{ 'eDonusum::MaxDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.docTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEArchiveFilter\">\r\n {{ 'eDonusum::IsEArchive' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEArchive\"\r\n id=\"isEArchiveFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEArchive\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.Invoices.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.Invoices.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UblVersionId' | abpLocalization }}\"\r\n prop=\"ublVersionId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.ublVersionId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CustomizationId' | abpLocalization }}\"\r\n prop=\"customizationId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.customizationId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::ProfileId' | abpLocalization }}\" prop=\"profileId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.profileId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::InvoiceId' | abpLocalization }}\" prop=\"invoiceId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoiceId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CopyIndicator' | abpLocalization }}\"\r\n prop=\"copyIndicator\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.copyIndicator\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::UuId' | abpLocalization }}\" prop=\"uuId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.uuId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::IssueDate' | abpLocalization }}\" prop=\"issueDate\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.issueDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::IssueTime' | abpLocalization }}\" prop=\"issueTime\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.issueTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoiceTypeCode' | abpLocalization }}\"\r\n prop=\"invoiceTypeCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoiceTypeCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }}\"\r\n prop=\"documentCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.documentCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\"\r\n prop=\"taxCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\"\r\n prop=\"pricingCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentAlternativeCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCost' | abpLocalization }}\"\r\n prop=\"accountingCost\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCost }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LineCountNumeric' | abpLocalization }}\"\r\n prop=\"lineCountNumeric\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.lineCountNumeric }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\"\r\n prop=\"invoicePeriodStartDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodStartDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\"\r\n prop=\"invoicePeriodStartTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodStartTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\"\r\n prop=\"invoicePeriodEndDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodEndDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\"\r\n prop=\"invoicePeriodEndTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodEndTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\"\r\n prop=\"invoicePeriodDurationMeasure\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodDurationMeasure | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\"\r\n prop=\"invoicePeriodDescription\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodDescription }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceId' | abpLocalization }}\"\r\n prop=\"orderReferenceId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\"\r\n prop=\"orderReferenceSalesOrderId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceSalesOrderId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\"\r\n prop=\"orderReferenceIssueDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceIssueDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\"\r\n prop=\"orderReferenceOrderTypeCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceOrderTypeCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\"\r\n prop=\"accountingSupplierPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingSupplierPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\"\r\n prop=\"accountingSupplierPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingSupplierPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\"\r\n prop=\"accountingSupplierPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingSupplierPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\"\r\n prop=\"accountingCustomerPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCustomerPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\"\r\n prop=\"accountingCustomerPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCustomerPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\"\r\n prop=\"accountingCustomerPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCustomerPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\"\r\n prop=\"buyerCustomerPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.buyerCustomerPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\"\r\n prop=\"buyerCustomerPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.buyerCustomerPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\"\r\n prop=\"buyerCustomerPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.buyerCustomerPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\"\r\n prop=\"sellerSupplierPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.sellerSupplierPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\"\r\n prop=\"sellerSupplierPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.sellerSupplierPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\"\r\n prop=\"sellerSupplierPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.sellerSupplierPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\"\r\n prop=\"taxRepresentativePartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxRepresentativePartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\"\r\n prop=\"taxRepresentativePartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxRepresentativePartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\"\r\n prop=\"taxRepresentativePartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxRepresentativePartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\"\r\n prop=\"taxExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\"\r\n prop=\"taxExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"taxExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\"\r\n prop=\"taxExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{\r\n 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization\r\n }}\"\r\n prop=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{\r\n 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization\r\n }}\"\r\n prop=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"paymentAlternativeExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\"\r\n prop=\"paymentAlternativeExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalLineExtensionAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalLineExtensionAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalTaxExclusiveAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalTaxInclusiveAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalAllowanceTotalAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalChargeTotalAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalChargeTotalAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalPayableRoundingAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalPayableRoundingAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalPayableAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalPayableAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\"\r\n prop=\"paymentTermsNote\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentTermsNote }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\"\r\n prop=\"paymentTermsPaymentDueDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentTermsPaymentDueDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::CustInvId' | abpLocalization }}\" prop=\"custInvId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.custInvId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsCanceled' | abpLocalization }}\"\r\n prop=\"isCanceled\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.isCanceled\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CancelCode' | abpLocalization }}\"\r\n prop=\"cancelCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.cancelCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CancelDescription' | abpLocalization }}\"\r\n prop=\"cancelDescription\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.cancelDescription }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ResourceDocType' | abpLocalization }}\"\r\n prop=\"resourceDocType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.resourceDocType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\"\r\n prop=\"resourceDocEntry\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.resourceDocEntry }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::Status' | abpLocalization }}\" prop=\"status\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.status }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverResponse' | abpLocalization }}\"\r\n prop=\"receiverResponse\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.receiverResponse }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\"\r\n prop=\"receiverResponseDesc\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.receiverResponseDesc }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::DocType' | abpLocalization }}\" prop=\"docType\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.docType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEArchive' | abpLocalization }}\"\r\n prop=\"isEArchive\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.isEArchive\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewInvoice') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"invoice\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-ubl-version-id\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-ubl-version-id\"\r\n formControlName=\"ublVersionId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-customization-id\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-customization-id\"\r\n formControlName=\"customizationId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-profile-id\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-profile-id\"\r\n formControlName=\"profileId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-id\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-invoice-id\"\r\n formControlName=\"invoiceId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-copy-indicator\"\r\n formControlName=\"copyIndicator\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"invoice-copy-indicator\" class=\"form-check-label\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-uu-id\">\r\n {{ 'eDonusum::UuId' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"invoice-uu-id\" formControlName=\"uuId\" class=\"form-control\" maxlength=\"64\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-date\">\r\n {{ 'eDonusum::IssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-date\"\r\n formControlName=\"issueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueDateInput\r\n #issueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueDateDatepicker.open()\"\r\n (keyup.space)=\"issueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueDateDatepicker.writeValue(null);\r\n issueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-time\">\r\n {{ 'eDonusum::IssueTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-time\"\r\n formControlName=\"issueTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueTimeInput\r\n #issueTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueTimeDatepicker.open()\"\r\n (keyup.space)=\"issueTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueTimeDatepicker.writeValue(null);\r\n issueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-type-code\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-invoice-type-code\"\r\n formControlName=\"invoiceTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-document-currency-code\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-document-currency-code\"\r\n formControlName=\"documentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-currency-code\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-currency-code\"\r\n formControlName=\"taxCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-currency-code\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-pricing-currency-code\"\r\n formControlName=\"pricingCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-currency-code\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-currency-code\"\r\n formControlName=\"paymentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-currency-code\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-alternative-currency-code\"\r\n formControlName=\"paymentAlternativeCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-cost\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-cost\"\r\n formControlName=\"accountingCost\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-line-count-numeric\">\r\n {{ 'eDonusum::LineCountNumeric' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-line-count-numeric\"\r\n formControlName=\"lineCountNumeric\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-date\">\r\n {{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-date\"\r\n formControlName=\"invoicePeriodStartDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartDateInput\r\n #invoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartDateDatepicker.writeValue(null);\r\n invoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-time\">\r\n {{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-time\"\r\n formControlName=\"invoicePeriodStartTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartTimeInput\r\n #invoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartTimeDatepicker.writeValue(null);\r\n invoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-date\">\r\n {{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-date\"\r\n formControlName=\"invoicePeriodEndDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndDateInput\r\n #invoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndDateDatepicker.writeValue(null);\r\n invoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-time\">\r\n {{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-time\"\r\n formControlName=\"invoicePeriodEndTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndTimeInput\r\n #invoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndTimeDatepicker.writeValue(null);\r\n invoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-duration-measure\">\r\n {{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-duration-measure\"\r\n formControlName=\"invoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodDurationMeasureInput\r\n #invoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n invoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-description\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-invoice-period-description\"\r\n formControlName=\"invoicePeriodDescription\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-id\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-order-reference-id\"\r\n formControlName=\"orderReferenceId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-sales-order-id\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-order-reference-sales-order-id\"\r\n formControlName=\"orderReferenceSalesOrderId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-issue-date\">\r\n {{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-order-reference-issue-date\"\r\n formControlName=\"orderReferenceIssueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #orderReferenceIssueDateInput\r\n #orderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"orderReferenceIssueDateDatepicker.open()\"\r\n (keyup.space)=\"orderReferenceIssueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"orderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n orderReferenceIssueDateDatepicker.writeValue(null);\r\n orderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-order-type-code\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-order-reference-order-type-code\"\r\n formControlName=\"orderReferenceOrderTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-name\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-supplier-party-name\"\r\n formControlName=\"accountingSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-scheme-id\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-supplier-party-scheme-id\"\r\n formControlName=\"accountingSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-supplier-party-vkn-tckn\"\r\n formControlName=\"accountingSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-name\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-customer-party-name\"\r\n formControlName=\"accountingCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-scheme-id\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-customer-party-scheme-id\"\r\n formControlName=\"accountingCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-customer-party-vkn-tckn\"\r\n formControlName=\"accountingCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-name\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-buyer-customer-party-name\"\r\n formControlName=\"buyerCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-scheme-id\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-buyer-customer-party-scheme-id\"\r\n formControlName=\"buyerCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-buyer-customer-party-vkn-tckn\"\r\n formControlName=\"buyerCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-name\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-seller-supplier-party-name\"\r\n formControlName=\"sellerSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-scheme-id\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-seller-supplier-party-scheme-id\"\r\n formControlName=\"sellerSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-seller-supplier-party-vkn-tckn\"\r\n formControlName=\"sellerSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-name\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-representative-party-name\"\r\n formControlName=\"taxRepresentativePartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-scheme-id\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-representative-party-scheme-id\"\r\n formControlName=\"taxRepresentativePartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-vkn-tckn\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-representative-party-vkn-tckn\"\r\n formControlName=\"taxRepresentativePartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-exchange-rate-source-currency-code\"\r\n formControlName=\"taxExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-exchange-rate-target-currency-code\"\r\n formControlName=\"taxExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-tax-exchange-rate-calculation-rate\"\r\n formControlName=\"taxExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-date\">\r\n {{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-tax-exchange-rate-date\"\r\n formControlName=\"taxExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #taxExchangeRateDateInput\r\n #taxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"taxExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"taxExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"taxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n taxExchangeRateDateDatepicker.writeValue(null);\r\n taxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-pricing-exchange-rate-source-currency-code\"\r\n formControlName=\"pricingExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-pricing-exchange-rate-target-currency-code\"\r\n formControlName=\"pricingExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-pricing-exchange-rate-calculation-rate\"\r\n formControlName=\"pricingExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-date\">\r\n {{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-pricing-exchange-rate-date\"\r\n formControlName=\"pricingExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #pricingExchangeRateDateInput\r\n #pricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"pricingExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"pricingExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"pricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n pricingExchangeRateDateDatepicker.writeValue(null);\r\n pricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-exchange-rate-date\"\r\n formControlName=\"paymentExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentExchangeRateDateInput\r\n #paymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentExchangeRateDateDatepicker.writeValue(null);\r\n paymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentAlternativeExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-alternative-exchange-rate-date\"\r\n formControlName=\"paymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentAlternativeExchangeRateDateInput\r\n #paymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentAlternativeExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n paymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-line-extension-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-line-extension-amount\"\r\n formControlName=\"legalMonetaryTotalLineExtensionAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-exclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-exclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-inclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-inclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-allowance-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-allowance-total-amount\"\r\n formControlName=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-charge-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-charge-total-amount\"\r\n formControlName=\"legalMonetaryTotalChargeTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-rounding-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-rounding-amount\"\r\n formControlName=\"legalMonetaryTotalPayableRoundingAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-amount\"\r\n formControlName=\"legalMonetaryTotalPayableAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-note\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-terms-note\"\r\n formControlName=\"paymentTermsNote\"\r\n class=\"form-control\"\r\n maxlength=\"512\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-payment-due-date\">\r\n {{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-terms-payment-due-date\"\r\n formControlName=\"paymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentTermsPaymentDueDateInput\r\n #paymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n (keyup.space)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n paymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cust-inv-id\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-cust-inv-id\"\r\n formControlName=\"custInvId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-canceled\"\r\n formControlName=\"isCanceled\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"invoice-is-canceled\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-code\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-cancel-code\"\r\n formControlName=\"cancelCode\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-description\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-cancel-description\"\r\n formControlName=\"cancelDescription\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-type\">\r\n {{ 'eDonusum::ResourceDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-resource-doc-type\"\r\n formControlName=\"resourceDocType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-entry\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-resource-doc-entry\"\r\n formControlName=\"resourceDocEntry\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-status\">\r\n {{ 'eDonusum::Status' | abpLocalization }}\r\n </label>\r\n\r\n <input type=\"number\" id=\"invoice-status\" formControlName=\"status\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response\">\r\n {{ 'eDonusum::ReceiverResponse' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-receiver-response\"\r\n formControlName=\"receiverResponse\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response-desc\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-receiver-response-desc\"\r\n formControlName=\"receiverResponseDesc\"\r\n class=\"form-control\"\r\n maxlength=\"1024\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-doc-type\">\r\n {{ 'eDonusum::DocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-doc-type\"\r\n formControlName=\"docType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-earchive\"\r\n formControlName=\"isEArchive\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"invoice-is-earchive\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEArchive' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"invoice\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: InvoiceComponent, decorators: [{
268
+ type: Component,
269
+ args: [{ selector: 'lib-invoice', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::Invoices' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'eDonusum::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'eDonusum.Invoices.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewInvoice' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ublVersionIdFilter\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ublVersionIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.ublVersionId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"customizationIdFilter\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"customizationIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.customizationId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"profileIdFilter\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"profileIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.profileId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoiceIdFilter\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoiceIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.invoiceId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"copyIndicatorFilter\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"copyIndicator\"\r\n id=\"copyIndicatorFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.copyIndicator\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"uuIdFilter\">\r\n {{ 'eDonusum::UuId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"uuIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.uuId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minIssueDate\">\r\n {{ 'eDonusum::MinIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minIssueDate\"\r\n class=\"form-control\"\r\n #minIssueDateInput\r\n #minIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"minIssueDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"minIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minIssueDateDatepicker.writeValue(null);\r\n minIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxIssueDate\">\r\n {{ 'eDonusum::MaxIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxIssueDate\"\r\n class=\"form-control\"\r\n #maxIssueDateInput\r\n #maxIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxIssueDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxIssueDateDatepicker.writeValue(null);\r\n maxIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minIssueTime\">\r\n {{ 'eDonusum::MinIssueTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minIssueTime\"\r\n class=\"form-control\"\r\n #minIssueTimeInput\r\n #minIssueTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minIssueTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minIssueTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minIssueTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minIssueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minIssueTimeDatepicker.writeValue(null);\r\n minIssueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxIssueTime\">\r\n {{ 'eDonusum::MaxIssueTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxIssueTime\"\r\n class=\"form-control\"\r\n #maxIssueTimeInput\r\n #maxIssueTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxIssueTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxIssueTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxIssueTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.issueTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxIssueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxIssueTimeDatepicker.writeValue(null);\r\n maxIssueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoiceTypeCodeFilter\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoiceTypeCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.invoiceTypeCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"documentCurrencyCodeFilter\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"documentCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.documentCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxCurrencyCodeFilter\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pricingCurrencyCodeFilter\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pricingCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentAlternativeCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentAlternativeCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCostFilter\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCostFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCost\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLineCountNumeric\">\r\n {{ 'eDonusum::MinLineCountNumeric' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLineCountNumeric\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.lineCountNumericMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLineCountNumeric\">\r\n {{ 'eDonusum::MaxLineCountNumeric' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLineCountNumeric\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.lineCountNumericMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodStartDate\">\r\n {{ 'eDonusum::MinInvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodStartDate\"\r\n class=\"form-control\"\r\n #minInvoicePeriodStartDateInput\r\n #minInvoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodStartDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodStartDateDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodStartDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodStartDateDatepicker.writeValue(null);\r\n minInvoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodStartDate\">\r\n {{ 'eDonusum::MaxInvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodStartDate\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodStartDateInput\r\n #maxInvoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodStartDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodStartDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodStartDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodStartDateDatepicker.writeValue(null);\r\n maxInvoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodStartTime\">\r\n {{ 'eDonusum::MinInvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodStartTime\"\r\n class=\"form-control\"\r\n #minInvoicePeriodStartTimeInput\r\n #minInvoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodStartTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodStartTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodStartTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodStartTimeDatepicker.writeValue(null);\r\n minInvoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodStartTime\">\r\n {{ 'eDonusum::MaxInvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodStartTime\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodStartTimeInput\r\n #maxInvoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodStartTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodStartTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodStartTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodStartTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodStartTimeDatepicker.writeValue(null);\r\n maxInvoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodEndDate\">\r\n {{ 'eDonusum::MinInvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodEndDate\"\r\n class=\"form-control\"\r\n #minInvoicePeriodEndDateInput\r\n #minInvoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodEndDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodEndDateDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodEndDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodEndDateDatepicker.writeValue(null);\r\n minInvoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodEndDate\">\r\n {{ 'eDonusum::MaxInvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodEndDate\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodEndDateInput\r\n #maxInvoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodEndDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodEndDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodEndDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodEndDateDatepicker.writeValue(null);\r\n maxInvoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodEndTime\">\r\n {{ 'eDonusum::MinInvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodEndTime\"\r\n class=\"form-control\"\r\n #minInvoicePeriodEndTimeInput\r\n #minInvoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodEndTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodEndTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodEndTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodEndTimeDatepicker.writeValue(null);\r\n minInvoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodEndTime\">\r\n {{ 'eDonusum::MaxInvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodEndTime\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodEndTimeInput\r\n #maxInvoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodEndTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodEndTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodEndTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodEndTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodEndTimeDatepicker.writeValue(null);\r\n maxInvoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minInvoicePeriodDurationMeasure\">\r\n {{ 'eDonusum::MinInvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minInvoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n #minInvoicePeriodDurationMeasureInput\r\n #minInvoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n name=\"minInvoicePeriodDurationMeasure\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n (keyup.space)=\"minInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodDurationMeasureMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minInvoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minInvoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n minInvoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxInvoicePeriodDurationMeasure\">\r\n {{ 'eDonusum::MaxInvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxInvoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n #maxInvoicePeriodDurationMeasureInput\r\n #maxInvoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n name=\"maxInvoicePeriodDurationMeasure\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n (keyup.space)=\"maxInvoicePeriodDurationMeasureDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.invoicePeriodDurationMeasureMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxInvoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxInvoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n maxInvoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoicePeriodDescriptionFilter\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoicePeriodDescriptionFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.invoicePeriodDescription\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"orderReferenceIdFilter\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"orderReferenceIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"orderReferenceSalesOrderIdFilter\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"orderReferenceSalesOrderIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceSalesOrderId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minOrderReferenceIssueDate\">\r\n {{ 'eDonusum::MinOrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minOrderReferenceIssueDate\"\r\n class=\"form-control\"\r\n #minOrderReferenceIssueDateInput\r\n #minOrderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"minOrderReferenceIssueDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minOrderReferenceIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"minOrderReferenceIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.orderReferenceIssueDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minOrderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minOrderReferenceIssueDateDatepicker.writeValue(null);\r\n minOrderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxOrderReferenceIssueDate\">\r\n {{ 'eDonusum::MaxOrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxOrderReferenceIssueDate\"\r\n class=\"form-control\"\r\n #maxOrderReferenceIssueDateInput\r\n #maxOrderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxOrderReferenceIssueDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxOrderReferenceIssueDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxOrderReferenceIssueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.orderReferenceIssueDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxOrderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxOrderReferenceIssueDateDatepicker.writeValue(null);\r\n maxOrderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"orderReferenceOrderTypeCodeFilter\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"orderReferenceOrderTypeCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.orderReferenceOrderTypeCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingSupplierPartyNameFilter\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingSupplierPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingSupplierPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingSupplierPartySchemeIdFilter\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingSupplierPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingSupplierPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingSupplierPartyVknTcknFilter\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingSupplierPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingSupplierPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCustomerPartyNameFilter\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCustomerPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCustomerPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCustomerPartySchemeIdFilter\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCustomerPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCustomerPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"accountingCustomerPartyVknTcknFilter\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"accountingCustomerPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.accountingCustomerPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"buyerCustomerPartyNameFilter\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"buyerCustomerPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.buyerCustomerPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"buyerCustomerPartySchemeIdFilter\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"buyerCustomerPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.buyerCustomerPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"buyerCustomerPartyVknTcknFilter\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"buyerCustomerPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.buyerCustomerPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"sellerSupplierPartyNameFilter\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"sellerSupplierPartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.sellerSupplierPartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"sellerSupplierPartySchemeIdFilter\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"sellerSupplierPartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.sellerSupplierPartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"sellerSupplierPartyVknTcknFilter\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"sellerSupplierPartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.sellerSupplierPartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxRepresentativePartyNameFilter\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxRepresentativePartyNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxRepresentativePartyName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxRepresentativePartySchemeIdFilter\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxRepresentativePartySchemeIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxRepresentativePartySchemeId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxRepresentativePartyVknTcknFilter\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxRepresentativePartyVknTcknFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxRepresentativePartyVknTckn\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxExchangeRateSourceCurrencyCodeFilter\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"taxExchangeRateTargetCurrencyCodeFilter\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"taxExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minTaxExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinTaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minTaxExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxTaxExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxTaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxTaxExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.taxExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minTaxExchangeRateDate\">\r\n {{ 'eDonusum::MinTaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minTaxExchangeRateDate\"\r\n class=\"form-control\"\r\n #minTaxExchangeRateDateInput\r\n #minTaxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minTaxExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minTaxExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minTaxExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.taxExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minTaxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minTaxExchangeRateDateDatepicker.writeValue(null);\r\n minTaxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxTaxExchangeRateDate\">\r\n {{ 'eDonusum::MaxTaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxTaxExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxTaxExchangeRateDateInput\r\n #maxTaxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxTaxExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxTaxExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxTaxExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.taxExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxTaxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxTaxExchangeRateDateDatepicker.writeValue(null);\r\n maxTaxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pricingExchangeRateSourceCurrencyCodeFilter\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pricingExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pricingExchangeRateTargetCurrencyCodeFilter\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pricingExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPricingExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinPricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minPricingExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPricingExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxPricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxPricingExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.pricingExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPricingExchangeRateDate\">\r\n {{ 'eDonusum::MinPricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPricingExchangeRateDate\"\r\n class=\"form-control\"\r\n #minPricingExchangeRateDateInput\r\n #minPricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPricingExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPricingExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPricingExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.pricingExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minPricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPricingExchangeRateDateDatepicker.writeValue(null);\r\n minPricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPricingExchangeRateDate\">\r\n {{ 'eDonusum::MaxPricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPricingExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxPricingExchangeRateDateInput\r\n #maxPricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPricingExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPricingExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPricingExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.pricingExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxPricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPricingExchangeRateDateDatepicker.writeValue(null);\r\n maxPricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentExchangeRateSourceCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentExchangeRateTargetCurrencyCodeFilter\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinPaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minPaymentExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxPaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxPaymentExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentExchangeRateDate\">\r\n {{ 'eDonusum::MinPaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPaymentExchangeRateDate\"\r\n class=\"form-control\"\r\n #minPaymentExchangeRateDateInput\r\n #minPaymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPaymentExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPaymentExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPaymentExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minPaymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPaymentExchangeRateDateDatepicker.writeValue(null);\r\n minPaymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentExchangeRateDate\">\r\n {{ 'eDonusum::MaxPaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPaymentExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxPaymentExchangeRateDateInput\r\n #maxPaymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPaymentExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPaymentExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPaymentExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxPaymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPaymentExchangeRateDateDatepicker.writeValue(null);\r\n maxPaymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"paymentAlternativeExchangeRateSourceCurrencyCodeFilter\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentAlternativeExchangeRateSourceCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"paymentAlternativeExchangeRateTargetCurrencyCodeFilter\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentAlternativeExchangeRateTargetCurrencyCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentAlternativeExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MinPaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minPaymentAlternativeExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateCalculationRateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentAlternativeExchangeRateCalculationRate\">\r\n {{ 'eDonusum::MaxPaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxPaymentAlternativeExchangeRateCalculationRate\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateCalculationRateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentAlternativeExchangeRateDate\">\r\n {{ 'eDonusum::MinPaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPaymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n #minPaymentAlternativeExchangeRateDateInput\r\n #minPaymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPaymentAlternativeExchangeRateDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div\r\n *ngIf=\"minPaymentAlternativeExchangeRateDateInput.value\"\r\n class=\"input-group-append\"\r\n >\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPaymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n minPaymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentAlternativeExchangeRateDate\">\r\n {{ 'eDonusum::MaxPaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPaymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n #maxPaymentAlternativeExchangeRateDateInput\r\n #maxPaymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPaymentAlternativeExchangeRateDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPaymentAlternativeExchangeRateDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentAlternativeExchangeRateDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div\r\n *ngIf=\"maxPaymentAlternativeExchangeRateDateInput.value\"\r\n class=\"input-group-append\"\r\n >\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPaymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n maxPaymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalLineExtensionAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalLineExtensionAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalLineExtensionAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalLineExtensionAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalLineExtensionAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalLineExtensionAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalTaxExclusiveAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalTaxExclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxExclusiveAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalTaxExclusiveAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalTaxExclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxExclusiveAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalTaxInclusiveAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalTaxInclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxInclusiveAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalTaxInclusiveAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalTaxInclusiveAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalTaxInclusiveAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalAllowanceTotalAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalAllowanceTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalAllowanceTotalAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalAllowanceTotalAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalAllowanceTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalAllowanceTotalAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalChargeTotalAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalChargeTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalChargeTotalAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalChargeTotalAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalChargeTotalAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalChargeTotalAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalPayableRoundingAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalPayableRoundingAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableRoundingAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalPayableRoundingAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalPayableRoundingAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableRoundingAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minLegalMonetaryTotalPayableAmount\">\r\n {{ 'eDonusum::MinLegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minLegalMonetaryTotalPayableAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableAmountMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxLegalMonetaryTotalPayableAmount\">\r\n {{ 'eDonusum::MaxLegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxLegalMonetaryTotalPayableAmount\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.legalMonetaryTotalPayableAmountMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"paymentTermsNoteFilter\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"paymentTermsNoteFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.paymentTermsNote\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minPaymentTermsPaymentDueDate\">\r\n {{ 'eDonusum::MinPaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minPaymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n #minPaymentTermsPaymentDueDateInput\r\n #minPaymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n name=\"minPaymentTermsPaymentDueDate\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n (keyup.space)=\"minPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentTermsPaymentDueDateMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minPaymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minPaymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n minPaymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxPaymentTermsPaymentDueDate\">\r\n {{ 'eDonusum::MaxPaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxPaymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n #maxPaymentTermsPaymentDueDateInput\r\n #maxPaymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n name=\"maxPaymentTermsPaymentDueDate\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n (keyup.space)=\"maxPaymentTermsPaymentDueDateDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.paymentTermsPaymentDueDateMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxPaymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxPaymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n maxPaymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"custInvIdFilter\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"custInvIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.custInvId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isCanceledFilter\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isCanceled\"\r\n id=\"isCanceledFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isCanceled\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cancelCodeFilter\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cancelCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cancelCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cancelDescriptionFilter\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cancelDescriptionFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cancelDescription\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResourceDocType\">\r\n {{ 'eDonusum::MinResourceDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minResourceDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.resourceDocTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResourceDocType\">\r\n {{ 'eDonusum::MaxResourceDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxResourceDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.resourceDocTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"resourceDocEntryFilter\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"resourceDocEntryFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.resourceDocEntry\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minStatus\">\r\n {{ 'eDonusum::MinStatus' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minStatus\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxStatus\">\r\n {{ 'eDonusum::MaxStatus' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxStatus\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minReceiverResponse\">\r\n {{ 'eDonusum::MinReceiverResponse' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minReceiverResponse\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.receiverResponseMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxReceiverResponse\">\r\n {{ 'eDonusum::MaxReceiverResponse' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxReceiverResponse\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.receiverResponseMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"receiverResponseDescFilter\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"receiverResponseDescFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.receiverResponseDesc\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minDocType\">\r\n {{ 'eDonusum::MinDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"minDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.docTypeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxDocType\">\r\n {{ 'eDonusum::MaxDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"maxDocType\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.docTypeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEArchiveFilter\">\r\n {{ 'eDonusum::IsEArchive' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEArchive\"\r\n id=\"isEArchiveFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEArchive\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.Invoices.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.Invoices.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::UblVersionId' | abpLocalization }}\"\r\n prop=\"ublVersionId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.ublVersionId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CustomizationId' | abpLocalization }}\"\r\n prop=\"customizationId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.customizationId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::ProfileId' | abpLocalization }}\" prop=\"profileId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.profileId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::InvoiceId' | abpLocalization }}\" prop=\"invoiceId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoiceId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CopyIndicator' | abpLocalization }}\"\r\n prop=\"copyIndicator\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.copyIndicator\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::UuId' | abpLocalization }}\" prop=\"uuId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.uuId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::IssueDate' | abpLocalization }}\" prop=\"issueDate\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.issueDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::IssueTime' | abpLocalization }}\" prop=\"issueTime\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.issueTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoiceTypeCode' | abpLocalization }}\"\r\n prop=\"invoiceTypeCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoiceTypeCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }}\"\r\n prop=\"documentCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.documentCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\"\r\n prop=\"taxCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\"\r\n prop=\"pricingCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentAlternativeCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCost' | abpLocalization }}\"\r\n prop=\"accountingCost\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCost }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LineCountNumeric' | abpLocalization }}\"\r\n prop=\"lineCountNumeric\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.lineCountNumeric }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\"\r\n prop=\"invoicePeriodStartDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodStartDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\"\r\n prop=\"invoicePeriodStartTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodStartTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\"\r\n prop=\"invoicePeriodEndDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodEndDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\"\r\n prop=\"invoicePeriodEndTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodEndTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\"\r\n prop=\"invoicePeriodDurationMeasure\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodDurationMeasure | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\"\r\n prop=\"invoicePeriodDescription\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.invoicePeriodDescription }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceId' | abpLocalization }}\"\r\n prop=\"orderReferenceId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\"\r\n prop=\"orderReferenceSalesOrderId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceSalesOrderId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\"\r\n prop=\"orderReferenceIssueDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceIssueDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\"\r\n prop=\"orderReferenceOrderTypeCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.orderReferenceOrderTypeCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\"\r\n prop=\"accountingSupplierPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingSupplierPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\"\r\n prop=\"accountingSupplierPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingSupplierPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\"\r\n prop=\"accountingSupplierPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingSupplierPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\"\r\n prop=\"accountingCustomerPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCustomerPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\"\r\n prop=\"accountingCustomerPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCustomerPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\"\r\n prop=\"accountingCustomerPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.accountingCustomerPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\"\r\n prop=\"buyerCustomerPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.buyerCustomerPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\"\r\n prop=\"buyerCustomerPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.buyerCustomerPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\"\r\n prop=\"buyerCustomerPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.buyerCustomerPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\"\r\n prop=\"sellerSupplierPartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.sellerSupplierPartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\"\r\n prop=\"sellerSupplierPartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.sellerSupplierPartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\"\r\n prop=\"sellerSupplierPartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.sellerSupplierPartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\"\r\n prop=\"taxRepresentativePartyName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxRepresentativePartyName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\"\r\n prop=\"taxRepresentativePartySchemeId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxRepresentativePartySchemeId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\"\r\n prop=\"taxRepresentativePartyVknTckn\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxRepresentativePartyVknTckn }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\"\r\n prop=\"taxExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\"\r\n prop=\"taxExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"taxExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\"\r\n prop=\"taxExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.taxExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\"\r\n prop=\"pricingExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.pricingExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\"\r\n prop=\"paymentExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{\r\n 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization\r\n }}\"\r\n prop=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateSourceCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{\r\n 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization\r\n }}\"\r\n prop=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateTargetCurrencyCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\"\r\n prop=\"paymentAlternativeExchangeRateCalculationRate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateCalculationRate }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\"\r\n prop=\"paymentAlternativeExchangeRateDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentAlternativeExchangeRateDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalLineExtensionAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalLineExtensionAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalTaxExclusiveAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalTaxInclusiveAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalAllowanceTotalAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalChargeTotalAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalChargeTotalAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalPayableRoundingAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalPayableRoundingAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\"\r\n prop=\"legalMonetaryTotalPayableAmount\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.legalMonetaryTotalPayableAmount }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\"\r\n prop=\"paymentTermsNote\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentTermsNote }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\"\r\n prop=\"paymentTermsPaymentDueDate\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.paymentTermsPaymentDueDate | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::CustInvId' | abpLocalization }}\" prop=\"custInvId\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.custInvId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsCanceled' | abpLocalization }}\"\r\n prop=\"isCanceled\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.isCanceled\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CancelCode' | abpLocalization }}\"\r\n prop=\"cancelCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.cancelCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CancelDescription' | abpLocalization }}\"\r\n prop=\"cancelDescription\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.cancelDescription }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ResourceDocType' | abpLocalization }}\"\r\n prop=\"resourceDocType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.resourceDocType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\"\r\n prop=\"resourceDocEntry\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.resourceDocEntry }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::Status' | abpLocalization }}\" prop=\"status\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.status }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverResponse' | abpLocalization }}\"\r\n prop=\"receiverResponse\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.receiverResponse }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\"\r\n prop=\"receiverResponseDesc\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.receiverResponseDesc }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'eDonusum::DocType' | abpLocalization }}\" prop=\"docType\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.docType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEArchive' | abpLocalization }}\"\r\n prop=\"isEArchive\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template [ngIf]=\"row.isEArchive\" [ngIfThen]=\"yes\" [ngIfElse]=\"no\"></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewInvoice') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"invoice\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-ubl-version-id\">\r\n {{ 'eDonusum::UblVersionId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-ubl-version-id\"\r\n formControlName=\"ublVersionId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-customization-id\">\r\n {{ 'eDonusum::CustomizationId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-customization-id\"\r\n formControlName=\"customizationId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-profile-id\">\r\n {{ 'eDonusum::ProfileId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-profile-id\"\r\n formControlName=\"profileId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-id\">\r\n {{ 'eDonusum::InvoiceId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-invoice-id\"\r\n formControlName=\"invoiceId\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-copy-indicator\"\r\n formControlName=\"copyIndicator\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"invoice-copy-indicator\" class=\"form-check-label\">\r\n {{ 'eDonusum::CopyIndicator' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-uu-id\">\r\n {{ 'eDonusum::UuId' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"invoice-uu-id\" formControlName=\"uuId\" class=\"form-control\" maxlength=\"64\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-date\">\r\n {{ 'eDonusum::IssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-date\"\r\n formControlName=\"issueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueDateInput\r\n #issueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueDateDatepicker.open()\"\r\n (keyup.space)=\"issueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueDateDatepicker.writeValue(null);\r\n issueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-issue-time\">\r\n {{ 'eDonusum::IssueTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-issue-time\"\r\n formControlName=\"issueTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #issueTimeInput\r\n #issueTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"issueTimeDatepicker.open()\"\r\n (keyup.space)=\"issueTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"issueTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n issueTimeDatepicker.writeValue(null);\r\n issueTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-type-code\">\r\n {{ 'eDonusum::InvoiceTypeCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-invoice-type-code\"\r\n formControlName=\"invoiceTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-document-currency-code\">\r\n {{ 'eDonusum::DocumentCurrencyCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"invoice-document-currency-code\"\r\n formControlName=\"documentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-currency-code\">\r\n {{ 'eDonusum::TaxCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-currency-code\"\r\n formControlName=\"taxCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-currency-code\">\r\n {{ 'eDonusum::PricingCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-pricing-currency-code\"\r\n formControlName=\"pricingCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-currency-code\">\r\n {{ 'eDonusum::PaymentCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-currency-code\"\r\n formControlName=\"paymentCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-currency-code\">\r\n {{ 'eDonusum::PaymentAlternativeCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-alternative-currency-code\"\r\n formControlName=\"paymentAlternativeCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-cost\">\r\n {{ 'eDonusum::AccountingCost' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-cost\"\r\n formControlName=\"accountingCost\"\r\n class=\"form-control\"\r\n maxlength=\"32\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-line-count-numeric\">\r\n {{ 'eDonusum::LineCountNumeric' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-line-count-numeric\"\r\n formControlName=\"lineCountNumeric\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-date\">\r\n {{ 'eDonusum::InvoicePeriodStartDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-date\"\r\n formControlName=\"invoicePeriodStartDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartDateInput\r\n #invoicePeriodStartDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartDateDatepicker.writeValue(null);\r\n invoicePeriodStartDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-start-time\">\r\n {{ 'eDonusum::InvoicePeriodStartTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-start-time\"\r\n formControlName=\"invoicePeriodStartTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodStartTimeInput\r\n #invoicePeriodStartTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodStartTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodStartTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodStartTimeDatepicker.writeValue(null);\r\n invoicePeriodStartTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-date\">\r\n {{ 'eDonusum::InvoicePeriodEndDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-date\"\r\n formControlName=\"invoicePeriodEndDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndDateInput\r\n #invoicePeriodEndDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndDateDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndDateDatepicker.writeValue(null);\r\n invoicePeriodEndDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-end-time\">\r\n {{ 'eDonusum::InvoicePeriodEndTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-end-time\"\r\n formControlName=\"invoicePeriodEndTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodEndTimeInput\r\n #invoicePeriodEndTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodEndTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodEndTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodEndTimeDatepicker.writeValue(null);\r\n invoicePeriodEndTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-duration-measure\">\r\n {{ 'eDonusum::InvoicePeriodDurationMeasure' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-invoice-period-duration-measure\"\r\n formControlName=\"invoicePeriodDurationMeasure\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #invoicePeriodDurationMeasureInput\r\n #invoicePeriodDurationMeasureDatepicker=\"ngbDatepicker\"\r\n (click)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n (keyup.space)=\"invoicePeriodDurationMeasureDatepicker.open()\"\r\n />\r\n <div *ngIf=\"invoicePeriodDurationMeasureInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n invoicePeriodDurationMeasureDatepicker.writeValue(null);\r\n invoicePeriodDurationMeasureDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-invoice-period-description\">\r\n {{ 'eDonusum::InvoicePeriodDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-invoice-period-description\"\r\n formControlName=\"invoicePeriodDescription\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-id\">\r\n {{ 'eDonusum::OrderReferenceId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-order-reference-id\"\r\n formControlName=\"orderReferenceId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-sales-order-id\">\r\n {{ 'eDonusum::OrderReferenceSalesOrderId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-order-reference-sales-order-id\"\r\n formControlName=\"orderReferenceSalesOrderId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-issue-date\">\r\n {{ 'eDonusum::OrderReferenceIssueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-order-reference-issue-date\"\r\n formControlName=\"orderReferenceIssueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #orderReferenceIssueDateInput\r\n #orderReferenceIssueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"orderReferenceIssueDateDatepicker.open()\"\r\n (keyup.space)=\"orderReferenceIssueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"orderReferenceIssueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n orderReferenceIssueDateDatepicker.writeValue(null);\r\n orderReferenceIssueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-order-reference-order-type-code\">\r\n {{ 'eDonusum::OrderReferenceOrderTypeCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-order-reference-order-type-code\"\r\n formControlName=\"orderReferenceOrderTypeCode\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-name\">\r\n {{ 'eDonusum::AccountingSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-supplier-party-name\"\r\n formControlName=\"accountingSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-scheme-id\">\r\n {{ 'eDonusum::AccountingSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-supplier-party-scheme-id\"\r\n formControlName=\"accountingSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-supplier-party-vkn-tckn\"\r\n formControlName=\"accountingSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-name\">\r\n {{ 'eDonusum::AccountingCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-customer-party-name\"\r\n formControlName=\"accountingCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-scheme-id\">\r\n {{ 'eDonusum::AccountingCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-customer-party-scheme-id\"\r\n formControlName=\"accountingCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-accounting-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::AccountingCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-accounting-customer-party-vkn-tckn\"\r\n formControlName=\"accountingCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-name\">\r\n {{ 'eDonusum::BuyerCustomerPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-buyer-customer-party-name\"\r\n formControlName=\"buyerCustomerPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-scheme-id\">\r\n {{ 'eDonusum::BuyerCustomerPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-buyer-customer-party-scheme-id\"\r\n formControlName=\"buyerCustomerPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-buyer-customer-party-vkn-tckn\">\r\n {{ 'eDonusum::BuyerCustomerPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-buyer-customer-party-vkn-tckn\"\r\n formControlName=\"buyerCustomerPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-name\">\r\n {{ 'eDonusum::SellerSupplierPartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-seller-supplier-party-name\"\r\n formControlName=\"sellerSupplierPartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-scheme-id\">\r\n {{ 'eDonusum::SellerSupplierPartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-seller-supplier-party-scheme-id\"\r\n formControlName=\"sellerSupplierPartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-seller-supplier-party-vkn-tckn\">\r\n {{ 'eDonusum::SellerSupplierPartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-seller-supplier-party-vkn-tckn\"\r\n formControlName=\"sellerSupplierPartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-name\">\r\n {{ 'eDonusum::TaxRepresentativePartyName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-representative-party-name\"\r\n formControlName=\"taxRepresentativePartyName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-scheme-id\">\r\n {{ 'eDonusum::TaxRepresentativePartySchemeId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-representative-party-scheme-id\"\r\n formControlName=\"taxRepresentativePartySchemeId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-representative-party-vkn-tckn\">\r\n {{ 'eDonusum::TaxRepresentativePartyVknTckn' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-representative-party-vkn-tckn\"\r\n formControlName=\"taxRepresentativePartyVknTckn\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-exchange-rate-source-currency-code\"\r\n formControlName=\"taxExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::TaxExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-tax-exchange-rate-target-currency-code\"\r\n formControlName=\"taxExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::TaxExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-tax-exchange-rate-calculation-rate\"\r\n formControlName=\"taxExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-tax-exchange-rate-date\">\r\n {{ 'eDonusum::TaxExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-tax-exchange-rate-date\"\r\n formControlName=\"taxExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #taxExchangeRateDateInput\r\n #taxExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"taxExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"taxExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"taxExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n taxExchangeRateDateDatepicker.writeValue(null);\r\n taxExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-pricing-exchange-rate-source-currency-code\"\r\n formControlName=\"pricingExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PricingExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-pricing-exchange-rate-target-currency-code\"\r\n formControlName=\"pricingExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PricingExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-pricing-exchange-rate-calculation-rate\"\r\n formControlName=\"pricingExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-pricing-exchange-rate-date\">\r\n {{ 'eDonusum::PricingExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-pricing-exchange-rate-date\"\r\n formControlName=\"pricingExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #pricingExchangeRateDateInput\r\n #pricingExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"pricingExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"pricingExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"pricingExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n pricingExchangeRateDateDatepicker.writeValue(null);\r\n pricingExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-source-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-target-currency-code\">\r\n {{ 'eDonusum::PaymentExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-calculation-rate\">\r\n {{ 'eDonusum::PaymentExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-exchange-rate-date\"\r\n formControlName=\"paymentExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentExchangeRateDateInput\r\n #paymentExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentExchangeRateDateDatepicker.writeValue(null);\r\n paymentExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateSourceCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-source-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateSourceCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateTargetCurrencyCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-alternative-exchange-rate-target-currency-code\"\r\n formControlName=\"paymentAlternativeExchangeRateTargetCurrencyCode\"\r\n class=\"form-control\"\r\n maxlength=\"3\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label\r\n class=\"form-label\"\r\n for=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n >\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateCalculationRate' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-payment-alternative-exchange-rate-calculation-rate\"\r\n formControlName=\"paymentAlternativeExchangeRateCalculationRate\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-alternative-exchange-rate-date\">\r\n {{ 'eDonusum::PaymentAlternativeExchangeRateDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-alternative-exchange-rate-date\"\r\n formControlName=\"paymentAlternativeExchangeRateDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentAlternativeExchangeRateDateInput\r\n #paymentAlternativeExchangeRateDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n (keyup.space)=\"paymentAlternativeExchangeRateDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentAlternativeExchangeRateDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentAlternativeExchangeRateDateDatepicker.writeValue(null);\r\n paymentAlternativeExchangeRateDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-line-extension-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalLineExtensionAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-line-extension-amount\"\r\n formControlName=\"legalMonetaryTotalLineExtensionAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-exclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxExclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-exclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxExclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-tax-inclusive-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalTaxInclusiveAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-tax-inclusive-amount\"\r\n formControlName=\"legalMonetaryTotalTaxInclusiveAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-allowance-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalAllowanceTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-allowance-total-amount\"\r\n formControlName=\"legalMonetaryTotalAllowanceTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-charge-total-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalChargeTotalAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-charge-total-amount\"\r\n formControlName=\"legalMonetaryTotalChargeTotalAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-rounding-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableRoundingAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-rounding-amount\"\r\n formControlName=\"legalMonetaryTotalPayableRoundingAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-legal-monetary-total-payable-amount\">\r\n {{ 'eDonusum::LegalMonetaryTotalPayableAmount' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-legal-monetary-total-payable-amount\"\r\n formControlName=\"legalMonetaryTotalPayableAmount\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-note\">\r\n {{ 'eDonusum::PaymentTermsNote' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-payment-terms-note\"\r\n formControlName=\"paymentTermsNote\"\r\n class=\"form-control\"\r\n maxlength=\"512\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-payment-terms-payment-due-date\">\r\n {{ 'eDonusum::PaymentTermsPaymentDueDate' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"invoice-payment-terms-payment-due-date\"\r\n formControlName=\"paymentTermsPaymentDueDate\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #paymentTermsPaymentDueDateInput\r\n #paymentTermsPaymentDueDateDatepicker=\"ngbDatepicker\"\r\n (click)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n (keyup.space)=\"paymentTermsPaymentDueDateDatepicker.open()\"\r\n />\r\n <div *ngIf=\"paymentTermsPaymentDueDateInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n paymentTermsPaymentDueDateDatepicker.writeValue(null);\r\n paymentTermsPaymentDueDateDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cust-inv-id\">\r\n {{ 'eDonusum::CustInvId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-cust-inv-id\"\r\n formControlName=\"custInvId\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-canceled\"\r\n formControlName=\"isCanceled\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"invoice-is-canceled\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsCanceled' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-code\">\r\n {{ 'eDonusum::CancelCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-cancel-code\"\r\n formControlName=\"cancelCode\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-cancel-description\">\r\n {{ 'eDonusum::CancelDescription' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-cancel-description\"\r\n formControlName=\"cancelDescription\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-type\">\r\n {{ 'eDonusum::ResourceDocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-resource-doc-type\"\r\n formControlName=\"resourceDocType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-resource-doc-entry\">\r\n {{ 'eDonusum::ResourceDocEntry' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-resource-doc-entry\"\r\n formControlName=\"resourceDocEntry\"\r\n class=\"form-control\"\r\n maxlength=\"64\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-status\">\r\n {{ 'eDonusum::Status' | abpLocalization }}\r\n </label>\r\n\r\n <input type=\"number\" id=\"invoice-status\" formControlName=\"status\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response\">\r\n {{ 'eDonusum::ReceiverResponse' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-receiver-response\"\r\n formControlName=\"receiverResponse\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-receiver-response-desc\">\r\n {{ 'eDonusum::ReceiverResponseDesc' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"invoice-receiver-response-desc\"\r\n formControlName=\"receiverResponseDesc\"\r\n class=\"form-control\"\r\n maxlength=\"1024\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-doc-type\">\r\n {{ 'eDonusum::DocType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n type=\"number\"\r\n id=\"invoice-doc-type\"\r\n formControlName=\"docType\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"invoice-is-earchive\"\r\n formControlName=\"isEArchive\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"invoice-is-earchive\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEArchive' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"invoice\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
270
+ }], ctorParameters: function () { return [{ type: i1.ListService }, { type: i1.TrackByService }, { type: i2.InvoiceService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }]; } });
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9pbnZvaWNlcy9pbnZvaWNlL2NvbXBvbmVudHMvaW52b2ljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9pbnZvaWNlcy9pbnZvaWNlL2NvbXBvbmVudHMvaW52b2ljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sWUFBWSxFQUFFLFdBQVcsRUFBa0MsTUFBTSxjQUFjLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQVVsRSxNQUFNLE9BQU8sZ0JBQWdCO0lBb0IzQixZQUNrQixJQUFpQixFQUNqQixLQUFxQixFQUNyQixPQUF1QixFQUMvQixZQUFpQyxFQUNqQyxFQUFlO1FBSlAsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXhCekIsU0FBSSxHQUErQjtZQUNqQyxLQUFLLEVBQUUsRUFBRTtZQUNULFVBQVUsRUFBRSxDQUFDO1NBQ2QsQ0FBQztRQUVGLFlBQU8sR0FBRyxFQUFzQixDQUFDO1FBSWpDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztJQVV6QixDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ25CLEdBQUcsS0FBSztZQUNSLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU07U0FDekIsQ0FBQyxDQUFDO1FBRUwsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFnQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFzQixDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxFQUNKLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxhQUFhLEVBQ2IsSUFBSSxFQUNKLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQiw4QkFBOEIsRUFDOUIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyw4QkFBOEIsRUFDOUIsbUJBQW1CLEVBQ25CLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsa0NBQWtDLEVBQ2xDLHVCQUF1QixFQUN2QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLGtDQUFrQyxFQUNsQyx1QkFBdUIsRUFDdkIsZ0RBQWdELEVBQ2hELGdEQUFnRCxFQUNoRCw2Q0FBNkMsRUFDN0Msa0NBQWtDLEVBQ2xDLHFDQUFxQyxFQUNyQyxvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3BDLHNDQUFzQyxFQUN0QyxtQ0FBbUMsRUFDbkMsdUNBQXVDLEVBQ3ZDLCtCQUErQixFQUMvQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxVQUFVLEdBQ1gsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLFlBQVksRUFBRSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRixlQUFlLEVBQUUsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUYsU0FBUyxFQUFFLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9FLFNBQVMsRUFBRSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRSxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRSxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdkQsZUFBZSxFQUFFLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNGLG9CQUFvQixFQUFFO2dCQUNwQixvQkFBb0IsSUFBSSxJQUFJO2dCQUM1QixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQztZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckUsbUJBQW1CLEVBQUUsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsbUJBQW1CLEVBQUUsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsOEJBQThCLEVBQUU7Z0JBQzlCLDhCQUE4QixJQUFJLElBQUk7Z0JBQ3RDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELGNBQWMsRUFBRSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsZ0JBQWdCLEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hELHNCQUFzQixFQUFFO2dCQUN0QixzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDaEUsRUFBRTthQUNIO1lBQ0Qsc0JBQXNCLEVBQUU7Z0JBQ3RCLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNoRSxFQUFFO2FBQ0g7WUFDRCxvQkFBb0IsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hGLG9CQUFvQixFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEYsNEJBQTRCLEVBQUU7Z0JBQzVCLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM1RSxFQUFFO2FBQ0g7WUFDRCx3QkFBd0IsRUFBRSxDQUFDLHdCQUF3QixJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDaEUsZ0JBQWdCLEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEUsMEJBQTBCLEVBQUUsQ0FBQywwQkFBMEIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUYsdUJBQXVCLEVBQUU7Z0JBQ3ZCLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNsRSxFQUFFO2FBQ0g7WUFDRCwyQkFBMkIsRUFBRTtnQkFDM0IsMkJBQTJCLElBQUksSUFBSTtnQkFDbkMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsMkJBQTJCLEVBQUU7Z0JBQzNCLDJCQUEyQixJQUFJLElBQUk7Z0JBQ25DLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QjtZQUNELCtCQUErQixFQUFFO2dCQUMvQiwrQkFBK0IsSUFBSSxJQUFJO2dCQUN2QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFDRCw4QkFBOEIsRUFBRTtnQkFDOUIsOEJBQThCLElBQUksSUFBSTtnQkFDdEMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsMkJBQTJCLEVBQUU7Z0JBQzNCLDJCQUEyQixJQUFJLElBQUk7Z0JBQ25DLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QjtZQUNELCtCQUErQixFQUFFO2dCQUMvQiwrQkFBK0IsSUFBSSxJQUFJO2dCQUN2QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFDRCw4QkFBOEIsRUFBRTtnQkFDOUIsOEJBQThCLElBQUksSUFBSTtnQkFDdEMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzNCO1lBQ0Qsc0JBQXNCLEVBQUUsQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDckYsMEJBQTBCLEVBQUUsQ0FBQywwQkFBMEIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0YseUJBQXlCLEVBQUUsQ0FBQyx5QkFBeUIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUYsdUJBQXVCLEVBQUUsQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdkYsMkJBQTJCLEVBQUUsQ0FBQywyQkFBMkIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0YsMEJBQTBCLEVBQUUsQ0FBQywwQkFBMEIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUYsMEJBQTBCLEVBQUUsQ0FBQywwQkFBMEIsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0YsOEJBQThCLEVBQUU7Z0JBQzlCLDhCQUE4QixJQUFJLElBQUk7Z0JBQ3RDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELDZCQUE2QixFQUFFO2dCQUM3Qiw2QkFBNkIsSUFBSSxJQUFJO2dCQUNyQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDM0I7WUFDRCxpQ0FBaUMsRUFBRTtnQkFDakMsaUNBQWlDLElBQUksSUFBSTtnQkFDekMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsaUNBQWlDLEVBQUU7Z0JBQ2pDLGlDQUFpQyxJQUFJLElBQUk7Z0JBQ3pDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELDhCQUE4QixFQUFFLENBQUMsOEJBQThCLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM1RSxtQkFBbUIsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3JGLHFDQUFxQyxFQUFFO2dCQUNyQyxxQ0FBcUMsSUFBSSxJQUFJO2dCQUM3QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFDRCxxQ0FBcUMsRUFBRTtnQkFDckMscUNBQXFDLElBQUksSUFBSTtnQkFDN0MsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFCO1lBQ0Qsa0NBQWtDLEVBQUUsQ0FBQyxrQ0FBa0MsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BGLHVCQUF1QixFQUFFO2dCQUN2Qix1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDbEUsRUFBRTthQUNIO1lBQ0QscUNBQXFDLEVBQUU7Z0JBQ3JDLHFDQUFxQyxJQUFJLElBQUk7Z0JBQzdDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELHFDQUFxQyxFQUFFO2dCQUNyQyxxQ0FBcUMsSUFBSSxJQUFJO2dCQUM3QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFDRCxrQ0FBa0MsRUFBRSxDQUFDLGtDQUFrQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDcEYsdUJBQXVCLEVBQUU7Z0JBQ3ZCLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNsRSxFQUFFO2FBQ0g7WUFDRCxnREFBZ0QsRUFBRTtnQkFDaEQsZ0RBQWdELElBQUksSUFBSTtnQkFDeEQsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsZ0RBQWdELEVBQUU7Z0JBQ2hELGdEQUFnRCxJQUFJLElBQUk7Z0JBQ3hELENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELDZDQUE2QyxFQUFFO2dCQUM3Qyw2Q0FBNkMsSUFBSSxJQUFJO2dCQUNyRCxFQUFFO2FBQ0g7WUFDRCxrQ0FBa0MsRUFBRTtnQkFDbEMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ3hGLEVBQUU7YUFDSDtZQUNELHFDQUFxQyxFQUFFLENBQUMscUNBQXFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMxRixvQ0FBb0MsRUFBRSxDQUFDLG9DQUFvQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEYsb0NBQW9DLEVBQUUsQ0FBQyxvQ0FBb0MsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hGLHNDQUFzQyxFQUFFLENBQUMsc0NBQXNDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM1RixtQ0FBbUMsRUFBRSxDQUFDLG1DQUFtQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEYsdUNBQXVDLEVBQUU7Z0JBQ3ZDLHVDQUF1QyxJQUFJLElBQUk7Z0JBQy9DLEVBQUU7YUFDSDtZQUNELCtCQUErQixFQUFFLENBQUMsK0JBQStCLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM5RSxnQkFBZ0IsRUFBRSxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6RSwwQkFBMEIsRUFBRTtnQkFDMUIsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ3hFLEVBQUU7YUFDSDtZQUNELFNBQVMsRUFBRSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUQsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2QixVQUFVLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVELGlCQUFpQixFQUFFLENBQUMsaUJBQWlCLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzNFLGVBQWUsRUFBRSxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzlDLGdCQUFnQixFQUFFLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzVCLGdCQUFnQixFQUFFLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxvQkFBb0IsRUFBRSxDQUFDLG9CQUFvQixJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsRixPQUFPLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM5QixVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUU5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUTtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUNsQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQjthQUNqRCxDQUFDO1lBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsT0FBTzthQUNKLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQzFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWtCO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWtCO1FBQ3ZCLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLHNCQUFzQixFQUFFO1lBQ25FLHlCQUF5QixFQUFFLEVBQUU7U0FDOUIsQ0FBQzthQUNELElBQUksQ0FDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDeEQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNoRDthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTzthQUNULGdCQUFnQixFQUFFO2FBQ2xCLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FDeEYsRUFDRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FDbkQ7YUFDQSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzZHQXZXVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixzQ0FKaEIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQywwQkNaOUUsNmsrS0FzbElBOzJGRHRrSWEsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLGFBQWEsbUJBQ04sdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBkb3dubG9hZEJsb2IsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0bywgVHJhY2tCeVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlQWRhcHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgZmlsdGVyLCBmaW5hbGl6ZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB0eXBlIHsgR2V0SW52b2ljZXNJbnB1dCwgSW52b2ljZUR0byB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2ludm9pY2VzL21vZGVscyc7XHJcbmltcG9ydCB7IEludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvaW52b2ljZXMvaW52b2ljZS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaW52b2ljZScsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ludm9pY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnZvaWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxJbnZvaWNlRHRvPiA9IHtcclxuICAgIGl0ZW1zOiBbXSxcclxuICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgfTtcclxuXHJcbiAgZmlsdGVycyA9IHt9IGFzIEdldEludm9pY2VzSW5wdXQ7XHJcblxyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgaXNGaWx0ZXJzSGlkZGVuID0gdHJ1ZTtcclxuXHJcbiAgaXNNb2RhbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgaXNNb2RhbE9wZW4gPSBmYWxzZTtcclxuXHJcbiAgaXNFeHBvcnRUb0V4Y2VsQnVzeSA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZD86IEludm9pY2VEdG87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWNrOiBUcmFja0J5U2VydmljZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBJbnZvaWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT5cclxuICAgICAgdGhpcy5zZXJ2aWNlLmdldExpc3Qoe1xyXG4gICAgICAgIC4uLnF1ZXJ5LFxyXG4gICAgICAgIC4uLnRoaXMuZmlsdGVycyxcclxuICAgICAgICBmaWx0ZXJUZXh0OiBxdWVyeS5maWx0ZXIsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88SW52b2ljZUR0bz4pID0+ICh0aGlzLmRhdGEgPSBsaXN0KTtcclxuXHJcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzID0ge30gYXMgR2V0SW52b2ljZXNJbnB1dDtcclxuICB9XHJcblxyXG4gIGJ1aWxkRm9ybSgpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgdWJsVmVyc2lvbklkLFxyXG4gICAgICBjdXN0b21pemF0aW9uSWQsXHJcbiAgICAgIHByb2ZpbGVJZCxcclxuICAgICAgaW52b2ljZUlkLFxyXG4gICAgICBjb3B5SW5kaWNhdG9yLFxyXG4gICAgICB1dUlkLFxyXG4gICAgICBpc3N1ZURhdGUsXHJcbiAgICAgIGlzc3VlVGltZSxcclxuICAgICAgaW52b2ljZVR5cGVDb2RlLFxyXG4gICAgICBkb2N1bWVudEN1cnJlbmN5Q29kZSxcclxuICAgICAgdGF4Q3VycmVuY3lDb2RlLFxyXG4gICAgICBwcmljaW5nQ3VycmVuY3lDb2RlLFxyXG4gICAgICBwYXltZW50Q3VycmVuY3lDb2RlLFxyXG4gICAgICBwYXltZW50QWx0ZXJuYXRpdmVDdXJyZW5jeUNvZGUsXHJcbiAgICAgIGFjY291bnRpbmdDb3N0LFxyXG4gICAgICBsaW5lQ291bnROdW1lcmljLFxyXG4gICAgICBpbnZvaWNlUGVyaW9kU3RhcnREYXRlLFxyXG4gICAgICBpbnZvaWNlUGVyaW9kU3RhcnRUaW1lLFxyXG4gICAgICBpbnZvaWNlUGVyaW9kRW5kRGF0ZSxcclxuICAgICAgaW52b2ljZVBlcmlvZEVuZFRpbWUsXHJcbiAgICAgIGludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmUsXHJcbiAgICAgIGludm9pY2VQZXJpb2REZXNjcmlwdGlvbixcclxuICAgICAgb3JkZXJSZWZlcmVuY2VJZCxcclxuICAgICAgb3JkZXJSZWZlcmVuY2VTYWxlc09yZGVySWQsXHJcbiAgICAgIG9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlLFxyXG4gICAgICBvcmRlclJlZmVyZW5jZU9yZGVyVHlwZUNvZGUsXHJcbiAgICAgIGFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZSxcclxuICAgICAgYWNjb3VudGluZ1N1cHBsaWVyUGFydHlTY2hlbWVJZCxcclxuICAgICAgYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuLFxyXG4gICAgICBhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eU5hbWUsXHJcbiAgICAgIGFjY291bnRpbmdDdXN0b21lclBhcnR5U2NoZW1lSWQsXHJcbiAgICAgIGFjY291bnRpbmdDdXN0b21lclBhcnR5VmtuVGNrbixcclxuICAgICAgYnV5ZXJDdXN0b21lclBhcnR5TmFtZSxcclxuICAgICAgYnV5ZXJDdXN0b21lclBhcnR5U2NoZW1lSWQsXHJcbiAgICAgIGJ1eWVyQ3VzdG9tZXJQYXJ0eVZrblRja24sXHJcbiAgICAgIHNlbGxlclN1cHBsaWVyUGFydHlOYW1lLFxyXG4gICAgICBzZWxsZXJTdXBwbGllclBhcnR5U2NoZW1lSWQsXHJcbiAgICAgIHNlbGxlclN1cHBsaWVyUGFydHlWa25UY2tuLFxyXG4gICAgICB0YXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZSxcclxuICAgICAgdGF4UmVwcmVzZW50YXRpdmVQYXJ0eVNjaGVtZUlkLFxyXG4gICAgICB0YXhSZXByZXNlbnRhdGl2ZVBhcnR5VmtuVGNrbixcclxuICAgICAgdGF4RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlLFxyXG4gICAgICB0YXhFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUsXHJcbiAgICAgIHRheEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZSxcclxuICAgICAgdGF4RXhjaGFuZ2VSYXRlRGF0ZSxcclxuICAgICAgcHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZSxcclxuICAgICAgcHJpY2luZ0V4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZSxcclxuICAgICAgcHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZSxcclxuICAgICAgcHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGUsXHJcbiAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUsXHJcbiAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUsXHJcbiAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUsXHJcbiAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVEYXRlLFxyXG4gICAgICBwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUsXHJcbiAgICAgIHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZSxcclxuICAgICAgcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlLFxyXG4gICAgICBwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlLFxyXG4gICAgICBsZWdhbE1vbmV0YXJ5VG90YWxMaW5lRXh0ZW5zaW9uQW1vdW50LFxyXG4gICAgICBsZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnQsXHJcbiAgICAgIGxlZ2FsTW9uZXRhcnlUb3RhbFRheEluY2x1c2l2ZUFtb3VudCxcclxuICAgICAgbGVnYWxNb25ldGFyeVRvdGFsQWxsb3dhbmNlVG90YWxBbW91bnQsXHJcbiAgICAgIGxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50LFxyXG4gICAgICBsZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnQsXHJcbiAgICAgIGxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnQsXHJcbiAgICAgIHBheW1lbnRUZXJtc05vdGUsXHJcbiAgICAgIHBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlLFxyXG4gICAgICBjdXN0SW52SWQsXHJcbiAgICAgIGlzQ2FuY2VsZWQsXHJcbiAgICAgIGNhbmNlbENvZGUsXHJcbiAgICAgIGNhbmNlbERlc2NyaXB0aW9uLFxyXG4gICAgICByZXNvdXJjZURvY1R5cGUsXHJcbiAgICAgIHJlc291cmNlRG9jRW50cnksXHJcbiAgICAgIHN0YXR1cyxcclxuICAgICAgcmVjZWl2ZXJSZXNwb25zZSxcclxuICAgICAgcmVjZWl2ZXJSZXNwb25zZURlc2MsXHJcbiAgICAgIGRvY1R5cGUsXHJcbiAgICAgIGlzRUFyY2hpdmUsXHJcbiAgICB9ID0gdGhpcy5zZWxlY3RlZCB8fCB7fTtcclxuXHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdWJsVmVyc2lvbklkOiBbdWJsVmVyc2lvbklkID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg4KV1dLFxyXG4gICAgICBjdXN0b21pemF0aW9uSWQ6IFtjdXN0b21pemF0aW9uSWQgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDgpXV0sXHJcbiAgICAgIHByb2ZpbGVJZDogW3Byb2ZpbGVJZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIpXV0sXHJcbiAgICAgIGludm9pY2VJZDogW2ludm9pY2VJZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIpXV0sXHJcbiAgICAgIGNvcHlJbmRpY2F0b3I6IFtmYWxzZSwgW11dLFxyXG4gICAgICB1dUlkOiBbdXVJZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXHJcbiAgICAgIGlzc3VlRGF0ZTogW2lzc3VlRGF0ZSA/IG5ldyBEYXRlKGlzc3VlRGF0ZSkgOiBudWxsLCBbXV0sXHJcbiAgICAgIGlzc3VlVGltZTogW2lzc3VlVGltZSA/IG5ldyBEYXRlKGlzc3VlVGltZSkgOiBudWxsLCBbXV0sXHJcbiAgICAgIGludm9pY2VUeXBlQ29kZTogW2ludm9pY2VUeXBlQ29kZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIpXV0sXHJcbiAgICAgIGRvY3VtZW50Q3VycmVuY3lDb2RlOiBbXHJcbiAgICAgICAgZG9jdW1lbnRDdXJyZW5jeUNvZGUgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMyldLFxyXG4gICAgICBdLFxyXG4gICAgICB0YXhDdXJyZW5jeUNvZGU6IFt0YXhDdXJyZW5jeUNvZGUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDMpXV0sXHJcbiAgICAgIHByaWNpbmdDdXJyZW5jeUNvZGU6IFtwcmljaW5nQ3VycmVuY3lDb2RlID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgzKV1dLFxyXG4gICAgICBwYXltZW50Q3VycmVuY3lDb2RlOiBbcGF5bWVudEN1cnJlbmN5Q29kZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMyldXSxcclxuICAgICAgcGF5bWVudEFsdGVybmF0aXZlQ3VycmVuY3lDb2RlOiBbXHJcbiAgICAgICAgcGF5bWVudEFsdGVybmF0aXZlQ3VycmVuY3lDb2RlID8/IG51bGwsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDMpXSxcclxuICAgICAgXSxcclxuICAgICAgYWNjb3VudGluZ0Nvc3Q6IFthY2NvdW50aW5nQ29zdCA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIpXV0sXHJcbiAgICAgIGxpbmVDb3VudE51bWVyaWM6IFtsaW5lQ291bnROdW1lcmljID8/IG51bGwsIFtdXSxcclxuICAgICAgaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZTogW1xyXG4gICAgICAgIGludm9pY2VQZXJpb2RTdGFydERhdGUgPyBuZXcgRGF0ZShpbnZvaWNlUGVyaW9kU3RhcnREYXRlKSA6IG51bGwsXHJcbiAgICAgICAgW10sXHJcbiAgICAgIF0sXHJcbiAgICAgIGludm9pY2VQZXJpb2RTdGFydFRpbWU6IFtcclxuICAgICAgICBpbnZvaWNlUGVyaW9kU3RhcnRUaW1lID8gbmV3IERhdGUoaW52b2ljZVBlcmlvZFN0YXJ0VGltZSkgOiBudWxsLFxyXG4gICAgICAgIFtdLFxyXG4gICAgICBdLFxyXG4gICAgICBpbnZvaWNlUGVyaW9kRW5kRGF0ZTogW2ludm9pY2VQZXJpb2RFbmREYXRlID8gbmV3IERhdGUoaW52b2ljZVBlcmlvZEVuZERhdGUpIDogbnVsbCwgW11dLFxyXG4gICAgICBpbnZvaWNlUGVyaW9kRW5kVGltZTogW2ludm9pY2VQZXJpb2RFbmRUaW1lID8gbmV3IERhdGUoaW52b2ljZVBlcmlvZEVuZFRpbWUpIDogbnVsbCwgW11dLFxyXG4gICAgICBpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlOiBbXHJcbiAgICAgICAgaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZSA/IG5ldyBEYXRlKGludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmUpIDogbnVsbCxcclxuICAgICAgICBbXSxcclxuICAgICAgXSxcclxuICAgICAgaW52b2ljZVBlcmlvZERlc2NyaXB0aW9uOiBbaW52b2ljZVBlcmlvZERlc2NyaXB0aW9uID8/IG51bGwsIFtdXSxcclxuICAgICAgb3JkZXJSZWZlcmVuY2VJZDogW29yZGVyUmVmZXJlbmNlSWQgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxyXG4gICAgICBvcmRlclJlZmVyZW5jZVNhbGVzT3JkZXJJZDogW29yZGVyUmVmZXJlbmNlU2FsZXNPcmRlcklkID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldXSxcclxuICAgICAgb3JkZXJSZWZlcmVuY2VJc3N1ZURhdGU6IFtcclxuICAgICAgICBvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZSA/IG5ldyBEYXRlKG9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlKSA6IG51bGwsXHJcbiAgICAgICAgW10sXHJcbiAgICAgIF0sXHJcbiAgICAgIG9yZGVyUmVmZXJlbmNlT3JkZXJUeXBlQ29kZTogW1xyXG4gICAgICAgIG9yZGVyUmVmZXJlbmNlT3JkZXJUeXBlQ29kZSA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldLFxyXG4gICAgICBdLFxyXG4gICAgICBhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eU5hbWU6IFtcclxuICAgICAgICBhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eU5hbWUgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWQ6IFtcclxuICAgICAgICBhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVNjaGVtZUlkID8/IG51bGwsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDgpXSxcclxuICAgICAgXSxcclxuICAgICAgYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuOiBbXHJcbiAgICAgICAgYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuID8/IG51bGwsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDE2KV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGFjY291bnRpbmdDdXN0b21lclBhcnR5TmFtZTogW1xyXG4gICAgICAgIGFjY291bnRpbmdDdXN0b21lclBhcnR5TmFtZSA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXSxcclxuICAgICAgXSxcclxuICAgICAgYWNjb3VudGluZ0N1c3RvbWVyUGFydHlTY2hlbWVJZDogW1xyXG4gICAgICAgIGFjY291bnRpbmdDdXN0b21lclBhcnR5U2NoZW1lSWQgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoOCldLFxyXG4gICAgICBdLFxyXG4gICAgICBhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVZrblRja246IFtcclxuICAgICAgICBhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVZrblRja24gPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTYpXSxcclxuICAgICAgXSxcclxuICAgICAgYnV5ZXJDdXN0b21lclBhcnR5TmFtZTogW2J1eWVyQ3VzdG9tZXJQYXJ0eU5hbWUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgYnV5ZXJDdXN0b21lclBhcnR5U2NoZW1lSWQ6IFtidXllckN1c3RvbWVyUGFydHlTY2hlbWVJZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoOCldXSxcclxuICAgICAgYnV5ZXJDdXN0b21lclBhcnR5VmtuVGNrbjogW2J1eWVyQ3VzdG9tZXJQYXJ0eVZrblRja24gPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDE2KV1dLFxyXG4gICAgICBzZWxsZXJTdXBwbGllclBhcnR5TmFtZTogW3NlbGxlclN1cHBsaWVyUGFydHlOYW1lID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIHNlbGxlclN1cHBsaWVyUGFydHlTY2hlbWVJZDogW3NlbGxlclN1cHBsaWVyUGFydHlTY2hlbWVJZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoOCldXSxcclxuICAgICAgc2VsbGVyU3VwcGxpZXJQYXJ0eVZrblRja246IFtzZWxsZXJTdXBwbGllclBhcnR5VmtuVGNrbiA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTYpXV0sXHJcbiAgICAgIHRheFJlcHJlc2VudGF0aXZlUGFydHlOYW1lOiBbdGF4UmVwcmVzZW50YXRpdmVQYXJ0eU5hbWUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgdGF4UmVwcmVzZW50YXRpdmVQYXJ0eVNjaGVtZUlkOiBbXHJcbiAgICAgICAgdGF4UmVwcmVzZW50YXRpdmVQYXJ0eVNjaGVtZUlkID8/IG51bGwsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDgpXSxcclxuICAgICAgXSxcclxuICAgICAgdGF4UmVwcmVzZW50YXRpdmVQYXJ0eVZrblRja246IFtcclxuICAgICAgICB0YXhSZXByZXNlbnRhdGl2ZVBhcnR5VmtuVGNrbiA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxNildLFxyXG4gICAgICBdLFxyXG4gICAgICB0YXhFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGU6IFtcclxuICAgICAgICB0YXhFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMyldLFxyXG4gICAgICBdLFxyXG4gICAgICB0YXhFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGU6IFtcclxuICAgICAgICB0YXhFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMyldLFxyXG4gICAgICBdLFxyXG4gICAgICB0YXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGU6IFt0YXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUgPz8gbnVsbCwgW11dLFxyXG4gICAgICB0YXhFeGNoYW5nZVJhdGVEYXRlOiBbdGF4RXhjaGFuZ2VSYXRlRGF0ZSA/IG5ldyBEYXRlKHRheEV4Y2hhbmdlUmF0ZURhdGUpIDogbnVsbCwgW11dLFxyXG4gICAgICBwcmljaW5nRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlOiBbXHJcbiAgICAgICAgcHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZSA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1heExlbmd0aCgzKV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHByaWNpbmdFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGU6IFtcclxuICAgICAgICBwcmljaW5nRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlID8/IG51bGwsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDMpXSxcclxuICAgICAgXSxcclxuICAgICAgcHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZTogW3ByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUgPz8gbnVsbCwgW11dLFxyXG4gICAgICBwcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZTogW1xyXG4gICAgICAgIHByaWNpbmdFeGNoYW5nZVJhdGVEYXRlID8gbmV3IERhdGUocHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGUpIDogbnVsbCxcclxuICAgICAgICBbXSxcclxuICAgICAgXSxcclxuICAgICAgcGF5bWVudEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZTogW1xyXG4gICAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMyldLFxyXG4gICAgICBdLFxyXG4gICAgICBwYXltZW50RXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlOiBbXHJcbiAgICAgICAgcGF5bWVudEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZSA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1heExlbmd0aCgzKV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGU6IFtwYXltZW50RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlID8/IG51bGwsIFtdXSxcclxuICAgICAgcGF5bWVudEV4Y2hhbmdlUmF0ZURhdGU6IFtcclxuICAgICAgICBwYXltZW50RXhjaGFuZ2VSYXRlRGF0ZSA/IG5ldyBEYXRlKHBheW1lbnRFeGNoYW5nZVJhdGVEYXRlKSA6IG51bGwsXHJcbiAgICAgICAgW10sXHJcbiAgICAgIF0sXHJcbiAgICAgIHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZTogW1xyXG4gICAgICAgIHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZSA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1heExlbmd0aCgzKV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZTogW1xyXG4gICAgICAgIHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZSA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1heExlbmd0aCgzKV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZTogW1xyXG4gICAgICAgIHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZSA/PyBudWxsLFxyXG4gICAgICAgIFtdLFxyXG4gICAgICBdLFxyXG4gICAgICBwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlOiBbXHJcbiAgICAgICAgcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZSA/IG5ldyBEYXRlKHBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGUpIDogbnVsbCxcclxuICAgICAgICBbXSxcclxuICAgICAgXSxcclxuICAgICAgbGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudDogW2xlZ2FsTW9uZXRhcnlUb3RhbExpbmVFeHRlbnNpb25BbW91bnQgPz8gbnVsbCwgW11dLFxyXG4gICAgICBsZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnQ6IFtsZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnQgPz8gbnVsbCwgW11dLFxyXG4gICAgICBsZWdhbE1vbmV0YXJ5VG90YWxUYXhJbmNsdXNpdmVBbW91bnQ6IFtsZWdhbE1vbmV0YXJ5VG90YWxUYXhJbmNsdXNpdmVBbW91bnQgPz8gbnVsbCwgW11dLFxyXG4gICAgICBsZWdhbE1vbmV0YXJ5VG90YWxBbGxvd2FuY2VUb3RhbEFtb3VudDogW2xlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50ID8/IG51bGwsIFtdXSxcclxuICAgICAgbGVnYWxNb25ldGFyeVRvdGFsQ2hhcmdlVG90YWxBbW91bnQ6IFtsZWdhbE1vbmV0YXJ5VG90YWxDaGFyZ2VUb3RhbEFtb3VudCA/PyBudWxsLCBbXV0sXHJcbiAgICAgIGxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVSb3VuZGluZ0Ftb3VudDogW1xyXG4gICAgICAgIGxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVSb3VuZGluZ0Ftb3VudCA/PyBudWxsLFxyXG4gICAgICAgIFtdLFxyXG4gICAgICBdLFxyXG4gICAgICBsZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlQW1vdW50OiBbbGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZUFtb3VudCA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHBheW1lbnRUZXJtc05vdGU6IFtwYXltZW50VGVybXNOb3RlID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MTIpXV0sXHJcbiAgICAgIHBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlOiBbXHJcbiAgICAgICAgcGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGUgPyBuZXcgRGF0ZShwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZSkgOiBudWxsLFxyXG4gICAgICAgIFtdLFxyXG4gICAgICBdLFxyXG4gICAgICBjdXN0SW52SWQ6IFtjdXN0SW52SWQgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxyXG4gICAgICBpc0NhbmNlbGVkOiBbZmFsc2UsIFtdXSxcclxuICAgICAgY2FuY2VsQ29kZTogW2NhbmNlbENvZGUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDE2KV1dLFxyXG4gICAgICBjYW5jZWxEZXNjcmlwdGlvbjogW2NhbmNlbERlc2NyaXB0aW9uID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIHJlc291cmNlRG9jVHlwZTogW3Jlc291cmNlRG9jVHlwZSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHJlc291cmNlRG9jRW50cnk6IFtyZXNvdXJjZURvY0VudHJ5ID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldXSxcclxuICAgICAgc3RhdHVzOiBbc3RhdHVzID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVjZWl2ZXJSZXNwb25zZTogW3JlY2VpdmVyUmVzcG9uc2UgPz8gbnVsbCwgW11dLFxyXG4gICAgICByZWNlaXZlclJlc3BvbnNlRGVzYzogW3JlY2VpdmVyUmVzcG9uc2VEZXNjID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxMDI0KV1dLFxyXG4gICAgICBkb2NUeXBlOiBbZG9jVHlwZSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIGlzRUFyY2hpdmU6IFtmYWxzZSwgW11dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Zvcm0oKSB7XHJcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuc2VsZWN0ZWRcclxuICAgICAgPyB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuc2VsZWN0ZWQuaWQsIHtcclxuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcclxuICAgICAgICAgIGNvbmN1cnJlbmN5U3RhbXA6IHRoaXMuc2VsZWN0ZWQuY29uY3VycmVuY3lTdGFtcCxcclxuICAgICAgICB9KVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5mb3JtLnZhbHVlKTtcclxuXHJcbiAgICB0aGlzLmlzTW9kYWxCdXN5ID0gdHJ1ZTtcclxuXHJcbiAgICByZXF1ZXN0XHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTW9kYWxCdXN5ID0gZmFsc2UpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5oaWRlRm9ybSgpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5saXN0LmdldCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHJlY29yZDogSW52b2ljZUR0bykge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShyZWNvcmQ6IEludm9pY2VEdG8pIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgIC53YXJuKCdlRG9udXN1bTo6RGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZScsICdlRG9udXN1bTo6QXJlWW91U3VyZScsIHtcclxuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbXSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgPT09IENvbmZpcm1hdGlvbi5TdGF0dXMuY29uZmlybSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc2VydmljZS5kZWxldGUocmVjb3JkLmlkKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGlzdC5nZXQpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9FeGNlbCgpIHtcclxuICAgIHRoaXMuaXNFeHBvcnRUb0V4Y2VsQnVzeSA9IHRydWU7XHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldERvd25sb2FkVG9rZW4oKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKHsgdG9rZW4gfSkgPT5cclxuICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRMaXN0QXNFeGNlbEZpbGUoeyBkb3dubG9hZFRva2VuOiB0b2tlbiwgZmlsdGVyVGV4dDogdGhpcy5saXN0LmZpbHRlciB9KVxyXG4gICAgICAgICksXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaXNFeHBvcnRUb0V4Y2VsQnVzeSA9IGZhbHNlKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgZG93bmxvYWRCbG9iKHJlc3VsdCwgJ0ludm9pY2UueGxzeCcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInZURvbnVzdW06Okludm9pY2VzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBteC0yXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNFeHBvcnRUb0V4Y2VsQnVzeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImV4cG9ydFRvRXhjZWwoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyAnZURvbnVzdW06OkV4cG9ydFRvRXhjZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkludm9pY2VzLkNyZWF0ZSdcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNyZWF0ZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6TmV3SW52b2ljZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG5cclxuICA8YWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzIGxvY2FsaXphdGlvblNvdXJjZU5hbWU9XCJlRG9udXN1bVwiIFtsaXN0XT1cImxpc3RcIj5cclxuICAgIDxhYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMtZm9ybT5cclxuICAgICAgPGZvcm0gI2ZpbHRlckZvcm0gKGtleXVwLmVudGVyKT1cImxpc3QuZ2V0KClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInVibFZlcnNpb25JZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVYmxWZXJzaW9uSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInVibFZlcnNpb25JZEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudWJsVmVyc2lvbklkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3VzdG9taXphdGlvbklkRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkN1c3RvbWl6YXRpb25JZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiY3VzdG9taXphdGlvbklkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5jdXN0b21pemF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwcm9maWxlSWRGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UHJvZmlsZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJwcm9maWxlSWRGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnByb2ZpbGVJZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2VJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJbnZvaWNlSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2VJZEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZUlkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY29weUluZGljYXRvckZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDb3B5SW5kaWNhdG9yJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJjb3B5SW5kaWNhdG9yXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiY29weUluZGljYXRvckZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuY29weUluZGljYXRvclwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidXVJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpVdUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ1dUlkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy51dUlkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluSXNzdWVEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbklzc3VlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWluSXNzdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAjbWluSXNzdWVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pbklzc3VlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pbklzc3VlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtaW5Jc3N1ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pbklzc3VlRGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNzdWVEYXRlTWluXCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWluSXNzdWVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5Jc3N1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5Jc3N1ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heElzc3VlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhJc3N1ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1heElzc3VlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21heElzc3VlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhJc3N1ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhJc3N1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtYXhJc3N1ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heElzc3VlRGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNzdWVEYXRlTWF4XCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWF4SXNzdWVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJc3N1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJc3N1ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluSXNzdWVUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbklzc3VlVGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWluSXNzdWVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAjbWluSXNzdWVUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pbklzc3VlVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pbklzc3VlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtaW5Jc3N1ZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pbklzc3VlVGltZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNzdWVUaW1lTWluXCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWluSXNzdWVUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5Jc3N1ZVRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5Jc3N1ZVRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heElzc3VlVGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhJc3N1ZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1heElzc3VlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21heElzc3VlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhJc3N1ZVRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhJc3N1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtYXhJc3N1ZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heElzc3VlVGltZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNzdWVUaW1lTWF4XCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWF4SXNzdWVUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJc3N1ZVRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJc3N1ZVRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZVR5cGVDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Okludm9pY2VUeXBlQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiaW52b2ljZVR5cGVDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pbnZvaWNlVHlwZUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkb2N1bWVudEN1cnJlbmN5Q29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEb2N1bWVudEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiZG9jdW1lbnRDdXJyZW5jeUNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRvY3VtZW50Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidGF4Q3VycmVuY3lDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwidGF4Q3VycmVuY3lDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy50YXhDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwcmljaW5nQ3VycmVuY3lDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlByaWNpbmdDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInByaWNpbmdDdXJyZW5jeUNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnByaWNpbmdDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXltZW50Q3VycmVuY3lDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInBheW1lbnRDdXJyZW5jeUNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBheW1lbnRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXltZW50QWx0ZXJuYXRpdmVDdXJyZW5jeUNvZGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJwYXltZW50QWx0ZXJuYXRpdmVDdXJyZW5jeUNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBheW1lbnRBbHRlcm5hdGl2ZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImFjY291bnRpbmdDb3N0RmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdDb3N0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJhY2NvdW50aW5nQ29zdEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuYWNjb3VudGluZ0Nvc3RcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtaW5MaW5lQ291bnROdW1lcmljXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkxpbmVDb3VudE51bWVyaWMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbkxpbmVDb3VudE51bWVyaWNcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGluZUNvdW50TnVtZXJpY01pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhMaW5lQ291bnROdW1lcmljXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heExpbmVDb3VudE51bWVyaWMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1heExpbmVDb3VudE51bWVyaWNcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGluZUNvdW50TnVtZXJpY01heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkludm9pY2VQZXJpb2RTdGFydERhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluSW52b2ljZVBlcmlvZFN0YXJ0RGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWluSW52b2ljZVBlcmlvZFN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pbkludm9pY2VQZXJpb2RTdGFydERhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWluSW52b2ljZVBlcmlvZFN0YXJ0RGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pbkludm9pY2VQZXJpb2RTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluSW52b2ljZVBlcmlvZFN0YXJ0RGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWluSW52b2ljZVBlcmlvZFN0YXJ0RGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pbkludm9pY2VQZXJpb2RTdGFydERhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1pbkludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5JbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhJbnZvaWNlUGVyaW9kU3RhcnREYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heEludm9pY2VQZXJpb2RTdGFydERhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1heEludm9pY2VQZXJpb2RTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhJbnZvaWNlUGVyaW9kU3RhcnREYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21heEludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhJbnZvaWNlUGVyaW9kU3RhcnREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4SW52b2ljZVBlcmlvZFN0YXJ0RGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWF4SW52b2ljZVBlcmlvZFN0YXJ0RGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heEludm9pY2VQZXJpb2RTdGFydERhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1heEludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkludm9pY2VQZXJpb2RTdGFydFRpbWVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluSW52b2ljZVBlcmlvZFN0YXJ0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWluSW52b2ljZVBlcmlvZFN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pbkludm9pY2VQZXJpb2RTdGFydFRpbWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWluSW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pbkludm9pY2VQZXJpb2RTdGFydFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluSW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWluSW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZVBlcmlvZFN0YXJ0VGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pbkludm9pY2VQZXJpb2RTdGFydFRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1pbkludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5JbnZvaWNlUGVyaW9kU3RhcnRUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhJbnZvaWNlUGVyaW9kU3RhcnRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heEludm9pY2VQZXJpb2RTdGFydFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1heEludm9pY2VQZXJpb2RTdGFydFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhJbnZvaWNlUGVyaW9kU3RhcnRUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21heEludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhJbnZvaWNlUGVyaW9kU3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4SW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWF4SW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZVBlcmlvZFN0YXJ0VGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heEludm9pY2VQZXJpb2RTdGFydFRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1heEludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJbnZvaWNlUGVyaW9kU3RhcnRUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkludm9pY2VQZXJpb2RFbmREYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkludm9pY2VQZXJpb2RFbmREYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5JbnZvaWNlUGVyaW9kRW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pbkludm9pY2VQZXJpb2RFbmREYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pbkludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluSW52b2ljZVBlcmlvZEVuZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluSW52b2ljZVBlcmlvZEVuZERhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pbkludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pbnZvaWNlUGVyaW9kRW5kRGF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pbkludm9pY2VQZXJpb2RFbmREYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5JbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pbkludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhJbnZvaWNlUGVyaW9kRW5kRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhJbnZvaWNlUGVyaW9kRW5kRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4SW52b2ljZVBlcmlvZEVuZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhJbnZvaWNlUGVyaW9kRW5kRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhJbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heEludm9pY2VQZXJpb2RFbmREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4SW52b2ljZVBlcmlvZEVuZERhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heEludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pbnZvaWNlUGVyaW9kRW5kRGF0ZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heEludm9pY2VQZXJpb2RFbmREYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heEludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkludm9pY2VQZXJpb2RFbmRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkludm9pY2VQZXJpb2RFbmRUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5JbnZvaWNlUGVyaW9kRW5kVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pbkludm9pY2VQZXJpb2RFbmRUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pbkludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluSW52b2ljZVBlcmlvZEVuZFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluSW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pbkludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pbnZvaWNlUGVyaW9kRW5kVGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pbkludm9pY2VQZXJpb2RFbmRUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5JbnZvaWNlUGVyaW9kRW5kVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pbkludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhJbnZvaWNlUGVyaW9kRW5kVGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhJbnZvaWNlUGVyaW9kRW5kVGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4SW52b2ljZVBlcmlvZEVuZFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhJbnZvaWNlUGVyaW9kRW5kVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhJbnZvaWNlUGVyaW9kRW5kVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heEludm9pY2VQZXJpb2RFbmRUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4SW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heEludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pbnZvaWNlUGVyaW9kRW5kVGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heEludm9pY2VQZXJpb2RFbmRUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJbnZvaWNlUGVyaW9kRW5kVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heEludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluSW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWluSW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pbkludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWluSW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pbkludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluSW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWluSW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pbkludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1pbkludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5JbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhJbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heEludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1heEludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhJbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21heEludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhJbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4SW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwibWF4SW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heEludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1heEludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhJbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2VQZXJpb2REZXNjcmlwdGlvbkZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJbnZvaWNlUGVyaW9kRGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImludm9pY2VQZXJpb2REZXNjcmlwdGlvbkZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaW52b2ljZVBlcmlvZERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwib3JkZXJSZWZlcmVuY2VJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJvcmRlclJlZmVyZW5jZUlkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5vcmRlclJlZmVyZW5jZUlkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwib3JkZXJSZWZlcmVuY2VTYWxlc09yZGVySWRGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6T3JkZXJSZWZlcmVuY2VTYWxlc09yZGVySWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm9yZGVyUmVmZXJlbmNlU2FsZXNPcmRlcklkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5vcmRlclJlZmVyZW5jZVNhbGVzT3JkZXJJZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbk9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbk9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5PcmRlclJlZmVyZW5jZUlzc3VlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pbk9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pbk9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluT3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluT3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pbk9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5vcmRlclJlZmVyZW5jZUlzc3VlRGF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pbk9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5PcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pbk9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4T3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heE9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4T3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heE9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5vcmRlclJlZmVyZW5jZUlzc3VlRGF0ZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heE9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heE9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm9yZGVyUmVmZXJlbmNlT3JkZXJUeXBlQ29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZU9yZGVyVHlwZUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm9yZGVyUmVmZXJlbmNlT3JkZXJUeXBlQ29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMub3JkZXJSZWZlcmVuY2VPcmRlclR5cGVDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVNjaGVtZUlkRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWRGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWRcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja25GaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja25GaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImFjY291bnRpbmdDdXN0b21lclBhcnR5TmFtZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImFjY291bnRpbmdDdXN0b21lclBhcnR5TmFtZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuYWNjb3VudGluZ0N1c3RvbWVyUGFydHlOYW1lXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYWNjb3VudGluZ0N1c3RvbWVyUGFydHlTY2hlbWVJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5hY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYWNjb3VudGluZ0N1c3RvbWVyUGFydHlWa25UY2tuRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdDdXN0b21lclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiYWNjb3VudGluZ0N1c3RvbWVyUGFydHlWa25UY2tuRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5hY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXllckN1c3RvbWVyUGFydHlOYW1lRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkJ1eWVyQ3VzdG9tZXJQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImJ1eWVyQ3VzdG9tZXJQYXJ0eU5hbWVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmJ1eWVyQ3VzdG9tZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXllckN1c3RvbWVyUGFydHlTY2hlbWVJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpCdXllckN1c3RvbWVyUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiYnV5ZXJDdXN0b21lclBhcnR5U2NoZW1lSWRGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmJ1eWVyQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnV5ZXJDdXN0b21lclBhcnR5VmtuVGNrbkZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpCdXllckN1c3RvbWVyUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJidXllckN1c3RvbWVyUGFydHlWa25UY2tuRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5idXllckN1c3RvbWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwic2VsbGVyU3VwcGxpZXJQYXJ0eU5hbWVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VsbGVyU3VwcGxpZXJQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInNlbGxlclN1cHBsaWVyUGFydHlOYW1lRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5zZWxsZXJTdXBwbGllclBhcnR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInNlbGxlclN1cHBsaWVyUGFydHlTY2hlbWVJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpTZWxsZXJTdXBwbGllclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInNlbGxlclN1cHBsaWVyUGFydHlTY2hlbWVJZEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuc2VsbGVyU3VwcGxpZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwic2VsbGVyU3VwcGxpZXJQYXJ0eVZrblRja25GaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VsbGVyU3VwcGxpZXJQYXJ0eVZrblRja24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInNlbGxlclN1cHBsaWVyUGFydHlWa25UY2tuRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5zZWxsZXJTdXBwbGllclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInRheFJlcHJlc2VudGF0aXZlUGFydHlOYW1lRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudGF4UmVwcmVzZW50YXRpdmVQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5U2NoZW1lSWRGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4UmVwcmVzZW50YXRpdmVQYXJ0eVNjaGVtZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5U2NoZW1lSWRGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnRheFJlcHJlc2VudGF0aXZlUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInRheFJlcHJlc2VudGF0aXZlUGFydHlWa25UY2tuRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5VmtuVGNrbkZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudGF4UmVwcmVzZW50YXRpdmVQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ0YXhFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0YXhFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnRheEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInRheEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpUYXhFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInRheEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudGF4RXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluVGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pblRheEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluVGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnRheEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhUYXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4VGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhUYXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlTWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluVGF4RXhjaGFuZ2VSYXRlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5UYXhFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5UYXhFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAjbWluVGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtaW5UYXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluVGF4RXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtaW5UYXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5UYXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy50YXhFeGNoYW5nZVJhdGVEYXRlTWluXCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWluVGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWluVGF4RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pblRheEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heFRheEV4Y2hhbmdlUmF0ZURhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4VGF4RXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4VGF4RXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21heFRheEV4Y2hhbmdlUmF0ZURhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWF4VGF4RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFRheEV4Y2hhbmdlUmF0ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtYXhUYXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtYXhUYXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy50YXhFeGNoYW5nZVJhdGVEYXRlTWF4XCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWF4VGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4VGF4RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heFRheEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcmljaW5nRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJwcmljaW5nRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wcmljaW5nRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcmljaW5nRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJwcmljaW5nRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wcmljaW5nRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluUHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5QcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtaW5QcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVNaW5cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWF4UHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhQcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhQcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVNYXhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtaW5QcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5QcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWluUHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtaW5QcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtaW5QcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1pblByaWNpbmdFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1pblByaWNpbmdFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5QcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVNaW5cIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtaW5QcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5QcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWF4UHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4UHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1heFByaWNpbmdFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAjbWF4UHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWF4UHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtYXhQcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1heFByaWNpbmdFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtYXhQcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIudG9nZ2xlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVNYXhcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXhQcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4UHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhQcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXltZW50RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInBheW1lbnRFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBheW1lbnRFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXltZW50RXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtaW5QYXltZW50RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pblBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pblBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucGF5bWVudEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhQYXltZW50RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heFBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1heFBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucGF5bWVudEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZU1heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblBheW1lbnRFeGNoYW5nZVJhdGVEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pblBheW1lbnRFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5QYXltZW50RXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblBheW1lbnRFeGNoYW5nZVJhdGVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pblBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluUGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pblBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wYXltZW50RXhjaGFuZ2VSYXRlRGF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblBheW1lbnRFeGNoYW5nZVJhdGVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5QYXltZW50RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pblBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhQYXltZW50RXhjaGFuZ2VSYXRlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhQYXltZW50RXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4UGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhQYXltZW50RXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhQYXltZW50RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFBheW1lbnRFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heFBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wYXltZW50RXhjaGFuZ2VSYXRlRGF0ZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFBheW1lbnRFeGNoYW5nZVJhdGVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhQYXltZW50RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heFBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgZm9yPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgIGZvcj1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluUGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pblBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluUGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlTWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluUGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5QYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5QYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAjbWluUGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtaW5QYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluUGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtaW5QYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5QYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlTWluXCJcclxuICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWluUGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5QYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWF4UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtYXhQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAjbWF4UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWF4UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1heFBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heFBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVNYXhcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtYXhQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlSW5wdXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG1heFBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkxlZ2FsTW9uZXRhcnlUb3RhbExpbmVFeHRlbnNpb25BbW91bnRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluTGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluTGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5sZWdhbE1vbmV0YXJ5VG90YWxMaW5lRXh0ZW5zaW9uQW1vdW50TWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heExlZ2FsTW9uZXRhcnlUb3RhbExpbmVFeHRlbnNpb25BbW91bnRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4TGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4TGVnYWxNb25ldGFyeVRvdGFsTGluZUV4dGVuc2lvbkFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5sZWdhbE1vbmV0YXJ5VG90YWxMaW5lRXh0ZW5zaW9uQW1vdW50TWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluTGVnYWxNb25ldGFyeVRvdGFsVGF4RXhjbHVzaXZlQW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkxlZ2FsTW9uZXRhcnlUb3RhbFRheEV4Y2x1c2l2ZUFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluTGVnYWxNb25ldGFyeVRvdGFsVGF4RXhjbHVzaXZlQW1vdW50XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmxlZ2FsTW9uZXRhcnlUb3RhbFRheEV4Y2x1c2l2ZUFtb3VudE1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhMZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4TGVnYWxNb25ldGFyeVRvdGFsVGF4RXhjbHVzaXZlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhMZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGVnYWxNb25ldGFyeVRvdGFsVGF4RXhjbHVzaXZlQW1vdW50TWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluTGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkxlZ2FsTW9uZXRhcnlUb3RhbFRheEluY2x1c2l2ZUFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluTGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmxlZ2FsTW9uZXRhcnlUb3RhbFRheEluY2x1c2l2ZUFtb3VudE1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhMZWdhbE1vbmV0YXJ5VG90YWxUYXhJbmNsdXNpdmVBbW91bnRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4TGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhMZWdhbE1vbmV0YXJ5VG90YWxUYXhJbmNsdXNpdmVBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50TWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWluTGVnYWxNb25ldGFyeVRvdGFsQWxsb3dhbmNlVG90YWxBbW91bnRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluTGVnYWxNb25ldGFyeVRvdGFsQWxsb3dhbmNlVG90YWxBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbkxlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmxlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50TWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heExlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heExlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtYXhMZWdhbE1vbmV0YXJ5VG90YWxBbGxvd2FuY2VUb3RhbEFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5sZWdhbE1vbmV0YXJ5VG90YWxBbGxvd2FuY2VUb3RhbEFtb3VudE1heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtaW5MZWdhbE1vbmV0YXJ5VG90YWxDaGFyZ2VUb3RhbEFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5sZWdhbE1vbmV0YXJ5VG90YWxDaGFyZ2VUb3RhbEFtb3VudE1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhMZWdhbE1vbmV0YXJ5VG90YWxDaGFyZ2VUb3RhbEFtb3VudFwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhMZWdhbE1vbmV0YXJ5VG90YWxDaGFyZ2VUb3RhbEFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4TGVnYWxNb25ldGFyeVRvdGFsQ2hhcmdlVG90YWxBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGVnYWxNb25ldGFyeVRvdGFsQ2hhcmdlVG90YWxBbW91bnRNYXhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtaW5MZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnRcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluTGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZVJvdW5kaW5nQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtaW5MZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZVJvdW5kaW5nQW1vdW50TWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heExlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVSb3VuZGluZ0Ftb3VudFwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhMZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1heExlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVSb3VuZGluZ0Ftb3VudFwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5sZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnRNYXhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtaW5MZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlQW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pbkxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pbkxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZUFtb3VudE1pblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhMZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlQW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heExlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1heExlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMubGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZUFtb3VudE1heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBheW1lbnRUZXJtc05vdGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudFRlcm1zTm90ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwicGF5bWVudFRlcm1zTm90ZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucGF5bWVudFRlcm1zTm90ZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1pblBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5QYXltZW50VGVybXNQYXltZW50RHVlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pblBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluUGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pblBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wYXltZW50VGVybXNQYXltZW50RHVlRGF0ZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5QYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pblBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhQYXltZW50VGVybXNQYXltZW50RHVlRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNYXhQYXltZW50VGVybXNQYXltZW50RHVlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4UGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhQYXltZW50VGVybXNQYXltZW50RHVlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhQYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heFBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5wYXltZW50VGVybXNQYXltZW50RHVlRGF0ZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhQYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heFBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImN1c3RJbnZJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDdXN0SW52SWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImN1c3RJbnZJZEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuY3VzdEludklkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaXNDYW5jZWxlZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc0NhbmNlbGVkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpc0NhbmNlbGVkXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiaXNDYW5jZWxlZEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNDYW5jZWxlZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY2FuY2VsQ29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDYW5jZWxDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYW5jZWxDb2RlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5jYW5jZWxDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY2FuY2VsRGVzY3JpcHRpb25GaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FuY2VsRGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImNhbmNlbERlc2NyaXB0aW9uRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5jYW5jZWxEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlc291cmNlRG9jVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5SZXNvdXJjZURvY1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pblJlc291cmNlRG9jVHlwZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXNvdXJjZURvY1R5cGVNaW5cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWF4UmVzb3VyY2VEb2NUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heFJlc291cmNlRG9jVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4UmVzb3VyY2VEb2NUeXBlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc291cmNlRG9jVHlwZU1heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInJlc291cmNlRG9jRW50cnlGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVzb3VyY2VEb2NFbnRyeScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwicmVzb3VyY2VEb2NFbnRyeUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucmVzb3VyY2VEb2NFbnRyeVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpNaW5TdGF0dXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cIm1pblN0YXR1c1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5zdGF0dXNNaW5cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibWF4U3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06Ok1heFN0YXR1cycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4U3RhdHVzXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnN0YXR1c01heFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlY2VpdmVyUmVzcG9uc2VcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluUmVjZWl2ZXJSZXNwb25zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluUmVjZWl2ZXJSZXNwb25zZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZWNlaXZlclJlc3BvbnNlTWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heFJlY2VpdmVyUmVzcG9uc2VcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4UmVjZWl2ZXJSZXNwb25zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4UmVjZWl2ZXJSZXNwb25zZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZWNlaXZlclJlc3BvbnNlTWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicmVjZWl2ZXJSZXNwb25zZURlc2NGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVjZWl2ZXJSZXNwb25zZURlc2MnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInJlY2VpdmVyUmVzcG9uc2VEZXNjRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZWNlaXZlclJlc3BvbnNlRGVzY1wiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pbkRvY1R5cGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWluRG9jVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWluRG9jVHlwZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5kb2NUeXBlTWluXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1heERvY1R5cGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TWF4RG9jVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwibWF4RG9jVHlwZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5kb2NUeXBlTWF4XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaXNFQXJjaGl2ZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc0VBcmNoaXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpc0VBcmNoaXZlXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiaXNFQXJjaGl2ZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNFQXJjaGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvIGFsaWduLXNlbGYtZW5kIG1iLTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtc20tYXV0byBkLWdyaWRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXJzKClcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJsaXN0LmdldCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBYnBVaTo6UmVmcmVzaCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMtZm9ybT5cclxuICA8L2FicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycz5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPG5neC1kYXRhdGFibGUgW3Jvd3NdPVwiZGF0YS5pdGVtc1wiIFtjb3VudF09XCJkYXRhLnRvdGFsQ291bnRcIiBbbGlzdF09XCJsaXN0XCIgZGVmYXVsdD5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIFtuYW1lXT1cIidBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgW21heFdpZHRoXT1cIjE1MFwiXHJcbiAgICAgICAgICBbd2lkdGhdPVwiMTUwXCJcclxuICAgICAgICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb2cgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5JbnZvaWNlcy5FZGl0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkludm9pY2VzLkRlbGV0ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKHJvdylcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpVYmxWZXJzaW9uSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ1YmxWZXJzaW9uSWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cudWJsVmVyc2lvbklkIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6Q3VzdG9taXphdGlvbklkJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiY3VzdG9taXphdGlvbklkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmN1c3RvbWl6YXRpb25JZCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gbmFtZT1cInt7ICdlRG9udXN1bTo6UHJvZmlsZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHByb3A9XCJwcm9maWxlSWRcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucHJvZmlsZUlkIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ2VEb251c3VtOjpJbnZvaWNlSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgcHJvcD1cImludm9pY2VJZFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5pbnZvaWNlSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpDb3B5SW5kaWNhdG9yJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiY29weUluZGljYXRvclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJyb3cuY29weUluZGljYXRvclwiIFtuZ0lmVGhlbl09XCJ5ZXNcIiBbbmdJZkVsc2VdPVwibm9cIj48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZXM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNubz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gbmFtZT1cInt7ICdlRG9udXN1bTo6VXVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwidXVJZFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy51dUlkIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ2VEb251c3VtOjpJc3N1ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgcHJvcD1cImlzc3VlRGF0ZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5pc3N1ZURhdGUgfCBkYXRlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ2VEb251c3VtOjpJc3N1ZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgcHJvcD1cImlzc3VlVGltZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5pc3N1ZVRpbWUgfCBkYXRlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SW52b2ljZVR5cGVDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiaW52b2ljZVR5cGVDb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lmludm9pY2VUeXBlQ29kZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkRvY3VtZW50Q3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiZG9jdW1lbnRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuZG9jdW1lbnRDdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpUYXhDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ0YXhDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cudGF4Q3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6UHJpY2luZ0N1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInByaWNpbmdDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucHJpY2luZ0N1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlBheW1lbnRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJwYXltZW50Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnBheW1lbnRDdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJwYXltZW50QWx0ZXJuYXRpdmVDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucGF5bWVudEFsdGVybmF0aXZlQ3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0Nvc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJhY2NvdW50aW5nQ29zdFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5hY2NvdW50aW5nQ29zdCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkxpbmVDb3VudE51bWVyaWMnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJsaW5lQ291bnROdW1lcmljXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmxpbmVDb3VudE51bWVyaWMgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpJbnZvaWNlUGVyaW9kU3RhcnREYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5pbnZvaWNlUGVyaW9kU3RhcnREYXRlIHwgZGF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06Okludm9pY2VQZXJpb2RTdGFydFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpbnZvaWNlUGVyaW9kU3RhcnRUaW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lmludm9pY2VQZXJpb2RTdGFydFRpbWUgfCBkYXRlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZEVuZERhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpbnZvaWNlUGVyaW9kRW5kRGF0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5pbnZvaWNlUGVyaW9kRW5kRGF0ZSB8IGRhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpJbnZvaWNlUGVyaW9kRW5kVGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImludm9pY2VQZXJpb2RFbmRUaW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lmludm9pY2VQZXJpb2RFbmRUaW1lIHwgZGF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06Okludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lmludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmUgfCBkYXRlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZERlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiaW52b2ljZVBlcmlvZERlc2NyaXB0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lmludm9pY2VQZXJpb2REZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06Ok9yZGVyUmVmZXJlbmNlSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJvcmRlclJlZmVyZW5jZUlkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lm9yZGVyUmVmZXJlbmNlSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZVNhbGVzT3JkZXJJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cIm9yZGVyUmVmZXJlbmNlU2FsZXNPcmRlcklkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lm9yZGVyUmVmZXJlbmNlU2FsZXNPcmRlcklkIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6T3JkZXJSZWZlcmVuY2VJc3N1ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5vcmRlclJlZmVyZW5jZUlzc3VlRGF0ZSB8IGRhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZU9yZGVyVHlwZUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJvcmRlclJlZmVyZW5jZU9yZGVyVHlwZUNvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cub3JkZXJSZWZlcmVuY2VPcmRlclR5cGVDb2RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6QWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpBY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24nIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0N1c3RvbWVyUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYWNjb3VudGluZ0N1c3RvbWVyUGFydHlOYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmFjY291bnRpbmdDdXN0b21lclBhcnR5TmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkFjY291bnRpbmdDdXN0b21lclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmFjY291bnRpbmdDdXN0b21lclBhcnR5U2NoZW1lSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpBY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVZrblRja24nIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYWNjb3VudGluZ0N1c3RvbWVyUGFydHlWa25UY2tuIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6QnV5ZXJDdXN0b21lclBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1eWVyQ3VzdG9tZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYnV5ZXJDdXN0b21lclBhcnR5TmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkJ1eWVyQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnV5ZXJDdXN0b21lclBhcnR5U2NoZW1lSWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYnV5ZXJDdXN0b21lclBhcnR5U2NoZW1lSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpCdXllckN1c3RvbWVyUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnV5ZXJDdXN0b21lclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXllckN1c3RvbWVyUGFydHlWa25UY2tuIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6U2VsbGVyU3VwcGxpZXJQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJzZWxsZXJTdXBwbGllclBhcnR5TmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5zZWxsZXJTdXBwbGllclBhcnR5TmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlNlbGxlclN1cHBsaWVyUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInNlbGxlclN1cHBsaWVyUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5zZWxsZXJTdXBwbGllclBhcnR5U2NoZW1lSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpTZWxsZXJTdXBwbGllclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInNlbGxlclN1cHBsaWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnNlbGxlclN1cHBsaWVyUGFydHlWa25UY2tuIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6VGF4UmVwcmVzZW50YXRpdmVQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy50YXhSZXByZXNlbnRhdGl2ZVBhcnR5TmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInRheFJlcHJlc2VudGF0aXZlUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy50YXhSZXByZXNlbnRhdGl2ZVBhcnR5U2NoZW1lSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpUYXhSZXByZXNlbnRhdGl2ZVBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInRheFJlcHJlc2VudGF0aXZlUGFydHlWa25UY2tuXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnRheFJlcHJlc2VudGF0aXZlUGFydHlWa25UY2tuIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwidGF4RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnRheEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlRheEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInRheEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy50YXhFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpUYXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJ0YXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cudGF4RXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInRheEV4Y2hhbmdlUmF0ZURhdGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cudGF4RXhjaGFuZ2VSYXRlRGF0ZSB8IGRhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpQcmljaW5nRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wcmljaW5nRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6UHJpY2luZ0V4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInByaWNpbmdFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucHJpY2luZ0V4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJwcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpQcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInByaWNpbmdFeGNoYW5nZVJhdGVEYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnByaWNpbmdFeGNoYW5nZVJhdGVEYXRlIHwgZGF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJwYXltZW50RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnBheW1lbnRFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpQYXltZW50RXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicGF5bWVudEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXltZW50RXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6UGF5bWVudEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucGF5bWVudEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucGF5bWVudEV4Y2hhbmdlUmF0ZURhdGUgfCBkYXRlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7XHJcbiAgICAgICAgICAgICdlRG9udXN1bTo6UGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3tcclxuICAgICAgICAgICAgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlIHwgZGF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbExpbmVFeHRlbnNpb25BbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJsZWdhbE1vbmV0YXJ5VG90YWxMaW5lRXh0ZW5zaW9uQW1vdW50XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmxlZ2FsTW9uZXRhcnlUb3RhbExpbmVFeHRlbnNpb25BbW91bnQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpMZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJsZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cubGVnYWxNb25ldGFyeVRvdGFsVGF4RXhjbHVzaXZlQW1vdW50IH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwibGVnYWxNb25ldGFyeVRvdGFsVGF4SW5jbHVzaXZlQW1vdW50XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmxlZ2FsTW9uZXRhcnlUb3RhbFRheEluY2x1c2l2ZUFtb3VudCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbEFsbG93YW5jZVRvdGFsQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwibGVnYWxNb25ldGFyeVRvdGFsQWxsb3dhbmNlVG90YWxBbW91bnRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cubGVnYWxNb25ldGFyeVRvdGFsQWxsb3dhbmNlVG90YWxBbW91bnQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpMZWdhbE1vbmV0YXJ5VG90YWxDaGFyZ2VUb3RhbEFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50IH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZVJvdW5kaW5nQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwibGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZVJvdW5kaW5nQW1vdW50XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVSb3VuZGluZ0Ftb3VudCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJsZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlQW1vdW50XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpQYXltZW50VGVybXNOb3RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicGF5bWVudFRlcm1zTm90ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXltZW50VGVybXNOb3RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6UGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXltZW50VGVybXNQYXltZW50RHVlRGF0ZSB8IGRhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIG5hbWU9XCJ7eyAnZURvbnVzdW06OkN1c3RJbnZJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwiY3VzdEludklkXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmN1c3RJbnZJZCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OklzQ2FuY2VsZWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpc0NhbmNlbGVkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy5pc0NhbmNlbGVkXCIgW25nSWZUaGVuXT1cInllc1wiIFtuZ0lmRWxzZV09XCJub1wiPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6Q2FuY2VsQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImNhbmNlbENvZGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuY2FuY2VsQ29kZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkNhbmNlbERlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiY2FuY2VsRGVzY3JpcHRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuY2FuY2VsRGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpSZXNvdXJjZURvY1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJyZXNvdXJjZURvY1R5cGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVzb3VyY2VEb2NUeXBlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6UmVzb3VyY2VEb2NFbnRyeScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInJlc291cmNlRG9jRW50cnlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVzb3VyY2VEb2NFbnRyeSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gbmFtZT1cInt7ICdlRG9udXN1bTo6U3RhdHVzJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHByb3A9XCJzdGF0dXNcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuc3RhdHVzIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6UmVjZWl2ZXJSZXNwb25zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInJlY2VpdmVyUmVzcG9uc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVjZWl2ZXJSZXNwb25zZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OlJlY2VpdmVyUmVzcG9uc2VEZXNjJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicmVjZWl2ZXJSZXNwb25zZURlc2NcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVjZWl2ZXJSZXNwb25zZURlc2MgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIG5hbWU9XCJ7eyAnZURvbnVzdW06OkRvY1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgcHJvcD1cImRvY1R5cGVcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuZG9jVHlwZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OklzRUFyY2hpdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJpc0VBcmNoaXZlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInJvdy5pc0VBcmNoaXZlXCIgW25nSWZUaGVuXT1cInllc1wiIFtuZ0lmRWxzZV09XCJub1wiPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgIDwvbmd4LWRhdGF0YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgKHNlbGVjdGVkID8gJ0FicFVpOjpFZGl0JyA6ICdlRG9udXN1bTo6TmV3SW52b2ljZScpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwiaW52b2ljZVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS11YmwtdmVyc2lvbi1pZFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlVibFZlcnNpb25JZCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXVibC12ZXJzaW9uLWlkXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidWJsVmVyc2lvbklkXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCJcclxuICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jdXN0b21pemF0aW9uLWlkXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q3VzdG9taXphdGlvbklkJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtY3VzdG9taXphdGlvbi1pZFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImN1c3RvbWl6YXRpb25JZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiOFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcm9maWxlLWlkXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UHJvZmlsZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtcHJvZmlsZS1pZFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2ZpbGVJZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzJcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1pZFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06Okludm9pY2VJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWludm9pY2UtaWRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlSWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjMyXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1jb3B5LWluZGljYXRvclwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvcHlJbmRpY2F0b3JcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZS1jb3B5LWluZGljYXRvclwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkNvcHlJbmRpY2F0b3InIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS11dS1pZFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlV1SWQnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0IGlkPVwiaW52b2ljZS11dS1pZFwiIGZvcm1Db250cm9sTmFtZT1cInV1SWRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjY0XCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaXNzdWUtZGF0ZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06Oklzc3VlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtaXNzdWUtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNzdWVEYXRlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICNpc3N1ZURhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICNpc3N1ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImlzc3VlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaXNzdWVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNzdWVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBpc3N1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgIGlzc3VlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pc3N1ZS10aW1lXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNzdWVUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pc3N1ZS10aW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpc3N1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgI2lzc3VlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgI2lzc3VlVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaXNzdWVUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJpc3N1ZVRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc3N1ZVRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIGlzc3VlVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgaXNzdWVUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtdHlwZS1jb2RlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVR5cGVDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS10eXBlLWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlVHlwZUNvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjMyXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWRvY3VtZW50LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEb2N1bWVudEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWRvY3VtZW50LWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkb2N1bWVudEN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS10YXgtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS10YXgtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRheEN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcmljaW5nLWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcmljaW5nQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByaWNpbmctY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNpbmdDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcGF5bWVudC1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXBheW1lbnQtYWx0ZXJuYXRpdmUtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRBbHRlcm5hdGl2ZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50QWx0ZXJuYXRpdmVDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYWNjb3VudGluZy1jb3N0XCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0Nvc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtYWNjb3VudGluZy1jb3N0XCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ0Nvc3RcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjMyXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWxpbmUtY291bnQtbnVtZXJpY1wiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkxpbmVDb3VudE51bWVyaWMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxpbmUtY291bnQtbnVtZXJpY1wiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxpbmVDb3VudE51bWVyaWNcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1zdGFydC1kYXRlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZFN0YXJ0RGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS1wZXJpb2Qtc3RhcnQtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZFN0YXJ0RGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgI2ludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cImludm9pY2VQZXJpb2RTdGFydERhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNlUGVyaW9kU3RhcnREYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kU3RhcnREYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLXN0YXJ0LXRpbWVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJbnZvaWNlUGVyaW9kU3RhcnRUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1zdGFydC10aW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kU3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kU3RhcnRUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZFN0YXJ0VGltZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImludm9pY2VQZXJpb2RTdGFydFRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RTdGFydFRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtaW52b2ljZS1wZXJpb2QtZW5kLWRhdGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJbnZvaWNlUGVyaW9kRW5kRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS1wZXJpb2QtZW5kLWRhdGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImludm9pY2VQZXJpb2RFbmREYXRlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kRW5kRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgI2ludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJpbnZvaWNlUGVyaW9kRW5kRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwiaW52b2ljZVBlcmlvZEVuZERhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNlUGVyaW9kRW5kRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgaW52b2ljZVBlcmlvZEVuZERhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RFbmREYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWVuZC10aW1lXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZEVuZFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWVuZC10aW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlUGVyaW9kRW5kVGltZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZEVuZFRpbWVJbnB1dFxyXG4gICAgICAgICAgICAgICNpbnZvaWNlUGVyaW9kRW5kVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cImludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52b2ljZVBlcmlvZEVuZFRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIGludm9pY2VQZXJpb2RFbmRUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRW5kVGltZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1pbnZvaWNlLXBlcmlvZC1kdXJhdGlvbi1tZWFzdXJlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtaW52b2ljZS1wZXJpb2QtZHVyYXRpb24tbWVhc3VyZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAjaW52b2ljZVBlcmlvZER1cmF0aW9uTWVhc3VyZUlucHV0XHJcbiAgICAgICAgICAgICAgI2ludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cImludm9pY2VQZXJpb2REdXJhdGlvbk1lYXN1cmVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICBpbnZvaWNlUGVyaW9kRHVyYXRpb25NZWFzdXJlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SW52b2ljZVBlcmlvZERlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWludm9pY2UtcGVyaW9kLWRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVBlcmlvZERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLWlkXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6T3JkZXJSZWZlcmVuY2VJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1vcmRlci1yZWZlcmVuY2UtaWRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmRlclJlZmVyZW5jZUlkXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1vcmRlci1yZWZlcmVuY2Utc2FsZXMtb3JkZXItaWRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZVNhbGVzT3JkZXJJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1vcmRlci1yZWZlcmVuY2Utc2FsZXMtb3JkZXItaWRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmRlclJlZmVyZW5jZVNhbGVzT3JkZXJJZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLWlzc3VlLWRhdGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZUlzc3VlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLWlzc3VlLWRhdGVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICNvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgI29yZGVyUmVmZXJlbmNlSXNzdWVEYXRlRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwib3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvcmRlclJlZmVyZW5jZUlzc3VlRGF0ZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgb3JkZXJSZWZlcmVuY2VJc3N1ZURhdGVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgIG9yZGVyUmVmZXJlbmNlSXNzdWVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLW9yZGVyLXJlZmVyZW5jZS1vcmRlci10eXBlLWNvZGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpPcmRlclJlZmVyZW5jZU9yZGVyVHlwZUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2Utb3JkZXItcmVmZXJlbmNlLW9yZGVyLXR5cGUtY29kZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yZGVyUmVmZXJlbmNlT3JkZXJUeXBlQ29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYWNjb3VudGluZy1zdXBwbGllci1wYXJ0eS1uYW1lXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctc3VwcGxpZXItcGFydHktbmFtZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWFjY291bnRpbmctc3VwcGxpZXItcGFydHktc2NoZW1lLWlkXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ1N1cHBsaWVyUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXNjaGVtZS1pZFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjY291bnRpbmdTdXBwbGllclBhcnR5U2NoZW1lSWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYWNjb3VudGluZy1zdXBwbGllci1wYXJ0eS12a24tdGNrblwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1hY2NvdW50aW5nLXN1cHBsaWVyLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxNlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLWN1c3RvbWVyLXBhcnR5LW5hbWVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtYWNjb3VudGluZy1jdXN0b21lci1wYXJ0eS1uYW1lXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ0N1c3RvbWVyUGFydHlOYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYWNjb3VudGluZy1jdXN0b21lci1wYXJ0eS1zY2hlbWUtaWRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVNjaGVtZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjb3VudGluZ0N1c3RvbWVyUGFydHlTY2hlbWVJZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiOFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1hY2NvdW50aW5nLWN1c3RvbWVyLXBhcnR5LXZrbi10Y2tuXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjb3VudGluZ0N1c3RvbWVyUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWFjY291bnRpbmctY3VzdG9tZXItcGFydHktdmtuLXRja25cIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWJ1eWVyLWN1c3RvbWVyLXBhcnR5LW5hbWVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpCdXllckN1c3RvbWVyUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWJ1eWVyLWN1c3RvbWVyLXBhcnR5LW5hbWVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidXllckN1c3RvbWVyUGFydHlOYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYnV5ZXItY3VzdG9tZXItcGFydHktc2NoZW1lLWlkXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnV5ZXJDdXN0b21lclBhcnR5U2NoZW1lSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtYnV5ZXItY3VzdG9tZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnV5ZXJDdXN0b21lclBhcnR5U2NoZW1lSWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtYnV5ZXItY3VzdG9tZXItcGFydHktdmtuLXRja25cIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpCdXllckN1c3RvbWVyUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWJ1eWVyLWN1c3RvbWVyLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnV5ZXJDdXN0b21lclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTZcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utc2VsbGVyLXN1cHBsaWVyLXBhcnR5LW5hbWVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpTZWxsZXJTdXBwbGllclBhcnR5TmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktbmFtZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGxlclN1cHBsaWVyUGFydHlOYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2Utc2VsbGVyLXN1cHBsaWVyLXBhcnR5LXNjaGVtZS1pZFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlNlbGxlclN1cHBsaWVyUGFydHlTY2hlbWVJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1zZWxsZXItc3VwcGxpZXItcGFydHktc2NoZW1lLWlkXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsbGVyU3VwcGxpZXJQYXJ0eVNjaGVtZUlkXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXNlbGxlci1zdXBwbGllci1wYXJ0eS12a24tdGNrblwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlNlbGxlclN1cHBsaWVyUGFydHlWa25UY2tuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXNlbGxlci1zdXBwbGllci1wYXJ0eS12a24tdGNrblwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGxlclN1cHBsaWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxNlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS10YXgtcmVwcmVzZW50YXRpdmUtcGFydHktbmFtZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlRheFJlcHJlc2VudGF0aXZlUGFydHlOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1uYW1lXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4UmVwcmVzZW50YXRpdmVQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS10YXgtcmVwcmVzZW50YXRpdmUtcGFydHktc2NoZW1lLWlkXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4UmVwcmVzZW50YXRpdmVQYXJ0eVNjaGVtZUlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1yZXByZXNlbnRhdGl2ZS1wYXJ0eS1zY2hlbWUtaWRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhSZXByZXNlbnRhdGl2ZVBhcnR5U2NoZW1lSWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtdGF4LXJlcHJlc2VudGF0aXZlLXBhcnR5LXZrbi10Y2tuXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4UmVwcmVzZW50YXRpdmVQYXJ0eVZrblRja24nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtdGF4LXJlcHJlc2VudGF0aXZlLXBhcnR5LXZrbi10Y2tuXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4UmVwcmVzZW50YXRpdmVQYXJ0eVZrblRja25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXNvdXJjZS1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXNvdXJjZS1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4RXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpUYXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXRheC1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS10YXgtZXhjaGFuZ2UtcmF0ZS1kYXRlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VGF4RXhjaGFuZ2VSYXRlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtdGF4LWV4Y2hhbmdlLXJhdGUtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGF4RXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAjdGF4RXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgI3RheEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRheEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInRheEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YXhFeGNoYW5nZVJhdGVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICB0YXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICB0YXhFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS1zb3VyY2UtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlByaWNpbmdFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtcHJpY2luZy1leGNoYW5nZS1yYXRlLXNvdXJjZS1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtdGFyZ2V0LWN1cnJlbmN5LWNvZGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcmljaW5nRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXByaWNpbmctZXhjaGFuZ2UtcmF0ZS10YXJnZXQtY3VycmVuY3ktY29kZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNpbmdFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcHJpY2luZy1leGNoYW5nZS1yYXRlLWNhbGN1bGF0aW9uLXJhdGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtZGF0ZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlByaWNpbmdFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wcmljaW5nLWV4Y2hhbmdlLXJhdGUtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgI3ByaWNpbmdFeGNoYW5nZVJhdGVEYXRlSW5wdXRcclxuICAgICAgICAgICAgICAjcHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInByaWNpbmdFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJwcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByaWNpbmdFeGNoYW5nZVJhdGVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBwcmljaW5nRXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgcHJpY2luZ0V4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcGF5bWVudC1leGNoYW5nZS1yYXRlLXNvdXJjZS1jdXJyZW5jeS1jb2RlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50RXhjaGFuZ2VSYXRlU291cmNlQ3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS10YXJnZXQtY3VycmVuY3ktY29kZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEV4Y2hhbmdlUmF0ZVRhcmdldEN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LWV4Y2hhbmdlLXJhdGUtY2FsY3VsYXRpb24tcmF0ZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1jYWxjdWxhdGlvbi1yYXRlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEV4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1kYXRlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGF5bWVudEV4Y2hhbmdlUmF0ZURhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtZXhjaGFuZ2UtcmF0ZS1kYXRlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50RXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAjcGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICNwYXltZW50RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudEV4Y2hhbmdlUmF0ZURhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHBheW1lbnRFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICBwYXltZW50RXhjaGFuZ2VSYXRlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICAgICAgICAgZm9yPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZVNvdXJjZUN1cnJlbmN5Q29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtc291cmNlLWN1cnJlbmN5LWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVTb3VyY2VDdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAgICAgICAgIGZvcj1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVUYXJnZXRDdXJyZW5jeUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLXRhcmdldC1jdXJyZW5jeS1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlVGFyZ2V0Q3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgICAgICAgICBmb3I9XCJpbnZvaWNlLXBheW1lbnQtYWx0ZXJuYXRpdmUtZXhjaGFuZ2UtcmF0ZS1jYWxjdWxhdGlvbi1yYXRlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtYWx0ZXJuYXRpdmUtZXhjaGFuZ2UtcmF0ZS1jYWxjdWxhdGlvbi1yYXRlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcGF5bWVudC1hbHRlcm5hdGl2ZS1leGNoYW5nZS1yYXRlLWRhdGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGlkPVwiaW52b2ljZS1wYXltZW50LWFsdGVybmF0aXZlLWV4Y2hhbmdlLXJhdGUtZGF0ZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAjcGF5bWVudEFsdGVybmF0aXZlRXhjaGFuZ2VSYXRlRGF0ZUlucHV0XHJcbiAgICAgICAgICAgICAgI3BheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInBheW1lbnRBbHRlcm5hdGl2ZUV4Y2hhbmdlUmF0ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICBwYXltZW50QWx0ZXJuYXRpdmVFeGNoYW5nZVJhdGVEYXRlRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWxpbmUtZXh0ZW5zaW9uLWFtb3VudFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbExpbmVFeHRlbnNpb25BbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWxpbmUtZXh0ZW5zaW9uLWFtb3VudFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbExpbmVFeHRlbnNpb25BbW91bnRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC10YXgtZXhjbHVzaXZlLWFtb3VudFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbFRheEV4Y2x1c2l2ZUFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtdGF4LWV4Y2x1c2l2ZS1hbW91bnRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbE1vbmV0YXJ5VG90YWxUYXhFeGNsdXNpdmVBbW91bnRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC10YXgtaW5jbHVzaXZlLWFtb3VudFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkxlZ2FsTW9uZXRhcnlUb3RhbFRheEluY2x1c2l2ZUFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtdGF4LWluY2x1c2l2ZS1hbW91bnRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbE1vbmV0YXJ5VG90YWxUYXhJbmNsdXNpdmVBbW91bnRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC1hbGxvd2FuY2UtdG90YWwtYW1vdW50XCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6TGVnYWxNb25ldGFyeVRvdGFsQWxsb3dhbmNlVG90YWxBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWFsbG93YW5jZS10b3RhbC1hbW91bnRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbE1vbmV0YXJ5VG90YWxBbGxvd2FuY2VUb3RhbEFtb3VudFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLWNoYXJnZS10b3RhbC1hbW91bnRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpMZWdhbE1vbmV0YXJ5VG90YWxDaGFyZ2VUb3RhbEFtb3VudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtY2hhcmdlLXRvdGFsLWFtb3VudFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbENoYXJnZVRvdGFsQW1vdW50XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtcGF5YWJsZS1yb3VuZGluZy1hbW91bnRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpMZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlUm91bmRpbmdBbW91bnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWxlZ2FsLW1vbmV0YXJ5LXRvdGFsLXBheWFibGUtcm91bmRpbmctYW1vdW50XCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxNb25ldGFyeVRvdGFsUGF5YWJsZVJvdW5kaW5nQW1vdW50XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtbGVnYWwtbW9uZXRhcnktdG90YWwtcGF5YWJsZS1hbW91bnRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpMZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlQW1vdW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1sZWdhbC1tb25ldGFyeS10b3RhbC1wYXlhYmxlLWFtb3VudFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLW5vdGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50VGVybXNOb3RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXBheW1lbnQtdGVybXMtbm90ZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBheW1lbnRUZXJtc05vdGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjUxMlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1wYXltZW50LXRlcm1zLXBheW1lbnQtZHVlLWRhdGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpQYXltZW50VGVybXNQYXltZW50RHVlRGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImludm9pY2UtcGF5bWVudC10ZXJtcy1wYXltZW50LWR1ZS1kYXRlXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAjcGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVJbnB1dFxyXG4gICAgICAgICAgICAgICNwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cInBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICBwYXltZW50VGVybXNQYXltZW50RHVlRGF0ZURhdGVwaWNrZXIubWFudWFsRGF0ZUNoYW5nZShudWxsLCB0cnVlKVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1jdXN0LWludi1pZFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkN1c3RJbnZJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1jdXN0LWludi1pZFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImN1c3RJbnZJZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWlzLWNhbmNlbGVkXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNDYW5jZWxlZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLWlzLWNhbmNlbGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNDYW5jZWxlZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWNhbmNlbC1jb2RlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FuY2VsQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1jYW5jZWwtY29kZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhbmNlbENvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWNhbmNlbC1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhbmNlbERlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWNhbmNlbC1kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhbmNlbERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVzb3VyY2UtZG9jLXR5cGVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZXNvdXJjZURvY1R5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLXJlc291cmNlLWRvYy10eXBlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVzb3VyY2VEb2NUeXBlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVzb3VyY2UtZG9jLWVudHJ5XCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVzb3VyY2VEb2NFbnRyeScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZXNvdXJjZS1kb2MtZW50cnlcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNvdXJjZURvY0VudHJ5XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI2NFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1zdGF0dXNcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpTdGF0dXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgaWQ9XCJpbnZvaWNlLXN0YXR1c1wiIGZvcm1Db250cm9sTmFtZT1cInN0YXR1c1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVjZWl2ZXItcmVzcG9uc2VcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpSZWNlaXZlclJlc3BvbnNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIGlkPVwiaW52b2ljZS1yZWNlaXZlci1yZXNwb25zZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlY2VpdmVyUmVzcG9uc2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZWNlaXZlci1yZXNwb25zZS1kZXNjXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVjZWl2ZXJSZXNwb25zZURlc2MnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtcmVjZWl2ZXItcmVzcG9uc2UtZGVzY1wiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlY2VpdmVyUmVzcG9uc2VEZXNjXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxMDI0XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLWRvYy10eXBlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RG9jVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBpZD1cImludm9pY2UtZG9jLXR5cGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkb2NUeXBlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJpbnZvaWNlLWlzLWVhcmNoaXZlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNFQXJjaGl2ZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLWlzLWVhcmNoaXZlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNFQXJjaGl2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwiaW52b2ljZVwiPlxyXG4gICAgICB7eyAnQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2FicC1idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcbiJdfQ==