@ama-pt/agora-design-system 0.18.0 → 1.0.0

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 (2243) hide show
  1. package/README.md +9 -6
  2. package/artifacts/dist/agora-BmHZWHqH.mjs +9 -0
  3. package/artifacts/dist/agora-BmHZWHqH.mjs.map +1 -0
  4. package/artifacts/dist/arrow-curve-right-B8MoMdCY.mjs +17 -0
  5. package/artifacts/dist/arrow-curve-right-B8MoMdCY.mjs.map +1 -0
  6. package/artifacts/dist/arrow-down-left-lYAsLq7h.mjs +17 -0
  7. package/artifacts/dist/arrow-down-left-lYAsLq7h.mjs.map +1 -0
  8. package/artifacts/dist/arrow-down-right-DmjZ2JDe.mjs +17 -0
  9. package/artifacts/dist/arrow-down-right-DmjZ2JDe.mjs.map +1 -0
  10. package/artifacts/dist/arrow-loop-DRz27_eb.mjs +17 -0
  11. package/artifacts/dist/arrow-loop-DRz27_eb.mjs.map +1 -0
  12. package/artifacts/dist/arrow-right-n2f-Zi5H.mjs +17 -0
  13. package/artifacts/dist/arrow-right-n2f-Zi5H.mjs.map +1 -0
  14. package/artifacts/dist/arrow-up-right-DdRxifRs.mjs +17 -0
  15. package/artifacts/dist/arrow-up-right-DdRxifRs.mjs.map +1 -0
  16. package/artifacts/dist/bold-arrow-BA0qQakj.mjs +17 -0
  17. package/artifacts/dist/bold-arrow-BA0qQakj.mjs.map +1 -0
  18. package/artifacts/dist/bold-line-DbzDY-pC.mjs +18 -0
  19. package/artifacts/dist/bold-line-DbzDY-pC.mjs.map +1 -0
  20. package/artifacts/dist/circle-left-l-BhK2j4EB.mjs +18 -0
  21. package/artifacts/dist/circle-left-l-BhK2j4EB.mjs.map +1 -0
  22. package/artifacts/dist/circle-left-xxl-DuntH1wN.mjs +18 -0
  23. package/artifacts/dist/circle-left-xxl-DuntH1wN.mjs.map +1 -0
  24. package/artifacts/dist/circle-right-l-D6fz78vF.mjs +18 -0
  25. package/artifacts/dist/circle-right-l-D6fz78vF.mjs.map +1 -0
  26. package/artifacts/dist/circle-right-xxl-KaMkrBHr.mjs +18 -0
  27. package/artifacts/dist/circle-right-xxl-KaMkrBHr.mjs.map +1 -0
  28. package/artifacts/dist/detail-attention-BDB0Np5q.mjs +17 -0
  29. package/artifacts/dist/detail-attention-BDB0Np5q.mjs.map +1 -0
  30. package/artifacts/dist/detail-chat-J4Fnbkue.mjs +18 -0
  31. package/artifacts/dist/detail-chat-J4Fnbkue.mjs.map +1 -0
  32. package/artifacts/dist/detail-fluid-MKIfE5I2.mjs +18 -0
  33. package/artifacts/dist/detail-fluid-MKIfE5I2.mjs.map +1 -0
  34. package/artifacts/dist/detail-movement-syj--UAU.mjs +18 -0
  35. package/artifacts/dist/detail-movement-syj--UAU.mjs.map +1 -0
  36. package/artifacts/dist/detail-talk-DK69AJfb.mjs +17 -0
  37. package/artifacts/dist/detail-talk-DK69AJfb.mjs.map +1 -0
  38. package/artifacts/dist/drag-dots-CyRC22we.mjs +9 -0
  39. package/artifacts/dist/drag-dots-CyRC22we.mjs.map +1 -0
  40. package/artifacts/dist/index.css +1 -0
  41. package/artifacts/dist/index.mjs +9500 -0
  42. package/artifacts/dist/index.mjs.map +1 -0
  43. package/artifacts/dist/index.umd.js +6 -0
  44. package/artifacts/dist/index.umd.js.map +1 -0
  45. package/artifacts/dist/line-airplay-BWnaXraO.mjs +16 -0
  46. package/artifacts/dist/line-airplay-BWnaXraO.mjs.map +1 -0
  47. package/artifacts/dist/line-alert-circle-CyYzIaKL.mjs +30 -0
  48. package/artifacts/dist/line-alert-circle-CyYzIaKL.mjs.map +1 -0
  49. package/artifacts/dist/line-alert-triangle-B8MP3AKI.mjs +16 -0
  50. package/artifacts/dist/line-alert-triangle-B8MP3AKI.mjs.map +1 -0
  51. package/artifacts/dist/line-arrow-down-DnHl70Fu.mjs +16 -0
  52. package/artifacts/dist/line-arrow-down-DnHl70Fu.mjs.map +1 -0
  53. package/artifacts/dist/line-arrow-down-anchor-1Ik_PAda.mjs +16 -0
  54. package/artifacts/dist/line-arrow-down-anchor-1Ik_PAda.mjs.map +1 -0
  55. package/artifacts/dist/line-arrow-down-circle-c8Cfdkoo.mjs +16 -0
  56. package/artifacts/dist/line-arrow-down-circle-c8Cfdkoo.mjs.map +1 -0
  57. package/artifacts/dist/line-arrow-left-DIkoyYVj.mjs +16 -0
  58. package/artifacts/dist/line-arrow-left-DIkoyYVj.mjs.map +1 -0
  59. package/artifacts/dist/line-arrow-left-anchor-BLqBxK_6.mjs +16 -0
  60. package/artifacts/dist/line-arrow-left-anchor-BLqBxK_6.mjs.map +1 -0
  61. package/artifacts/dist/line-arrow-left-circle-DcoCo5gO.mjs +16 -0
  62. package/artifacts/dist/line-arrow-left-circle-DcoCo5gO.mjs.map +1 -0
  63. package/artifacts/dist/line-arrow-right-CE4B5Ims.mjs +16 -0
  64. package/artifacts/dist/line-arrow-right-CE4B5Ims.mjs.map +1 -0
  65. package/artifacts/dist/line-arrow-right-anchor-Cpape9ux.mjs +16 -0
  66. package/artifacts/dist/line-arrow-right-anchor-Cpape9ux.mjs.map +1 -0
  67. package/artifacts/dist/line-arrow-right-circle-Bt6V93yV.mjs +16 -0
  68. package/artifacts/dist/line-arrow-right-circle-Bt6V93yV.mjs.map +1 -0
  69. package/artifacts/dist/line-arrow-up-BWWF_Qvp.mjs +16 -0
  70. package/artifacts/dist/line-arrow-up-BWWF_Qvp.mjs.map +1 -0
  71. package/artifacts/dist/line-arrow-up-anchor-BGAtSCUC.mjs +16 -0
  72. package/artifacts/dist/line-arrow-up-anchor-BGAtSCUC.mjs.map +1 -0
  73. package/artifacts/dist/line-arrow-up-circle-Bee73qj3.mjs +16 -0
  74. package/artifacts/dist/line-arrow-up-circle-Bee73qj3.mjs.map +1 -0
  75. package/artifacts/dist/line-at-sign-B_WfKdyo.mjs +16 -0
  76. package/artifacts/dist/line-at-sign-B_WfKdyo.mjs.map +1 -0
  77. package/artifacts/dist/line-award-BodOdWCz.mjs +16 -0
  78. package/artifacts/dist/line-award-BodOdWCz.mjs.map +1 -0
  79. package/artifacts/dist/line-bell-BX4eSYbX.mjs +16 -0
  80. package/artifacts/dist/line-bell-BX4eSYbX.mjs.map +1 -0
  81. package/artifacts/dist/line-book-open-Gyde1vIg.mjs +16 -0
  82. package/artifacts/dist/line-book-open-Gyde1vIg.mjs.map +1 -0
  83. package/artifacts/dist/line-bookmark-BwJyAxPR.mjs +16 -0
  84. package/artifacts/dist/line-bookmark-BwJyAxPR.mjs.map +1 -0
  85. package/artifacts/dist/line-bookmark-card-5pT1fP8k.mjs +16 -0
  86. package/artifacts/dist/line-bookmark-card-5pT1fP8k.mjs.map +1 -0
  87. package/artifacts/dist/line-briefcase-BJIIJf3e.mjs +16 -0
  88. package/artifacts/dist/line-briefcase-BJIIJf3e.mjs.map +1 -0
  89. package/artifacts/dist/line-buildings-CJydHeDZ.mjs +16 -0
  90. package/artifacts/dist/line-buildings-CJydHeDZ.mjs.map +1 -0
  91. package/artifacts/dist/line-bullet-WK8KE3Nz.mjs +16 -0
  92. package/artifacts/dist/line-bullet-WK8KE3Nz.mjs.map +1 -0
  93. package/artifacts/dist/line-bus-LL3fl8O6.mjs +16 -0
  94. package/artifacts/dist/line-bus-LL3fl8O6.mjs.map +1 -0
  95. package/artifacts/dist/line-calculator-Cf5x884o.mjs +23 -0
  96. package/artifacts/dist/line-calculator-Cf5x884o.mjs.map +1 -0
  97. package/artifacts/dist/line-calendar-CAqjGIBb.mjs +16 -0
  98. package/artifacts/dist/line-calendar-CAqjGIBb.mjs.map +1 -0
  99. package/artifacts/dist/line-camera-BPZ2ZeL-.mjs +23 -0
  100. package/artifacts/dist/line-camera-BPZ2ZeL-.mjs.map +1 -0
  101. package/artifacts/dist/line-chat-IBADwXfi.mjs +9 -0
  102. package/artifacts/dist/line-chat-IBADwXfi.mjs.map +1 -0
  103. package/artifacts/dist/line-check-CbZk3c9L.mjs +16 -0
  104. package/artifacts/dist/line-check-CbZk3c9L.mjs.map +1 -0
  105. package/artifacts/dist/line-check-all-0HIc8qFI.mjs +16 -0
  106. package/artifacts/dist/line-check-all-0HIc8qFI.mjs.map +1 -0
  107. package/artifacts/dist/line-check-circle-cYKoWFAd.mjs +16 -0
  108. package/artifacts/dist/line-check-circle-cYKoWFAd.mjs.map +1 -0
  109. package/artifacts/dist/line-chevron-down-B3sQSuhs.mjs +16 -0
  110. package/artifacts/dist/line-chevron-down-B3sQSuhs.mjs.map +1 -0
  111. package/artifacts/dist/line-chevron-left-B1lIDR2x.mjs +16 -0
  112. package/artifacts/dist/line-chevron-left-B1lIDR2x.mjs.map +1 -0
  113. package/artifacts/dist/line-chevron-right-BsvTj2M9.mjs +16 -0
  114. package/artifacts/dist/line-chevron-right-BsvTj2M9.mjs.map +1 -0
  115. package/artifacts/dist/line-chevron-up-CV_qj_vu.mjs +16 -0
  116. package/artifacts/dist/line-chevron-up-CV_qj_vu.mjs.map +1 -0
  117. package/artifacts/dist/line-chevrons-down-g6XVun5j.mjs +23 -0
  118. package/artifacts/dist/line-chevrons-down-g6XVun5j.mjs.map +1 -0
  119. package/artifacts/dist/line-chevrons-left-D5cNOdri.mjs +23 -0
  120. package/artifacts/dist/line-chevrons-left-D5cNOdri.mjs.map +1 -0
  121. package/artifacts/dist/line-chevrons-right-BqJYSv9v.mjs +23 -0
  122. package/artifacts/dist/line-chevrons-right-BqJYSv9v.mjs.map +1 -0
  123. package/artifacts/dist/line-chevrons-up-6rkZvqA3.mjs +23 -0
  124. package/artifacts/dist/line-chevrons-up-6rkZvqA3.mjs.map +1 -0
  125. package/artifacts/dist/line-clock-BGfnIgE4.mjs +23 -0
  126. package/artifacts/dist/line-clock-BGfnIgE4.mjs.map +1 -0
  127. package/artifacts/dist/line-coffee-BDTbXYHT.mjs +16 -0
  128. package/artifacts/dist/line-coffee-BDTbXYHT.mjs.map +1 -0
  129. package/artifacts/dist/line-court-NcV985Ta.mjs +16 -0
  130. package/artifacts/dist/line-court-NcV985Ta.mjs.map +1 -0
  131. package/artifacts/dist/line-credit-card-dZddhcpw.mjs +16 -0
  132. package/artifacts/dist/line-credit-card-dZddhcpw.mjs.map +1 -0
  133. package/artifacts/dist/line-dashboard-DCRAsJzp.mjs +72 -0
  134. package/artifacts/dist/line-dashboard-DCRAsJzp.mjs.map +1 -0
  135. package/artifacts/dist/line-delete-D4IGiXnx.mjs +9 -0
  136. package/artifacts/dist/line-delete-D4IGiXnx.mjs.map +1 -0
  137. package/artifacts/dist/line-document-D5IX3wii.mjs +16 -0
  138. package/artifacts/dist/line-document-D5IX3wii.mjs.map +1 -0
  139. package/artifacts/dist/line-download-D3BjkK0M.mjs +30 -0
  140. package/artifacts/dist/line-download-D3BjkK0M.mjs.map +1 -0
  141. package/artifacts/dist/line-driving-_mFgAsxY.mjs +16 -0
  142. package/artifacts/dist/line-driving-_mFgAsxY.mjs.map +1 -0
  143. package/artifacts/dist/line-edit-9OSt9bj5.mjs +23 -0
  144. package/artifacts/dist/line-edit-9OSt9bj5.mjs.map +1 -0
  145. package/artifacts/dist/line-external-link-CzV1zt56.mjs +30 -0
  146. package/artifacts/dist/line-external-link-CzV1zt56.mjs.map +1 -0
  147. package/artifacts/dist/line-eye-BODs9cSf.mjs +9 -0
  148. package/artifacts/dist/line-eye-BODs9cSf.mjs.map +1 -0
  149. package/artifacts/dist/line-eye-off-BwWZVfYl.mjs +9 -0
  150. package/artifacts/dist/line-eye-off-BwWZVfYl.mjs.map +1 -0
  151. package/artifacts/dist/line-facebook-Dbs04NuV.mjs +16 -0
  152. package/artifacts/dist/line-facebook-Dbs04NuV.mjs.map +1 -0
  153. package/artifacts/dist/line-file-BzYfmsK-.mjs +9 -0
  154. package/artifacts/dist/line-file-BzYfmsK-.mjs.map +1 -0
  155. package/artifacts/dist/line-file-share-BDPMlp3T.mjs +16 -0
  156. package/artifacts/dist/line-file-share-BDPMlp3T.mjs.map +1 -0
  157. package/artifacts/dist/line-filter-BLbRgK5q.mjs +16 -0
  158. package/artifacts/dist/line-filter-BLbRgK5q.mjs.map +1 -0
  159. package/artifacts/dist/line-flag-C869WIjo.mjs +9 -0
  160. package/artifacts/dist/line-flag-C869WIjo.mjs.map +1 -0
  161. package/artifacts/dist/line-folder-BvahNZxP.mjs +16 -0
  162. package/artifacts/dist/line-folder-BvahNZxP.mjs.map +1 -0
  163. package/artifacts/dist/line-globe-BxGB7Rya.mjs +16 -0
  164. package/artifacts/dist/line-globe-BxGB7Rya.mjs.map +1 -0
  165. package/artifacts/dist/line-hardware-settings-CP-T5at-.mjs +23 -0
  166. package/artifacts/dist/line-hardware-settings-CP-T5at-.mjs.map +1 -0
  167. package/artifacts/dist/line-health-xpe_yAPF.mjs +16 -0
  168. package/artifacts/dist/line-health-xpe_yAPF.mjs.map +1 -0
  169. package/artifacts/dist/line-help-support-C1WckTeE.mjs +16 -0
  170. package/artifacts/dist/line-help-support-C1WckTeE.mjs.map +1 -0
  171. package/artifacts/dist/line-home-Bq8nP6W2.mjs +16 -0
  172. package/artifacts/dist/line-home-Bq8nP6W2.mjs.map +1 -0
  173. package/artifacts/dist/line-info-mark-BBmQDEPd.mjs +16 -0
  174. package/artifacts/dist/line-info-mark-BBmQDEPd.mjs.map +1 -0
  175. package/artifacts/dist/line-instagram-DIgb62RM.mjs +23 -0
  176. package/artifacts/dist/line-instagram-DIgb62RM.mjs.map +1 -0
  177. package/artifacts/dist/line-layers-menu-BCElaXvM.mjs +30 -0
  178. package/artifacts/dist/line-layers-menu-BCElaXvM.mjs.map +1 -0
  179. package/artifacts/dist/line-linkedin-BwvrJOaZ.mjs +30 -0
  180. package/artifacts/dist/line-linkedin-BwvrJOaZ.mjs.map +1 -0
  181. package/artifacts/dist/line-list-1BeIvOqf.mjs +51 -0
  182. package/artifacts/dist/line-list-1BeIvOqf.mjs.map +1 -0
  183. package/artifacts/dist/line-loader-B7kcvx6i.mjs +65 -0
  184. package/artifacts/dist/line-loader-B7kcvx6i.mjs.map +1 -0
  185. package/artifacts/dist/line-lock-Bz1c0Qg_.mjs +16 -0
  186. package/artifacts/dist/line-lock-Bz1c0Qg_.mjs.map +1 -0
  187. package/artifacts/dist/line-log-in-0XjnY3DS.mjs +30 -0
  188. package/artifacts/dist/line-log-in-0XjnY3DS.mjs.map +1 -0
  189. package/artifacts/dist/line-log-out-Be1vNUO8.mjs +30 -0
  190. package/artifacts/dist/line-log-out-Be1vNUO8.mjs.map +1 -0
  191. package/artifacts/dist/line-mail-BM4oU1Cb.mjs +16 -0
  192. package/artifacts/dist/line-mail-BM4oU1Cb.mjs.map +1 -0
  193. package/artifacts/dist/line-mail-open-Dd2IiCeK.mjs +9 -0
  194. package/artifacts/dist/line-mail-open-Dd2IiCeK.mjs.map +1 -0
  195. package/artifacts/dist/line-map-C21RAFdm.mjs +16 -0
  196. package/artifacts/dist/line-map-C21RAFdm.mjs.map +1 -0
  197. package/artifacts/dist/line-map-pin-kjbPUdcx.mjs +23 -0
  198. package/artifacts/dist/line-map-pin-kjbPUdcx.mjs.map +1 -0
  199. package/artifacts/dist/line-mega-phone-B7t0tfLS.mjs +16 -0
  200. package/artifacts/dist/line-mega-phone-B7t0tfLS.mjs.map +1 -0
  201. package/artifacts/dist/line-menu-CYuqUsM-.mjs +30 -0
  202. package/artifacts/dist/line-menu-CYuqUsM-.mjs.map +1 -0
  203. package/artifacts/dist/line-mic-off-8NlUihDj.mjs +16 -0
  204. package/artifacts/dist/line-mic-off-8NlUihDj.mjs.map +1 -0
  205. package/artifacts/dist/line-mic-on-spKBPsUu.mjs +16 -0
  206. package/artifacts/dist/line-mic-on-spKBPsUu.mjs.map +1 -0
  207. package/artifacts/dist/line-minus-CaVcWkS-.mjs +16 -0
  208. package/artifacts/dist/line-minus-CaVcWkS-.mjs.map +1 -0
  209. package/artifacts/dist/line-minus-circle-YZvJcxR2.mjs +23 -0
  210. package/artifacts/dist/line-minus-circle-YZvJcxR2.mjs.map +1 -0
  211. package/artifacts/dist/line-money-taxes-DH6QfKKL.mjs +16 -0
  212. package/artifacts/dist/line-money-taxes-DH6QfKKL.mjs.map +1 -0
  213. package/artifacts/dist/line-monitor-DUEdEGY1.mjs +16 -0
  214. package/artifacts/dist/line-monitor-DUEdEGY1.mjs.map +1 -0
  215. package/artifacts/dist/line-more-horizontal-CJ2M9CoR.mjs +30 -0
  216. package/artifacts/dist/line-more-horizontal-CJ2M9CoR.mjs.map +1 -0
  217. package/artifacts/dist/line-more-vertical-jUtqPfx7.mjs +9 -0
  218. package/artifacts/dist/line-more-vertical-jUtqPfx7.mjs.map +1 -0
  219. package/artifacts/dist/line-movie-BWJN9R2q.mjs +9 -0
  220. package/artifacts/dist/line-movie-BWJN9R2q.mjs.map +1 -0
  221. package/artifacts/dist/line-music-Bh0ivoUc.mjs +9 -0
  222. package/artifacts/dist/line-music-Bh0ivoUc.mjs.map +1 -0
  223. package/artifacts/dist/line-package-CE1hKWHW.mjs +16 -0
  224. package/artifacts/dist/line-package-CE1hKWHW.mjs.map +1 -0
  225. package/artifacts/dist/line-paperclip-BfpDKOjT.mjs +16 -0
  226. package/artifacts/dist/line-paperclip-BfpDKOjT.mjs.map +1 -0
  227. package/artifacts/dist/line-plane-BSbdY4B9.mjs +16 -0
  228. package/artifacts/dist/line-plane-BSbdY4B9.mjs.map +1 -0
  229. package/artifacts/dist/line-plus-Dcvte5l7.mjs +9 -0
  230. package/artifacts/dist/line-plus-Dcvte5l7.mjs.map +1 -0
  231. package/artifacts/dist/line-plus-circle-vNGIsEUG.mjs +16 -0
  232. package/artifacts/dist/line-plus-circle-vNGIsEUG.mjs.map +1 -0
  233. package/artifacts/dist/line-print-BmI9Ny86.mjs +16 -0
  234. package/artifacts/dist/line-print-BmI9Ny86.mjs.map +1 -0
  235. package/artifacts/dist/line-question-mark-uBwxCj4-.mjs +16 -0
  236. package/artifacts/dist/line-question-mark-uBwxCj4-.mjs.map +1 -0
  237. package/artifacts/dist/line-refresh-ccw-Ke5eAqw3.mjs +9 -0
  238. package/artifacts/dist/line-refresh-ccw-Ke5eAqw3.mjs.map +1 -0
  239. package/artifacts/dist/line-search-tLoB3guT.mjs +16 -0
  240. package/artifacts/dist/line-search-tLoB3guT.mjs.map +1 -0
  241. package/artifacts/dist/line-settings-DXg1k1qQ.mjs +23 -0
  242. package/artifacts/dist/line-settings-DXg1k1qQ.mjs.map +1 -0
  243. package/artifacts/dist/line-share-ycr5TxYz.mjs +16 -0
  244. package/artifacts/dist/line-share-ycr5TxYz.mjs.map +1 -0
  245. package/artifacts/dist/line-shield-CvPsZ8kb.mjs +16 -0
  246. package/artifacts/dist/line-shield-CvPsZ8kb.mjs.map +1 -0
  247. package/artifacts/dist/line-smartphone-pn15MVJ_.mjs +16 -0
  248. package/artifacts/dist/line-smartphone-pn15MVJ_.mjs.map +1 -0
  249. package/artifacts/dist/line-smile-sad-Bmp316wL.mjs +37 -0
  250. package/artifacts/dist/line-smile-sad-Bmp316wL.mjs.map +1 -0
  251. package/artifacts/dist/line-social-security-DONOVxvT.mjs +30 -0
  252. package/artifacts/dist/line-social-security-DONOVxvT.mjs.map +1 -0
  253. package/artifacts/dist/line-sort-alpha-down-CPkM5mtz.mjs +16 -0
  254. package/artifacts/dist/line-sort-alpha-down-CPkM5mtz.mjs.map +1 -0
  255. package/artifacts/dist/line-sort-alpha-up-Bc_ykmlT.mjs +23 -0
  256. package/artifacts/dist/line-sort-alpha-up-Bc_ykmlT.mjs.map +1 -0
  257. package/artifacts/dist/line-sort-generic-down-Cu8WyLMj.mjs +9 -0
  258. package/artifacts/dist/line-sort-generic-down-Cu8WyLMj.mjs.map +1 -0
  259. package/artifacts/dist/line-sort-generic-up-iCV8WAIp.mjs +9 -0
  260. package/artifacts/dist/line-sort-generic-up-iCV8WAIp.mjs.map +1 -0
  261. package/artifacts/dist/line-sort-vertical-BhJF09g5.mjs +9 -0
  262. package/artifacts/dist/line-sort-vertical-BhJF09g5.mjs.map +1 -0
  263. package/artifacts/dist/line-star-DRxlXXj7.mjs +16 -0
  264. package/artifacts/dist/line-star-DRxlXXj7.mjs.map +1 -0
  265. package/artifacts/dist/line-straight-CP8KZBNh.mjs +9 -0
  266. package/artifacts/dist/line-straight-CP8KZBNh.mjs.map +1 -0
  267. package/artifacts/dist/line-tag-CUvDdaiF.mjs +9 -0
  268. package/artifacts/dist/line-tag-CUvDdaiF.mjs.map +1 -0
  269. package/artifacts/dist/line-target-BYfRFPW4.mjs +23 -0
  270. package/artifacts/dist/line-target-BYfRFPW4.mjs.map +1 -0
  271. package/artifacts/dist/line-thumbs-down-DavNX6us.mjs +16 -0
  272. package/artifacts/dist/line-thumbs-down-DavNX6us.mjs.map +1 -0
  273. package/artifacts/dist/line-thumbs-up-hYodXLe9.mjs +16 -0
  274. package/artifacts/dist/line-thumbs-up-hYodXLe9.mjs.map +1 -0
  275. package/artifacts/dist/line-ticket-D-P-ZR_6.mjs +16 -0
  276. package/artifacts/dist/line-ticket-D-P-ZR_6.mjs.map +1 -0
  277. package/artifacts/dist/line-trash-Cv6jv93F.mjs +16 -0
  278. package/artifacts/dist/line-trash-Cv6jv93F.mjs.map +1 -0
  279. package/artifacts/dist/line-tree-Nw7AEEG-.mjs +16 -0
  280. package/artifacts/dist/line-tree-Nw7AEEG-.mjs.map +1 -0
  281. package/artifacts/dist/line-truck-BgiJghNK.mjs +9 -0
  282. package/artifacts/dist/line-truck-BgiJghNK.mjs.map +1 -0
  283. package/artifacts/dist/line-twitter-bFsVWqEt.mjs +16 -0
  284. package/artifacts/dist/line-twitter-bFsVWqEt.mjs.map +1 -0
  285. package/artifacts/dist/line-twitter-x-wWjr2MKY.mjs +15 -0
  286. package/artifacts/dist/line-twitter-x-wWjr2MKY.mjs.map +1 -0
  287. package/artifacts/dist/line-unlock-PXl0EQIa.mjs +9 -0
  288. package/artifacts/dist/line-unlock-PXl0EQIa.mjs.map +1 -0
  289. package/artifacts/dist/line-upload-DHphNhIL.mjs +30 -0
  290. package/artifacts/dist/line-upload-DHphNhIL.mjs.map +1 -0
  291. package/artifacts/dist/line-user-B8teZBi7.mjs +16 -0
  292. package/artifacts/dist/line-user-B8teZBi7.mjs.map +1 -0
  293. package/artifacts/dist/line-user-group-PKm2Bgmf.mjs +16 -0
  294. package/artifacts/dist/line-user-group-PKm2Bgmf.mjs.map +1 -0
  295. package/artifacts/dist/line-video-off-BeGslMfh.mjs +16 -0
  296. package/artifacts/dist/line-video-off-BeGslMfh.mjs.map +1 -0
  297. package/artifacts/dist/line-video-on-VrJ-pqls.mjs +16 -0
  298. package/artifacts/dist/line-video-on-VrJ-pqls.mjs.map +1 -0
  299. package/artifacts/dist/line-volume-max-D9LtibvN.mjs +9 -0
  300. package/artifacts/dist/line-volume-max-D9LtibvN.mjs.map +1 -0
  301. package/artifacts/dist/line-volume-min-BUphvaEP.mjs +9 -0
  302. package/artifacts/dist/line-volume-min-BUphvaEP.mjs.map +1 -0
  303. package/artifacts/dist/line-volume-mute-C3hXqN_l.mjs +9 -0
  304. package/artifacts/dist/line-volume-mute-C3hXqN_l.mjs.map +1 -0
  305. package/artifacts/dist/line-volume-off-Bl7r3daC.mjs +16 -0
  306. package/artifacts/dist/line-volume-off-Bl7r3daC.mjs.map +1 -0
  307. package/artifacts/dist/line-wallet-DGUeUvgi.mjs +9 -0
  308. package/artifacts/dist/line-wallet-DGUeUvgi.mjs.map +1 -0
  309. package/artifacts/dist/line-wifi-nE0W0Dqe.mjs +9 -0
  310. package/artifacts/dist/line-wifi-nE0W0Dqe.mjs.map +1 -0
  311. package/artifacts/dist/line-x-EYXDQAB1.mjs +9 -0
  312. package/artifacts/dist/line-x-EYXDQAB1.mjs.map +1 -0
  313. package/artifacts/dist/line-x-circle-BSVtpm5Q.mjs +30 -0
  314. package/artifacts/dist/line-x-circle-BSVtpm5Q.mjs.map +1 -0
  315. package/artifacts/dist/line-youtube-C_pFdE1_.mjs +23 -0
  316. package/artifacts/dist/line-youtube-C_pFdE1_.mjs.map +1 -0
  317. package/artifacts/dist/line-zig-CWSqc6Fw.mjs +18 -0
  318. package/artifacts/dist/line-zig-CWSqc6Fw.mjs.map +1 -0
  319. package/artifacts/dist/line-zig-zag-TxwOMIxf.mjs +18 -0
  320. package/artifacts/dist/line-zig-zag-TxwOMIxf.mjs.map +1 -0
  321. package/artifacts/dist/solid-airplay-CT7RRjBg.mjs +16 -0
  322. package/artifacts/dist/solid-airplay-CT7RRjBg.mjs.map +1 -0
  323. package/artifacts/dist/solid-alert-circle-iILtiNWn.mjs +16 -0
  324. package/artifacts/dist/solid-alert-circle-iILtiNWn.mjs.map +1 -0
  325. package/artifacts/dist/solid-alert-triangle-zSUf2OLz.mjs +16 -0
  326. package/artifacts/dist/solid-alert-triangle-zSUf2OLz.mjs.map +1 -0
  327. package/artifacts/dist/solid-arrow-down-CX5JrUuD.mjs +9 -0
  328. package/artifacts/dist/solid-arrow-down-CX5JrUuD.mjs.map +1 -0
  329. package/artifacts/dist/solid-arrow-down-anchor-CBEKEuwD.mjs +16 -0
  330. package/artifacts/dist/solid-arrow-down-anchor-CBEKEuwD.mjs.map +1 -0
  331. package/artifacts/dist/solid-arrow-down-circle-DzG3htuU.mjs +16 -0
  332. package/artifacts/dist/solid-arrow-down-circle-DzG3htuU.mjs.map +1 -0
  333. package/artifacts/dist/solid-arrow-left-CyI5Jp34.mjs +9 -0
  334. package/artifacts/dist/solid-arrow-left-CyI5Jp34.mjs.map +1 -0
  335. package/artifacts/dist/solid-arrow-left-anchor-KIYCVwa3.mjs +16 -0
  336. package/artifacts/dist/solid-arrow-left-anchor-KIYCVwa3.mjs.map +1 -0
  337. package/artifacts/dist/solid-arrow-left-circle-CMhznJGN.mjs +16 -0
  338. package/artifacts/dist/solid-arrow-left-circle-CMhznJGN.mjs.map +1 -0
  339. package/artifacts/dist/solid-arrow-right-anchor-klXwk51M.mjs +16 -0
  340. package/artifacts/dist/solid-arrow-right-anchor-klXwk51M.mjs.map +1 -0
  341. package/artifacts/dist/solid-arrow-right-circle-Dlt-duIk.mjs +16 -0
  342. package/artifacts/dist/solid-arrow-right-circle-Dlt-duIk.mjs.map +1 -0
  343. package/artifacts/dist/solid-arrow-right-qKB7Du8n.mjs +9 -0
  344. package/artifacts/dist/solid-arrow-right-qKB7Du8n.mjs.map +1 -0
  345. package/artifacts/dist/solid-arrow-up-BO_loNqc.mjs +9 -0
  346. package/artifacts/dist/solid-arrow-up-BO_loNqc.mjs.map +1 -0
  347. package/artifacts/dist/solid-arrow-up-anchor-BKZVSnhn.mjs +16 -0
  348. package/artifacts/dist/solid-arrow-up-anchor-BKZVSnhn.mjs.map +1 -0
  349. package/artifacts/dist/solid-arrow-up-circle-Is76Hjia.mjs +16 -0
  350. package/artifacts/dist/solid-arrow-up-circle-Is76Hjia.mjs.map +1 -0
  351. package/artifacts/dist/solid-at-sign-B_WfKdyo.mjs +16 -0
  352. package/artifacts/dist/solid-at-sign-B_WfKdyo.mjs.map +1 -0
  353. package/artifacts/dist/solid-award-Di_C_RO0.mjs +9 -0
  354. package/artifacts/dist/solid-award-Di_C_RO0.mjs.map +1 -0
  355. package/artifacts/dist/solid-bell-CJrlCAhM.mjs +9 -0
  356. package/artifacts/dist/solid-bell-CJrlCAhM.mjs.map +1 -0
  357. package/artifacts/dist/solid-book-open-BfLxRgyb.mjs +16 -0
  358. package/artifacts/dist/solid-book-open-BfLxRgyb.mjs.map +1 -0
  359. package/artifacts/dist/solid-bookmark-DhCU3Bpl.mjs +9 -0
  360. package/artifacts/dist/solid-bookmark-DhCU3Bpl.mjs.map +1 -0
  361. package/artifacts/dist/solid-bookmark-card-Cx3XFRpC.mjs +9 -0
  362. package/artifacts/dist/solid-bookmark-card-Cx3XFRpC.mjs.map +1 -0
  363. package/artifacts/dist/solid-briefcase-CW2CUBvW.mjs +16 -0
  364. package/artifacts/dist/solid-briefcase-CW2CUBvW.mjs.map +1 -0
  365. package/artifacts/dist/solid-buildings-CqKELo8z.mjs +16 -0
  366. package/artifacts/dist/solid-buildings-CqKELo8z.mjs.map +1 -0
  367. package/artifacts/dist/solid-bullet-D_W-NMzx.mjs +9 -0
  368. package/artifacts/dist/solid-bullet-D_W-NMzx.mjs.map +1 -0
  369. package/artifacts/dist/solid-bus-BjkjP6JF.mjs +16 -0
  370. package/artifacts/dist/solid-bus-BjkjP6JF.mjs.map +1 -0
  371. package/artifacts/dist/solid-calculator-B1z2MoxO.mjs +16 -0
  372. package/artifacts/dist/solid-calculator-B1z2MoxO.mjs.map +1 -0
  373. package/artifacts/dist/solid-calendar-B-lr4pRu.mjs +16 -0
  374. package/artifacts/dist/solid-calendar-B-lr4pRu.mjs.map +1 -0
  375. package/artifacts/dist/solid-camera-DyR-lfxz.mjs +16 -0
  376. package/artifacts/dist/solid-camera-DyR-lfxz.mjs.map +1 -0
  377. package/artifacts/dist/solid-chat-CMjPFcul.mjs +9 -0
  378. package/artifacts/dist/solid-chat-CMjPFcul.mjs.map +1 -0
  379. package/artifacts/dist/solid-check-CbZk3c9L.mjs +16 -0
  380. package/artifacts/dist/solid-check-CbZk3c9L.mjs.map +1 -0
  381. package/artifacts/dist/solid-check-all-0HIc8qFI.mjs +16 -0
  382. package/artifacts/dist/solid-check-all-0HIc8qFI.mjs.map +1 -0
  383. package/artifacts/dist/solid-check-circle--TrUqUcc.mjs +16 -0
  384. package/artifacts/dist/solid-check-circle--TrUqUcc.mjs.map +1 -0
  385. package/artifacts/dist/solid-chevron-down-B3sQSuhs.mjs +16 -0
  386. package/artifacts/dist/solid-chevron-down-B3sQSuhs.mjs.map +1 -0
  387. package/artifacts/dist/solid-chevron-left-Bq0z72NT.mjs +16 -0
  388. package/artifacts/dist/solid-chevron-left-Bq0z72NT.mjs.map +1 -0
  389. package/artifacts/dist/solid-chevron-right-BsvTj2M9.mjs +16 -0
  390. package/artifacts/dist/solid-chevron-right-BsvTj2M9.mjs.map +1 -0
  391. package/artifacts/dist/solid-chevron-up-Bz446Fjn.mjs +16 -0
  392. package/artifacts/dist/solid-chevron-up-Bz446Fjn.mjs.map +1 -0
  393. package/artifacts/dist/solid-chevrons-down-CZVmuzMN.mjs +9 -0
  394. package/artifacts/dist/solid-chevrons-down-CZVmuzMN.mjs.map +1 -0
  395. package/artifacts/dist/solid-chevrons-left-CPoYihuy.mjs +9 -0
  396. package/artifacts/dist/solid-chevrons-left-CPoYihuy.mjs.map +1 -0
  397. package/artifacts/dist/solid-chevrons-right-DVWJzOT1.mjs +9 -0
  398. package/artifacts/dist/solid-chevrons-right-DVWJzOT1.mjs.map +1 -0
  399. package/artifacts/dist/solid-chevrons-up-BMucqcuI.mjs +9 -0
  400. package/artifacts/dist/solid-chevrons-up-BMucqcuI.mjs.map +1 -0
  401. package/artifacts/dist/solid-clock-Blaco-4T.mjs +16 -0
  402. package/artifacts/dist/solid-clock-Blaco-4T.mjs.map +1 -0
  403. package/artifacts/dist/solid-coffee-Cuy78lZv.mjs +16 -0
  404. package/artifacts/dist/solid-coffee-Cuy78lZv.mjs.map +1 -0
  405. package/artifacts/dist/solid-court-C0gj8xN-.mjs +16 -0
  406. package/artifacts/dist/solid-court-C0gj8xN-.mjs.map +1 -0
  407. package/artifacts/dist/solid-credit-card-DVtYZKEg.mjs +16 -0
  408. package/artifacts/dist/solid-credit-card-DVtYZKEg.mjs.map +1 -0
  409. package/artifacts/dist/solid-dashboard-0VyWUmku.mjs +72 -0
  410. package/artifacts/dist/solid-dashboard-0VyWUmku.mjs.map +1 -0
  411. package/artifacts/dist/solid-delete-A2DvUg-1.mjs +9 -0
  412. package/artifacts/dist/solid-delete-A2DvUg-1.mjs.map +1 -0
  413. package/artifacts/dist/solid-document-DVWx0xF7.mjs +9 -0
  414. package/artifacts/dist/solid-document-DVWx0xF7.mjs.map +1 -0
  415. package/artifacts/dist/solid-download-CS0fEB85.mjs +30 -0
  416. package/artifacts/dist/solid-download-CS0fEB85.mjs.map +1 -0
  417. package/artifacts/dist/solid-driving-CDmZMkb-.mjs +16 -0
  418. package/artifacts/dist/solid-driving-CDmZMkb-.mjs.map +1 -0
  419. package/artifacts/dist/solid-edit-Cb8mTNDc.mjs +9 -0
  420. package/artifacts/dist/solid-edit-Cb8mTNDc.mjs.map +1 -0
  421. package/artifacts/dist/solid-external-link-ecodBt_c.mjs +30 -0
  422. package/artifacts/dist/solid-external-link-ecodBt_c.mjs.map +1 -0
  423. package/artifacts/dist/solid-eye-DEvHWA5Z.mjs +9 -0
  424. package/artifacts/dist/solid-eye-DEvHWA5Z.mjs.map +1 -0
  425. package/artifacts/dist/solid-eye-off-Y3H8Hpxt.mjs +9 -0
  426. package/artifacts/dist/solid-eye-off-Y3H8Hpxt.mjs.map +1 -0
  427. package/artifacts/dist/solid-facebook-Cs3SwdaS.mjs +9 -0
  428. package/artifacts/dist/solid-facebook-Cs3SwdaS.mjs.map +1 -0
  429. package/artifacts/dist/solid-file-ZTr4auT0.mjs +9 -0
  430. package/artifacts/dist/solid-file-ZTr4auT0.mjs.map +1 -0
  431. package/artifacts/dist/solid-file-share-mnXTWdo6.mjs +16 -0
  432. package/artifacts/dist/solid-file-share-mnXTWdo6.mjs.map +1 -0
  433. package/artifacts/dist/solid-filter-CZP5ysMS.mjs +9 -0
  434. package/artifacts/dist/solid-filter-CZP5ysMS.mjs.map +1 -0
  435. package/artifacts/dist/solid-flag-B_wRXQ2v.mjs +9 -0
  436. package/artifacts/dist/solid-flag-B_wRXQ2v.mjs.map +1 -0
  437. package/artifacts/dist/solid-folder-P6AYl1CG.mjs +9 -0
  438. package/artifacts/dist/solid-folder-P6AYl1CG.mjs.map +1 -0
  439. package/artifacts/dist/solid-globe-BxGB7Rya.mjs +16 -0
  440. package/artifacts/dist/solid-globe-BxGB7Rya.mjs.map +1 -0
  441. package/artifacts/dist/solid-hardware-settings-BsSxijop.mjs +16 -0
  442. package/artifacts/dist/solid-hardware-settings-BsSxijop.mjs.map +1 -0
  443. package/artifacts/dist/solid-health-xpe_yAPF.mjs +16 -0
  444. package/artifacts/dist/solid-health-xpe_yAPF.mjs.map +1 -0
  445. package/artifacts/dist/solid-help-support-DEfn1qOc.mjs +9 -0
  446. package/artifacts/dist/solid-help-support-DEfn1qOc.mjs.map +1 -0
  447. package/artifacts/dist/solid-home-DbOM72CM.mjs +16 -0
  448. package/artifacts/dist/solid-home-DbOM72CM.mjs.map +1 -0
  449. package/artifacts/dist/solid-info-mark-CkiMhR98.mjs +16 -0
  450. package/artifacts/dist/solid-info-mark-CkiMhR98.mjs.map +1 -0
  451. package/artifacts/dist/solid-instagram-dFoonqpB.mjs +16 -0
  452. package/artifacts/dist/solid-instagram-dFoonqpB.mjs.map +1 -0
  453. package/artifacts/dist/solid-layers-menu-K5z6Zm9a.mjs +16 -0
  454. package/artifacts/dist/solid-layers-menu-K5z6Zm9a.mjs.map +1 -0
  455. package/artifacts/dist/solid-linkedin-BON4bfmF.mjs +9 -0
  456. package/artifacts/dist/solid-linkedin-BON4bfmF.mjs.map +1 -0
  457. package/artifacts/dist/solid-list-1BeIvOqf.mjs +51 -0
  458. package/artifacts/dist/solid-list-1BeIvOqf.mjs.map +1 -0
  459. package/artifacts/dist/solid-loader-B7kcvx6i.mjs +65 -0
  460. package/artifacts/dist/solid-loader-B7kcvx6i.mjs.map +1 -0
  461. package/artifacts/dist/solid-lock-NkvOHDIt.mjs +16 -0
  462. package/artifacts/dist/solid-lock-NkvOHDIt.mjs.map +1 -0
  463. package/artifacts/dist/solid-log-in-0XjnY3DS.mjs +30 -0
  464. package/artifacts/dist/solid-log-in-0XjnY3DS.mjs.map +1 -0
  465. package/artifacts/dist/solid-log-out-Be1vNUO8.mjs +30 -0
  466. package/artifacts/dist/solid-log-out-Be1vNUO8.mjs.map +1 -0
  467. package/artifacts/dist/solid-mail-DeBwducj.mjs +16 -0
  468. package/artifacts/dist/solid-mail-DeBwducj.mjs.map +1 -0
  469. package/artifacts/dist/solid-mail-open-BH9yBQjU.mjs +9 -0
  470. package/artifacts/dist/solid-mail-open-BH9yBQjU.mjs.map +1 -0
  471. package/artifacts/dist/solid-map-LEhls5fx.mjs +16 -0
  472. package/artifacts/dist/solid-map-LEhls5fx.mjs.map +1 -0
  473. package/artifacts/dist/solid-map-pin-BVb-3Vzu.mjs +9 -0
  474. package/artifacts/dist/solid-map-pin-BVb-3Vzu.mjs.map +1 -0
  475. package/artifacts/dist/solid-mega-phone-CpvfoRJL.mjs +16 -0
  476. package/artifacts/dist/solid-mega-phone-CpvfoRJL.mjs.map +1 -0
  477. package/artifacts/dist/solid-menu-CYuqUsM-.mjs +30 -0
  478. package/artifacts/dist/solid-menu-CYuqUsM-.mjs.map +1 -0
  479. package/artifacts/dist/solid-mic-off-CEQHtc18.mjs +9 -0
  480. package/artifacts/dist/solid-mic-off-CEQHtc18.mjs.map +1 -0
  481. package/artifacts/dist/solid-mic-on-BmZBy1wd.mjs +16 -0
  482. package/artifacts/dist/solid-mic-on-BmZBy1wd.mjs.map +1 -0
  483. package/artifacts/dist/solid-minus-CaVcWkS-.mjs +16 -0
  484. package/artifacts/dist/solid-minus-CaVcWkS-.mjs.map +1 -0
  485. package/artifacts/dist/solid-minus-circle-BLZIX0en.mjs +16 -0
  486. package/artifacts/dist/solid-minus-circle-BLZIX0en.mjs.map +1 -0
  487. package/artifacts/dist/solid-money-taxes-DS98Crhf.mjs +16 -0
  488. package/artifacts/dist/solid-money-taxes-DS98Crhf.mjs.map +1 -0
  489. package/artifacts/dist/solid-monitor-D_OJfufu.mjs +9 -0
  490. package/artifacts/dist/solid-monitor-D_OJfufu.mjs.map +1 -0
  491. package/artifacts/dist/solid-more-horizontal-CJ2M9CoR.mjs +30 -0
  492. package/artifacts/dist/solid-more-horizontal-CJ2M9CoR.mjs.map +1 -0
  493. package/artifacts/dist/solid-more-vertical-jUtqPfx7.mjs +9 -0
  494. package/artifacts/dist/solid-more-vertical-jUtqPfx7.mjs.map +1 -0
  495. package/artifacts/dist/solid-movie-CISseVf5.mjs +9 -0
  496. package/artifacts/dist/solid-movie-CISseVf5.mjs.map +1 -0
  497. package/artifacts/dist/solid-music-DqGRxIgM.mjs +9 -0
  498. package/artifacts/dist/solid-music-DqGRxIgM.mjs.map +1 -0
  499. package/artifacts/dist/solid-package-Cml-SIak.mjs +16 -0
  500. package/artifacts/dist/solid-package-Cml-SIak.mjs.map +1 -0
  501. package/artifacts/dist/solid-paperclip-BfpDKOjT.mjs +16 -0
  502. package/artifacts/dist/solid-paperclip-BfpDKOjT.mjs.map +1 -0
  503. package/artifacts/dist/solid-plane-DBfQUeU0.mjs +16 -0
  504. package/artifacts/dist/solid-plane-DBfQUeU0.mjs.map +1 -0
  505. package/artifacts/dist/solid-plus-Dcvte5l7.mjs +9 -0
  506. package/artifacts/dist/solid-plus-Dcvte5l7.mjs.map +1 -0
  507. package/artifacts/dist/solid-plus-circle-Cf8cg-zW.mjs +16 -0
  508. package/artifacts/dist/solid-plus-circle-Cf8cg-zW.mjs.map +1 -0
  509. package/artifacts/dist/solid-print-DdU8uBcE.mjs +16 -0
  510. package/artifacts/dist/solid-print-DdU8uBcE.mjs.map +1 -0
  511. package/artifacts/dist/solid-question-mark-Chj3QN6q.mjs +9 -0
  512. package/artifacts/dist/solid-question-mark-Chj3QN6q.mjs.map +1 -0
  513. package/artifacts/dist/solid-refresh-ccw-CV7R6gep.mjs +9 -0
  514. package/artifacts/dist/solid-refresh-ccw-CV7R6gep.mjs.map +1 -0
  515. package/artifacts/dist/solid-search-CXc3lnhQ.mjs +9 -0
  516. package/artifacts/dist/solid-search-CXc3lnhQ.mjs.map +1 -0
  517. package/artifacts/dist/solid-settings-Dv1JiBGZ.mjs +9 -0
  518. package/artifacts/dist/solid-settings-Dv1JiBGZ.mjs.map +1 -0
  519. package/artifacts/dist/solid-share-BpTJjztR.mjs +9 -0
  520. package/artifacts/dist/solid-share-BpTJjztR.mjs.map +1 -0
  521. package/artifacts/dist/solid-shield-Buhk2x9X.mjs +16 -0
  522. package/artifacts/dist/solid-shield-Buhk2x9X.mjs.map +1 -0
  523. package/artifacts/dist/solid-smartphone-BYwhxf7g.mjs +16 -0
  524. package/artifacts/dist/solid-smartphone-BYwhxf7g.mjs.map +1 -0
  525. package/artifacts/dist/solid-smile-sad-DekTD0X2.mjs +16 -0
  526. package/artifacts/dist/solid-smile-sad-DekTD0X2.mjs.map +1 -0
  527. package/artifacts/dist/solid-social-security-3CFMj1A-.mjs +16 -0
  528. package/artifacts/dist/solid-social-security-3CFMj1A-.mjs.map +1 -0
  529. package/artifacts/dist/solid-sort-alpha-down-CPkM5mtz.mjs +16 -0
  530. package/artifacts/dist/solid-sort-alpha-down-CPkM5mtz.mjs.map +1 -0
  531. package/artifacts/dist/solid-sort-alpha-up-Bc_ykmlT.mjs +23 -0
  532. package/artifacts/dist/solid-sort-alpha-up-Bc_ykmlT.mjs.map +1 -0
  533. package/artifacts/dist/solid-sort-generic-down-Cu8WyLMj.mjs +9 -0
  534. package/artifacts/dist/solid-sort-generic-down-Cu8WyLMj.mjs.map +1 -0
  535. package/artifacts/dist/solid-sort-generic-up-iCV8WAIp.mjs +9 -0
  536. package/artifacts/dist/solid-sort-generic-up-iCV8WAIp.mjs.map +1 -0
  537. package/artifacts/dist/solid-sort-vertical-BhJF09g5.mjs +9 -0
  538. package/artifacts/dist/solid-sort-vertical-BhJF09g5.mjs.map +1 -0
  539. package/artifacts/dist/solid-star-B4M3yY34.mjs +9 -0
  540. package/artifacts/dist/solid-star-B4M3yY34.mjs.map +1 -0
  541. package/artifacts/dist/solid-tag-DrTNDYKR.mjs +9 -0
  542. package/artifacts/dist/solid-tag-DrTNDYKR.mjs.map +1 -0
  543. package/artifacts/dist/solid-target-wVW1wKsd.mjs +16 -0
  544. package/artifacts/dist/solid-target-wVW1wKsd.mjs.map +1 -0
  545. package/artifacts/dist/solid-thumbs-down-S82cmWj0.mjs +9 -0
  546. package/artifacts/dist/solid-thumbs-down-S82cmWj0.mjs.map +1 -0
  547. package/artifacts/dist/solid-thumbs-up-_ZG8Mp3d.mjs +9 -0
  548. package/artifacts/dist/solid-thumbs-up-_ZG8Mp3d.mjs.map +1 -0
  549. package/artifacts/dist/solid-ticket-Dnm3p6Wi.mjs +9 -0
  550. package/artifacts/dist/solid-ticket-Dnm3p6Wi.mjs.map +1 -0
  551. package/artifacts/dist/solid-trash-5lB6fyxC.mjs +16 -0
  552. package/artifacts/dist/solid-trash-5lB6fyxC.mjs.map +1 -0
  553. package/artifacts/dist/solid-tree-DjDhEbtZ.mjs +9 -0
  554. package/artifacts/dist/solid-tree-DjDhEbtZ.mjs.map +1 -0
  555. package/artifacts/dist/solid-truck-Chv6gpCm.mjs +9 -0
  556. package/artifacts/dist/solid-truck-Chv6gpCm.mjs.map +1 -0
  557. package/artifacts/dist/solid-twitter-55xSFanC.mjs +9 -0
  558. package/artifacts/dist/solid-twitter-55xSFanC.mjs.map +1 -0
  559. package/artifacts/dist/solid-twitter-x-CSJZH-6d.mjs +15 -0
  560. package/artifacts/dist/solid-twitter-x-CSJZH-6d.mjs.map +1 -0
  561. package/artifacts/dist/solid-unlock-0FTr274Z.mjs +9 -0
  562. package/artifacts/dist/solid-unlock-0FTr274Z.mjs.map +1 -0
  563. package/artifacts/dist/solid-upload-FT0yDefS.mjs +30 -0
  564. package/artifacts/dist/solid-upload-FT0yDefS.mjs.map +1 -0
  565. package/artifacts/dist/solid-user-BbVoFJ2R.mjs +9 -0
  566. package/artifacts/dist/solid-user-BbVoFJ2R.mjs.map +1 -0
  567. package/artifacts/dist/solid-user-group-f4Ena9xy.mjs +9 -0
  568. package/artifacts/dist/solid-user-group-f4Ena9xy.mjs.map +1 -0
  569. package/artifacts/dist/solid-video-off-DgldJgXo.mjs +16 -0
  570. package/artifacts/dist/solid-video-off-DgldJgXo.mjs.map +1 -0
  571. package/artifacts/dist/solid-video-on-C3ZXzD5Z.mjs +9 -0
  572. package/artifacts/dist/solid-video-on-C3ZXzD5Z.mjs.map +1 -0
  573. package/artifacts/dist/solid-volume-max-BOexNQ32.mjs +9 -0
  574. package/artifacts/dist/solid-volume-max-BOexNQ32.mjs.map +1 -0
  575. package/artifacts/dist/solid-volume-min-DvN4XS_N.mjs +9 -0
  576. package/artifacts/dist/solid-volume-min-DvN4XS_N.mjs.map +1 -0
  577. package/artifacts/dist/solid-volume-mute-DTtOIBZb.mjs +9 -0
  578. package/artifacts/dist/solid-volume-mute-DTtOIBZb.mjs.map +1 -0
  579. package/artifacts/dist/solid-volume-off-CB9nMabs.mjs +16 -0
  580. package/artifacts/dist/solid-volume-off-CB9nMabs.mjs.map +1 -0
  581. package/artifacts/dist/solid-wallet-B1Gs6W1s.mjs +9 -0
  582. package/artifacts/dist/solid-wallet-B1Gs6W1s.mjs.map +1 -0
  583. package/artifacts/dist/solid-wifi-nE0W0Dqe.mjs +9 -0
  584. package/artifacts/dist/solid-wifi-nE0W0Dqe.mjs.map +1 -0
  585. package/artifacts/dist/solid-x-EYXDQAB1.mjs +9 -0
  586. package/artifacts/dist/solid-x-EYXDQAB1.mjs.map +1 -0
  587. package/artifacts/dist/solid-x-circle-D-azXjMK.mjs +16 -0
  588. package/artifacts/dist/solid-x-circle-D-azXjMK.mjs.map +1 -0
  589. package/artifacts/dist/solid-youtube-bQdqgmwi.mjs +16 -0
  590. package/artifacts/dist/solid-youtube-bQdqgmwi.mjs.map +1 -0
  591. package/artifacts/dist/types/components/accordion/accordion.d.ts +60 -0
  592. package/artifacts/dist/types/components/accordion/index.d.ts +2 -0
  593. package/artifacts/dist/types/components/accordion-group/accordion-group.d.ts +15 -0
  594. package/artifacts/dist/types/components/anchor/anchor.d.ts +67 -0
  595. package/artifacts/dist/types/components/avatar/avatar.d.ts +73 -0
  596. package/artifacts/dist/types/components/avatar/interactive-avatar.d.ts +9 -0
  597. package/artifacts/dist/types/components/avatar/non-interactive-avatar.d.ts +8 -0
  598. package/artifacts/dist/types/components/avatar-group/avatar-group.d.ts +24 -0
  599. package/artifacts/dist/types/components/avatar-group/visible-count-avatar-group.d.ts +9 -0
  600. package/artifacts/dist/types/components/back-to-top/back-to-top.d.ts +31 -0
  601. package/artifacts/dist/types/components/breadcrumb/breadcrumb.d.ts +27 -0
  602. package/artifacts/dist/types/components/breadcrumb/desktop/breadcrumb-desktop.d.ts +4 -0
  603. package/artifacts/dist/types/components/breadcrumb/mobile/breadcrumb-mobile.d.ts +4 -0
  604. package/artifacts/dist/types/components/button/button.d.ts +68 -0
  605. package/artifacts/dist/types/components/button-group/button-group.d.ts +41 -0
  606. package/artifacts/dist/types/components/button-group/index.d.ts +2 -0
  607. package/artifacts/dist/types/components/cards/card-article/card-article.d.ts +49 -0
  608. package/artifacts/dist/types/components/cards/card-article/index.d.ts +2 -0
  609. package/artifacts/dist/types/components/cards/card-collection/card-collection.d.ts +27 -0
  610. package/artifacts/dist/types/components/cards/card-emphasize/card-emphasize.d.ts +31 -0
  611. package/artifacts/dist/types/components/cards/card-error/card-error.d.ts +34 -0
  612. package/artifacts/dist/types/components/cards/card-expandable/card-expandable.d.ts +23 -0
  613. package/artifacts/dist/types/components/cards/card-frame/card-frame.d.ts +27 -0
  614. package/artifacts/dist/types/components/cards/card-full-image/card-full-image.d.ts +16 -0
  615. package/artifacts/dist/types/components/cards/card-hero-helper/card-hero-helper.d.ts +27 -0
  616. package/artifacts/dist/types/components/cards/card-hero-index/card-hero-index.d.ts +19 -0
  617. package/artifacts/dist/types/components/cards/card-hero-sitemap/card-hero-sitemap.d.ts +27 -0
  618. package/artifacts/dist/types/components/cards/card-highlight/card-highlight.d.ts +46 -0
  619. package/artifacts/dist/types/components/cards/card-highlight/shared/inner-highlight-card.d.ts +27 -0
  620. package/artifacts/dist/types/components/cards/card-highlight-newsletter/card-highlight-newsletter.d.ts +22 -0
  621. package/artifacts/dist/types/components/cards/card-highlight-single/card-highlight-single.d.ts +23 -0
  622. package/artifacts/dist/types/components/cards/card-highlight-single/index.d.ts +2 -0
  623. package/artifacts/dist/types/components/cards/card-links/card-links.d.ts +39 -0
  624. package/artifacts/dist/types/components/cards/card-no-results/card-no-results.d.ts +26 -0
  625. package/artifacts/dist/types/components/cards/card-no-results/index.d.ts +2 -0
  626. package/artifacts/dist/types/components/cards/card-search-result/card-search-result.d.ts +39 -0
  627. package/artifacts/dist/types/components/cards/card-single/card-single.d.ts +40 -0
  628. package/artifacts/dist/types/components/cards/card-single/index.d.ts +2 -0
  629. package/artifacts/dist/types/components/cards/card-topic/card-topic.d.ts +51 -0
  630. package/artifacts/dist/types/components/checkbox/checkbox.d.ts +39 -0
  631. package/artifacts/dist/types/components/checkbox-group/checkbox-group.d.ts +35 -0
  632. package/artifacts/dist/types/components/dialog/dialog.d.ts +41 -0
  633. package/artifacts/dist/types/components/dialog/index.d.ts +2 -0
  634. package/artifacts/dist/types/components/drawer/drawer.d.ts +49 -0
  635. package/artifacts/dist/types/components/drawer/index.d.ts +2 -0
  636. package/artifacts/dist/types/components/dropdown/dropdown-option.d.ts +37 -0
  637. package/artifacts/dist/types/components/dropdown/dropdown-section.d.ts +21 -0
  638. package/artifacts/dist/types/components/dropdown/dropdown.d.ts +71 -0
  639. package/artifacts/dist/types/components/dropdown/index.d.ts +7 -0
  640. package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-context.d.ts +28 -0
  641. package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-option.d.ts +17 -0
  642. package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-section.d.ts +12 -0
  643. package/artifacts/dist/types/components/dropdown/internals/internal-dropdown-select-all-section.d.ts +6 -0
  644. package/artifacts/dist/types/components/dropdown/internals/internal-dropdown.d.ts +17 -0
  645. package/artifacts/dist/types/components/dropdown/internals/use-dropdown-state.d.ts +7 -0
  646. package/artifacts/dist/types/components/feedback/feedback.d.ts +31 -0
  647. package/artifacts/dist/types/components/footer/federated-footer/federated-footer-card.d.ts +4 -0
  648. package/artifacts/dist/types/components/footer/federated-footer/federated-footer.d.ts +36 -0
  649. package/artifacts/dist/types/components/glossary-letters/glossary-letters.d.ts +25 -0
  650. package/artifacts/dist/types/components/header/header.d.ts +64 -0
  651. package/artifacts/dist/types/components/header/models/MenuProps.d.ts +10 -0
  652. package/artifacts/dist/types/components/header/models/SearchContentListLinkProps.d.ts +6 -0
  653. package/artifacts/dist/types/components/header/models/SubmenuItemProps.d.ts +24 -0
  654. package/artifacts/dist/types/components/header/models/SubmenuSearchContentProps.d.ts +12 -0
  655. package/artifacts/dist/types/components/header/shared-components/header-burger-navigation/header-burger-primary-navigation.d.ts +15 -0
  656. package/artifacts/dist/types/components/header/shared-components/header-burger-navigation/header-burger-secondary-navigation.d.ts +17 -0
  657. package/artifacts/dist/types/components/header/shared-components/header-general-options/header-general-options.d.ts +37 -0
  658. package/artifacts/dist/types/components/header/shared-components/header-navigation/header-navigation.d.ts +38 -0
  659. package/artifacts/dist/types/components/header/utils/handle-click-menu-item.d.ts +4 -0
  660. package/artifacts/dist/types/components/icon/assets/empty-icon.d.ts +4 -0
  661. package/artifacts/dist/types/components/icon/assets/index.d.ts +6 -0
  662. package/artifacts/dist/types/components/icon/assets/line/line-airplay.d.ts +4 -0
  663. package/artifacts/dist/types/components/icon/assets/line/line-alert-circle.d.ts +4 -0
  664. package/artifacts/dist/types/components/icon/assets/line/line-alert-triangle.d.ts +4 -0
  665. package/artifacts/dist/types/components/icon/assets/line/line-arrow-down-anchor.d.ts +4 -0
  666. package/artifacts/dist/types/components/icon/assets/line/line-arrow-down-circle.d.ts +4 -0
  667. package/artifacts/dist/types/components/icon/assets/line/line-arrow-down.d.ts +4 -0
  668. package/artifacts/dist/types/components/icon/assets/line/line-arrow-left-anchor.d.ts +4 -0
  669. package/artifacts/dist/types/components/icon/assets/line/line-arrow-left-circle.d.ts +4 -0
  670. package/artifacts/dist/types/components/icon/assets/line/line-arrow-left.d.ts +4 -0
  671. package/artifacts/dist/types/components/icon/assets/line/line-arrow-right-anchor.d.ts +4 -0
  672. package/artifacts/dist/types/components/icon/assets/line/line-arrow-right-circle.d.ts +4 -0
  673. package/artifacts/dist/types/components/icon/assets/line/line-arrow-right.d.ts +4 -0
  674. package/artifacts/dist/types/components/icon/assets/line/line-arrow-up-anchor.d.ts +4 -0
  675. package/artifacts/dist/types/components/icon/assets/line/line-arrow-up-circle.d.ts +4 -0
  676. package/artifacts/dist/types/components/icon/assets/line/line-arrow-up.d.ts +4 -0
  677. package/artifacts/dist/types/components/icon/assets/line/line-at-sign.d.ts +4 -0
  678. package/artifacts/dist/types/components/icon/assets/line/line-award.d.ts +4 -0
  679. package/artifacts/dist/types/components/icon/assets/line/line-bell.d.ts +4 -0
  680. package/artifacts/dist/types/components/icon/assets/line/line-book-open.d.ts +4 -0
  681. package/artifacts/dist/types/components/icon/assets/line/line-bookmark-card.d.ts +4 -0
  682. package/artifacts/dist/types/components/icon/assets/line/line-bookmark.d.ts +4 -0
  683. package/artifacts/dist/types/components/icon/assets/line/line-briefcase.d.ts +4 -0
  684. package/artifacts/dist/types/components/icon/assets/line/line-buildings.d.ts +4 -0
  685. package/artifacts/dist/types/components/icon/assets/line/line-bullet.d.ts +4 -0
  686. package/artifacts/dist/types/components/icon/assets/line/line-bus.d.ts +4 -0
  687. package/artifacts/dist/types/components/icon/assets/line/line-calculator.d.ts +4 -0
  688. package/artifacts/dist/types/components/icon/assets/line/line-calendar.d.ts +4 -0
  689. package/artifacts/dist/types/components/icon/assets/line/line-camera.d.ts +4 -0
  690. package/artifacts/dist/types/components/icon/assets/line/line-chat.d.ts +4 -0
  691. package/artifacts/dist/types/components/icon/assets/line/line-check-all.d.ts +4 -0
  692. package/artifacts/dist/types/components/icon/assets/line/line-check-circle.d.ts +4 -0
  693. package/artifacts/dist/types/components/icon/assets/line/line-check.d.ts +4 -0
  694. package/artifacts/dist/types/components/icon/assets/line/line-chevron-down.d.ts +4 -0
  695. package/artifacts/dist/types/components/icon/assets/line/line-chevron-left.d.ts +4 -0
  696. package/artifacts/dist/types/components/icon/assets/line/line-chevron-right.d.ts +4 -0
  697. package/artifacts/dist/types/components/icon/assets/line/line-chevron-up.d.ts +4 -0
  698. package/artifacts/dist/types/components/icon/assets/line/line-chevrons-down.d.ts +4 -0
  699. package/artifacts/dist/types/components/icon/assets/line/line-chevrons-left.d.ts +4 -0
  700. package/artifacts/dist/types/components/icon/assets/line/line-chevrons-right.d.ts +4 -0
  701. package/artifacts/dist/types/components/icon/assets/line/line-chevrons-up.d.ts +4 -0
  702. package/artifacts/dist/types/components/icon/assets/line/line-clock.d.ts +4 -0
  703. package/artifacts/dist/types/components/icon/assets/line/line-coffee.d.ts +4 -0
  704. package/artifacts/dist/types/components/icon/assets/line/line-court.d.ts +4 -0
  705. package/artifacts/dist/types/components/icon/assets/line/line-credit-card.d.ts +4 -0
  706. package/artifacts/dist/types/components/icon/assets/line/line-dashboard.d.ts +4 -0
  707. package/artifacts/dist/types/components/icon/assets/line/line-delete.d.ts +4 -0
  708. package/artifacts/dist/types/components/icon/assets/line/line-document.d.ts +4 -0
  709. package/artifacts/dist/types/components/icon/assets/line/line-download.d.ts +4 -0
  710. package/artifacts/dist/types/components/icon/assets/line/line-driving.d.ts +4 -0
  711. package/artifacts/dist/types/components/icon/assets/line/line-edit.d.ts +4 -0
  712. package/artifacts/dist/types/components/icon/assets/line/line-external-link.d.ts +4 -0
  713. package/artifacts/dist/types/components/icon/assets/line/line-eye-off.d.ts +4 -0
  714. package/artifacts/dist/types/components/icon/assets/line/line-eye.d.ts +4 -0
  715. package/artifacts/dist/types/components/icon/assets/line/line-facebook.d.ts +4 -0
  716. package/artifacts/dist/types/components/icon/assets/line/line-file-share.d.ts +4 -0
  717. package/artifacts/dist/types/components/icon/assets/line/line-file.d.ts +4 -0
  718. package/artifacts/dist/types/components/icon/assets/line/line-filter.d.ts +4 -0
  719. package/artifacts/dist/types/components/icon/assets/line/line-flag.d.ts +4 -0
  720. package/artifacts/dist/types/components/icon/assets/line/line-folder.d.ts +4 -0
  721. package/artifacts/dist/types/components/icon/assets/line/line-globe.d.ts +4 -0
  722. package/artifacts/dist/types/components/icon/assets/line/line-hardware-settings.d.ts +4 -0
  723. package/artifacts/dist/types/components/icon/assets/line/line-health.d.ts +4 -0
  724. package/artifacts/dist/types/components/icon/assets/line/line-help-support.d.ts +4 -0
  725. package/artifacts/dist/types/components/icon/assets/line/line-home.d.ts +4 -0
  726. package/artifacts/dist/types/components/icon/assets/line/line-info-mark.d.ts +4 -0
  727. package/artifacts/dist/types/components/icon/assets/line/line-instagram.d.ts +4 -0
  728. package/artifacts/dist/types/components/icon/assets/line/line-layers-menu.d.ts +4 -0
  729. package/artifacts/dist/types/components/icon/assets/line/line-linkedin.d.ts +4 -0
  730. package/artifacts/dist/types/components/icon/assets/line/line-list.d.ts +4 -0
  731. package/artifacts/dist/types/components/icon/assets/line/line-loader.d.ts +4 -0
  732. package/artifacts/dist/types/components/icon/assets/line/line-lock.d.ts +4 -0
  733. package/artifacts/dist/types/components/icon/assets/line/line-log-in.d.ts +4 -0
  734. package/artifacts/dist/types/components/icon/assets/line/line-log-out.d.ts +4 -0
  735. package/artifacts/dist/types/components/icon/assets/line/line-mail-open.d.ts +4 -0
  736. package/artifacts/dist/types/components/icon/assets/line/line-mail.d.ts +4 -0
  737. package/artifacts/dist/types/components/icon/assets/line/line-map-pin.d.ts +4 -0
  738. package/artifacts/dist/types/components/icon/assets/line/line-map.d.ts +4 -0
  739. package/artifacts/dist/types/components/icon/assets/line/line-mega-phone.d.ts +4 -0
  740. package/artifacts/dist/types/components/icon/assets/line/line-menu.d.ts +4 -0
  741. package/artifacts/dist/types/components/icon/assets/line/line-mic-off.d.ts +4 -0
  742. package/artifacts/dist/types/components/icon/assets/line/line-mic-on.d.ts +4 -0
  743. package/artifacts/dist/types/components/icon/assets/line/line-minus-circle.d.ts +4 -0
  744. package/artifacts/dist/types/components/icon/assets/line/line-minus.d.ts +4 -0
  745. package/artifacts/dist/types/components/icon/assets/line/line-money-taxes.d.ts +4 -0
  746. package/artifacts/dist/types/components/icon/assets/line/line-monitor.d.ts +4 -0
  747. package/artifacts/dist/types/components/icon/assets/line/line-more-horizontal.d.ts +4 -0
  748. package/artifacts/dist/types/components/icon/assets/line/line-more-vertical.d.ts +4 -0
  749. package/artifacts/dist/types/components/icon/assets/line/line-movie.d.ts +4 -0
  750. package/artifacts/dist/types/components/icon/assets/line/line-music.d.ts +4 -0
  751. package/artifacts/dist/types/components/icon/assets/line/line-package.d.ts +4 -0
  752. package/artifacts/dist/types/components/icon/assets/line/line-paperclip.d.ts +4 -0
  753. package/artifacts/dist/types/components/icon/assets/line/line-plane.d.ts +4 -0
  754. package/artifacts/dist/types/components/icon/assets/line/line-plus-circle.d.ts +4 -0
  755. package/artifacts/dist/types/components/icon/assets/line/line-plus.d.ts +4 -0
  756. package/artifacts/dist/types/components/icon/assets/line/line-print.d.ts +4 -0
  757. package/artifacts/dist/types/components/icon/assets/line/line-question-mark.d.ts +4 -0
  758. package/artifacts/dist/types/components/icon/assets/line/line-refresh-ccw.d.ts +4 -0
  759. package/artifacts/dist/types/components/icon/assets/line/line-search.d.ts +4 -0
  760. package/artifacts/dist/types/components/icon/assets/line/line-settings.d.ts +4 -0
  761. package/artifacts/dist/types/components/icon/assets/line/line-share.d.ts +4 -0
  762. package/artifacts/dist/types/components/icon/assets/line/line-shield.d.ts +4 -0
  763. package/artifacts/dist/types/components/icon/assets/line/line-smartphone.d.ts +4 -0
  764. package/artifacts/dist/types/components/icon/assets/line/line-smile-sad.d.ts +4 -0
  765. package/artifacts/dist/types/components/icon/assets/line/line-social-security.d.ts +4 -0
  766. package/artifacts/dist/types/components/icon/assets/line/line-sort-alpha-down.d.ts +4 -0
  767. package/artifacts/dist/types/components/icon/assets/line/line-sort-alpha-up.d.ts +4 -0
  768. package/artifacts/dist/types/components/icon/assets/line/line-sort-generic-down.d.ts +4 -0
  769. package/artifacts/dist/types/components/icon/assets/line/line-sort-generic-up.d.ts +4 -0
  770. package/artifacts/dist/types/components/icon/assets/line/line-sort-vertical.d.ts +4 -0
  771. package/artifacts/dist/types/components/icon/assets/line/line-star.d.ts +4 -0
  772. package/artifacts/dist/types/components/icon/assets/line/line-tag.d.ts +4 -0
  773. package/artifacts/dist/types/components/icon/assets/line/line-target.d.ts +4 -0
  774. package/artifacts/dist/types/components/icon/assets/line/line-thumbs-down.d.ts +4 -0
  775. package/artifacts/dist/types/components/icon/assets/line/line-thumbs-up.d.ts +4 -0
  776. package/artifacts/dist/types/components/icon/assets/line/line-ticket.d.ts +4 -0
  777. package/artifacts/dist/types/components/icon/assets/line/line-trash.d.ts +4 -0
  778. package/artifacts/dist/types/components/icon/assets/line/line-tree.d.ts +4 -0
  779. package/artifacts/dist/types/components/icon/assets/line/line-truck.d.ts +4 -0
  780. package/artifacts/dist/types/components/icon/assets/line/line-twitter-x.d.ts +4 -0
  781. package/artifacts/dist/types/components/icon/assets/line/line-twitter.d.ts +4 -0
  782. package/artifacts/dist/types/components/icon/assets/line/line-unlock.d.ts +4 -0
  783. package/artifacts/dist/types/components/icon/assets/line/line-upload.d.ts +4 -0
  784. package/artifacts/dist/types/components/icon/assets/line/line-user-group.d.ts +4 -0
  785. package/artifacts/dist/types/components/icon/assets/line/line-user.d.ts +4 -0
  786. package/artifacts/dist/types/components/icon/assets/line/line-video-off.d.ts +4 -0
  787. package/artifacts/dist/types/components/icon/assets/line/line-video-on.d.ts +4 -0
  788. package/artifacts/dist/types/components/icon/assets/line/line-volume-max.d.ts +4 -0
  789. package/artifacts/dist/types/components/icon/assets/line/line-volume-min.d.ts +4 -0
  790. package/artifacts/dist/types/components/icon/assets/line/line-volume-mute.d.ts +4 -0
  791. package/artifacts/dist/types/components/icon/assets/line/line-volume-off.d.ts +4 -0
  792. package/artifacts/dist/types/components/icon/assets/line/line-wallet.d.ts +4 -0
  793. package/artifacts/dist/types/components/icon/assets/line/line-wifi.d.ts +4 -0
  794. package/artifacts/dist/types/components/icon/assets/line/line-x-circle.d.ts +4 -0
  795. package/artifacts/dist/types/components/icon/assets/line/line-x.d.ts +4 -0
  796. package/artifacts/dist/types/components/icon/assets/line/line-youtube.d.ts +4 -0
  797. package/artifacts/dist/types/components/icon/assets/other/agora.d.ts +4 -0
  798. package/artifacts/dist/types/components/icon/assets/other/drag-dots.d.ts +4 -0
  799. package/artifacts/dist/types/components/icon/assets/solid/solid-airplay.d.ts +4 -0
  800. package/artifacts/dist/types/components/icon/assets/solid/solid-alert-circle.d.ts +4 -0
  801. package/artifacts/dist/types/components/icon/assets/solid/solid-alert-triangle.d.ts +4 -0
  802. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-down-anchor.d.ts +4 -0
  803. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-down-circle.d.ts +4 -0
  804. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-down.d.ts +4 -0
  805. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-left-anchor.d.ts +4 -0
  806. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-left-circle.d.ts +4 -0
  807. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-left.d.ts +4 -0
  808. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-right-anchor.d.ts +4 -0
  809. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-right-circle.d.ts +4 -0
  810. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-right.d.ts +4 -0
  811. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-up-anchor.d.ts +4 -0
  812. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-up-circle.d.ts +4 -0
  813. package/artifacts/dist/types/components/icon/assets/solid/solid-arrow-up.d.ts +4 -0
  814. package/artifacts/dist/types/components/icon/assets/solid/solid-at-sign.d.ts +4 -0
  815. package/artifacts/dist/types/components/icon/assets/solid/solid-award.d.ts +4 -0
  816. package/artifacts/dist/types/components/icon/assets/solid/solid-bell.d.ts +4 -0
  817. package/artifacts/dist/types/components/icon/assets/solid/solid-book-open.d.ts +4 -0
  818. package/artifacts/dist/types/components/icon/assets/solid/solid-bookmark-card.d.ts +4 -0
  819. package/artifacts/dist/types/components/icon/assets/solid/solid-bookmark.d.ts +4 -0
  820. package/artifacts/dist/types/components/icon/assets/solid/solid-briefcase.d.ts +4 -0
  821. package/artifacts/dist/types/components/icon/assets/solid/solid-buildings.d.ts +4 -0
  822. package/artifacts/dist/types/components/icon/assets/solid/solid-bullet.d.ts +4 -0
  823. package/artifacts/dist/types/components/icon/assets/solid/solid-bus.d.ts +4 -0
  824. package/artifacts/dist/types/components/icon/assets/solid/solid-calculator.d.ts +4 -0
  825. package/artifacts/dist/types/components/icon/assets/solid/solid-calendar.d.ts +4 -0
  826. package/artifacts/dist/types/components/icon/assets/solid/solid-camera.d.ts +4 -0
  827. package/artifacts/dist/types/components/icon/assets/solid/solid-chat.d.ts +4 -0
  828. package/artifacts/dist/types/components/icon/assets/solid/solid-check-all.d.ts +4 -0
  829. package/artifacts/dist/types/components/icon/assets/solid/solid-check-circle.d.ts +4 -0
  830. package/artifacts/dist/types/components/icon/assets/solid/solid-check.d.ts +4 -0
  831. package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-down.d.ts +4 -0
  832. package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-left.d.ts +4 -0
  833. package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-right.d.ts +4 -0
  834. package/artifacts/dist/types/components/icon/assets/solid/solid-chevron-up.d.ts +4 -0
  835. package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-down.d.ts +4 -0
  836. package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-left.d.ts +4 -0
  837. package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-right.d.ts +4 -0
  838. package/artifacts/dist/types/components/icon/assets/solid/solid-chevrons-up.d.ts +4 -0
  839. package/artifacts/dist/types/components/icon/assets/solid/solid-clock.d.ts +4 -0
  840. package/artifacts/dist/types/components/icon/assets/solid/solid-coffee.d.ts +4 -0
  841. package/artifacts/dist/types/components/icon/assets/solid/solid-court.d.ts +4 -0
  842. package/artifacts/dist/types/components/icon/assets/solid/solid-credit-card.d.ts +4 -0
  843. package/artifacts/dist/types/components/icon/assets/solid/solid-dashboard.d.ts +4 -0
  844. package/artifacts/dist/types/components/icon/assets/solid/solid-delete.d.ts +4 -0
  845. package/artifacts/dist/types/components/icon/assets/solid/solid-document.d.ts +4 -0
  846. package/artifacts/dist/types/components/icon/assets/solid/solid-download.d.ts +4 -0
  847. package/artifacts/dist/types/components/icon/assets/solid/solid-driving.d.ts +4 -0
  848. package/artifacts/dist/types/components/icon/assets/solid/solid-edit.d.ts +4 -0
  849. package/artifacts/dist/types/components/icon/assets/solid/solid-external-link.d.ts +4 -0
  850. package/artifacts/dist/types/components/icon/assets/solid/solid-eye-off.d.ts +4 -0
  851. package/artifacts/dist/types/components/icon/assets/solid/solid-eye.d.ts +4 -0
  852. package/artifacts/dist/types/components/icon/assets/solid/solid-facebook.d.ts +4 -0
  853. package/artifacts/dist/types/components/icon/assets/solid/solid-file-share.d.ts +4 -0
  854. package/artifacts/dist/types/components/icon/assets/solid/solid-file.d.ts +4 -0
  855. package/artifacts/dist/types/components/icon/assets/solid/solid-filter.d.ts +4 -0
  856. package/artifacts/dist/types/components/icon/assets/solid/solid-flag.d.ts +4 -0
  857. package/artifacts/dist/types/components/icon/assets/solid/solid-folder.d.ts +4 -0
  858. package/artifacts/dist/types/components/icon/assets/solid/solid-globe.d.ts +4 -0
  859. package/artifacts/dist/types/components/icon/assets/solid/solid-hardware-settings.d.ts +4 -0
  860. package/artifacts/dist/types/components/icon/assets/solid/solid-health.d.ts +4 -0
  861. package/artifacts/dist/types/components/icon/assets/solid/solid-help-support.d.ts +4 -0
  862. package/artifacts/dist/types/components/icon/assets/solid/solid-home.d.ts +4 -0
  863. package/artifacts/dist/types/components/icon/assets/solid/solid-info-mark.d.ts +4 -0
  864. package/artifacts/dist/types/components/icon/assets/solid/solid-instagram.d.ts +4 -0
  865. package/artifacts/dist/types/components/icon/assets/solid/solid-layers-menu.d.ts +4 -0
  866. package/artifacts/dist/types/components/icon/assets/solid/solid-linkedin.d.ts +4 -0
  867. package/artifacts/dist/types/components/icon/assets/solid/solid-list.d.ts +4 -0
  868. package/artifacts/dist/types/components/icon/assets/solid/solid-loader.d.ts +4 -0
  869. package/artifacts/dist/types/components/icon/assets/solid/solid-lock.d.ts +4 -0
  870. package/artifacts/dist/types/components/icon/assets/solid/solid-log-in.d.ts +4 -0
  871. package/artifacts/dist/types/components/icon/assets/solid/solid-log-out.d.ts +4 -0
  872. package/artifacts/dist/types/components/icon/assets/solid/solid-mail-open.d.ts +4 -0
  873. package/artifacts/dist/types/components/icon/assets/solid/solid-mail.d.ts +4 -0
  874. package/artifacts/dist/types/components/icon/assets/solid/solid-map-pin.d.ts +4 -0
  875. package/artifacts/dist/types/components/icon/assets/solid/solid-map.d.ts +4 -0
  876. package/artifacts/dist/types/components/icon/assets/solid/solid-mega-phone.d.ts +4 -0
  877. package/artifacts/dist/types/components/icon/assets/solid/solid-menu.d.ts +4 -0
  878. package/artifacts/dist/types/components/icon/assets/solid/solid-mic-off.d.ts +4 -0
  879. package/artifacts/dist/types/components/icon/assets/solid/solid-mic-on.d.ts +4 -0
  880. package/artifacts/dist/types/components/icon/assets/solid/solid-minus-circle.d.ts +4 -0
  881. package/artifacts/dist/types/components/icon/assets/solid/solid-minus.d.ts +4 -0
  882. package/artifacts/dist/types/components/icon/assets/solid/solid-money-taxes.d.ts +4 -0
  883. package/artifacts/dist/types/components/icon/assets/solid/solid-monitor.d.ts +4 -0
  884. package/artifacts/dist/types/components/icon/assets/solid/solid-more-horizontal.d.ts +4 -0
  885. package/artifacts/dist/types/components/icon/assets/solid/solid-more-vertical.d.ts +4 -0
  886. package/artifacts/dist/types/components/icon/assets/solid/solid-movie.d.ts +4 -0
  887. package/artifacts/dist/types/components/icon/assets/solid/solid-music.d.ts +4 -0
  888. package/artifacts/dist/types/components/icon/assets/solid/solid-package.d.ts +4 -0
  889. package/artifacts/dist/types/components/icon/assets/solid/solid-paperclip.d.ts +4 -0
  890. package/artifacts/dist/types/components/icon/assets/solid/solid-plane.d.ts +4 -0
  891. package/artifacts/dist/types/components/icon/assets/solid/solid-plus-circle.d.ts +4 -0
  892. package/artifacts/dist/types/components/icon/assets/solid/solid-plus.d.ts +4 -0
  893. package/artifacts/dist/types/components/icon/assets/solid/solid-print.d.ts +4 -0
  894. package/artifacts/dist/types/components/icon/assets/solid/solid-question-mark.d.ts +4 -0
  895. package/artifacts/dist/types/components/icon/assets/solid/solid-refresh-ccw.d.ts +4 -0
  896. package/artifacts/dist/types/components/icon/assets/solid/solid-search.d.ts +4 -0
  897. package/artifacts/dist/types/components/icon/assets/solid/solid-settings.d.ts +4 -0
  898. package/artifacts/dist/types/components/icon/assets/solid/solid-share.d.ts +4 -0
  899. package/artifacts/dist/types/components/icon/assets/solid/solid-shield.d.ts +4 -0
  900. package/artifacts/dist/types/components/icon/assets/solid/solid-smartphone.d.ts +4 -0
  901. package/artifacts/dist/types/components/icon/assets/solid/solid-smile-sad.d.ts +4 -0
  902. package/artifacts/dist/types/components/icon/assets/solid/solid-social-security.d.ts +4 -0
  903. package/artifacts/dist/types/components/icon/assets/solid/solid-sort-alpha-down.d.ts +4 -0
  904. package/artifacts/dist/types/components/icon/assets/solid/solid-sort-alpha-up.d.ts +4 -0
  905. package/artifacts/dist/types/components/icon/assets/solid/solid-sort-generic-down.d.ts +4 -0
  906. package/artifacts/dist/types/components/icon/assets/solid/solid-sort-generic-up.d.ts +4 -0
  907. package/artifacts/dist/types/components/icon/assets/solid/solid-sort-vertical.d.ts +4 -0
  908. package/artifacts/dist/types/components/icon/assets/solid/solid-star.d.ts +4 -0
  909. package/artifacts/dist/types/components/icon/assets/solid/solid-tag.d.ts +4 -0
  910. package/artifacts/dist/types/components/icon/assets/solid/solid-target.d.ts +4 -0
  911. package/artifacts/dist/types/components/icon/assets/solid/solid-thumbs-down.d.ts +4 -0
  912. package/artifacts/dist/types/components/icon/assets/solid/solid-thumbs-up.d.ts +4 -0
  913. package/artifacts/dist/types/components/icon/assets/solid/solid-ticket.d.ts +4 -0
  914. package/artifacts/dist/types/components/icon/assets/solid/solid-trash.d.ts +4 -0
  915. package/artifacts/dist/types/components/icon/assets/solid/solid-tree.d.ts +4 -0
  916. package/artifacts/dist/types/components/icon/assets/solid/solid-truck.d.ts +4 -0
  917. package/artifacts/dist/types/components/icon/assets/solid/solid-twitter-x.d.ts +4 -0
  918. package/artifacts/dist/types/components/icon/assets/solid/solid-twitter.d.ts +4 -0
  919. package/artifacts/dist/types/components/icon/assets/solid/solid-unlock.d.ts +4 -0
  920. package/artifacts/dist/types/components/icon/assets/solid/solid-upload.d.ts +4 -0
  921. package/artifacts/dist/types/components/icon/assets/solid/solid-user-group.d.ts +4 -0
  922. package/artifacts/dist/types/components/icon/assets/solid/solid-user.d.ts +4 -0
  923. package/artifacts/dist/types/components/icon/assets/solid/solid-video-off.d.ts +4 -0
  924. package/artifacts/dist/types/components/icon/assets/solid/solid-video-on.d.ts +4 -0
  925. package/artifacts/dist/types/components/icon/assets/solid/solid-volume-max.d.ts +4 -0
  926. package/artifacts/dist/types/components/icon/assets/solid/solid-volume-min.d.ts +4 -0
  927. package/artifacts/dist/types/components/icon/assets/solid/solid-volume-mute.d.ts +4 -0
  928. package/artifacts/dist/types/components/icon/assets/solid/solid-volume-off.d.ts +4 -0
  929. package/artifacts/dist/types/components/icon/assets/solid/solid-wallet.d.ts +4 -0
  930. package/artifacts/dist/types/components/icon/assets/solid/solid-wifi.d.ts +4 -0
  931. package/artifacts/dist/types/components/icon/assets/solid/solid-x-circle.d.ts +4 -0
  932. package/artifacts/dist/types/components/icon/assets/solid/solid-x.d.ts +4 -0
  933. package/artifacts/dist/types/components/icon/assets/solid/solid-youtube.d.ts +4 -0
  934. package/artifacts/dist/types/components/icon/icon.d.ts +28 -0
  935. package/artifacts/dist/types/components/index.d.ts +57 -0
  936. package/artifacts/dist/types/components/input-date/contexts/date-picker-state.context.d.ts +32 -0
  937. package/artifacts/dist/types/components/input-date/contexts/use-date-picker-state-context.d.ts +59 -0
  938. package/artifacts/dist/types/components/input-date/date-picker-dropdown.d.ts +26 -0
  939. package/artifacts/dist/types/components/input-date/date-text/date-text.d.ts +9 -0
  940. package/artifacts/dist/types/components/input-date/index.d.ts +2 -0
  941. package/artifacts/dist/types/components/input-date/input-date.d.ts +118 -0
  942. package/artifacts/dist/types/components/input-email-bar/input-email-bar.d.ts +39 -0
  943. package/artifacts/dist/types/components/input-number/input-number.d.ts +51 -0
  944. package/artifacts/dist/types/components/input-password/input-password.d.ts +46 -0
  945. package/artifacts/dist/types/components/input-phone/country-phone.model.d.ts +6 -0
  946. package/artifacts/dist/types/components/input-phone/index.d.ts +3 -0
  947. package/artifacts/dist/types/components/input-phone/input-phone.d.ts +83 -0
  948. package/artifacts/dist/types/components/input-phone/resources/config.d.ts +3 -0
  949. package/artifacts/dist/types/components/input-range/index.d.ts +2 -0
  950. package/artifacts/dist/types/components/input-range/input-range.d.ts +63 -0
  951. package/artifacts/dist/types/components/input-search/input-search.d.ts +42 -0
  952. package/artifacts/dist/types/components/input-search-bar/index.d.ts +2 -0
  953. package/artifacts/dist/types/components/input-search-bar/input-search-bar.d.ts +60 -0
  954. package/artifacts/dist/types/components/input-select/index.d.ts +2 -0
  955. package/artifacts/dist/types/components/input-select/input-select.d.ts +106 -0
  956. package/artifacts/dist/types/components/input-text/input-text.d.ts +42 -0
  957. package/artifacts/dist/types/components/input-textarea/input-textarea.d.ts +39 -0
  958. package/artifacts/dist/types/components/link-wrapper/link-wrapper.d.ts +37 -0
  959. package/artifacts/dist/types/components/list/list.d.ts +27 -0
  960. package/artifacts/dist/types/components/loader-dialog/loader-dialog-context.d.ts +12 -0
  961. package/artifacts/dist/types/components/loader-dialog/loader-dialog.d.ts +13 -0
  962. package/artifacts/dist/types/components/loader-dialog/loader-provider.d.ts +9 -0
  963. package/artifacts/dist/types/components/menu-item/menu-item.d.ts +43 -0
  964. package/artifacts/dist/types/components/modal-dialog/index.d.ts +5 -0
  965. package/artifacts/dist/types/components/modal-dialog/modal-config.model.d.ts +12 -0
  966. package/artifacts/dist/types/components/modal-dialog/modal-context.d.ts +24 -0
  967. package/artifacts/dist/types/components/modal-dialog/modal-dialog.d.ts +15 -0
  968. package/artifacts/dist/types/components/modal-dialog/modal-provider.d.ts +14 -0
  969. package/artifacts/dist/types/components/pill/pill.d.ts +38 -0
  970. package/artifacts/dist/types/components/popup-dialog/index.d.ts +6 -0
  971. package/artifacts/dist/types/components/popup-dialog/popup-config.model.d.ts +20 -0
  972. package/artifacts/dist/types/components/popup-dialog/popup-context.d.ts +24 -0
  973. package/artifacts/dist/types/components/popup-dialog/popup-dialog.d.ts +14 -0
  974. package/artifacts/dist/types/components/popup-dialog/popup-dimensions.type.d.ts +1 -0
  975. package/artifacts/dist/types/components/popup-dialog/popup-provider.d.ts +18 -0
  976. package/artifacts/dist/types/components/progress-bar/progress-bar.d.ts +34 -0
  977. package/artifacts/dist/types/components/progress-bar-group/progress-bar-group.d.ts +26 -0
  978. package/artifacts/dist/types/components/radio/radio.d.ts +39 -0
  979. package/artifacts/dist/types/components/radio-button-group/radio-button-group.d.ts +39 -0
  980. package/artifacts/dist/types/components/ratings/index.d.ts +2 -0
  981. package/artifacts/dist/types/components/ratings/rating-buttons/index.d.ts +2 -0
  982. package/artifacts/dist/types/components/ratings/rating-buttons/rating-buttons.d.ts +35 -0
  983. package/artifacts/dist/types/components/ratings/rating-stars/index.d.ts +2 -0
  984. package/artifacts/dist/types/components/ratings/rating-stars/rating-stars.d.ts +57 -0
  985. package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-curve-right.d.ts +4 -0
  986. package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-down-left.d.ts +4 -0
  987. package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-down-right.d.ts +4 -0
  988. package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-loop.d.ts +4 -0
  989. package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-right.d.ts +4 -0
  990. package/artifacts/dist/types/components/scribbles/assets/arrow/arrow-up-right.d.ts +4 -0
  991. package/artifacts/dist/types/components/scribbles/assets/bold/bold-arrow.d.ts +4 -0
  992. package/artifacts/dist/types/components/scribbles/assets/bold/bold-line.d.ts +4 -0
  993. package/artifacts/dist/types/components/scribbles/assets/circle/circle-left-l.d.ts +4 -0
  994. package/artifacts/dist/types/components/scribbles/assets/circle/circle-left-xxl.d.ts +4 -0
  995. package/artifacts/dist/types/components/scribbles/assets/circle/circle-right-l.d.ts +4 -0
  996. package/artifacts/dist/types/components/scribbles/assets/circle/circle-right-xxl.d.ts +4 -0
  997. package/artifacts/dist/types/components/scribbles/assets/detail/detail-attention.d.ts +4 -0
  998. package/artifacts/dist/types/components/scribbles/assets/detail/detail-chat.d.ts +4 -0
  999. package/artifacts/dist/types/components/scribbles/assets/detail/detail-fluid.d.ts +4 -0
  1000. package/artifacts/dist/types/components/scribbles/assets/detail/detail-movement.d.ts +4 -0
  1001. package/artifacts/dist/types/components/scribbles/assets/detail/detail-talk.d.ts +4 -0
  1002. package/artifacts/dist/types/components/scribbles/assets/index.d.ts +6 -0
  1003. package/artifacts/dist/types/components/scribbles/assets/line/line-straight.d.ts +4 -0
  1004. package/artifacts/dist/types/components/scribbles/assets/line/line-zig-zag.d.ts +4 -0
  1005. package/artifacts/dist/types/components/scribbles/assets/line/line-zig.d.ts +4 -0
  1006. package/artifacts/dist/types/components/scribbles/assets/wave/wave-left-l.d.ts +4 -0
  1007. package/artifacts/dist/types/components/scribbles/assets/wave/wave-right-l.d.ts +4 -0
  1008. package/artifacts/dist/types/components/scribbles/assets/wave/wave-right-m.d.ts +4 -0
  1009. package/artifacts/dist/types/components/scribbles/scribbles.d.ts +25 -0
  1010. package/artifacts/dist/types/components/search-pagination/search-page.d.ts +14 -0
  1011. package/artifacts/dist/types/components/search-pagination/search-pagination.d.ts +43 -0
  1012. package/artifacts/dist/types/components/shared/bookmark-icon/bookmark-icon.d.ts +2 -0
  1013. package/artifacts/dist/types/components/shared/feedback/feedback.d.ts +19 -0
  1014. package/artifacts/dist/types/components/sidebar/index.d.ts +5 -0
  1015. package/artifacts/dist/types/components/sidebar/models/button-item-props.interface.d.ts +11 -0
  1016. package/artifacts/dist/types/components/sidebar/models/index.d.ts +3 -0
  1017. package/artifacts/dist/types/components/sidebar/models/link-item-props.interface.d.ts +11 -0
  1018. package/artifacts/dist/types/components/sidebar/models/sidebar-item-ref.interface.d.ts +4 -0
  1019. package/artifacts/dist/types/components/sidebar/models/sidebar-variant.type.d.ts +1 -0
  1020. package/artifacts/dist/types/components/sidebar/sidebar-filter/sidebar-item-filter.d.ts +5 -0
  1021. package/artifacts/dist/types/components/sidebar/sidebar-item-navigation-mobile/sidebar-item-navigation-mobile.d.ts +6 -0
  1022. package/artifacts/dist/types/components/sidebar/sidebar-item.d.ts +29 -0
  1023. package/artifacts/dist/types/components/sidebar/sidebar-navigation/sidebar-item-navigation.d.ts +3 -0
  1024. package/artifacts/dist/types/components/sidebar/sidebar.d.ts +32 -0
  1025. package/artifacts/dist/types/components/sidebar/utils/getParentTreeItem.d.ts +2 -0
  1026. package/artifacts/dist/types/components/sidebar/utils/keyboardSidebarItemHandlers.d.ts +14 -0
  1027. package/artifacts/dist/types/components/sidebar/utils/navigationSidebarItemHandler.d.ts +3 -0
  1028. package/artifacts/dist/types/components/sidebar/utils/openOnCurrentItem.d.ts +3 -0
  1029. package/artifacts/dist/types/components/sidebar/utils/setIconsExpandCollapsed.d.ts +8 -0
  1030. package/artifacts/dist/types/components/sidebar/utils/setInitialSidebarItem.d.ts +2 -0
  1031. package/artifacts/dist/types/components/sidebar/utils/toggleExpandAllSiblingItems.d.ts +2 -0
  1032. package/artifacts/dist/types/components/sidebar/utils/toggleSidebarItem.d.ts +1 -0
  1033. package/artifacts/dist/types/components/sidebar/utils/toggleSidebarItemChildren.d.ts +3 -0
  1034. package/artifacts/dist/types/components/sidebar/utils/treeItemsType.d.ts +2 -0
  1035. package/artifacts/dist/types/components/skip-navigation/index.d.ts +2 -0
  1036. package/artifacts/dist/types/components/skip-navigation/skip-navigation.d.ts +40 -0
  1037. package/artifacts/dist/types/components/status-card/status-card.d.ts +25 -0
  1038. package/artifacts/dist/types/components/step-list/step-list.d.ts +9 -0
  1039. package/artifacts/dist/types/components/switch/switch.d.ts +44 -0
  1040. package/artifacts/dist/types/components/table/table-header-cell.d.ts +20 -0
  1041. package/artifacts/dist/types/components/table/table-pagination.d.ts +50 -0
  1042. package/artifacts/dist/types/components/table/table.d.ts +40 -0
  1043. package/artifacts/dist/types/components/tabs/index.d.ts +8 -0
  1044. package/artifacts/dist/types/components/tabs/tab-body.d.ts +13 -0
  1045. package/artifacts/dist/types/components/tabs/tab.d.ts +15 -0
  1046. package/artifacts/dist/types/components/tabs/tabs.d.ts +32 -0
  1047. package/artifacts/dist/types/components/tag/tag.d.ts +27 -0
  1048. package/artifacts/dist/types/components/timelines/shared/timeline-event/timeline-event.d.ts +42 -0
  1049. package/artifacts/dist/types/components/timelines/timeline-horizontal/timeline-horizontal.d.ts +23 -0
  1050. package/artifacts/dist/types/components/timelines/timeline-vertical/timeline-vertical.d.ts +15 -0
  1051. package/artifacts/dist/types/components/toasts/toast.d.ts +26 -0
  1052. package/artifacts/dist/types/components/tooltip/tooltip.d.ts +46 -0
  1053. package/artifacts/dist/types/components/uploader/button-uploader/button-uploader.d.ts +75 -0
  1054. package/artifacts/dist/types/components/uploader/drag-and-drop-uploader/drag-and-drop-uploader.d.ts +83 -0
  1055. package/artifacts/dist/types/components/uploader/shared/use-file-upload.d.ts +17 -0
  1056. package/artifacts/dist/types/index.d.ts +5 -0
  1057. package/artifacts/dist/types/models/index.d.ts +7 -0
  1058. package/artifacts/dist/types/utils/async-trigger.d.ts +2 -0
  1059. package/artifacts/dist/types/utils/create-synthetic-event.d.ts +2 -0
  1060. package/artifacts/dist/types/utils/expand-ref.d.ts +2 -0
  1061. package/artifacts/dist/types/utils/index.d.ts +7 -0
  1062. package/artifacts/dist/wave-left-l-BZZlEa5G.mjs +18 -0
  1063. package/artifacts/dist/wave-left-l-BZZlEa5G.mjs.map +1 -0
  1064. package/artifacts/dist/wave-right-l-BqtSrnwR.mjs +18 -0
  1065. package/artifacts/dist/wave-right-l-BqtSrnwR.mjs.map +1 -0
  1066. package/artifacts/dist/wave-right-m-bnJX0eFU.mjs +18 -0
  1067. package/artifacts/dist/wave-right-m-bnJX0eFU.mjs.map +1 -0
  1068. package/package.json +37 -26
  1069. package/dist/agora-M2IgdAVl.mjs +0 -9
  1070. package/dist/agora-M2IgdAVl.mjs.map +0 -1
  1071. package/dist/arrow-curve-right-Gk2w5R8M.mjs +0 -17
  1072. package/dist/arrow-curve-right-Gk2w5R8M.mjs.map +0 -1
  1073. package/dist/arrow-down-left-pwXzFS4O.mjs +0 -17
  1074. package/dist/arrow-down-left-pwXzFS4O.mjs.map +0 -1
  1075. package/dist/arrow-down-right-yR8BMoN2.mjs +0 -17
  1076. package/dist/arrow-down-right-yR8BMoN2.mjs.map +0 -1
  1077. package/dist/arrow-loop-FWDUvB9K.mjs +0 -17
  1078. package/dist/arrow-loop-FWDUvB9K.mjs.map +0 -1
  1079. package/dist/arrow-right-NihMndC3.mjs +0 -17
  1080. package/dist/arrow-right-NihMndC3.mjs.map +0 -1
  1081. package/dist/arrow-up-right-f9Gcvxpo.mjs +0 -17
  1082. package/dist/arrow-up-right-f9Gcvxpo.mjs.map +0 -1
  1083. package/dist/bold-arrow-eg0OWrEX.mjs +0 -17
  1084. package/dist/bold-arrow-eg0OWrEX.mjs.map +0 -1
  1085. package/dist/bold-line-lKV2Y9qS.mjs +0 -18
  1086. package/dist/bold-line-lKV2Y9qS.mjs.map +0 -1
  1087. package/dist/circle-left-l-E-qmOxyW.mjs +0 -18
  1088. package/dist/circle-left-l-E-qmOxyW.mjs.map +0 -1
  1089. package/dist/circle-left-xxl-KrdAgtcH.mjs +0 -18
  1090. package/dist/circle-left-xxl-KrdAgtcH.mjs.map +0 -1
  1091. package/dist/circle-right-l-WLMCZ0nR.mjs +0 -18
  1092. package/dist/circle-right-l-WLMCZ0nR.mjs.map +0 -1
  1093. package/dist/circle-right-xxl-OOqHh1_O.mjs +0 -18
  1094. package/dist/circle-right-xxl-OOqHh1_O.mjs.map +0 -1
  1095. package/dist/detail-attention-rh_V3pz4.mjs +0 -17
  1096. package/dist/detail-attention-rh_V3pz4.mjs.map +0 -1
  1097. package/dist/detail-chat-AoR_ehR8.mjs +0 -18
  1098. package/dist/detail-chat-AoR_ehR8.mjs.map +0 -1
  1099. package/dist/detail-fluid-SZOgIi8H.mjs +0 -18
  1100. package/dist/detail-fluid-SZOgIi8H.mjs.map +0 -1
  1101. package/dist/detail-movement-pH3TTsWq.mjs +0 -18
  1102. package/dist/detail-movement-pH3TTsWq.mjs.map +0 -1
  1103. package/dist/detail-talk-VolM0PSs.mjs +0 -17
  1104. package/dist/detail-talk-VolM0PSs.mjs.map +0 -1
  1105. package/dist/drag-dots-MOsc4vRW.mjs +0 -9
  1106. package/dist/drag-dots-MOsc4vRW.mjs.map +0 -1
  1107. package/dist/index.css +0 -1
  1108. package/dist/index.mjs +0 -8953
  1109. package/dist/index.mjs.map +0 -1
  1110. package/dist/index.umd.js +0 -6
  1111. package/dist/index.umd.js.map +0 -1
  1112. package/dist/line-airplay-4Qp9cycj.mjs +0 -16
  1113. package/dist/line-airplay-4Qp9cycj.mjs.map +0 -1
  1114. package/dist/line-alert-circle-5de1BpjD.mjs +0 -30
  1115. package/dist/line-alert-circle-5de1BpjD.mjs.map +0 -1
  1116. package/dist/line-alert-triangle-1Yyw3D1x.mjs +0 -16
  1117. package/dist/line-alert-triangle-1Yyw3D1x.mjs.map +0 -1
  1118. package/dist/line-arrow-down-Vlen-rX6.mjs +0 -16
  1119. package/dist/line-arrow-down-Vlen-rX6.mjs.map +0 -1
  1120. package/dist/line-arrow-down-anchor-yNiq1ECk.mjs +0 -16
  1121. package/dist/line-arrow-down-anchor-yNiq1ECk.mjs.map +0 -1
  1122. package/dist/line-arrow-down-circle-MvVlpnL_.mjs +0 -16
  1123. package/dist/line-arrow-down-circle-MvVlpnL_.mjs.map +0 -1
  1124. package/dist/line-arrow-left-2PT4xo0Y.mjs +0 -16
  1125. package/dist/line-arrow-left-2PT4xo0Y.mjs.map +0 -1
  1126. package/dist/line-arrow-left-anchor-nyGESFyi.mjs +0 -16
  1127. package/dist/line-arrow-left-anchor-nyGESFyi.mjs.map +0 -1
  1128. package/dist/line-arrow-left-circle-h9_cwj5J.mjs +0 -16
  1129. package/dist/line-arrow-left-circle-h9_cwj5J.mjs.map +0 -1
  1130. package/dist/line-arrow-right-M3QG3aip.mjs +0 -16
  1131. package/dist/line-arrow-right-M3QG3aip.mjs.map +0 -1
  1132. package/dist/line-arrow-right-anchor-G_UqqVqn.mjs +0 -16
  1133. package/dist/line-arrow-right-anchor-G_UqqVqn.mjs.map +0 -1
  1134. package/dist/line-arrow-right-circle-DiWDeP7l.mjs +0 -16
  1135. package/dist/line-arrow-right-circle-DiWDeP7l.mjs.map +0 -1
  1136. package/dist/line-arrow-up-NALFPEvk.mjs +0 -16
  1137. package/dist/line-arrow-up-NALFPEvk.mjs.map +0 -1
  1138. package/dist/line-arrow-up-anchor-iddgTWyb.mjs +0 -16
  1139. package/dist/line-arrow-up-anchor-iddgTWyb.mjs.map +0 -1
  1140. package/dist/line-arrow-up-circle-07QP9RES.mjs +0 -16
  1141. package/dist/line-arrow-up-circle-07QP9RES.mjs.map +0 -1
  1142. package/dist/line-at-sign-5UZypAjL.mjs +0 -16
  1143. package/dist/line-at-sign-5UZypAjL.mjs.map +0 -1
  1144. package/dist/line-award-meYDbbKB.mjs +0 -16
  1145. package/dist/line-award-meYDbbKB.mjs.map +0 -1
  1146. package/dist/line-bell-kPP947Tl.mjs +0 -16
  1147. package/dist/line-bell-kPP947Tl.mjs.map +0 -1
  1148. package/dist/line-book-open-SApu2hnb.mjs +0 -16
  1149. package/dist/line-book-open-SApu2hnb.mjs.map +0 -1
  1150. package/dist/line-bookmark-card-lEvcMXFK.mjs +0 -16
  1151. package/dist/line-bookmark-card-lEvcMXFK.mjs.map +0 -1
  1152. package/dist/line-bookmark-oChwzsRD.mjs +0 -16
  1153. package/dist/line-bookmark-oChwzsRD.mjs.map +0 -1
  1154. package/dist/line-briefcase-gj7SsdPZ.mjs +0 -16
  1155. package/dist/line-briefcase-gj7SsdPZ.mjs.map +0 -1
  1156. package/dist/line-buildings-1mADE1Yv.mjs +0 -16
  1157. package/dist/line-buildings-1mADE1Yv.mjs.map +0 -1
  1158. package/dist/line-bullet-MJGYt6cH.mjs +0 -16
  1159. package/dist/line-bullet-MJGYt6cH.mjs.map +0 -1
  1160. package/dist/line-bus-fVT8a1N0.mjs +0 -16
  1161. package/dist/line-bus-fVT8a1N0.mjs.map +0 -1
  1162. package/dist/line-calculator-RRJYlgub.mjs +0 -23
  1163. package/dist/line-calculator-RRJYlgub.mjs.map +0 -1
  1164. package/dist/line-calendar-GiXPjuxL.mjs +0 -16
  1165. package/dist/line-calendar-GiXPjuxL.mjs.map +0 -1
  1166. package/dist/line-camera-uDIMVKRj.mjs +0 -23
  1167. package/dist/line-camera-uDIMVKRj.mjs.map +0 -1
  1168. package/dist/line-chat-_AOwVmxa.mjs +0 -9
  1169. package/dist/line-chat-_AOwVmxa.mjs.map +0 -1
  1170. package/dist/line-check-X_Fttxip.mjs +0 -16
  1171. package/dist/line-check-X_Fttxip.mjs.map +0 -1
  1172. package/dist/line-check-all-EhJ11NK0.mjs +0 -16
  1173. package/dist/line-check-all-EhJ11NK0.mjs.map +0 -1
  1174. package/dist/line-check-circle-HxTyC7d0.mjs +0 -16
  1175. package/dist/line-check-circle-HxTyC7d0.mjs.map +0 -1
  1176. package/dist/line-chevron-down-DDkDQZ7G.mjs +0 -16
  1177. package/dist/line-chevron-down-DDkDQZ7G.mjs.map +0 -1
  1178. package/dist/line-chevron-left-i6TrbWZF.mjs +0 -16
  1179. package/dist/line-chevron-left-i6TrbWZF.mjs.map +0 -1
  1180. package/dist/line-chevron-right-TOZTPbpt.mjs +0 -16
  1181. package/dist/line-chevron-right-TOZTPbpt.mjs.map +0 -1
  1182. package/dist/line-chevron-up-zDloj7zr.mjs +0 -16
  1183. package/dist/line-chevron-up-zDloj7zr.mjs.map +0 -1
  1184. package/dist/line-chevrons-down-HiU7Hiax.mjs +0 -23
  1185. package/dist/line-chevrons-down-HiU7Hiax.mjs.map +0 -1
  1186. package/dist/line-chevrons-left-zIu6iswL.mjs +0 -23
  1187. package/dist/line-chevrons-left-zIu6iswL.mjs.map +0 -1
  1188. package/dist/line-chevrons-right-LHfsqLdO.mjs +0 -23
  1189. package/dist/line-chevrons-right-LHfsqLdO.mjs.map +0 -1
  1190. package/dist/line-chevrons-up-p8xwP-rD.mjs +0 -23
  1191. package/dist/line-chevrons-up-p8xwP-rD.mjs.map +0 -1
  1192. package/dist/line-clock-xs_-TaHl.mjs +0 -23
  1193. package/dist/line-clock-xs_-TaHl.mjs.map +0 -1
  1194. package/dist/line-coffee-KFMxwVT8.mjs +0 -16
  1195. package/dist/line-coffee-KFMxwVT8.mjs.map +0 -1
  1196. package/dist/line-court-zIUtOUDO.mjs +0 -16
  1197. package/dist/line-court-zIUtOUDO.mjs.map +0 -1
  1198. package/dist/line-credit-card-G-vhWusd.mjs +0 -16
  1199. package/dist/line-credit-card-G-vhWusd.mjs.map +0 -1
  1200. package/dist/line-dashboard-1Is9lcAw.mjs +0 -72
  1201. package/dist/line-dashboard-1Is9lcAw.mjs.map +0 -1
  1202. package/dist/line-delete-4tEnJa97.mjs +0 -9
  1203. package/dist/line-delete-4tEnJa97.mjs.map +0 -1
  1204. package/dist/line-document-SD2sPDuz.mjs +0 -16
  1205. package/dist/line-document-SD2sPDuz.mjs.map +0 -1
  1206. package/dist/line-download-csgDqz_l.mjs +0 -30
  1207. package/dist/line-download-csgDqz_l.mjs.map +0 -1
  1208. package/dist/line-driving-8iV2WHj2.mjs +0 -16
  1209. package/dist/line-driving-8iV2WHj2.mjs.map +0 -1
  1210. package/dist/line-edit-tfyLRnkv.mjs +0 -23
  1211. package/dist/line-edit-tfyLRnkv.mjs.map +0 -1
  1212. package/dist/line-external-link-FFYflWcq.mjs +0 -30
  1213. package/dist/line-external-link-FFYflWcq.mjs.map +0 -1
  1214. package/dist/line-eye-bthFq2d9.mjs +0 -9
  1215. package/dist/line-eye-bthFq2d9.mjs.map +0 -1
  1216. package/dist/line-eye-off-GLHoxQfu.mjs +0 -9
  1217. package/dist/line-eye-off-GLHoxQfu.mjs.map +0 -1
  1218. package/dist/line-facebook-p9pZsbTP.mjs +0 -16
  1219. package/dist/line-facebook-p9pZsbTP.mjs.map +0 -1
  1220. package/dist/line-file-pDXWqh49.mjs +0 -9
  1221. package/dist/line-file-pDXWqh49.mjs.map +0 -1
  1222. package/dist/line-file-share-n9YjakVx.mjs +0 -16
  1223. package/dist/line-file-share-n9YjakVx.mjs.map +0 -1
  1224. package/dist/line-filter-xVW4DO-G.mjs +0 -16
  1225. package/dist/line-filter-xVW4DO-G.mjs.map +0 -1
  1226. package/dist/line-flag-L4zw3xDD.mjs +0 -9
  1227. package/dist/line-flag-L4zw3xDD.mjs.map +0 -1
  1228. package/dist/line-folder-NElV2al2.mjs +0 -16
  1229. package/dist/line-folder-NElV2al2.mjs.map +0 -1
  1230. package/dist/line-globe-gYKA_d24.mjs +0 -16
  1231. package/dist/line-globe-gYKA_d24.mjs.map +0 -1
  1232. package/dist/line-hardware-settings-M1_EPCeA.mjs +0 -23
  1233. package/dist/line-hardware-settings-M1_EPCeA.mjs.map +0 -1
  1234. package/dist/line-health-Y21ZKCfI.mjs +0 -16
  1235. package/dist/line-health-Y21ZKCfI.mjs.map +0 -1
  1236. package/dist/line-help-support-JDX7TDRZ.mjs +0 -16
  1237. package/dist/line-help-support-JDX7TDRZ.mjs.map +0 -1
  1238. package/dist/line-home-70muf8rV.mjs +0 -16
  1239. package/dist/line-home-70muf8rV.mjs.map +0 -1
  1240. package/dist/line-info-mark-1TI9ufbB.mjs +0 -16
  1241. package/dist/line-info-mark-1TI9ufbB.mjs.map +0 -1
  1242. package/dist/line-instagram-U2r6uTT_.mjs +0 -23
  1243. package/dist/line-instagram-U2r6uTT_.mjs.map +0 -1
  1244. package/dist/line-linkedin-jXTpNq8j.mjs +0 -30
  1245. package/dist/line-linkedin-jXTpNq8j.mjs.map +0 -1
  1246. package/dist/line-list-NAuuucfz.mjs +0 -51
  1247. package/dist/line-list-NAuuucfz.mjs.map +0 -1
  1248. package/dist/line-loader-2as9w-yL.mjs +0 -65
  1249. package/dist/line-loader-2as9w-yL.mjs.map +0 -1
  1250. package/dist/line-lock-fCZ8FAz8.mjs +0 -16
  1251. package/dist/line-lock-fCZ8FAz8.mjs.map +0 -1
  1252. package/dist/line-log-in-3WcaZp67.mjs +0 -30
  1253. package/dist/line-log-in-3WcaZp67.mjs.map +0 -1
  1254. package/dist/line-log-out-88i6c_1i.mjs +0 -30
  1255. package/dist/line-log-out-88i6c_1i.mjs.map +0 -1
  1256. package/dist/line-mail-gZ-howEw.mjs +0 -16
  1257. package/dist/line-mail-gZ-howEw.mjs.map +0 -1
  1258. package/dist/line-mail-open-ohmPkExZ.mjs +0 -9
  1259. package/dist/line-mail-open-ohmPkExZ.mjs.map +0 -1
  1260. package/dist/line-map-Bdf0lAPC.mjs +0 -16
  1261. package/dist/line-map-Bdf0lAPC.mjs.map +0 -1
  1262. package/dist/line-map-pin-odKo1Gp7.mjs +0 -23
  1263. package/dist/line-map-pin-odKo1Gp7.mjs.map +0 -1
  1264. package/dist/line-mega-phone-BofuazHT.mjs +0 -16
  1265. package/dist/line-mega-phone-BofuazHT.mjs.map +0 -1
  1266. package/dist/line-menu-GzBWD0RS.mjs +0 -30
  1267. package/dist/line-menu-GzBWD0RS.mjs.map +0 -1
  1268. package/dist/line-mic-off-dNLzo7tS.mjs +0 -16
  1269. package/dist/line-mic-off-dNLzo7tS.mjs.map +0 -1
  1270. package/dist/line-mic-on-3Y5Jtoun.mjs +0 -16
  1271. package/dist/line-mic-on-3Y5Jtoun.mjs.map +0 -1
  1272. package/dist/line-minus-XmIqkiCK.mjs +0 -16
  1273. package/dist/line-minus-XmIqkiCK.mjs.map +0 -1
  1274. package/dist/line-minus-circle-UnVkOBD8.mjs +0 -23
  1275. package/dist/line-minus-circle-UnVkOBD8.mjs.map +0 -1
  1276. package/dist/line-money-taxes-q4Yh3AiO.mjs +0 -16
  1277. package/dist/line-money-taxes-q4Yh3AiO.mjs.map +0 -1
  1278. package/dist/line-monitor-Z1bc_TNo.mjs +0 -16
  1279. package/dist/line-monitor-Z1bc_TNo.mjs.map +0 -1
  1280. package/dist/line-more-horizontal-wRipgsTv.mjs +0 -30
  1281. package/dist/line-more-horizontal-wRipgsTv.mjs.map +0 -1
  1282. package/dist/line-more-vertical-y_G_Xqyp.mjs +0 -9
  1283. package/dist/line-more-vertical-y_G_Xqyp.mjs.map +0 -1
  1284. package/dist/line-movie-JH7hylSk.mjs +0 -9
  1285. package/dist/line-movie-JH7hylSk.mjs.map +0 -1
  1286. package/dist/line-music-9gkYnvU4.mjs +0 -9
  1287. package/dist/line-music-9gkYnvU4.mjs.map +0 -1
  1288. package/dist/line-package-TwJbyaGt.mjs +0 -16
  1289. package/dist/line-package-TwJbyaGt.mjs.map +0 -1
  1290. package/dist/line-paperclip-V5CFdZLR.mjs +0 -16
  1291. package/dist/line-paperclip-V5CFdZLR.mjs.map +0 -1
  1292. package/dist/line-plane-lQCLW1qX.mjs +0 -16
  1293. package/dist/line-plane-lQCLW1qX.mjs.map +0 -1
  1294. package/dist/line-plus-Amv4a502.mjs +0 -9
  1295. package/dist/line-plus-Amv4a502.mjs.map +0 -1
  1296. package/dist/line-plus-circle-m--9MHCy.mjs +0 -16
  1297. package/dist/line-plus-circle-m--9MHCy.mjs.map +0 -1
  1298. package/dist/line-print-JhZ8S123.mjs +0 -16
  1299. package/dist/line-print-JhZ8S123.mjs.map +0 -1
  1300. package/dist/line-question-mark-c07JVh9G.mjs +0 -16
  1301. package/dist/line-question-mark-c07JVh9G.mjs.map +0 -1
  1302. package/dist/line-refresh-ccw-hdhbaGtz.mjs +0 -9
  1303. package/dist/line-refresh-ccw-hdhbaGtz.mjs.map +0 -1
  1304. package/dist/line-search-Jn0EN2LZ.mjs +0 -16
  1305. package/dist/line-search-Jn0EN2LZ.mjs.map +0 -1
  1306. package/dist/line-settings-upBLNbLJ.mjs +0 -23
  1307. package/dist/line-settings-upBLNbLJ.mjs.map +0 -1
  1308. package/dist/line-share-FiJOHT-C.mjs +0 -16
  1309. package/dist/line-share-FiJOHT-C.mjs.map +0 -1
  1310. package/dist/line-shield-QYxYm3xA.mjs +0 -16
  1311. package/dist/line-shield-QYxYm3xA.mjs.map +0 -1
  1312. package/dist/line-smartphone-sCh4P8F1.mjs +0 -16
  1313. package/dist/line-smartphone-sCh4P8F1.mjs.map +0 -1
  1314. package/dist/line-smile-sad-Gfqxw_W1.mjs +0 -37
  1315. package/dist/line-smile-sad-Gfqxw_W1.mjs.map +0 -1
  1316. package/dist/line-social-security-KSln41V0.mjs +0 -30
  1317. package/dist/line-social-security-KSln41V0.mjs.map +0 -1
  1318. package/dist/line-sort-alpha-down-956TW6DR.mjs +0 -16
  1319. package/dist/line-sort-alpha-down-956TW6DR.mjs.map +0 -1
  1320. package/dist/line-sort-alpha-up-prp0Qpkf.mjs +0 -23
  1321. package/dist/line-sort-alpha-up-prp0Qpkf.mjs.map +0 -1
  1322. package/dist/line-sort-generic-down-fr22CBJA.mjs +0 -9
  1323. package/dist/line-sort-generic-down-fr22CBJA.mjs.map +0 -1
  1324. package/dist/line-sort-generic-up-mQmOWWBZ.mjs +0 -9
  1325. package/dist/line-sort-generic-up-mQmOWWBZ.mjs.map +0 -1
  1326. package/dist/line-sort-vertical-w9sQhfPB.mjs +0 -9
  1327. package/dist/line-sort-vertical-w9sQhfPB.mjs.map +0 -1
  1328. package/dist/line-star-moQSdpBG.mjs +0 -16
  1329. package/dist/line-star-moQSdpBG.mjs.map +0 -1
  1330. package/dist/line-straight-5sNNXR6L.mjs +0 -9
  1331. package/dist/line-straight-5sNNXR6L.mjs.map +0 -1
  1332. package/dist/line-tag-HK9jGRyg.mjs +0 -9
  1333. package/dist/line-tag-HK9jGRyg.mjs.map +0 -1
  1334. package/dist/line-target-RwPWdAGA.mjs +0 -23
  1335. package/dist/line-target-RwPWdAGA.mjs.map +0 -1
  1336. package/dist/line-thumbs-down-lc1ee4ou.mjs +0 -16
  1337. package/dist/line-thumbs-down-lc1ee4ou.mjs.map +0 -1
  1338. package/dist/line-thumbs-up-tnda6iyW.mjs +0 -16
  1339. package/dist/line-thumbs-up-tnda6iyW.mjs.map +0 -1
  1340. package/dist/line-ticket-JCMDfoNj.mjs +0 -16
  1341. package/dist/line-ticket-JCMDfoNj.mjs.map +0 -1
  1342. package/dist/line-trash-_WKXzKNF.mjs +0 -16
  1343. package/dist/line-trash-_WKXzKNF.mjs.map +0 -1
  1344. package/dist/line-tree-kXkCueb0.mjs +0 -16
  1345. package/dist/line-tree-kXkCueb0.mjs.map +0 -1
  1346. package/dist/line-truck-aQGgC_DK.mjs +0 -9
  1347. package/dist/line-truck-aQGgC_DK.mjs.map +0 -1
  1348. package/dist/line-twitter-x-6NicFo_V.mjs +0 -15
  1349. package/dist/line-twitter-x-6NicFo_V.mjs.map +0 -1
  1350. package/dist/line-twitter-zACgT2cn.mjs +0 -16
  1351. package/dist/line-twitter-zACgT2cn.mjs.map +0 -1
  1352. package/dist/line-unlock--T2IPrIk.mjs +0 -9
  1353. package/dist/line-unlock--T2IPrIk.mjs.map +0 -1
  1354. package/dist/line-upload-_CY69q06.mjs +0 -30
  1355. package/dist/line-upload-_CY69q06.mjs.map +0 -1
  1356. package/dist/line-user-1F6DbT5U.mjs +0 -16
  1357. package/dist/line-user-1F6DbT5U.mjs.map +0 -1
  1358. package/dist/line-user-group--D5ye00n.mjs +0 -16
  1359. package/dist/line-user-group--D5ye00n.mjs.map +0 -1
  1360. package/dist/line-video-off-IBGar77s.mjs +0 -16
  1361. package/dist/line-video-off-IBGar77s.mjs.map +0 -1
  1362. package/dist/line-video-on--AxsOzV4.mjs +0 -16
  1363. package/dist/line-video-on--AxsOzV4.mjs.map +0 -1
  1364. package/dist/line-volume-max-kbEFLwz4.mjs +0 -9
  1365. package/dist/line-volume-max-kbEFLwz4.mjs.map +0 -1
  1366. package/dist/line-volume-min-90I5Pzen.mjs +0 -9
  1367. package/dist/line-volume-min-90I5Pzen.mjs.map +0 -1
  1368. package/dist/line-volume-mute-M56W2Xzz.mjs +0 -9
  1369. package/dist/line-volume-mute-M56W2Xzz.mjs.map +0 -1
  1370. package/dist/line-volume-off-Vaqfeczn.mjs +0 -16
  1371. package/dist/line-volume-off-Vaqfeczn.mjs.map +0 -1
  1372. package/dist/line-wallet-4Z9jUG2C.mjs +0 -9
  1373. package/dist/line-wallet-4Z9jUG2C.mjs.map +0 -1
  1374. package/dist/line-wifi-im3fV8RP.mjs +0 -9
  1375. package/dist/line-wifi-im3fV8RP.mjs.map +0 -1
  1376. package/dist/line-x-circle-P8AJUfdz.mjs +0 -30
  1377. package/dist/line-x-circle-P8AJUfdz.mjs.map +0 -1
  1378. package/dist/line-x-i3JggSik.mjs +0 -9
  1379. package/dist/line-x-i3JggSik.mjs.map +0 -1
  1380. package/dist/line-youtube-kZwTZ3Xs.mjs +0 -23
  1381. package/dist/line-youtube-kZwTZ3Xs.mjs.map +0 -1
  1382. package/dist/line-zig-eqYn3lgC.mjs +0 -18
  1383. package/dist/line-zig-eqYn3lgC.mjs.map +0 -1
  1384. package/dist/line-zig-zag-Ly_yRMo-.mjs +0 -18
  1385. package/dist/line-zig-zag-Ly_yRMo-.mjs.map +0 -1
  1386. package/dist/solid-airplay-nfR0zwRU.mjs +0 -16
  1387. package/dist/solid-airplay-nfR0zwRU.mjs.map +0 -1
  1388. package/dist/solid-alert-circle-Cnmnmsdd.mjs +0 -16
  1389. package/dist/solid-alert-circle-Cnmnmsdd.mjs.map +0 -1
  1390. package/dist/solid-alert-triangle-dasFvyJ5.mjs +0 -16
  1391. package/dist/solid-alert-triangle-dasFvyJ5.mjs.map +0 -1
  1392. package/dist/solid-arrow-down-alTYiiXU.mjs +0 -9
  1393. package/dist/solid-arrow-down-alTYiiXU.mjs.map +0 -1
  1394. package/dist/solid-arrow-down-anchor-K5PMv77l.mjs +0 -16
  1395. package/dist/solid-arrow-down-anchor-K5PMv77l.mjs.map +0 -1
  1396. package/dist/solid-arrow-down-circle-ivWfpfTj.mjs +0 -16
  1397. package/dist/solid-arrow-down-circle-ivWfpfTj.mjs.map +0 -1
  1398. package/dist/solid-arrow-left-Qtk6_pnD.mjs +0 -9
  1399. package/dist/solid-arrow-left-Qtk6_pnD.mjs.map +0 -1
  1400. package/dist/solid-arrow-left-anchor-wHH6d73o.mjs +0 -16
  1401. package/dist/solid-arrow-left-anchor-wHH6d73o.mjs.map +0 -1
  1402. package/dist/solid-arrow-left-circle-h1sDlfhq.mjs +0 -16
  1403. package/dist/solid-arrow-left-circle-h1sDlfhq.mjs.map +0 -1
  1404. package/dist/solid-arrow-right-MPX0Q5cB.mjs +0 -9
  1405. package/dist/solid-arrow-right-MPX0Q5cB.mjs.map +0 -1
  1406. package/dist/solid-arrow-right-anchor-EkSPaW6O.mjs +0 -16
  1407. package/dist/solid-arrow-right-anchor-EkSPaW6O.mjs.map +0 -1
  1408. package/dist/solid-arrow-right-circle-6KHLLts7.mjs +0 -16
  1409. package/dist/solid-arrow-right-circle-6KHLLts7.mjs.map +0 -1
  1410. package/dist/solid-arrow-up-anchor-vhmIsp7S.mjs +0 -16
  1411. package/dist/solid-arrow-up-anchor-vhmIsp7S.mjs.map +0 -1
  1412. package/dist/solid-arrow-up-circle-bn60aGeB.mjs +0 -16
  1413. package/dist/solid-arrow-up-circle-bn60aGeB.mjs.map +0 -1
  1414. package/dist/solid-arrow-up-yg2u_CsB.mjs +0 -9
  1415. package/dist/solid-arrow-up-yg2u_CsB.mjs.map +0 -1
  1416. package/dist/solid-at-sign-5UZypAjL.mjs +0 -16
  1417. package/dist/solid-at-sign-5UZypAjL.mjs.map +0 -1
  1418. package/dist/solid-award-6rvvtEPk.mjs +0 -9
  1419. package/dist/solid-award-6rvvtEPk.mjs.map +0 -1
  1420. package/dist/solid-bell-4QXMHrFP.mjs +0 -9
  1421. package/dist/solid-bell-4QXMHrFP.mjs.map +0 -1
  1422. package/dist/solid-book-open-qhhf_vx8.mjs +0 -16
  1423. package/dist/solid-book-open-qhhf_vx8.mjs.map +0 -1
  1424. package/dist/solid-bookmark-VFQn_y1L.mjs +0 -9
  1425. package/dist/solid-bookmark-VFQn_y1L.mjs.map +0 -1
  1426. package/dist/solid-bookmark-card-zr3zFxea.mjs +0 -9
  1427. package/dist/solid-bookmark-card-zr3zFxea.mjs.map +0 -1
  1428. package/dist/solid-briefcase-JOZmJxqQ.mjs +0 -16
  1429. package/dist/solid-briefcase-JOZmJxqQ.mjs.map +0 -1
  1430. package/dist/solid-buildings-rXcx-0JQ.mjs +0 -16
  1431. package/dist/solid-buildings-rXcx-0JQ.mjs.map +0 -1
  1432. package/dist/solid-bullet-1FObRZHh.mjs +0 -9
  1433. package/dist/solid-bullet-1FObRZHh.mjs.map +0 -1
  1434. package/dist/solid-bus-Oyd9t-t8.mjs +0 -16
  1435. package/dist/solid-bus-Oyd9t-t8.mjs.map +0 -1
  1436. package/dist/solid-calculator-rKnfCDIU.mjs +0 -16
  1437. package/dist/solid-calculator-rKnfCDIU.mjs.map +0 -1
  1438. package/dist/solid-calendar-uvTl1wpz.mjs +0 -16
  1439. package/dist/solid-calendar-uvTl1wpz.mjs.map +0 -1
  1440. package/dist/solid-camera-k7IhQyQL.mjs +0 -16
  1441. package/dist/solid-camera-k7IhQyQL.mjs.map +0 -1
  1442. package/dist/solid-chat-_tHnWiGc.mjs +0 -9
  1443. package/dist/solid-chat-_tHnWiGc.mjs.map +0 -1
  1444. package/dist/solid-check-X_Fttxip.mjs +0 -16
  1445. package/dist/solid-check-X_Fttxip.mjs.map +0 -1
  1446. package/dist/solid-check-all-EhJ11NK0.mjs +0 -16
  1447. package/dist/solid-check-all-EhJ11NK0.mjs.map +0 -1
  1448. package/dist/solid-check-circle-b__BkEYH.mjs +0 -16
  1449. package/dist/solid-check-circle-b__BkEYH.mjs.map +0 -1
  1450. package/dist/solid-chevron-down-DDkDQZ7G.mjs +0 -16
  1451. package/dist/solid-chevron-down-DDkDQZ7G.mjs.map +0 -1
  1452. package/dist/solid-chevron-left-KAgqSKSi.mjs +0 -16
  1453. package/dist/solid-chevron-left-KAgqSKSi.mjs.map +0 -1
  1454. package/dist/solid-chevron-right-TOZTPbpt.mjs +0 -16
  1455. package/dist/solid-chevron-right-TOZTPbpt.mjs.map +0 -1
  1456. package/dist/solid-chevron-up-yS3-ZAXt.mjs +0 -16
  1457. package/dist/solid-chevron-up-yS3-ZAXt.mjs.map +0 -1
  1458. package/dist/solid-chevrons-down-A6MQdpRn.mjs +0 -9
  1459. package/dist/solid-chevrons-down-A6MQdpRn.mjs.map +0 -1
  1460. package/dist/solid-chevrons-left-Z4xcjMIR.mjs +0 -9
  1461. package/dist/solid-chevrons-left-Z4xcjMIR.mjs.map +0 -1
  1462. package/dist/solid-chevrons-right-m061y7OS.mjs +0 -9
  1463. package/dist/solid-chevrons-right-m061y7OS.mjs.map +0 -1
  1464. package/dist/solid-chevrons-up-tgvyW-8O.mjs +0 -9
  1465. package/dist/solid-chevrons-up-tgvyW-8O.mjs.map +0 -1
  1466. package/dist/solid-clock-EApfuOZL.mjs +0 -16
  1467. package/dist/solid-clock-EApfuOZL.mjs.map +0 -1
  1468. package/dist/solid-coffee-OwChsZnM.mjs +0 -16
  1469. package/dist/solid-coffee-OwChsZnM.mjs.map +0 -1
  1470. package/dist/solid-court-Q4yo86sv.mjs +0 -16
  1471. package/dist/solid-court-Q4yo86sv.mjs.map +0 -1
  1472. package/dist/solid-credit-card-wtCbpAc_.mjs +0 -16
  1473. package/dist/solid-credit-card-wtCbpAc_.mjs.map +0 -1
  1474. package/dist/solid-dashboard-1zFygagO.mjs +0 -72
  1475. package/dist/solid-dashboard-1zFygagO.mjs.map +0 -1
  1476. package/dist/solid-delete-UaBTYqoS.mjs +0 -9
  1477. package/dist/solid-delete-UaBTYqoS.mjs.map +0 -1
  1478. package/dist/solid-document-PrrESGZG.mjs +0 -9
  1479. package/dist/solid-document-PrrESGZG.mjs.map +0 -1
  1480. package/dist/solid-download-b_5tZ39F.mjs +0 -30
  1481. package/dist/solid-download-b_5tZ39F.mjs.map +0 -1
  1482. package/dist/solid-driving-S-hHzU7g.mjs +0 -16
  1483. package/dist/solid-driving-S-hHzU7g.mjs.map +0 -1
  1484. package/dist/solid-edit-A0nutFqu.mjs +0 -9
  1485. package/dist/solid-edit-A0nutFqu.mjs.map +0 -1
  1486. package/dist/solid-external-link-FTOBAiwp.mjs +0 -30
  1487. package/dist/solid-external-link-FTOBAiwp.mjs.map +0 -1
  1488. package/dist/solid-eye-6O3w7Q_i.mjs +0 -9
  1489. package/dist/solid-eye-6O3w7Q_i.mjs.map +0 -1
  1490. package/dist/solid-eye-off-JnHo7kCn.mjs +0 -9
  1491. package/dist/solid-eye-off-JnHo7kCn.mjs.map +0 -1
  1492. package/dist/solid-facebook-DMI7v_na.mjs +0 -9
  1493. package/dist/solid-facebook-DMI7v_na.mjs.map +0 -1
  1494. package/dist/solid-file-BJ-gXxkX.mjs +0 -9
  1495. package/dist/solid-file-BJ-gXxkX.mjs.map +0 -1
  1496. package/dist/solid-file-share-tSI8let7.mjs +0 -16
  1497. package/dist/solid-file-share-tSI8let7.mjs.map +0 -1
  1498. package/dist/solid-filter-pOZwywKt.mjs +0 -9
  1499. package/dist/solid-filter-pOZwywKt.mjs.map +0 -1
  1500. package/dist/solid-flag-SXKg2L2L.mjs +0 -9
  1501. package/dist/solid-flag-SXKg2L2L.mjs.map +0 -1
  1502. package/dist/solid-folder-bR1GtKnp.mjs +0 -9
  1503. package/dist/solid-folder-bR1GtKnp.mjs.map +0 -1
  1504. package/dist/solid-globe-gYKA_d24.mjs +0 -16
  1505. package/dist/solid-globe-gYKA_d24.mjs.map +0 -1
  1506. package/dist/solid-hardware-settings-BlDimky7.mjs +0 -16
  1507. package/dist/solid-hardware-settings-BlDimky7.mjs.map +0 -1
  1508. package/dist/solid-health-Y21ZKCfI.mjs +0 -16
  1509. package/dist/solid-health-Y21ZKCfI.mjs.map +0 -1
  1510. package/dist/solid-help-support-Gxbj6QFP.mjs +0 -9
  1511. package/dist/solid-help-support-Gxbj6QFP.mjs.map +0 -1
  1512. package/dist/solid-home-T4k8n-6W.mjs +0 -16
  1513. package/dist/solid-home-T4k8n-6W.mjs.map +0 -1
  1514. package/dist/solid-info-mark-c4azUky9.mjs +0 -16
  1515. package/dist/solid-info-mark-c4azUky9.mjs.map +0 -1
  1516. package/dist/solid-instagram-TqFGD7sW.mjs +0 -16
  1517. package/dist/solid-instagram-TqFGD7sW.mjs.map +0 -1
  1518. package/dist/solid-linkedin-tbyWfEYe.mjs +0 -9
  1519. package/dist/solid-linkedin-tbyWfEYe.mjs.map +0 -1
  1520. package/dist/solid-list-NAuuucfz.mjs +0 -51
  1521. package/dist/solid-list-NAuuucfz.mjs.map +0 -1
  1522. package/dist/solid-loader-2as9w-yL.mjs +0 -65
  1523. package/dist/solid-loader-2as9w-yL.mjs.map +0 -1
  1524. package/dist/solid-lock-Vt0punbd.mjs +0 -16
  1525. package/dist/solid-lock-Vt0punbd.mjs.map +0 -1
  1526. package/dist/solid-log-in-3WcaZp67.mjs +0 -30
  1527. package/dist/solid-log-in-3WcaZp67.mjs.map +0 -1
  1528. package/dist/solid-log-out-88i6c_1i.mjs +0 -30
  1529. package/dist/solid-log-out-88i6c_1i.mjs.map +0 -1
  1530. package/dist/solid-mail-aDHfrNHU.mjs +0 -16
  1531. package/dist/solid-mail-aDHfrNHU.mjs.map +0 -1
  1532. package/dist/solid-mail-open-ypzURjfG.mjs +0 -9
  1533. package/dist/solid-mail-open-ypzURjfG.mjs.map +0 -1
  1534. package/dist/solid-map-pin-m_6s0b5R.mjs +0 -9
  1535. package/dist/solid-map-pin-m_6s0b5R.mjs.map +0 -1
  1536. package/dist/solid-map-tL_Xaban.mjs +0 -16
  1537. package/dist/solid-map-tL_Xaban.mjs.map +0 -1
  1538. package/dist/solid-mega-phone-TNWx1nyJ.mjs +0 -16
  1539. package/dist/solid-mega-phone-TNWx1nyJ.mjs.map +0 -1
  1540. package/dist/solid-menu-GzBWD0RS.mjs +0 -30
  1541. package/dist/solid-menu-GzBWD0RS.mjs.map +0 -1
  1542. package/dist/solid-mic-off-iQWfEjMK.mjs +0 -9
  1543. package/dist/solid-mic-off-iQWfEjMK.mjs.map +0 -1
  1544. package/dist/solid-mic-on-n0faTicX.mjs +0 -16
  1545. package/dist/solid-mic-on-n0faTicX.mjs.map +0 -1
  1546. package/dist/solid-minus-XmIqkiCK.mjs +0 -16
  1547. package/dist/solid-minus-XmIqkiCK.mjs.map +0 -1
  1548. package/dist/solid-minus-circle-d0LHcfu8.mjs +0 -16
  1549. package/dist/solid-minus-circle-d0LHcfu8.mjs.map +0 -1
  1550. package/dist/solid-money-taxes-B5MNWhaQ.mjs +0 -16
  1551. package/dist/solid-money-taxes-B5MNWhaQ.mjs.map +0 -1
  1552. package/dist/solid-monitor-RM_ysRwT.mjs +0 -9
  1553. package/dist/solid-monitor-RM_ysRwT.mjs.map +0 -1
  1554. package/dist/solid-more-horizontal-wRipgsTv.mjs +0 -30
  1555. package/dist/solid-more-horizontal-wRipgsTv.mjs.map +0 -1
  1556. package/dist/solid-more-vertical-y_G_Xqyp.mjs +0 -9
  1557. package/dist/solid-more-vertical-y_G_Xqyp.mjs.map +0 -1
  1558. package/dist/solid-movie-xPgg8C8V.mjs +0 -9
  1559. package/dist/solid-movie-xPgg8C8V.mjs.map +0 -1
  1560. package/dist/solid-music-odncqDnb.mjs +0 -9
  1561. package/dist/solid-music-odncqDnb.mjs.map +0 -1
  1562. package/dist/solid-package-ZIpibPYQ.mjs +0 -16
  1563. package/dist/solid-package-ZIpibPYQ.mjs.map +0 -1
  1564. package/dist/solid-paperclip-V5CFdZLR.mjs +0 -16
  1565. package/dist/solid-paperclip-V5CFdZLR.mjs.map +0 -1
  1566. package/dist/solid-plane-pVFEpCvd.mjs +0 -16
  1567. package/dist/solid-plane-pVFEpCvd.mjs.map +0 -1
  1568. package/dist/solid-plus-Amv4a502.mjs +0 -9
  1569. package/dist/solid-plus-Amv4a502.mjs.map +0 -1
  1570. package/dist/solid-plus-circle-q5ECGcdX.mjs +0 -16
  1571. package/dist/solid-plus-circle-q5ECGcdX.mjs.map +0 -1
  1572. package/dist/solid-print-uzdnofcw.mjs +0 -16
  1573. package/dist/solid-print-uzdnofcw.mjs.map +0 -1
  1574. package/dist/solid-question-mark-1OsHm9X2.mjs +0 -9
  1575. package/dist/solid-question-mark-1OsHm9X2.mjs.map +0 -1
  1576. package/dist/solid-refresh-ccw-5i53RjmU.mjs +0 -9
  1577. package/dist/solid-refresh-ccw-5i53RjmU.mjs.map +0 -1
  1578. package/dist/solid-search-NzemvYkK.mjs +0 -9
  1579. package/dist/solid-search-NzemvYkK.mjs.map +0 -1
  1580. package/dist/solid-settings-b_SLf2D1.mjs +0 -9
  1581. package/dist/solid-settings-b_SLf2D1.mjs.map +0 -1
  1582. package/dist/solid-share-VKZu2rBh.mjs +0 -9
  1583. package/dist/solid-share-VKZu2rBh.mjs.map +0 -1
  1584. package/dist/solid-shield-JcQjFrsr.mjs +0 -16
  1585. package/dist/solid-shield-JcQjFrsr.mjs.map +0 -1
  1586. package/dist/solid-smartphone-NlPsVoSR.mjs +0 -16
  1587. package/dist/solid-smartphone-NlPsVoSR.mjs.map +0 -1
  1588. package/dist/solid-smile-sad-_5Uy2-hf.mjs +0 -16
  1589. package/dist/solid-smile-sad-_5Uy2-hf.mjs.map +0 -1
  1590. package/dist/solid-social-security-milWwV0Y.mjs +0 -16
  1591. package/dist/solid-social-security-milWwV0Y.mjs.map +0 -1
  1592. package/dist/solid-sort-alpha-down-956TW6DR.mjs +0 -16
  1593. package/dist/solid-sort-alpha-down-956TW6DR.mjs.map +0 -1
  1594. package/dist/solid-sort-alpha-up-prp0Qpkf.mjs +0 -23
  1595. package/dist/solid-sort-alpha-up-prp0Qpkf.mjs.map +0 -1
  1596. package/dist/solid-sort-generic-down-fr22CBJA.mjs +0 -9
  1597. package/dist/solid-sort-generic-down-fr22CBJA.mjs.map +0 -1
  1598. package/dist/solid-sort-generic-up-mQmOWWBZ.mjs +0 -9
  1599. package/dist/solid-sort-generic-up-mQmOWWBZ.mjs.map +0 -1
  1600. package/dist/solid-sort-vertical-w9sQhfPB.mjs +0 -9
  1601. package/dist/solid-sort-vertical-w9sQhfPB.mjs.map +0 -1
  1602. package/dist/solid-star-sFfEo_0x.mjs +0 -9
  1603. package/dist/solid-star-sFfEo_0x.mjs.map +0 -1
  1604. package/dist/solid-tag-_MOsNHmz.mjs +0 -9
  1605. package/dist/solid-tag-_MOsNHmz.mjs.map +0 -1
  1606. package/dist/solid-target-4S3CMgSW.mjs +0 -16
  1607. package/dist/solid-target-4S3CMgSW.mjs.map +0 -1
  1608. package/dist/solid-thumbs-down-P5DGzcsm.mjs +0 -9
  1609. package/dist/solid-thumbs-down-P5DGzcsm.mjs.map +0 -1
  1610. package/dist/solid-thumbs-up-34meU4hH.mjs +0 -9
  1611. package/dist/solid-thumbs-up-34meU4hH.mjs.map +0 -1
  1612. package/dist/solid-ticket-ah4Jp1G6.mjs +0 -9
  1613. package/dist/solid-ticket-ah4Jp1G6.mjs.map +0 -1
  1614. package/dist/solid-trash-EUfxQsCg.mjs +0 -16
  1615. package/dist/solid-trash-EUfxQsCg.mjs.map +0 -1
  1616. package/dist/solid-tree-bXPmDTvi.mjs +0 -9
  1617. package/dist/solid-tree-bXPmDTvi.mjs.map +0 -1
  1618. package/dist/solid-truck-GvLJgJxW.mjs +0 -9
  1619. package/dist/solid-truck-GvLJgJxW.mjs.map +0 -1
  1620. package/dist/solid-twitter-ZS87SoI7.mjs +0 -9
  1621. package/dist/solid-twitter-ZS87SoI7.mjs.map +0 -1
  1622. package/dist/solid-twitter-x-z326SLll.mjs +0 -15
  1623. package/dist/solid-twitter-x-z326SLll.mjs.map +0 -1
  1624. package/dist/solid-unlock-dyllogZV.mjs +0 -9
  1625. package/dist/solid-unlock-dyllogZV.mjs.map +0 -1
  1626. package/dist/solid-upload-xH4Mf-D_.mjs +0 -30
  1627. package/dist/solid-upload-xH4Mf-D_.mjs.map +0 -1
  1628. package/dist/solid-user-group-oV_Bbpzw.mjs +0 -9
  1629. package/dist/solid-user-group-oV_Bbpzw.mjs.map +0 -1
  1630. package/dist/solid-user-r1VlbYNh.mjs +0 -9
  1631. package/dist/solid-user-r1VlbYNh.mjs.map +0 -1
  1632. package/dist/solid-video-off-mMyMU_P0.mjs +0 -16
  1633. package/dist/solid-video-off-mMyMU_P0.mjs.map +0 -1
  1634. package/dist/solid-video-on-DzE5tXM-.mjs +0 -9
  1635. package/dist/solid-video-on-DzE5tXM-.mjs.map +0 -1
  1636. package/dist/solid-volume-max-NHP3VQQI.mjs +0 -9
  1637. package/dist/solid-volume-max-NHP3VQQI.mjs.map +0 -1
  1638. package/dist/solid-volume-min-Mb9evf4B.mjs +0 -9
  1639. package/dist/solid-volume-min-Mb9evf4B.mjs.map +0 -1
  1640. package/dist/solid-volume-mute-v5bKeqIL.mjs +0 -9
  1641. package/dist/solid-volume-mute-v5bKeqIL.mjs.map +0 -1
  1642. package/dist/solid-volume-off-WWzF19r9.mjs +0 -16
  1643. package/dist/solid-volume-off-WWzF19r9.mjs.map +0 -1
  1644. package/dist/solid-wallet-wmBAJiUQ.mjs +0 -9
  1645. package/dist/solid-wallet-wmBAJiUQ.mjs.map +0 -1
  1646. package/dist/solid-wifi-im3fV8RP.mjs +0 -9
  1647. package/dist/solid-wifi-im3fV8RP.mjs.map +0 -1
  1648. package/dist/solid-x-circle-bXGs9iXD.mjs +0 -16
  1649. package/dist/solid-x-circle-bXGs9iXD.mjs.map +0 -1
  1650. package/dist/solid-x-i3JggSik.mjs +0 -9
  1651. package/dist/solid-x-i3JggSik.mjs.map +0 -1
  1652. package/dist/solid-youtube-aulZssjt.mjs +0 -16
  1653. package/dist/solid-youtube-aulZssjt.mjs.map +0 -1
  1654. package/dist/types/components/assets/agora-illustrate-bookmark.d.ts +0 -2
  1655. package/dist/types/components/index.d.ts +0 -4
  1656. package/dist/types/components/models/index.d.ts +0 -6
  1657. package/dist/types/components/ui/atoms/accordion/accordion.d.ts +0 -49
  1658. package/dist/types/components/ui/atoms/accordion/index.d.ts +0 -2
  1659. package/dist/types/components/ui/atoms/anchor/anchor.d.ts +0 -67
  1660. package/dist/types/components/ui/atoms/avatar/avatar.d.ts +0 -70
  1661. package/dist/types/components/ui/atoms/avatar/interactive-avatar.d.ts +0 -9
  1662. package/dist/types/components/ui/atoms/avatar/non-interactive-avatar.d.ts +0 -8
  1663. package/dist/types/components/ui/atoms/breadcrumb/breadcrumb.d.ts +0 -26
  1664. package/dist/types/components/ui/atoms/breadcrumb/desktop/breadcrumb-desktop.d.ts +0 -4
  1665. package/dist/types/components/ui/atoms/breadcrumb/mobile/breadcrumb-mobile.d.ts +0 -4
  1666. package/dist/types/components/ui/atoms/button/button.d.ts +0 -68
  1667. package/dist/types/components/ui/atoms/checkbox/checkbox.d.ts +0 -23
  1668. package/dist/types/components/ui/atoms/dialog/dialog.d.ts +0 -33
  1669. package/dist/types/components/ui/atoms/dialog/index.d.ts +0 -2
  1670. package/dist/types/components/ui/atoms/drawer/drawer.d.ts +0 -37
  1671. package/dist/types/components/ui/atoms/drawer/index.d.ts +0 -2
  1672. package/dist/types/components/ui/atoms/glossary-letters/glossary-letters.d.ts +0 -25
  1673. package/dist/types/components/ui/atoms/icon/assets/empty-icon.d.ts +0 -4
  1674. package/dist/types/components/ui/atoms/icon/assets/index.d.ts +0 -6
  1675. package/dist/types/components/ui/atoms/icon/assets/line/line-airplay.d.ts +0 -4
  1676. package/dist/types/components/ui/atoms/icon/assets/line/line-alert-circle.d.ts +0 -4
  1677. package/dist/types/components/ui/atoms/icon/assets/line/line-alert-triangle.d.ts +0 -4
  1678. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-down-anchor.d.ts +0 -4
  1679. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-down-circle.d.ts +0 -4
  1680. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-down.d.ts +0 -4
  1681. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-left-anchor.d.ts +0 -4
  1682. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-left-circle.d.ts +0 -4
  1683. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-left.d.ts +0 -4
  1684. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-right-anchor.d.ts +0 -4
  1685. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-right-circle.d.ts +0 -4
  1686. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-right.d.ts +0 -4
  1687. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-up-anchor.d.ts +0 -4
  1688. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-up-circle.d.ts +0 -4
  1689. package/dist/types/components/ui/atoms/icon/assets/line/line-arrow-up.d.ts +0 -4
  1690. package/dist/types/components/ui/atoms/icon/assets/line/line-at-sign.d.ts +0 -4
  1691. package/dist/types/components/ui/atoms/icon/assets/line/line-award.d.ts +0 -4
  1692. package/dist/types/components/ui/atoms/icon/assets/line/line-bell.d.ts +0 -4
  1693. package/dist/types/components/ui/atoms/icon/assets/line/line-book-open.d.ts +0 -4
  1694. package/dist/types/components/ui/atoms/icon/assets/line/line-bookmark-card.d.ts +0 -4
  1695. package/dist/types/components/ui/atoms/icon/assets/line/line-bookmark.d.ts +0 -4
  1696. package/dist/types/components/ui/atoms/icon/assets/line/line-briefcase.d.ts +0 -4
  1697. package/dist/types/components/ui/atoms/icon/assets/line/line-buildings.d.ts +0 -4
  1698. package/dist/types/components/ui/atoms/icon/assets/line/line-bullet.d.ts +0 -4
  1699. package/dist/types/components/ui/atoms/icon/assets/line/line-bus.d.ts +0 -4
  1700. package/dist/types/components/ui/atoms/icon/assets/line/line-calculator.d.ts +0 -4
  1701. package/dist/types/components/ui/atoms/icon/assets/line/line-calendar.d.ts +0 -4
  1702. package/dist/types/components/ui/atoms/icon/assets/line/line-camera.d.ts +0 -4
  1703. package/dist/types/components/ui/atoms/icon/assets/line/line-chat.d.ts +0 -4
  1704. package/dist/types/components/ui/atoms/icon/assets/line/line-check-all.d.ts +0 -4
  1705. package/dist/types/components/ui/atoms/icon/assets/line/line-check-circle.d.ts +0 -4
  1706. package/dist/types/components/ui/atoms/icon/assets/line/line-check.d.ts +0 -4
  1707. package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-down.d.ts +0 -4
  1708. package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-left.d.ts +0 -4
  1709. package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-right.d.ts +0 -4
  1710. package/dist/types/components/ui/atoms/icon/assets/line/line-chevron-up.d.ts +0 -4
  1711. package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-down.d.ts +0 -4
  1712. package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-left.d.ts +0 -4
  1713. package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-right.d.ts +0 -4
  1714. package/dist/types/components/ui/atoms/icon/assets/line/line-chevrons-up.d.ts +0 -4
  1715. package/dist/types/components/ui/atoms/icon/assets/line/line-clock.d.ts +0 -4
  1716. package/dist/types/components/ui/atoms/icon/assets/line/line-coffee.d.ts +0 -4
  1717. package/dist/types/components/ui/atoms/icon/assets/line/line-court.d.ts +0 -4
  1718. package/dist/types/components/ui/atoms/icon/assets/line/line-credit-card.d.ts +0 -4
  1719. package/dist/types/components/ui/atoms/icon/assets/line/line-dashboard.d.ts +0 -4
  1720. package/dist/types/components/ui/atoms/icon/assets/line/line-delete.d.ts +0 -4
  1721. package/dist/types/components/ui/atoms/icon/assets/line/line-document.d.ts +0 -4
  1722. package/dist/types/components/ui/atoms/icon/assets/line/line-download.d.ts +0 -4
  1723. package/dist/types/components/ui/atoms/icon/assets/line/line-driving.d.ts +0 -4
  1724. package/dist/types/components/ui/atoms/icon/assets/line/line-edit.d.ts +0 -4
  1725. package/dist/types/components/ui/atoms/icon/assets/line/line-external-link.d.ts +0 -4
  1726. package/dist/types/components/ui/atoms/icon/assets/line/line-eye-off.d.ts +0 -4
  1727. package/dist/types/components/ui/atoms/icon/assets/line/line-eye.d.ts +0 -4
  1728. package/dist/types/components/ui/atoms/icon/assets/line/line-facebook.d.ts +0 -4
  1729. package/dist/types/components/ui/atoms/icon/assets/line/line-file-share.d.ts +0 -4
  1730. package/dist/types/components/ui/atoms/icon/assets/line/line-file.d.ts +0 -4
  1731. package/dist/types/components/ui/atoms/icon/assets/line/line-filter.d.ts +0 -4
  1732. package/dist/types/components/ui/atoms/icon/assets/line/line-flag.d.ts +0 -4
  1733. package/dist/types/components/ui/atoms/icon/assets/line/line-folder.d.ts +0 -4
  1734. package/dist/types/components/ui/atoms/icon/assets/line/line-globe.d.ts +0 -4
  1735. package/dist/types/components/ui/atoms/icon/assets/line/line-hardware-settings.d.ts +0 -4
  1736. package/dist/types/components/ui/atoms/icon/assets/line/line-health.d.ts +0 -4
  1737. package/dist/types/components/ui/atoms/icon/assets/line/line-help-support.d.ts +0 -4
  1738. package/dist/types/components/ui/atoms/icon/assets/line/line-home.d.ts +0 -4
  1739. package/dist/types/components/ui/atoms/icon/assets/line/line-info-mark.d.ts +0 -4
  1740. package/dist/types/components/ui/atoms/icon/assets/line/line-instagram.d.ts +0 -4
  1741. package/dist/types/components/ui/atoms/icon/assets/line/line-linkedin.d.ts +0 -4
  1742. package/dist/types/components/ui/atoms/icon/assets/line/line-list.d.ts +0 -4
  1743. package/dist/types/components/ui/atoms/icon/assets/line/line-loader.d.ts +0 -4
  1744. package/dist/types/components/ui/atoms/icon/assets/line/line-lock.d.ts +0 -4
  1745. package/dist/types/components/ui/atoms/icon/assets/line/line-log-in.d.ts +0 -4
  1746. package/dist/types/components/ui/atoms/icon/assets/line/line-log-out.d.ts +0 -4
  1747. package/dist/types/components/ui/atoms/icon/assets/line/line-mail-open.d.ts +0 -4
  1748. package/dist/types/components/ui/atoms/icon/assets/line/line-mail.d.ts +0 -4
  1749. package/dist/types/components/ui/atoms/icon/assets/line/line-map-pin.d.ts +0 -4
  1750. package/dist/types/components/ui/atoms/icon/assets/line/line-map.d.ts +0 -4
  1751. package/dist/types/components/ui/atoms/icon/assets/line/line-mega-phone.d.ts +0 -4
  1752. package/dist/types/components/ui/atoms/icon/assets/line/line-menu.d.ts +0 -4
  1753. package/dist/types/components/ui/atoms/icon/assets/line/line-mic-off.d.ts +0 -4
  1754. package/dist/types/components/ui/atoms/icon/assets/line/line-mic-on.d.ts +0 -4
  1755. package/dist/types/components/ui/atoms/icon/assets/line/line-minus-circle.d.ts +0 -4
  1756. package/dist/types/components/ui/atoms/icon/assets/line/line-minus.d.ts +0 -4
  1757. package/dist/types/components/ui/atoms/icon/assets/line/line-money-taxes.d.ts +0 -4
  1758. package/dist/types/components/ui/atoms/icon/assets/line/line-monitor.d.ts +0 -4
  1759. package/dist/types/components/ui/atoms/icon/assets/line/line-more-horizontal.d.ts +0 -4
  1760. package/dist/types/components/ui/atoms/icon/assets/line/line-more-vertical.d.ts +0 -4
  1761. package/dist/types/components/ui/atoms/icon/assets/line/line-movie.d.ts +0 -4
  1762. package/dist/types/components/ui/atoms/icon/assets/line/line-music.d.ts +0 -4
  1763. package/dist/types/components/ui/atoms/icon/assets/line/line-package.d.ts +0 -4
  1764. package/dist/types/components/ui/atoms/icon/assets/line/line-paperclip.d.ts +0 -4
  1765. package/dist/types/components/ui/atoms/icon/assets/line/line-plane.d.ts +0 -4
  1766. package/dist/types/components/ui/atoms/icon/assets/line/line-plus-circle.d.ts +0 -4
  1767. package/dist/types/components/ui/atoms/icon/assets/line/line-plus.d.ts +0 -4
  1768. package/dist/types/components/ui/atoms/icon/assets/line/line-print.d.ts +0 -4
  1769. package/dist/types/components/ui/atoms/icon/assets/line/line-question-mark.d.ts +0 -4
  1770. package/dist/types/components/ui/atoms/icon/assets/line/line-refresh-ccw.d.ts +0 -4
  1771. package/dist/types/components/ui/atoms/icon/assets/line/line-search.d.ts +0 -4
  1772. package/dist/types/components/ui/atoms/icon/assets/line/line-settings.d.ts +0 -4
  1773. package/dist/types/components/ui/atoms/icon/assets/line/line-share.d.ts +0 -4
  1774. package/dist/types/components/ui/atoms/icon/assets/line/line-shield.d.ts +0 -4
  1775. package/dist/types/components/ui/atoms/icon/assets/line/line-smartphone.d.ts +0 -4
  1776. package/dist/types/components/ui/atoms/icon/assets/line/line-smile-sad.d.ts +0 -4
  1777. package/dist/types/components/ui/atoms/icon/assets/line/line-social-security.d.ts +0 -4
  1778. package/dist/types/components/ui/atoms/icon/assets/line/line-sort-alpha-down.d.ts +0 -4
  1779. package/dist/types/components/ui/atoms/icon/assets/line/line-sort-alpha-up.d.ts +0 -4
  1780. package/dist/types/components/ui/atoms/icon/assets/line/line-sort-generic-down.d.ts +0 -4
  1781. package/dist/types/components/ui/atoms/icon/assets/line/line-sort-generic-up.d.ts +0 -4
  1782. package/dist/types/components/ui/atoms/icon/assets/line/line-sort-vertical.d.ts +0 -4
  1783. package/dist/types/components/ui/atoms/icon/assets/line/line-star.d.ts +0 -4
  1784. package/dist/types/components/ui/atoms/icon/assets/line/line-tag.d.ts +0 -4
  1785. package/dist/types/components/ui/atoms/icon/assets/line/line-target.d.ts +0 -4
  1786. package/dist/types/components/ui/atoms/icon/assets/line/line-thumbs-down.d.ts +0 -4
  1787. package/dist/types/components/ui/atoms/icon/assets/line/line-thumbs-up.d.ts +0 -4
  1788. package/dist/types/components/ui/atoms/icon/assets/line/line-ticket.d.ts +0 -4
  1789. package/dist/types/components/ui/atoms/icon/assets/line/line-trash.d.ts +0 -4
  1790. package/dist/types/components/ui/atoms/icon/assets/line/line-tree.d.ts +0 -4
  1791. package/dist/types/components/ui/atoms/icon/assets/line/line-truck.d.ts +0 -4
  1792. package/dist/types/components/ui/atoms/icon/assets/line/line-twitter-x.d.ts +0 -4
  1793. package/dist/types/components/ui/atoms/icon/assets/line/line-twitter.d.ts +0 -4
  1794. package/dist/types/components/ui/atoms/icon/assets/line/line-unlock.d.ts +0 -4
  1795. package/dist/types/components/ui/atoms/icon/assets/line/line-upload.d.ts +0 -4
  1796. package/dist/types/components/ui/atoms/icon/assets/line/line-user-group.d.ts +0 -4
  1797. package/dist/types/components/ui/atoms/icon/assets/line/line-user.d.ts +0 -4
  1798. package/dist/types/components/ui/atoms/icon/assets/line/line-video-off.d.ts +0 -4
  1799. package/dist/types/components/ui/atoms/icon/assets/line/line-video-on.d.ts +0 -4
  1800. package/dist/types/components/ui/atoms/icon/assets/line/line-volume-max.d.ts +0 -4
  1801. package/dist/types/components/ui/atoms/icon/assets/line/line-volume-min.d.ts +0 -4
  1802. package/dist/types/components/ui/atoms/icon/assets/line/line-volume-mute.d.ts +0 -4
  1803. package/dist/types/components/ui/atoms/icon/assets/line/line-volume-off.d.ts +0 -4
  1804. package/dist/types/components/ui/atoms/icon/assets/line/line-wallet.d.ts +0 -4
  1805. package/dist/types/components/ui/atoms/icon/assets/line/line-wifi.d.ts +0 -4
  1806. package/dist/types/components/ui/atoms/icon/assets/line/line-x-circle.d.ts +0 -4
  1807. package/dist/types/components/ui/atoms/icon/assets/line/line-x.d.ts +0 -4
  1808. package/dist/types/components/ui/atoms/icon/assets/line/line-youtube.d.ts +0 -4
  1809. package/dist/types/components/ui/atoms/icon/assets/other/agora.d.ts +0 -4
  1810. package/dist/types/components/ui/atoms/icon/assets/other/drag-dots.d.ts +0 -4
  1811. package/dist/types/components/ui/atoms/icon/assets/solid/solid-airplay.d.ts +0 -4
  1812. package/dist/types/components/ui/atoms/icon/assets/solid/solid-alert-circle.d.ts +0 -4
  1813. package/dist/types/components/ui/atoms/icon/assets/solid/solid-alert-triangle.d.ts +0 -4
  1814. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-down-anchor.d.ts +0 -4
  1815. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-down-circle.d.ts +0 -4
  1816. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-down.d.ts +0 -4
  1817. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-left-anchor.d.ts +0 -4
  1818. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-left-circle.d.ts +0 -4
  1819. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-left.d.ts +0 -4
  1820. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-right-anchor.d.ts +0 -4
  1821. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-right-circle.d.ts +0 -4
  1822. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-right.d.ts +0 -4
  1823. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-up-anchor.d.ts +0 -4
  1824. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-up-circle.d.ts +0 -4
  1825. package/dist/types/components/ui/atoms/icon/assets/solid/solid-arrow-up.d.ts +0 -4
  1826. package/dist/types/components/ui/atoms/icon/assets/solid/solid-at-sign.d.ts +0 -4
  1827. package/dist/types/components/ui/atoms/icon/assets/solid/solid-award.d.ts +0 -4
  1828. package/dist/types/components/ui/atoms/icon/assets/solid/solid-bell.d.ts +0 -4
  1829. package/dist/types/components/ui/atoms/icon/assets/solid/solid-book-open.d.ts +0 -4
  1830. package/dist/types/components/ui/atoms/icon/assets/solid/solid-bookmark-card.d.ts +0 -4
  1831. package/dist/types/components/ui/atoms/icon/assets/solid/solid-bookmark.d.ts +0 -4
  1832. package/dist/types/components/ui/atoms/icon/assets/solid/solid-briefcase.d.ts +0 -4
  1833. package/dist/types/components/ui/atoms/icon/assets/solid/solid-buildings.d.ts +0 -4
  1834. package/dist/types/components/ui/atoms/icon/assets/solid/solid-bullet.d.ts +0 -4
  1835. package/dist/types/components/ui/atoms/icon/assets/solid/solid-bus.d.ts +0 -4
  1836. package/dist/types/components/ui/atoms/icon/assets/solid/solid-calculator.d.ts +0 -4
  1837. package/dist/types/components/ui/atoms/icon/assets/solid/solid-calendar.d.ts +0 -4
  1838. package/dist/types/components/ui/atoms/icon/assets/solid/solid-camera.d.ts +0 -4
  1839. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chat.d.ts +0 -4
  1840. package/dist/types/components/ui/atoms/icon/assets/solid/solid-check-all.d.ts +0 -4
  1841. package/dist/types/components/ui/atoms/icon/assets/solid/solid-check-circle.d.ts +0 -4
  1842. package/dist/types/components/ui/atoms/icon/assets/solid/solid-check.d.ts +0 -4
  1843. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-down.d.ts +0 -4
  1844. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-left.d.ts +0 -4
  1845. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-right.d.ts +0 -4
  1846. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevron-up.d.ts +0 -4
  1847. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-down.d.ts +0 -4
  1848. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-left.d.ts +0 -4
  1849. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-right.d.ts +0 -4
  1850. package/dist/types/components/ui/atoms/icon/assets/solid/solid-chevrons-up.d.ts +0 -4
  1851. package/dist/types/components/ui/atoms/icon/assets/solid/solid-clock.d.ts +0 -4
  1852. package/dist/types/components/ui/atoms/icon/assets/solid/solid-coffee.d.ts +0 -4
  1853. package/dist/types/components/ui/atoms/icon/assets/solid/solid-court.d.ts +0 -4
  1854. package/dist/types/components/ui/atoms/icon/assets/solid/solid-credit-card.d.ts +0 -4
  1855. package/dist/types/components/ui/atoms/icon/assets/solid/solid-dashboard.d.ts +0 -4
  1856. package/dist/types/components/ui/atoms/icon/assets/solid/solid-delete.d.ts +0 -4
  1857. package/dist/types/components/ui/atoms/icon/assets/solid/solid-document.d.ts +0 -4
  1858. package/dist/types/components/ui/atoms/icon/assets/solid/solid-download.d.ts +0 -4
  1859. package/dist/types/components/ui/atoms/icon/assets/solid/solid-driving.d.ts +0 -4
  1860. package/dist/types/components/ui/atoms/icon/assets/solid/solid-edit.d.ts +0 -4
  1861. package/dist/types/components/ui/atoms/icon/assets/solid/solid-external-link.d.ts +0 -4
  1862. package/dist/types/components/ui/atoms/icon/assets/solid/solid-eye-off.d.ts +0 -4
  1863. package/dist/types/components/ui/atoms/icon/assets/solid/solid-eye.d.ts +0 -4
  1864. package/dist/types/components/ui/atoms/icon/assets/solid/solid-facebook.d.ts +0 -4
  1865. package/dist/types/components/ui/atoms/icon/assets/solid/solid-file-share.d.ts +0 -4
  1866. package/dist/types/components/ui/atoms/icon/assets/solid/solid-file.d.ts +0 -4
  1867. package/dist/types/components/ui/atoms/icon/assets/solid/solid-filter.d.ts +0 -4
  1868. package/dist/types/components/ui/atoms/icon/assets/solid/solid-flag.d.ts +0 -4
  1869. package/dist/types/components/ui/atoms/icon/assets/solid/solid-folder.d.ts +0 -4
  1870. package/dist/types/components/ui/atoms/icon/assets/solid/solid-globe.d.ts +0 -4
  1871. package/dist/types/components/ui/atoms/icon/assets/solid/solid-hardware-settings.d.ts +0 -4
  1872. package/dist/types/components/ui/atoms/icon/assets/solid/solid-health.d.ts +0 -4
  1873. package/dist/types/components/ui/atoms/icon/assets/solid/solid-help-support.d.ts +0 -4
  1874. package/dist/types/components/ui/atoms/icon/assets/solid/solid-home.d.ts +0 -4
  1875. package/dist/types/components/ui/atoms/icon/assets/solid/solid-info-mark.d.ts +0 -4
  1876. package/dist/types/components/ui/atoms/icon/assets/solid/solid-instagram.d.ts +0 -4
  1877. package/dist/types/components/ui/atoms/icon/assets/solid/solid-linkedin.d.ts +0 -4
  1878. package/dist/types/components/ui/atoms/icon/assets/solid/solid-list.d.ts +0 -4
  1879. package/dist/types/components/ui/atoms/icon/assets/solid/solid-loader.d.ts +0 -4
  1880. package/dist/types/components/ui/atoms/icon/assets/solid/solid-lock.d.ts +0 -4
  1881. package/dist/types/components/ui/atoms/icon/assets/solid/solid-log-in.d.ts +0 -4
  1882. package/dist/types/components/ui/atoms/icon/assets/solid/solid-log-out.d.ts +0 -4
  1883. package/dist/types/components/ui/atoms/icon/assets/solid/solid-mail-open.d.ts +0 -4
  1884. package/dist/types/components/ui/atoms/icon/assets/solid/solid-mail.d.ts +0 -4
  1885. package/dist/types/components/ui/atoms/icon/assets/solid/solid-map-pin.d.ts +0 -4
  1886. package/dist/types/components/ui/atoms/icon/assets/solid/solid-map.d.ts +0 -4
  1887. package/dist/types/components/ui/atoms/icon/assets/solid/solid-mega-phone.d.ts +0 -4
  1888. package/dist/types/components/ui/atoms/icon/assets/solid/solid-menu.d.ts +0 -4
  1889. package/dist/types/components/ui/atoms/icon/assets/solid/solid-mic-off.d.ts +0 -4
  1890. package/dist/types/components/ui/atoms/icon/assets/solid/solid-mic-on.d.ts +0 -4
  1891. package/dist/types/components/ui/atoms/icon/assets/solid/solid-minus-circle.d.ts +0 -4
  1892. package/dist/types/components/ui/atoms/icon/assets/solid/solid-minus.d.ts +0 -4
  1893. package/dist/types/components/ui/atoms/icon/assets/solid/solid-money-taxes.d.ts +0 -4
  1894. package/dist/types/components/ui/atoms/icon/assets/solid/solid-monitor.d.ts +0 -4
  1895. package/dist/types/components/ui/atoms/icon/assets/solid/solid-more-horizontal.d.ts +0 -4
  1896. package/dist/types/components/ui/atoms/icon/assets/solid/solid-more-vertical.d.ts +0 -4
  1897. package/dist/types/components/ui/atoms/icon/assets/solid/solid-movie.d.ts +0 -4
  1898. package/dist/types/components/ui/atoms/icon/assets/solid/solid-music.d.ts +0 -4
  1899. package/dist/types/components/ui/atoms/icon/assets/solid/solid-package.d.ts +0 -4
  1900. package/dist/types/components/ui/atoms/icon/assets/solid/solid-paperclip.d.ts +0 -4
  1901. package/dist/types/components/ui/atoms/icon/assets/solid/solid-plane.d.ts +0 -4
  1902. package/dist/types/components/ui/atoms/icon/assets/solid/solid-plus-circle.d.ts +0 -4
  1903. package/dist/types/components/ui/atoms/icon/assets/solid/solid-plus.d.ts +0 -4
  1904. package/dist/types/components/ui/atoms/icon/assets/solid/solid-print.d.ts +0 -4
  1905. package/dist/types/components/ui/atoms/icon/assets/solid/solid-question-mark.d.ts +0 -4
  1906. package/dist/types/components/ui/atoms/icon/assets/solid/solid-refresh-ccw.d.ts +0 -4
  1907. package/dist/types/components/ui/atoms/icon/assets/solid/solid-search.d.ts +0 -4
  1908. package/dist/types/components/ui/atoms/icon/assets/solid/solid-settings.d.ts +0 -4
  1909. package/dist/types/components/ui/atoms/icon/assets/solid/solid-share.d.ts +0 -4
  1910. package/dist/types/components/ui/atoms/icon/assets/solid/solid-shield.d.ts +0 -4
  1911. package/dist/types/components/ui/atoms/icon/assets/solid/solid-smartphone.d.ts +0 -4
  1912. package/dist/types/components/ui/atoms/icon/assets/solid/solid-smile-sad.d.ts +0 -4
  1913. package/dist/types/components/ui/atoms/icon/assets/solid/solid-social-security.d.ts +0 -4
  1914. package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-alpha-down.d.ts +0 -4
  1915. package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-alpha-up.d.ts +0 -4
  1916. package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-generic-down.d.ts +0 -4
  1917. package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-generic-up.d.ts +0 -4
  1918. package/dist/types/components/ui/atoms/icon/assets/solid/solid-sort-vertical.d.ts +0 -4
  1919. package/dist/types/components/ui/atoms/icon/assets/solid/solid-star.d.ts +0 -4
  1920. package/dist/types/components/ui/atoms/icon/assets/solid/solid-tag.d.ts +0 -4
  1921. package/dist/types/components/ui/atoms/icon/assets/solid/solid-target.d.ts +0 -4
  1922. package/dist/types/components/ui/atoms/icon/assets/solid/solid-thumbs-down.d.ts +0 -4
  1923. package/dist/types/components/ui/atoms/icon/assets/solid/solid-thumbs-up.d.ts +0 -4
  1924. package/dist/types/components/ui/atoms/icon/assets/solid/solid-ticket.d.ts +0 -4
  1925. package/dist/types/components/ui/atoms/icon/assets/solid/solid-trash.d.ts +0 -4
  1926. package/dist/types/components/ui/atoms/icon/assets/solid/solid-tree.d.ts +0 -4
  1927. package/dist/types/components/ui/atoms/icon/assets/solid/solid-truck.d.ts +0 -4
  1928. package/dist/types/components/ui/atoms/icon/assets/solid/solid-twitter-x.d.ts +0 -4
  1929. package/dist/types/components/ui/atoms/icon/assets/solid/solid-twitter.d.ts +0 -4
  1930. package/dist/types/components/ui/atoms/icon/assets/solid/solid-unlock.d.ts +0 -4
  1931. package/dist/types/components/ui/atoms/icon/assets/solid/solid-upload.d.ts +0 -4
  1932. package/dist/types/components/ui/atoms/icon/assets/solid/solid-user-group.d.ts +0 -4
  1933. package/dist/types/components/ui/atoms/icon/assets/solid/solid-user.d.ts +0 -4
  1934. package/dist/types/components/ui/atoms/icon/assets/solid/solid-video-off.d.ts +0 -4
  1935. package/dist/types/components/ui/atoms/icon/assets/solid/solid-video-on.d.ts +0 -4
  1936. package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-max.d.ts +0 -4
  1937. package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-min.d.ts +0 -4
  1938. package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-mute.d.ts +0 -4
  1939. package/dist/types/components/ui/atoms/icon/assets/solid/solid-volume-off.d.ts +0 -4
  1940. package/dist/types/components/ui/atoms/icon/assets/solid/solid-wallet.d.ts +0 -4
  1941. package/dist/types/components/ui/atoms/icon/assets/solid/solid-wifi.d.ts +0 -4
  1942. package/dist/types/components/ui/atoms/icon/assets/solid/solid-x-circle.d.ts +0 -4
  1943. package/dist/types/components/ui/atoms/icon/assets/solid/solid-x.d.ts +0 -4
  1944. package/dist/types/components/ui/atoms/icon/assets/solid/solid-youtube.d.ts +0 -4
  1945. package/dist/types/components/ui/atoms/icon/icon.d.ts +0 -28
  1946. package/dist/types/components/ui/atoms/input-email-bar/input-email-bar.d.ts +0 -39
  1947. package/dist/types/components/ui/atoms/input-file/index.d.ts +0 -2
  1948. package/dist/types/components/ui/atoms/input-file/input-file.d.ts +0 -64
  1949. package/dist/types/components/ui/atoms/input-number/input-number.d.ts +0 -51
  1950. package/dist/types/components/ui/atoms/input-password/input-password.d.ts +0 -46
  1951. package/dist/types/components/ui/atoms/input-range/index.d.ts +0 -2
  1952. package/dist/types/components/ui/atoms/input-range/input-range.d.ts +0 -48
  1953. package/dist/types/components/ui/atoms/input-search/input-search.d.ts +0 -42
  1954. package/dist/types/components/ui/atoms/input-search-bar/index.d.ts +0 -2
  1955. package/dist/types/components/ui/atoms/input-search-bar/input-search-bar.d.ts +0 -46
  1956. package/dist/types/components/ui/atoms/input-text/input-text.d.ts +0 -42
  1957. package/dist/types/components/ui/atoms/input-textarea/input-textarea.d.ts +0 -39
  1958. package/dist/types/components/ui/atoms/link-wrapper/link-wrapper.d.ts +0 -37
  1959. package/dist/types/components/ui/atoms/list/list.d.ts +0 -31
  1960. package/dist/types/components/ui/atoms/pill/pill.d.ts +0 -39
  1961. package/dist/types/components/ui/atoms/progress-bar/progress-bar.d.ts +0 -34
  1962. package/dist/types/components/ui/atoms/radio/radio.d.ts +0 -23
  1963. package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-curve-right.d.ts +0 -4
  1964. package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-down-left.d.ts +0 -4
  1965. package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-down-right.d.ts +0 -4
  1966. package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-loop.d.ts +0 -4
  1967. package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-right.d.ts +0 -4
  1968. package/dist/types/components/ui/atoms/scribbles/assets/arrow/arrow-up-right.d.ts +0 -4
  1969. package/dist/types/components/ui/atoms/scribbles/assets/bold/bold-arrow.d.ts +0 -4
  1970. package/dist/types/components/ui/atoms/scribbles/assets/bold/bold-line.d.ts +0 -4
  1971. package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-left-l.d.ts +0 -4
  1972. package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-left-xxl.d.ts +0 -4
  1973. package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-right-l.d.ts +0 -4
  1974. package/dist/types/components/ui/atoms/scribbles/assets/circle/circle-right-xxl.d.ts +0 -4
  1975. package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-attention.d.ts +0 -4
  1976. package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-chat.d.ts +0 -4
  1977. package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-fluid.d.ts +0 -4
  1978. package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-movement.d.ts +0 -4
  1979. package/dist/types/components/ui/atoms/scribbles/assets/detail/detail-talk.d.ts +0 -4
  1980. package/dist/types/components/ui/atoms/scribbles/assets/index.d.ts +0 -6
  1981. package/dist/types/components/ui/atoms/scribbles/assets/line/line-straight.d.ts +0 -4
  1982. package/dist/types/components/ui/atoms/scribbles/assets/line/line-zig-zag.d.ts +0 -4
  1983. package/dist/types/components/ui/atoms/scribbles/assets/line/line-zig.d.ts +0 -4
  1984. package/dist/types/components/ui/atoms/scribbles/assets/wave/wave-left-l.d.ts +0 -4
  1985. package/dist/types/components/ui/atoms/scribbles/assets/wave/wave-right-l.d.ts +0 -4
  1986. package/dist/types/components/ui/atoms/scribbles/assets/wave/wave-right-m.d.ts +0 -4
  1987. package/dist/types/components/ui/atoms/scribbles/scribbles.d.ts +0 -24
  1988. package/dist/types/components/ui/atoms/skip-navigation/index.d.ts +0 -2
  1989. package/dist/types/components/ui/atoms/skip-navigation/skip-navigation.d.ts +0 -40
  1990. package/dist/types/components/ui/atoms/status-card/status-card.d.ts +0 -25
  1991. package/dist/types/components/ui/atoms/step-list/step-list.d.ts +0 -13
  1992. package/dist/types/components/ui/atoms/switch/switch.d.ts +0 -28
  1993. package/dist/types/components/ui/atoms/tabs/index.d.ts +0 -8
  1994. package/dist/types/components/ui/atoms/tabs/tab-body.d.ts +0 -13
  1995. package/dist/types/components/ui/atoms/tabs/tab.d.ts +0 -15
  1996. package/dist/types/components/ui/atoms/tabs/tabs.d.ts +0 -23
  1997. package/dist/types/components/ui/atoms/tag/tag.d.ts +0 -31
  1998. package/dist/types/components/ui/atoms/toasts/toast.d.ts +0 -26
  1999. package/dist/types/components/ui/atoms/tooltip/tooltip.d.ts +0 -42
  2000. package/dist/types/components/ui/index.d.ts +0 -57
  2001. package/dist/types/components/ui/molecules/accordion-group/accordion-group.d.ts +0 -19
  2002. package/dist/types/components/ui/molecules/avatar-group/avatar-group.d.ts +0 -24
  2003. package/dist/types/components/ui/molecules/avatar-group/visible-count-avatar-group.d.ts +0 -9
  2004. package/dist/types/components/ui/molecules/back-to-top/back-to-top.d.ts +0 -31
  2005. package/dist/types/components/ui/molecules/button-group/button-group.d.ts +0 -36
  2006. package/dist/types/components/ui/molecules/button-group/index.d.ts +0 -2
  2007. package/dist/types/components/ui/molecules/checkbox-group/checkbox-group.d.ts +0 -49
  2008. package/dist/types/components/ui/molecules/dropdown/dropdown-option.d.ts +0 -14
  2009. package/dist/types/components/ui/molecules/dropdown/dropdown-section.d.ts +0 -12
  2010. package/dist/types/components/ui/molecules/dropdown/dropdown.d.ts +0 -67
  2011. package/dist/types/components/ui/molecules/dropdown/index.d.ts +0 -7
  2012. package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-context.d.ts +0 -28
  2013. package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-option.d.ts +0 -17
  2014. package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-section.d.ts +0 -13
  2015. package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown-select-all-section.d.ts +0 -6
  2016. package/dist/types/components/ui/molecules/dropdown/internals/internal-dropdown.d.ts +0 -20
  2017. package/dist/types/components/ui/molecules/dropdown/internals/use-dropdown-state.d.ts +0 -7
  2018. package/dist/types/components/ui/molecules/loader-dialog/loader-dialog-context.d.ts +0 -12
  2019. package/dist/types/components/ui/molecules/loader-dialog/loader-dialog.d.ts +0 -13
  2020. package/dist/types/components/ui/molecules/loader-dialog/loader-provider.d.ts +0 -9
  2021. package/dist/types/components/ui/molecules/menu-item/menu-item.d.ts +0 -43
  2022. package/dist/types/components/ui/molecules/modal-dialog/index.d.ts +0 -6
  2023. package/dist/types/components/ui/molecules/modal-dialog/modal-context.d.ts +0 -12
  2024. package/dist/types/components/ui/molecules/modal-dialog/modal-dialog.d.ts +0 -19
  2025. package/dist/types/components/ui/molecules/modal-dialog/modal-provider.d.ts +0 -14
  2026. package/dist/types/components/ui/molecules/popup-dialog/index.d.ts +0 -6
  2027. package/dist/types/components/ui/molecules/popup-dialog/popup-context.d.ts +0 -12
  2028. package/dist/types/components/ui/molecules/popup-dialog/popup-dialog.d.ts +0 -28
  2029. package/dist/types/components/ui/molecules/popup-dialog/popup-provider.d.ts +0 -18
  2030. package/dist/types/components/ui/molecules/progress-bar-group/progress-bar-group.d.ts +0 -30
  2031. package/dist/types/components/ui/molecules/radio-button-group/radio-button-group.d.ts +0 -53
  2032. package/dist/types/components/ui/molecules/search-pagination/search-page.d.ts +0 -14
  2033. package/dist/types/components/ui/molecules/search-pagination/search-pagination.d.ts +0 -42
  2034. package/dist/types/components/ui/molecules/uploader/button-uploader/button-uploader.d.ts +0 -59
  2035. package/dist/types/components/ui/molecules/uploader/drag-and-drop-uploader/drag-and-drop-uploader.d.ts +0 -67
  2036. package/dist/types/components/ui/molecules/uploader/shared/use-file-upload.d.ts +0 -17
  2037. package/dist/types/components/ui/organisms/cards/card-article/card-article.d.ts +0 -48
  2038. package/dist/types/components/ui/organisms/cards/card-article/index.d.ts +0 -2
  2039. package/dist/types/components/ui/organisms/cards/card-collection/card-collection.d.ts +0 -27
  2040. package/dist/types/components/ui/organisms/cards/card-emphasize/card-emphasize.d.ts +0 -31
  2041. package/dist/types/components/ui/organisms/cards/card-error/card-error.d.ts +0 -34
  2042. package/dist/types/components/ui/organisms/cards/card-expandable/card-expandable.d.ts +0 -27
  2043. package/dist/types/components/ui/organisms/cards/card-frame/card-frame.d.ts +0 -27
  2044. package/dist/types/components/ui/organisms/cards/card-full-image/card-full-image.d.ts +0 -16
  2045. package/dist/types/components/ui/organisms/cards/card-hero-helper/card-hero-helper.d.ts +0 -27
  2046. package/dist/types/components/ui/organisms/cards/card-hero-index/card-hero-index.d.ts +0 -19
  2047. package/dist/types/components/ui/organisms/cards/card-hero-sitemap/card-hero-sitemap.d.ts +0 -27
  2048. package/dist/types/components/ui/organisms/cards/card-highlight/card-highlight.d.ts +0 -46
  2049. package/dist/types/components/ui/organisms/cards/card-highlight/shared/inner-highlight-card.d.ts +0 -27
  2050. package/dist/types/components/ui/organisms/cards/card-highlight-newsletter/card-highlight-newsletter.d.ts +0 -22
  2051. package/dist/types/components/ui/organisms/cards/card-highlight-single/card-highlight-single.d.ts +0 -22
  2052. package/dist/types/components/ui/organisms/cards/card-highlight-single/index.d.ts +0 -2
  2053. package/dist/types/components/ui/organisms/cards/card-links/card-links.d.ts +0 -39
  2054. package/dist/types/components/ui/organisms/cards/card-no-results/card-no-results.d.ts +0 -30
  2055. package/dist/types/components/ui/organisms/cards/card-no-results/index.d.ts +0 -2
  2056. package/dist/types/components/ui/organisms/cards/card-search-result/card-search-result.d.ts +0 -39
  2057. package/dist/types/components/ui/organisms/cards/card-single/card-single.d.ts +0 -40
  2058. package/dist/types/components/ui/organisms/cards/card-single/index.d.ts +0 -2
  2059. package/dist/types/components/ui/organisms/cards/card-topic/card-topic.d.ts +0 -51
  2060. package/dist/types/components/ui/organisms/feedback/feedback.d.ts +0 -27
  2061. package/dist/types/components/ui/organisms/input-date/contexts/date-picker-state.context.d.ts +0 -33
  2062. package/dist/types/components/ui/organisms/input-date/contexts/use-date-picker-state-context.d.ts +0 -60
  2063. package/dist/types/components/ui/organisms/input-date/date-picker-dropdown.d.ts +0 -26
  2064. package/dist/types/components/ui/organisms/input-date/grouped-date/grouped-date.d.ts +0 -18
  2065. package/dist/types/components/ui/organisms/input-date/index.d.ts +0 -2
  2066. package/dist/types/components/ui/organisms/input-date/input-date.d.ts +0 -126
  2067. package/dist/types/components/ui/organisms/input-phone/index.d.ts +0 -2
  2068. package/dist/types/components/ui/organisms/input-phone/input-phone.d.ts +0 -79
  2069. package/dist/types/components/ui/organisms/input-phone/resources/config.d.ts +0 -8
  2070. package/dist/types/components/ui/organisms/input-select/index.d.ts +0 -2
  2071. package/dist/types/components/ui/organisms/input-select/input-select.d.ts +0 -102
  2072. package/dist/types/components/ui/organisms/ratings/index.d.ts +0 -2
  2073. package/dist/types/components/ui/organisms/ratings/rating-button/index.d.ts +0 -2
  2074. package/dist/types/components/ui/organisms/ratings/rating-button/rating-button.d.ts +0 -48
  2075. package/dist/types/components/ui/organisms/ratings/rating-star/index.d.ts +0 -2
  2076. package/dist/types/components/ui/organisms/ratings/rating-star/rating-star.d.ts +0 -35
  2077. package/dist/types/components/ui/organisms/table/table-header-cell.d.ts +0 -32
  2078. package/dist/types/components/ui/organisms/table/table-pagination.d.ts +0 -54
  2079. package/dist/types/components/ui/organisms/table/table.d.ts +0 -36
  2080. package/dist/types/components/ui/organisms/timelines/shared/timeline-event/timeline-event.d.ts +0 -42
  2081. package/dist/types/components/ui/organisms/timelines/timeline-horizontal/timeline-horizontal.d.ts +0 -23
  2082. package/dist/types/components/ui/organisms/timelines/timeline-vertical/timeline-vertical.d.ts +0 -15
  2083. package/dist/types/components/ui/shared/feedback/feedback.d.ts +0 -20
  2084. package/dist/types/components/ui/templates/footer/federated-footer/federated-footer-card.d.ts +0 -4
  2085. package/dist/types/components/ui/templates/footer/federated-footer/federated-footer.d.ts +0 -38
  2086. package/dist/types/components/ui/templates/header/header.d.ts +0 -63
  2087. package/dist/types/components/ui/templates/header/models/MenuProps.d.ts +0 -10
  2088. package/dist/types/components/ui/templates/header/models/SearchContentListLinkProps.d.ts +0 -6
  2089. package/dist/types/components/ui/templates/header/models/SubmenuItemProps.d.ts +0 -24
  2090. package/dist/types/components/ui/templates/header/models/SubmenuSearchContentProps.d.ts +0 -13
  2091. package/dist/types/components/ui/templates/header/shared-components/header-burger-navigation/header-burger-primary-navigation.d.ts +0 -15
  2092. package/dist/types/components/ui/templates/header/shared-components/header-burger-navigation/header-burger-secondary-navigation.d.ts +0 -17
  2093. package/dist/types/components/ui/templates/header/shared-components/header-general-options/header-general-options.d.ts +0 -37
  2094. package/dist/types/components/ui/templates/header/shared-components/header-navigation/header-navigation.d.ts +0 -38
  2095. package/dist/types/components/ui/templates/header/utils/handle-click-menu-item.d.ts +0 -4
  2096. package/dist/types/components/utils/create-synthetic-change-event.d.ts +0 -2
  2097. package/dist/types/components/utils/index.d.ts +0 -5
  2098. package/dist/types/index.d.ts +0 -2
  2099. package/dist/wave-left-l-DdXkrLYU.mjs +0 -18
  2100. package/dist/wave-left-l-DdXkrLYU.mjs.map +0 -1
  2101. package/dist/wave-right-l-th6zHZb6.mjs +0 -18
  2102. package/dist/wave-right-l-th6zHZb6.mjs.map +0 -1
  2103. package/dist/wave-right-m-cXUiY52p.mjs +0 -18
  2104. package/dist/wave-right-m-cXUiY52p.mjs.map +0 -1
  2105. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/accordion-group/index.d.ts +0 -0
  2106. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/anchor/index.d.ts +0 -0
  2107. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/avatar/index.d.ts +0 -0
  2108. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/avatar-group/index.d.ts +0 -0
  2109. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/back-to-top/index.d.ts +0 -0
  2110. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/breadcrumb/index.d.ts +0 -0
  2111. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/button/index.d.ts +0 -0
  2112. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-collection/index.d.ts +0 -0
  2113. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-emphasize/index.d.ts +0 -0
  2114. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-error/index.d.ts +0 -0
  2115. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-expandable/index.d.ts +0 -0
  2116. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-frame/index.d.ts +0 -0
  2117. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-full-image/index.d.ts +0 -0
  2118. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-hero-helper/index.d.ts +0 -0
  2119. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-hero-index/index.d.ts +0 -0
  2120. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-hero-sitemap/index.d.ts +0 -0
  2121. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-highlight/index.d.ts +0 -0
  2122. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-highlight-newsletter/index.d.ts +0 -0
  2123. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-links/index.d.ts +0 -0
  2124. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-search-result/index.d.ts +0 -0
  2125. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/card-topic/index.d.ts +0 -0
  2126. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/index.d.ts +0 -0
  2127. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/cards/shared/use-blocked-link.d.ts +0 -0
  2128. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/checkbox/index.d.ts +0 -0
  2129. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/checkbox-group/index.d.ts +0 -0
  2130. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/dropdown/dropdown-type.d.ts +0 -0
  2131. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/dropdown/internals/internal-dropdown-filter-section.d.ts +0 -0
  2132. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/dropdown/internals/internal-dropdown-no-results.d.ts +0 -0
  2133. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/feedback/index.d.ts +0 -0
  2134. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/federated-footer/index.d.ts +0 -0
  2135. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/index.d.ts +0 -0
  2136. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/CardFooterProps.d.ts +0 -0
  2137. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/CardLinksFooterProps.d.ts +0 -0
  2138. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/ContactsFooterProps.d.ts +0 -0
  2139. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/LinkableIconsProps.d.ts +0 -0
  2140. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/LinkableImagesProps.d.ts +0 -0
  2141. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/models/index.d.ts +0 -0
  2142. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/index.d.ts +0 -0
  2143. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-contacts.d.ts +0 -0
  2144. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-highlight-card-links.d.ts +0 -0
  2145. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-highlight-card.d.ts +0 -0
  2146. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-highlight.d.ts +0 -0
  2147. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer-main-plus-card-links.d.ts +0 -0
  2148. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/public-footer/public-footer.d.ts +0 -0
  2149. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-brand-badge.d.ts +0 -0
  2150. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-caption-partners.d.ts +0 -0
  2151. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-main.d.ts +0 -0
  2152. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/footer/shared-components/footer-social-useful-copyright.d.ts +0 -0
  2153. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/glossary-letters/index.d.ts +0 -0
  2154. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/index.d.ts +0 -0
  2155. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/BackdropRef.d.ts +0 -0
  2156. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerContentProps.d.ts +0 -0
  2157. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerFooterProps.d.ts +0 -0
  2158. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerMenuItemsProps.d.ts +0 -0
  2159. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/DrawerMenuProps.d.ts +0 -0
  2160. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/HeaderNavigationType.d.ts +0 -0
  2161. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/MenuItemGeneralOptionsProps.d.ts +0 -0
  2162. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/SubmenuAlignmentType.d.ts +0 -0
  2163. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/SubmenuType.d.ts +0 -0
  2164. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/models/index.d.ts +0 -0
  2165. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-burger-navigation/header-burger-navigation.d.ts +0 -0
  2166. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-menu-item-options/header-menu-item-options-links.d.ts +0 -0
  2167. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-menu-item-options/header-menu-item-options-search.d.ts +0 -0
  2168. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/shared-components/header-menu-item-options/header-menu-item-options.d.ts +0 -0
  2169. /package/{dist/types/components/ui/templates → artifacts/dist/types/components}/header/utils/close-other-menu.d.ts +0 -0
  2170. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/icon/index.d.ts +0 -0
  2171. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/date-picker-dropdown-body/date-picker-dropdown-body.d.ts +0 -0
  2172. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/date-picker-dropdown-footer/date-picker-dropdown-footer.d.ts +0 -0
  2173. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/date-picker-dropdown-header/date-picker-dropdown-header.d.ts +0 -0
  2174. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/utils/is-date-in-same-month.d.ts +0 -0
  2175. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/utils/is-same-day.d.ts +0 -0
  2176. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/input-date/utils/parse-input-date.d.ts +0 -0
  2177. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-email-bar/index.d.ts +0 -0
  2178. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-number/index.d.ts +0 -0
  2179. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-password/index.d.ts +0 -0
  2180. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-search/index.d.ts +0 -0
  2181. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-text/index.d.ts +0 -0
  2182. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/input-textarea/index.d.ts +0 -0
  2183. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/link-wrapper/index.d.ts +0 -0
  2184. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/list/index.d.ts +0 -0
  2185. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/loader-dialog/index.d.ts +0 -0
  2186. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/menu-item/index.d.ts +0 -0
  2187. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/pill/index.d.ts +0 -0
  2188. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/progress-bar/index.d.ts +0 -0
  2189. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/progress-bar-group/index.d.ts +0 -0
  2190. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/radio/index.d.ts +0 -0
  2191. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/radio-button-group/index.d.ts +0 -0
  2192. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/scribbles/index.d.ts +0 -0
  2193. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/search-pagination/index.d.ts +0 -0
  2194. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/search-pagination/search-pagination-number-overlay.d.ts +0 -0
  2195. /package/{dist/types/components/ui → artifacts/dist/types/components}/shared/feedback/index.d.ts +0 -0
  2196. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/skip-navigation/skip-navigation-multiple.d.ts +0 -0
  2197. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/skip-navigation/skip-navigation-single.d.ts +0 -0
  2198. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/status-card/index.d.ts +0 -0
  2199. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/status-card/interactive-status-card.d.ts +0 -0
  2200. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/status-card/non-interactive-status-card.d.ts +0 -0
  2201. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/step-list/index.d.ts +0 -0
  2202. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/switch/index.d.ts +0 -0
  2203. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/index.d.ts +0 -0
  2204. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/models/sort-order.type.d.ts +0 -0
  2205. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/models/sort-type.type.d.ts +0 -0
  2206. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/models/table-layout.type.d.ts +0 -0
  2207. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-body.d.ts +0 -0
  2208. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-caption.d.ts +0 -0
  2209. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-cell.d.ts +0 -0
  2210. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-footer.d.ts +0 -0
  2211. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-header.d.ts +0 -0
  2212. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/table/table-row.d.ts +0 -0
  2213. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/tabs/tab-header.d.ts +0 -0
  2214. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/tag/index.d.ts +0 -0
  2215. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/index.d.ts +0 -0
  2216. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/shared/timeline-event/index.d.ts +0 -0
  2217. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/shared/timeline-event-vertical/index.d.ts +0 -0
  2218. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/shared/timeline-event-vertical/timeline-event-vertical.d.ts +0 -0
  2219. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/timeline-horizontal/index.d.ts +0 -0
  2220. /package/{dist/types/components/ui/organisms → artifacts/dist/types/components}/timelines/timeline-vertical/index.d.ts +0 -0
  2221. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/index.d.ts +0 -0
  2222. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/toast-context.d.ts +0 -0
  2223. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/toast-provider.d.ts +0 -0
  2224. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/toasts/use-toast.d.ts +0 -0
  2225. /package/{dist/types/components/ui/atoms → artifacts/dist/types/components}/tooltip/index.d.ts +0 -0
  2226. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/button-uploader/index.d.ts +0 -0
  2227. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/drag-and-drop-uploader/index.d.ts +0 -0
  2228. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/index.d.ts +0 -0
  2229. /package/{dist/types/components/ui/molecules → artifacts/dist/types/components}/uploader/shared/file-list.d.ts +0 -0
  2230. /package/{dist → artifacts/dist}/types/configs/tailwind-config.d.ts +0 -0
  2231. /package/{dist/types/components → artifacts/dist/types}/hooks/index.d.ts +0 -0
  2232. /package/{dist/types/components → artifacts/dist/types}/hooks/use-window-size.d.ts +0 -0
  2233. /package/{dist/types/components → artifacts/dist/types}/models/boolean-type.d.ts +0 -0
  2234. /package/{dist/types/components → artifacts/dist/types}/models/feedback-state-type.d.ts +0 -0
  2235. /package/{dist/types/components → artifacts/dist/types}/models/heading-level-type.d.ts +0 -0
  2236. /package/{dist/types/components → artifacts/dist/types}/models/icon-position.type.d.ts +0 -0
  2237. /package/{dist/types/components → artifacts/dist/types}/models/months.interface.d.ts +0 -0
  2238. /package/{dist/types/components → artifacts/dist/types}/models/svg-icon.interface.d.ts +0 -0
  2239. /package/{dist/types/components → artifacts/dist/types}/models/week-days.interface.d.ts +0 -0
  2240. /package/{dist/types/components → artifacts/dist/types}/utils/debounce.d.ts +0 -0
  2241. /package/{dist/types/components → artifacts/dist/types}/utils/get-date-string.d.ts +0 -0
  2242. /package/{dist/types/components → artifacts/dist/types}/utils/normalizeText.d.ts +0 -0
  2243. /package/{dist/types/components → artifacts/dist/types}/utils/string-to-boolean.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/configs/tailwind-config.ts","../../node_modules/classnames/index.js","../../src/components/icon/assets/empty-icon.tsx","../../src/components/icon/assets/index.tsx","../../src/components/icon/icon.tsx","../../src/utils/create-synthetic-event.ts","../../src/utils/debounce.ts","../../src/utils/get-date-string.ts","../../src/utils/normalizeText.ts","../../src/utils/string-to-boolean.ts","../../src/utils/expand-ref.ts","../../src/utils/async-trigger.ts","../../src/components/accordion/accordion.tsx","../../src/components/accordion-group/accordion-group.tsx","../../src/components/anchor/anchor.tsx","../../src/components/tooltip/tooltip.tsx","../../src/components/button/button.tsx","../../src/components/avatar/interactive-avatar.tsx","../../src/components/avatar/non-interactive-avatar.tsx","../../src/components/avatar/avatar.tsx","../../src/components/dropdown/internals/internal-dropdown-context.tsx","../../src/components/dropdown/internals/internal-dropdown-filter-section.tsx","../../src/components/dropdown/internals/internal-dropdown-no-results.tsx","../../src/components/dropdown/internals/internal-dropdown-option.tsx","../../src/components/dropdown/internals/internal-dropdown-section.tsx","../../src/components/dropdown/internals/internal-dropdown-select-all-section.tsx","../../src/components/dropdown/internals/internal-dropdown.tsx","../../src/components/dropdown/internals/use-dropdown-state.tsx","../../src/components/dropdown/dropdown.tsx","../../src/components/dropdown/dropdown-section.tsx","../../src/components/dropdown/dropdown-option.tsx","../../src/components/avatar-group/visible-count-avatar-group.tsx","../../src/components/avatar-group/avatar-group.tsx","../../src/components/back-to-top/back-to-top.tsx","../../src/components/breadcrumb/desktop/breadcrumb-desktop.tsx","../../src/components/breadcrumb/mobile/breadcrumb-mobile.tsx","../../src/components/breadcrumb/breadcrumb.tsx","../../src/components/button-group/button-group.tsx","../../src/components/pill/pill.tsx","../../src/components/cards/shared/use-blocked-link.tsx","../../src/components/cards/card-article/card-article.tsx","../../src/components/cards/card-collection/card-collection.tsx","../../src/components/cards/card-emphasize/card-emphasize.tsx","../../src/components/link-wrapper/link-wrapper.tsx","../../src/components/cards/card-error/card-error.tsx","../../src/components/shared/bookmark-icon/bookmark-icon.tsx","../../src/components/cards/card-expandable/card-expandable.tsx","../../src/components/cards/card-frame/card-frame.tsx","../../src/components/cards/card-full-image/card-full-image.tsx","../../src/components/cards/card-hero-helper/card-hero-helper.tsx","../../src/components/cards/card-hero-index/card-hero-index.tsx","../../src/components/cards/card-hero-sitemap/card-hero-sitemap.tsx","../../src/hooks/use-window-size.tsx","../../src/components/cards/card-highlight/shared/inner-highlight-card.tsx","../../src/components/cards/card-highlight/card-highlight.tsx","../../src/components/cards/card-highlight-newsletter/card-highlight-newsletter.tsx","../../src/components/cards/card-highlight-single/card-highlight-single.tsx","../../src/components/list/list.tsx","../../src/components/cards/card-links/card-links.tsx","../../src/components/cards/card-no-results/card-no-results.tsx","../../src/components/cards/card-search-result/card-search-result.tsx","../../src/components/cards/card-single/card-single.tsx","../../src/components/cards/card-topic/card-topic.tsx","../../src/components/shared/feedback/feedback.tsx","../../src/components/checkbox/checkbox.tsx","../../src/components/checkbox-group/checkbox-group.tsx","../../src/components/dialog/dialog.tsx","../../src/components/drawer/drawer.tsx","../../src/components/ratings/rating-buttons/rating-buttons.tsx","../../src/components/ratings/rating-stars/rating-stars.tsx","../../src/components/feedback/feedback.tsx","../../src/components/footer/shared-components/footer-brand-badge.tsx","../../src/components/footer/shared-components/footer-caption-partners.tsx","../../src/components/footer/shared-components/footer-social-useful-copyright.tsx","../../src/components/footer/shared-components/footer-main.tsx","../../src/components/footer/federated-footer/federated-footer-card.tsx","../../src/components/footer/federated-footer/federated-footer.tsx","../../src/components/footer/public-footer/public-footer-contacts.tsx","../../src/components/footer/public-footer/public-footer-highlight-card.tsx","../../src/components/footer/public-footer/public-footer-highlight-card-links.tsx","../../src/components/footer/public-footer/public-footer-highlight.tsx","../../src/components/footer/public-footer/public-footer-main-plus-card-links.tsx","../../src/components/footer/public-footer/public-footer.tsx","../../src/components/glossary-letters/glossary-letters.tsx","../../src/components/menu-item/menu-item.tsx","../../src/components/header/utils/close-other-menu.tsx","../../src/components/header/utils/handle-click-menu-item.tsx","../../src/components/header/shared-components/header-menu-item-options/header-menu-item-options-links.tsx","../../src/components/input-search-bar/input-search-bar.tsx","../../src/components/header/shared-components/header-menu-item-options/header-menu-item-options-search.tsx","../../src/components/header/shared-components/header-menu-item-options/header-menu-item-options.tsx","../../src/components/header/shared-components/header-burger-navigation/header-burger-secondary-navigation.tsx","../../src/components/header/shared-components/header-burger-navigation/header-burger-primary-navigation.tsx","../../src/components/header/shared-components/header-burger-navigation/header-burger-navigation.tsx","../../src/components/header/shared-components/header-general-options/header-general-options.tsx","../../src/components/header/shared-components/header-navigation/header-navigation.tsx","../../src/components/header/header.tsx","../../src/components/input-date/contexts/date-picker-state.context.tsx","../../src/components/input-date/contexts/use-date-picker-state-context.tsx","../../src/components/input-date/utils/is-date-in-same-month.ts","../../src/components/input-date/utils/is-same-day.ts","../../src/components/input-date/utils/parse-input-date.ts","../../src/components/input-date/date-picker-dropdown-body/date-picker-dropdown-body.tsx","../../src/components/input-date/date-picker-dropdown-footer/date-picker-dropdown-footer.tsx","../../src/components/input-date/date-picker-dropdown-header/date-picker-dropdown-header.tsx","../../src/components/input-date/date-picker-dropdown.tsx","../../src/components/input-date/date-text/date-text.tsx","../../src/components/input-date/input-date.tsx","../../src/components/input-email-bar/input-email-bar.tsx","../../src/components/input-number/input-number.tsx","../../src/components/input-password/input-password.tsx","../../src/components/input-phone/resources/config.ts","../../src/components/input-phone/input-phone.tsx","../../src/components/input-range/input-range.tsx","../../src/components/input-search/input-search.tsx","../../src/components/input-select/input-select.tsx","../../src/components/input-text/input-text.tsx","../../src/components/input-textarea/input-textarea.tsx","../../src/components/loader-dialog/loader-dialog.tsx","../../src/components/loader-dialog/loader-dialog-context.tsx","../../src/components/loader-dialog/loader-provider.tsx","../../src/components/modal-dialog/modal-context.tsx","../../src/components/modal-dialog/modal-dialog.tsx","../../src/components/modal-dialog/modal-provider.tsx","../../src/components/popup-dialog/popup-context.tsx","../../src/components/popup-dialog/popup-dialog.tsx","../../src/components/popup-dialog/popup-provider.tsx","../../src/components/progress-bar/progress-bar.tsx","../../src/components/progress-bar-group/progress-bar-group.tsx","../../src/components/radio/radio.tsx","../../src/components/radio-button-group/radio-button-group.tsx","../../src/components/scribbles/assets/index.tsx","../../src/components/scribbles/scribbles.tsx","../../src/components/search-pagination/search-page.tsx","../../src/components/search-pagination/search-pagination-number-overlay.tsx","../../src/components/search-pagination/search-pagination.tsx","../../src/components/sidebar/utils/openOnCurrentItem.ts","../../src/components/sidebar/sidebar-item-navigation-mobile/sidebar-item-navigation-mobile.tsx","../../src/components/sidebar/sidebar.tsx","../../src/components/sidebar/utils/setInitialSidebarItem.ts","../../src/components/sidebar/utils/toggleSidebarItem.ts","../../src/components/sidebar/utils/toggleSidebarItemChildren.ts","../../src/components/sidebar/utils/setIconsExpandCollapsed.ts","../../src/components/sidebar/sidebar-filter/sidebar-item-filter.tsx","../../src/components/sidebar/utils/getParentTreeItem.ts","../../src/components/sidebar/utils/navigationSidebarItemHandler.ts","../../src/components/sidebar/utils/toggleExpandAllSiblingItems.ts","../../src/components/sidebar/utils/keyboardSidebarItemHandlers.ts","../../src/components/sidebar/sidebar-navigation/sidebar-item-navigation.tsx","../../src/components/sidebar/sidebar-item.tsx","../../src/components/skip-navigation/skip-navigation-multiple.tsx","../../src/components/skip-navigation/skip-navigation-single.tsx","../../src/components/skip-navigation/skip-navigation.tsx","../../src/components/status-card/interactive-status-card.tsx","../../src/components/status-card/non-interactive-status-card.tsx","../../src/components/status-card/status-card.tsx","../../src/components/step-list/step-list.tsx","../../src/components/switch/switch.tsx","../../src/components/table/table-body.tsx","../../src/components/table/table-caption.tsx","../../src/components/table/table-cell.tsx","../../src/components/table/table-footer.tsx","../../src/components/table/table-header.tsx","../../src/components/table/table-header-cell.tsx","../../src/components/table/table-row.tsx","../../src/components/table/table-pagination.tsx","../../src/components/table/table.tsx","../../src/components/tabs/tab-body.tsx","../../src/components/tabs/tab-header.tsx","../../src/components/tabs/tab.tsx","../../src/components/tabs/tabs.tsx","../../src/components/tag/tag.tsx","../../src/components/timelines/shared/timeline-event/timeline-event.tsx","../../src/components/timelines/shared/timeline-event-vertical/timeline-event-vertical.tsx","../../src/components/timelines/timeline-vertical/timeline-vertical.tsx","../../src/components/timelines/timeline-horizontal/timeline-horizontal.tsx","../../src/components/toasts/toast-context.tsx","../../src/components/toasts/toast.tsx","../../src/components/toasts/use-toast.ts","../../src/components/toasts/toast-provider.tsx","../../src/components/uploader/shared/file-list.tsx","../../src/components/uploader/shared/use-file-upload.tsx","../../src/components/uploader/button-uploader/button-uploader.tsx","../../src/components/uploader/drag-and-drop-uploader/drag-and-drop-uploader.tsx"],"sourcesContent":["import type { Config } from 'tailwindcss';\r\n\r\nconst AgoraTailwindConfig = {\r\n content: [],\r\n theme: {\r\n extend: {\r\n borderWidth: {\r\n DEFAULT: '1px',\r\n 0: '0',\r\n 1: '1px',\r\n 2: '2px',\r\n 3: '3px',\r\n 4: '4px'\r\n },\r\n content: {\r\n empty: \"''\"\r\n },\r\n gridTemplateRows: {\r\n 7: 'repeat(7, minmax(0, 1fr))',\r\n 8: 'repeat(8, minmax(0, 1fr))',\r\n 9: 'repeat(9, minmax(0, 1fr))',\r\n 10: 'repeat(10, minmax(0, 1fr))'\r\n },\r\n gridTemplateColumns: {\r\n '1-auto': 'auto',\r\n '2-auto': 'auto auto',\r\n '3-auto': 'auto auto auto',\r\n '4-auto': 'auto auto auto auto',\r\n '5-auto': 'auto auto auto auto auto',\r\n '6-auto': 'auto auto auto auto auto auto',\r\n '7-auto': 'auto auto auto auto auto auto auto',\r\n '8-auto': 'auto auto auto auto auto auto auto auto',\r\n '9-auto': 'auto auto auto auto auto auto auto auto auto',\r\n '10-auto': 'auto auto auto auto auto auto auto auto auto auto',\r\n '11-auto': 'auto auto auto auto auto auto auto auto auto auto auto',\r\n '12-auto': 'auto auto auto auto auto auto auto auto auto auto auto auto'\r\n },\r\n opacity: {\r\n 16: '0.16',\r\n 32: '0.32'\r\n },\r\n minWidth: {\r\n initial: 'initial'\r\n },\r\n maxWidth: {\r\n initial: 'initial'\r\n },\r\n minHeight: {\r\n initial: 'initial'\r\n },\r\n maxHeight: {\r\n initial: 'initial'\r\n },\r\n zIndex: {\r\n dropdown: '1000',\r\n backdrop: '2000',\r\n sticky: '3000',\r\n fixed: '4000',\r\n drawer: '5000',\r\n dialog: '6000',\r\n toast: '7000',\r\n tooltip: '8000'\r\n }\r\n },\r\n screens: {\r\n xs: '360px',\r\n md: '768px',\r\n xl: '1200px'\r\n },\r\n fontFamily: {\r\n sans: ['Noto Sans', 'sans-serif']\r\n },\r\n fontSize: {\r\n 'base': '16px',\r\n // Typography / S\r\n 's-regular': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '400' }],\r\n 's-medium': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '500' }],\r\n 's-semibold': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '600' }],\r\n 's-bold': ['0.875rem', { lineHeight: '1.5rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / M\r\n 'm-light': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '300' }],\r\n 'm-regular': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '400' }],\r\n 'm-medium': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '500' }],\r\n 'm-semibold': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '600' }],\r\n 'm-bold': ['1rem', { lineHeight: '1.75rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / L\r\n 'l-light': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '300' }],\r\n 'l-regular': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '400' }],\r\n 'l-medium': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '500' }],\r\n 'l-semibold': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '600' }],\r\n 'l-bold': ['1.25rem', { lineHeight: '2rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / XL\r\n 'xl-light': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '300' }],\r\n 'xl-regular': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '400' }],\r\n 'xl-medium': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '500' }],\r\n 'xl-semibold': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '600' }],\r\n 'xl-bold': ['1.5rem', { lineHeight: '2.25rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / 2XL\r\n '2xl-light': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '300' }],\r\n '2xl-regular': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '400' }],\r\n '2xl-medium': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '500' }],\r\n '2xl-semibold': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '600' }],\r\n '2xl-bold': ['2rem', { lineHeight: '3rem', letterSpacing: '0', fontWeight: '700' }],\r\n // Typography / 3XL\r\n '3xl-light': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '300' }],\r\n '3xl-regular': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '400' }],\r\n '3xl-medium': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '500' }],\r\n '3xl-semibold': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '600' }],\r\n '3xl-bold': ['2.5rem', { lineHeight: '3.75rem', letterSpacing: '0', fontWeight: '700' }]\r\n },\r\n borderRadius: {\r\n none: '0px',\r\n 4: '4px',\r\n 8: '8px',\r\n 16: '16px',\r\n 24: '24px',\r\n 32: '32px',\r\n full: '100%'\r\n },\r\n colors: {\r\n transparent: 'transparent',\r\n white: '#FFFFFF',\r\n black: '#000000',\r\n focus: '#F408FC',\r\n backdrop: 'rgba(43, 54, 60, 0.96)',\r\n mask: {\r\n image: 'rgba(43, 54, 60, 0.8)'\r\n },\r\n neutral: {\r\n 50: '#F7F8FA',\r\n 100: '#F1F3F8',\r\n 200: '#E1E4EA',\r\n 300: '#CDD2DC',\r\n 400: '#BAC0CC',\r\n 500: '#9CA6B8',\r\n 600: '#8893AA',\r\n 700: '#64718B',\r\n 800: '#475164',\r\n 900: '#2B363C'\r\n },\r\n primary: {\r\n 50: '#FAFCFF',\r\n 100: '#F2F6FF',\r\n 200: '#E5EEFF',\r\n 300: '#BBD1FD',\r\n 400: '#5F93FC',\r\n 500: '#1A65FA',\r\n 600: '#034AD8',\r\n 700: '#0338A2',\r\n 800: '#002B82',\r\n 900: '#021C51'\r\n },\r\n secondary: {\r\n 50: '#F5FBFF',\r\n 100: '#EBF6FF',\r\n 200: '#E3F4FF',\r\n 300: '#CCEAFF',\r\n 400: '#A0D8FE',\r\n 500: '#1CA3FC',\r\n 600: '#1993E3',\r\n 700: '#1682CA',\r\n 800: '#12669E',\r\n 900: '#0D4C75'\r\n },\r\n informative: {\r\n 50: '#E5F6FF',\r\n 100: '#E5F6FF',\r\n 200: '#A5DEFF',\r\n 300: '#77CEFF',\r\n 400: '#49BCFF',\r\n 500: '#0079BF',\r\n 600: '#00598C',\r\n 700: '#0B486B',\r\n 800: '#083752',\r\n 900: '#00121C'\r\n },\r\n success: {\r\n 50: '#E5FFF6',\r\n 100: '#C2F2E2',\r\n 200: '#7ACCB1',\r\n 300: '#36B289',\r\n 400: '#1F9970',\r\n 500: '#008558',\r\n 600: '#00724C',\r\n 700: '#005539',\r\n 800: '#013926',\r\n 900: '#001C13'\r\n },\r\n warning: {\r\n 50: '#FFF9E5',\r\n 100: '#FFF2CC',\r\n 200: '#FFE699',\r\n 300: '#FFE699',\r\n 400: '#FFD966',\r\n 500: '#FBCB3C',\r\n 600: '#FBBB3C',\r\n 700: '#F2A222',\r\n 800: '#B06112',\r\n 900: '#80460D'\r\n },\r\n danger: {\r\n 50: '#FEF1F2',\r\n 100: '#FEE1E3',\r\n 200: '#FEC8CC',\r\n 300: '#FCA6AD',\r\n 400: '#F8727D',\r\n 500: '#DE2D3B',\r\n 600: '#D12332',\r\n 700: '#C41826',\r\n 800: '#B20917',\r\n 900: '#86131D'\r\n }\r\n },\r\n spacing: {\r\n 0: '0px',\r\n 8: '8px',\r\n 16: '16px',\r\n 24: '24px',\r\n 32: '32px',\r\n 40: '40px',\r\n 48: '48px',\r\n 56: '56px',\r\n 64: '64px',\r\n 72: '72px',\r\n 80: '80px',\r\n 88: '88px',\r\n 96: '96px',\r\n 104: '104px',\r\n 112: '112px',\r\n 120: '120px',\r\n 128: '128px',\r\n 256: '256px',\r\n '1/4': '25%',\r\n '1/2': '50%',\r\n 'full': '100%',\r\n 'initial': 'initial'\r\n },\r\n boxShadow: {\r\n 'none': '0 0 #0000',\r\n 'top-lower': '0px -4px 4px 0px rgba(0, 0, 0, 0.16)',\r\n 'top-low': '0px -8px 8px 0px rgba(0, 0, 0, 0.08)',\r\n 'top-medium': '0px -16px 16px 0px rgba(0, 0, 0, 0.08)',\r\n 'top-high': '0px -16px 16px 0px rgba(0, 0, 0, 0.16)',\r\n 'top-higher': '0px -16px 16px 0px rgba(0, 0, 0, 0.32)',\r\n 'center-lower': '0px 0px 4px 0px rgba(0, 0, 0, 0.32)',\r\n 'center-low': '0px 0px 8px 0px rgba(0, 0, 0, 0.08)',\r\n 'center-medium': '0px 0px 16px 0px rgba(0, 0, 0, 0.08)',\r\n 'center-high': '0px 0px 16px 0px rgba(0, 0, 0, 0.16)',\r\n 'center-higher': '0px 0px 16px 0px rgba(0, 0, 0, 0.32)',\r\n 'bottom-lower': '0px 4px 4px 0px rgba(0, 0, 0, 0.16)',\r\n 'bottom-low': '0px 8px 8px 0px rgba(0, 0, 0, 0.08)',\r\n 'bottom-medium': '0px 16px 16px 0px rgba(0, 0, 0, 0.08)',\r\n 'bottom-high': '0px 16px 16px 0px rgba(0, 0, 0, 0.16)',\r\n 'bottom-higher': '0px 16px 16px 0px rgba(0, 0, 0, 0.32)',\r\n 'inner': '0px 4px 4px 0px rgba(0, 0, 0, 0.32) inset'\r\n },\r\n transitionDuration: {\r\n DEFAULT: '200ms'\r\n },\r\n container: {\r\n padding: {\r\n xs: '32px',\r\n md: '64px',\r\n xl: '0px'\r\n }\r\n }\r\n },\r\n plugins: [\r\n // Override to class .container max-screen resolution\r\n ({ addComponents }: any) => {\r\n addComponents({\r\n '.container': {\r\n maxWidth: '1216px'\r\n }\r\n });\r\n },\r\n\r\n // Function to use variable colors inside scss\r\n // Ex: var(--color-primary-100)\r\n function ({ addBase, theme }: any) {\r\n function extractColorVars(colorObj: any, colorGroup = ''): any {\r\n return Object.keys(colorObj).reduce((vars, colorKey) => {\r\n const value = colorObj[colorKey];\r\n\r\n const newVars =\r\n typeof value === 'string' ? { [`--color${colorGroup}-${colorKey}`]: value } : extractColorVars(value, `-${colorKey}`);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\r\n return { ...vars, ...newVars };\r\n }, {});\r\n }\r\n\r\n addBase({\r\n ':root, :host, ::backdrop': extractColorVars(theme('colors'))\r\n });\r\n }\r\n ],\r\n safelist: [\r\n {\r\n //pattern to be able to dynamically build stories in which we change the DOM\r\n pattern: /(border|bg|fill|text|stroke)-[^/]+$/,\r\n variants: ['hover', 'focus', 'xs', 'md', 'xl']\r\n }\r\n ]\r\n} satisfies Config;\r\n\r\nexport { AgoraTailwindConfig };\r\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from 'react';\nimport { SVGIconProps } from '@/models';\n\nexport default (props: SVGIconProps) => {\n const newProps = { ...props };\n delete newProps.alt;\n delete newProps.title;\n\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" {...newProps}>\n {props.title && <title>{props.title}</title>}\n <path d=\"M0 0h24v24H0z\" />\n </svg>\n );\n};\n","import { ComponentType, lazy, LazyExoticComponent } from 'react';\nimport { SVGIconProps } from '@/models';\n\nexport const iconList: Record<string, LazyExoticComponent<ComponentType<SVGIconProps>>> = {\n // Business & Payment\n 'agora-line-buildings': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-buildings')),\n 'agora-solid-buildings': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-buildings')),\n 'agora-line-money-taxes': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-money-taxes')),\n 'agora-solid-money-taxes': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-money-taxes')),\n 'agora-line-award': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-award')),\n 'agora-solid-award': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-award')),\n 'agora-line-calculator': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-calculator')),\n 'agora-solid-calculator': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-calculator')),\n 'agora-line-credit-card': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-credit-card')),\n 'agora-solid-credit-card': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-credit-card')),\n 'agora-line-ticket': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-ticket')),\n 'agora-solid-ticket': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-ticket')),\n 'agora-line-wallet': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-wallet')),\n 'agora-solid-wallet': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-wallet')),\n 'agora-line-tag': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-tag')),\n 'agora-solid-tag': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-tag')),\n // Communication\n 'agora-line-thumbs-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-thumbs-up')),\n 'agora-line-thumbs-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-thumbs-down')),\n 'agora-solid-thumbs-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-thumbs-up')),\n 'agora-solid-thumbs-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-thumbs-down')),\n 'agora-line-bell': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bell')),\n 'agora-solid-bell': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bell')),\n 'agora-line-help-support': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-help-support')),\n 'agora-solid-help-support': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-help-support')),\n 'agora-line-chat': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chat')),\n 'agora-solid-chat': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chat')),\n 'agora-line-mail': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mail')),\n 'agora-solid-mail': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mail')),\n 'agora-line-mail-open': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mail-open')),\n 'agora-solid-mail-open': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mail-open')),\n 'agora-line-at-sign': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-at-sign')),\n 'agora-solid-at-sign': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-at-sign')),\n // Common Actions\n 'agora-line-home': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-home')),\n 'agora-solid-home': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-home')),\n 'agora-line-star': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-star')),\n 'agora-solid-star': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-star')),\n 'agora-line-log-in': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-log-in')),\n 'agora-solid-log-in': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-log-in')),\n 'agora-line-log-out': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-log-out')),\n 'agora-solid-log-out': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-log-out')),\n 'agora-line-search': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-search')),\n 'agora-solid-search': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-search')),\n 'agora-line-menu': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-menu')),\n 'agora-solid-menu': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-menu')),\n 'agora-line-health': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-health')),\n 'agora-solid-health': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-health')),\n 'agora-line-external-link': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-external-link')),\n 'agora-solid-external-link': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-external-link')),\n 'agora-line-check-all': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-check-all')),\n 'agora-solid-check-all': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-check-all')),\n 'agora-line-more-horizontal': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-more-horizontal')),\n 'agora-solid-more-horizontal': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-more-horizontal')),\n 'agora-line-more-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-more-vertical')),\n 'agora-solid-more-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-more-vertical')),\n 'agora-line-refresh-ccw': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-refresh-ccw')),\n 'agora-solid-refresh-ccw': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-refresh-ccw')),\n 'agora-line-dashboard': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-dashboard')),\n 'agora-solid-dashboard': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-dashboard')),\n 'agora-line-layers-menu': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-layers-menu')),\n 'agora-solid-layers-menu': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-layers-menu')),\n // Environment\n 'agora-line-tree': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-tree')),\n 'agora-solid-tree': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-tree')),\n // File\n 'agora-line-folder': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-folder')),\n 'agora-solid-folder': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-folder')),\n 'agora-line-file': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-file')),\n 'agora-solid-file': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-file')),\n 'agora-line-document': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-document')),\n 'agora-solid-document': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-document')),\n 'agora-line-book-open': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-book-open')),\n 'agora-solid-book-open': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-book-open')),\n 'agora-line-package': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-package')),\n 'agora-solid-package': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-package')),\n 'agora-line-file-share': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-file-share')),\n 'agora-solid-file-share': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-file-share')),\n // Formatting\n 'agora-line-filter': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-filter')),\n 'agora-solid-filter': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-filter')),\n 'agora-line-edit': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-edit')),\n 'agora-solid-edit': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-edit')),\n 'agora-line-plus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-plus-circle')),\n 'agora-solid-plus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-plus-circle')),\n 'agora-line-plus': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-plus')),\n 'agora-solid-plus': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-plus')),\n 'agora-line-minus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-minus-circle')),\n 'agora-solid-minus-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-minus-circle')),\n 'agora-line-minus': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-minus')),\n 'agora-solid-minus': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-minus')),\n 'agora-line-upload': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-upload')),\n 'agora-solid-upload': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-upload')),\n 'agora-line-download': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-download')),\n 'agora-solid-download': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-download')),\n 'agora-line-paperclip': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-paperclip')),\n 'agora-solid-paperclip': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-paperclip')),\n 'agora-line-list': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-list')),\n 'agora-solid-list': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-list')),\n 'agora-line-settings': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-settings')),\n 'agora-solid-settings': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-settings')),\n 'agora-line-bullet': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bullet')),\n 'agora-solid-bullet': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bullet')),\n 'agora-line-sort-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-vertical')),\n 'agora-solid-sort-vertical': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-vertical')),\n 'agora-line-sort-generic-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-generic-down')),\n 'agora-solid-sort-generic-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-generic-down')),\n 'agora-line-sort-generic-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-generic-up')),\n 'agora-solid-sort-generic-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-generic-up')),\n 'agora-line-sort-alpha-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-alpha-down')),\n 'agora-solid-sort-alpha-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-alpha-down')),\n 'agora-line-sort-alpha-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-sort-alpha-up')),\n 'agora-solid-sort-alpha-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-sort-alpha-up')),\n 'agora-line-trash': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-trash')),\n 'agora-solid-trash': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-trash')),\n 'agora-line-print': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-print')),\n 'agora-solid-print': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-print')),\n 'agora-line-delete': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-delete')),\n 'agora-solid-delete': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-delete')),\n // Food & Drinks\n 'agora-line-coffee': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-coffee')),\n 'agora-solid-coffee': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-coffee')),\n // Hardware\n 'agora-line-hardware-settings': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-hardware-settings')),\n 'agora-solid-hardware-settings': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-hardware-settings')),\n 'agora-line-wifi': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-wifi')),\n 'agora-solid-wifi': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-wifi')),\n // Maps & Travel\n 'agora-line-plane': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-plane')),\n 'agora-solid-plane': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-plane')),\n 'agora-line-driving': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-driving')),\n 'agora-solid-driving': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-driving')),\n 'agora-line-map': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-map')),\n 'agora-solid-map': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-map')),\n 'agora-line-map-pin': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-map-pin')),\n 'agora-solid-map-pin': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-map-pin')),\n 'agora-line-target': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-target')),\n 'agora-solid-target': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-target')),\n 'agora-line-briefcase': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-briefcase')),\n 'agora-solid-briefcase': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-briefcase')),\n 'agora-line-flag': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-flag')),\n 'agora-solid-flag': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-flag')),\n // Media\n 'agora-line-video-on': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-video-on')),\n 'agora-solid-video-on': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-video-on')),\n 'agora-line-video-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-video-off')),\n 'agora-solid-video-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-video-off')),\n 'agora-line-mic-on': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mic-on')),\n 'agora-solid-mic-on': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mic-on')),\n 'agora-line-mic-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mic-off')),\n 'agora-solid-mic-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mic-off')),\n 'agora-line-movie': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-movie')),\n 'agora-solid-movie': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-movie')),\n 'agora-line-camera': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-camera')),\n 'agora-solid-camera': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-camera')),\n 'agora-line-monitor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-monitor')),\n 'agora-solid-monitor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-monitor')),\n 'agora-line-airplay': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-airplay')),\n 'agora-solid-airplay': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-airplay')),\n 'agora-line-mega-phone': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-mega-phone')),\n 'agora-solid-mega-phone': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-mega-phone')),\n 'agora-line-volume-max': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-max')),\n 'agora-solid-volume-max': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-max')),\n 'agora-line-volume-min': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-min')),\n 'agora-solid-volume-min': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-min')),\n 'agora-line-volume-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-off')),\n 'agora-solid-volume-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-off')),\n 'agora-line-volume-mute': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-volume-mute')),\n 'agora-solid-volume-mute': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-volume-mute')),\n 'agora-line-music': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-music')),\n 'agora-solid-music': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-music')),\n 'agora-line-globe': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-globe')),\n 'agora-solid-globe': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-globe')),\n 'agora-line-smartphone': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-smartphone')),\n 'agora-solid-smartphone': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-smartphone')),\n // Navigation\n 'agora-line-arrow-down-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-down-anchor')),\n 'agora-solid-arrow-down-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-down-anchor')),\n 'agora-line-arrow-up-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-up-anchor')),\n 'agora-solid-arrow-up-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-up-anchor')),\n 'agora-line-arrow-right-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-right-anchor')),\n 'agora-solid-arrow-right-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-right-anchor')),\n 'agora-line-arrow-left-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-left-anchor')),\n 'agora-solid-arrow-left-anchor': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-left-anchor')),\n 'agora-line-arrow-down-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-down-circle')),\n 'agora-solid-arrow-down-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-down-circle')),\n 'agora-line-arrow-up-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-up-circle')),\n 'agora-solid-arrow-up-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-up-circle')),\n 'agora-line-arrow-right-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-right-circle')),\n 'agora-solid-arrow-right-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-right-circle')),\n 'agora-line-arrow-left-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-left-circle')),\n 'agora-solid-arrow-left-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-left-circle')),\n 'agora-line-arrow-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-up')),\n 'agora-solid-arrow-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-up')),\n 'agora-line-arrow-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-down')),\n 'agora-solid-arrow-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-down')),\n 'agora-line-arrow-right': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-right')),\n 'agora-solid-arrow-right': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-right')),\n 'agora-line-arrow-left': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-arrow-left')),\n 'agora-solid-arrow-left': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-arrow-left')),\n 'agora-line-chevron-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-down')),\n 'agora-solid-chevron-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-down')),\n 'agora-line-chevron-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-up')),\n 'agora-solid-chevron-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-up')),\n 'agora-line-chevron-right': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-right')),\n 'agora-solid-chevron-right': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-right')),\n 'agora-line-chevron-left': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevron-left')),\n 'agora-solid-chevron-left': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevron-left')),\n 'agora-line-chevrons-down': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-down')),\n 'agora-solid-chevrons-down': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-down')),\n 'agora-line-chevrons-up': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-up')),\n 'agora-solid-chevrons-up': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-up')),\n 'agora-line-chevrons-left': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-left')),\n 'agora-solid-chevrons-left': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-left')),\n 'agora-line-chevrons-right': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-chevrons-right')),\n 'agora-solid-chevrons-right': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-chevrons-right')),\n // Privacy & Security\n 'agora-line-shield': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-shield')),\n 'agora-solid-shield': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-shield')),\n 'agora-line-unlock': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-unlock')),\n 'agora-solid-unlock': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-unlock')),\n 'agora-line-lock': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-lock')),\n 'agora-solid-lock': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-lock')),\n 'agora-line-eye': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-eye')),\n 'agora-solid-eye': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-eye')),\n 'agora-line-eye-off': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-eye-off')),\n 'agora-solid-eye-off': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-eye-off')),\n // Public institutions\n 'agora-line-court': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-court')),\n 'agora-solid-court': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-court')),\n 'agora-line-social-security': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-social-security')),\n 'agora-solid-social-security': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-social-security')),\n // Social\n 'agora-line-twitter-x': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-twitter-x')),\n 'agora-solid-twitter-x': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-twitter-x')),\n 'agora-line-twitter': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-twitter')),\n 'agora-solid-twitter': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-twitter')),\n 'agora-line-instagram': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-instagram')),\n 'agora-solid-instagram': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-instagram')),\n 'agora-line-facebook': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-facebook')),\n 'agora-solid-facebook': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-facebook')),\n 'agora-line-youtube': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-youtube')),\n 'agora-solid-youtube': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-youtube')),\n 'agora-line-linkedin': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-linkedin')),\n 'agora-solid-linkedin': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-linkedin')),\n 'agora-line-share': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-share')),\n 'agora-solid-share': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-share')),\n 'agora-line-bookmark': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bookmark')),\n 'agora-solid-bookmark': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bookmark')),\n // Status\n 'agora-line-x-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-x-circle')),\n 'agora-solid-x-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-x-circle')),\n 'agora-line-x': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-x')),\n 'agora-solid-x': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-x')),\n 'agora-line-check-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-check-circle')),\n 'agora-solid-check-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-check-circle')),\n 'agora-line-check': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-check')),\n 'agora-solid-check': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-check')),\n 'agora-line-question-mark': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-question-mark')),\n 'agora-solid-question-mark': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-question-mark')),\n 'agora-line-alert-circle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-alert-circle')),\n 'agora-solid-alert-circle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-alert-circle')),\n 'agora-line-info-mark': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-info-mark')),\n 'agora-solid-info-mark': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-info-mark')),\n 'agora-line-alert-triangle': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-alert-triangle')),\n 'agora-solid-alert-triangle': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-alert-triangle')),\n 'agora-line-loader': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-loader')),\n 'agora-solid-loader': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-loader')),\n 'agora-line-smile-sad': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-smile-sad')),\n 'agora-solid-smile-sad': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-smile-sad')),\n // Transportation\n 'agora-line-bus': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bus')),\n 'agora-solid-bus': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bus')),\n 'agora-line-truck': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-truck')),\n 'agora-solid-truck': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-truck')),\n // Time\n 'agora-line-calendar': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-calendar')),\n 'agora-solid-calendar': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-calendar')),\n 'agora-line-clock': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-clock')),\n 'agora-solid-clock': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-clock')),\n // User\n 'agora-line-user-group': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-user-group')),\n 'agora-solid-user-group': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-user-group')),\n 'agora-line-user': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-user')),\n 'agora-solid-user': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-user')),\n // Others\n 'agora-line-bookmark-card': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-bookmark-card')),\n 'agora-solid-bookmark-card': lazy<ComponentType<SVGIconProps>>(() => import('./solid/solid-bookmark-card')),\n 'agora-drag-dots': lazy<ComponentType<SVGIconProps>>(() => import('./other/drag-dots')),\n // Default icon - Should not be listable\n 'no-icon': lazy<ComponentType<SVGIconProps>>(() => import('./other/agora'))\n};\n\nexport const allIcons = Object.keys(iconList).filter((c) => c !== 'no-icon');\n\nexport type IconName = (typeof allIcons)[number];\n\nexport const isBundledIcon = (name: string) => {\n return !!allIcons.find((i) => i === name);\n};\n","import React, { ComponentPropsWithoutRef, ComponentType, FC, HTMLProps, LazyExoticComponent, Suspense, SVGProps } from 'react';\n\nimport classNames from 'classnames';\n\nimport EmptyIcon from './assets/empty-icon';\n\nimport { SVGIconProps } from '@/models';\n\nimport { iconList, IconName, isBundledIcon } from './assets/index';\n\nimport './icon.scss';\n\nconst iconsCache: Record<IconName, LazyExoticComponent<ComponentType<SVGIconProps>>> = {};\n\nconst loadIcon = (name: IconName): LazyExoticComponent<ComponentType<SVGIconProps>> => {\n const cachedIcon = iconsCache[name];\n\n if (cachedIcon) {\n return cachedIcon;\n }\n\n const lazyComponent = iconList[name];\n\n iconsCache[name] = lazyComponent;\n\n return lazyComponent;\n};\n\n/**\n * Allowed icon dimensions.\n */\nexport type IconDimensions = 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl';\n\ntype BasicIconProps = SVGProps<SVGSVGElement> & HTMLProps<HTMLImageElement>;\n\nexport interface IconProps extends BasicIconProps {\n /**\n * Sets the icon dimension.\n */\n dimensions?: IconDimensions;\n /**\n * Icon name to use. Can be an external image url.\n */\n name?: IconName;\n /**\n * Callback to run when image is loaded.\n */\n onIconLoad?: () => void;\n /**\n * Callback to run when image fails to load.\n */\n onIconError?: () => void;\n}\n\nexport const Icon: FC<IconProps> = ({ dimensions = 'm', name = 'no-icon', onIconLoad, onIconError, ...props }) => {\n const classes = classNames(\n 'icon',\n {\n [`icon-${dimensions?.toLowerCase()}`]: dimensions,\n 'fill-[var(--color-primary-600)]': !props.className?.match('fill-')\n },\n props.className\n );\n\n const onLoad = () => {\n onIconLoad?.();\n };\n\n const onError = () => {\n onIconError?.();\n };\n\n const shouldRenderImage = name !== 'no-icon' && !isBundledIcon(name);\n\n // SRC OR BASE-64\n if (shouldRenderImage) {\n // Assume that it is a base64 image and let the browser do his work\n return <img {...props} src={name} alt={props.alt} className={classes} onLoad={onLoad} onError={onError} />;\n }\n\n const LazyComponent = loadIcon(name);\n\n const fullProps = {\n ...props,\n className: classes,\n title: props.title ?? props.alt\n } as ComponentPropsWithoutRef<'svg'>;\n\n return LazyComponent ? (\n <Suspense>\n <LazyComponent {...fullProps} />\n </Suspense>\n ) : (\n <EmptyIcon {...fullProps} />\n );\n};\n","import { SyntheticEvent } from 'react';\n\nexport function createSyntheticEvent<T>(target: T, eventType: string): SyntheticEvent<T> {\n const event = new Event(eventType, { bubbles: true });\n\n Object.defineProperty(event, 'target', { writable: false, value: target });\n\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n}\n","import { useEffect, useRef, useState } from 'react';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst debounce = (func: Function, timeout = 300) => {\n let timer: any;\n\n return (...args: any) => {\n if (timer) {\n clearTimeout(timer);\n timer = undefined;\n }\n\n timer = setTimeout(() => {\n func(args);\n }, timeout);\n };\n};\n\nexport { debounce };\n\nexport const useDebounceHook = (func: any, timeout = 300) => {\n const timer = useRef<any>(null);\n const [args, setArgs] = useState<any>(null);\n\n useEffect(() => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n\n timer.current = setTimeout(() => {\n func(args);\n }, timeout);\n\n return () => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n };\n }, [func, timeout, args]);\n\n return {\n setArgs\n };\n};\n","export const getDateString = (d: Date) => {\n let dayString = d.getDate().toString();\n if (dayString.length < 2) {\n dayString = `0${dayString}`;\n }\n\n let monthString = (d.getMonth() + 1).toString();\n if (monthString.length < 2) {\n monthString = `0${monthString}`;\n }\n\n const yearString = d.getFullYear();\n\n return `${dayString}/${monthString}/${yearString}`;\n};\n","const normalizeText = (text: string) => {\n return text\n .toLocaleLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n};\nexport { normalizeText };\n","/**\n * Convert string like value to Boolean\n */\nconst stringToBoolean = (value: boolean | string | undefined): boolean => {\n // some params could be undefined (not required)\n if (typeof value === 'undefined') {\n return false;\n }\n\n // if primitive boolean return self-value\n if (typeof value === 'boolean') {\n return value;\n }\n\n return value === 'true';\n};\n\nexport { stringToBoolean };\n","import { DependencyList, MutableRefObject, Ref, RefObject, useImperativeHandle, useRef } from 'react';\n\nexport function useExpandedRef<T>(\n ref: Ref<T> | null,\n innerRef: RefObject<HTMLElement>,\n data: T,\n deps?: DependencyList\n): MutableRefObject<T | undefined> {\n const externalRef = useRef<T>();\n\n useImperativeHandle(\n ref,\n () => {\n externalRef.current = innerRef.current as T;\n\n if (externalRef.current) {\n Object.assign(externalRef.current, data);\n }\n\n return externalRef.current;\n },\n deps\n );\n\n return externalRef;\n}\n","// eslint-disable-next-line @typescript-eslint/ban-types\nconst asyncTrigger = (func: Function, timeout = 10) => {\n setTimeout(func, timeout);\n};\n\nexport { asyncTrigger };\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n Ref,\n SyntheticEvent,\n useEffect,\n useId,\n useRef,\n useState\n} from 'react';\n\nimport { Icon } from '@/components/icon';\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport { createSyntheticEvent } from '@/utils/create-synthetic-event';\nimport { useExpandedRef } from '@/utils/expand-ref';\nimport './accordion.scss';\n\nexport interface AccordionElement extends HTMLDivElement {\n /**\n * Expand the accordion.\n */\n expand: () => void;\n /**\n * Collapse the accordion.\n */\n collapse: () => void;\n /**\n * Toggles the content of the accordion.\n */\n toggle: () => void;\n /**\n * Current value of the expanded state of the accordion.\n */\n isExpanded: boolean;\n}\n\nexport interface AccordionProps extends ComponentPropsWithRef<'div'> {\n /**\n * Accordion header title.\n */\n headingTitle?: ReactNode;\n /**\n * Accordion heading level title.\n */\n headingLevel?: HeadingLevel;\n /**\n * Accordion content.\n */\n children?: ReactNode;\n /**\n * Defines if an icon is shown previously of title.\n */\n hasIcon?: BooleanProp;\n /**\n * Defines the name of the icon to use.\n */\n icon?: string;\n /**\n * Event function called whenever the accordion expands.\n */\n onExpanded?: (evt: SyntheticEvent<AccordionElement | undefined>) => void | undefined;\n /**\n * Event function called whenever the accordion collapses.\n */\n onCollapsed?: (evt: SyntheticEvent<AccordionElement | undefined>) => void | undefined;\n /**\n * Initial value for the expanded value.\n */\n expanded?: BooleanProp;\n /**\n * React ref object to the accordion.\n */\n ref?: Ref<AccordionElement>;\n}\n\nconst InnerComponent: ForwardRefRenderFunction<AccordionElement, AccordionProps> = (\n {\n children,\n hasIcon,\n icon,\n headingTitle,\n 'headingLevel': Component = 'h3',\n className = '',\n expanded = false,\n onExpanded,\n onCollapsed,\n 'aria-label': ariaLabel,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = {\n ...props,\n id: props.id ?? generatedId,\n children,\n hasIcon,\n icon,\n headingTitle,\n headingLevel: Component,\n className,\n expanded,\n onExpanded,\n onCollapsed\n };\n\n const [isExpanded, setIsExpanded] = useState(stringToBoolean(expanded));\n const expand = () => {\n setIsExpanded(true);\n };\n const collapse = () => {\n setIsExpanded(false);\n };\n const toggle = () => {\n if (isExpanded) {\n collapse();\n } else {\n expand();\n }\n };\n\n const innerRef = useRef<HTMLDivElement>(null);\n const externalRef = useExpandedRef<AccordionElement>(\n ref,\n innerRef,\n {\n isExpanded,\n expand,\n collapse,\n toggle\n } as AccordionElement,\n [propsClone, innerRef, isExpanded, expand, collapse, toggle]\n );\n\n useEffect(() => {\n if (isExpanded) {\n const evt = createSyntheticEvent<AccordionElement | undefined>(externalRef.current, 'expand');\n onExpanded?.(evt);\n } else {\n const evt = createSyntheticEvent<AccordionElement | undefined>(externalRef.current, 'collapse');\n onCollapsed?.(evt);\n }\n }, [isExpanded]);\n\n const AccordionClassName = classNames('agora-accordion', className, { 'accordion-open': isExpanded });\n const AccordionBodyClassName = classNames('accordion-body', { 'accordion-body-block': isExpanded });\n const AccordionIconClassName = classNames('icon icon-chevron', { 'icon-chevron-flip': isExpanded });\n\n const onMouseClickHandler = () => {\n toggle();\n };\n\n return (\n <div className={AccordionClassName} {...props} ref={innerRef}>\n <Component className=\"flex justify-start items-center w-full\">\n <button\n aria-label={ariaLabel}\n type=\"button\"\n onClick={onMouseClickHandler}\n className=\"accordion-header\"\n aria-expanded={isExpanded}\n id={`agora-accordion-${propsClone.id}-control`}\n aria-controls={`agora-accordion-${propsClone.id}-region`}\n >\n {stringToBoolean(hasIcon) && <Icon aria-hidden name={icon} className=\"icon\" dimensions=\"m\" />}\n\n {headingTitle && <span className=\"title\">{headingTitle}</span>}\n\n <Icon aria-hidden name=\"agora-line-chevron-down\" className={AccordionIconClassName} />\n </button>\n </Component>\n\n <div\n className={AccordionBodyClassName}\n id={`agora-accordion-${propsClone.id}-region`}\n role=\"region\"\n aria-labelledby={`agora-accordion-${propsClone.id}-control`}\n >\n {children}\n </div>\n </div>\n );\n};\n\nexport const Accordion = forwardRef<AccordionElement, AccordionProps>(InnerComponent);\n","import classNames from 'classnames';\nimport React, {\n Children,\n cloneElement,\n ComponentPropsWithRef,\n createRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactElement,\n RefObject,\n SyntheticEvent,\n useCallback,\n useEffect,\n useId\n} from 'react';\n\nimport { AccordionElement, AccordionProps } from '@/components/accordion';\n\nexport type AccordionGroupType = 'single' | 'multiple';\n\nexport interface AccordionGroupProps extends ComponentPropsWithRef<'div'> {\n /**\n * List of accordion components to use as children of the group.\n */\n children?: ReactElement<AccordionProps> | Array<ReactElement<AccordionProps>>;\n /**\n * Option to open multiple accordions or just one at a time.\n */\n type?: AccordionGroupType;\n}\n\nexport const InnerAccordionGroup: ForwardRefRenderFunction<HTMLDivElement, AccordionGroupProps> = (\n { className = '', children, type = 'single', ...props },\n ref\n) => {\n const AccordionGroupClassName = classNames('agora-accordion-group', 'mt-0 p-0 w-full', className);\n\n const generatedAccordionGroupId = useId();\n\n let childrenAccordions: Array<ReactElement<AccordionProps>>;\n if (children) {\n if (!Array.isArray(children)) {\n childrenAccordions = [children] as Array<ReactElement<AccordionProps>>;\n } else {\n childrenAccordions = children;\n }\n } else {\n childrenAccordions = [];\n }\n\n const refsMap = new Map<string, RefObject<AccordionElement>>();\n\n const updateAllAccordions = useCallback(\n (evt: SyntheticEvent<AccordionElement | undefined>) => {\n if (type === 'multiple') {\n return;\n }\n\n refsMap.forEach((v, k) => {\n if ((evt.target as HTMLElement).id !== k) {\n v.current?.collapse();\n }\n });\n },\n [type]\n );\n\n const parsedAccordions = Children.map([...childrenAccordions], (child, index) => {\n const innerRef = createRef<AccordionElement>();\n const id = `accordion-group-${generatedAccordionGroupId}-accordion-${index}`;\n\n refsMap.set(id, innerRef);\n\n return cloneElement<AccordionProps>(child, {\n ...child.props,\n ref: innerRef,\n id,\n onExpanded: updateAllAccordions\n } as AccordionProps);\n });\n\n useEffect(() => {\n if (type !== 'multiple') {\n let firstExpandedKey = '';\n\n refsMap.forEach((r, k) => {\n if (r.current?.isExpanded && !firstExpandedKey) {\n firstExpandedKey = k;\n }\n });\n\n refsMap.forEach((r, k) => {\n if (k !== firstExpandedKey) {\n r.current?.collapse();\n }\n });\n }\n }, [type]);\n\n return (\n <div className={AccordionGroupClassName} {...props} ref={ref}>\n {parsedAccordions}\n </div>\n );\n};\n\nexport const AccordionGroup = forwardRef<HTMLDivElement, AccordionGroupProps>(InnerAccordionGroup);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Icon } from '@/components/icon';\nimport './anchor.scss';\n\n/**\n * The available variants of the anchors. This variants will define the background and border color of the anchors.\n */\nexport type AnchorVariant = 'primary' | 'informative' | 'neutral' | 'success' | 'warning' | 'danger';\n\n/**\n * The available anchor appearances. Defines the anchor shape.\n */\nexport type AnchorAppearance = 'link' | 'text';\n\nconst IconWrapper: FC<{\n name: string;\n iconHover: string;\n className?: string;\n}> = ({ name = 'no-icon', iconHover = 'no-icon', className }) => {\n const wrapperClassName = classNames('icon-wrapper', className);\n\n return (\n <span className={wrapperClassName}>\n <Icon className=\"line\" name={name.replace('solid', 'line')} dimensions=\"m\" aria-hidden />\n <Icon className=\"solid\" name={(iconHover ?? name).replace('line', 'solid')} dimensions=\"m\" aria-hidden />\n </span>\n );\n};\n\nexport interface AnchorProps extends ComponentPropsWithRef<'a'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * The anchor appearance. Define the anchor shape.\n */\n appearance?: AnchorAppearance;\n /**\n * The variant of the anchor. This variants will define the background and border color of the given Anchor.\n */\n variant?: AnchorVariant;\n /**\n * Defines if the anchor should be fluid\n */\n fullWidth?: BooleanProp;\n /**\n * Defines if the anchor uses an icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Defines if children content it is to be rendered.\n */\n iconOnly?: BooleanProp;\n /**\n * Defines the name of the leading icon to use.\n */\n leadingIcon?: string;\n /**\n * Defines the name of the leading icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n leadingIconHover?: string;\n /**\n * Defines the name of the trailing icon to use.\n */\n trailingIcon?: string;\n /**\n * Defines the name of the trailing icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n trailingIconHover?: string;\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Defines if anchor is inline text or not. An inline element does not start on a new line and takes up as much width as necessary. See https://www.w3schools.com/html/html_blocks.asp.\n */\n inline?: BooleanProp;\n /**\n * Data attributes\n */\n [dataAttribute: `data-${string}`]: string;\n}\n\nexport const InnerAnchor: ForwardRefRenderFunction<HTMLAnchorElement, AnchorProps> = (\n {\n darkMode = false,\n appearance = 'text',\n variant = 'primary',\n fullWidth = false,\n hasIcon = false,\n iconOnly = false,\n leadingIcon,\n leadingIconHover,\n trailingIcon,\n trailingIconHover,\n children,\n className = '',\n inline = false,\n ...props\n },\n ref\n) => {\n const anchorClassName = classNames(\n `agora-anchor`,\n\n `agora-anchor-${appearance}-${variant}`,\n\n { 'agora-anchor-full': fullWidth },\n\n { 'inline-flex items-center': !props.hidden },\n\n { 'justify-center min-h-[44px] min-w-[44px] py-8': !stringToBoolean(inline) },\n\n { 'justify-start': stringToBoolean(inline) },\n\n { 'agora-anchor-with-icon': stringToBoolean(hasIcon) || stringToBoolean(iconOnly) },\n\n { 'is-icon-only': stringToBoolean(iconOnly) },\n\n { 'dark-mode': stringToBoolean(darkMode) },\n\n className\n );\n\n return (\n <a {...props} className={anchorClassName} ref={ref}>\n {((hasIcon && iconOnly && trailingIcon === 'no-trailing') ||\n (hasIcon && iconOnly && leadingIcon === undefined && trailingIcon === undefined) ||\n (hasIcon && iconOnly && leadingIcon && leadingIcon === 'no-leading' && trailingIcon === 'no-trailing') ||\n (hasIcon && leadingIcon && leadingIcon !== 'no-leading')) && (\n <IconWrapper\n className=\"leading\"\n name={leadingIcon && leadingIcon !== 'no-leading' ? leadingIcon : 'no-icon'}\n iconHover={leadingIconHover ?? 'no-icon'}\n />\n )}\n {!iconOnly && children && <span className=\"children-wrapper\">{children}</span>}\n {((hasIcon && iconOnly && leadingIcon === 'no-leading' && trailingIcon !== 'no-trailing') ||\n (hasIcon && trailingIcon && trailingIcon !== 'no-trailing')) && (\n <IconWrapper className=\"trailing\" name={trailingIcon ?? 'no-icon'} iconHover={trailingIconHover ?? 'no-icon'} />\n )}\n </a>\n );\n};\n\nexport const Anchor = forwardRef<HTMLAnchorElement, AnchorProps>(InnerAnchor);\n","import classNames from 'classnames';\nimport React, {\n Children,\n cloneElement,\n FC,\n FocusEvent,\n FocusEventHandler,\n HtmlHTMLAttributes,\n isValidElement,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport './tooltip.scss';\n\nconst TOOLTIP_CHANGE_EVENT_NAME = 'agora-ds-tooltip-change';\n\ninterface EnrichedChildren {\n ref: RefObject<any>;\n onMouseEnter: MouseEventHandler;\n onMouseLeave: MouseEventHandler;\n onFocus: FocusEventHandler;\n onBlur: FocusEventHandler;\n children?: ReactNode;\n}\n\n/**\n * The available variants of the Tooltip. This variants will define the background of the Tooltip.\n */\nexport type TooltipVariant = 'light' | 'dark' | 'info';\n/**\n * The available positions of the Tooltip. This positions will define the position of the Tooltip.\n */\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n/**\n * The available alignments of the Tooltip. This alignments will define the alignment of the Tooltip.\n */\nexport type TooltipAlignment = 'start' | 'center' | 'end';\n\nexport interface TooltipProps extends Omit<HtmlHTMLAttributes<HTMLDivElement>, 'title'> {\n /**\n * The variant of the Tooltip.\n */\n variant?: TooltipVariant;\n /**\n * The position of the Tooltip.\n */\n position?: TooltipPosition;\n /**\n * The alignment of the Tooltip.\n */\n alignment?: TooltipAlignment;\n /**\n * The title of the Tooltip.\n */\n title?: ReactNode;\n /**\n * If the Tooltip has a title.\n */\n hasTitle?: BooleanProp;\n /**\n * The description of the Tooltip.\n */\n description: ReactNode;\n /**\n * The element where the tooltip is attached to.\n */\n children?: ReactNode;\n}\n\nexport const Tooltip: FC<TooltipProps> = ({\n hasTitle,\n variant = 'dark',\n position = 'top',\n alignment = 'center',\n title,\n description,\n children,\n ...props\n}) => {\n const generatedId = useId();\n\n const ref = useRef(null);\n\n const [top, setTop] = useState(0);\n const [left, setLeft] = useState(0);\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n\n const setDimensions = useCallback(() => {\n if (ref.current) {\n const rect = (ref.current as HTMLElement)?.getBoundingClientRect();\n\n if (rect) {\n setTop(rect.top + window.scrollY);\n setLeft(rect.left + window.scrollX);\n setWidth(rect.width);\n setHeight(rect.height);\n }\n }\n }, []);\n\n const propsClone = useMemo(() => ({ ...props }), [props]);\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const TooltipContainerClassName = classNames('tooltip-container absolute z-tooltip', props.className);\n\n const TooltipClassName = classNames('tooltip', {\n [`tooltip--${variant}`]: variant,\n [`tooltip--${position}--${alignment}`]: position && alignment\n });\n\n const [visibility, setVisibility] = useState(false);\n\n const showTooltip = () => {\n setVisibility(true);\n const event = new CustomEvent<string | undefined>(TOOLTIP_CHANGE_EVENT_NAME, { detail: propsClone.id });\n document.dispatchEvent(event);\n };\n\n const hideTooltip = () => {\n setVisibility(false);\n };\n\n const handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setVisibility(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('keydown', handleEscapeKey);\n\n const handleTooltipChange = (evt: any) => {\n const customEventArgs = evt as CustomEvent<string | undefined>;\n if (customEventArgs.detail !== propsClone.id) {\n setVisibility(false);\n }\n };\n\n document.addEventListener(TOOLTIP_CHANGE_EVENT_NAME, handleTooltipChange);\n\n return () => {\n document.removeEventListener('keydown', handleEscapeKey);\n document.removeEventListener(TOOLTIP_CHANGE_EVENT_NAME, handleTooltipChange);\n };\n }, [propsClone.id]);\n\n const parsedChildren = Children.map(children, (child) => {\n if (!isValidElement<EnrichedChildren>(child)) {\n return child;\n }\n\n const onMouseEnter = (evt: MouseEvent<any>) => {\n setDimensions();\n\n showTooltip();\n\n child.props.onMouseEnter?.(evt);\n };\n\n const onMouseLeave = (evt: MouseEvent<any>) => {\n hideTooltip();\n\n child.props.onMouseLeave?.(evt);\n };\n\n const onFocus = (evt: FocusEvent<any>) => {\n setDimensions();\n\n showTooltip();\n\n child.props.onFocus?.(evt);\n };\n\n const onBlur = (evt: FocusEvent<any>) => {\n hideTooltip();\n\n child.props.onBlur?.(evt);\n };\n\n return cloneElement<EnrichedChildren>(child, { ref, onMouseEnter, onMouseLeave, onFocus, onBlur });\n });\n\n useEffect(() => {\n const cb = () => {\n setDimensions();\n };\n\n document.addEventListener('scroll', cb);\n\n return () => {\n document.removeEventListener('scroll', cb);\n };\n }, [setDimensions]);\n\n const topPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: '-10px',\n left: '0px',\n transform: 'translateY(-100%)'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: '-10px',\n left: `${width / 2}px`,\n transform: 'translateY(-100%) translateX(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: '-10px',\n left: `${width}px`,\n transform: 'translateY(-100%) translateX(-100%)'\n };\n }\n }, [alignment, width]);\n\n const bottomPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: `${height + 10}px`,\n left: '0px',\n transform: 'none'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: `${height + 10}px`,\n left: `${width / 2}px`,\n transform: 'translateX(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: `${height + 10}px`,\n left: `${width}px`,\n transform: 'translateX(-100%)'\n };\n }\n }, [alignment, height, width]);\n\n const leftPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: '0px',\n left: '-10px',\n transform: 'translateX(-100%)'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: `${height / 2}px`,\n left: '-10px',\n transform: 'translateX(-100%) translateY(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: `${height}px`,\n left: '-10px',\n transform: 'translateX(-100%) translateY(-100%)'\n };\n }\n }, [alignment, height]);\n\n const rightPositioning = useMemo(() => {\n if (alignment === 'start') {\n return {\n top: '0px',\n left: `${width + 10}px`,\n transform: 'none'\n };\n }\n\n if (alignment === 'center') {\n return {\n top: `${height / 2}px`,\n left: `${width + 10}px`,\n transform: 'translateY(-50%)'\n };\n }\n\n if (alignment === 'end') {\n return {\n top: `${height}px`,\n left: `${width + 10}px`,\n transform: 'translateY(-100%)'\n };\n }\n }, [alignment, height, width]);\n\n const tooltipPosition = useMemo(() => {\n switch (position) {\n case 'top':\n return topPositioning;\n case 'bottom':\n return bottomPositioning;\n case 'left':\n return leftPositioning;\n case 'right':\n return rightPositioning;\n }\n }, [position, topPositioning, bottomPositioning, leftPositioning, rightPositioning]);\n\n const TooltipContent = useMemo(() => {\n return (\n <div\n className={TooltipContainerClassName}\n style={{\n top: `${top}px`,\n left: `${left}px`\n }}\n >\n <div className=\"relative w-full h-full\">\n <div\n {...propsClone}\n style={{ ...tooltipPosition }}\n id={propsClone.id}\n className={TooltipClassName}\n role=\"tooltip\"\n aria-describedby={propsClone.id}\n >\n {stringToBoolean(hasTitle) && <div className=\"title\">{title}</div>}\n <p className=\"description\">{description}</p>\n </div>\n </div>\n </div>\n );\n }, [TooltipClassName, description, hasTitle, title, propsClone, tooltipPosition, top, left]);\n\n const memoPortal = useMemo(() => {\n if (visibility) {\n return createPortal(TooltipContent, document.body);\n }\n return null;\n }, [visibility, TooltipContent]);\n\n return (\n <>\n {parsedChildren}\n {memoPortal}\n </>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n FC,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Icon } from '@/components/icon';\nimport './button.scss';\n\n/**\n * The available variants of the button. This variants will define the background and border color of the button.\n */\nexport type ButtonVariant = 'primary' | 'neutral' | 'success' | 'warning' | 'danger' | 'informative';\n\n/**\n * The available button appearances. Defines the button shape.\n */\nexport type ButtonAppearance = 'solid' | 'outline' | 'link';\n\nconst IconWrapper: FC<{\n name: string;\n iconHover: string;\n className?: string;\n showIconHover?: boolean;\n}> = ({ name = 'no-icon', iconHover = 'no-icon', className, showIconHover }) => {\n const wrapperClassName = classNames('icon-wrapper', className);\n\n return (\n <span className={wrapperClassName}>\n <Icon\n className=\"line\"\n name={name.replace('solid', 'line')}\n dimensions=\"m\"\n aria-hidden\n {...(showIconHover ? { style: { display: 'none' } } : undefined)}\n />\n <Icon\n className=\"solid\"\n name={(iconHover ?? name).replace('line', 'solid')}\n dimensions=\"m\"\n aria-hidden\n {...(showIconHover ? undefined : { style: { display: 'none' } })}\n />\n </span>\n );\n};\n\nexport interface ButtonProps extends ComponentPropsWithRef<'button'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * The button appearance. Define the button Shape.\n */\n appearance?: ButtonAppearance;\n /**\n * The variant of the button. This variants will define the background and border color of the given Button.\n */\n variant?: ButtonVariant;\n /**\n * Defines if the button should be fluid.\n */\n fullWidth?: BooleanProp;\n /**\n * Defines if the button uses an icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Defines if children content it is to be rendered.\n */\n iconOnly?: BooleanProp;\n /**\n * Defines the name of the leading icon to use.\n */\n leadingIcon?: string;\n /**\n * Defines the name of the leading icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n leadingIconHover?: string;\n /**\n * Defines the name of the trailing icon to use.\n */\n trailingIcon?: string;\n /**\n * Defines the name of the trailing icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n trailingIconHover?: string;\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Defines if the button is selected.\n */\n selected?: BooleanProp;\n /**\n * Data attributes.\n * Allow when implemented interface add data-* attribute.\n */\n [dataAttribute: `data-${string}`]: string;\n}\n\nexport const InnerButton: ForwardRefRenderFunction<HTMLButtonElement, ButtonProps> = (\n {\n darkMode = false,\n appearance = 'solid',\n variant = 'primary',\n fullWidth = false,\n hasIcon = false,\n iconOnly = false,\n leadingIcon,\n leadingIconHover,\n trailingIcon,\n trailingIconHover,\n children,\n className = '',\n ...props\n },\n ref: Ref<HTMLButtonElement | null>\n) => {\n const [showIconHover, setShowIconHover] = useState<boolean>(false);\n\n const innerRef = useRef<HTMLButtonElement>(null);\n\n useImperativeHandle(ref, () => innerRef.current);\n\n /**\n * Building button class name dynamically according parameters.\n */\n const buttonClassName = classNames(\n { 'flex items-center justify-center': !props.hidden },\n\n `agora-btn ${fullWidth ? 'agora-btn-full' : ''} agora-btn-${appearance}-${variant}`,\n\n {\n [`agora-btn-with-icon`]: stringToBoolean(hasIcon) || stringToBoolean(iconOnly),\n 'is-icon-only': stringToBoolean(iconOnly)\n },\n\n { selected: stringToBoolean(props.selected) },\n\n { darkMode: stringToBoolean(darkMode) },\n className\n );\n\n const onKeyDownHandler = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n innerRef.current?.classList.add('active');\n }\n props.onKeyDown?.(evt);\n };\n\n const onKeyUpHandler = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n innerRef.current?.classList.remove('active');\n innerRef.current?.setAttribute('data-custom-triggered-click', 'true');\n innerRef.current?.click();\n }\n\n props.onKeyUp?.(evt);\n };\n\n const onMouseLeaveHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n innerRef.current?.classList.remove('active');\n setShowIconHover(false);\n props.onMouseLeave?.(evt);\n };\n const onMouseEnterHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n setShowIconHover(true);\n props.onMouseEnter?.(evt);\n };\n\n // Need this to let focus goes on story where no action click defined\n const onMouseDownHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n evt.preventDefault();\n innerRef.current?.classList.add('active');\n props.onMouseDown?.(evt);\n };\n\n // Need this to let focus goes on story where no action click defined\n const onMouseUpHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n evt.preventDefault();\n innerRef.current?.classList.remove('active');\n props.onMouseUp?.(evt);\n };\n\n const onClickHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n // TRUE MOUSE CLICK\n if (evt.detail > 0) {\n props.onClick?.(evt);\n return;\n }\n\n // CLICK FROM KEYBOARD\n\n // NEED TO CHECK THIS ATTRIBUTE BECAUSE FIREFOX DOES NOT TRIGGER CLICK EVENTS WHENEVER THE ENTER/SPACE/NUMPADENTER KEY IS PRESSED.\n // TO FIX THAT INCONSISTENCY, WE ADD A CUSTOM ATTRIBUTE TO SIGNAL THE ARTIFICIAL CLICK TRIGGER AND PREVENT THE CHROMIUM BASED BROWSERS OF DUPLICATE CLICK EVENTS.\n // ON KEYUP THE CLICK EVENT IS TRIGGERED AND WILL BE ADDED THE CUSTOM ATTRIBUTE. THEN, IF THE BROWSER TRIGGERED ANOTHER CLICK, THE HANDLER WILL NOT FIND THE CUSTOM ATTRIBUTE AND WILL NOT TRIGGER A DUPLICATED EVENT.\n const shouldTriggerClick = innerRef.current?.getAttribute('data-custom-triggered-click') === 'true';\n innerRef.current?.removeAttribute('data-custom-triggered-click');\n\n if (!shouldTriggerClick) {\n evt.preventDefault();\n return;\n }\n\n props.onClick?.(evt);\n };\n\n return (\n <button\n type=\"button\"\n className={buttonClassName}\n {...props}\n ref={innerRef}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n onMouseLeave={onMouseLeaveHandler}\n onMouseEnter={onMouseEnterHandler}\n >\n {((hasIcon && iconOnly && trailingIcon === 'no-trailing') ||\n (hasIcon && iconOnly && leadingIcon === undefined && trailingIcon === undefined) ||\n (hasIcon && iconOnly && leadingIcon && leadingIcon === 'no-leading' && trailingIcon === 'no-trailing') ||\n (hasIcon && leadingIcon && leadingIcon !== 'no-leading')) && (\n <IconWrapper\n className=\"leading\"\n name={leadingIcon && leadingIcon !== 'no-leading' ? leadingIcon : 'no-icon'}\n iconHover={leadingIconHover ?? 'no-icon'}\n showIconHover={showIconHover}\n />\n )}\n {!iconOnly && children && <span className=\"children-wrapper\">{children}</span>}\n {((hasIcon && iconOnly && leadingIcon === 'no-leading' && trailingIcon !== 'no-trailing') ||\n (hasIcon && trailingIcon && trailingIcon !== 'no-trailing')) && (\n <IconWrapper\n className=\"trailing\"\n name={trailingIcon ?? 'no-icon'}\n iconHover={trailingIconHover ?? 'no-icon'}\n showIconHover={showIconHover}\n />\n )}\n </button>\n );\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(InnerButton);\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\n\nimport { Button } from '@/components/button';\n\nexport interface InteractiveAvatarProps extends ComponentPropsWithRef<'div'> {\n alt?: string;\n className?: string;\n onActivate?: () => void;\n children?: ReactNode;\n}\n\nexport const InnerInteractiveAvatar: ForwardRefRenderFunction<HTMLDivElement, InteractiveAvatarProps> = (\n {\n className,\n onActivate,\n children,\n alt,\n 'aria-haspopup': ariaHasPopup,\n 'aria-expanded': ariaExpanded,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel,\n role,\n ...props\n },\n ref\n) => {\n const onClickHandler = () => {\n onActivate?.();\n };\n\n return (\n <div ref={ref} {...props} className={className}>\n <Button\n {...(ariaHasPopup !== undefined ? { 'aria-haspopup': ariaHasPopup } : {})}\n {...(ariaExpanded !== undefined ? { 'aria-expanded': ariaExpanded } : {})}\n {...(ariaCurrent !== undefined ? { 'aria-current': ariaCurrent } : {})}\n {...(role !== undefined ? { role: role.toString() } : {})}\n aria-label={alt ?? ariaLabel}\n type=\"button\"\n className={className}\n onClick={onClickHandler}\n >\n {children}\n </Button>\n </div>\n );\n};\n\nexport const InteractiveAvatar = forwardRef<HTMLDivElement, InteractiveAvatarProps>(InnerInteractiveAvatar);\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\n\nexport interface NonInteractiveAvatarProps extends ComponentPropsWithRef<'div'> {\n alt?: string;\n className?: string;\n children?: ReactNode;\n}\n\nexport const InnerNonInteractiveAvatar: ForwardRefRenderFunction<HTMLDivElement, NonInteractiveAvatarProps> = (\n { className, children, alt, ...props },\n ref\n) => {\n return (\n <div ref={ref} {...props} role=\"button\" aria-label={alt} className={className}>\n {children}\n </div>\n );\n};\n\nexport const NonInteractiveAvatar = forwardRef<HTMLDivElement, NonInteractiveAvatarProps>(InnerNonInteractiveAvatar);\n","import React, { ComponentPropsWithoutRef, FC, ReactNode, useMemo } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon, IconName } from '@/components/icon';\nimport { Tooltip, TooltipAlignment, TooltipPosition } from '@/components/tooltip';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport { InteractiveAvatar } from './interactive-avatar';\nimport { NonInteractiveAvatar } from './non-interactive-avatar';\n\nimport './avatar.scss';\n\n/**\n * The available avatar types. Each of them define the appearance of the avatar image.\n */\nexport type AvatarType = 'image' | 'icon' | 'initials';\n/**\n * The available badge positions. Each of them defines the location of the badge on the avatar.\n */\nexport type AvatarBadgePosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n/**\n * The available variants of the badge. Each of them defines the color of the avatar badge.\n */\nexport type AvatarBadgeVariant = 'primary' | 'secondary' | 'danger' | 'success' | 'warning' | 'neutral' | 'white';\n\nexport interface AvatarProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Defines the appearance of the avatar.\n */\n avatarType?: AvatarType;\n /**\n * Defines the avatar source path. Depending on the selected avatar type the source requires:\n * 1. Image - Path to an external image URL. In case an invalid path was given, alt text will be displayed.\n * 2. Icon - Icon name that exists in AgoraDS. In case an invalid icon name was given, the default Agora icon will be displayed.\n * 3. Initials - First two letters of a given text. It is possible to insert more than two letters, but it will always show the first two and it will capitalize them.\n *\n * If no source was given or if the user inserts \"no-icon\" in the field for any of the available avatar types, the default Agora image will be displayed.\n */\n srcPath?: IconName;\n /**\n * Avatar information. Information related to the avatar, such as user name or other.\n */\n information: ReactNode;\n /**\n * Defines an alternative text of the avatar image.\n */\n alt?: string;\n /**\n * The flag to place a badge of different colors on the avatar.\n */\n hasBadge?: BooleanProp;\n /**\n * Defines the avatar badge position.\n */\n badgePosition?: AvatarBadgePosition;\n /**\n * Variants define the color of the avatar badge.\n */\n badgeVariant?: AvatarBadgeVariant;\n /**\n * Defines the position of the avatar tooltip.\n */\n tooltipPosition?: TooltipPosition;\n /**\n * The defines the align the avatar tooltip alignment.\n */\n tooltipAlignment?: TooltipAlignment;\n /**\n * Makes the avatar interactive. An interactive avatar can be focused by clicking on it, or pressing Space, Enter or NumpadEnter.\n */\n interactive?: BooleanProp;\n /**\n * Enables dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * Callback to run whenever the avatar is activated.\n */\n onActivate?: () => void;\n}\n\nexport const Avatar: FC<AvatarProps> = ({\n className,\n avatarType = 'icon',\n srcPath,\n hasBadge,\n information = '',\n badgePosition = 'top-right',\n badgeVariant = 'primary',\n tooltipPosition = 'bottom',\n tooltipAlignment = 'center',\n interactive,\n darkMode,\n onActivate,\n ...props\n}) => {\n const containerClasses = classNames('agora-avatar', className, {\n interactive,\n 'dark-mode': stringToBoolean(darkMode)\n });\n\n const memoContent = useMemo(() => {\n const parsedAvatarType = srcPath ? avatarType : 'icon';\n\n const avatarClasses = classNames(`avatar avatar-${parsedAvatarType}`);\n\n const badgeClasses = classNames(className, {\n [`badge badge-${badgeVariant} badge-${badgePosition}`]: stringToBoolean(hasBadge)\n });\n\n if (avatarType === 'initials' && srcPath && srcPath.trim().length !== 0) {\n return (\n <>\n <div className={avatarClasses}>{srcPath.slice(0, 2)}</div>\n {stringToBoolean(hasBadge) && <div className={badgeClasses} />}\n </>\n );\n }\n\n return (\n <>\n <Icon name={srcPath} className={avatarClasses} aria-hidden />\n {stringToBoolean(hasBadge) && <div className={badgeClasses} />}\n </>\n );\n }, [className, avatarType, srcPath, hasBadge, badgeVariant, badgePosition]);\n\n if (stringToBoolean(interactive)) {\n return (\n <Tooltip\n alignment={tooltipAlignment}\n className=\"avatar-tooltip\"\n description={information}\n position={tooltipPosition}\n variant={stringToBoolean(darkMode) ? 'dark' : 'light'}\n >\n <InteractiveAvatar {...props} className={containerClasses} onActivate={onActivate}>\n {memoContent}\n </InteractiveAvatar>\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n alignment=\"center\"\n className=\"avatar-tooltip\"\n description={information}\n position=\"bottom\"\n variant={stringToBoolean(darkMode) ? 'dark' : 'light'}\n >\n <NonInteractiveAvatar {...props} className={containerClasses}>\n {memoContent}\n </NonInteractiveAvatar>\n </Tooltip>\n );\n};\n","import { createContext, useContext } from 'react';\nimport { DropdownType } from '../dropdown-type';\nimport { InternalDropdownOptionProps } from './internal-dropdown-option';\nimport { InternalDropdownSectionProps } from './internal-dropdown-section';\n\nexport interface InternalDropdownContextProps {\n type: DropdownType;\n sections: InternalDropdownSectionProps[];\n options: InternalDropdownOptionProps[];\n\n visibility?: boolean;\n show: () => void;\n hide: () => void;\n\n first: () => void;\n prev: () => void;\n next: () => void;\n last: () => void;\n\n selectOption: (props: InternalDropdownOptionProps) => void;\n selectSectionOptions: (name: string) => void;\n isAllSectionOptionsSelected: (name: string) => boolean;\n\n hasSectionOptionsToInteract: (name: string) => boolean;\n selectAll: () => void;\n isAllSelected: boolean;\n isAllDisabled: boolean;\n\n applyFilter: (filter: string) => void;\n activeFilter: string;\n resetFilter: () => void;\n}\n\nexport const InternalDropdownContext = createContext<InternalDropdownContextProps>({} as InternalDropdownContextProps);\n\nexport const useInternalDropdownContext = (): InternalDropdownContextProps => {\n return useContext(InternalDropdownContext);\n};\n","import { Icon } from '@/components/icon';\nimport { useDebounceHook } from '@/utils';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n RefObject,\n useEffect,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport './internal-dropdown-filter-section.scss';\n\nexport interface InternalDropdownFilterSectionRef extends RefObject<HTMLInputElement> {\n filterElem: HTMLLIElement | null;\n resetFilter: () => void;\n}\n\nexport interface InternalDropdownFilterSectionProps extends ComponentPropsWithRef<'input'> {\n debounceTimeout?: number;\n}\n\nconst InnerInternalDropdownFilterSection: ForwardRefRenderFunction<\n InternalDropdownFilterSectionRef | null,\n InternalDropdownFilterSectionProps\n> = ({ debounceTimeout = 300, ...props }, ref) => {\n const dropdownContext = useInternalDropdownContext();\n const visibility = dropdownContext.visibility;\n const applyFilter = dropdownContext.applyFilter;\n const hide = dropdownContext.hide;\n const next = dropdownContext.next;\n\n const [currentFilter, setCurrentFilter] = useState('');\n\n const debouncedApplyFilter = useDebounceHook(applyFilter, debounceTimeout);\n\n const onInputChange = (evt: ChangeEvent<HTMLInputElement>) => {\n setCurrentFilter(evt.target.value ?? '');\n };\n\n useEffect(() => {\n debouncedApplyFilter.setArgs(currentFilter);\n }, [currentFilter, debouncedApplyFilter]);\n\n const resetFilter = () => {\n setCurrentFilter('');\n };\n\n const inputRef = useRef<HTMLInputElement>(null);\n const innerRef = useRef<HTMLLIElement>(null);\n useImperativeHandle(\n ref,\n () => {\n return {\n current: innerRef.current,\n resetFilter\n } as InternalDropdownFilterSectionRef;\n },\n [innerRef]\n );\n\n const onKeyDownCaptureHandler = (evt: KeyboardEvent<HTMLInputElement>) => {\n const code = evt.code;\n\n if (code === 'Tab') {\n evt.preventDefault();\n evt.stopPropagation();\n\n hide();\n }\n };\n\n const onKeyDownHandler = (evt: KeyboardEvent<HTMLInputElement>) => {\n const code = evt.code;\n\n switch (code) {\n case 'Escape':\n // ESCAPE WITH NVDA ACTIVE BUG\n // https://github.com/nvaccess/nvda/issues/4428\n hide();\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'ArrowDown':\n next();\n break;\n }\n };\n\n const onMouseDownCaptureHandler = (evt: MouseEvent<SVGElement | HTMLImageElement>) => {\n evt.preventDefault();\n inputRef.current?.focus();\n };\n\n useEffect(() => {\n if (innerRef.current && visibility) {\n const { height } = innerRef.current.getBoundingClientRect();\n innerRef.current.setAttribute('data-filter-section-height', `${height}`);\n }\n }, [visibility]);\n\n return (\n <ul className=\"agora-dropdown-filter-section\" role=\"presentation\">\n <li className=\"agora-dropdown-filter-section-item\" ref={innerRef} role=\"presentation\">\n <input\n ref={inputRef}\n {...props}\n className={'input-filter'}\n type=\"text\"\n value={currentFilter}\n onChange={onInputChange}\n onKeyDownCapture={onKeyDownCaptureHandler}\n onKeyDown={onKeyDownHandler}\n />\n <Icon className=\"input-icon\" name=\"agora-line-search\" aria-hidden onMouseDownCapture={onMouseDownCaptureHandler} />\n </li>\n </ul>\n );\n};\n\nexport const InternalDropdownFilterSection = forwardRef<InternalDropdownFilterSectionRef | null, InternalDropdownFilterSectionProps>(\n InnerInternalDropdownFilterSection\n);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\nimport './internal-dropdown-no-results.scss';\n\nexport interface InternalNoResultsProps extends ComponentPropsWithoutRef<'div'> {\n label: ReactNode;\n}\n\nexport const InternalNoResults: FC<InternalNoResultsProps> = ({ className, label, ...props }) => {\n const classes = classNames('agora-dropdown-no-results', className);\n\n return (\n <div {...props} className={classes}>\n <div className=\"label\">{label}</div>\n </div>\n );\n};\n","import { Icon } from '@/components/icon';\nimport { BooleanProp, IconPosition } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n FC,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n useState\n} from 'react';\nimport { DropdownType } from '../dropdown-type';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport './internal-dropdown-option.scss';\n\nconst OptionComponent: FC<{ type: DropdownType; hasIcon?: BooleanProp; icon?: string; children: ReactNode }> = ({\n type,\n icon,\n hasIcon,\n children\n}) => {\n if (type === 'checkbox') {\n return (\n <span className=\"flex gap-8 w-full\">\n <Icon className=\"checkbox-mark\" name=\"agora-line-check\" aria-hidden />\n <span className=\"option-content\">{children}</span>\n {hasIcon && <Icon className=\"option-icon\" name={icon} aria-hidden />}\n </span>\n );\n }\n\n if (!hasIcon) {\n return <span className=\"option-content\">{children}</span>;\n }\n\n return (\n <>\n <Icon className=\"option-icon\" name={icon} aria-hidden />\n <span className=\"option-content\">{children}</span>\n </>\n );\n};\n\nexport interface InternalDropdownOptionProps extends ComponentPropsWithRef<'li'> {\n className?: string;\n name?: string;\n value: string;\n children: ReactNode;\n hasIcon?: BooleanProp;\n icon?: string;\n iconPosition?: IconPosition;\n disabled?: BooleanProp;\n selected?: BooleanProp;\n filtered?: BooleanProp;\n sectionOptionId?: string;\n}\n\nconst InternalOption: ForwardRefRenderFunction<HTMLLIElement, InternalDropdownOptionProps> = (\n { className, disabled, selected, filtered, hasIcon, icon, iconPosition = 'leading', children, name, value, sectionOptionId },\n ref\n) => {\n const parsedIconName = icon?.replace('solid', 'line');\n const [iconName, setIconName] = useState(parsedIconName ?? '');\n\n const dropdownContext = useInternalDropdownContext();\n const selectOption = dropdownContext.selectOption;\n const options = dropdownContext.options;\n const last = dropdownContext.last;\n const first = dropdownContext.first;\n const next = dropdownContext.next;\n const prev = dropdownContext.prev;\n const type = dropdownContext.type;\n const hide = dropdownContext.hide;\n\n const optionWrapperClasses = classNames(\n 'agora-dropdown-option',\n className,\n\n { [type]: type },\n { disabled: stringToBoolean(disabled) },\n { selected: stringToBoolean(selected) },\n { filtered: stringToBoolean(filtered) },\n {\n 'leading-icon': stringToBoolean(hasIcon) && iconPosition === 'leading',\n 'trailing-icon': stringToBoolean(hasIcon) && iconPosition === 'trailing'\n }\n );\n\n const select = () => {\n const option = options.find((opt) => {\n return opt.value === value && opt.name === name;\n });\n\n if (option) {\n selectOption(option);\n }\n };\n\n const onKeyDownCaptureHandler = (evt: KeyboardEvent<HTMLLIElement>) => {\n const code = evt.code;\n\n // SPACE, UP AND DOWN TRIGGERS SCROLLING BEHAVIOUR. ITS MUST BE HANDLED IN KEYDOWN CAPTURE TO PREVENT IT.\n if (code === 'Space' || code === 'Enter' || code === 'NumpadEnter') {\n evt.stopPropagation();\n evt.preventDefault();\n select();\n }\n\n if (code === 'Tab') {\n evt.stopPropagation();\n evt.preventDefault();\n\n hide();\n }\n };\n\n const onKeyDownHandler = (evt: KeyboardEvent<HTMLLIElement>) => {\n const { code } = evt;\n\n switch (code) {\n case 'Escape':\n // ESCAPE WITH NVDA ACTIVE BUG\n // https://github.com/nvaccess/nvda/issues/4428\n hide();\n break;\n case 'ArrowUp':\n prev();\n break;\n case 'ArrowDown':\n next();\n break;\n case 'Home':\n first();\n break;\n case 'End':\n last();\n break;\n }\n };\n\n const onMouseDownCapture = (evt: MouseEvent<HTMLLIElement>) => {\n if (disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const clickHandler = (evt: MouseEvent<HTMLLIElement>) => {\n if (disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n return;\n }\n\n select();\n };\n\n const applySolidIcon = () => {\n if (!disabled) {\n setIconName((lastIconName) => lastIconName.replace('line', 'solid'));\n }\n };\n\n const applyLineIcon = () => {\n if (!disabled) {\n setIconName((lastIconName) => lastIconName.replace('solid', 'line'));\n }\n };\n\n return (\n <li\n ref={ref}\n className={optionWrapperClasses}\n role=\"option\"\n tabIndex={disabled ? -1 : 0}\n aria-selected={stringToBoolean(selected)}\n onKeyDown={onKeyDownHandler}\n onKeyDownCapture={onKeyDownCaptureHandler}\n onMouseDownCapture={onMouseDownCapture}\n onClick={clickHandler}\n onMouseEnter={applySolidIcon}\n onMouseMove={applySolidIcon}\n onMouseLeave={applyLineIcon}\n data-section-option-id={sectionOptionId}\n >\n <OptionComponent type={type} hasIcon={stringToBoolean(hasIcon)} icon={iconName}>\n {children}\n </OptionComponent>\n </li>\n );\n};\n\nexport const InternalDropdownOption = forwardRef<HTMLLIElement, InternalDropdownOptionProps>(InternalOption);\n","import classNames from 'classnames';\nimport React, { createRef, FC, ReactElement, RefObject, useEffect, useMemo, useRef } from 'react';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport { InternalDropdownOption, InternalDropdownOptionProps } from './internal-dropdown-option';\nimport './internal-dropdown-section.scss';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nexport interface InternalDropdownSectionProps {\n className?: string;\n name: string;\n label?: string;\n hideLabel: BooleanProp;\n children: ReactElement<InternalDropdownOptionProps> | ReactElement<InternalDropdownOptionProps>[];\n}\n\nexport const InternalDropdownSection: FC<InternalDropdownSectionProps> = ({ className, name, label = '', hideLabel = true }) => {\n const dropdownContext = useInternalDropdownContext();\n const options = dropdownContext.options;\n const type = dropdownContext.type;\n const visibility = dropdownContext.visibility;\n\n const optionsRefMap = useMemo(() => new Map<string, RefObject<HTMLLIElement>>(), []);\n const sectionNameRef = useRef<HTMLLIElement>(null);\n\n const sectionClassNames = classNames('agora-dropdown-section', className);\n\n const sectionOptions = useMemo(() => {\n return options\n .filter((opt) => opt.name === name)\n .map((props: InternalDropdownOptionProps) => {\n const key = `${name}-${type}-${props.value}`;\n\n const optionClassNames = classNames(props.className, {\n 'no-section-name': type !== 'checkbox' && hideLabel\n });\n\n const newRef = createRef<HTMLLIElement>();\n optionsRefMap.set(key, newRef);\n\n return <InternalDropdownOption {...props} key={key} sectionOptionId={key} ref={newRef} className={optionClassNames} />;\n });\n }, [options, optionsRefMap, name, type, name]);\n\n useEffect(() => {\n if (visibility) {\n optionsRefMap.forEach((ref) => {\n if (ref.current) {\n const optionHeight = ref.current.getBoundingClientRect().height;\n ref.current.setAttribute('data-section-option-height', `${optionHeight}`);\n }\n });\n\n if (sectionNameRef.current) {\n const sectionNameHeight = sectionNameRef.current.getBoundingClientRect().height;\n sectionNameRef.current.setAttribute('data-section-name-height', `${sectionNameHeight}`);\n }\n }\n }, [visibility, type, optionsRefMap]);\n\n const labelVisible = !stringToBoolean(hideLabel);\n\n return (\n <ul className={sectionClassNames} role=\"group\" {...(labelVisible ? { 'aria-labelledby': name } : {})}>\n {labelVisible && (\n <li ref={sectionNameRef} className=\"section-name\" id={name} role=\"presentation\">\n {label}\n </li>\n )}\n {sectionOptions}\n </ul>\n );\n};\n","import { Icon } from '@/components/icon';\nimport React, { FC, KeyboardEvent as ReactKeyboardEvent, useEffect, useRef } from 'react';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport './internal-dropdown-select-all-section.scss';\n\nexport interface InternalDropdownSelectAllSectionProps {\n label: string;\n}\n\nexport const InternalDropdownSelectAllSection: FC<InternalDropdownSelectAllSectionProps> = ({ label }) => {\n const ref = useRef<HTMLLIElement>(null);\n\n const dropdownContext = useInternalDropdownContext();\n const visibility = dropdownContext.visibility;\n const isAllDisabled = dropdownContext.isAllDisabled;\n const isAllSelected = dropdownContext.isAllSelected;\n const selectAll = dropdownContext.selectAll;\n const last = dropdownContext.last;\n const first = dropdownContext.first;\n const next = dropdownContext.next;\n const prev = dropdownContext.prev;\n const hide = dropdownContext.hide;\n\n const onKeydown = (evt: ReactKeyboardEvent<HTMLInputElement>) => {\n const { code } = evt;\n\n switch (code) {\n case 'Escape':\n // ESCAPE WITH NVDA ACTIVE BUG\n // https://github.com/nvaccess/nvda/issues/4428\n hide();\n break;\n case 'ArrowUp':\n prev();\n break;\n case 'ArrowDown':\n next();\n break;\n case 'Home':\n first();\n break;\n case 'End':\n last();\n break;\n case 'Space':\n evt.preventDefault();\n selectAll();\n break;\n case 'Enter':\n case 'NumpadEnter':\n selectAll();\n break;\n }\n };\n\n const clickHandler = () => {\n selectAll();\n };\n\n useEffect(() => {\n if (ref.current && visibility) {\n const { height } = ref.current.getBoundingClientRect();\n ref.current.setAttribute('data-select-all-section-height', `${height}`);\n }\n }, [visibility]);\n\n useEffect(() => {\n const handler = (evt: KeyboardEvent) => {\n if (evt.code === 'Tab') {\n evt.stopPropagation();\n evt.preventDefault();\n\n hide();\n }\n };\n\n if (ref.current) {\n ref.current.addEventListener('keydown', handler, true);\n }\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener('keydown', handler, true);\n }\n };\n }, []);\n\n return (\n <ul className=\"agora-dropdown-select-all-section\" role=\"presentation\">\n <li ref={ref} className=\"agora-dropdown-all-option\" role=\"application\" aria-roledescription=\" \">\n <div\n className=\"agora-dropdown-all-option-item\"\n tabIndex={0}\n role=\"checkbox\"\n aria-checked={isAllSelected}\n aria-disabled={isAllDisabled}\n onKeyDown={onKeydown}\n onClick={clickHandler}\n >\n <Icon name=\"agora-line-check\" aria-hidden />\n <span>{label}</span>\n </div>\n </li>\n </ul>\n );\n};\n","import { BooleanProp } from '@/models';\nimport { useExpandedRef } from '@/utils';\nimport classNames from 'classnames';\nimport React, {\n ComponentPropsWithoutRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { useInternalDropdownContext } from './internal-dropdown-context';\nimport { InternalDropdownFilterSection, InternalDropdownFilterSectionRef } from './internal-dropdown-filter-section';\nimport { InternalNoResults } from './internal-dropdown-no-results';\nimport { InternalDropdownOptionProps } from './internal-dropdown-option';\nimport { InternalDropdownSection } from './internal-dropdown-section';\nimport { InternalDropdownSelectAllSection } from './internal-dropdown-select-all-section';\nimport './internal-dropdown.scss';\n\nexport interface InternalDropdownElement extends HTMLDivElement {\n resetFilter: () => void;\n}\n\nexport interface InternalDropdownProps extends ComponentPropsWithoutRef<'div'> {\n optionsVisible?: number;\n\n searchable?: BooleanProp;\n\n searchAriaLabel?: string;\n\n searchPlaceholder?: string;\n\n noSearchResults?: ReactNode;\n\n searchDebounceTimeout?: number;\n\n onInputSearchChange?: (value: string) => void;\n\n selectAllLabel?: string;\n}\n\nconst Component: ForwardRefRenderFunction<InternalDropdownElement, InternalDropdownProps> = (\n {\n selectAllLabel,\n searchPlaceholder,\n searchAriaLabel,\n searchable,\n optionsVisible = 6,\n noSearchResults = '',\n ...props\n }: InternalDropdownProps,\n ref\n) => {\n const context = useInternalDropdownContext();\n const visibility = context.visibility;\n const activeFilter = context.activeFilter;\n const sections = context.sections;\n const options = context.options;\n const type = context.type;\n\n const filterRef = useRef<InternalDropdownFilterSectionRef>(null);\n const resetFilter = useCallback(() => {\n if (searchable && filterRef.current) {\n filterRef.current.resetFilter();\n }\n }, [searchable]);\n\n const innerRef = useRef<HTMLDivElement>(null);\n useExpandedRef<InternalDropdownElement>(ref, innerRef, { resetFilter } as InternalDropdownElement, [resetFilter]);\n\n const [maxHeightStyleProp, setMaxHeightStyleProp] = useState('');\n\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const getFilterSectionHeight = useCallback(() => {\n if (innerRef.current && searchable) {\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-filter-section-item');\n\n const elem = (queryResults[0] as HTMLDivElement) ?? null;\n\n if (elem) {\n const val = elem.getAttribute('data-filter-section-height');\n return val ? Number(val) : 0;\n }\n }\n\n return 0;\n }, [searchable]);\n\n const getSelectAllSectionHeight = useCallback(() => {\n if (innerRef.current && type === 'checkbox') {\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-all-option');\n\n const elem = (queryResults[0] as HTMLDivElement) ?? null;\n\n if (elem) {\n const val = elem.getAttribute('data-select-all-section-height');\n return val ? Number(val) : 0;\n }\n }\n\n return 0;\n }, [type]);\n\n const getVisibleSectionNamesHeight = useCallback((visibleSections: string[]) => {\n let heightCount = 0;\n\n if (innerRef.current) {\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-section .section-name');\n\n queryResults.forEach((elem) => {\n const sectionName = elem.getAttribute('data-section-option-id');\n\n if (sectionName && visibleSections.includes(sectionName)) {\n const val = elem.getAttribute('data-section-name-height');\n heightCount = heightCount + (val ? Number(val) : 0);\n }\n });\n }\n\n return heightCount;\n }, []);\n\n const getVisibleOptionsHeight = useCallback(\n (visibleOptions: InternalDropdownOptionProps[]) => {\n let heightCount = 0;\n\n if (innerRef.current) {\n const visibleOptionsKeys = visibleOptions.map((opt) => {\n return `${opt.name}-${type}-${opt.value}`;\n });\n\n const queryResults = innerRef.current.querySelectorAll('.agora-dropdown-section .agora-dropdown-option');\n\n queryResults.forEach((elem) => {\n const optionId = elem.getAttribute('data-section-option-id');\n\n if (optionId && visibleOptionsKeys.includes(optionId)) {\n const val = elem.getAttribute('data-section-option-height');\n heightCount = heightCount + (val ? Number(val) : 0);\n }\n });\n }\n\n return heightCount;\n },\n [type]\n );\n\n const getListboxBorderWidths = useCallback(() => {\n if (!innerRef.current) {\n return 0;\n }\n\n const computedStyle = getComputedStyle(innerRef.current);\n\n if (computedStyle) {\n const borderTopWidth = parseFloat(computedStyle.borderTopWidth);\n const borderBottomWidth = parseFloat(computedStyle.borderBottomWidth);\n return borderTopWidth + borderBottomWidth;\n }\n\n return 0;\n }, [innerRef]);\n\n useEffect(() => {\n if (visibility) {\n const visibleOptions = options.filter((opt) => !opt.filtered);\n\n if (visibleOptions.length > optionsVisible) {\n const containedOptions = visibleOptions.slice(0, optionsVisible);\n const visibleSections = [...new Set(containedOptions.map((opt) => opt.name ?? '').filter((opt) => !!opt))];\n\n let maxHeight = 0;\n // GET FILTER SECTION HEIGHT\n maxHeight = maxHeight + getFilterSectionHeight();\n // GET SELECT ALL SECTION HEIGHT\n maxHeight = maxHeight + getSelectAllSectionHeight();\n // GET VISIBLE SECTIONS NAMES HEIGHT\n maxHeight = maxHeight + getVisibleSectionNamesHeight(visibleSections);\n // GET NON FILTERED OPTIONS HEIGHT\n maxHeight = maxHeight + getVisibleOptionsHeight(containedOptions);\n\n if (maxHeight > 0) {\n // GET LISTBOX BORDERS ONLY IF THERE ARE SOME OPTIONS VISIBLE\n maxHeight = maxHeight + getListboxBorderWidths();\n setMaxHeightStyleProp(`${maxHeight}px`);\n } else {\n setMaxHeightStyleProp('none');\n }\n } else {\n setMaxHeightStyleProp('none');\n }\n }\n }, [\n visibility,\n type,\n activeFilter,\n options,\n optionsVisible,\n getFilterSectionHeight,\n getSelectAllSectionHeight,\n getVisibleSectionNamesHeight,\n getVisibleOptionsHeight,\n getListboxBorderWidths\n ]);\n\n const dropdownClasses = classNames('agora-dropdown', propsClone.className, { visible: visibility });\n\n const hasOptions = useMemo(() => {\n return options.length > 0;\n }, [options]);\n\n const hasSectionsWithResults = useMemo(() => {\n return options.some((opt) => !opt.filtered);\n }, [options]);\n\n const allSectionResultsDisabled = useMemo(() => {\n const visibleResults = options.filter((opt) => !opt.filtered);\n return hasSectionsWithResults && visibleResults.findIndex((opt) => !opt.disabled) === -1;\n }, [hasSectionsWithResults, options]);\n\n const sectionWithResults = useMemo(() => {\n return options.filter((opt) => !opt.filtered).map((opt) => opt.name);\n }, [options]);\n\n return (\n <div\n className={dropdownClasses}\n ref={innerRef}\n style={{\n maxHeight: maxHeightStyleProp === '' ? '0px' : maxHeightStyleProp,\n overflowY: maxHeightStyleProp === '' ? 'hidden' : 'auto'\n }}\n >\n <div {...propsClone} role=\"listbox\">\n {searchable && <InternalDropdownFilterSection ref={filterRef} aria-label={searchAriaLabel} placeholder={searchPlaceholder} />}\n\n {type === 'checkbox' && hasSectionsWithResults && !allSectionResultsDisabled && selectAllLabel && (\n <InternalDropdownSelectAllSection label={selectAllLabel} />\n )}\n\n {hasSectionsWithResults &&\n sections\n .filter((s) => sectionWithResults.indexOf(s.name) >= 0)\n .map((section, index) => {\n const key = `agora-dropdown-option-${propsClone.id}-${index}`;\n return <InternalDropdownSection key={key} {...section} />;\n })}\n\n {(!hasOptions || !hasSectionsWithResults) && <InternalNoResults label={noSearchResults} />}\n </div>\n </div>\n );\n};\n\nexport const InternalDropdown = forwardRef<InternalDropdownElement, InternalDropdownProps>(Component);\n","import { Children, ReactElement, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { DropdownOptionProps } from '../dropdown-option';\nimport { DropdownSectionProps } from '../dropdown-section';\nimport { DropdownType } from '../dropdown-type';\nimport { InternalDropdownElement } from './internal-dropdown';\nimport { InternalDropdownContextProps } from './internal-dropdown-context';\nimport { InternalDropdownOptionProps } from './internal-dropdown-option';\nimport { InternalDropdownSectionProps } from './internal-dropdown-section';\nimport { asyncTrigger } from '@/utils';\n\nexport const useDropdownState = (\n internalDropdownRef: RefObject<InternalDropdownElement>,\n type: DropdownType,\n hideSectionNames: boolean,\n onChange?: (options: DropdownOptionProps[]) => void,\n onSearchChange?: (term: string, options: DropdownOptionProps[]) => void,\n onShow?: () => void,\n onHide?: () => void,\n children?: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[]\n) => {\n // #region \"OPTIONS\"\n const [sections, setSections] = useState<Array<InternalDropdownSectionProps>>([]);\n const [options, setOptions] = useState<Array<InternalDropdownOptionProps>>([]);\n\n useEffect(() => {\n const parsedSectionProps: Array<InternalDropdownSectionProps> = [];\n const parsedOptionProps: Array<InternalDropdownOptionProps> = [];\n\n if (children) {\n if (!Array.isArray(children)) {\n parsedSectionProps.push({\n ...children.props,\n hideLabel: hideSectionNames\n } as InternalDropdownSectionProps);\n } else {\n Children.forEach(children, (c) => {\n parsedSectionProps.push({\n ...c.props,\n hideLabel: hideSectionNames\n } as InternalDropdownSectionProps);\n });\n }\n }\n\n parsedSectionProps.forEach((sec) => {\n Children.forEach(sec.children, (opt) => {\n parsedOptionProps.push({\n ...opt.props,\n name: sec.name\n });\n });\n });\n\n setSections(parsedSectionProps);\n setOptions(parsedOptionProps);\n }, [children, type, onChange]);\n\n // #endregion \"OPTIONS\"\n\n // #region \"FILTER\"\n const [activeFilter, setActiveFilter] = useState('');\n\n const applyFilter = (newFilter: string) => {\n setActiveFilter((lastFilter) => {\n if (lastFilter === newFilter) {\n return lastFilter;\n }\n\n setOptions((lastOptions) => {\n const newOptions = lastOptions.map((opt) => {\n if (newFilter === '') {\n // CLEAR FILTER\n return { ...opt, filtered: false };\n }\n\n const val = opt.value.toLowerCase();\n const childrenVal = opt.children?.toString().toLowerCase();\n\n const notFound = !val.includes(newFilter) && !childrenVal?.toString().includes(newFilter);\n\n return {\n ...opt,\n filtered: notFound\n };\n });\n\n onSearchChange?.(\n newFilter,\n newOptions.filter((opt) => !opt.filtered)\n );\n\n return newOptions;\n });\n\n return newFilter;\n });\n };\n\n const resetFilter = useCallback(() => {\n if (internalDropdownRef.current) {\n internalDropdownRef.current.resetFilter();\n }\n }, [internalDropdownRef]);\n\n useEffect(() => {\n resetFilter();\n }, [children, resetFilter]);\n\n // #endregion \"FILTER\"\n\n // #region \"NAVIGATION\"\n\n const focusElem = (elem?: HTMLElement) => {\n if (elem) {\n elem.focus();\n elem.scrollIntoView({ behavior: 'instant', block: 'center', inline: 'start' });\n }\n };\n\n const first = useCallback(() => {\n if (internalDropdownRef.current) {\n const inputFilter = Array.from(internalDropdownRef.current?.querySelectorAll('.input-filter') ?? []);\n const selectAll = Array.from(internalDropdownRef.current?.querySelectorAll('.agora-dropdown-all-option-item') ?? []);\n const opts = Array.from(internalDropdownRef.current?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...selectAll, ...opts];\n\n const idx = Array.from(domOptions).findIndex((opt) => {\n return (opt as HTMLElement).tabIndex === 0;\n });\n\n if (idx >= 0) {\n focusElem(domOptions[idx] as HTMLElement);\n }\n }\n }, [internalDropdownRef]);\n\n const last = useCallback(() => {\n if (internalDropdownRef.current) {\n const inputFilter = Array.from(internalDropdownRef.current?.querySelectorAll('.input-filter') ?? []);\n const selectAll = Array.from(internalDropdownRef.current?.querySelectorAll('.agora-dropdown-all-option-item') ?? []);\n const opts = Array.from(internalDropdownRef.current?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...selectAll, ...opts];\n\n if (domOptions.length > 0) {\n const idx = Array.from(domOptions).findLastIndex((opt) => {\n return (opt as HTMLElement).tabIndex === 0;\n });\n\n if (idx >= 0) {\n focusElem(domOptions[idx] as HTMLElement);\n }\n }\n }\n }, [internalDropdownRef]);\n\n const next = useCallback((): void => {\n if (internalDropdownRef.current) {\n const current = document.activeElement;\n const inputFilter = Array.from(internalDropdownRef.current?.querySelectorAll('.input-filter') ?? []);\n const selectAll = Array.from(internalDropdownRef.current?.querySelectorAll('.agora-dropdown-all-option-item') ?? []);\n const opts = Array.from(internalDropdownRef.current?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...selectAll, ...opts];\n\n if (domOptions.length > 0) {\n const currentIndex = Array.from(domOptions).findIndex((opt) => {\n return opt.isEqualNode(current);\n });\n\n const idx = Array.from(domOptions).findIndex((opt, i) => {\n return i > currentIndex && (opt as HTMLElement).tabIndex === 0;\n });\n\n if (idx >= 0) {\n focusElem(domOptions[idx] as HTMLElement);\n }\n }\n }\n }, [internalDropdownRef, first]);\n\n const prev = useCallback((): void => {\n if (internalDropdownRef.current) {\n const current = document.activeElement;\n const inputFilter = Array.from(internalDropdownRef.current?.querySelectorAll('.input-filter') ?? []);\n const selectAll = Array.from(internalDropdownRef.current?.querySelectorAll('.agora-dropdown-all-option-item') ?? []);\n const opts = Array.from(internalDropdownRef.current?.querySelectorAll('[role=\"option\"]:not(.filtered)') ?? []);\n const domOptions = [...inputFilter, ...selectAll, ...opts];\n\n if (domOptions.length > 0) {\n const currentIndex = Array.from(domOptions).findIndex((opt) => {\n return opt.isEqualNode(current);\n });\n\n const idx = Array.from(domOptions).findLastIndex((opt, i) => {\n return i < currentIndex && (opt as HTMLElement).tabIndex === 0;\n });\n\n if (idx >= 0) {\n focusElem(domOptions[idx] as HTMLElement);\n }\n }\n }\n }, [internalDropdownRef, last]);\n\n // #endregion \"NAVIGATION\"\n\n // #region \"VISIBILITY\"\n const [visibility, setVisibility] = useState(false);\n\n const show = useCallback(() => {\n setVisibility(true);\n }, []);\n\n const hide = useCallback(() => {\n setVisibility(false);\n }, []);\n\n // Need this ref because first render will trigger the effect... we only want this event whenever show or hide is called\n const firstEffect = useRef(true);\n useEffect(() => {\n if (firstEffect.current) {\n firstEffect.current = false;\n return;\n }\n\n if (visibility) {\n onShow?.();\n } else {\n onHide?.();\n }\n }, [visibility]);\n\n // #endregion \"VISIBILITY\"\n\n // #region \"SELECTION\"\n const triggerOnChange = useCallback(\n (newOptions: InternalDropdownOptionProps[]) => {\n const selectedOptions = newOptions\n .filter((o) => o.selected)\n .map((o) => {\n return {\n selected: o.selected,\n value: o.value,\n className: o.className,\n disabled: o.disabled,\n hasIcon: o.hasIcon,\n icon: o.icon,\n iconPosition: o.iconPosition,\n children: o.children\n } as DropdownOptionProps;\n });\n\n if (type === 'text' && selectedOptions.length > 0) {\n hide();\n }\n\n // NEED THIS TO PREVENT MULTIPLE SET STATES WITH RENDERING IN PROCESS\n // BY SETTING THIS SET TIMEOUT WE ALLOW REACT TO FULLY RENDER AND THEN TRIGGER THE ONCHANGE\n // ON CHANGE MY SET A NEW STATE ON DROPDOWN AND INITIATE A NEW RENDER OF THE COMPONENT\n asyncTrigger(() => onChange?.(selectedOptions));\n },\n [onChange, hide, type]\n );\n\n const isMultiSelection = useMemo(() => {\n return type === 'checkbox';\n }, [type]);\n\n const selectOption = useCallback(\n (option: InternalDropdownOptionProps): void => {\n if (option.disabled || option.filtered) {\n return;\n }\n\n setOptions((lastOptions) => {\n const newOptions = lastOptions.map((opt) => {\n const isProvidedOption = option.name === opt.name && option.value === opt.value;\n\n if (isMultiSelection) {\n return {\n ...opt,\n selected: isProvidedOption ? !opt.selected : opt.selected\n };\n }\n\n return {\n ...opt,\n selected: isProvidedOption ? !opt.selected : false\n };\n });\n\n triggerOnChange(newOptions);\n\n return newOptions;\n });\n },\n [setOptions, isMultiSelection, triggerOnChange]\n );\n\n const isAllSectionOptionsSelected = useCallback(\n (sectionName: string): boolean => {\n const availableOptions = options.filter((opt) => opt.name === sectionName && !opt.filtered && !opt.disabled);\n const hasOptionsUnselected = availableOptions.some((opt) => !opt.selected);\n return availableOptions.length > 0 && !hasOptionsUnselected;\n },\n [options]\n );\n\n const selectSectionOptions = useCallback(\n (sectionName: string): void => {\n setOptions((lastOptions) => {\n const allOptionsSelected = isAllSectionOptionsSelected(sectionName);\n\n const newOptions = lastOptions.map((opt) => {\n const isInSectionProvided = sectionName === opt.name;\n return {\n ...opt,\n selected: !opt.filtered && !opt.disabled && isInSectionProvided ? !allOptionsSelected : opt.selected\n };\n });\n\n triggerOnChange(newOptions);\n\n return newOptions;\n });\n },\n [setOptions, isAllSectionOptionsSelected, triggerOnChange]\n );\n\n const hasSectionOptionsToInteract = useCallback(\n (sectionName: string): boolean => {\n const availableOptions = options.filter((opt) => opt.name === sectionName && !opt.filtered && !opt.disabled);\n return availableOptions.length > 0;\n },\n [options]\n );\n\n const isAllSelected = useMemo(() => {\n const availableOptions = options.filter((opt) => !opt.filtered && !opt.disabled);\n const hasOptionsUnselected = availableOptions.some((opt) => !opt.selected);\n return availableOptions.length > 0 && !hasOptionsUnselected;\n }, [options]);\n\n const isAllDisabled = useMemo(() => {\n const availableOptions = options.filter((opt) => !opt.filtered);\n const hasOptionsNotDisabled = availableOptions.some((opt) => !opt.disabled);\n return availableOptions.length > 0 && !hasOptionsNotDisabled;\n }, [options]);\n\n const selectAll = useCallback((): void => {\n setOptions((lastOptions) => {\n const newOptions = lastOptions.map((opt) => {\n return {\n ...opt,\n selected: !opt.filtered && !opt.disabled ? !isAllSelected : opt.selected\n };\n });\n\n triggerOnChange(newOptions);\n\n return newOptions;\n });\n }, [setOptions, isAllSelected, triggerOnChange]);\n\n // #endregion \"SELECTION\"\n\n return {\n type,\n sections,\n options,\n\n visibility,\n show,\n hide,\n\n first,\n prev,\n next,\n last,\n\n selectOption,\n hasSectionOptionsToInteract,\n selectSectionOptions,\n isAllSectionOptionsSelected,\n\n isAllDisabled,\n isAllSelected,\n selectAll,\n\n applyFilter,\n activeFilter,\n resetFilter\n } as InternalDropdownContextProps;\n};\n","import React, {\n Children,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n isValidElement,\n ReactElement,\n ReactNode,\n useEffect,\n useRef\n} from 'react';\nimport { BooleanProp } from '@/models';\n\nimport { asyncTrigger, stringToBoolean, useExpandedRef } from '@/utils';\nimport { DropdownOptionProps } from './dropdown-option';\nimport { DropdownSectionProps } from './dropdown-section';\nimport { DropdownType } from './dropdown-type';\nimport { InternalDropdown, InternalDropdownElement } from './internals/internal-dropdown';\nimport { InternalDropdownContext } from './internals/internal-dropdown-context';\nimport { useDropdownState } from './internals/use-dropdown-state';\n\nexport interface DropdownElement {\n visibility: boolean;\n show: () => void;\n hide: () => void;\n first: () => void;\n last: () => void;\n}\n\nexport interface DropdownProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange'> {\n /**\n * Toggles visibility on section names. It also removes the name from accessibility tree.\n */\n hideSectionNames?: BooleanProp;\n /**\n * Number of visible options to display in the Dropdown. Remaining items will be accessible via scroll bar.\n */\n optionsVisible?: number;\n /**\n * Define the type of sections that will be used. They can be of type \"text\" or \"checkbox\".\n */\n type?: DropdownType;\n /**\n * Callback to run whenever the dropdown becomes visible.\n */\n onShow?: () => void;\n /**\n * Callback to run whenever the dropdown becomes hidden.\n */\n onHide?: () => void;\n /**\n * List of section to render.\n */\n children?: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[];\n /**\n * Callback to run whenever the select state of an option changes.\n */\n onChange?: (options: DropdownOptionProps[]) => void;\n /**\n * Enable the search bar to filter options.\n */\n searchable?: BooleanProp;\n /**\n * Accessible text for the input search bar.\n */\n searchAriaLabel?: string;\n /**\n * Placeholder text for input search bar.\n */\n searchPlaceholder?: string;\n /**\n * Text to show when filtering return no results.\n */\n noSearchResults?: ReactNode;\n /**\n * Delay to apply before starting filtering results.\n */\n searchDebounceTimeout?: number;\n /**\n * Callback to run whenever the filter runs. Called using the filter term and the filtered result options.\n */\n onSearchChange?: (value: string, options: DropdownOptionProps[]) => void;\n /**\n * Text to display in the \"select all options across all sections\" option.\n */\n selectAllLabel?: string;\n}\n\nconst Component: ForwardRefRenderFunction<DropdownElement, DropdownProps> = (\n { type = 'text', onChange, onSearchChange, onShow, onHide, children, hideSectionNames = false, ...props },\n ref\n) => {\n const innerRef = useRef<InternalDropdownElement>(null);\n\n const dropdownState = useDropdownState(\n innerRef,\n type,\n stringToBoolean(hideSectionNames),\n onChange,\n onSearchChange,\n onShow,\n onHide,\n children\n );\n\n // CALL ON CHANGE TO INITIALIZE COMPONENTS THAT USE DROPDOWN WITH INITIAL DATA\n const firstCall = useRef(false);\n useEffect(() => {\n if (!firstCall.current) {\n firstCall.current = true;\n\n const options: DropdownOptionProps[] = [];\n\n Children.forEach(children, (sectionChild) => {\n if (isValidElement<DropdownSectionProps>(sectionChild)) {\n Children.forEach(sectionChild.props.children, (optionChild) => {\n if (isValidElement<DropdownOptionProps>(optionChild) && optionChild.props.selected) {\n options.push(optionChild.props);\n }\n });\n }\n });\n\n asyncTrigger(() => onChange?.(options));\n }\n }, []);\n\n useExpandedRef<DropdownElement>(\n ref,\n innerRef,\n {\n visibility: dropdownState.visibility,\n show: dropdownState.show,\n hide: dropdownState.hide,\n first: dropdownState.first,\n last: dropdownState.last\n } as DropdownElement,\n [dropdownState.hide, dropdownState.show, dropdownState.first, dropdownState.last, dropdownState.visibility]\n );\n\n return (\n <InternalDropdownContext.Provider value={dropdownState}>\n <InternalDropdown {...props} ref={innerRef}>\n {children}\n </InternalDropdown>\n </InternalDropdownContext.Provider>\n );\n};\n\nexport const Dropdown = forwardRef<DropdownElement, DropdownProps>(Component);\n","import React, { FC, ReactElement } from 'react';\nimport { DropdownOptionProps } from './dropdown-option';\n\nexport interface DropdownSectionProps {\n /**\n * Additional classnames to use in the section.\n */\n className?: string;\n /**\n * Unique group name identifier for the section.\n */\n name: string;\n /**\n * Label for the group section.\n */\n label?: string;\n /**\n * List section options.\n */\n children: ReactElement<DropdownOptionProps> | ReactElement<DropdownOptionProps>[];\n}\n\nexport const DropdownSection: FC<DropdownSectionProps> = () => <></>;\n","import React, { FC, ReactNode } from 'react';\nimport { BooleanProp, IconPosition } from '@/models';\n\nexport interface DropdownOptionProps {\n /**\n * Additional classnames to set to the option.\n */\n className?: string;\n /**\n * The value of the option.\n */\n value: string;\n /**\n * Visual representation of the option.\n */\n children: ReactNode;\n /**\n * Enables icon placement.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon to use.\n */\n icon?: string;\n /**\n * Defines the positioning of the icon.\n */\n iconPosition?: IconPosition;\n /**\n * Sets the option in the disable state.\n */\n disabled?: BooleanProp;\n /**\n * Sets the option in the selected state.\n */\n selected?: BooleanProp;\n}\n\nexport const DropdownOption: FC<DropdownOptionProps> = () => <></>;\n","import React, {\n Children,\n cloneElement,\n ComponentPropsWithoutRef,\n FC,\n isValidElement,\n ReactElement,\n useEffect,\n useId,\n useRef,\n useState\n} from 'react';\n\nimport { AvatarProps } from '@/components/avatar';\nimport { Button } from '@/components/button';\nimport { Dropdown, DropdownElement, DropdownOption, DropdownSection } from '@/components/dropdown';\n\nexport interface VisibleCountAvatarGroupProps extends ComponentPropsWithoutRef<'div'> {\n children: ReactElement<AvatarProps> | Array<ReactElement<AvatarProps>>;\n visibleCount: number;\n avatarCount: number;\n visibleCountAriaLabel?: string;\n}\n\nexport const VisibleCountAvatarGroup: FC<VisibleCountAvatarGroupProps> = ({\n avatarCount,\n visibleCount,\n visibleCountAriaLabel,\n children\n}) => {\n const generatedId = useId();\n\n const countValue = visibleCount >= 0 ? `+${avatarCount - visibleCount}` : `+${avatarCount}`;\n\n const avatarCountList = Children.map(children, (avatar, index) => {\n if (index >= visibleCount && isValidElement(avatar)) {\n return cloneElement(avatar);\n }\n\n return null;\n });\n\n const dropdownRef = useRef<DropdownElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n const onHide = () => {\n setIsDropdownVisible(false);\n buttonRef.current?.focus();\n };\n\n const onShow = () => {\n setIsDropdownVisible(true);\n dropdownRef.current?.first();\n };\n\n const handleClick = () => {\n if (dropdownRef.current?.visibility) {\n dropdownRef.current?.hide();\n } else {\n dropdownRef.current?.show();\n }\n };\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const onMouseEnterHandler = () => {\n dropdownRef.current?.show();\n };\n\n const onMouseLeaveHandler = () => {\n dropdownRef.current?.hide();\n };\n\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.addEventListener('mouseenter', onMouseEnterHandler);\n containerRef.current.addEventListener('mouseleave', onMouseLeaveHandler);\n }\n\n return () => {\n if (containerRef.current) {\n containerRef.current.removeEventListener('mouseenter', onMouseEnterHandler);\n containerRef.current.removeEventListener('mouseleave', onMouseLeaveHandler);\n }\n };\n }, []);\n\n return (\n <div ref={containerRef} className=\"avatar-visible-count-wrapper\">\n <Button\n ref={buttonRef}\n className=\"avatar-visible-count\"\n onClick={handleClick}\n role=\"combobox\"\n aria-expanded={isDropdownVisible}\n aria-controls={`${generatedId}-dropdown-avatar-group-container`}\n aria-label={countValue}\n >\n <span aria-hidden>{countValue}</span>\n </Button>\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px] min-w-[296px]\">\n <Dropdown\n id={`${generatedId}-dropdown-avatar-group-container`}\n ref={dropdownRef}\n onHide={onHide}\n onShow={onShow}\n type=\"text\"\n hideSectionNames\n >\n <DropdownSection name={`avatar-list-${generatedId}`} aria-label={visibleCountAriaLabel}>\n {avatarCountList.map((avatar, index) => {\n const avatarKey = `avatar-group-${generatedId}-option-${index}`;\n\n return (\n <DropdownOption\n key={avatarKey}\n value={avatar.props.information?.toString() ?? ''}\n hasIcon={avatar.props.avatarType !== 'initials'}\n icon={avatar.props.srcPath}\n iconPosition=\"leading\"\n >\n {avatar.props.information}\n </DropdownOption>\n );\n })}\n </DropdownSection>\n </Dropdown>\n </div>\n </div>\n );\n};\n","import { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, { Children, cloneElement, ComponentPropsWithoutRef, FC, isValidElement, ReactElement } from 'react';\nimport { AvatarProps } from '../avatar';\nimport './avatar-group.scss';\nimport { VisibleCountAvatarGroup } from './visible-count-avatar-group';\n\nexport interface AvatarGroupProps extends ComponentPropsWithoutRef<'ul'> {\n /**\n * List of avatar components to use as children of the group.\n */\n children: ReactElement<AvatarProps> | Array<ReactElement<AvatarProps>>;\n /**\n * Number of avatars that will be visible in the group. Once it exceeds that number a separate icon will show how many more avatars there are left. Clicking on the icon with the number will preview the other avatars as well.\n */\n visibleCount?: number;\n /**\n * Accessible text for the dropdown containing the remaining avatars.\n */\n visibleCountAriaLabel?: string;\n /**\n * Enables dark mode.\n */\n darkMode?: BooleanProp;\n}\n\nconst AvatarGroup: FC<AvatarGroupProps> = ({\n className,\n children,\n visibleCount,\n darkMode,\n visibleCountAriaLabel,\n ...props\n}): ReactElement => {\n const avatarGroupClasses = classNames('avatar-group', className, {\n 'dark-mode': stringToBoolean(darkMode)\n });\n\n const avatarCount = Children.toArray(children).length;\n const totalVisibleAvatars = visibleCount ?? avatarCount;\n\n const renderAvatarListItem = (child: ReactElement<AvatarProps>) => {\n return (\n <li>\n {cloneElement<AvatarProps>(child, {\n darkMode\n } as AvatarProps)}\n </li>\n );\n };\n\n return (\n <ul {...props} className={avatarGroupClasses}>\n {Children.map(children, (child, index) => {\n if (index < totalVisibleAvatars) {\n return isValidElement(child) ? renderAvatarListItem(child) : null;\n }\n\n return null;\n })}\n {avatarCount > totalVisibleAvatars && (\n <li>\n <VisibleCountAvatarGroup\n visibleCount={totalVisibleAvatars}\n avatarCount={avatarCount}\n visibleCountAriaLabel={visibleCountAriaLabel}\n >\n {children}\n </VisibleCountAvatarGroup>\n </li>\n )}\n </ul>\n );\n};\n\nexport { AvatarGroup };\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId } from 'react';\n\nimport { Button } from '@/components/button';\nimport { Tooltip, TooltipAlignment, TooltipPosition, TooltipVariant } from '@/components/tooltip';\nimport { BooleanProp } from '@/models';\nimport classNames from 'classnames';\n\nexport interface BackToTopProps extends ComponentPropsWithRef<'button'> {\n /**\n * The variant of the Tooltip.\n */\n tooltipVariant?: TooltipVariant;\n /**\n * Position of the tooltip to shows when the user focus or hovers the component.\n */\n tooltipPosition?: TooltipPosition;\n /**\n * Alignment of the tooltip shown whenever the user focus or hovers the component.\n */\n tooltipAlignment?: TooltipAlignment;\n /**\n * If the Tooltip has a title.\n */\n hasTooltipTitle?: BooleanProp;\n /**\n * The title of the Tooltip.\n */\n tooltipTitle?: ReactNode;\n /**\n * Tooltip description to show when user focus or hovers the component.\n */\n tooltipDescription: ReactNode;\n}\n\nexport const InnerBackToTop: ForwardRefRenderFunction<HTMLButtonElement, BackToTopProps> = (\n {\n tooltipVariant = 'light',\n tooltipAlignment = 'start',\n tooltipPosition = 'right',\n hasTooltipTitle,\n tooltipTitle,\n tooltipDescription,\n ...props\n },\n ref\n) => {\n const backToTopClassName = classNames('!rounded-full', props.className);\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n\n const goToTop = () => {\n window.scrollTo({\n top: 0,\n behavior: 'smooth'\n });\n };\n\n return (\n <Tooltip\n id={`tooltip-${propsClone.id}`}\n variant={tooltipVariant}\n alignment={tooltipAlignment}\n position={tooltipPosition}\n hasTitle={hasTooltipTitle}\n title={tooltipTitle}\n description={tooltipDescription}\n >\n <Button\n {...propsClone}\n ref={ref}\n hasIcon\n leadingIcon=\"agora-line-chevron-up\"\n leadingIconHover=\"agora-line-chevron-up\"\n iconOnly\n onClick={goToTop}\n className={backToTopClassName}\n />\n </Tooltip>\n );\n};\n\nexport const BackToTop = forwardRef<HTMLButtonElement, BackToTopProps>(InnerBackToTop);\n","import React, { FC, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Anchor } from '@/components/anchor';\nimport { BreadcrumbProps } from '@/components/breadcrumb';\nimport { Icon } from '@/components/icon';\n\nimport './breadcrumb-desktop.scss';\n\nexport const BreadcrumbDesktop: FC<BreadcrumbProps> = ({ items = [], darkMode, ...props }) => {\n const generatedId = useId();\n\n const ariaLabel = props['aria-label'] ?? 'Breadcrumb';\n\n const BreadcrumbClassName = classNames(props.className, 'agora-breadcrumb-desktop');\n const iconClassName = classNames('mx-[4px]', {\n 'fill-white': darkMode,\n 'fill-[var(--color-neutral-900)]': !darkMode\n });\n\n return (\n <nav className={BreadcrumbClassName} aria-label={ariaLabel}>\n <ol className=\"flex gap-y-8 flex-wrap items-center\">\n {items.map((link, index) => {\n const key = `${generatedId}-${index}`;\n\n return (\n <li key={key} className=\"flex flex-row items-center\">\n {index !== 0 && <Icon name=\"agora-line-chevron-right\" dimensions=\"m\" aria-hidden=\"true\" className={iconClassName} />}\n {index === items.length - 1 || !link.url ? (\n <span aria-current=\"page\">{link.label}</span>\n ) : (\n <Anchor darkMode={darkMode} variant=\"neutral\" appearance=\"text\" href={link.url} className=\"text-s-regular\">\n {link.label}\n </Anchor>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import React, { FC, KeyboardEvent as ReactKeyboardEvent, useEffect, useId, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { stringToBoolean } from '@/utils';\n\nimport { Anchor } from '@/components/anchor';\nimport { Button } from '@/components/button';\nimport { BreadcrumbProps } from '@/components/breadcrumb';\n\nimport './breadcrumb-mobile.scss';\n\nexport const BreadcrumbMobile: FC<BreadcrumbProps> = ({ sectionTitle, items = [], darkMode, ...props }) => {\n const generatedId = useId();\n const [isExpanded, setIsExpanded] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const listRef = useRef<HTMLOListElement>(null);\n const BreadcrumbClassName = classNames(props.className, 'agora-breadcrumb-mobile');\n\n const ariaLabel = props['aria-label'] ?? 'Breadcrumb';\n\n /**\n * Function used to close the breadcrumb menu.\n */\n const closeMenuClickHandler = (evt: MouseEvent) => {\n if (listRef?.current && evt.target && !listRef.current.contains(evt.target as HTMLElement)) {\n setIsExpanded(false);\n }\n };\n\n const handleTabKey = (evt: ReactKeyboardEvent<HTMLAnchorElement>) => {\n const linkList = listRef.current?.querySelectorAll('a');\n const target = evt.target as HTMLAnchorElement;\n const liParentNode = target.parentNode as HTMLLIElement;\n\n if (evt.shiftKey) {\n const firstLiChild = linkList?.[0].parentNode as HTMLLIElement;\n if (firstLiChild === liParentNode) {\n evt.preventDefault();\n if (linkList) {\n linkList[linkList.length - 1]?.focus();\n }\n }\n } else {\n const lastLiWithChildAnchor = linkList?.[linkList.length - 1].parentNode as HTMLLIElement;\n if (lastLiWithChildAnchor === liParentNode) {\n evt.preventDefault();\n if (linkList) {\n linkList[0]?.focus();\n }\n }\n }\n };\n\n /**\n * Function used to set Keyboard Keydown Behavior.\n */\n const setKeyboardKeydownBehavior = (evt: ReactKeyboardEvent<HTMLAnchorElement>) => {\n if (evt.key === 'Escape' || evt.key === 'Esc') {\n setIsExpanded(false);\n buttonRef.current?.focus();\n }\n\n if (evt.key === 'Tab') {\n handleTabKey(evt);\n }\n\n if (evt.key === 'Enter') {\n setIsExpanded(false);\n }\n };\n\n /**\n * Used to setup the Event Listeners (mouse and keyboard).\n */\n useEffect(() => {\n if (isExpanded) {\n document.addEventListener('mousedown', closeMenuClickHandler);\n\n /**\n * Focus the first link when opening the menu.\n */\n const firstLink = listRef.current?.querySelectorAll('a');\n if (firstLink) {\n firstLink[0]?.focus();\n }\n }\n\n return () => {\n document.removeEventListener('mousedown', closeMenuClickHandler);\n };\n }, [isExpanded]);\n\n /**\n * Function used to Expand the breadcrumb Menu.\n */\n const expandMenu = () => {\n setIsExpanded((expanded) => {\n return !expanded;\n });\n };\n\n return (\n <nav aria-label={ariaLabel} className={BreadcrumbClassName}>\n <Button\n type=\"button\"\n ref={buttonRef}\n aria-expanded={isExpanded}\n aria-controls={`agora-mobile-breadcrumb-menu-${generatedId}`}\n onClick={expandMenu}\n hasIcon\n leadingIcon=\"agora-line-chevron-left\"\n leadingIconHover=\"agora-solid-chevron-left\"\n appearance=\"link\"\n variant=\"neutral\"\n darkMode={stringToBoolean(darkMode)}\n >\n {items.at(-1)?.label}\n </Button>\n\n <ol id={`agora-mobile-breadcrumb-menu-${generatedId}`} className={`${!isExpanded ? 'hidden' : 'flex'}`} ref={listRef}>\n {sectionTitle && (\n <li>\n <p className=\"[&>*]:text-s-semibold text-s-semibold [&>*]:text-[var(--color-neutral-500)] text-[var(--color-neutral-500)]\">\n {sectionTitle}\n </p>\n </li>\n )}\n {items.map((link, index) => {\n const id = `agora-mobile-breadcrumb-link-${generatedId}${index}`;\n\n if (index === items.length - 1 || !link.url) {\n return (\n <li id={id} key={id}>\n <span aria-current=\"page\" className=\"inline-flex items-center min-h-[44px]\">\n {link.label}\n </span>\n </li>\n );\n }\n\n return (\n <li id={id} key={id}>\n <Anchor variant=\"neutral\" appearance=\"link\" href={link.url} onKeyDown={setKeyboardKeydownBehavior}>\n {link.label}\n </Anchor>\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import React, { FC, HTMLProps, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport { BreadcrumbDesktop } from './desktop/breadcrumb-desktop';\nimport { BreadcrumbMobile } from './mobile/breadcrumb-mobile';\n\nexport interface BreadcrumbLink {\n /**\n * The Breadcrumb page link url.\n */\n url: string;\n /**\n * The Breadcrumb page link label.\n */\n label: ReactNode;\n}\n\nexport interface BreadcrumbProps extends HTMLProps<HTMLDivElement> {\n /**\n * The links that make up the breadcrumb in hierarchical order.\n */\n items: BreadcrumbLink[];\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * Section title. Only visible on mobile resolutions.\n */\n sectionTitle?: ReactNode;\n}\n\nexport const Breadcrumb: FC<BreadcrumbProps> = ({ items = [], ...props }) => {\n const baseClasses = classNames('agora-breadcrumb', props.className, {\n 'bg-[var(--color-primary-900)] dark-mode': stringToBoolean(props.darkMode)\n });\n\n const desktopBreadcrumbClassnames = classNames(baseClasses, 'xs:hidden xl:flex');\n const mobileBreadcrumbClassnames = classNames(baseClasses, 'xs:flex xl:hidden');\n\n return (\n <>\n <BreadcrumbDesktop {...props} items={items} className={desktopBreadcrumbClassnames} />\n <BreadcrumbMobile {...props} items={items} className={mobileBreadcrumbClassnames} />\n </>\n );\n};\n","import classNames from 'classnames';\nimport React, { Children, cloneElement, FC, HtmlHTMLAttributes, isValidElement, ReactElement, useId, useMemo, useState } from 'react';\nimport { BooleanProp } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\nimport { ButtonProps, ButtonVariant } from '@/components/button';\nimport './button-group.scss';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\nexport interface ButtonGroupProps extends Omit<HtmlHTMLAttributes<HTMLDivElement>, 'onChange'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * The variant of the buttons. This variants will define the background and border color of the given Button.\n */\n variant?: ButtonVariant;\n /**\n *Defines if the button should be fluid.\n */\n fullWidth?: BooleanProp;\n /**\n * Group name\n */\n name?: string;\n /**\n * List of button components to use as children of the group.\n */\n children?: ReactElement<ButtonProps> | Array<ReactElement<ButtonProps>>;\n /**\n * Event triggered whenever any of the buttons changes is own state.\n */\n onChange?: (selectedButtons: Array<ReactElement<ButtonProps>>) => void;\n /**\n * Defines if the group allows multiple selection.\n */\n multiple?: BooleanProp;\n\n /**\n * Defines vertical or horizontal orientation.\n */\n orientation?: ButtonGroupOrientation;\n}\nconst ButtonGroup: FC<ButtonGroupProps> = ({\n variant = 'primary',\n multiple,\n fullWidth = false,\n onChange,\n children,\n darkMode,\n orientation = 'horizontal',\n ...props\n}) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [selectedButtonIndexes, setSelectedButtonIndexes] = useState<number[]>([]);\n\n const childrenButtons: Array<ReactElement<ButtonProps>> = useMemo(() => {\n const ret: Array<ReactElement<ButtonProps>> = [];\n\n if (Array.isArray(children)) {\n children.forEach((child, index) => {\n if (isValidElement<ButtonProps>(child)) {\n if (child.props.selected) {\n setSelectedButtonIndexes((last) => {\n if (multiple) {\n const rawIndexes = [...last, index];\n return [...new Set(rawIndexes)];\n }\n\n return [index];\n });\n }\n\n ret.push(child);\n }\n });\n } else if (isValidElement<ButtonProps>(children)) {\n setSelectedButtonIndexes([0]);\n ret.push(children);\n }\n\n return ret;\n }, [children, setSelectedButtonIndexes, multiple]);\n\n const handleButtonClick = (index: number) => {\n const newSelectedButtonIndexes = [...selectedButtonIndexes];\n if (stringToBoolean(multiple)) {\n const isSelected = selectedButtonIndexes.includes(index);\n if (isSelected) {\n const buttonIndex = newSelectedButtonIndexes.indexOf(index);\n newSelectedButtonIndexes.splice(buttonIndex, 1);\n } else {\n newSelectedButtonIndexes.push(index);\n }\n } else {\n const isSelected = selectedButtonIndexes.length > 0 && selectedButtonIndexes[0] === index;\n if (isSelected) {\n newSelectedButtonIndexes.splice(0, 1);\n } else {\n newSelectedButtonIndexes.splice(0, newSelectedButtonIndexes.length, index);\n }\n }\n\n setSelectedButtonIndexes(newSelectedButtonIndexes);\n\n if (onChange) {\n const selectedButtons = childrenButtons.filter((_, indx) => newSelectedButtonIndexes.includes(indx));\n asyncTrigger(() => onChange(selectedButtons));\n }\n };\n\n const buttonGroupClasses = classNames(\n 'button-group',\n propsClone.className,\n orientation,\n { full: stringToBoolean(fullWidth) },\n { darkMode: stringToBoolean(darkMode) }\n );\n\n return (\n <div className=\"agora-button-group\">\n {/* button group */}\n <div {...propsClone} className={buttonGroupClasses} role=\"group\" aria-label={propsClone.name} id={propsClone.id}>\n {Children.map(childrenButtons, (child, index) => {\n const isSelected = selectedButtonIndexes.includes(index);\n\n return cloneElement<ButtonProps>(child, {\n ...child.props,\n 'id': child.props.id ?? `${propsClone.id}-button-${index}`,\n 'variant': variant,\n 'appearance': 'outline',\n 'onClick': (evt) => {\n handleButtonClick(index);\n child.props.onClick?.(evt);\n },\n 'selected': isSelected,\n 'darkMode': stringToBoolean(darkMode),\n 'aria-pressed': isSelected ? 'true' : 'false'\n } as ButtonProps);\n })}\n </div>\n </div>\n );\n};\n\nexport { ButtonGroup };\n","import React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport './pill.scss';\n\n/**\n * The available variants of the pill. This variants will define the background and border color of the pill.\n */\nexport type PillVariant = 'primary' | 'secondary' | 'secondary-light' | 'neutral' | 'informative' | 'success' | 'warning' | 'danger';\n\n/**\n * The available pill appearances. Defines the pill shape.\n */\nexport type PillAppearance = 'solid' | 'outline';\n\n/**\n * The available pill size. Defines the pill size.\n */\nexport type PillSize = 'default' | 'large';\n\nexport interface PillProps extends ComponentPropsWithRef<'div'> {\n /**\n * The pill appearance. Define the pill Shape.\n */\n appearance?: PillAppearance;\n /**\n * The variant of the pill. This variants will define the background and border color of the given Pill\n */\n variant?: PillVariant;\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Pill or Circular pill style\n */\n circular?: BooleanProp;\n /**\n * Size of pill\n */\n size?: PillSize;\n}\n\nexport const Pill: FC<PillProps> = ({\n appearance = 'solid',\n variant = 'primary',\n children,\n className = '',\n circular = false,\n size = 'default',\n ...props\n}) => {\n /**\n * Building pill class name dynamically according parameters.\n */\n const pillClassName = classNames(\n {\n 'inline-flex items-center justify-center': !props.hidden,\n 'agora-pill-circular': stringToBoolean(circular),\n 'agora-pill-large': size === 'large'\n },\n\n `agora-pill agora-pill-${appearance}-${variant}`,\n className\n );\n\n return (\n <span className={pillClassName} {...props}>\n <span className=\"children-wrapper\">{children}</span>\n </span>\n );\n};\n","import { RefObject, useEffect } from 'react';\n\nexport interface IUseBlockedLink {\n parentCardRef: RefObject<HTMLDivElement | null>;\n anchorRef: RefObject<HTMLAnchorElement | null>;\n blockedLink?: boolean;\n}\n\nconst useBlockedLink = ({ parentCardRef, anchorRef, blockedLink = false }: IUseBlockedLink) => {\n const activateLink = () => {\n if (anchorRef.current) {\n const event = new MouseEvent('click', {\n detail: 1\n });\n\n anchorRef.current?.dispatchEvent(event);\n }\n };\n\n const onClickCaptureHandler = (evt: MouseEvent) => {\n if (!blockedLink) {\n return;\n }\n\n const target = evt.target as HTMLElement;\n if (target.tagName !== 'A' && !target.matches('a *')) {\n // Is blocked link\n // Is not an anchor nor a child of an anchor\n // Trigger main link\n\n evt.stopPropagation();\n evt.preventDefault();\n activateLink();\n }\n };\n\n const onMouseEnterHandler = () => {\n if (blockedLink) {\n const anchorElement = anchorRef?.current as HTMLAnchorElement;\n if (anchorElement) {\n anchorElement.classList.add('hover');\n }\n }\n };\n\n const onMouseLeaveHandler = () => {\n if (blockedLink) {\n const anchorElement = anchorRef?.current as HTMLAnchorElement;\n if (anchorElement) {\n anchorElement.classList.remove('hover');\n }\n }\n };\n\n useEffect(() => {\n const anchorElement = anchorRef?.current as HTMLAnchorElement;\n const parentCardElem = parentCardRef?.current as HTMLDivElement;\n\n if (parentCardElem && anchorElement) {\n if (blockedLink) {\n parentCardElem.classList.add('blocked-link');\n parentCardElem.addEventListener('click', onClickCaptureHandler, true);\n parentCardElem.addEventListener('mouseenter', onMouseEnterHandler);\n parentCardElem.addEventListener('mouseover', onMouseEnterHandler);\n parentCardElem.addEventListener('mouseleave', onMouseLeaveHandler);\n } else {\n parentCardElem.classList.remove('blocked-link');\n parentCardElem.removeEventListener('click', onClickCaptureHandler, true);\n parentCardElem.removeEventListener('mouseenter', onMouseEnterHandler);\n parentCardElem.removeEventListener('mouseleave', onMouseLeaveHandler);\n }\n }\n\n return () => {\n if (parentCardElem) {\n parentCardElem.classList.remove('blocked-link');\n parentCardElem.removeEventListener('click', onClickCaptureHandler, true);\n parentCardElem.removeEventListener('mouseenter', onMouseEnterHandler);\n parentCardElem.addEventListener('mouseover', onMouseEnterHandler);\n parentCardElem.removeEventListener('mouseleave', onMouseLeaveHandler);\n }\n };\n }, [parentCardRef, anchorRef, blockedLink]);\n};\n\nexport { useBlockedLink };\n","import { Anchor, AnchorProps } from '@/components/anchor';\nimport { Pill, PillVariant } from '@/components/pill';\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ImgHTMLAttributes, ReactNode, useRef } from 'react';\nimport { useBlockedLink } from '../shared/use-blocked-link';\nimport './card-article.scss';\n\nexport type CardArticleVariant = 'default' | 'indented';\n\nexport interface CardArticleProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Defines if the card is indented.\n */\n variant?: CardArticleVariant;\n /**\n * Image card to draw in the card if specified.\n */\n image?: ImgHTMLAttributes<HTMLImageElement>;\n /**\n * Pill label to be draw if specified.\n */\n pillLabel?: ReactNode;\n /**\n * The pill variant.\n */\n pillVariant?: PillVariant;\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * Title of the card.\n */\n title?: ReactNode;\n /**\n * Subtitle of the card.\n */\n subtitle?: ReactNode;\n /**\n * Definition of the anchor to be draw if specified.\n */\n mainAnchor?: AnchorProps;\n /**\n * Makes the whole card clickable and activates the link.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardArticle: FC<CardArticleProps> = ({\n pillLabel,\n pillVariant = 'primary',\n mainAnchor,\n blockedLink = false,\n children,\n image,\n headingLevel: Heading = 'h3',\n title,\n subtitle,\n variant = 'default',\n className,\n ...props\n}) => {\n const cardArticleRef = useRef<HTMLDivElement | null>(null);\n const cardArticleAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle,\n children: !title && !subtitle && !!children,\n pill: !title && !subtitle && !children && !!pillLabel,\n anchor: !title && !subtitle && !children && !pillLabel && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n title: false,\n subtitle: false,\n children: false,\n pill: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.title = !!title;\n anchorPlacement.subtitle = !title && !!subtitle;\n anchorPlacement.children = !title && !subtitle && !!children;\n anchorPlacement.pill = !title && !subtitle && !children && !!pillLabel;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" ref={cardArticleAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" ref={cardArticleAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n\n useBlockedLink({\n parentCardRef: cardArticleRef,\n anchorRef: cardArticleAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const cardClassNames = classNames(\n 'agora-card-article',\n { indented: variant === 'indented' },\n { default: variant === 'default' },\n className,\n { 'has-image': !!image }\n );\n\n const anchorContainerClassNames = classNames('anchor-container', { 'icon-only': mainAnchorClone?.iconOnly });\n\n return (\n <div {...props} role=\"presentation\" ref={cardArticleRef} className={cardClassNames}>\n {image && (\n <div className=\"container-image w-full\">\n <img src={image.src} className=\"card-image w-full\" alt={image.alt} />\n </div>\n )}\n\n <div className=\"container-body\">\n {pillLabel && (\n <div className=\"pill-container\">\n <Pill size=\"default\" appearance=\"solid\" variant={pillVariant}>\n {buildText(pillLabel, mainAnchorClone, anchorPlacement.pill, headingPlacement.pill)}\n </Pill>\n </div>\n )}\n\n {subtitle && (\n <div className=\"subtitle-container\">\n {buildText(subtitle, mainAnchorClone, anchorPlacement.subtitle, headingPlacement.subtitle)}\n </div>\n )}\n\n {title && <div className=\"title-container\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>}\n\n {children && (\n <div className=\"children-container\">\n {buildText(children, mainAnchorClone, anchorPlacement.children, headingPlacement.children)}\n </div>\n )}\n\n {anchorPlacement.anchor && (\n <div className={anchorContainerClassNames}>\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import React, { ComponentPropsWithoutRef, FC, ReactNode, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { useBlockedLink } from '../shared/use-blocked-link';\n\nimport './card-collection.scss';\n\nexport interface CardCollectionProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * Card Collection heading level title.\n */\n headingLevel: HeadingLevel;\n /**\n * Defines the subtitle\n */\n subtitle?: ReactNode;\n /**\n * Defines the title\n */\n title?: ReactNode;\n /**\n * Anchor props.\n */\n mainAnchor?: AnchorProps;\n /**\n * Defines blockedLink prop.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardCollection: FC<CardCollectionProps> = ({\n headingLevel: Heading = 'h3',\n subtitle,\n title,\n mainAnchor,\n blockedLink = false,\n className,\n ...props\n}) => {\n const cardCollectionRef = useRef<HTMLDivElement | null>(null);\n\n const cardCollectionAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const CardCollectionClass = classNames('agora-card-collection', className);\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle,\n anchor: !title && !subtitle && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n title: false,\n subtitle: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.title = !!title;\n anchorPlacement.subtitle = !title && !!subtitle;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} variant=\"neutral\" darkMode appearance=\"link\" ref={cardCollectionAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} variant=\"neutral\" darkMode appearance=\"link\" ref={cardCollectionAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n\n useBlockedLink({\n parentCardRef: cardCollectionRef,\n anchorRef: cardCollectionAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const anchorContainerClassNames = classNames('anchor-container', { 'icon-only': mainAnchorClone?.iconOnly });\n\n return (\n <div {...props} role=\"presentation\" ref={cardCollectionRef} className={CardCollectionClass}>\n <div className=\"card-info\">\n {subtitle && (\n <div className=\"subtitle-container\">\n {buildText(subtitle, mainAnchorClone, anchorPlacement.subtitle, headingPlacement.subtitle)}\n </div>\n )}\n\n {title && <div className=\"title-container\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>}\n\n {anchorPlacement.anchor && (\n <div className={anchorContainerClassNames}>\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n <div className=\"custom-svg-container -z-10 absolute top-0 left-0 min-w-full min-h-full w-full h-full flex justify-center items-center bg-[var(--color-primary-900)] xs:py-0 md:py-64 xl:py-128\">\n <svg\n className=\"custom-svg\"\n width=\"100%\"\n height=\"100%\"\n viewBox=\"0 0 384 378\"\n aria-hidden\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n >\n <g opacity=\"0.04\" stroke=\"white\" strokeWidth=\"24\" strokeMiterlimit=\"9.56677\" strokeLinecap=\"round\">\n <path d=\"M-436 189.113C-237.528 189.113 -202.994 271.214 -118.581 252.744C-42.7446 236.151 30.3181 89.0689 81.1009 93.8569C133.588 98.8049 4.82279 267.863 60.1717 290.185C105.121 308.314 250.971 -0.840043 299.676 13.483C357.976 30.624 189.186 355.513 249.579 364.748C308.959 373.827 348.241 135.047 419.085 122.245C483.27 110.647 497 189.113 742 189.113\" />\n </g>\n </svg>\n </div>\n </div>\n );\n};\n","import React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Button, ButtonProps } from '@/components/button';\nimport { Icon, IconProps } from '@/components/icon';\n\nimport './card-emphasize.scss';\n\n/**\n * The available alignments of the card emphasize.\n */\nexport type CardEmphasizeAlignment = 'left' | 'center' | 'right';\n\nexport interface CardEmphasizeProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * Definition of the icon to use in the card.\n */\n icon?: IconProps;\n /**\n * The card title.\n */\n title?: ReactNode;\n /**\n * The card description.\n */\n description?: ReactNode;\n /**\n * Card main button definition.\n */\n mainButton?: ButtonProps;\n /**\n * Apply the alignment specified in all card content.\n */\n alignment?: CardEmphasizeAlignment;\n}\n\nexport const CardEmphasize: FC<CardEmphasizeProps> = ({\n icon,\n title,\n description,\n mainButton,\n alignment = 'left',\n className,\n ...props\n}) => {\n const cardEmphasizeClasseNames = classNames('agora-card-emphasize', `card-${alignment}`, className);\n\n const iconProps = {\n ...icon,\n className: classNames('card-emphasize-icon', icon?.className)\n };\n\n const buttonProps = {\n ...mainButton,\n className: classNames('card-emphasize-button', mainButton?.className)\n } as ButtonProps;\n\n return (\n <div {...props} role=\"presentation\" className={cardEmphasizeClasseNames}>\n {icon && <Icon {...iconProps} />}\n {title && <div className=\"card-emphasize-title\">{title}</div>}\n {description && <div className=\"card-emphasize-description\">{description}</div>}\n {mainButton && <Button {...buttonProps} />}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\n\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport './link-wrapper.scss';\n\nexport type LinkWrapperAppearance = 'link' | 'text';\n\nexport type LinkWrapperVariant = 'primary' | 'informative' | 'neutral' | 'success' | 'warning' | 'danger';\n\nexport interface LinkWrapperProps extends Omit<ComponentPropsWithRef<'span'>, 'children'> {\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * The anchor appearance. Define the anchor Shape.\n */\n appearance?: LinkWrapperAppearance;\n /**\n * The variant of the anchor. This variants will define the background and border color of the given Anchor\n */\n variant?: LinkWrapperVariant;\n /**\n * Defines if the anchor should be fluid\n */\n fullWidth?: BooleanProp;\n /**\n * Defines if anchor is inline text or not. An inline element does not start on a new line and takes up as much width as necessary. See https://www.w3schools.com/html/html_blocks.asp.\n */\n inline?: BooleanProp;\n /**\n * Children anchor.\n */\n children?: ReactNode;\n /**\n * Data attributes\n */\n [dataAttribute: `data-${string}`]: string;\n}\n\nconst LinkWrapper: FC<LinkWrapperProps> = ({\n darkMode = false,\n appearance = 'text',\n variant = 'primary',\n fullWidth = false,\n children,\n className = '',\n inline = false,\n ...props\n}) => {\n const anchorContainerClassName = classNames(\n 'agora-link-wrapper',\n `agora-link-wrapper-${appearance}-${variant}`,\n { 'dark-mode': stringToBoolean(darkMode) },\n\n { 'full-width': fullWidth },\n\n { 'inline-flex items-center': !props.hidden },\n { 'justify-center min-h-[44px] min-w-[44px] py-8': !stringToBoolean(inline) },\n { 'justify-start': stringToBoolean(inline) },\n\n className\n );\n\n return (\n <span {...props} className={anchorContainerClassName}>\n {children}\n </span>\n );\n};\n\nexport { LinkWrapper };\n","import React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { LinkWrapper } from '@/components/link-wrapper';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport './card-error.scss';\n\nexport interface CardErrorProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * The card icon.\n */\n icon?: ReactNode;\n /**\n * The title of the card.\n */\n title?: ReactNode;\n /**\n * The subtitle of the card.\n */\n subtitle?: ReactNode;\n /**\n * The description of the card.\n */\n description?: ReactNode;\n /**\n * Navigation link used to go back from the error page. It can be a native anchor or any other type of link (example: NextJS link, ReactRouter Link, etc...).\n */\n backLink?: ReactNode;\n /**\n * The status message of the card.\n */\n statusCodeMessage?: ReactNode;\n /**\n * The dark mode of the card.\n */\n darkMode?: BooleanProp;\n}\n\nexport const CardError: FC<CardErrorProps> = ({\n icon,\n title,\n subtitle,\n description,\n backLink,\n statusCodeMessage,\n darkMode = false,\n className = '',\n ...props\n}) => {\n const CardLinksClasses = classNames('card-error', stringToBoolean(darkMode) ? 'dark' : 'default', className);\n\n return (\n <div className={CardLinksClasses} {...props}>\n {icon && <div className=\"icon-container\">{icon}</div>}\n {title && <div className=\"title\">{title}</div>}\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n {description && <div className=\"description\">{description}</div>}\n {backLink && (\n <div className=\"go-back\">\n <LinkWrapper darkMode={stringToBoolean(darkMode)} variant={stringToBoolean(darkMode) ? 'neutral' : 'primary'}>\n {backLink}\n </LinkWrapper>\n </div>\n )}\n {statusCodeMessage && <div className=\"status-code-message\">{statusCodeMessage}</div>}\n </div>\n );\n};\n","import React, { HTMLProps } from 'react';\n\nexport const BookmarkIcon = (props: HTMLProps<SVGSVGElement>) => {\n const newProps = { ...props };\n delete newProps.alt;\n delete newProps.title;\n\n return (\n <svg width=\"24\" height=\"32\" viewBox=\"0 0 24 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...newProps} role=\"img\">\n {props.title && <title>{props.title}</title>}\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.923077 0C0.413276 0 0 0.421379 0 0.941176V31.0588C0 31.4134 0.195426 31.7379 0.505561 31.8982C0.815697 32.0586 1.18791 32.0276 1.46846 31.8182L12 23.9544L22.5315 31.8182C22.8121 32.0276 23.1843 32.0586 23.4944 31.8982C23.8046 31.7379 24 31.4134 24 31.0588V0.941176C24 0.421379 23.5867 0 23.0769 0H0.923077Z\"\n fill=\"#BBD1FD\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.923077 0C0.413276 0 0 0.421379 0 0.941176V5.64706H24V0.941176C24 0.421379 23.5867 0 23.0769 0H0.923077Z\"\n fill=\"#034AD8\"\n />\n </svg>\n );\n};\n","import { AccordionProps } from '@/components/accordion';\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, {\n Children,\n cloneElement,\n ComponentPropsWithoutRef,\n FC,\n isValidElement,\n ReactElement,\n ReactNode,\n useId,\n useState\n} from 'react';\nimport './card-expandable.scss';\nimport { BookmarkIcon } from '@/components/shared/bookmark-icon/bookmark-icon';\n\nexport interface CardExpandableProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * Heading level to apply in the card.\n */\n headingLevel: HeadingLevel;\n /**\n * Card title.\n */\n title?: ReactNode;\n /**\n * Card icon.\n */\n showBookmarkIcon?: BooleanProp;\n /**\n * Children content.\n */\n children: ReactElement<AccordionProps>;\n}\n\nexport const CardExpandable: FC<CardExpandableProps> = ({\n headingLevel: Component = 'h3',\n title,\n showBookmarkIcon,\n children,\n className = '',\n ...props\n}) => {\n const generatedAccordionId = useId();\n\n const [isExpanded, setIsExpanded] = useState(false);\n\n const CardExpandableClasses = classNames('agora-card-expandable', className, { 'is-opened': isExpanded });\n\n const onExpandedHandler = () => {\n setIsExpanded(true);\n };\n\n const onCollapsedHandler = () => {\n setIsExpanded(false);\n };\n\n const mappedChildren: ReactElement<AccordionProps>[] = [];\n\n Children.forEach(children, (child, index) => {\n const id = `accordion-group-${generatedAccordionId}-accordion-${index}`;\n\n if (!isValidElement(child)) {\n return;\n }\n const clonedElement = cloneElement<AccordionProps>(child, {\n ...child.props,\n key: id,\n onExpanded: (evt) => {\n child.props.onExpanded?.(evt);\n onExpandedHandler();\n },\n onCollapsed: (evt) => {\n child.props.onCollapsed?.(evt);\n onCollapsedHandler();\n }\n });\n\n mappedChildren.push(clonedElement);\n });\n\n return (\n <div className={CardExpandableClasses} {...props}>\n {stringToBoolean(showBookmarkIcon) && <BookmarkIcon className=\"card-expandable-icon\" aria-hidden />}\n\n {title && (\n <div className=\"card-expandable-header\">\n <Component className=\"header-title\">{title}</Component>\n </div>\n )}\n {mappedChildren}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode, useRef } from 'react';\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { useBlockedLink } from '../shared/use-blocked-link';\nimport './card-frame.scss';\n\nexport interface CardFrameProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Heading level to apply in the card.\n */\n headingLevel: HeadingLevel;\n /**\n * Label header.\n */\n label: ReactNode;\n /**\n * Definition of the anchor to be draw if specified.\n */\n mainAnchor?: AnchorProps;\n /**\n * Makes the whole card clickable and activates the link.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardFrame: FC<CardFrameProps> = ({\n className,\n label,\n headingLevel: Heading = 'h3',\n mainAnchor,\n blockedLink = false,\n children,\n ...props\n}) => {\n const cardFrameRef = useRef<HTMLDivElement | null>(null);\n const cardFrameAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const cardFrameClassNames = classNames('agora-card-frame', className);\n\n const headingPlacement = {\n label: !!label,\n children: !label && !!children,\n anchor: !label && !children && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n label: false,\n children: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.leadingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.leadingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.label = !!label;\n anchorPlacement.children = !label && !!children;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" ref={cardFrameAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" ref={cardFrameAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n\n useBlockedLink({\n parentCardRef: cardFrameRef,\n anchorRef: cardFrameAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const cardFrameContainerClass = classNames('container-body', { 'anchor-icon-only': mainAnchor?.iconOnly }, className);\n\n return (\n <div {...props} ref={cardFrameRef} role=\"presentation\" className={cardFrameClassNames}>\n <div className={cardFrameContainerClass}>\n {label && <div className=\"label-container\">{buildText(label, mainAnchorClone, anchorPlacement.label, headingPlacement.label)}</div>}\n\n {children && (\n <div className=\"children-container\">\n {buildText(children, mainAnchorClone, anchorPlacement.children, headingPlacement.children)}\n </div>\n )}\n\n {anchorPlacement.anchor && (\n <div className=\"anchor-container\">\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import React, { ComponentPropsWithoutRef, FC, ImgHTMLAttributes, ReactElement } from 'react';\n\nimport classNames from 'classnames';\n\nimport { CardHeroHelperProps } from '@/components/cards/card-hero-helper';\nimport { CardHeroIndexProps } from '@/components/cards/card-hero-index';\nimport { CardHeroSitemapProps } from '@/components/cards/card-hero-sitemap';\n\nimport './card-full-image.scss';\n\nexport interface CardFullImageProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Children content.\n */\n children: ReactElement<CardHeroSitemapProps | CardHeroIndexProps | CardHeroHelperProps>;\n /**\n * The image to be displayed.\n */\n image: ImgHTMLAttributes<HTMLImageElement>;\n}\n\nexport const CardFullImage: FC<CardFullImageProps> = ({ image, ...props }) => {\n const cardFullImageClassName = classNames('agora-card-full-image', props.className);\n\n return (\n <div className={cardFullImageClassName} {...props}>\n <div className=\"card-background\">\n <div className=\"card-image-container\">\n <img className=\"card-image\" src={image.src} alt={image.alt} aria-hidden={image['aria-hidden'] ?? true} />\n </div>\n </div>\n <div className=\"card-content\">\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-x-32\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-5 xl:col-start-7\">{props.children}</div>\n </div>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode, useId } from 'react';\nimport { HeadingLevel } from '@/models';\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport './card-hero-helper.scss';\n\nexport interface HelpTopic {\n description: ReactNode;\n anchor: AnchorProps;\n}\n\nexport interface CardHeroHelperProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * header title.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The subtitle of the card\n */\n subtitle?: ReactNode;\n /**\n * The list of help topics of the card\n */\n helpTopics?: HelpTopic[];\n}\n\nexport const CardHeroHelper: FC<CardHeroHelperProps> = ({\n subtitle,\n headingLevel: Heading = 'h2',\n title,\n helpTopics = [],\n className,\n ...props\n}) => {\n const generatedId = useId();\n\n const CardHeroHelperClasses = classNames('agora-card-hero-helper', className);\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={CardHeroHelperClasses} {...props}>\n {(subtitle || title) && (\n <div className=\"flex gap-8 flex-col\">\n {subtitle && <div className=\"subtitle-container\">{buildText(subtitle, headingPlacement.subtitle)}</div>}\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n </div>\n )}\n\n {helpTopics.length > 0 && (\n <ul className=\"flex flex-col justify-start items-start gap-32\">\n {helpTopics?.map((block, index) => {\n const key = `card-hero-helper-${generatedId}-description-block-${index}`;\n return (\n <li key={key} className=\"flex flex-col gap-16 justify-start items-start\">\n <div>{block.description}</div>\n <Anchor {...block?.anchor} />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n};\n","import React, { ComponentPropsWithoutRef, FC, ReactNode, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { HeadingLevel } from '@/models';\n\nimport './card-hero-index.scss';\n\nexport interface CardHeroIndexProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * The title of the card.\n */\n title?: ReactNode;\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * The list of anchor props that makes up the index.\n */\n index: AnchorProps[];\n}\n\nexport const CardHeroIndex: FC<CardHeroIndexProps> = ({ title, headingLevel: Heading = 'h3', index = [], className, ...props }) => {\n const generatedId = useId();\n\n const CardExpandableClasses = classNames('agora-card-hero-index', className);\n\n return (\n <div className={CardExpandableClasses} {...props}>\n {title && <Heading className=\"card-hero-index-title\">{title}</Heading>}\n\n {index.length > 0 && (\n <ul className=\"index-list\">\n {index.map((cardIndex, idx) => {\n const key = `card-index-${generatedId}-index-item-${idx}`;\n return (\n <li key={key}>\n <Anchor {...cardIndex} appearance=\"link\" variant=\"neutral\">\n {cardIndex.children}\n </Anchor>\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n};\n","import React, { ComponentPropsWithoutRef, FC, ReactNode, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { HeadingLevel } from '@/models';\n\nimport './card-hero-sitemap.scss';\n\nexport interface CardHeroSitemapProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * Header title.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The list of anchor props that makes up the index.\n */\n anchors: AnchorProps[];\n /**\n * The anchor props that makes up the highlighted link.\n */\n highlightedLink?: AnchorProps;\n}\n\nexport const CardHeroSitemap: FC<CardHeroSitemapProps> = ({\n description,\n headingLevel: Heading = 'h2',\n title,\n anchors = [],\n highlightedLink,\n className,\n ...props\n}) => {\n const generatedId = useId();\n const arrayLink = anchors.slice(0, 5);\n\n const CardHeroSitemapClasses = classNames('agora-card-hero-sitemap', className);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={CardHeroSitemapClasses} {...props}>\n {(title || description) && (\n <div className=\"flex gap-8 flex-col text-l-semibold\">\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n {description && <div className=\"description-container\">{buildText(description, headingPlacement.description)}</div>}\n </div>\n )}\n\n {arrayLink.length > 0 && (\n <ul className=\"flex flex-col justify-start items-start gap-8\">\n {arrayLink?.map((link, index) => {\n const key = `card-hero-sitemap-${generatedId}-description-block-${index}`;\n return (\n <li key={key}>\n <Anchor {...link} />\n </li>\n );\n })}\n </ul>\n )}\n\n {highlightedLink && (\n <Anchor\n appearance=\"link\"\n {...highlightedLink}\n hasIcon={highlightedLink.hasIcon ?? true}\n trailingIcon={highlightedLink.trailingIcon ?? 'agora-line-arrow-right-circle'}\n trailingIconHover={highlightedLink.trailingIcon ?? 'agora-line-arrow-right-circle'}\n {...(!highlightedLink?.children && { className: '!block' })}\n />\n )}\n </div>\n );\n};\n","import { useEffect, useState } from 'react';\n\nconst useWindowSize = () => {\n const [width, setWidth] = useState(1920);\n const [height, setHeight] = useState(1080);\n\n useEffect(() => {\n let isMounted = true;\n\n const listener = () => {\n if (isMounted) {\n setWidth(window.innerWidth);\n setHeight(window.innerHeight);\n }\n };\n\n window.addEventListener('resize', listener);\n\n listener();\n\n return () => {\n isMounted = false;\n window.removeEventListener('resize', listener);\n };\n }, []);\n\n return {\n width,\n height\n };\n};\n\nexport { useWindowSize };\n","import React, { ComponentPropsWithRef, FC, ReactNode, useId } from 'react';\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { HeadingLevel } from '@/models';\n\nimport './inner-highlight-card.scss';\n\nexport interface InnerHighlightCardProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * header title.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * The subtitle of the card\n */\n subtitle?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The list of links of the card\n */\n links: AnchorProps[];\n}\n\nexport const InnerHighlightCard: FC<InnerHighlightCardProps> = ({\n title,\n subtitle,\n description,\n links,\n headingLevel: Heading = 'h3',\n ...props\n}) => {\n const generatedId = useId();\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle,\n description: !title && !subtitle && !!description\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className=\"inner-highlight-card\" {...props}>\n {(subtitle || title || description) && (\n <div className=\"flex flex-col gap-8\">\n {subtitle && <div className=\"subtitle-container\">{buildText(subtitle, headingPlacement.subtitle)}</div>}\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n {description && <div className=\"description-container\">{buildText(description, headingPlacement.description)}</div>}\n </div>\n )}\n\n {links?.length > 0 && (\n <ul className=\"links-container\">\n {links?.map((link, index) => {\n const key = `card-highlight-links-list-${generatedId}-${index}`;\n return (\n <li key={key}>\n <Anchor\n appearance=\"link\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-line-arrow-right-circle\"\n {...link}\n />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, FC, ImgHTMLAttributes, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnchorProps } from '@/components/anchor';\nimport { useWindowSize } from '@/hooks';\nimport { HeadingLevel } from '@/models';\nimport { InnerHighlightCard } from './shared/inner-highlight-card';\n\nimport './card-highlight.scss';\n\nexport type HighlightAreaPositionType = 'interior' | 'exterior';\nexport type HighlightCardPositionType = 'bottom' | 'middle';\nexport type HighlightCardSizeType = 's' | 'default';\n\nexport interface CardHighlightProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The image to be displayed.\n */\n image: ImgHTMLAttributes<HTMLImageElement>;\n /**\n * The subtitle to be displayed.\n */\n subtitle?: ReactNode;\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title to be displayed.\n */\n title?: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * The list of links of the card.\n */\n links: AnchorProps[];\n /**\n * Positioning title and subtitle internally/externally of the card.\n */\n highlightAreaPosition?: HighlightAreaPositionType;\n /**\n * Positioning card.\n */\n cardPosition?: HighlightCardPositionType;\n /**\n * Card size\n */\n cardSize?: HighlightCardSizeType;\n}\n\nexport const CardHighlight: FC<CardHighlightProps> = ({\n image,\n title,\n subtitle,\n description,\n highlightAreaPosition = 'exterior',\n headingLevel: Heading = 'h3',\n links,\n cardPosition = 'bottom',\n cardSize = 'default',\n className,\n ...props\n}) => {\n const cardHighlightClassName = classNames('agora-card-highlight', cardPosition, `card-${cardSize}`, className);\n const { width } = useWindowSize();\n const isTablet = width >= 768 && width < 1200;\n const isMobile = width < 768;\n\n const headingPlacement = {\n title: !!title,\n subtitle: !title && !!subtitle,\n description: !title && !subtitle && !!description\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={cardHighlightClassName} {...props}>\n <div className=\"card-image-container\">\n <img className=\"card-image\" {...image} src={image.src} alt={image.alt} aria-hidden={image['aria-hidden'] ?? true} />\n </div>\n {(title || subtitle) && highlightAreaPosition === 'exterior' && !isMobile && !isTablet && (\n <div className=\"card-box-exterior\">\n <div className=\"card-info\">\n {subtitle && <div className=\"subtitle-container\">{buildText(subtitle, headingPlacement.subtitle)}</div>}\n {title && <div className=\"title-container\">{buildText(title, headingPlacement.title)}</div>}\n </div>\n </div>\n )}\n <div className=\"card-content\">\n <div className=\"shared-card-content\">\n <InnerHighlightCard\n headingLevel={Heading}\n {...(highlightAreaPosition === 'interior' || isTablet || isMobile ? { title, subtitle } : undefined)}\n description={description}\n links={links}\n />\n </div>\n </div>\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, FC, ImgHTMLAttributes, ReactElement, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { InputEmailBarProps } from '@/components/input-email-bar/input-email-bar';\n\nimport './card-highlight-newsletter.scss';\n\nexport interface CardHighlightNewsletterProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * The title to be displayed.\n */\n title?: ReactNode;\n /**\n * The subtitle to be displayed.\n */\n subtitle?: ReactNode;\n /**\n * The image to be displayed.\n */\n image: ImgHTMLAttributes<HTMLImageElement>;\n /**\n * Children content.\n */\n children: ReactElement<InputEmailBarProps>;\n}\n\nexport const CardHighlightNewsletter: FC<CardHighlightNewsletterProps> = ({ title, subtitle, image, ...props }) => {\n const cardHighlightNewsletterClassName = classNames('agora-card-highlight-newsletter', props.className);\n\n return (\n <div className={cardHighlightNewsletterClassName} style={{ backgroundImage: `url(${image.src})` }} {...props}>\n <div className=\"card-container\">\n <div className=\"card-content\">\n {title && <div className=\"title\">{title}</div>}\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n </div>\n <div className=\"input-container\">\n <div className=\"email-bar\">{props.children}</div>\n </div>\n </div>\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Button, ButtonProps } from '@/components/button';\nimport { BookmarkIcon } from '@/components/shared/bookmark-icon/bookmark-icon';\n\nimport './card-highlight-single.scss';\nimport { stringToBoolean } from '@/utils';\nimport { BooleanProp } from '@/models';\n\nexport interface CardHighlightSingleProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Card title.\n */\n title?: ReactNode;\n /**\n * Card subtitle.\n */\n subtitle?: ReactNode;\n /**\n * Card icon.\n */\n showBookmarkIcon?: BooleanProp;\n /**\n * Button props.\n */\n actionButton?: ButtonProps;\n}\n\nexport const CardHighlightSingle: FC<CardHighlightSingleProps> = ({\n title,\n subtitle,\n actionButton,\n showBookmarkIcon,\n className = '',\n ...props\n}) => {\n const CardHighLightClasses = classNames('agora-card-highlight-single', className);\n\n return (\n <div className={CardHighLightClasses} {...props}>\n <div className=\"custom-svg-container\">\n <svg\n className=\"custom-svg\"\n width=\"100%\"\n height=\"100%\"\n viewBox=\"0 0 384 378\"\n aria-hidden\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n >\n <g opacity=\"0.04\" stroke=\"white\" strokeWidth=\"24\" strokeMiterlimit=\"9.56677\" strokeLinecap=\"round\">\n <path d=\"M-436 189.113C-237.528 189.113 -202.994 271.214 -118.581 252.744C-42.7446 236.151 30.3181 89.0689 81.1009 93.8569C133.588 98.8049 4.82279 267.863 60.1717 290.185C105.121 308.314 250.971 -0.840043 299.676 13.483C357.976 30.624 189.186 355.513 249.579 364.748C308.959 373.827 348.241 135.047 419.085 122.245C483.27 110.647 497 189.113 742 189.113\" />\n </g>\n </svg>\n </div>\n <div className=\"card-content\">\n <div className=\"content\">\n {stringToBoolean(showBookmarkIcon) && <BookmarkIcon className=\"card-highlight-single-icon\" aria-hidden />}\n <div className=\"card-title\">{title && <div className=\"title\">{title}</div>}</div>\n <div className=\"card-action\">\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n <div className=\"action-button\">\n <Button {...actionButton} />\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n","import React, { Children, ComponentPropsWithoutRef, CSSProperties, FC, isValidElement, ReactElement, ReactNode, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon } from '@/components/icon';\n\nimport './list.scss';\n\nexport type ListType = 'unordered' | 'ordered';\n\nexport type ListStyle = 'none' | 'bullet' | 'number' | 'icon';\n\nexport interface ListProps extends ComponentPropsWithoutRef<'ul'> {\n /**\n * Type list.\n */\n type?: ListType;\n /**\n * Style of the list depending on the chosen type.\n */\n listStyle?: ListStyle;\n /**\n * Choose the starting number of an ordered number list.\n */\n startNumber?: number;\n /**\n * Choose the icon for an unordered list.\n */\n icon?: string;\n /**\n * Children content.\n */\n children?: ReactElement<HTMLLIElement> | Array<ReactElement<HTMLLIElement>>;\n}\n\nexport const List: FC<ListProps> = ({ type = 'unordered', listStyle = 'none', startNumber = 1, children, icon, ...props }) => {\n const ComponentType = type !== 'ordered' ? 'ul' : 'ol';\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n\n const classes = classNames(`agora-list agora-list-${type} list-${listStyle}`, propsClone.className);\n\n const mappedLIElements = Children.map(children, (child) => {\n if (!isValidElement<HTMLLIElement>(child)) {\n return null;\n }\n\n return (\n <li>\n {listStyle === 'icon' && type === 'unordered' && <Icon name={icon} aria-hidden />}\n <div className=\"list-items\">{child.props.children as ReactNode}</div>\n </li>\n );\n });\n\n return (\n <ComponentType style={{ '--startNumber': startNumber } as CSSProperties} start={startNumber} className={classes} id={propsClone.id}>\n {mappedLIElements}\n </ComponentType>\n );\n};\n","import React, { ComponentPropsWithRef, FC, ReactNode, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { HeadingLevel } from '@/models';\n\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { Icon } from '@/components/icon';\nimport { List } from '@/components/list';\n\nimport './card-links.scss';\n\n/**\n * The available variants of the card links.\n */\nexport type CardLinkVariant = 'default' | 'dark';\n\nexport interface CardLinksProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * The category of the card.\n */\n category?: ReactNode;\n /**\n * The title of the card.\n */\n title: ReactNode;\n /**\n * The description of the card.\n */\n description?: ReactNode;\n /**\n * The list of links of the card.\n */\n links: AnchorProps[];\n /**\n * The list of topics of the card.\n */\n topics?: ReactNode[];\n /**\n * The variant of the card.\n */\n variant?: CardLinkVariant;\n}\n\nexport const CardLinks: FC<CardLinksProps> = ({\n headingLevel: Heading = 'h2',\n title,\n category,\n description,\n links = [],\n topics,\n variant = 'default',\n className = '',\n ...props\n}) => {\n const generatedId = useId();\n\n const CardLinksClasses = classNames('card-links', `card-${variant}`, className);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description,\n category: !title && !description && !!category\n };\n\n const buildText = (text: ReactNode, isHeading: boolean): ReactNode => {\n return isHeading ? <Heading>{text}</Heading> : text;\n };\n\n return (\n <div className={CardLinksClasses} {...props}>\n <div className=\"body-container\">\n {category && <div className=\"category\">{buildText(category, headingPlacement.category)}</div>}\n\n {title && <div className=\"title\">{buildText(title, headingPlacement.title)}</div>}\n\n {description && <div className=\"description\">{buildText(description, headingPlacement.description)}</div>}\n </div>\n\n {links.length > 0 && (\n <ul className=\"links\">\n {links.map((link, index) => {\n const anchorKey = `card-link-${generatedId}-link-${index}`;\n return (\n <li key={anchorKey} className=\"link-container\">\n <Anchor\n appearance=\"link\"\n href={link.href}\n darkMode={variant === 'dark'}\n variant={variant === 'default' ? 'primary' : 'neutral'}\n hasIcon={link.hasIcon ?? true}\n trailingIcon={link.trailingIcon ?? 'agora-line-arrow-right-circle'}\n trailingIconHover={link.trailingIcon ?? 'agora-line-arrow-right-circle'}\n >\n {link.children}\n </Anchor>\n </li>\n );\n })}\n </ul>\n )}\n\n {topics && topics.length > 0 && (\n <List className=\"topics\">\n {topics.map((topic, index) => {\n const listItem = `card-link-${generatedId}-topic-${index}`;\n\n return (\n <li key={listItem} className=\"topic\">\n {topic}\n {index !== topics.length - 1 && <Icon name=\"agora-solid-bullet\" alt=\"bullet\" />}\n </li>\n );\n })}\n </List>\n )}\n\n <hr aria-hidden />\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport './card-no-results.scss';\n\nexport interface CardNoResultsProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Icon to display in the card.\n */\n icon?: ReactNode;\n /**\n * The title of the card.\n */\n title?: ReactNode;\n /**\n * The subtitle of the card.\n */\n subtitle?: ReactNode;\n /**\n * The description of the card.\n */\n description?: ReactNode;\n /**\n * If the card should be displayed in a dark mode.\n */\n darkMode?: BooleanProp;\n}\n\nexport const CardNoResults: FC<CardNoResultsProps> = ({\n icon,\n title,\n subtitle,\n description,\n darkMode = false,\n className = '',\n ...props\n}) => {\n const CardNoResultsClasses = classNames('agora-card-no-results', stringToBoolean(darkMode) ? 'dark' : 'default', className);\n\n return (\n <div className={CardNoResultsClasses} {...props}>\n <div className=\"main-content\">\n {icon && <div className=\"icon-container\">{icon}</div>}\n {title && <div className=\"title\">{title}</div>}\n {subtitle && <div className=\"subtitle\">{subtitle}</div>}\n {description && <div className=\"description\">{description}</div>}\n </div>\n </div>\n );\n};\n","import React, { ComponentPropsWithoutRef, FC, ImgHTMLAttributes, ReactNode, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { Icon } from '@/components/icon';\n\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { useBlockedLink } from '../shared/use-blocked-link';\n\nimport './card-search-result.scss';\n\nexport interface CardSearchResultProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Card category label.\n */\n category?: ReactNode;\n /**\n * Card date label.\n */\n date?: ReactNode;\n /**\n * Card heading level.\n */\n headingLevel?: HeadingLevel;\n /**\n * Anchor props to render in heading.\n */\n mainAnchor: AnchorProps;\n /**\n * Card description label.\n */\n description?: ReactNode;\n /**\n * card topics.\n */\n topics?: Array<ReactNode>;\n /**\n * card image.\n */\n image?: ImgHTMLAttributes<HTMLImageElement>;\n /**\n * Makes the whole card clickable.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardSearchResult: FC<CardSearchResultProps> = ({\n category,\n date,\n headingLevel: Heading = 'h3',\n description,\n topics,\n image,\n mainAnchor,\n blockedLink = false,\n className,\n ...props\n}) => {\n const cardSearchResultRef = useRef<HTMLDivElement | null>(null);\n\n const anchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const CardSearchResultClass = classNames('agora-card-search-result', className);\n\n const containerClass = classNames(\n 'flex flex-col gap-8',\n { 'xl:col-span-3 md:col-span-2': image },\n { 'xl:col-span-full md:col-span-full': !image }\n );\n\n useBlockedLink({\n anchorRef,\n parentCardRef: cardSearchResultRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n return (\n <div ref={cardSearchResultRef} role=\"presentation\" className={CardSearchResultClass} {...props}>\n {category && <div className=\"category\">{category}</div>}\n\n <div className=\"content-body\">\n <div className={containerClass}>\n {date && <div className=\"date-container\">{date}</div>}\n\n <Heading className=\"title\">\n <Anchor {...mainAnchor} ref={anchorRef} />\n </Heading>\n\n {description && <div className=\"description-container\">{description}</div>}\n </div>\n\n {image && (\n <div className=\"container-image xl:col-span-1 md:col-span-2 w-full\">\n <img src={image.src} className=\"card-image w-full\" alt={image.alt} />\n </div>\n )}\n </div>\n\n {topics && topics.length > 0 && (\n <div className=\"topic-list\">\n {topics.map((topic, index) => (\n <div key={`key-${Number(index)}`} className=\"topic-item\">\n {index > 0 && <Icon aria-hidden className=\"fill-neutral-500\" name=\"agora-solid-bullet\" />}\n {topic}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, FC, ReactNode, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { Icon, IconProps } from '@/components/icon';\nimport { useBlockedLink } from '../shared/use-blocked-link';\n\nimport './card-single.scss';\n\n/**\n * Card Single Variants\n */\nexport type CardSingleVariant = 'default' | 'neutral' | 'white';\n\nexport interface CardSingleProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Defines the variant of the card single.\n */\n variant?: CardSingleVariant;\n /**\n * The icon props\n */\n icon?: IconProps;\n /**\n * Title Tag Card.\n */\n headingLevel?: HeadingLevel;\n /**\n * The title of the card\n */\n title: ReactNode;\n /**\n * The description of the card\n */\n description?: ReactNode;\n /**\n * Anchor props.\n */\n mainAnchor?: AnchorProps;\n /**\n * Defines blockedLink prop.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardSingle: FC<CardSingleProps> = ({\n variant = 'default',\n icon,\n headingLevel: Heading = 'h3',\n title,\n description,\n mainAnchor,\n blockedLink,\n className,\n ...props\n}) => {\n const cardSingleRef = useRef<HTMLDivElement | null>(null);\n const cardSingleAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description,\n anchor: !title && !description && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n title: false,\n description: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.title = !!title;\n anchorPlacement.description = !title && !!description;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n useBlockedLink({\n parentCardRef: cardSingleRef,\n anchorRef: cardSingleAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const CardSingleClasses = classNames('card-single', `card-${variant}`, className);\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" ref={cardSingleAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" ref={cardSingleAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n const anchorContainerClassNames = classNames('anchor-container', { 'icon-only': mainAnchorClone?.iconOnly });\n\n return (\n <div {...props} ref={cardSingleRef} role=\"presentation\" className={CardSingleClasses}>\n {icon && (\n <div className=\"icon-container\">\n <Icon {...icon} className=\"card-single-icon\" dimensions=\"m\" />\n </div>\n )}\n\n <div className=\"info-container\">\n {title && <div className=\"title-container\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>}\n\n {description && (\n <div className=\"description-container\">\n {buildText(description, mainAnchorClone, anchorPlacement.description, headingPlacement.description)}\n </div>\n )}\n </div>\n\n {anchorPlacement.anchor && (\n <div className={anchorContainerClassNames}>\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n );\n};\n","import React, { ComponentPropsWithoutRef, FC, ReactNode, useMemo, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport { Anchor, AnchorProps } from '@/components/anchor';\nimport { Pill, PillVariant } from '@/components/pill';\n\nimport { useBlockedLink } from '../shared/use-blocked-link';\n\nimport './card-topic.scss';\n\n/**\n * Available card topic variant styles.\n */\nexport type CardTopicVariant = 'default' | 'white' | 'informative' | 'success' | 'warning' | 'danger';\n/**\n * Available card topic status.\n */\nexport type CardTopicStatus = 'success' | 'warning' | 'danger';\n\nexport interface CardTopicProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n /**\n * Defines the variant of the card topic.\n */\n variant?: CardTopicVariant;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * Defines the status description.\n */\n description?: ReactNode;\n /**\n * Defines the pill text.\n */\n pillLabel?: ReactNode;\n /**\n * Defines the status text.\n */\n statusLabel?: ReactNode;\n /**\n * Defines the status of the card topic.\n */\n status?: CardTopicStatus;\n /**\n * Anchor props.\n */\n mainAnchor?: AnchorProps;\n /**\n * Defines blockedLink prop.\n */\n blockedLink?: BooleanProp;\n}\n\nexport const CardTopic: FC<CardTopicProps> = ({\n headingLevel: Heading = 'h3',\n variant = 'default',\n title,\n description,\n pillLabel,\n statusLabel,\n status = 'success',\n mainAnchor,\n blockedLink = false,\n className,\n ...props\n}) => {\n const variantMemo = useMemo(() => {\n if (variant === 'default' || variant === 'white') {\n return 'primary';\n }\n\n return variant;\n }, [variant]);\n\n const cardTopicRef = useRef<HTMLDivElement | null>(null);\n const cardTopicAnchorRef = useRef<HTMLAnchorElement | null>(null);\n\n const headingPlacement = {\n title: !!title,\n description: !title && !!description,\n pill: !title && !description && !!pillLabel,\n anchor: !title && !description && !pillLabel && !!mainAnchor && !mainAnchor.hidden\n };\n\n const anchorPlacement = {\n anchor: false,\n title: false,\n description: false,\n pill: false\n };\n\n let mainAnchorClone: AnchorProps = { ...mainAnchor };\n\n if (mainAnchor) {\n mainAnchorClone = {\n ...mainAnchor\n } as AnchorProps;\n\n if (mainAnchorClone.hasIcon && !mainAnchorClone.trailingIcon && !mainAnchorClone.leadingIcon) {\n mainAnchorClone.trailingIcon = 'agora-line-arrow-right-circle';\n mainAnchorClone.trailingIconHover = 'agora-solid-arrow-right-circle';\n }\n\n if (mainAnchor.hidden) {\n // MUST DELETE IN ORDER TO SPREAD IT LATER\n delete mainAnchorClone.hidden;\n\n // ONE OF THE TEXTS MUST BE FILLED\n anchorPlacement.title = !!title;\n anchorPlacement.description = !title && !!description;\n anchorPlacement.pill = !title && !description && !!pillLabel;\n } else {\n anchorPlacement.anchor = true;\n }\n }\n\n const buildText = (text: ReactNode, anchorProps: AnchorProps, isAnchor: boolean, isHeading: boolean): ReactNode => {\n if (!isAnchor) {\n return isHeading ? <Heading>{text}</Heading> : text;\n }\n\n return (\n <>\n {isHeading && (\n <Heading>\n <Anchor {...anchorProps} appearance=\"link\" variant={variantMemo} ref={cardTopicAnchorRef}>\n {text}\n </Anchor>\n </Heading>\n )}\n {!isHeading && (\n <Anchor {...anchorProps} appearance=\"link\" variant={variantMemo} ref={cardTopicAnchorRef}>\n {text}\n </Anchor>\n )}\n </>\n );\n };\n\n useBlockedLink({\n parentCardRef: cardTopicRef,\n anchorRef: cardTopicAnchorRef,\n blockedLink: stringToBoolean(blockedLink)\n });\n\n const cardTopicClasseNames = classNames('agora-card-topic', `card-${variant}`, { 'has-anchor-label': !mainAnchor?.iconOnly }, className);\n const cardStatusClasseNames = classNames('card-topic-status', `card-topic-status-${status}`);\n const anchorContainerClassNames = classNames('card-topic-anchor', { 'icon-only': mainAnchorClone?.iconOnly });\n\n return (\n <div {...props} role=\"presentation\" className={cardTopicClasseNames} ref={cardTopicRef}>\n <div className=\"content-info\">\n {pillLabel && (\n <div className=\"card-topic-pill\">\n <Pill appearance=\"solid\" size=\"default\" variant={variantMemo as PillVariant}>\n {buildText(pillLabel, mainAnchorClone, anchorPlacement.pill, headingPlacement.pill)}{' '}\n </Pill>\n </div>\n )}\n\n {title && (\n <div className=\"card-topic-title\">{buildText(title, mainAnchorClone, anchorPlacement.title, headingPlacement.title)}</div>\n )}\n\n {statusLabel && (\n <div className=\"flex items-center gap-8\">\n <div className={cardStatusClasseNames} />\n <div>{statusLabel}</div>\n </div>\n )}\n\n {description && (\n <div className=\"card-topic-description\">\n {buildText(description, mainAnchorClone, anchorPlacement.description, headingPlacement.description)}\n </div>\n )}\n </div>\n\n {anchorPlacement.anchor && (\n <div className={anchorContainerClassNames}>\n {buildText(mainAnchorClone.children, mainAnchorClone, anchorPlacement.anchor, headingPlacement.anchor)}\n </div>\n )}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Icon } from '@/components/icon';\nimport './feedback.scss';\n\nexport interface FeedbackProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * The flag to set if the feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n}\n\nexport const InnerFeedback: ForwardRefRenderFunction<HTMLDivElement, FeedbackProps> = (\n { className, feedbackState = 'info', feedbackText, darkMode, ...props },\n ref\n) => {\n const feedbackWrapperClasses = classNames('feedback', className);\n const feedbackIconWrapperClasses = classNames('feedback-icon-wrapper', `feedback-icon-wrapper-${feedbackState}`);\n const feedbackTextClasses = classNames('feedback-text', stringToBoolean(darkMode) ? 'feedback-text-dark' : 'feedback-text-light');\n /**\n * Dictionary of possible icons feedback.\n */\n const feedbackStateIconsMap = {\n info: 'agora-solid-info-mark',\n danger: 'agora-solid-alert-triangle',\n success: 'agora-solid-check-circle',\n warning: 'agora-solid-alert-circle'\n };\n\n return (\n <div {...props} className={feedbackWrapperClasses} ref={ref}>\n <span className={feedbackIconWrapperClasses}>\n <Icon name={feedbackStateIconsMap[feedbackState]} dimensions=\"s\" aria-hidden />\n </span>\n <p className={feedbackTextClasses}>{feedbackText}</p>\n </div>\n );\n};\n\nexport const Feedback = forwardRef<HTMLDivElement, FeedbackProps>(InnerFeedback);\n","import { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport './checkbox.scss';\n\nexport interface CheckboxProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state.\n */\n hasError?: BooleanProp;\n /**\n * Child elements to render as custom label.\n */\n children?: ReactNode;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * The flag to set if the checkbox is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n}\n\nexport const InnerCheckbox: ForwardRefRenderFunction<HTMLInputElement, CheckboxProps> = (\n {\n className,\n label,\n hasError,\n hideLabel,\n required = true,\n hasFeedback,\n feedbackState = 'info',\n feedbackText,\n darkMode,\n children,\n ...props\n },\n ref: Ref<HTMLInputElement | null>\n) => {\n const inputRef = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => inputRef.current);\n\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n\n const [currentChecked, setCurrentChecked] = useState(stringToBoolean(propsClone.checked ?? propsClone.defaultChecked));\n\n const handleCheckboxKeyDownCapture = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (propsClone.disabled || propsClone.readOnly) {\n return;\n }\n\n // CURRENT TARGET IS THE LISTENING ELEMENT. IF CLICK ON AN ANCHOR, LET IT TRIGGER ITS INTERNAL BEHAVIOR.\n if (evt.target !== evt.currentTarget) {\n return;\n }\n\n if (evt.code === 'Space' || evt.code === 'Enter' || evt.code === 'NumpadEnter') {\n evt.preventDefault();\n evt.stopPropagation();\n inputRef.current?.click();\n }\n };\n\n const handleCheckboxClick = (evt: MouseEvent<HTMLInputElement>) => {\n if (propsClone.disabled || propsClone.readOnly) {\n return;\n }\n\n // CURRENT TARGET IS THE LISTENING ELEMENT. IF CLICK ON AN ANCHOR, LET IT TRIGGER ITS INTERNAL BEHAVIOR.\n if (evt.target !== evt.currentTarget) {\n return;\n }\n\n if (evt.detail > 0) {\n evt.preventDefault();\n evt.stopPropagation();\n inputRef.current?.click();\n }\n };\n\n const handleChange = () => {\n setCurrentChecked((last) => !last);\n };\n\n const inputWrapper = classNames(\n 'agora-checkbox',\n 'inline-flex items-start min-h-[44px]',\n {\n 'disabled': props.disabled,\n 'checked': currentChecked,\n 'dark': stringToBoolean(darkMode),\n\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n },\n className\n );\n\n useEffect(() => {\n const checked = propsClone.checked ?? propsClone.defaultChecked;\n if (checked !== undefined) {\n setCurrentChecked(checked);\n }\n }, [propsClone.checked, propsClone.defaultChecked]);\n\n return (\n <div>\n <div\n {...propsClone}\n className={inputWrapper}\n id={`agora-checkbox-custom-${propsClone.id}`}\n role=\"checkbox\"\n tabIndex={props.disabled ? -1 : 0}\n aria-checked={currentChecked}\n aria-disabled={!!props.disabled}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n aria-required={required}\n aria-invalid={stringToBoolean(hasError)}\n onKeyDownCapture={handleCheckboxKeyDownCapture}\n onClickCapture={handleCheckboxClick}\n >\n <input className=\"hidden\" {...propsClone} type=\"checkbox\" ref={inputRef} onChange={handleChange} />\n\n <span className=\"mark\">{currentChecked && <Icon name=\"agora-line-check\" aria-hidden />}</span>\n\n {!hideLabel && (\n <label className=\"label\" htmlFor={propsClone.id}>\n <span>{children ?? label}</span>\n </label>\n )}\n </div>\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <div className=\"agora-radio-button-feedback px-8\">\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(InnerCheckbox);\n","import React, { ChangeEvent, Children, cloneElement, FC, HtmlHTMLAttributes, isValidElement, ReactElement, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { CheckboxProps } from '@/components/checkbox/';\nimport { Feedback } from '@/components/shared/feedback';\n\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\n\nexport interface CheckboxGroupProps extends Omit<HtmlHTMLAttributes<HTMLFieldSetElement>, 'onChange'> {\n /**\n * Group legend.\n */\n legend?: ReactNode;\n /**\n * Sets the checkbox in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below checkbox-group.\n */\n feedbackText?: ReactNode;\n /**\n * List of checkbox components to use as children of the group.\n */\n children?: ReactElement<CheckboxProps> | Array<ReactElement<CheckboxProps>>;\n /**\n * Event triggered whenever any of the checkboxes changes is own state.\n */\n onChange?: (evt: ChangeEvent<HTMLInputElement>) => void;\n}\nconst CheckboxGroup: FC<CheckboxGroupProps> = ({\n className,\n legend,\n hasError,\n hasFeedback,\n feedbackText,\n feedbackState = 'info',\n onChange,\n children,\n ...props\n}) => {\n const innerOnChange = (nativeEvent: ChangeEvent<HTMLInputElement>) => {\n asyncTrigger(() => onChange?.(nativeEvent));\n };\n\n const containerClasses = classNames('agora-checkbox-group', className);\n\n const mappedCheckbox = Children.map(children, (child) => {\n if (!isValidElement<CheckboxProps>(child)) {\n return null;\n }\n\n return cloneElement<CheckboxProps>(child, {\n onChange: innerOnChange,\n hasError: stringToBoolean(hasError),\n hasFeedback: stringToBoolean(hasFeedback)\n } as CheckboxProps);\n });\n\n return (\n <div className={containerClasses}>\n <fieldset {...props}>\n {legend && <legend className=\"text-[var(--color-primary-900)] text-m-medium mb-8\">{legend}</legend>}\n {mappedCheckbox}\n </fieldset>\n\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} />\n )}\n </div>\n );\n};\n\nexport { CheckboxGroup };\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, useCallback, useEffect, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean, useExpandedRef } from '@/utils';\n\nimport './dialog.scss';\n\nexport interface DialogElement extends HTMLDivElement {\n /**\n * Initial visibility state of the dialog.\n * */\n visible?: boolean;\n /**\n * Show dialog.\n * */\n show: () => void;\n /**\n * Hide dialog.\n * */\n hide: () => void;\n}\n\nexport interface DialogProps extends ComponentPropsWithRef<'div'> {\n /**\n * Initial visibility state of the dialog.\n * */\n visible?: BooleanProp;\n /**\n * Renders the dialog content as full screen without a backdrop.\n */\n fullScreen?: BooleanProp;\n /**\n * In a non-fullscreen dialog, allow users to dismiss the dialog by clicking in the backdrop.\n */\n dismissOnBackdropClick?: BooleanProp;\n /**\n * Allow users to dismiss the dialog by pressing Escape key.\n */\n dismissOnEscape?: BooleanProp;\n /**\n * Callback to be called when click outside\n */\n onClickedOutside?: () => void;\n}\n\nexport const InnerDialog: ForwardRefRenderFunction<DialogElement, DialogProps> = (\n {\n visible = false,\n fullScreen = false,\n dismissOnBackdropClick = true,\n dismissOnEscape = true,\n children,\n className,\n onClickedOutside,\n ...props\n }: DialogProps,\n ref\n) => {\n const [isVisible, setIsVisible] = useState(stringToBoolean(visible));\n\n const show = useCallback((): void => {\n setIsVisible(true);\n }, [setIsVisible]);\n\n const hide = useCallback((): void => {\n setIsVisible(false);\n }, []);\n\n const innerDialogRef = useRef<HTMLDivElement>(null);\n useExpandedRef<DialogElement>(\n ref,\n innerDialogRef,\n {\n visible: isVisible,\n show,\n hide\n } as DialogElement,\n [innerDialogRef, hide, show, isVisible]\n );\n\n const handleKeyDown = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape' && stringToBoolean(dismissOnEscape)) {\n evt.preventDefault();\n hide();\n\n return;\n }\n\n if (!innerDialogRef.current) {\n return;\n }\n\n if (evt.key === 'Tab') {\n const focusableElements = innerDialogRef.current.querySelectorAll(\n 'a:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"]), details:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])'\n );\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n if (evt.shiftKey && document.activeElement === firstElement) {\n evt.preventDefault();\n lastElement.focus();\n } else if (!evt.shiftKey && document.activeElement === lastElement) {\n evt.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n if ((event.target as HTMLElement).classList.contains('agora-dialog-backdrop')) {\n hide();\n onClickedOutside?.();\n }\n };\n useEffect(() => {\n document?.addEventListener('keydown', handleKeyDown);\n\n if (!stringToBoolean(fullScreen) && stringToBoolean(dismissOnBackdropClick)) {\n document?.addEventListener('click', handleClickOutside);\n }\n\n return () => {\n document?.removeEventListener('keydown', handleKeyDown);\n\n if (!stringToBoolean(fullScreen) && stringToBoolean(dismissOnBackdropClick)) {\n document?.removeEventListener('click', handleClickOutside);\n }\n };\n }, [dismissOnEscape, fullScreen, dismissOnBackdropClick, handleClickOutside, handleKeyDown]);\n\n useEffect(() => {\n if (isVisible) {\n document.body.classList.add('overflow-hidden');\n\n if (innerDialogRef.current) {\n const focusableElements = innerDialogRef.current.querySelectorAll(\n 'a:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"]), details:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])'\n );\n\n const firstElement = focusableElements[0] as HTMLElement;\n\n if (firstElement) {\n firstElement.focus();\n }\n }\n } else {\n document.body.classList.remove('overflow-hidden');\n }\n }, [isVisible]);\n\n const containerClassNames = classNames(\n 'agora-dialog',\n {\n closed: !isVisible\n },\n className\n );\n\n return (\n <div ref={innerDialogRef} className={containerClassNames} aria-modal=\"true\" role=\"dialog\" {...props}>\n {!fullScreen && <div className=\"agora-dialog-backdrop\" />}\n {children}\n </div>\n );\n};\n\nexport const Dialog = forwardRef<DialogElement, DialogProps>(InnerDialog);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useRef, useState } from 'react';\n\nimport { BooleanProp } from '@/models';\nimport { useExpandedRef } from '@/utils';\n\nimport { Dialog, DialogElement } from '@/components/dialog';\n\nimport './drawer.scss';\n\nexport type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface DrawerElement extends HTMLDivElement {\n /**\n * Open drawer.\n * */\n open: () => void;\n /**\n * Close drawer.\n * */\n close: () => void;\n}\n\nexport interface DrawerProps extends ComponentPropsWithRef<'div'> {\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Allow users to dismiss the drawer by pressing Escape key.\n */\n dismissOnEscape?: BooleanProp;\n /**\n * Dismiss on back drop click.\n */\n dismissOnBackdropClick?: BooleanProp;\n /**\n * Position of the drawer.\n */\n position?: DrawerPosition;\n /**\n * Callback to be called when click outside\n */\n onClickedOutside?: () => void;\n /**\n * Callback to be called when the drawer is opened.\n */\n onShow?: () => void;\n /**\n * Callback to be called when the drawer is closed.\n */\n onHide?: () => void;\n}\n/**\n * Return icon default animation class drawer icon name and default position.\n */\nexport const InnerDrawer: ForwardRefRenderFunction<DrawerElement, DrawerProps> = (\n {\n children,\n dismissOnEscape = true,\n dismissOnBackdropClick = true,\n position = 'left',\n\n onClickedOutside,\n\n onShow,\n onHide,\n\n className,\n\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n\n ...props\n },\n ref\n) => {\n const [open, setOpen] = useState(false);\n\n const dialogRef = useRef<DialogElement>(null);\n\n const drawerClassNames = classNames(\n `agora-drawer`,\n\n { 'agora-drawer-horizontal': position === 'left' || position === 'right' },\n { 'agora-drawer-vertical': position === 'top' || position === 'bottom' },\n\n { ['agora-drawer-open-' + position]: open },\n { ['agora-drawer-close-' + position]: !open }\n );\n\n const handleClose = () => {\n const fn = () => {\n setOpen(false);\n dialogRef.current?.hide();\n dialogRef.current?.querySelector('.agora-drawer')?.classList?.remove(`agora-drawer-close-${position}`);\n dialogRef.current?.querySelector('.agora-drawer')?.removeEventListener('animationend', fn);\n\n onHide?.();\n };\n\n dialogRef.current?.querySelector('.agora-drawer')?.addEventListener('animationend', fn);\n dialogRef.current?.querySelector('.agora-drawer')?.classList.add(`agora-drawer-close-${position}`);\n };\n\n const handleOpen = () => {\n const fn = () => {\n dialogRef.current?.querySelector('.agora-drawer')?.removeEventListener('animationend', fn);\n onShow?.();\n };\n\n dialogRef.current?.querySelector('.agora-drawer')?.addEventListener('animationend', fn);\n\n setOpen(true);\n dialogRef.current?.show();\n };\n\n useExpandedRef<DrawerElement>(\n ref,\n dialogRef,\n {\n open: handleOpen,\n close: handleClose\n } as DrawerElement,\n [dialogRef, handleOpen, handleClose]\n );\n\n return (\n <Dialog\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n ref={dialogRef}\n className={className}\n dismissOnBackdropClick={dismissOnBackdropClick}\n dismissOnEscape={dismissOnEscape}\n onClickedOutside={onClickedOutside}\n >\n <div {...props} className={drawerClassNames}>\n {children}\n </div>\n </Dialog>\n );\n};\n\nexport const Drawer = forwardRef<DrawerElement, DrawerProps>(InnerDrawer);\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, useEffect, useId, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp } from '@/models';\nimport { asyncTrigger, stringToBoolean, useExpandedRef } from '@/utils';\n\nimport { Button, ButtonProps, ButtonVariant } from '@/components/button';\n\nimport './rating-buttons.scss';\n\nexport type RatingStatus = 'like' | 'dislike' | 'neutral';\n\nexport interface RatingButtonsElement extends HTMLDivElement {\n status: RatingStatus;\n}\n\nexport interface RatingButtonsProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'ref'> {\n /**\n * Like button definition.\n */\n likeButton?: ButtonProps;\n /**\n * Dislike button definition.\n */\n dislikeButton?: ButtonProps;\n /**\n * Defines if the buttons only contains the icon.\n */\n iconOnly?: BooleanProp;\n /**\n * Toggles dark mode in buttons.\n */\n darkMode?: BooleanProp;\n /**\n * The button appearance. Define the button Shape.\n */\n variant?: ButtonVariant;\n /**\n * Event triggered whenever any of the button changes is own state.\n */\n onChange?: (status: RatingStatus) => void;\n}\n\nconst InnerRatingButtons: ForwardRefRenderFunction<RatingButtonsElement, RatingButtonsProps> = (\n { likeButton, dislikeButton, iconOnly = false, darkMode = false, variant, className = '', onChange, ...props },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [pressedButton, setPressedButton] = useState<RatingStatus>('neutral');\n\n const handleToggleButton = (buttonType: RatingStatus) => {\n setPressedButton((last) => (last === buttonType ? 'neutral' : buttonType));\n };\n\n useEffect(() => {\n asyncTrigger(() => onChange?.(pressedButton));\n }, [pressedButton]);\n\n const createButton = (buttonProps: ButtonProps, buttonType: RatingStatus) => {\n const selected = pressedButton === buttonType;\n return (\n <Button\n {...buttonProps}\n id={`${propsClone.id}-${buttonType}`}\n onClick={() => handleToggleButton(buttonType)}\n appearance={selected ? 'solid' : 'outline'}\n aria-pressed={pressedButton === buttonType ? 'true' : 'false'}\n />\n );\n };\n\n const ratingButtonClasses = classNames('rating-buttons', stringToBoolean(darkMode) ? 'dark' : '', className);\n const ratingButtonWrapperClasses = classNames('rating-buttons-wrapper', iconOnly ? 'icon-only' : '', className);\n\n const innerRef = useRef<HTMLDivElement>(null);\n useExpandedRef<RatingButtonsElement>(\n ref,\n innerRef,\n {\n status: pressedButton\n } as RatingButtonsElement,\n [pressedButton]\n );\n\n const parsedLikeButton = {\n ...likeButton,\n 'className': 'agora-btn-like',\n 'hasIcon': true,\n 'trailingIcon': 'agora-line-thumbs-up',\n 'trailingIconHover': 'agora-solid-thumbs-up',\n 'variant': variant ?? likeButton?.variant,\n 'darkMode': darkMode,\n 'iconOnly': iconOnly,\n 'aria-label': iconOnly ? likeButton?.children?.toString() : null\n } as ButtonProps;\n\n const parsedDislikeButton = {\n ...dislikeButton,\n 'className': 'agora-btn-dislike',\n 'hasIcon': true,\n 'trailingIcon': 'agora-line-thumbs-down',\n 'trailingIconHover': 'agora-solid-thumbs-down',\n 'variant': variant ?? dislikeButton?.variant,\n 'darkMode': darkMode,\n 'iconOnly': iconOnly,\n 'aria-label': iconOnly ? dislikeButton?.children?.toString() : null\n } as ButtonProps;\n\n return (\n <div {...props} className={ratingButtonClasses} ref={innerRef}>\n <div className={ratingButtonWrapperClasses}>\n {!!likeButton && createButton(parsedLikeButton, 'like')}\n {!!dislikeButton && createButton(parsedDislikeButton, 'dislike')}\n </div>\n </div>\n );\n};\n\nexport const RatingButtons = forwardRef<RatingButtonsElement, RatingButtonsProps>(InnerRatingButtons);\n","import React, {\n ComponentPropsWithRef,\n FocusEvent,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n useEffect,\n useId,\n useRef,\n useState\n} from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon } from '@/components/icon';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean, useExpandedRef } from '@/utils';\n\nimport { Feedback } from '@/components/shared/feedback';\nimport './rating-stars.scss';\n\nexport interface RatingStarsElement extends HTMLDivElement {\n rating: number;\n}\n\nexport interface RatingStarsProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'ref'> {\n /**\n * Label of the rating stars.\n */\n label?: ReactNode;\n /**\n * Hide rating stars label.\n */\n hideLabel?: BooleanProp;\n /**\n * Defines the max number of rating stars to render. Minimum value of 3.\n */\n maxRating?: number;\n /**\n * Enables dark mode.\n */\n darkMode?: BooleanProp;\n /**\n * Set the rating stars in readonly mode.\n */\n readOnly?: BooleanProp;\n /**\n * Change Event that is triggered whenever rating changes.\n */\n onChange?: (value: number) => void;\n /**\n * Default rating value.\n */\n value?: number;\n /**\n * Alternative text to apply in each star. It will be used along its star value.\n */\n starsLabel?: string;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasError?: BooleanProp;\n}\n\nconst InnerStars: ForwardRefRenderFunction<RatingStarsElement, RatingStarsProps> = (\n {\n label,\n hideLabel,\n starsLabel = '',\n maxRating = 3,\n darkMode = false,\n readOnly = false,\n className = '',\n value,\n onChange,\n hasError = false,\n hasFeedback = false,\n feedbackState = 'info',\n feedbackText = '',\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const stars = Array.from({ length: Math.max(3, maxRating) });\n\n const startWrapperRef = useRef<HTMLDivElement>(null);\n\n const [selectedIndex, setSelectedIndex] = useState<number>(value ? value - 1 : 0);\n\n const [hoverIndex, setHoverIndex] = useState<number>(0);\n\n const handleMouseDown = (evt: MouseEvent<HTMLDivElement>) => {\n if (stringToBoolean(readOnly)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const handleMouseEnter = (index: number) => {\n return () => {\n if (!stringToBoolean(readOnly)) {\n setHoverIndex(index);\n }\n };\n };\n\n const handleMouseLeave = () => {\n if (!stringToBoolean(readOnly)) {\n setHoverIndex(-1);\n }\n };\n\n const handleClick = (index: number) => {\n return () => {\n if (!stringToBoolean(readOnly)) {\n setSelectedIndex(index);\n }\n };\n };\n\n const onkeyDownHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (stringToBoolean(readOnly)) {\n return;\n }\n\n const { code } = evt;\n\n setSelectedIndex((last) => {\n if (code === 'ArrowLeft') {\n return Math.max(0, last - 1);\n }\n\n if (code === 'ArrowRight') {\n return Math.min(stars.length - 1, last + 1);\n }\n\n return last;\n });\n };\n\n const handleFocusStar = (evt: FocusEvent<HTMLDivElement>) => {\n const dataValue = parseInt(evt.target.getAttribute('data-star-value') ?? '0', 10);\n\n setSelectedIndex((last) => {\n return last < 0 ? dataValue : last;\n });\n };\n\n useEffect(() => {\n if (document.activeElement?.classList.contains('star') && startWrapperRef.current) {\n const nextFocusedStar = startWrapperRef.current.querySelector(\".star[tabindex = '0']\");\n if (nextFocusedStar) {\n (nextFocusedStar as HTMLElement).focus();\n }\n }\n\n asyncTrigger(() => onChange?.(selectedIndex + 1));\n }, [selectedIndex]);\n\n const ratingStarClasses = classNames(\n 'agora-rating-stars',\n { dark: stringToBoolean(darkMode) },\n\n { 'read-only': stringToBoolean(readOnly) },\n\n {\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n },\n\n className\n );\n\n const innerRef = useRef<HTMLDivElement>(null);\n useExpandedRef<RatingStarsElement>(\n ref,\n innerRef,\n {\n rating: selectedIndex + 1\n } as RatingStarsElement,\n [selectedIndex]\n );\n\n return (\n <div\n ref={innerRef}\n className={ratingStarClasses}\n {...props}\n role=\"radiogroup\"\n {...(stringToBoolean(hideLabel) ? { 'aria-label': label?.toString() } : { 'aria-labelledby': `label-${generatedId}` })}\n >\n <div className=\"flex flex-col gap-8\">\n {!stringToBoolean(hideLabel) && (\n <div id={`label-${generatedId}`} className=\"rating-label\">\n {label}\n </div>\n )}\n\n <div ref={startWrapperRef} className=\"rating-wrapper\">\n {stars.map((_, index) => {\n const starValue = index + 1;\n\n const isHovered = index <= hoverIndex;\n const isSelected = selectedIndex !== null && index <= selectedIndex;\n const iconName = isHovered || isSelected ? 'agora-solid-star' : 'agora-line-star';\n\n const starKey = `${generatedId}-star-${index}`;\n\n let tabIndexValue = -1;\n if (selectedIndex < 0) {\n tabIndexValue = index === 0 ? 0 : -1;\n } else {\n tabIndexValue = selectedIndex === index ? 0 : -1;\n }\n\n return (\n <div\n key={starKey}\n id={`${generatedId}-${index}`}\n className=\"star\"\n role=\"radio\"\n aria-checked={selectedIndex === index}\n tabIndex={tabIndexValue}\n aria-label={`${starsLabel} ${index + 1}`}\n onMouseDownCapture={handleMouseDown}\n onMouseEnter={handleMouseEnter(index)}\n onMouseLeave={handleMouseLeave}\n onClick={handleClick(index)}\n onKeyDown={onkeyDownHandler}\n onFocus={handleFocusStar}\n data-star-value={starValue}\n >\n <Icon name={iconName} aria-hidden />\n </div>\n );\n })}\n </div>\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const RatingStars = forwardRef<RatingStarsElement, RatingStarsProps>(InnerStars);\n","import React, { ComponentPropsWithoutRef, FC, ReactNode, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { RatingButtons, RatingButtonsProps, RatingStatus } from '@/components/ratings';\n\nimport { BooleanProp, HeadingLevel } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\n\nimport './feedback.scss';\n\nexport interface FeedbackProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * The title of the feedback.\n */\n title?: ReactNode;\n /**\n * The subtitle of the feedback.\n */\n subtitle?: ReactNode;\n /**\n * The rating button props.\n */\n ratingButtons?: RatingButtonsProps;\n /**\n * The message of the feedback.\n */\n message?: ReactNode;\n /**\n * The dark mode of the feedback.\n */\n darkMode?: BooleanProp;\n /**\n * Heading level to apply in the card.\n */\n headingLevel?: HeadingLevel;\n}\n\nexport const Feedback: FC<FeedbackProps> = ({\n title,\n subtitle,\n ratingButtons,\n message,\n darkMode = false,\n className,\n headingLevel: Heading = 'h3',\n ...props\n}) => {\n const [showMessage, setShowMessage] = useState(false);\n\n const handleChange = (status: RatingStatus) => {\n setShowMessage(status !== 'neutral');\n asyncTrigger(() => ratingButtons?.onChange?.(status));\n };\n\n const feedbackClasses = classNames('agora-feedback', stringToBoolean(darkMode) ? 'darkMode' : '', className);\n\n const parsedRatingButtons: RatingButtonsProps = {\n ...ratingButtons,\n darkMode: stringToBoolean(darkMode)\n };\n\n return (\n <div className={feedbackClasses} {...props}>\n {(title || subtitle) && (\n <div className=\"xs:col-span-4 md:col-span-5 xl:col-span-6\">\n {title && <Heading className=\"title\">{title}</Heading>}\n {subtitle && <p className=\"subtitle\">{subtitle}</p>}\n </div>\n )}\n {ratingButtons && (\n <div className=\"xs:col-span-4 md:col-span-3 xl:col-span-3\">\n <RatingButtons {...parsedRatingButtons} onChange={handleChange} />\n </div>\n )}\n {showMessage && message && (\n <div className=\"xs:col-span-4 md:col-span-5 xl:col-span-3\">\n <p className=\"message\">{message}</p>\n </div>\n )}\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\n\nconst FooterBrandBadge: FC<{\n brandImage: LinkableImagesProps;\n badgeImage?: LinkableImagesProps;\n}> = ({ brandImage, badgeImage }) => {\n return (\n <div className=\"grid items-center xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 xs:pt-32 md:pt-64 xs:pb-32 xl:pb-64\">\n <div className=\"xs:col-span-2 md:col-span-4 xl:col-span-6\">\n {brandImage.link && brandImage.image && (\n <a\n {...brandImage.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={brandImage.image.alt} {...brandImage.image} />\n </a>\n )}\n {!brandImage.link && brandImage.image && <img {...brandImage.image} alt={brandImage.image.alt} />}\n </div>\n <div className=\"xs:col-span-2 md:col-span-4 xl:col-span-6 justify-self-end\">\n {badgeImage?.link && badgeImage?.image && (\n <a\n {...badgeImage.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={badgeImage.image.alt} {...badgeImage.image} />\n </a>\n )}\n {badgeImage && !badgeImage.link && badgeImage.image && <img {...badgeImage.image} alt={badgeImage.image.alt} />}\n </div>\n </div>\n );\n};\n\nexport { FooterBrandBadge };\n","import React, { FC, ReactNode } from 'react';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\n\nconst FooterCaptionPartners: FC<{\n caption: string | ReactNode;\n partnersLogos: LinkableImagesProps[];\n}> = ({ caption, partnersLogos }) => {\n return (\n <div className=\"grid items-center xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 py-32\">\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-6\">\n <span className=\"text-m-regular text-[var(--color-neutral-500)]\">{caption}</span>\n </div>\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-6 md:justify-self-end md:w-[calc(100%+32px)]\">\n <ul className=\"flex flex-wrap md:justify-end xs:gap-32 md:gap-[30px]\">\n {partnersLogos\n .filter((_i, index) => index < 10)\n .map((partner, index) => {\n const key = `logo-${index}`;\n\n return (\n <li key={key}>\n {partner?.link && partner?.image && (\n <a\n {...partner.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 opacity-50 hover:opacity-100 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)] focus:opacity-100\"\n >\n <img alt={partner.image.alt} {...partner.image} />\n </a>\n )}\n {!partner?.link && partner?.image && <img {...partner?.image} alt={partner?.image.alt} />}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n};\n\nexport { FooterCaptionPartners };\n","import React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\n\nimport { Anchor } from '@/components/anchor';\nimport { Icon } from '@/components/icon';\nimport { LinkableIconsProps } from '../models/LinkableIconsProps';\n\nconst FooterSocialUsefulCopyright: FC<{\n socialsLink?: LinkableIconsProps[];\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n copyright: string | ReactNode;\n}> = ({ socialsLink, usefulLinks, copyright }) => {\n return (\n <div className=\"grid items-center xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 md:gap-x-32\">\n <div className=\"xs:col-span-4 md:col-start-2 md:col-span-6 xl:col-span-4 xs:py-16 md:py-32 xl:py-64\">\n {socialsLink && (\n <ul className=\"flex flex-wrap xs:justify-start md:justify-center xl:justify-start xs:gap-x-8 md:gap-x-24 xl:gap-x-24 -ml-16 xs:my-16 md:my-0\">\n {socialsLink\n .filter((_i, index) => index < 10)\n .map((social, index) => {\n const key = `social-${index}`;\n return (\n <li key={key}>\n {social?.link && social?.icon && (\n <a\n {...social.link}\n className=\"group ease-in-out overflow-hidden relative flex flex-wrap justify-center content-center outline-none border-2 border-transparent rounded-4 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)] h-56 w-56 text-white\"\n >\n <Icon\n aria-hidden\n name={social.icon}\n dimensions=\"m\"\n className=\"absolute ease-in-out translate-x-0 translate-y-2/4 opacity-100 group-hover:opacity-0 group-focus:opacity-0 group-focus:translate-x-0 group-focus:-translate-y-0 group-hover:translate-x-0 group-hover:translate-y-0 fill-white\"\n />\n <Icon\n aria-hidden\n name={social.iconHover}\n dimensions=\"m\"\n className=\"absolute ease-in-out translate-x-0 translate-y-24 opacity-0 group-hover:opacity-100 group-focus:opacity-100 group-hover:translate-x-0 group-hover:translate-y-2/4 group-focus:translate-x-0 group-focus:translate-y-2/4 fill-white\"\n />\n </a>\n )}\n {social && !social.link && social.icon && <Icon name={social.icon} alt={social.iconAlt} />}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-1 min-h-full min-w-full xl:relative\">\n {socialsLink && socialsLink.length > 0 && (copyright || (usefulLinks && usefulLinks.length > 0)) && (\n <hr\n aria-hidden\n className=\"border-1 border-white opacity-5 xl:h-[calc(100%-2px)] max-xl:w-full xl:bottom-0 xs:left-0 md:left-0 xl:left-1/2 absolute\"\n />\n )}\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7 xs:py-32 md:py-64\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7\">\n {usefulLinks && (\n <ul className=\"flex flex-wrap xs:flex-col md:flex-row xl:flex-row md:justify-center xl:justify-end xs:gap-x-32 md:gap-[30px]\">\n {usefulLinks\n .filter((_i, index) => index < 8)\n .map((link, index) => {\n const key = `useful-${index}`;\n return (\n <li key={key} className=\"py-8\">\n <Anchor {...link} darkMode appearance=\"link\" variant=\"neutral\" />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7 mt-32\">\n <span className=\"text-s-regular text-[var(--color-neutral-500)] flex md:justify-center xl:justify-end\">{copyright}</span>\n </div>\n </div>\n </div>\n );\n};\n\nexport { FooterSocialUsefulCopyright };\n","import React, { FC } from 'react';\nimport { FooterBrandBadge } from './footer-brand-badge';\nimport { FooterCaptionPartners } from './footer-caption-partners';\nimport { FooterSocialUsefulCopyright } from './footer-social-useful-copyright';\nimport { FederatedFooterProps } from '../federated-footer';\nimport { PublicFooterProps } from '../public-footer/public-footer';\n\nconst MainFooter: FC<FederatedFooterProps | PublicFooterProps> = ({\n brandImage,\n badgeImage,\n caption,\n partnersLogos,\n socialsLink,\n usefulLinks,\n copyright\n}) => {\n return (\n <div className=\"bg-[var(--color-primary-900)]\">\n <div className=\"container mx-auto\">\n <FooterBrandBadge brandImage={brandImage} badgeImage={badgeImage} />\n\n <hr aria-hidden className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n\n <FooterCaptionPartners caption={caption} partnersLogos={partnersLogos} />\n\n <hr aria-hidden className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n\n <FooterSocialUsefulCopyright socialsLink={socialsLink} usefulLinks={usefulLinks} copyright={copyright} />\n </div>\n </div>\n );\n};\n\nexport { MainFooter };\n","import React, { FC } from 'react';\nimport { Anchor } from '@/components/anchor';\nimport { BookmarkIcon } from '@/components/shared/bookmark-icon/bookmark-icon';\nimport { CardFooterProps } from '@/components/footer';\n\nconst FederatedFooterCard: FC<CardFooterProps> = ({ title, description, links }) => {\n return (\n <div className=\"footer-gradient\">\n <div className=\"container mx-auto\">\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32\">\n <div className=\"col-span-5 w-[calc(100%+32px)] bg-[var(--color-primary-900)] h-128 self-end xs:hidden md:hidden xl:block\" />\n <div className=\"grid gap-x-32 xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-7 xs:col-span-4 md:col-span-8 xl:col-span-7 xl:col-start-6 xs:pb-32 md:pb-64 xl:pb-64 bg-[var(--color-primary-100)]\">\n <div className=\"xs:col-span-4 md:col-span-6 xl:col-start-2 xl:col-span-7\">\n <BookmarkIcon aria-hidden className=\"mb-32\" />\n {title && <h2 className=\"xs:text-m-bold md:text-l-bold text-[var(--color-primary-900)]\">{title}</h2>}\n {description && <p className=\"text-m-regular text-[var(--color-primary-900)] mt-16\">{description}</p>}\n </div>\n {links && (\n <ul className=\"grid xs:grid-cols-1 md:grid-cols-3-auto xs:gap-0 md:gap-[28px] xs:col-span-4 md:col-span-8 xl:col-start-2 xl:col-span-7 mt-32\">\n {links\n .filter((_i, index) => index < 3)\n .map((link, index) => {\n const key = `link-${index}`;\n return (\n <li key={key}>\n <Anchor\n {...link}\n className=\"xs:flex xs:justify-between\"\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-solid-arrow-right-circle\"\n />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport { FederatedFooterCard };\n","import { CardFooterProps, LinkableIconsProps, LinkableImagesProps } from '@/components/footer';\nimport React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\n\nimport { MainFooter } from '../shared-components/footer-main';\nimport { FederatedFooterCard } from './federated-footer-card';\nimport './federated-footer.scss';\n\nexport interface FederatedFooterProps {\n /**\n * Informative card. Links limited to first 3, remaining array is discarded.\n */\n card?: CardFooterProps;\n\n /**\n * Image on left side with/without link.\n */\n brandImage: LinkableImagesProps;\n\n /**\n * Image on right side with/without link.\n */\n badgeImage?: LinkableImagesProps;\n\n /**\n * Small descriptive text\n */\n caption: string | ReactNode;\n\n /**\n * List of images with or without link. Links limited to first 10, remaining array is discarded.\n */\n partnersLogos: LinkableImagesProps[];\n\n /**\n * List of icons with/without link. Links limited to first 10, remaining array is discarded.\n */\n socialsLink?: LinkableIconsProps[];\n\n /**\n * List of links. Links limited to first 8, remaining array is discarded.\n */\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n\n /*\n * Copyright text\n */\n copyright: string;\n}\n\nconst FederatedFooter: FC<FederatedFooterProps> = ({\n card,\n brandImage,\n badgeImage,\n caption,\n partnersLogos,\n socialsLink,\n usefulLinks,\n copyright\n}) => {\n return (\n <div className=\"agora-footer\">\n {card && <FederatedFooterCard {...card} />}\n <MainFooter\n brandImage={brandImage}\n badgeImage={badgeImage}\n caption={caption}\n partnersLogos={partnersLogos}\n socialsLink={socialsLink}\n usefulLinks={usefulLinks}\n copyright={copyright}\n />\n </div>\n );\n};\n\nexport { FederatedFooter };\n","import classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\n\nconst PublicFooterContacts: FC<{ contacts: ContactsFooterProps[]; contactsOnly: boolean; hasCardLinks: boolean }> = ({\n contacts,\n contactsOnly,\n hasCardLinks\n}) => {\n const contactsClassName = classNames('grid gap-x-32 xs:gap-y-32 md:gap-y-64 md:content-center', {\n 'xs:pt-32 md:pt-32 xl:pt-64': contactsOnly,\n 'xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-6 xs:col-span-4 md:col-span-8 xl:col-span-6': !hasCardLinks,\n 'xs:grid-cols-4 md:grid-cols-4 xl:grid-cols-6 xs:col-span-4 md:col-span-4 xl:col-span-6': !contactsOnly && hasCardLinks\n });\n return (\n <div className={contactsClassName}>\n {contacts\n ?.filter((_i, index) => index < 2)\n .map((contact, index) => {\n const key = `contacts-${index}`;\n return (\n <div key={key} className=\"xs:col-span-4 md:col-span-4 xl:col-span-3\">\n <div className=\"text-m-bold text-[var(--color-primary-900)] mb-8\">{contact.title}</div>\n <div className=\"text-m-regular text-[var(--color-primary-900)]\">{contact.description}</div>\n {contact.phones && (\n <div>\n {contact.phones[0] && (\n <a href={`tel:${contact.phones[0]}`}>\n <span className=\"text-l-bold text-[var(--color-primary-900)]\">{contact.phones[0].match(/.{1,3}/g)?.join(' ')} </span>\n </a>\n )}\n {contact.phones[1] && <span className=\"text-m-regular text-[var(--color-primary-900)]\">{` ${contact.phones[1]} `}</span>}\n {contact.phones[2] && (\n <a href={`tel:${contact.phones[2]}`}>\n <span className=\"text-l-bold text-[var(--color-primary-900)]\">{contact.phones[2].match(/.{1,3}/g)?.join(' ')}</span>\n </a>\n )}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport { PublicFooterContacts };\n","import classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { Anchor } from '@/components/anchor';\n\nimport { CardFooterProps } from '../models';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\nimport { PublicFooterContacts } from './public-footer-contacts';\nimport { BookmarkIcon } from '@/components/shared/bookmark-icon/bookmark-icon';\n\nconst PublicFooterHighlightCard: FC<{ card?: CardFooterProps; contacts?: ContactsFooterProps[]; hasCardLinks: boolean }> = ({\n card,\n contacts,\n hasCardLinks\n}) => {\n const cardClassName = classNames(\n 'grid gap-x-32 xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-8 xs:col-span-4 md:col-span-8 xl:col-span-8 xl:row-span-1 bg-[var(--color-primary-100)] pb-32 relative',\n {\n 'pb-64': !contacts\n }\n );\n\n const cardHelpClassName = classNames('z-[1]', {\n 'xs:col-span-4 md:col-span-6 xl:col-span-6': hasCardLinks,\n 'xs:col-span-4 md:col-span-8 xl:col-span-6': !hasCardLinks\n });\n\n const contactsClassName = classNames('grid gap-x-32 xl:row-span-1 bg-[var(--color-primary-100)]', {\n 'xs:grid-cols-4 md:grid-cols-4 xl:grid-cols-8 xs:col-span-4 md:col-span-4 xl:col-span-8 xs:pb-32 md:pb-64 xl:pb-64':\n card && hasCardLinks && contacts,\n 'xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-8 xs:col-span-4 md:col-span-8 xl:col-span-8 xs:pb-32 md:pb-64 xl:pb-64':\n card && !hasCardLinks && contacts,\n 'xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-8 xs:col-span-4 md:col-span-8 xl:col-span-8 xs:pb-32 md:pb-32 xl:pb-64 ':\n !card && !hasCardLinks && contacts\n });\n return (\n <>\n {card && (\n <div className={cardClassName}>\n {hasCardLinks && (\n <div\n aria-hidden\n className=\"xl:hidden absolute left-0 xs:w-[calc(100%+32px)] md:w-[calc(100%+64px)] xl:w-[calc(100%+64px)] h-full bg-[var(--color-primary-100)] z-0\"\n />\n )}\n <div className={cardHelpClassName}>\n <BookmarkIcon aria-hidden className=\"mb-32\" />\n {card?.title && <h2 className=\"xs:text-m-bold md:text-l-bold text-[var(--color-primary-900)]\">{card.title}</h2>}\n {card?.description && <p className=\"text-m-regular text-[var(--color-primary-900)] mt-16\">{card.description}</p>}\n </div>\n {card.links && (\n <ul className=\"xs:col-span-4 md:col-span-8 xl:col-span-6 mt-32 inline-flex gap-x-32 xs:flex-col md:flex-row xl:flex-row\">\n {card.links\n .filter((_i, index) => index < 3)\n .map((link, index) => {\n const key = `link-${index}`;\n return (\n <li key={key} className=\"py-8\">\n <Anchor\n {...link}\n className=\"xs:flex xs:justify-between\"\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-solid-arrow-right-circle\"\n />\n </li>\n );\n })}\n </ul>\n )}\n </div>\n )}\n {contacts && (\n <div className={contactsClassName}>\n {contacts && <PublicFooterContacts contacts={contacts} contactsOnly={!card && !hasCardLinks} hasCardLinks={hasCardLinks} />}\n </div>\n )}\n </>\n );\n};\n\nexport { PublicFooterHighlightCard };\n","import React, { FC } from 'react';\n\nimport { Anchor } from '@/components/anchor';\nimport { CardFooterProps } from '../models';\n\nconst PublicFooterHighlightCardLinks: FC<CardFooterProps> = (cardLinks) => {\n return (\n <>\n {cardLinks?.title && <h2 className=\"xs:text-m-bold md:text-l-bold text-white\">{cardLinks.title}</h2>}\n {cardLinks?.links && (\n <ul className=\"mt-32\">\n {cardLinks.links\n .filter((_i, index) => index < 5)\n .map((link, index) => {\n const key = `link-${index}`;\n return (\n <li key={key} className=\"py-8\">\n <Anchor {...link} darkMode appearance=\"link\" variant=\"neutral\" />\n </li>\n );\n })}\n </ul>\n )}\n </>\n );\n};\n\nexport { PublicFooterHighlightCardLinks };\n","import classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { CardFooterProps } from '../models/CardFooterProps';\nimport { CardLinksFooterProps } from '../models/CardLinksFooterProps';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\nimport { PublicFooterHighlightCard } from './public-footer-highlight-card';\nimport { PublicFooterHighlightCardLinks } from './public-footer-highlight-card-links';\n\nconst PublicFooterHighlight: FC<{ card?: CardFooterProps; cardLinks?: CardLinksFooterProps; contacts?: ContactsFooterProps[] }> = ({\n card,\n cardLinks,\n contacts\n}) => {\n const footerHighlightClassName = classNames('footer-highlight', {\n 'footer-highlight-only-card': card && contacts && !cardLinks,\n 'footer-highlight-only-help': card && !contacts && !cardLinks,\n 'footer-highlight-only-contacts': !card && contacts && !cardLinks\n });\n\n const cardFooterClassName = classNames('grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-x-32 xl:grid-rows-1', {\n 'xl:grid-flow-col': card && cardLinks,\n 'xl:grid-flow-row': card && !cardLinks\n });\n return (\n <div className={footerHighlightClassName}>\n <div className=\"container mx-auto\">\n <div className={cardFooterClassName}>\n <PublicFooterHighlightCard card={card} contacts={contacts} hasCardLinks={!!cardLinks} />\n {cardLinks && (\n <div className=\"grid gap-x-32 xs:grid-cols-4 md:grid-cols-4 xl-grid-cols-4 xs:col-span-4 md:col-span-4 xl:col-span-4 xl:row-span-2 bg-[var(--color-primary-900)] relative\">\n <div\n aria-hidden\n className=\"md:hidden xl:hidden absolute w-[calc(100%+64px)] -left-[32px] h-full bg-[var(--color-primary-900)] z-0\"\n />\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-4 xs:py-32 xs:pl-0 md:py-64 md:pl-64 xl:py-64 xl:pl-64 z-[1]\">\n <PublicFooterHighlightCardLinks {...cardLinks} />\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport { PublicFooterHighlight };\n","import React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\nimport { CardLinksFooterProps } from '../models/CardLinksFooterProps';\nimport { LinkableIconsProps } from '../models/LinkableIconsProps';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\nimport { FooterSocialUsefulCopyright } from '../shared-components/footer-social-useful-copyright';\nimport { PublicFooterHighlightCardLinks } from './public-footer-highlight-card-links';\n\nconst PublicFooterMainPlusCardLinks: FC<{\n brandImage: LinkableImagesProps;\n badgeImage?: LinkableImagesProps;\n caption: string | ReactNode;\n partnersLogos: LinkableImagesProps[];\n socialsLink?: LinkableIconsProps[];\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n copyright: string | ReactNode;\n cardLinks: CardLinksFooterProps;\n}> = ({ brandImage, badgeImage, caption, partnersLogos, socialsLink, usefulLinks, copyright, cardLinks }) => {\n return (\n <div className=\"bg-[var(--color-primary-900)]\">\n <div className=\"container mx-auto\">\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32\">\n <div className=\"xs:col-span-4 md:col-span-3 xl:col-span-6 xs:pt-32 md:pt-64\">\n <div className=\"mb-32\">\n {brandImage.link && brandImage.image && (\n <a\n {...brandImage.link}\n className=\"inline-block border-2 border-transparent rounded-4 outline-none focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={brandImage.image.alt} {...brandImage.image} />\n </a>\n )}\n {!brandImage.link && brandImage.image && <img {...brandImage.image} alt={brandImage.image.alt} />}\n </div>\n <div className=\"mb-64\">\n <span className=\"text-m-regular text-[var(--color-neutral-500)]\">{caption}</span>\n </div>\n <div>\n {badgeImage?.link && badgeImage?.image && (\n <a\n {...badgeImage.link}\n className=\"inline-block border-2 border-transparent rounded-4 outline-none focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)]\"\n >\n <img alt={badgeImage.image.alt} {...badgeImage.image} />\n </a>\n )}\n {badgeImage && !badgeImage.link && badgeImage.image && <img {...badgeImage.image} alt={badgeImage.image.alt} />}\n </div>\n </div>\n <div className=\"xs:col-span-4 md:col-span-1 xl:col-span-1 min-h-full min-w-full md:relative xl:relative\">\n <hr\n aria-hidden\n className=\"border-1 border-white opacity-5 md:h-[calc(100%-2px)] xl:h-[calc(100%-2px)] max-md:w-full md:bottom-0 right-0 absolute\"\n />\n </div>\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-4 xs:pt-32 md:pt-64\">\n <div className=\"xs:col-span-4 md:col-span-4 xl:col-span-4 xs:py-32 xs:pl-0 md:pt-0 md:pb-64 md:pl-0 xl:pl-32 xl:pb-64 xl:pt-0\">\n <PublicFooterHighlightCardLinks {...cardLinks} />\n </div>\n </div>\n </div>\n\n <hr aria-hidden className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n <div className=\"grid xs:justify-items-center md:justify-items-center xl:justify-items-start xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 py-32\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-12\">\n <ul className=\"flex flex-wrap xs:gap-32 md:gap-[30px]\">\n {partnersLogos\n .filter((_i, index) => index < 10)\n .map((partner, index) => {\n const key = `logo-${index}`;\n\n return (\n <li key={key}>\n {partner?.link && partner?.image && (\n <a\n {...partner.link}\n className=\"inline-block outline-none border-2 border-transparent rounded-4 opacity-50 focus:rounded-none focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-[var(--color-focus)] focus:opacity-100 hover:opacity-100\"\n >\n <img alt={partner.image.alt} {...partner.image} />\n </a>\n )}\n {!partner?.link && partner?.image && <img {...partner?.image} alt={partner?.image.alt} />}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n <hr aria-hidden className=\"border-1 border-white opacity-5 w-full absolute left-0\" />\n\n <FooterSocialUsefulCopyright socialsLink={socialsLink} usefulLinks={usefulLinks} copyright={copyright} />\n </div>\n </div>\n );\n};\n\nexport { PublicFooterMainPlusCardLinks };\n","import React, { AnchorHTMLAttributes, FC, ReactNode } from 'react';\nimport { CardFooterProps } from '../models/CardFooterProps';\nimport { CardLinksFooterProps } from '../models/CardLinksFooterProps';\nimport { ContactsFooterProps } from '../models/ContactsFooterProps';\nimport { LinkableIconsProps } from '../models/LinkableIconsProps';\nimport { LinkableImagesProps } from '../models/LinkableImagesProps';\nimport { MainFooter } from '../shared-components/footer-main';\nimport { PublicFooterHighlight } from './public-footer-highlight';\nimport { PublicFooterMainPlusCardLinks } from './public-footer-main-plus-card-links';\nimport './public-footer.scss';\n\nexport interface PublicFooterProps {\n /**\n * Informative card. Links limited to first 3, remaining array is discarded.\n */\n card?: CardFooterProps;\n\n /**\n * Contacts limited to first 2, remaining array is discarded.\n */\n contacts?: ContactsFooterProps[];\n\n /*\n * Informative list of links. Links limited to first 5, remaining array is discarded.\n */\n cardLinks?: CardLinksFooterProps;\n\n /**\n * Image on left side with/without link.\n */\n brandImage: LinkableImagesProps;\n\n /**\n * Image on right side with/without link.\n */\n badgeImage?: LinkableImagesProps;\n\n /**\n * Small descriptive text\n */\n caption: string | ReactNode;\n\n /**\n * List of images with or without link. Links limited to first 10, remaining array is discarded.\n */\n partnersLogos: LinkableImagesProps[];\n\n /**\n * List of icons with/without link. Links limited to first 10, remaining array is discarded.\n */\n socialsLink?: LinkableIconsProps[];\n\n /**\n * List of links. Links limited to first 8, remaining array is discarded.\n */\n usefulLinks?: AnchorHTMLAttributes<HTMLAnchorElement>[];\n\n /*\n * Copyright text\n */\n copyright: string | ReactNode;\n}\n\nconst PublicFooter: FC<PublicFooterProps> = ({\n card,\n contacts,\n cardLinks,\n brandImage,\n badgeImage,\n caption,\n partnersLogos,\n socialsLink,\n usefulLinks,\n copyright\n}) => {\n return (\n <div className=\"agora-footer\">\n {(card || contacts || !cardLinks) && (\n <>\n <PublicFooterHighlight card={card} cardLinks={cardLinks} contacts={contacts} />\n {(card || cardLinks || contacts) && (\n <hr\n aria-hidden\n className=\"border-1 xs:border-white md:border-transparent xl:border-transparent opacity-5 w-full absolute left-0\"\n />\n )}\n <MainFooter\n brandImage={brandImage}\n badgeImage={badgeImage}\n caption={caption}\n partnersLogos={partnersLogos}\n socialsLink={socialsLink}\n usefulLinks={usefulLinks}\n copyright={copyright}\n />\n </>\n )}\n {!card && cardLinks && (\n <PublicFooterMainPlusCardLinks\n cardLinks={cardLinks}\n brandImage={brandImage}\n badgeImage={badgeImage}\n caption={caption}\n partnersLogos={partnersLogos}\n socialsLink={socialsLink}\n usefulLinks={usefulLinks}\n copyright={copyright}\n />\n )}\n </div>\n );\n};\n\nexport { PublicFooter };\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, HTMLProps } from 'react';\n\nimport classNames from 'classnames';\n\nimport './glossary-letters.scss';\n\nexport type LetterStatus = 'default' | 'disabled' | 'selected';\n\nexport interface GlossaryLetter extends HTMLProps<HTMLAnchorElement> {\n /**\n * Letter to be rendered\n */\n letter: string;\n /**\n * Glossary letter status\n */\n status: LetterStatus;\n /**\n * Data attributes\n */\n [dataAttribute: `data-${string}`]: string;\n}\n\nexport interface GlossaryLettersProps extends ComponentPropsWithRef<'div'> {\n /**\n * Letters Array\n */\n letters?: GlossaryLetter[];\n}\n\nexport const InnerGlossaryLetters: ForwardRefRenderFunction<HTMLDivElement, GlossaryLettersProps> = ({ letters, ...props }, ref) => {\n const NavElementClass = classNames('navElement');\n const GlossaryContainerClass = classNames('glossary-container');\n\n return (\n <nav {...props} className={NavElementClass} ref={ref}>\n <div className={GlossaryContainerClass}>\n {letters?.map(({ letter, status, ...anchorProps }) => {\n const isDisabled = status === 'disabled';\n\n const isSelected = status === 'selected';\n\n const letterClassName = classNames('letter', { 'letter-disabled': isDisabled }, { 'letter-selected': isSelected });\n\n const href = `#${letter}`;\n\n if (isDisabled) {\n return (\n <span key={`${letter}-${href}`} className={letterClassName} aria-disabled=\"true\">\n {letter}\n </span>\n );\n }\n\n return (\n <a key={`${letter}-${href}`} {...anchorProps} className={letterClassName} href={href}>\n {letter}\n </a>\n );\n })}\n </div>\n </nav>\n );\n};\n\nexport const GlossaryLetters = forwardRef<HTMLDivElement, GlossaryLettersProps>(InnerGlossaryLetters);\n","import classNames from 'classnames';\nimport React, {\n FC,\n forwardRef,\n ForwardRefRenderFunction,\n HTMLProps,\n MouseEvent,\n MutableRefObject,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n Ref,\n useEffect,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { AnchorProps } from '@/components/anchor';\nimport { Avatar, AvatarProps } from '@/components/avatar';\nimport { ButtonProps } from '@/components/button';\nimport { Icon } from '@/components/icon';\nimport './menu-item.scss';\n\n/**\n * Menu item type\n */\nexport type MenuItemType = 'primary' | 'search' | 'menu' | 'secondary' | 'user' | 'avatar' | 'close';\n\nconst IconWrapper: FC<{\n name: string;\n iconHover: string;\n iconAltText?: string;\n className?: string;\n hasChildren: boolean;\n darkMode: BooleanProp | undefined;\n}> = ({ name = 'no-icon', iconHover = 'no-icon', iconAltText, className, hasChildren, darkMode }) => {\n const wrapperClassName = classNames('icon-wrapper', className);\n const lineClassName = classNames('line', {\n 'fill-white': stringToBoolean(darkMode),\n 'fill-[var(--color-neutral-900)]': !stringToBoolean(darkMode)\n });\n const solidClassName = classNames('solid', {\n 'fill-white': stringToBoolean(darkMode),\n 'fill-[var(--color-neutral-900)]': !stringToBoolean(darkMode)\n });\n\n return (\n <span className={wrapperClassName}>\n <Icon\n name={name.replace('solid', 'line')}\n className={lineClassName}\n dimensions=\"m\"\n aria-hidden={!iconAltText}\n {...(!hasChildren ? { alt: iconAltText } : {})}\n />\n <Icon\n name={(iconHover ?? name).replace('line', 'solid')}\n className={solidClassName}\n dimensions=\"m\"\n aria-hidden={!iconAltText}\n {...(!hasChildren ? { alt: iconAltText } : {})}\n />\n </span>\n );\n};\n\ntype BaseProps = {\n /**\n * Remove default icons.\n */\n noIcons?: BooleanProp;\n\n /**\n * Type of menu item\n */\n itemType: MenuItemType;\n\n /**\n * Menu on dark background\n */\n darkMode?: BooleanProp;\n\n /**\n * Menu item is a action button\n */\n actionItem?: BooleanProp;\n\n /**\n * Children content.\n */\n children?: ReactNode;\n\n /**\n * Vertically , used with primary or secondary menu type, allow to change style of current option\n */\n vertically?: BooleanProp;\n};\n\nexport type MenuItemProps = (BaseProps & HTMLProps<HTMLButtonElement | HTMLAnchorElement | HTMLDivElement>) | (BaseProps & AvatarProps);\n\nconst ContentMenuItem: FC<MenuItemProps> = ({ itemType, children, darkMode, noIcons = false, ...props }) => {\n const leadingClassName = classNames(`${children ? 'mr-8' : ''} ${itemType}`);\n const trailingClassName = classNames(`${children ? 'ml-8' : ''} ${itemType}`);\n const childrenClassName = classNames('children-content', {\n 'text-m-regular': itemType !== 'secondary' && itemType !== 'menu',\n 'text-m-semibold': itemType === 'secondary' || itemType === 'menu',\n 'text-white': stringToBoolean(darkMode),\n 'text-[var(--color-neutral-900)]': !stringToBoolean(darkMode)\n });\n\n const changeIconOpen = () => {\n if (itemType === 'search' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-search';\n }\n if (itemType === 'menu' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-menu';\n }\n if (itemType === 'user' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-user';\n }\n if (itemType === 'user' && stringToBoolean(props['aria-expanded'])) {\n return 'agora-line-x';\n }\n return 'agora-line-x';\n };\n const changeIconOpenHover = () => {\n if (itemType === 'search' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-search';\n }\n if (itemType === 'menu' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-menu';\n }\n if (itemType === 'user' && !stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-user';\n }\n if (itemType === 'user' && stringToBoolean(props['aria-expanded'])) {\n return 'agora-solid-x';\n }\n return 'agora-solid-x';\n };\n\n return (\n <>\n {!stringToBoolean(noIcons) && (itemType === 'search' || itemType === 'menu' || itemType === 'user' || itemType === 'close') && (\n <IconWrapper\n className={leadingClassName}\n name={changeIconOpen()}\n iconHover={changeIconOpenHover()}\n hasChildren={!!children}\n darkMode={darkMode}\n />\n )}\n {children && itemType !== 'close' && <span className={childrenClassName}>{children}</span>}\n {!stringToBoolean(noIcons) && (itemType === 'primary' || itemType === 'secondary') && (\n <IconWrapper\n className={trailingClassName}\n name=\"agora-line-chevron-down\"\n iconHover=\"agora-solid-chevron-down\"\n hasChildren={!!children}\n darkMode={darkMode}\n />\n )}\n </>\n );\n};\n\nexport interface MenuItemRef {\n current: HTMLButtonElement | HTMLAnchorElement | null;\n toggleMenuItem: () => void;\n}\n\nexport type ExtendedInterfaceMenu = HTMLButtonElement | HTMLAnchorElement | AvatarProps | MenuItemRef | null;\n\nexport const InnerMenuItem: ForwardRefRenderFunction<ExtendedInterfaceMenu, MenuItemProps> = (\n { itemType = 'primary', darkMode = false, actionItem = false, children, className, noIcons = false, vertically = false, ...props },\n ref: Ref<ExtendedInterfaceMenu>\n) => {\n const menuItemClassName = classNames(\n {\n 'agora-menu-item text-m-regular text-white darkMode default': stringToBoolean(darkMode) && itemType === 'primary',\n 'agora-menu-item text-m-regular text-white darkMode secondary ': stringToBoolean(darkMode) && itemType !== 'primary',\n 'agora-menu-item text-m-regular text-neutral-900 secondary ': !stringToBoolean(darkMode) && itemType !== 'primary',\n 'agora-menu-item text-m-regular text-neutral-900 default': !stringToBoolean(darkMode) && itemType === 'primary',\n 'agora-menu-item text-m-regular justify-center': !children && itemType !== 'avatar',\n 'agora-menu-item avatar': itemType === 'avatar',\n 'vertically': stringToBoolean(vertically) && (itemType === 'primary' || itemType === 'secondary')\n },\n className\n );\n\n const [ariaExpanded, setAriaExpanded] = useState(stringToBoolean(props['aria-expanded']));\n\n const menuItemRef = useRef<HTMLButtonElement | HTMLAnchorElement | null>(null);\n\n const toggleExpanded = () => {\n const { current } = menuItemRef as MenuItemRef;\n if (current?.hasAttribute('aria-expanded')) {\n const previousAriaExpanded = !stringToBoolean(current?.getAttribute('aria-expanded') ?? false);\n current?.setAttribute('aria-expanded', previousAriaExpanded.toString());\n setAriaExpanded(previousAriaExpanded);\n }\n };\n\n const onMouseDownHandler = (evt: MouseEvent<any>) => {\n evt.preventDefault();\n evt.currentTarget?.classList.add('active');\n props.onMouseDown?.(evt);\n };\n\n const onMouseUpHandler = (evt: MouseEvent<any>) => {\n evt.preventDefault();\n evt.currentTarget?.classList.remove('active');\n props.onMouseUp?.(evt);\n };\n\n const onMouseLeaveHandler = (evt: MouseEvent<any>) => {\n evt.preventDefault();\n evt.currentTarget?.classList.remove('active');\n props.onMouseLeave?.(evt);\n };\n\n const onKeyDownHandler = (evt: ReactKeyboardEvent<any>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n evt.currentTarget?.classList.add('active');\n }\n\n props.onKeyDown?.(evt);\n };\n\n const onKeyUpHandler = (evt: ReactKeyboardEvent<any>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n evt.currentTarget?.classList.remove('active');\n evt.currentTarget?.setAttribute('data-custom-triggered-click', 'true');\n evt.currentTarget?.click();\n }\n props.onKeyUp?.(evt);\n };\n\n const onClickHandler = (evt: MouseEvent<any>) => {\n // TRUE MOUSE CLICK\n if (evt.detail > 0) {\n props.onClick?.(evt);\n if (!stringToBoolean(noIcons)) {\n evt.preventDefault();\n }\n toggleExpanded();\n return;\n }\n\n toggleExpanded();\n\n // CLICK FROM KEYBOARD\n\n // NEED TO CHECK THIS ATTRIBUTE BECAUSE FIREFOX DOES NOT TRIGGER CLICK EVENTS WHENEVER THE ENTER/SPACE/NUM PAD ENTER KEY IS PRESSED.\n // TO FIX THAT INCONSISTENCY, WE ADD A CUSTOM ATTRIBUTE TO SIGNAL THE ARTIFICIAL CLICK TRIGGER AND PREVENT THE CHROMIUM BASED BROWSERS OF DUPLICATE CLICK EVENTS.\n // ON KEYUP THE CLICK EVENT IS TRIGGERED AND WILL BE ADDED THE CUSTOM ATTRIBUTE. THEN, IF THE BROWSER TRIGGERED ANOTHER CLICK, THE HANDLER WILL NOT FIND THE CUSTOM ATTRIBUTE AND WILL NOT TRIGGER A DUPLICATED EVENT.\n const shouldTriggerClick = menuItemRef.current?.getAttribute('data-custom-triggered-click') === 'true';\n if (shouldTriggerClick) {\n menuItemRef.current?.removeAttribute('data-custom-triggered-click');\n }\n\n if (!shouldTriggerClick) {\n evt.preventDefault();\n return;\n }\n\n props.onClick?.(evt);\n };\n useImperativeHandle(\n ref,\n () => {\n return {\n current: menuItemRef.current,\n toggleMenuItem: () => toggleExpanded()\n } as MenuItemRef;\n },\n [menuItemRef]\n );\n useEffect(() => {\n const keydownHandler = (evt: KeyboardEvent) => {\n if (evt.code === 'Escape') {\n setAriaExpanded(false);\n }\n };\n\n document.addEventListener('keydown', keydownHandler);\n return () => {\n document.removeEventListener('keydown', keydownHandler);\n };\n }, []);\n\n return (\n <>\n {actionItem && itemType !== 'avatar' && (\n <button\n {...(props as ButtonProps)}\n role={itemType === 'menu' ? 'button' : 'menuitem'}\n className={menuItemClassName}\n type=\"button\"\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n onMouseLeave={onMouseLeaveHandler}\n ref={menuItemRef as MutableRefObject<HTMLButtonElement>}\n >\n <ContentMenuItem {...props} noIcons={noIcons} itemType={itemType} darkMode={darkMode} aria-expanded={ariaExpanded}>\n {children}\n </ContentMenuItem>\n </button>\n )}\n {!actionItem && itemType !== 'avatar' && (\n <a\n {...(props as AnchorProps)}\n role={itemType === 'menu' ? 'link' : 'menuitem'}\n tabIndex={0}\n className={menuItemClassName}\n ref={menuItemRef as MutableRefObject<HTMLAnchorElement>}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n onMouseLeave={onMouseLeaveHandler}\n >\n <ContentMenuItem {...props} noIcons={noIcons} itemType={itemType} darkMode={darkMode} aria-expanded={ariaExpanded}>\n {children}\n </ContentMenuItem>\n </a>\n )}\n {itemType === 'avatar' && (\n <Avatar\n {...(props as AvatarProps)}\n darkMode={stringToBoolean(darkMode)}\n aria-expanded={ariaExpanded}\n aria-haspopup={props['aria-haspopup']}\n aria-current={props['aria-current']}\n aria-label={props['aria-label']}\n role=\"menuitem\"\n className={menuItemClassName}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n onMouseDown={onMouseDownHandler}\n onMouseUp={onMouseUpHandler}\n onMouseLeave={onMouseLeaveHandler}\n />\n )}\n </>\n );\n};\n\nexport const MenuItem = forwardRef<ExtendedInterfaceMenu, MenuItemProps>(InnerMenuItem);\n","import { stringToBoolean } from '@/utils';\n\nconst menuClick = (el: Element) => {\n const menuItem = el.previousSibling as HTMLButtonElement;\n if (menuItem.ariaExpanded && stringToBoolean(menuItem.ariaExpanded)) {\n menuItem.click();\n }\n};\n\nconst checkElmNotCurrentBurgerMenu = (el: Element, navigationBurger: HTMLCollectionOf<Element>) => {\n if (el !== navigationBurger[0]) {\n el.classList.add('hidden');\n }\n menuClick(el);\n if (\n el.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-burger-navigation-options-menu') &&\n !el.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('hidden')\n ) {\n el.parentElement?.parentElement?.parentElement?.parentElement?.classList.add('hidden');\n navigationBurger[0].classList.remove('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n return;\n }\n if (!el.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('hidden')) {\n el.parentElement?.parentElement?.parentElement?.classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n }\n};\nconst checkElmNotCurrentBurgerSubmenu = (el: Element) => {\n el.classList.remove('hidden');\n const menuItem = el.previousElementSibling as HTMLButtonElement;\n if (menuItem.ariaExpanded && !stringToBoolean(menuItem.ariaExpanded)) {\n menuItem.click();\n }\n};\nconst checkElmNotCurrentBurgerSubmenuLevel2 = (el: Element, navigationBurger: HTMLCollectionOf<Element>) => {\n navigationBurger[0].classList.remove('hidden');\n el?.querySelectorAll('.agora-header-burger-navigation-options-submenu-level-2 .agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n};\n\nconst checkElmNotCurrentNotCBurgerNotSubmenu = (\n el: Element,\n navigationBurger: HTMLCollectionOf<Element>,\n navigationBurgerLevel2: HTMLCollectionOf<Element>\n) => {\n const menuItem = el.previousSibling as HTMLButtonElement;\n if (menuItem.classList.contains('agora-burger')) {\n navigationBurger[0].classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n [...navigationBurgerLevel2].forEach((nbl2) => nbl2.classList.add('hidden'));\n } else {\n el.classList.add('hidden');\n }\n menuClick(el);\n};\n\nconst checkElmNotCurrentNoChildren = (\n el: Element,\n navigationBurger: HTMLCollectionOf<Element>,\n currentSubmenu: HTMLDivElement | HTMLButtonElement\n) => {\n currentSubmenu.classList.remove('hidden');\n menuClick(el);\n navigationBurger[0].classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n });\n};\n\nconst checkSubmenuItemsVisible = (navigationBurgerSubmenu: HTMLCollectionOf<Element>, navigationBurger: HTMLCollectionOf<Element>) => {\n Array.from(navigationBurgerSubmenu).forEach((nbs) => {\n if (!nbs.classList.contains('hidden')) {\n nbs.classList.add('hidden');\n navigationBurger[0]?.querySelectorAll('.agora-menu-item').forEach((element: Element) => {\n element.classList.remove('!hidden');\n if (element.hasAttribute('aria-expanded')) {\n (element as HTMLElement).click();\n }\n });\n }\n });\n};\n\nconst handleCloseBurgerMenu = (\n el: Element,\n currentSubmenu: HTMLDivElement | HTMLButtonElement,\n generalSubmenus: HTMLCollectionOf<Element>,\n navigationBurger: HTMLCollectionOf<Element>,\n navigationBurgerSubmenu: HTMLCollectionOf<Element>,\n navigationBurgerLevel2: HTMLCollectionOf<Element>,\n navigationBurgerSubmenuLevel3: HTMLCollectionOf<Element>\n) => {\n if (!el.classList.contains('hidden') && el !== currentSubmenu && Array.from(generalSubmenus).find((gs) => gs === currentSubmenu)) {\n el.classList.add('hidden');\n menuClick(el);\n return;\n }\n // Find current is on burger submenu\n const bsSubmenu = Array.from(navigationBurgerSubmenu).find((bs) => bs === currentSubmenu);\n // If element is visible, not equal to current and current is burger menu\n if (el.classList.contains('hidden') === false && el !== currentSubmenu && [...navigationBurger].includes(currentSubmenu)) {\n checkElmNotCurrentBurgerMenu(el, navigationBurger);\n }\n // If element is visible, not equal to current and current is burger submenu\n else if (el.classList.contains('hidden') === false && el !== currentSubmenu && [...navigationBurgerSubmenu].includes(currentSubmenu)) {\n checkElmNotCurrentBurgerSubmenu(el);\n }\n // If element is visible, not equal to current and current is burger submenu level 2\n else if (el.classList.contains('hidden') === false && el !== currentSubmenu && [...navigationBurgerLevel2].includes(currentSubmenu)) {\n checkElmNotCurrentBurgerSubmenuLevel2(el, navigationBurger);\n }\n // If element is visible, not equal to current, current not equal to burger menu / burger submenu level 2 / burger submenu level 3 and current not on burger submenu\n else if (\n el.classList.contains('hidden') === false &&\n el !== currentSubmenu &&\n ![...navigationBurger].includes(currentSubmenu) &&\n ![...navigationBurgerLevel2].includes(currentSubmenu) &&\n ![...navigationBurgerSubmenuLevel3].includes(currentSubmenu) &&\n bsSubmenu === undefined\n ) {\n checkElmNotCurrentNotCBurgerNotSubmenu(el, navigationBurger, navigationBurgerLevel2);\n }\n // If element is visible, not equal to current and current not has child\n else if (el.classList.contains('hidden') === false && el !== currentSubmenu && !currentSubmenu.hasChildNodes()) {\n checkElmNotCurrentNoChildren(el, navigationBurger, currentSubmenu);\n return;\n }\n\n //else burger submenu has items visible and not enter other conditions\n else {\n checkSubmenuItemsVisible(navigationBurgerSubmenu, navigationBurger);\n }\n};\n\nexport const closeOtherSubmenus = (currentSubmenu: HTMLDivElement | HTMLButtonElement) => {\n const generalSubmenus = document.getElementsByClassName('agora-header-general-options-menu');\n const navigationSubmenus = document.getElementsByClassName('agora-header-navigation-options-menu');\n const navBurger = document.getElementsByClassName('agora-header-burger-navigation');\n const navigationBurger = document.getElementsByClassName('agora-header-burger-navigation-options-menu');\n const navigationBurgerSubmenu = document.getElementsByClassName('agora-header-burger-navigation-options-submenu');\n const navigationBurgerLevel2 = document.getElementsByClassName('agora-header-burger-navigation-options-submenu-level-2');\n const navigationBurgerSubmenuLevel3 = document.getElementsByClassName('agora-header-burger-navigation-options-submenu-level-3');\n\n [...generalSubmenus, ...navigationSubmenus, ...navigationBurger, ...navigationBurgerLevel2, ...navigationBurgerSubmenuLevel3].forEach(\n (el: Element) => {\n // If not burger menu visible\n if (\n navBurger.length > 0 &&\n navBurger[0].hasAttribute('hidden') &&\n el.classList.contains('hidden') === false &&\n el !== currentSubmenu\n ) {\n el.classList.add('hidden');\n menuClick(el);\n } else {\n handleCloseBurgerMenu(\n el,\n currentSubmenu,\n generalSubmenus,\n navigationBurger,\n navigationBurgerSubmenu,\n navigationBurgerLevel2,\n navigationBurgerSubmenuLevel3\n );\n }\n }\n );\n};\n","import { MouseEvent as ReactMouseEvent, RefObject } from 'react';\nimport { DrawerElement } from '@/components/drawer';\nimport { DrawerContentProps } from '../models';\nimport { closeOtherSubmenus } from './close-other-menu';\n\nexport const handleClickMenuItem = (\n evt: ReactMouseEvent<HTMLButtonElement>,\n setBackdropVisible: (val: boolean) => void,\n val?: DrawerContentProps | null | undefined,\n refDrawer?: RefObject<DrawerElement>,\n setDrawerContent?: (val: DrawerContentProps | null | undefined) => void\n) => {\n const current = evt.currentTarget as HTMLButtonElement;\n const submenu = current.nextElementSibling as HTMLDivElement;\n const avatarMenu = current.classList.contains('avatar');\n\n closeOtherSubmenus(submenu);\n document.body.classList.remove('overflow-hidden');\n setBackdropVisible(false);\n\n if (submenu) {\n if (submenu.classList.contains('hidden')) {\n setBackdropVisible(true);\n submenu.classList.remove('hidden');\n document.body.classList.add('overflow-hidden');\n return;\n }\n\n setBackdropVisible(false);\n submenu.classList.add('hidden');\n document.body.classList.remove('overflow-hidden');\n return;\n }\n\n if (avatarMenu) {\n if (refDrawer?.current && setDrawerContent) {\n setDrawerContent(val);\n refDrawer.current.open();\n document.body.classList.add('overflow-hidden');\n }\n }\n};\n","import classNames from 'classnames';\nimport React, { CSSProperties, FC, MouseEvent } from 'react';\nimport { stringToBoolean } from '@/utils';\nimport { Anchor, AnchorAppearance, AnchorProps, AnchorVariant } from '@/components/anchor';\nimport { Button, ButtonAppearance, ButtonProps, ButtonVariant } from '@/components/button';\nimport { HeaderMenuOptionsProps } from './header-menu-item-options';\nimport './header-menu-item-options-links.scss';\n\nexport const HeaderMenuItemOptionsLinks: FC<HeaderMenuOptionsProps & { className?: string; style?: CSSProperties }> = ({\n submenu,\n closeOtherMenuItemOpened,\n setBackdropVisible,\n onClick,\n className,\n style\n}) => {\n const options = stringToBoolean(submenu.actionItem) ? (submenu.submenuItems as ButtonProps[]) : (submenu.submenuItems as AnchorProps[]);\n\n const containerClassName = classNames('container mx-auto', {\n 'py-32': submenu.submenuType !== 'topics',\n 'pt-64 pb-32': submenu.submenuType === 'topics',\n 'flex flex-col items-start':\n submenu.submenuType === 'link' && (submenu.submenuAlignment === 'start' || submenu.submenuAlignment === undefined),\n 'flex flex-col items-end': submenu.submenuType === 'link' && submenu.submenuAlignment === 'end'\n });\n\n const ulClassName = classNames({\n 'grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32': submenu.submenuType === 'language' || submenu.submenuType === 'platform',\n 'grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-x-32 gap-y-16': submenu.submenuType === 'topics',\n 'xs:w-full md:w-auto xl:w-auto gap-x-32 gap-y-16 flex xs:flex-col md:flex-row xl:flex-row flex-wrap': submenu.submenuType === 'link'\n });\n\n const liClassName = classNames({\n 'h-full xs:col-span-4 md:col-span-4 xl:col-span-3 !mb-0': submenu.submenuType === 'language' || submenu.submenuType === 'platform',\n 'xs:col-span-4 md:col-span-4 xl:col-span-3': submenu.submenuType === 'topics'\n });\n\n return (\n <div className={containerClassName}>\n {stringToBoolean(submenu.hasBackButton) && submenu.backButtonLabel && (\n <Button\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-anchor\"\n leadingIconHover=\"agora-solid-arrow-left-anchor\"\n className=\"xs:mx-32 md:mx-64 xl:mx-0 mb-32\"\n onClick={submenu.handleBackButton}\n >\n {submenu.backButtonLabel}\n </Button>\n )}\n <div className={className} style={style}>\n {stringToBoolean(submenu.hasSubmenuItemsSectionTitle) && submenu.submenuItemsSectionTitle && (\n <p className=\"text-m-semibold text-[var(--color-neutral-500)] mb-32\">{submenu.submenuItemsSectionTitle}</p>\n )}\n {stringToBoolean(submenu.hasSubmenuItemsTitle) && submenu.submenuItemsTitle && (\n <h2 className=\"text-xl-bold text-[var(--color-primary-900)] mb-32\">{submenu.submenuItemsTitle}</h2>\n )}\n <ul className={ulClassName} role=\"menu\" aria-label={submenu.submenuAriaLabel}>\n {options.map((element, index) => {\n const key = `menu-options-nav-${index}`;\n const optionClasseName = classNames(\n 'min-h-[60px]',\n {\n 'agora-rounded-leading-icon full-image !py-[6px] !min-h-[44px] language': submenu.submenuType === 'language',\n 'agora-rounded-leading-icon small-image platform': submenu.submenuType === 'platform',\n 'link xs:w-full md:w-auto xl:w-auto xs:[&>.children-wrapper]:mr-auto md:[&>.children-wrapper]:mr-0 xl:[&>.children-wrapper]:mr-0':\n submenu.submenuType === 'link',\n 'topics xs:w-full md:w-auto xl:w-auto xs:[&>.children-wrapper]:mr-auto md:[&>.children-wrapper]:mr-0 xl:[&>.children-wrapper]:mr-0':\n submenu.submenuType === 'topics'\n },\n element.className\n );\n const getTrailingIcon = () => {\n if (submenu.submenuType === 'language') {\n return 'agora-line-check';\n }\n return undefined;\n };\n\n const getTrailingIconHover = () => {\n if (submenu.submenuType === 'language') {\n return 'agora-solid-check';\n }\n return undefined;\n };\n\n const handleClick = (evt: MouseEvent<any>) => {\n closeOtherMenuItemOpened(evt.currentTarget as unknown as HTMLDivElement);\n setBackdropVisible(false);\n document.body.classList.remove('overflow-hidden');\n onClick?.(evt);\n element.onClick?.(evt);\n };\n\n const defaultVariant = submenu.submenuType === 'topics' ? 'primary' : 'neutral';\n return (\n <li key={key} className={liClassName} role=\"none\">\n {stringToBoolean(submenu.actionItem) ? (\n <Button\n appearance={(element.appearance as ButtonAppearance) ?? 'link'}\n variant={(element.variant as ButtonVariant) ?? defaultVariant}\n hasIcon={element.hasIcon ?? true}\n trailingIcon={element.trailingIcon ?? getTrailingIcon()}\n trailingIconHover={element.trailingIconHover ?? getTrailingIconHover()}\n role=\"menuitem\"\n {...(element as ButtonProps)}\n className={optionClasseName}\n onClick={handleClick}\n />\n ) : (\n <Anchor\n appearance={(element.appearance as AnchorAppearance) ?? 'link'}\n variant={(element.variant as AnchorVariant) ?? defaultVariant}\n hasIcon={element.hasIcon ?? true}\n trailingIcon={element.trailingIcon ?? getTrailingIcon()}\n trailingIconHover={element.trailingIconHover ?? getTrailingIconHover()}\n role=\"menuitem\"\n {...(element as AnchorProps)}\n className={optionClasseName}\n onClick={handleClick}\n />\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, Ref, useId, useRef, useState } from 'react';\nimport { BooleanProp } from '@/models';\nimport { asyncTrigger, stringToBoolean, useExpandedRef } from '@/utils';\nimport { Button } from '@/components/button';\nimport { Icon } from '@/components/icon';\nimport './input-search-bar.scss';\n\nexport interface InputSearchBarElement extends HTMLInputElement {\n /**\n * React ref object to the search action button.\n */\n searchActionButton?: Ref<HTMLButtonElement>;\n /**\n * React ref object to the voice action button.\n */\n voiceActionButton?: Ref<HTMLButtonElement>;\n}\n\nexport interface InputSearchBarProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * The flag to set if the label is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Defines if the user specifies a leading icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Defines if the voice action button is visible.\n */\n hasVoiceActionButton?: BooleanProp;\n /**\n * Alternative text for the voice action button\n */\n voiceActionAltText?: string;\n /**\n * Alternative text for the search action button\n */\n searchActionAltText?: string;\n /**\n * Callback to execute whenever the user activates the microphone button.\n */\n onVoiceActivate?: () => void;\n /**\n * Callback to execute whenever the user activates the search button.\n */\n onSearchActivate?: (term: string) => void;\n /**\n * React ref object to the input search bar.\n */\n ref?: Ref<InputSearchBarElement>;\n}\n\nconst InnerInputSearchBar: ForwardRefRenderFunction<InputSearchBarElement, InputSearchBarProps> = (\n {\n className,\n label,\n hideLabel,\n darkMode,\n hasIcon,\n icon,\n hasVoiceActionButton = true,\n voiceActionAltText = '',\n searchActionAltText = '',\n onVoiceActivate,\n onSearchActivate,\n onChange,\n ...props\n },\n ref\n) => {\n const innerRef = useRef<HTMLInputElement>(null);\n const searchButtonRef = useRef<HTMLButtonElement>(null);\n const voiceButtonRef = useRef<HTMLButtonElement>(null);\n useExpandedRef<InputSearchBarElement>(\n ref,\n innerRef,\n {\n searchActionButton: searchButtonRef,\n voiceActionButton: voiceButtonRef\n } as InputSearchBarElement,\n [innerRef, searchButtonRef, voiceButtonRef]\n );\n\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [currentTarget, setCurrentTarget] = useState(propsClone.value);\n\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentTarget(value);\n asyncTrigger(() => onChange?.(evt));\n };\n\n const onVoiceButtonClick = () => {\n onVoiceActivate?.();\n };\n\n const onSearchButtonClick = () => {\n onSearchActivate?.(currentTarget?.toString() ?? '');\n };\n\n const inputWrapperClassNames = classNames('agora-input-search-bar', className);\n\n const labelSectionClasses = classNames('input-label-wrapper flex items-end', {\n 'mb-16': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n });\n\n const labelClasses = classNames('input-search-bar-label', darkMode ? 'dark-label' : 'light-label');\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClassNames}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n {/* Search input wrapper */}\n <div className=\"input-search-bar-container\">\n {hasIcon && icon && icon.startsWith('agora-line') && <Icon name={icon} aria-hidden />}\n <input\n {...propsClone}\n className=\"flex-grow-[1] outline-none\"\n ref={innerRef}\n type=\"text\"\n disabled={!!propsClone.disabled}\n onChange={handleChangeEvent}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n />\n\n <div className=\"actions-container flex flex-row gap-16\">\n {stringToBoolean(hasVoiceActionButton) && (\n <Button\n ref={voiceButtonRef}\n className=\"microphone-icon\"\n appearance=\"link\"\n iconOnly\n hasIcon\n leadingIcon=\"agora-line-mic-on\"\n leadingIconHover=\"agora-solid-mic-on\"\n aria-label={voiceActionAltText}\n onClick={onVoiceButtonClick}\n />\n )}\n <Button\n ref={searchButtonRef}\n className=\"magnifier-icon\"\n appearance=\"solid\"\n iconOnly\n hasIcon\n leadingIcon=\"agora-line-search\"\n leadingIconHover=\"agora-solid-search\"\n aria-label={searchActionAltText}\n onClick={onSearchButtonClick}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport const InputSearchBar = forwardRef<InputSearchBarElement, InputSearchBarProps>(InnerInputSearchBar);\n","import React from 'react';\nimport { Anchor } from '@/components/anchor';\nimport { InputSearchBar } from '@/components/input-search-bar';\nimport { List } from '@/components/list';\nimport { SubmenuSearchContentProps } from '../../models';\n\nexport const HeaderMenuItemOptionsSearch = (submenuSearchContent: SubmenuSearchContentProps) => {\n return (\n <div className=\"grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-start-1 xl:col-end-7\">\n {submenuSearchContent.hasTitle && submenuSearchContent.title && (\n <p className=\"xs:text-l-bold md:text-xl-bold xl:text-xl-bold text-[var(--color-primary-900)]\">{submenuSearchContent.title}</p>\n )}\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-start-1 xl:col-end-7\">\n {!submenuSearchContent.inputSearchBarPlaceholder && submenuSearchContent.inputSearchBar && (\n <InputSearchBar {...submenuSearchContent.inputSearchBar} />\n )}\n\n {!submenuSearchContent.inputSearchBar && submenuSearchContent.inputSearchBarPlaceholder}\n </div>\n {submenuSearchContent.hasLinkList && submenuSearchContent.linkListContent?.linkList && (\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-start-8 xl:col-end-13 xs:mt-32 md:mt-32 xl:mt-0\">\n <p className=\"xs:text-m-bold md:text-l-bold xl:text-l-bold text-[var(--color-primary-900)] mb-16\">\n {submenuSearchContent.linkListContent?.linkListTitle}\n </p>\n <List className=\"xs:block md:flex xl:block gap-32 flex-wrap\">\n {submenuSearchContent.linkListContent?.linkList.map((element, index) => {\n const key = `search-content-${index}`;\n return (\n <li key={key} className=\"text-m-regular text-[var(--color-neutral-900)] mb-8 last:mb-0\">\n <Anchor {...element} appearance=\"link\" variant=\"neutral\" />\n </li>\n );\n })}\n </List>\n </div>\n )}\n </div>\n );\n};\n","import React, { FC, HTMLProps } from 'react';\nimport { SubmenuItemProps } from '../../models';\nimport { HeaderMenuItemOptionsLinks } from './header-menu-item-options-links';\nimport { HeaderMenuItemOptionsSearch } from './header-menu-item-options-search';\n\nexport interface HeaderMenuOptionsProps extends HTMLProps<HTMLButtonElement | HTMLAnchorElement | HTMLDivElement> {\n /**\n * Submenu options configuration\n */\n submenu: SubmenuItemProps;\n /**\n *\n * Function to close other menu items that are open\n */\n closeOtherMenuItemOpened: (currentSubmenu: HTMLDivElement) => void;\n\n /**\n *\n * Set state if backdrop visible or not\n */\n setBackdropVisible: (val: boolean) => void;\n}\n\nconst HeaderMenuOptions: FC<HeaderMenuOptionsProps> = ({\n submenu,\n closeOtherMenuItemOpened,\n setBackdropVisible,\n onClick,\n className,\n style\n}) => {\n if (\n ((!submenu.submenuItems || submenu.submenuItems.length === 0) && submenu.submenuType !== 'search') ||\n (!submenu.submenuSearchContent && submenu.submenuType === 'search')\n ) {\n return;\n }\n\n if (\n submenu.submenuType === 'language' ||\n submenu.submenuType === 'platform' ||\n submenu.submenuType === 'link' ||\n submenu.submenuType === 'topics'\n ) {\n return (\n <HeaderMenuItemOptionsLinks\n submenu={submenu}\n closeOtherMenuItemOpened={closeOtherMenuItemOpened}\n setBackdropVisible={setBackdropVisible}\n onClick={onClick}\n className={className}\n style={style}\n />\n );\n } else if (submenu.submenuType === 'search' && submenu.submenuSearchContent) {\n return <HeaderMenuItemOptionsSearch {...submenu.submenuSearchContent} />;\n }\n};\n\nexport { HeaderMenuOptions };\n","import classNames from 'classnames';\nimport React, { FC, MouseEvent, ReactNode, RefObject } from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Button } from '@/components/button';\nimport { MenuItem, MenuItemRef } from '@/components/menu-item';\nimport { MenuProps, SubmenuItemProps } from '../../models';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\n\nconst HeaderBurgerSecondaryNavigation: FC<{\n item: MenuProps;\n backButtonLabelBurger: ReactNode;\n hasBackButtonBurger: BooleanProp;\n itemsSubmenuClone: SubmenuItemProps;\n handleBackButtonBurger: (evt: MouseEvent<HTMLButtonElement>) => void;\n submenuLevel2Height: number;\n menuItemId: string;\n menuItemRef: RefObject<MenuItemRef>;\n setBackdropVisible: (val: boolean) => void;\n submenuLevel3Height: number;\n}> = ({\n item,\n backButtonLabelBurger,\n hasBackButtonBurger,\n itemsSubmenuClone,\n handleBackButtonBurger,\n submenuLevel2Height,\n menuItemId,\n menuItemRef,\n setBackdropVisible,\n submenuLevel3Height\n}) => {\n return (\n <>\n {item.relatedNavMenu?.menuItemsHeaderNavigation && Object.keys(itemsSubmenuClone).length > 1 && (\n <div className=\"agora-header-burger-navigation-options-submenu-level-2 overflow-hidden hidden sticky w-full right-0 z-sticky shadow-bottom-high\">\n {stringToBoolean(hasBackButtonBurger) && backButtonLabelBurger && (\n <Button\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-anchor\"\n leadingIconHover=\"agora-solid-arrow-left-anchor\"\n className=\"xs:mx-32 md:mx-64 xl:mx-64 xs:mt-16 md:mt-32 xl:mt-32\"\n onClick={(evt: MouseEvent<HTMLButtonElement>) => {\n handleBackButtonBurger?.(evt);\n if (evt.currentTarget.parentElement?.parentElement?.parentElement) {\n evt.currentTarget.parentElement?.parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.remove('!hidden');\n evt.currentTarget.parentElement?.parentElement?.classList.remove('fade-right-left');\n evt.currentTarget.parentElement?.classList.add('hidden');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.classList.add('fade-left-right');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.add('pt-32');\n });\n }\n }}\n >\n {backButtonLabelBurger}\n </Button>\n )}\n\n <div className=\"overflow-y-auto overflow-x-hidden\" style={{ maxHeight: `calc(100vh - ${submenuLevel2Height}px)` }}>\n <p className=\"text-m-semibold text-[var(--color-neutral-500)] xs:px-32 md:px-64 xl:px-64 pt-32 pb-16\">\n {item.menuItem.children}\n </p>\n\n <ul role=\"menubar\">\n {item.relatedNavMenu.menuItemsHeaderNavigation\n ?.filter((_i, idx) => idx < 5)\n .map((subitem: MenuProps, idx) => {\n const subId = `${menuItemId}-submenu-${idx}`;\n const containerHeaderMenuOptionsLevel2 = classNames(\n 'agora-header-burger-navigation-options-submenu-level-3 overflow-hidden hidden sticky w-full right-0 z-sticky shadow-bottom-high',\n {\n 'bg-[var(--color-neutral-50)]': subitem.submenuItem?.highlightItems,\n 'bg-[var(--color-neutral-100)]': !subitem.submenuItem?.highlightItems\n }\n );\n\n return (\n <li key={subId} role=\"none\">\n {/* Menu item with same elements of secondary navigation */}\n <MenuItem\n {...subitem.menuItem}\n ref={menuItemRef}\n itemType=\"secondary\"\n vertically\n onClick={(evt: MouseEvent<any>) => {\n subitem.menuItem.onClick?.(evt);\n if ((evt.currentTarget as Element).nextElementSibling) {\n (evt.currentTarget as Element).parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.add('!hidden');\n element.parentElement?.parentElement?.previousElementSibling?.classList.add('hidden');\n element.parentElement?.parentElement?.parentElement?.previousElementSibling?.classList.add('hidden');\n element.parentElement?.parentElement?.previousElementSibling?.previousElementSibling?.classList.add(\n 'hidden'\n );\n\n (evt.currentTarget as Element).nextElementSibling?.classList.add('fade-right-left');\n (evt.currentTarget as Element).parentElement?.parentElement?.classList.remove('fade-left-right');\n (evt.currentTarget as Element).parentElement?.parentElement?.parentElement?.classList.remove(\n 'fade-left-right'\n );\n });\n }\n\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n />\n {subitem?.submenuItem?.submenuItems && (\n <div className={containerHeaderMenuOptionsLevel2}>\n {stringToBoolean(hasBackButtonBurger) && backButtonLabelBurger && (\n <Button\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-anchor\"\n leadingIconHover=\"agora-solid-arrow-left-anchor\"\n className=\"xs:mx-32 md:mx-64 xl:mx-64 xs:mt-16 md:mt-32 xl:mt-32\"\n onClick={(evt: MouseEvent<HTMLButtonElement>) => {\n handleBackButtonBurger?.(evt);\n if (evt.currentTarget.parentElement?.parentElement?.parentElement) {\n evt.currentTarget.parentElement.parentElement.parentElement\n .querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.remove('!hidden');\n evt.currentTarget.parentElement?.parentElement?.classList.remove('fade-right-left');\n });\n\n (\n evt.currentTarget.parentElement?.parentElement?.parentElement?.previousSibling as HTMLElement\n ).classList.remove('hidden');\n (\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement\n ?.previousSibling as HTMLElement\n ).classList.remove('hidden');\n\n evt.currentTarget?.parentElement?.classList.add('hidden');\n (evt.currentTarget.parentElement?.previousSibling as HTMLElement).click();\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.remove(\n 'fade-right-left'\n );\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.add(\n 'fade-left-right'\n );\n }\n }}\n >\n {backButtonLabelBurger}\n </Button>\n )}\n\n <div\n className=\"overflow-y-auto overflow-x-hidden [&>*:nth-child(2)]:pt-16 xl:[&>*:nth-child(2)]:mx-64\"\n style={{ maxHeight: `calc(100vh - ${submenuLevel3Height}px)` }}\n >\n <p className=\"text-m-semibold text-[var(--color-neutral-500)] xs:px-32 md:px-64 xl:px-64 pt-32 pb-16\">\n {item.menuItem.children}\n </p>\n {/* if secondary items have direct options render on a HeaderMenuOptions component */}\n <HeaderMenuOptions\n submenu={subitem?.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n {subitem?.submenuItem?.highlightItems && (\n <div\n aria-label={subitem?.submenuItem?.highlightItems.submenuAriaLabel}\n className=\"bg-[var(--color-neutral-100)] xl:[&>*:nth-child(1)]:mx-64\"\n >\n <HeaderMenuOptions\n submenu={subitem?.submenuItem?.highlightItems}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"flex flex-wrap gap-32 w-full\"\n />\n </div>\n )}\n </div>\n </div>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport { HeaderBurgerSecondaryNavigation };\n","import classNames from 'classnames';\nimport React, { FC, MouseEvent, ReactNode, useId, useRef } from 'react';\nimport { BooleanProp } from '@/models';\nimport { MenuItem, MenuItemRef } from '@/components/menu-item';\nimport { MenuProps, SubmenuItemProps } from '../../models';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\nimport { HeaderNavigationProps } from '../header-navigation/header-navigation';\nimport { HeaderBurgerSecondaryNavigation } from './header-burger-secondary-navigation';\n\nconst HeaderBurgerPrimaryNavigation: FC<{\n headerPrimaryNavigationClone: HeaderNavigationProps;\n headerHeight: number;\n backButtonLabelBurger: ReactNode;\n hasBackButtonBurger: BooleanProp;\n setBackdropVisible: (val: boolean) => void;\n submenuHeight: number;\n handleBackButtonBurger: (evt: MouseEvent<HTMLButtonElement>) => void;\n submenuLevel2Height: number;\n submenuLevel3Height: number;\n}> = ({\n headerPrimaryNavigationClone,\n headerHeight,\n backButtonLabelBurger,\n hasBackButtonBurger,\n setBackdropVisible,\n submenuHeight,\n handleBackButtonBurger,\n submenuLevel2Height,\n submenuLevel3Height\n}) => {\n const menuItemId = useId();\n const menuItemRef = useRef<MenuItemRef>(null);\n\n const headerBurgerNavigationContainerClassNames = classNames(\n 'agora-header-burger-navigation-options-menu overflow-y-auto overflow-x-hidden hidden absolute w-full right-0 z-sticky shadow-bottom-high pt-32'\n );\n\n return (\n <>\n {headerPrimaryNavigationClone.menuItemsHeaderNavigation && (\n <div style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }} className={headerBurgerNavigationContainerClassNames}>\n <nav aria-label={headerPrimaryNavigationClone.ariaLabelHeaderNavigation} className=\"overflow-hidden\">\n <ul role=\"menubar\">\n {headerPrimaryNavigationClone.menuItemsHeaderNavigation\n ?.filter((_i, index) => index < 5)\n .map((item: MenuProps, index) => {\n const id = `${menuItemId}-menu-${index}`;\n const containerHeaderMenuOptions = classNames(\n 'agora-header-burger-navigation-options-submenu overflow-y-auto overflow-x-hidden hidden sticky w-full right-0 z-sticky shadow-bottom-high [&>*:first-child]:px-0 xl:[&>*:first-child]:max-w-full xl:[&>*:first-child]:mx-64',\n {\n 'bg-[var(--color-neutral-50)]': item.submenuItem?.highlightItems,\n 'bg-[var(--color-neutral-100)]': !item.submenuItem?.highlightItems\n }\n );\n\n const itemsSubmenuClone = {\n ...item.submenuItem,\n ...item.relatedNavMenu?.menuItemsHeaderNavigation?.map((sub) => sub.menuItem)\n };\n\n itemsSubmenuClone.hasSubmenuItemsSectionTitle = true;\n itemsSubmenuClone.submenuItemsSectionTitle = item.menuItem.children;\n itemsSubmenuClone.backButtonLabel = backButtonLabelBurger;\n itemsSubmenuClone.hasBackButton = hasBackButtonBurger;\n\n itemsSubmenuClone.handleBackButton = (evt: MouseEvent<HTMLButtonElement>) => {\n item.submenuItem?.handleBackButton?.(evt);\n if (evt.currentTarget.parentElement?.parentElement) {\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.remove('!hidden');\n evt.currentTarget.parentElement?.parentElement?.classList.remove('fade-right-left');\n evt.currentTarget.parentElement?.parentElement?.classList.add('hidden');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.classList.add('fade-left-right');\n evt.currentTarget.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.add(\n 'pt-32'\n );\n });\n (evt.currentTarget.parentElement?.parentElement?.previousSibling as HTMLElement).click();\n }\n };\n\n return (\n <li key={id} role=\"none\" className=\"overflow-hidden\">\n {/* Menu item with same elements of primary navigation */}\n <MenuItem\n {...item.menuItem}\n ref={menuItemRef}\n noIcons={!!item.relatedNavMenu?.menuItemsHeaderNavigation === true ? false : item.menuItem.noIcons}\n itemType=\"primary\"\n vertically\n onClick={(evt: MouseEvent<any>) => {\n item.menuItem.onClick?.(evt);\n if ((evt.currentTarget as Element).nextElementSibling) {\n (evt.currentTarget as Element).parentElement?.parentElement\n ?.querySelectorAll('.agora-menu-item')\n .forEach((element: Element) => {\n element.classList.add('!hidden');\n (evt.currentTarget as Element).nextElementSibling?.classList.add('fade-right-left');\n (evt.currentTarget as Element).parentElement?.parentElement?.classList.remove('fade-left-right');\n });\n const childCurrent = (evt.currentTarget as Element).nextSibling\n ?.childNodes as unknown as HTMLCollectionOf<HTMLElement>;\n Array.from(childCurrent).forEach((element) => {\n element.classList.remove('hidden');\n });\n (evt.currentTarget as Element).parentElement?.parentElement?.parentElement?.parentElement?.classList.remove(\n 'pt-32'\n );\n }\n\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n />\n {itemsSubmenuClone.submenuItems && Object.keys(itemsSubmenuClone).length > 1 && (\n <div className={containerHeaderMenuOptions}>\n {/* if primary items have direct options render on a HeaderMenuOptions component */}\n <HeaderMenuOptions\n submenu={itemsSubmenuClone as SubmenuItemProps}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"overflow-y-auto overflow-x-hidden xs:[&>*]:px-32 md:[&>*]:px-64 xl:[&>*]:px-0\"\n style={{ maxHeight: `calc(100vh - ${submenuHeight}px)` }}\n />\n {itemsSubmenuClone?.highlightItems && (\n <div\n aria-label={itemsSubmenuClone?.highlightItems.submenuAriaLabel}\n className=\"bg-[var(--color-neutral-100)] [&>*:first-child]:px-0 xl:[&>*:first-child]:max-w-full xl:[&>*:first-child]:mx-64\"\n >\n <HeaderMenuOptions\n submenu={itemsSubmenuClone?.highlightItems}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"flex flex-wrap gap-32\"\n />\n </div>\n )}\n </div>\n )}\n\n {/* if primary navigation has secondary item for secondary navigation */}\n <HeaderBurgerSecondaryNavigation\n item={item}\n backButtonLabelBurger={backButtonLabelBurger}\n hasBackButtonBurger={hasBackButtonBurger}\n itemsSubmenuClone={itemsSubmenuClone as SubmenuItemProps}\n handleBackButtonBurger={handleBackButtonBurger}\n submenuLevel2Height={submenuLevel2Height}\n menuItemId={menuItemId}\n menuItemRef={menuItemRef}\n setBackdropVisible={setBackdropVisible}\n submenuLevel3Height={submenuLevel3Height}\n />\n </li>\n );\n })}\n </ul>\n </nav>\n </div>\n )}\n </>\n );\n};\n\nexport { HeaderBurgerPrimaryNavigation };\n","import React, { ComponentPropsWithRef, FC, MouseEvent, useEffect, useState } from 'react';\nimport { MenuItem } from '@/components/menu-item';\nimport { stringToBoolean } from '@/utils';\nimport { HeaderProps } from '../../header';\nimport { BackdropRef } from '../../models';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderBurgerPrimaryNavigation } from './header-burger-primary-navigation';\n\nconst HeaderBurgerNavigation: FC<HeaderProps & BackdropRef> = ({\n headerSecondaryNavigation,\n headerPrimaryNavigation: headerPrimaryNavigationClone,\n darkModeHeader,\n setBackdropVisible,\n menuBurgerItem,\n hasBackButtonBurger = stringToBoolean('true'),\n backButtonLabelBurger,\n handleBackButtonBurger\n}) => {\n // #region \"MENU BURGER\"\n\n const [headerHeight, setHeaderHeight] = useState(0);\n const [submenuHeight, setSubmenuHeight] = useState(0);\n const [submenuLevel2Height, setSubmenuLevel2Height] = useState(0);\n const [submenuLevel3Height, setSubmenuLevel3Height] = useState(0);\n\n // #region Resize and functions\n const checkResize = (\n burgerNav: Element | null,\n heightGeneralNav: number,\n optionsSubmenu: Element | null,\n backButtonSubmenu: Element | undefined,\n backButtonSubmenuLevel2: Element | undefined,\n backButtonSubmenuLevel3: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n setHeaderHeight(heightGeneralNav + heightBurgerNav);\n\n const optNextSiblingPaddingTop = optionsSubmenu?.children[0] ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingTop) : 0;\n\n const optNextSiblingPaddingBottom = optionsSubmenu?.children[0]\n ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingBottom)\n : 0;\n\n const backButtonSubmenuMarginBottom = backButtonSubmenu ? parseInt(getComputedStyle(backButtonSubmenu).marginBottom) : 0;\n const backButtonSubmenuLevel2MarginTop = backButtonSubmenuLevel2 ? parseInt(getComputedStyle(backButtonSubmenuLevel2).marginTop) : 0;\n const backButtonSubmenuLevel3MarginTop = backButtonSubmenuLevel3 ? parseInt(getComputedStyle(backButtonSubmenuLevel3).marginTop) : 0;\n\n setSubmenuHeight(\n heightGeneralNav +\n heightBurgerNav +\n optNextSiblingPaddingTop +\n optNextSiblingPaddingBottom +\n backButtonSubmenuMarginBottom +\n (backButtonSubmenu as Element)?.getBoundingClientRect().height\n );\n setSubmenuLevel2Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel2MarginTop +\n (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height\n );\n setSubmenuLevel3Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel3MarginTop +\n (backButtonSubmenuLevel3 as Element)?.getBoundingClientRect().height\n );\n };\n\n const checkMutationPrimary = (\n burgerNav: Element | null,\n heightGeneralNav: number,\n optionsSubmenu: Element | null,\n backButtonSubmenu: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n const optNextSiblingPaddingTop = optionsSubmenu?.children[0] ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingTop) : 0;\n\n const optNextSiblingPaddingBottom = optionsSubmenu?.children[0]\n ? parseInt(getComputedStyle(optionsSubmenu?.children[0]).paddingBottom)\n : 0;\n\n const backButtonSubmenuMarginBottom = backButtonSubmenu ? parseInt(getComputedStyle(backButtonSubmenu).marginBottom) : 0;\n\n setSubmenuHeight(\n heightGeneralNav +\n heightBurgerNav +\n optNextSiblingPaddingTop +\n optNextSiblingPaddingBottom +\n backButtonSubmenuMarginBottom +\n (backButtonSubmenu as Element)?.getBoundingClientRect().height\n );\n };\n\n const checkMutationSubmenuLevel2 = (\n burgerNav: Element | null,\n heightGeneralNav: number,\n backButtonSubmenuLevel2: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n const backButtonSubmenuLevel2MarginTop = backButtonSubmenuLevel2 ? parseInt(getComputedStyle(backButtonSubmenuLevel2).marginTop) : 0;\n setSubmenuLevel2Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel2MarginTop +\n (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height\n );\n };\n\n const checkMutationSubmenuLevel3 = (\n mutation: MutationRecord,\n burgerNav: Element | null,\n heightGeneralNav: number,\n backButtonSubmenuLevel2: Element | undefined,\n backButtonSubmenuLevel3: Element | undefined\n ) => {\n const heightBurgerNav = burgerNav?.clientHeight ?? 0;\n const backButtonSubmenuLevel3MarginTop = backButtonSubmenuLevel3 ? parseInt(getComputedStyle(backButtonSubmenuLevel3).marginTop) : 0;\n\n const oldValueArray = mutation.oldValue?.split(' ') ?? [];\n // Needed to know if is a back or a go\n if (oldValueArray.find((word) => word === 'hidden')) {\n setSubmenuLevel2Height(heightGeneralNav + heightBurgerNav + (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height);\n } else {\n setSubmenuLevel2Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel3MarginTop +\n (backButtonSubmenuLevel2 as Element)?.getBoundingClientRect().height\n );\n }\n\n setSubmenuLevel3Height(\n heightGeneralNav +\n heightBurgerNav +\n backButtonSubmenuLevel3MarginTop +\n (backButtonSubmenuLevel3 as Element)?.getBoundingClientRect().height\n );\n };\n\n const observers = (\n observer: MutationObserver,\n burgerNav: Element | null,\n optionsSubmenu: Element | null,\n optionsSubmenuLevel2: Element | null,\n optionsSubmenuLevel3: Element | null\n ) => {\n if (burgerNav) {\n observer.observe(burgerNav as Node, { attributes: true });\n }\n\n if (optionsSubmenu) {\n observer.observe(optionsSubmenu as Node, { attributes: true });\n }\n\n if (optionsSubmenuLevel2) {\n observer.observe(optionsSubmenuLevel2 as Node, { attributes: true, attributeOldValue: true });\n }\n\n if (optionsSubmenuLevel3) {\n observer.observe(optionsSubmenuLevel3 as Node, { attributes: true, attributeOldValue: true });\n }\n };\n\n useEffect(() => {\n const heightGeneralNav = document.querySelector('.agora-header-general')?.clientHeight ?? 0;\n const burgerNav = document.querySelector('.agora-header-burger-navigation');\n\n const optionsSubmenu = document.querySelector('.agora-header-burger-navigation-options-submenu');\n const optionsSubmenuLevel2 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-2');\n const optionsSubmenuLevel3 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-3');\n const backButtonSubmenu = Array.from(optionsSubmenu?.children[0].children ?? []).find((bt) => bt.classList.contains('agora-btn'));\n const backButtonSubmenuLevel2 = Array.from(optionsSubmenuLevel2?.children ?? []).find((bt) => bt.classList.contains('agora-btn'));\n const backButtonSubmenuLevel3 = Array.from(optionsSubmenuLevel3?.children ?? []).find((bt) => bt.classList.contains('agora-btn'));\n\n checkResize(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu, backButtonSubmenuLevel2, backButtonSubmenuLevel3);\n\n // #region Check if hidden attribute remove from burger navigation and get client height\n const mutationCallback = (mutationsList: MutationRecord[]) => {\n for (const mutation of mutationsList) {\n switch (mutation.target) {\n case optionsSubmenu:\n checkMutationPrimary(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu);\n return;\n case optionsSubmenuLevel2:\n checkMutationSubmenuLevel2(burgerNav, heightGeneralNav, backButtonSubmenuLevel2);\n return;\n case optionsSubmenuLevel3:\n checkMutationSubmenuLevel3(mutation, burgerNav, heightGeneralNav, backButtonSubmenuLevel2, backButtonSubmenuLevel3);\n return;\n default:\n break;\n }\n if (mutation.type !== 'attributes' || mutation.attributeName !== 'hidden') {\n return;\n }\n setHeaderHeight(heightGeneralNav + (mutation.target as Element).clientHeight);\n }\n };\n const observer = new MutationObserver(mutationCallback);\n observers(observer, burgerNav, optionsSubmenu, optionsSubmenuLevel2, optionsSubmenuLevel3);\n // #endregion\n\n window.addEventListener('resize', () =>\n checkResize(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu, backButtonSubmenuLevel2, backButtonSubmenuLevel3)\n );\n return () => {\n window.removeEventListener('resize', () =>\n checkResize(burgerNav, heightGeneralNav, optionsSubmenu, backButtonSubmenu, backButtonSubmenuLevel2, backButtonSubmenuLevel3)\n );\n observer.disconnect();\n };\n }, []);\n // #endregion\n // #endregion \"MENU BURGER\"\n return (\n <div className=\"container mx-auto xs:flex md:grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 xs:gap-0 md:gap-32 xs:justify-between md:justify-normal min-h-[60px]\">\n <div className=\"agora-header-burger-navigation-content xs:col-span-3 md:col-span-4 xl:col-span-5 flex items-center\">\n {headerSecondaryNavigation?.headerNavigationContent ?? headerPrimaryNavigationClone.headerNavigationContent}\n </div>\n <div className=\"xs:col-span-1 md:col-span-4 xl:col-span-7 justify-self-end\">\n {/* Menu burger */}\n {headerPrimaryNavigationClone?.menuItemsHeaderNavigation && (\n <>\n <MenuItem\n {...menuBurgerItem}\n ref={(menuBurgerItem as unknown as ComponentPropsWithRef<'button'> | ComponentPropsWithRef<'a'>)?.ref}\n className=\"agora-burger xs:[&>span]:hidden md:[&>span]:block xs:justify-end md:justify-start\"\n itemType=\"menu\"\n aria-haspopup=\"menu\"\n aria-expanded=\"false\"\n darkMode={darkModeHeader}\n onClick={(evt: MouseEvent<HTMLButtonElement>) => {\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n >\n {menuBurgerItem.children}\n </MenuItem>\n <HeaderBurgerPrimaryNavigation\n headerPrimaryNavigationClone={headerPrimaryNavigationClone}\n headerHeight={headerHeight}\n backButtonLabelBurger={backButtonLabelBurger}\n hasBackButtonBurger={hasBackButtonBurger}\n setBackdropVisible={setBackdropVisible}\n submenuHeight={submenuHeight}\n handleBackButtonBurger={() => handleBackButtonBurger}\n submenuLevel2Height={submenuLevel2Height}\n submenuLevel3Height={submenuLevel3Height}\n />\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport { HeaderBurgerNavigation };\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n FC,\n Fragment,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { useWindowSize } from '@/hooks';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { AnchorProps } from '@/components/anchor';\nimport { AvatarProps } from '@/components/avatar';\nimport { ButtonProps } from '@/components/button';\nimport { DrawerElement } from '@/components/drawer';\nimport { MenuItem, MenuItemRef } from '@/components/menu-item';\nimport { BackdropRef, DrawerContentProps, MenuItemGeneralOptionsProps, SubmenuItemProps } from '../../models';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\nimport './header-general-options.scss';\n\nexport interface HeaderGeneralOptionsProps extends ComponentPropsWithRef<'div'> {\n /**\n * Activate general options navigation darkMode.\n */\n darkModeHeaderGeneralOptions?: BooleanProp;\n /**\n * Navigation aria-label of general options.\n */\n ariaLabelHeaderGeneralOptions: string;\n /**\n * Has menu item language.\n */\n hasLanguage: BooleanProp;\n /**\n * Has menu item search.\n */\n hasSearch: BooleanProp;\n /**\n * Has menu item user.\n */\n hasUser: BooleanProp;\n /**\n * General options navigation menu items.\n */\n menuItemsHeaderGeneralOptions: MenuItemGeneralOptionsProps;\n}\n\nconst HeaderGeneralOptions: FC<\n HeaderGeneralOptionsProps &\n BackdropRef & { refDrawer: RefObject<DrawerElement> } & {\n setDrawerContent(val: DrawerContentProps | null | undefined): void;\n }\n> = ({\n darkModeHeaderGeneralOptions,\n ariaLabelHeaderGeneralOptions,\n menuItemsHeaderGeneralOptions,\n hasLanguage,\n hasSearch,\n hasUser,\n setBackdropVisible,\n refDrawer,\n setDrawerContent,\n className\n}) => {\n const menuItemLanguageRef = useRef<MenuItemRef>(null);\n\n // #region ClassNames\n const headerGeneralOptionsClassName = classNames(\n 'container mx-auto agora-header-general-options',\n {\n darkMode: stringToBoolean(darkModeHeaderGeneralOptions)\n },\n className\n );\n const searchClassName = classNames({ 'ml-auto': !hasLanguage || !menuItemsHeaderGeneralOptions?.language?.submenuItem?.submenuItems });\n const userClassName = classNames({ 'ml-auto': !hasSearch && !menuItemsHeaderGeneralOptions?.language?.submenuItem?.submenuItems });\n\n // #endregion\n\n const [headerHeight, setHeaderHeight] = useState(0);\n const { width } = useWindowSize();\n const isMobile = width < 768;\n\n // #region Language Handler\n const [initLanguage, setInitLanguage] = useState<string | null>(null);\n const toggleLanguage = (evt: ReactMouseEvent<HTMLButtonElement>, selectedAriaLabel = '') => {\n // Update text on menu item\n (evt.currentTarget.parentNode?.parentNode?.parentNode?.parentNode?.parentNode?.previousSibling?.firstChild as HTMLElement).innerText =\n evt.currentTarget.innerText;\n // Reset attributes of previous language\n [...document.getElementsByClassName('language')].forEach((element) => {\n element.removeAttribute('data-aria-selected');\n element.removeAttribute('aria-label');\n });\n // Get ISO of selected language\n const dataIso = evt.currentTarget.getAttribute('data-iso');\n // Set attributes on new language selected\n document.querySelectorAll('.language').forEach((element) => {\n if (element.getAttribute('data-iso') === dataIso) {\n (element.parentNode?.parentNode?.parentNode?.parentNode?.parentNode?.previousSibling?.firstChild as HTMLElement).innerText =\n evt.currentTarget.innerText;\n element.setAttribute('data-aria-selected', 'true');\n element.setAttribute('aria-label', `${element.textContent} ${selectedAriaLabel}`);\n }\n });\n };\n\n useEffect(() => {\n if (menuItemsHeaderGeneralOptions.language?.submenuItem?.submenuItems) {\n const currentLang = (menuItemsHeaderGeneralOptions.language.submenuItem.submenuItems as []).find(\n (lang: ButtonProps | AnchorProps) => lang['data-aria-selected'] === 'true'\n );\n setInitLanguage((currentLang as unknown as ButtonProps | AnchorProps)?.children?.toString() ?? '-');\n const languageItems = Array.from(menuItemLanguageRef.current?.current?.nextElementSibling?.querySelectorAll('.language') ?? []);\n const currentLanguageItem = languageItems?.find((el) => el.hasAttribute('data-aria-selected'));\n currentLanguageItem?.setAttribute(\n 'aria-label',\n `${currentLanguageItem.textContent} ${menuItemsHeaderGeneralOptions.language.submenuItem.selectedAriaLabel}`\n );\n }\n }, [\n menuItemsHeaderGeneralOptions?.language?.submenuItem?.selectedAriaLabel,\n menuItemsHeaderGeneralOptions?.language?.submenuItem?.submenuItems\n ]);\n // #endregion\n\n const userAvatarPropsCloneMenuItem = useMemo(() => {\n return { ...(menuItemsHeaderGeneralOptions.user?.menuItem as AvatarProps) };\n }, [menuItemsHeaderGeneralOptions.user?.menuItem]);\n\n const userNotLoggedSubmenuItemPropsClone = useMemo(() => {\n return { ...menuItemsHeaderGeneralOptions.user?.submenuItem };\n }, [menuItemsHeaderGeneralOptions.user?.submenuItem]);\n\n useEffect(() => {\n const resizeGeneral = () => {\n setHeaderHeight(document.querySelector('.agora-header-general')?.clientHeight ?? 0);\n\n (userAvatarPropsCloneMenuItem as AvatarProps).tooltipPosition = 'bottom';\n (userAvatarPropsCloneMenuItem as AvatarProps).tooltipAlignment = 'end';\n userNotLoggedSubmenuItemPropsClone.submenuAlignment = 'end';\n };\n\n resizeGeneral();\n\n window.addEventListener('resize', resizeGeneral);\n return () => {\n window.removeEventListener('resize', resizeGeneral);\n };\n }, [userAvatarPropsCloneMenuItem, userNotLoggedSubmenuItemPropsClone]);\n\n const renderMenuItems = (menuItems: MenuItemGeneralOptionsProps) => {\n let component: ReactNode[] = [];\n Object.keys(menuItems).forEach((keys) => {\n const generatedKey = `menu-items-${keys}`;\n switch (keys) {\n case 'language':\n component = [\n ...component,\n <Fragment key={generatedKey}>\n {stringToBoolean(hasLanguage) && menuItemsHeaderGeneralOptions.language?.submenuItem?.submenuItems && (\n <li role=\"none\" className=\"mr-auto\">\n <MenuItem\n {...menuItemsHeaderGeneralOptions.language.menuItem}\n itemType=\"primary\"\n aria-haspopup\n aria-expanded={false}\n darkMode={darkModeHeaderGeneralOptions}\n ref={menuItemLanguageRef}\n onClick={(evt: ReactMouseEvent<any>) => {\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n >\n {initLanguage}\n </MenuItem>\n\n <div\n style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }}\n className=\"agora-header-general-options-menu overflow-auto hidden absolute w-full right-0 z-sticky bg-[var(--color-neutral-100)] shadow-bottom-high\"\n >\n <HeaderMenuOptions\n submenu={menuItemsHeaderGeneralOptions.language.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n onClick={(evt: ReactMouseEvent<HTMLButtonElement>) => {\n toggleLanguage(evt, menuItemsHeaderGeneralOptions.language?.submenuItem?.selectedAriaLabel);\n }}\n />\n </div>\n </li>\n )}\n </Fragment>\n ];\n break;\n case 'search':\n component = [\n ...component,\n <Fragment key={generatedKey}>\n {stringToBoolean(hasSearch) && menuItemsHeaderGeneralOptions.search?.submenuItem?.submenuSearchContent && (\n <li role=\"none\" className={searchClassName} key={generatedKey}>\n <MenuItem\n {...menuItemsHeaderGeneralOptions.search.menuItem}\n ref={\n (\n menuItemsHeaderGeneralOptions.search.menuItem as unknown as\n | ComponentPropsWithRef<'button'>\n | ComponentPropsWithRef<'a'>\n )?.ref\n }\n itemType=\"search\"\n aria-haspopup\n aria-expanded={false}\n darkMode={darkModeHeaderGeneralOptions}\n onClick={(evt: ReactMouseEvent<HTMLButtonElement>) => {\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n >\n {!isMobile && menuItemsHeaderGeneralOptions.search.menuItem.children}\n </MenuItem>\n <div\n style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }}\n className=\"agora-header-general-options-menu overflow-auto hidden absolute w-full right-0 z-sticky bg-[var(--color-neutral-100)] shadow-bottom-high\"\n >\n <div\n aria-label={menuItemsHeaderGeneralOptions.search.submenuItem.submenuAriaLabel}\n className=\"container mx-auto xs:py-32 md:py-64 xl:py-64\"\n >\n <HeaderMenuOptions\n submenu={menuItemsHeaderGeneralOptions.search.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n </div>\n </div>\n </li>\n )}\n </Fragment>\n ];\n break;\n case 'user':\n component = [\n ...component,\n <Fragment key={generatedKey}>\n {stringToBoolean(hasUser) && menuItemsHeaderGeneralOptions.user && (\n <li role=\"none\" className={userClassName}>\n <MenuItem\n {...menuItemsHeaderGeneralOptions.user.menuItem}\n ref={\n (\n menuItemsHeaderGeneralOptions.user.menuItem as unknown as\n | ComponentPropsWithRef<'button'>\n | ComponentPropsWithRef<'a'>\n )?.ref\n }\n itemType={isMobile ? 'user' : 'primary'}\n {...(menuItemsHeaderGeneralOptions.user?.submenuItem?.submenuItems ? { 'aria-haspopup': true } : null)}\n {...(menuItemsHeaderGeneralOptions.user?.submenuItem?.submenuItems ? { 'aria-expanded': false } : null)}\n darkMode={darkModeHeaderGeneralOptions}\n onClick={(evt: ReactMouseEvent<any>) => {\n if (menuItemsHeaderGeneralOptions.user?.submenuItem?.submenuItems) {\n handleClickMenuItem(evt, setBackdropVisible);\n }\n menuItemsHeaderGeneralOptions?.user?.menuItem?.onClick?.(evt);\n }}\n >\n {!isMobile && menuItemsHeaderGeneralOptions.user.menuItem.children}\n </MenuItem>\n {menuItemsHeaderGeneralOptions.user?.submenuItem?.submenuItems && (\n <div\n style={{ maxHeight: `calc(100vh - ${headerHeight}px)` }}\n className=\"agora-header-general-options-menu overflow-auto hidden absolute w-full right-0 z-sticky bg-[var(--color-neutral-100)] shadow-bottom-high\"\n >\n <HeaderMenuOptions\n submenu={userNotLoggedSubmenuItemPropsClone as SubmenuItemProps}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n </div>\n )}\n </li>\n )}\n {stringToBoolean(hasUser) && menuItemsHeaderGeneralOptions.user?.drawerContent && (\n <li role=\"none\" className={userClassName}>\n <MenuItem\n {...userAvatarPropsCloneMenuItem}\n ref={(userAvatarPropsCloneMenuItem as unknown as ComponentPropsWithRef<'button'> | ComponentPropsWithRef<'a'>)?.ref}\n className=\"my-8\"\n actionItem\n itemType={'avatar'}\n aria-haspopup\n aria-expanded={false}\n darkMode={darkModeHeaderGeneralOptions}\n onKeyUp={(evt: any) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n handleClickMenuItem(\n evt,\n setBackdropVisible,\n menuItemsHeaderGeneralOptions.user?.drawerContent,\n refDrawer,\n setDrawerContent\n );\n }\n }}\n onClick={(evt: ReactMouseEvent<HTMLButtonElement>) => {\n handleClickMenuItem(\n evt,\n setBackdropVisible,\n menuItemsHeaderGeneralOptions.user?.drawerContent,\n refDrawer,\n setDrawerContent\n );\n }}\n />\n </li>\n )}\n </Fragment>\n ];\n break;\n default:\n break;\n }\n });\n return component;\n };\n\n return (\n <div className={headerGeneralOptionsClassName}>\n <nav aria-label={ariaLabelHeaderGeneralOptions}>\n <ul role=\"menubar\" className=\"flex xs:gap-16 md:gap-32 xl:gap-32\">\n {renderMenuItems(menuItemsHeaderGeneralOptions)}\n </ul>\n </nav>\n </div>\n );\n};\n\nexport { HeaderGeneralOptions };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, CSSProperties, FC, ReactNode, useId } from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { MenuItem } from '@/components/menu-item';\nimport { BackdropRef, HeaderNavigationType, MenuProps } from '../../models';\nimport { closeOtherSubmenus } from '../../utils/close-other-menu';\nimport { handleClickMenuItem } from '../../utils/handle-click-menu-item';\nimport { HeaderMenuOptions } from '../header-menu-item-options/header-menu-item-options';\nimport './header-navigation.scss';\n\nexport interface HeaderNavigationProps extends ComponentPropsWithRef<'div'> {\n /**\n * Activate navigation darkMode.\n */\n darkModeHeaderNavigation?: BooleanProp;\n /**\n * Navigation aria-label.\n */\n ariaLabelHeaderNavigation: string;\n /**\n * Content can be a custom element of logo default position.\n */\n headerNavigationContent?: ReactNode;\n /**\n * Legal sentence.\n */\n headerNavigationLegalSentence: string;\n /**\n * Navigation menu items.\n */\n menuItemsHeaderNavigation: MenuProps[];\n /**\n * Free Navigation menu item.\n */\n freeMenuItemsHeaderNavigation?: ReactNode;\n /**\n * Header navigation type.\n */\n headerNavigationType: HeaderNavigationType;\n}\n\nconst HeaderNavigation: FC<HeaderNavigationProps & BackdropRef & { optionsMenuOverflow?: CSSProperties }> = ({\n darkModeHeaderNavigation,\n ariaLabelHeaderNavigation,\n headerNavigationContent,\n menuItemsHeaderNavigation,\n freeMenuItemsHeaderNavigation,\n headerNavigationType = 'primary',\n headerNavigationLegalSentence = '',\n className,\n setBackdropVisible,\n optionsMenuOverflow\n}) => {\n const menuItemId = useId();\n\n // #region ClassNames\n const headerNavigationClassName = classNames(\n 'container mx-auto agora-header-navigation-options grid xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 gap-32 min-h-[60px]',\n {\n darkMode: stringToBoolean(darkModeHeaderNavigation)\n },\n className\n );\n\n const legalSentenceClassName = classNames('text-m-regular', {\n 'text-[var(--color-neutral-700)]': !darkModeHeaderNavigation,\n 'text-[var(--color-white)]': darkModeHeaderNavigation,\n 'sr-only': headerNavigationContent\n });\n\n // #endregion\n\n return (\n <div className={headerNavigationClassName}>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-5 flex items-center\">\n {headerNavigationType === 'primary' && <p className={legalSentenceClassName}>{headerNavigationLegalSentence}</p>}\n {headerNavigationContent}\n </div>\n {menuItemsHeaderNavigation && (\n <nav aria-label={ariaLabelHeaderNavigation} className=\"xs:col-span-4 md:col-span-8 xl:col-span-7\">\n <ul role=\"menubar\" className=\"flex justify-end gap-32\">\n {menuItemsHeaderNavigation\n ?.filter((_i, index) => index < 5)\n .map((item: MenuProps, index) => {\n const id = `${menuItemId}-menu-${index}`;\n const containerHeaderMenuOptions = classNames(\n 'agora-header-navigation-options-menu overflow-auto hidden absolute w-full right-0 z-sticky shadow-bottom-high',\n {\n 'bg-[var(--color-neutral-50)]': item.submenuItem?.highlightItems,\n 'bg-[var(--color-neutral-100)]': !item.submenuItem?.highlightItems\n }\n );\n\n return (\n <li key={id} role=\"none\">\n <MenuItem\n {...item.menuItem}\n ref={(item.menuItem as unknown as ComponentPropsWithRef<'button'> | ComponentPropsWithRef<'a'>)?.ref}\n itemType={headerNavigationType}\n darkMode={darkModeHeaderNavigation}\n onClick={(evt: any) => {\n item.menuItem.onClick?.(evt);\n handleClickMenuItem(evt, setBackdropVisible);\n }}\n />\n\n {item.submenuItem && (\n <div style={optionsMenuOverflow} className={containerHeaderMenuOptions}>\n <HeaderMenuOptions\n submenu={item.submenuItem}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n />\n {item.submenuItem?.highlightItems && (\n <div aria-label={item.submenuItem?.highlightItems.submenuAriaLabel} className=\"bg-[var(--color-neutral-100)]\">\n <HeaderMenuOptions\n submenu={item.submenuItem?.highlightItems}\n closeOtherMenuItemOpened={closeOtherSubmenus}\n setBackdropVisible={setBackdropVisible}\n className=\"flex flex-wrap gap-32\"\n />\n </div>\n )}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n )}\n {freeMenuItemsHeaderNavigation && (\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-7 flex justify-end gap-32 pb-16 pt-[12px]\">\n {freeMenuItemsHeaderNavigation}\n </div>\n )}\n </div>\n );\n};\n\nexport { HeaderNavigation };\n","import React, { ComponentPropsWithoutRef, FC, MouseEvent, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { Anchor } from '@/components/anchor';\nimport { Button } from '@/components/button';\nimport { Drawer, DrawerElement } from '@/components/drawer';\nimport { MenuItemProps } from '@/components/menu-item';\nimport { useWindowSize } from '@/hooks';\nimport { BooleanProp } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport './header.scss';\nimport { DrawerContentProps, MenuProps } from './models';\nimport { HeaderBurgerNavigation } from './shared-components/header-burger-navigation/header-burger-navigation';\nimport { HeaderGeneralOptions, HeaderGeneralOptionsProps } from './shared-components/header-general-options/header-general-options';\nimport { HeaderNavigation, HeaderNavigationProps } from './shared-components/header-navigation/header-navigation';\n\nexport interface HeaderProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Used to help identify page, SEO and accessibility when in homepage.\n * Can be a set of keywords or simple the name of our application.\n * When not in homepage, h1 should be on main with the title of the page.\n */\n headerSEO: string;\n\n /**\n * Current page is homepage.\n */\n isHomepage: BooleanProp;\n\n /**\n * Header on darkMode.\n */\n darkModeHeader: BooleanProp;\n\n /**\n * Show/hide general options navigation.\n */\n hasHeaderGeneralOptions: BooleanProp;\n\n /**\n * Configuration headerGeneralOptions.\n */\n headerGeneralOptions: HeaderGeneralOptionsProps;\n\n /**\n * Show/hide header primary navigation.\n */\n hasHeaderPrimaryNavigation: BooleanProp;\n\n /**\n * Configuration headerPrimaryNavigation.\n */\n headerPrimaryNavigation: HeaderNavigationProps;\n\n /**\n * Show/hide header secondary navigation.\n */\n hasHeaderSecondaryNavigation: BooleanProp;\n\n /**\n * Configuration headerSecondaryNavigation.\n */\n headerSecondaryNavigation: HeaderNavigationProps;\n\n /**\n * Configuration of menu burger item.\n */\n menuBurgerItem: MenuItemProps;\n\n /**\n * Has menu burger back button.\n */\n hasBackButtonBurger?: BooleanProp;\n\n /**\n * Menu burger back button label.\n */\n backButtonLabelBurger?: ReactNode;\n\n /**\n * Menu burger handle click.\n */\n handleBackButtonBurger?: (evt: MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst Header: FC<HeaderProps> = ({\n headerSEO,\n isHomepage,\n darkModeHeader = stringToBoolean('false'),\n hasHeaderGeneralOptions = stringToBoolean('false'),\n hasHeaderPrimaryNavigation = stringToBoolean('false'),\n hasHeaderSecondaryNavigation = stringToBoolean('false'),\n headerGeneralOptions,\n headerPrimaryNavigation,\n headerSecondaryNavigation,\n menuBurgerItem,\n hasBackButtonBurger,\n backButtonLabelBurger,\n handleBackButtonBurger\n}) => {\n const { width } = useWindowSize();\n const isTablet = width >= 768 && width < 1200;\n const isMobile = width < 768;\n\n // #region Opened Menus\n const getOpenMenuNav = () => {\n const allSubmenus = [\n ...document.getElementsByClassName('agora-header-general-options-menu'),\n ...document.getElementsByClassName('agora-header-navigation-options-menu'),\n ...document.getElementsByClassName('agora-header-burger-navigation-options-menu'),\n ...document.getElementsByClassName('agora-drawer-authentication')\n ];\n\n const openSubmenu: Element | undefined = allSubmenus.find((menu) => !menu.classList.contains('hidden'));\n\n if (\n openSubmenu?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-general') ||\n openSubmenu?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-primary') ||\n openSubmenu?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-secondary')\n ) {\n return openSubmenu.parentElement.parentElement.parentElement.parentElement.parentElement;\n } else if (openSubmenu?.parentElement?.parentElement?.parentElement?.classList.contains('agora-header-burger-navigation')) {\n return openSubmenu.parentElement.parentElement.parentElement;\n } else if (openSubmenu?.classList.contains('drawer-open-right')) {\n return openSubmenu;\n }\n };\n\n const trapFocus = (evt: KeyboardEvent, focusableElements: NodeListOf<Element>) => {\n const focusableElementsVisible = Array.from(focusableElements).filter(\n (value) => !value?.parentElement?.parentElement?.parentElement?.classList.contains('hidden') || !value.classList.contains('!hidden')\n );\n\n const submenuFocusableElement: Element[] = [];\n\n focusableElementsVisible.forEach((element) => {\n if (\n (element.closest('.agora-header-navigation-options-menu') && !element.closest('.agora-header-navigation-options-menu.hidden')) ||\n (element.closest('.agora-header-general-options-menu') && !element.closest('.agora-header-general-options-menu.hidden'))\n ) {\n submenuFocusableElement.push(element);\n }\n });\n\n if (submenuFocusableElement) {\n const firstElement = submenuFocusableElement[0] as HTMLElement;\n const lastElement = submenuFocusableElement[submenuFocusableElement.length - 1] as HTMLElement;\n\n if (evt.shiftKey && document.activeElement === firstElement) {\n evt.preventDefault();\n lastElement.focus();\n } else if (!evt.shiftKey && document.activeElement === lastElement) {\n evt.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n const trapFocusBurger = (evt: KeyboardEvent, focusableElements: Element[]) => {\n const focusableElementsVisible = Array.from(focusableElements).filter(\n (value) =>\n !value?.parentElement?.parentElement?.parentElement?.parentElement?.classList.contains('hidden') &&\n !value.classList.contains('!hidden')\n );\n\n const submenuFocusableElement: Element[] = [];\n\n focusableElementsVisible.forEach((element) => {\n if (\n !element.closest('.agora-header-burger-navigation-options-submenu-level-2.hidden') &&\n !element.closest('.agora-header-burger-navigation-options-submenu-level-3.hidden') &&\n !element.closest('.agora-header-burger-navigation-options-submenu.hidden')\n ) {\n submenuFocusableElement.push(element);\n }\n });\n\n if (submenuFocusableElement) {\n const firstElement = submenuFocusableElement.find(\n (el) => !el.classList.contains('hidden') && !el.classList.contains('!hidden')\n ) as HTMLElement;\n const reversesubmenuFocusableElement = Array.from(submenuFocusableElement).reverse();\n const lastElement = reversesubmenuFocusableElement.find(\n (el) => !el.classList.contains('hidden') && !el.classList.contains('!hidden')\n ) as HTMLElement;\n\n if (evt.shiftKey && document.activeElement === firstElement) {\n evt.preventDefault();\n lastElement.focus();\n } else if (\n (!evt.shiftKey && document.activeElement === lastElement) ||\n !document.querySelector('.agora-header-burger-navigation')?.contains(document.activeElement)\n ) {\n evt.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n // #endregion\n\n // #region \"BACKDROP\"\n\n const [backdropVisible, setBackdropVisible] = useState<boolean>(false);\n\n const backdropRef = useRef<HTMLDivElement | null>(null);\n\n const callSetBackdropVisible = (val: boolean) => {\n setBackdropVisible(val);\n };\n\n const handleClickOutside = () => {\n setBackdropVisible(false);\n\n const allSubmenus = [\n ...document.getElementsByClassName('agora-header-general-options-menu'),\n ...document.getElementsByClassName('agora-header-navigation-options-menu'),\n ...document.getElementsByClassName('agora-header-burger-navigation-options-menu')\n ];\n allSubmenus.forEach((el: Element) => {\n const parentAllSubmenus = el?.parentElement;\n if (el.classList.contains('hidden') === false || parentAllSubmenus?.classList.contains('hidden') === false) {\n if (parentAllSubmenus?.classList.contains('agora-wrapper-menu') === true) {\n parentAllSubmenus.classList.add('hidden');\n }\n el.classList.add('hidden');\n document.body.classList.remove('overflow-hidden');\n const menuItem =\n parentAllSubmenus?.classList.contains('agora-wrapper-menu') === true\n ? (parentAllSubmenus.previousSibling as HTMLButtonElement)\n : (el.previousSibling as HTMLButtonElement);\n if (menuItem?.ariaExpanded && stringToBoolean(menuItem?.ariaExpanded)) {\n menuItem.click();\n menuItem.focus();\n }\n }\n if (el.classList.contains('agora-header-burger-navigation-options-menu') === true) {\n el.classList.add('pt-32');\n el.querySelectorAll('.agora-menu-item').forEach((element) => {\n element.classList.remove('!hidden');\n });\n el.querySelectorAll('.agora-header-burger-navigation-options-submenu-level-2').forEach((element) => {\n element.classList.add('hidden');\n });\n }\n });\n };\n\n const navigationTab = useCallback((evt: KeyboardEvent, openedMenu: Element) => {\n const focusableElements: Element[] = Array.from(\n openedMenu.querySelectorAll(\n 'a:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"]), details:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])'\n )\n );\n const burgerMenu = document.querySelector('.agora-header-burger-navigation-options-menu');\n const burgerSubmenu = document.querySelector('.agora-header-burger-navigation-options-submenu');\n const burgerSubmenuLevel2 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-2');\n const burgerSubmenuLevel3 = document.querySelector('.agora-header-burger-navigation-options-submenu-level-3');\n\n let focusableElementsClone: Element[] = [];\n\n focusableElements.forEach((e) => {\n if (\n ((burgerSubmenuLevel3 as Element)?.contains(e) && burgerSubmenuLevel3?.classList.contains('hidden')) ||\n ((burgerSubmenuLevel2 as Element)?.contains(e) && burgerSubmenuLevel2?.classList.contains('hidden')) ||\n ((burgerSubmenu as Element)?.contains(e) && burgerSubmenu?.classList.contains('hidden')) ||\n ((burgerMenu as Element)?.contains(e) && burgerMenu?.classList.contains('hidden'))\n ) {\n return;\n }\n\n focusableElementsClone = [...focusableElementsClone, e];\n });\n trapFocusBurger(evt, focusableElementsClone);\n }, []);\n\n useEffect(() => {\n const { current } = backdropRef;\n\n const keydownHandler = (evt: KeyboardEvent) => {\n if (evt.code === 'Escape') {\n handleClickOutside();\n document.body.classList.remove('overflow-hidden');\n }\n if (evt.key === 'Tab' && current) {\n const openedMenu = getOpenMenuNav();\n if (openedMenu) {\n if (openedMenu.classList.contains('agora-header-burger-navigation')) {\n navigationTab(evt, openedMenu);\n } else {\n const focusableElements = openedMenu.querySelectorAll(\n 'a:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"]), details:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])'\n );\n trapFocus(evt, focusableElements);\n }\n }\n }\n };\n\n current?.addEventListener('click', handleClickOutside);\n document.addEventListener('keydown', keydownHandler);\n\n return () => {\n current?.removeEventListener('click', handleClickOutside);\n document.removeEventListener('keydown', keydownHandler);\n };\n }, [backdropVisible, navigationTab]);\n\n // #endregion \"BACKDROP\"\n\n // #region \"DRAWER\"\n const refDrawer = useRef<DrawerElement>(null);\n const [drawerContent, setDrawerContent] = useState<DrawerContentProps | null | undefined>(null);\n\n const drawerClassNames = classNames('agora-drawer-authentication', {\n darkMode: darkModeHeader\n });\n\n const callSetDrawerContent = (val: DrawerContentProps | null | undefined) => setDrawerContent(val);\n\n const [headerDrawerHeight, setHeaderDrawerHeight] = useState(0);\n const [footerDrawerHeight, setFooterDrawerHeight] = useState(0);\n\n const handleCloseDrawer = () => {\n refDrawer.current?.close();\n document.body.classList.remove('overflow-hidden');\n };\n\n const handleFooterDrawer = (onClick: () => void) => {\n handleCloseDrawer();\n onClick();\n };\n\n useEffect(() => {\n const { current } = refDrawer;\n\n const headerResize = () => {\n if (refDrawer.current) {\n setHeaderDrawerHeight((refDrawer.current as HTMLElement).querySelector('nav')?.previousElementSibling?.clientHeight ?? 0);\n setFooterDrawerHeight((refDrawer.current as HTMLElement).querySelector('nav')?.nextElementSibling?.clientHeight ?? 0);\n }\n };\n\n const keydownHandler = (evt: KeyboardEvent) => {\n if (evt.code === 'Escape') {\n handleClickOutside();\n document.body.classList.remove('overflow-hidden');\n }\n if (evt.key === 'Tab' && current) {\n const openedMenu = getOpenMenuNav();\n if (openedMenu) {\n const focusableElements = openedMenu.querySelectorAll(\n 'a:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"]), details:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])'\n );\n trapFocus(evt, focusableElements);\n }\n }\n };\n\n headerResize();\n\n window.addEventListener('resize', headerResize);\n document.addEventListener('keydown', keydownHandler);\n\n return () => {\n window.removeEventListener('resize', headerResize);\n document.removeEventListener('keydown', keydownHandler);\n };\n }, [drawerContent]);\n\n // #endregion \"DRAWER\"\n\n // #region \"GENERAL HEADER\"\n const headerGeneralOptionsClone = { ...headerGeneralOptions };\n headerGeneralOptionsClone.darkModeHeaderGeneralOptions = darkModeHeader;\n\n const headerGeneralOptionsClassNames = classNames('agora-header-general z-sticky', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n\n // #endregion \"GENERAL HEADER\"\n\n // #region \"PRIMARY HEADER\"\n\n const headerPrimaryNavigationClone = { ...headerPrimaryNavigation };\n headerPrimaryNavigationClone.darkModeHeaderNavigation = darkModeHeader;\n\n const headerPrimaryNavigationClassNames = classNames('agora-header-primary z-sticky', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n\n // #endregion \"PRIMARY HEADER\"\n\n // #region \"SECONDARY HEADER\"\n\n const [headerSecondaryNav, setHeaderSecondaryNav] = useState<HeaderNavigationProps | undefined | null>(null);\n\n useEffect(() => {\n if (headerPrimaryNavigationClone.menuItemsHeaderNavigation) {\n const menu = headerPrimaryNavigationClone.menuItemsHeaderNavigation.filter((_i, index) => index < 5);\n const currentMenuIndex = menu.findIndex((item: MenuProps) => item.menuItem['aria-current'] === 'page');\n setHeaderSecondaryNav(\n menu[currentMenuIndex]?.relatedNavMenu ??\n ({\n ...menu[currentMenuIndex],\n relatedNavMenu: {\n headerNavigationLegalSentence: headerPrimaryNavigationClone.headerNavigationLegalSentence,\n menuItemsHeaderNavigation: []\n }\n } as unknown as HeaderNavigationProps)\n );\n }\n }, [headerPrimaryNavigationClone.headerNavigationLegalSentence, headerPrimaryNavigationClone.menuItemsHeaderNavigation]);\n\n const hasHeaderSecondaryNavigationClone = hasHeaderSecondaryNavigation;\n\n const headerSecondaryNavigationClassNames = classNames('agora-header-secondary z-sticky pt-16', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n // #endregion \"SECONDARY HEADER\"\n\n // #region \"SCROLL\"\n\n const [scrolled, setScrolled] = useState<boolean>(false);\n\n useEffect(() => {\n let withWheel = false;\n const onScroll: EventListener = () => {\n const header = document.querySelector('.agora-header');\n const primaryNav = document.querySelector('.agora-header-primary');\n const secondaryNav = document.querySelector('.agora-header-secondary');\n const burgerNav = document.querySelector('.agora-header-burger-navigation');\n\n //If focus target is inside header, stop scrolling\n if (header?.contains(document.activeElement)) {\n window.scrollTo(0, 0);\n }\n\n setScrolled((last) => !last);\n\n if (window.scrollY === 0 && !isMobile && !isTablet) {\n primaryNav?.removeAttribute('hidden');\n secondaryNav?.removeAttribute('hidden');\n primaryNav?.classList.add('fade-in-up');\n secondaryNav?.classList.add('fade-in-up');\n burgerNav?.setAttribute('hidden', 'true');\n burgerNav?.classList.remove('fade-in-up');\n\n asyncTrigger(() => {\n primaryNav?.classList.remove('fade-in-up');\n secondaryNav?.classList.remove('fade-in-up');\n }, 550);\n\n withWheel = false;\n }\n\n if (scrolled) {\n return;\n }\n\n if (window.scrollY > 1 && !isMobile && !isTablet && (withWheel || !header?.contains(document.activeElement))) {\n primaryNav?.setAttribute('hidden', 'true');\n secondaryNav?.setAttribute('hidden', 'true');\n primaryNav?.classList.remove('fade-in-up');\n secondaryNav?.classList.remove('fade-in-up');\n burgerNav?.removeAttribute('hidden');\n burgerNav?.classList.add('fade-in-up');\n withWheel = false;\n }\n };\n const onWheel: EventListener = () => {\n (document.activeElement as HTMLElement)?.blur();\n withWheel = true;\n };\n\n window.addEventListener('scroll', onScroll);\n window.addEventListener('wheel', onWheel);\n\n return () => {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('wheel', onWheel);\n };\n }, [isMobile, isTablet, scrolled, setScrolled]);\n // #endregion \"SCROLL\"\n\n // #region \"MENU BURGER\"\n\n const headerBurgerNavigationClassNames = classNames('agora-header-burger-navigation', {\n darkMode: stringToBoolean(darkModeHeader)\n });\n\n useEffect(() => {\n const resizeMenuWithBurger = () => {\n const primaryNav = document.querySelector('.agora-header-primary');\n const secondaryNav = document.querySelector('.agora-header-secondary');\n const burgerNav = document.querySelector('.agora-header-burger-navigation');\n if (isMobile || isTablet) {\n handleClickOutside();\n primaryNav?.setAttribute('hidden', 'true');\n secondaryNav?.setAttribute('hidden', 'true');\n burgerNav?.removeAttribute('hidden');\n } else {\n window.scrollTo(0, 0);\n handleClickOutside();\n primaryNav?.removeAttribute('hidden');\n secondaryNav?.removeAttribute('hidden');\n burgerNav?.setAttribute('hidden', 'true');\n }\n };\n\n resizeMenuWithBurger();\n\n window.addEventListener('resize', resizeMenuWithBurger);\n return () => {\n window.removeEventListener('resize', resizeMenuWithBurger);\n };\n }, [isMobile, isTablet]);\n\n // #endregion \"MENU BURGER\"\n\n const menuItemWithFreeContent = headerPrimaryNavigationClone?.menuItemsHeaderNavigation?.find(\n (el) => el.relatedNavMenu?.freeMenuItemsHeaderNavigation !== undefined\n );\n\n const [heightGeneralNav, setHeightGeneralNav] = useState(0);\n const [heightPrimaryNav, setHeightPrimaryNav] = useState(0);\n const [heightSecondaryNav, setHeightSecondaryNav] = useState(0);\n\n useEffect(() => {\n if (document) {\n const generalNavElem = document.querySelector('.agora-header-general');\n if (generalNavElem) {\n setHeightGeneralNav(generalNavElem.clientHeight);\n }\n\n const primaryNavElem = document.querySelector('.agora-header-primary');\n if (primaryNavElem) {\n setHeightPrimaryNav(primaryNavElem.clientHeight);\n }\n\n const secondaryNavElem = document.querySelector('.agora-header-secondary');\n if (secondaryNavElem) {\n setHeightSecondaryNav(secondaryNavElem.clientHeight);\n }\n }\n }, []);\n\n // This only need, because Firefox not has in production mode the \":has\" css attribute, but is planned on next versions (so we keep this and css lines)\n useEffect(() => document.querySelector('.agora-header')?.parentElement?.classList.add('sticky', 'top-0', 'z-sticky'), []);\n\n return (\n <>\n <div className=\"relative z-sticky agora-header\">\n {stringToBoolean(isHomepage) && <h1 className=\"sr-only\">{headerSEO}</h1>}\n {stringToBoolean(hasHeaderGeneralOptions) && headerGeneralOptionsClone?.menuItemsHeaderGeneralOptions && (\n <div className={headerGeneralOptionsClassNames}>\n <HeaderGeneralOptions\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n refDrawer={refDrawer}\n setDrawerContent={callSetDrawerContent}\n {...headerGeneralOptionsClone}\n />\n </div>\n )}\n {stringToBoolean(hasHeaderPrimaryNavigation) && (\n <div className={headerPrimaryNavigationClassNames}>\n <HeaderNavigation\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n {...headerPrimaryNavigationClone}\n headerNavigationType=\"primary\"\n optionsMenuOverflow={{ maxHeight: `calc(100vh - ${heightGeneralNav + heightPrimaryNav}px)` }}\n />\n </div>\n )}\n {stringToBoolean(hasHeaderSecondaryNavigationClone) &&\n headerSecondaryNav &&\n (headerSecondaryNav?.menuItemsHeaderNavigation || headerSecondaryNavigation?.headerNavigationContent) && (\n <div className={headerSecondaryNavigationClassNames}>\n <HeaderNavigation\n {...headerSecondaryNav}\n darkModeHeaderNavigation={darkModeHeader}\n ariaLabelHeaderNavigation={headerSecondaryNavigation?.ariaLabelHeaderNavigation}\n headerNavigationContent={headerSecondaryNavigation?.headerNavigationContent}\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n headerNavigationType=\"secondary\"\n optionsMenuOverflow={{ maxHeight: `calc(100vh - ${heightGeneralNav + heightPrimaryNav + heightSecondaryNav}px)` }}\n />\n </div>\n )}\n {headerPrimaryNavigationClone.menuItemsHeaderNavigation && (\n <div className={headerBurgerNavigationClassNames} hidden>\n <HeaderBurgerNavigation\n menuBurgerItem={menuBurgerItem}\n headerSecondaryNavigation={headerSecondaryNavigation}\n headerPrimaryNavigation={headerPrimaryNavigationClone}\n darkModeHeader={darkModeHeader}\n current={backdropRef.current}\n backdropVisible={backdropVisible}\n setBackdropVisible={callSetBackdropVisible}\n hasHeaderGeneralOptions={hasHeaderGeneralOptions}\n headerGeneralOptions={headerGeneralOptions}\n hasHeaderPrimaryNavigation={hasHeaderPrimaryNavigation}\n hasHeaderSecondaryNavigation={hasHeaderSecondaryNavigationClone}\n hasBackButtonBurger={hasBackButtonBurger}\n backButtonLabelBurger={backButtonLabelBurger}\n handleBackButtonBurger={handleBackButtonBurger}\n headerSEO={headerSEO}\n isHomepage={isHomepage}\n />\n {menuItemWithFreeContent?.menuItem['aria-current'] === 'page' && (\n <div className=\"container mx-auto flex xs:justify-start md:justify-end py-16\">\n {menuItemWithFreeContent.relatedNavMenu?.freeMenuItemsHeaderNavigation}\n </div>\n )}\n </div>\n )}\n </div>\n {backdropVisible && <div className=\"z-backdrop bg-[var(--color-backdrop)] absolute w-full h-screen\" ref={backdropRef} />}\n\n <Drawer className={drawerClassNames} position=\"right\" dismissOnEscape ref={refDrawer} onClickedOutside={handleClickOutside}>\n {drawerContent && (\n <>\n <div>\n <Button\n className=\"agora-drawer-header\"\n variant=\"primary\"\n appearance=\"solid\"\n hasIcon\n fullWidth\n trailingIcon=\"agora-line-chevron-right\"\n trailingIconHover=\"agora-solid-chevron-right\"\n onClick={handleCloseDrawer}\n >\n {drawerContent.headerLabel}\n </Button>\n </div>\n <nav\n aria-label={drawerContent.menuDrawer['aria-label']}\n className=\"overflow-auto\"\n style={{ maxHeight: `calc(100vh - ${headerDrawerHeight + footerDrawerHeight}px)` }}\n >\n <ul role=\"menubar\">\n {drawerContent.menuDrawer.items.map((c, ind) => {\n const keyDrw = `menu-drawer-${ind}`;\n return (\n <li role=\"none\" key={keyDrw}>\n <Anchor\n className=\"agora-drawer-menu-item\"\n appearance=\"link\"\n variant=\"neutral\"\n hasIcon\n fullWidth\n leadingIcon={c.leadingIcon}\n leadingIconHover={c.leadingIconHover}\n href={c.href}\n role=\"menuitem\"\n >\n {c.children}\n </Anchor>\n </li>\n );\n })}\n </ul>\n </nav>\n <div className=\"absolute bottom-0 w-full\">\n <Button\n className=\"agora-drawer-footer\"\n variant=\"neutral\"\n appearance=\"link\"\n hasIcon\n fullWidth\n leadingIcon=\"agora-line-log-out\"\n leadingIconHover=\"agora-solid-log-out\"\n onClick={() => handleFooterDrawer(drawerContent.footer.onClick)}\n >\n {drawerContent.footer.footerLabel}\n </Button>\n </div>\n </>\n )}\n </Drawer>\n </>\n );\n};\n\nexport { Header };\n","import React, { createContext, Dispatch, FC, ReactNode, SetStateAction } from 'react';\nimport { Months, WeekDays } from '@/models';\n\nexport type DatePickerStateContextType = {\n focusedDate: Date;\n setFocusedDate: Dispatch<SetStateAction<Date>>;\n\n selectedDate: Date;\n setSelectedDate: Dispatch<SetStateAction<Date>>;\n\n cancel: () => void;\n\n labels: {\n previousYearAriaLabel: string;\n previousMonthAriaLabel: string;\n nextMonthAriaLabel: string;\n nextYearAriaLabel: string;\n monthsLabels?: Months;\n weekdaysLabels?: WeekDays;\n focusedDayAriaLabel?: string;\n selectedDayAriaLabel: string;\n todayDayAriaLabel: string;\n todayLabel: string;\n todayAriaLabel?: string;\n cancelLabel: string;\n cancelAriaLabel?: string;\n okLabel: string;\n okAriaLabel?: string;\n };\n};\n\nexport const DatePickerStateContext = createContext<DatePickerStateContextType | undefined>(undefined);\n\nexport interface DatePickerStateProviderProps {\n children: ReactNode;\n value: DatePickerStateContextType;\n}\n\nexport const DatePickerStateProvider: FC<DatePickerStateProviderProps> = ({ value, children }) => {\n return <DatePickerStateContext.Provider value={value}>{children}</DatePickerStateContext.Provider>;\n};\n","import { useContext, useMemo } from 'react';\nimport { Months, WeekDays } from '@/models';\n\nimport { DatePickerStateContext } from './date-picker-state.context';\n\nconst DEFAULT_MONTHS = {\n jan: 'Janeiro',\n feb: 'Fevereiro',\n mar: 'Março',\n apr: 'Abril',\n may: 'Maio',\n jun: 'Junho',\n jul: 'Julho',\n aug: 'Agosto',\n set: 'Setembro',\n oct: 'Outubro',\n nov: 'Novembro',\n dec: 'Dezembro'\n} as Months;\n\nconst DEFAULT_WEEK_DAYS = {\n sun: 'Domingo',\n mon: 'Segunda',\n tue: 'Terça',\n wed: 'Quarta',\n thu: 'Quinta',\n fri: 'Sexta',\n sat: 'Sábado'\n} as WeekDays;\n\nconst useDatePickerStateContext = () => {\n const ctx = useContext(DatePickerStateContext);\n\n if (!ctx) {\n throw new Error('Context must be used within a provider.');\n }\n\n const months = ctx.labels.monthsLabels ?? DEFAULT_MONTHS;\n\n const weekDays = ctx.labels.weekdaysLabels ?? DEFAULT_WEEK_DAYS;\n\n const mapMonths = new Map<number, string>();\n Object.values(months).forEach((value: string, index) => {\n mapMonths.set(index, value);\n });\n\n const getAbbrWeekDays = () => {\n return Object.values(weekDays).map((wd: string) => wd.substring(0, 3));\n };\n\n const focusedMonth = useMemo(() => {\n return mapMonths.get(ctx.focusedDate.getMonth());\n }, [ctx.focusedDate]);\n\n const focusedYear = useMemo(() => {\n return ctx.focusedDate.getFullYear();\n }, [ctx.focusedDate]);\n\n const focusToday = (): void => {\n ctx.setFocusedDate(new Date());\n };\n\n const moveToPreviousYear = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setFullYear(newDate.getFullYear() - 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToPreviousMonth = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setMonth(newDate.getMonth() - 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextMonth = () => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setMonth(newDate.getMonth() + 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextYear = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setFullYear(newDate.getFullYear() + 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextDay = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() + 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToNextWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() + 7);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToPreviousDay = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() - 1);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToPreviousWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() - 7);\n ctx.setFocusedDate(newDate);\n };\n\n const moveToFirstDayOfWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() - newDate.getDay());\n ctx.setFocusedDate(newDate);\n };\n\n const moveToLastDayOfWeek = (): void => {\n const newDate = new Date(ctx.focusedDate.getTime());\n newDate.setDate(newDate.getDate() + (6 - newDate.getDay()));\n ctx.setFocusedDate(newDate);\n };\n\n const selectFocusedDate = (): void => {\n ctx.setSelectedDate(ctx.focusedDate);\n };\n\n const getLabels = () => {\n return ctx.labels;\n };\n\n return {\n ...ctx,\n getLabels,\n\n getAbbrWeekDays,\n\n focusedMonth,\n focusedYear,\n\n moveToPreviousYear,\n moveToPreviousMonth,\n moveToNextMonth,\n moveToNextYear,\n\n moveToNextDay,\n moveToNextWeek,\n moveToPreviousDay,\n moveToPreviousWeek,\n moveToFirstDayOfWeek,\n moveToLastDayOfWeek,\n selectFocusedDate,\n\n focusToday\n };\n};\n\nexport { useDatePickerStateContext };\n","export const isDateInSameMonthOfYear = (date1: Date, date2: Date): boolean => {\n return date1.getMonth() === date2.getMonth() && date1.getFullYear() === date2.getFullYear();\n};\n","export const isSameDay = (date1: Date, date2: Date): boolean => {\n return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();\n};\n","import { getDateString } from '@/utils';\n\nexport const parseInputDate = (val?: string | null): Date | undefined => {\n if (!val) {\n return undefined;\n }\n\n if (/\\d{1,2}\\/\\d{1,2}\\/\\d{4}/.test(val)) {\n const parts = val.split('/');\n if (parts) {\n const day = +parts[0];\n const month = +parts[1];\n const year = +parts[2];\n const parsedDate = new Date(year, month - 1, day);\n const parsedDateString = getDateString(parsedDate);\n return parsedDateString === val ? parsedDate : undefined;\n }\n }\n\n return undefined;\n};\n","import classNames from 'classnames';\nimport React, { FC, KeyboardEvent, MouseEvent, useEffect, useMemo, useRef, useState } from 'react';\nimport { useDatePickerStateContext } from '../contexts/use-date-picker-state-context';\nimport { getDateString } from '@/utils';\nimport { isDateInSameMonthOfYear } from '../utils/is-date-in-same-month';\nimport { isSameDay } from '../utils/is-same-day';\nimport { parseInputDate } from '../utils/parse-input-date';\n\nexport const DialogBody: FC = () => {\n const ctx = useDatePickerStateContext();\n\n const ref = useRef(null);\n\n const [isCalendarActive, setIsCalendarActive] = useState(false);\n\n const parseDateFromTarget = (target: HTMLElement): Date | undefined => {\n const dateString = target.getAttribute('data-date');\n return parseInputDate(dateString);\n };\n\n const focusAndSelectTargetDate = (targetDate: Date | undefined) => {\n if (targetDate && isDateInSameMonthOfYear(ctx.focusedDate, targetDate)) {\n ctx.setFocusedDate(targetDate);\n ctx.setSelectedDate(targetDate);\n }\n };\n\n const onClickHandler = (evt: MouseEvent<HTMLTableCellElement>) => {\n focusAndSelectTargetDate(parseDateFromTarget(evt.target as HTMLElement));\n };\n\n const onKeydownHandler = (evt: KeyboardEvent<HTMLTableCellElement>) => {\n const { shiftKey } = evt;\n const { target } = evt;\n const { code } = evt;\n\n if (code === 'Tab') {\n return;\n }\n\n evt.preventDefault();\n\n switch (evt.code) {\n case 'ArrowUp':\n ctx.moveToPreviousWeek();\n break;\n case 'ArrowDown':\n ctx.moveToNextWeek();\n break;\n case 'ArrowLeft':\n ctx.moveToPreviousDay();\n break;\n case 'ArrowRight':\n ctx.moveToNextDay();\n break;\n case 'PageUp':\n if (shiftKey) {\n ctx.moveToPreviousYear();\n } else {\n ctx.moveToPreviousMonth();\n }\n break;\n case 'PageDown':\n if (shiftKey) {\n ctx.moveToNextYear();\n } else {\n ctx.moveToNextMonth();\n }\n break;\n case 'Home':\n ctx.moveToFirstDayOfWeek();\n break;\n case 'End':\n ctx.moveToLastDayOfWeek();\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n focusAndSelectTargetDate(parseDateFromTarget(target as HTMLElement));\n break;\n default:\n break;\n }\n };\n\n const onFocusHandler = () => {\n setIsCalendarActive(true);\n };\n\n const onBlurHandler = () => {\n setIsCalendarActive(false);\n };\n\n const buildDay = (currentDay: Date, weekNumber: number, dayNumber: number) => {\n currentDay.setDate(currentDay.getDate() + 1);\n\n const isInCurrentMonth = currentDay.getMonth() === ctx.focusedDate.getMonth();\n const isFocusedDate = isSameDay(currentDay, ctx.focusedDate);\n const isSelectedDate = isSameDay(currentDay, ctx.selectedDate);\n const isToday = isSameDay(currentDay, new Date());\n\n const stringDate = getDateString(currentDay);\n\n const tdDayClasses = classNames(\n 'day w-[44px] h-[44px] border-2 rounded-4 outline-0 flex items-center justify-center text-s-regular text-[var(--color-neutral-900)] cursor-default',\n // DEFAULT\n {\n 'border-transparent': !isSelectedDate && !isFocusedDate\n },\n // DAY IN CURRENT MONTH\n {\n 'hover:bg-[var(--color-primary-100)] hover:text-[var(--color-primary-600)]': isInCurrentMonth\n },\n // TODAY DEFAULT\n {\n 'text-s-bold text-[var(--color-primary-600)]': isToday && !isSelectedDate\n },\n // SELECTED\n {\n 'bg-[var(--color-primary-600)] text-white': isSelectedDate\n },\n // FOCUS WITH CALENDAR GRID NOT FOCUSED\n {\n 'border-[var(--color-primary-400)]': !isSelectedDate && isFocusedDate && !isCalendarActive && isInCurrentMonth\n },\n // FOCUS\n {\n 'outline outline-2 -outline-offset-2 outline-[var(--color-focus)]': isCalendarActive && isFocusedDate && isInCurrentMonth\n }\n );\n\n const dayClasses = classNames('pointer-events-none select-none', { 'opacity-20': !isInCurrentMonth });\n\n const trTdKey = `tr-td-key-${weekNumber}-${dayNumber}`;\n\n const ariaLabelForDay = (() => {\n const labels = ctx.getLabels();\n\n let dayLabel = currentDay.toLocaleDateString(undefined, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });\n\n if (isToday && labels.todayDayAriaLabel) {\n dayLabel = `${labels.todayDayAriaLabel}, ${dayLabel}`;\n }\n\n if (isFocusedDate && labels.focusedDayAriaLabel) {\n dayLabel = `${dayLabel}, ${labels.focusedDayAriaLabel}`;\n }\n\n if (isSelectedDate && labels.selectedDayAriaLabel) {\n dayLabel = `${dayLabel}, ${labels.selectedDayAriaLabel}`;\n }\n\n return dayLabel;\n })();\n\n return (\n <div\n key={trTdKey}\n className={tdDayClasses}\n role=\"gridcell\"\n data-date={stringDate}\n aria-label={ariaLabelForDay}\n aria-selected={isFocusedDate}\n tabIndex={isInCurrentMonth && isFocusedDate ? 0 : -1}\n onKeyDown={onKeydownHandler}\n onClick={onClickHandler}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n >\n <div aria-hidden className={dayClasses}>\n {currentDay.getDate()}\n </div>\n </div>\n );\n };\n\n const buildWeek = (weekNumber: number) => {\n const firstDayOfMonth = new Date(ctx.focusedDate.getFullYear(), ctx.focusedDate.getMonth(), 1);\n\n const dayOfWeek = firstDayOfMonth.getDay() + 1;\n\n firstDayOfMonth.setDate(firstDayOfMonth.getDate() - dayOfWeek);\n firstDayOfMonth.setDate(firstDayOfMonth.getDate() + weekNumber * 7);\n\n return Array.from(Array(7).keys()).map((dayNumber) => {\n return buildDay(firstDayOfMonth, weekNumber, dayNumber);\n });\n };\n\n const memoGrid = useMemo(() => {\n return Array.from(Array(6).keys()).map((trCount) => {\n const trKey = `tr-key-${trCount}`;\n return (\n <div role=\"row\" className=\"grid grid-flow-col gap-[2px]\" key={trKey}>\n {buildWeek(trCount)}\n </div>\n );\n });\n }, [ctx.focusedDate, ctx.selectedDate, isCalendarActive]);\n\n const focusDay = () => {\n if (ref.current) {\n const elem = Array.from((ref.current as HTMLElement).querySelectorAll('.day[tabIndex=\"0\"]')).shift();\n\n if (elem) {\n (elem as HTMLElement).focus();\n }\n }\n };\n\n // INITIAL FOCUS ON SELECTED/FOCUSED DAY\n useEffect(() => focusDay(), []);\n\n // WHENEVER CALENDAR GRID IS ACTIVE, FOCUS THE DAY AGAIN\n useEffect(() => {\n if (isCalendarActive) {\n focusDay();\n }\n }, [isCalendarActive]);\n\n // WHENEVER FOCUSED DATE CHANGES, FOCUS IT\n useEffect(() => focusDay(), [ctx.focusedDate]);\n\n return (\n <div className=\"my-16\">\n <div role=\"grid\" className=\"w-full\">\n <div role=\"rowheader\" className=\"grid grid-flow-col gap-[2px]\">\n {ctx.getAbbrWeekDays().map((d) => {\n return (\n <div\n role=\"gridcell\"\n key={d}\n className=\"w-[44px] h-32 flex items-center justify-center bg-[var(--color-neutral-100)] text-s-regular\"\n aria-hidden\n >\n {d}\n </div>\n );\n })}\n </div>\n <div ref={ref} role=\"rowgroup\">\n {memoGrid}\n </div>\n </div>\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { Button } from '@/components/button';\nimport { useDatePickerStateContext } from '../contexts/use-date-picker-state-context';\n\nexport const DialogFooter: FC = () => {\n const ctx = useDatePickerStateContext();\n\n const onOkPressed = () => {\n ctx.setSelectedDate(ctx.focusedDate);\n };\n\n const labels = ctx.getLabels();\n\n const additionalTodayProps: { 'aria-label'?: string } = {\n 'aria-label': `${labels.todayLabel}, ${labels.todayAriaLabel}`\n };\n if (!labels.todayAriaLabel) {\n delete additionalTodayProps['aria-label'];\n }\n\n const additionalCancelProps: { 'aria-label'?: string } = {\n 'aria-label': `${labels.cancelLabel}, ${labels.cancelAriaLabel}`\n };\n if (!labels.cancelAriaLabel) {\n delete additionalCancelProps['aria-label'];\n }\n\n const additionalOkProps: { 'aria-label'?: string } = {\n 'aria-label': `${labels.okLabel}, ${labels.okAriaLabel}`\n };\n if (!labels.okAriaLabel) {\n delete additionalOkProps['aria-label'];\n }\n\n return (\n <div className=\"flex justify-between items-center\">\n <div className=\"my-16\">\n <Button appearance=\"link\" onClick={ctx.focusToday} {...additionalTodayProps}>\n {labels.todayLabel}\n </Button>\n </div>\n <div className=\"my-16 flex items-end gap-8\">\n <Button appearance=\"outline\" onClick={ctx.cancel} {...additionalCancelProps}>\n {labels.cancelLabel}\n </Button>\n <Button appearance=\"solid\" onClick={onOkPressed} {...additionalOkProps}>\n {labels.okLabel}\n </Button>\n </div>\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { Button } from '@/components/button';\nimport { Icon } from '@/components/icon';\nimport { useDatePickerStateContext } from '../contexts/use-date-picker-state-context';\n\nexport const DialogHeader: FC = () => {\n const ctx = useDatePickerStateContext();\n\n return (\n <div className=\"header w-full\">\n <h2 className=\"flex justify-center py-8 w-full text-black font-bold text-m-light normal-case\" aria-live=\"polite\">\n {`${ctx.focusedMonth} ${ctx.focusedYear}`}\n </h2>\n\n <div className=\"flex flex-row justify-between\">\n <div className=\"flex gap-8 justify-center\">\n <Button appearance=\"outline\" onClick={ctx.moveToPreviousYear} aria-label={ctx.getLabels().previousYearAriaLabel}>\n <Icon name=\"agora-line-chevrons-left\" dimensions=\"s\" aria-hidden />\n </Button>\n\n <Button appearance=\"outline\" onClick={ctx.moveToPreviousMonth} aria-label={ctx.getLabels().previousMonthAriaLabel}>\n <Icon name=\"agora-line-chevron-left\" dimensions=\"s\" aria-hidden />\n </Button>\n </div>\n\n <div className=\"flex gap-8 justify-center\">\n <Button appearance=\"outline\" onClick={ctx.moveToNextMonth} aria-label={ctx.getLabels().nextMonthAriaLabel}>\n <Icon name=\"agora-line-chevron-right\" dimensions=\"s\" aria-hidden />\n </Button>\n\n <Button appearance=\"outline\" onClick={ctx.moveToNextYear} aria-label={ctx.getLabels().nextYearAriaLabel}>\n <Icon name=\"agora-line-chevrons-right\" dimensions=\"s\" aria-hidden />\n </Button>\n </div>\n </div>\n </div>\n );\n};\n","import React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Months, WeekDays } from '@/models';\nimport { DatePickerStateContextType, DatePickerStateProvider } from './contexts/date-picker-state.context';\nimport { DialogBody } from './date-picker-dropdown-body/date-picker-dropdown-body';\nimport { DialogFooter } from './date-picker-dropdown-footer/date-picker-dropdown-footer';\nimport { DialogHeader } from './date-picker-dropdown-header/date-picker-dropdown-header';\nimport classNames from 'classnames';\nimport { asyncTrigger } from '@/utils';\n\nexport interface DatePickerDropdownProps {\n className?: string;\n date?: Date;\n onChange: (date: Date) => void;\n onCancel: () => void;\n labels: {\n previousYearAriaLabel: string;\n previousMonthAriaLabel: string;\n nextMonthAriaLabel: string;\n nextYearAriaLabel: string;\n monthsLabels?: Months;\n weekdaysLabels?: WeekDays;\n focusedDayAriaLabel?: string;\n selectedDayAriaLabel: string;\n todayDayAriaLabel: string;\n todayLabel: string;\n todayAriaLabel?: string;\n cancelLabel: string;\n cancelAriaLabel?: string;\n okLabel: string;\n okAriaLabel?: string;\n };\n}\n\nexport const DatePickerDropdown: FC<DatePickerDropdownProps> = ({ date = new Date(), onChange, onCancel, labels, className }) => {\n const [initialized, setInitialized] = useState(false);\n\n const [selectedDate, setSelectedDate] = useState(date);\n\n const [focusedDate, setFocusedDate] = useState(date);\n\n const cancel = () => {\n onCancel();\n };\n\n useEffect(() => {\n if (initialized) {\n asyncTrigger(() => onChange(selectedDate));\n } else {\n setInitialized(true);\n }\n }, [selectedDate]);\n\n const managerMemo = useMemo(() => {\n return {\n focusedDate,\n selectedDate,\n setFocusedDate,\n setSelectedDate,\n cancel,\n\n labels\n } as DatePickerStateContextType;\n }, [selectedDate, focusedDate]);\n\n const wrapperClasseNames = classNames(\n className,\n 'absolute left-0 top-[68px] shadow-bottom-high bg-white p-16 border-2 border-[var(--color-neutral-200)] rounded-4 z-dropdown'\n );\n\n const datePickerDropdownContainerRef = useRef<HTMLDivElement>(null);\n\n const handleKeyDown = useCallback((evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n evt.preventDefault();\n onCancel();\n return;\n }\n\n if (evt.key === 'Tab' && datePickerDropdownContainerRef.current) {\n const focusableElements = datePickerDropdownContainerRef.current.querySelectorAll(\n 'a:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"]), details:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])'\n );\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n if (evt.shiftKey && document.activeElement === firstElement) {\n evt.preventDefault();\n lastElement.focus();\n } else if (!evt.shiftKey && document.activeElement === lastElement) {\n evt.preventDefault();\n firstElement.focus();\n }\n }\n }, []);\n\n useEffect(() => {\n document?.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document?.removeEventListener('keydown', handleKeyDown);\n };\n }, [handleKeyDown]);\n\n return (\n <DatePickerStateProvider value={managerMemo}>\n <div ref={datePickerDropdownContainerRef} className={wrapperClasseNames}>\n <DialogHeader />\n <DialogBody />\n <div className=\"border-1 border-[var(--color-neutral-300)]\" />\n <DialogFooter />\n </div>\n </DatePickerStateProvider>\n );\n};\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, FocusEvent, forwardRef, ForwardRefRenderFunction } from 'react';\n\nimport { asyncTrigger, createSyntheticEvent } from '@/utils';\nimport './date-text.scss';\n\nconst formatDayOrMonth = (number: string) => {\n if (number === '') {\n return number;\n }\n\n return number.length === 1 ? `0${number}` : number;\n};\n\nconst isLeapYear = (year: number): boolean => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\n\nconst parseDate = (currentDay: number, currentMonth: number, currentYear: number): string => {\n const newDay = Math.max(currentDay, 1);\n const monthString = formatDayOrMonth(currentMonth.toString());\n const yearString = currentYear.toString();\n\n if (currentMonth === 2) {\n // 28 or 29\n if (isLeapYear(currentYear) && newDay >= 29) {\n return `29/${monthString}/${yearString}`;\n }\n\n if (newDay > 28) {\n return `28/${monthString}/${yearString}`;\n }\n\n return `${formatDayOrMonth(newDay.toString())}/${monthString}/${yearString}`;\n }\n\n if ([11, 9, 6, 4].indexOf(currentMonth) >= 0) {\n // 30 days\n return `${formatDayOrMonth(Math.min(30, newDay).toString())}/${monthString}/${yearString}`;\n }\n\n // 31 days\n return `${formatDayOrMonth(Math.min(31, newDay).toString())}/${monthString}/${yearString}`;\n};\n\nexport interface DateTextProps extends ComponentPropsWithRef<'input'> {\n dayInputPlaceholder?: string;\n monthInputPlaceholder?: string;\n yearInputPlaceholder?: string;\n}\n\nexport const InnerComponent: ForwardRefRenderFunction<HTMLInputElement, DateTextProps> = (\n { className = '', dayInputPlaceholder = '', monthInputPlaceholder = '', yearInputPlaceholder = '', ...props },\n ref\n) => {\n const inputClassNames = classNames('agora-date-input', className);\n\n const validadeDate = (evt: FocusEvent<HTMLInputElement>) => {\n const targetValue = (evt.target as HTMLInputElement).value;\n\n // INVALID DATE FORMAT\n if (!/\\d{1,2}\\/\\d{1,2}\\/\\d{4}/.test(targetValue)) {\n evt.target.value = '';\n } else {\n const dateParts = targetValue.split('/').map((d) => parseInt(d, 10));\n evt.target.value = parseDate(dateParts[0], dateParts[1], dateParts[2]);\n }\n\n const newChangeEvt = createSyntheticEvent<HTMLInputElement>(evt.target, 'change');\n asyncTrigger(() => props.onChange?.(newChangeEvt as ChangeEvent<HTMLInputElement>));\n };\n\n return (\n <input\n {...props}\n className={inputClassNames}\n ref={ref}\n type=\"text\"\n placeholder={`${dayInputPlaceholder}/${monthInputPlaceholder}/${yearInputPlaceholder}`}\n onBlur={validadeDate}\n />\n );\n};\n\nexport const DateText = forwardRef<HTMLInputElement, DateTextProps>(InnerComponent);\n","import React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp, FeedbackState, Months, WeekDays } from '@/models';\nimport { asyncTrigger, createSyntheticEvent, getDateString, stringToBoolean } from '@/utils';\n\nimport { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport { DatePickerDropdown } from './date-picker-dropdown';\nimport { DateText } from './date-text/date-text';\nimport { parseInputDate } from './utils/parse-input-date';\n\nimport './input-date.scss';\n\nexport interface InputDateProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * The flag to set if the label and feedbackText is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Show or hide the leading icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * The placeholder to apply in the input day part\n */\n dayInputPlaceholder?: string;\n /**\n * The placeholder to apply in the input month part\n */\n monthInputPlaceholder?: string;\n /**\n * The placeholder to apply in the input year part\n */\n yearInputPlaceholder?: string;\n /**\n * Accessible text to apply to the trailing calendar icon.\n */\n calendarIconAriaLabel: string;\n /**\n * Accessible text to apply to the date picker previous year button.\n */\n previousYearAriaLabel: string;\n /**\n * Accessible text to apply to the date picker previous month button.\n */\n previousMonthAriaLabel: string;\n /**\n * Accessible text to apply to the date picker next month button.\n */\n nextMonthAriaLabel: string;\n /**\n * Accessible text to apply to the date picker next year button.\n */\n nextYearAriaLabel: string;\n /**\n * Labels for each month.\n */\n monthsLabels?: Months;\n /**\n * Labels for each weekday.\n */\n weekdaysLabels?: WeekDays;\n /**\n * Accessible text to identify the current focused day.\n */\n focusedDayAriaLabel?: string;\n /**\n * Accessible text to identify the current selected day.\n */\n selectedDayAriaLabel: string;\n /**\n * Accessible text to identify the highlighted today day.\n */\n todayDayAriaLabel: string;\n /**\n * Label for the date picker today button.\n */\n todayLabel: string;\n /**\n * Accessible text for the date picker today button.\n */\n todayAriaLabel?: string;\n /**\n * Label for the date picker cancel button.\n */\n cancelLabel: string;\n /**\n * Accessible text for the date picker cancel button.\n */\n cancelAriaLabel?: string;\n /**\n * Label for the date picker ok button.\n */\n okLabel: string;\n /**\n * Accessible text for the date picker ok button.\n */\n okAriaLabel?: string;\n}\n\nconst InnerInputDate: ForwardRefRenderFunction<HTMLInputElement, InputDateProps> = (\n {\n className,\n label,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackText,\n feedbackState = 'info',\n darkMode,\n hasIcon,\n icon,\n dayInputPlaceholder,\n monthInputPlaceholder,\n yearInputPlaceholder,\n calendarIconAriaLabel,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n nextYearAriaLabel,\n monthsLabels,\n weekdaysLabels,\n focusedDayAriaLabel,\n selectedDayAriaLabel,\n todayDayAriaLabel,\n todayLabel,\n todayAriaLabel,\n cancelLabel,\n cancelAriaLabel,\n okLabel,\n okAriaLabel,\n value,\n defaultValue,\n onChange,\n ...props\n },\n ref: Ref<HTMLInputElement | null>\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const innerInputRef = useRef<HTMLInputElement | null>(null);\n\n useImperativeHandle(\n ref,\n () => {\n return innerInputRef.current;\n },\n [innerInputRef.current]\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [currentValue, setCurrentValue] = useState<string>(value?.toString() ?? defaultValue?.toString() ?? '');\n\n const lastValueTriggered = useRef<string>('empty');\n const [trigger, setTrigger] = useState(+new Date());\n\n const [overlayVisible, setOverlayVisible] = useState(false);\n\n const showOverlay = () => {\n setOverlayVisible(true);\n };\n\n const hideOverlay = () => {\n setOverlayVisible(false);\n innerInputRef.current?.focus();\n };\n\n const toggleOverlay = () => {\n if (overlayVisible) {\n hideOverlay();\n } else {\n showOverlay();\n }\n };\n\n const handleOnDismiss = () => {\n hideOverlay();\n };\n\n // HANDLE INPUT DATE KEYDOWN FOR ESCAPE AND TO DISABLE DEFAULT OVERLAY\n const handleInputDateKeydown = (evt: ReactKeyboardEvent<HTMLInputElement>) => {\n if (stringToBoolean(propsClone.disabled) || stringToBoolean(propsClone.readOnly)) {\n return;\n }\n\n if (evt.code === 'Escape') {\n handleOnDismiss();\n }\n\n if (evt.code === 'Space' || evt.code === 'Enter' || evt.code === 'NumpadEnter') {\n evt.preventDefault();\n showOverlay();\n }\n\n propsClone.onKeyDown?.(evt);\n };\n\n const handleDatePickerCancel = () => {\n handleOnDismiss();\n };\n\n const triggerOnChange = (last: string) => {\n if (last !== lastValueTriggered.current) {\n lastValueTriggered.current = last;\n setTrigger(+new Date());\n }\n };\n\n // HANDLE CLICK OUTSIDE DIALOG\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (!overlayVisible) {\n return;\n }\n\n if (!wrapperRef.current?.contains(event.target as HTMLDivElement)) {\n handleOnDismiss();\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [overlayVisible]);\n\n // HANDLE ESCAPE\n useEffect(() => {\n const keydownHandler = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n evt.preventDefault();\n handleOnDismiss();\n }\n };\n\n wrapperRef.current?.addEventListener('keydown', keydownHandler);\n\n return () => {\n wrapperRef.current?.removeEventListener('keydown', keydownHandler);\n };\n }, []);\n\n useEffect(() => {\n if (defaultValue) {\n return;\n }\n\n setCurrentValue(value?.toString() ?? '');\n triggerOnChange(value?.toString() ?? '');\n }, [value]);\n\n const onOverlayChangeHandler = (date: Date) => {\n handleOnDismiss();\n\n const dateString = getDateString(date);\n setCurrentValue(dateString);\n triggerOnChange(dateString);\n };\n\n const onInputDateChange = (evt: ChangeEvent<HTMLInputElement>) => {\n setCurrentValue(evt.target.value);\n triggerOnChange(evt.target.value);\n };\n\n useEffect(() => {\n if (innerInputRef.current) {\n const syntheticEvent = createSyntheticEvent<HTMLInputElement>(innerInputRef.current, 'change');\n asyncTrigger(() => onChange?.(syntheticEvent as ChangeEvent<HTMLInputElement>));\n }\n }, [trigger]);\n\n const dropdownDatePickerLabels = {\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n nextYearAriaLabel,\n monthsLabels,\n weekdaysLabels,\n focusedDayAriaLabel,\n selectedDayAriaLabel,\n todayDayAriaLabel,\n todayLabel,\n todayAriaLabel,\n cancelLabel,\n cancelAriaLabel,\n okLabel,\n okAriaLabel\n };\n\n const wrapperClasseNames = classNames('agora-date-picker', className, {\n 'has-value': currentValue.length > 0,\n 'disabled': stringToBoolean(propsClone.disabled),\n 'read-only': stringToBoolean(propsClone.readOnly),\n 'dark-mode': stringToBoolean(darkMode),\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n });\n\n return (\n <div hidden={!!propsClone.hidden} className={wrapperClasseNames} ref={wrapperRef}>\n {/* Label */}\n <label hidden={!!stringToBoolean(hideLabel)} htmlFor={propsClone.id} className=\"input-date-label\">\n {label}\n </label>\n\n {/* Input wrapper */}\n <div className=\"input-wrapper\">\n {/* Input Leading Icon */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className=\"input-leading-icon\">\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n <DateText\n ref={innerInputRef}\n id={propsClone.id}\n dayInputPlaceholder={dayInputPlaceholder}\n monthInputPlaceholder={monthInputPlaceholder}\n yearInputPlaceholder={yearInputPlaceholder}\n onKeyDown={handleInputDateKeydown}\n value={currentValue}\n onChange={onInputDateChange}\n disabled={propsClone.disabled}\n readOnly={propsClone.readOnly}\n />\n\n {/* Input Trailing Icon */}\n <button\n type=\"button\"\n disabled={!!propsClone.disabled || !!propsClone.readOnly}\n onClick={toggleOverlay}\n className=\"input-trailing-icon\"\n aria-label={calendarIconAriaLabel}\n >\n <Icon name=\"agora-line-calendar\" aria-hidden className=\"icon-calendar-default\" />\n <Icon name=\"agora-solid-calendar\" aria-hidden className=\"icon-calendar-hover\" />\n </button>\n\n {overlayVisible && (\n <DatePickerDropdown\n className=\"date-picker-dropdown\"\n labels={dropdownDatePickerLabels}\n date={parseInputDate(currentValue)}\n onChange={onOverlayChangeHandler}\n onCancel={handleDatePickerCancel}\n />\n )}\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputDate = forwardRef<HTMLInputElement, InputDateProps>(InnerInputDate);\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n useCallback,\n useId,\n useState\n} from 'react';\nimport { BooleanProp } from '@/models/boolean-type';\nimport { Button } from '@/components/button';\nimport { FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\nimport { Feedback } from '@/components/shared/feedback';\n\nimport './input-email-bar.scss';\n\nconst EMAIL_REGEXP = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nexport interface InputEmailBarProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Callback to execute when the user clicks on the send button.\n */\n onSendHandler?: (email: string) => void;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasError?: BooleanProp;\n}\n\nconst InnerInputEmailBar: ForwardRefRenderFunction<HTMLInputElement, InputEmailBarProps> = (\n {\n className,\n hideLabel,\n label,\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasError,\n required = true,\n onSendHandler,\n pattern = EMAIL_REGEXP,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [email, setEmail] = useState<string>('');\n const [isValidEmail, setIsValidEmail] = useState<boolean>(false);\n\n const handleChangeEvent = useCallback(\n (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setEmail(value);\n setIsValidEmail(new RegExp(pattern).test(value));\n asyncTrigger(() => onChange?.(evt));\n },\n [onChange, pattern]\n );\n\n const onSendButtonClick = useCallback(() => {\n if (onSendHandler && new RegExp(pattern).test(email)) {\n onSendHandler(email);\n }\n }, [onSendHandler, pattern, email]);\n\n const inputWrapperClassNames = classNames(\n 'agora-input-email-bar',\n { dark: stringToBoolean(darkMode) },\n {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n },\n className\n );\n const labelSectionClasses = classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-16': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n );\n const labelClasses = classNames('agora-input-email-bar-label', { dark: stringToBoolean(darkMode) });\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClassNames}>\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} className={labelClasses} htmlFor={propsClone.id}>\n {label}\n </label>\n </div>\n\n <div className={`agora-input-email-bar-container ${propsClone.disabled ? 'disabled' : ''}`}>\n <input\n {...propsClone}\n className=\"flex-grow-[1] outline-none\"\n ref={ref}\n type=\"email\"\n disabled={!!propsClone.disabled}\n onChange={handleChangeEvent}\n required={required}\n />\n\n <div className=\"actions-container\">\n <Button\n className=\"magnifier-icon\"\n appearance=\"solid\"\n iconOnly\n hasIcon\n leadingIcon=\"agora-line-plane\"\n leadingIconHover=\"agora-solid-plane\"\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n onClick={onSendButtonClick}\n disabled={!isValidEmail}\n />\n </div>\n </div>\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputEmailBar = forwardRef<HTMLInputElement, InputEmailBarProps>(InnerInputEmailBar);\n","import React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\n\nimport './input-number.scss';\n\nexport interface InputNumberProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Show or hide the leading icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Label text for increase button. Recommended for accessibility.\n */\n increaseButtonAltText?: string;\n /**\n * Label text for decrease button. Recommended for accessibility.\n */\n decreaseButtonAltText?: string;\n}\n\nexport const InnerInputNumber: ForwardRefRenderFunction<HTMLInputElement, InputNumberProps> = (\n {\n label,\n hideLabel,\n hasError,\n increaseButtonAltText = 'increase',\n decreaseButtonAltText = 'decrease',\n hasFeedback,\n feedbackState,\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange, min, max } = propsClone;\n\n const inputWrapperRef = useRef<HTMLInputElement>(null);\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler. This functions enforces the max char limit.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n\n setCurrentValue(value);\n\n asyncTrigger(() => onChange?.(evt));\n\n if (max === parseFloat(value?.toString() ?? '0') || min === parseFloat(value?.toString() ?? '0')) {\n const inputElem = inputWrapperRef.current?.querySelector('input');\n if (inputElem) {\n inputElem.focus();\n }\n }\n };\n\n const [isHovered, setIsHovered] = useState(false);\n\n const darkModeClass = stringToBoolean(darkMode) ? 'dark' : '';\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames('agora-input-number-wrapper', darkModeClass, {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n 'is-hovered': isHovered,\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n }),\n // classes for above input sections [label]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-number',\n {\n 'has-leading-icon': hasIcon && icon?.indexOf('agora-line') === 0, // allowing only line family icon\n 'has-value': currentValue && currentValue.toString().length > 0\n },\n className\n ),\n\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n /**\n * Execute stepUp locally and execute update value\n */\n const handleStepUp = () => {\n const inputElem = inputWrapperRef.current?.querySelector('input');\n\n if (inputElem) {\n inputElem.stepUp();\n inputElem.dispatchEvent(new Event('change', { bubbles: true }));\n }\n };\n\n /**\n * Execute stepDown locally and execute update value\n */\n const handleStepDown = () => {\n const inputElem = inputWrapperRef.current?.querySelector('input');\n\n if (inputElem) {\n inputElem.stepDown();\n inputElem.dispatchEvent(new Event('change', { bubbles: true }));\n }\n };\n\n /**\n * Sets the correct hoovering state of the component\n */\n const handleMouseHoovering = (isHover: boolean) => {\n setIsHovered(isHover);\n };\n\n const labelClasses = classNames('input-number-label', darkModeClass);\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\" ref={inputWrapperRef}>\n <input\n {...propsClone}\n type=\"number\"\n className={inputClasses}\n disabled={!!propsClone.disabled}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n {/* Steps controls */}\n <div\n className=\"input-number-controls\"\n onFocus={() => null}\n onMouseOver={() => handleMouseHoovering(true)}\n onMouseLeave={() => handleMouseHoovering(false)}\n >\n <button\n disabled={min === parseFloat(currentValue?.toString() ?? '0') || !!propsClone.disabled || !!propsClone.readOnly}\n type=\"button\"\n onClick={handleStepDown}\n aria-label={decreaseButtonAltText}\n >\n <Icon name=\"agora-line-minus-circle\" aria-hidden className=\"icon-step icon-step-default\" />\n <Icon name=\"agora-solid-minus-circle\" aria-hidden className=\"icon-step icon-step-hover\" />\n </button>\n <button\n disabled={max === parseFloat(currentValue?.toString() ?? '0') || !!propsClone.disabled || !!propsClone.readOnly}\n type=\"button\"\n onClick={handleStepUp}\n aria-label={increaseButtonAltText}\n >\n <Icon name=\"agora-line-plus-circle\" aria-hidden className=\"icon-step icon-step-default\" />\n <Icon name=\"agora-solid-plus-circle\" aria-hidden className=\"icon-step icon-step-hover\" />\n </button>\n </div>\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(InnerInputNumber);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useRef, useState } from 'react';\n\nimport { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\n\nimport './input-password.scss';\n\nexport interface InputPasswordProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n\n /**\n * Highlight the input indicating some error\n */\n hasError?: BooleanProp;\n /**\n * Alternative text for toggle password/plain text icon button\n */\n togglePasswordAltIconText?: string;\n}\n\nconst InnerInputPassword: ForwardRefRenderFunction<HTMLInputElement, InputPasswordProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackState,\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n togglePasswordAltIconText,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const inputWrapperRef = useRef<HTMLInputElement>(null);\n\n const [showPassword, setShowPassword] = useState(false);\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Show/Hide password\n */\n const handleTogglePassword = () => {\n if (!propsClone.disabled && !propsClone.readOnly) {\n setShowPassword(!showPassword);\n\n if (inputWrapperRef?.current) {\n inputWrapperRef.current.querySelector('input')?.focus();\n }\n }\n };\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n asyncTrigger(() => onChange?.(evt));\n };\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames(\n 'agora-input-password-wrapper',\n { dark: stringToBoolean(darkMode) },\n {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n }\n ),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-password',\n {\n 'has-leading-icon': hasIcon && icon?.startsWith('agora-line'), // allowing only line family icon\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n ),\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-password-label', { dark: stringToBoolean(darkMode) });\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\" ref={inputWrapperRef}>\n <input\n {...propsClone}\n type={showPassword ? 'text' : 'password'}\n className={inputClasses}\n disabled={!!propsClone.disabled}\n readOnly={!!propsClone.readOnly}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n {/* right trailing icon */}\n <button\n type=\"button\"\n className=\"input-btn-toggle bg-transparent\"\n onClick={handleTogglePassword}\n aria-label={togglePasswordAltIconText}\n disabled={propsClone.disabled ?? propsClone.readOnly}\n >\n <Icon name={`agora-line-${showPassword ? 'eye-off' : 'eye'}`} aria-hidden />\n </button>\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(InnerInputPassword);\n","import { CountryPhoneProps } from '../country-phone.model';\n\nconst FlagsList: CountryPhoneProps[] = [\n {\n country: 'Afghanistan',\n code: '93',\n iso: 'AF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3REQwQzQwNjE3NTMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3REQwQzQwNzE3NTMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdERDBDNDA0MTc1MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdERDBDNDA1MTc1MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+duaIkQAAAalJREFUeNpiZMAN2BkYVjMwyDIwfMCQ4mNgeM3K4DEFj24GJgaagaFpNAuR6v4yMPwDO4SRaOcQZfQfBgZOCQkOSclfb978/fbt59u3/6li9G+guTIy/EZGTOycbDJyrIIC3+7e/XX0CMgXZIc1I9hcPnstsbzA94ePfH/x+N//n683b+ILNBGw0v3zlwKjIYErGub94dhpJi5u3Q1rtFcuZeYTerNtj3CwJxMjBQECdBaXoRybhCzLFy6eQJuHPW1/P30W9Db9fuMlh6QSt706A8NNMl0NNJpNVIrHyIyDR/DV4UOMivxf3tx/vnM7p4gor5kFh7gs+QEC9NG38ze+3jz7m+Mrv6i2oKGtTGo6v7jOr3/vP1878fXcNfIDBCj39fWHdyt2K/Q3vpy05FFWCwMTE6+NrnhR3PvyCZ9vP6Mo8bEyMLxZsOkTD4tkaga/vvXvt285rdSeT5n1dckaFkrS9X+w9F+Gf8+nrPl9+Q2LkMD/f//+rd/4es8ePoZ/LKyUZZn/YIczMzC8PHgALsgGFvxPeW78D8477BiCw7RQpaHRAAEGAEWfj+c8VB1nAAAAAElFTkSuQmCC'\n },\n {\n country: 'Albania',\n code: '355',\n iso: 'AL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRDFBRDI0NTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRDFBRDI0NjE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdERDBDNDA4MTc1MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJEMUFEMjQ0MTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GPq/agAAAiRJREFUeNrEVb9rFEEUfm9m9nb3bhNz50UMClopRAsFrUURW1tBrSzsLPwfbPwDbGz8F8QiIkLAKiCkUIKiGBEFwXAhd7fZH7Mz83zZtbC4TdyF4LDF8N7ON9/73jczuN4/A4czBBzaqIUmAA+Q0wjQRzkUCsv4USEHKKs4/0DtWOdAgxLxrUk+mqyHIkLx2eg1k1gA3kwDtYFeFOqVnj5NRwXQip7eGG9+svlPV1wff3mejwuiZ9n2i3zCRWANAta1kaFX9OS1jkdkHdGyCt6blMmel8E3p1OgY6iueL2b/pEtZ5qx5kRCLIhMyK4WMQFt2HzdpEzypZ5OnOVUSoT1gqi6BOvA7ZoDUan5JB3BXxPeOALBahigxloLQO4SFy5hBjMOpuA0zc4ebL4OYExuZl0dxNiRh63MZ4jYXjzJiG77/cuqW8UvqvBO0Ge+jjsplKHmgrCIIeICyke9pXPKZ+kvqPCS1+X6T4vO42iJN/YB22jNIo6cYWN9dfqdya560TxKruKaF32w2abVW2VWtNCa6fRQnpTeD1vcD4anZOdNEa8VCZN9EA6/2+KE9Ob3dUit+XbJHRfqXjBgTZjYhk3nUDAQN/CsDJbDYIfcbvlhU+hqQUpuSo6tcstfYMp8q9z1+7+cyfZMuUe4zZGp/GfLxRm4bbIPu4scYbIJOO6EO+hSVf9y8zLQmGxUKrNDRu7HtSH0n+NHrpr8/1fmtwADAEjB+xzEjgF0AAAAAElFTkSuQmCC'\n },\n {\n country: 'Algeria',\n code: '213',\n iso: 'DZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNDgwMTE3NDA3MjA2ODExODIyQUY5NTY0OTkxRjRDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRDFBRDI0QTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRDFBRDI0OTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDQ4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDQ4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5FFcD/AAACLUlEQVR42sSWQWsTURDHf283dTdZQ9qCVWhQD2JrRCmEaqUoarEQi3c/QEDx2ByqtwgSUTx5EvINPHlQRLRYsViqHgQRVGopRpo2kKbppk26SbO+3UDBk5uY2mEXdh7s++1/5s3MClJDNi1a/daMLaDU5GtBeS/6+AcT7uVu1KwFFXbJmldstwfsXXFdEoWM7P4AGJt0qTqlpcUdBjtQTYUeP6c+LjOd+srKzSnq/RHMWIzNdBpqtR0Aq1Jpt07i8Ryzj74wmCtz72yY4qunBO/edyNRnZxsc46dnEqlo++yPHjx0106Ej9E5kqUGwNRuYMfbeAE9VwO2zQRwWCbFDtqq3Wuzyy77p0LvWTO9WLMm9ReT8Hnb2wkkwi/3zPUm2KZWy1fIbqw5rpv+jply7DoCPdRz+exRy+z4SgwDPREQj4o7cuxsBudYruabGdBQfh829Vll8uN9bYdLmuLSrfGp4ONMA7/kMqDGrVfGQgYKNPvCUxMoI+Py7SobQTXpApdJX26x3Vvv8ywbzZL6bBBx6UR+SWDBFIpqFSw19c9g1VGwsm/NWTKW3w/1gVmlfMLJtc+rGKvWpwcjhFas7CeP8MuFFAjEa9cS3iaTk4D8ctzGNrDxbdZHj6Z53jRohjqRJwZQhsbQ4vHZWR0r2BTeB6LDtynuDVNYYUDpb3MXU1jHO1vpWOa3oeEIhrwrFM8Oku+WqvQFqeT+N/Tadfn8Z9tvNVfH/O3AAMACcCyb9iaq58AAAAASUVORK5CYII='\n },\n {\n country: 'American Samoa',\n code: '1-684',\n iso: 'AS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRDFBRDI0RDE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRDFBRDI0RTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMUFEMjRCMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJEMUFEMjRDMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+O7eQxAAAAhJJREFUeNrslD9oE1Ecx7/v7l2TXpLGWNrGioJDO4ogLkJBhA6iFDpUOhc6ODiKBUWcBJ1bKLaCIIJOjl0ypDh1rFDQyUH6R1HitaRpcvfu+X0XHWp6TWkCGdof3D3evR/3+f35vp/AtafrADI4yLQGlEZ+oAdCCGxtedC2ADeNvnYXUv4uCl8LOM/1N/eHmeQz2PDV/FcZaAjx3cP7V1PIppO4OvoCyk0AFh3SXEON45oB7+zL+F82P7frSfem8eRlEUnHRki4m3MhCN4t16CNrzg+eL8FCsKr4NHMbfhBiOezBSwvfWIEiCrw+MEtjFy5iJsTc/BTLKcj2wSmWQRcHsqjsudDVJhZf0/9YL2Etwzi4+o3BC6h0m6p1P+JxILKZ3H3/puo2WIwBxAuux3cm7mD+XcrWCt+Bi71RRVoHxj1kiLhRCLSvgJKZQRlibUvm3CZqXcu2xI0HmyMYgKh3Wzu5PQNmFu0uLBMNSdbVnQdbDvxpzWNih/i2cMxnKXb6w+rCKoBO8B47cZ7XFZ+pMGjCF06QTX+lPqxQoXxqXkkuiSkqkEkLSq/euCwSalqBD1KE0Sx9/p27OTiPdXs88YPD4q5XOg7A2GmmW4sszZC5DvH4Cyuuknecqi20zS64czfcbbnxTuZeOhSshPM2IqCOBT8i47ttmbQaFagQ3YKPhngTCfAZlZvdAL+R4ABAI7lqpHANxKvAAAAAElFTkSuQmCC'\n },\n {\n country: 'Andorra',\n code: '376',\n iso: 'AD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQUI4NkFBODE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQUI4NkFBOTE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRBQjg2QUE2MTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRBQjg2QUE3MTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lPUISQAAAfFJREFUeNrUlFtrE0EUx8/ZS7KXpJLNxiQ0biSt1hTFO4qCvgl+AF98EV/9Nr4UP4ePUuijFLzUait5iDZVm2a3NE22JNntzhx3i0WkWmWCoH+YeZlzfjNz/mcGr8McHBIDyYOJj/wRYI+1CocDZCeM5xX9spxjqBD8TBL8Nf0DaMTv8x9K+S1TTo+IVKBAUndpL4OYwtgLwPHRfLCTlTN9d+vCdrueKzaK9hIfGnp5F0gRRB+4Li0uPaRek5ixrdy2e2ZztYo4eWvqiSTHQSiCxm9X1qPGRu51JX+zf7z9WPmiD9VS/64/DLOm7h9dlV/aKEPSuZute4FvTd8AZ/Zces22vKbdXQ0j/V3jQXIuJRArSLIrDlysnfQ6nzpPYXRFxY4FWS2KdF1eS3zgMgqg+f5SsfwK9qZT7gK2AvVOhswoU+lq2C3lXyQxTJEhEuhrHg9/p45mBUxL0izkplEixgqcKpvupSRZ4mM0X0SD0Fmu3T92tmtonBmSu573PXvy9GJSNAIUQidZ2ann52dSAamfvWtbG/U0X6memNero9rM8oEfXPTUGJy6+CxOn3i/3m5fLVdeOrNvgCOkNKD0uA+d+QVEyTnzwam/JW7wXomAy7nwh4clhN4HEGcDE9EkgiMqIP6pEv13/7WAvgowAA7uuJg3MwVHAAAAAElFTkSuQmCC'\n },\n {\n country: 'Angola',\n code: '244',\n iso: 'AO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQUI4NkFBQzE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQUI4NkFBRDE3NkYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRBQjg2QUFBMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRBQjg2QUFCMTc2RjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HdsdLgAAAZ1JREFUeNpiPCeoxkAbwMRAMzCYjP7/i+H/XwYGRqoazcjM8Pcb45+vTP++Mf7/Tdh0Yo1mZGL4/oZZ0O+X2dfXonE/vn9mIeh2JiLd+/sdEzPb/x+3mF/0csn3fVWf+fHHR5b/PxnxmM5CjNF/PjKyS/2V7f365w3jrRz+d5vYNHZ+lDrx9c1CDiZmkMU4jebHJQnxFyPD99+Mf34wCNr+Y+D9/3Pa3zdneL7M/CNe8v3rfG4uYMQy/sfU9fH/X5DRr/79wWP0v98MfAoMXwX+bjRjV5Jl/v7230+GH9fXMpl5MrMY/H54gZFDAIvR7IzgkAK6Gg8CultFmuXjFXEfA6ATGXhBIoxOeuxPzgurKwNdxoRDF9Fg6Ry+//8lzMyhehrruB9cFaVa7koK4Xh1UjQ2gFOIj/HJRbHidG4qGLptjsCqSfxARrAH+6tTok+PiGydLUA4yRJjdFESV1Mhz49/DH9+/582/9upy79drNjuPPw7Y/l36gSIoRaLkTY0H3CwM66dyt+Yx02Tgk1chCnAlZ1hFBANAAIMABE9jLBld63JAAAAAElFTkSuQmCC'\n },\n {\n country: 'Anguilla',\n code: '1-264',\n iso: 'AI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzYwMTE0QkMxNzcwMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REFCODZBQjAxNzZGMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOEI3QjgwQ0VBMDNEMDkyMkUxQTdFMDM0NUEwRTZDQzEiIHN0UmVmOmRvY3VtZW50SUQ9IjhCN0I4MENFQTAzRDA5MjJFMUE3RTAzNDVBMEU2Q0MxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/LHIVAAAA2lJREFUeNrsVGtoU2cYfr4kzdWk6QWSpqm1c6K0NnVOizhveNkPnXW0tUzdiMIo24QxW+oNJoj+qbIh+kNRweCFgsNg7RgFNwvtVi0FkzXepjPudK1r056Yk6RpknNOzr5zmq0w9kMq7tcezo/z3Z73ed/n/T4yuG9PyZa1Fx6aD3vuMj23AEfbgUUfXPrsh22t609w4KO55nTTgsShXW9yjvLS3Xe4YZZAh5eAanbrYOOWU++x3b6mkuOtbsfSivCEBBGspM9zmj9fyPqbbS1frDjKVTqPj3HDIYIcvBzIhx97BIt1dUHCbWYM9ZtjRRXMZa/orlOduWgsmzM39hibar3+5Ddnv02FIt91PkvzKUBDD8rxIdAfIAFoqUr6KQllstRSlR2CyEYzTDQjcC9sVn0ynhwXYAUMZk280Mk/H7VrksVv2NIqfdG9VWExl4CyS85SXqsWUiioXjPf/xMjJEasedpAgK6QKWqNr3jZeCgSFlJVtcvzJ0Imdigs6jI3OnM3rHEudzFdfRFHSX/uHCb6R8agE1Q5EKlSSGDdH1UfOeJODPUZTc8nSYPWUuL1ft+w9QpQPMWtWXy3wlX3zt6dSxZUTKY7bp4M5rvmFbpudT6paexZt7VuD1fq73rQHvz0fvVAzAS+T5FMCyLwKRNgN/7enh58YFhRCOviKN0grxI5NK3OmeYlvk3xHQOes+82VX3S3XLAn/QH7DboRga3l+9ftPG057Fh21rHz5ujx3Q/ag1JKWtjTlyg57uTBaszDT2pgBejh8ITdN70t40aa2j0q3PX2yLFPnY2xAjAXu0lv45X/XKbg1H9sLd/V6/v65qa3SsXmnW/qcVJaoEiioxx1Dq9/tF58BzsldBPDA/FaUiiSIYi/n3ay0oidCBnKiENFAGjRDZdJ8mOhxU6OikSpSskpErLdMHgl6qBNhhssFXC8pbL1RwIjBDMyqoGbJSOQK0M6Xm1ootD9l5kFE/yFSVpklVDYWCeBeuPdYztbXnxBBYLHJ72QOA+UDbdfASNmBEkWf6I+dr+WO1Kdf9T9YZ9ac5IYMRfBVETvD0zaqV6mryO/nKeSR3siIV4gLZ8ZnrDjFVPKZOQVJywALOIfD+nocErgbqaI8lu4R+8r049beu/vHx4bfif+r+j/lOAAQAGyVcqpoR/+gAAAABJRU5ErkJggg=='\n },\n {\n country: 'Antarctica',\n code: '672',\n iso: 'AQ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjAxMTRCRjE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjAxMTRDMDE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2MDExNEJEMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2MDExNEJFMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SFAcWAAAAxRJREFUeNqkVutLU2EY/52zc7a5i1te5r2lUFpiYl+CMsjoQ/QPRGYFUZAQ4WfBT0VEn6JPBSFGQZcPCQVS9EGswBAy7GagYuqWTp24zTnnzqXnfb3g1M3D/I2Xc3nfZ7/n/hzhWFu/H0AxrQgMQKCl6iv3ooBM4KT1T1q9wYZrSpglAdPhBOYWEpBNIhaWVDisJpTkWECP0HXj5JLRk4x0aCrGSW6fK4fNbEKQFOgfjeDZpwA/k59tJkVEUkLYUYktxEyAyZiElesaZiMJePOsaL9ehcrirPX3jcc9uFBfgC9DYXT0BDAxuwSJhMtyrSSvp1QgiZjFLKHp5EoFbrsEC1mprQpOhxK4eqooiXQNdfscqPXa0XSiAAN/F/DgnZ97J0sWIaTIA3HjQ5AIj5Q70XK2FCOBGCaCcVJGgErsCmVUdak9pevYOSfFu77KhbvnK7ilcUVLfX7jg0wu+u2PorHeg+62WrLOhl++KL6PR3F0fzb/UyPw5ltQnm9FlJLPUIxdNoksXULz4yE8v3kQ71sPo717ir8/XeOGVRYNEbPkysuWER5R+XW7OCcRM5d66CCz8ill6kWK2ZWGwoyKleVLLK6thGob5i0mOCwmrkDLk2H8mIgiUzy6dgA3zpTAPxeHvlOMGRQiTSg6Th5yo6bMjt2AxTkcUyAaIWZYXFbTZrBRlOSYqSxlJFTdGHGh24y3X4N42TuzK2IrdTdxUyNKS2wngRC56E7nGOajSsbE97t8vP5ZuzVEzOJc4JIRW9bQ8TGQEennPyEM+haR45B2LqekDfJRrlPGvTfj6OybwSUqLYlGEBsKFR4r6qjDsf3qUtu28rdej2FZ1aj2pfW2a4iYHWajjpGwAdH6YpT3XUau0eYklcnlhiJ0NFdukX34YRI/qRT30lDRdIPTafOkYnBT52JrDSxLbRYRTdRaN6Pr2xwNCR/2UDZLIjIjTteVPC4zXlHW99I4ZF4ZGIvyidQ3HOFxZUtR9bS9OrL69RExSszmLfv1DM4jtKjwDyI2YLLMIrnXwi1NQ8q5/gswAJWJHoEWuWKnAAAAAElFTkSuQmCC'\n },\n {\n country: 'Antigua and Barbuda',\n code: '1-268',\n iso: 'AG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjAxMTRDMzE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjAxMTRDNDE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2MDExNEMxMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2MDExNEMyMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VJu1tQAAA/pJREFUeNq8ll1oW2UYx3/nnJyk+W7SjqZZ25VORjvQSSdKLV5UL0ScugsvRKs4FCui6C7aiyHaqw0KMnFgy/BKvRG7KQgiDmGC1SGb7cZWW+0Xa5uadWnXNEvzcT58T9qUpk26gOADL+fwfP3f5/k/73uOdNThn/82vRIGVvl/xPuk3Rthpqol3qQ4TKEoazkdUu4Z8Mlm0C8X6MpZtbJqjgWb43KVZGPAU3fPbUrS+vOxwyqhKpnWB2w80qpS5ZPoeFgt8NlN+r11NMgqtjE9xRN2D33uWnruLpQMOHxQJbZsoCnQ1elCy5pIMrS22Lg2oRGulmkIK1y6li2Zo9cd4hm7j2FtDZuMxJ9airede7ikJTmfXtlRqSmadPlGloEPvERjBm1tdh49aMPQYGRGo0Js5mi7g9c+jBfEbJWn7F66Bca4KNRqjPRH4EBcx/SGRPmWb8edCSb1TEFQ2yGV/XUKlQGJMyf96CkTxW4xJqGLyhWXxPH340SjBpFFg58vF8aHRe6LlfvxiBbNG1kUpFXZMogXIkIRkBT6i/D929UsITXFma41sdUoinsRtFugb7ybUU6/keSAP7UD1JJPRc46AT67DprT2fJGVShyfCsV9Pkb6fH5IJXGoWjsrZH4aVHim2kPbX4b/9w2NgfJammNGLbhWY3vFxI0HTKJ3DJJZUX/nQ5643GOKE5G9HQOIy+2rTvL8/1OZo3f208w+NCL6LFxsmJwkm6ZznGd5K+62OW28RXtrggoNLygoK0Z6IvCp6qZp6+ep3uwh79UkVlRC2fH4tg61HmFLkoJJVcwZIWO179kKnw/RKZzhJQnAjTUQO3tKS5+9hKedIKIO4BSOG3rHG8Vy8FyDCaXGPi6G+4KDt0uMBLCmtx9WT7OCsgk6B/spj4+z5ynejvoRneLiGrojAX38fjCFfp+OAWBPaIQwcqaOD8pvfiybFmRLlhD74U+jtwcYjTYKHJpxS+k7a3Oi7geULUMjtVpZk9/jue9l8lOruYujWJi6ibqfT4SZ8/R0PU8Gc8+0vYKpCLVWq0uCbzOt4yyFKWpyoV/+Beob9yd3liU+IPtTM4togfDosVGKc9Vebc8VqBUHeZGbJ7rz3bec6xGn3uF63OTIqZ+N9DSHBe2MIsr2MKdkSGmu94t6Xfz+AmWhn7EGWjOxdxL5HIOiImBy9XIwtlPiH3x1Q778rnvmPv4FE5ng5gas6xDVxawdT3JTqe4bSqZOvYWqdG/N02ZmXkmX31T2Hziznbv/Dr8J2ALWxwxe/VesvoSE53HNvXWeyYREbb6nE+5Ytv45fGW8+uT53tleIjIyY+QXS6Why7gLpPX/K+PhfWvAAMAKo+tOTpRNSkAAAAASUVORK5CYII='\n },\n {\n country: 'Argentina',\n code: '54',\n iso: 'AR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMzA3QTc5QTE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMzA3QTc5QjE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2MDExNEM1MTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2MDExNEM2MTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VveEGAAAASFJREFUeNrklE1OAkEQhV/3DD8ODEQgxBBXwIa4YMUNPIJX4VK4NN6BxM0k7tQYI5FkMgzE4U8ZpttihAN0J9ALqlO9q3zdr+oV6w9evwC4OHHYlA0YCE45NwXGWYFtP9poFbL0oltKSB3wbaeioROHlXEIyOhIiHgFKYTaw6WUkZadxDfwswAuqJSV1BXTAW9mIwTePeLgGZlqB7XuHXK1prKPlSL5XSJ8GyL+fITLX7AYvSMsXKNerMPOF4841ek87borYKXVyb6/4rg/trIOqq0egugDoe8h17hBpd2j37qnGq4psKJSp0y6XaoLN3jy1cGMg5Od/t1MPt6uSe5ETeoHbwLdDcIOYI0NYl+Vs+e1q42CXRPgnY/HJuB/AgwAxP5dJ04ev60AAAAASUVORK5CYII='\n },\n {\n country: 'Armenia',\n code: '374',\n iso: 'AM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMzA3QTc5RTE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMzA3QTc5RjE3NzAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMzMDdBNzlDMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMzMDdBNzlEMTc3MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WDHK5QAAAF9JREFUeNpi/M/A8IlhAAALEPMOhMVMDAMERi2mX+LawmD8ZyAsZmRg2P9vgLLTO8YBsvjvCEtcA2U30GKx/wOSqpcm2/weEIv/b2b4PzBB/Wy0rB7++Zjh80BYDBBgAAfmD594ReJrAAAAAElFTkSuQmCC'\n },\n {\n country: 'Aruba',\n code: '297',\n iso: 'AW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzMwN0E3QTMxNzcwMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzMwN0E3QTIxNzcwMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQkNEODUwOUZCREQ1NjMyQTZERjhERDI5ODI4NUUwNUQiIHN0UmVmOmRvY3VtZW50SUQ9IkJDRDg1MDlGQkRENTYzMkE2REY4REQyOTgyODVFMDVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5hWk3QAAAbxJREFUeNqslM9LVFEUx88597wZZ6wZmRITxBJCUhBahjBtWkgbd23aBEG4EdrpX9D/4M6tuGhhK0FwE+hG3UkUZASRYDTVzJt33497jvclUuuZe7jc5YdzP99zDy6v76lpoIiixAXXjDOICgpDlCIbl7CaptANRHEq92YaFz8SZ3NAHAYtaBCIQAuP/W1dWq28sO+qEl+kvu0MIB/4oL/VEZRs5UZ9iT8tbr9p945Hb9/M0cDQZaYerdydbq1Ge8+31/4cfWvbo/mF8bOJue8/oYICg4lBIi3M/OOXSc7Hyfj51Fw7Odx4+HprdKnXzUCcFz6g8r9o8sKdLb7GIzutJyfP1t5PP/3YrdhUeGDudVE5ZYQTlZS7vzZby7niZBQjoQ7tmq8nESLQ089pjdSE4P6HLl8vdcoAw3D/oa/kI0LAYlUSLbMMCFUfoRKfx3dyvVX+n5BoZu3hwe5is9F3eUgXZLSfRPylc7+WFU4kWHw+NINpinzWeRBZFicA4Rr345sW+GF/dqzZL7KQs2EM9Czzq523Ak1AG7BrH6PRmOsjhZBfq960BEMjsAOuakfKjS0aUklE0L0UYAA5i9TZQeWJxAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Australia',\n code: '61',\n iso: 'AU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNTgwMTE3NDA3MjA2ODExODIyQUY5NTY0OTkxRjRDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRUY3Nzg2NDE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRUY3Nzg2MzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDU4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDU4MDExNzQwNzIwNjgxMTgyMkFGOTU2NDk5MUY0QzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Y+peLAAAD2UlEQVR42uyVW0wcVRjHfzu7s7uwOwgIFLA2VqjKLXKL1fjQ2DaBah9slbSp8qD2ZiSaStTG2AdTTBOrwagvJoZISWp8aDWUCjQ2bYgUGlCC0ECNAi1QspTLwnaX5TI7npkdKJZNQxMTE+OX7J5zvpn9/uf//y5r094tH6Y4V6kZyuZItYex1l4FYafKYnxF377Kzy9+QfFXquHTrTKr17dvfxxaYiHKnkHF758VXol7NcnycVzqm7vOKbtu/qj8/oZXOXq0AGd+HiNBWSGE4rHep9hT0vggs5/RIz72HipQyj3PK9LxBAE6FSFkCIfDSl5eEi6XbJwjArtcboZKyqgez8He08mh5+b4o+EJtmQ7YASeSpf5s0Ll8HvriD74CtWxO7nWNsALzj5kmy6EdkfIABkZ8bS2vkRh4RpxvhUR2KI9yDTzKOJb/MYSIZBp7hgRYzq8T9GvbCXuxod4tXhx8C97URVMneTmJtHdPcbU1IzwLaYjakkB28ym1/CMePHNyzy29XHk8T5xAUHVLxifPAU7tsOmTGjqZCFopzcxh2jvMG67hPqDkHJ+dompCGcE1/Pe3Nwr9tEG4Pr1yQQC83g8PnG2hoETv89RHjlcyvu748lJugIN7VQOZJK7wcEzdadoKS7j0pNFvLX/Fraen+g/PclHvi1cnkgWoA0moExaWiqTk0EmJvxmcD0NC9hsAS5ePEBT0xClpTXCF28AW6s/faf8y+xfHZnt3/HN243srpY4WRfFvoevsm6wjqnkAna8fIWac31EJ6SwJ2OUvbEdPNp9iTPjCuqc4CWI9fe/LiS209j4yxJTCBIKaXR2+jh/fkAwnjVVsWBTrvXx+Sf1fO0vpMu7WaTohngwTFWLhebRzfS1iAAOjYG2bg60XaVy+1YOPr2BVHst0rzO1s3cXIiSkjMMDuo1EGNKP0N+/kNYrVYuXGgXZ5f5CefY4nJ9pvn9etKnjcLQZdNvGt4/gFHahi0WxrTJJtkIHn5PL0q9texmcNUouG3bspFlidra30z/bbOFF7Najdws4BYVHAqppKdbuX49BlXE8flmTMBFRsvbRFvmV801hvr6HnOvrOjnCCNHxWIJUFVVxNmzOzlx4tllCqzGLCbIlKleVMQhIkWaPLGxkhgC97N2rWKsiYm2ewBWcTplCgrSjH7WFYw4uVa6ZLzeIMeOXTZaoKKihbGxgJm/1ZifrKwE2ttL2bgx5Y7h8jddjmsrpVoQ1SiL3AaRJIeR73D+tVUxdrudYlavoavrpiDhv11Kd2f8z1hHh+fu/078S/Y/8H8f+C8BBgBE6FYFFd8qlwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Austria',\n code: '43',\n iso: 'AT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRUY3Nzg2NzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRUY3Nzg2ODE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNFRjc3ODY1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNFRjc3ODY2MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WaOFnwAAAGpJREFUeNpivCHH+pSBgUEKiD8z0AfwAvEzFiiDAYmmi+VMDAMERp7FLL8e/R4Yi4WSAgfEYsb///9/onOKBoHPo6l61GLaZafnBYkDk50uMjAMSHZiYZdjHU1cwzxVQ5s8vHRu+nwGCDAAxfQUXKOTRMkAAAAASUVORK5CYII='\n },\n {\n country: 'Azerbaijan',\n code: '994',\n iso: 'AZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRUY3Nzg2QjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRUY3Nzg2QzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNFRjc3ODY5MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNFRjc3ODZBMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D6YUmwAAAZJJREFUeNrsVb9Lw0AYfXe52qotVYp0clI6SEFUdNBJERRHXdydBAfxLxCdu/iXCCK6lKLFOjj7B0ixSrGJTa32R3rnF+KeS5YgeuQl4fju3vvefXfHcHZvI4ImCKkoiDkian+PWCCbDTZCKcAZkGTSbITXLdZLJf8o5j4C8sOGrNZhTE+CJRJQnU+aYchVE5iYKeSU3oo0CX3g5BRIJIHyHXBxS301wjghmABh8bR/lBzAgYnM1Tn46iKaC1uUeYv0JMFSecimTY4QMWf6xeXQWvmhh3cYM2vgmyuwlvfQfqyga9cQ29/B2NsN4scH6KIOh3h15nOhWR0KTAjv76tDb8PrHo6TZxxsJO7aEshq1uBLvtGKrJZ4RaZ8CZ6fgjm/AVVtg/FRsIk01HOdZnIr0NAmp+Ka0ywu0/sWCpQcEVwXgWKF+p4IGTf9n6w1M94+2tWSyBCDtC3IlwbEbI6sH4K0TG87sRDbCQ+HKkg4JGXV63uHRywWag97J1e1E/LscW11/i+J33A7Aa0oiL8FGAD8Y4eRaTQ3EAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Bahamas',\n code: '1-242',\n iso: 'BS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2Rjk1NzM4NjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2Rjk1NzM4NzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGOTU3Mzg0MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGOTU3Mzg1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++Dx9hgAAAetJREFUeNq0lv1LU1EYxz9nG0xplxppL5PobZawXsBlIAmOhAgJk0qSJc5NakH5Qj9EFIFY9Jv/hn+I/4S/bJSjaTktF9tiL/fOZ94GCiFTd77wwD2Xe+73nO9znud7FD39aeLvDIJ9sPETNiWcLnRDSVR3np5MwtgruHgVVpJQyMkCnFqJ/0gYOyNvG8TewINn4JFXKVlApQIOh2biOrpuQmQWBh5C8S+spuRLZYdW4jpqxJEZuN4D62vwO9O0/O9PXMfYaxiNg+8SJDYk/6bI/2+2VuIaTvnwxKcZDgc43loilchTrlRRDqWZWNAiMXLXyaePlzkfOiujMnyXM1AjVxqJd+PlhI/5D37a/Sck/zmsnIlyKf3EdUTCHSx8voLXcGHmzYbnHblAt7JlrOrBS+3QtTH6+DTz7/10dp+ETAEzW5RKc+iR2i0xJCX9Ze4C/sEOGYm0a4VDadf4jo8ZuF9M4Y0FWGyzWFnKUypb9onWVk7D4xAWA+m8AV9/QbYkHUxp7Fy9AzA+DbdDQiaE66uyQ2dTevb/pT4nrTEqLjX4FCyRM7lsu2cTfXrvn9wttis9ikL7GfHlhDSnor1LmudMey8C90dsWQNBSH+TBGxpvghcu5Xm+VuDO/cgl4Ufadv4lUIntgUYAIDGhVXvTDlFAAAAAElFTkSuQmCC'\n },\n {\n country: 'Bahrain',\n code: '973',\n iso: 'BH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2Rjk1NzM4QTE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2Rjk1NzM4QjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGOTU3Mzg4MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGOTU3Mzg5MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+B1d5vgAAAOJJREFUeNrslbsKwkAQRe/GPCyTTxC/1spaBIuIqKCVlR9gJWovKAhCwCT4SAI+4q6j1tGQRNNk2pmduzOHyzAhxAkRcd1asFsm3M4Q/nIKCSo0owIwBgiONMFIWMQpDGYL2M023O6AHslgspJKWIpbKBs6JJXE4v3ze79Pyct6A6tWx2E0xtlaPRcETadVl2jVnP9wYmp+9wOE+yM4bu9y0kQGQxeMC8YF4zwZsxwYN+hg9IgxlP8yZpqKrCIZYyn9WUzmYxQ+TsbYi0qGO+c1oWP24c0n5CKBsl7NxMcPAQYAXoK9LDclUq4AAAAASUVORK5CYII='\n },\n {\n country: 'Bangladesh',\n code: '880',\n iso: 'BD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2Rjk1NzM4RTE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RkMxQjIzMDE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGOTU3MzhDMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGOTU3MzhEMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oE4gsAAAAkNJREFUeNrEVk1r1FAUPS8vmY9M2tJSpG4q6kIYu7LUTXWjG1EQCuJOf4Abf4BuXIi49Q/4A3TRXRfdCK6KCC5Uit1UFxXGQqXTZDL5ep6XpOCAM8lMBnzwXiaZd++59+S+cyPw6O4x/sMwOWfGthKcqjpw8dAgBmeDi+Q1ycEFl5A3fZXtEdME1iBNepQCq50QNw5jnO8liPjoiyOxdcbEjwVG4xM5VKXBzUJQx4BDp68/uLh3EOTOc+9KIWoaeHmhjqeXmxkr/XLg5kh6mWmTjnbed9HuRFBzEl5jcFuLgTz55GG5p/BwzQZiGsbFwMbIf0jvm48u2r8iuKTT+8fuE0sgmDfx4JuPx7s+YMtShTccmBRe+RnizkGIeFZqVocWeGBk7DzbD1A7YbqWqJbx/cMopa0nR782waCCuoE5N8ZNsoP6pMDajvaX3CQ9PqIEdaG2YZAr2kZUoXq8Y1nOYeE+ldX7nm2kWagSEVh6ITtftU2l4iJjbxfN1FkjKRa2Wj+By4re1jaBqgDsJ9g5a+HdkgXzOB7Ke0qOXjyF58s1+LNGJjITA8eZ141VG9/nJVpHcZr5AO387UQKjaMImxfreNGmuvRUxVrQANTk33xnV6/PYOtcDZJ0Osy+xcpNp2aCwbxasbGx1sokNlRT0GoN3k3QsQVurzu4RkG5xXN62iQ+s0lsLpnYW2Rp9fMuVbKsBT8EikM8bYtUs/Qa5UFRUkGqdT1Mvy3+3fi9ZPCAq8kPvQbujq0SFb8+9PgjwAAqQMkwoAhtcwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Barbados',\n code: '1-246',\n iso: 'BB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RkMxQjIzMzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RkMxQjIzNDE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGQzFCMjMxMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGQzFCMjMyMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+gU/BiQAAAf5JREFUeNq8lj1o1GAcxn/5bLy0l+v1esJpUcshBVcRREEo1MVBBUFcHJS6KAhS6yDYdqkIuhVcHQQXF3Fx8wsEB6WTWpGiRfzolaPtfeSaXhP/uSo4SE1qzj+E/PPy5Hny5H3eN1HYPRYQoRZv3190tlZ1Kh1/xtue4i1Zax1nTzpR+HSiV1oO9S+YICqZGkM4SAgTWzjR2pzwqhhLa+Bo631bhU0FthtgyLlHZ/pdg1dvGtArMdFkrM8EKzpd5HB9mPWoTpc5NJiHLpWR69+p1H1ePuwX9yqP75bodtLJO97TbzI8WebCxDfYovJ+zmPmk9dyee3mPKeuLjCw00xe2NphcmM0y4Mn1db8Dh2wOXywEwoG9x4tMznSjTVgJS+8Ku6OH3XIyZyWnlXJ2hqOpdB4UcPJ6pw5kYHwDSQt7K5IercZFMXh89kV0vIAmbzOU+kLWUl3n0HT9ZMPVyDBRXgH96U4ffEzmS4NX66n7pSZOJ8TJgW/beu41GRob4qx4RyZTo20rTJ+rocj+22Yb4JC8o5btdCkWLS5fKyX13Mz1Go+V6Z2wVsJXKkuAKNNwuEmUlmDr3UKKRU33Di+uLAkY7b0brsc/6qPHrcu5df7MMlKfIrNCQe/pSPs/5twKOoF//R9i3ObkhAmtuPln/hgA1FJGZF+fX4IMABjOotaoebfVQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Belarus',\n code: '375',\n iso: 'BY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RkMxQjIzNzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RkMxQjIzODE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGQzFCMjM1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGQzFCMjM2MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bnsnjAAAAapJREFUeNq8lc9KQkEUxr9773i7ev1LKCiVEJggGAW+QLto52P4Ar5K65YteoGibRC0aOGuhPAvpphpps7915mhV5gZOHdzF2e+7/zON8bu42O4fnlJRb4Pp1rF8uEB7+024lB7GB8MSl+3tzAcB2x/H/50CgPqjwnDWJnU1EomwbJZhL+/0HGY6bpg+TyE1d5kAvvgAJEOxZHnIfj5AaJIzpj3enqsFjYLi8lybN/eYJfLWhSzTaeDz+trOeNwvUa8XteimMkPzXjv+BiJRgP+bKYFLtOpVJC+uIBdLCJeqyFYLPRQHZC9/nwOw7bBx2MIyrUoFjSDVglBIMuwLD2NZXhQYpmJBFghj/B7CUveSG0x3u9j/fws12g7GiBnpSNOW52AWrhZxDl23a6kuegUcdc+C2/6CGOu4sZibwutFsLNFsnaJZ5OutbjFbmdU0y1UBxSiRnj/BTu6z0wpT8bxXAZsRisTIZoppG/U2QeHhHdGqgOVit4tL/CatAF+HD4n2fqIzMlX6cgJHu3FCQx6HglmF0qjXLNZiriHil2KTpLFCjqG/8JMADgr5w+bkv5NwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Belgium',\n code: '32',\n iso: 'BE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0ZGMzM3RTE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0ZGMzM3RjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGQzFCMjM5MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGQzFCMjNBMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dCOj3gAAADpJREFUeNrszTERACAMwMBQS/i3ggVQUJBAJ1iSOXffgE2hPSi1OpmTaJcv+JSwsLCwsLCw8PuOAAMAnCIHFZwXd4kAAAAASUVORK5CYII='\n },\n {\n country: 'Belize',\n code: '501',\n iso: 'BZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0ZGMzM4MjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0ZGMzM4MzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3RkYzMzgwMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ3RkYzMzgxMTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0XP2EgAABMBJREFUeNqclmlsVFUYhp9ZO2uX6XSmLXSvlUUKlEiAxMIPSNEYFpuAEUohBjEklVg0BkyI8YeKKIkhyhIkoig1RqIQtBgggIoIItSUsg0dpttA29nuTNvprJ62/PDHzNB6ki+599xzz3vOe77vfY9M0uZ0A/ki/IyjyUREYnFC4ejou1olR6mQE48z3mYU0aNsKFli/E9HYjCBppDLcfb7cbqG0GuVlBRZiMWjdPS58A+Eyc3WkW82ir7YeBZhlFGzX0oFigBkOAT3+9HOncO8pcWsnFOESukToSYSyeDEtQ5+/rGF2JU2KDKBNg2isVTAfhkL308OLCjENwC9wzS+tZotdWYU4bv4w2l4BwbRaNJJV8UYRGKqpYatey/yyc4TkK2CTEMqcL+C4sXbxENawsMcGgY3fLa7ntfWhjhx+SgOXwQpEOCGdJ3Wvht4g0oysfBL29dsq11CbmkJJ4+1gEYsWqVMBhySp6S4a4D1G6rYuDLG3uOHmV1YL/6Qs/tWIx3dNnr+ukTTT69wwXeJ+eVr+fiHj9iwLIsdb66ADs/Y4pNNn/SLO0DejGJ2vVrNodNHWLNiJwU2O9Lh71ho2oC5R4dVZUajkHGqYTuhP+xsEmMONh9g3Qs5TFlQCf3+/wMcpG7ZTJzh38jSVuLe/yWdzctofLmEGRVV2Nqvc+r23xQs38pzUhnHNz7LreNfoddZ8UZaWF5TKvIjPEFgUafodEwrN9Dp6yLDVIhVF0aXbeRq81Hyez1srv2UHYuqWe3T45QkrroHCTp8zCqfg8PdyfzpQhqM2qQJlvj0I2KwUcMkk0YkUpSpBelY6jYTtC1huO8B2jY7GUVtzKoqxNHWTe23e8gvnE/B5Dz6B/p42HsDmSaAwpxFNCiNVce4gBE7HhECkRxGlRaVTDHaay0uwzC5jEBcgV3kZSzagyl+EkPxG2Tn542OkUJCZAL9lKSnjYrJxKhWCqBAkF53GK1axX2XfaysxTxKUUqKaTMZMsymzbmGSOU7IgfUyKKPyBocYrq1hF5/nLhbJJdKMQGq5WKrAwPcc4SZ/aSZm10ebN47nLv2BWqjk32/SmQ+zEOWWcGHbR7qp27BJFvAqoVbuGK7KEqrhDMOoXY+nxCTnMTalFxAZNzudrH9pVpuOc7T4bOTqddgu+cnquhCX3EBq/UmaQGJVls7ZqMJ31BYsOJlSlk1De+dx+UXqqdTJxSQpNKCyYDzmp23D55jT+Mqmk5/T07ZM6x9+nW8D11kZLrRG/R48tSEdQbUFg9/tnzDorlVNB0LcPv3VpiSN1YhCV0umVaPWNKQoKt3kKYDDSxf7KL54ln6I8OUpi1GKc5eJo/Q2n2HwtxhXB4HK6qf5+ylSaxctwssYkqdIDKxVY3DJLyD4PTywa4GNr2oJx5yc6//LvY+G1qlgSdyShmOD1GZv5Sthy6z+11hElkawZg+pUkIW9yX2hZHwEd23v4A3bxK6tbXUJzvo8KcLopOTjiq5/Q/fXx+5AxcbofJGWDQPN4WVz1Vnxp4lHXZaKJ39vlFeCm35grjNwjguHj30OOSyM3SU2BJfyR8j70J+GUenWXCV5+QULZgaKxwNWqFcD85E2ijV59/BRgAi/3kZlc/4VIAAAAASUVORK5CYII='\n },\n {\n country: 'Benin',\n code: '229',\n iso: 'BJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0ZGMzM4NjE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0ZGMzM4NzE3NzExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3RkYzMzg0MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ3RkYzMzg1MTc3MTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+PY+RygAAALJJREFUeNrslkEKwjAQRf90IqgYFNx5nN7AA/Q8Hs5bCHUluoiLasmkU+hCEKQ1GDf55DMJBF5mQsIQDvsawE7t8EnPGeyywak8YqPR6/pLWfXZDBO8xBSyBf6kDM7gn8mM3hnUpMMKsBLQQxKB+9ooSy4suDOk5Zgqy3iwZhoc4VZtg3UtrnOOSThMztjXhn0T4CkKzJPvuFiLnkG9oPycMjiD334uN3QfLlX30bM6AQYA2ssuTyUvY0AAAAAASUVORK5CYII='\n },\n {\n country: 'Bermuda',\n code: '1-441',\n iso: 'BM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDJFQzM0OUExNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDJFQzM0OTkxNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNEI3RTM0NTcwNkE3OUY4MDY0M0U1Rjc0NzJDRTNGRkEiIHN0UmVmOmRvY3VtZW50SUQ9IjRCN0UzNDU3MDZBNzlGODA2NDNFNUY3NDcyQ0UzRkZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+iROkEwAAAwZJREFUeNpifJaZJBnovvS5ZOPyS7d37GJgEF9RoRM+L393bIfbpK8M/z6JCf7OkXpZGyj3T1nzZEUD67NnjAyMDEQAJtnpXwrCJnnfXH82jre/L17exuD9D0aGvwwfmDnFlHmLVR+djmKszLZq4XHUXfv32/MXfAzEApaQZK83kiJb+D75375QEB2YVhj0YMnaCxMZtJX5j02WU773hyEkbtdb3quTtur+fCnIwvbr9w8ijWb8ryvK8Ov/88//n3z/x/D+vSgP249vv17/YxRg+M/FwfRdWunns+fCv74qqIoyMDOdu/7697//LDDN/xn+/2cAhQ6ERAsolvMSpi+ev/4pwGQQ5cDx7B7328cfmbhfbN8n5OIgbaZ5d8cRRlGdaxLqd54/FWb/x8B0hOXfH6ijgCYyMf3nF2SVEP795uP/9++Z/vz+jxzWRteMm/y7WVZvUciP5LcwnulQdDWxSp3j/4PA1NVJ0yS27dQujv8po1goFubEEPz97z9eBqj2Hwz/hTPSzN69EZEVNX14Xaqr7ytICmE4S121S5LkF/atcyqWn5/6TPrLR97e4p/uIgx7H7+PVWnjcRErC9NPs3mySPb55q1XfnFx/Pr6FRoYDAwcsgoXX93bc/uL4VsGNX42RqhnoID5gOz3L51NO0+/PvWcUfb9Zds/111YH3LcvcX4/z/L25siN9Y82byFlZXXWoLR8urOr09e/fr3DxKm/xgYxGRVbn260PqbSZ5ZyPL0/tdnzjEjmc54HExxMzBIMDCwgdmPGBg+MjDyMPxXAKv6zcDwjIHhMwMDOzD4QK6F6PzPxcBw28zgWoArDzfXizdPtLefMjpz+QuSq1lYwZxfYBPhPuVkAKZshrtITuAAi/9H0gm0huf6lSvSzx/Li4vdemp54y08qUCNxkyOGAzs3I8MDNLf/1fc+3Xlx1P1l//5GdjeMPxmRlZxhrhcixUA0zUwDLmYmL/9+/sT5A/UdM1AAQDGJzAmPv4DxigjE2YZwkAzMGr0qNH4AUCAAQBpbzCLqENWxgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Bhutan',\n code: '975',\n iso: 'BT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MkVDMzQ5RDE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MkVDMzQ5RTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyRUMzNDlCMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyRUMzNDlDMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QtQgBwAABGxJREFUeNq0lm2IlFUUx3/3eZnZmZ2ZnXV3dZ1cV1NTNGWTfEkj+lD5QoJZRBlI0PahD9kHicwPBX7ID0EEkQgZC4UaimVipSAqkpZFZUQIEpqaq+bLuPPyzDPPPM+9nRmF3HxJN7ozl3nmzpzzv+d//ufcq/Lbp54GcjKL/F/DyLTlPUKhL5q0tyXqd2QpffXn9NC8KnmFKBOiVfyadUvWqsgitMawmg3Btxpva0j0h0k7Qw9DNUKxjUcUBQKdxI3OYixx6bQ0gENtY3UmsAc8ypugujcC2Zt9l+I/AEfCXg1ftXE5ORNaekhXD9Ps/wiVU4TFk5h7nqH6y0XCD88Qnk9jD5fNxsRUM1Rgg9JV/NT9BJm5JEfMI5bOEYs/j+cV8YqHaQ8PCMULKH61E109Q3x4GePEG6BXEjEUkiWfEU0EugmVe5xE6zhc28VNSl7joqT+FNbdqyit24a9ZxOxYQqjBsc4pIjrTiy/H6dV8tc+hlqpjHduP8l8QaIei9V/hONr95E4cwwnnYRL57EctyHuv6V3J+pVElHwJ5Z3TD4vCW2iZL+Am27Gbe2m8PlWLi+YRXjiFJlpPWSXr8KkpFjCUEDNECJWok5dQZeOEYx4FpUcjamcwD7+AeFADR7toyU7EffNDQQLe4m8Ctn7ZhDLZKiMn4T+Zh+MnSBUmTsDVgIaRprauDWYCS+jpC6V+IiOLCb4+Sjqwlmc0Z3oHduwusfD7wcprHwJd/RY+O5r1MiuQaC3Dyy0mpZZmCkrMK4Ph3diZafhTF6CO1l8FopIq6C6YzNm1xdSZpJBVcMLApyuMdDc3KD7joClyYlNFd25GF23//gN9Jq3Jb3tNM1fiJ46HefFV6jt3IFavxklDcOM60b5Hk5CDHR0HegtgEVIutTQnhXmG7KoZqdiylL/TQK0dj/eutXU3vsI/cBBatPnYIZ3Yr22nPSDD+NLvVZf7SUmYjSx2A0RnBt3dMlfbBSWKLimE5TufQuGzUQf/xV39lzaurqkPF5n4KfvccIaZtl89IyHME8tI7PgCTJif27Jc0Tr38UaM/52gBWWqMaUT+Bncqg5feiO2Wg5t6xVvQRPLsXb0ie5/AR7Sg92W4d4kJq2Jau7t6MP7CbvbiQzbxGOL4J0YzdN4WBgyYexC4Q9T5PsWsHlQx6qKo1h+zr8jZuwOzpILu3FLuQJ9nyJlUpd4agOMGEyqlSgvOIFKqtbsWpV7LqwtL4F8NXz0mkPKA/kiH57BHfDp6gt7xD5Jfx4gihlk8mNomPiJE4/tojo4F7soIpJXN17JAJKpoQA6VCVUuP5nyU0GFhEp7JCZVrhH3Dxd8n/j64kCKU2R+awrTY56qQ8qj5GWl9FjMK+97HPyxFYr9NrIzLy7LoomVe+3xxYFQ5NK+i8SVc+i/D3aWy7hqo3dcu9ztDUW18sjlUReSeSN6XxNkbRCX7QRW9zmI5OmmL9akLMbWz8ut1a9RuFrOUvQCZ7y2j+ZdRvOsW/BBgAmn3MQYJZCMcAAAAASUVORK5CYII='\n },\n {\n country: 'Bolivia',\n code: '591',\n iso: 'BO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MkVDMzRBMTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MkVDMzRBMjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyRUMzNDlGMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyRUMzNEEwMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QnwfiwAAADFJREFUeNpiPCeoxkAbwMRAMzBq9LAwmvHnNbHRABk1GjdgYV+iPhogo0YPiNEAAQYAm/kD5VlL/agAAAAASUVORK5CYII='\n },\n {\n country: 'Bosnia and Herzegovina',\n code: '387',\n iso: 'BA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MDZBM0U3RTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MDZBM0U3RjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkwNkEzRTdDMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkwNkEzRTdEMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+PElEFQAAA31JREFUeNqsll1MW2UYx3+cnpZ2fMjYhyJj42PlS4tRRyLbpIVSyaJXM9NsQ72AJe4GF+PXmqi78MpEE73AmEwCiXFT44XxwmWBjYgj2WBRKKWTfTAwhE562roxOGy0x/ccLcY5J7R9knPy5rxv+/T/PL//cyoXFHRc7+7exZo1Flyu40jSfdy6peA/8SnV7iuovgIwxUk2rFtmOdbpZt+rrWzYEBHfrxnP5bVrbTl79nyH2WziyJHt7NhxP591zdPQspHvu9/hsaZfUf2pJb9bSMHgTVR1iVBIobAwW6gu4aUWK7+FVB5/+i38/VuwPjwDMQktjYlls1kiP99GOByno+Nn/H6FvtOTNDXlcEPdSuNzXnq+fB/HzsuogfQpl/VbPK6xfn0OgUCYwcFx7PYiBocOGAe2Vl6nxtPOL30fUl43mbayS4nF0lJMAGYW1zoWFzXOnQsa6kMzfrG7kQrXG4z2Fy+XPS2KE5GRISi0ymRlWUSpv0KWJdoOPEpz8yY+/kTF+ayNvq/fxuGaRh0tQBPKM1JVnIjMTBPB4By3b8eJRMJUV+fj8ZTR9qJE+PcFap7y8lNvKdbqGTJSUC7f+UDvt8ViEj9AFoljdHaOcvFihN7eSZzOXAGcneb9Xvq/eY+KuquoY8n1XP6vDU37E7jh4VnOnAlQUbFZ9L3N2CuvilLZ8AqB0x9RmWTye9YqAZzNto75+TgjI7MGcNNTOnAPUNXwGoGBzVgdq/e5/H8HdOBsNpnsbAv19ccN4A4dqsXtLhTALfDk7ixOfP4u2zxTq7LaiuhIAKeqMRRFoagol8bGUg62WlCiC9Q+c5gx3WoPrdxq8koOJYDTrRYOx+jq8jMxEaWn56qwXS5zi3ah/HV+/PYDqp64sqIJJ68GiL8nnMLZsxcoLn6Q8+dfNvZK7MJ6DX9NuO1Tyz5PqdR3Aqcr1yecppkYGrqGzxdCuXZhecINnyoxJty9fC4nY/4EcHrv6+uPGZ5vb99Gk2eTAZx7by6nvjhMTeM0zEvpUZwIveeh0IKxjkYjlJXl4XIW09oioUTmeGSXF98PJZAXZ+kuyuVkE+v91l+pFotVrGMcPepjfDzCyZMT4s9ElgCuHOfuN5ka8VJTLpRj+lfiG6m8ZRITzuebZWBgDIejVIzXfWRa4tTW3aR250FeeP4SeXnRf3zuDwEGABm+YrFv6121AAAAAElFTkSuQmCC'\n },\n {\n country: 'Botswana',\n code: '267',\n iso: 'BW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MDZBM0U4MjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MDZBM0U4MzE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkwNkEzRTgwMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkwNkEzRTgxMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HqOdhgAAAHJJREFUeNpiKV11+ykDA4MUEH9moA/gBeJnLFAGAxJNF8uZGAYIjFpMN8Dy8vOfAbGY8fb3/5/onKJB4DPLvMqMgfExEA+IjwfMYpbsxIiBCeq7A5W4mpffHJh8LMrDPFpkjlpMm8QFbfLw0rnp8xkgwACv5h08wmledAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Brazil',\n code: '55',\n iso: 'BR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRDhGOEMxMTE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRDhGOEMxMjE3NzIxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJEOEY4QzBGMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJEOEY4QzEwMTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TFbakQAABKdJREFUeNq8ll1sU2UYx3+n7en6uZVa1oGDwtYxnCw0EhiCxjgjH14oiV6Ampj4GRONRpQ4ZZEYvTAhwSxGjRFilO2GDy8gZuEGTAS2xUHmBvuAuVG70U0o++ranq6tz2mHc8YB48KTnL7pec/7/p////k/z3kV6h4ZAJz8v9e4SX4Wz3uZkoGEFWQgL343wE6Djj4vwJTEOpHPA64/qXIPw6Qj90yfmwdjw529N72pDjJlYufybloD52gKnOfDkk55ZpQ55+x3b8dBcjx2yxzrTJJmiFtYt2CIH9adY0VJCq5PY3ggeEXhueY1/HK9SKRPgFnujHJLxnMD64D6YmFpMCX4pOQSNRuvQKeRfYeqaOv2kpa4K/3DvPd0CwQ09p1ZQs3lMhJJG1gnwJCeK4A5gLPmsWSZbiocoK60i/LKGCe/9/HMru1Eki5MJNG3TGLGbR6j/tMjbHmpm76OPN7qXcmxcDGoU6JA7L/Ax41sXVaje3OGpeQr6qTAEqOu7AKf+3vw+KY4edBF9c7XUdIKRWoILX0VG2N4raPEkk72n6ii2tdD4OEIO8xDlNjHOT1ewGS0AEzJHHv+DkCbYayDxkWitIEdi4LsW96F1y4Ri2K4TRxsq+NseDXL3EFsihOTptLRc4X2kyEutPZzjWKqK4Y40XAAY1L2kvgjk0Z29pfz3eDSHKg1epP9DGNFSmKVbYKvy9rZXdKPQ0mTEJWMLujtdPPlkScYutjDxeYQkXCUPNWE11/A5h2VrKpeQrhjkKZujSfX9LO4YpK4mM9pzrCtSMrOHuGikBrWLGRydaSZssOUSrGq0bT6LPYFZB0bE2UMEpySD6FwHocOt4mBY7icZnpbhvkx+SsWye8Kv5fHX72f3Q1bqf8mTGjwOGt0frI2Jua2agi3CJtdzfhbH6JPwHXpc8DGKa6mjGzqWEvtkl62FEawSlrisghpTIWuKL4FThxWG+lUFNVqodCejyqsB4IR9u5qJFDp5/nabWzwecgMhciI2lapQomNU0EXe4KlhISgjqVfhpummjKmODPiYetvVbzSeR/jkmuL9AvxD+WrR6RsBgjd8OB2W9CSKWFkkFvBas9j+T0uLrRbOFa7n4X2ThTJr742LuBvdpXzaNt6fr5RSFI32HSHm+lcmenkSwP49o9Syls30jDozXrCKMO7LzQyGosRDOfjcJjErfHsnZ9vImNeKkG4eefln6BA9BUdj4YXslL2+KJ/hbDWcnv/45pdTjqKHpGAT4gZjg4V0x6zUpUeIfDYCGvdA9QfLyU46mE8qnJtTCUkKtnUNF99cICnXuxhsE/lte4Kai9XMJoSne0T0yxn1bJ2684lchNziIMn2VvWwxsPSu7OW/i4YT0dl4qkYyqU+8LUbG/CsSHG/pZFvN21komEHWzC0JCaZ+f6dwCaCJLIo9ozSP36cxRJUyI83asXwY2r8OzZAI3D94qsydyn8q579Rx9WzoHe3yX+cjfl5367Hcf7/eXSe+UMrHpsqZvBzoP4FlfKjV7CNjoDaHK/1Pig+zXSPrAHQDOOoHc+bFH39gkdaiOcfq6N2cYneXNuXmcQP4SYAD5sNLFPECeSAAAAABJRU5ErkJggg=='\n },\n {\n country: 'British Indian Ocean Territory',\n code: '246',\n iso: 'IO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkQ4RjhDMTYxNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkQ4RjhDMTUxNzcyMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMUM0QkU0QUREQkJFMEY0QTBFMUM2MUYzOUU3M0FDOTgiIHN0UmVmOmRvY3VtZW50SUQ9IjFDNEJFNEFEREJCRTBGNEEwRTFDNjFGMzlFNzNBQzk4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+507x4gAABXBJREFUeNrs1OlPk3cAB/Dfw9MLWqAUeggF2nKWq1yFCIgDryGiQ5miTpxTkTDZpmObO5JplmyRxMjUOXRbxBmHyhweGxKCnAWs3AUKT6GU0pY+pS32Pmhpx9+x7M331ff75vPiC6kbfmFsSR4C9Mqn8+PNQoD1bazkHm+7MfBWeW4fDHQmdjjuxzBjCT9I7Rve5x+ZzqF0DS/WPRyWopay7JT33g7jRdG6RIprbQKx2CcnKehUURIrNGRQJINA7uU9RMMfFan+CZG3UGxVO3qd7T77T1377soiCflLIP0un+YJpFQtEH+dtoLRUeDjBj74U/v5adygL64+s2L1ZBYE2winS+P8nfFtwpVeAQIMFgo7GHOiKF6FITXorR8Kp85sST50dbexvcd+zcilktDcSOqyHfA331nwILP9JwLB1faPMXgsDoYUGqvD5XlwjzUpI4mWFbGRmCCPm+yAOr4vxWJcWpPd4/FA3rJi4HQAOzCZ1h1OVxDscbnXrL5kX7sRD7zmkFAfg5EMO0CYn3WdUBF9BBcbM/pKLBlBQYSVlwnTInUB0XMTY9D803zgCgbu1eRUJpdNG5lUQTOXr8llWiuBsCWfR52bAUF4m81j/umu3/5i/3cLQXu/VmcbonMgjZ7LIN4hc59M6SryOGf38fA43M2uthb9nWAfEE9JzWVs3RGfozOYbzyfah2WHSuIw3BHqcxtO65k+VEZNpcv5oKJvjl8vYzUKOAktjIKas/nUtEZXBtyTEJAHdTu6rhLpwsHZ1UFtY9HpGhmpvfwtiqiCtErIo42ClZRwbGdvM/K0mv2Jgtn1VBjU89xph0sKc89Ruq1VIDCTdUR5cL64bQKfoMWMPwqT/JvpUDAZviteerU2NoGHQjAVR/i82Oo99tUHa9XUkkjbgqnZOdODt3TMoC0ds4AjTUkjgpJu/r6H/VainYYqWGxkE1tsmnnVSzRCHvvdieH5dSbBhDUEULeSvcrdqOepASNF7uJiFVqbQqNOTGGLrI47JJ7MbyiQN9oiVieHkfDwD5KvRUPeyB86U0nngTUK/kZoclRlA6hHNHaAJsFpIrtXAqPS++bXJ5bNlndnjU3NjGclBFD6RhcWlYbANk/l6L/BDbw83ye/K0ZAL6dgTzdrJkVTY1gBksX1BCqM9CDAydl6N2O2WFEW5YfVVWcgIEJUrXudqtoUKwtyWHXHsiEgI9MvdrwYmoI0ezJiqzZl4bFYHWil2Nl21e5ZIbUwD3/Oe2DyytG2+3WcaEY3ZPNgQprm/rFmoNbY786nBEfHvKoF/n0Vu+K0Xlgc9TF49mxzBDBtOJcQ69EadybE3WhPDUxPKRjbKnm595ZuftgFnxpl4BCT7Eoxs+1BD+bTSrJDfimPJvLDn7xagE6U9+aEEFt6pt/NSYDZheRQfmoNC2GGfD7S6R7ZBE4XBh/fPU7vCQW9X4n0jO8CKxOmEyqOZDCDQt4/lrtxZP5sJwWF4MPoNjN5g6R8km3BKwYGdE0MDav/EuAaFbfeL3rK0aL02XvnpC1CBCdweT1enRGw0bKVPq214jRavV6vasmy0ZzfE71sGtarjMtmrwt31bPjQsH5fbmrmnNm42VV2s0Gs1mCFdYt2awAAiKT+ckRdE6+5FVpQEQfYHLyU1lprEZ/VMqucoA1l3A443lhiZHBveLllCFGcAwWLOzkjl5tp5eA31pjQGcNgC5IlibmDT/RaUOEsvQOBbl5ejS9ZaR4TndkYL4r49mB5EIfdPL9X8ODc3qdmUxfziZFxLg37Nxby1Do5KVoiz2xffzaIHEzgl53QOhUu8o3xpTW5ZBwOMnZOiV5qE+0fL+vKj/Qf4TIP8KMABGR9CQ7zSDAQAAAABJRU5ErkJggg=='\n },\n {\n country: 'British Virgin Islands',\n code: '1-284',\n iso: 'VG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REM0MjcxOTMxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REM0MjcxOTIxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNDJDQ0E1MjFCMkQxQkRBQkYxM0U2NTQ3REJCRjE4NjkiIHN0UmVmOmRvY3VtZW50SUQ9IjQyQ0NBNTIxQjJEMUJEQUJGMTNFNjU0N0RCQkYxODY5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SkUFawAAA8xJREFUeNq8k21sU1UYx59z7kvftnZtx7rSgbME5qgbhA1JlBEcUaOxiGxTDMOJCSaKgZjMEPniJ/lishjjDGriy8QPkCFbFGM2FhMgy2S4bN0kMma2du267qXre2/vPecebxkTv4jEOP+5H07uOc/v/J9z/gfNtLU5d9f0JO2tbf2j3VdBZ+t4Z9uhy5/21e5rvEhi4bjDht5ySyeaN6Y3PFS85zzct7gLI+uHT/cedsNLu9ZnytzXx6KPldFHBy/6ijd+5aM704HPvEUNXk9HtLSh7WZ0aoIQlRBK7ilKGCUUtRw7OxHHjeX0qDMmND0RtLkjnT0lTc/On/qIr6utjt6Cvc/1TOba3/s+9vvMyNB0MqWIIocQyDKjlMOgqoA1iwCU44goIsZQTlI01yi1v8F0YzwJ5lCKyDPhcrcjm8xMR+IOs7HQyC3ZndJCwpZNODz2FBLdI575nKjjCZXUdR5RWCsoOYDcIhb0yGBWwiT8q4REkHOyhuaD1nUJSE+nieeZR8qBmOMRIgHr7sZba4r21yvn+6TCgmFLrTMTZ3oeNLeMsrxPk7leqj44cCW8pj5ayPG3oh747VwVN2aiLLN81rjuWtHj7pZE95mKT06Yn9/Vvr3hauMhD8jj23d/8fKxNZc7Kz8+vrS5olHYuTVeF5NBj0m+WeDjSYnM+g1ziaNPf7jD+WRiajSbUvIz+e82+t0jO0LHS14JXjr31Nuepgtvtv40NzRqrCzmY5FXXW84t3zwzS/ogHfT+EF2SvApsiIBr5UxUDnAkso/bKioNtv1SExQkTKMtZkV8Q+qqTOtXR1zpmsLBUBTgJRLw2k1WjF0E8BgmfUNNh+5/v6+vSe9lS6r34KzccY0WwKwOBPGlJLD5qWQLA0sTFp4IfIXbh79eltvICBo9jleEg06YGrnlamz3DY0sKTXgmB0EoWNdP3wYpeKkEMnmgxYVVWmADbJOSsJBHn3A1Z9tcs95F/MyFpaAKM7G/DTAc2ECFqGiMp4LUZI4LX7ygAv5BtXVY4DjrOx/HqqLdUGGloFssXowNj+c0arhTKbRfKbN+idw5CllN55Mghq7rbAc8uDu3exIi0aaOWXLBuaX4h++3VvdrzqO7+rfaK3xxdr0ds+P9k3P1vcP2hHIP0t+t4iBDDWpWZze1zBA5XZItuN1k0zVXTx9Jeuvv61oRBFoCy7ee3PGp1evB80QiwnI5VaS0uTzd4Jd0EmLAkdP272TxZiHNXpVSlD/iX6H5WTbr9GWAUtW8SwalpFNP9fne//6noV0X8IMAASR8khb/BRHwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Brunei',\n code: '673',\n iso: 'BN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzhCMzg3NDE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzhCMzg3NTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJEOEY4QzE3MTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJEOEY4QzE4MTc3MjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oskd/wAABCtJREFUeNrEVVtoHFUY/mZ2Zncnm002Sc1mczExdFPNbpMm3Sy2+FC89EVKSkEEFUEUH/RF1CpesIIpYvVJHwQfVAQvoGApxUihKRpQm6ZJtrm1m839YpPdNMns2r3M5fjP7BqamLVGLf7wz5xz5sz5vvP/3/kPl5xyy/gfTGCZRSd4anECOL6Q3lajc+uBhbJXwNID0NUImDIB6BrA6ItBhhfBcU7iIW74iamArTjLL71qct62cYzMXEz/jYBHwDLD0E0foP44gUyCabkYEBmOLwBvlyDPCpA8DFIRh/QyjVv+IfBWxvQ1IjIIPd1L7xHoBjHlCuzVMYydKsH0SRH7O5YobA4iWpAL038AvCUZdZZCO46el19E/4nLONK3F7ftHERycSWbIiM0PEeRMVJkz6uXbWeHE2qgogYjZ++C82A1SltOmuOS80eoKz9kU5QJk2bGAVW+gYwlR8aWXefQoQeZ3+9HMBiE3+fHTm9DXtCJnl4sd34Hy5lfcH16ChZRhFTlReb+gyhvfwR1LYXrc/XMEBEYymkmRGkaM8XLtIzJw/ANoa6vr0NbW4A8iObWVrgTKexo9sNzey0WOs+i9/mjqLG7EC+QkEomoceimE7EsPfddxB48nGsRmXMdJ1H08MPbMpRigiM5vQymB36Kz9M/oWngT309BPss/ZHWdcnn7OrpIvuYx3swuvHmWlzMTby2gmz+WGtl33qbWU3sz/teLOVUVC+QgmO4hqC1D9DvlxVgbfXgIbKaswffwEVchr+vhCYfzfCL72K++Rfb6oVy3tvOd/cUWaBQWFVZtC0jROS5I2SC3fwDrTsc6IRVpyei2K/JmI2toTnvv4Szu9Po9y5ho8/+hZ3NrXip+pi8Kk0SlwuWCxCvuNUld3xioaZGQ0XQwp6QyqGLqsIDSuYntbwBirRjRQiiGOm3YvHzi3AJzvMI3FekvHNPg/uGQyjJCrgMF+Ep/Rr5pKeinIEAgFTuLubmrBnTzNqa+uzwMlJN+Pp3FtttOVCcscfRYAhs6BhdFHBQocdw2IKnYk4nu2rwpH6AoTnVaqoDPWlAroX0jgwO4E2qmp32xz4IBnNG+Jdu7zw+XwEPOXeMscC4QsFRKTUqJMqEuMcLj1jx3wPQ10zBxsRNdIz2q9BWhHQpSTxPq7+/Usi3wdVJ08Qp7gGaxnlOkY1oFGDW+PpAmOIzlKNjnKorOEhNGs4dq8dB4pLcernJIaGVVyJqIjL+XWbd8ebbyOJwOFiMAR7fY7aEYGqEwfRr8BWyVDkNmaK2dKQ0LE0p2GACFzoV0gvCkJDKkbHaCF9G8Drp53WFKn8WiRqO5khTUDmoZH0lVR2jqkX0dAKedENNSqmIzKpYSSs4uIlZRvA/8LozoDVTg8nucSv5zh+q4F12loqSQ/Dc7H+XYABAOng97l61jkHAAAAAElFTkSuQmCC'\n },\n {\n country: 'Bulgaria',\n code: '359',\n iso: 'BG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzhCMzg3ODE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzhCMzg3OTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzOEIzODc2MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzOEIzODc3MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+McDtIQAAAD1JREFUeNpi/P///yeGAQCMQIv/D4TFTAwDBEYtpl/iYpiWN5q4Ri0etZg62emamtBodhq1eNRiqgCAAAMAqc4MILa4lBgAAAAASUVORK5CYII='\n },\n {\n country: 'Burkina Faso',\n code: '226',\n iso: 'BF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzhCMzg3QzE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzhCMzg3RDE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzOEIzODdBMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzOEIzODdCMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uO74RgAAAV5JREFUeNrslr9Lw0AUx793SY6m2h/iVEUQRJfo4KqCc/GfcHJ08B9x6ayTq5uT+lc4qEtBRFsKkmBKY5Im50tSJG6XgnHJg+Nekrv73PflveOYbe28AVih5qIca1B712cOcn0pcI5/sgqsPmvKgJDNvfX5psWznuX8PwOzrJNjjuhJQN/3YBx6iB5F+i4/RsX09lesrjIpvi0fHhdgXQ8wJep3NZgbPvBiAAF91xTBg0XFkRGp9TjEboDm+Qiilm04vBni46oFv2+ALUhaUaqBrZOOeqgpmWzHxPHgFZfWQxqGs+dt9MQ6lk4pAgZBpaJie1lHof/c1HCgTXDfX0UQc+wxD701DruuKUNTMCYF0lIymJqLa6eF29EmQgIfdYZocxfOmAQwWUDDRfezyDnNksUDymQtSkFsSkAjLCI2MVcvWn+SVCegn+ecX53VFfh3OWVXnkbJVx/3W4ABAMUjZvAvTtkOAAAAAElFTkSuQmCC'\n },\n {\n country: 'Burundi',\n code: '257',\n iso: 'BI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkJDNTBFRDE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkJDNTBFRTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzOEIzODdFMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QkM1MEVDMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+f3jizgAABTpJREFUeNqsVmlsVFUU/t7SmTcztNPOlFraTltIIZqWkoGACHUpFQiQGsQUECWYaGI0hAQRarVCadnREtTE5QcaI5KIQEGWFBAsGLQFbKEsFpRANwp02uns25vreY8wTKdFI3onNy9z77nnO+fc851zOcaYQ3Y4cXPNFnRs3gQZbugSRoKLE8DCYfzXwXE8mByGt+8KeEhIW7IU6RUrwBEwuyfkbvgNraXvo/engxAQD63ZAsZk4L7IvwPlRQRsHQiiD0mTpsKysRLxBRPVPYGVJFQUpjyh/tGkD8PQV16ClDUS7vqzcN9pgSjrwEs6Ao/xnoxhYUYeqW7FAAoIe7zwOP8g49MwvPpDZH9aDW1mRkRGqJtcX7G3qw4Z+mEYFT9CXTRY85Hy6iIwuwfOhlMIem9ClJLBCSKY34+AoxUhnw1hv4u+3TTtEHgDeI2WDAJ8PVcQDvmQuug1jKrZgfinJ0cAj9w6iQX1S8BlHyxg191tgOxDSdYcbBhdhhEGS0TQ9esZtC0vR8/PteDoJ0APU/FsJE4vgiEtHZ6um7AfPQ7b7t2UH04FF4kTCpG5qaofYIe3C6XN67H9+k4KiQhkHpjEFPC0/Y8zfGtmSTWj2eaWz1ns6Ny4hTWOmcB6avZH1sJR+/baH1mTdSJrX7VuwNmPrn7Jhu6zkn4TS/1hPBt+8EnGKcD3rBLJkjv+bjg9nbDSva/NW4EZqc8Mmjgtp4+jYfGbGLthE3ILiweVOXb7FMqaN6Lh9gkYpFQ8IqUgxELqHh8tqCyaNEnITspDY28zZp5YgNfPvoNWMiR2eO09cJ37HV7bnQF7SliXNK1CUd1cNNjOIsuYi2TJHAFVEzDa4+ghcAK8dO9d9kvINltRP6UGKVpzZJ9IBht8SCJuxkWdc8luTDw2BxdvnUAKARpEPWSFkjFDfBAHFWENHwcdJZokaJEYF9/fMJopBBo79IIeOkGCqE9Xv4OB/i1whK70E8l7Da+BwuTztd8BVNEem1ECLcH7abXlyB6EAn7kz3qRFHKqvFJzGB5ceB4ILFCpC4SD8Hk60Kc1wS67yHMdmkoWgnMFkCE/Dy0BEJPRWPIygn0+jAy/AA0ZYw84IHs7EaR7lchgmYX/GVjhKk+gCrdZyI35OYtQmbsMCcIQ1eNxB3aptdfI3b3ZBFIxbv8uyMEAJE6rKjxQsA1Vl7biq2vfkAc6ZBuU0sv6RWAAnXoDdvS6b2CUyUqAb2GepfihG0RN52GUX9iMi91nYDRkwKwx9aeT4qESjmt9lymTvVg5ZiWapx3uB3r7s21oLiiE89jJQUHcv5zGhaeeRVf1J5G12WnTcH5qLdZaq0h/iPRfImBZvUZOqSKtdI9y0IVZlplYl1eKfOOjkcOecxfQVrYa3Ye+VwOlQSKSF8yDcfoUiEOJm7ZeOI7WofvrHQgwm3rGXPQcLOtXwTB+7P2C47yGd6mY7G7bRzVfogvdbmQ5SWOoSr2NuVEeMn8QbeWr0fXBx5Q+DurROdSjKVHcbgR87Uom0NSQMUGaIWi06RCGJFBeBNXeK8CA1MVvwLKhErxBF9G7l8KvVDNuaVMlW5O3nPh3n5M9O/eQl1Vw/tkISUyDaDRSC4zhI1FKbYs8tUSeH9AWZacT3kA7hmTmIWPNe0heOD+qQsr9HwLey1fRuqwMtkO71C6kNWWRN+GHewhQj+aIbn7bDfVVYyoqRmb1eujzc+9uK0+fsMuNW1u/QHvFWgRDNkjxOdRbxf/n6UPRYEEZXsdVopoR6eWlSF2+GH8JMABj3HBuy+V6lgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Cambodia',\n code: '855',\n iso: 'KH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkJDNTBGMTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkJDNTBGMjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE2QkM1MEVGMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QkM1MEYwMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4kgdbAAAAkRJREFUeNrslUtPE2EUhp+5tbTl0gsyA2podCPRjSuNMV42mBAIJSxYse2OFWEhv4S1MTGGJcGNP0D37pDGGu6lNE0HsC3TGc8MNSwobYwRNj2Tk2/mzJnznvf9zpdR4L3HDZjKDVkX+NpM+UxfRda+KxPkcjnDn0ANQ1ZPnk8J3R6Vlwr17R/SfaxlXhuz9fvYnbuL9QQg7nFFykNd/NabJxAyOFzJEWrWUKLhIM87qXSsqZfaAYrXxJPPX6KEQhTX1pDSVAPgDFosRmnlnfBDuELqxWsUTaO4vi7N/MMee02PT00xODtLQ+7L4tb8PEmJDYyPM5zNUmmqkJBYfHpaJO9sWhbeyhpu9dIvNjQxwcjyMsboKLHhYaLRKObCAmoigVutEk6nMcplrLk54jMzRMbGcDY2sMW1q3Hreruu/M5100QfHKS2uYm5uIi5tER9awunUJAEF8OyuLe6GuTXcjm0VCpophNrvd3++tKe7u9ztruL5zhUhYUPqPb2ng9RrYYjbOvb22jJpHzQwJHc450dnGYN72/2+M9Q9YTDDGUyQXHn6IiGbQegrgD6bBVd+vY81EhEJvmERqlEo1LBnJwkKrFqs1ZLjO9w6Rz73casAe5++QrpB3jFg4CNYo5cDN6JfR7rj1/ECnt4bgPVugN7eXaePcXOH7SS1dYPWgz+mYxV6vErjG8/+fXhE66wCeSR4+Mz9GVGpPd81obR1E6Vc24HSqi9/UQePaQsNQ7zH+W4GZe4K93fYhf4f9lvAQYAwe7UEk4oy7oAAAAASUVORK5CYII='\n },\n {\n country: 'Cameroon',\n code: '237',\n iso: 'CM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkJDNTBGNTE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkJDNTBGNjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE2QkM1MEYzMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QkM1MEY0MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KAzx3QAAAHJJREFUeNpiZKiKY8ANTneexCNreO49HlkmBpqBUaNHjaaO0X/+Mkpmf5cq/vbnL7FaWIhUp9T4VTT2BwMzA6sQw8NqLmq6+sMxFkb5v4xyfz6dZqayq5nZGJ5k8zL8IyFyiDX6/Ta20cQ3avSQMRogwADcmBpIZYNhTQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Canada',\n code: '1',\n iso: 'CA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFREI0MDA4MjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFREI0MDA4MzE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVEQjQwMDgwMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVEQjQwMDgxMTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+IgrEzAAAAaZJREFUeNrEVktqwlAUPVr/TRXqB0QMHXbSqXsQdCRuQbsBR3bmJBtw7A4cuwyLBQNCKdgOVBCpIv7aUx8PiVZtNCo9cHm5yb3v3E/eTWwEPrEOlwtot4FIBGfBbAbE40C3u3HbsZQb/APslj3LZUDTrDMvS80NcbnIToc7MZkY18JO2K8wHu/2mU7JSIS/eRxHRTmfA6USMBjI3gnkckAoBBQKgNd7oYwFEomt6Hl3t99+T8Z20zdyhWZTrvn8tt3jo1wbjd2+R2fc65HpNFksksEgqWlkv0/a7Zs+7TZZqZCKQj49kckk+fr6Z8bmpY5GN5+nUqTTaeg2mwxuPRi327TUfxMLp3x+u6dmks1KX8vErRbp8x1PLKReP4H4+5us1cjb28MJPR6yWiW/vk7sscD7O3l/b06qqqSuH3ScDj/Hi4XceB+pqMpodIHJdXUFPDwAfj+gqsYWTifw9gaEw8D19QUm12xGDgaG/vJCPj8b+nAobc4yudYhMgsEDF3XpaygKNLmQDgsf9Y+PszH4kWIYzFgsTiJeGjJM5M56Q/kR4ABAHxxYPgLzAdZAAAAAElFTkSuQmCC'\n },\n {\n country: 'Cape Verde',\n code: '238',\n iso: 'CV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFREI0MDA4NjE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFREI0MDA4NzE3NzMxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVEQjQwMDg0MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVEQjQwMDg1MTc3MzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zvajFAAAAj5JREFUeNrsVU1rE1EUPfPmO9OYNEPSplAqmlaoFDcuBBdC9yqCGzddVRA3/gL/g6IbJXahiAtBxY0gLiIIUkEQDNlIija0JUnzMZlMJ3nzZsZpJG1SUhOF4sbHWb1759zDuffd4XDuHo7mEBzZ+U/9b6mJjx0VLRkcjscMXbPhEVgqqLgb+ntqn4MjpGY2db2Opvrk+ourZ3OoRE+d2IjHjCA0OjWP8CLarAsHO0BVvrP8OK7WVzPz7wrHPmanmOWnb66YDZL7NAdi9uT/Dlx48UGPZAYpyVx+Lpa1qLJejTBbFiQmK+3ZeLls6SX7pIQtuBa44fI56vfZ57vPic8qwjURGAdYkNG5LwMhNDT2yBeWAH0UQwQxk9krAzGBrZcAnUiegROw+WI3liRh0DyKz5BIQJmHawxXnTnY1png0sP3QckiQcpH3gcdRTXnv3q9r5qPoXZ/14boLXh1wOupGQItwEgjsgRpFl5zuCHO5Yv9XucJWIM/H7RpDHC7ExrUkVBT3ALIFXDxkVQfmBBfnPQ8kgx9czy5bKmOLfOCK0nOZNi0mGY408QtwWuDG/6MeapcoM12Fw6tNZ1Nend5Jcpvf3hzejy+1jKpXeTSNx4aNfbl/QR1q7RJez45FDxSl6AI+1AJNPyoJVfXU6Y39vb2U14VPucW1mw9W5xuChI0ri//cHAD/jLEgxEG70KzF6a2S2aoWInAViBThFpwR91ogx5VsIzC1q998nWj0zGRQeyMhPsHm/KnAAMAsIUm2hIeMowAAAAASUVORK5CYII='\n },\n {\n country: 'Cayman Islands',\n code: '1-345',\n iso: 'KY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjE0RDFFRjQxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RURCNDAwOEExNzczMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNjIxRThDMEVFRkYzODE3N0JCQzk4OEY3MEExNjA3MkQiIHN0UmVmOmRvY3VtZW50SUQ9IjYyMUU4QzBFRUZGMzgxNzdCQkM5ODhGNzBBMTYwNzJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wV3Y3AAAAoRJREFUeNpiZGCYyUAbwMRAM8BCnLL/DAysYARk/GFg+AdGlBoNNIKLgUGAiem1nPQjVmbGh8/5/vzh//cX6N3P+D2Nz2hGhn//GQSYWX6XZy0QEn539oLUh/c8dtbffvxk2XPQ5OVrKQaGV3hMZ2Zg8MXtXkEuzs9r5/Z/+vytfZL5k5ca774J7z8kxsfzaUrPivOXZV+9lmdg+AJyA4lGA0OWbcXMyWfPi9Z1RyWlifX3K0WGCenoMi1cynvlKmd1ye6tOzV//+YGhz4JKQQYXfzB3od/ff/TPDHoxGmNqRMDWb6+un7xVXKSz5evzrcfuR0+IFycs42BgRuXq5lwhjPDt79/fta2mYWGS5mbOPz8xnVkw+q/f7+zcogwM+jW14tNmmd8/gowQD6SajQwNP4oyN1VUD6hrMkG5P/69fPvv3///v77/RskLSMnoqV1Q1b8DAPDT7Bi0rIMC9DZHg6Xfny8CLKKi0tUReXf3z9/wGafPfdFW/2ige4TcNL8T5LRQP3sx88Yy8iyPbm3fvu28xxsfy0cvDQ0NXi4WF48e3Lp+GIx0dcHTumBjf5Nagph+vqFj4fv1fPPDzom3n7z4o24hBIvD/+Gdcc9oyd+/7/D1JB388awT595wWGCPbpm4k4kAooyz7/zbnnx8hbDDwEOIRWm/+zfXp1nEH7OzmEl+NnvxVsBBoZPuKKREW/JBzKdgekXq/DJf4KH/r6RYPjLyCR7kemV49/Xbv//A819DVZDptFABZyMDIyMrO8YGDj+/2NhYP78/5cEOHy/kF+GwJzz7T8D8//fQmDj/jH8FQEXTH8JFsjEFKqM4PLkG4z7FcnWAaoKaGg0QIABAIW9+Bm2LAQNAAAAAElFTkSuQmCC'\n },\n {\n country: 'Central African Republic',\n code: '236',\n iso: 'CF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMTREMUVGNzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMTREMUVGODE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNEQxRUY1MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxNEQxRUY2MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bmc50gAAAqRJREFUeNrEVktrE1EU/u4jM5OMedJYadBNi2t1Jeqif0FX/QdCURAFQRHE7lz52LiRbtzowr0gqFhXFbQbF4KFQGjEaNsxaZtk5s69nk7SpCjaW1BzhmHOPffx3XPOd07CcGxuBcxMwLAWWj6KfhuMGaxt+EB2AzQHmkMiTh7nG29xv7GIj04uMR0Nm7hWPoE74ycB0i0kS29dJkrMwYXO8lwLF8++huQac0+nAQ6oiJbQ+C9LViYf8khvZDBzZhG3Zl8AKaBay2P+5WnAjfAvRKLZ7oVzjePNUgXvFnw4UmHh/RHgC3k61hqGWtA9u3QRwYYnbOtdBaxvAnHbHtgbyyZx7PiOzh3mOHf3CrTmKE0EZEzB83KDxR03D1l3mQ40g+jZjNKQGcfgUN64XQa2NyYlEJo11jYJAXkpjA62JEIlk81SxCj5EaJ4eJQsZhDMPWDBzetMFqYSmwqWkb96wxRvXzYqII+NsQH+LsvFDN8xFHO757ddcn7ZFaVT+AYD2R8raGQ8yYqUMBTStpHmHCOSkQHLtmrvFOmexerKNCKtGFFokHhGd1damZiyG8Yd2xxrOf1oemflnjtq1N9ml4y4gCnU+rZJeh5+eIx7z56Yymdrh42sBlWxi01/lIYbYr1TJsqVaRT2uih1m2Z3la2sfhVhkLIpp15HKKVL1tds+sTglEdMVgNbTI8nPWT8MkppbgsMGShhDdyJGNrUXMRPRdch21YkEKh9AFfcyJpccTpGTkgW7SIX6dTxYzPuRabicuvOJV8d/2RNLmdSm8bzilhGgXLb68vLpM0crOPSqZoJq9zilD65DrjamlzwCFwaCs3Qr+0wOcIwx4NwXG0LTD83ah9VH/0mIbo/p2ALPMLORW+r/3ek9Z8wE6wfAgwA1dTxt+cD8jYAAAAASUVORK5CYII='\n },\n {\n country: 'Chad',\n code: '235',\n iso: 'TD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMTREMUVGQjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMTREMUVGQzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNEQxRUY5MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxNEQxRUZBMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OGKo1gAAADBJREFUeNpiZJAoZMAN/m/rxyN72ckEjywTA83AqNGjRo8aPWr0qNGjRtPOaIAAAwAKxQQ+Km3kBAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Chile',\n code: '56',\n iso: 'CL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NDUwRENDODE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDUwRENDOTE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNEQxRUZEMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxNEQxRUZFMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KpHXrgAAAXlJREFUeNrsVrtKA0EUPbOv7CZZNSIqQkCxsrHLR9hY2QuC+A12Pr7DT7ATrAQLbUJKC1tZI2rQVZNsspvMjHd3QxLwgcUONjkwu3fuFGfOfQyXoXJaB7BEq4nv8B4hv+DAO9vA7JSFDODSejAGRurQGdDup7sCHXEJRXCNoRlzdDimHR1Ej7eAA5aGZKMAWvIVEhYR4r6Fnc1l7G2tAvVW6hNqVKeKI4GIcewfVXCwuwbT0OCULByf3AJdrlCxTcqeAlxUn2GZGhiF97LWAPfagGMoVByDCPOU0+3DGoSg9MaFpjDHI+I5G9UbH1fnHhFL5MpFYN4B/FARMSukFikLQpK6aCOOdadHRWWSk5m07GFWMiO2pT9qJ33sJLbpHl1EyAkHMgzIUYQIs4kAu14vf4w9Il8g6UIaiZ1xreQvs+muprEiH38ve4o2p456ueuhL9J9JqF+Ze6fmk4rUZFn3sf/gAnxhFgZjMHI4/44+iiYPmKuTwEGAHthZNcUQvnKAAAAAElFTkSuQmCC'\n },\n {\n country: 'China',\n code: '86',\n iso: 'CN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NDUwRENDQzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDUwRENDRDE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU0NTBEQ0NBMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU0NTBEQ0NCMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+63sBgQAAAXhJREFUeNrslL1OwzAQx322k+ZDpaFSVSQqOsCChGBl5wkY4AGYeQF2NkYQAxI7ElM3nqE7TAgJtkKaUtQPkto+zgUxwZCgMvUmW5Z+/t0/OcPDesRmU/x7BZKZIZgB0IIh0wmv7KbR3rtOgJnCaGCYQfYkvA3lbarsUdCW6OAhhKhioRIODuZFkyFDxZxlbfqwsJ9yn43b0mlo1eXxWWB6UD8aIsfkIhCRIYl8aApBRLhy1Xe3NLXRvNbxqZ/eC8siqkAQrEAmFi0qOLhxxZKp7wxp+9oqvbVK7pq9xqmb55OQZL1VhcqmlA9ty0OiDC5c1ExWDQRoezdsEvPa4Qgcllz6RQIhF6dhRm3ZPfdxAsF25jZt/5MO1zHnAfWFDAsF8umS3kpBvsDSO8nLqHu8ejAWIXaOQ16xPdHXzo+eihPu638sW0dKhpfsOXFllJtrhX+bRhoc9QJoQNaMTaNgID8VaYrFKdL8edBn+IbM0XP0P6M/BBgAWIia6c9dDfMAAAAASUVORK5CYII='\n },\n {\n country: 'Christmas Island',\n code: '61',\n iso: 'CX',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ1MERDRDExNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ1MERDRDAxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRjgxOUM0M0NBNkU4M0Q2MkFEMjJGRURBREU5RUVFRTgiIHN0UmVmOmRvY3VtZW50SUQ9IkY4MTlDNDNDQTZFODNENjJBRDIyRkVEQURFOUVFRUU4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+BJjG7QAABAlJREFUeNq0VV1oW2UY/n5PTk7+mzRp2tmkpm61c1bxp4K0tZWxDRV/cCIqijdejF3JQEEvhzoRRBBBb9YLYV7ILhRxiEJvxqy1VYarFNqxxiZp0qRNcpKcnHO+H7+sk+DdCt3LufjOOe/3PO/3nOd9D3zosxnAMYAS7HcgcMcC2T+P82pQBi0YagAkgIT7BY0jxstsJS3LYUQ4jm8Db1u6GhQI7IWi3EKTg87rY62LK7q61QlQ+uLEwSmEuSxE+fWUlQ82WcM4UMeGLR0N3AYBgh2UnInnC+TLE9YTKfurP/WQBiEEuHfwKEASeh0OuK/R39c4Yq57OWYkUUHqBA4FEmMEHA7zJtqxoEZuFbUbbQY9VL4/0Qx5wceXtbMTjaVt/e8K9lNJbqVIWKzU3nwl88bzD558teEsH/CPFOjhNTqUI4QXCwGXwWdG3KABFrJwvUr6A4CJDr5irbZwri6/eLq+lMdlQaKE5bboQEpVnTp6swSpe2h1pz3/R7bqmEQT2SWK1jNaK1YVthZqff1s/dSUdexQ+74wuJyn6gQBTWFDBe0h8odVOrukjfejR4btR/tsQuHVMkGU4OJWvVQ2g35PsdJcuFp0XaHr8OwH46NjvuJv8ezsU6dj0ccONlwLn5/zfrpgfDTd9FLedBBXhpLAYiDoRTmT/FVEZgVd2dQ1jBgDZLNkvnNqqm3zz8//2hs1dB2XKpZPp2MjfVcW1x3dTOp0NG6d/sn/7e+hYo18OGlNjZp3z2v5bT3oBQ4TMT9I+Hivl1PCjl0ILxY8ES9LBwRxheiJGrbjMsaEkNzlxyeHrmdrL7x1IRYx+mK+jRxeKXvee6k0EfScmQufma6Alra8g9LJ7QHhh1z4fQAIsLQJr5V8Pg09EHeVUkxCeGT6k81SVZmlrzfEGOdcpAdClbpVqdo6xQiBQlk/NGjOzX6nJXIrDSNm+99+9/jFa0bqyUUtvYEhalQCbRcGdODB6pN1zQMPT5xTkin7KhT1VHE0LVejSCNYyE4aJeLGhn+ov3HyueW7ws43l+75ZX4gExRCtdjwP/TeVZoqKIMJ07jZB91ZBEcnzu2uCEZm09mptpKJgHKyEN0kiuVWzVMq+hREOGIl4y31UrpE1A2oOTizgUfXaCoPOwR+IOAuQcd8u/sbLWc4HTkxk7mxUW+3WadP/gshoa7xaE872mP5DCbVnFGXajTDhgjwfJyvpkQ5AnUXJSrQ4wBHNRXq7q+b7aHByGsvPqw0cV1+W7NDEWCOInWs22wl0/p+xvrxcTebRAELBppdQZTcXEilL4IIYyD3OsChlJzImgEow8Pr5P418r9Zo1B3B5IEYq80ym2Iw4jZWRZ7nUvJO/kr6LLuN/S/AgwAs/Hl9f4h+7IAAAAASUVORK5CYII='\n },\n {\n country: 'Cocos Islands',\n code: '61',\n iso: 'CC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzRDMzYwQ0MxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzRDMzYwQ0IxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMERGMEFEOEU0MzBGNTQzMTkxQTc2NEY1NDFDOTdFQjkiIHN0UmVmOmRvY3VtZW50SUQ9IjBERjBBRDhFNDMwRjU0MzE5MUE3NjRGNTQxQzk3RUI5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YY6ZXwAAAxVJREFUeNq0VU1IFVEUPuf+zLz3fE+T/jCy7AczrIgIqQgxEHKVSItwkdQqatEqWrttE1FQ0SbaRLQqMgr6g36wIrAoyFe+Sg01+ns+3xvnzcy9pzvzNFIji/Auhpm593zzne985wxCJ8LcLAZztiJow5sIvjMosPAhy8E1OzR7tAnUBA6BIsDfQpuNHO/YZA0ewoEOfrJFJgSDPMKsUimypdiwJJayBaiZ0CY+y440WBfaQaF98ZXdWiPf7bcRJHjmwB+5u1CXki/2JLcvtsCZvslhK1TO43faWFev3HGJ3XitLnygo5upoOlJn4J4xB0J8gzGGOgoT6MVYil6PMD7Q/Tsi++gCqmYAwInobfA6ip+qI5/U2p1JY1kWRXylrU4WtDX0wSJCCXLGpaLUy1W/SJ72GHZca3dKNrCotJ9w55DGjhflrJsmxc8XVKSgQ3pYfzswJZ17oGNxRMLsLvFW7nCvTKAICDChV1r7CcHhbTw9rsg5xMhq55nL0wICKJKJsOrHOePW8vObEuEyRFFrJtB56g3L9rr0VKs6q0Qzf7lbnnsUQBJBQGLW9arffRygBpP6/6iO+YHDHm6vSwp4VbaM8yAoZFCk84U8e6gP1AMQtEQhakTVsC1Xn/7ebF3Fdo11N3Fzz31wVLAERy9qprBfHX8ph8GlDNQJl994OF4JhdAfKKY6xdbnOOVHhfiGhIIGiNndpZMRibx8DFu3K0hRUbH0LMeS0mZO4wP3lPjWQ2VPsQgFGoMjIPCIpszLu6sKYsJutrnQIwAfpaxCSfcH8MwO04hF5MjRS8FelnVPyoO75TVlexTjgspCh5pi0InlJxpQeZrkP7mY8IwxF/M14RTumtmm9j0/AM9+qjbatnSctn7FUbyAbHJw+bOdKMVZUnTWnXW8VQaA6ORnYyU4ccmUTTEpVVbwTJjKh9Wj/5xPJWUqUAoJ5A4hZ0LtSnRszvZuNCOupGmdmPTXw/VmXJxKgT63pDu+eIVDO5UnuK/5ibHfKBvv3HCyovpWv8fdMlpSYTfzbG5/hXMzfohwAC83jil0Oj5WQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Colombia',\n code: '57',\n iso: 'CO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNEMzNjBDRjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNEMzNjBEMDE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM0QzM2MENEMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM0QzM2MENFMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jvkEygAAAC9JREFUeNpi/HNRjIE2gImBZmDU6FGjh6PRjAzac0cDZOhH4zlBtdEAGfJGAwQYAIs9A9bKIFNYAAAAAElFTkSuQmCC'\n },\n {\n country: 'Comoros',\n code: '269',\n iso: 'KM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNEMzNjBEMzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNEMzNjBENDE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM0QzM2MEQxMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM0QzM2MEQyMTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8TQxCAAAA4RJREFUeNq0lV9sFFUYxX8zs9PdbnfaZbstpVIsLkotFBGqxCiaDSSmEm3kpREQsCGYSJRGI7E+akx4UKImvmn6oImJJlBoomIwRMU2NaCgtWpjpEjb3aXun85udzu7szPeneqbL+1u7507M/dOJuee853vu9Lz72+Z7t+oa2v8BuRcUJBAXCvdXJ9GqpuHE26OhdI8c3sGfEXIig1YrOgG5Lt9hbRhw4kxP90jDXwXqYYaEzxiA/YKMjZtiYBqOeOqrrL/cpADLfP0CQWCdQI8k4f8QsXZu0q3EjFFVmhUUkzpcd4Y0/g8Ws8LoSSH2pqgqhZSESG/WTlgSVCRZZnJ+J/c5m/hld1H8Kgqb34zwLPfG1yYC9AXfpHt9z26+IeZpBIxUO7oaun/Y3bCvXNDmI97z7C5eSsfjg7Qe/9+PHKBc78PM/Trt8zm0nS2PoTHJTwglz8U74NK//r6kHvw6HncLje73n2AkeuXqPXUEdGn0VQX1YrNhfEznP/lNJpbY9OajvJdncwmOR5+2Zm89dVJrk5dE6y3CNnX4q3yki8aDsuO5nuIz//NsU+OsG/gSa5N/VBejAM19Q5QqV35a5RGLUjRKpLNZykUC04y26KbwlirtSYafI1cmrjIyMwoe7v7eGn9QZoLPoouaRnmkmRnYgkAWRJAtu0Al57/fXPcb1lOVtV0tKMbOpOvvs6NKwOkrWoMdYmM4/NxxiNjrFvVyr1rtzH001lEzFkXaGUqddNh6hZdEZUspUnEV8lsHTc4eBbCPzYxS0r0OPISpZbaXmvRBZD22XMXnYVtJzcKU0Xoat9DLB1lLpPEdruYXq0QTFrsG1pg75cGPtNmuk7GVIRRlpFdUvjtHfrErd+0PZu7ea/nAxJCgRODx3ls0xN88fMgX+vDeH217B42OXw6R3vCJCryPuMVIbKWby7p4VOduiRJ2nVRQDY03MlTnYdEbOGjy+8QUyKE9LvoOWeya3SBgtAzGpQXGZZZQ6Sdp7brwmBaqXol5pMkczFqanQC7hDmwtM03nhESJwnFrQoqOWx/N9aXRSOrdMM/LUerMzjWLHDqLk2on7h3iYTyZYqfUiU3JEWb7fAaKOYOoCd7hJa5IWpJqkSDKuylT+YXZJ6U7NFHtqJo1hzPYJ6QKzOOMAsOUmWAGxld8zYqV7NznYuslYn/wVcOdBS+0eAAQAC6FhYtEMFCwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Cook Islands',\n code: '682',\n iso: 'CK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkI3NjBDQzgxNzc1MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjkyRURDQUUxNzc0MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQUQyMUNBQzdCMUE3RTk1MkU2N0IwNzVGOTlCQTRCQjIiIHN0UmVmOmRvY3VtZW50SUQ9IkFEMjFDQUM3QjFBN0U5NTJFNjdCMDc1Rjk5QkE0QkIyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+isNl2wAABElJREFUeNq0lWtMHFUUx8+dGZZ5sN1dVpYFpNSwWBQFLJuWEpNaH0hoNDZIVoq08YGmMaaNHzRKiakRtcYq1Ni0poFa8VGigkmh0tY2tdSqRLq0lVJoKY/lsbuzL1h2dnd25nrXB2LiB9uEm8xk7p2c3znnnv89F6G8nbA0g4IlG9T0RqTuLfmo7qG0lZl40In91OEaiyq1fG9Lw5wOz9M8Ba+YRHULE3z9Dp2ex0E5bocQVgErGEMMz4awDPGpisn6P2jzvpntWw9VT/5yoSq54b1HU1ZliRIGhfIgjdbIbzW77Bvohs3WJs5629FEv8OPeJqYYVBBiYFrDmKKJdco6ChwB0CSMfkDf9HpTS/Vz69eK/Os1Td23xNrnq1dr3NOeg81p9RUPVeesyWXSX6qqtucd+zk8C0h16hfUqIYaAp+G7UUZTQ3Vgxcde7dUTrlmn3x+Xt5QXP5iB30AtIwgDHCq0uIfzGEJ0KgeP1pelaal5wqNiqKILABc4bs9KbIs7eu0Cp0kmlunTfGISS98UyxKKvZqcLuz/sETiO6gttqrA5vKDYb+bpn2OsOIZ5j+i157qmgn1UKK1YZfG5enBIRi7/pEspLM4ty0Fm7P8VgT10x7naCoImNMDAbweG5wjVZzR0Xmuq+hex0kKLAaeq2dWSX3d6+5/EvTl+FQBS0AoKSDwvLrK9V5VYa56Lf9TR5kvMthntspUONn409UF5p8Gl6fzh82vH2dX2/qoWf+3jAH7xZ1tJ+/qfOYVhuJOVcqCqEpBSztrai4MvjwyNDInWg5q7zVl/lidaPbW/lN/S/vH9UuThkMjHstOPJB3cVVLd9Mp5sK0qzF3vfD/7IRGJhhvIGJJ7jgaPRgnTJzpJvGSsU3Gkx0JRKhENXr72/a1/nC3b6gMfs8ceAVRgajzrCxxMzf5WQeG64o2uoXW9BmcsTJ0ePXptflmXSJyWcPHs9ihCi6UU6RqChwvOSLxiRItjtDiLQbofUVJAjwGGUwIAiY+Ig2QR+EQkUJCZgVYWpABBhZKSC5Ft5t3l//cM1r3ZOXBGRgV+MxqoCztnOr2rPXBp7Z8cRGnLKgVGQBiEKkbyAJMYxAFFgKURR8UyJkZYFPQtIIeXyXPNM+IO52cZLA05IYOJWC1H7IwXFmZMuX2tbv8xzcR769wGNs/5zkTwxDEHZ9kjBY+ss4PBCKIojMRIPVlRMdDIlbt6Y/7TNOu8IAM3QyLT+/7eFuAMDd6z7cve58daDm2bmgmODbsRS4A0xPPXpQVtPr2PXu6ckHU/iuDE0YRMbci4ULiEvPYnl2cb60oErM3t2btAIFNn4E73jI/ZpMAo3jv6TL2gUOXaqrX8srGKK6rs4mbSM6xsUW3afmQkpKF2HFPyH1m+2X2NSpnAMxADoEiEQBp0WtCwicvp7MDfdjhFpoRoa0pPjE0GIvxdxl/gqWDr07wIMALtx7x8ZU/QIAAAAAElFTkSuQmCC'\n },\n {\n country: 'Costa Rica',\n code: '506',\n iso: 'CR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQjc2MENDQjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQjc2MENDQzE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNzYwQ0M5MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCNzYwQ0NBMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Gc94EgAAADRJREFUeNpiZJAuZaANYGKgGRiaRjP++fxlNECQAMslOaPRABk1ejTLEB8go+U13YwGCDAAKSoIL49OOfsAAAAASUVORK5CYII='\n },\n {\n country: 'Croatia',\n code: '385',\n iso: 'HR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQkE2MUNDNjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQkE2MUNDNzE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNzYwQ0QxMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCNzYwQ0QyMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+JdsChwAAAshJREFUeNrEVc1rE0EU/83sbr5smtgmbalpTQ+2IehFrSCipE1BRD0qtAUVBG+tIK0H/wK9iQieBPEmiqkIiieLbRWjtaVSP2mRSDCxdTdpmmSz2Q93Nz14ywQPfTDL23lv3szvN2/eI5+C7RvYBuHN4WV1NggBryrQKQe+UrHnVKcTVNeg8g4Qw2DemLI4KTyPFklEz+8MFE8TiCCAd7fCKfjRRVW0NjvQbdp86znzAJQZcV0J5EXMHRkC5/eivLgGyRCwfDUG2UUgTywjJ1FcOC/Cly2gb3oBRa/7/xETVYW3xGHq0gmMP5zEIh9CIS1iPpjCVFRBauwHSodFXJ+YxIPJcyBVB7iqUh+xspat6ySb48DdBF6NjOH1yRj6b71Fz7cOeLKtiHwV0XmqD3ShgsjNeyho61BzZj7UA5QaHqnjQ+Asb6Lsa8NTeNAmZhEOtiMwMwNPtYiN3jiWzXvlQiqOShLKWhWqy10/0YwGRDLdC5E9tr4aDhtftpYXjw8ZK42FMoj1YXpKmoaNxwlUf2WwuTAP/2AcxOGA9PwZmvbug9DVBd/ZMyZBhPFtMopWKNTQJd8Zs+YyNZe3/+dMPZ9I2LpeLjMjboifj5Q3Vgfjtv79YL/xuaPT1lPDo8aShUHXmWPx7EVOh3cgBq57N4rJJFzRKLRQyNa5QADNx2Ko5TI71TLjsHhUjMWk8fKfG5q2aH/yyLBtNR+meGT44v0sG15e85TT7hv7qT94qBelF7PQZBne00OoLK/g8lwpn3P1lCipcizxTF5GGSu7RaGEyK4w7ry/je54FEinIa7mMT5wDW+WPpj2IOqXjq1otOUKe0vhBOh/SiZ8GR1tTgiU4GfG6lICaNBsclqF+Y75hpqoWZXoTgf0CkFGdtfe7A4C6hJMm8KeWA1vXMtGUIe1rLrFAm/PNSoU2yTW0QvbsfFfAQYAfYmMzgM7drcAAAAASUVORK5CYII='\n },\n {\n country: 'Cuba',\n code: '53',\n iso: 'CU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQkE2MUNDQTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQkE2MUNDQjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFCQTYxQ0M4MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFCQTYxQ0M5MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9/ZNdQAAAztJREFUeNq8ll9oHFUUxn+zM7OT3c3spMlus8kS3RL/RU1JokglJrRaFH3pg2+C+CAICq0PRqigVYrStFhEfBEVXwQRn0RQEESsT2KqjUhrpaR/NFmbpNlsdjO7m/l3PZsWRXxK2PXCMHDnzj33nO/7zne19/v3LxxL77MvWrsgrEK0DsRo99Dcrj61FOvgw877OG4/gGf0QLACymvrAbSZzHClO6rbhXCVH8w8b6cn+CQ1JjHjsPon+EF7Ap/J3FVRYEeS3UBYwYlqfGHdxpv2OBdGHyTyqgSLy6hItTSwsRldHp2Ied2mqHfyUGOOkbVzVO+tkp9+EWdoF76sCV2vtRnL2/5nRiOS7DpUgFG6gjVQIDf1HNahgy3N+D/s0bQYqlymUfdp9N3J8kKF088f4peh+yl9+lmLM9Y0G6WI6g18d5HuRw/gC67rP/2I6WSIWQkaSxdR1Ol55AD51w5zaeQeUrJBd7ghUGnbDBxFNrqOmeuldu5ndp+fYfXzr/jj6Ksk+4fwrhaJmZYQLSAoz+HoXXw9OMEJZx9XzF46RH6m8rckv+usDiM7qJXJPvkEuReepeOOQZGxx9o3p5h/6Q0av81hpJwb4Ogo1yXrXmNZS/BRapS3RIIQv6H9LWCsGTpGMk3xg5O4M2eunygeZ/HYu6zPzkjQrn/9pGLCAymvoxqkow2Z2KacmvhqcgYzuRMVBBSPniQ5Oow1eBPad80lsrOQTiDBX7qAQ5Jvb53geHovZ60BKfWqlLqZbWLrclK+j5HZiZF1KH//JVaiQHJsmNrZ8+jxBN7SvGi5xI49+7n59Zf5fXxy89RZIVds2+Rq6jimoaQ9hmtVjJ4dRG5NMmyCoVGvzZHK303+yBTZZ55qUwOREUlZLRViXruMmcnSe/BpkkcOyxeztS3zb9JIyZo8KXgl1hsuK489Tv8rUxh7douCxbRq/iYfWmoSoSCVEy/uFU8+FS8w3TnO7MjDssLDL15FJNdadzotttipNuxbghK/GhneEVd6T7wZXfpSWWzR89tji2td/aqu6dIIxpi2J1mJ90lNy1LSensvAh/nJhdOpPfas4nbhVXC5LDyv1x9/hJgAIwQQwS2sEaJAAAAAElFTkSuQmCC'\n },\n {\n country: 'Cyprus',\n code: '357',\n iso: 'CY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQkE2MUNDRTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQkE2MUNDRjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFCQTYxQ0NDMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFCQTYxQ0NEMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+efiilAAAAf5JREFUeNrslU1rE1EUhp+ZZNJJMGm0Wj9IpVWsSsGvpQa6qRR/gBsRN+IPcONG0JXgtgsFFQS17lwU/AALoqApQQwUxVJbBTW2jK10Mp0kk5kkc71pcCFS00JiNp7N5R7uPe9733PuOYoQYpk2mCKBRTuAVdpkLQP27XmEa/87YOEsUXx6nvLsI7nxmwi8WjBRwUldxx49gRII0XHoLIreuWqY4PrLUaX08grVnEMw0Sepa1TnMpQyD1AjcTacvEFwZ7K5VV3JvkHdmMAa6cN7V0LtrkWQj83LRYct1zzp0Jr0naoe1cX3uJk7FJ6MENgekgy8epL8erJEQboMiAwNET31GKTUjayx1GoQ5/ll8mMP0fprIB5Kx6+8QnlGAg5LwNPn8IvGXwtq3VJXshOYV48hypJHpK6mKMrLkra2Z5DomXuosZ7WdC7xZRxl4jZFO4uX/0Y4eQl18160XcnWtkz5WGpNvWtFgpxMUvyPMwu2RUyPoGta8zqXYf7gwuhNbqVTzPu/gxqWyd30Cy6O3cdYNtcUb83/eFsszpFED+mZSUxrgQOJXoYHDjM+Ncnrz7N8t3Irvh2dm5o/nWpHn02/JfVpmt6urQz2D/Dq4xQfjDmO7t7H8f0HCQYCrRuLX5cWCWshonqYgutiu44k0v1/HjcsLrsdwD8FGACqhNA6kzA7CgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Czech Republic',\n code: '420',\n iso: 'CZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNzhFNzJCMTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNzhFNzJCMjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFCQTYxQ0QwMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU3OEU3MkIwMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jrdRWwAAAjdJREFUeNq8lk1o02AYx/95k2aStKDr1s1VaPUgKKs7iuBFbSfDqzsJwtSriFdBp3VszsNwoHgR3MmL280Vdd51qOjBdrCt9aCttVK3Np1NszbxSVhxDFf2kfQJCSFf//f3/p4Xwl0YfJZ+cqO/a48oKGhOeWjPAIErRV/4pvH6/YLRxCqy1qMHkPu5jN7zoxgYmURFqzYFmxlVHV6/F/LBDkw8isHfdwczHxadDzYPek1Hi8ij9VgQ+V8F9Pbfx6WRKagO0rP6iWHQXq2hzaQP+vD04QsEzkXxxiF6tvFCrU7fE7TcR0z3w5PQVmvOBv+jX3N/iNw/jqGr7zao850Nrpfl3kX03QHkcwWcJfeX702hsrp799y+yK3i2qJuPEKeQVU1rMynwfUcwcToAC6GfEBFtWZom6UIW36UGo+JInDiOIxUEomTp1Ho0JDnRNS2Hwxha4tdx5LogS7KiKQ/Yjwzg8Plb5hbMF/naLM5mNEcaoyHIrVDqhRwN/Ec17+/xQovYm6vHzwNiNuhY6EhZQtRumScyX7Gg+RLdJey+Cp58YcJEOj+bkr4PyWDInfCoy4hOj+Nq5lZlJkLcXenNSB+B93UMNj86G9yaYgSwtlPGEu+Qqj0gyjbiNJlTa1dJWyklNRlDMXJZfodSuTyi3u/FWhnqBW8vmPD5HKMXIbIZYpclm1wuWlwXm6Hu1JENDGNa+lZa0rtdLlp8KlcXBlfjHnIpZIilyYl7xDlul8f5a8AAwAi6Fw0Cqzr+gAAAABJRU5ErkJggg=='\n },\n {\n country: 'Democratic Republic of the Congo',\n code: '243',\n iso: 'CD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGOTJFRENBQTE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGOTJFRENBQjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY5MkVEQ0E4MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY5MkVEQ0E5MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ljpEIwAABUxJREFUeNqslWtsk2UYhq/va7v19K3dBmOUwYBxxoBDFw4CQZQs/NCFhBAMKIQgYNgYEASNogElQnQ4YEDEAyD8UCQahYgZBgVEnMiQgbDJOIxtDBiuo13Xc+vTdiZDxRDwTd6kP94+93O4r+fTs+tiI+CQ60aJQDAVVD/oPBDVcf8nCopcXyYErHR/qJItw9dScKJcu/yW9ZpeXmgdDzWCaUy2H6Y20I0Lvt6SgO8+BaWAQFfw2rENOM8buVsoqt0Oiz1U7uiNN2rQVJQghK3QliMP01jVZzUTrFXQIk3wOxKBiNybphKGkNTR2p+krm5en/oKN7qNp2hNGZceN3Fk+wCiRhVzSgg9wXTGpR5hSu/vuR6yk2c9w62uX2E1tGBSvay9PotI2JRo/38Jhi2SvCSa4aQwfx1vejdj21xPw0Y7l1oHYEoOkWIL4r2twxgIoLDjpis9uUHbm7OCCRkHCftS0Rmc8UCza9ex8+Y0EfVK8NBdBCUpTxbY25k+5mPWUkb257/RvMFCdZ0DoyGCwRyJCyrSuWGPXsW8BLfC7hoXgW4aXhtHR41nbNZRmQ/kV5RT3jRJAtbGFDruX4LS+ohBBLPBHCJ/1B5KrBsZeqAC93oDZ85lo6pRjFoEv1slHFEYOrAeW7Gf6oI8lrctduuJir/k5mZ+zSPmahacKmF+xh5mOT6k3DlRVHQdc6Zj1qq0tC/oVfIe28+mzHcZ+d0hfG+rVPzSV17IDO1hgh6Vttt6BjiayChuo2n6QIooZNeR2eC0Shm7LroIpWpPpB9AlQQO1k8jRWvi6YxP+aJlEp5wilQYSOh6paWRZAaOOMymnBImHd9HdD1UHsrGTxJmW4iQT6Hdr6ePvZmei5y4ZvZgpbmQjRVz4XoXsDRJ0m3uhLAS0tRQCtGwRjS5QZyZKuMzQ3Kj1KpLsBi04hh6knVDyph5djeUhajam4ULExYtJAYUwXY9DpOTnDnNBOamU9JjDqt+Xoi/LjaSWxDzTmI3dAjHWVY6tbQD/kCXOIvW/jWsyd3MossfwVYP1TszaY6kYLEE43/ztBlIl/0zZKZUU2hmW/9nWXGqmNaawWBslQKaJaTa2SedhTs5NWiXaF3RZzeycmQZL938gKT3b3FpWxcahHWLKYSqj+IRi2j4GF5QD8Uqe4Y9w9LqYhqr8iBJNp9REon+zZj/EI6jEVsk3aHbHxSP2cZrnvdI21lH4xZhsSUjzqLOGBU09CQTZMTEKyiL4ZvRBSytW8T5ypgZxQ+m+o7uqXcjX1KOCUaM8lOcavMybfI2SvSlZO05z60SCz/UyxbSR9DsQXytOkL+CLkPX8S0LEJl/jgW3VjCsS+niC9EyHI50bE72/rvO4etUfFHWMsf/Qmltg0M2ncCV0kSZ6t7oRMWk1OERZdKKMZi/3rsy/xceCqX4ralHDg+HcRQWOqkuGCH4D0dtzK6ar/rncxSbczBbwmUKvx6ojdhcbLJFibQruAP6hjY4xoZsuAbpg7iZbWQ3T8+J7tcbGEVAnTe+/mKuZXIPpMrstGrnT6YjTfGoizwcEDQ8AmLacLiQifOGb1YnTKf0p+ehyb56liuC4vuB/lsupUqY5bL7TNppjiLYuZ2A44kJ/3mNROen8razHmsqlhI8EpPEbyDxQc5buWktU/c1TEWuwiLg2cJAgtMbO03m1dPL6SlZqi4VFhMar4n09yrsN7fphPTRxlb8DtKkbCYO4MXq4u4+tlIqa5dnF6bYPHBq7zT1TV5PRtzlt92HHtytPuFi8s5d3JiYjfHWeT/qrDziS2ra38KMABPHyYU69kw6AAAAABJRU5ErkJggg=='\n },\n {\n country: 'Denmark',\n code: '45',\n iso: 'DK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNzhFNzJCNTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNzhFNzJCNjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU3OEU3MkIzMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU3OEU3MkI0MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YilnMAAAAFRJREFUeNpivMBj/J+BSKD/+cxnEH2R14SXgULAQqJ6ii2EASaGAQKjFo9aPPwsZvwPBCPKxyzA4o9oxcAikwFaZI4mrlGLRy0euhZ/hmKKAUCAAQC4DxA6JMoNqgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Djibouti',\n code: '253',\n iso: 'DJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNzhFNzJCOTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNzhFNzJCQTE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU3OEU3MkI3MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU3OEU3MkI4MTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+LIWFKAAAAkdJREFUeNq0ls9PE0EYhp/dbtllbUtLREmtCSYmvfAncdeoJy8aDImejB6MHDxhTJADGBIDJCaSeICEeBAL2ipGEBCbVqgabBf6g3Z3mMXUgyi04L7JHibZmed7v3lnMsrSj0rmUSIfncuWrA5TI9KqYgu8VFB+WUUIUXAHU6tFhpN50vka0aCG6Ve8LMD6DXZHlZrg6YLF2AeLUtUhFvLjU8ERHoPrym3VGHyTZ1p2wfSrnA74EBIuvAbXlVyvMCQLSG2UORXQCBs+7P9j/2BwXZNL2zxJFdiQnTgT0tA15bjtbwzsqlgVjCQLPFu09qBuABWFvS3wFFxXplBlcD7PzFqJNkPlpHmk/f8D7K7g2piehs5OiMf/OXM2U+KxLGB1s0ZXKIzh0+Txc47heHwcenqguxtGRyEWO3CFhTT0z2VF2SkKQ9MagcoDSn7/n7oOW1uws3Mo1FVCGWC0+kDYjiJMoTfqWOx3vLIik1SElpZfYNP868znX6e48voGy7mX6KEOWjRDhs7xLlyft9NclMDJT0PgDxAJnkOV2RDNxatxcNmucD11h/7UPahaBNvi6KrWjMvmwQPLI1ybv8nmz48YoS4C/pAE2t5dIDPfZrmU6CWVfoFqdhAxozIWdrNtbRycLeW4PNfH2OJDGX6dcPA88pY8alsPB9ekm1vv73P77V3sco5AOE6rBNvHa+vB4OEvE1xN9LH+PSmPx1mCejuOU/PuITC/+S5zYbY3+mptwlKMdiInYiiypQLPnh97T59dAQYAfWNBGb6d818AAAAASUVORK5CYII='\n },\n {\n country: 'Dominica',\n code: '1-767',\n iso: 'DM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUE5QkY3MDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUE5QkY3MTE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQTlCRjZFMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQTlCRjZGMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yQnKJAAAAtZJREFUeNrElUtIVGEUx3/3znXGmbIZUxAdH4mJaWkUYdCDoCijFj2IgjYt2gQVREURWVCWPSAoqE27iIqKatE7aBEmUYFEadlz0pSkdLRGZ5xx5n6daVp774DkgbO49xzO//v/v/Odo3FuyW/sWngiB6vaODTnEwUV0GdWEf3Vxtn3t9l+bQfklNouZYhnMQ6mM06WPrASz4CQBjEt9UtT6QMbtjPNJKhOqHgEsqEwmrzjFGKoPE/iI6kcfSyBkwVd4vkxqi9LSzwrpXGCVxhLYHk9lQscUJEPQ5ITsQeucXK1siXvlBH2XQtS+0hREvIw6B/CzBrE1d5Lt5HJ57pS9m7yQIczlW/F+GjNa2vQEvBe9bD1RhaXppj05/WQHS3H1+4lkP+KaKaTPXdjTKzqY2Cz0A78pTQ6Y/Xd4nzJy8gVX1nE8dYy9nRG0B1h1q+voK9rOo+bmiQYpKHEywF/JzwOpOSOWjBODoJRCcv1uaXIxXg2NX5F0IgxKZ7L1DfVXF/TzOvWCNMGDOrCCd4/m8za7ABBUVyLWwD3mdNGz0iAU9fxxHTyeoeJa7qoOMDSd5kcW5XHhdpvnHqYhanHGZHkfn0GwWjcUmqUXdtwWNX7fWqYeUpRpe7MnK24OF/tXDxLvueqI8U5Kla3y3Y54/znB9Yt6NZx1Zo0XPVyT+Tuz3CyzB3gVrODl/3F3CvS2d85gSubDH73PEIbMm08p4Yy6+Z3im6FOZy+4KboaYTcsIdEgcmwyOvv+sJHRwY9iyrZtln2TfdPaSxlA/jcYmVrgLgF3Ovi0pMuNjaFufnTJ08iwZrChdxf5GTFrGYBlK4alHIOW7Naw9J1LfVEOlw83/ILXn6iMdjC7l75+eIMLSfWwZfu1ORy2KgnbqS1TpSJ76tsiCJ46zaJmKnZ6PvwQ2JGWivHSHutJA88LGCiaOLfJSntf6zFMbIk49B4AP8RYABEcEyuCxX37QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Dominican Republic',\n code: '1-809, 1-829, 1-849',\n iso: 'DO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUE5QkY3NDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUE5QkY3NTE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQTlCRjcyMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQTlCRjczMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bJEP0QAAAXtJREFUeNrslM8rw2Ecx1/f72ZjG7MNw3yxidlhuRE5qFH8D1yknJUiBwc5OTiSUi6O7i4yNxxGEYWy/GhfTZvJj8nM15oc5PJMmcve9dSnp3fP63me9/N5JPzDGvCAiMIq/YN9rC+OfZu+HJ4iurKEsdyDoEr1XwV5lsw/qQDOm/TcxMXdj7e83302QPIlSfJdw24ykX6655U4csIsDm7p8AmbL2+cNPqa2NkOcXB1jYU0VR43fo8Xu7MTWakRXkvSMsrlimKJOIGxGVprXUw83zF3dMjI8jyB+ua/zfj0LUa1IjEQTxKVKth1QSiy/4uMc9SbycqFekzViZk1o5WwdojX2fD34LZUCaNKO6pRxa+TGaeX7uLGnMHSWc+QcMapSBRLoAtlYZonLQ2ZYZYNTM6usry5h9tpEz/x/daGsPkFFb3bka3Nki6zbV22Pg9HiAWDxGyKONhQ7hI2a4kURRbHzxdqLwNTNdRVFr7MAvhHHz/kmVv6IcAA7rhthUQGtAoAAAAASUVORK5CYII='\n },\n {\n country: 'East Timor',\n code: '670',\n iso: 'TL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQkUyNkYxQzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQkUyNkYxRDE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVBQjJDNzU3MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVBQjJDNzU4MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yD9vMAAAA2FJREFUeNq0ll9oHFUUxn/zdxN3N4mUdZNsInWNoVJwK0WFUhCLICKoNaQvkupTqXlJyUNqwbeANKBUQa2CGkNhV1daQnxIkYpYiQ/ii4hRUomVdmPTYNoku5n9N3M9k81Gq9Gk+XPhMpdz7/Cd73zfPTPa87vCmQ/2RMOBHzV+Gs9j3a2jWYDHtg5NptqzL0DyYBP3z9Ty6zuLOHkPu3V7E/CB52WGjZhG6tVmOu9tIHu6wNV0AaVpWBLfjgR0Tass3Izi0AsZXjo7Rehtm11f1FH3mE75d0XxskK5/uktZCzA80oR/nsw0R7g03Ot3Lc7SPGMw/RQkdw3HkpY21IBzM1XYFXgqgYfnmzixeN3wUKZ3Md5bpxzWfiygmg1b06CFWB/oWTxz3H0uQZOv9YM9wjNyTzZC54kUCZ7URCl/Bv1gCF4J+QZ0HWdnp4eHEdKOz1NIpFgR6SR0a9+Y/izOfbtrCH6YBC7TVH/uM4du3U8B/I/eLg3RP6QJOBLoNZprurC8zxM02RsbIyBgQFGRkYkWFra+36ySOLZSc68MSNv2FA2CAp4y7s2rW/ZhB41KE8pSmJQzVjWab3A8Xic9vZ2gsEgfX19jI6OMj4+fsvhwyemOPDEL1KRMtwUhOuK4JMGre/bxIcDNDwjCcwt34C1gH1ZI5EIvb29dHR0rGx0dXXR3d2NYRi3vPDHrIurllP2dZUcqBHN7tTQA+vX2r/G86ZlLbm6VCrhui7pdJrBwUFisRjJZIpCIb90+NTLUY4di8Cc7yqZtobztZjtbJmFz108ScJu0So6r6G1WQWsjv7+fgFLMjExsRLbGTFF3xb2H6yHXFEYeuS/Vcx+UmL+vItyKu42a26TsSQX/q8DnQfCDJ2KUfuAmCpTwLm4zPCClDxXaSha4Pavk/l/FXn9eJTek1G5r8IwtcjssDSQ8z6gEkAdS7b8braRJmKuFmxrskimW3hofz3e8CLXhkrSsQQwW9HQatSWANUm2ua/gA911ZF6M4aeMbjWMcdNX8NipUVWGaot+FL9BSy+eW+gkSN7d1B4pcjlj3K4hQrDqoZqCz+NPnA4vtci1dnEwzMhrjyVZeG6/AjIn4hVs3EN13T1022hzNAj0XDDJYOfv3MwxDRG7dayW238KcAADyNSlrek0dQAAAAASUVORK5CYII='\n },\n {\n country: 'Ecuador',\n code: '593',\n iso: 'EC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUE5QkY3ODE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QkM4MTQwQzE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQTlCRjc2MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQTlCRjc3MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oj8tnwAAAr1JREFUeNrUlU9IFGEYxn/fzOy66667urrrCusfyOgSWoc0KihLOllEXQsiiIgOdTG6dK1OdalTBxEpI+pi9IfoYBjZIaICpTAzJF1bXbdVd51d50+fa+dmRWHpY2aYj2+G533e93neVxifIguUYGnyrigFsEKJlraur21Q3fLhMkFX5VYgPPLdUDBzArndZMb2X9CIBR6JsxwAv4WotLB0nzyQV9Rew7U3EViReVEDWZ49Ndh/KkbkYB1PXtbS06ehtijsOB6iv99AqciiuFaRnakLqep/xiiEXSChqyEGXsUQ+TGGRxKk9ZPUhBYQ+kN2NjeQczVy4nASnzqLsOQ/trJRxjK9wmQq2UFTSKN5e5zWPStYK3GOtOe5cdWLHpqkOawxs9iJbSmSr+XM2B4LOFfFb6D/CPFx3OLaA6+MpYuGA9W4ZHF/vR/n7WQvPecjdLTKFNekYVl1VvXygs+5xrrANH4TqA3hmt5G+74Y0WPnuPl8Hl/mBZ3lcaL1X9GzM4hUECtfhJ2arlwsQtVu1KUMvZcesaXKJpEYwj8ZJpZapFx8ptHv5fucn0O3L2O6gjLSnDNwYipShK7dMG3ijSdpbGtl4p6XvsoBaqvc1A8ZZI66iWTSxEfrISz9JooAJpApAliHXBXj71a40D3M45k25r99IRCupHrrCme6Jhh5Iz1XUQbB1dZvOIuLvXedxSWbU1m1j2B6lLP+16R2ecgOZqVtBN4uP3UfdO783M1idQuZZGbNxg5WFp62W47AwrSkZ20WTB/p8Uqo0+mevo9mG1yPnZZl8OJrmiNaniE+q2Apzi4VgzUtdlEdUzYFS9pH1WyMvErQWCqcpTU/mtvANiWYbcqGIwpNx4my1phPrW+sGGuhLLs8hYDCZkJKQBSiK8AVOSi0lOrd0HjLqeX/3zxeLAXwHwEGAOXk99HjIQVFAAAAAElFTkSuQmCC'\n },\n {\n country: 'Egypt',\n code: '20',\n iso: 'EG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QkM4MTQwRjE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QkM4MTQxMDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCQzgxNDBEMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCQzgxNDBFMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4WJtkQAAAL5JREFUeNpiPCeo9p9hAAATwwCBUYtHLaYZYPz///9HIM0HxCRmqw9AzALEPCTbCcSfWKAMBiQaP/j1iIHhxwkGBg5NiFt/3GRgYDcEYhWSLGchOYz+/WD4eyucgVEsg4GBmZvh//NeBiati0S6GgFItvj/v+9AXXwMjBwaQHczMfxn5gUK/iTZ/SRbzPjvEwOzZBGQ8Qsc1MzSpcBQ+EivxPUDiK9BtegAMTvJiYuR9NQ8WoCMWjxqMXYAEGAAUBIvbfhWcKoAAAAASUVORK5CYII='\n },\n {\n country: 'El Salvador',\n code: '503',\n iso: 'SV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QkM4MTQxMzE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QkM4MTQxNDE3NzYxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCQzgxNDExMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCQzgxNDEyMTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/anEfAAAALNJREFUeNpiZFCYz0AbwMRAMzBqNP2MZvz//z+NjGYhWuU3Bob3YPV8DAycVHT1j2ePTlx/LG8ox3Tt6TdFydfS8voMDPxUCOt/f59VzLxy+ehCIbbpR46eqph2+O+fO9QJkP8MrB+/Xnom8H7FZd4bP39/+gkMHGHqpBBmZvHsENlzL0RW7bJ5/uZVdog8M4sMFVPInwfPNp299N1Ij1dRypOBgXUgEx/jaMk3ajReABBgAAmeREpJl5cdAAAAAElFTkSuQmCC'\n },\n {\n country: 'Equatorial Guinea',\n code: '240',\n iso: 'GQ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRkMzOEFFNDE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRkMzOEFFNTE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCQzgxNDE1MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCQzgxNDE2MTc3NjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Tw5JAwAAAphJREFUeNq8lktPE1EUx/935jKlb0BCCYagEGJCdKE7ExMXfgE/gHFlaFwoK9mwUcQmbFyYmlA3xrgw0W9AQkI0xhijRNGqUay1D7AIQkceHTpzPXdaISMPKdje5Exm7pw7v/M/95yZYR2RcOZoe6xtuQC9aAKModrDT5blycwteYJj7TH/UgGoFVyB9hXJdBSTqTC8LoCrgBBVB0OBmgdcXwh+G5Pp2sEVCKLY8CkkU1J5b03g3D6uw0vKFQXoOXgHn2eBJYOclL9WUQ0oZDIuOzixV7ADnkAicZNgbtF3+onI6QewsGxCtUkW+bjBeT2stax9zbQ2WMUihPmLAlJ3l2XA4o4pG75I8BV8+jDAxMlGXDvjdIEoQCy+BuPNFLYPMCgAbzet81YimCmbpiTcRT3lSeNSdIJFxuZYKbllYy42/0NjV0cfsLMP+9irqRQjqNNnZ9sGLAdlFG7yaVEwEI2j99E3x+281oRnb8fx9N0o5uo8+yiubXeD4KbASsFyTHsCAVxuPQ9f8QKOd5yCYRrQVK3CdtpyB8gMgs0YuHLxCO6fO7R+KzOdRTz+EaveNWS1WUzE32BmOvcfFMvKNWmfeSv6+1vE8AlnpTaFWhGq96Cxuwsq56ij3mv2VVZYksI3QTntWX0bwu+jYvjuS8u414iFpaLdTpZlQXNp6AkE8T2Xox4WCIVC0PN5zBYK1P/KbsCqs50kVBZKsBPhFxGMjA2y+TzUuS3SIue0MiNhbZRqBUPlG0rdBO1C7/MhjIxfR97vh94cgFuYOz5B2/Mr8096GzoJegMxCfX58dMVgPoP6P4+ElJpg1QaIeggKfVVHVoCBw+XlRLUR1AtWHWonWpSqsceD/kpvXotlJZ/ffTfAgwAojL4tK6cs5UAAAAASUVORK5CYII='\n },\n {\n country: 'Eritrea',\n code: '291',\n iso: 'ER',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRkMzOEFFODE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRkMzOEFFOTE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVGQzM4QUU2MTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVGQzM4QUU3MTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Jln83QAABGBJREFUeNqcVstvG0Uc/mb26XWcOHHjhDSv5l2prcojFKkHkHpCnLhwiTgjxAWJG/wBiBtcKnFBHAD1wAFRKAcEQhyQEDRNLYU0TkAN0KaJm4cdr73enZ3lN7tpsfOGlVZ+jX/fN99jbDZ3evre99NhZm4ixK3xEIuDEn5nBHAAOwxtFQYrwJEXa34R4dhLrWcCz0VajBJhS5e4Myxxc5JITIWYJTKFUQmZjZKBVYYU3TYRYeothv91qVFsXb9UoccMk4AjGZwm/hV689akxG0i8CsRmVOKDJAiuSihvUsk1UheRv8B/DHwvg9oih1ytMVqJDw36V7oF7h9kYgoa4jUnYEQXj56xBRONbGGRXs9OA6YFkcBQ0iARlbAfCaALHPIFY72oRD6LxaSAEjscImFIYmfLhCJieRuyQiRSB+SkVZgApUEyo0IxrMC2fcrCIo6vM9t6JMC9owH/1sT229noHlAir6SborXo4zMUkZmVUbImsJYa0ZiRfy9wORzKGlnr7uwX2rAvW7D/8qE86qH2ic2WFeEttdcMM7gfpiCN2dC02SMe1xGbk7ttmY3Iy3AoeCwzvvovFFG7V0Hm1fb4Qw3CLgO8/kAGy9mY0V6ChsQSxq2ZjogPVJI3x8r5XEqJKmbiGwTyfkRCVVdvrdh5nkBSUMrV9MweYCua2XotFABaX30CB31j1LQL5Fx0eE5VlWrEaESyb9O9wblwSQil5d0vPG11QQsk+QaTxFwUaNnDBHJvvMeidcWwf/RQLhF4BQ7/2cduKfBeFLE605yYNAouE1EeHOrGUs2oU0H0BjJ4UgEBR3hXxp0IqT0U0CsgxY5EbReeXRnjiDCW046HkE+4GCUQuURp+FdyyWEqxyNGxaMESW1BkvJPErPF7WTHxu0zBRkndhCt1j5F5ipGeRB/RvqKQUmS96KhxSgl3Mwzgp0fFyOq9V2sQ7rzRoaHzgIlg1wLg/FMoRATmwS0F10h3/ChIel7hF8+fQre+pErEI6rVIv+Oj4bhPBNQtrM93IXHbBqQaRy9D+xTbCH0yUrnQlkhky2bTaURjQSbdDmlTj0FA/sNwzisWhCarRBBaGp7DSO4zV3BMHnFw0R0iSc8KH81YdvEzDzwmE8zoiEkPMa6h/moKscti0gwwB8RiIUowcVvKDWO4fw29nzmJpYJxOskmsdfYg0HSkvRoytR3Yvnf4Wa06LYl76lwdzjs1+J9ZaFw3YyAL2zFDF3nc7R3EUv84Fs5MoUi7+v30CNazeXimDcerI1vdjoFO/COReKSkq1Jz3VhLGoOV7kEUSboi7aYwegF/9I2glD0F37CQrruPd8QjeWTV9JbUHeDRYn48BlocbPXI102SzkW7W0Hfw1VwSUCMNY07uma6I2qZNErx0hpOoZgf2+fRA/JIaAZJpzxSQPepbq01kjEoO+bvSRPwWmf+fmH0SqbZo5LyyLDpB75GHpUxsP73PqCD50cH/904YN0/AgwA07gejJviOMwAAAAASUVORK5CYII='\n },\n {\n country: 'Estonia',\n code: '372',\n iso: 'EE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRkMzOEFFQzE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRkMzOEFFRDE3NzgxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVGQzM4QUVBMTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVGQzM4QUVCMTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+r3fpugAAACxJREFUeNpitCo9wkAbwMRAMzBqNP2MHgWjYMAA4////0dz46jRA2I0QIABABDSBIkzwazwAAAAAElFTkSuQmCC'\n },\n {\n country: 'Ethiopia',\n code: '251',\n iso: 'ET',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRjMwQjczRDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRjMwQjczRTE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVGQzM4QUVFMTc3ODExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNGMzBCNzNDMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yFhTVwAAAsBJREFUeNrUlU1oE0EYhp/t7rbJJv1JMaVJbUuLP4XowVapIGIv/hzUIh4VqScRUQ+CevDkwYMHL4qg0oJXUSiK4E3QQ0V78eK/TdVG20hjbX43ye74xYDgpRsRKQ4MzM7Mzvu97/fONxrHti2yDM2Q3rgcwHUsUzP+/BcNVBkcW8YKdJ9MGdXxPwHWRBzlQi4hOpngj1aDKHyuBuGPyLxR3VMTcKrBe5eqgBbA9wmiO6Frr4x7ZEEHewpmHki/C/kOicWS7g1u7BqY9zaC5tDizjCujqPWnCTvNLOuYQKrzuZpdoeQ34IKRdjvXuRb3UpcpXsLqJIh5ZlTf4p3ySFWTzyU73mR6SsH2x4Q1HPcmN2HTYvIHWFy824GovclHa2eOdeceFh5saU+xeDkPRLpGH1Nk4TMFBsCbyQkxYt8D3OFCG8z6/H5Znk5uB1KAWFtLi112dWW3FBv5MhmozxL99Em3LY0PyNipLie3EfZNTnSfodF/zTvJIBXmbXMpntpt95TLrX+/T1WYqKAyLpQCnNzdj9p16okgIKwyrv1jM4N86XQJV7L4lSMWMPVMrygXWURDCSIBeK8tcPkZe51vpuj7bdlTeNpJoYtZmrSCnRZH4gE4ygn6EnJ0MOOB1s5wXI51z/KnsfDdBpxOsw5LsyMUBbGI+FxLMNmRu/k0sYz1HUUcHKNotHS52rJsz2erta1Eq12ghP+81weOgVFqVbFuKzJ4cYqCBQ5/OgqY4unpCx0iNymt6unemOeCVEiZdDJ0BZMcGXTYcb6D/BxRYhKmYim0hx6fovTT64x/z3Md6MZTXO87/HHrX01FVlH02lwikQWPpHzNRIP9Qonje6FaRpz35hrWUne9KG7Tm0VuFbgX+w1DV+5iFXM/XR2zvQLYINUIvVvX6cKgK2b2P7m3+b+q/c4vRzAPwQYAEGjBC1vMOsHAAAAAElFTkSuQmCC'\n },\n {\n country: 'Falkland Islands',\n code: '500',\n iso: 'FK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0YzMEI3NDIxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0YzMEI3NDExNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQ0YxMEIyNURBNzM0NDZBNUFDQ0ZCMDM0M0E2RUFGQjkiIHN0UmVmOmRvY3VtZW50SUQ9IkNGMTBCMjVEQTczNDQ2QTVBQ0NGQjAzNDNBNkVBRkI5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oe8x+wAAA+dJREFUeNq0VV1MHFUYvffOnZnd2Z2dnYVdWaBAC8rWsqBESa0KbdKSRh+agqYJ6YNGjWmsTeShryb6ZOKzaW2JiSTGB6Ox2iaIP6VQK9BCKa2lrMDS/SngQrvL7s7uzNx7vVvbmvhiQuQ+zCSTfOc793znfANf6OkHm3MQ2LSD3vfMDh+Q+955OtTRFL1Hx+8K74alM1/0frjdWi6rjmJdF+FxT3y4KXriJS/S1FzB/k9QyBlTgI+sPb6zL9L7zO0Tu0I/HQufjOJiYaEILEvXnnSpe6+P9jSr6+66D1xN30TyMH5NVWXKiyEgNrNsBh/CMcawiDCGjD34go/tDqY9rTNyTpsc63xO7nyrfearxDTIbpHo6TDRJS/oPjC+Klhnr74qk599SiZvy2KpXhAAhZQwgBGklGKuAOIN+PsBNpzV64MFkizSGBVtwJwgzwAxUQDTFQEgpteYd5crQK7BJSTlwNudvSnZo1qFtdX883vKu3dXZrIkRaCEBV9AHRmK/vBdzOtzQQgZb5Y41BNZzueQ2NyxA49PaBLJCK7pU6fqD3aFXmyeuzCZtmG8sSX55x0sYlAUBdPkWpqmrXqdtdsCtVhxerxAkFfIvZHfFm2LPlIcH3XuCh9pP7zVajRurevSl9XPNgr5+k8/znYfPPfK/r2vrTZOjJ2ZWu8vfyrqrsCXxlykyEUVuLOoEMmSRCzS8ERdYjG6Rk1ZVBGC/0AfDzu6lr6VJ2OfTRe/15vODi3018bbgX05uvjm0YFmD3l9T9Whmvl9yanPR4f67BqKJQkwi1JdEht09+nBQfyH4lXdlUFNhEEkSAzy2ZYaYBiLf/LLld/DbcNqGY3Ew35zOCUvtr6RWpZDYnH+avK9K7cHuto6/DUW+tFJCgZ280HZFHLiTgZfbtmHjby2NaRWakuzFw3L1ID4N2thytE5WtW6tJINmBldlSTbml6jI6GdkTuGy8jqulLukWevLQ5cTk64ql0Skhi57wDBZMQfyOKc5dT8C3PzkuYZvJBKxtcVRSyx5l6p9kq2vY4ULh6ilHEHlTlBWXoJOHi9SGgJx+9T/CXrGoDwKHBPA0VzzNzMJi6mHwumzg9EK30gY9DJacOjKxDQjQedo2cLsGtLdHvs11tzat22HbnyNufJj1punjNVD4Fo49AMQAcrpCzfiLuFIKWmeT/K0CkQJMEgNgz4KI0bWmnUpeDz6YriitVUxRa+vpTLgBuVhwXEfGb6fvaFDUKXNKGsXC4CGSZTbC5BJdlRJmcgYbQ0CAA3zPrhPio9HBJwSKX8cJnYvy5HkYSY9f9uasY7oU39FWwe9F8CDAAMDrLSTxhgUgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Faroe Islands',\n code: '298',\n iso: 'FO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0YzMEI3NDYxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0YzMEI3NDUxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQTQwRERENTE2RDdEODBFM0EwRTg2QkI4NUIwMjMxMTQiIHN0UmVmOmRvY3VtZW50SUQ9IkE0MERERDUxNkQ3RDgwRTNBMEU4NkJCODVCMDIzMTE0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qirpigAAAaZJREFUeNrsVM8rRFEUPufcNzOM8bMhiiEL/gAxUmxkQzayUChFSvkr/AMWUrKwkJI9O5ONhRT5uWChNKWxGIOeR71373EfjSbewlU2cu7m3Hfu+d65537ng1wux0E2tnQ82DR9AvEzqBpunBqaP2RDI/g1+4f+DC1EMDoict5nBtTLFLq0NBwYiAhSkvPQygoZV22NLx4RFTOqgqqQUKZy0c5EnZXWHOKS+prtx8jE8gGz8K/wTWh3YfXZdgWJwq8KVVd9befdlYNFui8d2Wtva+M+fUMmZMVTTCi+JwgXFqM7S+A5EHugqAKoUE4MbAkWAxv0OuQflp9y8lv59h9WvoNGuH5D5lr6bcezyILCTIZIQ3Uye5m83CWF+y3de/FWJ32LJjSxvNnREooyqA9onS8Qdh7L5OZ638U2gdyPN6cGRnorbcXff0WwNmbbAIu/BiZXzjPXNxJIc/opnekpf1mbaTfjtW27gQHXU0Tv92dEIV3zkfGkCgxoVfzorHZM3/DvKZ+eGvYFCt+o+CN5CoeD5YlFCJRWRY/02GueCGEK/SrAAFuW4Upd7P7AAAAAAElFTkSuQmCC'\n },\n {\n country: 'Fiji',\n code: '679',\n iso: 'FJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjUyMkUxMDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjUyMkUxMTE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNTIyRTBFMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNTIyRTBGMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+scF2nwAAA6lJREFUeNrslH9oG2UYx9/3fiW55C7X/Lok7dKuxNqljii6abVzdXNQhqNanUzrwGq7yVxRJwMdgyEqYzgGKipDNgs6qdCOFf/QualU0ZVBdO2SJgWrTVuXn5fkkkvuktzlvLLgxL/GxvzLh+ePLy/v++HL8zzvA/s/mgC3JhBwywJ7I7XU2LXmi4z57bG5hTNTwGL9dLi997P3vt6++8mxNCiWHYyy31PZ3dMst3pfiFVKBYHE0Oty7X1/8ZXh8Sfiwcs7nUeP9TkeWJMpA70oFXA97WIOekuhZ5v29q87VGxlTyQT0aSVIq7TNXzqpVHJ1PAwU9kFlrHersKqtuWx7+DzA+DjE0bKsApkwUPdI8HSxAdnER2gOh1VBEBFRRVFNJJ5ikEkFUAtgYKitJgjhaIm6mhx7UbNY7YgRyWo8gWbHqkqtYzBxAh5PY5wNlZNcI1o1e4wAIYZGtybpBlKKsmkgV6I2hfiFRON6AGEKiZWUqw712jBpWq91vPdW7JRTgCIb0OHJZ0wFXlOBKmRUfrpPkdnu/lCKFWBl1gPcyVGspSKY2i1oj1LQcP6jLTvz7dkfzkV1VtliZgGH/r3jPmG3NJiHX1XiL1327YDj9/uoTh1cvpYjPa30neOfz7T88jE+q6hQYUKXgqfjw7zTRer9KMV0ULIkgKwfBH6nDNre2uZpDvI/eghSls43msjufK1CTm62bXHHsVGfjgyHn5nUc/JtlNDrBVDhYuRXc9885rf9vqOO15lsU2Ni+/+nPipbZ2I6CCoGgtFfoPr1H07LReUF49/O39466RfuT/kQ05PAbvxKho9vP+5X85PHSwyJ+kWxEq03GNpbmN4koy0ty21WAQ+fS4Sn7nb7+ju8BpLEYiVUAxT1YyV8k///vKhUfu5QCH1hy8obD8dn8vxgWYnVZXrrveFs7XOjYws9ZMQw91Akady8tnHdlDZ9OZNFOhxK7Va7Mrym5Oqjl3tEEukrNQgxBGcy8eiOrUBejgxXasmjeJshR+AqB4AqY52GwhQLGhKWKnSSotoLVMJTeSyCgAr7TbhhAnXbgia1rgrJ/F0oP22niMHOgAorh5s+cQhNdkuT/SScwFA6+roG/vEhAmVsvDLr0Jmq+yCSzPf+46bH/xtftZl1ikquCk0UGGDCQ+EZ8OK0jHQF0k3F7Koyyhqn+nahNzw9tF64DQQEoS/NjmNecFZK/+Te1Poq3XXFoqFz//dg/9oqf6P/lf8JcAAQ7yON3YEhEoAAAAASUVORK5CYII='\n },\n {\n country: 'Finland',\n code: '358',\n iso: 'FI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjUyMkUxNDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjUyMkUxNTE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNTIyRTEyMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNTIyRTEzMTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FFmzagAAAQ5JREFUeNpi/A8EDAwMnxlwAJO4WQxn915jYJAWhAg8eMPgE2PFsLkvkoESwAKleRnoDJgYBgiMWjx4LGZkZMQiRrnFjIFlK/9jk2BmYmRgYmJi2HXiDsOHV8DcxskKkfj2k0FCVpjB2UyJ4fvPPwyQ3EiGxQwi2dh1ggwEycgIMTBwszMw/PkLEWdlZmD4+J2B4ek7oOuYQSaQabFpw/8RlbhYQEUg/qAGFpVcaEH9CRTUH0AJgeygZnELN2fAlbhAKfrIxUcMn959YWBghyYuoKWikgIMlu66DD9//SU/cf0noNM0fjbDmT1XUSoJ31grhk29kbSNY2zu+v9/OJdcoxZTLx9DwGd6WwwQYAA8jFV5xASNJwAAAABJRU5ErkJggg=='\n },\n {\n country: 'France',\n code: '33',\n iso: 'FR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjUyMkUxODE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQjc4RjdFMDE3NzkxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNTIyRTE2MTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNTIyRTE3MTc3OTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NYcTvAAAADBJREFUeNpiZFCYz4Ab/L+fgEf2q7YTHlkmBpqBUaNHjR41etToUaNHjaad0QABBgAMOgSHJZqdhAAAAABJRU5ErkJggg=='\n },\n {\n country: 'French Polynesia',\n code: '689',\n iso: 'PF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0I3OEY3RTgxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0I3OEY3RTcxNzc5MTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNjlGNzM1RDc4ODNGRUI1QUNGNDFCRDA4MDk5RUM0M0EiIHN0UmVmOmRvY3VtZW50SUQ9IjY5RjczNUQ3ODgzRkVCNUFDRjQxQkQwODA5OUVDNDNBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++fOASwAAAW5JREFUeNpi3MugzEAbwMRAMzBqNBpg/P//PxHKbjMwrDyd8VIyVkDGWpiBwYOBQYOwpp+/fv3HC37/Wv3jn+S3vxK7mCXPx6r/+S/17af4r98LCej6/YeJAa+r//y5/fNHPzOjKAeTyf+/Ak8Xv2dgUOZgk/j1vfff3ztgJbi0/8cX1kBLWVjWcfOe+nmX59lZCY1+SZlkvWeXFV+fEefmvczEvIoBb1iy4I0IhgtXJFgFi9gPfn/z3IC/Opmb4e/DpZ8E7+7+p2b587O8vPR/kCIyjAZq2nHE6twT5xDRhzK7Jq75o/BbTclv9aIr3Cp7F2faSX8i32ggCPfl5zt0//5Pdg5LO3aGtx/ec/ww0n/HLy/Dcd3GRAWPuSCX/fr5k5WNDY+K42dvH7v08reIOP/fz5oinBvvfhNk/G0ozuHrboBH198/f4hK108ZGBZsf7j/1D1+Hk4uLs6SBH19TiKyzGjJN2o0XgAQYACA4seGjOuQWAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Gabon',\n code: '241',\n iso: 'GA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozOUMzNjM2MDE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozOUMzNjM2MTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM5QzM2MzVFMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM5QzM2MzVGMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XUVjwgAAADFJREFUeNpiZJiXwEAbwMRAMzBq9LAwmvHPRbHRABk1ekCMZrFbsm40QEaNxg0AAgwAqCcEmp2Ti78AAAAASUVORK5CYII='\n },\n {\n country: 'Gambia',\n code: '220',\n iso: 'GM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozOUMzNjM2NDE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozOUMzNjM2NTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM5QzM2MzYyMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM5QzM2MzYzMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+I9VNdgAAAKpJREFUeNpiPCeo9pSBgUEKiD8z0AfwAvEzFiiDAYmmi+VMDAMERp7FLD/e3x0Qixn/11R/ANL8QPyPjqH8kfHsy//vgAxBIP5Dr1AG4veMDLxtA+JjFlZOZqYBSGhMLExMjAOTqn+++fEfyv5PrwQNsovx5tV/74EMASD+SyeLmYH4A8vZb50Dk48lE1g+0bmCAIHPLIriKqOVxDCvnaBNHl46N30+AwQYACKRKLCtBsdeAAAAAElFTkSuQmCC'\n },\n {\n country: 'Georgia',\n code: '995',\n iso: 'GE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RjU5RkIzNTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RjU5RkIzNjE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM5QzM2MzY2MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGNTlGQjM0MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6i4DLgAAAqBJREFUeNqkVllPE1EYPXfu1ASwIqEErCBRQ2Ki8UXjg5IQE/UJWfQXuP0+EzHGWPRF9MEHDRXColIBbbSWFlptO53l85uFhulMZVpPMpm7nu/ebzm5goi+A0jyV0YEULWG/IWbMDYy3JOQQwNILKWg9PchIuL8ZVWvgQN/wLIA0wQUhbklOoJpgZhD2PulEjCuhO75uo38lSkYq1/QKcxvWeyM34WxvhE6HzCspRZQuH0P+soSijMPoT1JtW1Ue/EahUnmWE6jOP0A2tz84Yah66BKDUJIJ56k6e1flzlQqULA46iHcHBylagJxqcM5c5dJ/3javMUWZUq5c6MUxYn+TtFP4cukZkvBNYZmS36dfEW6cvrFIKSGnZgeXYUA5ypEMrhtxMidFiODiPx/lnLeTXgBiInm0VMBRmc2brZ2CyOxFy32WvYkc44t6luuFv3uXwcPKcbgQOI3NhEyVdKh92OS80q7LrlZvfZgNJ3nK8g3TKMhrLIIhndMMhxv9LLYqFIt28fZI8PQkZorrYyrNrqEx10gJyaikN13R8Rqhw+Ed3ufky53Bpu5TGZHHRVjig6lbVb8rva4s0xCdHTDfpTdRND8ZKrNw7rRx47V2dgZDZ5gLV6MIH+t48hT4+A9sp+jm7mqPg5Gq62yUKK2zXU0xXMxt6j3hi567gtjsUbB/OFxQrnQKtsMDPb2Lk8CWPlc4SwU1O8PY5N1uprszDWomr1/BsUpu+jvryI4p1HrLMv21bM+vwCilPMkf6A4izr/dNXEW5cY23d+83eiTl/W2vbBdU0J97/5Gip1WMTpKdXOtfqjS3Knb9B+tJaG1rNGZpYfO5IXqeQI0kk3s05Mhtax96TJ+57+vCrQXRJ/BdYQoUqWz19yn8FGABqxdXVw6EGDQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Germany',\n code: '49',\n iso: 'DE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RjU5RkIzOTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RjU5RkIzQTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGNTlGQjM3MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGNTlGQjM4MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aBEH3AAAAChJREFUeNpiYBgFo2CAAOMNmhnNxDBq9KjReBPf/3OjATJqNB4AEGAA+2UCvgLMJf0AAAAASUVORK5CYII='\n },\n {\n country: 'Ghana',\n code: '233',\n iso: 'GH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RjU5RkIzRDE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RjU5RkIzRTE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZGNTlGQjNCMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGNTlGQjNDMTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+nJIV5AAAAbxJREFUeNrsVstOwkAUPdMOCEJ5BEwMiS4wwbhRP8GNxGj8AF240K07FyZ+gq78A42J8RP8CMJKdia68MECQcqzls542xBkowzEoIk2venttDPn3Dl37gzLxzOPAFJkNYznMsieeNdB33Ms4Bp+6Pp7wNyq6EN3EmQBjXl+W8iR2POp9bbT9Z1hOvp8BEy3/SaHxXQjdZgsJqvkRMi+HkF2hdEJLaHj4qwBm6ju7oWAF3Ioco86Gwjs/mFyUdJYX8PnyUCgrYaEbjD4ExyX5xZMUxJwFHZZwCb6kyEGIZSiZlyqTnCQeDWBrf0qcoUOylUBh0BmU89YzOi4Oo6S8AyyJr83qwVFG0wynByEEY8w1JsSrbZEKABqMxCe1iHq6nprrmQq5jEsS6TXgshuBHoDrKwGsLAZpG8CmlQbyzWOSC8tB9MlDZsFC9V8A/fXYRj0fnhURymnI5mmZFWbZjeXJNs5Xa6QE1NZThN+hrsHB4kYw9I899pubjsolgTmZjgstaXlLqdXhu2sqbxBeJWDCBMBmOKj3NsESHoPUUlqHHFrtJqX6PP9rgz/m8Rv3Z26Rx5jzEef2rsAAwA2l4mM8iP6VQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Gibraltar',\n code: '350',\n iso: 'GI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDdFMDYwMzMxNzdBMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDdFMDYwMzIxNzdBMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iREFEM0ZBNDBFM0ZFNjU4NDVGNUVEQUQwMDAxODNFNEIiIHN0UmVmOmRvY3VtZW50SUQ9IkRBRDNGQTQwRTNGRTY1ODQ1RjVFREFEMDAwMTgzRTRCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XVIZMQAAAslJREFUeNq0VGtLFGEUPu9lZnfVHXddXV1NvKQZmeEG2QWMoiyIoCT/gFkGUZ/7Af4CwQ8JRRH2pT5I9SFSAqFPSTco8pK7Re6uu7q6V2dvM+/bpG142VnF7OEwDMOZ55z3Oed9kMfjEUWRMQa7B40wFApRs9ksSRLsNhKJBEYIwX8AIQRvJ4/viJ1uJyng/v5yoJ9Yik3U2Hn7libiv1IvuN3vHj2ke6pJkfT8ydP3Xt/Rg831h5rl+YBvYvr89V7LvsZ83NFolOsg4PO1mwxlAMNDj59dvnQH4MXV7qHBuw6AY5IUm1/g+vD7/fm0NtlLL9oqbmpax8Ihl3s/gPzTUyIIPQCdVVVKWenKGHQHgbSuzbm0UwEGz52tHn1dSIxjdmvNsnw4nnhbbPaKuH0hQlh6/IizZ+yNvaAw93gCAV2tCcA3Ig4D1FDsWgx+QuwjEWbkeCSu+ESDL5m2M9DjXUU+QTpOntKeCldqAUsMLYNq49AEFHElA9DVeWXnG+L5MH4BIAJ0XMAtCmpUYNJAFc4aM6xG031qMj81RpD7NgZmpmZHXu0FaEonS5fj9Uq6vpCZ5ThLyAeUVC2Aa3Qk6pnVJUaIKouLEAwqjK+phnBlhXfwfofZWtB2nKqqk6ElY8LbEO/6XJIhVHMyK0F1Xyfm+gekvj51bo6vdzdqEJRYFLmudZN7DzZskHYQYrGgcoeqKhxYUZK5HeJEHXa6UZU/GTdirSmEMfMHIBLe/K+mcrD3BgXGtGVQNpkGC4eRFtnsghBFYFCnZTXK0RoWPS/mXMEEGdFKEl4fqwX4yrsMwkKlYGmgjihKZL/z7IZtiD9sRMAcbeFrJu10BvzljERsmAHb0oL/JlCiZmi2VE5o19KWSp0YCsgVv1NEfRHWbjTKpGjM2Qo/ToO9XM+WtT4FBtYlZhCFUBtHKtvSvkk4lGpp/SXAACbxTzWqruOZAAAAAElFTkSuQmCC'\n },\n {\n country: 'Greece',\n code: '30',\n iso: 'GR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEN0UwNjAzNjE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEN0UwNjAzNzE3N0ExMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3RTA2MDM0MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ3RTA2MDM1MTc3QTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KGW0OAAAAblJREFUeNrEVL9LAmEYfj79UgqtiCQoHIUobHAwiBrdG8JBqKUpAgkaoq1F/4aG9E8wxLHJVqmla8ghaDB/QA13lVh6X+99d6lIRHRH98DDvd9x3PM+74+PASc1APNEDWgim03h+HgdxeIdNjdP6fUk0QMTOlHAJoLER24FGHp+A2YJtondoUT+Ls5/992HFM/nU1hdXUCz+WpXGNwo7wA1CGH+VNc7RkUslx/SZTw+h6WlkKRdsEzmUv0qc6v1imRyGWtrYVSrT8jlrhEM+uH1MkqIUmh30evpYIzZ1dWYEEL9ub8DRKOHUJQrimw71nipVO2fVLVD5VxAJDKDRuMF5fIDxsc5fD6vdByLbSAUWkEg4IMDOCDHB8JkUmQyF8JAoXBD5x1imrhH3BeKUhcOQeXmnn6hTf3zy8jjMQZ+2trjnpzqev0Ni4sCtZrqxFR3R9ZGl5EwaivPg71NJM7gFLh5OQxfFMPwWO/YSGLM/jrd3rb6U93pdBEOT2F2dgKa9o77+2dw7oX97bG5Tk4K8+3tc7gBKuKWO47T6V13HLvW40rl0a0eH7njGBjTLGHtn0Sl1qcAAwDRS+VdNgkmcAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Greenland',\n code: '299',\n iso: 'GL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDcxODhGMUMxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDdFMDYwM0ExNzdBMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNTkxNDkxNjg0Qzg2MzI5QzUyMjkyQjk5NEQ3QkI1QkQiIHN0UmVmOmRvY3VtZW50SUQ9IjU5MTQ5MTY4NEM4NjMyOUM1MjI5MkI5OTREN0JCNUJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jNGGgQAAAtNJREFUeNq0VU1rE1EUve9jkkltmqS2IU2tQhXB0FoVArYLQbDFgi1uFP0B4lYEl+KfEBHc66IFhRYbUYTqQkEpLdovTDc6adO0NWY6MZP5eM83KU1tkknjwsswi3fnnXfuufe8QZxz+D+B3RK89FQEq7XoFtQtIVCMrYw2+Vyfm8VaDlqaaW/cP3y1Kdy+ezQ6AJvXCsOylAf3lo/65hEsEfjmhUUMCwDJrubU/btmURff2IzXD1SttWUUlSsX9dcfpKhMggEhmvMNEgE8m9VXde+lgY7JNz6vrz73SmgbQBkd1icS3p4OZCPmCPNXiQgwRsbXNenyhWNT0/if2ph99LAwkfCcCnMHlVURAbEuxcJG4t3Wk8e7ojcGrU2OU1lgUHAbSkccQn3we+yZWTrOVRDRjHKysJJU4ieJ2NwkH9B7vQgFiHz+cijW4zp8hmFIQnDMEZHzqylb9uDWECdS/blCzDIz6WJ6VY71ILtYXSFjiK4NxR0NkW0rGc/gSLeyzVUNbPMAaEIh2Jq5cyt7+ybu7KyQxZGMc2osLhBHE8Y2uBX5RLGEg6EG/cZmZ1nyJ+SyFdAOUwSUtLUR7nTe49fNlWVtbqal71wjuNr8nJlcJN0B8PoqWomckzjeGx/ZZ6eLhZcvGqS8PfaUpfJY9ruNCErGIjusS0w00+Ltifeh02fdfCY8RQDUpYX1wX4CJvIHa42249z9cx0KIDW/eWM0n0m5cRG4+bSyfm2Y/1Jx6HBNy/CyZfaSpi2dOCKtKD/6z2y+nareZAHkpl+tD8Rh+bt0vJNbVm0pyoJgxzS8XIloLVM2zJxBh877R657e/u4P0BVtTA/o02Mm4mPJCiRrjAYtvvd7QiyX+tyOZhgy7DSm5bKIYC4j+CCDTlO/YCibUC9yLbq3tcONC1z3VcOY4ApjUZoVKhgIsZ4M4YOygGLPWCzOr+nHcuI1x8BBgBBy38D0GVnSQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Grenada',\n code: '1-473',\n iso: 'GD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNzE4OEYxRjE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNzE4OEYyMDE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA3MTg4RjFEMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3MTg4RjFFMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RYghnAAAA/BJREFUeNrUVVtsFGUU/v6ZnZ2ZvU13S+n26gJ7aQPYEhKJtOqDIU0IJPhEY0I0RhMNRkHwmhh5UNPYENQ+qvHBRHwzPlCiiWhskAQJbi2l28u2DWxLd7tAd7ezO7M7M7//LKWm3PSFB0+yD3N2/u985zvff4Zc9EfxcILDQwsH+1V4ElTLZoksQAIoZRlw0bfynAvjx3wOWPgPGWKjkXpogkSveZyCSQkTRNKseIsn1KM+7svk8+4l3ckKsH4IB2pWCbBzFh6UoURxVhTf8vli3dSP3m2zBU3ibNahUunD1o2ndrV+1PjnwS1TPjEN3YOlagEX/afDEmGJOzOMbk0F0jLK8pej4bcXtndPzD0zlklIbhvaAmk2tdyw+9XBrhONkaOPTrzcPg1PDjmPmRZA6L21tAjvNODLIyV9dXlL/0h0PFWPJkeroVG7qarW7ChTBi4NtcVkVnnldPdnI+F3Osafa5vhvSpyXrPMw0H5AOMA8waHCuEFE7UFaM6T8VjfcOyvKw0QKwjk4JYZFF0dIwuRs6ALyHvAsLzFxGLg+cEnT1yKvNuZ2B+b4f0mJE9hSKAG8T1VRlmFRr4fDX8cj12YbYJgoDZnN8f4UbLGISzSmtiy/npEKZyZbIZUsgtQMjxf13s1OHB505u7E12fqJnvJOae+n3c+cOB/tNtv061gKM207tA10BPFlzdLelvHzvz+c87Xh/qgKzbx5RlWNzZTOjssXXxX37b+vVNyJh6VtmT3Ukjfig3wHq9F+iaKyPyVsYjYhAdo0toKjPElf8ZI55C5wydcH6Lq7NMA1Tl4LDuO947WLf51IF4eN/i7p/m/WikECx7uAU3ykJHaP7Ie2MbupYv7a1lgrQcVU8+fe74UPuFZFVlJt0tQe4H7XaYyAk/qI+gQYNuoOhi029rzhzZOvFiexI1Opq9pJ7AQM2uSq883RtIfTO+sX84OpIKwlmxC6Dq+ruhK8z5oglnETkZRW9zQ5aZ7+DmJNxF291zMjOfv0e3zZfhkK3hReNAZ+JAbOaLsU198dj03Hq4dPtlshaaPfKsqaKIRSlYn31jZ/y1zUlRKTAvmln/itwUZvr2AHhqGjyu1/DOykvbR1+Izg6Mho+PRFIL6yBzDIqsQrM1cNUhuTu193uGmQIOKQfLjZsKZMq7jOouqs579aKvZorsqMIH9UNtFw/tnfx0JPzB4rYr5ySuKo29nmTN+iPkC+1Rn1CuacuubEmCxZhWr6llc7SBTPKgDEcCku7yqr8XgpOnPDuS+ZLE2dC3lqpVwgLkqjPshRk5XOBEOt7nE26v0H/NEJAGaA7JmveIK0v1//eV+VuAAQAuXtAy981G1AAAAABJRU5ErkJggg=='\n },\n {\n country: 'Guam',\n code: '1-671',\n iso: 'GU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjBFNzZFM0QxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBFNzZFM0MxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iODAwMDg1MDRFMkQxOTdFNEIwOTkxMTdCQ0ZCNzg0NTYiIHN0UmVmOmRvY3VtZW50SUQ9IjgwMDA4NTA0RTJEMTk3RTRCMDk5MTE3QkNGQjc4NDU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wSFE3QAAAhxJREFUeNq0lU1rE1EUhs+9dyaZTjqZVFPTRChElEJUqAGhHyAuqrSgLsSFiCsXXblwqSJuXApu3PgTRKU7Feqi+NVNQaulC0tqbUhqOyGTmSRNM8nce5z4AzKBSc/6npfnvLznXLI6eTUprGHXBiJDP4oI15SG8rIuJUX1fXh8RT9FxX5fpAVTM87W9cZP6Zgw3w2MvTo6D+2CTxMSIOivLSen7Nfz+58pHFpJAqS4Z0W7SNp7Xd4xABcUIEChiV3RETHBay0i9USNFFyMnK5tTlrrgqvIeqP2EQUPE9GNpO3c3dmBmBp1F9ZWtDMgH4Cf7bQHZEWvGLezjZfn+KOTpVsTzXStgHTQt9FHmnjITbiQsNjl878No174m5+bmRltQbWJQQ0hFOzy2LgepfEbViYWj0RF1BwN0dyuGEwA8gCGIBA1vJUvHthGJtYq/dgofMszuyQpUmekINSdKA2NbPz6nvn0cDGcWvxSuTmxWS7OutpFgnvBvPbIWvWdI5fSiuHw5WdPPr6YW1uqXRHoIIigCSHQKEfYvaXnD064d2K700/fbNMklY3AhvzfRCJK1ePJx1/vi7e4zM4S7Q9yifSckK7b6+2fvPOhkQVZZqFtzqkvckeaomt6+Q+lwHe9FE/Oi9uIN0bXy5cymMYIP8zLV2HRaSfnmAuU2336CrRsc90iKlmdujbMq7pbBSL1CZfXacRg+j8BBgALAtvzf7DSbgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Guatemala',\n code: '502',\n iso: 'GT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjBFNzZFNDExNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjBFNzZFNDAxNzdCMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iODBCNDU1NDY3QzIxOTc2OTNGMUNENjM0NTMwOTgyQkUiIHN0UmVmOmRvY3VtZW50SUQ9IjgwQjQ1NTQ2N0MyMTk3NjkzRjFDRDYzNDUzMDk4MkJFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+T8VYKgAAAklJREFUeNpidF77kOn/v3+MjAxIgJHh/4Mv/0NV2NuspBhwgwNPPubsfyPKxcKMohuk/T8jAxMDw/9/jOh6/jMwMjH8Y/zPQAgwMv7/hykK1sfI8p/xL+N/JigXSRYizUAYMGLoBbv6P9Bx/4nRTxqAWMVEnNPQtREDiDL6719QgG44dfjAtQuMIO7ff//+EWE0I06zmZiAFjPMWbdg5rqFQMbreydyasN+/GO4cuNK7ZQ2oAg7GxvuGPjPhMeD3JxcDAx/lu5YziMg//nutFSbXU1RgqktZb+ZWLcf33rn8hFhQQ5cMQsMORY8PhLg4T1yYjMjK3OcqxMDg+L7PTeC+NRYnKR+Mf8y1TPbcmZXqK4NIyMuPzMy4UlTrMwMT9+95OBgBXLffeR49/URw+vp3N9WfvnBqqes++Hjhx+/GMgxGhhQ337+NVE1ev/u06tPv15dufiem+uvX8H5Z5yvXt05deWMopj0f0IpBCf4+OWTsqqRpqqGk7vKdyY+E5dlX9lSv/7VntVb8+rZs/io/C/fGPAkFXzR+P3nDyDZGFpw7+7j6CqPR88eHjq3a9LksitnrqT7xjEwcHz4+gmPy1gIpmpZVfWTp64s37r0zbt37H8ZC7IbjLVMvay9COYfFqb/wFKIQBbTVdDWzW6DsF2tXYnN6P9JyLqkAWA0/qOd0bQCLH8YmZmwlat/gaUQIYv/MTL9YWD5x8CMWYAApVg4GX4zMvz7j27Kf47//9gYWAi4699vTsZvrIwcLKgRBjQaCAECDAAobt+WaLkKAQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Guinea',\n code: '224',\n iso: 'GN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MEU3NkU0NDE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MEU3NkU0NTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYwRTc2RTQyMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYwRTc2RTQzMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+S1dzKQAAAJpJREFUeNpiPCeo9pSBgUEKiD8zYAF/PzIyskr8+6u55tN/Nql/LED+f2zqmFl+M375xfFX4ZQjw9tvPMwMrL+wqgMCXiB+xgJlMCDR2MA/KM3EgB/8h2JC6ngJKUA3lBpqiPIBzcCoxaMWj1o8avGoxaMWD22LGamkBgxYoE0eXlxNH6hhf6GVPAueyh6mDtwSwqMObBdAgAEADjElH4U24o0AAAAASUVORK5CYII='\n },\n {\n country: 'Guinea-Bissau',\n code: '245',\n iso: 'GW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQTVBODZCRDE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQTVBODZCRTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYwRTc2RTQ2MTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFBNUE4NkJDMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NfA1TgAAAaZJREFUeNrslbtKA0EUhv+5uLlq1ChewBvElD6AhfgOvoKFjZVvYClYpLDVh7AQC59ASGOh4CUiGIKGBI2S7GVmPLMSBCvjbtTCA2f3LMPwzX8us6w8UrwHMIgvmNGA/8RNYfdF5dfbUt0KfNck+TR+wTh5q8c9hjyIA4zfUvx3wDaXCcYgwML4x8C8S6dH38E6bHGGHBOY5w72Ow3cKA8LwkGK8XA9TpPdIEmpfdQBKkpjgkuU2nV4pLcoE7hULgo8AZe+NR0uyzWDDCCkiQ62aodJbanziCOvRfNisEfwY4q3M5ME4/C0orobNJRQOc8x2hMsMrhlFEaZxMHQLJabVzhXnTC9O5kprDpZXFPabV3mSPfm3Yw5OR02rOZHV2w72Cc1FQLY90Yqj0P3GWd0gBVkYaVZd2it6juy0U4LdNzo4Hc4cEH13EqPE3gMa84zykEbdf1xUSnCDwllMEBqZRAP+In+AksyGdb61H9FQSSwSM1VI7AD1p+u7s6WZwweTBA2W5Pqbgc5buj/Xf3j4MEe97DPvfHd5qr2CDfhVEWEvwkwALDLl6s6AZ8RAAAAAElFTkSuQmCC'\n },\n {\n country: 'Guyana',\n code: '592',\n iso: 'GY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQTVBODZDMTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQTVBODZDMjE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFBNUE4NkJGMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFBNUE4NkMwMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jfKcDAAABN5JREFUeNq0ln1o1HUcx1+/e9jtbnO33eaUXDl1DqVRmYqohSZWKqhFBCb9WZhgiQhJkA+RFEmBf1RahBFSQU8gtc25ypGz6XyYJGqKc5t7OG+7290ebw939+v9u5umsZalfeEHP+73+X4/78/78/68v2e8XLW321nkYd+xQ0SazgLD4M4G1ziw2cE0+T+WMTuv2Hxqx2bWrp1Ng2eYvbX1VLXUEgydhIEQpGelgNiddxWE8R055hbCMCOP/btWM2/lE/p5GuVX0ygLtFLeWkO9vwb6m8GZLiAC4XRbW/X8dyBGMK/EdMQTvB1u5F36mb8cvt3pI//hlfq8BLqmUt2bxsFgN4faznEiIBDh8/oWFxO5akmmTjH+NRvGiZzppgsbxXYXl6PDbO4LUGF0sn4TfLhRERN1cMdcyFiqSmfRMHgPlZ0xfmi9wM8tR+gL1kGsR0x4U225zZYYp3OKk1Ex0Tbe5qDAcPK1qtvENcyZA7y/w82zKyS4SAz8CvQ9CLkrlGQBweh4fgwnKA34OdJ2kqaOWuhtgTQPeHwC4frbdtxIzEiI9Uy1p2GKyXfCIXYRYP7TsH+rj2mz0uBikFhoCIdeySwQkMfExiLMxAx+7fNS1h6ivLmWOv9RtemykttS4kzLUDbbDTZuSXx9xZXeraDpQnyub5AN/dc4nt7Fq1vdvPWCKM3SmF0aIhaLYiR6sSe0yZ2RApG9TKeWcLbHTXlogAr/RY5dO05/8Ixo7VNcTrIloya+viz6J9qcTDAcI/T7MUsG+eyNbFasVqKWOLFgAsNpiWtQGyIYYspmseGdAzmPSxdz6RiezE8RO6X+K1RerSQggY6Z2FqJkcEpFP02HbonHGG7ACxabOfjnV4KC+wkuhI3d08gpIdEt7xoGLvIIWNiCohbInUu4eJQgeT8T+ob6btVvUf0e7Fb3kZXl0nC+jDaCdZ4WTuNEeRxqX44qJeoeu3GJ1d0jJXUSpYnmieJ7tLOXjYl/HQVRfny9SzWPCdLDcSJt+vkJNWCE5cRxUzs1qneB0T1Ys35PDqHJlPTO47yej8VjV9w2V89emILpFNwZzhcNA/EWNXTTIXc7aXXXOzZMAHytO3SMLGhAUV1YwyocJdKz31EAtOoOebQGM2jIhilzF/P4dbP6QlJXEPh1B0gld+S2EwmNZksdbjF4e6OcLKfxUsTnN6Ry6yFssz6CLFTfTjUO0eGFOpbDePkcEjJ0XzKW3r1nKGq9RM53IURh1NchswlM+fGXN9iID7RWijnKQv1sVG0Bu/r573tbl58RmIZEJVNCswuUmXy84zFRCWSqoiNUs3u4bY6zgeOQ7c1u6rHkzumpzssWq2ySxzptIjWtZ1tfEWQNevgU9lm+hQh7pinl0fh/jmifhJHe1yUXmqgsvkbAu1yq8FgyrMt2/RN+Uui0YfGca+EkylUuzua2KZ+zVwIDbvSKVyg2wL5c08Jvzm9VAS6KG37neq2A9LQuT/NwGNRmHWTP9/eZWEctOWbWxLthAuz+OjN5Sx7/kn9XER1a5ZupAhlupvr2n4RhVdIDqXlwUkKbXd2LZZ4CsxV2zazft0SAt4Ye0828n19DYHOUxo7fyqJlUwKv6t/BF45+EF3zkP57Ks9RPMV64rrTVGY/OvjuKOqxlp/CDAALJ7xfKNmRxYAAAAASUVORK5CYII='\n },\n {\n country: 'Haiti',\n code: '509',\n iso: 'HT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQTVBODZDNTE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBQTVBODZDNjE3N0IxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFBNUE4NkMzMTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFBNUE4NkM0MTc3QjExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vIrdngAAAb5JREFUeNrslT1IHFEQx39vbzeunkYvIRH8QgJBBAXNR5EQkIASREhlomArVulSWVjY2CmiWKuVBLGwEYuASIrAhigkhSFgkDsQDWjirbruebfrrFZW9wTJEXDgLcwyzO/NvP+8p6ifTlMAM2WVFQJsUCC7Af9TcenbrRikXPD8yBFZ3oUj8YNDsMWvE51mgmsGh7L2PF501dP4MMGRf8LaxjrVVbU8uN/Ez19/Wf2YglLZgNIBK1sTLOS9E971t9DzqgqP7/SOOiy875QkjSyu7LL6ISngIgHnJ5vxQPP+CKKSXexYluTWDjPz20wMDDI55fL29Q6WkSNO1PYoOD9YfU48D/XAAd5BkpfOMrPZewy39fOlO82juVJGnGn6rD+stHZQXF4jks2vWbNas2IlYJMMm1vbpN/8oH3MYWg9Tue4y+FTh9RSggZ8crkDiY7lz/et4olWxUqibnsBy88q+NpsURnG8Q0TK8yyrzweb4S0f/qNaytCjTPWBkeWMxQl+8fY5xK3pAMGWTnUUDrhyde/U4YRhNc/xzFJmikv5vTy3/NNRDhd6NUvkGiq1MVI39zV/9Uj4RYCfCbAAH4eks60LgqAAAAAAElFTkSuQmCC'\n },\n {\n country: 'Honduras',\n code: '504',\n iso: 'HN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRkM3N0M3QTE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NEM5MDFFMjE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFGQzc3Qzc4MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFGQzc3Qzc5MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++ppqvgAAALNJREFUeNpiZHDfxUAbwMRAMzBqNP2MZvz///8AuPrS1Q/4NV+98RGf9H8c4Pj1D3J+e68++IxLwdM3P+T9924+8QqXAnwB8vXvf25mRji3ZuGd7z/+9qSpM8LEvvz5z83CyIhDOwseDyGbC3TA1x9/P3/7C3QIXJSHhZGcADlz66NmxMEbj7/iUvDi3U/tqIM7z77BpQCn0UCw4/Tr/3jB9lP4FNAw8TGOlnyjRuMFAAEGAEq7Jwn/ToVjAAAAAElFTkSuQmCC'\n },\n {\n country: 'Hong Kong',\n code: '852',\n iso: 'HK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTRDOTAxRTYxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTRDOTAxRTUxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOEM1NEUwNEVGRUE1NkNERDAwQzk2MEExNjM3RDQ2OTEiIHN0UmVmOmRvY3VtZW50SUQ9IjhDNTRFMDRFRkVBNTZDREQwMEM5NjBBMTYzN0Q0NjkxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OzkpswAAAc9JREFUeNrEVUlLw0AUnknatGqhShGKIErVizfBsygVL+JFRFC8uJw9KOJycbnpz3ABF9qKeKwe3ZeT2NbisQoqNmm2mkyeY7RQEJO6FIePxzCZfPPlzfdesIGKNZiiMSNH4VtxbgJ/q5ry0tTpNJaUIoz/klpDSO3rVUOhjMdD8r7AahhfA3KgYuWuTgkgQ1FTTcxFww5Wz3QTYErOJm6Ex0cRQGtroSskd7bF64zFjand3dmJcb2jQ+c4cp9ifT60vS073crWpnZyLA6NaNaZsThWGRyWAUReyKys8fML4u5OOtgmAPA0Lbyo0ri6rDMM/EA1ioQILxDOhQf6iaJoo6Pg4F4mp1yRCJZlfWODRKPgdH7P1+/OdabTEGzFm1vg9RqNjcZ9qozBantQiSVKpmfYeMxtSoMfmI9FyH1+ydTVG3OzXp53rK3rTc0efxU3PQkNAWxu+JX5VH+llExKD09v5ltaVI4OhNSdfHur2znEhlqpKBfOz+hlPgNIh4fZQEDa36MWVOJxW2q7HsKy6PTCkRGMqysYH2NUjfT0osQ1Gw7/qhrzC4d8zBnqZamu9sXlsi1IbBTQmCAvFt787JsqfIr//ysoIvWrAAMA7mZQmc9OmukAAAAASUVORK5CYII='\n },\n {\n country: 'Hungary',\n code: '36',\n iso: 'HU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NEM5MDFFOTE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NEM5MDFFQTE3N0MxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk0QzkwMUU3MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk0QzkwMUU4MTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+JU411wAAAFRJREFUeNpivKSs84lhAAALEPMOhMVMDAMERp7FjKcZuP4PiMX3kzMHxuL/QDBq8ajFw8pilvgd3QNTgDBUqQ+MjxmE5UcrieFtMagF8nkgLAYIMACetyMUbe9cBgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Iceland',\n code: '354',\n iso: 'IS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEUwNDkwODE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEUwNDkwOTE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk0QzkwMUVCMTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk0QzkwMUVDMTc3QzExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EtSEQQAAAU1JREFUeNpiZLCYzoAG/jMwPHg/dWtBFuup8/oOAqbGiqfOuNcd2TXnCIO8AAPRgImBZmDUaPoZzcJw5y2WFPL2zdvv/xi4mYE8RkaQ2P2XXxmev2L4/ZcEo8tmxWMx+t03dxvuv1fZgcy//0BiFXkuN82VGAQ5iTea8f/Hh1iEWZkZHr19uXH3i4ZaDlU1menTuBVEGAS5SXI14xURERxS/xnZOZgFBf///v3n7VtGMsL63/dvOEwGhjITMxMonv9///7/P5BPmtGM/1/cwBADB8jDty+27n/Z3sKhrCzd18ejKMogyMXwi5RorD7Nj0X43ffAOHNDNpZnNZUs7Kw8zs4LbzHc2vqAQYCHBKPbEudiTXwcSi0mot+BHmAGh0NLz847s3cyiAiTkq5VhLEYzcIkzMnE8BPkfWAgA4GSBPcdSbHRkm/kGQ0QYAC5z2/IQnQq8QAAAABJRU5ErkJggg=='\n },\n {\n country: 'India',\n code: '91',\n iso: 'IN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEUwNDkwQzE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEUwNDkwRDE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRTA0OTBBMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwRTA0OTBCMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OIHw6AAAAPlJREFUeNpi/D/T+D/DAAAmhgECoxYPf4sZ/wPBQFn8CUjzEqvh7cffDAtX32Xg4WZhYGJkZHj/8SdDTLAKg6QIGyn2fiY5qGdN38/A8OU5g5k2F4OxBicD59+3DHNm7CXZxyykKL548TGDmCgHg6mpMoObWz/Dr19/GHbvLmS4desZWE5fX5Y2Fv/794+BhYWR4e/ff0BLfwPxX4Y/f0BiTAz///+jbRy3te5gEBTgYrCyVgY65D/DuXOPGJ49/cBQW+9FUhyTbPGnt78Z9qx7wiAozMnAyMTI8OblVwYnfxkGIQk2ki0emOwk3MExWjuNWjy8LAYIMADBumJ9k9IhVwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Indonesia',\n code: '62',\n iso: 'ID',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEUwNDkxMDE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEUwNDkxMTE3N0QxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRTA0OTBFMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwRTA0OTBGMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D76wCAAAAG9JREFUeNpiPCeo9pSBgUEKiD8z0AfwAvEzFiiDAYmmi+VMDAMERi0etZhmgOXP+w8DYzGbtOQ/KPsfHUP5H+Of9x/fAxkCQPyXThYzA/EHFmYBPmYkAXoB5tHsNGrxqMXUK7mgTR5eOjd9PgMEGACLNBM7Kx9mIgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Iran',\n code: '98',\n iso: 'IR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Mzc5RDMzQjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Mzc5RDMzQzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwRTA0OTEyMTc3RDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQzNzlEMzNBMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bVy5sQAAAL5JREFUeNrslDEOgkAQRf+QLUSUwsZ7eAoaOo7Aoew5AyWcwwNAsa0IWZRdnC3sXaPZxOxPJltN3uyfn6HD+bTCgyJ4UgD/P5hWlg+w4Bq49m93zA9AE5a65neByHP2zQDxxoU72B9fXcATA3XfQ1ujjIGIt6BdgqQonMDOO1YMVeMI0hpkDbjPUF33+3ClWQbB4LFtcWsaRFIitXZ/EC4nq1+SZYmVBzhWFUgI1/bBX6ovROFyBXAAf0VPAQYAymNH2XVfIfsAAAAASUVORK5CYII='\n },\n {\n country: 'Iraq',\n code: '964',\n iso: 'IQ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Mzc5RDMzRjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Mzc5RDM0MDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQzNzlEMzNEMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQzNzlEMzNFMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A6ksKQAAANtJREFUeNpiPCeo9p9hAAATwwCBUYuHv8WM/4FgxAX1Z1I0LLizh+HJ1zdgNnJQPf76mmHDo+MMb39+IsaYzyT5+Oirawxy3KIMMtwiDOsfHmO4++k5XG7vs4sMxYf7GNbfP0yUWSzEWrrp0QmGzsurGTxkzRj6rqxjEPz7i8HOthgs13tpFcOWWzsZxJhZGR69vUu9OE4/0s9QdXYhAxcLB8OWhycYWJiYGTh4JRgufnoKlj/97h7DJzZuBlMFW4aPLOwM1z88Hk3VmD5GS5yjReaoxUPfYoAAAwDKmktuMenkLgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Ireland',\n code: '353',\n iso: 'IE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Mzc5RDM0MzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Mzc5RDM0NDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQzNzlEMzQxMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQzNzlEMzQyMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+fGQZ6wAAADBJREFUeNpiZJiVzIAb/E+dg0eWodkOjyQTA83AqNGjRo8aPWr0qNGjRtPOaIAAAwDApAPmE9cHWgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Israel',\n code: '972',\n iso: 'IL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzVCNDMxQzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMzVCNDMxRDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzNUI0MzFBMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzNUI0MzFCMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5PxNOAAAAaFJREFUeNrEVjtIA0EUnD3vEj9IiIlooSJYCmK0UAloIdhouhSinZBKIZ2dqIi1hZWFQRFBsJWUghaCkPhBBBsl0SIBTUhyBM391r0oClaXTcwNLHss3A0z8/a9I5QBNkDsm7uU2d5aZ15ZfLrLwxbFyKl8b5LvnTMosraXKPBY3eGWQAhBOqtwWU1YbXERKxqFrlM0OQUuYoE3I//SNQYWYlVkbBG6QRGJpiGpBk4fZMTYAlMcXL1HYMiNIss6NNMJSbSmxbLV5m0fXbxC7CIDV08zlme70egQsHHwjGyyiH6fG7e7w2gQiCWrYRJTi1BUg3qnzunW8cvPWSSaom2TZ/RD0WkFKFSUsSQSaKyoBPKrSmBf0JjlTkn4n4xNq8fDN8i9lrB5mCwTmlavRBIovJXgC8UR3xli56S2xAZjDk60Y97vKRdXePsRBiu46TEPAixvmT3rxpcDNS2uvxhkCnOyhsTRSH0bSL6oQWV5e10S35BY309yNQCzZZp5pjIKX69G1wmX4iqHhCzC47BnLHp7W2whJu8l3ZZfn08BBgBy6AUOH3COZgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Italy',\n code: '39',\n iso: 'IT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzVCNDMyMDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMzVCNDMyMTE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzNUI0MzFFMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzNUI0MzFGMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oQE2+QAAAJNJREFUeNpiZJjk9pSBgUEKiD8zYAM/PjHy8Ir9fZK47D8/OzcLUOQ/A3bA+O/nz79Xnf0Yftx7wMwiJIhLHS8QP2OBMhiQaGzgH5RmYsAP/kMxIXW8hBSgG0oNNUT5gGZg1OJRi0ctHrV41OJRi4e2xYxUUgMGLNAmDy/Opg/EsL/QSh5v0weqDgSY8agD2wUQYAAUKyFbP8LJRAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Ivory Coast',\n code: '225',\n iso: 'CI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQjc2MENDRjE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQjc2MENEMDE3NzUxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCNzYwQ0NEMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCNzYwQ0NFMTc3NTExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qvgkAAAAAGxJREFUeNpi/F7P8JSBgUEKiD8zYAH/vzMwMPJxMbAXPWZg5BRiwAd+/P3NILuqmOHNe6CRnHy4lPEC8TMWKIMBiaYH4GViGCAwavGoxaMWj1o8avGoxaMWD7zFLNAmDy+upg8tWh8guwACDACJtBIpqc7c2AAAAABJRU5ErkJggg=='\n },\n {\n country: 'Jamaica',\n code: '1-876',\n iso: 'JM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzVCNDMyNDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREQ2NTU2ODE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzNUI0MzIyMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzNUI0MzIzMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KsC74wAAA+VJREFUeNqsVttPk2cY/30tVAVKC1SRo3jAAjswnXFL3NwfsFvNlgXn1OjFoomJxgsvjInxZtNh1HnIZHPOw1iyLWEXS1y2zIsly2KiMcZjQRGwA1pBaEsp7ffs9/b9KhQ/AhPf5Pf1OzzP+zzP7zm8NdYe8Q/905sPt8tEVUECAkDU5SUuQ4GXx9FcDIw6sWJ+DIb5EHLhfglabpXgr2ABiuakUJE/lpaerQMZg8FYLkIjOVhdGsGm+jA2LA/DkACD9ALmMPDtvRKcu+PD3/9qBirzE2lF8386oHTUUhEOMsKVjHBjXRib/CG4PNzsKWUYlaCHUnHCQyMR4GKgGGdv+9IMFLo0AzNxQMkYGKd0dWk0bbCpNow5hVQe4sdcogpwLl6A/W808qGSGKAiWX69ZgQfLwmjujCB7qgL10N5iKcc8DINMOwpdShKafBRxIWG4jj2rgriyJourFocQ84oBUyiRsu3XtQ6Uu8Hdn0KbGniUzHxHAP2NaAq0S6HdhEqes9fAr44CVy78Uxdr9fq6cAOYON6PvgUZ8QIMbkG2AUqeochCNOgXQ7hsljkfeuPwKFjwNXr2UzJZDT4IWeOsqj7CNaAdBMsQumHpB5AvrtcLG8frpM3P2+Qr371SbzdSH+TduKRpfOEcqcgKxqf3z8T7FQfpK4WcvZLbVBtlgpYDtCh6B1Dnt52aOc6IMn7lsFByPctkMZXp953WsMZFBVB9uyADCkDjGj0Lg081FD3Y52QCO/37YaULph+P4WcmfTlAKt9mEUmhi7hZ+5OaCP1GIkCofDM+31KrxZVQpoPktZOi2pGLPc01Qn+xu5adUCakwEtk3wMOXUYUrvkBaiuKIMcOsDNe6y89Y4blC5I2xWPrG32y1sssB9+LxLptOpA5TmodUzqHP8MsrTG3nBWO1WV63ba+hGQV80XvdC9yHYCh8DPAS++5kT7s8eNeTlmemgMJ5x4p3wYm+tC+GA5czKPsoNEPlEGJINASyvb6SgQeJA9dKRiIbCTA2T7J8Bc1ex9lkGPNtjW4eUA8eG3rkLMdZqo5inmdOgN1Bjt4rSKjTnwXgUdaAhh/VI6kJftQIoOnDwHNHOAdHTSsMrhtiYrwn5L2Ksn10/tXnyjIux2I9cJLHKPpqOcPLMz79S4jCcdWFMWweb6ED6sfTLuQAGxUDtw5lLmkOjTEyZD6S8dHpy+OR9/dDNCUlrtZoQzOCQyDigGomTg3fIItr3Sj3UTGbAcMFTR2OXQ5ZQ0pY4XOBYzOuqAUSmwqwFDjcO2dvscmrP8IzCRgawaWDYA4/0Ty4auTJPD2S67GvhPgAEAIEVx8Ck6yuQAAAAASUVORK5CYII='\n },\n {\n country: 'Japan',\n code: '81',\n iso: 'JP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCREQ2NTU2QjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREQ2NTU2QzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJERDY1NTY5MTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJERDY1NTZBMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+sXSjEQAAAbhJREFUeNrklt8rg1EYx79n3k2WrWGY363EkgtJSVntgguJi5UbbuTSrf/CHTeukDulUVJKCRciGVIYiYvNhqZmm9H2eo/nfWlcbW9sk5zT89TpfTqf59c552Wc8xsAlSQR5GYYSPyMwOGPRS5H5O+BeUKUNZhWmxtwYHqBxIWn00vicugbrbAMO1E1OpgdsBR9wYFjCF73IuQYtSghzZDAAwlHVVMPWrfmIZiNmQXvdfbBt72CIjTQSiO78vGFKTqEc1haHOg43FAF1qix8k7Nwp+E4gtUqbYiJjTi9mgT1+OTqnKtCny3sAyBImNpzHVkdb+0mhnw6/MTYsfXtKmZ4pJS9TnVvRgvF36IsejPwVyenCdrmf6cJdXPwEJBIfTNdYgjmMZc7vAQ8ustEPSGzNS4zNkLUUkzT4Fl5Fwcpf3dqhKj+jjttHXh1r1OnW1T0v/pBFNmCB6Ybe3oPNlVE476cywGw9i3D8DvWUM+de97s0G5QOKky2vtaNt2QVddmvkrk0sSfBNzCMy4EDu7oqaToG+wooKuzJqxETAhL/uPhPgYlT2BYDLiGyPyP9/jX/n1eRNgAFs4yk+Ai07FAAAAAElFTkSuQmCC'\n },\n {\n country: 'Jordan',\n code: '962',\n iso: 'JO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCREQ2NTU2RjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREQ2NTU3MDE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJERDY1NTZEMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJERDY1NTZFMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QGsVzQAAApVJREFUeNq8lM1rE1EUxc97M5mZhExNG6F2oTRtzKapdVWJICIuVCguigtB/AMKUlz0X9FaqQtB6S6IYkMKIoJIRRDUhSt14UcVTWLSNsl8ZJ53Mk7aGLtoMu2FSZj3ePzOOfe+YXf1w1/nawV91a5iP4uVDqaFJQRyZgUL9SJeWJv7A37Vn6pojOkJrqAqHDwkAYv1AlatvU2AvSYw/esN+tHAkJA8AcvmelPA8z1KoAX2F3wBwyTAoBY8MstYqFECAc9AB/h/AmqUQNAzsCO4TQCjFvydgaWNNeRiGpSp85AjGswva3AMY9dguVMKg1OtQdg2JD0Kid7dqX/fMJoJXNHiuEwidDWO8OwMkEwE5NgBBDljnEGYFpim0YKzdYJzcNOGsf4JHCoGpqcxNHcN4cyJXYH59hdhWbCqvzBy7wbGP7yEejQB6/f39hOOA0fmUOIp8MggfmTv483J03g7NonCUrY7MCUJAXKpKpAH+sEkyVvcqSROuzKFZMAuFCHqhhtXF1FTP4VlkhwJ8oE+2MUSWEj18m+doKhtQlU+NnXHzl7Aoesz6Js618NwkVquaGhsbMAof4YcixFIuDHAIeMy8YdKm2SUI3rxKtS5WeDU8a6Gq2OqhdOg3oWbjzdrAjKBEyW72ZdsMoTlM0egXJqAEn4H60EeTr0ewHXy7y85VMjhCAHdepLUsDgZRW6CuiLT7X58E6Br1211gP1IXaA7JvmUhjsEXBmL0JeEPBctwKad6CA96B28HejW01ENtzJR5McJqNBmiVxWGt6Qs94/mbIP9HuYT4WbDvNp6rFKm8WG5zAgYOty/OSjIuSIrR4ei3hA16ElAoW1OX42rH67nYnqK2m/hxR1OXiH/9YfAQYA1jgMxWJoPhoAAAAASUVORK5CYII='\n },\n {\n country: 'Kazakhstan',\n code: '7',\n iso: 'KZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGMzkyMjdBRTE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGMzkyMjdBRjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJERDY1NTcxMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJERDY1NTcyMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+44EnowAAAkpJREFUeNq0lc9rE1EQx2fee7ub3cSyjbXWIgFFS7A9FC+iVEWk9KQI9qIYPHjyJBQE/wSxh4J48qpQwSL2UFA8tPESUC/tRVotKCX+SO2WpMlu9ufzvRybZCOYDLuw7M77MPOdH4vwugC9MQI9M4lWIKAQAWCX0SaxF9OPcsZ7CNPdRTMKYZYVB7ACnLV348A14AmZGdbl9Q8psjpX37rjG8GRxoGWFgE3EOvDrKRAWAxNn6cA7Y50ZqB3mFiDtALIG968KWLDJJWriUJOX2Hov3AuvnQuWJEJ6HRAB0Bdrnqt1RDx6hDpp7TV+8nFMUO26VFS3giGlp3zQKIGvW2PEZdLdFXoyGlTyFQTiRNH4EeVLeAIkXpC+d5HPPFSlVwa1yEGumfV9WO0JJtwn4XpW0b+wYH5Vf/4G3dcKCNYy+7pT97ITGrhhp6HsD++jNpH/+S38BBA0PSVOpxeS3x4WJ2+V75T8LIKBvPOxK8oedtYeVybAq7GoRmKYeE6eoDB/jKSnQV7aoT+vptcemZfmq1eN9G2eCKn59+5Y6/sSaBWHFoBPynUFOhmQ9+LUk9qV86omxPqepZtbQaZc+qazbW5vZu74UGg2zFyM+FXCs3tqK9V5xEg1p9wYMkZ7ic7GfpzVP3sAz63LxeDDLAfjcq3j1pDf1Jb+yJGJtKBlJvlBlID2NvlxtPqNJAqhINyXjpxJZoDfg2GLDlgftwWk/PtygfZS7wjV8op9nUS6wEwlystRvF/1pO4a3LvQHe5vf8V9Mj+CjAATRXoTFoxM8YAAAAASUVORK5CYII='\n },\n {\n country: 'Kenya',\n code: '254',\n iso: 'KE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGMzkyMjdCMjE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGMzkyMjdCMzE3ODAxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkYzOTIyN0IwMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkYzOTIyN0IxMTc4MDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4JAoOgAAAoJJREFUeNq8Vs9LG1EQ/jb74o8kdWOktWuKSamUtoqnekmRQA71UKjkIJSeEqgtmEIv/hXBgz2mpRcRkh6D1IMVSi7iIVBBPFRarIamIsWsRpq4yeY5m24llZa89JCFb9/MvmG+nXkzOysB+EYYIBTRnusSIS/R7dhS2nkVhYllWYYkSahWq3/dZ4zV13/tXySGRcybQVVVHolEznXJwm89Go1yv9/PRXxZnGLEJlKpFH8+O1uXX4+N8cVA4BdpLMbT6bQoaZ2Y9fp8TfNipvgwl8PbpSU8mJnB1NwcnoyPA4qCd2truBsOI5VM1m09fj845019si/r60LVYLfbodE5VohohPRdtxvM48ELki8XCng4P49X8Tgqui7kj+WDQeFSdBD56v4+nCSrNhsljWOP5I/T0wh5vTimwhKJtk68u70tFrG1viQ8JgQyGVTpRfIkv9E0eAkOkk8Fg2AdLXT9AWGL8J3QPzwM3tmJ/PIyNkk3CC6rcoSIW+l63rDaKFpOZ95IJLXgi1UEDU8I3YRb5vmaUWezqBG5+a29Y0Vg2oj6Y1f7BoTf0ikzxH4eQTk5ghwKwd7TA3VlBc8cLlx3eaAbVfGIb25lhQxtkozqlV5Mvf+AnfsTdKYcEqV6kPaCiwtwhSchH/xAjRtixLcXJoQMy0YZ1xQfPN4R3PAAiRwltmBDnKpus7aKYiKBr4ef4WAOIX8SHglOpzIwOjiKQtcpcjufkCzdg6PGMNmdgTo0hP6SCxt7G0CX6HR6Kj4WFUlBSS9Bd+tgGj2o0TTqox4v2OHscELjWgtjsQXi894x+0a2ZOPCc0Hilvr4D8fGfzZwwwekaEXczl+f4pkAAwBDiPf/eEPUkQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Kiribati',\n code: '686',\n iso: 'KI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNzJDQkU2RjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNzJDQkU3MDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MkNCRTZEMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI3MkNCRTZFMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pmFxjgAAAoFJREFUeNrslE9IFFEcx3+/N292dmf/NLppIWJpCoKVCcUWIltqVlAQdOlWdOkWnQsEr12DLnXp0rlDkl7yH5HQHxLLKNTWrDZaXXd219kdZ957vbFT2k6HrVtfHrzffHjf7/B+82NwtP6QzhyoJI6izsGAgEXNtRVCXPWgwyOMpxX8roIiKvksRaV1jgU+cpBxR+yzw5eyIUaJwcsWL00GWUojLgBWjA5zh64TVW4VowOCpjRnSYUa0K9Y67O0cD+CMzoJcukGXtEnY3Eq3uEXjd7CnGIz4tINcEEFqmrCy5USftEU/CXNBeIYjnG1oHe5XhNfq/m7EbpCweD+1j9Fl9EJ8NpBs/6irRYpEOEmLbWRrd7YQUsKBIVfdDk3rzJKtbh8cO0sg6IsFAj/JGXbpG1mrBeUrxBSorI7VjYfTcJKc8Z6FQsyQ7Zru0uSsuJg/vYdnHiaGpkQnO852RM72weEFB+PeYTxxp5kzWA3dDuwNg7fxkBw2J2E2l6YCZo3ny2PjQvY5trMwb4eHBpdGGg1jmoFEOKFExtNFTmHgeZIYpO85NGRNyU7jWcS+rH9puz983fG8HSJxNmpTj1Bi791STIyb2L/9QeLmXUwDDkILLfW0RAjBN9+Nn8hiLMLeYY13sjwtQMtUe/MF9PH1bJTp9cuHG5uMBY/ZzkXrU3xdKYghGioj1VJltImdl2+B1y0743L1859XKEK8b6Dy6sk3v3ml1dLtjs980lwkehs2lUbljSTs6okekhFo//W6e628yfaEfHR5IeHT+bkjc4db6+SDE+9RzgyBGYJyhvelGvyX6F7Ra5qYugU9IC3tij0FwiBf6b/0Vv0Q4ABABynxPRdAJihAAAAAElFTkSuQmCC'\n },\n {\n country: 'Kuwait',\n code: '965',\n iso: 'KW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUZGOTk4RTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUZGOTk4RjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1RkY5OThDMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU1RkY5OThEMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+rNTKhQAAAX1JREFUeNrElktLw0AUhc8kadMmBhcttN1Y3IkguBC1goKPRRHxN4jiThR0r4KI/82NOxdaEZWKD9Qi9pXX9aatIhQhixm9cDfJJGc+zpnLGJgcrWJz1UExD9w+Al4AaAKqK1IgWClgfQVYngHqTeC5BuiaUmGdew+eb+L0HLh5AEaKwHAB+OAN+EwvhDLid27n+4mVBjaYvjwNNNvA05sS+n7hryqNdTcwlFPi/e/CUdk978sl4KoCNFrdL5QL90qbG8fS/q5vhiAKQvFnwiZ3q1YnDFoEScyxUkPJJF7dhuitFzI6dlx9CqWmWsM/VXxhyWfZiLPIDT1QJkud8SopXLGEF3UH4dpOcGcmKSBSf5wMfn1g57CVyqD6UuGFnvrJtZAYwJGdx1TCwkXQRp1TrUOo8zj6eSQYUbbZ0jO/yQkUUkX7hOeZ8phFJ5jykikbkin7LgIR0SF7uZ3O8qAgXIduh1LlPcSYTdj3J3bBmepQuuxloIzyZ30KMABBFnf5qa4SdQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Kyrgyzstan',\n code: '996',\n iso: 'KG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUZGOTk5MjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUZGOTk5MzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1RkY5OTkwMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU1RkY5OTkxMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZagutAAAAeJJREFUeNq0lc1qFEEUhb/bVT1Dz2gkShZRUQP+LDRushNXvoDuBcGFa0EXbnwIX0BcKAr6Ej6AgpsoYiAoKgnqxskkM9PVdb3V4nKmZwan6UUXRZ976px7bsnO8jqLefyxpTWR7L/jqkafZX4RlI2uN/ipWFcwEgRyxU3Huqk6BBgIVv2QEmFfUplCyUnLCVo34I4MWjhesV7KpWDf+t7z0fPVpQJtReeDDjXu+SA3DzgV+OGsmFwu2XH6vOCDp5wEMFFlE3e1klv7xk5fdBiKFdNXhekgt/ucrChlLkHsvKbmxcBh5YuTtaBPO0SVa0N6wopi9O0cYSzGeNZRjKxcKPnsWFZOV3QjS8pq5Gjkk5eNkiJSyeystX5bqTH0ZcFKJQ97tNFHXXYzuT5INkht9cxaZ5r6wZrhXGAAW16ujGRjyHdHL+Ns0HeefobT2VnbzgG8zblayt2+Pu7ogyMJqFC50+enYzNPxnZ0rg6x4O06fVaYb3J/j1aKjNzbM4f1SZFauzUpMxLO3Bgb9L+RMaNO1JGxbjHpN72+yfnmUtzHR6Yp6PZbG8rUfIalrzUVMxHKGjRnQhSb0kg9JYxdN1maJgn/ljTgJuhph7VX/IxDNcawqKvg1+/tBV1gfwQYAP8yvkoLLzQ/AAAAAElFTkSuQmCC'\n },\n {\n country: 'Laos',\n code: '856',\n iso: 'LA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MTY0MkY2OTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MTY0MkY2QTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1RkY5OTk0MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkxNjQyRjY4MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vPM0fwAAAXBJREFUeNpiPCeoxkAbwMRAMzBqNBpgMRJ3AlKC/35hlWZkZGBgZv7w+M2/bz8ltOUYmZieX33IxMYqIC/K8Pfv///o6t8zsSGMhgqx8OCwmpnhznN+LZX2niR/aw0mRobtJ++Ulc57c/4ug6o0w5+/6OqRnMjIoJGB00tANz99q6Ald3l/Kw8Hwjm//v7Tc66+efYOg5wow7//ZIU10FF//zaVByObCwRszEwd1eEMzEwMv/6QG43ffjDLiztZamDKOJir8ShLMnz5Qa7R/0FBwgiKSoygYmIEif//T67R3Bx/Hr4+fPoWpsyRM3c+33vBwMNJrtHA5MHA0NCz7g+G66o71jD8/M3AzkKE0UysWBAjC4OS9I2T92TtalafffAFGPgMDJsvP5F3rr944DqDigwo7aJpQQ40SOLj/P8XR/Jj/M/M9P3BS4a//yUNlZiYGJ9euAdMcByK4kz//v/H8M13RmaE3tFCdTgYDRBgAIXydkRRgS1WAAAAAElFTkSuQmCC'\n },\n {\n country: 'Latvia',\n code: '371',\n iso: 'LV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MTY0MkY2RDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MTY0MkY2RTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkxNjQyRjZCMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkxNjQyRjZDMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+92Hw/QAAAF1JREFUeNpibBNT/sQwAIAFiHkHwmImhgECoxbTL3F9f/d+YCzml5MZEIsZf37+8n9ALP4PBCMrcf368nVgLJ6sbzUwFn989GRgLOYUEhwtMkctplkL5PNAWAwQYABbtBShZM+mNQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Lebanon',\n code: '961',\n iso: 'LB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MTY0MkY3MTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MTY0MkY3MjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkxNjQyRjZGMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkxNjQyRjcwMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KNMpfwAAAapJREFUeNrsVd0rg1EY/x2bNWab0aLEBWIkn+XChVJSSv4AKXfyH7hyq5SvcqeUK5I7VzIpLnxESzOTYhOab5t3693hffc+TnPP+5Zxs1+dntM5T8/v+TjPc1iqpZTwD8jBPyFL/GdgWvRFEtKuT53AcnIBmwNjO1OotpVgqH0QkDmIx0UYJr28cRCRRAbhjZ4RFlsJS13U65uhGKlGTUiGUx1O3GF0exJ19gaUMSe8vlWEX68yX+MJ/xIu4xHcJO5FtjR4imsxf74GRVMN2TEbUQ5Ew0ioHLL6DpclX5TUgsBTEIHbAzS6qjDi6c8M8fLFOnyPpyjKKwQXDihKEg6rExXuepzEQuCpD1iFM79K7I9eQjFb8fB0BkkQVJd3ICSiJVIR4G+wiztJkX+feP8xCL8gne6ZwLGQs3uzcLjrMN42nK65U6R+M3KEgcpunZ2ps504aRQiOb2fu9ogzHsIC00UlK7TZymxDpMRklSuq50YJeWfB4h4vRARwcSwFd7FM4+hs7QZ06crqCgowXBNHywWx1ePKBzQhD5j3w4Qlv0Ws8SZwqcAAwBwcmoqHHZSowAAAABJRU5ErkJggg=='\n },\n {\n country: 'Lesotho',\n code: '266',\n iso: 'LS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDVDQzk4MDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMDVDQzk4MTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwNUNDOTdFMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMwNUNDOTdGMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0nsttgAAARhJREFUeNrslc9Kw0AQxr9Nd/uHNFSQHEqoKCrWIsV3EHydPEz1Fih4EfIMOXnOQTA3D1FQ6ik2K0hJ6o6rB8/ZHCyUfDDsZWd+sx+zuxz7c8IGZGFDasDbD2ZLWUi9OlUThBBotYDZ7ApluYbv+2CMoShKE+4HHzjCuNvnp0ck93dQSmHxconDowl6HbM6vI5Nijg+V9An/tKedWpZXQvseR7iOEae53Bd9/+GKwxDpGmKLMsQBEG96SIiSQaKoog45z/P7F/oRshQ0gi8zN7pYDgip92j6fGEzk/OaKfbpz13SG+vCyMwL9S6kjNti0PYXQS3N0iSB0gpYel7Zds2Tsdj9HcHv/uq1mO4vmh+pwa8XeBvAQYA1mkQ97LOB/MAAAAASUVORK5CYII='\n },\n {\n country: 'Liberia',\n code: '231',\n iso: 'LR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDVDQzk4NDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMDVDQzk4NTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwNUNDOTgyMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMwNUNDOTgzMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+G0pyRwAAAdFJREFUeNrklM9LVFEUxz/3vZlyZnyKNNXkGIhDmZtEaKEEZuBiFJfSJpyCgpYGEW1cuHLTP1ETCOqiGYJxIUgMtBpoIUVgPxQdTcksnljjNPOeZ17TIghqcfEtOnDfu++eCx/O93zPU5wf2gAsfkWlAqYJSv1cEpnVIgMHJdYx0BUBWa3ergZxHCiVIdQgGYFU5VuOw73dBIIBGl1XI1ipPUzDYn0LvpVI3btJemYeVopw5qTcMOl4niYilyOgEVytova/k7yWpL0txsMHt+hKnGXp5Rtmc3lJO3xJZ6nEopS0gkVLt/yDyqddJqbuEhGZ798eZezOJG5N2tBxPtxIkcDmPUobWNE5bAvBYvk1T7KP6O/p4m1xi8ErKYi2iL4hXlwf4VJLE3saK1bialsMZUVbTzHY183cTI7kyFWBb7OcL4AAV9YWaUdvKOIDtjwtz9UfdzxpPWefaJZsbXxcFnovcjncwGetPT4WrG+ln22nwaiNVX1sTMM7tp/mKIu1dnX2+J29b//2A/lDxF0HmWwcnVKLc/8Kpg41dEr9Sl3AjwhYQ/2+gP9Zau0Vf32c8afiAsqfis9NP/vPerw2Om75UvESiU15Nx41+FCAAQBN8o5alKABbgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Libya',\n code: '218',\n iso: 'LY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMDVDQzk4ODE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMDA0MjA0QzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwNUNDOTg2MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMwNUNDOTg3MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oNTByAAAACVJREFUeNpiZJhqwEAbwMRAMzBq9KjRo0aPGj1q9KjRtDMaIMAADHgA7Vx8bugAAAAASUVORK5CYII='\n },\n {\n country: 'Liechtenstein',\n code: '423',\n iso: 'LI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMDA0MjA0RjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMDA0MjA1MDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUwMDQyMDREMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUwMDQyMDRFMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aIartAAAARBJREFUeNpiZNCuZ6ANYGKgGYAZzfSP4Q8bww9mhq+MdkrXpXlfMXxgZ/jOwcD8n2yjWaD0T0525k+V/ruEuL5fvv/fQuqfig/TpP12V+6oMPB8pczor1yqGje89e79ZBD4+e27vBSHjdb7C4+uX7mswcDDyMDwnwKjmX5+/iIgIi4kJ8umqcbHzsbA+e/7p1985BmKajTf94dvZIsX60lwXn736jsXN5OEpMrWG6YMPD/INp0RmviY2RiYWBieMTF8+szA9JvhPyMDGx+DNBsD2zeGv6Snon8/Ea7m/vOV4f9/BhFmBjE2BkZWoMj/f98Y/n1k/MVIhnu/gk1gPCeoNnSzzKjRo0aPGk0UAAgwAEdbUI8xqJtmAAAAAElFTkSuQmCC'\n },\n {\n country: 'Lithuania',\n code: '370',\n iso: 'LT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMDA0MjA1MzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMDA0MjA1NDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUwMDQyMDUxMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUwMDQyMDUyMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dE0CWQAAADFJREFUeNpi/LtTmIE2gImBZmDU6GFhNAvzRsPRABk1GjdgPKiuOxogo0YPiNEAAQYAG3sD7LiMQpYAAAAASUVORK5CYII='\n },\n {\n country: 'Luxembourg',\n code: '352',\n iso: 'LU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMDQ3NDU2MjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMDQ3NDU2MzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUwMDQyMDU1MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUwMDQyMDU2MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HeS18gAAADFJREFUeNpifK+ty0AbwMRAMzBq9LAwmvH///+jATJqNG7Awrjk3miAjBo9IEYDBBgAMnEF8ALV3YIAAAAASUVORK5CYII='\n },\n {\n country: 'Macao',\n code: '853',\n iso: 'MO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjA0NzQ1NjcxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjA0NzQ1NjYxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMDExNThCNDE1MTY2Nzc5NUQ5Rjc0M0UxN0MxOUIxM0MiIHN0UmVmOmRvY3VtZW50SUQ9IjAxMTU4QjQxNTE2Njc3OTVEOUY3NDNFMTdDMTlCMTNDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bj2DXgAAApBJREFUeNq0lU9IFFEcx3/vzZuZnWXXdQtX1z/bWuimGIFU0EZUqEVgEFRQF0+JVws6ZRGBBUGnTh0CIfJQhzynsUFiKFaHrBC2XDVXd7F1c2dnZ3fnzeuNXoIabc0ec3j8ePP5fX+/933vIXgI/2ngklajtW+70RypA8uVgMebEw2AAoApHKmTzza6JBAhb0UQ+ke0AbVueb/PCau4p4k8Og6CIda55NZKGaiwVTQXxQBW4bBP7GmSABe7RrI1A6qW0tqCuLtZYRmTJ+bakS3AziEMnKIUcpHZLNPyBYbJxd3dPjnwePp+Bv2g1Ah6iF6ks2oRBGCsJNVF8Mv4VqsIOKenaW/TlYH2B/eOXnvSPuhV/HrS6G0Wz9c7mQbMBkBs0RLMZPVLEV3LWxVUlFWuh/eWh5a1BP/v6ptMgffCBXZse9UMkCntlEI3DtwO14fHFycoozw8Gh+tFqpuHrt+wn/O0B2WTxgqsdcatPhaJi5MKKKiF9WR2Ku2+g6FyC++vAy66xp9jXxJ31jfndF+Vl6qahGW1KVoaoZPHaKrs6ETMXNRTZzc07bOBRM+rk4xe4AAZ2y9g4G8TYxLTFIM1wpNDX0dGpkb3qGU0wKdTIz3T96NxCMqVu3k2W+jCV63J+RuGFt4/W7+/TJOz2SiyGQfUp8DjhqCCE8ccOxK5hImYn/cSbJBPXF1YcWbOVV1mtK8pMa8gseK4kKtw18h+6ez0dlczARm5xC0yaWqwUFfa1fwcrj6UJnTKSCcz9Op75+ex54Ozj3jibhHeX1bQq/RwQHtNR37KppFQuZXvg3HI8vppAUltqb+OzR3LTd0du0KZFZLQAGQN4Ju1utfzo7lAfdvwe19ZUoaPwUYAKgQ8M86ceGrAAAAAElFTkSuQmCC'\n },\n {\n country: 'Macedonia',\n code: '389',\n iso: 'MK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMDQ3NDU2QTE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyMDQ3NDU2QjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIwNDc0NTY4MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIwNDc0NTY5MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+x/HZMgAABhZJREFUeNpsVmts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'\n },\n {\n country: 'Madagascar',\n code: '261',\n iso: 'MG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTdFNEQ0RjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTdFNEQ1MDE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIwNDc0NTZDMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5N0U0RDRFMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9rDjCQAAAKdJREFUeNpi/P///1MGBgYpIP7MgAP8+/6D4YqOHcPPe/cZWASFGCgEvED8jAXKYECi6QF4mRgGCIxaPGoxzQALMYoYgZjv61+G30DI/OUP/Sz+D8RvBFgZvr9hZ2AVYqOfxT+AqkLa9Rgefpdg4GfjpaOPgWH9SYKDgeE3F8NHFk46xjEorD//ZmD4CcSsv0ez06jFoxbjzE6foa2Pz/RqfYDsAggwAPr+KDn2/fllAAAAAElFTkSuQmCC'\n },\n {\n country: 'Malawi',\n code: '265',\n iso: 'MW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTdFNEQ1MzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTdFNEQ1NDE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5N0U0RDUxMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5N0U0RDUyMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+taggYQAAAP1JREFUeNpiZCAO8DAy8TEy/2dg+Pr/36f/f4nRwkhQhTATix8bnz4LpxAjM1D1x///Lv75vuHXx9f//lBktAELZz2X+Jv/f+f9ePvm318mBgZ+JuYEdiE5Jtamby9P/fnGQB5QZ2Y/IKCcwCEEZNuzcldziQORCxsvkBvOLnBYQAXoFTKNns8rW8olCmTM4JX5L6r/V0T/j4j+fzGDhXxyQMFsTpElfHLMuLXjlLJm5ZZlYm389rKESzSfU+zwn693//26/+/Xg7+/XFl52RmZur+9Mmbh/MfAABTEHtYXBdUZaAOYGGgGRo0eFkazJPXyjQbIqNEDYjRAgAEAy3xInECTax0AAAAASUVORK5CYII='\n },\n {\n country: 'Malaysia',\n code: '60',\n iso: 'MY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTdFNEQ1NzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTdFNEQ1ODE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5N0U0RDU1MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5N0U0RDU2MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WpzGZAAAA1RJREFUeNrElF1oW2UYx38n5zTn5Lvt+pE13XLhoNPNaZirUqc4BTdBBcdAwSlMFId3YxdjoHgnCIpXohcieDFwYAteCFZFhcKYFVfHKhq3Nfsg6dIk2CZtkybnY8/JWTtEbaMIeeDl5YX3ff7P//9/3kdhz2gWiLAaiuPthT5YNiC0DB0mBGX3r4Dt429DixJayfP9ucMk5Vhk/dBkDaydfBZUgzC7mYf3j/PC41+RySa4cCnJmfQOSgtdUkRdwFXvriYFOYr3tlxG6QyQOD1GTDcxmqnXB66sMW7owrSfd06+xfEXR3n/1DNMnr+HuapOh18AFRvqOnpkgYalYdcCYIgSjqhQX0HRQkQOPo1fsvpbYHxb4twgrz3/IcePjXLgyBuMnzoCW6+CXqezN8/Ijinu7JtlXlS5kE1yrRinVvd7zHt6sCtzpEM6SbNOUVkfWBGPy03GKwY+8c/6/Am++3Enj748BtunhaRKv17l/rt/5s0nT5O6N0P64gDvffkU354b5nKpF9sFXrIIb1KZeXuQLt3GRG2R8XKIgaFfoBc+ndwLAZHQ50rrJxRuMLItTWp3BsTaoVSOAzemODu1Rwq71WyOg6IoqLEYPkPBh69FYK3B4lK4mTgZK4jfHZ6nmsV8OcaVolS0JPc20dwz+T6KlRiolve+qwt7Kc/MzqFmVxdoVWq38hsJfvjgWYZFTmVkQpKKUX15DEslLt6+8tDXPLj9N9K5BB9PPMavV7ZRNqVAVaReaBCJG1z/7BGiQdUVoEVgt7lKPXR3Fyl9cYjpmTj7jn5EMS9M++cIR+expQAVm55IhcJilFrNEC8VrzHFmXAnXDwRoNtv0djAYwEe84BxvMqlWwe3/M4nr79Lh1Zl/OxeJi9tYfraHczO9XtDxFGb1jStaA4cAVfDBBsFJtKvstVapLQh8ANnymv/2E3ieuYCLMs3ue8nEvEC2esyY/Kbb/u5etddqwPkD/nngwEq3wwTZuNQTvTuL/9pZN5KaonnC9LplqkSDlYxhKniMvsn72om/qjO0Zd2o8kE8bG+yYqzb+ivwP8l3EY0bWYyFWzb2Zix4zj/D/C/DC13+DnaEZqZy7UFuH1SZ3bd1R6p9VQq0i6ps+2Q+qYAAwAlKDesr1W8UQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Maldives',\n code: '960',\n iso: 'MV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NjMyMTNFRTE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NjMyMTNFRjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2MzIxM0VDMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk2MzIxM0VEMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+25GwywAAAhZJREFUeNrEVktL41AU/u7tIzdarUU6oGNFRBlm5cafIAriQmRWs5jVLCoMzNI/ITO7wY24E0Hc6x9wXXQjiCBi1YKPtEmbdGqSOdemjG3iow/rgZvk3pyc757vnHtO2MHAdBbAMA0d3ZE+Ghdh7wGP7l0B53gnCT+euAxgLtBfBrhTnbcj0pZDNnSF7rw6DwSuvbjpIUU575B3Ubse1AcsPb0m0C9fIzhNAAkz2FCIh2BYRVjGLZRYAjERg+PYPr0CeZosAjubFaQ0QFOf8VjSqyXokuS4K7oBqBGi5AzqYBxzC8vInGaQuzoGIsKvS0CapJkxcLeeQx4UF2bSRYKWGoZJH15cYlCM4OjnHhbjn3CdPad1+HVLng3T23xD3JrLavseuLew+30NN8U7LP/5BruUpyCq7WX1i2LmMTQ6hemPn7G08QMQvURnnLh0mgZu+hxzVuXMfkim1vO+OWC1H9mzAxzmTrAyk6Y4UqqWDcLnbwwsM5qHMb+exuSHcfxOb1B86fxVrPaBH6qVeGIoFMuhYZxrx5j4NYv9cg4jqbHqunD9+jLnlJrhV5RMQeyBnFMDC0gFLDoK47aA7a1VhPqS6FF64Vr+AmJWyIbxvz7UHVtqi4VaZ2LexvQo89XWVsT1KI39dRtrv17nsSzonLRTBaejTSIv2MtNQr7TRKfag78BtXyOO9mPdS/G3fz10f8JMABK7r8EsRKWRQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Mali',\n code: '223',\n iso: 'ML',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NjMyMTNGMjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NjMyMTNGMzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2MzIxM0YwMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk2MzIxM0YxMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uyeEmgAAAJtJREFUeNpiFNlq9ZSBgUEKiD8zYAHv/jEzyjL//nte8sF/QZbfLH//Mf/Hpo6Z7z/j79dMf6+H8jH8fMjEzCL4H6s6IOAF4mcsUAYDEo0N/IPSTAz4wX8oJqSOl5ACdEOpoYYoH9AMjFo8avGoxaMWj1o8avHQtpiRSmrAgAXa5OHF1fSBGvYXWsmz4KnsYerALSE86sB2AQQYAKnHJTCzkNpyAAAAAElFTkSuQmCC'\n },\n {\n country: 'Malta',\n code: '356',\n iso: 'MT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NjMyMTNGNjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRTVFRUNEODE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk2MzIxM0Y0MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk2MzIxM0Y1MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uPhVmAAAAQVJREFUeNrs1s9LwmAYwPHv5hvI3AvqZrrK6AcFDSSoTpWHIqi/OegQQYcOHaK/QNtWastY6jJ0Zeg5OmwR7AsvPLcPL7y8PEoURQ6wMArDoO94aFaZjKbxU+O3Hve1Y4YNB1HM84vk13HFdGDQ8eXd5RV2/YDCxjoxJ9Vx+M7Hs0/Te8DJqjy+vjB8ajPqD2KVRc91uT2/oGNIGq0mypzAu75h5+SIvL0VH6xVyuyeneL4bSJFYXNxibW9fbJmMdYbq5OHpK9UsYwSZqtL1ZhHX11GSD1eeDbkTIPt+iHSqpBEYjZkchqFmk1SqfxRKZzCKZzC/w+e/NXBdAsJEjK/rU8BBgBwJ0VJGmmDwgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Marshall Islands',\n code: '692',\n iso: 'MH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBRTVFRUNEQjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRTVFRUNEQzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFFNUVFQ0Q5MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFFNUVFQ0RBMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YGjCSQAAA6FJREFUeNrUlV1MW2UYx/+nfenHac8ppT0TLVAEZoWxwZKB4OayGJnL6p2axa9NEtggMcZEvV6yxBsvduONMTF6MdR4sSg6wleaxUFhDM1wLMDQ0CHQjkJp6ddpT885vgcKsjijI9mFb87Ved/3d57n/3+e5zBo+gSPZunwyNb9aAZQVO3ZzVLBKMhaEC81M/pzZUPkvt10zsgbZVnJiTkU6B8CS6EZHqKD5Rc7q75uc/c9zUV3oHP0m/KeQnMyk4usZ6DXQc9A/S9QDqKTQjuqutop1BaNR3DjjnELLcnEROr2F59sdgdXUlf8gWAornEp/d+gZn6ps6rrbHmvxxKLBnF7ASYX6zz+GtH0TUk05PoDj19898hz9U+kxFxlCf/RF+OJpXXYTA+I/S/oYuferray3uqCWCSIqTAsnnpXw2nu0OspYieQVZ43VdjN3iY35dKLrIm8+nzVyMj8TaILJrKSrEDH/D3Sjr1ftZd0VyupSBizhcR69JT7mTNsdUv+ZCqrCSIrqijJsVRWpSZvQNaTUiKTy0iymg+YbqibRm1AL7UJ39bIiCUQKK3hT5x5suENYndtZ5VKS4PDAULzTaal6XVRGg7UewRvs3s1Jn72/eS1O2FpLQ2rAXoKtSFjt/CL7RVfvs1drjMhwWLpqVdsTa3l+05uE4P3Er6x+Z6hwMD4H+HZVSbfjTRrhhEc7LGDruW19OhkKJPOgjDIUmgRZ5s/J3x32jq434FsWWmy7h370VYYhE3irZmVfv8cdX54IpSdX9MqzWmhJm1VCNHRV+G5yFVa3FSKaAJEoJparb+fdX7a6hytrQRqvDjygaHkmGHjxk+/hPquzfb4796cDIGWEy02hwXlRZoxqiYj2W4lrZCthtV4WhE55IotBVPtRRfbKm7ta7Tj8AUceA/gMkDfUKjHd7v/+t256WVQxTgjHCw8ezRE3pd8PZEdbUpf2ZUwVffnTqH7/WcXSl9qRPPHICeWgX5fpLu31zcWWP1thTYt7GYUsXiMy4PUB7QW2YAC2ULEDCbZ/2HN2IWXC/CiF8KbU9HawYH4Dz39V6/PSIGIdpwG6LJp+f0zccdAOvg5wlIxP3H+hZUOL4/K2plkyzfTxVd8kzf8E1iMwKjXbLEYtAgeZnAxDcfPv3VYbKnVKWzZ5YVDl0akmdEJhEIay8li0+ddjULS0sguGcpP/ej6dfwelgdg1Wk6eoStlHc/r5n/5V/mTwEGALOVkZrh0WmoAAAAAElFTkSuQmCC'\n },\n {\n country: 'Mauritania',\n code: '222',\n iso: 'MR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMUYxOTgxNjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMUYxOTgxNzE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFFNUVFQ0UxMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFFNUVFQ0UyMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+I0M3dwAAAo9JREFUeNrEVjtvE0EQ/vZednx2/CDGcQiJLYMQ1EggRMkPQKKiA1FQIaVKRUWDxA9BNKRAogWEoKCFIgoSBixix1GwZRs/78W3xyGFxmcfyKw0utHu7Hwz3+7Mnth4fmUfwBqlh8WMFKWuBQqOfRcCrkTZpQkPA09BnyL1KGMuYEFxJU+2jrxio0DZp+7M62gWey8QOSxPICVcZBUHd5bbuJtuIUc9o7gYe+KPPaGshWUowVTSKSO0KR1XxfZyC1vZQxp4MFyBh90TsGhtENLm1yFyjGte1IwnBD2tWTCF54Mm+K07OnZGJtPiVq4/GydQs2JIkgnXt3FR4h4bIjrVMruL8QHW6KhLXWZgktoi5cbBJq7Xy8gyGFO1fVBpIwO9vNRH21GiUz1wFZzVx1in45c/0sgziJO8UK9HCbSDQOR5F1T7V6CWgavpIxQJPuA6VCdaxrJU3pDWe5kjnIkNUZ3E/YPXOS/BVilGUE7VSQxFBrlF27cMTA0ps6nABUb+tJfBnqVjb3PXp/EznR44GvpkQ0qTepVzeWb3sbSLBjN93M1xrx0dWJcGiodbjTIUOq5V3uNBrokLzEyyIeWcPsF9zh1WPiBJ/XajBFfe9pCiEuzV3WntUjqXNF4i1a/WPyGeoDlvcn8cp2uBpDEE4kN4wySufavgBY+mrI/YVKbe6p4WVugOS6ZsjPFusoRTX85jm5fnptnFhjHyz7vOIJ60VvGos4KmraFEUDeklGbK+Hjm33meHTo3eX4llS2D/r+yZfY4t8y5FV422xOzdMzwjH8P6TAt26PhYES9xkbi1zUbRo6MeIHNzA/NvK+KBJDtMCacuXrzX71O/3L8N2At+OVJLfjXp/dTgAEAlE8F1+TZHx0AAAAASUVORK5CYII='\n },\n {\n country: 'Mauritius',\n code: '230',\n iso: 'MU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMUYxOTgxQTE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMUYxOTgxQjE3ODIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUxRjE5ODE4MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUxRjE5ODE5MTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lva3PQAAALZJREFUeNrEVsEKwjAMTduIbjIcO6h48CO865/4j36QCB704BBHq4iMNWbQQ78gefBo6OX1JSENntfbGwBsmAFkUDHvmALIThFxC0rABf10hB+mjCmOQppjliMe6qOO4yc2NnuJFCya+NVxTL7QEZ4vvUpzmfayenFQMwchYcfsDPUTLzy1RgQculKnxm7a6wj7z0xncu1Oe0oXJGiY8PouXNZtUnDYKNVY7z9OK08lvPqEvwADAH3qLsG8TnJFAAAAAElFTkSuQmCC'\n },\n {\n country: 'Mayotte',\n code: '262',\n iso: 'YT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTFGMTk4MUYxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTFGMTk4MUUxNzgyMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNTg5MzRERTk0QkFGMDJBOUYxMTU2OEFENjQzOEYzRDMiIHN0UmVmOmRvY3VtZW50SUQ9IjU4OTM0REU5NEJBRjAyQTlGMTE1NjhBRDY0MzhGM0QzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pK5/OQAABEJJREFUeNqklMtvG1UUxs+8PbYndvwKiZ3EiROndVJIE5M0BSSya0slkBBSFlXYtGWBhAQCsahY8AcgdlQQiQWwRIIltI2g0ECqkHfckCZ2bCd2bMd2bDLjGXtm7mXkCkTVOKnEuaORrmbmd7/znXOGwBjD44H/uZPwv4I+gqsjtLeHWUonGXDYILIBPQGCodFyRCvlqbOD2uIKBkQgRDodmKYIijP1nyaeQBNHqMaodu2tymrEdO1NlM/o0TR1fkSdnSG7gpgAmufR1qZ+LkzPLAAF4sMHzJWrtisTlME6UTXCupbaJfJFvL6B8lkIDuB7s9zgGb23D6an6edHyM52+vKrWLBXkylqbp7UFATGKSepRhhUTYWNda7JUcmlye5Olub19YfMaFjNZbUffmQmJyGXpZub1UJGUyk2kVR5gho6xxBPYcgj7TKA2TipcTG1espKXS9z1AtHoGPR6KEoGldfsNfpdH337R/xnaJVYCsKMBiZeCKTq5oYeOfdlzEm5ucWLRYzb+WDhl3He722vLK4tHTh4oXt7djuTsrt9tyeTn/+RQTAVq+TWk8JB3uo9z+8mM2kFFkaeHbg9q1b+5n9F1568b+ox9ItFgqxrehwOLybSICu8RwLUHN5OIPb2mZ3ubk2n2N0zAtg6gkKAFWEsImlY1tbw0PhUqEYi8UaohVFMQvWUH+oqdkh2B1iRdKqUjqrG+gSwX/86eDNr0cl0g7QXKlaAB/mCwW7yyM02f3dfofLWZEqDQ3J7xfaO7yFwl6gJ2BsC8UisFarRTXBDk6ZP7uR43i0/qfEAbI0+YAQ/P5OlrNyLJPP59wtnlq11hCdy+cye5mJidcl8YBlOIuJ38HE297IDfioGZh0glRA6wS9CrBlfiNy+FoXxRnDKIlFl8N+f+Y+wVChgf6jDRk7P1aRlampb6bv/LS5sc6wNEfS7Nq2k4bvJ90uDzol6Hcm/AIPrbGdGgaKoePb0V/u/vrl1FeJeCIcDjdUbTFbrl+/+tvM75WK6O0IJJIJ5O+iSDanwaqF7eX5QBHNeoUACSzBIKSl0nmXu2V/v4gxfenyKyc0X7lUpgno6Oi02e3VWjWSy3pA9gB8cDOJALFAvvfJA6Njorr2lyS6SMpmszubnYokl8tlm8123Mjc+/muy+0Ohk6TBJFMJDPlsu/wQMwfMCarVsxg2oQ1XM3vmtva1eEhLEqhgQFZVjKZvXg8Pj4+fpxqT0uL0doOp0OuyLup1HOhEOU8Y6uPclySkKZ12Gy4PjzmWnVufmE9sur2PLOTSDYJwsmDvraymk6njNJ3B3pdbs/q8tJ2dLOttVUURU3TKIpS5Gqr1zsYHlFVZXFhThIVn6/jbHjoqX5PjyKbzao1lWXp7F7GarUKVmutVhMlsVQq+3w+BKQkiX2n+hp9fhxa03WSJIx19FNNk2VZeMKHf+NvAQYAoQ8NT92b0fIAAAAASUVORK5CYII='\n },\n {\n country: 'Mexico',\n code: '52',\n iso: 'MX',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOUI5NTczNTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOUI5NTczNjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUxRjE5ODIwMTc4MjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE5Qjk1NzM0MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0LwZHQAAAaBJREFUeNpiZMhw/8SAD7x4zODm6M+wM6+NgVjwKKeS4enUTgYOQVWcaliAmJdhAAATwwCBUYtJAv///aOfxf+B+Pev7wzPr51g2NwWydDkb8Rw5dQR2lvMCMTvX19guLWrleHW+bMMBw6cZygPtGV4fvsyLSz+D2f9/PWK4T87N4OgmgvD1TuvGBz8XRnEeRgYVk1sRKj+/5+giSxE+ZKJGUy/fHmLgecfJwPTh6sMHB9PM/z5+oXh4zdWBo+CLoZf/9kYnr+6zSAupsrAwsJKLR8zgskvnx8xHHv0jGHJ+a8MD8UcGFyqehg+Pj/J8OXjdwZbHy+GJ88voain2OL///6CaW4ucQZx9tsM/zS9GJZ8MWa4zf6HQaK0kYHZ0ovh8/MzDCJCsmAD//z9Rd3EJSGlyyDCI8WgzXKZIUDoFoPj48MM7L/5GYT5XzJwCIkxKMqaQf3LSJ04RgaSKk4M/C/OMdz8+53ht0kOgz/7WwZhEXEGaRkTksxhISc7cUsYMRgBMcM/YOplYhyAIpNMS0crCboCUOL6PBAWAwQYAIwVfZVkoDrqAAAAAElFTkSuQmCC'\n },\n {\n country: 'Micronesia',\n code: '691',\n iso: 'FM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOUI5NTczOTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOUI5NTczQTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5Qjk1NzM3MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE5Qjk1NzM4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pVbFKwAAAjtJREFUeNq0Vt2KEzEU/jJJptMfu3+u7ML6i+zdXop4JSi+hyD4ArLghe8h+Bi+g/gCXgkFvXGFdi1ut9NpM5N4Tqq0CGmbcQ1th+lM8p3vfN85iTh937tAjeHc/CoEag1F32uxkxJCy8vKg7dTCfsnipg1YidIAj3PDW5uN3B3N0N/PINMRC3GUWM0q3BvL8PLR4dQBPj2wzd8HU6R6QTifwJbS2mlz1Y2n8psZ5VDU8etI8hcUQKVBNwl0FY6ZzgxFsO8hJbialPNUS0vyQCjosT3C+vvOYCGErAuPCcamI10SZqya1OZICUANjCnt5vJRfodOx2Ylo7Sbr3r2xSQdTWAk9/uPb7RxNQ4VIT4c1IGHcw677U0qMjQbUh87k/oqujObV5O/OrYVLhD5fL8wQFOnxwhUwnGMxtkUJDWEA6vHh/hxcMD3L+eITcVQiWerBKXyWn64TTP/1rvwyaVlab3kzUtLehqnjig5nBy2IYhsQpK9w9KvQqk2lCq9zvaS8H6fjrLvfsRCDaoMRtqv5OiNyi8ftwgON2h9tigZ/1Lg6K0PrjtplrZSle6uiKmvGCmF8EwYWbH9cuDA0ql8M+41LSUXtd1/XttHf8tFbPfIjY7rcUuNSS3L0uwyY4VvUlMjfWsXz+9hTfPbnvG+Qq3X1mvFoSqiBKnm9kyOUUp3qRb/RNwh/bfL8MC7z6e+c7GjWKXGkfsnhy/OxEAO7Y3mHiWOy1V6yDAwKM6xx52+/IRKHb8EmAAirfmzWzPA+cAAAAASUVORK5CYII='\n },\n {\n country: 'Moldova',\n code: '373',\n iso: 'MD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOUI5NTczRDE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOUI5NTczRTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5Qjk1NzNCMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE5Qjk1NzNDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+UdXXEwAAAipJREFUeNrUlctrE2EQwH/7SDbbmI3m0SpF2iJRaPEQ8FJE8OJFD55ETx5U0EMFEfInWBEFEfXmQfAmCFqhFKHSg+2lBsFSNAj2UFqatNQ8TLN57ToxBy89rCUxODDsx+zs/Ha+mfk+Bd4W2VVU0YM8u5fiauo99jc8iXYYKq985G+EUKOOGHb300VD9EBUeiR7AquKqPoPwS2gT4pTrYN/PwQi4Dptm6J0C9wQmCG9cghqsn76MMT8bAgzKjb5AUPeuY0ugI04pD/5uH39AEGBf8+FWVi2KLtwU2xfMhpGtAtgRbJa/Kzx6EUfM48tEopNJGsz9SDMk5cm6SVNxsc7WPfsuQPhqM7l8T5G5n5S2qgTUFwSQzoXT5lYluRQ9Z6KN7A0jr0Nc2mNuGUwGxvm+KUVlKbD/Md+Brc01nMqTkECxju81a0uNnwFPuQd7gYusDwcZHpglInCLcqObPs+G0UazHE6CZYGUiVo8ohJrlbi2sgb1jMx1paCXBmdweovELH8KH5oNrswTlZYJ7xR5Ky2SKigcsK/xmTiNdsrVfJV7XdJvM6z5+aqb8Lp8RLJ5zD1TmNhuohhNomdV5lIlRkccqhvieNAh8ENG6KW6BicsRxWs3l0SfLkOZejSanFqtxKO94DegYrArFlXNwMjB1zuX/nR/u8NgX4Vd7rbZ+uXRKt4JWsPKV7Hal7ZbMN/VvZwycCap0VtT/r/+o+bmVc6gX4lwADANw8m6+4QijQAAAAAElFTkSuQmCC'\n },\n {\n country: 'Monaco',\n code: '377',\n iso: 'MC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QjA3RTdDNjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QjA3RTdDNzE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCMDdFN0M0MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCMDdFN0M1MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+o1HuEwAAAEdJREFUeNpiPCeo9omBgYGXgb7gMxPDAIFRi0ctHn4Ws/x5/35gLGaXlRkQixn/fP4yICUXCzMP92iqHrV41OJRi8kCAAEGAK++Cy3NEBqaAAAAAElFTkSuQmCC'\n },\n {\n country: 'Mongolia',\n code: '976',\n iso: 'MN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QjA3RTdDQTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QjA3RTdDQjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRCMDdFN0M4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRCMDdFN0M5MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XDrqKwAAAkFJREFUeNq8VT1vE0EQfbO7vrv44jgKiZ1YQRb5ATRRJCiQkKADGn5BaKho6egogQ7xExBlJBoKUDpEgyhQCiJSxBKREcaJ4yS272OXub1EwiYFEnuMtPJ5NLo3b/a9OfpaX/4GoILJMHxoPCW0xnynjacPn2Dj7jqW9lr4m2gvLuPG2w08evwAB9U5aCmhON8YqzoFS/cJImCwaQOTwnkIPv3JpO4Rpq4lUBc19DEKCTGZSH+SBVx6eYLwVoykJ/4PsPAZvEM42VSItiRInldVBOMYKF/nMddTTN1MIEO+40HRwCwiMyKEdxIGH6F6L2JxaZsrBphy+yQdATVrkHYJgw8+hh9Z9iv8f0Aw0Z/2+pdQv3tWNTIVE+JtbqAuuAE+P1hs8xpU4prYMWN9SCDfoPmpj9qzAQ5feWwpgT7/qkWNlS89q/C4Kxwz1nkLqqYRrKUIriR23N7lFF5TQ8zxmeUy7W7cY3esE8JoS0BWDfzVFIYnEW0LW2CGTq/4lPHZeh7xy3lNVu9HKDVThLdj6CNyq6pz7cSsM7ZJSyBpSwRXU4jMx0UDizJbmTf3/gsf8Q7h4LmH4zeKYbVz4DE7kTBQC8A0j1g1mCmryVzK2ZJX4ALRvKHiXcLRa+6HDIbvJQbvJEwCKy7njMWMsWuxtVaxGyreEfi+HtovVfY93l2dsb4uXeCRd90BVyxvfmfEVspGKhd4TbKVbEPMNvqs+FlDBW4Z7/GYK9m4M8CzhSLK+XO2KmUtF5dxqLFfAgwALQ/bbU/KwEgAAAAASUVORK5CYII='\n },\n {\n country: 'Montserrat',\n code: '1-664',\n iso: 'MS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzRGM0JBODYxNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEIwN0U3Q0UxNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRDk0NjlGNUJGQkI2MjlGQjlENTFEMUY4NDU0Q0QwMkQiIHN0UmVmOmRvY3VtZW50SUQ9IkQ5NDY5RjVCRkJCNjI5RkI5RDUxRDFGODQ1NENEMDJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+w2IgWQAAA5FJREFUeNrsVG1sU1UYfs69l7WzWxlt1466spISNs02ZLgExpeogAmbGwEyg59hQKiO4PwIKmqm4JQQ1MVERhxkGfiDRBf/YACDQBgyzDbiGMOMwcCytdCt++rXbW/v8dzjiIs/jJnun0/uj3vved/nvO/zPueQ3u0vOzesrOtMrm7suNvSDJg/r3DtOPH+qZJdq4+KCA6KYugVu79225wxZ57jjc4Rb4AgCX8LCogihNlfeDY99el63/mOyozde56dkZvjG45DVgdUMXmG/gXbrbYK/d7qJ/YLRZlf0RFfgGXhn4CClD5TLxuMi/WDbsst83NPe7MW9dZ/Pb3y+ciez6jTVRjrxtqNje3xYwePR70DzRf6Y0qc/MlOqFZiAhAIBF7u/aoFtvbITISj92TBM0rjQwGHxaBEYr+FFDOoIUUYy3DJXl+6MjZrdroqiA/++rhPTSeI8Hy2wTAQBh4AotBUMhGobIVTE6nVmD0QGR6IhnJLltgTY0l3ro+y0HMt+kcLZi3Nv/lDc9DhaDG7bof9ZJoUI9MAhVfGeP1Wi2l3zebs/NyermsfvPetp+8OkMGb4B1h+uvOskU7X1ywLT8uN538qFOX87D1yaqyK2/W3ly7udziN176vq6p95MbabcVC9ovExoDJIqRh1ymtw+/GxGtKf4O0V4gRwP73R92dPURmJlKTBBx7ztVDUtjRT0/1lUdeqnR1/STtDpzZFnf6XtZ88sqznzT0p06x7Vlvt5t8iVdvXxhCImEntcVOHJoq3NZXs0Bf/jSzvPXjavW5a9faKtvOAOwAEEgVHIEB7989ViD39olZ4MGWc7JX5TQ0LxrbTGkSj0Xf950sX1fcfGO5UW2tL6kRCQGA9fEVLTYebYfqXYb1dkDROftx4rCmYAFiEMbKSFAGZDJvxUCiVVEtUwrk5Joium4BwJ87HYWRqBwH/hPn6qe+5jdXX7YYDkuFWx8a01p/G6woHAXYGTUbIxsGssZHdFUF8bV10Ykcz+xF8qXkqE9bG/Ky2H/5Lar5LXS4XKdu3VUKMnrXpKRWryl1+u5QbS2CBOExW3FZCBSDM7NmfdxZZhEznqiC498l9badoXABKjjvp4s9R+HZRSwpRj0wVAIGGIG5w2NHxkJkwTlkzBShDkvuA4Tt9YcSvCvQO4fbooJVFSlEhsl/huQiTefIFBJVVVMARLquOGmBP9T/wW/CzAAKWlmnQeZkEoAAAAASUVORK5CYII='\n },\n {\n country: 'Morocco',\n code: '212',\n iso: 'MA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NEYzQkE4OTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NEYzQkE4QTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0RjNCQTg3MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0RjNCQTg4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AgxteQAAAiBJREFUeNrEVktr1FAU/m5uMppOY9up2rEVVCgtFEU3iooVdNWFe3euXAiCf0DsTty5E6VbN+5EBdGFuFGLG3Ezm/rAQseBthJppm1y8/JLTEREnHScmV445Obcc853njcRDQzXAYySHPRmWaSverbBb8+egGvYptUWcEjaCZFS2Caw3o5SHwGXjQhaDFQCAdWLiImFIardP+biwREPFciU13XgXOHRGYVnJ3/GKrqR6ogkSbsJKVMIDctmgG9eBE8JNGWMaqinuQhIq9SICzjTEtikCZ+mbhxdhz0cY6oh8WKSHFre1GNcnlnDqUUDtWqAUZ5dq5mpE+p/gUMaSWq6x9Zw62oT1opA+ZPA9GcDygBejvl4clZhoxzj3k0Lu+ioXaDqgjfX2r8ujzxtVfq4YPq4cs7Bmwkf9bkRfDcjjF9awYX3Jdx9bWG/kmhkA9Yi1U7LiHMDdVZwYtPAbK0fM+M2Lp63UwjLFZhd6CeonsrITs9x3s2vRhSEJvB2yodO5Dggb6/C8bq+pREpLGtkPf5w2oN7MMb87UE8vzOI5mSMx6e99FR2A7hC0adDjPYj8OF6BYeDEk64Jbzj3lsE5vsUBrYw0S2bK187aPRLKWSTSexTGpZY4QRmjO9L5K9GEQ4EEl6xe8wpXOMNGjzErpVpo4W/miPZD/AiKfMkkel4cyUG3Swa+Qd//S/8rnwWO7H07JfH6vGvj/NDgAEAfcqvgcMO6pAAAAAASUVORK5CYII='\n },\n {\n country: 'Mozambique',\n code: '258',\n iso: 'MZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NEYzQkE4RDE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NEYzQkE4RTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0RjNCQThCMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0RjNCQThDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9o9/QQAAAvpJREFUeNq0lt1rFFcYxn9nZnez3x8xGpMl6xpMNCaglCiliAqKYEVbCQriBwreFEuhsVAU71oopRRv2hu19QNBBEVQLxTxoqEgGsvWoIwSFzdo/EjiZjOzu2YzOzOeXan/QGcHZm5mzvmd55n3fc4RP36yafzYlmXteFWDt2VQBA2+IvJ+KRx69BvJRGTv9l6mkjGYKoFlg2joAgzlQSLMxvECmVPDrPlnHOYFIeAF22mobEVxHEaaQzRJlUOX/uW7axr4PZAINBQuRuL9es13S1obNi2WFMtcSs/nwJe9FFvDMGE0wnrjIxg5r20J7DmFFbM6z8J+dm3tZXhlEkomVKV699iGp/a0cFjgeGkKCp63ldBex+gtV7h8YYi//AOMHvycuWmdRXgxccd+cT/Ur6dVf+Se/g5t5WsGj5tktqW4ZZT4DJU1/hAPkgEGDI2sWWSpJ4QiB9r/V3FHK/xdKrBTH+XrxRXuyBn/CE7QZXTS0T0PTa+Qzs5xWoTZ40zwhJI7VZ1IOAz1P+ToL61sWNXP+v0ptvw8wPeFCuGDj6nM+Hgqq7wvsZCxlnUcCaTcAWsZL7/mekg8DbL75lp++PZPXnWfYPhMH85PUayKQAQsqvV/KwgJ1RWwpyUOhx4VuGsFuX6lg84Wg7F3xzm5Y4p9083Mj1dpKwuy1jTrqqNocgmugHXTpll20/nfX7Fs7AhPNiX59HYWezDK5OGldM3EuOrz8lVVo0hUDgm5U9WZwCo93a5EnNVTjF2OY8358KVKtPaYvLmp0jbYQ+6bzUzmDTodX731HNcCRBAxdR+epiqqv4qRj6N6qnSfzBDbL5NL9i+Wu8lVD5CaBF+sgl1RKOajxJdP0nnxMb4+E/ulfD0rk0t1N6vrYKE4mLJtTKuJ9l05Os7mPoh8Vqv7/75yGSyk3Nl8UO7/Fl2/jZA4lKeWEdbzxgA/gsuFMOH0jLRWw79a2v1GWltuLLQOXvDFCyN1LhtRohhWjg87kNpQZu3oY7wXYABi1iBcy/DE+QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Myanmar',\n code: '95',\n iso: 'MM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMEI3N0VBQTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMEI3N0VBQjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0RjNCQThGMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0RjNCQTkwMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hqhQlQAAAbNJREFUeNrskrtuE0EUhudy7L3E9q7XlxDZEgbFCRApQkQgykjpeAFqyrS0afIGKdLTIB4gj0BKBEWaSFEig41jiPBtvbb3Mrt7MpZF7zWiifJLoznSGX3z6z+H7uweT6nCGXUmAjg1c4ppqI4T2I4vwljTwCZaKbI/9I/Wov6I6WRhQY/l5OV5oZnP7WyVp17ouaJSMDdXUp+/XA8FumnFpWkkhBIkScQ09BGJ50fP1q0VDfZeVw72X77aLjNG6zXTdUOyrJg8cYxFS7vpuiVLf/umvvk4//7d8yePTCFiXQPZXR6NBKVHy1DqD43u0G91HBn9Rs20TCWXSUfRP6Ald2h7ugqN9ohR8mKr1Po1Pv3aUdJ8NA5kdzk0yPEwxnyBV61R3lA/nlwYWaX9exKE+L3t2OMgVchiuAwdfkJxQlUosW+NcROw+oD/uB5UVzN92+tcMlirOah7CLF0QOJk6EP7U0j4rNLp4DwQZ1G5oP85d+c7HvXQp6CjrxExpWoiNPWfptjfhaWzkc4WRuY7r6U4ieXfLSgLwnkS49CE1QWf8oSBMPLfdI++R99F9K0AAwBXEavacm2ESgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Namibia',\n code: '264',\n iso: 'NA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMEI3N0VBRTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMEI3N0VBRjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEwQjc3RUFDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEwQjc3RUFEMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+rnH82gAABORJREFUeNqslmtsU3UYxn+n7dq1o2Mb7OJUBGZEjck22ECHiW4EI4iiDEb8IoPAMHFsA+/6xS9+YAheEgNjDBkDhiSKSKJhExmg8cKQXbgMAxHGGDCB9bKu69qe+vb0UBiXgOhJTtOe9LzP//c+z/89RyH3g7NAupxu/uthNMBgANo6Medn8dX2cmYca6HjpTIGunowJtjD/wp/dJv0L5ELSkhujIEBCyhyxeKDmMCdiZqM0HlRlu/j+XXlfDkvC+tHqzn45ttSKxHLiPsIBQfBYCA06LebojeGRd1xWG0D5GZ2EAopNJ+8H2+/FWze21O2nCK2IJuNG19jTqAb58TptBxowGZ9FKPVpokqhhh8jm5M+IkIiyZBI0mpl5iVfYzJGZ0EVAPj7u1hZ9tDXHDERxYWPm9G6RxgxtoythVnY/24isPL3sGDGXtCLiElqAmE/EHcnhZGpzxO+qYqXTjcV6GdOqmNwuyj5IzuxmIKMirJiddvYnNDHsR7hlL6hPKQUE7JpraulKLBszgmzaDl911C+QhxYUo1IJVNeC+fIQYHefNXEqoqY7Fnpy4cMGIa4cTljJUAKIzM6dcux/QKjMOKZaQDn0dabvGLqE7Z59Mo6+dnM+yzao6Uv0WfRplzHWUrGSlPkLppPfunplO0+1XO7/5aFzYGCfTGk5joJeRScRyK1YhVZ4ikxH58l6XV8RK0gCqUp7HkZ7Jp8xJm+4UyZxq/HGzUvIxSKtdSroD15Szq+551y6dJHqS7o7J1YUNIC1DD0QyS4rz0uIcRCCr80ZnODx0ZIipt7boErgFeqC7TEhu7cjWH33iffilvTxRK1EhcdC81yq117M1PZnbDQi42fQtp42C4DdQgV1Mt2+ZidzK1eyZy/NxfsnIDv50Yg7vXDKc6sDydRe3GUuaqkljx8pDupS1MGQpe46WTvGKhrKlgsXcXayufEcqQRomqaqJaLqPCsn0Y3ifb0EzjgcdkIRKg8+clRC6eW1PKtvkTsH0qXlbcxMvBMGUbY5MnkVa/gZ+npDOroYSepu1C+bB0zBYVjG6IIb/C4lZpq0H8bD+DpSCTzfWVFHo7xcvptGpeXp/YLqG8TN6CMGUZC13fUVM5TaccP4Ty1sJX9qXLx0wpsuWVLGyr1nDk9feEUrxMmCBrU4cmNlW8rP+JpvwRzG1YJJQ7IHXcTSlvFJYxhl9IW09jfiqTOklskXoOR65Mn+YGIdQTG/VSp5y3HDYspcSzi+rKJWILN3h5a+Ew5RmhdMj0qVoSnT5Hlr2rUcZHp4+e2L7WiJdb97G/II1C8fLvpm8iib0N5VDh5pNYp4zXKAs9p3FqlLqXtuunTy95C1dBdelVL33qHVNeeygza5pddQsm2O2fCOXSCGVcwliNUlEUVBmNfZ52xoqXaVs2sK8ghaLGpVz4UU+sxfavBPXDrYT+POG69HKp/bgkNu7Kk0QKKYarXmYVfwhfVFAi06f687LI9EkeE6EkdDdPbrfSbh3t8np9dmviA1LiCqVfEtvOgyl5ktha9hYkM7exggt7dkS8NN8V5RBhk6rEE5sUG/HSGMOgq4eAv4vJxZLY9ctY5JEZu+JZeTm4Oy9vGS7FbHZLsfBbiDvodGKxJzG+ah2/znmSFxtLIl7eI17abf+LoP7G4/5HgAEAvGpSdeM9fnwAAAAASUVORK5CYII='\n },\n {\n country: 'Nauru',\n code: '674',\n iso: 'NR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMEI3N0VCMjE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMEI3N0VCMzE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEwQjc3RUIwMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEwQjc3RUIxMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zsfIiwAAAWVJREFUeNpiZNCuZ6ANYGKgGRg1elgYzcLwm5l2RrMw/KeJ0Yy3N2jzsP/BJsP49+8/oKUszEwM/8mxnEWQ+xcvx290YWbmb5++f//3l4mRke0/Izc/J8PffyS7mkGtCU0A6E6GJ+8ZhLhs7dT//f9/9PAtho/fGST4QaaT4npmBkFnhv+MKOjTT14hntQU+wmV3iFuOv/Z2K7fev3z408GFhZ0lXgRCwM7amj8/cfC8N3PX6+n0JqDHZQ0uwusvnx8u3je0Z/M/0AeIj9d//vPyM7y9+cfDnYWaGwwM/3+9YeRjYXh33/Ksgwb8+8//44cu7dh3w2IwLYjtw8cvPXj9x8GmGVEh7WYA3rMcrN/eflp34XH7Gwsxy8+Lu/e9ezxO0Zh3v9//4MimYQUgrUqAKblD99AzmRiZPj2G5haGH7/I8lc3GUIMJ3xcjAAnQk0kY+D4Q/J5oIzOh7AyUpJRgcIMACUJouaxkAcBAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Nepal',\n code: '977',\n iso: 'NP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRkNCMjg2OTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRkNCMjg2QTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEwQjc3RUI0MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGQ0IyODY4MTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8vLQDwAAA4RJREFUeNq0lXtoU3cUx7+/+2rSR9L04SNWbdX6RuhGcW51uKp0FXVsQ9gfUphTBO0/goj/iCCICBNREJyzjk7ErlPEirZqnYiPWtOVRTYb1zZVY9NIjbFpk97eR+5OkmL/atLXfnC53PO793zO+Z3vOZcZhoHRFvvspyoIGYeh9rlhaFELxrOMpspR97hEH64JPt9W4Wt0QbL9ADGTPEUwVSshOFcLBard1eKZzqqzOcq7eqTOKgQnTkkACcG9fDoXSMnBtrfNuOc68eXWHspezNgHshF9+PofwDwiUBkHp9kOy1AYZzuquQvtp4/OD79ugtm+ErxpwtlzSQWi62DBPnjkMJwaj83eJtx5dvyT3a/rHoNLOQLT9GEfxtSBmSTG7xyHxbUXUHj5N/xjzoNuMJzw3cB118n9RUFXG8wzyyCkjSv7hGDF0430VcVY7LgJ25ZNsH2zASue1EP9Yi1a5AhKBrrQ8O+phQde1jQQ9GcKwBJ3aUwOzEkSQm1/Qw8GP7gy+19hZmsj5qtBqLwAW2QIh15cgufpwe3be267UxmrABOTgoWEm9NyoTv9cH1ejuklJXiZYsPvjjeYwS+AlF9M9ddAp04SZChQAigP/JXdLlmr71kWVULX95CLhxMCG6pKgysTgibg7YMbyCDb/SV7jdb8DUcQ6q4lsp0UwIaFQBHQ+2pQhBbOp2dpwhmDRBVRFOjyIDTzXGTrg2hs+5F9F5G/vZW37ijCXmdMUGxklGpMmHyNoxnrggJL6RosvVmD7DvXECndiFrPuUXrfX8EqJU+Hu65uKJjqh5bWyXMWH9HvmfnY9r5UxDsM2I2ueZX9K0vx0XnSW4LJzbdzfm0GIM9zmilx/MT4ZINDzFv9gdodJlybQgULEc/xXyl4xdxtb/5MbXRsrG20dgmF9VY83mhv+kdqaE/AL3bDS9vRYhG5tWOc6ZVfkczwRfGMzYmDxaybJC7OvGiYjcGHjlil3vrLoSfP4OJ1N4tWSDT36qusyqtONDaQvCCscKFZANEVHj037qN/gdPYj71UD+ktEwwQYBAovISfI7yHvXtZzLKCne2/Jm5ogiy79WkwCZtyJrDwuBS06GG/fFg0mgmkw3KSFYq42FXgmhpO5b11YIdXXVZHxVBHXg6YbAjNc/z9bzvrTITjGSHF4XPpcxVQ7dS49dSdKVk9o72/n8CDABnj2XIyb5lqQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Netherlands',\n code: '31',\n iso: 'NL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRkNCMjg2RDE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRkNCMjg2RTE3ODMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGQ0IyODZCMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGQ0IyODZDMTc4MzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dLNUtgAAAEBJREFUeNpiXCej8Z9hAAATwwCBUYtHLaYZYPz///8nIM1LZ3s/j8bxqMU0AyxK7j28A2Av72gcj1o8/CwGCDAAa10IGBJ1C8IAAAAASUVORK5CYII='\n },\n {\n country: 'Netherlands Antilles',\n code: '599',\n iso: 'AN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0ZDQjI4NzIxNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0ZDQjI4NzExNzgzMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQkE2REE0NTQ3MzVGMzJGMUI0MjQ3MkQxOUFBQTIyNDciIHN0UmVmOmRvY3VtZW50SUQ9IkJBNkRBNDU0NzM1RjMyRjFCNDI0NzJEMTlBQUEyMjQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZDn+FAAAAexJREFUeNrkVM9P1EAY/aad7UK72RZkNSgmROFiOHEyZoUQIgkJRw/Gm4khMfHf8KxnxRMQTsqJAyEEDv6InkiAhUAWVrbID3cL2y67225nPmd7U9L2ZGL061ya7703r+/rDEFEiCxndcUcGVOuXAVKW++cez/M7tk54/GjaKIEf6z+VWkinl8LW4vEEmksItWj9YKflG1GBBglCj5A8loiXnpxaSu8i1SmF2vfTuQ7tKmf2S5y7OhUuXSSWS5pZIdxH5CEfy48i9y7KXwDyQBWHj4fNvS2qReLQNKAFkA1yJNEBGKEWRbMtKE4VQ/9BoDf+G5VLIFngC5Au6aptRpHZGEDkwGGgp1/Wy1pVU3OTI8XCo5ZPBbed7b2c+tFgDRA/fatztdvRj9/PD6vXAT+LisQIX0/JCjCGG6sl/O7tuuKyQnjqpgfgC1seq68mSvl9yqMkbBMhHQ2dIjIT0/LrusamY7BwZvFogPgZYf6GCbKJevo6IyxmKyt2H9f7e+dmBz49GFB4B88yb57v3d4kA9a9agDMfX2S0Rblmgtt119+SqRUj1seaSSz85t7emkeu8u580oSxhb+1+Ft3pKwes63tAbeltNsFbnY3nxp9EpVE2gSrILWABWuAdm92HD+F9vvr9R+qcAAwDK6wIXIkUhaQAAAABJRU5ErkJggg=='\n },\n {\n country: 'New Caledonia',\n code: '687',\n iso: 'NC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTc4OUU5MjExNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTc4OUU5MjAxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOUZFRTg5QjJBOTY4REI3QkY3NEIwMDg0OEVCRkM5N0YiIHN0UmVmOmRvY3VtZW50SUQ9IjlGRUU4OUIyQTk2OERCN0JGNzRCMDA4NDhFQkZDOTdGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xxyn+wAAA1BJREFUeNq0VVtoE0sY/ueW7CZNm9oY0jRFihjFC2K9HUWOCoceUEShL17w9tAXwSfx8qA+iFpQq0/KkUKtep4UER884PH0CK36oIiXIN5trVirrYk1SbOzu7PjpFU0wS2t4DK7MP/MfP83///9/yKoPQ+/5sEjLyOJ1OfrTjQmaDoisCOxDp/KIYOACHAYBDnoSXDEaNy4QTvACPTFoO9jxZS26TN6YxH+wdDb2uPWqxkwAYGvH8TwVeSYoB3EvPJlZdm4jsYjf69dfr+sCrc0+X5flGE7/cdb5xxu3gQlUyDSBaYDkrqhI5h1tdjGMHSXxSMX2s41xiapeajpoDx5CrVdZtXxDED6yqXQsi0HHd9cCPYpGm686RKSKAwEeDPBlKez9ezR2CRqvAlpYR7w04aN/up4LterUaL/ufL9X6nGE1t3RoKOQXIgkYsEZtYWSWbwCX2yq3PWngx/V8I0WxBt+w5obkmdaQ7VrxU8aTEvNkvTD+pD865XQtR2ZZ21yfdzv0UeBQ36h9oecKTEHpRNsbsJ6S3130ug+vytsJEFX6kOdfaryzI6npl544+gOS6A1kw2WGWGK3E+RQh4mgTCvK6Odb/1rVihfHEpdIStfOhqaM84EpWYEzTKkkFCSRjL4QhKxZ5AqDyn00w0DGBr6h2SBFJHBUIjyBsTKQsGE1ovzfWrbAqFThmy0vb9BDAvu9YhgFCJkMx7leS1E05KC8lihK+DlqVFgS/pzO+mL/4hUMsVYRpw+ru91/7nj5+nb9wMrl/nMKrOgQmi5KIWNxBkLN2tZDbUVxUgI0m5N/ks0PL0VkWc2ykWmkj279UPHIHD+5iTNiQGFrT+veJp8kyr3qZZwKWbQs4uCBbbNAxdFatbjasNd2iNOud52ulEInrimblwKcKQftnONv9X27OqCkqMoei76BpOrim2KRo+Am99s82uQ4sfntndc7r9y8qFY7rvt8jqi1MHYtW0NCW4Sqhr7/wR9DC64s4D0DUAt5/T7ABYlk08EK2E+TUQooAHwRJIVZx7C3TpfEpUXOnvI0zWYMFcAIEt6WHYNAGSWRCG0h3kFfrz/RojzmUvtxH+cpV8mkdiOmrofG0MNbZvIkBy1H+ZzwIMAI1PbW2aWDCwAAAAAElFTkSuQmCC'\n },\n {\n country: 'New Zealand',\n code: '64',\n iso: 'NZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzg5RTkyNDE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNzg5RTkyNTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3ODlFOTIyMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3ODlFOTIzMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ycsmVwAAAzVJREFUeNrslF9IU1Ecx3/nnHu3uc3p5lbOWDk1VDQj+muQgVREUJGFqEQPSf8IqYeIiAyKngojCiItqLCIrIewsH8WQf8gJNK0P6LRTJ0619y/u927e+7pbgn9hR7cY7+n8/L7nO/5nPM7qOvA8ezyOS0e87EbvZ9bX0CatXlv/vqWE/c21FVe84EgTk+T9zmFHRW5gs05++ib4LAXjFr4uWQFCAYEvxVX0jS6/XZfw+5Fm7c7GldVHm/3BBlNpVI0xZiRjepI3561OUa77fCg+dSdkYhrFMz6H90YQFS5KUCjoEGg/IJGm3ZcVczWckt0G3Fp1pUFHYUDN9uhtgqfv2owpcxEXli+4lJXpLXpoRIT27rHYkERNGSyO0qdDmN9CW7opj0DAmjxL+hA8Xw143hQdkUw8wesOhxTmFdnNIf8Wh5/tdrZmCeLSPaZJgnrbdFVAaYHJE12h2L5eemnl/D7X0mdH/zx4OquBAFLoF/vqg+6v4YYKSorNntHTILPI6Dei1dyayozSwv8L3s8Ev40bVbG+Agy6JY/5UICAx5AkOP9elUxiQuRIxwHBoM2HJZkVX3CO2nka/pXVyzbV72gNIuX0UnNPFi6qOjO5Xd1hx6Vbly6ZaUlP+PdGDvod9ZHciXXICgxjEnBrNQZthT1rEymQEUIxwqzTTfWpD8fUzxu1UzcGLmwv+5MUWB2x+NzR25Xt7ivPwlUO0Jzh54N2udWbG278vijwWKtylVqU93W7rftblAYxkh3dhlf6UDN/RyNicATwChCWV+AdY9EJIXFnajoDQtX3G1s29lBLg1ZfN4wpAND0PtFfIDsnTHk6+htbX1/U++UM7N499DdL1GFaJgidQnk/jAb9gnAJa6Ox5JI+11hSWWqur+7Bt0esGQAjYAeAc8BlWFChvRpMOEBEwYNr+aEoQlQby7TBnoKLKEymHCdyn2n/LUQ5NXDFEuicSd/jAyeElTtlhQwpAFlyUYLSrHTdKtcXuw0QpQlFS1RHY9zTDyvPgmR/v6HTAltJB0DoZJxEwhBMOKkpiYE1JHxjoMsx9fJTM2YOiyg5SbXyUz9r+fzH/1zfRNgANDBXQHER7G8AAAAAElFTkSuQmCC'\n },\n {\n country: 'Nicaragua',\n code: '505',\n iso: 'NI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzg5RTkyODE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RjI4OEFCQTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3ODlFOTI2MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3ODlFOTI3MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+KfyaKgAAALBJREFUeNpiDG7/8p9hAAATwwCBUYtHLaYZYPwPBANhMQsQfwFiHuK1vGFg+PWD4d/rBwwM//4yMIkrMzCwcQLFhUmx9wsoqEny8ZdX74AW8TDEPbjBEPrgHsN/NkGGb+++kOrh/yyk6uDiE2Y4de0Jw+VbXxn+MTIxHBN8wGCtJklWUDOSlBo5WBjkud8wnHQMB2v8zHwbGAIkW8w4cIkrpOPraAEyavGoxVQBAAEGAHrPMKYO1i6mAAAAAElFTkSuQmCC'\n },\n {\n country: 'Niger',\n code: '227',\n iso: 'NE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RjI4OEFCRDE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RjI4OEFCRTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRGMjg4QUJCMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRGMjg4QUJDMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+d5ixUwAAAKxJREFUeNpifBDExkAbwMRAMzBqNP2MZvz//z+NjGYhUt2HZV0/b1xmU9EUjKsi1uz/RIBnpWbXFRjuWDFcV2J4mqfz/+8fYnQRDusfl/Z92XuKw4CRRZKNU5/p68Er385spVI0/vvLAI8ORgYQ+98/6hjNoevEZ6v76/z//y9//Tz/j8dSmcvYk3opBKhkaj3DrSsMShoMOa1Exj0tEx/fRp3RjD5qNG4AEGAANauB5CbwRkAAAAAASUVORK5CYII='\n },\n {\n country: 'Nigeria',\n code: '234',\n iso: 'NG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RjI4OEFDMTE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RjI4OEFDMjE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRGMjg4QUJGMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRGMjg4QUMwMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qCpo0QAAADBJREFUeNpiZGgPZMAN/leswyPL2BGER5aJgWZg1OhRo0eNHjV61OhRo2lnNECAAQBu1gQALTkVbAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Niue',\n code: '683',\n iso: 'NU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUQwRkFFMkIxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUQwRkFFMkExNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMERFNDlDRUIyNzJFMTE3MjI0MzM4RjQ4QTlENUY2QzEiIHN0UmVmOmRvY3VtZW50SUQ9IjBERTQ5Q0VCMjcyRTExNzIyNDMzOEY0OEE5RDVGNkMxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+gBm+VQAAAyhJREFUeNq0U2tIk1EYfs/Z59znbbPZ5qU0nZp4qbRES41IMLooVn+meIkuNLtQGlhmhFj9iDAoyh8VlYRgJSVeEiSzmxgZeUMWbqNsOi9r07Xp9rnLSabkj5xp5MNzOJzDeR7e87znoJ8tje7RUXUjdMO1xkCRJ8eNHbxBmDCstLT2qtMT36qwVWtUDE66Ra3JovpC+FZ9Aq37oWBhDgCC+UHYbNP4WBDV1SxNrH+Wmp5WyQs7V1wDtnbxqaLdfk/gUcVXj5uSu1MwpKZZzve314Yci+odjaC1+UF+nfA3GI3ZuGwgAJWN1Z8or4p7JW/ayRWljkoZSAa4DIyZABYWxUxO3rCIT2/LrIuIzGhX9CpgEWCBK7Up1rdGJjkVI7B8kaav7x+SH9IBp3VPXU8DbK5ap/wYumpEYIpOyW9knn5u9t0WG7A2EKDbLncYiH0gpHv80KPtjdXMGV8ppPgarmK4xyn+okZGeXb7f08tW6MiwXyNwcBuH/UI8AaCLccrkb+S5dB31lo1kAdjOdnEvrLyQVsKxAtKISDj+nYFWZcUnKwGMO8H3VmYOTNN5h3bTJwIQY4J0xxUHqVMGQe0kfF9Cj0d4R0pDoGg94W84NyrfTEFbfdK072yrkBzE+Pr+5bn6mMyrFjBdREVs0EGC1VtDwsRXFRv5BcajgjETkdyWSpzm9yjevWuCpFcCbWBNHWLHwc5kpUT0KpiQhvDvC64dI6i37deyJqFscGGd2TG9oi/hd8tKcms3lLSX3mp2zkPu5eDeVx3klsWmtIm9Usq2mt95/3cVd+hMbIW7OFc4NRtiUgg/dBypjPjpf+IRQgg4/Jp+IThDqA0N/ARyt40hSf2557f+aBgg2Frl9ZtAhYHNNFx0MV6/wUdrelThQucGBsIRTyR+gd0D+uTRVI1sJipMY1RPqBJ2ZcSxGNs+tfABTxf1YTYQ0a26Wl4SAI6/eGZnv5B5GAfFngeNtusakgloYAgx9khWCIQmpNiQmA5QGwE/0Npi7NGeFmM7YlgWDYsozUFaGoxH3fpeTDUhCEc440WC///9ZNw6HGTKfSXAAMAWGmKZjQmfUsAAAAASUVORK5CYII='\n },\n {\n country: 'North Korea',\n code: '850',\n iso: 'KP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNzJDQkU3MzE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNzJDQkU3NDE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MkNCRTcxMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI3MkNCRTcyMTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uqrYYwAAAdNJREFUeNrUVc9LVFEU/s69982bH82QzUjOiDjpNoSgraNIuGhR2apVG6GNJEJBLtxIiP4jA26CLCFwM/4KESlaWLTIhVIKJjX2Zkbfu+/d2xsJsnHz1N7Cs7hwDvd+97uc7zuXcGsa4QRDaCF4VIL0/wfWJLwDERbrxz1Jk5+gTf61gCvrq2H8SQOHv932NJULhSScfw4KgUoFW1+RvQrG8G0Hba1IJuG6waEtRMSv9U1P2cf6yrS1r2Q18eSZ6ClAK3dltTY1QSxKTVfgeQHRq8wU2qejIn9rnlI/tlMvXpr379ozs6hW45PPjb7ecn8/NyKIB22M9qEbSur7rjnwgF/LV4ZG5PwSlJJvV6KPBqMPB+1ikeVaz65rLS3RdZ2aLntfNuSn9/LzB3f9I11KiJs3tFc7l2WIxeTiMs+3x8dGCQaBx4aHeGeHLC34/T0XNGvJOaWSM/OaDCP9czdTs1hzxnkz57ya5S1tp9M1LEsfVwjnxMX+vTuJ8QmzOaNB7tq7ytMRIKalg8ODwJwdKnd3+7pGo64tbO8gna6ne3vIZZFKQbrBKdd1PXV71BQnhwhBa9hHrzFN0OnsWHejqym8oRrq5Ds0Lt5XECL0bwEGAHp0quOMFme/AAAAAElFTkSuQmCC'\n },\n {\n country: 'Northern Mariana Islands',\n code: '1-670',\n iso: 'MP',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUQwRkFFMzMxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUQwRkFFMzIxNzg0MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNUVGNjQ4M0M4QUNDQjhENUNFRjMxODFCREQzNUFCMDMiIHN0UmVmOmRvY3VtZW50SUQ9IjVFRjY0ODNDOEFDQ0I4RDVDRUYzMTgxQkREMzVBQjAzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++R9VmgAAAxxJREFUeNrElV1IU2EYx5/3nG1nX7rtTOfH3PxqFplgH1pmRsaILvpSiYToA6qLIIhuveyioKKorhIyC8NEKkyCAkspjKJyRYZWOtfcMbe57Zx9n52zc5rV5cwZSM/NC8/D++Pl//yf50Vw5hksT2CwbCH5WxEBJAHiciDVJimjmqVzSEWc1LyjJeBmQRUGKQIB/QMaAceDqsCq/bE3fKmpkuQshY+mvA2qIIXxPUWHuiZNEPKBGkBMfx+HuiPpdWKFbMzQFps9T15u3C6Mq7YMSNb0fsfyDGTrqmBz5F5RYUF/yAxhFmRoKWgexySJjprkSfZqrL74uOdC+3MmOmorFvmnocp+OJCn4VqUQ7q8xifOJIhC2pYtgA4kju6oOCFe7AwKpwJnhx7PyIXxmy351Sb1tWH3yISuj9iKfC+aYw7aZP3o9IBMkplDBIQUWbv4Yczvvc7sHxudhYL49Ewov6pOX7XV6+YgN0HbHTeCzVPI14A7gCCW0EaklbM2r7+0zC23rNLOtB9dQ6oqSHMBCaKt4zAdiZy89dmFVgDOV2qHteQu2keDLJNXI0Csn9NUs+XH4lHPl4DyxjOnMUf3y4yYWa9uH3B+Cag4YHIte/32EohHUrpmJogIUqW+l7qNy+3bykvEJHa3j+qxzf4udr93d/fPiEhcX2R2Ibbz9VscV6fFpM/FI9hYQiOLfD29MRc8THZd8Z4Vsvtddx50dzWvVOhqjOCN7ysMrxbc+Q2bmUBwKeZjo1mGtY15aMfKxChR9uGtnXC+iHuogM/z1OYYnJA37a64UmVPZpWesxspigEFljFaipg5cTSmtsq/HaxgCb2JcjpK9QSB4yM0YW3cdLN2MsFxLYO6VyN+yCFAFDNGp4KAH17soUuxU0+1WuZcriDNy4I8vkEbbasPjrnYlsH8l58SoJcsNOlokaUalZYUa2pDA+uSjnJjYYryYXruo8zyRlrjnWZAgxbcIIujMQTh1NxLyrIpM07zIv5JMDIRHWARUGILYxddqvOTKYIydXB2MNiThj9JVWzeRuL/+wqWEf1TgAEAg8xMLtJFnKQAAAAASUVORK5CYII='\n },\n {\n country: 'Norway',\n code: '47',\n iso: 'NO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNDZFOEY0MzE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNDZFOEY0NDE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjlEMEZBRTM0MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY0NkU4RjQyMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9564bgAAAchJREFUeNrslc9LG0EUxz872Wm226baJKKHSNNTwVbJQRC9xmsvvfgHePEmiH9Jj14KCgrtzUtBsIdcpLRioVINliIKkkMTxehisma3M/lBG9hoXUEP+mDZmfnOmy/v+97jGYcvB32CrFrFdxye/tzg7VqJ6ewMPLJY3nzHaydPaSSLSKVACMKY9ipz81YW3JLdPWKT8/NgRJ+3MMP4e67XvqpH123gIYvL9IrFYKRSwT89VSRe++ORCNRcvDMHtG9Y4vjWl2BEE9bU97CHXreg9ipCV5KqnsDgKMn9PFhRLUE44qWCFYxoSQ2B93Wdj6vr0NUFUcn8wgo/Rl4h0v1wpFPhhyI2sN4cq3/swltPbOjrBk+RHJTAqVy7j1Vx1S6/5nlNBfyG/P/jc1nEc5/3giNuSf1rl9XcNz4s5uCBZGpynMzwAOJZf7PqQ0ldNvxiB2KvWVy9z3n/aZOJ7KzKsc3G9hyZdFJJvqP20fZWu4rUpRfDF7ZT4uSAgqlybEiQEfblYzLf1/g9NIaIJ8O3k0gk6DidbLsudz36ltVUfiMSYdnUfcMSY5qdC6qF+f/kUa+1vFI28GuMxfvpdGPEsVvgjf0RYAA4FZnydWrl6wAAAABJRU5ErkJggg=='\n },\n {\n country: 'Oman',\n code: '968',\n iso: 'OM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNDZFOEY0NzE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNDZFOEY0ODE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY0NkU4RjQ1MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY0NkU4RjQ2MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oZcAewAAAahJREFUeNrUlbtKA0EUhr/ZS7yu5iIWIoKN2FioYCPBS2NloRaKlY/hY/gSVhFUlGChWATEQhFLK61EEhW8JMRks+OZbDotLDYJHhhmlx32O2f+/8woPz11B/SitaZUhP44WDa8vkB3F5RKmkTSsveyPWYmonBkjPFVhpFRUPLmxgQs//c86BTwzRUCJOoQsPog1uFxew3La5LGOOgAHu7hICOJuLJERQ62CGpQqcDKOvT1w/QMLC6hh4ZhcyuEVqtNAJtiip8QF23nFtFeH/ryAnWahfwT2KK31YyKjZE6OuFoHyWVqcwuKncGs/OQOzfmEkHcyHV2CILQTOkF9OEemGF0TaZgdQMkEbPV+uRYvC+GQ0cCVn568h3b9erb+VxotJMVtlNC4DFJoiyuL+SpJxkR2Kn3UM0Xg/mhuUwYQDwBfjV0uDFYaiDqdmqE7fz8aoz123Mk5mpTOH/OULcaLPIqgaqiaB3o8FhtBdiqaiquYjvdw1u3Lb0etAas5EStyb2xMyEXRkqWl4IWbrVMg+818qbXy8H/dnVbwV67+vixHfBvAQYAQ9x1aPT3zwwAAAAASUVORK5CYII='\n },\n {\n country: 'Pakistan',\n code: '92',\n iso: 'PK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNDZFOEY0QjE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNDZFOEY0QzE3ODQxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY0NkU4RjQ5MTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY0NkU4RjRBMTc4NDExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+95KRfwAAAndJREFUeNrElj9IW1EUxn8vRqpNrS8xoKnW0qBQzOTgpHZQoXTp5OBUOogIlcbQTScHpVAdhEKGDI4OUsSp4CLS0rFdirqorTXSanxIbXwxMXm9793bJhUpSB72wOG+c+6f751zvnO5mmVZSeCW0GPOydSbKcZfjUMTbkqN0D2v+qBkvAqp8fCfxFPWzh+gmRqaV7sCYE3t2oHOe530dvRi/bTAUv6c0IxaW1DrXQG2d3yB/gf9zI3Msb67DnkFIEB1XSfoCaKlNKp8VXKubGD78H1oibSw8GyBmcUZkh9FU9xU8ycQrguzPLHM2OMxcpmcS8AFGVX8SdwxE+8SEEIefiZU9EhXSxftze0MdQ+Rt/LSf4F4LwWcBv9dP32RPrb2tiiYhWITVsgwEm8T1FbXsp3aplFvJJlJugBsQmtDazHtXpWFCmULzZ5lnRKcGCLvdcLn48J0ey5PaknTcChMW6gNjL9PyRfynGgCtEEYlbhUY0HSzf1NzKzpmLFHMaeX7Uz8OUlTgPZ4SpHxZQHfgNRWiqUPS445eH+Q4aFh+GzfvkKzimRp2XLNgWYC/oDs7bKAPbKeE4sTorQFxxUfiDP/cp6mtqYi6HWYfj5N9GEU49BwgVz27VQPG5826JnsYWV8xan5QMeAo0fmEZWeSnzXfKx9W6N7stvpbXS1t6ybyw70Nqy+X6V+pJ7Z1Vl2jB1nSq/WMXMm0ddRIk8jGN8NyWyr3Ih/R22T5Q4cHBww+mKUWChGIBggk82Q3k3LKBskGd25QErBbbb6ZRqtU4vDr4cyf3ZagyVrcBO49Adsuab0vJ9/Ax+r18fxVb0+bKxfAgwAbIbG6d67HZUAAAAASUVORK5CYII='\n },\n {\n country: 'Palau',\n code: '680',\n iso: 'PW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNDdFNkQ0RTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNDdFNkQ0RjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI0N0U2RDRDMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI0N0U2RDREMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ffmgGQAAAhdJREFUeNrElc9rE1EQx+f92GR3ze7G2pi0sVKrJ5tLEVSE3kRD8eDRixcP6kVEEHrx4v/gpdCDB0EQxaMHBQNtb1FUMFpbwYrWxJhks5ts3J/PtwpSaLNhK8HhsYd5vM+b2e/MPDT3qALDMQxDMxqxh4Dxr+WnOr7KGBKJpdA2hoDxnX9BU+S2vZGanT8orc+kVijyq3Z+rVMQSW8s+dlndOAFtB/3mz0hIPfm1Hwx8yCf3OAc09WW28W7n268tY5Nye84PRqNtsvIU255o4zhhem5Qq4MNoAH4b8hACL8tKTLr5+86pyclD5E03eQMQDccPffPnylMFYGE8AJXSGaX2CCKPXuHD2fFhqGl45dIT+c3Cnt2ensY+juoCx3qqp+IbtQdSZiow0/fVwrgQDg9zkUwAntuYy7ASNx6xqptBUVTwB7hfoeYvgQG806nhadqu7uswIF982rD1oh7bI5G4pG+h56Ycx2/RRBMdGjiepSq7j0vQjy9nyAO3umfL92NZv4GltGHkuaNm99XFyrT4MCoZ7o9+JJKBA45Pr7h3VnXKPN2OiA4Uxik4+OS2+e3lu/1nQyYc9ScIJkafPcxZelFf3MIWl1N934t9d5Tzac7BG5MimvEuTV7AMVc4Zgfzy5wctulzOEm8cEleiqpOveyHLzLAMs4W5O/ELBGxjv4KH6J64UMfjaOgb+/1MwRPQvAQYAH8/QWrO3BXUAAAAASUVORK5CYII='\n },\n {\n country: 'Palestine',\n code: '970',\n iso: 'PS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjQ3RTZENTMxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjQ3RTZENTIxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMDdFNzEzNzU3NjNERjUyQjNBQTU3RjQ5QTU4OTk1RTciIHN0UmVmOmRvY3VtZW50SUQ9IjA3RTcxMzc1NzYzREY1MkIzQUE1N0Y0OUE1ODk5NUU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0ETvLAAAAYtJREFUeNq0lT1PAkEQht/Z2zvDHSCgiYbOwsrGvyCJhbGw0tbWCDQGEwtbC/+A/gBLeyu1ozBWGgsrGhI9SbRQlBC8G3fv8APouHUzuWQvm2dm3/lY1DJZSIF/WFadqGM7dWaEoWE2k83S3vUyEKZjb0uHlQPb2XEzsKRJ9LtGk6Y7TjmdhrCMo4WmS6eqlJGWSXQIEcR0x9ny0kaUIYV2P3uK3t9DebFO1tcmanuu/xQEgYGoY+vHPp3ny3NOtobRsSn6G/BweNDpdsfjhmE4LIiudFBU4UET8J5fCoX8OO3CPNwmqiNjbis7mbq5HY8b5YxGtY5qfHGZXxNKzXLQlba7HB3tFzPNY2o2OPrzRy7+Pjhwe4wcIDVBfrRm0um7n8JShXw3QCPhbIL8jZdxPYtSBe1cgEdgJglYgIUU3N9dFalUpQ8vgK9mbeJWhJoXekrzxRxWttFLMXzWJUJJJ7X6SJtxNi9WyxZI6RDqeImMPATydIE2NpU0EC1iy9IZ5uTPi772lwADAA1uTobZeCdSAAAAAElFTkSuQmCC'\n },\n {\n country: 'Panama',\n code: '507',\n iso: 'PA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNDdFNkQ1NjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3RkFEODE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI0N0U2RDU0MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI0N0U2RDU1MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+IRlRqwAAAbFJREFUeNq8lksvA1EUx//3TqcPtCpSz5BYioUNESxJvGJBmlhZS3wCH8CChYhY+QhsfQQJCemiC+xKUDSNKtOhNXPnOvWKhZFcOj3JyZ3JzcnvvO65l0kp0wDaSA0oiFMwcdo9BesqDS0aVTENk177Pj7wba2GhLnbjiTNmTaEIz0hu4ILRYHl3UtkDevLEc/BRxcmxjdOsL5zjunNU+yfFcCqAe7vrEV7OcTDLJop1UNddRVPtc9tY3S4CTMjrSiUBCQ5wVgVwJaQmB+IIeTnKFoObIpa15j34DLkExTUuWvbi4cH2MgDeXWnfM8Ukapo5IxlUxZaYpQeG1pDvTq4YymhbJR7EuiM6kjubaOeVkH/yuC722f1AtHZzllB8EgECGjQAn+pcVhXtyq3eB3Z/VJakX+EFqZjqHG1yfVnoaZzDBOZ1S3Y2Tu4jb2Kg58Sx0hNL+BmZQ2p2UWYB8kfM1NxcE1fD1hrCPfIgDUFUDvYqza5/iMNY5NojMfpzqbGLd9unHkPli8WonMT4KEgnGIJUthgXPcezPw6lfQdxIOBX0em8fH6MFAdeWO9CjAAKGmKMiin+isAAAAASUVORK5CYII='\n },\n {\n country: 'Papua New Guinea',\n code: '675',\n iso: 'PG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3RkFEQjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3RkFEQzE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzdGQUQ5MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzdGQURBMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A8tj8QAAA/9JREFUeNqcVUtoXGUU/u5z5t7x9s5MpjNgbLEzNYyEJkwqCBJTG5AiLUJXCbgRpBBSQrPpQhSSjeuARVG0rq24UOJCu5AuJAsfCRFja5OGpLE2tslknjdzn7/n3ljJZGbMJAd+uPd/fed83znn5wCwrBDCp9oxvCipWHBqcGiSx8GNEwB7gwNHh8U4A3Nb7/XvL99xTZwpLOF6LY9uMYwY3eCAHQyUbrIINNzpQe1x4Brc/20v/xeY79xI+U+MVh5AJ+A0sdAuuB+ZU+YgdjBkvysift6CYVD4/nGudcR19sn2Jl4rLuO+a6FXUII5ryXiDr28DFQsCUdesCF1m3CK5AQtOiUOrXxvKuVPjoGXifobZgG9RL1GPDZE799JU8aGgPAJF+lLFYSf88DWJCTfMJH7IQ+1y4W5JQQyNEhDo0RDaxXUmKjjvehxGMzDqmdBesIdgVoFAR2vmtDOWtBOOVBPu3D/5iDotPisi+2bMhYu6gFlgsqaa7zXRFHE0+kTuMaV8DpRv+k56BHCAe3+FWaBR+J8DSdv5pF6uwy124X3iAP5B2bRhg0eyrkaOscMWCbfQHlL4KGhITy4t4yxy1dwy64G1H9rlZEj6hWKmoUYBI0h/5mKtdEoqr+K4LMuhCiDuSZg68sQaj/K4DhigFDZHmCxFfDi4iLm5+dx9/bt4D9PqXuxtIJJNYWrahJR3cXKFzLWP1dgkf/F701kuxyIzzvgH/O4O6rh6AUTCO0g8gLqwPfVuJldkI/gmtaJDvL7jmNC5Hy9eYRiHrQzNtLvV7B6NYK/bijIvFPBw+sKvAqBSW1ovNdCoRAEQQi+v7FKeKVwD7+4BvpkBSLv17ALe4vD+lcKFgajMB8KiPdbCFGSKWkXToVvrnEkEsHk5CSmpqaQSqXqNvn/c3NzmJmZQSwWC+ZWqc7PEvgH2xvwW26ckWoUsRpzUF2izkdOiJTJhVsypKNeQznXuTEyMoLx8XHIsly3ybIs0oeB5/nge7ddoU53iTpehIr1JL/T7STdg7nCw/iD0opkri6IEBXWuo4zmQwSiQRmZ2dh23bLMnMcp2G+V1Tw8VPP4LSk4DebHhrCUY97sB9zsDd5iHrdo1HeN7kGBwcDGaanp/fPAyqdDwn8zXAcy/TwbBoeJIFeKz+zGdprIE9M13Ukk8m2EtAkOd4qr2Gc6O/gRGQiEhzZa9qvD1VO7dhLUgQfUfRdlHi/u7Wg4/HtRJzL5TAxMYH+/v5DAc9QtxsoLuFrq4ge0t9PPndX6C2B+/r6gvIaGBg4dNQFz8VQaRXvVtdxjJfQScPeBV76t+/XDU3T2PDwMKMsZ83WDzrOyRpbjGdZNXGK/RzrKv0jwACqn6gx8GMIaAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Paraguay',\n code: '595',\n iso: 'PY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3RkFERjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3RkFFMDE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzdGQUREMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzdGQURFMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8tTVLQAAAOtJREFUeNpiPCeo9p9hAAATwwCBUYtHLaYZYPzz+csnIM1LtEsZGRj+cHMzfL10ieHn928MAmYWDOxA+u8/knLlZxZmHm6SXPoXiJ8d3s7w/OAJBl5uPobv314yyDj6M7DQPKhfvmQ4MLebYfqfNwyb5UQYLqxbwvDz6jXax/G/X78Z2L7yMjAKcDPc+v6I4ddbUHyRXvgx/v//n6Q4BoFPGzYy3Nm7k+Hn/98MqrZODCLhkaTa+5nx09dfJCYuJoafnMwMXw5fYGD8/ZeBy8mYgePHP4Z///6SZjGDxYrRSmLU4lGLqQIAAgwAPdxSxGn7ZuUAAAAASUVORK5CYII='\n },\n {\n country: 'Peru',\n code: '51',\n iso: 'PE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QjRGQkQxQTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QjRGQkQxQjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzdGQUUxMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzdGQUUyMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+b8OOOwAAAGlJREFUeNpiPMPA8JSBgUEKiD8zYAF/gJiNi4tB7/FjBmYhIQZ84N+PHwyXZWUZvr95w8CKWxkvED9jgTIYkGh6AF4mhgECoxaPWjxq8ajFoxaPWjxq8cBbzAJt8vDiavrQovUBsgsgwABVWxD3afjyOwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Philippines',\n code: '63',\n iso: 'PH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QjRGQkQxRTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QjRGQkQxRjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNEZCRDFDMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdCNEZCRDFEMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RLn3GgAAAxpJREFUeNq0VUtME1EUPTOt0JYpnwJCVBQh0agLZWsgMXErGze60R0uNDGiK6IICiqkAgFjRFjgl5AQDX5CMEDih0QSNBiDIJRfpOVTSqG00EKZ97ydwWKEhXx6k5np3PfmnXPP/VRo+Dhmy7k7YOz50APEi0CiEZAZwBFSEzgZYEfZEzvy7vfB3T0OpEQBxm1EIHToInw/3ehPQ/ZZD3rfncS5S2mAZxHocarAGiFEEfsnZ5mr2Sga04GwJMXZ0TWF/IpvaGwYIB/JvydSlZ7zLZV6lp7GtRbrGodxvbwTlnaSP8GgXksshMDcTyvawLLyWlTVhYKH3zFvmQFSKf8Rm8//CjCbp4wbFCcbuQDoj0CMywputE16ca3kKx7V9VEN+FUCWkoD4xssrj9BLgxB7s0A99HBsosoieDOWrCh04FV7IzXo6YoHZ9fZeJ4Ziow6AFG3HQCqSIIm5OaT5jBHNUETAcKeiB8N8Qd+RCkY6s+rG2WcbX4DYY7xqj94oFI2i/L6wT2WYzMUakIwO0l5A2nIvIB0mGIUSfAtTEQt2cvC0TSOosBkwcMhShr9cJc0MScjikmSvr/Dl2rRApZjRKBitWo0gWO4Ax8yakS+dvkOboZFBpXlt4iw1rMZ20urpGkDUo9eQ9sopTwvQonQZcKMalcKbR/baalG7aci3B9aUWcGA1dVCT4uqUmYO7tBhs+A01yDZidwKSjJDcV2VwbxJSXwQ98vRZYc+/AXv9UEUUXnaoWGF9ff2uDDMJ2QbP/03JLMQhsEULCZfp9Xm2xOS+seYWYqKjCot8BfcReiDod4ckbmmhrDxCZBoVGCvKyVz/GaKEZnl8/oBMToY0xEeDSpgaIdk2vJlp5uJpaYLtRjOn2FtooQYo9SMHJmwZVgf2jlNNKCKZT1LqH1Dz2D8KWfxv25zXKuyFqH5ERtwRwBZjNQVh4TaBZYD4G280CjJc+wOLCBPSGZIh6/XIe2Rb/LXK1MhzPXsCWdwvuwU7ohARoTbFbGuGqiN1tHaPWXLNx+n09jQ4DJNMBGigspKAB+y3AAHmPY4VHbneXAAAAAElFTkSuQmCC'\n },\n {\n country: 'Pitcairn',\n code: '64',\n iso: 'PN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0I0RkJEMjMxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0I0RkJEMjIxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMDAxQ0NCOTM1MjkzODNFQzU2REU1MTU0ODY4MzQwMkMiIHN0UmVmOmRvY3VtZW50SUQ9IjAwMUNDQjkzNTI5MzgzRUM1NkRFNTE1NDg2ODM0MDJDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Q37dSAAABJRJREFUeNqsVGtMU2cYfs/p15bTy2lLKQUL46ZcHBlIXbEo6hwE2QZ/lhFcFsMuWWK2OTez6eIyl2X3zR8z8bIoW+YSF9wCGeiUjdFNRRJH8YroqEIr0AKFXml7ei7fTlGj/Jibxuff9+XNk+d9n+d9Cd8JmzaFHllY8t33f7oHXabMtIoSQ6HHEdWl2nnlhcHJgFpnlseqmLGMesvvw1y/3amh5XBXROI4P0OJdrUMkCf7N766siAgbXWT579oebFp6f7er4Yrqt6asF7/pXttBrO+4RFUuODzA1ff/7ov6nCDmro7NYTCL2woQyP5pc0OOtIb2FqT3thk7fzomYBn6lr7jrjG+M4667I1kSWNyx1S07tdUz+1n4yyDJh0IEXzmQgAPO8ZFSS0ihj97Etiz8GxtFzExpDTubi6JBbhLnbaZZkpi42qqAT5MvLGTg+ohFhpjrp+orAjaAQUu80jkMDLgOQBxQETNz9HQy+/YSYxoFnMeZ3XWI2Srlnpd3pCvhDISJJlpcVF4TiesPViUxqj13AYGIIUyQBh8FMwrQaxTj0t154xcJOIwBCXQpgGjIBINIG2+TMOlG3ZvbWqtpCDK0PNnS65dcljTQ2B6scPfvLpCta/LDzc3372wzOsTWryey8B64W4urLSiaQx29FSbb5v1cNUkk/dZqc4SUS7aCToNQiYFPWTT5Sn/7FWtcF94ueNuy2Nh17afu744XOmDEk2JWxqaM4p372tbeahTH1rrWpPuCct6geSAg5bF81kF9shdXCBlqlbFWAMPl4Oe7f0VK7oERg/sErAGOn4+K/fdG2a4s5CFgRJ0ET/GvK/HTIHLyEQYnB94uPNLTvXmJ+vy7XoUgwSj4enZMmRFqcriiSg9utkKveoZ4S5UL3cUmMJa/9W9+nk7mEBE1gioyt3dox5KCPgKKgJQiWbHJrugWz7OBf1emGBGpLp+MjU6bZzbQ48JVeClAdM+mK8CuSvr55dmtvrHqx7rmrq2NBo8+GyJ82xI71ZITdeWmkgJfokkEiAEkBGiA5hDgsaOaAgiCapKGAx8AJokiDPAHrRc060kffJFkuz9j09Ubga2+hXYjnEt2PvaYrMPsn5+s0Lx90qoHgxjuRcIolb8bwjm/jOsN543MovoyooP2UL2Ndvf63PtaG2fuAKm3Zx/M2mErRvx2HLo1chqhCLyXmE/xN09LducySYWmAO1uR/IHinny3ZFQk6HTFmxptz+XKmuOoiNYL7gIRhQroieYXCcMQb7jrUF9fn9ZlJoq27oONoMhemQBEU2yNvdE/8F25PSoRCYL2K/a1F3tGAy6W1LmMuXDSaaOdTBQbOsxCUs4kVFVcGJ2Yo3JtqHkNyZJwRMidyBpzFqYrj9mMV6aUzWB5ObPxN88SlnHMIYzz/xPwr5ipFSdxMmDp6ihZz9ePOdaCd/eGInkQCke7HrMgpiEUoEZLEWPC9CRcvEeKBToQMjLGEyiSRjwCR9xYVeUew7g/E3DGaoyPm6UNCgAEuAC4EDxCsTwhEUEl5+qqwxZisfIDM0wGmuNT0jwADAIjDExM8WLDuAAAAAElFTkSuQmCC'\n },\n {\n country: 'Poland',\n code: '48',\n iso: 'PL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCODVEM0U5RjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCODVEM0VBMDE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNEZCRDI0MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4NUQzRTlFMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2uLYNgAAACtJREFUeNpi/P//PwNtABMDzcCo0aNGD0ejWe6K2o4GyKjRo0YPBqMBAgwACfQEVtJhm9QAAAAASUVORK5CYII='\n },\n {\n country: 'Portugal',\n code: '351',\n iso: 'PT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCODVEM0VBMzE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCODVEM0VBNDE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI4NUQzRUExMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4NUQzRUEyMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bRhArwAAAq9JREFUeNrElslPU1EUxn9voo+W2jIUKjiEIYpaNQRMVDYuHBIT3JqwIU5/gDsS18SlJG78A3TDBldiDEFNZHDHQjTBGMCWUQZpSynv9b3rrcXEBaCFoie5ue++m5fvne98Z1C43TwNVMuVYCczVHxph6GRZQ7JfUWed2l+uWb0zQd+2/+F+VX+k/09sADF1lDSKoorz8p+Aisit8c9IMEqA+vYNRaOoqDO6rnrXXKm7wiakdcplabILL4qm9MVKcpr1/g+6UGT8lAGAihBcEw3x0JhPJZcxlXaIws8OqtTM1DJen8Ja699JN9W8aWjjOTdNcSyQHUKSfWSSdu5aZ51zLHWB92jLl1OA/FjTaD5SfRpJG9tkLyxLL038o65vp2QMFxawkkocWkcmCHc1cPgtevYNpxv60drv4lDEC20RCYsXzr5xXtrYEcjUJYiXJzm8fMQja3fiFlTDL5bRQgX24qiX7IJWbDRso4ynMEbK8LxunukWmQLlYumC17NBfGO+ilfMLA8DrbpYEYNDk95SJQI+SOSZXWTpT3HWHdZTJm8j5aSCWaIJi1OuaNcbS3jSmsFJ+0xVsqS1N6LY370YUwbUtmiADHOplLCZHG1mCdtn+h+0MDxF0+50DtPrKSYNwdeEu4sRzszjZ6sQIlJcTVYeXm9fR4H0/SOhTkaSHG5+SsP6yLULw9zZzLFichBMtZnJu/7CfYcQK2zcfOkWpHdKb5lg8h6LUskaYOLdYsUSbHVR1J0Tkilj3iwl7yYg/Izv/NTVHkWkMT2HguZmIbMEU0wNB6S9TLNUixF/EMxR6IqiRkPojKDMETeVWtnqn+BZz0vTctarTEx78cYt9CQ1FbbuZi6+9mdRI56YUoPfQ5CspBv+uy+LRbY9M2Rx//H0aeA00cW64cAAwDqlwCQvzogDAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Puerto Rico',\n code: '1-787, 1-939',\n iso: 'PR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Qjg1RDNFQTgxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Qjg1RDNFQTcxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOTc1NDI0M0UxMTY0OUU1MTE4RDY2RTdCMTg3MDk0QkQiIHN0UmVmOmRvY3VtZW50SUQ9Ijk3NTQyNDNFMTE2NDlFNTExOEQ2NkU3QjE4NzA5NEJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+giI5EAAAAmdJREFUeNqslU1oE1EQx2d2Nx9NyKE9tLb42WNFW8SP2mJPUigKCl4EIyhetD2kJgQrgopoRCliFUE8eyh4sBXFgwcvSig9CS0UayqpFcGmSUiyyTa7mfHtpmnwtmQz/GG/3vvNvJl5b3G/Mv+Axkfg6y+AFIEMiNAckxbp8Fn4ElZimuTrQYFmQmRoAl/ESIwmchck7mLoPH3IVGANTDY7RAuChBVAInaBBGf4dbR9cqBvPZF0qyo7RNP/jxDYAQ9vp8eueQA8xFKFqg4acUOWRHoNgE0LYWpgmL/9YCdWR6NIC2gApS1PpvITNzbUYoHZaACNNZCZDb+/HAppsZhIhWJJvDd279FfTBmnh5aAlBLtRERJlJ3tlVHUsLNTLxakvkP650+wr5vVkiI+pDbclm+B0U4FPk5wtJdWVthbRkWywa7OpCPH85OP4UCPr7UN11PleFyLRtzfl32i8a1loaXCFbgfgUeiIGUbNVQsPs/HfcELajIpZvk1lS9fktNpL4oPpmOpNtgL4JJrfmyhLQC2tXozmc3ZGbW/nxRZxCtzfVnGyZb3t4zxo7S6BIoOKNvcMtbVGB3N/vntejvTEryo5nLud7P+amt2dRWfPTXODS5AhYu8V5JQst3kVvMhWQk0qjFa9zqAej2czec0ZnLS19u9vKXBYX1uQW/SljFjFzlnXwe/fJVlLldHVExRA8IaV3SwOKthBKdvtk+dOPY38dNTLFacnIC1mQp04No9CAfpjThUV7fPKgemmAAZrsKTMbrTzYVlFhVEd1P+MgeVuWl56DlHAlRYJNS5vkMc2j8BBgDaEDAtyJBdYwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Qatar',\n code: '974',\n iso: 'QA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGN0NFMTgzRTE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGN0NFMTgzRjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY3Q0UxODNDMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY3Q0UxODNEMTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+iEFoawAAAcBJREFUeNq8Vs0vA0Ecfbs7uy1toyIiIvFxIiTiIOFIxN3VwdUf4eLiRBwcfJYEoU1VNUpCGjS+Qor0UPER0lJNQxUJJYLumm45UEezv8wmM3uYt+/93rxZTlGUR3wVnSN0cIjI8Tn8i16cbO5BEAl4QcB/F6GP6XvBcRxKaipTExx5d9UPoYNJkd8vfLNL8AxOI34ZhZSlBytkTlEyd36IxrAybIV3zKECE53EnvH6uBMLPRbEw1GY8sxqfxUGrP9k/Jp4gaOzD1tTLhBJUg3GnPHKkA1b1nncXkQg6nTgiaBNj18Tz7g+u8Ta2Ax8zmUIhGjD+GzHD9+cB8H9AAUUwfM8E8YZu2bnmFBYXob80qJ0qMiyNsDGvFyYC/KhM2SnUEEjRJsAuQqcYtvmpn2+AEdl5rSSuralGW29HahsqMPH2zvkjyR7xnJShmdgCpuTLtwEw9AbDenjpFWAJO4eMNfVTyVfAKHO1uQ4rY3a4e4ewWPsHgazSdvIjFGZVy12bEy4qLk4Gpsie8YpebetbtyGIvRWEsGqMlxd1ViPpvZWFFdXqK5WkjIzVz/9dHYSol5SfwLU1BLYXBKfAgwAZJi4vg1/oSQAAAAASUVORK5CYII='\n },\n {\n country: 'Republic of the Congo',\n code: '242',\n iso: 'CG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGOTJFRENBNjE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGOTJFRENBNzE3NzQxMUUyODY3Q0FBOTFCQzlGNjlDRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY5MkVEQ0E0MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY5MkVEQ0E1MTc3NDExRTI4NjdDQUE5MUJDOUY2OUNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aVFAGwAAAdJJREFUeNqklttOwkAQhv+2W0CTBuMNwlMIJirXvpByeAopXvl42kRQ8QajjRoVus70gKW03VI22RuW8GW+mfmDhtuLRwAtui7KHI3ugu6bh8GJietjE/iWWMjE9zwJbc+A0apZ89HkSdBHVvhklYa+S/QZekrQD4J64Vscuk/QZg2v4wleho6lo+xZQT302gKjc4J+SfwucqD2BM99B6JRgb6r3l7bhN2t+JX+/tCTlqKXoHOGDu5hMvRAQOyit9chKFf64aVDV3qnmA0cmEdVGHUBuZRbVhzTe0V67S5BP2U+1NcbVBpB+ejlempi3DWz9e6n642gxcEx6ID1KqF7PnTGUNLLUCzX90vfTi+tzLm6Un9luKcNgtY3oWpwAlpYb/8uWJmDdGg+OAbtbwGNpjcPykcoE6lToXAQaujIT6RgkOr50PSKY5Ve+omUBcUqHLins+G9Um82OLEyN7l6dQ78sKfF9KaDE3rtIj0dRdNbTO8meCPw1XoZOhs6W+ldByf02kq9YTgMORzKQYOpjgK/zXoLTK/9oAyHYhW7Mgz8DCj9rlalSptVzMfBnpbVu1Yx9dS1z0yLoO4GlI+hwTgUVOn0P3vrO0H5n477J8AA8FlP8fwgsDwAAAAASUVORK5CYII='\n },\n {\n country: 'Reunion',\n code: '262',\n iso: 'RE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjdDRTE4NDMxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjdDRTE4NDIxNzg1MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iOTg3RkEzNzQyMTUxRDFERTcyRTlFRDRFRjVGM0VEQzQiIHN0UmVmOmRvY3VtZW50SUQ9Ijk4N0ZBMzc0MjE1MUQxREU3MkU5RUQ0RUY1RjNFREM0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+w8A3BwAAA3NJREFUeNqUVV2MU0UUPmfu9La9LWv/KIsFQUB0FQk/0aBxNwFMDLAqkZiYrFljoglBFwOa+CZISHzyQQk+aDA+uEB4ImRFRQgQXH9YeABlN0tWYZdtC5GWdtvt7f2ZM87dTQjSgu1J7n2Yc+abc77znRl8ctXedLb07devrluzoPDOe5EvPj/49KZ/no/0xPqEGS25MxAJQUJzpnYQu2tB/csU2PrXWx9c7da4EwncwGkPYKOo0vtwJrBaX4xPAJ/89NqmjuGtWTveYlzj6ErZGDqB9AOLSzFC7O5CAITUQLPCxtiZW8vaBneeya00gtmQVhb/C02SKf4MsPtdcYhY/SCJyhE30kWXd1z+cNdYF/eXovpNqU4F9IxcmMzDZA6FDV6sVxPGGXPROey6JwgMZPfKQE4lkdCLPl9xx9jLG4a3F5wZD4QynBznxogo5yC5CGa1OZUJygwhmtosTY5Jc78th4DHOOiS379EIVkLqziGdTS34olqqnf2lx10TrR3a8+97Us9zhRx1y+JgYNwap/zR1mcj0qLMIGSpEqNN9AYZEjRcCZTmbm6v+vXndtWvdB522vMXgIv7S6yJfbGzdqDQYzqasO0sQb1hMQhd3Xdi4/diXubunDna/73eyg7OiWkZqCV2a6AgG/b+vl1x8Nr7iudMhbXqnbT0KZF0Zj/0VSw/uwpZhY9ore2ulalaWhEECRduk9PhCDh6bIpaAQ0gmwiLS8MWnVlqkw7e0H7e1SGQoTNQEskvZSAQPWT0a8ArFo68gAHhvqCFTtR5sRYY9DqolGxuaSVzPA3jw3o+14//Vlt1I6ze7rm/rxx97NVHyXTthpElTu/NwnqXELTYFWjuvR8pf04BUzML+sd7v09P/jR8jdWRhcrYfxZvLLr4v6L4/0Qm/vD2vDiefqRvZnll8rlVp3XH3JUx6K/EEfmTKz9vrp0AMwA5uOqCBZZOFK43P3TdjCSXqR5EzQdYw97lF8xx1OBFR8/tOeb6+/23eJ1WqISlj6ej1MiXVpz1J4zDsUIupoaGy9CCjSSUhKQ7YWGU4iaWp1mF7OOjLKeLanfFoZ5jRYAHA6FFqftl1L7jyJUxlxi6l4Td9zX0tOY5v+vRqaFAlqBqAK9G2I1WUtgarieOTn51HdQ9Xm4TDT1ygilDIfYqPWvAAMACcVzuqlUzzkAAAAASUVORK5CYII='\n },\n {\n country: 'Romania',\n code: '40',\n iso: 'RO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGN0NFMTg0NjE3ODUxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTJGMDNGODE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY3Q0UxODQ0MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY3Q0UxODQ1MTc4NTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vo6AZQAAADBJREFUeNpiZNCuZ8AN/iybjkf2koMAHlkmBpqBUaNHjR41etToUaNHjaad0QABBgCcdAQtf60IKgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Russia',\n code: '7',\n iso: 'RU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTJGMDNGQjE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTJGMDNGQzE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBMkYwM0Y5MTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBMkYwM0ZBMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+I9CATwAAAEhJREFUeNpi/P///1MGBgYpIP7MQB/AC8TPWKAMBiSaLpYzMQwQGLWYboCRgeH//9GgHrV41GKqZCdgXhrNTqMWj1pMFQAQYAD5egotBoZoiQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Rwanda',\n code: '250',\n iso: 'RW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTJGMDNGRjE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTJGMDQwMDE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBMkYwM0ZEMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBMkYwM0ZFMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2RPnbwAAAbJJREFUeNrEVstKw0AUPZNMm0QN1hZq8QE+FoILdSeCoHt3bty680f6B/6BH6AbN4Lg1iqC4EZRQcH6wNLGvmxeM96OFdzoKmlOuJnkznDPzL3nwjAUS2UAY2QNRAZJpkGTKWWM/rtPwHyABTZNPnN62b3VdnTEOnHrGNQbWDAfkNXquHKn8eAVyJ8ics/miAMiDZtXsZPbx2bmhLYR4s6dwG5lC6etJUUePbGkkExgfegC29lD5LiDtjAxazzRaOHGnULNz1MhIiemNFMtF61bCAof0kZmzBc0wwFMpt+Q0x1axGIgZlIN9944BRfgLMBjZxSDWgfvQQYdaaj5GIhJucLAUWMFBx9rqATD+KRUn7XnsVfbwJNf6IqLzlws1aNVdO88lPIREtiydY08r+H8cw7XVF+pVO02ODw7BllL1VKOO4zj1qzqY9H1kuhURmCAD1gV8dME0dMTpdSUmHQiNb4pug7BXi9navSRIQvRH5Ds4fBRu6z/cvQLOveoDkmApw0/GeJqy4xNXH/3GgSfPliVv3qgX5C83rSSERcSqrGGhMB7Vx472qvPv1BcXwIMAIuEkzMvcwIMAAAAAElFTkSuQmCC'\n },\n {\n country: 'Saint Helena',\n code: '290',\n iso: 'SH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzUxRjY5MzExNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzUxRjY5MzAxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQjhGRTA5QUQ4QjRBNEYyMzI0MkY0NERCMDRFREYzQ0YiIHN0UmVmOmRvY3VtZW50SUQ9IkI4RkUwOUFEOEI0QTRGMjMyNDJGNDREQjA0RURGM0NGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bql65wAAAzxJREFUeNrsk1tIFGEUx8+3s7dZXWlHV921NFJLlCJMKrx0U2rdxC5GEfWWGERSUPSQRagVvnQheolACtSkMjQfTExDhcpiJUTLLrZe1zX35u6669x2mhldC32RpJfoMAzffPOd3/mfy4d+XC7VGrOeDitLH7zvbXoJoKkr232wsaIp+6Sx4htg1Bqd9GxKoPhQgle3Tl/U4rHYEShhCYbd7tA5W98UJmGnjImxWalfphWb9fjGvs7upEyTDc4lue8fX5uxI/mmI/pY9Yj9wyeRi5aCRkcLH8qjNUZ9IJ8dVRYYQBdvbnzlPrBXVfVYExsVMTkIBkPLd6rqboNjyNb8wsywFIBU9OU44S0RIwVgUUDEZe8Ekhl30WM+4ByOiDAl6aOcJKtGAYVaSUbHUBZrBFCxa8MpCR7ZGTfFKBAwAhhYgBU8QS7zUrRapLtF+lwIqSk8aXzcRqq5jQVblS57qM3i5eT2R43hh/fqUhP7W99DlLaHWDkwOYIUOIMwmOMiTIJfutKXscXjcam0uon29piysniaoea1I9BfyDi+reREem6MH168rrQo1iVGrzmWZ75R6dlj3EP4oKP1eZv5+iesa1IKr7uRoA7jQBoSins9N3hEU50+t8DCLwhNsdPFE8k51bXlOUfiJfD2SU11151+rMtKNJen6DYQXwfMBv3pzLz480dT9+2Ky08YvVf/9YyKJn1yURepQHR779UQQuXCLZ19GKvUYNIRAH+wE4AdTN7eVFFzsc1762PImN0LbECKocF+RxupNQ1Rw5+7a5/1tKMEf5iW+TzQ8n2aCcyiJSwdWGU1ObnsmdVnx+mcgdHMjkfPSWoagSJYENgPEAXA9x0hkAGwHMzwyQE4EcgBZGK7bOIkRIoO7GytASJKsq4R6fAxvD50onVqiKypV1PMFBJOiqoBtokOWHCL9xEC8HmJOxwSQoYAqMQ1F2ySsPAECHna+oYwjZW1mxps026ZqC94ZRBsWjiPwWfx5m+fPMJndRPDjrTI9CjbW9z+zg1AI0Fr8AyCIvhTE1OgccD8Qg3x2Szn/0pgGSbmIfMLhVrIhflBWR4d+5XDbyaBv2b/0f8E+qcAAwB+l0HjpzOhQgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Saint Kitts and Nevis',\n code: '1-869',\n iso: 'KN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzUxRjY5MzUxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzUxRjY5MzQxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQ0ExRTQ3OThCOEZFNzE1NzlBNEFEMTBGOTU1MEQ0QkEiIHN0UmVmOmRvY3VtZW50SUQ9IkNBMUU0Nzk4QjhGRTcxNTc5QTRBRDEwRjk1NTBENEJBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xg9gqQAAA/lJREFUeNqcVXtsU1UYP+fe03vX23v73EOnEgWWbUpwEFcSJQooooCEaNDAZkKs8mjCgAjGkMEY+AcdoJskYxAjc8FNIYEoWaTRTEMgmcNkKS5sMnoHbZmk7drdzrbr497jadctc2ug+CX35Nyc3/nle/y+78DV3370D4ggQIFHMAgBoCBOJKm/glxlhbxv0d99re7PjiUhk2RRBoQc4VtBGFYBFQA4V2ICpWRplIN6qmb96GKXeHi91Nk1E4byaS1F0YzC5kBNOAEN8WgUeWOqjStDWwo8vY2evV9EvPEsaDR156FGQTkuQ2eQe+5Z+eQyT+wHp9Ua6JeyYzNfLhmgIRRDyE+zR6q9p+f22t+7/rG1SIyXFhUazWbzLGZ04JTwcGpE4cC46laAffvleNeGgafP976z6N7pTpA/B4mDXTf7Bw0GwzQ4vXA1c8PH1j+jRQ/wlOggoUDnfXX5gnjba25T9926pcHLDhoAhQC2bt1S/EQx2SwxL7Hb7WTDFOU1tLE7F/LSh+pLF1Uoa60gkQAEosTILPrc4l2bFM9u9x5qldOAFK9Op7PZbGTl1Oz3310FwPR6zcjZw7qCdvXVNZpAktKC2GxqBVGKL8IGwszGV6V9C9zuDs+6vdEBH5yUUGqV0lZ3wOYbHh9jnWeucJsNT91dxl/ohQJICGnQf6hpCGIKdnrV5fOT595yPn7DXb8idO7aBN1saSJxaKDqEP21pZA5qv25kY0BxQRkDDBOh44ms4AhhLeDeTAveXTzSDU3dGbXcG0zVFKM1ESXTK8CCa7sTfqrRv6lPr6vXHM7BLUgoQFYyZxO6pqGyug44w8xG1b4G8yu4YuudXuE66IJgBGTyRSJRKLR6DRnMZ1P1X6pry3TSjvZzssqBii6dAFm9AdKytQdLz9vbvxHqzjP5flkpfTNL8TB0PHjDURVDoejqalp8lpKqcu3MydrhNLz2u5NjA9gPkU6ka6ZfYe8CdWR913biu/8ZAu8sZ8KJVKBm80vWCwWIoCWlpYpZ4VSVcMxbhurvfeu+sKfgHgqAAVnSLP0M/rtg0Hlj5urXsG/O8lvZhYYjcaenp6Kiucj0fHHCsrv+/qrDnK2VYaiU/yvrSgKFCNIklrhBw4JuGOT8UR7IJ10gpSnDiorzSXzy9o72uYs1zTXc2v6+b7drBgh5SKeKrmMHajTGSUpkH3E6OndB1V1JfqkTei+QjNAJhVTcptl6QlB4dkdTrS1uBqcqBJetBd274J+APh0QLnzpqgxnkGNuSfp/Z9q9rCC38pdGiIaiGtBBgQf5SlCPM+PjY2p1WpyOxzGS9eyzTv0JR2aa62MBBSNgGWcJ4P/Y/8KMAA88JPiKZPG5QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Saint Lucia',\n code: '1-758',\n iso: 'LC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NTFGNjkzODE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NTFGNjkzOTE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc1MUY2OTM2MTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc1MUY2OTM3MTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RRKY5AAAAg9JREFUeNpi5A5cyEAbwMRAM0Cs0UwsTN++/fr29SeQQaQWFmIUMTIw/Pj0Q1FaAMh+9OQDBw/b//9UcvV/JsbfD95OzHGcV+r+5+Hb/yC7qGT092+/xMx12d9d5nh3Ud7e6PuXH9QxmpGR8d/zT+lh1stndk5oLcsIsfj38gtQkApG/waGq4ioFvfrAwf279hzXJHpMbOc7K+//yg1Gui2n68/+/pbMzw9cv/1zw+/GP48OhAZaPnr5SeC7mYiGIEMX/6FmQiuWbKclZGBh5Vh0bwlvjocDH9Y/hEym4DR37/+VHUw+vnw4todu06s5jq/jXfXkeMvLp7QcTH+/vkH+UYzASPwxedQe60tK9bFOTIYBQupuPDn+DHsXLs+xErt/6svTEyMZBr9698/Jmmpb/efmkuvWbiE/f+t3/+v/548l8NZY/O3e0/YFeR//vlLjtGgCHzzUc/QMdLkUkH4MwYmgb9f///98Z/ht0BG4Ksw4+Omxk6/Xn7EE+A4M/pfYJr7IV5ifdHMtpThFdCeVyzi4Nz9h4FLk8FYtLz0t9SRzTJ//+IMFpxG//nLyCbF9+3Vyh3b2f5+c2L4j5yQmZg573/+tJJTJuL3r2/sTNgLFEY85TUT858vn5kZfggxsGBo/sPEwPGOl/f3379swCRKcsn37y8LFxcDA9d7nIH2lxWXuYOjKiADAAQYACDo1+pXfbuqAAAAAElFTkSuQmCC'\n },\n {\n country: 'Saint Pierre and Miquelon',\n code: '508',\n iso: 'PM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkE1QjFENUMxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkE1QjFENUIxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRTZGREUxMUI1NDA0MDcyNDExMDA2MDlERjhFMDQ1RTMiIHN0UmVmOmRvY3VtZW50SUQ9IkU2RkRFMTFCNTQwNDA3MjQxMTAwNjA5REY4RTA0NUUzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vSLwPQAABrFJREFUeNokUwlQlEcWfv0fczuHM9wMOMMhoKAc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'\n },\n {\n country: 'Saint Vincent and the Grenadines',\n code: '1-784',\n iso: 'VC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkE1QjFENjAxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkE1QjFENUYxNzg2MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMzVDMjYxQ0FGM0Y5RUZGMzgyRDc3QzgwMjZFRDA0OUMiIHN0UmVmOmRvY3VtZW50SUQ9IjM1QzI2MUNBRjNGOUVGRjM4MkQ3N0M4MDI2RUQwNDlDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/PJycgAAAulJREFUeNqcVU1IlEEYnplvvp9ddRcx/zK33MyfkDJajaA8FNFB7BZBFF0iIYgu1UGNrCCoQ0cJOgR1EsJLUhelOiVaoVmYmGu7LWYqW667334/O9/bfLumtuou+l5mmHfeZ573mfedwUfOPkP/mz/kudnadelMtxrNwQhQRnM49bsDe2+/r/K6Y8uLCcScINO1uwFAoIwISJIslBkaAxH5TgbWOk66foQl8sGy8PJK2umrlwHW+JNGNuCTCrYAiCIySvgEkot8BJmAIlpWFqk2hF46wEGtOBMxBuEfL0rAABxNKE6a5SIyQUsi45m2vGgcnCmQcjTOGwCLTq3vR0FLbz2SmETZpqFTFImUeDLm6R/2PhzZxTPgQPZhSOgarXgzWt7ztZTI5no3kRE6lWggvK1zyOvePvvcX9jzpUJQTEHWn36qeBksyi2Ktg1Wzy26Ns1awDZ4+4A3OJ9X5tIIJh0fvVwOpst3hnZLYsLjjo9P598bqEpyhs2wBjvHE2XzSNZjCcliuKk4gjAWZONocdgwScSkolM/tmN206xTHXBhv/987Vwg5Pa41UfHR15NeF4HSh6fHC7K1UMz7st1Uy21waR6eAvFhzobxpGoPTg8jgTjXF/Nxf59VDQ7Dkwh0Whv+Ja5+GgGnxFzePMXe08PNldOd32oCUdcYQLdn3ddaZjc6VIL8+Kmqog52kaPQSZoXmiGRporQyM/C66/21OSrwOzWt/W+UoWTlUHtKgTMIhbaxlsi27ruBB3qAkqEVMQkMqE33HZdmLAGLbc6LbxrJu8oRv134N/8qYj9NbBSV/5LyMmZw3MDp3g7x8T2hrHZIdamqdf800gRhhkD6RZd2CM9bjkzo3fPzSZIzJZ1rnKmaVYhiZpAvOfQKS2xIoCK1XOHFd9fnvOZEWxlkoZ2y5Kk2E4/TGhAGZatwhYU6NsMYI0VVj5HIA/T7zMBIORVZSp4kBqDBHMPxpYrkKLTwD9FWAAxwI1PaSIg8UAAAAASUVORK5CYII='\n },\n {\n country: 'Samoa',\n code: '685',\n iso: 'WS',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCQTVCMUQ2MzE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCQTVCMUQ2NDE3ODYxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJBNUIxRDYxMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJBNUIxRDYyMTc4NjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+mJryLAAAAXxJREFUeNrskEtLAlEUx8+9M97rjOMMGPaGHvQgWkW0MKI27iJo0ap2QVB9ABH8Rm2jhVAQ1CYisIU7kTLsoYk6ckWdmTs5pCVBMCnt/HEWh/v4nT8HBZeiVSzCFw1T1uTwytRV4qmYKwHxgIDABhCIbFRPHy9HjGpZIOACnBe9DItOEcqYybK67ZPW1xawKjPdYCYwkXw+aCZojkDgFuzjZqstVEKrs4eRzfdM4Sh6krlJx2Jbe9vL8FyCruhYhcFVhY4P+p1kVAwEg7fJ7EtOB4X2rB5W4+fJ+FkCVAne9LnQzMXdg/VahiENTKs3tclBpiDgQEDZCC9e32esSg0GlO68zq6B+oGqrfKqYNLy2OhBZKcxOQF18n1FNUb8HJBg2y7V6Hh6t4Fwx4kNCGk+WmZ14E7fziAQy9gvplRu1JDgSl2V5jF0BMHIMrler/sJET2CY2+P5AiniWIg7DK4mGou5AceAAnyv3xwvxAM/0Zf3Vf31X/iQ4ABAIPdhjTlJ084AAAAAElFTkSuQmCC'\n },\n {\n country: 'San Marino',\n code: '378',\n iso: 'SM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMzM1RkUxMDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMzM1RkUxMTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEzMzVGRTBFMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEzMzVGRTBGMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pmAcAgAAAlxJREFUeNrUVU1PE1EUPW86hGk7tbVAoaDpByGG1EBMVEyMceHGnQtNXLjTH+BKf4BxZ1g10Z0LY1ITjW6MCwPBqCHBFghpLTRAS0EoQqX0ezrTzniBLm0thtpwkzsvk7n3nbnn3Xse08jQAuPIsy3AzXJokR1HYLXq/xk4PPsWQf+rfwbmD5sgFVJYXFrAejQAoa2CcNgFx+kBGE2dzQXmdWYUtz7CZppEdK2A5K8SBvtHm0v158UZTO9u46Syg+zyF4jZaZwxSgiVJDwY8yJdzBx9xTllA775T7iq+DEfD+K9NAqLWYcriZfgx+8iEBeQv3AbZv2JxoCfTG6Xaa2Q11AwHfGi4uvKBJuYGmceV5zzi48xlr6M9mQFCasD9/AMdsWheQNPtQ79TVVjA7RbTV1i5GX+oS+mq0s5M9DUJMkjgKwiJnbRGUdxKiOjT1TgNpQRyRvh+1ZmWF2n+JAOmkCJqXoF63jYBFb9ixrA9KnSC07OgVttw+aSAfazL/D6h4Tv0SLO9QKzK3ZA3w9YrzHwF6sqLNQDZlxDbUBUa9wynLZ2BEPDkGIenHf/xJAzj0yiG1O7fehyfoDAZihebKhnG2guOn6tBE25Dt7ejTs3hjCSXoPbb4Bn0AVTxyXIOxa8i7yBzHooVqZ6tCMA1hTaiNrAdAsLqSK8cyoyhgx8GyMYZkb0SMDzzU5i5D7F5ajYLcr5+7YMj+b2hs/U8NTL9ChQitlMMkaoCjEiEr1sjxnWqH5n+UPfCzwBWKwHLwJ1vKAdsLIPqjVPMvcHQJX/MJrH5D7+LcAAowvZ8JHN4kgAAAAASUVORK5CYII='\n },\n {\n country: 'Sao Tome and Principe',\n code: '239',\n iso: 'ST',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMzM1RkUxNDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMzM1RkUxNTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEzMzVGRTEyMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEzMzVGRTEzMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A/jZ9wAAAoxJREFUeNq8lk1rE1EYhc98mGRSo0UkJSmiUJtFFwri2rUIgtiiuFGwiMtiili02A/caG2wC8WVUPeCf8B/oCBFVKzWhtgmTalpk2Yyk3ZmPJeZ0GASm4WTC2/mfk2e99x77k2k5I3TK6mRakTLSegqS7BldKSoj+eDcThAarQKrKBjcDkdskszr4NIzgZQ6XVQDrPT7oDiEkHLko2nhIuSSgrlMrp0+KpcVaiuqAFLsCGUKxIwc6eKSpqJbJOs+AQWHwJeInyZ8Ml5DUGuwMLDHLRMgAPwBS4tdJ8t8hkRDYsCA7qMo4aK6Ogi8GQd+In24LuMbvGNjN+MA/uYq74hlFthC7mQhQ+zA9hIxoBjHKAPUBWZ/RUCtuPBeoDsN9rjM+sxr2/Hm2M1RqN9bAlyeBdqyMD3uQTy9+IuXPNecuoCrrLCGlCmJcZfAiMpwGB9I1en2mmMpr51CFcID2kVLD1L4NfwCTgHORBsMpn9WRO4chV49RZ48w64eAlIb9U2sI2lbjCA7DA5GVZJcZeuWdkEBs4Bt8/vdV1j+8wFVgr7uLoZ0DIUGHoYx4cXEU9lgFUOmC1S5ZkvMO5eB0JclQq3xNlunWuDq901oEpCTQG9+QPRF4RmXGVNnS25e5bN01OnXCn5j0D0iDffaUOxuKkUQqO6ip5bX4HnOVdpmRFqkbpnllg/n2JfeTKifd47tcT+BRbQsEED8xzPDZbxacyG9r6Xayi12JD/cHPVoH2EPhoyMHGfh/YLj9Gmj1emgGo0TT+hk4NVTD0wEVyTcEjfgaX5+COhUWmC0OnLe9BISYKlwNcin9TliIBOjJsIrBNa7MwfAXV6qLo6NWZGBPTwlv9Ka+WPAAMAQOHt/oOWjtwAAAAASUVORK5CYII='\n },\n {\n country: 'Saudi Arabia',\n code: '966',\n iso: 'SA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMzM1RkUxODE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozMEE2MkM3MDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEzMzVGRTE2MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEzMzVGRTE3MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VDw2aQAAAwhJREFUeNrEVttOE1EUXdNO72ALvQqIQYSIxIA+GCMvPJEYLzH+gN/hZ/jAL2jiB/jkgw+YeEkkgsRE4w0UrLTFdnqbzrTj2jNtANMpwgOc5uScM3PmrL3X2nufKlic/QlgiF3D8bR+9k21PcGe8VjAPTihprq/UgCrxd505h7aaFm771qGM/WoznOl8017v8L9Hu+eb/a3Hh5btMpCgABqUwcaZfg9Ps4b8BpVhAOnEPH64eNaFfCWCbXVhMfUoXBUXAAP9pgHRoJR3Bu7jbA/grWdLyjUS0jzWc2oYDw6iunkFFa2P6CglxBUQ9DNOm6dncPH4g+8+LWC19+eA+HEIT02ahiLnsGNsXlcy8wgrgbxieDJSBLzo3McU1gmqBCr09tUMIYdsjLcfxpR7m1aZk+PvbiZecAx0O1lhbTlawUk6eVkfBJb5SyGQgMo8blFzWPU8XtxHWkaoelFvM2uYSSSQCw4gDfZVfyu5YnQ9eiGu8fUrUFP8vUixPY4NVWocZ36DYfjWBi+iqnUNLZqO8hW8gj7wrgzsYD10iY+k5nxwXOUyzyCxtQrfWoE9y/eRZJePnz3CDOJCVyKn8er7HtkqN3S1jIKZg0+o4y52BV4yMCzjZcwabBXIlpReuTM4mypa/FgWvhJk3gnducqOVtfP5nIlTaQolGbpD5AT0MEqdE7g9RqzIQ0dS5UttFQvG64mjuw5CEtR0Nz8tnfb7Ng5y9ph87nDCJ7n53vlpO3AiZ7mGr2HF3TSnPXWA6TQxko8Pc5oLKWYDEbzihgYpwcLmCyR+Zkwd4L6yiVq6O1jkFG6mhfBnXOmzTIah+oyI86tmhAjMaVzSq+Mrh0Fhi7oh2tZLZbi4WElF5nLkuFMuiZAEmXIJL1H+bvODW/nLiAp+tLeLL6GAgNol1HDxlce7UWD4RG0a1TqxXsats0oNC4EAPRSwY00V/pef9oB3ssh0sQSf+3/nYuBoJZjOpqNedQrAZcL4f/p3ofkAt1nYj2hHfXB7QTvY+1tsbH+ddH+yvAAIKJO5Z5g0J2AAAAAElFTkSuQmCC'\n },\n {\n country: 'Senegal',\n code: '221',\n iso: 'SN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMEE2MkM3MzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozMEE2MkM3NDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjMwQTYyQzcxMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjMwQTYyQzcyMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MP7aXAAAAYNJREFUeNrkVjFLw1AQ/u7loRUMtS6Ck7v+AcGiIrjo4i/wH7j6C1xcBAf/gJM4irvgoiLqIAgOHUpbqCgKWm1pX85L8opFYptAgogH93K8fLkvd7m7PMLWfBXApOgroqQJGnVhyusOF/LQ3gc4CqbyisyDMfWlCjqltqPGnUiciCta09ZAzzVKvK5/9Be2OgjnDgJ8d5oGJlYEmckfI5aEkhNq/OSmQKwIaAlhy9rZEtvIVE6WMeDgnrF/x4Ed7CFZ9LGJtQqb6qzMQccf3grxdWify15H7jlOBsTkp3SEcFEXe9fguMQ4rTJox+BERpB2Mkp12/gLY6NI2CvKYzWJtsLYnlXYXAzdGBOfWMdG0tf8unxiLMwpDEuUVy92WDGFmNSJLXnjEVibIizPEIY04ejGw7OkvzCRLNXJiCXinES5Mk0gv5eajFV5Ae8teT/rpP3nFxm/9/A0bOFlOkDot0fmfyGmND+Gtkce98ejT+jM2LrVfeq3i/Ol338r4PoUYABXBXI3FKW/6wAAAABJRU5ErkJggg=='\n },\n {\n country: 'Seychelles',\n code: '248',\n iso: 'SC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzkxOEIzNDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzkxOEIzNTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjMwQTYyQzc5MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjMwQTYyQzdBMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1AigIAAABGRJREFUeNqMlUlsW0Ucxr+ZeXa8hjgRJSCo1BQlQFUkoGqkSlGqJBWkjYTUqooEh1QVSBygNBHbtb30wqlCHOglEkUtqBfOSJQzByBpk7jO5nirlySO7Sz283sz/J+XbHbijDSW5Tf2N99vvvnM0HsnCsCLRoMrYMUOuExz/u4EOl7bEmbGdvB6qcBsHPx1J/SJdSM8NovNqXWh+WzMeqzRfAVHGQYH1mwYH51Dx+ks5KK7vJm6axVEK23qZTsy9+OIfDMHI2ugqcMJVSx/h34NuYaighaHnOgbTBgjw1GlYg4oVkfU+sgkURKAW8jY2Gxx4dq0lLpC04kd0arjxoiX7eDtBfnoi3mGLc5kQdS63Ubrgv5fzggR2uzjtEaCTLgElLF3vXYkxGm7undzRvq61jUZ8JQJ7EfbRmjb7SrzS9wMfz3HjOWicL7pLoMwa+loDREH3Ri4GDevD0e4ChOu3U5V2WkJbVHJ6JcBmfwxyrUWjTu6XDUujyZcQYxjefnQQlzgXOZ3IbbQ2gntSUI7uW6ERgntn6viILRHF7YQZ2xq/NaMbOskxLO7EFfRvkRofya03xHa1OFoa3wdluL+wYQ5shtxNbUnSqk1Y2MBY/HaNFe6Ehba0vNGmpwTDaOO40pRsPaC+dvnhHhT8FKKIXdSS4UQuhlA9q+05iC0vBFaS6xQgJFKwcxmIZqbZa2wQcWyalc/3ZpWrZUUKyWhVVP7IGFGKLV6Uj8crSWWz5fFcjkIn0+6zpyRnt5eeAcG9jmupPjCpbj5yXBEKMItLVErtbo0K6kVVmqd9VLLGJSubzvT2tqkq7tbevv64KHp7u5mleNlWm2KC/LXalEYGrRTDuhPNozQjWcltDWptZxZYolE2VlLi+VMeXp6VPPQEOh9Sagy66S63MVq/DYVxYmchlUfRKdNUdcakW/neNEqhLcIrSJX1izqe86s6szb3w/X2bOWiNgvVitcQuyyutgcuRIR0Frp/4pZXWsm7oatfxTueMMDubEFI1n/zNznzm1jPCTT1dwrbbuLj+XNR6MLHB4vK/yTN8JfzSL3eE2zvaoxtbGMrcnMQWcmDhMIp58jmI6r6WQQfpoL6Rj8yyFybHCGlA33fgjC12WyzP1NKvgpnk9FOD2E2iBn77ynms+fVy9+eJnh7VP7EUrrJZlbkf7kEuZXImx2NaqexOfVVGKRLa3FudxYo8zkGEy6MhrdDruLhBedeP9GFtcvhxD7aFJGHwRFC2vFyatXTdfAIPDBReB423bZxIs5Ob3kJ4GoekY7f5pYRHA1xpYySZZfSzDk13cEmigTTVQsrhfo6Fr37Jc1X7qjMp/9ATzMwHzaCfFxD4q972LldBdiTgdmkgFMTP2N+egC/KklBFIhGJkUXa9NajGDUkI3wU7XrYmmzUHbE6Vr1Wiw729/GhhCuv33bIcev3CcRbx2zMTmecD/L9NTz4HNDCW+yCE0S4DBQZ1tJwFG4TiCwEHjfwEGABOHZsLQl4B/AAAAAElFTkSuQmCC'\n },\n {\n country: 'Sierra Leone',\n code: '232',\n iso: 'SL',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzkxOEIzODE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzkxOEIzOTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3OTE4QjM2MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc3OTE4QjM3MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GrndcAAAAE9JREFUeNpilNtq9Z9hAAATwwCBUYtHLaYZYPz///9HIM0HxPTKVoxA/IkFymBAouli+WjiohtgQUpU9Exc/xkZio6NVhKjFo9aTBUAEGAANLMNXBNFuocAAAAASUVORK5CYII='\n },\n {\n country: 'Singapore',\n code: '65',\n iso: 'SG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzkxOEIzQzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzkxOEIzRDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3OTE4QjNBMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc3OTE4QjNCMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k5fIFwAAAflJREFUeNrslk1rE1EUhp97Z5Jp0dTEL7S0GEFcKK4CLgouunARQcEK4kKqtTsVi8WFFUS6EDdiUXDvX9CFgkJXirjQoggiKoqSGIuYtpOk6SRzxzMTK/0BlwrSA5d5mYF5zrnnPXdG1fYMloBeHO3TDjEfv0CXh96Vh6AFLVmOA0phKTKyym4itIb6YsZ8LZEeG8U9WiS4fodw5m0CVZl1Hbgx1uA6uYRSaWUWb+oa3s2rmDfvaD16gNq2la57t1D5fsz7T7C01EnAQiRgU6qQOnyQ9PkRwulnNMcnSZ86g9qUJXw4DY1FUieHUH3bE20NTL2BPrA/ke37j1Ebs6TODic9DqbuEs3+JHX6OFrAkV+3AnaXhVo2T896onKZ5vCYtMCg9+6TLQ5ojl6ClIvanLNYcXc34fOXnUwGBzBUcAYKeLcnJYkfeDcu4544gvn23Zq7nStbdk6Ia73wxQxazOQOFVGu9PbJU6jVBVYmdn0kjo9+VVHptA1uoPzewoK8OENdIFWp7uIF3GOHaJ6bIHz9Cr1jN1Gl0gHmZJvbbRtgX9UKxTkRG2RMDEGA+fBZ3JxD5/uIag2bB8fK9s4rM79QFZGNp/nvIzEVMS+e2SiyDY4PgjlX9WScFTdWKxzNP4o18Br4/wPHXyf/z++Iv0rMhPVbgAEAAN6l96444okAAAAASUVORK5CYII='\n },\n {\n country: 'Slovakia',\n code: '421',\n iso: 'SK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkIxODFBMzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkIxODFBNDE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3OTE4QjNFMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyQjE4MUEyMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YhjhIwAAApRJREFUeNrclktME0EYgL9l221LW/oAIlWBg4oXUUPkZGLwhIpBIDFBjeFoOPg6GfXqTSPxqDdNDEZJwMDBgB5MTJQLCWoPBhrwwSNAC7TUdvvYcQoESuRiq2icZLL//+/MfjOz/2MUIcQEsF32CFvTnLJPmlYFsp5bAi/gL7V/CyySSURcX5b1wDj6yNiKXdpEIvnnwIHWCwy59zCo2JnuuM/Mg0fL8pC3ipGmtt8CNvW+mVxTYiYr5W6VYv8HEvpXbNv24Wk+gaJphDq7iU0MY3y0M/h+hs+6BZsezR3ceP7FuhYU1DeW0el1yNhyUHatHVvVbkQ6je/mRSauXsdX7ODGnXd0Pw+CV+QOprRwXTMXYHZrGKEg9gOHSIcixEcDoKokp+aw19RiTI1gdpnBJ6OvKJUHWFXWNVUQFQUkYgm0ihI8p+rRXE6UAgVT0zGS/k+kxvxyjCq9Q+42e+4vgze4WpovKTtL+2so6eskNtDFwu0OsFjRLrXLw5d+cLyFb4aUxFxmpfmAs1ZtVQjMqMzu2MuYdRcvi2vp6naiq2Zad56jbvot5fLdcNACtsy83HescKQ/vJYuM98JGTQ1eIkuCgZef5eAWbk7aY+XUHfYRqnPzLMe6VgeZcWeW4sotypPh7PzdCqeoFBT8LW1cGX6IMFXfjAMHEeruVfhZ/7hUyKxNJrNkgdXghcL3RvAqqKwFA1T5HEweuYyZ23NJKQzPU72Uv3kLguz8zjsLtJC5JM/IsqQpyr8U2WS4aOHI1Qm57A0nETIf5zq62FccaO5PZBO5Zu4IqZNzTJhWBx2Jg07Wl9/JkuTcFWgZUbnD90knDZUCoEMX1KestWkLo/W+A/Komn1yuPc4qtP5IcAAwBoBOOwBg9d5gAAAABJRU5ErkJggg=='\n },\n {\n country: 'Slovenia',\n code: '386',\n iso: 'SI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkIxODFBNzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkIxODFBODE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyQjE4MUE1MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyQjE4MUE2MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ioEsVAAAAYNJREFUeNpi/P///1MGBgZeBjoDRqDF/xkGADAB8eeBsJgFn+STp78Z1h/4wHDnzi8GULgoKrMw+NkKMSgrMEPdTAEAhvSn/zjA9IZTQOtu/GcQ2f+fQXQ3kP3gf03+OaDMr/+UArzOtlT/DST/MgjpqDBIG6qCnMlgrgYSY6U8qLcd/ok91TExMZw48JfByYuZYdYsGQYONgaGlIx7DHuP/WBg0fvF8I/CNMnIIPr4E9bs9IeHgeHbaYbnV/QY+BXFGf78Bcbq+9cMihonGV7/t2ZgYPtKYeISZcYV+wycb8QYpjScYwju9GT4D1S2u+E8ww82CQYGEVAMMVPoY71n2H0MtBjka/531xkWlfxg4GJnZIjrYmF4zqXFwMD+DayVRhZDPfWHm4Hh7l2gO4BhraQGtPQ7UOwfNfIxnoT9F+Q0oO9UlaCBAGT/YaQ8D4MtZhMnQTk/9UquhS+jB6LEBFYSbAyfBqJ2Agb1gHiYCqlkKFrMOxAWg+rjZwNhOUCAAQDa9c0WhSA2hQAAAABJRU5ErkJggg=='\n },\n {\n country: 'Solomon Islands',\n code: '677',\n iso: 'SB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkIxODFBQjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkIxODFBQzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyQjE4MUE5MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyQjE4MUFBMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3IS9UAAAA4NJREFUeNqslV9sU3UUxz+99+52bVe37i90bMbIDGFCiBjiZDGaDGEwBYXwYGJ8JD7og0+GxBB8kswnX0x88wVdsOqDIWRMFDXTkUzkj2iQZLCwrltHh2u3/r33cn53g6YPdmvnSZrm3tN7Pr9zvt9z6+HI+SmS+SAFG19zLemJJLQHQPOA4+DGZIq6rnpSiSxYci9kQmElV2V42HvWaW/z8fYrj7N7SwOffTfJN+NxMhlLsh5qDA8Htzdy7PUnuD6Z5JPIbSaiSxAw1gXWBJ3MxtIc7mnlxadDPNvdgBVbWkk72DNpureG6BP40ec3kJ7LqOOug2iDrWEQqGFOih379C9e6A7x9W8z5HVteaS2g+XVOX1xmnze5tKtf4mlC1BvqjNVOFsFlCnFNrnPenhteEEz9aA9L/rdl09HHdzLsFm6NGXMNy7fA5GCOyloMDGaaim4MlQC1CHeLkAPPdtGOf7yl7hC2Tkp5JOkzw9ygF6Bnj65k1pT440T44xcS0DY79ZZM1QBLSk/t8kd7e4dP3F8zxn27zsvHCh1iBqvGCoqxTvE4Sqi7shZdrEuRJ3yY1YaFqRsvMO97Nn+C+/3RXj1wDmQkn9ebOHjC20CVmsj+qG6VgVlhe7L9ZZ3RuXSIZHMr/hMknnHHRem7upfTsNe1WHfGfr3jbgdXvmhlcHv24hc8ZNJK3NlLR6T1dghrn3uqXqGLkS5I7DE7eRyQem8M+zj6J4OWacUY9cTzC+JwWq0Ug1nO0s0HDggI/WqDlv5aKSVod8D5HMaG5vyBEIFAUt3gbTFqTe7XLCqN/j5P+SUc9VkF3Ic6n+Swbe6uHF3kb3vjjKvpmNSVsNrP7ZxaqSFyB8BMlmNsAD9ZgFLSW8rjaXbaSn47aVZGutquDyRIqcc3hl0xbSk+6uS/3tqkcivM9yNL0KT5GLtZTX8YjxANiMdNkuHjUVg8c11aHjB8GpBQ3TJLBYIy+pE1UtC9zwy3MZmL9MzAvRJ5Xkxjfyu95mfy2roAk2nBFb6ypQ9lu+g0vqRW/1G0TzqRErueNjVcNfOMT7oH2Jg//B/a1gG+DCK6+TVi3cV9OEeRsPLGu6qTMPVwqh2D1fTcO3gCvewWmARXOUeVgssgmdlpJZe8R6uN4yerWPB9176iiMDZ6Hu/9Nw1f8Q55ZvipZ08ObVFj48t2HNe7jeeCDAAKYZ9xEESrmkAAAAAElFTkSuQmCC'\n },\n {\n country: 'Somalia',\n code: '252',\n iso: 'SO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNzVGOTkxRTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNzVGOTkxRjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM3NUY5OTFDMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM3NUY5OTFEMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aPgnNwAAAXBJREFUeNrslr9Lw0AUx7+XXBLbJB0ULLi4+QsR3F1UEAUR/CecXRwcxal/gbOL4OCgo0v/AcFFcKpooS0SWmmitqbXxLujYsactHHpg0ceL5d87uX9yJH1UqUGYIZrgGzE5VqnAwOJayZwDf8kY3C6hwjQ68dShZ0ZOIoBkrBHChagmEMYJ1VbITaXHGwvu3huhtIXJzYzVDD/qsiZBIQQ1N8Ytjh0b7UAz2cSmjc1uSat0LQLO2EEk+o43S9ivmihkNOh8W1XSgt48kKcXL/KNbalDTdi8cLWB8NZuYngK5LRW5Sgy2Lp8wKGvKWNprgmbYqbex+3D7/Ttfz4jqu7trynkmOqAvY7fWwsOlibs3FwXsMnj/x4dxo7Ky5emj04ChErgQ2dIGdoOLpsyLyKojq8qPNodZi6WkMrgUVOG+0eQp7X2SlD+oJuXxbVhEGUepqqDg4RtdAfiGijvwyS8U8iM6GDI4+b8dEn+BZgAN1qgUfVZqa9AAAAAElFTkSuQmCC'\n },\n {\n country: 'South Africa',\n code: '27',\n iso: 'ZA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNzVGOTkyMjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNzVGOTkyMzE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM3NUY5OTIwMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM3NUY5OTIxMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+CE4TZgAAA8tJREFUeNqsln9MlHUcx1/Pj/vJ3WEMPBERMrDagkVba4I5BzihtCyZzsoxurVm65fVwgp1/eGMmrLlP7VYFvzjDJS00T8dUUmba9NqqDAwMDpQzBz3CHdwcPS5O9yOudbu4Lt992x3z/O8P6/P+/P5fB+Fuh0+YDlTQQPdROPWXXgeWg8Xu/F5thDovYz5vjwUiwVmZliE5ZQ9rPCWx491womugTEGN65SWlrFiZ1vkyp33DrwDiMNH6CnOTGtyGE2Ij47u1BxQ63MGpKLCyZ0cEgwWavo6GhhyZtP0HSlB8d7B8nvOIc5w03wt24IhUDVFoyttlf8TEvZLxAWijEJQJGX5twL0yGq656h9FgDRmERWV19uHfXEuzpZ3r4TxRdAlWUpIUVT4nub6yXvC/NpPxUAd4rK8EWlD0p4mHwDaCkZ/LlywfZmXM//H4e365tBC71L8R7IxKy32FRnR37FR6uttF6fjVVnQ+IqE1Sb4Cmws3r8M8oZZurObHtNVxR7/dw9Ug9iiRKsZqSE56rNGqKNT4/JD+lLaP8dGEc/ZR4K1TDA/Kfm6ZX62P0Z7uY+apJAnQk6vt84ciymVS8Qr/meRtt5/J5qrNQ6K1x9H/LHmV95bO07XgjWvlJNNmdwreXZ61G4yGVcIqbdacK6bqWDfYJMIvMtOxRH/b05SxZukLqcHLxhG+vY6+rbPeY+P5CLhsvFEk3iZ/6tBgr9IFxZPBImtWEhfX/u2MsILFpYVwiphIZHHEtFBGMeJu4MP8pvLVIo6VBRNwZPP5NAe2+XLAKnVkGiHQZo0OYXHeRkplNODS1GMIq7XsUKl+x0Hkpj/KjhcxMStU6xBFdAvHL9foIxaWb+K7mXWxYkhog84S3PKhx8rC8PDeDqtYCWvvvBovQpI7FKIeknexOmvd+zHOrS/j17A0+a+qSbjKhaUriwpp49G2twoaXLHh78qj4tIDpoNSb04jd4Rfh0RHWbXiSH6rrIk9QW3eGDw+cnmsmc+LEUS8/kmhXCeVJoewTSms85aCkOZXmfUeilL3dBmVPH8XXN4A5fRnWFDPhmXDis3r2ot3vHcpzbvTGeylV6r8plMOUlG3mTM2+OcqfhPJrecqGIztNHg4ne0Ia+nbvGo5fvgdMoTlKedPQH+Kli+b9QpkfofQL5RdCORg9Hq32GOVCTmX9+KCkNuVWrGInAnDtLx5ZW8GPL+wV58xzXrZFhimOldlRymRSe2dx2caN6OQKyqePpnP4xffZXfwYA73jPLrpE3z9871c8LdHbEoa/wowALUrYLIw4iaVAAAAAElFTkSuQmCC'\n },\n {\n country: 'South Korea',\n code: '82',\n iso: 'KR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUZGOTk4QTE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUZGOTk4QjE3ODExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI3MkNCRTc1MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI3MkNCRTc2MTc4MTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+kIg3fgAAA81JREFUeNrEVl1IW2cYfvJjMPGvIbhhJZ2tZaWFlqZgKEOHGtGZqtALcVR703mhRGk7dTBEhsz/UmVsYOl2IXOghYpFWmnNxYyKOkMXfy4EZTil/katTZqaH0/efefYZbgYPN5sL7wJ3/ne873f87x/R0JEywBOMnXiv5EopisS5tjxfhEkbrcbYWFhkMlkxzrZ7/fD6/UiPDw8lIlTGmpnfHwcRUVFsFqt8Hg8op3ytlNTUygsLITZbA5tyCOmQyQ/P5+0Wi3l5ORQY2Mjra2t0VGys7NDra2tlJmZSXFxcVRWVhbK1HEo1c3Nzejp6YFer8fExAQUCgVGRkYOXpjj2A8gkR8MQ1paGra2tpCcnCxQnZiYCJPJdDTVPE1dXV1Qq9VYWVmBUqlEW1tbYP/tyG+Yz72JmUQ90yTMffY5nL/+cymGGIwlcOxiQ0NDwnpsbCyI6SDHKpUKeXl5iIyMFOJsMBiQlJQk7G3c/xGTKVex8fQXeBb/hGdpCZsvHmEqPQWr334n2Oh0OgHlwMAAEhISUFBQgJiYGHEx9vl81NfXR4wiYhkqPNt8YaFhZm6VxJJNc55eqs/R7+qPaTEmgRYRTaNsb7PnaeCM8vJy6u7uZhHhxMf437LLdOJGKaK7HoA0F+AnDuF+DvFeJ2ZUsXgrV+LimhXSDCPizc/EJL9TLsZqgenjPzjUs3+77x3CaN/p16dScU+bwgImx3VZPO7bJoEtO6CJPfJMqRjHWq8fP39wGVUaA6I4D+Tkx+2PDLh39hogU/Apjt7TmXjwoY4V8htR9S4KcZRCiuQzGjycuYrn5/TgSIrlKNZl3TsA52XOWUm92sDrTxj6k2dFOQ6JmM/KioqKwPrW9UvAOweWSIPl6DiGjLV2v2/fqYt1ttdvkHojNWBfVVWF3t5e8Z1rYWGBmpqaiJUUsdKilpaWwN5XP1kIahMh/i5B9w3hClPtl4QTpWT63hyw6+joIFZClJubS/X19TQ/Px+U1UGIt7e30dnZCalUisrKSvT392N6enq/o33xKfqe3cEV4yXI1SrITqhwMeMCHj+5jR/KMgSb2dlZzM3Noa6uDg6HA+3t7VhfXw8CfGg5VVdXw2azobi4GA0NDUL3Gh4ePvCiy+3j2UKkUnHgeXp6Oux2O2pra8GQClOqpqYmqJxCDgl+OPB0ZWVlEXuRVldXRQ0JnlrmXAhTSUlJyCER0rHFYiGj0UiDg4O0u7tLYoXNcBodHaXs7Gyh+x1rOv0tDAEiIiKEj4HjyN7eHlwu1+E9+j3Vkv/r0+cvAQYAGzcZMFujiqgAAAAASUVORK5CYII='\n },\n {\n country: 'Spain',\n code: '34',\n iso: 'ES',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNUU3QzUwNTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNUU3QzUwNjE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY1RTdDNTAzMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY1RTdDNTA0MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hN0M3QAAAeBJREFUeNrElk2L00AYx3+TTCw1adndLlS2KLv4Ug+CeBCk4s1v4cWLn8WLNz+B38GbXrysKOxBVFwRXRXStbiktcFmW5IZn5qCwgYRUpqBITPPPOT/vP5n1K5/LgS2ZMasZjRk9vViwV/flYA7VDR0+rMabH1qLasEWM0eO+N/5Ve7FqXztU0hzdQycGPt7ZjiIzs3S+YGRFENK/vW5hQvkoVZnJUJNcMC6Tz66zCdOTx/EDA4qpElE9rNjN49Qz0Q5CPRccsAF40AwvfimGeoZSkfXkoAOgHtbo1RGBEJbmdb9I6XDSyF/v30NpOPdYb9dzSCLa7dvs+ZXsynw0fo7CsdPSgV6pO9NM/dDPzxBeyry7wRz/eabQ5HG0y/XWXy+Qr+8LzkoVyedSGwmBMLIGdnXBcj9t9anr1+yCX3AJ8uyXHjT/HZZQHPfyQ5NBcNU0+RSLPdaod44QGD8Q/8uzs4616uZ8t43CyQ1mG01hfPXHo34UW3ixvVudF6wm7rC9YRezdFLylBINlTdZJAxBPl5iFXvpIeFg8dIRI3xY7lMFUYI3tVgkD27nSKq07lLJFZB+2kv2WpcXFVHmNjy3G8Tgb6P9TcpXO19nxTySVR3X28ePI0Vvz0iX8JMADE1p16B3U5CwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Sri Lanka',\n code: '94',\n iso: 'LK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNUU3QzUwOTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNUU3QzUwQTE3ODcxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY1RTdDNTA3MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY1RTdDNTA4MTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ynHuxQAABGdJREFUeNqklttvVFUUxn/7XOYO03Zm2g6XDhbE1ghEMURRY2IUwpuX8OSbiW8++KwvmhhN/A+M0USJygOJMSYEH1CUBGICUgpUCW3ppNDaMlPauZ3OmXNxndML470tO1mz55yz91r7W+tba23lX+Qmm+jGwMXnn4cmYovURbaIGCL/tva/RqBnEZ0pZpV7mfrPU4lEsWFi6p7oU8TwOKxqmCvKXZGkyFa4caoXa84kXWjguWpNB1BqaS7fTJHbVaHv2bmG0YxjvXc+nzg51gEpgeUbxFWLKTVCh+/JLtlRFRmE+Xic4lAnrbrByQ/2EDUdlLYGy37gMIP9r0xQvR0j81TdMnR5GYk7YlQk6YaLUspBU8vuXJlj4DU10n0WDzxdYuJsNkSiGR5aoES12ZFH31Ph+2CNXdfJdNd4/LUi107k8Wwlx1hRrvwlkReaalOkWP2/Kb/I8FfbufRpgXiXjWPp6KaEx1ehcutuBDPhrlp3bJ1krokZd8M1nx09yJY98zyRHQ9psvYhng8U12ejaEKAAG2mv8b4uRzJTptHXy0yO7KZTdss+p+7w9T5TkZ/6EaLeHIwA6eiY2puiGRdhv1lopgJJ3yIJCUkgvjhw1PsPjRDZneNymQ8nH872Ut+34Kscbn67RY04UK4Ty2FwmCDwxP0yYyN72jEuiwyO2vMDKWpzMQY/zGLbypGTnXSf6BEz2CF6eGOv2XWukfIN08T9EKegFi+xi1hezLbpFaKcv74TloNnR0HS3QN1IkKcZ2W+pOODSH2Q+755PcssFgxufRlHy+8ew2z02Hg0DRPvjGGmZNYZmVtE26ezoiL2ljKfbjatTVSwvJI2uGhI9MMvj6NKvn3/Bjk/oKY6obOvkaYXu0ptzFXiwK3qVO+kWLb3rs8//4IqipG55eYT0oq47RkagKalsnomZ6QhO3FRtsoYmUEiqAlB2jNGDTGIpLoYqhscP2LXqG+YlJcXLkSoy75HeT7fZMr3Cik8gXB5KUuPnnpGc59tIvaTJSv33yM428doFqNM/TNdhYnTAoHyzhywPa6bqyXzcFPEN9ousXETznshrS1hkbhSImqFP6JoSyFQhnDcNj38iTd+ytcOLEDT9LOXWa2WrdhQRgYciSVUlEvZHTLMshJni78muC61OFE0iYtlWvo8wKxtE3xYpbyWIp03mKhFMf29DANjdUm0CZ+e6lqm635CL2DC+x9e5Lv3nkkRBHvsMXFMc58OIAhzaajx+L3q2nGz+ZW3RRNtsg+WOXFj3/hyrGt1OaiGI58aAoKKpElRkpbrAptvfbuFKRGAykCGobU6prU6lIphW556PPmUsyFbJ58n7uVXPXOyrBrBsUrOS4f245Tl8JjSOFxh6l/X0wlRmuR1YtAQnkcpYK5AlVKLJvlHFsVo6e7aZQjgrR1r2X+b4z8sOjMyUWgZ6BC/+E7DeVfkKvPZrn6ROSe4f21I7Rxv7l89clvhB3LewI9llx9bjP7hwADADpQzQBjYpxJAAAAAElFTkSuQmCC'\n },\n {\n country: 'Sudan',\n code: '249',\n iso: 'SD',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjc2Q0MxMjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjc2Q0MxMzE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY1RTdDNTBCMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY1RTdDNTBDMTc4NzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dsEThQAAAfVJREFUeNq8lT9oE1Ecxz/v3ZmkMae2xdbuiqRiqaugKDo5WFGQOiiimy5aR6dOOrhYHRx0qQoVaQOCbgpO/oHatTrVhCYNtIlJbWJJ7p6/C7aiVhfv5Qf3jrt33Of9vt/f7z118sTe+TvPE15XQzHbGaABZbAeihu7zc6sw71MB0cWXGY9n28uOJbhDgM910q9QXx8oEFnVXMsu6mVcSVuF64lZ1jUrYcrp2sMD9XwBbinpPFlzihb4LVxRQhlzdP9qxy6sMKbHT6DZYdYk9YCovd4JF2Vu7f+JpS3O4BVuPUiydXpBPMUKLLc+tweOAzhkpIVxJsMv1bm/rZTfrK7y2QrBWUi8t39qwGh9HWHiX1l9bF/znl8/rpJk1LReryxFiK7I0MPMy8nVf+lXfrhh2fqx8x/X/rf6xJdfR/60tAMOHdziMNjZyguL1rM+I+OF1caUKpXpd2MJY9/BxY/QSzJ3ZFxLh84a7G41toq3MJ0haMHj5tHFx+Y3giLa2NwIMDNMpWSje1V0WzJav/2zKjJfVlQgQksgUPo9oT4KYBMHvO+rKaYcKPeuX7+MCwYR2qtrwPmvsJUDgp1a4eE+4u0W2PwVlplMmv9PHbXpZU+5clnmF6iHeGKtB65mkgrWebrtCtc3i3lyeQ8jKGd8V2AAQDj9qv7QrTRKwAAAABJRU5ErkJggg=='\n },\n {\n country: 'Suriname',\n code: '597',\n iso: 'SR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjc2Q0MxNjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjc2Q0MxNzE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2NzZDQzE0MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2NzZDQzE1MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZGHpRwAAAa9JREFUeNrsVbtKA1EQPXf3buIa17xMNCqKaGyECJZW9v6An2BroSD+g5W1v2KhKNjYGBAMPglJCslmY9TNPsYxJGClNyAK6oXDDrNz98zcmbNXYD1H+IGl4YfW3yMWDlGdnwlG8E2cOsOWFnWMnkMxXcZj1x5i9D+euixOr/S2KW8PnzVExt1OAu3yADSzr8N6S5ukd18W7xwfE/JIEIc9I4rZtTtoEcLl7jRMuOwlfhsqk0s9kfg8jM+CSMDMufAdCaoMIrnqQh8KYO5aiGYMGGkP7UpEsQRAqqYYMKFRaCK/X4SIcWUhf10Qls6OQa7A7fYcni5ikHHvC+XEHHLYh32UwvXGPIKWhJgIIcYIoafjZjOP+kEauuUrVdufjnWCYbVRO52AfZYCsuwbAxrnSVQPJ2HEPG6c+njLwG4qB3swkJotIblYw9VyFuGLhpm9KkYWSmgULRgtT51YZpLKchLc5+gUcLNTwMNJptMDsZWFkQsQKSWgcztU5STI8Rw2LLU0OTeHu/PEGO1qt8b/HZOHLc7whWrBTeET2WzEOzL9vvuhIf7v419P/CrAALDtiSyIepCqAAAAAElFTkSuQmCC'\n },\n {\n country: 'Svalbard and Jan Mayen',\n code: '47',\n iso: 'SJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY3NkNDMUIxNzg4MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY3NkNDMUExNzg4MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iMTZFRUEwNDBGQTBGQUFDMTU0NTE1NkMxNzg3NzIyQzUiIHN0UmVmOmRvY3VtZW50SUQ9IjE2RUVBMDQwRkEwRkFBQzE1NDUxNTZDMTc4NzcyMkM1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Ec+VdgAAAaJJREFUeNrslLtKA0EUhs+Z2c3mIhiLmASFFIKiKSRBIYVg8A1E7CzsLW18Dgt9Bi+FaCUoahNvoCQIAQsbxYhoTLy7M7vHWVHB9bYpBIuc8p/Dd5jz/zN4leyGj0VCQPW66XBrqvA4lh0Hg8/uTQ8b55epAR6LAufgrRj8WdXRrtLQstyaZaF8EfFNQQQi1flF8w9o8/TUrZnCfrxptCVy7VVRqZDSvClz2/KeEC2yu+LWbBuECeFEsyiCJUFgXN5BRyq2n4OA4dzAI3pJS7hzjUh+xtcLy8s70NgAGlucW6/0p+1E0tkVkUc0QmjomyOChiCLhNWO6awK90812wj34ttDwySOaGv0JOBBANWGxsnV4uebIGPspLSWy8/PbANnoyN9vT1d1BKzVUI8D0C6PftkIznuhVsXNg4GsxOg8838ZKYzAeVj8PkAPS/koj3jnmaa8roSPS+W9BBwXaFPtCAcFUptaV80Tu+J/BWtB/1u+3TOpTKAE0nHTPVanCWgEQjxYKCGXJNhuNGMgRLRYb5JBAxVp9Nc/1T/IfpZgAEASgSdGXymLpUAAAAASUVORK5CYII='\n },\n {\n country: 'Swaziland',\n code: '268',\n iso: 'SZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkM2NTlENTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkM2NTlENjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2NzZDQzFDMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgyQzY1OUQ0MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wwOMbAAAA4hJREFUeNrslV1sFGUUhp/52Znu7uy6u0DLFlYMaREDgaiRBFAJhlATa2JSNMQLuVBDYiTGK1PU6IWJF6a3XuAP0Sv/wdAmuoEKSpoULanahtaK2Cpt12Jpmf2bnd0Zz+5WS0wM5YpEnck788038533nPOd94yyqm3M5wYcKjfo+O8RK/4UV+Qeua5VhmBeMC6wBI2CBoG3ZAu28vnNoWsSV+2pisJqxSdr5+nLQzkZZ/vdW3F+ucDM6XNorhhJikcNBn7lmh7Y+vyE9k/JoFrulYWgUoJuinxg3clAYYBnH3mKra++QlEIM6e+Y+iFg1zo7yEqbmqywpdTk7GDLXddEJaZRYd00/Kv5kKRd15OQUlU8EOQkCCaFJVnztt8pie444HnuXXsLL9nZmpLGgKwZtcmQTfjH3/CyT0dxCNzGBGT3yYd1ux9lOLEz+T6+tAta5H4T0LfV9BsX7aqQLFJJd+is6zRI2woPJbOMdKyjv0PdWC5WexoKx8dfYuH90zRefAlfhgdxdd0Nu28n/v6j3Fi34MYsQrLnn6ZYGobdL0oVoWjLAEZfm3v6lVdloEqpJuLXLotjHdvgOaNLqq49cTJEv2XYV08Tsi1Gfz2EMNDbxMOBjhytIfh4WFC4TCFrM3syCCpLe3c88YRKjGTVGuO+UP7uHiuH2u7iZFw8QrKopxU3ydYzHJ8w2662t8k7XQQ+qaMOqpRytRroFwuUXDKLF+5ivUb1uKVy1iSOtM00XW9Bk2rf2s4TVhDOWYff42RcIyu547xzl0HJD4Xs+JepWOJTJeo7dM645fX4p73mBuQjHyvczgSZKN8MqmqKMEgAVWjkHewIhE6OztJJpNkpqdxPY9QayvTX33JqV3b8H4V46KXS2diZCYbmRhshikPNVSvKeVTy6rJyfAruFLCZ5o3s372J5Y7c+Q0gxUio4SQHsjn+cJ1F+tQ5k709rJzx46/5i6m0xxva5P6BTMalUL1MEp5vk7eTsyxxe4YWcOq6sVWPiRSI/bk0RDxJMhJR2mQq1mTQ1VON8m7lYJuSdXrIpCp2ixs2b2X9989zGqnRO+T+5lIv0fVbEBEVZWOVxtX5CknKwNiNyQp9uoNpGdFeEkNpLp7KYmyIJk6K9n5UQQ8bLu035KkJSf7OXOFaNRACZlLaiCKP36dLVP5G2YWvIovdJultsz//8f/euI/BBgABhdR5PJe/UIAAAAASUVORK5CYII='\n },\n {\n country: 'Sweden',\n code: '46',\n iso: 'SE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkM2NTlEOTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkM2NTlEQTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyQzY1OUQ3MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgyQzY1OUQ4MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+cif6DQAAADdJREFUeNpi5A7oZMANvhSUQxg8E/ApwwqYGGgGRo0eNRo/YPx/YDRAUAJkNKOPGj1qNCkAIMAAQwkJrW14Lx4AAAAASUVORK5CYII='\n },\n {\n country: 'Switzerland',\n code: '41',\n iso: 'CH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkM2NTlERDE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkM2NTlERTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyQzY1OURCMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgyQzY1OURDMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hqToNQAAAfxJREFUeNq0Vb1uE0EQnp87/4iE8w+BCIxFAWVegD5lJCoKXiRdel6CDiFKKKHnBWiQoECRCVbC2Tmc4LP3ZpdZO44jkvPZBFan0+7c7jd733wzg5/aISwz8MLcLXUigOWGM3buJaB/BM0IJjMHc+hSy0EYgLjrQSPaJONmdP/Vc44aapCkd7i3K3FC6wG4RehYwDWhdMfhw3uPPnbObZ+3WubLN94sgV0ETQtAPRX61h9zIsfx1OwnTrzxfMNqhBDYn2OXKtEgJ0BxH2x29slmEvfVCDgCASwDRSHY5aEzy40Iy2t6S+oPw7u3gXjmlcNWG+iQ61X17Ma/3HBw5d0vcY1eZ+a7tF+/WN956tIUJAMOOaprSCcydJL0QQwwY6V68u7t/pNnwR3CMv+h96tvrZHnWpMqN0CfS5rhWmN+vrGRJxOC/zaCHDV7Jdj0tJCQrHeEuJKurcXK2jSMMgnjg/cfuHZrIr4fX7cfm4PiMOYoJCDpJS5NvPgG6ikFKzOvYjr7pjuyg+SvxGeBbpYgmlADI27WL4pPl/a0yxtlH26NYU5O5teQ6QENs1EHPGXDFyudIHujbliY6EXlyQFW0Y2HgzcvKWp6j0msSzUWVm0sbgXKhCZR56yGKkFhiyEkkOvXa4UgCjbdrLtoSSrGXaHL+DxesYH9FmAAtnngpsgiSsEAAAAASUVORK5CYII='\n },\n {\n country: 'Syria',\n code: '963',\n iso: 'SY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRjMyNzg5MDE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRjMyNzg5MTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGMzI3ODhFMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGMzI3ODhGMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+bS4JXwAAAKdJREFUeNpiOSeo9p9hAAATwwCBUYtHLaYZYPz///8nIM2LSwEsrzESaSCR6j/j9PE/KL396WWGzU8uoIhRQz0DyMf/cYCdz2/8F5kT+19gVtT/jU+v/CcESFD/iQWfo5Q5eBje/vjE8P/3dwYFFg6CwUyKerxx/ODLG4Y3v74C4+0/gwArJ4Mqrzhew0hQ/5lg4qIR+MyIlBDpm51GLR61eNhZDBBgAHqosVFFWSaxAAAAAElFTkSuQmCC'\n },\n {\n country: 'Taiwan',\n code: '886',\n iso: 'TW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRjMyNzg5NDE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRjMyNzg5NTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGMzI3ODkyMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGMzI3ODkzMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yLbMqgAAAZxJREFUeNrsVstKAlEY/maawNtgmQtvRC0ENy7Etbhz68KH6SV8gV5CFy7b5EJxUZCIuBBMvJTS4G2svMyl32nCaValhhB+8HH+c85wvv92hsMA110APqIIDQxR/jShEFndPiKquu0ADwFdXNE4wy/BE5843cB6lGG3c1DVOTyeEwjCBIpyjOlUMjixNXju+3wV7RzRqBvBoBudjohE4hy1Wh/5/CoxNkPU28EkPEMg4EIk4kMqdYlw2IVyeYBslkO7vUCjIdA3ll0Lq1rEoZALyeQFYjGvthqPe8FShuv1EQkP9LpvD9YsLEmKRiNkWcVyqe6yxsaTWK2xGo0xcrkWisU+NRhQKPSQyTTRbI5pX9K7e+c1tqDVGqFS6WE+l5BOP8Dvd6Ba7VOqv+q7s+aywyxeul+gdPcIj9eJm9sXSvXKP6chWgfxTb8FGwpbMTRdKAZLUdaOfK4PqZUYbdVGoqoe7TsWsGK0VfSMAPvE8BP5EVRyhCWXTskFZjNxkTvDK/YBFnvCQfgg/P+EOf3Jw6+fPn8OTetDgAEAPv6K9CaVVcEAAAAASUVORK5CYII='\n },\n {\n country: 'Tajikistan',\n code: '992',\n iso: 'TJ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRjMyNzg5ODE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQUIyQzc0RTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNGMzI3ODk2MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNGMzI3ODk3MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YTHlPgAAAVFJREFUeNrklT9OwzAUxr8mdpM2bVJ1QELqUsRAB3qALhyAuRyEAzBwCa7AwAh34AKILkgUKEJi6J8AberY5jWJmHHV4oEnPSn/7N+X58/PpRHvzWAhGGXdBtiBpbAGZqkY2gEHxyep2ZASpYbDatm1Sj+KR9psFq21WkexBAGh4CJc649XYCOpy+QB4vMR5do+tJIQiye4vAk/6G4PPB/fEkzA4RGUmOTuZA0oGWdlrzZ723G14wbglRb8sIvZ6ArT0SX8qItydY/eVYwbyK8iXbxBiim88DC7D1t9MlRuD+bvQsyfKV8yYRsFlxxOIEmsBEk8QPx6s1ooKnUEr94hU6f0TXl75kq/hngfnGExucvW1YsOsNM5B6u2/2Y7/YQutrZpA7m4P5WmDcTlDSqrm3NJt1yOCwUGsxxdG47YVMtsBW0b3P94LFLGNsDfAgwA/Id16/aLV8UAAAAASUVORK5CYII='\n },\n {\n country: 'Tanzania',\n code: '255',\n iso: 'TZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQUIyQzc1MTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQUIyQzc1MjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVBQjJDNzRGMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVBQjJDNzUwMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A+PQqgAAAytJREFUeNqsll1IU2EYx/9nHnVTpjMoQSuiNGeaXWmo0BddqFdFF12YQSVFVgpiObWbAlMhP/NO7SItIsOvUOhLQoouYxemiaVSGvtK3YebW/r2HOdsS8/RaQ8ctou9589vv+d5zuF296ZNAoiiy4ItVAAYbEwG/Xww1HI7Bo7osX3ejII8Kxqe2b1/qqRril/+Aq9Pv4qjS8YxjLmCACeHyv1GFCcZMNlpxp6rDkzoFtY6puT/C6VDjniifHXcgJ0uIypzbChpc0melW2WMoAox38HQW8PQkWMCZ+zxhHc/xMx8eZ1QjlcP835HyxQ2hmHMbsC8YFO/Mj4Dk30BCpyTNhxyoav+kXRsxGhHLRNDA/aIzcevOSSQscESkcgKolyMHMc8jdTiDtoRmmbU5oyA/g1wrA3Ox0JXR3g/etYX5cV5+ZQ+tgpeVal4PC+kSHhogLVWg2KXpTQDQOlgz2UgkvmkqEq1oRbSXrouszYd8WObxJ/q1D5WUB9C8NMWDri2msxYkwGQvQAPyMe7E2pXqbc5TKh6rwVmlbpjo0I4TBQz5CYq0CtthiF3QIljVvYKED9AcavDvbM5TjNJXPKUEGUmkN6mLrNiCXKUZ005TVy2fiQwapKRfzzOgwbUlYohUBP8WJzqVbY8faEAVHksjzbhttPpClVRPmRXKovyHFfW4qbPRq6Ie9D6V28h5LzcWkklwboOmYRm+dYh5JDQRZDXTO5DE8nylqiTF6T0ifY22UcuXx9jFwuCC5t5FK6Y8PlWOrYxEtycqlBYU+Zm1I56sZh4r3LTxDlopdLA7mMuWyXXARC3cgEGlqA2fA0qInyi4hL0eADtH1eCi6dJtzLtqJsHZfbaPt8aCCXS3NZgqKe4lUdu6GFxBajzVOd08qjG3CZn8lQ30yUEelI7a3BkJ+UXmWRleeaEH1mTjI0nLbPIC2C+j45qg13oHr0DkMzKW7KAIu/oStjaxZ/Fv+lnFERZV+N6Fz6WRbRh4QyhMenJoGSXBruIqK1H8PTKe6O3STlv3NsWSZeefU5ezIIT5s5OCJTaC6JUn8YCN0ypferj+WPAAMAfeh+JFKb/jQAAAAASUVORK5CYII='\n },\n {\n country: 'Thailand',\n code: '66',\n iso: 'TH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQUIyQzc1NTE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQUIyQzc1NjE3ODgxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVBQjJDNzUzMTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVBQjJDNzU0MTc4ODExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MpuROAAAADdJREFUeNpivMcrykAbwMRAMzA0jWb8////aIAgBwiDSu1ogIwaPZpliAYs9/nERgOEPkYDBBgAYAkIxbRv61QAAAAASUVORK5CYII='\n },\n {\n country: 'Togo',\n code: '228',\n iso: 'TG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQkUyNkYyMDE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQkUyNkYyMTE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCRTI2RjFFMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJCRTI2RjFGMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+DvPYywAAAaZJREFUeNrslM9LG0EUxz+zP2ISsxitmlTxIghCKVSx0EKP1pZAWuiltwQvKir6H3jw0D+iB/8DLwXx4KmHXnppEaSFEEwhAaFhS9JCks1mt7MrLPEmOPGUL7yZebxhvvO+8+aJ8/RKDbDoh++DEJGbcP1wXijM3tx3BxjSZiIvIJOkvUYTLZVCmMb1JQYATdrfG8k6XUafL0viJHS96D59AijLGKGbMssGbbeESZa5ow9cvt3mz9UXkizgWQ/wPRd/45Na4u6/OtaLZ2Rf76LFk8QX53l4uEf6cg3nW5X68Sm6YSmXWsqo0alVSCw9Ymq/GAbS73OM5/K0K+XwnQVCPbExOo5TqvLj1SpO9SoK/nySp/n1M/rIJN4giP2eKw/ukHm3Jd9bp1zYpFP6RfZgR0Z1TOEQ0z31xRVAj1t4rRbll+vYFye0zi5IPn1MLDVDgl5Y1uLjG2XE4nxspRk0kKCyXdvGxyU2kaVr/5brHubENPGOc91AirPqMm43En3udDi6djBmorUm5VYN4X9nMK3pNsU1JL4PGCq/yFDqIXE//gswALMxeaDVbAFMAAAAAElFTkSuQmCC'\n },\n {\n country: 'Tokelau',\n code: '690',\n iso: 'TK',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkJFMjZGMjUxNzg5MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkJFMjZGMjQxNzg5MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iRTFENzgyRDE4MTQzRDBERDc2RTIzOEJBMjNFMThGQkEiIHN0UmVmOmRvY3VtZW50SUQ9IkUxRDc4MkQxODE0M0QwREQ3NkUyMzhCQTIzRTE4RkJBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xugOwgAAAy9JREFUeNrsVFtIVFEUXfvMjNY0zaMEa8zINLEHViCTX2EQFGSYElHRk6h+il4/fQS9IAjsJ0IoKqLCCOyNFQ5o9uNPDyYwKxWVCjPLfF1nRmfOaZ87auPY66e/9sdcmLvPWvustfYlIXZBl5ByEBgAJgshAIU/lJLSBjiAwc3r6nPTvp24kNdnQAg52iFiDymDOTneYydLbDbNodTvQbnfAyQXrWioq7h99ab/VZO7z3AJEY3vs5rzGsBQMBT53D7Ah4CgUlai8bNrRiUnAROX+hqPH3pWsKIVLrTcdV57kAP0ARTfLZQMz5ufnpWd0db6vqzsvtNlP3p0TWqqw9QnvqSUViVT3A7j4umHtfcrCla2ohnohv95OpMBkYTbCYX+kuJFqwvnA2HAEwpHntY2G/1hIstYESYDzo2FgXc15Tv2BfAVeEP6VgKd3XbAQpQonFUIz6lTfn4jaAqIDCNc8+Q1YBfCYgrCoHxoShIZl85Ubdpdjy4gwIgETc3oykLyp56w1iRlRGqZFBQnxCmEIwZqisAx8OTntl4/+zgzvwtvgVAMNHYZDe1NYZWHlCKiMd5or4Rg05A2w1O0ZoktSSkVGcF1Aq5DO+rqHpVnLujSww7G4eqhFZu3bHEH0G9OiQTomPehGV7n1i15E5JsSkWl5NikuO2hO+dvlZ6r0XFv0npinKAserqvx7fgCzApIVE0sjJ6SCAqyCpVMg+73Pf26tmq6Qt70cDmC+33T0sqZKPy8pzCg8VAj4hrE6McsV+p3IDtyJ5qf2XF9IxeBCyQOvq/XCAGaMOqbY0Fi98AKYAcD8368rDeubM/1d64dbK0TiehhWCVJiv9ejlJGxvEvSv+ae52llEp+UMQrQSSs2YOnNj/YsOBl/rvLpNe4G9rCEgFOql4/dq71bxBQV56q5S8SJwwmjb1Y2d35PBOX8+XCcKitPvDtgjWSSeL4wUdchCNvCIzgOYjAm+24Z3KaUnj5eRAU37u2r3bG7yucEeH9UO7Qw4fIhNn9Dh/PXgxhjfO5DDbNDuPQFHSlGoIHk8wY1aoszfpQnkmN+3CvymBf1b/oRPquwADAFZsVbvbw0XNAAAAAElFTkSuQmCC'\n },\n {\n country: 'Tonga',\n code: '676',\n iso: 'TO',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0I5RDdCNzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0I5RDdCODE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJCRTI2RjI2MTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgzQjlEN0I2MTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hRrzKAAAAQ9JREFUeNpi/Pn0KTMvLwMM/Pn06e/372yCgoxsbHDBx52dN1pbuRhIA0xsUlJAo+HoYV3dbi2t3+/eIQsysbP/ZyAZsPz9/BniaqDzf7548fXq1X+/f7/bvZv/yxdubW1kt5NsNJx1r7DwwurV4gwMQHQuO5uRgcH5zh1OZWUqGC3g6qry8eOfixe/vXwpaWLCLizMwsfHQAFggrMkU1NNd+7k0tB4wsCgPn267o4drKKilBjNgsZX6u3lPXeO18QEWZBNQuIfGUY/7ukBJgA4n11GRlBE5OnEiX+/foWIMDIxfdi7l510oxm3MzAQTFisDAwcDAykOpyFyIzwj5JopDoYNXrU6FGjSQIAAQYAmalRzsgP/4UAAAAASUVORK5CYII='\n },\n {\n country: 'Trinidad and Tobago',\n code: '1-868',\n iso: 'TT',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0I5RDdCQjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0I5RDdCQzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzQjlEN0I5MTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgzQjlEN0JBMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K4UpOgAAA9dJREFUeNqslX9M1HUYx193YMovAe8uajKwgXCA8cO4TCejBUUGo2mDwmprLSFD0yBmtWajVWoTSjR0qeuPiiVmw5FsAbnGUFJAwQkcIqUEDPHu8E4PSO7u2+cOYavvlQI9f7+fez1397yej2JCkizrc1/j6MHD/LO0UVHUNzSweNBIc1wCdiQWqMOQ7BPMtRTDb26TNHt2sumD9/niw49lgUCNml8u6YmVvGlbspRRywDeqhgkx9zgyq6yXfSnZ7Ov+CM+P1IhC4xcNxAXqKa6v5t4cz+qKB03jR0oUIqxFbMH+wVEcqXmKD2PJLMlO4fKM6fdBjNjEzhUU01k51lCnnyWmyN6sNkFXDk7sHNwX1U0w+cauBAURtYyHc3Ga3gt9JOFN6Rn8k7pbkJrq4jOe4tblss4xscE22MWYEkS/5cNH3UM1uE+Wnw1JBrH0ZstPKSNlDXsKizi5c35qA6UovvkM8ZGr2KzjKDw8Jwh+E45N9VLHYldDNIUEUrIiZNc7tLzWMoTsqZv9pWTlJbG/He3srq6jtsTQ/xpGBDweTMHT8Hnqxfj6RnEqYwU7GVf0lT/M8+9+oqssbG2lqiEeIYyUlnV2oGHkG3M0HPPcNlmSHYb8/wXscArhF+35GF6422+P/wV20o+lTV3t7UTHhBAW/gDJFqM+KgexGoQG6/0vOvGu11JyWFH6e2N78JwLu4vYWDti+wsKKLk269lWavZTIK/ihNXu4g1XHHpdsvYKT5E8Z/wf3fB4QBPD/wCtfxWVYE+egUF61/ieFur23jGw/HsqfwOrdBtibgL07oplTMEu766JKaW8BO6mbrOckETRmZ4LM2mYXz8/WXxrc/n8J7QLfjHIyzbWDip2+ioW93ubv8d3byduhn6afYNJPGPEXpv3CAsOkoW3yF0yxa3f1H5blaU7GdsrA+b2STT7Z7PzqRuS3GIlqa4SIJqTqLv6GRlaoos63xwkp5O476C11l9rIYJ2zVuGwb/tvEzuneTugW7dGtMT0EqLed0XT05G/Pkuv1US3hMNIPr1rBS/7u47U7dLk3DZ3xop3TzcupWmI8pv4iK8gMU7JC/bL2dXWhVKlo0Pugs1/HVBE/rpjgXGCHN7sqLmSdsrgUKSc0ktO44B8Ujkivuubv6ofUMa5c/Ss/yJIbON84B7HrNFS5frUKd+2NXEdF+iqrzLQKgcxvfe6ySTeuy6Hsma47gKb746aziaPj4BxPf10u7zUxyhBaz0STLbi7eTtn2YhfYwv9QzqUZN/SKm+2B7mIbfRo/nkp+nG69XpZ9IXcDfwkwAKswgUQLQuTdAAAAAElFTkSuQmCC'\n },\n {\n country: 'Tunisia',\n code: '216',\n iso: 'TN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0I5RDdCRjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0I5RDdDMDE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzQjlEN0JEMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgzQjlEN0JFMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2pqf5gAAAmNJREFUeNrkVktrE1EU/u7MNBk6mTws+IgiqRUpdFXUjaAiXYkbFyoSFSxiddMGsRUFsfgoYlcipYhIMAURQXDnT1BXSt3YlmJQ21iU5tHbvOfhmZtZuLKJjXHhgXOHy9w53znfPY9h39CxCCBMytEa0UlTjIBX3E0rhUv4R6I0/gkjrcLCqthJ0Gj1kNp/C9ghpwIDOQGteMPCCaOcIkibDAVo7yU167ZW1zEbRQGqHT6BcDqHTaVF0gVs/vIV2tEz4p0tWJCaCWxQHKsI3r6H0KvnqL6fxvKePuT6B2EtfUfo5RRC4/fpTEGw0iRgohMZaMdOwXf9CrKnzyPVdwBSZBu0qzEwvw47k4U2EoN28qyIvJYH6wauCjP62E1UXr9F+uljdNy6i9CLBMzZeTDVC4vXEk0b6BcGbZTXD2whD0XdCmVXF/ITkyJ/fbFBmDPzSEejWIpshzmXFGfb9u6GHOgkYN6MiKlMmEud6WasxGAXy7ArTln9wqzzZKw5dyzBB6O4ADP5Ge0XB0TqFB4+gtLbgw2JJ9jycRZyV6R2Ke+mYWY/Eb6vGRG3idbAR+/Ae+gggkeO48fIJeTODcGzfx8kXQcL+MXJQjwhGGBQ17QqD6P9mlv5v/HOg9KHN5CDGxF4MA61pxfF+DMYM3OQd0SgdO8kFuLIjY1CprbPaF1DKnUOCaeB5EWd6tELCExNkss1sqzlDPjlG+CJCYJTCdRfT/fiDUwnJ4oS1ekKuSFDCXYSpxKMTJLorVLLdADVelsm/4OxKAkHLLdknESq3WlDQ4L/n/OYuxG38teH/xRgALiVytS9zUFxAAAAAElFTkSuQmCC'\n },\n {\n country: 'Turkey',\n code: '90',\n iso: 'TR',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMDRBRjkyRTE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMDRBRjkyRjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwNEFGOTJDMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwNEFGOTJEMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZWWjjQAAAsJJREFUeNrEVktoE1EUPW/eTGaaZPpJ0w9N60K6ENxVRIhIUdz4wSJYEFy40EXpzoILcSWoCxFddFVc6KKr4qKC4kJt6aoqCOIHoehCbGsNrZq8NMnMvJnxZtKSVmuJNaRvGN68Tzj33HvuvWFfwm1zADroFajNMOmdV1c+sGauCbiCbRrqpqeMAbYDz8kGS0WNAHoI8P3/Bt6YscIB14VcXoB0lsDNOLSubvi8tAcpS3eqCswU+NYyHGsR4YPHkHj3AYnMLNreP0fL+H00DA6Rn1T42XTJI1UDJjbSSSN25RpaJx5C270L2ZG7SPUeQebqDTBNg967n2aDDMzDl1Zg7L8ORumUKSuawcktIHqiHy0PxoKd1OHjyDx7BC04VeDRo8V3kIHEVmHw3BxkOgWuhsH1Jgq/rARXrBOX79iBC8yB86XTkTsQBGqE4oCmBqJSyL2+KEBaKYT29qC+bxD5sXHw1mYUnk6A1UUqCoGyHjgHXt8BbU9PsLYmp0oXVkBLl3x4VhZaezcaBi6g4fJFtL+agptaJF/kKo77BsFh5d9ukjZMUYidUU47KbcuLkZxcjNzsF+/Cdb6gSSxKArOKzOhWTFM2PMz+HH7OsStYRLeUfDOBJlcV3GObygus/8M4mOjwc635CGI6UkSF6dTlQyxoDVRafdoHdLheZR6S19JXBESV2PF4uJDWvRSkdzqDoeB/NsXUM0Y9OQ+RM+dhaqb8D7NQ+3sQuTkKbD6RsiZj/DyZLMtwetiYLyoe69ST9u/MS6S5vALggqXQLTvNJqGb4J3JeBlBOzplyg8foLle6Pw0j/BIuZWy6f4E3i1ZDoFql7fSQQqtLadUOIxyNnPlLPk1lAjuTlMBN2tFq6/AK9pEn7Bgu8WW7VPzjDBDKMaTUJs3p0IgFE3Ymhet1eNsa39WKy4upZ/fcQvAQYAj5ICkAs+H68AAAAASUVORK5CYII='\n },\n {\n country: 'Turkmenistan',\n code: '993',\n iso: 'TM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMDRBRjkzMjE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMDRBRjkzMzE3ODkxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwNEFGOTMwMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwNEFGOTMxMTc4OTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+rBlHvAAAAuFJREFUeNqklEtIVFEYx79zzr137rzfvsFMExEqaVQyULLc9bKEWlU7DRfhql3bdm1atQqCqF27AqEQkRIsSMkHPlAZx5nRcZyZq6P3dc7pTthrEcw4H4dzdr/zPz++7yAYvg5WybYr6cTjjzvp6rN+1wad24rVuod6ahRmA0rB0EEQASEADoCguMJHp8jyy2pFQ5urv2esJaR0HwbzRFMIYI4QqgxXE11DpmnthWswLgYtHJ2IM+Z1Cusz+eg6Pd0beaBFx5mqglMCndZ4fPW+4Pa+EhCl+c111XoHQkWn1om3iSprm63vY4PZg+rReFZLCn4Osre+si6eSVNG15MbkYaW2119kEmVkpqD4DBspjOzGogfTvkXaWUHMTCSRKnWFxQl6dvyLKzM2Tt7m040F5yU4Fpi5pr81eXKD+Q8F/ji1cBsLuA7lHRl5/PidDSdyqUS+GTLw5v3LSGASSmpC7ot4QCmpRFhho7eIopcMzZ3kgOX+0cu3Xg7Nf7y3RsIVZWC1jGuV7vm92ZG/Qd15vkV4C27qtsHFAERKEZxJTP06tn89y8QCAMhwFjxHQJYJVkM82Bup3inkHdS6Si7IJjUnLSgVlXUFHqjCO7frilPOiY0WIlAU6Rqos5YTUviAQHCgf8cE4ersAqSeIkjQzF49WaMgjEaTSuNWVvYYVKJASt29v4vxEA0oLWJDC2RuE+J7KJUu2FYaAplo0XuSAifZOfrPgkEMpsirXuafIDydjg2/RcaczmHluy28VbZaxhxv1gxxURrMuy87NQ6Vk7RWx/S8tONLY+vXXe7z+Ty3kA5rvHv5mOamdWg487g8L2GsGsxs08QHJ/7T/Ntzxjha92hJxcn/fTc83bVXqMljELzlYvWiadOcvLp7Iu7UnX7nm8kVJXkjJaT+s9/je12Gl3IzHiROxaDRx53wpSbC39KuakFlt21xbfD9jBWF8YEIbmy1kgEs5zUPwQYADj4QuUGyU1HAAAAAElFTkSuQmCC'\n },\n {\n country: 'Turks and Caicos Islands',\n code: '1-649',\n iso: 'TC',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFDQjQzOTYxNzhBMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjA0QUY5MzYxNzg5MTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNTI1QjE1RURFM0E2MkU5MzlCRDM2MzZFMjczNThGQkQiIHN0UmVmOmRvY3VtZW50SUQ9IjUyNUIxNUVERTNBNjJFOTM5QkQzNjM2RTI3MzU4RkJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vPd/igAAA8RJREFUeNrsVFtMXFUU3efcN/NkykNmYmSoCrYROgG0TUVNY1qtVavYppoyWrVNbAI24COpiT9qNY3BH/RPawxNCVg7pNJIEUzmo9rXWKYYZLQ1zAwiXIZ5z9zX3OMdsE2NMTZ8GnfOxz7ZO+usvbL2QdEPD7se8HyTrurs/u7yoB94x5GD657/9qOx5tYnh3BqNlm1ihyozrzeVpNd3WDZ2Ac3Hbjl8JU99/V4vv96+NnK/Qe2A2dfmBbh58n0TCwl5lryVwfuJ6/s9hyJ3VHXGSKQI6AR0P/hkGtJ3oBG3o6+Kwl2h1t62bnI7nh4pnT1/MDpsp1bxEM99MZ76xOT8Hjr8FX94/dOJn6JXApEMpkCx1FEJ7KMCFAA5BpLhJBRIghwXpKQcU23PmL+MZRC1mhaU36bdddUSOlsdC5ZbuOtAhMrc8kLSUcudctaRxb4mmDTvMxzlIKAsjgo2iqqGRNW7ZZKncIo+bsej0sIgSwbDUDP2KtTSIpk1bVb17tBtiXmCjIpDPpwwz321oeU46OyuXS81ClmY1CkhIEUZJlYyk3+T4N1OJOyi0rJQmjU5iyPz3DNm7xNci62PAXdct6Zd2/qeefBWg8Hw6M9E9StlcLmwYGzzZtH2rr2dHRVBMaCR8c7glwoZWLUAI9VqYCoknQZYeDM+9b1Z3KrusKfzcsCCPvmWDuj5NCSSgi/9WJTtMP2XPRU/5bONU+fbH/VLwYmhDobm5h9wdXubOju/QHv2nbn1DOFd5mLqqxJRX2BKCbFIkLFhBqq5mnWdDsLTrDeJmg5WMYtsnaTVO9rX34+Zz63aActDUgaGc9A3HPxJwoE62zwXNtL5z/Y/sSbj9W7SsM2nEgaZAFSoiXNLcLevVmfq9erNW6zNa5RLiMiJfRl3CL0/u7RcNgEwFJ0nhU4IPpx/3Q/3oDOxnmKoJIqTSXjvqGdvgKgKp4zC0jXEFZV7ULAWds86ftVbPcLx3brGx6FC91mA5Fjkaws+ToSNl6heR4zNCZGAGJonsMZlqaNlOg6RRGed3BcOcdqYHjWcBxl8Mr0D94FYB0YMWD0U6eTAGV9J+425sH4TzMaXY1F8jR1fRBYytBfVwsVjXrjNT85VVGiu9bVToSnFe9T/NBXuz456mDZJEJY0wpGL4YVBU0biotvvO2KzLWNfVF/acp78FAlxgsURd3IZl9RIJ75G9F/CYSJpuiqZuUFs5RPMkyOLkpaLEnS0sos98mSujL6COJyPm4AaWrxXNcTVizITf18/0P/F6D/EGAAAySvSKv5fokAAAAASUVORK5CYII='\n },\n {\n country: 'Tuvalu',\n code: '688',\n iso: 'TV',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUNCNDM5OTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUNCNDM5QTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQ0I0Mzk3MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQ0I0Mzk4MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uL136QAABDBJREFUeNrslHtMW1Ucx++5jz4ube/tg3ZreYXwHEwGgSEEQomasQQyMpUEZqIYJlsGRmNwRmO2mCyZic5kajTRGJxmzoxNFo1xcWMP2SQuk+LKuk1hFFg7aEvfvbf3dTwEXSLDhH/8z99fJ/fmfu73fL/fc8Afb33gaCj9eok5NHR7ZngMM5m/6C/Z8eXRH57u7RgKYsm0lZUHcoTellwpv2CPX0jFEzRJYGsNDhRe1qRlDVpryRRx1F0eujzxUinV1+QwP7rJJdM1Jqzu+qVr1c6LIXzAFDjWkddQX/Bm0NbxXcCkitmtGZIE10TzihZg2GtlB+rMo6PBZrKzq2pBZ/ycE164eefFHQ3d3fXzQyO35n01WbrxvZnZGIs1OwfdqTunz7ZoMb3NmhIU8E8ixAAFxJjELPAbcmivQzsXE1iAQcBtbtJwfDgueXkAo3GLBhdlZUmrYxMxDYWHLDa4EHIQYqZVi7Hs7p6+RQOr51MPHJAh4eccBJBrTaPFhptXgk4fl6XG08gQcsr5RNgbSmD4psYyU3BBl4yGOCwweMLQtdNaV8L8PBkQgMuWw/r8tE0PKZIQhQd6E5LOpr7fWTz4vb+9ynhtZ8lXN65smZKLNASnQJysnLTVtrW9/mRxjj4EL00c8Rsq8g1bTh3/raX1zNaG3T2y3u3ynPP2R7N+EQ3tAmdSSbz8F1qQNQYq0lpwGseUE3PPumLVQcHKqMIrGyLe6+n90B4pvjDy9v5v2o/NDp8NbGOitTdG3abirmeG3/92ktAyz1mlXeKczuWeKdhIZGiArKygkbq4xPzkf8wTK18SLPdS2RJUoSQUDIcQJw4PPP/rubE3kuxnhlzcTOVVG3OL2BhNe0qK5vKMiejSj7f8rqoKq7OsMCPlAWQKJ9VAEhR1RDSh9Chcus/ZRUWNA8jJGehnhypebrBcPL+wHTQfOalYzIzEb6QBSZGYJM1GpagpUx8O5ulxTEXJCvTdi0RETG0zW7kULslpqNISnF0z5+OzOZkmcRH1QUfGkdiYwBwo35+QDIc9B8Guj8483FDUW4CtPahqi7yt3XFyX+U7n070HZ/tZlXhqMgeLHu1MXvklbGPr4drGSpipJaIR1o7H/7+37grL5FkCZLTscKpeJECCajgIqRUuMintePhrRKkaGK5nWuj10ZikJfppKRD6cdE42LC5klsLjW4363Zo8djg3f3Xg01aYkUKjUAy8cVXycX+YAE5tB3662XkaeNmecHH3+qzX5qJpnvTzvQETerAxs0Poi68fee160agkDatt0+vK/yyHSo6Pd4qQzJ+UTudLLwgm/b7UQZQ0VX2Uiu1w2w3IGrQWd8nPFyed5U/ieefhUpZKoXU6gkQIJwdUDrRaOhySRqArrS0NqiXlx5iPJU4cKKY6vvWOw/m//Rq+ZPAQYAm+jfAfBELj0AAAAASUVORK5CYII='\n },\n {\n country: 'U.S. Virgin Islands',\n code: '1-340',\n iso: 'VI',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REM0MjcxOTcxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REM0MjcxOTYxNzhCMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNjE4QUQ1Njc1ODU2QTk1QjU5NTgzQTRGRDNBMTc2RDAiIHN0UmVmOmRvY3VtZW50SUQ9IjYxOEFENTY3NTg1NkE5NUI1OTU4M0E0RkQzQTE3NkQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uuR1EwAABFVJREFUeNrMVWtMHFUUvrOP2R1mHzP7Ynd5LYFCYBVKwSImWBvTYIGYCkbTGu0fk0agUdtqiI2KWmOqxhgfbdPWRGhII0nRUjV9YNtAK0HAtVhWaCndJ8s+YHeHnZ3d2Xk4VAQaQ2lMTPySm5xz5ztfvrn3zBmI53nw30D0r6ruxw0vWknn1qIn2Tsc/l7EpWeSpXxm8igX6ZNoNsvxTSieL73bQjJBOexfQuFvdEV7cfN2aLFo2VmCBbHgME1eTYYGFdl79KaKRWmBmqAitKsTCnW6UkoU36rSlkvQKllalgK3wGIomSACrvOF8hE+sCeu247CwluKKJpLzHuS5DgVuUIG+lnqsgIGSQrIMl4X3EBL15hKsU77gYSjTaYC4QBQIsCUA4K+NBG2Ke/hHwUC6XoJ1RwBbiRinMZwDPC/2882qBAPhiXGJgAqBTIUxGmJ1nranFsrglZIL+LmZ1Oel6EkIJJYaUmEocD0NHChNp0+pp6pvuW3oBChL37FzzUl3Hut6nYsHVCE6NoEYtKTDKs2FfWmZVQsnoQgPeYPnHJ79xcXXiGZ4QjUwP2sIT7xes7DaSB/I+RwNuXuKAKEDTUB0mEFmoBKGyAG9I89n3np8PcgcO7aKDDIACWrx0uOzcqNI56bDbkWKSxduAeVDH771sx4nPrU6ztNRHLX1Xw0uRWxHI7GMmfsvIY/Y4FHAJ1Pzq1T6gJSDiY8GUCCVBr7ATsybgOyWPYlrOuH9B5ca+z0OZ4bd4tFf3dIFoY980DBQeeMmANfWM2Hu1vf7zpIP9vxakWH21aXmne1V7rMpjoGC8aGXICMiwzaFFyGFB+bHAjFoeIzhuOHgpm7FY543JAuVxXguEgiXv5kmnXqE7dnCDpVkiaG1dlADr66uMtFZ5fV31CUfw6v36yi5owaVIcgegTNhTG9eJIva1Favp4s7HqPQnni127fdIJNaeUSaKHdoGXpR1UIkMIaTC3E9RuezkvPYlDmZN/HEiSzpLSFVvQ6Y93xuD7KiBKcNJiAb0Mfpqn59MKdIrWFdQwL51qTZdYosbFw1B6e5VhG0BG3tbWxPGB4Vp6i6nBFvloph+XuKddl58BvsevkXEEOsU/F90qqm+YnrFjAyXgj0UeeyHgxEOs/ZNA82OwpjSTc9i1VT+aYBbNsMp7PM5UaXAoLnc/zHMczwlrEQjBkH8reWWhoAc1vAk9f5uzU/tD84HfttT1P7eioXd97cR/Dh9jBbeQFpPV4zXV/iL8bf2lBq00+rz/ERkf7hl6DC95ofKjR3qOJ0OEwhcoRgKVIiWHX2ewj3159txX7pXHbKQBk/1SA7j1UQ0lwoKt1Y96Wx9V/TNl2V1WD+TnguiGmc05sCJaDGPRWifEdq3KV2bcWWIaeDvmEYNz2gfMnMHkB93sHhPSF3j5w9OQ5r3e1wjWluZWJzzscjU7f2eV4khh1TJE0vVol9H/7y9wX/hRgAAzpo5Xw0k2XAAAAAElFTkSuQmCC'\n },\n {\n country: 'Uganda',\n code: '256',\n iso: 'UG',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQUNCNDM5RDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQUNCNDM5RTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQ0I0MzlCMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQ0I0MzlDMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TD5l0QAAAL5JREFUeNpiYBgFKIDx/39aGc1EO1cPTaNZbilz4lfx/9P3P6zsqnMOLTi0UEFL31nR/kaUCcu3L4wCnJS6mpeHQW7uIjYvs+t/BMT1bZht1SXmLOIVoEaAfNFS4PUMO3v99tnLJ/nYQelJ2D3wi7YydULtPxikFJUqcjHdCjH7/+Uj1SJk/fqNQKN37d43ceKU/zdP71i6hKgsQ1zG4umfsFpYiF9RQe7lT6YQbwOGn69Gc+OQyo0jLEAAAgwAGc1CiUqK1KwAAAAASUVORK5CYII='\n },\n {\n country: 'Ukraine',\n code: '380',\n iso: 'UA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjExNEYxODE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjExNEYxOTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBQ0I0MzlGMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBQ0I0M0EwMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+LuVcRwAAACtJREFUeNpitCo9wkAbwMRAMzBq9KjRw9Foxp93xUYDZNToUaMHg9EAAQYArtQDhtrhiMcAAAAASUVORK5CYII='\n },\n {\n country: 'United Arab Emirates',\n code: '971',\n iso: 'AE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjExNEYxQzE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjExNEYxRDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyMTE0RjFBMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyMTE0RjFCMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VISheQAAAGRJREFUeNpiPCeo9p+BCGDUeYuBmoCJYYDAqMWjFtMMsBCr8H/c/98M7AzMQCYjfX38/QsjVD0jNTDRFv/592eEJS5mZuaBSVyM/LygMv0ftRIX8RYzMrKOFiCjFo9ajA8ABBgAlQMOS8Um6UkAAAAASUVORK5CYII='\n },\n {\n country: 'United Kingdom',\n code: '44',\n iso: 'GB',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjExNEYyMDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjExNEYyMTE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyMTE0RjFFMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyMTE0RjFGMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EXnauAAABW1JREFUeNrEVm1QVGUUfu7dXZBYvuRj1yATNT5FxCClTNLUFNBJrfxRZjOKkVLqGA2okGGDhA44ToqT1pigA9qAhkho4kiCqRhgCKwBg5IiLCDs8rEid0/vvVfWGD/K/nR27u7Ofc85z/Oe9znnXi52S4Eh49sy9DS1AE6OgJsdYDYDhOFWr8fi+Ej8kByBuoDX0FOtA6dUwVrrignNlxG1vQT7Yg8B492Gx3HsUvBAmxHoNEAdFoyYqDAoUzeF2322djbS0k9h53el6NXdAEY6Aa6PIfBvTQTkGaBeBOxmgCFYFz0Dy5z0GJe7FbzxdAlc1CokJ4SjoSoRsQkLoXawAXTNLKhHZss9JaAY085idbdgN9EbcQfWo2JTIJLOpoCbOw0VR8+BvzUrDFe8X4Th5Blo7K2RmjQfjZWJiE9aBHtnW5lAe69IH9wTCMhrDLCD+epuwiHIFwmHGGCcH5LPpYCfHYrKY2VwPJyHoNYGoKXwNAlvRVItK2qVTzAZi0toyNqNAxT7eT6px2xkBQ+nsI+OSPdrJ4TRJWipXPkc/e4xWbq3OKGI+USSOmwPxX1fQ01nLhB9+AHVs7y/uXpSR3auJa+JXYB/Gi1LKaXiXTlUExRKvzDHinGB1L430+LYqjfS8k8yacmmEyQMCg8BCwN3KSqthN5dtZ+u7s4iYekS+kPMM8qL2nPyLHkq6jto6apDBJuPCVOXHSSvyH0UnVVPOrbYf7Gc6uYtpLqIt6kzt4AeZdV+IrCGyhUeVOkeRGbpw6zpGvVGR1PtjHl0p/DnYTFX20y08ouT5D13D730/kHiSNo2s/4+GE1m2DmpLec2qO8Ap1KxtlGAFwWj4iEYTagJjcTdaw1SOyldRsL31+Ow0joDBna+Ls6WeBIEUL9J+t9nuge1rTVgYyNromb8VBqSI+MNQSBwCgXTCSe3khhMw3vK3Nsnt9p9VfG2z7Af5q9UyqoW/QeFYZ2oUDA/jsdQfyp7G5ufukWVjg7si5dzMJB7f7Y8RO6fjMf/ZEqbMR4PGpGxFszDmXPi9JGalKTyihuTSi08KLXKYxT+3uTc0NSCnJNYHM+OjruPIflYxMUSm7qMsGJCkhZUSnDW1g8YiGAsl8BEUsvEZRoSlysTV1k+E5eLRMZsloFEwrza1hJ+19gHazsrca/yjhfFF+B2UycCfLWIWfkqArQjLM791XW4uXUbnNlIdYpbC3j6QGEjKYXxNMsCEzU1ij0YrKyGnV33ybPQ7z8gbg2jN3wKvb8f0nOv43xeKVw1avB5KbkYYerFmzPHW0CNpRdRHTwDTQG+eL6tAb0+gVifcRkrvipmIjdLupIQWekUolJZ0dZ8XYaYuBx0G+X2cZg1BXYhITCeKcWlCf4whM7E67fK4f6CB37MY3OyubXH0uTGkjK6Mmka1bBUg/PfoJajJyg9V0djlxxmx7GQQpdnP3ZkLogvZD7zyNk7kRKTC6mzX7Dk7TpeRJWeE6VpZn7vHbp+oph4Dzdb9F24jOrJ03F9+svwfXYE3PILsSc6A1Myu7Bu0Q405rNBCi3cNXaPValGfKBgDDpuG5C04TDGTtyML7efgmGA4BAxB4GNVXA5Voiqs9Uwhc8ELwI2TQ2G32hbaAqKsGvFboRkGRATsQ03fjoPeLkC7k6S+J7Uq/IaO3M3e8B7NLraepAQmw3PgM1gFUD3gBmOC+Zi0o2r0OQXQemjscKd3HxkWPkjPfMSGrLT2FhTyYBSrqd8ExAJsOknvclo7NHZasCWjUew+8AFrF3xCtasmQ2HyDlQ7lr9jXFnVjkac1IZIJO6l9t/A3wUAbpPQGuPjpZuqQI79p7D6qhp+EuAAQB9e+n65ZcRTgAAAABJRU5ErkJggg=='\n },\n {\n country: 'United States',\n code: '1',\n iso: 'US',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERTc5MkI3RjE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERTc5MkI4MDE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyMTE0RjIyMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRFNzkyQjdFMTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+60cYSwAAAyhJREFUeNrElN1PU3cYxz/tOQUBD/aNymtbUAq2IOiUWXmZA40Iy2BzcW53y7JlyZLtZuE/8NaY7Gbe7WJbdJnTDOdQCbLKrERUotgCSodQ7AsFpK28yKT7rfsL2gv7JCcn+eV3zpPv5/l+H9X2xp65SqtJGfr1Fg3vNPD02SIhfwRniwP3pdvsOVxPaCHGs7+DOA/VJs8crXXEs3P48OfTfMIcU+SRaqlMzm8SNut2VuefIxvyydZIxFbWyX35iviLNZRiPZJaxdLyCkoiQUyc6cwFTPvC9FRkcbJMy7JaTrmxHIuvxaZm5xW7+Jl3NkKRaRt5OVlMjvuoqa9gwr9AgS4PvTYP78hjdtVVEAw9J+Kdxv7Td+hL8tGTeslGg8Jeexk3/riLs62O+cU441NBDjbZGbg+SlNbPYvRF9zzzHCoycFA/yhvCtRqnZbr5a1YEjGm5S2po1ZXfRHVaCTlWLODq24v1eWFGPVbuXH5Dh3vORm88xhziR5zoZ5rl9y0dx/ggS/EzGSQs5Ua3s39h7CUlbri0mKdUGzmijBXqzBXYH4Z931fsmlf7zBvd+wjIigMDI/TcbyRvt+GOSgUZ62uU3S2h8IdRgrTQK1S2T6PyhpZ+aB9LxcF2hpbCUUF27hy4S+Of/wWfUMeykuNVIin9/xNuj9qYWR8juknIc5szNC1voA/DdSypayAhlor57/vp/NEC7OBRfpveek+0cwvP/7JsfedhEWcLg8+pOtkMxfOuTjc5WSrSc+S6ymSQYtGyk5dsVT9/4zbhZmu3Z5IztggXOwSZjvSuZ+hUR9mEan/KAz+PkJb5z7GngSYdXu46T9Ho3EL6ZSKnZ9Fax0W5aFrDNuB6mROA6El7BYTnns+bPt3srK2gV+QcIjIPRLzrxL3ZkLLfB0c40udRCAd1EfFNioxaSG+Sl2NmchSnCKjwh6HBWlzk/rd1uTyMOTn8MbuctRiieyqLKbKbqXs4gSvQmFephOnRCIRFW+F11yyp/3TtD/eSKjYTM4rjcZh110yUZlDPfnVqcwovkppRhRnDrX/2x+UjKDuJXcuE4r/FWAAjBMttNdoYOEAAAAASUVORK5CYII='\n },\n {\n country: 'Uruguay',\n code: '598',\n iso: 'UY',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERTc5MkI4NzE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERTc5MkI4ODE3OEExMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRFNzkyQjg1MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRFNzkyQjg2MTc4QTExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+foYgAAAXJJREFUeNrsls9KAlEUxn93nCadUbISM03BWraofbRq07JV79GL5KZdqx6h1wjaBBkGQVCNWmo1M47jn7xdw4L2ji7qg3M5Bw5897sf53KElPIJyKpwmQ4SKmyhiJ1xgec6CE2jPxB0uwGWGSUet0Jh178TvxNwU74kqnuqEjTqt+SKu6zmN0nEzXCIh0NJq+XQ9yr41RM8547l1DrNh4CXxhs7u3uqS0OI0sSItdHheH1atQsM54ymfU3SUortMv3aKaZu0+tp4Sg25g26gUf98YpCPoKlfDVNQbV6z4IcMJCqR/VJeTRZxSMIITFiabr+B+22j+/6JJJ5Ws0HXpvP4SienxtlGaKZQ4bOOXajghVbwUgekCrsk8umx5crTZY4onQXN7Z5X87xVltHT/sMpWSgrVEoboUyTr/mOOi0CYLO1xwjA3Q9wuJSJgxed0QsmQE0ZgT1psd/TPG/x3/C458PZIpw9fHKk5jy6uN+CjAArpeUjQlCP/MAAAAASUVORK5CYII='\n },\n {\n country: 'Uzbekistan',\n code: '998',\n iso: 'UZ',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjFFMjIwNDE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NjFFMjIwNTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUUyMjAyMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUUyMjAzMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5O2LbgAAAeRJREFUeNrkkz1rFEEYx3/7fhd3c+EE0XAE0UZrG/E7JGhjZWHnZ0jhd7ARsbS2sRGLFIrfQBBBMIJwigkhyb14+zI7Oz4zFwSxWpHbwgdmZ/YZZn7z/z8zHk9ffgUyAh8mP6Afs33lEvvzgg8HJxAGuGgMF84lTKuaNcktak0WhZxWCqUNeLSKUNqmG81yRsOMvdu3GC9Kdl+/czC3odJLcC+h0g3DJEIbw7AXMVM1ioa2ZAueYUxGqXixfZNrGynXn+2BKEPGiLIt6a2y8aKgEPCJzJWi8rhQ7gB4LeVK+O5rcJbeOL/O97yE45mY3xdo7cBpFBD5HoM4JJGS2D4OPDZEeWChFt4yAnbu7YpLCUXFkWxw9+om87UeH8dHrA9SPIFMKu0U1jKfi+W1OJuLcqt2Ib3D2gO0aCG5WvoUxzx+8563k5w7ly/SDDIOrN1WdRKDrikCuWi2pmGEqRVTyeuqdLm2docPDz/LKrRdWDcNn17t8yX0eZD2hanFYp9K8tZqJWrjs3/bF1q7Gx78RY09M5+cuue0rDS/au728n5L/8vwjDFyk0hZcVjw9Ezx/wPuyOqF+fNyrSDCJ4/um1VDl+/l+VYnVoejdLRytQ7sN3QSPnQHzjqxWtq3LuA/BRgAxkzb8HD3VjsAAAAASUVORK5CYII='\n },\n {\n country: 'Vanuatu',\n code: '678',\n iso: 'VU',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjFFMjIwODE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NjFFMjIwOTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUUyMjA2MTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUUyMjA3MTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+q4FzLAAAA2xJREFUeNq0lX9o1HUYx1/f7/2au7vdbdMLl2KzmT+oTUaQVjAhFbYKQ6SRqF3gwLKLCkKNsKyhYv/4h2RETlAQRAZO/+gHVlrLAn/NBvkjHJOam7Rzeafb/fw+Pd+7TpT+kDu3B54P932+3++9n+f9vJ/na1RRMbDTNd3/ckUVaRH6rQRZBBODiTRj2Uqk6wDMpZptZTUs9QY1AUsTSCo8msDEmLl/A/GrZ6GmNcpLiV4WRC/w89gtHnd4mW56cuAyEcCVDdDZBUe3wvkfwdk8TMvYeZ6LXqI3Oco8RzlTTTeWwo9nAmZWj3e3QNVs6FbgX3ZDTzcMNg2x6PY5mqOX6UsnqHf6CJmucUvgTgsTGVj/AZQ9osCnoXcfHDsCF54cYkG8h5XDVxjMpHnC4aPacOYEKOMBbJuvzKByioPw2xB4DEauwZ+H4esjFt/O+4vG2DnWRPuIWRbzNYGgJmCr312C2zMTU/eHl3loW11GygmZm8KSV+M5Wc1WBj7bAc8+pVo4AeHNkOp3E6GGSDDEZKV/TKySqo8tbHDK4HdBeeVFjzxT75Tfjgblp70VBUHnvGEu8sMhRK4hX3ypsYAdd4uPgDjwiVmk5yreGin3T/LAJ7vHaGly030mTU9ngNqWfxiJ3VtL3QzY8T48vwQOfgMDN3QSStg1Tvs48FWSjo98LF6U5ftTaT58bRKWyj2V/v8LN0ZUiAmt1Q+zVCFTkrqFHKUJzO6xNM5xSvt75bJrk1ckHpK9W7z3UD1rBnK4A0n3I8f2II868lRDUN1ftN8RVyGLoROVnLycZXlbLHc9tRp2bYflzTrjOueRCJyJKlFNM6FVea9wQTJb/K6+G9il/2eYJqmUhc3e56rmcCv88Tu8tV7nuk8fb1SZr6lVngMQVc5HtR+mxg2j+B4XLJ2xT4udusnWrYa+i7DiBejq1XC9An6qPieoqab05s08mI2XldLEVdgkH29QKsMQV6W2rYL9JzVYOw3atcIG5fyWVnc1/t8LD/bZzAFv1k218U3dVMPwzuvQcVyD0x7WTGbmAe19WgAcp8+0cf1XYi4P/u3tOp+dGqkOwVoFfPohFY0Ff4+qpqXoHt4XeFMrsu2g/vJOhjfqYGEoP0BDtycE8C5VBwZYV+dncU2+b9e1woz1wD28n/0rwAB0+lOwpXHd2QAAAABJRU5ErkJggg=='\n },\n {\n country: 'Vatican',\n code: '379',\n iso: 'VA',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUZDNzdDNzcxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUZDNzdDNzYxNzdDMTFFMjg2N0NBQTkxQkM5RjY5Q0YiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iODY0MDczNUVBM0I5QTUyOTc2RUZFMTAzNDJBQjczRUMiIHN0UmVmOmRvY3VtZW50SUQ9Ijg2NDA3MzVFQTNCOUE1Mjk3NkVGRTEwMzQyQUI3M0VDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oPgNXQAAAghJREFUeNrkVL9v00AUvvNvO44dbFNBkjYllIWUASbEQAeQEBszjP0D+B9g4p9ghY2VlQEhIdQGRwyIItFUSUOSJnbqn3dnH05IUISEVEdCDLzh3d17T989fXrfg0n/HjizQev12YsZ8NfsP4GmMKN8es7ZhxTCFIIULOIQAoxRduPyQs8R4NSlCfFOByhyOUEq6hWG5X/G4cznhqY06wsmJIzjKHCP0Ml77B8yohlbNwtaVZJlVjiXJJTj8kO7w/bgqIkRUo2yLMaR84mMba5Q5tXK9xC4E5SmqXVhc2N9MzfX7R77rjn8aH9wRrZAfdI1nINt9/hqyhjIt6Ovz5RvjxTn+SqEAMgyUh2yZpCWhrjcr103as2yekAg1hhHO+9I2IdsNC3Mq8ZsQlAKEAIFCcSj/darx5/3WmL1wa2HT6q1dQgmAMgk4Vkmf9coCMPhWxq2sDai3omR4iJ/3yV32oPjfjwCHtZ1zTLXdL2UGzoJulHvTeJ/mRwOQrLlmk/rOyWR7w77nV6HUgBPXZZn8SrQTLHOrt0lndCdXAzINVkkPOdlw6YSL85oUouXNkzLklfhOhMMXDzD8dh++aK3t29uXbmxu6tY5mzw59n8klloMjNBUS7f3qk0tkVNE9XCb5Xcaqtn1hplBMFqNH6plNLlf1eFXtb9n1L51xNd3lT/aF//EGAA9B/iH5xEuF4AAAAASUVORK5CYII='\n },\n {\n country: 'Venezuela',\n code: '58',\n iso: 'VE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NjFFMjIwQzE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3ODRDOUJGQTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUUyMjBBMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUUyMjBCMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+suiZXgAAATpJREFUeNpi/H5RnIE2gImBZmDUaPoZzcigsJdGRrMQ8hUjw/ufDO9/+VTov33x/cfPv/LKfBvaLzDwsjAIcjAw/AdCEl0t+IGBhZHh02+Gm+9rpzt8/vHnz+9/v379+/HrrxA/2++//2XEOCsT9jGoCjAIsDG85iPFaOF3DF9+yyrxOZuLs7Iyffz2Z9X0KwyinCBPPP8WmqktxMf648ffo+ff3LnxgeGXOCkBwsLE8OkXz/c/Ho5SmblH3j/5yqDEx/AP7HkV/tVzr3MIsM2f5XDl9GuGDz8ZuEgKEOYX5rZSif6KWVUn/v3/z8DDxvD/P7Imhm9/GX7+ndRuvnbv04M7f5PiambBd//57rMIMIuI//vwi4EZQxnrXwZe5kdsQm/+fWZgeEvvxMd4XkR7NKOPGo0bAAQYAF2fdeRLtEqSAAAAAElFTkSuQmCC'\n },\n {\n country: 'Vietnam',\n code: '84',\n iso: 'VN',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3ODRDOUJGRDE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3ODRDOUJGRTE3OEIxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc4NEM5QkZCMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc4NEM5QkZDMTc4QjExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MKjEOwAAAg1JREFUeNrMVTtrFVEQnvPae3fvPryPRLmInQn2WkhMIYggGEHs0gqC2FhraSE2grW9VgF/hZWPQmMqCZFAQhTxZu8jZ3fPjLPXRiSsm5iAU83Oznz7zTdzzop37Tk4HpNwbFYXWkjATKAVojYZXTPPTYSZRXbyHSkbdHSsBWRj2b1lZ5YtO/x4dNAlXUgu5+2rVgBB8S+C8BcLKHZLHOZYkGh2XDDnZIj+aTfa1Ebgr1c6phIDa7OmDKRPyaXcn3deH7m2s5TJHkJI7GggDvpnkRNki8geiDWK4ocIL9j+wzGMIVvXqoO4JZlp/97k5LL1zjhIcPtJkL4xzH3aXT3Wokmc/uVpsH47IgPeYianrWBWFngLOYS4cTfaeNxiTO7vIGNEkAE1Ytx65b+f76YvmqLLIRAK2BmueBzcfOmbCFWL9hW6ckOwVCtoF+lA735gj9QsqlPITrpm0m+6lThhgPBwy8drloq4k8/csBDT6K0ZvTYQY++ajXpFMdxX4dp7nRcyvpJ5F+3gub96Pfl4M/n+LDDn7Yklm7m/nJ0qaG5WAbUX851H4eqdhIGkorX7yfaDqL2QG4mUVx7hiku1hA5JJ5R+MiZwKiglwj2wIxWdy3EoioHgwR7meuIyHInJV+nxxJi/mwYb0NRu77NSAQkNFXLr6jGyCOV6wW8QVKr4Z/A//RUcwn4KMAD6MNV+pBmzeAAAAABJRU5ErkJggg=='\n },\n {\n country: 'Wallis and Futuna',\n code: '681',\n iso: 'WF',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzU5MkY0Q0MxNzhDMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzU5MkY0Q0IxNzhDMTFFMkE3MTQ5QzRBQkZDRDc3NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iQTQyMEE3MkQyMkZFM0NBMzRDNzNGM0VCOTZCQjUzQ0UiIHN0UmVmOmRvY3VtZW50SUQ9IkE0MjBBNzJEMjJGRTNDQTM0QzczRjNFQjk2QkI1M0NFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5wahWgAAAsdJREFUeNrEVUtrE1EUPudOMpOkNcmExsRgGyr1USRYUOrKFFTQhXWl0YUoLizWhdS0ttBCpdWuqhY3RRFUFBSh+heUdm9pKbopupPYR5o0j2YmmXu8k1RR6bSlULwMw33M+e53vvudO9jcPDo7m+zrOxaPR3lRS504TTNfjKZDmE5KuQIxhK02BtvWbLSpz/7hTuVng4Rsmg7ZAtcr9O12KBWpUCBuAK4mRPkciCERYAWLSMjEGLpcwJg5bwUt+1VXFmyqRwxKYoMaP9u9y3B7MLUMRpEkBRr2wlyCUwkJyzCEaMdAEObnQOwqK1boOB1tNTj3uBXV6+Ai+Pt3k2MRWWqRGGifZ5Thh96uWzQ/DwYvS4MU3Jkde1+IXZL21IEiowVvpPoQSGwlo2czmsgY/TUk2SRuGGKxvl6KthSGH1S9eeluPfM7ZmVqZunwEbmny/71m/FxglTv2g5ZdNQs2n15X5CFw1gXBmcVygp3OKFk8MQP952+Hc8ep8+2pl+8qgRkxicWmiJKb7d36B5mMlzXLbUun/Va6YgUdN1IJKpjMZ5Mpa9eJr9qqw1nWqKu2z2+wUERZiwvmydpDW3ZSNhA00THfb0NQsH8xSs8n3PeH1E7O8QkL+ogSeuZbwND06p5WeNByiYFkhSJ/L2ytWoUrpJMgOyH8fS+BsfII+fYu+ypkxXd0WYDzrfCGjlJiFRbm5+cTh1vccY71Y6bZhWOjgrd0eV0x84xRTas0W3rCA2hUP7125W2a9X9/Z6BgUq9e9rbWZUzd+E85Z5DIGBytyK30BixwAaQHaXpKezt9g3dFSpzXjIvDiYxwKWnT7QbcXn/ATD0XxfA5qFR2EMn4nC0GZJJphXIhKCKyhQI8E+TmNfA5bAsdEvosrfNdzJJxeIf95zocBS28/lEGQOnLZmvQkdVLW3G6f/8CrYR+qcAAwC0wiFWD6ebGgAAAABJRU5ErkJggg=='\n },\n {\n country: 'Western Sahara',\n code: '212',\n iso: 'EH',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNTkyRjRDRjE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNTkyRjREMDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM1OTJGNENEMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM1OTJGNENFMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+f+9yRAAAAhJJREFUeNrElEFIlEEYht8Z/zWyRNiU2EoQIqJdyUjEkxcDD1qEBHaIwFMRRGQH9RIR1LFA8Fi0bODFi4fyWLGnCJMWkgo2aFeWbNEOq8uu/us/vaNjsLm7/cbu3wfPDDMM837zzseHMUDhf5DjMEvavBZ+wyFDvpLzHgpLyXGB+MgUeQhvQutuiX4nCTJKXpBWL4R11JE8mSc95DW5WEvhBmB1ZyFMAp9IPQlrB6RUDFQbWSoby1ifJLeVEpnBQQdra07FgonHFSIR98VVzgr9cpssMbuFmRn53u+XmelpYYwpIheNio/d3cLu6hJIpUqe+RP5t7/Qz9ynk7BtxIaG8KWvD3Y6XXQmMT6OAwMDyCWTeNfRgfTEBJx83l1xuanCTZ1AKgUUCsXJZbPYHwyisLyMnysrWE8kIHy+iveJOYD9A41lD5B1Mx9/9Bgtd0Z2nVl9OYtvw8NoC4dRHzgCq6UZda3H/k3YMf98mDSdPqcOTj1XCAVE2ZtefQDi7H/XLrly0Cq1qY08RAJkMiTw+b5/81koYFW8qffMNi5DRFnaDWahzD+eIBvkbj/wRDfwG6rqDeS3sGNaZ5C8bQJuXQFiZ7lIm5Ymqyts7VjbTI6Sp6eAm1eZiN5Y3Gvt70FYi7abR12/AET6zWLRVFeNQmRp9Xzj9itjndz5URtrdwk/OAl17zKLSpfxEjyLXwIMABpOQfz9h5ChAAAAAElFTkSuQmCC'\n },\n {\n country: 'Yemen',\n code: '967',\n iso: 'YE',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNTkyRjREMzE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNTkyRjRENDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM1OTJGNEQxMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM1OTJGNEQyMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ACJHhgAAAE1JREFUeNpifK+t+59hAAATwwCBUYtHLaYZYPz///9HIM0HxPTKVoxA/IkFymBAouli+WjiohtgQUpU9Exc/xnpaOFoyTVq8TC3GCDAAFQ1DF5mtiLSAAAAAElFTkSuQmCC'\n },\n {\n country: 'Zambia',\n code: '260',\n iso: 'ZM',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTY2NjI2QzE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTY2NjI2RDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgxNjY2MjZBMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgxNjY2MjZCMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+b9h8+AAAAXJJREFUeNrslLtKA0EUhr+ZzW7MbYkmMQoqVhZWilrb+Q4i2PgGPoCVlbVoY20r+AQigoKFlWDnhaAYMCYm0d3s7oyzwScYsBEPpzicA9/8/GdmxOQeFiE0sUMgySa4GgWRxFOI4TR00iKDVSQOhZCy4j5H5EGMH9F3CYa8fEAttkV3XGotDhrgc1CimmehzX6JCcFSl/V3jnK2aH/AY4U9wc4rh02KRaI6Kw3q79QLXPmc1RB2Xkvjr+TFZWTA8gfzfTZiyh+cCk5nufYpCFvVWpAIKgmhx8UUlyHVWx7GOZ7B7LQUpSu1RJsbEjnp0kyRj6gKTuZo5Sgq4oBEEtipNpKfS2yfZzdust1R/Rqrrebnkznkjc1Vdte4b/FliTbpMd/MLN5lGVNvStH5TLsw2WJaMx3RE0gbN0gNbeeMqapdVs++0uJnFBqeQ0emKfm1+Ef/o/8i2v57Gjj0PN139ZfUYgSRpP04Q2/44vvwLcAAr1qGyCgX8xUAAAAASUVORK5CYII='\n },\n {\n country: 'Zimbabwe',\n code: '263',\n iso: 'ZW',\n flag: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTY2NjI3MDE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTY2NjI3MTE3OEMxMUUyQTcxNDlDNEFCRkNENzc2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgxNjY2MjZFMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgxNjY2MjZGMTc4QzExRTJBNzE0OUM0QUJGQ0Q3NzY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WOc8GAAAAtBJREFUeNq0lmtIk1EYx/+7b7pJ2LxfKv1QqZVBEERfEsKCyi5ghqldmEk1urAuUBGYSRCChMrQkqAsM8IuokVRUeAFBmVhsVa6OWeba7rNy9bedzudN9KK+ra9f3jOC88D7++c55zzPEfQ2NBkO3xLo5LnAzmZcvjGAAjBuwSEyvCkH2U1xfiwcAC5eSK4RqUIBrkov2Av/aoCowQ7daXo9N1ESRngD8gwNUEjIp7Bs47a6mtwWzU4UU4QvYg6LPzA/wFzau924JV+PTQF75G1gzqmqUU49X+Bpz1vIXZFQ2a2YiAnD/pLB5Dtb0TFMhqMkWEyEIJYEGGwj7EjOJiLQAeBVTeGFY6vYOMTcf7cdbir9uMIQkifp4aZJRAREjlwiA6M8SRC1ssY0gJy0UZk9DykETHajGZ0bivA9o/vsCVVCchk4YOD7nHvtzM6lffuY4jzY5BS6YJEIoK92gnv/QVQSGVIqzwKY3E59BoN/M1XkaoUQiSXh0cmLOud6nxAPsVnEstmEGYwmcz0JRH/SAKx6UCMq5PITPdrMiv90+cEsXFcrsMzLtXcD1lqjrYUMv1SSkx31GS4PZ74ekEmnGdJiPxWi+ENgTohbLB4buXUFEvT4DTYwEg89PqEYDUBCUnZP2/RMLX6Q1qMNdThVBS92rGKsDI9B2bNk2BeuKFcIoGSxNEt8CDoFiImvQhdQ3a0FG7FJkMfipIpNUoRuVPNWkfhHzFBvmoxnQ3tEhIp4BHjYs0jWC5ocRAuZCnn4wvLFTLCT+XiZB4H6uprkWg5Bl0GdagV8DDBiFXP/4I7uj7jWWspCtf1YE0JdQS4veC5VjdfuQdL/y6crmDoYeOW/qs/C/gC03HPcS1u2+uwdx/XkaTwOgV/HD8eHgKm3iGUVO1GX2w3cjYAEw4FmAC/LxFB6402W0VTmcq/1oeVy2X4bheCCAn41g8BBgCi8X7r2R04cwAAAABJRU5ErkJggg=='\n }\n];\n\nexport default FlagsList;\n","import classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n useEffect,\n useId,\n useRef,\n useState\n} from 'react';\n\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean, useExpandedRef } from '@/utils';\n\nimport { Dropdown, DropdownElement, DropdownOption, DropdownOptionProps, DropdownSection } from '@/components/dropdown';\nimport { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\n\nimport FlagsList from './resources/config';\nexport const PhoneCountryCodes = FlagsList.map((l) => l.code);\nexport type PhoneCountryCode = (typeof PhoneCountryCodes)[number];\nexport const PhoneCountryISOs = FlagsList.map((l) => l.iso);\nexport type PhoneCountryISO = (typeof PhoneCountryISOs)[number];\n\nimport { CountryPhoneProps } from './country-phone.model';\nimport './input-phone.scss';\n\nexport interface InputPhoneElement extends HTMLInputElement {\n iso: PhoneCountryISO;\n code: PhoneCountryCode;\n}\n\nexport interface InputPhoneProps extends Omit<ComponentPropsWithRef<'input'>, 'ref'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Define de initial country selected using the country ISO. Will override defaultCode prop.\n */\n defaultISO?: PhoneCountryISO;\n /**\n * Define de initial country selected using the country phone code (without +). Will be overridden by defaultISO prop.\n */\n defaultCode?: PhoneCountryCode;\n /**\n * Alternative text that labels the list of country flag options of the dropdown list.\n */\n dropdownAriaLabel?: string;\n /**\n * Enable the search bar to filter items.\n */\n searchable?: BooleanProp;\n /**\n * Placeholder text for input search bar.\n */\n searchInputPlaceholder?: string;\n /**\n * Accessible text for the input search bar.\n */\n searchInputAriaLabel?: string;\n /**\n * Text to show when filtering presents no results.\n */\n searchNoResultsText?: string;\n /**\n * Number of visible items to display in the DropdownList. Remaining items will be accessible via scroll bar.\n */\n visibleCount?: number;\n /**\n * Callback to run whenever the input value changes.\n */\n onChange?: (evt: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Callback to run whenever the country dropdown value changes.\n */\n onCountryChange?: (country: CountryPhoneProps) => void;\n}\n\nconst InnerInputPhone: ForwardRefRenderFunction<InputPhoneElement, InputPhoneProps> = (\n {\n label = 'Input Label',\n defaultISO,\n defaultCode,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackText,\n feedbackState = 'info',\n darkMode,\n className = '',\n searchInputAriaLabel,\n searchInputPlaceholder,\n searchNoResultsText,\n visibleCount,\n required = true,\n searchable,\n dropdownAriaLabel,\n\n onChange,\n onCountryChange,\n\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const dropdownRef = useRef<DropdownElement>(null);\n\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n const [hasValue, setHasValue] = useState<boolean>(propsClone.value ? propsClone.value.toString().length > 0 : false);\n\n let initial: CountryPhoneProps = FlagsList[0];\n\n const searchForProp = defaultISO ?? defaultCode;\n\n if (searchForProp) {\n initial =\n FlagsList.find((country) => {\n return country.code === searchForProp || country.iso.toLocaleLowerCase() === searchForProp.toLocaleLowerCase();\n }) ?? initial;\n }\n\n const [currentCountry, setCurrentCountry] = useState<CountryPhoneProps>(initial);\n\n // Necessary to override the default initial value and currentCountry in case of initial code or iso values changed\n useEffect(() => {\n setCurrentCountry(initial);\n }, [initial]);\n\n useExpandedRef<InputPhoneElement>(\n ref,\n inputRef,\n {\n iso: currentCountry.iso,\n code: currentCountry.code\n } as InputPhoneElement,\n [propsClone, inputRef.current, currentCountry]\n );\n\n const onHide = () => {\n setIsDropdownVisible(false);\n if (wrapperRef.current?.contains(document.activeElement)) {\n inputRef.current?.focus();\n }\n };\n\n const onShow = () => {\n setIsDropdownVisible(true);\n dropdownRef.current?.first();\n };\n\n const onDropdownChange = (options: DropdownOptionProps[]) => {\n const selectedCountry = FlagsList.find((f) => f.iso === options[0].value);\n\n if (!selectedCountry) {\n return;\n }\n\n const newCountry: CountryPhoneProps = { ...selectedCountry };\n\n setCurrentCountry(newCountry);\n\n onCountryChange?.(newCountry);\n };\n\n const handleInputKeydownCapture = (evt: KeyboardEvent<HTMLInputElement>) => {\n const keysWhitelist = [\n 'Enter',\n 'NumpadEnter',\n 'Tab',\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n 'Home',\n 'End'\n ];\n\n if (keysWhitelist.indexOf(evt.code) >= 0) {\n return;\n }\n\n const isNumeric = /\\d/.test(evt.key);\n\n if (!isNumeric) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n };\n\n const handleInputChange = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n\n setHasValue(value.length > 0);\n\n asyncTrigger(() => onChange?.(evt));\n };\n\n const toggleVisibility = () => {\n if (dropdownRef.current?.visibility) {\n dropdownRef.current?.hide();\n } else {\n dropdownRef.current?.show();\n }\n };\n\n const handleDropdownControlKeydown = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (propsClone.disabled || propsClone.readOnly) {\n return;\n }\n\n const code = evt.code;\n\n if (code === 'Escape' && dropdownRef.current?.visibility) {\n dropdownRef.current.hide();\n }\n\n if (code === 'Enter' || code === 'Space' || code === 'NumpadEnter') {\n toggleVisibility();\n }\n };\n\n const handleDropdownControlClick = (evt: ReactMouseEvent<HTMLButtonElement>) => {\n if (propsClone.disabled || propsClone.readOnly) {\n return;\n }\n\n if (typeof evt.detail === 'number' && evt.detail === 0) {\n // EVENT DETAIL IS THE NUMBER OF CLICKS. KEYBOARD DOES NOT ADD A CLICK COUNTER.\n // KEYBOARD IS HANDLED ON KEYDOWN\n return;\n }\n\n toggleVisibility();\n };\n\n useEffect(() => {\n const handleClickOutside = (evt: MouseEvent) => {\n if (!dropdownRef.current?.visibility) {\n return;\n }\n\n if (!wrapperRef.current?.contains(evt.target as HTMLElement)) {\n dropdownRef.current.hide();\n }\n };\n\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n const darkModeClass = stringToBoolean(darkMode) ? 'dark' : '';\n\n const wrapperClassNames = classNames('agora-input-phone', className, darkModeClass);\n\n const inputWrapperClassNames = classNames('input-phone-wrapper', darkModeClass, {\n 'has-value': hasValue,\n 'disabled': propsClone.disabled,\n 'readonly': propsClone.readOnly,\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n });\n\n const labelClasses = classNames('input-phone-label', darkModeClass);\n\n return (\n <div hidden={!!propsClone.hidden} className={wrapperClassNames} ref={wrapperRef}>\n {/* Label */}\n {label && !stringToBoolean(hideLabel) && (\n <label htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n )}\n\n {/* Input wrapper */}\n <div className={inputWrapperClassNames}>\n <button\n type=\"button\"\n className=\"country-dropdown-control\"\n ref={buttonRef}\n tabIndex={propsClone.disabled || propsClone.readOnly ? -1 : 0}\n onClick={handleDropdownControlClick}\n onKeyDown={handleDropdownControlKeydown}\n role=\"combobox\"\n aria-controls={`${propsClone.id}-dropdown-container`}\n aria-expanded={isDropdownVisible}\n aria-haspopup=\"listbox\"\n aria-required={required}\n aria-label={`${currentCountry?.country} +${currentCountry?.code}`}\n disabled={propsClone.disabled}\n >\n <img className=\"shadow-center-lower\" src={`${currentCountry.flag}`} alt={currentCountry.country} width={26} aria-hidden />\n <Icon name=\"agora-solid-arrow-down\" aria-hidden className=\"ml-8\" />\n </button>\n\n <div className=\"input-text-wrapper\">\n <div className=\"country-code\">\n <span aria-hidden>+({currentCountry?.code})</span>\n <span className=\"sr-only\" aria-live=\"polite\">{`${currentCountry?.country} +${currentCountry?.code}`}</span>\n </div>\n\n <input\n {...propsClone}\n ref={inputRef}\n type=\"tel\"\n id={propsClone.id}\n className=\"input-text\"\n disabled={propsClone.disabled}\n readOnly={propsClone.readOnly}\n aria-invalid={stringToBoolean(hasError)}\n aria-disabled={stringToBoolean(propsClone.disabled)}\n aria-required={required}\n onChange={handleInputChange}\n onKeyDownCapture={handleInputKeydownCapture}\n />\n </div>\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px]\">\n <Dropdown\n ref={dropdownRef}\n onHide={onHide}\n onShow={onShow}\n onChange={onDropdownChange}\n type=\"text\"\n searchable={searchable}\n searchAriaLabel={searchInputAriaLabel}\n searchPlaceholder={searchInputPlaceholder}\n noSearchResults={searchNoResultsText}\n optionsVisible={visibleCount}\n aria-label={dropdownAriaLabel}\n hideSectionNames\n >\n <DropdownSection label=\"phones\" name={`input-phone-${propsClone.id}-countries-dropdown-section`}>\n {FlagsList.map((country, index) => {\n const optionIndex = `input-phone-${propsClone.id}-countries-dropdown-section-${index}`;\n return (\n <DropdownOption\n key={optionIndex}\n value={country.iso}\n selected={country.iso.toLocaleLowerCase() === currentCountry.iso.toLocaleLowerCase()}\n hasIcon\n icon={country.flag}\n disabled={country.code === currentCountry.code}\n >{`+(${country.code}) ${country.country}`}</DropdownOption>\n );\n })}\n </DropdownSection>\n </Dropdown>\n </div>\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputPhone = forwardRef<InputPhoneElement, InputPhoneProps>(InnerInputPhone);\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n MouseEvent,\n ReactNode,\n useEffect,\n useId,\n useRef,\n useState\n} from 'react';\n\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean, useExpandedRef } from '@/utils';\n\nimport './input-range.scss';\n\nexport type RangeType = 'single' | 'double';\n\nexport interface InputRangeProps extends Omit<ComponentPropsWithRef<'input'>, 'ref' | 'value' | 'onChange'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n\n /**\n * The type of the range (single or double).\n */\n type?: RangeType;\n /**\n * Disables the input range.\n */\n disabled?: boolean;\n /**\n * The value or values for the input range. It can be a number array with 1 or 2 positions according tp the type specified.\n */\n value?: number[];\n /**\n * The minimum value to accept for this input. It does not allow the insertion of values lower than this minimum value.\n * If a value is specified for min isn't a valid number, the input has no minimum value.\n * This value must be less than or equal to the value of the **max** attribute.\n */\n min: number | string;\n /**\n * The maximum value to accept for this input. It does not allow the insertion of values greater than this max value.\n * If the value of the max attribute isn't a number, then the element has no maximum value.\n * This value must be greater than or equal to the value of the **min** attribute.\n */\n max: number | string;\n /**\n * Custom onChange event handler for double range type.\n * Will be called with an array of values.\n */\n onChange?: (values: number[]) => void;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n}\nexport interface InputRangeElement extends HTMLDivElement {\n sliders: HTMLInputElement[];\n}\n\nconst InnerRange: ForwardRefRenderFunction<InputRangeElement, InputRangeProps> = (\n {\n label,\n hideLabel,\n type = 'single',\n disabled,\n\n value = [0, 0],\n\n hasError,\n hasFeedback,\n feedbackText,\n feedbackState = 'info',\n\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [currentVal, setCurrentVal] = useState<number[]>([value[0], value[1]]);\n\n const prevPropValue = useRef<number[]>(value);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const innerRefs1 = useRef<HTMLInputElement>(null);\n const innerRefs2 = useRef<HTMLInputElement>(null);\n\n useExpandedRef<InputRangeElement>(\n ref,\n containerRef,\n {\n sliders: type === 'single' ? [innerRefs1.current] : [innerRefs1.current, innerRefs2.current]\n } as InputRangeElement,\n [type, containerRef.current, innerRefs1.current, innerRefs2.current]\n );\n\n useEffect(() => {\n if (prevPropValue.current[0] !== value[0] || prevPropValue.current[1] !== value[1]) {\n const values = [...value];\n\n if (type === 'single') {\n values[1] = Number(propsClone.max);\n }\n\n setCurrentVal(values);\n\n prevPropValue.current = values;\n }\n }, [value]);\n\n const handleRangeChange = (values: number[]): void => {\n const [firstValue, secondValue] = values;\n\n if (type === 'single') {\n setCurrentVal(values);\n }\n\n if (type === 'double') {\n if (firstValue > secondValue || secondValue < firstValue || firstValue === secondValue) {\n return;\n }\n setCurrentVal(values);\n }\n\n asyncTrigger(() => onChange?.(values));\n };\n\n const handleMouseUp = () => {\n innerRefs1.current?.classList.remove('z-[2]');\n innerRefs2.current?.classList.remove('z-[2]');\n };\n\n const handleMouseDown = (evt: MouseEvent<HTMLInputElement>) => {\n handleMouseUp();\n\n const target = evt.target as HTMLInputElement;\n target.classList.add('z-[2]');\n };\n\n const containerClassNames = classNames('agora-input-range', {\n 'has-label': !stringToBoolean(hideLabel),\n 'has-error': stringToBoolean(hasError)\n });\n\n return (\n <div className={containerClassNames} ref={containerRef}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={`${propsClone.id}-0`} className=\"input-range-label\">\n {label}\n </label>\n\n <div className=\"rail-container\">\n <div className=\"rail\" />\n <input\n {...props}\n className=\"inner-input-range\"\n type=\"range\"\n id={`${propsClone.id}-0`}\n disabled={disabled}\n onChange={(event) => handleRangeChange([Number(event.target.value), currentVal[1]])}\n value={currentVal[0]}\n ref={innerRefs1}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n />\n\n <input\n {...props}\n className=\"inner-input-range\"\n hidden={type === 'single'}\n type=\"range\"\n id={`${propsClone.id}-1`}\n disabled={disabled}\n onChange={(event) => handleRangeChange([currentVal[0], Number(event.target.value)])}\n value={currentVal[1]}\n ref={innerRefs2}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n />\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} className=\"mt-0\" />\n )}\n </div>\n );\n};\n\nexport const InputRange = forwardRef<InputRangeElement, InputRangeProps>(InnerRange);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useState } from 'react';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\nimport { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport './input-search.scss';\n\nexport interface InputSearchProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Highlight the input indicating some error\n */\n hasError?: BooleanProp;\n}\n\nconst InnerInputSearch: ForwardRefRenderFunction<HTMLInputElement, InputSearchProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n asyncTrigger(() => onChange?.(evt));\n };\n\n const darkModeClass = stringToBoolean(darkMode) ? 'dark' : '';\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames('agora-input-search-wrapper', darkModeClass, {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n 'has-error': stringToBoolean(hasError),\n\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n }),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // search input component classes\n inputClasses: classNames(\n 'agora-input-search',\n 'bg-transparent',\n {\n 'has-leading-icon': hasIcon && icon?.indexOf('agora-line') === 0, // allowing only line family icon\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n ),\n\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-search-label', darkModeClass);\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Search input wrapper */}\n <div className=\"input-wrapper flex relative items-center rounded-4 bg-white z-[1]\">\n <input\n {...propsClone}\n type=\"search\"\n className={inputClasses}\n disabled={!!propsClone.disabled}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n <div className=\"search-icon bg-transparent\">\n <Icon name=\"agora-line-search\" aria-hidden />\n </div>\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputSearch = forwardRef<HTMLInputElement, InputSearchProps>(InnerInputSearch);\n","import { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, {\n Children,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n isValidElement,\n KeyboardEvent,\n ReactElement,\n ReactNode,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport { Dropdown, DropdownElement, DropdownOptionProps, DropdownSectionProps, DropdownType } from '@/components/dropdown';\nimport './input-select.scss';\n\nexport interface InputSelectRef {\n selectedOptions: DropdownOptionProps[];\n}\n\nconst parseChildrenProps = (children: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[]) => {\n let allItemsEnabled = 0;\n const newSelectedData = [] as DropdownOptionProps[];\n\n Children.forEach(children, (sectionChild) => {\n if (isValidElement<DropdownSectionProps>(sectionChild)) {\n Children.forEach(sectionChild.props.children, (optionChild) => {\n if (isValidElement<DropdownSectionProps>(optionChild)) {\n allItemsEnabled = optionChild.props.disabled ? allItemsEnabled : allItemsEnabled + 1;\n\n if (optionChild.props.selected) {\n newSelectedData.push(optionChild.props);\n }\n }\n });\n }\n });\n\n return {\n allItemsEnabled,\n newSelectedData\n };\n};\n\nexport interface InputSelectProps extends Omit<ComponentPropsWithRef<'select'>, 'options' | 'onChange'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Input placeholder.\n */\n placeholder?: string;\n /**\n * Sets the input in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * Show or hide the leading icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Alternative text for the dropdown that will be rendered.\n */\n dropdownAriaLabel?: string;\n /**\n * Number of visible items to display in the DropdownList. Remaining items will be accessible via scroll bar.\n */\n visibleCount?: number;\n /**\n * Toggles visibility on section names. It also removes the name from accessibility tree.\n */\n hideSectionNames?: BooleanProp;\n /**\n * Event triggered whenever selected value or values changes.\n */\n onChange?: (options: DropdownOptionProps[]) => void;\n /**\n * Select All item text to be rendered.\n */\n selectAllLabel?: string;\n /**\n * Enable the search bar to filter items.\n */\n searchable?: BooleanProp;\n /**\n * Placeholder text for input search bar.\n */\n searchInputPlaceholder?: string;\n /**\n * Accessible text for the input search bar.\n */\n searchInputAriaLabel?: string;\n /**\n * Event triggered whenever the input search value changes.\n */\n onSearchInputChange?: (value: string) => void;\n /**\n * Text to show when filtering presents no results.\n */\n searchNoResultsText?: string;\n /**\n * Text placed as Select all options item\n */\n allSelectedLabel?: string;\n /**\n * Initial template structure for multiple items selections text output\n */\n pluralSelectedPlaceholder?: string;\n /**\n * Type of options to render\n */\n type?: DropdownType;\n /**\n * Section list of dropdown options to render.\n */\n children?: ReactElement<DropdownSectionProps> | ReactElement<DropdownSectionProps>[];\n}\n\nconst InnerInputSelect: ForwardRefRenderFunction<InputSelectRef | HTMLSelectElement, InputSelectProps> = (\n {\n label,\n hideLabel,\n placeholder = '',\n pluralSelectedPlaceholder = '',\n visibleCount = 4,\n hideSectionNames,\n hasIcon,\n icon,\n hasFeedback,\n feedbackText,\n feedbackState,\n darkMode,\n hasError,\n required = true,\n onChange,\n searchable,\n selectAllLabel,\n allSelectedLabel = '',\n searchInputPlaceholder,\n searchInputAriaLabel,\n searchNoResultsText,\n children = [],\n onSearchInputChange,\n type = 'text',\n dropdownAriaLabel,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n const controlWrapperRef = useRef<HTMLDivElement>(null);\n\n const controlRef = useRef<HTMLDivElement>(null);\n\n const dropdownRef = useRef<DropdownElement>(null);\n\n // INITIALIZE SELECTED VALUES\n const [selectedData, setSelectedData] = useState<DropdownOptionProps[]>([]);\n\n useImperativeHandle(\n ref,\n () => {\n return {\n selectedOptions: selectedData\n } as InputSelectRef;\n },\n [selectedData]\n );\n\n const mainWrapperClasses = classNames(\n 'agora-input-select',\n { dark: stringToBoolean(darkMode) },\n {\n 'disabled': stringToBoolean(propsClone.disabled),\n 'has-value': selectedData.length > 0,\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n }\n );\n\n const controlClasses = classNames('agora-input-select-control', {\n 'is-overlay-open': isDropdownVisible,\n 'has-leading-icon': hasIcon && icon?.indexOf('agora-line') === 0 // allowing only line family icon\n });\n\n // NEED TO REEVALUATE ALL CHILDREN TO ENSURE THAT SELECTED VALUES AND DISABLED VALUES ARE SYNC\n const stringOutputMemo: string = useMemo(() => {\n const { allItemsEnabled, newSelectedData } = parseChildrenProps(children);\n\n if (newSelectedData.length === 0) {\n return placeholder;\n }\n\n if (newSelectedData.length === 1) {\n return newSelectedData[0].children?.toString() ?? '';\n }\n\n if (newSelectedData.length === allItemsEnabled) {\n return allSelectedLabel;\n }\n\n return `${newSelectedData.length} ${pluralSelectedPlaceholder}`;\n }, [children, placeholder, pluralSelectedPlaceholder, allSelectedLabel]);\n\n const onClickLabel = () => {\n if (!propsClone.disabled) {\n controlRef.current?.focus();\n }\n };\n\n const onHide = () => {\n setIsDropdownVisible(false);\n controlRef.current?.focus();\n };\n\n const onShow = () => {\n setIsDropdownVisible(true);\n dropdownRef.current?.first();\n };\n\n const onDropDownChange = (values: DropdownOptionProps[]) => {\n // select local values\n setSelectedData(values);\n\n // trigger external data selection callback\n asyncTrigger(() => onChange?.(values));\n };\n\n const toggleDropdown = () => {\n if (dropdownRef.current?.visibility) {\n dropdownRef.current?.hide();\n } else {\n dropdownRef.current?.show();\n }\n };\n\n const onDropDownClickHandler = () => {\n toggleDropdown();\n };\n\n const onDropdownControlKeyDownHandler = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n if (code === 'Enter' || code === 'NumpadEnter' || code === 'Space') {\n toggleDropdown();\n }\n };\n\n useEffect(() => {\n const handleClickOutside = (evt: MouseEvent) => {\n if (dropdownRef.current?.visibility && !controlWrapperRef.current?.contains(evt.target as HTMLElement)) {\n dropdownRef.current.hide();\n }\n };\n\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n const labelClasses = classNames('agora-input-select-label', { dark: stringToBoolean(darkMode) });\n\n return (\n <div className={mainWrapperClasses} hidden={!!propsClone.hidden}>\n {!stringToBoolean(hideLabel) && (\n <div id={`agora-input-select-${propsClone.id}-control-label`} className={labelClasses} onClickCapture={onClickLabel}>\n {label}\n </div>\n )}\n\n <div className=\"agora-input-select-control-wrapper\" ref={controlWrapperRef}>\n <div\n ref={controlRef}\n id={`agora-input-select-${propsClone.id}-control`}\n aria-labelledby={`agora-input-select-${propsClone.id}-control-label`}\n role=\"combobox\"\n aria-invalid={stringToBoolean(hasError)}\n aria-disabled={stringToBoolean(propsClone.disabled)}\n aria-expanded={isDropdownVisible}\n aria-controls={propsClone.id}\n aria-required={required}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n className={controlClasses}\n tabIndex={propsClone.disabled ? -1 : 0}\n onClick={onDropDownClickHandler}\n onKeyDown={onDropdownControlKeyDownHandler}\n >\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className=\"input-icon input-leading-icon\">\n <Icon name={icon} aria-hidden />\n </div>\n )}\n\n <div className=\"content\">{stringOutputMemo}</div>\n\n <div className=\"indicator\">\n <Icon name=\"agora-solid-arrow-down\" aria-hidden />\n </div>\n </div>\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px]\">\n <Dropdown\n ref={dropdownRef}\n id={propsClone.id}\n aria-label={dropdownAriaLabel}\n type={type}\n selectAllLabel={selectAllLabel}\n optionsVisible={visibleCount}\n hideSectionNames={hideSectionNames}\n searchable={searchable}\n searchAriaLabel={searchInputAriaLabel}\n searchPlaceholder={searchInputPlaceholder}\n noSearchResults={searchNoResultsText}\n onSearchChange={onSearchInputChange}\n onChange={onDropDownChange}\n onHide={onHide}\n onShow={onShow}\n >\n {children}\n </Dropdown>\n </div>\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputSelect = forwardRef<InputSelectRef | HTMLSelectElement, InputSelectProps>(InnerInputSelect);\n","import classNames from 'classnames';\nimport React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useState } from 'react';\n\nimport { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\n\nimport './input-text.scss';\n\nexport interface InputTextProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Indicates the feedback state of feedback text. This param will change the left feedback icon and dye it.\n */\n hasIcon?: BooleanProp;\n /**\n * Name of the icon leading icon to be displayed.\n */\n icon?: string;\n /**\n * Highlight the input indicating some error\n */\n hasError?: BooleanProp;\n}\n\nconst InnerInputText: ForwardRefRenderFunction<HTMLInputElement, InputTextProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n feedbackState = 'info',\n darkMode,\n feedbackText,\n hasIcon,\n icon,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const { onChange } = propsClone;\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n asyncTrigger(() => onChange?.(evt));\n };\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames(\n 'agora-input-text-wrapper',\n { dark: stringToBoolean(darkMode) },\n {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': !!propsClone.disabled,\n\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n }\n ),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames(\n 'input-label-wrapper flex items-end',\n\n {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }\n ),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-text',\n {\n 'has-leading-icon': icon?.startsWith('agora-line'), // allowing only line family icon\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n ),\n leadingIconWrapperClasses: classNames('input-leading-icon')\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses, leadingIconWrapperClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-text-label', { dark: stringToBoolean(darkMode) });\n\n return (\n <div hidden={!!propsClone.hidden} className={inputWrapperClasses}>\n {/* Label */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\">\n <input\n {...propsClone}\n type=\"text\"\n className={inputClasses}\n disabled={!!propsClone.disabled}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n onChange={handleChangeEvent}\n />\n\n {/* Input Leading Icon [only line family icon] */}\n {hasIcon && icon && icon.startsWith('agora-line') && (\n <div className={leadingIconWrapperClasses}>\n <Icon name={icon} aria-hidden />\n </div>\n )}\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n </div>\n );\n};\n\nexport const InputText = forwardRef<HTMLInputElement, InputTextProps>(InnerInputText);\n","import React, { ChangeEvent, ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\n\nimport './input-textarea.scss';\n\nexport interface InputTextAreaProps extends ComponentPropsWithRef<'textarea'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Decides if display/hide label.\n */\n hideLabel?: BooleanProp;\n /**\n * Highlight the input indicating some error\n */\n hasError?: BooleanProp;\n\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * The flag to set if the label and feedback text is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n /**\n * Defines if the char counter on right corner should or should not be visible.\n */\n showCharCounter?: BooleanProp;\n}\n\nexport const InnerInputTextArea: ForwardRefRenderFunction<HTMLTextAreaElement, InputTextAreaProps> = (\n {\n label,\n hideLabel,\n hasError,\n hasFeedback,\n showCharCounter,\n feedbackText,\n feedbackState = 'info',\n darkMode,\n className,\n required = true,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n propsClone.rows = Math.max(propsClone.rows ?? 0, 3);\n\n const { onChange } = propsClone;\n\n const [currentValue, setCurrentValue] = useState(propsClone.value);\n\n /**\n * Local onChange event handler.\n */\n const handleChangeEvent = (evt: ChangeEvent<HTMLTextAreaElement>) => {\n const { value } = evt.currentTarget;\n setCurrentValue(value);\n asyncTrigger(() => onChange?.(evt));\n };\n\n const darkModeClass = stringToBoolean(darkMode) ? 'dark' : '';\n\n /**\n * Builds main Classes for whole component\n */\n const inputClassBuilder = () => {\n return {\n // main wrapper class\n inputWrapperClasses: classNames('agora-input-textarea-wrapper', darkModeClass, {\n 'flex flex-col': !propsClone.hidden,\n 'input-disabled': propsClone.disabled,\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n }),\n // classes for above input sections [label and hint icon]\n labelSectionClasses: classNames('input-label-wrapper', 'flex', 'items-end', {\n 'mb-8': label && !stringToBoolean(hideLabel),\n 'justify-end': !label || stringToBoolean(hideLabel),\n 'justify-between': label && !stringToBoolean(hideLabel)\n }),\n // text input component classes\n inputClasses: classNames(\n 'agora-input-textarea',\n {\n 'has-value': currentValue && currentValue?.toString().length > 0\n },\n className\n )\n };\n };\n\n const { inputWrapperClasses, labelSectionClasses, inputClasses } = inputClassBuilder();\n\n const labelClasses = classNames('input-textarea-label', darkModeClass);\n\n const charCounterClasses = classNames('char-counter', darkModeClass);\n\n return (\n <div hidden={propsClone.hidden} className={inputWrapperClasses}>\n {/* Label & Hint Text Wrapper */}\n <div className={labelSectionClasses}>\n <label hidden={stringToBoolean(hideLabel)} htmlFor={propsClone.id} className={labelClasses}>\n {label}\n </label>\n </div>\n\n {/* Text input wrapper */}\n <div className=\"input-wrapper flex relative items-center\">\n <textarea\n {...propsClone}\n className={inputClasses}\n aria-invalid={stringToBoolean(hasError)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n required={required}\n ref={ref}\n onChange={handleChangeEvent}\n />\n </div>\n\n {/* Feedback && CharCounter */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(showCharCounter)) && (\n <div className=\"flex justify-end\">\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n )}\n {stringToBoolean(showCharCounter) && (\n <div className={charCounterClasses}>\n <span>{`${currentValue?.toString().length ?? 0}`}</span>\n {propsClone.maxLength && <span>{` / ${propsClone.maxLength}`}</span>}\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport const InputTextArea = forwardRef<HTMLTextAreaElement, InputTextAreaProps>(InnerInputTextArea);\n","import React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport './loader-dialog.scss';\n\nexport interface LoaderDialogProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /**\n * The title of the loader.\n */\n title?: ReactNode;\n /**\n * The subtitle of the loader.\n */\n subtitle?: ReactNode;\n}\nexport const LoaderDialog: FC<LoaderDialogProps> = ({ title, subtitle, ...props }) => {\n const loaderClass = classNames('agora-loader-dialog');\n\n return (\n <div {...props} className=\"bg-[var(--color-backdrop)] absolute z-dialog w-full h-full flex flex-col justify-center items-center\">\n <div className=\"flex flex-col gap-[64px] justify-center items-center w-full\">\n {(title || subtitle) && (\n <div className=\"flex w-full flex-col gap-8 justify-center items-center text-center\">\n {title && (\n <div className=\"xl:text-2xl-semibold md:text-2xl-semibold xs:text-l-semibold text-white xl:line-clamp-1 md:line-clamp-1 xs:line-clamp-2\">\n {title}\n </div>\n )}\n {subtitle && (\n <div className=\"xl:text-2xl-light md:text-2xl-light xs:text-m-light text-white xl:line-clamp-1 md:line-clamp-1 xs:line-clamp-2\">\n {subtitle}\n </div>\n )}\n </div>\n )}\n <div className={loaderClass} role=\"status\">\n <span className=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\"></span>\n </div>\n </div>\n </div>\n );\n};\n","import { createContext, useContext } from 'react';\nimport { LoaderDialogProps } from './loader-dialog';\n\nimport { DialogElement } from '@/components/dialog';\n\nexport interface LoaderDialogContextProps {\n current: DialogElement;\n visibility?: boolean;\n showLoader: (props: LoaderDialogProps) => void;\n hideLoader: () => void;\n}\n\nconst LoaderDialogContext = createContext<LoaderDialogContextProps>({} as LoaderDialogContextProps);\n\nconst useLoaderDialogContext = (): LoaderDialogContextProps => {\n const context = useContext(LoaderDialogContext);\n return context;\n};\n\nexport { LoaderDialogContext, useLoaderDialogContext };\n","import React, { FC, ReactNode, useCallback, useMemo, useRef, useState } from 'react';\nimport { Dialog, DialogElement } from '@/components/dialog';\nimport { LoaderDialogContext, LoaderDialogContextProps } from './loader-dialog-context';\nimport { LoaderDialog, LoaderDialogProps } from './loader-dialog';\n\nexport interface LoaderDialogProviderProps {\n /**\n * Children content.\n */\n children?: ReactNode;\n}\n\nconst LoaderDialogProvider: FC<LoaderDialogProviderProps> = ({ children }) => {\n const dialogRef = useRef<DialogElement>(null);\n\n const [dialogProps, setDialogProps] = useState<LoaderDialogProps>();\n const [ariaLiveMessage, setAriaLiveMessage] = useState('');\n\n const showLoader = useCallback(\n (currentDialogProps: LoaderDialogProps) => {\n if (currentDialogProps['aria-label']) {\n setAriaLiveMessage(currentDialogProps['aria-label']);\n } else if (currentDialogProps['aria-labelledby']) {\n const ids = currentDialogProps['aria-labelledby'].split(' ');\n\n const val = ids\n .map((id) => {\n return document.getElementById(id)?.innerText ?? '';\n })\n .filter((str) => !!str)\n .join(' ');\n\n setAriaLiveMessage(val);\n } else {\n setAriaLiveMessage(`${currentDialogProps.title?.toString()} ${currentDialogProps.subtitle?.toString()}`);\n }\n\n setDialogProps(currentDialogProps);\n\n dialogRef.current?.show();\n },\n [setDialogProps]\n );\n\n const hideLoader = useCallback((): void => {\n setAriaLiveMessage('');\n dialogRef.current?.hide();\n }, []);\n\n const contextValue = useMemo(\n () =>\n ({\n showLoader,\n current: dialogRef.current,\n visibility: !!dialogRef.current?.visible,\n hideLoader\n }) as LoaderDialogContextProps,\n [showLoader, hideLoader]\n );\n\n return (\n <LoaderDialogContext.Provider value={contextValue}>\n <div aria-live=\"assertive\" className=\"sr-only\">\n {ariaLiveMessage}\n </div>\n <Dialog ref={dialogRef} fullScreen dismissOnBackdropClick={false} dismissOnEscape={false} aria-busy=\"true\">\n {!!dialogProps && <LoaderDialog {...dialogProps} />}\n </Dialog>\n {children}\n </LoaderDialogContext.Provider>\n );\n};\n\nexport { LoaderDialogProvider };\n","import { DialogElement } from '@/components/dialog';\nimport { createContext, ReactNode, useContext } from 'react';\nimport { ModalConfiguration } from './modal-config.model';\n\nexport interface ModalContextProps {\n /**\n * The visible dialog element. If not visible the value is null.\n */\n current: DialogElement | null;\n /**\n * Tells if a modal is visible or not.\n */\n visibility?: boolean;\n /**\n * Shows a new modal with the configurations provided.\n */\n show: (children: ReactNode, config: ModalConfiguration) => void;\n /**\n * Hides the visible modal.\n */\n hide: () => void;\n}\n\nconst ModalContext = createContext<ModalContextProps>({} as ModalContextProps);\n\nconst useModalContext = (): ModalContextProps => {\n return useContext(ModalContext);\n};\n\nexport { ModalContext, useModalContext };\n","import React, { ComponentPropsWithRef, FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Button } from '@/components/button';\nimport { stringToBoolean } from '@/utils';\nimport { useModalContext } from './modal-context';\n\nimport { ModalConfiguration } from './modal-config.model';\nimport './modal-dialog.scss';\n\nexport interface ModalDialogProps extends Omit<ComponentPropsWithRef<'div'>, 'title'> {\n /**\n * Modal configurations\n */\n configurations: ModalConfiguration;\n /**\n * Children content.\n */\n children?: ReactNode;\n}\n\nconst ModalDialog: FC<ModalDialogProps> = ({ configurations, children }) => {\n const { hide } = useModalContext();\n\n const containerClassNames = classNames('agora-modal-dialog-container', { 'dark-mode': stringToBoolean(configurations.darkMode ?? true) });\n\n return (\n <div className={containerClassNames}>\n <div className=\"agora-modal-dialog w-full h-full flex flex-col\">\n <div className=\"agora-popup-dialog-header h-128 flex flex-row items-start justify-end\">\n <Button\n className=\"mt-16 mr-24\"\n onClick={hide}\n appearance=\"link\"\n variant=\"neutral\"\n darkMode={stringToBoolean(configurations.darkMode ?? true)}\n hasIcon\n trailingIcon=\"agora-line-x\"\n trailingIconHover=\"agora-solid-x\"\n >\n {configurations.closeButtonLabel}\n </Button>\n </div>\n <div className=\"agora-popup-dialog-body mb-32 max-h-[calc(100%-160px)] overflow-hidden\">\n <div className=\"max-h-full overflow-auto container mx-auto\">{children}</div>\n </div>\n </div>\n </div>\n );\n};\n\nexport { ModalDialog };\n","import { Dialog, DialogElement } from '@/components/dialog';\nimport { BooleanProp } from '@/models/boolean-type';\nimport { stringToBoolean } from '@/utils';\nimport React, { FC, ReactNode, useCallback, useMemo, useRef, useState } from 'react';\nimport { ModalConfiguration } from './modal-config.model';\nimport { ModalContext, ModalContextProps } from './modal-context';\nimport { ModalDialog } from './modal-dialog';\n\nexport interface ModalProviderProps {\n /**\n * Allows the dialog to be closed by pressing Escape key.\n */\n dismissOnEscape?: BooleanProp;\n /**\n * Children content.\n */\n children: ReactNode;\n}\n\nconst ModalProvider: FC<ModalProviderProps> = ({ dismissOnEscape = true, children }) => {\n const dialogRef = useRef<DialogElement>(null);\n\n const [dialogChildren, setDialogChildren] = useState<ReactNode>();\n const [dialogConfig, setDialogConfig] = useState<ModalConfiguration>();\n\n const show = useCallback(\n (currentDialogChildren: ReactNode, config: ModalConfiguration) => {\n setDialogChildren(currentDialogChildren);\n setDialogConfig(config);\n dialogRef.current?.show();\n },\n [setDialogChildren, setDialogConfig]\n );\n\n const hide = useCallback((): void => {\n dialogRef.current?.hide();\n }, []);\n\n const contextValue = useMemo(\n () =>\n ({\n current: dialogRef.current,\n visibility: !!dialogRef.current?.visible,\n show,\n hide\n }) as ModalContextProps,\n [show, hide]\n );\n\n return (\n <ModalContext.Provider value={contextValue}>\n <Dialog\n ref={dialogRef}\n fullScreen\n dismissOnBackdropClick={false}\n dismissOnEscape={stringToBoolean(dismissOnEscape)}\n aria-label={dialogConfig?.['aria-label']}\n >\n {!!dialogConfig && <ModalDialog configurations={dialogConfig}>{dialogChildren}</ModalDialog>}\n </Dialog>\n {children}\n </ModalContext.Provider>\n );\n};\n\nexport { ModalProvider };\n","import { createContext, ReactNode, useContext } from 'react';\nimport { DialogElement } from '../dialog';\nimport { PopupConfiguration } from './popup-config.model';\n\nexport interface PopupContextProps {\n /**\n * The visible dialog element. If not visible the value is null.\n */\n current: DialogElement | null;\n /**\n * Tells if a dialog is visible or not.\n */\n visibility?: boolean;\n /**\n * Shows a new popup with the configurations provided.\n */\n show: (content: ReactNode, config: PopupConfiguration) => void;\n /**\n * Hides the visible popup.\n */\n hide: () => void;\n}\n\nconst PopupContext = createContext<PopupContextProps>({} as PopupContextProps);\n\nconst usePopupContext = (): PopupContextProps => {\n return useContext(PopupContext);\n};\n\nexport { PopupContext, usePopupContext };\n","import { Button } from '@/components/button';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, { FC, ReactNode, useEffect, useRef, useState } from 'react';\nimport { PopupConfiguration } from './popup-config.model';\nimport { usePopupContext } from './popup-context';\nimport './popup-dialog.scss';\nimport { useWindowSize } from '@/hooks';\n\nexport interface PopupDialogProps {\n /**\n * Popup configurations\n */\n configurations: PopupConfiguration;\n /**\n * Children content.\n */\n children?: ReactNode;\n}\n\nexport const PopupDialog: FC<PopupDialogProps> = ({ configurations, children }) => {\n const { height, width } = useWindowSize();\n\n const popupContainerRef = useRef<HTMLDivElement>(null);\n const popupHeaderRef = useRef<HTMLDivElement>(null);\n\n const [containerMaxHeight, setContainerMaxHeight] = useState('');\n const [maxHeight, setMaxHeight] = useState('');\n\n const { hide } = usePopupContext();\n\n const dialogClassNames = classNames('agora-popup-dialog max-h-full rounded-16 p-32', `agora-popup-dialog-${configurations.dimensions}`, {\n 'dark-mode': stringToBoolean(configurations.darkMode)\n });\n\n const titleClassNames = classNames('title mt-8 w-full line-clamp-6 text-xl-bold');\n\n useEffect(() => {\n const containerElem = popupContainerRef.current;\n const headerElem = popupHeaderRef.current;\n\n if (containerElem && headerElem) {\n let margins = 64 * 2;\n\n if (width >= 768) {\n margins = 128 * 2;\n }\n\n const containerHeight = height - margins;\n const { height: headerHeight } = (headerElem as HTMLElement).getBoundingClientRect();\n\n setContainerMaxHeight(`${containerHeight}px`);\n setMaxHeight(`${containerHeight - headerHeight - 16 - 64}px`);\n }\n }, [children, width, height]);\n\n return (\n <div className=\"absolute z-dialog max-h-full flex justify-center my-64 md:my-128 mx-32 md:mx-auto\">\n <div ref={popupContainerRef} className={dialogClassNames} style={{ maxHeight: containerMaxHeight ?? 'none' }}>\n <div ref={popupHeaderRef} className=\"agora-popup-dialog-header flex flex-row items-start gap-24 mb-16\">\n <div className={titleClassNames}>{configurations.title}</div>\n <Button\n onClick={hide}\n appearance=\"link\"\n variant=\"neutral\"\n iconOnly\n hasIcon\n trailingIcon=\"agora-line-x\"\n trailingIconHover=\"agora-solid-x\"\n aria-label={configurations.closeAriaLabel}\n darkMode={configurations.darkMode}\n ></Button>\n </div>\n <div style={{ maxHeight: maxHeight ?? 'none' }} className={`agora-popup-dialog-body overflow-y-auto`}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n","import React, { FC, ReactNode, useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Dialog, DialogElement } from '@/components/dialog';\nimport { BooleanProp } from '@/models/boolean-type';\nimport { stringToBoolean } from '@/utils';\nimport { PopupConfiguration } from './popup-config.model';\nimport { PopupContext, PopupContextProps } from './popup-context';\nimport { PopupDialog } from './popup-dialog';\n\nexport interface PopupProviderProps {\n /**\n * If not a fullscreen dialog, allows the user to dismiss the dialog by clicking in the backdrop\n */\n dismissOnBackdropClick?: BooleanProp;\n /**\n * Allows the dialog to be closed by pressing Escape key.\n */\n dismissOnEscape?: BooleanProp;\n /**\n * Children content.\n */\n children: ReactNode;\n}\n\nconst PopupProvider: FC<PopupProviderProps> = ({ dismissOnBackdropClick = true, dismissOnEscape = true, children }) => {\n const dialogRef = useRef<DialogElement>(null);\n\n const [dialogChildren, setDialogChildren] = useState<ReactNode>();\n const [dialogConfigs, setDialogConfigs] = useState<PopupConfiguration>();\n\n const show = useCallback(\n (currentDialogChildren: ReactNode, currentDialogConfigs: PopupConfiguration) => {\n setDialogChildren(currentDialogChildren);\n setDialogConfigs(currentDialogConfigs);\n dialogRef.current?.show();\n },\n [setDialogChildren, setDialogConfigs]\n );\n\n const hide = useCallback((): void => {\n dialogRef.current?.hide();\n }, []);\n\n const contextValue = useMemo(\n () =>\n ({\n current: dialogRef.current,\n visibility: !!dialogRef.current?.visible,\n show,\n hide\n }) as PopupContextProps,\n [show, hide]\n );\n\n return (\n <PopupContext.Provider value={contextValue}>\n <Dialog\n ref={dialogRef}\n fullScreen={false}\n dismissOnBackdropClick={stringToBoolean(dismissOnBackdropClick)}\n dismissOnEscape={stringToBoolean(dismissOnEscape)}\n aria-label={dialogConfigs?.['aria-label']}\n >\n {!!dialogConfigs && <PopupDialog configurations={dialogConfigs}>{dialogChildren}</PopupDialog>}\n </Dialog>\n {children}\n </PopupContext.Provider>\n );\n};\n\nexport { PopupProvider };\n","import React, { ComponentPropsWithRef, FC, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport './progress-bar.scss';\n\nexport interface ProgressBarProps extends ComponentPropsWithRef<'div'> {\n /**\n * The current value of the progress.\n */\n value?: number;\n /**\n * The maximum value of the progress.\n */\n max?: number;\n /**\n * The label text to display.\n */\n label?: string;\n /**\n * Whether to hide the label or not.\n */\n hideLabel?: BooleanProp;\n /**\n * Whether to hide the percentage value or not.\n */\n hidePercentageValue?: BooleanProp;\n /**\n * Whether the progress is current/active or not.\n */\n current?: BooleanProp;\n /**\n * Whether the progress has error or not.\n */\n hasError?: BooleanProp;\n}\n\nexport const ProgressBar: FC<ProgressBarProps> = ({\n value = 0,\n max = 0,\n className,\n label,\n hideLabel,\n hidePercentageValue,\n current,\n hasError,\n ...props\n}) => {\n const generatedId = useId();\n const propsClone = { ...props };\n propsClone.id = propsClone.id ?? generatedId;\n\n const progressPercentage = max !== 0 ? ((value / max) * 100).toFixed(0) : 0;\n\n const classes = classNames('agora-progress-bar', className, {\n 'progress-error': stringToBoolean(hasError),\n 'progress-complete': value > 0 && value === max,\n 'progress-empty': value === 0,\n 'progress-progress': stringToBoolean(current) && value < max,\n 'progress-hold': !stringToBoolean(current) && value < max\n });\n\n const percentageClasses = classNames('progress-bar-percentage', {\n 'sr-only': stringToBoolean(hidePercentageValue),\n 'not-sr-only': !stringToBoolean(hidePercentageValue)\n });\n\n return (\n <div className={classes} {...props}>\n {!stringToBoolean(hideLabel) && <label htmlFor={propsClone.id}>{label}</label>}\n <progress\n id={propsClone.id}\n className=\"progress-bar\"\n value={value}\n max={max}\n aria-valuetext={`${value}/${max}`}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n />\n <p className={percentageClasses} role=\"status\">\n {progressPercentage}%\n </p>\n </div>\n );\n};\n","import React, { Children, cloneElement, FC, HtmlHTMLAttributes, isValidElement, ReactElement, useMemo } from 'react';\n\nimport classNames from 'classnames';\n\nimport { ProgressBarProps } from '@/components/progress-bar';\n\nimport './progress-bar-group.scss';\n\nexport interface ProgressBarGroupProps extends HtmlHTMLAttributes<HTMLDivElement> {\n /**\n * The label text to display.\n */\n label?: string;\n /**\n * Whether to hide the label or not.\n */\n hideLabel?: boolean;\n /**\n * List of progress components to use as children of the group.\n */\n children?: ReactElement<ProgressBarProps> | Array<ReactElement<ProgressBarProps>>;\n /**\n * Whether to hide the percentage value or not.\n */\n hidePercentageValues?: boolean;\n /**\n * Whether to display the progress bars in a sequential order or not.\n */\n sequential?: boolean;\n}\n\nexport const ProgressBarGroup: FC<ProgressBarGroupProps> = ({\n label,\n hideLabel,\n hidePercentageValues,\n children,\n sequential,\n ...props\n}): ReactElement => {\n const progressBars = Children.toArray(children);\n\n const activeCurrent = useMemo(() => {\n let foundCurrent = false;\n let currentCount = 0;\n\n progressBars.forEach((p) => {\n if (isValidElement<ProgressBarProps>(p)) {\n if (p.props.current) {\n currentCount += 1;\n foundCurrent = true;\n }\n }\n });\n\n if (!foundCurrent) {\n return 0;\n }\n\n if (foundCurrent && currentCount === 1) {\n return progressBars.findIndex((p) => isValidElement<ProgressBarProps>(p) && p.props.current);\n }\n\n const firstNotCompletedIndex = progressBars.findIndex((p) => {\n if (isValidElement<ProgressBarProps>(p)) {\n const validatedValue = Math.max(0, Math.min(p.props.value ?? 0, p.props.max ?? 0));\n\n return validatedValue < (p.props.max ?? 0);\n }\n\n return false;\n });\n\n return firstNotCompletedIndex < 0 ? progressBars.length - 1 : firstNotCompletedIndex;\n }, [progressBars]);\n\n const sumMaxValues = useMemo(() => {\n let currentCount = 0;\n\n progressBars.forEach((p) => {\n if (isValidElement<ProgressBarProps>(p)) {\n currentCount += p.props.max ?? 0;\n }\n });\n\n return currentCount;\n }, [progressBars]);\n\n const sumValues = useMemo(() => {\n let currentCount = 0;\n\n progressBars.forEach((p) => {\n if (isValidElement<ProgressBarProps>(p)) {\n currentCount += p.props.value ?? 0;\n }\n });\n\n return currentCount;\n }, [progressBars]);\n\n // function to render progress bars\n const renderProgressBars = (child: ReactElement<ProgressBarProps>, index: number) => {\n const isCurrent = index === activeCurrent;\n let currentVal = child.props.value ?? 0;\n\n if (sequential) {\n currentVal = activeCurrent < index ? 0 : currentVal;\n }\n\n return cloneElement<ProgressBarProps>(child, {\n 'key': child.props.id ?? index,\n 'current': isCurrent,\n 'value': currentVal,\n 'aria-hidden': true\n });\n };\n\n // function to be used to calculate the progress value\n const progressValue = () => {\n let value = 0;\n Children.forEach(children, (child, index) => {\n if (isValidElement<ProgressBarProps>(child)) {\n if (child.props.value !== undefined && child.props.max !== undefined) {\n if (!sequential || index <= activeCurrent) {\n value += Math.min(child.props.value, child.props.max);\n }\n }\n }\n });\n return Math.round((value / sumMaxValues) * 100);\n };\n\n const percentageClasses = classNames('progress-bar-percentage', {\n 'sr-only': hidePercentageValues,\n 'not-sr-only': !hidePercentageValues\n });\n\n return (\n <div {...props}>\n {!hideLabel && <div aria-hidden>{label}</div>}\n <div\n className=\"progress-bar-group\"\n role=\"progressbar\"\n aria-valuenow={sumValues}\n aria-valuetext={`${sumValues}/${sumMaxValues}`}\n aria-valuemax={100}\n aria-label={label}\n >\n {Children.map(children, (child, index) => (isValidElement<ProgressBarProps>(child) ? renderProgressBars(child, index) : null))}\n </div>\n {!hidePercentageValues && (\n <div className={percentageClasses} role=\"status\">\n {progressValue()}%\n </div>\n )}\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nimport { Feedback } from '@/components/shared/feedback';\n\nimport './radio.scss';\n\nexport interface RadioButtonProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Sets the input in a error state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below input.\n */\n feedbackText?: ReactNode;\n /**\n * Child elements to render as custom label.\n */\n children?: ReactNode;\n /**\n * The flag to set if the radio button is in dark mode or light mode.\n */\n darkMode?: BooleanProp;\n}\n\nexport const InnerRadio: ForwardRefRenderFunction<HTMLInputElement, RadioButtonProps> = (\n { label, hasError, hideLabel, required = true, hasFeedback, feedbackState = 'info', feedbackText, darkMode, children, ...props },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const inputWrapper = classNames('agora-radio-button', {\n disabled: props.disabled,\n error: stringToBoolean(hasError),\n dark: stringToBoolean(darkMode)\n });\n\n return (\n <>\n <div hidden={propsClone.hidden} className={inputWrapper}>\n <input\n {...propsClone}\n className=\"inner-input\"\n type=\"radio\"\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n ref={ref}\n required={required}\n tabIndex={propsClone.disabled ? -1 : 0}\n disabled={propsClone.disabled}\n />\n\n <div className=\"radio-wrapper\">\n <span className=\"mark\" />\n\n {!hideLabel && (\n <label className=\"label\" htmlFor={propsClone.id}>\n <span>{children ?? label}</span>\n </label>\n )}\n </div>\n </div>\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <div className=\"agora-radio-button-feedback px-8\">\n <Feedback\n feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'}\n feedbackText={feedbackText}\n darkMode={stringToBoolean(darkMode)}\n />\n </div>\n )}\n </>\n );\n};\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(InnerRadio);\n","import React, { ChangeEvent, Children, cloneElement, FC, HtmlHTMLAttributes, isValidElement, ReactElement, ReactNode, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport { RadioButtonProps } from '@/components/radio';\nimport { Feedback } from '@/components/shared/feedback';\n\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\n\nexport interface RadioButtonGroupProps extends Omit<HtmlHTMLAttributes<HTMLFieldSetElement>, 'onChange'> {\n /**\n * Group legend.\n */\n legend?: ReactNode;\n /**\n * Group name\n */\n name?: string;\n /**\n * Sets the radio button in a error state. This also affects the feedback state.\n */\n hasError?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Feedback text displayed below radio-button.\n */\n feedbackText?: ReactNode;\n\n /**\n * List of radio button components to use as children of the group.\n */\n children?: ReactElement<RadioButtonProps> | Array<ReactElement<RadioButtonProps>>;\n /**\n * Event triggered whenever any of the radio buttons changes is own state.\n */\n onChange?: (evt: ChangeEvent<HTMLInputElement>) => void;\n}\nconst RadioButtonGroup: FC<RadioButtonGroupProps> = ({\n className,\n legend,\n hasError,\n hasFeedback,\n feedbackState = 'info',\n feedbackText,\n onChange,\n\n children,\n name,\n ...props\n}) => {\n const generatedName = useId();\n\n const innerOnChange = (evt: ChangeEvent<HTMLInputElement>) => {\n asyncTrigger(() => onChange?.(evt));\n };\n\n const containerClasses = classNames('agora-radio-button-group', className);\n\n const mappedRadioButtons = Children.map(children, (child) => {\n if (!isValidElement<RadioButtonProps>(child)) {\n return null;\n }\n\n return cloneElement<RadioButtonProps>(child, {\n onChange: innerOnChange,\n name: name ?? generatedName,\n hasError: stringToBoolean(hasError),\n hasFeedback: stringToBoolean(hasFeedback)\n } as RadioButtonProps);\n });\n\n return (\n <div className={containerClasses}>\n <fieldset {...props}>\n {legend && <legend className=\"text-[var(--color-primary-900)] text-m-medium mb-8\">{legend}</legend>}\n\n {mappedRadioButtons}\n </fieldset>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} />\n )}\n </div>\n );\n};\n\nexport { RadioButtonGroup };\n","import { SVGIconProps } from '@/models';\nimport { ComponentType, lazy, LazyExoticComponent } from 'react';\n\nexport const scribblesList: Record<string, LazyExoticComponent<ComponentType<SVGIconProps>>> = {\n // Wave\n 'agora-wave-left-l': lazy<ComponentType<SVGIconProps>>(() => import('./wave/wave-left-l')),\n 'agora-wave-right-l': lazy<ComponentType<SVGIconProps>>(() => import('./wave/wave-right-l')),\n 'agora-wave-right-m': lazy<ComponentType<SVGIconProps>>(() => import('./wave/wave-right-m')),\n\n // Detail\n 'agora-detail-fluid': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-fluid')),\n 'agora-detail-talk': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-talk')),\n 'agora-detail-chat': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-chat')),\n 'agora-detail-movement': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-movement')),\n 'agora-detail-attention': lazy<ComponentType<SVGIconProps>>(() => import('./detail/detail-attention')),\n\n // Arrow\n 'agora-arrow-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-right')),\n 'agora-arrow-curve-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-curve-right')),\n 'agora-arrow-down-left': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-down-left')),\n 'agora-arrow-loop': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-loop')),\n 'agora-arrow-down-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-down-right')),\n 'agora-arrow-up-right': lazy<ComponentType<SVGIconProps>>(() => import('./arrow/arrow-up-right')),\n\n // Bold\n 'agora-bold-arrow': lazy<ComponentType<SVGIconProps>>(() => import('./bold/bold-arrow')),\n 'agora-bold-line': lazy<ComponentType<SVGIconProps>>(() => import('./bold/bold-line')),\n\n // Line\n 'agora-line-straight': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-straight')),\n 'agora-line-zig-zag': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-zig-zag')),\n 'agora-line-zig': lazy<ComponentType<SVGIconProps>>(() => import('./line/line-zig')),\n\n // Circle\n 'agora-circle-right-l': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-right-l')),\n 'agora-circle-left-l': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-left-l')),\n 'agora-circle-right-xxl': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-right-xxl')),\n 'agora-circle-left-xxl': lazy<ComponentType<SVGIconProps>>(() => import('./circle/circle-left-xxl'))\n};\n\nexport const allScribbles = Object.keys(scribblesList);\n\nexport type ScribblesName = (typeof allScribbles)[number];\n\nexport const isBundledScribbles = (name: string) => {\n return !!allScribbles.find((i) => i === name);\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, ComponentType, FC, HTMLProps, LazyExoticComponent, Suspense, SVGProps } from 'react';\nimport { BooleanProp, SVGIconProps } from '@/models';\nimport { isBundledScribbles, scribblesList, ScribblesName } from './assets';\nimport './scribbles.scss';\nimport { stringToBoolean } from '@/utils';\n\nconst scribblesCache: Record<ScribblesName, LazyExoticComponent<ComponentType<SVGIconProps>>> = {};\n\nconst loadScribbles = (name: ScribblesName): LazyExoticComponent<ComponentType<SVGIconProps>> => {\n const cachedScribbles = scribblesCache[name];\n\n if (cachedScribbles) {\n return cachedScribbles;\n }\n\n const lazyScribble = scribblesList[name];\n\n scribblesCache[name] = lazyScribble;\n\n return lazyScribble;\n};\n\ntype SuperScribblesProps = SVGProps<SVGSVGElement> & HTMLProps<HTMLImageElement>;\n\nexport interface ScribblesProps extends SuperScribblesProps {\n /**\n * Scribbles name to be used.\n */\n name: ScribblesName;\n /**\n * Dark mode\n */\n darkMode?: BooleanProp;\n /**\n * Callback to run when scribble is loaded.\n */\n onScribblesLoad?: () => void;\n\n /**\n * Callback to run when scribble fails to load.\n */\n onScribblesError?: () => void;\n}\n\nexport const Scribbles: FC<ScribblesProps> = ({ name, darkMode, onScribblesLoad, onScribblesError, ...props }) => {\n const classes = classNames('agora-scribbles', props.className, name, {\n 'dark-mode': stringToBoolean(darkMode)\n });\n\n const onLoad = () => {\n onScribblesLoad?.();\n };\n\n const onError = () => {\n onScribblesError?.();\n };\n\n // CHECK IF HAS NAME AND IF EXISTS ON BUNDLE\n const isScribbles = name !== '' && isBundledScribbles(name);\n if (!isScribbles) {\n onError();\n return;\n }\n\n // LOAD IT\n const LazyScribble = loadScribbles(name);\n\n const fullProps = {\n ...props,\n className: classes,\n title: props.title ?? props.alt\n } as ComponentPropsWithoutRef<'svg'>;\n\n onLoad();\n\n return (\n LazyScribble && (\n <Suspense>\n <LazyScribble {...fullProps} />\n </Suspense>\n )\n );\n};\n","import React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction } from 'react';\nimport { BooleanProp } from '@/models';\nimport classNames from 'classnames';\nimport { Button } from '@/components/button';\nimport { stringToBoolean } from '@/utils';\n\nexport interface SearchPageProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Current page.\n */\n current?: BooleanProp;\n\n /**\n * Page number.\n */\n pageNumber?: number;\n}\n\nexport const InnerSearchPage: ForwardRefRenderFunction<HTMLDivElement, SearchPageProps> = (\n { className, current, pageNumber, ...props },\n ref\n) => {\n const containerClasses = classNames('search-page', className, {\n current: stringToBoolean(current)\n });\n\n return (\n <div {...props} ref={ref}>\n <Button\n className={containerClasses}\n appearance=\"link\"\n aria-label={pageNumber?.toString()}\n {...(stringToBoolean(current) ? { 'aria-current': 'page' } : {})}\n >\n {pageNumber}\n </Button>\n </div>\n );\n};\n\nexport const SearchPage = forwardRef<HTMLDivElement, SearchPageProps>(InnerSearchPage);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction } from 'react';\n\nexport interface SearchPaginationNumberOverlayProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Dots value.\n */\n value?: string;\n}\n\nexport const InnerSearchPaginationNumberOverlayProps: ForwardRefRenderFunction<HTMLDivElement, SearchPaginationNumberOverlayProps> = (\n { className, value, ...props },\n ref\n) => {\n const classes = classNames('nav-number-overlay', className);\n\n return (\n <div {...props} ref={ref} className={classes}>\n {value}\n </div>\n );\n};\n\nexport const SearchPaginationNumberOverlay = forwardRef<HTMLDivElement, SearchPaginationNumberOverlayProps>(\n InnerSearchPaginationNumberOverlayProps\n);\n","import React, { cloneElement, ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, useEffect, useMemo, useState } from 'react';\nimport { Button } from '@/components/button';\nimport { useWindowSize } from '@/hooks';\nimport { BooleanProp } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport { SearchPage, SearchPageProps } from './search-page';\nimport { SearchPaginationNumberOverlay } from './search-pagination-number-overlay';\nimport './search-pagination.scss';\n\nexport interface SearchPaginationProps extends Omit<ComponentPropsWithoutRef<'nav'>, 'onChange'> {\n /**\n * Define the total number of pages.\n */\n totalPages?: number;\n\n /**\n * The flag to hide previous page button.\n */\n hidePreviousPageButton?: BooleanProp;\n\n /**\n * The flag to hide next page button.\n */\n hideNextPageButton?: BooleanProp;\n\n /**\n * Define the number of visible page buttons at the beginning and end.\n */\n boundaryCount?: number;\n\n /**\n * Define the number of visible page buttons before and after the current page.\n */\n siblingCount?: number;\n\n /**\n * Search Pagination navigation alternative text.\n */\n label: string;\n\n /**\n * Next page button alternative text.\n */\n nextPageAriaLabel: string;\n\n /**\n * Previous page button alternative text.\n */\n previousPageAriaLabel: string;\n\n /**\n * Event triggered whenever any of the search pages changes is current state.\n */\n onChange?: (page: number) => void;\n}\n\nexport const InnerSearchPagination: ForwardRefRenderFunction<HTMLDivElement, SearchPaginationProps> = (\n {\n totalPages = 0,\n className,\n hidePreviousPageButton,\n hideNextPageButton,\n boundaryCount = 0,\n siblingCount = 0,\n label,\n nextPageAriaLabel,\n previousPageAriaLabel,\n onChange,\n ...props\n },\n ref\n) => {\n const { width } = useWindowSize();\n const [activePage, setActivePage] = useState(0);\n const navArrowsClasses = classNames('nav-arrows');\n\n // Mobile screen limitations\n if (width < 360) {\n boundaryCount = 1;\n siblingCount = 0;\n }\n\n useEffect(() => {\n asyncTrigger(() => onChange?.(activePage));\n }, [activePage]);\n\n const prev = () => {\n if (activePage > 0) {\n setActivePage((prevPage) => prevPage - 1);\n }\n };\n\n const next = () => {\n if (activePage < totalPages - 1) {\n setActivePage((prevPage) => prevPage + 1);\n }\n };\n\n const pages = Array.from({ length: totalPages }, (_, index) => {\n return <SearchPage key={index} pageNumber={index + 1} />;\n });\n\n const showAllPagesContent = useMemo(() => {\n return pages?.map((page, page_index) => {\n return cloneElement<SearchPageProps>(page, {\n ...page.props,\n onClick: () => setActivePage(page_index),\n current: stringToBoolean(activePage === page_index)\n } as SearchPageProps);\n });\n }, [className, totalPages, boundaryCount, siblingCount, activePage]);\n\n const paginationContent = useMemo(() => {\n // Calculate left and right sibling index and make sure they are within range index 0 and totalPages\n const leftSiblingIndex = Math.max(activePage - siblingCount, 0);\n const rightSiblingIndex = Math.min(activePage + siblingCount, totalPages);\n\n // Get visible pagination numbers\n const leftRange = pages.slice(0, boundaryCount);\n const middleRange = pages.slice(leftSiblingIndex, rightSiblingIndex + 1);\n const rightRange = pages.slice(totalPages - boundaryCount, totalPages);\n const visiblePages = [...new Set([...leftRange, ...middleRange, ...rightRange])];\n\n // Preview pagination dots if necessary\n const shouldShowLeftDots = leftSiblingIndex > boundaryCount;\n const shouldShowRightDots = rightSiblingIndex < totalPages - (boundaryCount + 1);\n\n return pages?.map((page, page_index) => {\n if (visiblePages.some((item) => page == item)) {\n return cloneElement<SearchPageProps>(page, {\n ...page.props,\n onClick: () => setActivePage(page_index),\n current: stringToBoolean(activePage === page_index)\n } as SearchPageProps);\n }\n\n if (shouldShowLeftDots && page_index == boundaryCount) {\n return <SearchPaginationNumberOverlay key=\"left-dots\" value=\"...\" />;\n }\n\n if (shouldShowRightDots && page_index == totalPages - boundaryCount - 1) {\n return <SearchPaginationNumberOverlay key=\"right-dots\" value=\"...\" />;\n }\n });\n }, [className, totalPages, boundaryCount, siblingCount, activePage]);\n\n return (\n <nav {...props} aria-label={label} className=\"agora-search-pagination\" ref={ref}>\n <Button\n onClick={prev}\n appearance=\"link\"\n hasIcon=\"true\"\n iconOnly=\"true\"\n leadingIcon=\"agora-solid-chevron-left\"\n leadingIconHover=\"agora-solid-chevron-left\"\n disabled={activePage === 0}\n className={`${navArrowsClasses} ${stringToBoolean(hidePreviousPageButton) ? 'hide-arrow' : 'show-arrow'}`}\n aria-label={previousPageAriaLabel}\n ></Button>\n <div className=\"nav-pages\">{boundaryCount === 0 && siblingCount === 0 ? showAllPagesContent : paginationContent}</div>\n <Button\n onClick={next}\n appearance=\"link\"\n hasIcon=\"true\"\n iconOnly=\"true\"\n trailingIcon=\"agora-solid-chevron-right\"\n trailingIconHover=\"agora-solid-chevron-right\"\n disabled={activePage === totalPages - 1}\n className={`${navArrowsClasses} ${stringToBoolean(hideNextPageButton) ? 'hide-arrow' : 'show-arrow'}`}\n aria-label={nextPageAriaLabel}\n ></Button>\n </nav>\n );\n};\n\nexport const SearchPagination = forwardRef<HTMLDivElement, SearchPaginationProps>(InnerSearchPagination);\n","import { RefObject } from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\n// Function to, when sidebar navigation, expand all items until level of current item.\nexport const openOnCurrentItem = (sidebarRef: RefObject<HTMLUListElement>, flat: BooleanProp) => {\n const agoraSidebar: HTMLUListElement | null = sidebarRef.current as unknown as HTMLUListElement;\n const treeItems = agoraSidebar?.querySelectorAll('[role=\"treeitem\"]') as unknown as HTMLAnchorElement[];\n const currentTreeItem = [...treeItems].find((e) => e.ariaCurrent === 'page');\n\n if (stringToBoolean(flat)) {\n currentTreeItem?.parentElement?.classList?.add('agora-sidebar-anchor-item-current');\n } else {\n let initialPrevItem;\n if (currentTreeItem?.closest('.agora-sidebar-content-item')?.previousElementSibling?.classList.contains('agora-sidebar-button-item')) {\n currentTreeItem?.parentElement?.classList.add('agora-sidebar-anchor-item-current');\n initialPrevItem = currentTreeItem?.closest('.agora-sidebar-content-item')?.previousElementSibling as HTMLElement;\n } else {\n currentTreeItem?.closest('.agora-link-wrapper')?.classList.add('agora-sidebar-anchor-item-current');\n initialPrevItem = currentTreeItem\n ?.closest('.agora-sidebar-content-item')\n ?.previousElementSibling?.querySelector('[role=\"treeitem\"]') as HTMLElement;\n }\n let elements: HTMLElement[] = [...[initialPrevItem]];\n while (initialPrevItem) {\n if (\n (initialPrevItem as HTMLElement)\n ?.closest('.agora-sidebar-content-item')\n ?.previousElementSibling?.classList.contains('agora-sidebar-button-item')\n ) {\n initialPrevItem = (initialPrevItem as HTMLElement)?.closest('.agora-sidebar-content-item')?.previousElementSibling;\n } else {\n initialPrevItem = (initialPrevItem as HTMLElement)\n ?.closest('.agora-sidebar-content-item')\n ?.previousElementSibling?.querySelector('[role=\"treeitem\"]') as HTMLElement;\n }\n\n if (initialPrevItem) {\n elements = [...elements, initialPrevItem as HTMLElement];\n }\n }\n elements = elements.reverse();\n\n elements.forEach((el: HTMLElement) => {\n if (el?.classList.contains('agora-sidebar-button-item') && !stringToBoolean(el?.ariaExpanded ?? '')) {\n el.setAttribute('data-custom-triggered-click', 'true');\n el.click();\n } else if (!stringToBoolean(el?.ariaExpanded ?? '')) {\n (el?.querySelector('.icon-wrapper') as HTMLElement)?.click();\n }\n });\n }\n};\n","import classNames from 'classnames';\nimport React, { FC, RefObject, useRef } from 'react';\nimport { Button } from '@/components/button';\nimport { Dialog, DialogElement } from '@/components/dialog';\nimport './sidebar-item-navigation-mobile.scss';\nimport { stringToBoolean } from '@/utils';\nimport { SidebarProps } from '@/components/sidebar';\nimport { openOnCurrentItem } from '../utils/openOnCurrentItem';\n\nexport const SidebarItemNavigationMobile: FC<SidebarProps & { sidebarRef: RefObject<HTMLUListElement> }> = ({\n children,\n darkMode,\n flat,\n sidebarMenuLabel,\n backButtonLabel,\n sidebarRef\n}) => {\n const refDialog = useRef<DialogElement>(null);\n const backButtonHandler = () => {\n refDialog.current?.hide();\n };\n const openButtonHandler = () => {\n refDialog.current?.show();\n if (sidebarRef.current) {\n // Assertion of tabIndex with/without defined aria-current\n const treeItems = (sidebarRef.current as HTMLElement).querySelectorAll('[role=\"treeitem\"]');\n const hasAriaCurrent = !!(sidebarRef.current as HTMLElement).querySelectorAll('[aria-current=\"page\"]');\n treeItems?.forEach((itemTree, idx) => {\n if (itemTree.hasAttribute('aria-current') && hasAriaCurrent) {\n itemTree.setAttribute('tabIndex', '0');\n } else if (!hasAriaCurrent && idx === 0) {\n itemTree.setAttribute('tabIndex', '0');\n } else {\n itemTree.setAttribute('tabIndex', '-1');\n }\n });\n openOnCurrentItem(sidebarRef, flat ?? 'false');\n }\n };\n\n const sidebarNavigationMobileClassName = classNames(\n 'agora-sidebar-navigation-mobile grid gap-x-32 xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12',\n {\n darkMode: stringToBoolean(darkMode)\n }\n );\n\n const sidebarItemNavigationMobileMenuClassName = classNames('agora-snm-menu', { darkMode: stringToBoolean(darkMode) });\n\n const sidebarItemNavigationMobileBackButtonClassName = classNames('agora-snm-back mb-16', { darkMode: stringToBoolean(darkMode) });\n\n const sidebarItemNavigationMobileDialogClassName = classNames('z-dialog absolute w-full h-full container', {\n 'bg-white': !stringToBoolean(darkMode),\n 'bg-[var(--color-primary-900)]': stringToBoolean(darkMode)\n });\n\n return (\n <div className={sidebarNavigationMobileClassName}>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-12\">\n <Button\n className={sidebarItemNavigationMobileMenuClassName}\n appearance=\"link\"\n variant=\"primary\"\n fullWidth\n hasIcon\n leadingIcon=\"agora-line-layers-menu\"\n leadingIconHover=\"agora-solid-layers-menu\"\n onClick={openButtonHandler}\n >\n {sidebarMenuLabel}\n </Button>\n <Dialog ref={refDialog} className=\"container\">\n <div className={sidebarItemNavigationMobileDialogClassName}>\n <div className=\"grid gap-x-32 xs:grid-cols-4 md:grid-cols-8 xl:grid-cols-12 h-full content-start\">\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-12\">\n <Button\n appearance=\"link\"\n variant=\"neutral\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-anchor\"\n leadingIconHover=\"agora-solid-arrow-left-anchor\"\n onClick={backButtonHandler}\n className={sidebarItemNavigationMobileBackButtonClassName}\n >\n {backButtonLabel}\n </Button>\n </div>\n <div className=\"xs:col-span-4 md:col-span-8 xl:col-span-12 overflow-auto\">{children}</div>\n </div>\n </div>\n </Dialog>\n </div>\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n Children,\n cloneElement,\n ComponentPropsWithoutRef,\n FC,\n isValidElement,\n ReactElement,\n ReactNode,\n useEffect,\n useId,\n useRef,\n useState\n} from 'react';\nimport { useWindowSize } from '@/hooks';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { SidebarVariantType } from './models/sidebar-variant.type';\nimport { SidebarItemProps } from './sidebar-item';\nimport { SidebarItemNavigationMobile } from './sidebar-item-navigation-mobile/sidebar-item-navigation-mobile';\nimport './sidebar.scss';\nimport { openOnCurrentItem } from './utils/openOnCurrentItem';\n\nexport interface SidebarProps extends ComponentPropsWithoutRef<'ul'> {\n /**\n * Whether the sidebar is for filtering data or for navigation\n */\n variant: SidebarVariantType;\n\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n\n /**\n * All item tree open. Non-collapsible.\n */\n flat?: BooleanProp;\n\n /**\n * Sidebar children content\n */\n children: ReactElement<SidebarItemProps> | Array<ReactElement<SidebarItemProps>>;\n\n /**\n * Sidebar mobile button menu label\n */\n sidebarMenuLabel?: ReactNode;\n\n /**\n * Back button label\n */\n backButtonLabel?: ReactNode;\n}\n\nexport const Sidebar: FC<SidebarProps> = ({\n className,\n children,\n flat = 'false',\n variant,\n darkMode,\n sidebarMenuLabel,\n backButtonLabel,\n ...props\n}) => {\n let newSidebarItem: ReactElement | Array<ReactElement | undefined> | undefined;\n let listSidebarItem: Array<ReactElement<SidebarItemProps>> = [];\n const generateId = useId();\n const sidebarRef = useRef(null);\n const { width } = useWindowSize();\n const isMobile = width < 768;\n const [trailingFilter, setTrailingFilter] = useState(false);\n const [leadingFilter, setLeadingFilter] = useState(false);\n\n const sidebarClassName = classNames('agora-sidebar', { darkMode: stringToBoolean(darkMode) }, className);\n\n if (variant !== 'navigation-tabs') {\n if (children) {\n if (!Array.isArray(children)) {\n [children].forEach((child) => listSidebarItem.push(child));\n } else {\n listSidebarItem = children;\n }\n }\n\n if (stringToBoolean(flat)) {\n newSidebarItem = listSidebarItem?.map((data, index) => {\n const key = `li-${index}-${generateId}`;\n return cloneElement(data, {\n flat: stringToBoolean(flat),\n variant: variant,\n key,\n darkMode: stringToBoolean(darkMode),\n className: `${trailingFilter ? 'trailed' : ''} ${leadingFilter ? 'leaded' : ''}`\n });\n });\n } else {\n newSidebarItem = listSidebarItem?.map((data, index) => {\n const key = `li-${index}-${generateId}`;\n return cloneElement(data, {\n variant: variant,\n key,\n darkMode: stringToBoolean(darkMode),\n className: `${trailingFilter ? 'trailed' : ''} ${leadingFilter ? 'leaded' : ''}`\n });\n });\n }\n }\n\n //When leave focus of sidebar, if current are collapsed and not visible, expand all item until level of current item\n const onBodyFocus = (event: Event) => {\n if (sidebarRef.current) {\n if ((sidebarRef.current as HTMLUListElement)?.contains(event.target as HTMLElement)) {\n (sidebarRef.current as HTMLUListElement)?.parentElement?.classList.add('focus');\n } else {\n (sidebarRef.current as HTMLUListElement)?.parentElement?.classList.remove('focus');\n openOnCurrentItem(sidebarRef, flat);\n }\n }\n };\n\n const onFilterBodyFocus = (event: Event) => {\n if ((event.target as unknown as HTMLElement).closest('.collapsed')) {\n ((event.target as unknown as HTMLElement).closest('.collapsed')?.previousElementSibling as HTMLElement)?.focus();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n useEffect(() => {\n if (variant === 'navigation' && !isMobile) {\n if (sidebarRef.current) {\n // Assertion of tabIndex with/without defined aria-current\n const treeItems = (sidebarRef.current as HTMLElement).querySelectorAll('[role=\"treeitem\"]');\n const hasAriaCurrent = !!(sidebarRef.current as HTMLElement).querySelectorAll('[aria-current=\"page\"]');\n treeItems?.forEach((itemTree, idx) => {\n if (itemTree.hasAttribute('aria-current') && hasAriaCurrent) {\n itemTree.setAttribute('tabIndex', '0');\n } else if (!hasAriaCurrent && idx === 0) {\n itemTree.setAttribute('tabIndex', '0');\n } else {\n itemTree.setAttribute('tabIndex', '-1');\n }\n });\n }\n openOnCurrentItem(sidebarRef, flat);\n\n const loadHandler = () => {\n openOnCurrentItem(sidebarRef, flat);\n };\n document.addEventListener('load', loadHandler);\n document.addEventListener('focusin', onBodyFocus);\n document.addEventListener('mousedown', onBodyFocus);\n\n return () => {\n document.removeEventListener('load', loadHandler);\n document.removeEventListener('focusin', onBodyFocus);\n document.removeEventListener('mousedown', onBodyFocus);\n };\n }\n\n if (variant === 'filter') {\n const checkLeading: boolean[] = [];\n const checkTrailing: boolean[] = [];\n if (sidebarRef.current) {\n const parsedChildren = Children.toArray(children);\n Children.forEach(parsedChildren, (element) => {\n if (!isValidElement(element)) {\n return;\n }\n const itemProps = element.props as SidebarItemProps;\n const foundedLeadingIcon = [itemProps.item].some((a) => !!a.collapsedIconLeading);\n checkLeading.push(foundedLeadingIcon);\n const foundedTrailingIcon = [itemProps.item].some((a) => !!a.collapsedIconTrailing);\n checkTrailing.push(foundedTrailingIcon);\n });\n\n if (checkLeading.every((l) => l === false)) {\n setLeadingFilter(false);\n } else if (checkLeading.every((l) => l === true)) {\n setLeadingFilter(false);\n } else if (checkLeading.some((k) => k)) {\n setLeadingFilter(true);\n }\n\n if (checkTrailing.every((t) => t === false)) {\n setTrailingFilter(false);\n } else if (checkTrailing.every((t) => t === true)) {\n setTrailingFilter(false);\n } else if (checkTrailing.some((j) => j)) {\n setTrailingFilter(true);\n }\n\n (sidebarRef.current as unknown as HTMLElement).addEventListener('focusin', onFilterBodyFocus);\n\n return () => {\n if (sidebarRef.current) {\n (sidebarRef.current as unknown as HTMLElement).removeEventListener('focusin', onFilterBodyFocus);\n }\n };\n }\n }\n }, [sidebarRef.current]);\n\n return (\n <>\n {(!isMobile || variant === 'filter' || variant === 'navigation-tabs') && (\n <ul ref={sidebarRef} className={sidebarClassName} {...props} {...(variant === 'navigation' ? { role: 'tree' } : undefined)}>\n {variant === 'navigation-tabs' ? <li className=\"agora-sidebar-tabs\">{children}</li> : newSidebarItem}\n </ul>\n )}\n {variant === 'navigation' && isMobile && (\n <SidebarItemNavigationMobile\n {...props}\n darkMode={darkMode}\n variant={variant}\n sidebarMenuLabel={sidebarMenuLabel}\n backButtonLabel={backButtonLabel}\n sidebarRef={sidebarRef}\n >\n <ul ref={sidebarRef} className={sidebarClassName} {...props} {...(variant === 'navigation' ? { role: 'tree' } : undefined)}>\n {newSidebarItem}\n </ul>\n </SidebarItemNavigationMobile>\n )}\n </>\n );\n};\n","import { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nexport const setInitialSidebarItem = (\n flat: BooleanProp,\n sidebarItemChildren: HTMLDivElement | HTMLUListElement | null,\n open: BooleanProp,\n ariaExpanded: BooleanProp\n): BooleanProp => {\n if (!sidebarItemChildren) {\n return stringToBoolean(open);\n }\n\n if (stringToBoolean(flat)) {\n sidebarItemChildren.style.maxHeight = '100vh';\n return true;\n } else if (stringToBoolean(open) && stringToBoolean(ariaExpanded)) {\n sidebarItemChildren.style.maxHeight = '100vh';\n return stringToBoolean(open);\n } else if (!stringToBoolean(open)) {\n sidebarItemChildren.style.maxHeight = '';\n return stringToBoolean(open);\n }\n return stringToBoolean(open);\n};\n","import { stringToBoolean } from '@/utils';\n\nexport const toggleSidebarItem = (sidebarItem: HTMLAnchorElement | HTMLButtonElement) => {\n if (!sidebarItem.ariaExpanded) {\n return false;\n }\n const sidebarItemExpanded = stringToBoolean(sidebarItem.ariaExpanded);\n sidebarItem.setAttribute('aria-expanded', (!sidebarItemExpanded).toString());\n};\n","import { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { SidebarVariantType } from '../models/sidebar-variant.type';\n\nexport const toggleSidebarItemChildren = (\n variant: SidebarVariantType,\n sidebarItemChildren: HTMLDivElement | HTMLUListElement | null\n): BooleanProp => {\n if (!sidebarItemChildren) {\n return false;\n }\n //If sidebar item children is collapsed then expand it.\n if (sidebarItemChildren.classList.contains('collapsed')) {\n sidebarItemChildren.classList.remove('collapsed');\n sidebarItemChildren.style.maxHeight = '100vh';\n return true;\n }\n // If sidebar item children is expanded then collapse it.\n else {\n sidebarItemChildren.classList.add('collapsed');\n sidebarItemChildren.style.maxHeight = '';\n if (variant === 'navigation') {\n const sidebarItemChildrenTreeItem = sidebarItemChildren.querySelectorAll('[role=\"treeitem\"]') as unknown as HTMLElement[];\n const sidebarItemChildrenTreeItemReversed = [...sidebarItemChildrenTreeItem].reverse();\n // Collapse or expande recursively\n sidebarItemChildrenTreeItemReversed.forEach((itemTree) => {\n if (!itemTree.ariaExpanded) {\n return false;\n }\n //Check if is possible to expand and if is a button or a link, to click on icon to expand/collapse.\n if (stringToBoolean(itemTree.ariaExpanded)) {\n if (itemTree.classList.contains('agora-sidebar-button-item')) {\n itemTree.setAttribute('data-custom-triggered-click', 'true');\n itemTree.click();\n } else {\n (itemTree.querySelector('.icon-wrapper') as HTMLElement)?.click();\n }\n }\n });\n }\n return false;\n }\n};\n","import { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { ButtonItemProps, LinkItemProps } from '../models';\n\nexport const setIconsExpandCollapsed = (item: ButtonItemProps | LinkItemProps, ariaExpanded: BooleanProp) => {\n return {\n leadingIcon: stringToBoolean(ariaExpanded) ? item.collapsedIconLeading : item.expandedIconLeading,\n leadingIconHover: stringToBoolean(ariaExpanded) ? item.collapsedIconHoverLeading : item.expandedIconHoverLeading,\n trailingIcon: stringToBoolean(ariaExpanded) ? item.collapsedIconTrailing : item.expandedIconTrailing,\n trailingIconHover: stringToBoolean(ariaExpanded) ? item.collapsedIconHoverTrailing : item.expandedIconHoverTrailing\n };\n};\n","import classNames from 'classnames';\nimport React, {\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Button } from '@/components/button';\nimport { ButtonItemProps, SidebarItemRef } from '../models';\nimport { SidebarItemProps } from '../sidebar-item';\nimport { setInitialSidebarItem } from '../utils/setInitialSidebarItem';\nimport { toggleSidebarItem } from '../utils/toggleSidebarItem';\nimport { toggleSidebarItemChildren } from '../utils/toggleSidebarItemChildren';\nimport { setIconsExpandCollapsed } from '../utils/setIconsExpandCollapsed';\n\nexport const InnerSidebarItemFilter: ForwardRefRenderFunction<SidebarItemRef, SidebarItemProps> = (\n { children, item, open = false, flat = false, darkMode },\n ref\n) => {\n const generateId = useId();\n const buttonItemRef = useRef<HTMLButtonElement>(null);\n const contentItemRef = useRef<HTMLDivElement>(null);\n\n const [ariaExpanded, setAriaExpanded] = useState<BooleanProp>(stringToBoolean(open));\n\n const buttonItemClassName = classNames('agora-sidebar-btn-item-filter');\n const contentItemClassName = classNames('agora-sidebar-content-item', {\n collapsed: !stringToBoolean(open) && !stringToBoolean(flat)\n });\n\n const toggleItemContent = () => {\n setAriaExpanded(toggleSidebarItemChildren('filter', contentItemRef.current));\n };\n\n const toggleItemExpand = () => {\n if (buttonItemRef.current) {\n toggleSidebarItem(buttonItemRef.current);\n toggleItemContent();\n }\n };\n\n const onMouseClickHandler = (evt: MouseEvent<HTMLButtonElement>) => {\n toggleItemExpand();\n (item as ButtonItemProps).onClick?.(evt);\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n const code = event.code;\n const shiftKey = event.shiftKey;\n const navigationTab = () => {\n if (shiftKey) {\n const prevButtonSidebarItem =\n event.currentTarget.parentElement?.previousElementSibling?.querySelector('.agora-sidebar-btn-item-filter');\n if (\n (prevButtonSidebarItem as unknown as HTMLButtonElement)?.ariaExpanded &&\n (prevButtonSidebarItem as unknown as HTMLButtonElement).ariaExpanded !== 'true' &&\n prevButtonSidebarItem\n ) {\n (prevButtonSidebarItem as unknown as HTMLButtonElement).focus();\n event.stopPropagation();\n event.preventDefault();\n }\n } else {\n const nextButtonSidebarItem =\n event.currentTarget.parentElement?.nextElementSibling?.querySelector('.agora-sidebar-btn-item-filter');\n if (event.currentTarget.ariaExpanded !== 'true' && nextButtonSidebarItem) {\n (nextButtonSidebarItem as unknown as HTMLButtonElement).focus();\n event.stopPropagation();\n event.preventDefault();\n } else if (event.currentTarget.ariaExpanded !== 'true') {\n const tabElements = Array.from(\n document\n // Get all elements that can be focusable\n .querySelectorAll(\n 'a:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"]), details:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])'\n )\n );\n // find the current index in the tab list of the currently focused element\n const currentIndex = tabElements.findIndex((e) => e === document.activeElement);\n // get the next element in the list (\"%\" will loop the index around to 0)\n let nextIndex = (currentIndex + 1) % tabElements.length;\n // If inside sidebar (knowing is hidden because aria expand is false)\n while (tabElements[nextIndex].closest('.agora-sidebar')) {\n nextIndex += 1;\n }\n (tabElements[nextIndex] as unknown as HTMLElement).focus();\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n\n if (code === 'Tab') {\n navigationTab();\n }\n };\n\n useEffect(() => {\n setAriaExpanded(setInitialSidebarItem(flat, contentItemRef.current, open, ariaExpanded));\n }, []);\n\n const icons = setIconsExpandCollapsed(item, ariaExpanded);\n\n const newItem = { ...item };\n delete newItem.collapsedIconLeading;\n delete newItem.collapsedIconHoverLeading;\n delete newItem.expandedIconLeading;\n delete newItem.expandedIconHoverLeading;\n delete newItem.collapsedIconTrailing;\n delete newItem.collapsedIconHoverTrailing;\n delete newItem.expandedIconTrailing;\n delete newItem.expandedIconHoverTrailing;\n\n useImperativeHandle(\n ref,\n () => {\n return {\n current: buttonItemRef.current,\n isExpanded: ariaExpanded\n } as SidebarItemRef;\n },\n [buttonItemRef.current, ariaExpanded]\n );\n\n return (\n <>\n {!stringToBoolean(flat) && (\n <Button\n appearance={'link'}\n variant={stringToBoolean(darkMode) ? 'neutral' : 'primary'}\n className={buttonItemClassName}\n fullWidth\n {...icons}\n {...(newItem as ButtonItemProps)}\n darkMode={darkMode}\n aria-expanded={ariaExpanded}\n aria-controls={`aria-controls-sidebar-${generateId}-id`}\n onClick={onMouseClickHandler}\n onKeyDown={handleOnKeyDown}\n ref={buttonItemRef}\n />\n )}\n\n {stringToBoolean(flat) && <div className=\"p-16 agora-sidebar-flat-item\">{item.children}</div>}\n\n <div className={contentItemClassName} id={`aria-controls-sidebar-${generateId}-id`} ref={contentItemRef}>\n {children}\n </div>\n </>\n );\n};\nexport const SidebarItemFilter = forwardRef<SidebarItemRef, SidebarItemProps>(InnerSidebarItemFilter);\n","import { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\n\nexport const getParentTreeItem = (itemTree: HTMLElement, expand: BooleanProp) => {\n if (itemTree.closest('.agora-sidebar-item')?.parentElement?.classList.contains('.agora-sidebar') && !expand) {\n return itemTree;\n }\n const nodeContent: HTMLElement | null = itemTree.closest('.agora-sidebar-content-item') as HTMLElement;\n const node: HTMLElement | null = nodeContent?.previousSibling as HTMLElement;\n if (node && nodeContent) {\n if (nodeContent.classList.contains('collapsed')) {\n return false;\n }\n if (stringToBoolean(expand)) {\n nodeContent.classList.remove('collapsed');\n nodeContent.style.maxHeight = '100vh';\n }\n\n return node.querySelector('[role=\"treeitem\"]') ?? node;\n }\n if (itemTree.closest('.agora-sidebar') && !stringToBoolean(expand)) {\n return itemTree;\n }\n return false;\n};\n","import { KeyboardEvent, MouseEvent } from 'react';\nimport { getParentTreeItem } from './getParentTreeItem';\n\nexport const toggleParentItemExpand = (itemTree: HTMLElement) => {\n let parentNode = getParentTreeItem(itemTree, true);\n while (parentNode) {\n parentNode.setAttribute('aria-expanded', 'true');\n parentNode = getParentTreeItem(parentNode as HTMLElement, true);\n }\n};\n\nexport const navigationSidebarItemHandler = (\n evt:\n | MouseEvent<HTMLAnchorElement | HTMLButtonElement | HTMLDivElement>\n | KeyboardEvent<HTMLAnchorElement | HTMLButtonElement | HTMLDivElement>\n) => {\n const sidebar: HTMLUListElement | null = evt.currentTarget.closest('.agora-sidebar');\n const treeItems = sidebar?.querySelectorAll('[role=\"treeitem\"]') as unknown as HTMLAnchorElement[];\n treeItems?.forEach((itemTree: HTMLAnchorElement) => {\n if (itemTree?.href === (evt.currentTarget as HTMLAnchorElement).href && itemTree.parentElement) {\n itemTree.closest('.agora-link-wrapper')?.classList.add('agora-sidebar-anchor-item-current');\n itemTree.setAttribute('aria-current', 'page');\n toggleParentItemExpand(itemTree);\n itemTree.setAttribute('tabIndex', '0');\n } else if (itemTree.parentElement) {\n itemTree.closest('.agora-link-wrapper')?.classList.remove('agora-sidebar-anchor-item-current');\n itemTree.removeAttribute('aria-current');\n itemTree.setAttribute('tabIndex', '-1');\n }\n });\n};\n","import { stringToBoolean } from '@/utils';\nimport { TreeItemsType } from './treeItemsType';\n\nexport const toggleExpandAllSiblingItems = (itemTree: TreeItemsType) => {\n const contentParent = itemTree.closest('.agora-sidebar-content-item') ?? itemTree.closest('.agora-sidebar');\n const directChildrenItems = [\n ...(contentParent?.querySelectorAll('&>.agora-sidebar-item>*>[role=\"treeitem\"]') as unknown as HTMLAnchorElement[]),\n ...(contentParent?.querySelectorAll('&>*>[role=\"treeitem\"]') as unknown as HTMLButtonElement[])\n ];\n directChildrenItems.forEach((adsItem) => {\n if (adsItem.ariaExpanded === undefined || adsItem.ariaExpanded === null) {\n return;\n }\n if (!stringToBoolean(adsItem.ariaExpanded) && (adsItem as HTMLAnchorElement).href) {\n (adsItem.querySelector('.icon-wrapper') as HTMLElement)?.click();\n } else if (!stringToBoolean(adsItem.ariaExpanded)) {\n (adsItem as HTMLButtonElement)?.setAttribute('data-custom-triggered-click', 'true');\n (adsItem as HTMLButtonElement)?.click();\n }\n });\n};\n","import { KeyboardEvent } from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { getParentTreeItem } from './getParentTreeItem';\nimport { navigationSidebarItemHandler } from './navigationSidebarItemHandler';\nimport { toggleExpandAllSiblingItems } from './toggleExpandAllSiblingItems';\nimport { TreeItemsArray, TreeItemsType } from './treeItemsType';\n\nexport const navigationEnterSpace = (event: KeyboardEvent<TreeItemsType>) => {\n if (event.currentTarget.classList.contains('agora-sidebar-button-item')) {\n return;\n }\n navigationSidebarItemHandler(event);\n event.stopPropagation();\n event.preventDefault();\n};\n\nexport const getAllVisibleItems = (treeItems: TreeItemsArray) => {\n const allVisibleItems = [];\n for (const item of treeItems) {\n const parentNode = getParentTreeItem(item, false);\n if (parentNode) {\n allVisibleItems.push(item);\n }\n }\n return allVisibleItems;\n};\n\nexport const navigationUp = (event: KeyboardEvent<TreeItemsType>, treeItems: TreeItemsArray) => {\n let prevItem;\n\n const allVisibleItems = getAllVisibleItems(treeItems);\n\n for (const visibleItem of allVisibleItems) {\n if (visibleItem === event.currentTarget) {\n break;\n }\n prevItem = visibleItem;\n }\n\n if (prevItem) {\n prevItem.focus();\n } else {\n allVisibleItems[allVisibleItems.length - 1].focus();\n }\n\n event.stopPropagation();\n event.preventDefault();\n};\n\nconst navigateAndFocusUntilCurrent = (event: KeyboardEvent<TreeItemsType>, treeItems: TreeItemsArray) => {\n let nextItem;\n\n const allVisibleItems = getAllVisibleItems(treeItems);\n\n for (let i = allVisibleItems.length - 1; i >= 0; i--) {\n if (allVisibleItems[i] === event.currentTarget) {\n break;\n }\n nextItem = allVisibleItems[i];\n }\n if (nextItem) {\n nextItem.focus();\n } else {\n allVisibleItems[0].focus();\n }\n};\n\nexport const navigationDown = (event: KeyboardEvent<TreeItemsType>, treeItems: TreeItemsArray) => {\n navigateAndFocusUntilCurrent(event, treeItems);\n event.stopPropagation();\n event.preventDefault();\n};\n\nexport const navigationRight = (event: KeyboardEvent<TreeItemsType>, treeItems: TreeItemsArray) => {\n navigateAndFocusUntilCurrent(event, treeItems);\n};\n\nexport const navigationLeft = (event: KeyboardEvent<TreeItemsType>) => {\n const prevItem = event.currentTarget?.closest('.agora-sidebar-content-item')?.previousElementSibling;\n if (prevItem?.classList.contains('agora-sidebar-button-item')) {\n (prevItem as unknown as HTMLButtonElement)?.focus();\n } else {\n (prevItem?.querySelector('[role=\"treeitem\"]') as unknown as HTMLAnchorElement)?.focus();\n }\n};\n\nexport const navigationTab = (treeItems: TreeItemsArray) => {\n const currentTreeItem = [...treeItems].find((e) => e.ariaCurrent === 'page');\n if (currentTreeItem?.closest('.agora-sidebar-content-item')?.classList.contains('collapsed')) {\n let initialPrevItem;\n if (currentTreeItem?.closest('.agora-sidebar-content-item')?.previousElementSibling?.classList.contains('agora-sidebar-button-item')) {\n currentTreeItem?.parentElement?.classList.add('agora-sidebar-anchor-item-current');\n initialPrevItem = currentTreeItem?.closest('.agora-sidebar-content-item')?.previousElementSibling as HTMLElement;\n } else {\n initialPrevItem = currentTreeItem\n ?.closest('.agora-sidebar-content-item')\n ?.previousElementSibling?.querySelector('[role=\"treeitem\"]') as HTMLElement;\n }\n let elements: HTMLElement[] = [...[initialPrevItem]];\n while (initialPrevItem) {\n initialPrevItem = initialPrevItem\n ?.closest('.agora-sidebar-content-item')\n ?.previousElementSibling?.querySelector('[role=\"treeitem\"]') as HTMLElement;\n if (initialPrevItem) {\n elements = [...elements, initialPrevItem];\n }\n }\n elements = elements.reverse();\n\n elements.forEach((el: HTMLElement) => {\n if (!el?.ariaExpanded) {\n return;\n }\n if (el.classList.contains('agora-sidebar-button-item') && !stringToBoolean(el.ariaExpanded)) {\n el.setAttribute('data-custom-triggered-click', 'true');\n el.click();\n } else if (!stringToBoolean(el.ariaExpanded)) {\n (el.querySelector('.icon-wrapper') as HTMLElement)?.click();\n }\n });\n }\n};\n\nexport const setFocusByFirstCharacter = (itemTree: TreeItemsType, treeItems: TreeItemsArray, char: string) => {\n const allVisibleItems = getAllVisibleItems(treeItems);\n\n char = char.toLowerCase();\n\n allVisibleItems.forEach((ti: HTMLAnchorElement | HTMLButtonElement | HTMLDivElement) => {\n if (char === ti.textContent?.trim()[0].toLocaleLowerCase()) {\n ti.focus();\n }\n });\n\n let i,\n ti,\n index = -1;\n const start = allVisibleItems.indexOf(itemTree) + 1 >= allVisibleItems.length ? 0 : allVisibleItems.indexOf(itemTree) + 1;\n\n for (i = start; i < allVisibleItems.length; i++) {\n ti = allVisibleItems[i];\n if (char === ti.textContent?.trim()[0].toLowerCase()) {\n index = i;\n break;\n }\n }\n\n if (index === -1) {\n for (i = 0; i < start; i++) {\n ti = allVisibleItems[i];\n if (char === ti.textContent?.trim()[0].toLowerCase()) {\n index = i;\n break;\n }\n }\n }\n\n if (index > -1) {\n allVisibleItems[index].focus();\n }\n};\n\nexport const defaultPrintableCharacters = (event: KeyboardEvent<TreeItemsType>, flat: BooleanProp, treeItems: TreeItemsArray) => {\n if (event.key == '*' && !stringToBoolean(flat)) {\n toggleExpandAllSiblingItems(event.currentTarget);\n event.stopPropagation();\n event.preventDefault();\n } else {\n setFocusByFirstCharacter(event.currentTarget, treeItems, event.key);\n }\n};\n\nexport const navigationHome = (event: KeyboardEvent<TreeItemsType>, treeItems: TreeItemsArray) => {\n if (treeItems) {\n treeItems[0].focus();\n }\n event.stopPropagation();\n event.preventDefault();\n};\n\nexport const navigationEnd = (event: KeyboardEvent<TreeItemsType>, treeItems: TreeItemsArray) => {\n if (treeItems) {\n const allVisibleItems = getAllVisibleItems(treeItems);\n allVisibleItems[allVisibleItems.length - 1].focus();\n }\n event.stopPropagation();\n event.preventDefault();\n};\n","import classNames from 'classnames';\nimport React, { cloneElement, FC, HTMLProps, KeyboardEvent, MouseEvent, ReactElement, useEffect, useId, useRef, useState } from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Button } from '@/components/button';\nimport { Icon } from '@/components/icon';\nimport { LinkWrapper } from '@/components/link-wrapper';\nimport { SidebarItemProps } from '../sidebar-item';\nimport {\n defaultPrintableCharacters,\n navigationDown,\n navigationEnd,\n navigationEnterSpace,\n navigationHome,\n navigationLeft,\n navigationRight,\n navigationTab,\n navigationUp\n} from '../utils/keyboardSidebarItemHandlers';\nimport { navigationSidebarItemHandler } from '../utils/navigationSidebarItemHandler';\nimport { setIconsExpandCollapsed } from '../utils/setIconsExpandCollapsed';\nimport { setInitialSidebarItem } from '../utils/setInitialSidebarItem';\nimport { toggleSidebarItem } from '../utils/toggleSidebarItem';\nimport { toggleSidebarItemChildren } from '../utils/toggleSidebarItemChildren';\nexport const SidebarItemNavigation: FC<SidebarItemProps> = ({ children, variant, item, open = false, flat = false, darkMode }) => {\n const generateId = useId();\n\n let newSidebarItem: ReactElement | Array<ReactElement | undefined> | undefined;\n let newSidebarItemChildren: ReactElement | Array<ReactElement | undefined> | undefined;\n let listInnerSidebarItem: Array<ReactElement> = [];\n let listSidebarItemChildren: Array<ReactElement> = [];\n\n const [ariaExpanded, setAriaExpanded] = useState<BooleanProp>(stringToBoolean(open));\n const [showIconHover, setShowIconHover] = useState<boolean>(false);\n\n const contentItemClassName = classNames('agora-sidebar-content-item', {\n collapsed: !stringToBoolean(open) && !stringToBoolean(flat)\n });\n\n const anchorItemRef = useRef<HTMLAnchorElement>(null);\n const buttonItemRef = useRef<HTMLButtonElement>(null);\n const contentItemRef = useRef<HTMLUListElement>(null);\n\n const toggleItemContent = () => {\n setAriaExpanded(toggleSidebarItemChildren('navigation', contentItemRef.current));\n };\n\n const toggleItemExpand = () => {\n if (anchorItemRef.current) {\n toggleSidebarItem(anchorItemRef.current);\n toggleItemContent();\n }\n if (buttonItemRef.current) {\n toggleSidebarItem(buttonItemRef.current);\n toggleItemContent();\n }\n };\n\n const handleAnchorClick = (evt: MouseEvent<HTMLAnchorElement>, data: HTMLProps<HTMLAnchorElement>) => {\n navigationSidebarItemHandler(evt);\n data.onClick?.(evt);\n };\n\n const handleOnKeyUp = (event: KeyboardEvent<HTMLAnchorElement | HTMLButtonElement | HTMLDivElement>) => {\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n const agoraSidebar: HTMLUListElement | null = event.currentTarget.closest('.agora-sidebar');\n const treeItems = agoraSidebar?.querySelectorAll('[role=\"treeitem\"]') as unknown as\n | HTMLAnchorElement[]\n | HTMLButtonElement[]\n | HTMLDivElement[];\n const isPrintableCharacter = (str: string) => {\n return str.length === 1 && RegExp(/\\S/).exec(str);\n };\n\n const handleRightArrow = () => {\n if (event.currentTarget.getAttribute('aria-expanded') === 'true' && !stringToBoolean(flat)) {\n navigationRight(event, treeItems);\n } else if (!stringToBoolean(flat)) {\n toggleItemExpand();\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n const handleLeftArrow = () => {\n if (event.currentTarget.getAttribute('aria-expanded') === 'true' && !stringToBoolean(flat)) {\n toggleItemExpand();\n } else if (!stringToBoolean(flat)) {\n navigationLeft(event);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n if (event.shiftKey) {\n if (event.code == 'SPACE' || event.code == 'RETURN') {\n event.stopPropagation();\n } else if (isPrintableCharacter(event.key)) {\n defaultPrintableCharacters(event, flat, treeItems);\n }\n } else {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n navigationEnterSpace(event);\n break;\n\n case 'Up':\n case 'ArrowUp': {\n navigationUp(event, treeItems);\n break;\n }\n\n case 'Down':\n case 'ArrowDown': {\n navigationDown(event, treeItems);\n break;\n }\n\n case 'Right':\n case 'ArrowRight':\n handleRightArrow();\n break;\n\n case 'Left':\n case 'ArrowLeft':\n handleLeftArrow();\n break;\n\n case 'Home':\n navigationHome(event, treeItems);\n break;\n\n case 'End': {\n navigationEnd(event, treeItems);\n break;\n }\n case 'Tab': {\n navigationTab(treeItems);\n break;\n }\n\n default:\n if (isPrintableCharacter(event.key)) {\n defaultPrintableCharacters(event, flat, treeItems);\n }\n break;\n }\n }\n };\n const handleOnKeyDown = (event: KeyboardEvent<HTMLAnchorElement | HTMLButtonElement | HTMLDivElement>) => {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n case 'Up':\n case 'ArrowUp':\n case 'Down':\n case 'ArrowDown':\n case 'Right':\n case 'ArrowRight':\n case 'Left':\n case 'ArrowLeft':\n case 'Home':\n case 'End':\n event.stopPropagation();\n event.preventDefault();\n\n break;\n }\n };\n\n const handleClickIcon = (event: MouseEvent<HTMLElement | HTMLButtonElement>, data?: HTMLProps<HTMLElement | HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n toggleItemExpand();\n data?.onClick?.(event);\n };\n\n const handleMouseEnterIcon = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setShowIconHover(true);\n };\n\n const handleMouseLeaveIcon = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setShowIconHover(false);\n };\n\n const handleMouseDown = (event: MouseEvent<HTMLElement | HTMLButtonElement>, data?: HTMLProps<HTMLElement | HTMLButtonElement>) => {\n event.preventDefault();\n data?.onMouseDown?.(event);\n };\n\n if (children) {\n if (!Array.isArray(children)) {\n [children].forEach((child) => listSidebarItemChildren.push(child as ReactElement));\n } else {\n listSidebarItemChildren = children as ReactElement[];\n }\n }\n if (item.children) {\n if (!Array.isArray(item.children)) {\n [item.children].forEach((child) => listInnerSidebarItem.push(child as ReactElement));\n } else {\n listInnerSidebarItem = item.children as ReactElement[];\n }\n }\n\n // Used to wrap on LinkWrapper if has link\n let isLinkedSidebarItem = false;\n const getFinalFlat = (elements: ReactElement[], childData: ReactElement, key: string) => {\n let final;\n for (let e = 0; e < elements.length; e++) {\n if (e === 0) {\n final = cloneElement(elements[0], {\n children: childData,\n key\n });\n } else if (e > 0) {\n if (final) {\n final = cloneElement(elements[e], { children: final, key });\n }\n }\n }\n return final;\n };\n const getFlatNotDirectAnchor = (data: ReactElement, ariaOwns: string, key: string) => {\n // Not a direct anchor\n let childData: ReactElement | null = data;\n let elements: ReactElement[] = [];\n\n while (childData !== null) {\n if ((childData.props as HTMLProps<ReactElement>)?.children) {\n if ((childData.props as HTMLProps<ReactElement>).href) {\n // Children has href\n isLinkedSidebarItem = true;\n childData = cloneElement(childData, {\n 'role': 'treeitem',\n 'aria-expanded': ariaExpanded,\n 'aria-owns': ariaOwns,\n key,\n 'className':\n 'agora-anchor agora-sidebar-anchor-item inline-flex [&>*]:inline-flex items-center !justify-start [&>.children-wrapper]:w-full',\n 'ref': anchorItemRef\n });\n\n elements = elements.reverse();\n const final = getFinalFlat(elements, childData, key);\n\n childData = null;\n return final;\n } else {\n // This childData not has href, search next children\n elements = [...elements, childData];\n childData = (childData.props as HTMLProps<ReactElement>).children as ReactElement;\n }\n } else {\n childData = null;\n }\n }\n\n // Not href found\n return cloneElement(data, {\n key,\n className:\n 'agora-anchor agora-sidebar-anchor-item inline-flex [&>*]:inline-flex items-center !justify-start [&>.children-wrapper]:w-full'\n });\n };\n\n const getFlatSidebarItem = () => {\n return listInnerSidebarItem?.map((data, index) => {\n const key = `item-${index}-${generateId}`;\n const ariaOwns = `treeitem-${generateId}`;\n if (!(data.props as HTMLProps<ReactElement>).href) {\n return getFlatNotDirectAnchor(data, ariaOwns, key);\n } else {\n // Direct anchor\n isLinkedSidebarItem = true;\n return cloneElement(data, {\n 'onClick': (event: MouseEvent<HTMLAnchorElement>) => handleAnchorClick(event, data.props as HTMLProps<HTMLAnchorElement>),\n 'onKeyUp': handleOnKeyUp,\n 'onKeyDown': handleOnKeyDown,\n 'onMouseDown': (event: MouseEvent<HTMLAnchorElement>) => handleMouseDown(event, data.props as HTMLProps<HTMLAnchorElement>),\n 'role': 'treeitem',\n 'aria-expanded': ariaExpanded,\n 'aria-owns': ariaOwns,\n 'children': <span className=\"children-wrapper\">{(data.props as HTMLProps<HTMLElement>).children}</span>,\n key,\n 'className':\n 'agora-anchor agora-sidebar-anchor-item inline-flex [&>*]:inline-flex items-center !justify-start [&>.children-wrapper]:w-full',\n 'ref': anchorItemRef\n });\n }\n });\n };\n\n const anchorIconWrapper = (\n icons: {\n leadingIcon: string | undefined;\n leadingIconHover: string | undefined;\n trailingIcon: string | undefined;\n trailingIconHover: string | undefined;\n },\n data: ReactElement\n ) => {\n return (\n <>\n {(icons.leadingIcon || icons.leadingIconHover) && (\n <span className=\"icon-wrapper mr-8 justify-start\" role=\"none\" onClick={handleClickIcon}>\n {icons.leadingIcon && (\n <Icon name={icons.leadingIcon} dimensions=\"m\" aria-hidden {...(showIconHover ? { style: { display: 'none' } } : '')} />\n )}\n\n {icons.leadingIconHover && (\n <Icon name={icons.leadingIconHover} dimensions=\"m\" aria-hidden {...(showIconHover ? '' : { style: { display: 'none' } })} />\n )}\n </span>\n )}\n <span\n className={`data-children-wrapper ${icons.leadingIcon || icons.leadingIconHover ? '' : 'pl-[44px]'} ${icons.trailingIcon || icons.trailingIconHover ? '' : 'pr-[44px]'}`}\n >\n {...[(data.props as HTMLProps<HTMLAnchorElement>).children]}\n </span>\n {(icons.trailingIcon || icons.trailingIconHover) && (\n <span className=\"icon-wrapper ml-auto justify-end\" role=\"none\" onClick={handleClickIcon}>\n {icons.trailingIcon && (\n <Icon name={icons.trailingIcon} dimensions=\"m\" aria-hidden {...(showIconHover ? { style: { display: 'none' } } : '')} />\n )}\n {icons.trailingIconHover && (\n <Icon name={icons.trailingIconHover} dimensions=\"m\" aria-hidden {...(showIconHover ? '' : { style: { display: 'none' } })} />\n )}\n </span>\n )}\n </>\n );\n };\n\n const cloneAnchorElement = (data: ReactElement, ariaOwns: string, key: string, dataChildren: ReactElement) => {\n return cloneElement(data, {\n 'onClick': (event: MouseEvent<HTMLAnchorElement>) => handleAnchorClick(event, data.props as HTMLProps<HTMLAnchorElement>),\n 'onKeyUp': handleOnKeyUp,\n 'onKeyDown': handleOnKeyDown,\n 'onMouseDown': (event: MouseEvent<HTMLAnchorElement>) => handleMouseDown(event, data.props as HTMLProps<HTMLAnchorElement>),\n 'onMouseEnter': handleMouseEnterIcon,\n 'onMouseLeave': handleMouseLeaveIcon,\n 'role': 'treeitem',\n 'aria-expanded': ariaExpanded,\n 'aria-owns': ariaOwns,\n key,\n 'children': dataChildren,\n 'className':\n 'agora-anchor agora-sidebar-anchor-item inline-flex [&>*]:inline-flex items-center !justify-start [&>.children-wrapper]:w-full',\n 'ref': anchorItemRef\n });\n };\n\n const getFinal = (\n elements: ReactElement[],\n key: string,\n icons: {\n leadingIcon: string | undefined;\n leadingIconHover: string | undefined;\n trailingIcon: string | undefined;\n trailingIconHover: string | undefined;\n },\n ariaOwns: string\n ) => {\n let final;\n for (let e = 0; e < elements.length; e++) {\n const insideLoopElements = elements;\n const dataChildren = anchorIconWrapper(icons, insideLoopElements[0]);\n if (e === 0) {\n final = cloneAnchorElement(insideLoopElements[0], ariaOwns, key, dataChildren);\n } else if (e > 0) {\n if (final) {\n final = cloneElement(elements[e], { children: final, key });\n }\n }\n }\n return final;\n };\n\n const getNotDirectAnchor = (\n data: ReactElement,\n ariaOwns: string,\n key: string,\n icons: {\n leadingIcon: string | undefined;\n leadingIconHover: string | undefined;\n trailingIcon: string | undefined;\n trailingIconHover: string | undefined;\n }\n ) => {\n // Not a direct anchor\n let childData: ReactElement | null = data;\n let elements: ReactElement[] = [];\n\n while (childData !== null) {\n if ((childData.props as HTMLProps<ReactElement>)?.children) {\n if ((childData.props as HTMLProps<ReactElement>).href) {\n // Children has href\n isLinkedSidebarItem = true;\n elements = [...elements, childData];\n elements = elements.reverse();\n\n childData = null;\n const final = getFinal(elements, key, icons, ariaOwns);\n\n return final;\n } else {\n // This childData not has href, search next children\n elements = [...elements, childData];\n if (childData === (childData.props as HTMLProps<ReactElement>).children) {\n childData = null;\n } else {\n childData = (childData.props as HTMLProps<ReactElement>).children as ReactElement;\n }\n }\n } else {\n childData = null;\n }\n }\n if (isLinkedSidebarItem) {\n const dataChildren = anchorIconWrapper(icons, data);\n return cloneAnchorElement(data, ariaOwns, key, dataChildren);\n } else {\n return cloneElement(data, { key });\n }\n };\n\n const getSidebarItem = () => {\n return listInnerSidebarItem?.map((data, index) => {\n const key = `item-${index}-${generateId}`;\n const ariaOwns = `treeitem-${generateId}`;\n const icons = setIconsExpandCollapsed(item, ariaExpanded);\n\n if (!(data.props as HTMLProps<ReactElement>).href) {\n return getNotDirectAnchor(data, ariaOwns, key, icons);\n } else {\n isLinkedSidebarItem = true;\n const dataChildren = anchorIconWrapper(icons, data);\n return cloneAnchorElement(data, ariaOwns, key, dataChildren);\n }\n });\n };\n\n const getSidebarItemChildren = () => {\n return listSidebarItemChildren?.map((data: ReactElement<SidebarItemProps>, index: number) => {\n const key = `li-${index}-${generateId}`;\n if (data.props.item) {\n return cloneElement(data, { flat: `${flat}`, variant: variant, darkMode: stringToBoolean(darkMode), key });\n } else {\n return (\n <li key={key} role=\"none\" className=\"agora-sidebar-item\">\n {cloneElement(data)}\n </li>\n );\n }\n });\n };\n\n //Flat\n if (stringToBoolean(flat)) {\n newSidebarItem = getFlatSidebarItem();\n newSidebarItemChildren = getSidebarItemChildren();\n } else {\n //Not Flat\n newSidebarItem = getSidebarItem();\n newSidebarItemChildren = getSidebarItemChildren();\n }\n\n useEffect(() => {\n setAriaExpanded(setInitialSidebarItem(flat, contentItemRef.current, open, ariaExpanded));\n }, []);\n\n const icons = setIconsExpandCollapsed(item, ariaExpanded);\n\n const agoraSidebarButtonItemClassName = classNames('agora-sidebar-button-item', {\n '!pl-[42px]': icons.leadingIcon === undefined,\n '!pr-[42px]': icons.trailingIcon === undefined\n });\n\n return (\n <>\n {isLinkedSidebarItem && newSidebarItem.length > 0 && (\n <LinkWrapper\n variant={stringToBoolean(darkMode) ? 'neutral' : 'primary'}\n appearance=\"link\"\n fullWidth\n className=\"min-h-[60px] min-w-[60px] px-16\"\n darkMode={stringToBoolean(darkMode)}\n >\n {newSidebarItem}\n </LinkWrapper>\n )}\n {!isLinkedSidebarItem && newSidebarItem.length > 0 && !stringToBoolean(flat) && (\n <Button\n role=\"treeitem\"\n appearance=\"link\"\n variant={stringToBoolean(darkMode) ? 'neutral' : 'primary'}\n className={agoraSidebarButtonItemClassName}\n fullWidth\n {...(stringToBoolean(flat) ? undefined : { hasIcon: true })}\n {...icons}\n aria-expanded={ariaExpanded}\n aria-owns={`treeitem-${generateId}`}\n onClick={(event: MouseEvent<HTMLButtonElement>) => handleClickIcon(event, item as HTMLProps<HTMLButtonElement>)}\n onKeyUp={handleOnKeyUp}\n onKeyDown={handleOnKeyDown}\n ref={buttonItemRef}\n darkMode={stringToBoolean(darkMode)}\n >\n {newSidebarItem}\n </Button>\n )}\n {!isLinkedSidebarItem && stringToBoolean(flat) && item.children && (\n <div\n role=\"treeitem\"\n aria-selected={undefined}\n tabIndex={-1}\n className=\"p-16 sidebar-item-non-interactive\"\n aria-expanded={ariaExpanded}\n aria-owns={`treeitem-${generateId}`}\n onKeyUp={handleOnKeyUp}\n onKeyDown={handleOnKeyDown}\n onMouseDown={handleMouseDown}\n >\n {item.children}\n </div>\n )}\n\n {newSidebarItemChildren && (\n <ul\n ref={contentItemRef}\n className={contentItemClassName}\n id={`treeitem-${generateId}`}\n role=\"group\"\n aria-label={item['aria-label']}\n >\n {newSidebarItemChildren}\n </ul>\n )}\n </>\n );\n};\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction } from 'react';\nimport { BooleanProp } from '@/models';\nimport { ButtonItemProps, LinkItemProps, SidebarItemRef } from './models';\nimport { SidebarVariantType } from './models/sidebar-variant.type';\nimport { SidebarItemFilter } from './sidebar-filter/sidebar-item-filter';\nimport './sidebar-item.scss';\nimport { SidebarItemNavigation } from './sidebar-navigation/sidebar-item-navigation';\n\nexport interface SidebarItemProps extends ComponentPropsWithRef<'li'> {\n /**\n * Item of sidebar\n */\n item: ButtonItemProps | LinkItemProps;\n /**\n * Open on beginning\n */\n open?: BooleanProp;\n /**\n * All item tree open. Non-collapsible.\n */\n flat?: BooleanProp;\n /**\n * Whether the sidebar item is on filter sidebar or navigation sidebar\n */\n variant?: SidebarVariantType;\n /**\n * The flag to set Dark mode.\n */\n darkMode?: BooleanProp;\n}\nexport const InnerSidebarItem: ForwardRefRenderFunction<SidebarItemRef, SidebarItemProps> = (\n { className, variant, item, darkMode, ...props },\n ref\n) => {\n const sidebarItemClassName = classNames('agora-sidebar-item', className);\n\n return (\n <li className={sidebarItemClassName} {...(variant === 'navigation' ? { role: 'none' } : undefined)}>\n {variant === 'filter' && <SidebarItemFilter {...props} darkMode={darkMode} item={item} ref={ref} />}\n {variant === 'navigation' && (\n <SidebarItemNavigation {...props} darkMode={darkMode} {...(variant ? { variant: variant } : undefined)} item={item} />\n )}\n </li>\n );\n};\n\nexport const SidebarItem = forwardRef<SidebarItemRef, SidebarItemProps>(InnerSidebarItem);\n","import { Button } from '@/components/button';\nimport { LinkWrapper } from '@/components/link-wrapper';\nimport React, {\n cloneElement,\n ComponentPropsWithRef,\n FC,\n FocusEvent,\n Fragment,\n HTMLProps,\n KeyboardEvent,\n ReactElement,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport { MultipleLinksProps } from './skip-navigation';\nexport interface SkipNavigationMultipleProps extends ComponentPropsWithRef<'div'> {\n className: string | undefined;\n containerSkipNavRef: RefObject<HTMLDivElement>;\n multipleLinks: MultipleLinksProps;\n}\n\nexport const SkipNavigationMultiple: FC<SkipNavigationMultipleProps> = ({ className, containerSkipNavRef, multipleLinks, ...props }) => {\n const skipOptionsRef = useRef<HTMLDivElement>(null);\n\n const [ariaExpand, setAriaExpand] = useState(false);\n\n const handleClick = () => {\n skipOptionsRef.current?.classList.add('hidden');\n containerSkipNavRef.current?.classList.remove('show');\n setAriaExpand(false);\n };\n\n const handleFocus = (evt: FocusEvent<HTMLDivElement>) => {\n containerSkipNavRef.current?.classList.add('show');\n props.onFocus?.(evt);\n };\n\n const handleBlur = (evt: FocusEvent<HTMLDivElement>) => {\n if (!ariaExpand) {\n evt.currentTarget.focus();\n containerSkipNavRef.current?.classList.remove('show');\n }\n props.onBlur?.(evt);\n };\n\n const handleKeyUp = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n const allSkipMenuItems: HTMLElement[] = containerSkipNavRef.current?.querySelectorAll('[role=\"menuitem\"]') as unknown as HTMLElement[];\n const currentIndexFocus = [...allSkipMenuItems].findIndex((mi) => mi === evt.currentTarget);\n if (code === 'ArrowDown') {\n if (currentIndexFocus + 1 !== allSkipMenuItems.length) {\n allSkipMenuItems[currentIndexFocus + 1].focus();\n } else {\n allSkipMenuItems[0].focus();\n }\n }\n\n if (code === 'ArrowUp') {\n if (currentIndexFocus - 1 !== allSkipMenuItems.length && currentIndexFocus - 1 >= 0) {\n allSkipMenuItems[currentIndexFocus - 1].focus();\n } else {\n allSkipMenuItems[allSkipMenuItems.length - 1].focus();\n }\n }\n\n if (code === 'Tab' || code === 'Escape') {\n if (skipOptionsRef.current) {\n skipOptionsRef.current.classList.add('hidden');\n setAriaExpand(false);\n (skipOptionsRef.current.previousSibling as HTMLElement).focus();\n }\n }\n\n props.onKeyUp?.(evt);\n };\n\n const handleSkipOptionControlKeyDownCapture = (evt: KeyboardEvent<HTMLDivElement>) => {\n const code = evt.code;\n\n if (!skipOptionsRef.current) {\n return;\n }\n\n if (ariaExpand) {\n if (code === 'Tab' || code === 'ArrowDown' || code === 'ArrowUp') {\n // PREVENT SCROLL AND TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n }\n };\n\n const handleButtonSkipClick = () => {\n if (skipOptionsRef.current && !ariaExpand) {\n skipOptionsRef.current.classList.remove('hidden');\n setAriaExpand(true);\n } else if (skipOptionsRef.current && ariaExpand) {\n skipOptionsRef.current.classList.add('hidden');\n setAriaExpand(false);\n }\n };\n const handleButtonFocus = () => {\n containerSkipNavRef.current?.classList.add('show');\n };\n const handleButtonBlur = () => {\n containerSkipNavRef.current?.classList.remove('show');\n };\n\n const handleButtonKeyUp = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (skipOptionsRef.current) {\n switch (evt.code) {\n case 'Escape':\n case 'Tab':\n skipOptionsRef.current.classList.add('hidden');\n setAriaExpand(false);\n break;\n case 'ArrowDown':\n if (ariaExpand) {\n (document.activeElement?.nextElementSibling?.querySelectorAll('[role=\"menuitem\"]')[0] as HTMLElement)?.focus();\n }\n break;\n case 'ArrowUp':\n if (ariaExpand) {\n (\n document.activeElement?.nextElementSibling?.querySelectorAll('[role=\"menuitem\"]')[\n document.activeElement?.nextElementSibling?.querySelectorAll('[role=\"menuitem\"]').length - 1\n ] as HTMLElement\n )?.focus();\n }\n break;\n }\n }\n };\n\n const handleButtonControlKeyDownCapture = (evt: KeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (!skipOptionsRef.current) {\n return;\n }\n\n if (ariaExpand) {\n if (code === 'Tab' || code === 'ArrowDown' || code === 'ArrowUp') {\n // PREVENT SCROLL AND TAB INDEX CHANGE FOCUS\n evt.preventDefault();\n evt.stopPropagation();\n }\n }\n\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n if (skipOptionsRef.current && !ariaExpand) {\n skipOptionsRef.current.classList.remove('hidden');\n } else if (skipOptionsRef.current && ariaExpand) {\n skipOptionsRef.current.classList.add('hidden');\n }\n }\n };\n\n const getFinal = (elements: ReactElement[], lvl: number) => {\n let final;\n for (let e = 0; e < elements.length; e++) {\n if (e === 0) {\n final = cloneElement(elements[0], {\n role: 'menuitem',\n className: `skip-level-${lvl}`,\n onClick: handleClick,\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt),\n onKeyUp: (evt: KeyboardEvent<HTMLDivElement>) => handleKeyUp(evt),\n onKeyDownCapture: (evt: KeyboardEvent<HTMLDivElement>) => handleSkipOptionControlKeyDownCapture(evt)\n });\n } else if (e > 0) {\n if (final) {\n final = cloneElement(elements[e], { children: final });\n }\n }\n }\n return final;\n };\n\n const getNotDirectAnchor = (initLink: ReactElement, lvl: number) => {\n let childData: ReactElement | null = initLink;\n let elements: ReactElement[] = [];\n let isLink: boolean = false;\n let final;\n while (childData !== null) {\n if ((childData.props as HTMLProps<ReactElement>)?.children) {\n if ((childData.props as HTMLProps<ReactElement>).href) {\n isLink = true;\n elements = [...elements, childData];\n elements = elements.reverse();\n final = getFinal(elements, lvl);\n childData = null;\n } else {\n elements = [...elements, childData];\n if (childData === (childData.props as HTMLProps<ReactElement>).children) {\n childData = null;\n } else {\n childData = (childData.props as HTMLProps<ReactElement>).children as ReactElement;\n }\n }\n } else {\n childData = null;\n }\n }\n if (isLink) {\n return final;\n } else {\n return initLink;\n }\n };\n\n let groupAnchors: ReactElement[] = [];\n const recursiveLinks = (links: any[], lvl: number = 0) => {\n links.forEach((level: any, index) => {\n const getKeys = Object.keys(level);\n const keyIndex = getKeys.findIndex((o) => o != 'link');\n const key = getKeys[keyIndex];\n\n let newLink;\n const init = level[key];\n const initLink: ReactElement = init.link as ReactElement;\n const initLength = Object.keys(init).length;\n\n if ((initLink?.props as HTMLProps<ReactElement>)?.href) {\n newLink = cloneElement(init.link, {\n role: 'menuitem',\n className: `skip-level-${lvl}`,\n onClick: handleClick,\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt),\n onKeyUp: (evt: KeyboardEvent<HTMLDivElement>) => handleKeyUp(evt),\n onKeyDownCapture: (evt: KeyboardEvent<HTMLDivElement>) => handleSkipOptionControlKeyDownCapture(evt)\n });\n } else {\n newLink = getNotDirectAnchor(initLink, lvl);\n }\n\n const idx = `link-lvl-${lvl}-${index}`;\n if (initLength > 1) {\n groupAnchors = [\n ...groupAnchors,\n <LinkWrapper key={idx} appearance=\"link\" variant=\"neutral\" className=\"skip-option\">\n {newLink}\n </LinkWrapper>\n ];\n\n recursiveLinks([init], lvl + 1);\n } else {\n groupAnchors = [\n ...groupAnchors,\n <LinkWrapper key={idx} appearance=\"link\" variant=\"neutral\" className=\"skip-option\">\n {newLink}\n </LinkWrapper>\n ];\n }\n });\n };\n\n const menuSkipNavigation = () => {\n const menu = multipleLinks?.skipList.map((element, index) => {\n groupAnchors = [];\n const idx = index;\n recursiveLinks(element.links, 0);\n return (\n <Fragment key={idx}>\n <div role=\"separator\" id={`skip-separator-${idx}`} className=\"skip-section-separator\">\n {element.sectionLabel}\n </div>\n <div role=\"group\" aria-labelledby={`skip-separator-${idx}`} className=\"flex flex-col\">\n {groupAnchors}\n </div>\n </Fragment>\n );\n });\n\n return menu;\n };\n const handleClickOutside = useCallback((evt: MouseEvent) => {\n if (!containerSkipNavRef.current?.contains(evt.target as HTMLElement)) {\n skipOptionsRef.current?.classList.add('hidden');\n containerSkipNavRef.current?.classList.remove('show');\n setAriaExpand(false);\n }\n }, []);\n\n useEffect(() => {\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n return (\n <div className={className} ref={containerSkipNavRef} {...props}>\n <Button\n {...multipleLinks.skipButton}\n appearance=\"link\"\n className=\"skip-button\"\n aria-expanded={ariaExpand ? 'true' : 'false'}\n onClick={handleButtonSkipClick}\n onFocus={handleButtonFocus}\n onBlur={handleButtonBlur}\n onKeyUp={handleButtonKeyUp}\n onKeyDownCapture={handleButtonControlKeyDownCapture}\n />\n <div role=\"menu\" aria-label={multipleLinks.skipAriaLabel} className=\"skip-options hidden\" ref={skipOptionsRef}>\n {menuSkipNavigation()}\n </div>\n </div>\n );\n};\n","import { LinkWrapper } from '@/components/link-wrapper';\nimport React, {\n cloneElement,\n ComponentPropsWithRef,\n FC,\n FocusEvent,\n HTMLProps,\n ReactElement,\n MouseEvent as ReactMouseEvent,\n RefObject\n} from 'react';\nexport interface SkipNavigationSingleProps extends ComponentPropsWithRef<'div'> {\n className: string | undefined;\n containerSkipNavRef: RefObject<HTMLDivElement>;\n singleLink: ReactElement;\n}\nconst handleClick = (evt: ReactMouseEvent<HTMLDivElement>, props: SkipNavigationSingleProps) => {\n const content = document.getElementById(window.location.hash.slice(1));\n if (content) {\n content.focus();\n }\n props.onClick?.(evt);\n};\n\nconst handleFocus = (evt: FocusEvent<HTMLDivElement>, containerSkipNavRef: RefObject<HTMLDivElement>, props: SkipNavigationSingleProps) => {\n containerSkipNavRef.current?.classList.add('show');\n props.onFocus?.(evt);\n};\n\nconst handleBlur = (evt: FocusEvent<HTMLDivElement>, containerSkipNavRef: RefObject<HTMLDivElement>, props: SkipNavigationSingleProps) => {\n containerSkipNavRef.current?.classList.remove('show');\n props.onBlur?.(evt);\n};\n\nconst getFinal = (elements: ReactElement[], containerSkipNavRef: RefObject<HTMLDivElement>, props: SkipNavigationSingleProps) => {\n let final;\n for (let e = 0; e < elements.length; e++) {\n if (e === 0) {\n final = cloneElement(elements[0], {\n className: 'skip-item',\n onClick: (evt: ReactMouseEvent<HTMLDivElement>) => handleClick(evt, props),\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt, containerSkipNavRef, props),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt, containerSkipNavRef, props)\n });\n } else if (e > 0) {\n if (final) {\n final = cloneElement(elements[e], { children: final });\n }\n }\n }\n return final;\n};\n\nconst getNotDirectAnchor = (singleLink: ReactElement, containerSkipNavRef: RefObject<HTMLDivElement>, props: SkipNavigationSingleProps) => {\n let childData: ReactElement | null = singleLink;\n let elements: ReactElement[] = [];\n let isLink: boolean = false;\n let final;\n\n while (childData !== null) {\n if ((childData.props as HTMLProps<ReactElement>)?.children) {\n if ((childData.props as HTMLProps<ReactElement>).href) {\n isLink = true;\n elements = [...elements, childData];\n elements = elements.reverse();\n final = getFinal(elements, containerSkipNavRef, props);\n childData = null;\n } else {\n elements = [...elements, childData];\n if (childData === (childData.props as HTMLProps<ReactElement>).children) {\n childData = null;\n } else {\n childData = (childData.props as HTMLProps<ReactElement>).children as ReactElement;\n }\n }\n } else {\n childData = null;\n }\n }\n if (isLink) {\n return final;\n } else {\n return singleLink;\n }\n};\n\nconst buildAnchor = (singleLink: ReactElement, containerSkipNavRef: RefObject<HTMLDivElement>, props: SkipNavigationSingleProps) => {\n let newSingleLink;\n\n if (singleLink && (singleLink?.props as HTMLProps<ReactElement>).href) {\n newSingleLink = cloneElement(singleLink, {\n className: 'skip-item',\n onClick: (evt: ReactMouseEvent<HTMLDivElement>) => handleClick(evt, props),\n onFocus: (evt: FocusEvent<HTMLDivElement>) => handleFocus(evt, containerSkipNavRef, props),\n onBlur: (evt: FocusEvent<HTMLDivElement>) => handleBlur(evt, containerSkipNavRef, props)\n });\n } else {\n newSingleLink = getNotDirectAnchor(singleLink, containerSkipNavRef, props);\n }\n\n return newSingleLink;\n};\n\nexport const SkipNavigationSingle: FC<SkipNavigationSingleProps> = ({ className, containerSkipNavRef, singleLink, ...props }) => {\n const newSingleLink = buildAnchor(singleLink, containerSkipNavRef, { className, containerSkipNavRef, singleLink, ...props });\n\n return (\n <>\n {newSingleLink && (\n <div className={className} ref={containerSkipNavRef} {...props}>\n <LinkWrapper inline={true}>{newSingleLink}</LinkWrapper>\n </div>\n )}\n </>\n );\n};\n","import classNames from 'classnames';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactElement,\n ReactNode,\n Ref,\n useImperativeHandle,\n useRef\n} from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { ButtonProps } from '@/components/button';\nimport { SkipNavigationMultiple } from './skip-navigation-multiple';\nimport { SkipNavigationSingle } from './skip-navigation-single';\nimport './skip-navigation.scss';\n\nexport interface LevelLinks {\n level1: {\n link: ReactNode;\n level2?: {\n link: ReactNode;\n level3?: {\n link: ReactNode;\n };\n };\n };\n}\n\nexport interface SkipListProps {\n sectionLabel: string;\n links: LevelLinks[];\n}\nexport interface MultipleLinksProps {\n skipButton: ButtonProps;\n skipAriaLabel: string;\n skipList: SkipListProps[];\n}\n\nexport interface SkipNavigationProps extends ComponentPropsWithRef<'div'> {\n /**\n * Skip navigation multiple links or single link\n */\n multiple?: BooleanProp;\n\n /**\n * Single Link\n */\n singleLink?: ReactElement;\n\n /**\n * Multiple Links\n */\n multipleLinks?: MultipleLinksProps;\n}\n\nexport const InnerSkipNavigation: ForwardRefRenderFunction<HTMLDivElement, SkipNavigationProps> = (\n { multiple = 'false', singleLink, multipleLinks, ...props },\n ref?: Ref<HTMLDivElement | null>\n) => {\n const containerSkipNavRef = useRef<HTMLDivElement>(null);\n\n useImperativeHandle(ref, () => containerSkipNavRef.current);\n\n const navigationClassName = classNames('agora-skip-navigation container mx-auto py-16', props.className);\n\n return (\n <>\n {stringToBoolean(multiple) && multipleLinks && (\n <SkipNavigationMultiple className={navigationClassName} containerSkipNavRef={containerSkipNavRef} multipleLinks={multipleLinks} />\n )}\n {!stringToBoolean(multiple) && singleLink && (\n <SkipNavigationSingle\n className={navigationClassName}\n containerSkipNavRef={containerSkipNavRef}\n singleLink={singleLink}\n {...props}\n />\n )}\n </>\n );\n};\n\nexport const SkipNavigation = forwardRef<HTMLDivElement, SkipNavigationProps>(InnerSkipNavigation);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode, useMemo } from 'react';\nimport { Button } from '@/components/button';\nimport { Icon } from '@/components/icon';\nimport { StatusCardType } from './status-card';\n\nexport interface InteractiveStatusCardProps extends ComponentPropsWithoutRef<'div'> {\n className?: string;\n interactive?: boolean;\n children?: ReactNode;\n type?: StatusCardType;\n onActivate?: () => void;\n}\n\nexport const InnerInteractiveStatusCard: ForwardRefRenderFunction<HTMLDivElement, InteractiveStatusCardProps> = (\n { className, onActivate, interactive, children, 'aria-label': ariaLabel, ...props },\n ref\n) => {\n const containerClasses = classNames(`agora-status-card status-${props.type}`, className, {\n interactive\n });\n\n const onClickHandler = () => {\n onActivate?.();\n };\n\n const leadingIconName = useMemo(() => {\n switch (props.type) {\n case 'info':\n return 'agora-solid-info-mark';\n case 'success':\n return 'agora-solid-check-circle';\n case 'warning':\n return 'agora-solid-info-mark';\n case 'danger':\n return 'agora-solid-alert-triangle';\n\n default:\n return 'agora-solid-info-mark';\n }\n }, [props.type]);\n\n return (\n <div role=\"status\" {...props} ref={ref}>\n <Button\n className={containerClasses}\n type=\"button\"\n onClick={onClickHandler}\n fullWidth\n hasIcon\n aria-label={ariaLabel}\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-solid-arrow-right-circle\"\n >\n <Icon name={leadingIconName} aria-hidden />\n {children}\n </Button>\n </div>\n );\n};\n\nexport const InteractiveStatusCard = forwardRef<HTMLDivElement, InteractiveStatusCardProps>(InnerInteractiveStatusCard);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode } from 'react';\nimport { StatusCardType } from './status-card';\n\nexport interface NonInteractiveStatusCardProps extends ComponentPropsWithoutRef<'div'> {\n className?: string;\n children?: ReactNode;\n type?: StatusCardType;\n}\n\nexport const InnerNonInteractiveStatusCard: ForwardRefRenderFunction<HTMLDivElement, NonInteractiveStatusCardProps> = (\n { className, 'aria-label': ariaLabel, children, ...props },\n ref\n) => {\n const containerClasses = classNames(`agora-status-card status-${props.type} non-interactive`, className);\n\n return (\n <div {...props} role=\"status\" className={containerClasses} ref={ref}>\n <span className=\"sr-only\">{ariaLabel}</span>\n <div aria-hidden={!!ariaLabel}>{children}</div>\n </div>\n );\n};\n\nexport const NonInteractiveStatusCard = forwardRef<HTMLDivElement, NonInteractiveStatusCardProps>(InnerNonInteractiveStatusCard);\n","import React, { ComponentPropsWithoutRef, forwardRef, ForwardRefRenderFunction, ReactNode, useMemo } from 'react';\nimport { Icon } from '@/components/icon';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { InteractiveStatusCard } from './interactive-status-card';\nimport { NonInteractiveStatusCard } from './non-interactive-status-card';\nimport './status-card.scss';\n\nexport type StatusCardType = 'info' | 'success' | 'warning' | 'danger';\n\nexport interface StatusCardProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Status card description content\n */\n description: ReactNode;\n\n /**\n * The available Status card types. Defines the appearance of the cards.\n */\n type: StatusCardType;\n\n /**\n * The flag to make the status card interactive. When it is interactive,\n * card can be focused by clicking on it.\n */\n interactive?: BooleanProp;\n\n /**\n * Callback to run whenever the status card is interactive.\n */\n onActivate?: () => void;\n}\n\nexport const InnerStatusCard: ForwardRefRenderFunction<HTMLDivElement, StatusCardProps> = (\n { className, description, type = 'info', interactive, onActivate, ...props },\n ref\n) => {\n const memoContent = useMemo(() => {\n const handleIcon = (iconType: StatusCardType) => {\n switch (iconType) {\n case 'info':\n return 'agora-solid-info-mark';\n case 'success':\n return 'agora-solid-check-circle';\n case 'warning':\n return 'agora-solid-info-mark';\n case 'danger':\n return 'agora-solid-alert-triangle';\n default:\n return undefined;\n }\n };\n\n return (\n <>\n {!stringToBoolean(interactive) && <Icon className=\"status-icon\" name={handleIcon(type)} aria-hidden />}\n <span className=\"status-description\">{description}</span>\n </>\n );\n }, [className, description, type, interactive]);\n\n if (stringToBoolean(interactive)) {\n return (\n <InteractiveStatusCard\n {...props}\n className={className}\n type={type}\n ref={ref}\n onActivate={onActivate}\n interactive={stringToBoolean(interactive)}\n >\n {memoContent}\n </InteractiveStatusCard>\n );\n }\n\n return (\n <NonInteractiveStatusCard {...props} className={className} type={type} ref={ref}>\n {memoContent}\n </NonInteractiveStatusCard>\n );\n};\n\nexport const StatusCard = forwardRef<HTMLDivElement, StatusCardProps>(InnerStatusCard);\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactElement } from 'react';\nimport './step-list.scss';\n\nexport interface StepListProps extends ComponentPropsWithoutRef<'ol'> {\n /**\n * Children content.\n */\n children?: ReactElement<HTMLLIElement> | Array<ReactElement<HTMLLIElement>>;\n}\n\nexport const StepList: FC<StepListProps> = ({ children, ...props }) => {\n const stepListClass = classNames(`agora-step-list`);\n\n return (\n <ol className={stepListClass} {...props}>\n {children}\n </ol>\n );\n};\n","import { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n useEffect,\n useId,\n useRef,\n useState\n} from 'react';\nimport './switch.scss';\n\nexport type SwitchPosition = 'start' | 'center' | 'space-between' | 'space-around' | 'space-evenly';\n\nexport interface SwitchProps extends ComponentPropsWithRef<'input'> {\n /**\n * Input label text.\n */\n label?: string;\n /**\n * Show or hide input label.\n */\n hideLabel?: BooleanProp;\n /**\n * Whether the switch is reversed.\n */\n reverse?: BooleanProp;\n /**\n * The position of the switch.\n */\n position?: SwitchPosition;\n /**\n * Defines if the Switch should be fluid\n */\n fullWidth?: BooleanProp;\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below input text.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Highlight the switch indicating some error.\n */\n hasError?: BooleanProp;\n}\n\nexport const InnerSwitch: ForwardRefRenderFunction<HTMLInputElement, SwitchProps> = (\n {\n className,\n label,\n hideLabel,\n disabled,\n reverse,\n position,\n fullWidth,\n hasFeedback,\n feedbackState = 'info',\n feedbackText,\n hasError,\n onChange,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const propsClone = { ...props };\n\n propsClone.id = propsClone.id ?? generatedId;\n\n const [currentChecked, setCurrentChecked] = useState(stringToBoolean(propsClone.checked ?? propsClone.defaultChecked));\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const handleChange = (evt: ChangeEvent<HTMLInputElement>) => {\n setCurrentChecked((last) => !last);\n asyncTrigger(() => onChange?.(evt));\n };\n\n useEffect(() => {\n const checked = propsClone.checked ?? propsClone.defaultChecked;\n if (checked !== undefined) {\n setCurrentChecked(checked);\n }\n }, [propsClone.checked, propsClone.defaultChecked]);\n\n const handleCustomSwitchKeydown = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (wrapperRef !== null && (evt.code === 'Space' || evt.code === 'Enter' || evt.code === 'NumpadEnter')) {\n evt.preventDefault();\n wrapperRef.current?.querySelector('input')?.click();\n }\n };\n\n const handleCustomSwitchClick = (evt: MouseEvent<HTMLDivElement>) => {\n if (wrapperRef !== null) {\n evt.preventDefault();\n wrapperRef.current?.querySelector('input')?.click();\n }\n };\n\n const switchWrapperClasses = classNames('agora-switch-wrapper', className, {\n 'switch-side': stringToBoolean(reverse),\n [`switch-${position}`]: position,\n 'switch-full-width': stringToBoolean(fullWidth),\n 'switch-disabled': disabled,\n 'switch-focus': hideLabel,\n 'switch-label-focus': !hideLabel,\n 'has-error': stringToBoolean(hasError),\n 'has-feedback': stringToBoolean(hasFeedback),\n ['feedback-' + feedbackState]: stringToBoolean(hasFeedback) && feedbackState\n });\n\n const markerClasses = classNames('toggle-ball', {\n 'icon-disabled': disabled,\n 'icon-off': !currentChecked && !disabled\n });\n\n const switchLabelClasses = classNames('switch-label', {\n 'label-disabled': disabled\n });\n\n const ariaLabel = props['aria-label'] ?? label;\n\n return (\n <div>\n <div ref={wrapperRef} className={switchWrapperClasses}>\n <input {...propsClone} type=\"checkbox\" tabIndex={-1} disabled={disabled} onChange={handleChange} ref={ref} id={propsClone.id} />\n <div\n className={`toggle-switch ${currentChecked ? 'on' : 'off'}`}\n role=\"switch\"\n aria-checked={currentChecked ? 'true' : 'false'}\n tabIndex={!disabled ? 0 : -1}\n aria-label={ariaLabel}\n onClick={handleCustomSwitchClick}\n onKeyDown={handleCustomSwitchKeydown}\n >\n <span className={markerClasses}>\n {currentChecked ? (\n <Icon name=\"agora-solid-check\" aria-hidden className=\"on\" dimensions=\"xs\" />\n ) : (\n <Icon name=\"agora-solid-x\" aria-hidden className=\"off\" dimensions=\"xs\" />\n )}\n </span>\n </div>\n {!hideLabel && label && (\n <label htmlFor={propsClone.id} className={switchLabelClasses}>\n {label}\n </label>\n )}\n </div>\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} className=\"px-16\" />\n )}\n </div>\n );\n};\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(InnerSwitch);\n","import React, { FC, HTMLAttributes, ReactElement } from 'react';\nimport { TableRowProps } from './table-row';\n\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactElement<TableRowProps> | Array<ReactElement<TableRowProps>>;\n}\n\nconst TableBody: FC<TableBodyProps> = ({ children, ...props }) => {\n return <tbody {...props}>{children}</tbody>;\n};\n\nexport { TableBody };\n","import React, { FC, HTMLAttributes, ReactNode } from 'react';\n\nexport interface TableCaptionProps extends HTMLAttributes<HTMLTableCaptionElement> {\n children: ReactNode;\n}\n\nconst TableCaption: FC<TableCaptionProps> = ({ children, ...props }) => {\n return <caption {...props}>{children}</caption>;\n};\n\nexport { TableCaption };\n","import React, { FC, ReactNode, TdHTMLAttributes } from 'react';\n\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n /**\n * Header label.\n */\n headerLabel: ReactNode;\n /**\n * Header identification key.\n */\n headerKey?: string;\n /**\n * Value of the cell.\n */\n value?: string | number | Date;\n}\n\nconst TableCell: FC<TableCellProps> = ({ children, headerKey = '', headerLabel, ...props }) => {\n return (\n <td {...props} data-header-key={headerKey} data-label={headerLabel}>\n {children}\n </td>\n );\n};\n\nexport { TableCell };\n","import React, { FC, HTMLAttributes, ReactNode } from 'react';\n\nexport interface TableFooterProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactNode;\n}\n\nconst TableFooter: FC<TableFooterProps> = ({ children, ...props }) => {\n return <tfoot {...props}>{children}</tfoot>;\n};\n\nexport { TableFooter };\n","import React, { FC, HTMLAttributes, ReactElement } from 'react';\nimport { TableRowProps } from './table-row';\n\nexport interface TableHeaderProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactElement<TableRowProps> | Array<ReactElement<TableRowProps>>;\n}\n\nconst TableHeader: FC<TableHeaderProps> = ({ children, ...props }) => {\n return <thead {...props}>{children}</thead>;\n};\n\nexport { TableHeader };\n","import React, { FC, HTMLAttributes, KeyboardEvent, ReactNode, useMemo } from 'react';\nimport { Icon } from '@/components/icon';\nimport { SortOrder } from './models/sort-order.type';\nimport { SortType } from './models/sort-type.type';\n\nconst DESCENDING_ICON_NAMES: Record<SortType, string> = {\n string: 'agora-line-sort-alpha-up',\n date: 'agora-solid-sort-generic-up',\n numeric: 'agora-solid-sort-generic-up'\n};\n\nconst ASCENDING_ICON_NAMES: Record<SortType, string> = {\n string: 'agora-solid-sort-alpha-down',\n date: 'agora-solid-sort-generic-down',\n numeric: 'agora-solid-sort-generic-down'\n};\n\nexport interface TableHeaderCellProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n /**\n * The sort type applied.\n * */\n sortType?: SortType;\n /**\n * The sort order applied.\n * */\n sortOrder?: SortOrder;\n /**\n * Callback to be called when the sort change\n */\n onSortChange?: (sortOrder: SortOrder) => void;\n}\n\nconst TableHeaderCell: FC<TableHeaderCellProps> = ({ sortType, sortOrder = 'none', onSortChange, children, ...props }) => {\n const circularSortOrder = ['none', 'ascending', 'descending'] as SortOrder[];\n const currentSortOrderIndex = circularSortOrder.findIndex((order) => order === sortOrder);\n\n const sortIconName = useMemo(() => {\n if (!sortType) {\n return '';\n }\n\n if (sortOrder === 'ascending') {\n return ASCENDING_ICON_NAMES[sortType];\n }\n\n if (sortOrder === 'descending') {\n return DESCENDING_ICON_NAMES[sortType];\n }\n\n return 'agora-solid-sort-vertical';\n }, [sortType, sortOrder]);\n\n const ariaSortValue = useMemo(() => {\n if (!sortType) {\n return 'none';\n }\n\n if (sortOrder === 'ascending') {\n return 'ascending';\n }\n\n if (sortOrder === 'descending') {\n return 'descending';\n }\n\n return 'none';\n }, [sortType, sortOrder]);\n\n const applySort = () => {\n if (!sortType) {\n return '';\n }\n\n let nextSortOrder = currentSortOrderIndex + 1;\n\n if (nextSortOrder >= circularSortOrder.length) {\n nextSortOrder = 0;\n }\n\n onSortChange?.(circularSortOrder[nextSortOrder]);\n };\n\n const handleKeyUpHeader = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Enter' || evt.code === 'NumpadEnter' || evt.code === 'Space') {\n applySort();\n }\n };\n\n return (\n <th {...props} className={props.className} aria-sort={ariaSortValue}>\n {sortType && (\n <button className=\"table-header-cell\" onClick={applySort} onKeyUp={handleKeyUpHeader}>\n <div className=\"w-24\">\n <Icon name={sortIconName} aria-hidden />\n </div>\n {children}\n </button>\n )}\n\n {!sortType && <span className=\"table-header-cell\">{children}</span>}\n </th>\n );\n};\n\nexport { TableHeaderCell };\n","import React, { FC, HTMLAttributes, ReactElement } from 'react';\nimport { TableCellProps } from './table-cell';\n\nexport interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {\n children: ReactElement<TableCellProps> | Array<ReactElement<TableCellProps>>;\n}\n\nconst TableRow: FC<TableRowProps> = ({ children, ...props }) => {\n return <tr {...props}>{children}</tr>;\n};\n\nexport { TableRow };\n","import { Button } from '@/components/button';\nimport { Dropdown, DropdownElement, DropdownOption, DropdownOptionProps, DropdownSection } from '@/components/dropdown';\nimport React, {\n ComponentPropsWithRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n MouseEvent as ReactMouseEvent,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport './table-pagination.scss';\n\nexport interface TablePaginationProps extends ComponentPropsWithRef<'div'> {\n /**\n * Defines the label for the items per page\n */\n itemsPerPageLabel: string;\n /**\n * Defines the page size\n */\n itemsPerPage: number;\n /**\n * Total items of the table\n */\n totalItems: number;\n /**\n * Array of values to be displayed in the dropdown\n */\n availablePageSizes: number[];\n /**\n * Current page of the table\n */\n currentPage: number;\n /**\n * Aria label for the button\n */\n buttonDropdownAriaLabel: string;\n /**\n * Aria label for the dropdown list\n */\n dropdownListAriaLabel: string;\n /**\n * Aria label for the previous button\n */\n prevButtonAriaLabel?: string;\n /**\n * Aria label for the next button\n */\n nextButtonAriaLabel?: string;\n /**\n * Callback to be called when the page changes\n */\n onPageChange?: (newPage: number) => void;\n /**\n * Callback to be called when the dropdown changes\n */\n onPageSizeChange?: (newPageSize: number) => void;\n}\n\nconst InnerTablePagination: ForwardRefRenderFunction<HTMLDivElement, TablePaginationProps> = (\n {\n itemsPerPageLabel,\n itemsPerPage,\n totalItems,\n availablePageSizes,\n currentPage,\n buttonDropdownAriaLabel,\n dropdownListAriaLabel,\n prevButtonAriaLabel,\n nextButtonAriaLabel,\n ...props\n },\n ref\n) => {\n const generatedId = useId();\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n const dropdownRef = useRef<DropdownElement>(null);\n const dropdownWrapperRef = useRef<HTMLDivElement>(null);\n\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n const toggleVisibility = () => {\n if (dropdownRef.current?.visibility) {\n dropdownRef.current?.hide();\n } else {\n dropdownRef.current?.show();\n }\n\n buttonRef.current?.classList.remove('active');\n };\n\n const onDropdownButtonClickHandler = (evt: ReactMouseEvent<HTMLButtonElement>) => {\n if (typeof evt.detail === 'number' && evt.detail === 0) {\n // EVENT DETAIL IS THE NUMBER OF CLICKS. KEYBOARD DOES NOT ADD A CLICK COUNTER.\n // KEYBOARD IS HANDLED ON KEYDOWN\n return;\n }\n\n toggleVisibility();\n };\n\n const onDropdownButtonKeydownHandler = (evt: KeyboardEvent<HTMLButtonElement>) => {\n const code = evt.code;\n\n if (code === 'Escape' && dropdownRef.current?.visibility) {\n dropdownRef.current.hide();\n }\n\n if (code === 'Enter' || code === 'Space' || code === 'NumpadEnter') {\n toggleVisibility();\n }\n };\n\n const onShowDropdownHandler = () => {\n setIsDropdownVisible(true);\n dropdownRef.current?.first();\n };\n\n const onHideDropDownHandler = () => {\n setIsDropdownVisible(false);\n buttonRef.current?.focus();\n };\n\n const onDropdownChangeHandler = (options: DropdownOptionProps[]) => {\n if (options.length > 0) {\n const option = options[0];\n props.onPageSizeChange?.(+option.value);\n }\n };\n\n useEffect(() => {\n const handleClickOutside = (evt: MouseEvent) => {\n if (dropdownRef.current?.visibility && !dropdownWrapperRef.current?.contains(evt.target as HTMLElement)) {\n dropdownRef.current.hide();\n }\n };\n\n document?.addEventListener('click', handleClickOutside);\n\n return () => {\n document?.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n const totalPages = Math.ceil(totalItems / itemsPerPage);\n\n const handlePrevPage = () => {\n props.onPageChange?.(Math.max(0, currentPage - 1));\n };\n\n const handleNextPage = () => {\n props.onPageChange?.(Math.min(currentPage + 1, totalPages - 1));\n };\n\n // Utility to change button icon\n const iconDefinition = useMemo(() => {\n if (!isDropdownVisible) {\n return {\n default: 'agora-solid-chevron-down',\n hover: 'agora-line-chevron-down'\n };\n }\n\n return {\n default: 'agora-solid-chevron-up',\n hover: 'agora-line-chevron-up'\n };\n }, [isDropdownVisible]);\n\n return (\n <div className=\"agora-table-pagination\" ref={ref}>\n <div className=\"section-items\" ref={dropdownWrapperRef}>\n <Button\n ref={buttonRef}\n appearance=\"link\"\n hasIcon\n trailingIcon={iconDefinition.default}\n trailingIconHover={iconDefinition.hover}\n aria-label={buttonDropdownAriaLabel}\n role=\"combobox\"\n aria-controls={generatedId}\n aria-expanded={isDropdownVisible}\n onClick={onDropdownButtonClickHandler}\n onKeyDown={onDropdownButtonKeydownHandler}\n >\n {itemsPerPageLabel} {itemsPerPage}\n </Button>\n\n <div className=\"absolute -bottom-8 left-0 w-full min-h-[8px]\">\n <Dropdown\n id={generatedId}\n ref={dropdownRef}\n type=\"text\"\n onHide={onHideDropDownHandler}\n onShow={onShowDropdownHandler}\n onChange={onDropdownChangeHandler}\n hideSectionNames\n aria-label={dropdownListAriaLabel}\n >\n <DropdownSection label=\"pagination\" name=\"page-size-dropdown\">\n {availablePageSizes.map((ps) => {\n return (\n <DropdownOption key={ps} value={String(ps)}>\n {String(ps)}\n </DropdownOption>\n );\n })}\n </DropdownSection>\n </Dropdown>\n </div>\n </div>\n <div className=\"action-buttons\">\n <div className=\"prev_box\">\n <Button\n variant=\"neutral\"\n darkMode\n className=\"prev\"\n hasIcon\n iconOnly\n trailingIcon=\"agora-solid-chevron-left\"\n trailingIconHover=\"agora-line-chevron-left\"\n onClick={handlePrevPage}\n disabled={currentPage === 0}\n aria-label={prevButtonAriaLabel}\n />\n </div>\n <div className=\"next_box\">\n <Button\n variant=\"neutral\"\n darkMode\n className=\"next\"\n hasIcon\n iconOnly\n trailingIcon=\"agora-solid-chevron-right\"\n trailingIconHover=\"agora-line-chevron-right\"\n onClick={handleNextPage}\n disabled={currentPage === totalPages - 1}\n aria-label={nextButtonAriaLabel}\n />\n </div>\n </div>\n </div>\n );\n};\n\nconst TablePagination = forwardRef<HTMLDivElement, TablePaginationProps>(InnerTablePagination);\n\nexport { TablePagination };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactElement, ReactNode } from 'react';\nimport { TableLayout } from './models/table-layout.type';\nimport { TableBodyProps } from './table-body';\nimport { TableCaptionProps } from './table-caption';\nimport { TableFooterProps } from './table-footer';\nimport { TableHeaderProps } from './table-header';\nimport { TablePagination, TablePaginationProps } from './table-pagination';\nimport './table.scss';\n\nexport interface TableProps extends ComponentPropsWithRef<'table'> {\n /**\n * Define the title of table\n */\n caption?: ReactNode;\n /**\n * Table children content\n */\n children?:\n | ReactElement<TableCaptionProps>\n | ReactElement<TableHeaderProps>\n | ReactElement<TableBodyProps>\n | ReactElement<TableFooterProps>\n | Array<\n ReactElement<TableCaptionProps> | ReactElement<TableHeaderProps> | ReactElement<TableBodyProps> | ReactElement<TableFooterProps>\n >;\n /**\n * Define layout for mobile breakpoint\n */\n mobileLayout?: TableLayout;\n /**\n * Define layout for tablet breakpoint\n */\n tabletLayout?: TableLayout;\n /**\n * Define layout for desktop breakpoint\n */\n desktopLayout?: TableLayout;\n /**\n * Configurations used for pagination\n */\n paginationProps?: TablePaginationProps;\n /**\n * Alternative text describing the current sort applied.\n */\n sortDescription?: string;\n}\n\nconst InternalTable: ForwardRefRenderFunction<HTMLTableElement, TableProps> = (\n {\n caption,\n className = '',\n mobileLayout = 'list',\n tabletLayout = 'table',\n desktopLayout = 'table',\n children,\n paginationProps,\n sortDescription = '',\n ...props\n },\n ref\n) => {\n const tableClasseNames = classNames(\n 'agora-table-container',\n {\n 'layout-table-mobile': mobileLayout === 'table',\n 'layout-list-mobile': mobileLayout === 'list',\n 'layout-table-tablet': tabletLayout === 'table',\n 'layout-list-tablet': tabletLayout === 'list',\n 'layout-table-desktop': desktopLayout === 'table',\n 'layout-list-desktop': desktopLayout === 'list'\n },\n className\n );\n\n return (\n <div className=\"agora-table\">\n <table {...props} className={tableClasseNames} ref={ref}>\n {caption && <caption>{caption}</caption>}\n {children}\n </table>\n {paginationProps && <TablePagination {...paginationProps} />}\n <span className=\"sr-only\" aria-live=\"polite\">\n {sortDescription}\n </span>\n </div>\n );\n};\n\nconst Table = forwardRef<HTMLTableElement, TableProps>(InternalTable);\n\nexport { Table };\n","import React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\nimport { BooleanProp } from '@/models';\n\nexport interface TabBodyProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Tab body content.\n */\n children?: ReactNode;\n /**\n * Flag that sets the tab index of the tab body container accordingly to the following accessibility rule: When the tab panel does not contain any focusable elements or the first element with content is not focusable, the tabpanel should set tabindex=\"0\" to include it in the tab sequence of the page.\n */\n focusableContent?: BooleanProp;\n}\n\nexport const TabBody: FC<TabBodyProps> = (props: TabBodyProps) => <div {...props} />;\n","import React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\n\nexport interface TabHeaderProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Tab header content.\n */\n children?: ReactNode;\n}\n\nexport const TabHeader: FC<TabHeaderProps> = (props: TabHeaderProps) => <div {...props} />;\n","import React, { ComponentPropsWithoutRef, FC, ReactElement } from 'react';\nimport { BooleanProp } from '@/models';\nimport { TabBodyProps } from './tab-body';\nimport { TabHeaderProps } from './tab-header';\n\nexport interface TabProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Tab content structure that contains a header and a body.\n */\n children?: Array<ReactElement<TabHeaderProps> | ReactElement<TabBodyProps>>;\n /**\n * Set tab as the active tab.\n */\n active?: BooleanProp;\n}\n\nexport const Tab: FC<TabProps> = (props: TabProps) => <div {...props} />;\n","import classNames from 'classnames';\nimport React, {\n Children,\n ComponentPropsWithoutRef,\n FC,\n isValidElement,\n KeyboardEvent,\n ReactElement,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { TabProps } from './tab';\nimport { TabBodyProps } from './tab-body';\nimport { TabHeaderProps } from './tab-header';\nimport './tabs.scss';\n\nexport type TabCurrentType = 'neutral' | 'primary' | 'secondary';\n\nexport interface TabsProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Collection of tabs.\n */\n children: ReactElement<TabProps> | Array<ReactElement<TabProps>>;\n /**\n * Defines if tab headers should be rendered as full width tabs.\n */\n fullWidth?: BooleanProp;\n /**\n * Automatic activation.\n */\n automaticActivation?: BooleanProp;\n /**\n * Tab vertical orientation\n */\n vertically?: BooleanProp;\n /**\n * Tab current style type\n */\n currentType?: TabCurrentType;\n /**\n * Tab activation event.\n */\n onTabActivation?: (index: number) => void;\n}\n\nexport const Tabs: FC<TabsProps> = ({\n children,\n automaticActivation = true,\n fullWidth = false,\n className = '',\n vertically,\n onTabActivation,\n currentType = 'neutral',\n ...props\n}) => {\n const tabPanelRef = useRef<HTMLDivElement | null>(null);\n\n const tabListRef = useRef<HTMLDivElement | null>(null);\n\n const [activeTab, setActiveTab] = useState(0);\n\n const [tabsHeaderData, setTabsHeaderData] = useState<Array<ReactElement<TabHeaderProps>>>([]);\n\n const [tabsBodyData, setTabsBodyData] = useState<Array<ReactElement<TabBodyProps>>>([]);\n\n const generatedId = useId();\n\n const activateTab = (index: number) => {\n setActiveTab(index);\n onTabActivation?.(index);\n };\n\n useEffect(() => {\n const header: Array<ReactElement<TabHeaderProps>> = [];\n const body: Array<ReactElement<TabBodyProps>> = [];\n\n const parsedChildren = Children.toArray(children) as ReactElement<TabProps>[];\n\n Children.forEach(parsedChildren, (element: ReactElement<TabProps>, index) => {\n if (!isValidElement(element)) {\n return;\n }\n\n if (stringToBoolean(element.props.active)) {\n activateTab(index);\n }\n\n header.push(element.props?.children?.[0] as ReactElement<TabHeaderProps>);\n body.push(element.props?.children?.[1] as ReactElement<TabBodyProps>);\n });\n\n setTabsHeaderData(header);\n setTabsBodyData(body);\n }, [children]);\n\n const handleTabListItemKeyDown = (evt: KeyboardEvent<HTMLButtonElement>) => {\n if (evt.code === 'Tab') {\n const tabIndexValue = tabPanelRef.current?.tabIndex;\n if (tabIndexValue === 0) {\n evt.preventDefault();\n tabPanelRef.current?.focus();\n }\n return;\n }\n\n const tabListItems = tabListRef.current?.querySelectorAll('.tab-list-item') ?? [];\n if (tabListItems.length == 0) {\n return;\n }\n\n let newActiveTab = activeTab;\n const focusedIndex = Array.from(tabListItems).findIndex((o) => o === document.activeElement);\n\n const navigationArrowRight = () => {\n if (!stringToBoolean(vertically)) {\n if (focusedIndex === tabListItems.length - 1) {\n (tabListItems[0] as HTMLButtonElement).focus();\n newActiveTab = 0;\n } else {\n newActiveTab = focusedIndex + 1;\n (tabListItems[newActiveTab] as HTMLButtonElement).focus();\n }\n }\n };\n\n const navigationArrowLeft = () => {\n if (!stringToBoolean(vertically)) {\n if (focusedIndex === 0) {\n (tabListItems[tabListItems.length - 1] as HTMLButtonElement).focus();\n newActiveTab = tabListItems.length - 1;\n } else {\n newActiveTab = focusedIndex - 1;\n (tabListItems[newActiveTab] as HTMLButtonElement).focus();\n }\n }\n };\n const navigationArrowDown = () => {\n if (stringToBoolean(vertically)) {\n if (focusedIndex === tabListItems.length - 1) {\n (tabListItems[0] as HTMLButtonElement).focus();\n newActiveTab = 0;\n } else {\n newActiveTab = focusedIndex + 1;\n (tabListItems[newActiveTab] as HTMLButtonElement).focus();\n }\n }\n };\n const navigationArrowUp = () => {\n if (stringToBoolean(vertically)) {\n if (focusedIndex === 0) {\n (tabListItems[tabListItems.length - 1] as HTMLButtonElement).focus();\n newActiveTab = tabListItems.length - 1;\n } else {\n newActiveTab = focusedIndex - 1;\n (tabListItems[newActiveTab] as HTMLButtonElement).focus();\n }\n }\n };\n\n switch (evt.code) {\n case 'Home':\n (tabListItems[0] as HTMLButtonElement).focus();\n newActiveTab = 0;\n break;\n\n case 'End':\n (tabListItems[tabListItems.length - 1] as HTMLButtonElement).focus();\n newActiveTab = tabListItems.length - 1;\n break;\n\n case 'ArrowRight':\n navigationArrowRight();\n break;\n\n case 'ArrowLeft':\n navigationArrowLeft();\n break;\n\n case 'ArrowDown':\n navigationArrowDown();\n break;\n\n case 'ArrowUp':\n navigationArrowUp();\n break;\n\n default:\n break;\n }\n\n if (stringToBoolean(automaticActivation)) {\n activateTab(newActiveTab);\n }\n };\n\n const handleTabPanelKeydown = (evt: KeyboardEvent<HTMLDivElement>) => {\n if (evt.currentTarget === evt.target && evt.code === 'Tab' && evt.shiftKey) {\n evt.preventDefault();\n\n const activeTabButton = tabListRef.current?.querySelector('.tab-list-item.active') as HTMLButtonElement;\n activeTabButton?.focus();\n }\n };\n\n const tabPanelFocusProps = useMemo(() => {\n const activeTabData = tabsBodyData[activeTab];\n\n if (stringToBoolean(activeTabData?.props.focusableContent)) {\n return {};\n }\n\n return {\n tabIndex: 0,\n onKeyDown: handleTabPanelKeydown\n };\n }, [tabsBodyData, activeTab]);\n\n const tabsClassName = classNames(\n 'agora-tabs',\n { 'full-width': stringToBoolean(fullWidth), 'vertically': stringToBoolean(vertically) },\n className\n );\n\n const tabPanelClassName = classNames('tab-panel', {\n 'current-neutral': currentType === 'neutral',\n 'current-primary': currentType === 'primary',\n 'current-secondary': currentType === 'secondary'\n });\n return (\n <div className={tabsClassName} {...props}>\n <div ref={tabListRef} role=\"tablist\" className=\"tab-list\">\n {Children.map(tabsHeaderData, (child: ReactElement<TabHeaderProps>, index) => {\n const key = `agora-tab-${generatedId}-${index}`;\n const tabListItemClassNames = classNames('tab-list-item', {\n 'active': activeTab === index,\n 'current-neutral': currentType === 'neutral',\n 'current-primary': currentType === 'primary',\n 'current-secondary': currentType === 'secondary'\n });\n return (\n <button\n id={key}\n key={key}\n role=\"tab\"\n tabIndex={activeTab === index ? 0 : -1}\n onClick={(evt) => {\n evt.currentTarget.blur();\n activateTab(index);\n }}\n onKeyDown={handleTabListItemKeyDown}\n aria-selected={activeTab === index}\n className={tabListItemClassNames}\n >\n {child.props.children}\n </button>\n );\n })}\n </div>\n {tabsBodyData[activeTab] && (\n <div role=\"tabpanel\" className={tabPanelClassName} aria-labelledby={`agora-tab-${generatedId}-${activeTab}`}>\n <div role=\"presentation\" className=\"tab-panel-content\" ref={tabPanelRef} {...tabPanelFocusProps}>\n {tabsBodyData[activeTab].props.children}\n </div>\n </div>\n )}\n </div>\n );\n};\n","import { Button, ButtonAppearance, ButtonVariant } from '@/components/button';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, { ComponentPropsWithRef, forwardRef, ForwardRefRenderFunction, ReactNode, useMemo } from 'react';\nimport './tag.scss';\n\nexport interface TagProps extends ComponentPropsWithRef<'button'> {\n /**\n * Defines if the button uses an icon.\n */\n hasIcon?: BooleanProp;\n /**\n * Defines the name of the icon to use.\n */\n icon?: string;\n /**\n * Defines the name of the icon to be displayed on mouse hover. If none specified, it will the appropriate variant of the icon.\n */\n iconHover?: string;\n /**\n * Children content.\n */\n children?: ReactNode;\n /**\n * Add a darkMode to the button tag.\n */\n darkMode?: BooleanProp;\n}\n\nexport const InnerTag: ForwardRefRenderFunction<HTMLButtonElement, TagProps> = (\n { darkMode = false, icon = '', iconHover = '', children, className = '', ...props },\n ref\n) => {\n const tagClassName = classNames('agora-btn-tag', className);\n\n const buttonStyleMemo = useMemo<{ appearance: ButtonAppearance; variant: ButtonVariant }>(() => {\n return {\n appearance: 'outline',\n variant: 'neutral',\n darkMode: stringToBoolean(darkMode)\n };\n }, [darkMode]);\n\n return (\n <Button\n {...props}\n fullWidth={false}\n hasIcon\n trailingIcon=\"agora-line-x\"\n trailingIconHover=\"agora-solid-x\"\n leadingIcon={stringToBoolean(props.hasIcon) ? icon : undefined}\n leadingIconHover={stringToBoolean(props.hasIcon) ? iconHover : undefined}\n className={tagClassName}\n ref={ref}\n {...buttonStyleMemo}\n >\n {children}\n </Button>\n );\n};\n\nexport const Tag = forwardRef<HTMLButtonElement, TagProps>(InnerTag);\n","import { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\nimport './timeline-event.scss';\n\nexport interface TimelineEventProps extends ComponentPropsWithoutRef<'button'> {\n /**\n * Hide the label\n */\n hideLabel?: BooleanProp;\n /**\n * Label for the event\n */\n label?: string;\n /**\n * Additional class names\n */\n className?: string;\n /**\n * Is the event active\n */\n active?: boolean;\n /**\n * Has an icon\n */\n hasIcon?: BooleanProp;\n /**\n * Icon name\n */\n icon?: string;\n /**\n * Icon alt text\n */\n altIcon?: string;\n /**\n * Determines if the timeline event is interactive or not\n */\n interactive?: BooleanProp;\n /**\n * Children\n */\n children: ReactNode;\n}\n\nexport const TimelineEvent: FC<TimelineEventProps> = ({ label, hideLabel, active, className, interactive, ...props }) => {\n const timelineEventClassNames = classNames('agora-timeline-step', className, { active: stringToBoolean(active) });\n const timelineLabelClassNames = classNames('timeline-label', { 'invisible h-0 overflow-hidden': stringToBoolean(hideLabel) });\n\n const propsClone = { ...props };\n delete propsClone.children;\n\n return (\n <button\n {...propsClone}\n className={timelineEventClassNames}\n tabIndex={interactive ? 0 : -1}\n aria-current={stringToBoolean(active)}\n aria-label={stringToBoolean(hideLabel) ? propsClone['aria-label'] ?? label : propsClone['aria-label']}\n >\n {label && !stringToBoolean(hideLabel) && <div className={timelineLabelClassNames}>{label}</div>}\n <div className=\"timeline-event-container\">\n <div className=\"timeline-event-left-indicator\" />\n <div className=\"timeline-event-dot\">\n <div className=\"timeline-event\" />\n </div>\n <div className=\"timeline-event-right-indicator\" />\n </div>\n </button>\n );\n};\n","import React, { FC } from 'react';\nimport { Icon } from '@/components/icon';\nimport { stringToBoolean } from '@/utils';\nimport { TimelineEventProps } from '../timeline-event/timeline-event';\nimport './timeline-event-vertical.scss';\n\nexport const TimelineEventVertical: FC<TimelineEventProps> = ({ hasIcon, icon, altIcon, children }) => {\n return (\n <div className=\"agora-timeline-item\">\n <div className=\"timeline-event\">\n {!stringToBoolean(hasIcon) ? (\n <div className=\"timeline-dot\" />\n ) : (\n <div className=\"timeline-icon\">\n <Icon name={icon} alt={altIcon} aria-hidden={!altIcon} />\n </div>\n )}\n <div className=\"timeline-line\" />\n </div>\n <div className=\"timeline-content\">{children}</div>\n </div>\n );\n};\n","import React, { Children, ComponentPropsWithoutRef, FC, ReactElement, useEffect, useId, useState } from 'react';\nimport classNames from 'classnames';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { TimelineEventVertical } from '../shared/timeline-event-vertical';\nimport { TimelineEventProps } from '../shared/timeline-event/timeline-event';\nimport './timeline-vertical.scss';\n\nexport interface TimelineVerticalProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Hide the labels\n */\n hideLabels: BooleanProp;\n /**\n * Timeline events\n */\n children: ReactElement<TimelineEventProps> | Array<ReactElement<TimelineEventProps>>;\n}\n\nexport const TimelineVertical: FC<TimelineVerticalProps> = ({ hideLabels, ...props }) => {\n const generateId = useId();\n const [events, setEvents] = useState<Array<Array<ReactElement<TimelineEventProps>>>>([]);\n\n useEffect(() => {\n const sortedEvents = Children.toArray(props.children) as Array<ReactElement<TimelineEventProps>>;\n\n const groupedEvents = sortedEvents.reduce(\n (grouped, event) => {\n const label = event.props.label ?? '';\n grouped[label] = grouped[label] || [];\n grouped[label].push(event);\n return grouped;\n },\n {} as Record<string, ReactElement<TimelineEventProps>[]>\n );\n\n const groupedEventsArray = Object.values(groupedEvents);\n\n setEvents(groupedEventsArray);\n }, [props.children]);\n\n return (\n <div {...props} className={classNames('agora-timeline-vertical')}>\n {events.map((group, groupIndex) => {\n const keyGroup = `timeline-group-${groupIndex}-${generateId}`;\n\n const groupClassNames = classNames('timeline-group', { 'has-label': !stringToBoolean(hideLabels) });\n\n return (\n <div key={keyGroup} className={groupClassNames}>\n {!stringToBoolean(hideLabels) && group[0]?.props.label && (\n <div className=\"timeline-label-wrapper\">\n <div className=\"timeline-label\">{group[0].props.label}</div>\n </div>\n )}\n <div className=\"timeline-items\">\n {group.map((event, eventIndex) => {\n const keyEvent = `timeline-event-${groupIndex}-${eventIndex}-${generateId}`;\n return (\n <TimelineEventVertical key={keyEvent} hasIcon={event.props.hasIcon} icon={event.props.icon} altIcon={event.props.altIcon}>\n {event.props.children}\n </TimelineEventVertical>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n","import classNames from 'classnames';\nimport React, { Children, ComponentPropsWithoutRef, FC, ReactElement, useEffect, useLayoutEffect, useState } from 'react';\nimport { BooleanProp } from '@/models';\nimport { stringToBoolean } from '@/utils';\nimport { Button } from '@/components/button';\nimport { TimelineEvent, TimelineEventProps } from '../shared/timeline-event/timeline-event';\nimport { TimelineVertical } from '../timeline-vertical';\nimport './timeline-horizontal.scss';\n\nexport interface TimelineHorizontalProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Label for the next button\n **/\n nextLabel: string;\n /**\n * Label for the previous button\n **/\n previousLabel: string;\n /**\n * Determines if the timeline is interactive or not\n **/\n interactive?: BooleanProp;\n /**\n * Timeline events\n **/\n children: ReactElement<TimelineEventProps> | Array<ReactElement<TimelineEventProps>>;\n}\n\nexport const TimelineHorizontal: FC<TimelineHorizontalProps> = ({\n children,\n nextLabel,\n previousLabel,\n interactive = true,\n className,\n ...props\n}) => {\n const [isMobile, setIsMobile] = useState(window.innerWidth < 768);\n const maxVisibleEvents = 6;\n const [events, setEvents] = useState<Array<ReactElement<TimelineEventProps>>>([]);\n const [activeEvent, setActiveEvent] = useState<number>(0);\n\n const [startIndex, setStartIndex] = useState<number>(0);\n const [endIndex, setEndIndex] = useState<number>(maxVisibleEvents);\n\n useEffect(() => {\n const eventChildren = Children.toArray(children) as Array<ReactElement<TimelineEventProps>>;\n setEvents(eventChildren);\n const activeIndex = eventChildren.findIndex((child) => child.props.active);\n setActiveEvent(activeIndex !== -1 ? activeIndex : 0);\n }, [children]);\n\n const handleClickEvent = (index: number) => {\n setActiveEvent(index);\n };\n\n const getTimelineStepClasses = (index: number, currentActiveEvent: number) => {\n return index < currentActiveEvent ? 'completed' : '';\n };\n\n const handleNextButtonClick = () => {\n const newEvent = Math.min(activeEvent + 1, Children.count(children) - 1);\n setActiveEvent(newEvent);\n\n if (newEvent >= endIndex) {\n setStartIndex(startIndex + 1);\n setEndIndex(endIndex + 1);\n }\n };\n\n const handlePreviousButtonClick = () => {\n const newEvent = Math.max(activeEvent - 1, 0);\n setActiveEvent(newEvent);\n\n if (newEvent < startIndex) {\n setStartIndex(startIndex - 1);\n setEndIndex(endIndex - 1);\n }\n };\n\n const selectedContentEvent = Children.map(children, (child, index) => {\n return index === activeEvent ? child.props.children : null;\n });\n\n const visibleEvents = events.slice(startIndex, endIndex);\n\n useEffect(() => {\n if (activeEvent > endIndex - 1 || activeEvent < startIndex) {\n const newStartIndex = Math.max(0, activeEvent - Math.floor(maxVisibleEvents / 2));\n const newEndIndex = newStartIndex + maxVisibleEvents;\n\n if (newEndIndex > events.length) {\n setStartIndex(events.length - maxVisibleEvents);\n setEndIndex(events.length);\n } else {\n setStartIndex(newStartIndex);\n setEndIndex(newEndIndex);\n }\n }\n }, [activeEvent, events, maxVisibleEvents, startIndex, endIndex]);\n\n useLayoutEffect(() => {\n function updateSize() {\n setIsMobile(window.innerWidth < 768);\n }\n window.addEventListener('resize', updateSize);\n updateSize();\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n const renderTimelineActions = () => {\n const isPreviousButtonDisabled = activeEvent === 0;\n const isLastButtonDisabled = activeEvent === Children.count(children) - 1;\n\n return (\n <div className=\"timeline-actions\">\n <Button\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n leadingIcon=\"agora-line-arrow-left-circle\"\n leadingIconHover=\"agora-line-arrow-left-circle\"\n className=\"button-previous\"\n onClick={handlePreviousButtonClick}\n disabled={isPreviousButtonDisabled}\n >\n {previousLabel}\n </Button>\n <Button\n appearance=\"link\"\n variant=\"primary\"\n hasIcon\n trailingIcon=\"agora-line-arrow-right-circle\"\n trailingIconHover=\"agora-line-arrow-right-circle\"\n className=\"button-next\"\n onClick={handleNextButtonClick}\n disabled={isLastButtonDisabled}\n >\n {nextLabel}\n </Button>\n </div>\n );\n };\n\n const timelineClasses = classNames(\n 'agora-timeline-horizontal',\n {\n 'event-static': !stringToBoolean(interactive)\n },\n className\n );\n\n return (\n <div>\n {isMobile ? (\n <TimelineVertical {...props} hideLabels={false}>\n {children}\n </TimelineVertical>\n ) : (\n <div {...props} className={timelineClasses}>\n <div className=\"timeline-steps\">\n {visibleEvents.map((event, index) => {\n const isFirstVisibleEvent = index + startIndex === 0;\n const isLastVisibleEvent = index + startIndex === endIndex - 1;\n\n const hasMoreEventsLeft = startIndex > 0;\n const hasMoreEventsRight = endIndex < events.length;\n\n const eventClassNames = classNames(getTimelineStepClasses(index + startIndex, activeEvent), {\n 'first-event': isFirstVisibleEvent,\n 'last-event': isLastVisibleEvent && index + startIndex === events.length - 1,\n 'has-more-events-left': hasMoreEventsLeft,\n 'has-more-events-right': hasMoreEventsRight\n });\n\n return (\n <TimelineEvent\n key={event.props.id ?? index}\n {...event.props}\n active={index + startIndex === activeEvent}\n onClick={() => handleClickEvent(index + startIndex)}\n interactive={stringToBoolean(interactive)}\n className={eventClassNames}\n >\n {event.props.children}\n </TimelineEvent>\n );\n })}\n </div>\n {stringToBoolean(interactive) && events.length > maxVisibleEvents && renderTimelineActions()}\n <div className=\"timeline-content\">{selectedContentEvent}</div>\n </div>\n )}\n </div>\n );\n};\n","import { createContext, useContext } from 'react';\nimport { ToastProps } from './toast';\nimport './toast.scss';\n\nexport interface ToastContextProps {\n showToast: (data: ToastProps, duration?: number) => void;\n removeToast: (data: ToastProps) => void;\n}\n\nconst ToastContext = createContext<ToastContextProps>({} as ToastContextProps);\n\nconst useToastContext = (): ToastContextProps => {\n const context = useContext(ToastContext);\n return context;\n};\n\nexport { ToastContext, useToastContext };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\nimport { Button } from '@/components/button';\nimport { Icon } from '@/components/icon';\nimport { useToastContext } from './toast-context';\nimport './toast.scss';\n\nexport type ToastType = 'success' | 'failure' | 'warning' | 'info';\n\nexport interface ToastProps extends Omit<ComponentPropsWithoutRef<'div'>, 'id' | 'title'> {\n /**\n * The id of the toast\n */\n id: number | string;\n /**\n * Title of the toast\n */\n title: ReactNode;\n /**\n * Description of the toast\n */\n description: ReactNode;\n /**\n * Type variant of the toast\n */\n type: ToastType;\n /**\n * Alternative text to apply to the toast close button\n */\n closeLabel: string;\n}\n\nexport const Toast: FC<ToastProps> = ({ className, id, title, description, type, closeLabel }: ToastProps) => {\n const { removeToast } = useToastContext();\n\n const getIconNameForType = (selectedType: ToastType): string => {\n switch (selectedType) {\n case 'success':\n return 'agora-solid-check-circle';\n case 'failure':\n return 'agora-solid-alert-triangle';\n case 'warning':\n return 'agora-solid-info-mark';\n default:\n return 'agora-solid-info-mark';\n }\n };\n\n const handleCloseClick = () => {\n removeToast({\n id,\n type,\n title,\n description,\n closeLabel\n } as ToastProps);\n };\n\n const toastContainerClassnames = classNames('agora-toast', { [`agora-toast-${type}`]: type }, className);\n\n return (\n <div className={toastContainerClassnames} role=\"alert\" key={id}>\n <Icon className=\"toast-icon mt-[10px]\" name={getIconNameForType(type)} dimensions=\"m\" aria-hidden />\n\n <div className=\"toast-messages flex flex-col gap-8\">\n <p className=\"toast-title mt-8\">{title}</p>\n <p className=\"toast-description\">{description}</p>\n </div>\n\n <Button\n className=\"toast-close-button\"\n appearance=\"link\"\n variant=\"neutral\"\n onClick={handleCloseClick}\n aria-label={closeLabel}\n hasIcon\n iconOnly\n trailingIcon=\"agora-line-x\"\n trailingIconHover=\"agora-solid-x\"\n ></Button>\n </div>\n );\n};\n","import { useState } from 'react';\nimport { ToastProps } from './toast';\nimport { asyncTrigger } from '@/utils';\n\nconst useToast = () => {\n const [toasts, setToasts] = useState<ToastProps[]>([]);\n\n const removeToast = (toast: ToastProps) => {\n setToasts((prevToasts) => prevToasts.filter((t) => t.id !== toast.id));\n };\n\n const showToast = (toast: ToastProps, duration?: number) => {\n setToasts((prevToasts) => {\n return [...prevToasts, toast];\n });\n\n if (duration && duration > 0) {\n asyncTrigger(() => {\n removeToast(toast);\n }, duration);\n }\n };\n\n return { toasts, showToast, removeToast };\n};\n\nexport { useToast };\n","import React, { FC, ReactNode, useMemo } from 'react';\nimport { Toast } from './toast';\nimport { ToastContext } from './toast-context';\nimport './toast.scss';\nimport { useToast } from './use-toast';\nimport { useWindowSize } from '@/hooks';\n\nexport type ToastPositions = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n\nexport interface ToastProviderProps {\n children?: ReactNode;\n position?: ToastPositions;\n}\nconst ToastProvider: FC<ToastProviderProps> = ({ children, position = 'bottom-right' }: ToastProviderProps) => {\n const { toasts, showToast, removeToast } = useToast();\n const { width } = useWindowSize();\n\n const contextValue = useMemo(\n () => ({\n showToast,\n removeToast\n }),\n [showToast, removeToast]\n );\n\n const memoToast = useMemo(() => {\n const VISIBLE_TOAST_NUMBER_MOBILE = 3;\n const VISIBLE_TOAST_NUMBER_DESKTOP = 5;\n const isMobile = width < 768;\n const visibleToastsCount = isMobile ? VISIBLE_TOAST_NUMBER_MOBILE : VISIBLE_TOAST_NUMBER_DESKTOP;\n\n if (position.includes('bottom')) {\n return [...toasts].slice(-1 * visibleToastsCount);\n }\n\n return [...toasts].reverse().slice(0, visibleToastsCount);\n }, [position, toasts, width]);\n\n return (\n <ToastContext.Provider value={contextValue}>\n {children}\n {memoToast.length > 0 && (\n <div className={`agora-toast-list toast-list-${position}`} aria-live=\"assertive\">\n {memoToast.map((toast) => {\n return <Toast key={toast.id} {...toast} />;\n })}\n </div>\n )}\n </ToastContext.Provider>\n );\n};\n\nexport { ToastProvider };\n","import classNames from 'classnames';\nimport React, { ComponentPropsWithoutRef, FC, useId } from 'react';\nimport './file-list.scss';\nimport { Button, ButtonProps } from '@/components/button';\n\nexport interface FileListProps extends ComponentPropsWithoutRef<'div'> {\n files: File[];\n\n removeFileButtonLabel: string;\n onFileRemove?: (fileRemoved: File) => void;\n\n replaceFileButtonLabel: string;\n onFileReplace?: (fileReplaced: File) => void;\n}\n\nconst FileList: FC<FileListProps> = ({\n files = [],\n\n removeFileButtonLabel,\n onFileRemove,\n\n replaceFileButtonLabel,\n onFileReplace,\n\n ...props\n}) => {\n const generatedId = useId();\n\n const handleReplaceFile = (fileToReplace: File) => {\n onFileReplace?.(fileToReplace);\n };\n\n const handleRemoveFile = (fileToRemoved: File) => {\n onFileRemove?.(fileToRemoved);\n };\n\n const getParsedSizeString = (bytes: number, decimals = 0) => {\n const k = 1024;\n const decimalCases = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimalCases))} ${sizes[i]}`;\n };\n\n const getAvailableFileActions = (file: File): ButtonProps[] => {\n return [\n {\n 'className': 'replace-action',\n 'hasIcon': true,\n 'iconOnly': true,\n 'appearance': 'link',\n 'variant': 'neutral',\n 'leadingIcon': 'agora-line-refresh-ccw',\n 'leadingIconHover': 'agora-solid-refresh-ccw',\n 'onClick': () => handleReplaceFile(file),\n 'aria-label': `${replaceFileButtonLabel} ${file.name}`\n },\n {\n 'className': 'delete-action',\n 'hasIcon': true,\n 'iconOnly': true,\n 'appearance': 'link',\n 'variant': 'neutral',\n 'leadingIcon': 'agora-line-trash',\n 'leadingIconHover': 'agora-solid-trash',\n 'onClick': () => handleRemoveFile(file),\n 'aria-label': `${removeFileButtonLabel} ${file.name}`\n }\n ] as ButtonProps[];\n };\n\n const fileListClassNames = classNames('agora-file-list', { 'p-16': files.length > 0 }, props.className);\n\n return (\n <ul className={fileListClassNames} aria-live=\"polite\">\n {files.map((file, index) => {\n const fileIndex = `${generatedId}-${file.name}-${index}`;\n const actions = getAvailableFileActions(file);\n\n return (\n <li className=\"file\" key={fileIndex}>\n <div className=\"file-item\">\n <div className=\"file-info\">\n <div className=\"name\">{file.name}</div>\n <div className=\"size\">{getParsedSizeString(file.size)}</div>\n </div>\n\n {actions.length > 0 && (\n <div className=\"actions\">\n {actions.map((actionBtnProps, actionIndex) => {\n const actionKey = `${fileIndex}-action-${actionIndex}`;\n return <Button key={actionKey} {...actionBtnProps} />;\n })}\n </div>\n )}\n </div>\n\n <div className=\"file-divider\" />\n </li>\n );\n })}\n </ul>\n );\n};\n\nexport { FileList };\n","import { asyncTrigger } from '@/utils';\nimport { useEffect, useRef } from 'react';\n\nconst isFileExtensionAllowed = (fileName: string, extensionWhitelist: string[]): boolean => {\n if (extensionWhitelist.length == 0) {\n return true;\n }\n\n const lastPoint = fileName.lastIndexOf('.');\n const fileExtension = fileName.substring(lastPoint);\n const isAllowed = extensionWhitelist.includes(fileExtension);\n\n return isAllowed;\n};\n\nconst isNotDuplicated = (filename: string, files: File[]): boolean => {\n return files.findIndex((f) => f.name === filename) < 0;\n};\n\nconst getFileInput = (\n multiple: boolean,\n extensionWhiteList: string[],\n onChangeHandler: (event: Event) => void,\n fileToReplace?: string\n): HTMLInputElement => {\n const input = document.createElement('input');\n input.type = 'file';\n input.onchange = onChangeHandler;\n input.multiple = multiple;\n input.accept = extensionWhiteList.join(',');\n\n if (fileToReplace) {\n input.dataset.replaceFile = fileToReplace;\n }\n\n return input;\n};\n\nconst validateFiles = (\n lastFiles: File[],\n newFiles: File[],\n maxCount: number,\n maxSize: number,\n extensionWhitelist: string[],\n replaceValidation = false\n): FileUploadError => {\n let hasErrors = false;\n const duplicatedFiles: string[] = [];\n const sizeExceededFiles: string[] = [];\n const extensionForbiddenFiles: string[] = [];\n\n const maxCountExceeded = !replaceValidation && maxCount < lastFiles.length + newFiles.length;\n if (maxCountExceeded) {\n hasErrors = true;\n }\n\n newFiles.forEach((file) => {\n if (!isNotDuplicated(file.name, lastFiles)) {\n hasErrors = true;\n duplicatedFiles.push(file.name);\n }\n\n if (file.size > maxSize) {\n hasErrors = true;\n sizeExceededFiles.push(file.name);\n }\n\n if (!isFileExtensionAllowed(file.name, extensionWhitelist)) {\n hasErrors = true;\n extensionForbiddenFiles.push(file.name);\n }\n });\n\n return {\n hasErrors,\n maxCountExceeded,\n duplicatedFiles,\n sizeExceededFiles,\n extensionForbiddenFiles\n } as FileUploadError;\n};\n\nexport interface FileUploadError {\n hasErrors: boolean;\n maxCountExceeded: boolean;\n duplicatedFiles: string[];\n sizeExceededFiles: string[];\n extensionForbiddenFiles: string[];\n}\n\nexport interface IUseFileUpload {\n files: File[];\n errors: FileUploadError | null;\n onAddFiles: () => void;\n onRemoveFile: (file: File) => void;\n onReplaceFile: (file: File) => void;\n onPasteFiles: (files: File[]) => void;\n onReset: (files: File[]) => void;\n}\n\nexport const useFileUpload = (\n maxFileCount: number,\n maxFileSize: number,\n extensionWhitelist: string[],\n multiple: boolean,\n onChange: (files: File[], errors: FileUploadError | null) => void,\n defaultFiles?: File[]\n): IUseFileUpload => {\n const lastFiles = useRef<File[]>([]);\n const lastErrors = useRef<FileUploadError | null>(null);\n\n const getParsedMaxCount = () => {\n return multiple ? maxFileCount : 1;\n };\n\n const triggerOnChange = (files: File[], errors: FileUploadError | null) => {\n asyncTrigger(() => onChange(files, errors));\n };\n\n const resetFiles = (initialFiles: File[]) => {\n const validationErrors = validateFiles([], initialFiles, getParsedMaxCount(), maxFileSize, extensionWhitelist);\n\n const newFiles = [];\n\n if (!validationErrors.hasErrors) {\n lastErrors.current = null;\n newFiles.push(...initialFiles);\n } else {\n lastErrors.current = validationErrors;\n }\n\n lastFiles.current = newFiles;\n triggerOnChange(lastFiles.current, lastErrors.current);\n };\n\n const addFiles = (filesToAdd: File[]) => {\n if (filesToAdd.length == 0) {\n return;\n }\n\n const validationErrors = validateFiles(lastFiles.current, filesToAdd, getParsedMaxCount(), maxFileSize, extensionWhitelist);\n\n const newFiles = [...lastFiles.current];\n\n if (!validationErrors.hasErrors) {\n lastErrors.current = null;\n newFiles.push(...filesToAdd);\n } else {\n lastErrors.current = validationErrors;\n }\n\n lastFiles.current = newFiles;\n triggerOnChange(lastFiles.current, lastErrors.current);\n };\n\n const removeFile = (file: File) => {\n lastErrors.current = null;\n lastFiles.current = lastFiles.current.filter((f) => f.name !== file.name);\n triggerOnChange(lastFiles.current, lastErrors.current);\n };\n\n const replaceFile = (replaceFileName: string, filesToAdd: File[]) => {\n if (!replaceFileName || filesToAdd.length == 0) {\n return;\n }\n\n const validationErrors = validateFiles(lastFiles.current, [filesToAdd[0]], getParsedMaxCount(), maxFileSize, extensionWhitelist, true);\n\n const newFiles = [...lastFiles.current];\n\n if (!validationErrors.hasErrors) {\n lastErrors.current = null;\n\n const targetIndex = newFiles.findIndex((f) => f.name === replaceFileName);\n\n if (targetIndex >= 0) {\n newFiles.splice(targetIndex, 1, filesToAdd[0]);\n }\n } else {\n lastErrors.current = validationErrors;\n }\n\n lastFiles.current = newFiles;\n triggerOnChange(lastFiles.current, lastErrors.current);\n };\n\n const handleInputFileChangeOnAdd = (event: Event) => {\n const target = event.currentTarget as HTMLInputElement;\n\n const selectedFiles = Array.from(target.files ?? []);\n addFiles(selectedFiles);\n };\n\n const handleInputFileChangeOnReplace = (event: Event) => {\n const target = event.currentTarget as HTMLInputElement;\n const selectedFiles = Array.from(target.files ?? []);\n replaceFile(target.dataset.replaceFile ?? '', selectedFiles);\n };\n\n useEffect(() => {\n if (defaultFiles) {\n resetFiles(defaultFiles);\n }\n }, [defaultFiles]);\n\n const onAddFiles = () => {\n const input = getFileInput(multiple, extensionWhitelist, handleInputFileChangeOnAdd);\n input.click();\n };\n\n const onRemoveFile = (file: File) => {\n removeFile(file);\n };\n\n const onReplaceFile = (file: File) => {\n const input = getFileInput(multiple, extensionWhitelist, handleInputFileChangeOnReplace, file.name);\n input.click();\n };\n\n const onPasteFiles = (newFiles: File[]) => {\n addFiles(newFiles);\n };\n\n return { files: lastFiles.current, onAddFiles, onRemoveFile, onReplaceFile, onPasteFiles } as IUseFileUpload;\n};\n","import { Button } from '@/components/button/';\nimport { Feedback } from '@/components/shared/feedback/';\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, createSyntheticEvent, stringToBoolean } from '@/utils';\nimport classNames from 'classnames';\nimport React, {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { FileList } from '../shared/file-list';\nimport { FileUploadError, useFileUpload } from '../shared/use-file-upload';\n\nimport './button-uploader.scss';\n\nexport interface ButtonUploaderProps extends ComponentPropsWithoutRef<'input'> {\n /**\n * Label for the button file uploader.\n */\n label?: string;\n /**\n * Label for the button file uploader after files selected.\n */\n selectedFilesLabel?: string;\n /**\n * Hides the button labels.\n */\n hideLabel?: BooleanProp;\n /**\n * Alternative text for the delete file button of the file list.\n */\n removeFileButtonLabel: string;\n /**\n * Alternative text for the replace file button of the file list.\n */\n replaceFileButtonLabel: string;\n /**\n * Instruction text for the button uploader.\n */\n extensionsInstructions?: ReactNode;\n /**\n * Max number of files to upload.\n */\n maxCount?: number;\n /**\n * Max size in bytes of each file.\n */\n maxSize?: number;\n /**\n * Max count exceeded error message.\n */\n maxCountExceededErrorLabel?: string;\n /**\n * Max size exceeded error message.\n */\n maxSizeExceededErrorLabel?: string;\n /**\n * Forbidden error message.\n */\n forbiddenExtensionErrorLabel?: string;\n /**\n * Duplicated error message.\n */\n duplicatedFileErrorLabel?: string;\n /**\n * Initial default files.\n */\n files?: File[];\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below button uploader.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Highlights the button uploader with some error indication.\n */\n hasError?: BooleanProp;\n}\n\nconst InnerButtonUploader: ForwardRefRenderFunction<HTMLInputElement, ButtonUploaderProps> = (\n {\n label,\n selectedFilesLabel,\n hideLabel,\n\n removeFileButtonLabel,\n replaceFileButtonLabel,\n\n extensionsInstructions,\n accept = '',\n maxSize = Number.MAX_SAFE_INTEGER,\n maxCount = Number.MAX_SAFE_INTEGER,\n\n maxCountExceededErrorLabel = '',\n maxSizeExceededErrorLabel = '',\n forbiddenExtensionErrorLabel = '',\n duplicatedFileErrorLabel = '',\n\n multiple,\n disabled,\n onChange,\n\n files: defaultFiles,\n\n hasError,\n hasFeedback,\n feedbackState = 'info',\n feedbackText,\n\n ...props\n },\n ref: Ref<HTMLInputElement | null>\n) => {\n const generatedId = useId();\n\n const innerButtonRef = useRef<HTMLButtonElement | null>(null);\n const innerInputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(ref, () => innerInputRef.current);\n\n const [labelText, setLabelText] = useState(label);\n\n const [errorMessages, setErrorMessages] = useState([] as string[]);\n\n const updateErrors = (errors: FileUploadError | null) => {\n if (!errors) {\n setErrorMessages([]);\n return;\n }\n\n const parsedErrors: string[] = [];\n if (errors.maxCountExceeded) {\n parsedErrors.push(maxCountExceededErrorLabel);\n }\n\n errors.duplicatedFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${duplicatedFileErrorLabel}`);\n });\n\n errors.sizeExceededFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${maxSizeExceededErrorLabel}`);\n });\n\n errors.extensionForbiddenFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${forbiddenExtensionErrorLabel}`);\n });\n\n setErrorMessages(parsedErrors);\n };\n\n const handleOnChangeFiles = (files: File[], errors: FileUploadError | null) => {\n if (files.length > 0) {\n setLabelText(`${files.length} ${selectedFilesLabel}`);\n } else {\n setLabelText(label);\n }\n\n if (innerInputRef.current) {\n const list = new DataTransfer();\n\n files.forEach((f) => {\n list.items.add(f);\n });\n\n innerInputRef.current.files = list.files;\n\n const syntheticEvent = createSyntheticEvent<HTMLInputElement>(innerInputRef.current, 'change');\n asyncTrigger(() => onChange?.(syntheticEvent as ChangeEvent<HTMLInputElement>));\n }\n\n updateErrors(errors);\n };\n\n const { files, onAddFiles, onRemoveFile, onReplaceFile, onPasteFiles } = useFileUpload(\n maxCount,\n maxSize,\n accept ? accept.split(',') : [],\n !!multiple,\n handleOnChangeFiles,\n defaultFiles\n );\n\n const canUpload = useMemo(() => {\n if (multiple) {\n return !disabled && files.length < maxCount;\n }\n\n return !disabled && files.length === 0;\n }, [disabled, multiple, files]);\n\n const handleFileReplace = (newFileToReplace: File) => {\n onReplaceFile(newFileToReplace);\n };\n\n const handleFileRemove = (fileToRemove: File) => {\n onRemoveFile(fileToRemove);\n };\n\n useEffect(() => {\n const handlePaste = (e: Event) => {\n if (!canUpload) {\n return;\n }\n\n if (innerButtonRef.current && innerButtonRef.current === document.activeElement) {\n const { clipboardData } = e as ClipboardEvent;\n if (clipboardData && clipboardData.files.length > 0) {\n const clipboardFiles = Array.from(clipboardData.files) ?? [];\n onPasteFiles(clipboardFiles);\n }\n }\n };\n\n window.addEventListener('paste', handlePaste);\n\n return () => {\n window.removeEventListener('paste', handlePaste);\n };\n }, []);\n\n const containerClassNames = classNames(\n 'agora-button-file-uploader',\n { 'cannot-upload': !canUpload },\n { 'gap-32': files.length > 0 },\n props.className\n );\n\n const buttonContainerClassNames = classNames('button-file-uploader-container');\n\n const fileListClassNames = classNames('file-list-container', { 'p-16': files.length > 0 });\n\n return (\n <div className={containerClassNames}>\n <input ref={innerInputRef} type=\"file\" style={{ display: 'none' }} />\n\n <div className={buttonContainerClassNames}>\n <Button\n ref={innerButtonRef}\n fullWidth\n iconOnly={stringToBoolean(hideLabel)}\n hasIcon\n trailingIcon=\"agora-line-upload\"\n trailingIconHover=\"agora-solid-upload\"\n variant={errorMessages.length > 0 || stringToBoolean(hasError) ? 'danger' : 'neutral'}\n disabled={!canUpload}\n onClick={() => onAddFiles()}\n >\n {labelText}\n </Button>\n\n <div className=\"extension-instructions\">{extensionsInstructions}</div>\n\n {errorMessages.length > 0 && (\n <div className=\"errors-container\">\n {errorMessages.map((message, index) => {\n const errorKey = `error-message-${generatedId}-${index}`;\n return <Feedback key={errorKey} feedbackState={'danger'} feedbackText={message} />;\n })}\n </div>\n )}\n </div>\n\n <div className={fileListClassNames}>\n <FileList\n files={files}\n onFileReplace={handleFileReplace}\n onFileRemove={handleFileRemove}\n removeFileButtonLabel={removeFileButtonLabel}\n replaceFileButtonLabel={replaceFileButtonLabel}\n />\n </div>\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} />\n )}\n </div>\n );\n};\n\nconst ButtonUploader = forwardRef<HTMLInputElement, ButtonUploaderProps>(InnerButtonUploader);\n\nexport { ButtonUploader };\n","import React, {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n ForwardRefRenderFunction,\n ReactNode,\n Ref,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport classNames from 'classnames';\n\nimport { Button } from '@/components/button/button';\nimport { Icon } from '@/components/icon';\nimport { Feedback } from '@/components/shared/feedback';\n\nimport { BooleanProp, FeedbackState } from '@/models';\nimport { asyncTrigger, createSyntheticEvent, stringToBoolean } from '@/utils';\nimport { FileList } from '../shared/file-list';\nimport { FileUploadError, useFileUpload } from '../shared/use-file-upload';\n\nimport './drag-and-drop-uploader.scss';\n\nexport interface DragAndDropUploaderProps extends ComponentPropsWithoutRef<'input'> {\n /**\n * Label for the drag and drop file uploader.\n */\n dragAndDropLabel?: string;\n /**\n * Label for the drag and drop file uploader.\n */\n label?: string;\n /**\n * Label for the drag and drop file uploader after files selected.\n */\n selectedFilesLabel?: string;\n /**\n * Hides the drag and drop button labels.\n */\n hideLabel?: BooleanProp;\n /**\n * Instruction text for the button uploader.\n */\n extensionsInstructions?: ReactNode;\n /**\n * Text that separates instructions label from the button.\n */\n separatorLabel?: ReactNode;\n /**\n * Alternative text for the delete file button of the file list.\n */\n removeFileButtonLabel: string;\n /**\n * Alternative text for the replace file button of the file list.\n */\n replaceFileButtonLabel: string;\n /**\n * Max number of files to upload.\n */\n maxCount?: number;\n /**\n * Max size in bytes of each file.\n */\n maxSize?: number;\n /**\n * Max count exceeded error message.\n */\n maxCountExceededErrorLabel?: string;\n /**\n * Max size exceeded error message.\n */\n maxSizeExceededErrorLabel?: string;\n /**\n * Forbidden error message.\n */\n forbiddenExtensionErrorLabel?: string;\n /**\n * Duplicated error message.\n */\n duplicatedFileErrorLabel?: string;\n /**\n * Initial default files.\n */\n files?: File[];\n /**\n * Show or hide the feedback status text.\n */\n hasFeedback?: BooleanProp;\n /**\n * Text informative displayed below button uploader.\n */\n feedbackText?: ReactNode;\n /**\n * Defines the state of the feedback text. This param will change the feedback icon and dye it.\n */\n feedbackState?: FeedbackState;\n /**\n * Highlights the button uploader with some error indication.\n */\n hasError?: BooleanProp;\n}\n\nconst InnerDragAndDropUploader: ForwardRefRenderFunction<HTMLInputElement, DragAndDropUploaderProps> = (\n {\n dragAndDropLabel,\n\n label,\n selectedFilesLabel,\n hideLabel,\n\n extensionsInstructions,\n separatorLabel,\n\n removeFileButtonLabel,\n replaceFileButtonLabel,\n\n accept,\n maxSize = Number.MAX_SAFE_INTEGER,\n maxCount = Number.MAX_SAFE_INTEGER,\n\n maxCountExceededErrorLabel = '',\n maxSizeExceededErrorLabel = '',\n forbiddenExtensionErrorLabel = '',\n duplicatedFileErrorLabel = '',\n\n multiple,\n disabled,\n onChange,\n\n files: defaultFiles,\n\n hasError,\n hasFeedback,\n feedbackState = 'info',\n feedbackText,\n\n ...props\n },\n ref: Ref<HTMLInputElement | null>\n) => {\n const generatedId = useId();\n\n const innerButtonRef = useRef<HTMLButtonElement | null>(null);\n const innerInputRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(ref, () => innerInputRef.current);\n\n const dragAreaRef = useRef<HTMLDivElement | null>(null);\n\n const [labelText, setLabelText] = useState(label);\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const [errorMessages, setErrorMessages] = useState([] as string[]);\n\n const updateErrors = (errors: FileUploadError | null) => {\n if (!errors) {\n setErrorMessages([]);\n return;\n }\n\n const parsedErrors: string[] = [];\n if (errors.maxCountExceeded) {\n parsedErrors.push(maxCountExceededErrorLabel);\n }\n\n errors.duplicatedFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${duplicatedFileErrorLabel}`);\n });\n\n errors.sizeExceededFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${maxSizeExceededErrorLabel}`);\n });\n\n errors.extensionForbiddenFiles.forEach((f) => {\n parsedErrors.push(`${f} - ${forbiddenExtensionErrorLabel}`);\n });\n\n setErrorMessages(parsedErrors);\n };\n\n const handleOnChangeFiles = (files: File[], errors: FileUploadError | null) => {\n if (files.length > 0) {\n setLabelText(`${files.length} ${selectedFilesLabel}`);\n } else {\n setLabelText(label);\n }\n\n if (innerInputRef.current) {\n const list = new DataTransfer();\n\n files.forEach((f) => {\n list.items.add(f);\n });\n\n innerInputRef.current.files = list.files;\n\n const syntheticEvent = createSyntheticEvent<HTMLInputElement>(innerInputRef.current, 'change');\n asyncTrigger(() => onChange?.(syntheticEvent as ChangeEvent<HTMLInputElement>));\n }\n\n updateErrors(errors);\n };\n\n const { files, onAddFiles, onRemoveFile, onReplaceFile, onPasteFiles } = useFileUpload(\n maxCount,\n maxSize,\n accept ? accept.split(',') : [],\n !!multiple,\n handleOnChangeFiles,\n defaultFiles\n );\n\n const canUpload = useMemo(() => {\n if (multiple) {\n return !disabled && files.length < maxCount;\n }\n\n return !disabled && files.length === 0;\n }, [disabled, multiple, files]);\n\n const handleFileReplace = (newFileToReplace: File) => {\n onReplaceFile(newFileToReplace);\n };\n\n const handleFileRemove = (fileToRemove: File) => {\n onRemoveFile(fileToRemove);\n };\n\n useEffect(() => {\n const handlePaste = (e: Event) => {\n if (!canUpload) {\n return;\n }\n\n if (innerButtonRef.current && innerButtonRef.current === document.activeElement) {\n const { clipboardData } = e as ClipboardEvent;\n if (clipboardData && clipboardData.files.length > 0) {\n const clipboardFiles = Array.from(clipboardData.files) ?? [];\n onPasteFiles(clipboardFiles);\n }\n }\n };\n\n window.addEventListener('paste', handlePaste);\n\n return () => {\n window.removeEventListener('paste', handlePaste);\n };\n }, []);\n\n const handleDragOver = (evt: DragEvent) => {\n if (!canUpload) {\n return;\n }\n\n evt.preventDefault();\n evt.stopPropagation();\n\n setIsDraggingOver(true);\n\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'copy';\n }\n };\n\n const handleDragLeave = () => {\n setIsDraggingOver(false);\n };\n\n const handleDrop = (evt: DragEvent) => {\n if (!canUpload) {\n return;\n }\n\n evt.preventDefault();\n evt.stopPropagation();\n\n setIsDraggingOver(false);\n\n if (evt.dataTransfer) {\n const droppedFiles = Array.from(evt.dataTransfer.files ?? []);\n onPasteFiles(droppedFiles);\n }\n };\n\n useEffect(() => {\n const handleClick = (evt: MouseEvent) => {\n if (innerButtonRef.current && innerButtonRef.current !== evt.target && !innerButtonRef.current.contains(evt.target as HTMLElement)) {\n onAddFiles();\n }\n };\n\n if (dragAreaRef.current) {\n dragAreaRef.current.addEventListener('click', handleClick);\n dragAreaRef.current.addEventListener('dragover', handleDragOver);\n dragAreaRef.current.addEventListener('dragleave', handleDragLeave);\n dragAreaRef.current.addEventListener('drop', handleDrop);\n }\n\n return () => {\n if (dragAreaRef.current) {\n dragAreaRef.current.removeEventListener('click', handleClick);\n dragAreaRef.current.removeEventListener('dragover', handleDragOver);\n dragAreaRef.current.removeEventListener('dragleave', handleDragLeave);\n dragAreaRef.current.removeEventListener('drop', handleDrop);\n }\n };\n }, []);\n\n const containerClassNames = classNames(\n 'agora-drag-and-drop-file-uploader',\n { 'cannot-upload': !canUpload },\n { hasError: errorMessages.length > 0 || stringToBoolean(hasError) },\n props.className\n );\n\n const dragAndDropClassNames = classNames('drag-and-drop-area', { 'drag-over': isDraggingOver });\n\n return (\n <div className={containerClassNames}>\n <input ref={innerInputRef} type=\"file\" style={{ display: 'none' }} />\n\n <div ref={dragAreaRef} className={dragAndDropClassNames}>\n <Icon className=\"upload-icon\" name=\"agora-line-upload\" aria-hidden />\n\n {(dragAndDropLabel || extensionsInstructions) && (\n <div className=\"instructions\">\n {dragAndDropLabel && <div className=\"drag-and-drop-label\">{dragAndDropLabel}</div>}\n {extensionsInstructions && <div className=\"extension-instructions\">{extensionsInstructions}</div>}\n </div>\n )}\n\n {separatorLabel && <div className=\"separator-label\">{separatorLabel}</div>}\n\n <Button\n ref={innerButtonRef}\n fullWidth\n iconOnly={stringToBoolean(hideLabel)}\n hasIcon\n trailingIcon=\"agora-line-upload\"\n trailingIconHover=\"agora-solid-upload\"\n variant={'neutral'}\n disabled={!canUpload}\n onClick={onAddFiles}\n >\n {labelText}\n </Button>\n\n {errorMessages.length > 0 && (\n <div className=\"errors-container\">\n {errorMessages.map((message, index) => {\n const errorKey = `error-message-${generatedId}-${index}`;\n return <Feedback key={errorKey} feedbackState={'danger'} feedbackText={message} />;\n })}\n </div>\n )}\n </div>\n\n <FileList\n files={files}\n onFileReplace={handleFileReplace}\n onFileRemove={handleFileRemove}\n removeFileButtonLabel={removeFileButtonLabel}\n replaceFileButtonLabel={replaceFileButtonLabel}\n />\n\n {/* Feedback */}\n {(stringToBoolean(hasFeedback) || stringToBoolean(hasError)) && feedbackText && (\n <Feedback feedbackState={!stringToBoolean(hasError) ? feedbackState : 'danger'} feedbackText={feedbackText} />\n )}\n </div>\n );\n};\n\nconst DragAndDropUploader = forwardRef<HTMLInputElement, DragAndDropUploaderProps>(InnerDragAndDropUploader);\n\nexport { DragAndDropUploader };\n"],"names":["AgoraTailwindConfig","addComponents","addBase","theme","extractColorVars","colorObj","colorGroup","vars","colorKey","value","newVars","hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","newClass","module","EmptyIcon","props","newProps","React","iconList","lazy","allIcons","c","isBundledIcon","name","iconsCache","loadIcon","cachedIcon","lazyComponent","Icon","dimensions","onIconLoad","onIconError","_a","onLoad","onError","LazyComponent","fullProps","Suspense","createSyntheticEvent","target","eventType","event","isDefaultPrevented","isPropagationStopped","preventDefault","stopPropagation","debounce","func","timeout","timer","args","useDebounceHook","useRef","setArgs","useState","useEffect","getDateString","d","dayString","monthString","yearString","normalizeText","text","stringToBoolean","useExpandedRef","ref","innerRef","data","deps","externalRef","useImperativeHandle","asyncTrigger","InnerComponent","children","hasIcon","icon","headingTitle","Component","className","expanded","onExpanded","onCollapsed","ariaLabel","generatedId","useId","propsClone","isExpanded","setIsExpanded","expand","collapse","toggle","evt","AccordionClassName","AccordionBodyClassName","AccordionIconClassName","onMouseClickHandler","Accordion","forwardRef","InnerAccordionGroup","type","AccordionGroupClassName","generatedAccordionGroupId","childrenAccordions","refsMap","updateAllAccordions","useCallback","v","k","parsedAccordions","Children","child","index","createRef","id","cloneElement","firstExpandedKey","r","AccordionGroup","IconWrapper","iconHover","wrapperClassName","InnerAnchor","darkMode","appearance","variant","fullWidth","iconOnly","leadingIcon","leadingIconHover","trailingIcon","trailingIconHover","inline","anchorClassName","Anchor","TOOLTIP_CHANGE_EVENT_NAME","Tooltip","hasTitle","position","alignment","title","description","top","setTop","left","setLeft","width","setWidth","height","setHeight","setDimensions","rect","useMemo","TooltipContainerClassName","TooltipClassName","visibility","setVisibility","showTooltip","hideTooltip","handleEscapeKey","handleTooltipChange","parsedChildren","isValidElement","_b","cb","topPositioning","bottomPositioning","leftPositioning","rightPositioning","tooltipPosition","TooltipContent","memoPortal","createPortal","showIconHover","InnerButton","setShowIconHover","buttonClassName","onKeyDownHandler","onKeyUpHandler","_c","_d","onMouseLeaveHandler","onMouseEnterHandler","onMouseDownHandler","onMouseUpHandler","onClickHandler","shouldTriggerClick","Button","InnerInteractiveAvatar","onActivate","alt","ariaHasPopup","ariaExpanded","ariaCurrent","role","InteractiveAvatar","InnerNonInteractiveAvatar","NonInteractiveAvatar","Avatar","avatarType","srcPath","hasBadge","information","badgePosition","badgeVariant","tooltipAlignment","interactive","containerClasses","memoContent","avatarClasses","badgeClasses","InternalDropdownContext","createContext","useInternalDropdownContext","useContext","InnerInternalDropdownFilterSection","debounceTimeout","dropdownContext","applyFilter","hide","next","currentFilter","setCurrentFilter","debouncedApplyFilter","onInputChange","resetFilter","inputRef","onKeyDownCaptureHandler","onMouseDownCaptureHandler","InternalDropdownFilterSection","InternalNoResults","label","OptionComponent","InternalOption","disabled","selected","filtered","iconPosition","sectionOptionId","parsedIconName","iconName","setIconName","selectOption","options","last","first","prev","optionWrapperClasses","select","option","opt","code","onMouseDownCapture","clickHandler","applySolidIcon","lastIconName","applyLineIcon","InternalDropdownOption","InternalDropdownSection","hideLabel","optionsRefMap","sectionNameRef","sectionClassNames","sectionOptions","optionClassNames","newRef","optionHeight","sectionNameHeight","labelVisible","InternalDropdownSelectAllSection","isAllDisabled","isAllSelected","selectAll","onKeydown","handler","selectAllLabel","searchPlaceholder","searchAriaLabel","searchable","optionsVisible","noSearchResults","context","activeFilter","sections","filterRef","maxHeightStyleProp","setMaxHeightStyleProp","getFilterSectionHeight","elem","val","getSelectAllSectionHeight","getVisibleSectionNamesHeight","visibleSections","heightCount","sectionName","getVisibleOptionsHeight","visibleOptions","visibleOptionsKeys","optionId","getListboxBorderWidths","computedStyle","borderTopWidth","borderBottomWidth","containedOptions","maxHeight","dropdownClasses","hasOptions","hasSectionsWithResults","allSectionResultsDisabled","visibleResults","sectionWithResults","s","section","InternalDropdown","useDropdownState","internalDropdownRef","hideSectionNames","onChange","onSearchChange","onShow","onHide","setSections","setOptions","parsedSectionProps","parsedOptionProps","sec","setActiveFilter","newFilter","lastFilter","lastOptions","newOptions","childrenVal","notFound","focusElem","inputFilter","opts","domOptions","idx","current","currentIndex","show","firstEffect","triggerOnChange","selectedOptions","o","isMultiSelection","isProvidedOption","isAllSectionOptionsSelected","availableOptions","hasOptionsUnselected","selectSectionOptions","allOptionsSelected","isInSectionProvided","hasSectionOptionsToInteract","hasOptionsNotDisabled","dropdownState","firstCall","sectionChild","optionChild","Dropdown","DropdownSection","DropdownOption","VisibleCountAvatarGroup","avatarCount","visibleCount","visibleCountAriaLabel","countValue","avatarCountList","avatar","dropdownRef","buttonRef","isDropdownVisible","setIsDropdownVisible","handleClick","containerRef","avatarKey","AvatarGroup","avatarGroupClasses","totalVisibleAvatars","renderAvatarListItem","InnerBackToTop","tooltipVariant","hasTooltipTitle","tooltipTitle","tooltipDescription","backToTopClassName","goToTop","BackToTop","BreadcrumbDesktop","items","BreadcrumbClassName","iconClassName","link","BreadcrumbMobile","sectionTitle","listRef","closeMenuClickHandler","handleTabKey","linkList","liParentNode","setKeyboardKeydownBehavior","firstLink","expandMenu","Breadcrumb","baseClasses","desktopBreadcrumbClassnames","mobileBreadcrumbClassnames","ButtonGroup","multiple","orientation","selectedButtonIndexes","setSelectedButtonIndexes","childrenButtons","ret","rawIndexes","handleButtonClick","newSelectedButtonIndexes","buttonIndex","selectedButtons","_","indx","buttonGroupClasses","isSelected","Pill","circular","size","pillClassName","useBlockedLink","parentCardRef","anchorRef","blockedLink","activateLink","onClickCaptureHandler","anchorElement","parentCardElem","CardArticle","pillLabel","pillVariant","mainAnchor","image","Heading","subtitle","cardArticleRef","cardArticleAnchorRef","headingPlacement","anchorPlacement","mainAnchorClone","buildText","anchorProps","isAnchor","isHeading","cardClassNames","anchorContainerClassNames","CardCollection","cardCollectionRef","cardCollectionAnchorRef","CardCollectionClass","CardEmphasize","mainButton","cardEmphasizeClasseNames","iconProps","buttonProps","LinkWrapper","anchorContainerClassName","CardError","backLink","statusCodeMessage","CardLinksClasses","BookmarkIcon","CardExpandable","showBookmarkIcon","generatedAccordionId","CardExpandableClasses","onExpandedHandler","onCollapsedHandler","mappedChildren","clonedElement","CardFrame","cardFrameRef","cardFrameAnchorRef","cardFrameClassNames","cardFrameContainerClass","CardFullImage","cardFullImageClassName","CardHeroHelper","helpTopics","CardHeroHelperClasses","block","CardHeroIndex","cardIndex","CardHeroSitemap","anchors","highlightedLink","arrayLink","CardHeroSitemapClasses","useWindowSize","isMounted","listener","InnerHighlightCard","links","CardHighlight","highlightAreaPosition","cardPosition","cardSize","cardHighlightClassName","isTablet","isMobile","CardHighlightNewsletter","cardHighlightNewsletterClassName","CardHighlightSingle","actionButton","CardHighLightClasses","List","listStyle","startNumber","ComponentType","mappedLIElements","CardLinks","category","topics","anchorKey","topic","listItem","CardNoResults","CardNoResultsClasses","CardSearchResult","date","cardSearchResultRef","CardSearchResultClass","containerClass","CardSingle","cardSingleRef","cardSingleAnchorRef","CardSingleClasses","CardTopic","statusLabel","status","variantMemo","cardTopicRef","cardTopicAnchorRef","cardTopicClasseNames","cardStatusClasseNames","InnerFeedback","feedbackState","feedbackText","feedbackWrapperClasses","feedbackIconWrapperClasses","feedbackTextClasses","feedbackStateIconsMap","Feedback","InnerCheckbox","hasError","required","hasFeedback","currentChecked","setCurrentChecked","handleCheckboxKeyDownCapture","handleCheckboxClick","handleChange","inputWrapper","checked","Checkbox","CheckboxGroup","legend","innerOnChange","nativeEvent","mappedCheckbox","InnerDialog","visible","fullScreen","dismissOnBackdropClick","dismissOnEscape","onClickedOutside","isVisible","setIsVisible","innerDialogRef","handleKeyDown","focusableElements","firstElement","lastElement","handleClickOutside","containerClassNames","Dialog","InnerDrawer","ariaLabelledby","open","setOpen","dialogRef","drawerClassNames","handleClose","fn","_f","_e","handleOpen","Drawer","InnerRatingButtons","likeButton","dislikeButton","pressedButton","setPressedButton","handleToggleButton","buttonType","createButton","ratingButtonClasses","ratingButtonWrapperClasses","parsedLikeButton","parsedDislikeButton","RatingButtons","InnerStars","starsLabel","maxRating","readOnly","stars","startWrapperRef","selectedIndex","setSelectedIndex","hoverIndex","setHoverIndex","handleMouseDown","handleMouseEnter","handleMouseLeave","onkeyDownHandler","handleFocusStar","dataValue","nextFocusedStar","ratingStarClasses","starValue","isHovered","starKey","tabIndexValue","RatingStars","ratingButtons","message","showMessage","setShowMessage","feedbackClasses","parsedRatingButtons","FooterBrandBadge","brandImage","badgeImage","FooterCaptionPartners","caption","partnersLogos","_i","partner","FooterSocialUsefulCopyright","socialsLink","usefulLinks","copyright","social","MainFooter","FederatedFooterCard","FederatedFooter","card","PublicFooterContacts","contacts","contactsOnly","hasCardLinks","contactsClassName","contact","PublicFooterHighlightCard","cardClassName","cardHelpClassName","PublicFooterHighlightCardLinks","cardLinks","PublicFooterHighlight","footerHighlightClassName","cardFooterClassName","PublicFooterMainPlusCardLinks","PublicFooter","InnerGlossaryLetters","letters","NavElementClass","GlossaryContainerClass","letter","isDisabled","letterClassName","href","GlossaryLetters","iconAltText","hasChildren","lineClassName","solidClassName","ContentMenuItem","itemType","noIcons","leadingClassName","trailingClassName","childrenClassName","changeIconOpen","changeIconOpenHover","InnerMenuItem","actionItem","vertically","menuItemClassName","setAriaExpanded","menuItemRef","toggleExpanded","previousAriaExpanded","keydownHandler","MenuItem","menuClick","el","menuItem","checkElmNotCurrentBurgerMenu","navigationBurger","_h","_g","_l","_k","_j","_m","element","_q","_p","_o","_n","_t","_s","_r","_u","checkElmNotCurrentBurgerSubmenu","checkElmNotCurrentBurgerSubmenuLevel2","checkElmNotCurrentNotCBurgerNotSubmenu","navigationBurgerLevel2","nbl2","checkElmNotCurrentNoChildren","currentSubmenu","checkSubmenuItemsVisible","navigationBurgerSubmenu","nbs","handleCloseBurgerMenu","generalSubmenus","navigationBurgerSubmenuLevel3","gs","bsSubmenu","bs","closeOtherSubmenus","navigationSubmenus","navBurger","handleClickMenuItem","setBackdropVisible","refDrawer","setDrawerContent","submenu","avatarMenu","HeaderMenuItemOptionsLinks","closeOtherMenuItemOpened","onClick","style","containerClassName","ulClassName","liClassName","optionClasseName","getTrailingIcon","getTrailingIconHover","defaultVariant","InnerInputSearchBar","hasVoiceActionButton","voiceActionAltText","searchActionAltText","onVoiceActivate","onSearchActivate","searchButtonRef","voiceButtonRef","currentTarget","setCurrentTarget","handleChangeEvent","onVoiceButtonClick","onSearchButtonClick","inputWrapperClassNames","labelSectionClasses","labelClasses","InputSearchBar","HeaderMenuItemOptionsSearch","submenuSearchContent","HeaderMenuOptions","HeaderBurgerSecondaryNavigation","item","backButtonLabelBurger","hasBackButtonBurger","itemsSubmenuClone","handleBackButtonBurger","submenuLevel2Height","menuItemId","submenuLevel3Height","subitem","subId","containerHeaderMenuOptionsLevel2","_v","HeaderBurgerPrimaryNavigation","headerPrimaryNavigationClone","headerHeight","submenuHeight","headerBurgerNavigationContainerClassNames","containerHeaderMenuOptions","sub","childCurrent","HeaderBurgerNavigation","headerSecondaryNavigation","darkModeHeader","menuBurgerItem","setHeaderHeight","setSubmenuHeight","setSubmenuLevel2Height","setSubmenuLevel3Height","checkResize","burgerNav","heightGeneralNav","optionsSubmenu","backButtonSubmenu","backButtonSubmenuLevel2","backButtonSubmenuLevel3","heightBurgerNav","optNextSiblingPaddingTop","optNextSiblingPaddingBottom","backButtonSubmenuMarginBottom","backButtonSubmenuLevel2MarginTop","backButtonSubmenuLevel3MarginTop","checkMutationPrimary","checkMutationSubmenuLevel2","checkMutationSubmenuLevel3","mutation","word","observers","observer","optionsSubmenuLevel2","optionsSubmenuLevel3","bt","mutationCallback","mutationsList","HeaderGeneralOptions","darkModeHeaderGeneralOptions","ariaLabelHeaderGeneralOptions","menuItemsHeaderGeneralOptions","hasLanguage","hasSearch","hasUser","menuItemLanguageRef","headerGeneralOptionsClassName","searchClassName","userClassName","initLanguage","setInitLanguage","toggleLanguage","selectedAriaLabel","dataIso","currentLang","lang","languageItems","currentLanguageItem","userAvatarPropsCloneMenuItem","userNotLoggedSubmenuItemPropsClone","resizeGeneral","renderMenuItems","menuItems","component","keys","generatedKey","Fragment","HeaderNavigation","darkModeHeaderNavigation","ariaLabelHeaderNavigation","headerNavigationContent","menuItemsHeaderNavigation","freeMenuItemsHeaderNavigation","headerNavigationType","headerNavigationLegalSentence","optionsMenuOverflow","headerNavigationClassName","legalSentenceClassName","Header","headerSEO","isHomepage","hasHeaderGeneralOptions","hasHeaderPrimaryNavigation","hasHeaderSecondaryNavigation","headerGeneralOptions","headerPrimaryNavigation","getOpenMenuNav","openSubmenu","menu","trapFocus","focusableElementsVisible","submenuFocusableElement","trapFocusBurger","backdropVisible","backdropRef","callSetBackdropVisible","parentAllSubmenus","navigationTab","openedMenu","burgerMenu","burgerSubmenu","burgerSubmenuLevel2","burgerSubmenuLevel3","focusableElementsClone","e","drawerContent","callSetDrawerContent","headerDrawerHeight","setHeaderDrawerHeight","footerDrawerHeight","setFooterDrawerHeight","handleCloseDrawer","handleFooterDrawer","headerResize","headerGeneralOptionsClone","headerGeneralOptionsClassNames","headerPrimaryNavigationClassNames","headerSecondaryNav","setHeaderSecondaryNav","currentMenuIndex","hasHeaderSecondaryNavigationClone","headerSecondaryNavigationClassNames","scrolled","setScrolled","withWheel","onScroll","header","primaryNav","secondaryNav","onWheel","headerBurgerNavigationClassNames","resizeMenuWithBurger","menuItemWithFreeContent","setHeightGeneralNav","heightPrimaryNav","setHeightPrimaryNav","heightSecondaryNav","setHeightSecondaryNav","generalNavElem","primaryNavElem","secondaryNavElem","ind","keyDrw","DatePickerStateContext","DatePickerStateProvider","DEFAULT_MONTHS","DEFAULT_WEEK_DAYS","useDatePickerStateContext","ctx","months","weekDays","mapMonths","getAbbrWeekDays","wd","focusedMonth","focusedYear","newDate","isDateInSameMonthOfYear","date1","date2","isSameDay","parseInputDate","parts","day","month","year","parsedDate","DialogBody","isCalendarActive","setIsCalendarActive","parseDateFromTarget","dateString","focusAndSelectTargetDate","targetDate","onKeydownHandler","shiftKey","onFocusHandler","onBlurHandler","buildDay","currentDay","weekNumber","dayNumber","isInCurrentMonth","isFocusedDate","isSelectedDate","isToday","stringDate","tdDayClasses","dayClasses","trTdKey","ariaLabelForDay","labels","dayLabel","buildWeek","firstDayOfMonth","dayOfWeek","memoGrid","trCount","trKey","focusDay","DialogFooter","onOkPressed","additionalTodayProps","additionalCancelProps","additionalOkProps","DialogHeader","DatePickerDropdown","onCancel","initialized","setInitialized","selectedDate","setSelectedDate","focusedDate","setFocusedDate","cancel","managerMemo","wrapperClasseNames","datePickerDropdownContainerRef","formatDayOrMonth","number","isLeapYear","parseDate","currentMonth","currentYear","newDay","dayInputPlaceholder","monthInputPlaceholder","yearInputPlaceholder","inputClassNames","validadeDate","targetValue","dateParts","newChangeEvt","DateText","InnerInputDate","calendarIconAriaLabel","previousYearAriaLabel","previousMonthAriaLabel","nextMonthAriaLabel","nextYearAriaLabel","monthsLabels","weekdaysLabels","focusedDayAriaLabel","selectedDayAriaLabel","todayDayAriaLabel","todayLabel","todayAriaLabel","cancelLabel","cancelAriaLabel","okLabel","okAriaLabel","defaultValue","innerInputRef","wrapperRef","currentValue","setCurrentValue","lastValueTriggered","trigger","setTrigger","overlayVisible","setOverlayVisible","showOverlay","hideOverlay","toggleOverlay","handleOnDismiss","handleInputDateKeydown","handleDatePickerCancel","onOverlayChangeHandler","onInputDateChange","syntheticEvent","dropdownDatePickerLabels","InputDate","EMAIL_REGEXP","InnerInputEmailBar","onSendHandler","pattern","email","setEmail","isValidEmail","setIsValidEmail","onSendButtonClick","InputEmailBar","InnerInputNumber","increaseButtonAltText","decreaseButtonAltText","min","max","inputWrapperRef","inputElem","setIsHovered","darkModeClass","inputClassBuilder","inputWrapperClasses","inputClasses","leadingIconWrapperClasses","handleStepUp","handleStepDown","handleMouseHoovering","isHover","InputNumber","InnerInputPassword","togglePasswordAltIconText","showPassword","setShowPassword","handleTogglePassword","InputPassword","FlagsList","PhoneCountryCodes","l","PhoneCountryISOs","InnerInputPhone","defaultISO","defaultCode","searchInputAriaLabel","searchInputPlaceholder","searchNoResultsText","dropdownAriaLabel","onCountryChange","hasValue","setHasValue","initial","searchForProp","country","currentCountry","setCurrentCountry","onDropdownChange","selectedCountry","f","newCountry","handleInputKeydownCapture","handleInputChange","toggleVisibility","handleDropdownControlKeydown","handleDropdownControlClick","wrapperClassNames","optionIndex","InputPhone","InnerRange","currentVal","setCurrentVal","prevPropValue","innerRefs1","innerRefs2","values","handleRangeChange","firstValue","secondValue","handleMouseUp","InputRange","InnerInputSearch","InputSearch","parseChildrenProps","allItemsEnabled","newSelectedData","InnerInputSelect","placeholder","pluralSelectedPlaceholder","allSelectedLabel","onSearchInputChange","controlWrapperRef","controlRef","selectedData","setSelectedData","mainWrapperClasses","controlClasses","stringOutputMemo","onClickLabel","onDropDownChange","toggleDropdown","onDropDownClickHandler","onDropdownControlKeyDownHandler","InputSelect","InnerInputText","InputText","InnerInputTextArea","showCharCounter","charCounterClasses","InputTextArea","LoaderDialog","loaderClass","LoaderDialogContext","useLoaderDialogContext","LoaderDialogProvider","dialogProps","setDialogProps","ariaLiveMessage","setAriaLiveMessage","showLoader","currentDialogProps","str","hideLoader","contextValue","ModalContext","useModalContext","ModalDialog","configurations","ModalProvider","dialogChildren","setDialogChildren","dialogConfig","setDialogConfig","currentDialogChildren","config","PopupContext","usePopupContext","PopupDialog","popupContainerRef","popupHeaderRef","containerMaxHeight","setContainerMaxHeight","setMaxHeight","dialogClassNames","titleClassNames","containerElem","headerElem","margins","containerHeight","PopupProvider","dialogConfigs","setDialogConfigs","currentDialogConfigs","ProgressBar","hidePercentageValue","progressPercentage","percentageClasses","ProgressBarGroup","hidePercentageValues","sequential","progressBars","activeCurrent","foundCurrent","currentCount","p","firstNotCompletedIndex","sumMaxValues","sumValues","renderProgressBars","isCurrent","progressValue","InnerRadio","RadioButton","RadioButtonGroup","generatedName","mappedRadioButtons","scribblesList","allScribbles","isBundledScribbles","scribblesCache","loadScribbles","cachedScribbles","lazyScribble","Scribbles","onScribblesLoad","onScribblesError","LazyScribble","InnerSearchPage","pageNumber","SearchPage","InnerSearchPaginationNumberOverlayProps","SearchPaginationNumberOverlay","InnerSearchPagination","totalPages","hidePreviousPageButton","hideNextPageButton","boundaryCount","siblingCount","nextPageAriaLabel","previousPageAriaLabel","activePage","setActivePage","navArrowsClasses","prevPage","pages","showAllPagesContent","page","page_index","paginationContent","leftSiblingIndex","rightSiblingIndex","leftRange","middleRange","rightRange","visiblePages","shouldShowLeftDots","shouldShowRightDots","SearchPagination","openOnCurrentItem","sidebarRef","flat","agoraSidebar","currentTreeItem","initialPrevItem","elements","SidebarItemNavigationMobile","sidebarMenuLabel","backButtonLabel","refDialog","backButtonHandler","openButtonHandler","treeItems","hasAriaCurrent","itemTree","sidebarNavigationMobileClassName","sidebarItemNavigationMobileMenuClassName","sidebarItemNavigationMobileBackButtonClassName","sidebarItemNavigationMobileDialogClassName","Sidebar","newSidebarItem","listSidebarItem","generateId","trailingFilter","setTrailingFilter","leadingFilter","setLeadingFilter","sidebarClassName","onBodyFocus","onFilterBodyFocus","loadHandler","checkLeading","checkTrailing","itemProps","foundedLeadingIcon","a","foundedTrailingIcon","t","j","setInitialSidebarItem","sidebarItemChildren","toggleSidebarItem","sidebarItem","sidebarItemExpanded","toggleSidebarItemChildren","setIconsExpandCollapsed","InnerSidebarItemFilter","buttonItemRef","contentItemRef","buttonItemClassName","contentItemClassName","toggleItemContent","toggleItemExpand","handleOnKeyDown","prevButtonSidebarItem","nextButtonSidebarItem","tabElements","nextIndex","icons","newItem","SidebarItemFilter","getParentTreeItem","nodeContent","node","toggleParentItemExpand","parentNode","navigationSidebarItemHandler","sidebar","toggleExpandAllSiblingItems","contentParent","adsItem","navigationEnterSpace","getAllVisibleItems","allVisibleItems","navigationUp","prevItem","visibleItem","navigateAndFocusUntilCurrent","nextItem","navigationDown","navigationRight","navigationLeft","setFocusByFirstCharacter","char","ti","start","defaultPrintableCharacters","navigationHome","navigationEnd","SidebarItemNavigation","newSidebarItemChildren","listInnerSidebarItem","listSidebarItemChildren","anchorItemRef","handleAnchorClick","handleOnKeyUp","isPrintableCharacter","handleRightArrow","handleLeftArrow","handleClickIcon","handleMouseEnterIcon","handleMouseLeaveIcon","isLinkedSidebarItem","getFinalFlat","childData","final","getFlatNotDirectAnchor","ariaOwns","getFlatSidebarItem","anchorIconWrapper","cloneAnchorElement","dataChildren","getFinal","insideLoopElements","getNotDirectAnchor","getSidebarItem","getSidebarItemChildren","agoraSidebarButtonItemClassName","InnerSidebarItem","sidebarItemClassName","SidebarItem","SkipNavigationMultiple","containerSkipNavRef","multipleLinks","skipOptionsRef","ariaExpand","setAriaExpand","handleFocus","handleBlur","handleKeyUp","allSkipMenuItems","currentIndexFocus","mi","handleSkipOptionControlKeyDownCapture","handleButtonSkipClick","handleButtonFocus","handleButtonBlur","handleButtonKeyUp","handleButtonControlKeyDownCapture","lvl","initLink","isLink","groupAnchors","recursiveLinks","level","getKeys","keyIndex","newLink","init","initLength","menuSkipNavigation","content","singleLink","buildAnchor","newSingleLink","SkipNavigationSingle","InnerSkipNavigation","navigationClassName","SkipNavigation","InnerInteractiveStatusCard","leadingIconName","InteractiveStatusCard","InnerNonInteractiveStatusCard","NonInteractiveStatusCard","InnerStatusCard","handleIcon","iconType","StatusCard","StepList","stepListClass","InnerSwitch","reverse","handleCustomSwitchKeydown","handleCustomSwitchClick","switchWrapperClasses","markerClasses","switchLabelClasses","Switch","TableBody","TableCaption","TableCell","headerKey","headerLabel","TableFooter","TableHeader","DESCENDING_ICON_NAMES","ASCENDING_ICON_NAMES","TableHeaderCell","sortType","sortOrder","onSortChange","circularSortOrder","currentSortOrderIndex","order","sortIconName","ariaSortValue","applySort","nextSortOrder","handleKeyUpHeader","TableRow","InnerTablePagination","itemsPerPageLabel","itemsPerPage","totalItems","availablePageSizes","currentPage","buttonDropdownAriaLabel","dropdownListAriaLabel","prevButtonAriaLabel","nextButtonAriaLabel","dropdownWrapperRef","onDropdownButtonClickHandler","onDropdownButtonKeydownHandler","onShowDropdownHandler","onHideDropDownHandler","onDropdownChangeHandler","handlePrevPage","handleNextPage","iconDefinition","ps","TablePagination","InternalTable","mobileLayout","tabletLayout","desktopLayout","paginationProps","sortDescription","tableClasseNames","Table","TabBody","TabHeader","Tab","Tabs","automaticActivation","onTabActivation","currentType","tabPanelRef","tabListRef","activeTab","setActiveTab","tabsHeaderData","setTabsHeaderData","tabsBodyData","setTabsBodyData","activateTab","body","handleTabListItemKeyDown","tabListItems","newActiveTab","focusedIndex","navigationArrowRight","navigationArrowLeft","navigationArrowDown","navigationArrowUp","handleTabPanelKeydown","activeTabButton","tabPanelFocusProps","activeTabData","tabsClassName","tabPanelClassName","tabListItemClassNames","InnerTag","tagClassName","buttonStyleMemo","Tag","TimelineEvent","active","timelineEventClassNames","timelineLabelClassNames","TimelineEventVertical","altIcon","TimelineVertical","hideLabels","events","setEvents","groupedEvents","grouped","groupedEventsArray","group","groupIndex","keyGroup","groupClassNames","eventIndex","keyEvent","TimelineHorizontal","nextLabel","previousLabel","setIsMobile","maxVisibleEvents","activeEvent","setActiveEvent","startIndex","setStartIndex","endIndex","setEndIndex","eventChildren","activeIndex","handleClickEvent","getTimelineStepClasses","currentActiveEvent","handleNextButtonClick","newEvent","handlePreviousButtonClick","selectedContentEvent","visibleEvents","newStartIndex","newEndIndex","useLayoutEffect","updateSize","renderTimelineActions","isPreviousButtonDisabled","isLastButtonDisabled","timelineClasses","isFirstVisibleEvent","isLastVisibleEvent","hasMoreEventsLeft","hasMoreEventsRight","eventClassNames","ToastContext","useToastContext","Toast","closeLabel","removeToast","getIconNameForType","selectedType","handleCloseClick","toastContainerClassnames","useToast","toasts","setToasts","toast","prevToasts","duration","ToastProvider","showToast","memoToast","visibleToastsCount","FileList","files","removeFileButtonLabel","onFileRemove","replaceFileButtonLabel","onFileReplace","handleReplaceFile","fileToReplace","handleRemoveFile","fileToRemoved","getParsedSizeString","bytes","decimals","decimalCases","sizes","getAvailableFileActions","file","fileListClassNames","fileIndex","actions","actionBtnProps","actionIndex","actionKey","isFileExtensionAllowed","fileName","extensionWhitelist","lastPoint","fileExtension","isNotDuplicated","filename","getFileInput","extensionWhiteList","onChangeHandler","input","validateFiles","lastFiles","newFiles","maxCount","maxSize","replaceValidation","hasErrors","duplicatedFiles","sizeExceededFiles","extensionForbiddenFiles","maxCountExceeded","useFileUpload","maxFileCount","maxFileSize","defaultFiles","lastErrors","getParsedMaxCount","errors","resetFiles","initialFiles","validationErrors","addFiles","filesToAdd","removeFile","replaceFile","replaceFileName","targetIndex","handleInputFileChangeOnAdd","selectedFiles","handleInputFileChangeOnReplace","onAddFiles","onRemoveFile","onReplaceFile","onPasteFiles","InnerButtonUploader","selectedFilesLabel","extensionsInstructions","accept","maxCountExceededErrorLabel","maxSizeExceededErrorLabel","forbiddenExtensionErrorLabel","duplicatedFileErrorLabel","innerButtonRef","labelText","setLabelText","errorMessages","setErrorMessages","updateErrors","parsedErrors","handleOnChangeFiles","list","canUpload","handleFileReplace","newFileToReplace","handleFileRemove","fileToRemove","handlePaste","clipboardData","clipboardFiles","buttonContainerClassNames","errorKey","ButtonUploader","InnerDragAndDropUploader","dragAndDropLabel","separatorLabel","dragAreaRef","isDraggingOver","setIsDraggingOver","handleDragOver","handleDragLeave","handleDrop","droppedFiles","dragAndDropClassNames","DragAndDropUploader"],"mappings":"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","x_google_ignoreList":[1]}