rubyfox-server 2.13.7.3 → 2.16.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (613) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -1
  3. data/README.md +19 -0
  4. data/lib/rubyfox/server/cli.rb +39 -5
  5. data/lib/rubyfox/server/data/config/UploadsLock.txt +1 -1
  6. data/lib/rubyfox/server/data/config/admin/admintool.xml +1 -0
  7. data/lib/rubyfox/server/data/config/admin/descriptors/config_room.txt +97 -43
  8. data/lib/rubyfox/server/data/config/admin/descriptors/config_server.txt +307 -93
  9. data/lib/rubyfox/server/data/config/admin/descriptors/config_zone.txt +311 -95
  10. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_game.txt +5 -5
  11. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_mmo.txt +6 -6
  12. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_room.txt +69 -44
  13. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_user.txt +55 -43
  14. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_zone.txt +81 -36
  15. data/lib/rubyfox/server/data/config/admin/gmc/gmc.py +55 -18
  16. data/lib/rubyfox/server/data/config/admin/icons/Analytics.png +0 -0
  17. data/lib/rubyfox/server/data/config/admin/icons/Analytics.svg +1 -0
  18. data/lib/rubyfox/server/data/config/admin/icons/BanManager.png +0 -0
  19. data/lib/rubyfox/server/data/config/admin/icons/BanManager.svg +1 -0
  20. data/lib/rubyfox/server/data/config/admin/icons/BlueBoxMonitor.png +0 -0
  21. data/lib/rubyfox/server/data/config/admin/icons/BlueBoxMonitor.svg +1 -0
  22. data/lib/rubyfox/server/data/config/admin/icons/Console.png +0 -0
  23. data/lib/rubyfox/server/data/config/admin/icons/Console.svg +9 -0
  24. data/lib/rubyfox/server/data/config/admin/icons/Dashboard.png +0 -0
  25. data/lib/rubyfox/server/data/config/admin/icons/Dashboard.svg +1 -0
  26. data/lib/rubyfox/server/data/config/admin/icons/ExtensionManager.png +0 -0
  27. data/lib/rubyfox/server/data/config/admin/icons/ExtensionManager.svg +1 -0
  28. data/lib/rubyfox/server/data/config/admin/icons/LicenseManager.png +0 -0
  29. data/lib/rubyfox/server/data/config/admin/icons/LicenseManager.svg +1 -0
  30. data/lib/rubyfox/server/data/config/admin/icons/LogViewer.png +0 -0
  31. data/lib/rubyfox/server/data/config/admin/icons/LogViewer.svg +1 -0
  32. data/lib/rubyfox/server/data/config/admin/icons/ServerConfigurator.png +0 -0
  33. data/lib/rubyfox/server/data/config/admin/icons/ServerConfigurator.svg +1 -0
  34. data/lib/rubyfox/server/data/config/admin/icons/ServletManager.svg +1 -0
  35. data/lib/rubyfox/server/data/config/admin/icons/ZoneConfigurator.png +0 -0
  36. data/lib/rubyfox/server/data/config/admin/icons/ZoneConfigurator.svg +1 -0
  37. data/lib/rubyfox/server/data/config/admin/icons/ZoneMonitor.png +0 -0
  38. data/lib/rubyfox/server/data/config/admin/icons/ZoneMonitor.svg +1 -0
  39. data/lib/rubyfox/server/data/config/core.xml +2 -2
  40. data/lib/rubyfox/server/data/config/log4j.properties +7 -7
  41. data/lib/rubyfox/server/data/config/server.xml +8 -9
  42. data/lib/rubyfox/server/data/config/wordsFile.txt +0 -2
  43. data/lib/rubyfox/server/data/data/GeoLite2-Country.mmdb +0 -0
  44. data/lib/rubyfox/server/data/{config → data/buddylists/BasicExamples}/.keep +0 -0
  45. data/lib/rubyfox/server/data/data/{buddylists → uploads}/.keep +0 -0
  46. data/lib/rubyfox/server/data/lib/BlueBox.war +0 -0
  47. data/lib/rubyfox/server/data/lib/apache-tomcat/LICENSE +1061 -0
  48. data/lib/rubyfox/server/data/lib/apache-tomcat/NOTICE +68 -0
  49. data/lib/rubyfox/server/data/lib/apache-tomcat/README.md +79 -0
  50. data/lib/rubyfox/server/data/lib/apache-tomcat/RELEASE-NOTES +174 -0
  51. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/bootstrap.jar +0 -0
  52. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/catalina-tasks.xml +39 -0
  53. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/catalina.bat +387 -0
  54. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/catalina.sh +686 -0
  55. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/ciphers.bat +58 -0
  56. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/ciphers.sh +60 -0
  57. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/commons-daemon-native.tar.gz +0 -0
  58. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/commons-daemon.jar +0 -0
  59. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/configtest.bat +58 -0
  60. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/configtest.sh +60 -0
  61. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/daemon.sh +293 -0
  62. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/digest.bat +58 -0
  63. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/digest.sh +60 -0
  64. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/makebase.bat +114 -0
  65. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/makebase.sh +115 -0
  66. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/setclasspath.bat +94 -0
  67. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/setclasspath.sh +98 -0
  68. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/shutdown.bat +58 -0
  69. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/shutdown.sh +60 -0
  70. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/startup.bat +58 -0
  71. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/startup.sh +60 -0
  72. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tomcat-juli.jar +0 -0
  73. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tomcat-native.tar.gz +0 -0
  74. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tool-wrapper.bat +110 -0
  75. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tool-wrapper.sh +153 -0
  76. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/version.bat +58 -0
  77. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/version.sh +60 -0
  78. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/Catalina/localhost/rewrite.config +1 -0
  79. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/catalina.policy +260 -0
  80. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/catalina.properties +206 -0
  81. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/context.xml +31 -0
  82. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/jaspic-providers.xml +23 -0
  83. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/jaspic-providers.xsd +53 -0
  84. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/keystore.jks +0 -0
  85. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/logging.properties +79 -0
  86. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/server.xml +161 -0
  87. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/tomcat-users.xml +41 -0
  88. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/tomcat-users.xsd +59 -0
  89. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/web.xml +4737 -0
  90. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/annotations-api.jar +0 -0
  91. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ant.jar +0 -0
  92. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ha.jar +0 -0
  93. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ssi.jar +0 -0
  94. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-storeconfig.jar +0 -0
  95. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-tribes.jar +0 -0
  96. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina.jar +0 -0
  97. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/ecj-4.17.jar +0 -0
  98. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/el-api.jar +0 -0
  99. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jasper-el.jar +0 -0
  100. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jasper.jar +0 -0
  101. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jaspic-api.jar +0 -0
  102. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jsp-api.jar +0 -0
  103. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/servlet-api.jar +0 -0
  104. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/sfs2x-ws-helper.jar +0 -0
  105. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-api.jar +0 -0
  106. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-coyote.jar +0 -0
  107. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-dbcp.jar +0 -0
  108. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-cs.jar +0 -0
  109. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-de.jar +0 -0
  110. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-es.jar +0 -0
  111. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-fr.jar +0 -0
  112. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ja.jar +0 -0
  113. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ko.jar +0 -0
  114. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-pt-BR.jar +0 -0
  115. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ru.jar +0 -0
  116. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-zh-CN.jar +0 -0
  117. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-jdbc.jar +0 -0
  118. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-jni.jar +0 -0
  119. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-util-scan.jar +0 -0
  120. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-util.jar +0 -0
  121. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-websocket.jar +0 -0
  122. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/websocket-api.jar +0 -0
  123. data/lib/rubyfox/server/data/{extensions → lib/apache-tomcat/logs}/.keep +0 -0
  124. data/lib/rubyfox/server/data/lib/{jetty/lib/ext/.donotdelete → apache-tomcat/temp/safeToDelete.tmp} +0 -0
  125. data/lib/rubyfox/server/data/lib/{jetty/resources → apache-tomcat/work}/.keep +0 -0
  126. data/lib/rubyfox/server/data/lib/commons-collections-3.2.2.jar +0 -0
  127. data/lib/rubyfox/server/data/lib/commons-compress-1.19.jar +0 -0
  128. data/lib/rubyfox/server/data/lib/js/LibApi.js +48 -181
  129. data/lib/rubyfox/server/data/lib/sfs2x-admin.jar +0 -0
  130. data/lib/rubyfox/server/data/lib/sfs2x-core.jar +0 -0
  131. data/lib/rubyfox/server/data/lib/sfs2x-lib.jar +0 -0
  132. data/lib/rubyfox/server/data/lib/sfs2x-util.jar +0 -0
  133. data/lib/rubyfox/server/data/lib/sfs2x.jar +0 -0
  134. data/lib/rubyfox/server/data/sfs2x-service +6 -6
  135. data/lib/rubyfox/server/data/sfs2x-service.vmoptions +1 -1
  136. data/lib/rubyfox/server/data/sfs2x.sh +1 -1
  137. data/lib/rubyfox/server/data/www/BlueBox.war +0 -0
  138. data/lib/rubyfox/server/data/www/HelloServlet/index.jsp +1 -1
  139. data/lib/rubyfox/server/data/www/{root → ROOT}/_css_/default.css +0 -0
  140. data/lib/rubyfox/server/data/www/{root → ROOT}/_css_/reset.css +0 -0
  141. data/lib/rubyfox/server/data/www/{root → ROOT}/_images_/background_gradient.png +0 -0
  142. data/lib/rubyfox/server/data/www/{root → ROOT}/_images_/background_logo.png +0 -0
  143. data/lib/rubyfox/server/data/www/{root → ROOT}/_images_/favicon.png +0 -0
  144. data/lib/rubyfox/server/data/www/{root → ROOT}/_images_/logo_smartfoxserver.png +0 -0
  145. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/_changes-to-default-themes_.txt +15 -0
  146. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/bootstrap.min.css +7 -0
  147. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/custom-bootstrap.min.css +1 -0
  148. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/css/all.min.css +5 -0
  149. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-brands-400.eot +0 -0
  150. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-brands-400.svg +3459 -0
  151. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  152. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-brands-400.woff +0 -0
  153. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  154. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-regular-400.eot +0 -0
  155. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-regular-400.svg +803 -0
  156. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  157. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-regular-400.woff +0 -0
  158. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  159. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-solid-900.eot +0 -0
  160. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-solid-900.svg +4527 -0
  161. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  162. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-solid-900.woff +0 -0
  163. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  164. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/fonts.css +175 -0
  165. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/jquery.scrolling-tabs.min.css +8 -0
  166. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/kendo.custom-bootstrap-v4.css +15280 -0
  167. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/reset.css +54 -0
  168. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/style.css +1428 -0
  169. data/lib/rubyfox/server/data/www/ROOT/admin/assets/data/countries.geo.json +178 -0
  170. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/FreeMono.otf +0 -0
  171. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/FreeMono.ttf +0 -0
  172. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/FreeMono.woff +0 -0
  173. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/FreeMono.woff2 +0 -0
  174. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-300.ttf +0 -0
  175. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-300.woff +0 -0
  176. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-300.woff2 +0 -0
  177. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-300italic.ttf +0 -0
  178. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-300italic.woff +0 -0
  179. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-300italic.woff2 +0 -0
  180. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-600.ttf +0 -0
  181. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-600.woff +0 -0
  182. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-600.woff2 +0 -0
  183. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-600italic.ttf +0 -0
  184. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-600italic.woff +0 -0
  185. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-600italic.woff2 +0 -0
  186. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-700.ttf +0 -0
  187. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-700.woff +0 -0
  188. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-700.woff2 +0 -0
  189. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-700italic.ttf +0 -0
  190. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-700italic.woff +0 -0
  191. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-700italic.woff2 +0 -0
  192. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-800.ttf +0 -0
  193. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-800.woff +0 -0
  194. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-800.woff2 +0 -0
  195. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-800italic.ttf +0 -0
  196. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-800italic.woff +0 -0
  197. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-800italic.woff2 +0 -0
  198. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-italic.ttf +0 -0
  199. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-italic.woff +0 -0
  200. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-italic.woff2 +0 -0
  201. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-regular.ttf +0 -0
  202. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-regular.woff +0 -0
  203. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/open-sans-v15-cyrillic_greek_cyrillic-ext_vietnamese_latin_latin-ext_greek-ext-regular.woff2 +0 -0
  204. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/roboto-condensed-v16-latin-300.ttf +0 -0
  205. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/roboto-condensed-v16-latin-300.woff +0 -0
  206. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/roboto-condensed-v16-latin-300.woff2 +0 -0
  207. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/roboto-condensed-v16-latin-700.ttf +0 -0
  208. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/roboto-condensed-v16-latin-700.woff +0 -0
  209. data/lib/rubyfox/server/data/www/ROOT/admin/assets/fonts/roboto-condensed-v16-latin-700.woff2 +0 -0
  210. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/compare.png +0 -0
  211. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/demographicsChart.png +0 -0
  212. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/demographicsCompare.png +0 -0
  213. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/demographicsFilter.png +0 -0
  214. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/demographicsMap.png +0 -0
  215. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/demographicsTable.png +0 -0
  216. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/technologyChart.png +0 -0
  217. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/technologyCompare.png +0 -0
  218. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/technologyFilter.png +0 -0
  219. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/analytics-adv/technologyTable.png +0 -0
  220. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/apple-touch-icon-180x180.png +0 -0
  221. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/favicon-16x16.png +0 -0
  222. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/favicon-32x32.png +0 -0
  223. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/favicon-64x64.png +0 -0
  224. data/lib/rubyfox/server/data/www/ROOT/admin/assets/images/logo.png +0 -0
  225. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/application.bundle.js +2208 -0
  226. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-0.bundle.js +7662 -0
  227. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-1.bundle.js +929 -0
  228. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-10.bundle.js +766 -0
  229. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-11.bundle.js +71 -0
  230. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12.bundle.js +1184 -0
  231. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12~module-13~module-9.bundle.js +2618 -0
  232. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-13.bundle.js +3315 -0
  233. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-3.bundle.js +280 -0
  234. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-4.bundle.js +1122 -0
  235. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-5.bundle.js +2624 -0
  236. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-6.bundle.js +801 -0
  237. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-7.bundle.js +607 -0
  238. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-8.bundle.js +1221 -0
  239. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-9.bundle.js +847 -0
  240. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-0.bundle.js +3240 -0
  241. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8.bundle.js +17357 -0
  242. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-9.bundle.js +807 -0
  243. data/lib/rubyfox/server/data/{lib/jetty/webapps → www/ROOT/admin/assets/js/custom-modules}/.keep +0 -0
  244. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/bootstrap.min.js +7 -0
  245. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/jquery-3.3.1.min.js +2 -0
  246. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/jquery.scrolling-tabs.min.js +8 -0
  247. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/js.cookie.min.js +8 -0
  248. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/kendo.all.min.js +136 -0
  249. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/popper.min.js +5 -0
  250. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/sfs2x-api-1.7.15.js +8 -0
  251. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/libs/versions-readme.txt +16 -0
  252. data/lib/rubyfox/server/data/www/ROOT/admin/index.html +244 -0
  253. data/lib/rubyfox/server/data/www/ROOT/admin/manifest.json +25 -0
  254. data/lib/rubyfox/server/data/www/ROOT/admin/modules/analytics.html +328 -0
  255. data/lib/rubyfox/server/data/www/ROOT/admin/modules/ban-manager.html +160 -0
  256. data/lib/rubyfox/server/data/www/ROOT/admin/modules/blue-box-monitor.html +37 -0
  257. data/lib/rubyfox/server/data/www/ROOT/admin/modules/console.html +135 -0
  258. data/lib/rubyfox/server/data/www/ROOT/admin/modules/dashboard.html +368 -0
  259. data/lib/rubyfox/server/data/www/ROOT/admin/modules/extension-manager.html +98 -0
  260. data/lib/rubyfox/server/data/www/ROOT/admin/modules/license-manager.html +117 -0
  261. data/lib/rubyfox/server/data/www/ROOT/admin/modules/log-viewer.html +194 -0
  262. data/lib/rubyfox/server/data/www/ROOT/admin/modules/server-configurator.html +55 -0
  263. data/lib/rubyfox/server/data/www/ROOT/admin/modules/servlet-manager.html +98 -0
  264. data/lib/rubyfox/server/data/www/ROOT/admin/modules/zone-configurator.html +62 -0
  265. data/lib/rubyfox/server/data/www/ROOT/admin/modules/zone-monitor.html +346 -0
  266. data/lib/rubyfox/server/data/www/{root → ROOT}/crossdomain.xml +0 -0
  267. data/lib/rubyfox/server/data/www/{root → ROOT}/examples/index.html +0 -0
  268. data/lib/rubyfox/server/data/www/{root → ROOT}/favicon.ico +0 -0
  269. data/lib/rubyfox/server/data/www/{root → ROOT}/favicon.png +0 -0
  270. data/lib/rubyfox/server/data/www/{root → ROOT}/index.html +0 -0
  271. data/lib/rubyfox/server/data/www/host-manager/META-INF/context.xml +24 -0
  272. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/jsp/401.jsp +71 -0
  273. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/jsp/403.jsp +90 -0
  274. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/jsp/404.jsp +62 -0
  275. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/web.xml +131 -0
  276. data/lib/rubyfox/server/data/www/host-manager/images/asf-logo.svg +226 -0
  277. data/lib/rubyfox/server/data/www/host-manager/images/tomcat.gif +0 -0
  278. data/lib/rubyfox/server/data/www/host-manager/index.jsp +18 -0
  279. data/lib/rubyfox/server/data/www/host-manager/manager.xml +26 -0
  280. data/lib/rubyfox/server/data/{logs → www/logsBackup}/.keep +0 -0
  281. data/lib/rubyfox/server/data/www/manager/META-INF/context.xml +24 -0
  282. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/401.jsp +80 -0
  283. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/403.jsp +100 -0
  284. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/404.jsp +63 -0
  285. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorCerts.jsp +92 -0
  286. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorCiphers.jsp +92 -0
  287. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorTrustedCerts.jsp +92 -0
  288. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/sessionDetail.jsp +197 -0
  289. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/sessionsList.jsp +170 -0
  290. data/lib/rubyfox/server/data/www/manager/WEB-INF/web.xml +195 -0
  291. data/lib/rubyfox/server/data/www/manager/images/asf-logo.svg +226 -0
  292. data/lib/rubyfox/server/data/www/manager/images/tomcat.gif +0 -0
  293. data/lib/rubyfox/server/data/www/manager/index.jsp +18 -0
  294. data/lib/rubyfox/server/data/www/manager/status.xsd +84 -0
  295. data/lib/rubyfox/server/data/www/manager/xform.xsl +125 -0
  296. data/lib/rubyfox/server/version.rb +1 -1
  297. metadata +256 -337
  298. data/lib/rubyfox/server/data/config/ExtensionManagerLock.txt +0 -2
  299. data/lib/rubyfox/server/data/lib/Lib/reindex$py.class +0 -0
  300. data/lib/rubyfox/server/data/lib/jetty/VERSION.txt +0 -9716
  301. data/lib/rubyfox/server/data/lib/jetty/etc/README.spnego +0 -62
  302. data/lib/rubyfox/server/data/lib/jetty/etc/example-quickstart.xml +0 -27
  303. data/lib/rubyfox/server/data/lib/jetty/etc/gcloud-memcached-session-context.xml +0 -33
  304. data/lib/rubyfox/server/data/lib/jetty/etc/gcloud-session-context.xml +0 -25
  305. data/lib/rubyfox/server/data/lib/jetty/etc/hawtio.xml +0 -16
  306. data/lib/rubyfox/server/data/lib/jetty/etc/home-base-warning.xml +0 -8
  307. data/lib/rubyfox/server/data/lib/jetty/etc/jamon.xml +0 -32
  308. data/lib/rubyfox/server/data/lib/jetty/etc/jdbcRealm.properties +0 -72
  309. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-alpn.xml +0 -32
  310. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-annotations.xml +0 -20
  311. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-cdi.xml +0 -19
  312. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-debug.xml +0 -36
  313. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-debuglog.xml +0 -25
  314. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-deploy.xml +0 -76
  315. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-gcloud-memcached-sessions.xml +0 -27
  316. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-gcloud-session-idmgr.xml +0 -19
  317. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-gcloud-sessions.xml +0 -27
  318. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-gzip-inflate.xml +0 -12
  319. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-gzip.xml +0 -67
  320. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-http-forwarded.xml +0 -20
  321. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-http.xml +0 -47
  322. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-http2.xml +0 -25
  323. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-http2c.xml +0 -17
  324. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-https.xml +0 -29
  325. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-infinispan.xml +0 -39
  326. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ipaccess.xml +0 -28
  327. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jaas.xml +0 -16
  328. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jdbc-sessions.xml +0 -34
  329. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx-remote.xml +0 -40
  330. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx.xml +0 -32
  331. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-logging.xml +0 -36
  332. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-lowresources.xml +0 -22
  333. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-monitor.xml +0 -30
  334. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-nosql.xml +0 -19
  335. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-plus.xml +0 -26
  336. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-proxy-protocol-ssl.xml +0 -10
  337. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-proxy-protocol.xml +0 -10
  338. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-proxy.xml +0 -35
  339. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-requestlog.xml +0 -30
  340. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-rewrite-customizer.xml +0 -17
  341. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-rewrite.xml +0 -31
  342. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-setuid.xml +0 -30
  343. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-spring.xml +0 -61
  344. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ssl-context.xml +0 -31
  345. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ssl.xml +0 -58
  346. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-started.xml +0 -15
  347. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-stats.xml +0 -18
  348. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-stop.xml +0 -6
  349. data/lib/rubyfox/server/data/lib/jetty/etc/jetty-threadlimit.xml +0 -20
  350. data/lib/rubyfox/server/data/lib/jetty/etc/jetty.conf +0 -12
  351. data/lib/rubyfox/server/data/lib/jetty/etc/jetty.xml +0 -195
  352. data/lib/rubyfox/server/data/lib/jetty/etc/jminix.xml +0 -12
  353. data/lib/rubyfox/server/data/lib/jetty/etc/jolokia.xml +0 -16
  354. data/lib/rubyfox/server/data/lib/jetty/etc/keystore +0 -0
  355. data/lib/rubyfox/server/data/lib/jetty/etc/krb5.ini +0 -23
  356. data/lib/rubyfox/server/data/lib/jetty/etc/rewrite-compactpath.xml +0 -10
  357. data/lib/rubyfox/server/data/lib/jetty/etc/sessions/hazelcast/default.xml +0 -19
  358. data/lib/rubyfox/server/data/lib/jetty/etc/sessions/hazelcast/remote.xml +0 -19
  359. data/lib/rubyfox/server/data/lib/jetty/etc/spnego.conf +0 -19
  360. data/lib/rubyfox/server/data/lib/jetty/etc/spnego.properties +0 -1
  361. data/lib/rubyfox/server/data/lib/jetty/etc/webdefault.xml +0 -539
  362. data/lib/rubyfox/server/data/lib/jetty/lib/alpn-api-1.1.3.v20160715.jar +0 -0
  363. data/lib/rubyfox/server/data/lib/jetty/lib/apache-jsp/org.eclipse.jdt.core.compiler.ecj-4.4.2.jar +0 -0
  364. data/lib/rubyfox/server/data/lib/jetty/lib/apache-jsp/org.eclipse.jetty.apache-jsp-9.3.28.v20191105.jar +0 -0
  365. data/lib/rubyfox/server/data/lib/jetty/lib/apache-jsp/org.mortbay.jasper.apache-el-8.0.33.jar +0 -0
  366. data/lib/rubyfox/server/data/lib/jetty/lib/apache-jsp/org.mortbay.jasper.apache-jsp-8.0.33.jar +0 -0
  367. data/lib/rubyfox/server/data/lib/jetty/lib/apache-jstl/org.apache.taglibs.taglibs-standard-impl-1.2.5.jar +0 -0
  368. data/lib/rubyfox/server/data/lib/jetty/lib/apache-jstl/org.apache.taglibs.taglibs-standard-spec-1.2.5.jar +0 -0
  369. data/lib/rubyfox/server/data/lib/jetty/lib/asm-6.0.jar +0 -0
  370. data/lib/rubyfox/server/data/lib/jetty/lib/asm-commons-6.0.jar +0 -0
  371. data/lib/rubyfox/server/data/lib/jetty/lib/fcgi/fcgi-client-9.3.28.v20191105.jar +0 -0
  372. data/lib/rubyfox/server/data/lib/jetty/lib/fcgi/fcgi-server-9.3.28.v20191105.jar +0 -0
  373. data/lib/rubyfox/server/data/lib/jetty/lib/http2/http2-common-9.3.28.v20191105.jar +0 -0
  374. data/lib/rubyfox/server/data/lib/jetty/lib/http2/http2-hpack-9.3.28.v20191105.jar +0 -0
  375. data/lib/rubyfox/server/data/lib/jetty/lib/http2/http2-server-9.3.28.v20191105.jar +0 -0
  376. data/lib/rubyfox/server/data/lib/jetty/lib/jaspi/javax.security.auth.message-1.0.0.v201108011116.jar +0 -0
  377. data/lib/rubyfox/server/data/lib/jetty/lib/javax-websocket-client-impl-9.3.28.v20191105.jar +0 -0
  378. data/lib/rubyfox/server/data/lib/jetty/lib/javax-websocket-server-impl-9.3.28.v20191105.jar +0 -0
  379. data/lib/rubyfox/server/data/lib/jetty/lib/javax.annotation-api-1.2.jar +0 -0
  380. data/lib/rubyfox/server/data/lib/jetty/lib/javax.websocket-api-1.0.jar +0 -0
  381. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-alpn-java-server-9.3.28.v20191105.jar +0 -0
  382. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-alpn-server-9.3.28.v20191105.jar +0 -0
  383. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-annotations-9.3.28.v20191105.jar +0 -0
  384. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-client-9.3.28.v20191105.jar +0 -0
  385. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-continuation-9.3.28.v20191105.jar +0 -0
  386. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-deploy-9.3.28.v20191105.jar +0 -0
  387. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-gcloud-memcached-session-manager-9.3.28.v20191105.jar +0 -0
  388. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-gcloud-session-manager-9.3.28.v20191105.jar +0 -0
  389. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-hazelcast-9.3.28.v20191105.jar +0 -0
  390. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-http-9.3.28.v20191105.jar +0 -0
  391. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-infinispan-9.3.28.v20191105.jar +0 -0
  392. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-io-9.3.28.v20191105.jar +0 -0
  393. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaas-9.3.28.v20191105.jar +0 -0
  394. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaspi-9.3.28.v20191105.jar +0 -0
  395. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jmx-9.3.28.v20191105.jar +0 -0
  396. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jndi-9.3.28.v20191105.jar +0 -0
  397. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-nosql-9.3.28.v20191105.jar +0 -0
  398. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-plus-9.3.28.v20191105.jar +0 -0
  399. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-proxy-9.3.28.v20191105.jar +0 -0
  400. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-quickstart-9.3.28.v20191105.jar +0 -0
  401. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-rewrite-9.3.28.v20191105.jar +0 -0
  402. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-schemas-3.1.jar +0 -0
  403. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-security-9.3.28.v20191105.jar +0 -0
  404. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-server-9.3.28.v20191105.jar +0 -0
  405. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlet-9.3.28.v20191105.jar +0 -0
  406. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlets-9.3.28.v20191105.jar +0 -0
  407. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-util-9.3.28.v20191105.jar +0 -0
  408. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-webapp-9.3.28.v20191105.jar +0 -0
  409. data/lib/rubyfox/server/data/lib/jetty/lib/jetty-xml-9.3.28.v20191105.jar +0 -0
  410. data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.mail.glassfish-1.4.1.v201005082020.jar +0 -0
  411. data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.transaction-api-1.2.jar +0 -0
  412. data/lib/rubyfox/server/data/lib/jetty/lib/monitor/jetty-monitor-9.3.28.v20191105.jar +0 -0
  413. data/lib/rubyfox/server/data/lib/jetty/lib/servlet-api-3.1.jar +0 -0
  414. data/lib/rubyfox/server/data/lib/jetty/lib/setuid/jetty-setuid-java-1.0.3.jar +0 -0
  415. data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-linux.so +0 -0
  416. data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-osx.so +0 -0
  417. data/lib/rubyfox/server/data/lib/jetty/lib/spring/jetty-spring-9.3.28.v20191105.jar +0 -0
  418. data/lib/rubyfox/server/data/lib/jetty/lib/start.jar +0 -0
  419. data/lib/rubyfox/server/data/lib/jetty/lib/websocket-api-9.3.28.v20191105.jar +0 -0
  420. data/lib/rubyfox/server/data/lib/jetty/lib/websocket-client-9.3.28.v20191105.jar +0 -0
  421. data/lib/rubyfox/server/data/lib/jetty/lib/websocket-common-9.3.28.v20191105.jar +0 -0
  422. data/lib/rubyfox/server/data/lib/jetty/lib/websocket-server-9.3.28.v20191105.jar +0 -0
  423. data/lib/rubyfox/server/data/lib/jetty/lib/websocket-servlet-9.3.28.v20191105.jar +0 -0
  424. data/lib/rubyfox/server/data/lib/jetty/license-eplv10-aslv20.html +0 -576
  425. data/lib/rubyfox/server/data/lib/jetty/modules/.donotdelete +0 -0
  426. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0.mod +0 -8
  427. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_05.mod +0 -8
  428. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_101.mod +0 -8
  429. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_102.mod +0 -8
  430. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_11.mod +0 -8
  431. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_111.mod +0 -8
  432. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_112.mod +0 -8
  433. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_121.mod +0 -8
  434. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_131.mod +0 -8
  435. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_141.mod +0 -8
  436. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_144.mod +0 -8
  437. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_151.mod +0 -8
  438. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_152.mod +0 -8
  439. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_161.mod +0 -8
  440. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_162.mod +0 -8
  441. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_171.mod +0 -8
  442. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_172.mod +0 -8
  443. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_181.mod +0 -8
  444. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_191.mod +0 -8
  445. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_192.mod +0 -8
  446. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_20.mod +0 -8
  447. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_201.mod +0 -8
  448. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_202.mod +0 -8
  449. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_211.mod +0 -8
  450. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_212.mod +0 -8
  451. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_221.mod +0 -8
  452. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_222.mod +0 -8
  453. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_231.mod +0 -8
  454. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_232.mod +0 -8
  455. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_25.mod +0 -8
  456. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_31.mod +0 -8
  457. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_40.mod +0 -8
  458. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_45.mod +0 -8
  459. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_51.mod +0 -8
  460. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_60.mod +0 -8
  461. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_65.mod +0 -8
  462. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_66.mod +0 -8
  463. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_71.mod +0 -8
  464. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_72.mod +0 -8
  465. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_73.mod +0 -8
  466. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_74.mod +0 -8
  467. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_77.mod +0 -8
  468. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_91.mod +0 -8
  469. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-1.8.0_92.mod +0 -8
  470. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-8.mod +0 -30
  471. data/lib/rubyfox/server/data/lib/jetty/modules/alpn-impl/alpn-9.mod +0 -5
  472. data/lib/rubyfox/server/data/lib/jetty/modules/alpn.mod +0 -22
  473. data/lib/rubyfox/server/data/lib/jetty/modules/annotations.mod +0 -17
  474. data/lib/rubyfox/server/data/lib/jetty/modules/apache-jsp.mod +0 -10
  475. data/lib/rubyfox/server/data/lib/jetty/modules/apache-jstl.mod +0 -9
  476. data/lib/rubyfox/server/data/lib/jetty/modules/cdi.mod +0 -38
  477. data/lib/rubyfox/server/data/lib/jetty/modules/client.mod +0 -6
  478. data/lib/rubyfox/server/data/lib/jetty/modules/continuation.mod +0 -6
  479. data/lib/rubyfox/server/data/lib/jetty/modules/debug.mod +0 -29
  480. data/lib/rubyfox/server/data/lib/jetty/modules/debuglog.mod +0 -25
  481. data/lib/rubyfox/server/data/lib/jetty/modules/deploy.mod +0 -31
  482. data/lib/rubyfox/server/data/lib/jetty/modules/ext.mod +0 -11
  483. data/lib/rubyfox/server/data/lib/jetty/modules/fcgi.mod +0 -15
  484. data/lib/rubyfox/server/data/lib/jetty/modules/flight-recorder.mod +0 -13
  485. data/lib/rubyfox/server/data/lib/jetty/modules/gcloud-memcached-sessions.mod +0 -26
  486. data/lib/rubyfox/server/data/lib/jetty/modules/gcloud-session-idmgr.mod +0 -63
  487. data/lib/rubyfox/server/data/lib/jetty/modules/gcloud-sessions.mod +0 -11
  488. data/lib/rubyfox/server/data/lib/jetty/modules/gzip-inflate.mod +0 -17
  489. data/lib/rubyfox/server/data/lib/jetty/modules/gzip.mod +0 -23
  490. data/lib/rubyfox/server/data/lib/jetty/modules/hawtio.mod +0 -28
  491. data/lib/rubyfox/server/data/lib/jetty/modules/hazelcast-embedded-sessions.mod +0 -26
  492. data/lib/rubyfox/server/data/lib/jetty/modules/hazelcast-remote-sessions.mod +0 -26
  493. data/lib/rubyfox/server/data/lib/jetty/modules/home-base-warning.mod +0 -7
  494. data/lib/rubyfox/server/data/lib/jetty/modules/http-forwarded.mod +0 -24
  495. data/lib/rubyfox/server/data/lib/jetty/modules/http.mod +0 -39
  496. data/lib/rubyfox/server/data/lib/jetty/modules/http2.mod +0 -20
  497. data/lib/rubyfox/server/data/lib/jetty/modules/http2c.mod +0 -22
  498. data/lib/rubyfox/server/data/lib/jetty/modules/https.mod +0 -14
  499. data/lib/rubyfox/server/data/lib/jetty/modules/infinispan.mod +0 -33
  500. data/lib/rubyfox/server/data/lib/jetty/modules/ipaccess.mod +0 -9
  501. data/lib/rubyfox/server/data/lib/jetty/modules/jaas.mod +0 -17
  502. data/lib/rubyfox/server/data/lib/jetty/modules/jamon.mod +0 -31
  503. data/lib/rubyfox/server/data/lib/jetty/modules/jaspi.mod +0 -10
  504. data/lib/rubyfox/server/data/lib/jetty/modules/jdbc-sessions.mod +0 -27
  505. data/lib/rubyfox/server/data/lib/jetty/modules/jminix.mod +0 -41
  506. data/lib/rubyfox/server/data/lib/jetty/modules/jmx-remote.mod +0 -16
  507. data/lib/rubyfox/server/data/lib/jetty/modules/jmx.mod +0 -13
  508. data/lib/rubyfox/server/data/lib/jetty/modules/jndi.mod +0 -11
  509. data/lib/rubyfox/server/data/lib/jetty/modules/jolokia.mod +0 -19
  510. data/lib/rubyfox/server/data/lib/jetty/modules/jsp.mod +0 -9
  511. data/lib/rubyfox/server/data/lib/jetty/modules/jstl.mod +0 -8
  512. data/lib/rubyfox/server/data/lib/jetty/modules/jvm.mod +0 -22
  513. data/lib/rubyfox/server/data/lib/jetty/modules/logging.mod +0 -36
  514. data/lib/rubyfox/server/data/lib/jetty/modules/lowresources.mod +0 -28
  515. data/lib/rubyfox/server/data/lib/jetty/modules/monitor.mod +0 -13
  516. data/lib/rubyfox/server/data/lib/jetty/modules/nosql.mod +0 -31
  517. data/lib/rubyfox/server/data/lib/jetty/modules/plus.mod +0 -15
  518. data/lib/rubyfox/server/data/lib/jetty/modules/proxy-protocol-ssl.mod +0 -9
  519. data/lib/rubyfox/server/data/lib/jetty/modules/proxy-protocol.mod +0 -9
  520. data/lib/rubyfox/server/data/lib/jetty/modules/proxy.mod +0 -22
  521. data/lib/rubyfox/server/data/lib/jetty/modules/quickstart.mod +0 -11
  522. data/lib/rubyfox/server/data/lib/jetty/modules/requestlog.mod +0 -40
  523. data/lib/rubyfox/server/data/lib/jetty/modules/resources.mod +0 -10
  524. data/lib/rubyfox/server/data/lib/jetty/modules/rewrite-compactpath.mod +0 -10
  525. data/lib/rubyfox/server/data/lib/jetty/modules/rewrite-customizer.mod +0 -24
  526. data/lib/rubyfox/server/data/lib/jetty/modules/rewrite.mod +0 -23
  527. data/lib/rubyfox/server/data/lib/jetty/modules/security.mod +0 -9
  528. data/lib/rubyfox/server/data/lib/jetty/modules/server.mod +0 -82
  529. data/lib/rubyfox/server/data/lib/jetty/modules/servlet.mod +0 -9
  530. data/lib/rubyfox/server/data/lib/jetty/modules/servlets.mod +0 -11
  531. data/lib/rubyfox/server/data/lib/jetty/modules/setuid.mod +0 -19
  532. data/lib/rubyfox/server/data/lib/jetty/modules/spring.mod +0 -17
  533. data/lib/rubyfox/server/data/lib/jetty/modules/ssl.mod +0 -101
  534. data/lib/rubyfox/server/data/lib/jetty/modules/stats.mod +0 -9
  535. data/lib/rubyfox/server/data/lib/jetty/modules/threadlimit.mod +0 -22
  536. data/lib/rubyfox/server/data/lib/jetty/modules/webapp.mod +0 -10
  537. data/lib/rubyfox/server/data/lib/jetty/modules/websocket.mod +0 -12
  538. data/lib/rubyfox/server/data/lib/jetty/start.ini +0 -85
  539. data/lib/rubyfox/server/data/www/.keep +0 -0
  540. data/lib/rubyfox/server/data/www/HelloServlet/META-INF/context.xml +0 -2
  541. data/lib/rubyfox/server/data/www/PyServletExample/MyModule$py.class +0 -0
  542. data/lib/rubyfox/server/data/www/PyServletExample/MyModule.py +0 -5
  543. data/lib/rubyfox/server/data/www/PyServletExample/WEB-INF/web.xml +0 -37
  544. data/lib/rubyfox/server/data/www/PyServletExample/errors/404.htm +0 -20
  545. data/lib/rubyfox/server/data/www/PyServletExample/index.py +0 -42
  546. data/lib/rubyfox/server/data/www/root/admin/.keep +0 -0
  547. data/lib/rubyfox/server/data/www/root/admin/AdminTool.swf +0 -0
  548. data/lib/rubyfox/server/data/www/root/admin/ReleaseNotes.txt +0 -201
  549. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/adobeFlashPlayer.png +0 -0
  550. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/advanced.png +0 -0
  551. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/analytics.png +0 -0
  552. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/banManager.png +0 -0
  553. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedIPs.png +0 -0
  554. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedUsernames.png +0 -0
  555. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bookmarks.png +0 -0
  556. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bootLog.png +0 -0
  557. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/buddyList.png +0 -0
  558. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/buddyProperties.png +0 -0
  559. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/connection.png +0 -0
  560. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/databaseManager.png +0 -0
  561. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/floodFilter.png +0 -0
  562. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/gameSettings.png +0 -0
  563. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/general.png +0 -0
  564. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/globalServerStatus.png +0 -0
  565. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/hTML5WebSockets.png +0 -0
  566. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/iPDiscovery.png +0 -0
  567. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/iPFilter.png +0 -0
  568. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/jVMSettings.png +0 -0
  569. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/logsDownload.png +0 -0
  570. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/mMOSettings.png +0 -0
  571. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/mailer.png +0 -0
  572. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/permissionsAndEvents.png +0 -0
  573. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/privilegeManager.png +0 -0
  574. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/remoteAdmin.png +0 -0
  575. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomExtension.png +0 -0
  576. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomVariables.png +0 -0
  577. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomsAndGroups.png +0 -0
  578. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeLog.png +0 -0
  579. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeRoomSettings.png +0 -0
  580. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeUserSettings.png +0 -0
  581. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeZoneSettings.png +0 -0
  582. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsApplication.png +0 -0
  583. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsDemographics.png +0 -0
  584. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsExceptions.png +0 -0
  585. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsOverview.png +0 -0
  586. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsTechnology.png +0 -0
  587. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/systemQueueStatus.png +0 -0
  588. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/threadPools.png +0 -0
  589. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/userManagement.png +0 -0
  590. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/userVariables.png +0 -0
  591. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/webServer.png +0 -0
  592. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/wordsFilter.png +0 -0
  593. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneExtension.png +0 -0
  594. data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneTraffic.png +0 -0
  595. data/lib/rubyfox/server/data/www/root/admin/expressInstall.swf +0 -0
  596. data/lib/rubyfox/server/data/www/root/admin/index.html +0 -124
  597. data/lib/rubyfox/server/data/www/root/admin/modules/Analytics.swf +0 -0
  598. data/lib/rubyfox/server/data/www/root/admin/modules/BanManager.swf +0 -0
  599. data/lib/rubyfox/server/data/www/root/admin/modules/BlueBoxMonitor.swf +0 -0
  600. data/lib/rubyfox/server/data/www/root/admin/modules/Console.swf +0 -0
  601. data/lib/rubyfox/server/data/www/root/admin/modules/Dashboard.swf +0 -0
  602. data/lib/rubyfox/server/data/www/root/admin/modules/ExtensionManager.swf +0 -0
  603. data/lib/rubyfox/server/data/www/root/admin/modules/LicenseManager.swf +0 -0
  604. data/lib/rubyfox/server/data/www/root/admin/modules/LogViewer.swf +0 -0
  605. data/lib/rubyfox/server/data/www/root/admin/modules/ServerConfigurator.swf +0 -0
  606. data/lib/rubyfox/server/data/www/root/admin/modules/ServletManager.swf +0 -0
  607. data/lib/rubyfox/server/data/www/root/admin/modules/ZoneConfigurator.swf +0 -0
  608. data/lib/rubyfox/server/data/www/root/admin/modules/ZoneMonitor.swf +0 -0
  609. data/lib/rubyfox/server/data/www/root/admin/swfobject.js +0 -4
  610. data/lib/rubyfox/server/data/www/root/examples/.keep +0 -0
  611. data/lib/rubyfox/server/data/www/sfs2x-ws.war +0 -0
  612. data/lib/rubyfox/server/data/www/sfs2x-ws.xml +0 -30
  613. data/lib/rubyfox/server/data/zones/BasicExamples.zone.xml +0 -147
@@ -0,0 +1,178 @@
1
+ {"type":"FeatureCollection", "features": [
2
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[180,-16.067132663642447],[180,-16.555216566639196],[179.36414266196414,-16.801354076946883],[178.72505936299711,-17.01204167436804],[178.59683859511713,-16.639150000000004],[179.0966093629971,-16.433984277547403],[179.4135093629971,-16.379054277547404],[180,-16.067132663642447]]],[[[178.12557,-17.50481],[178.3736,-17.33992],[178.71806,-17.62846],[178.55271,-18.15059],[177.93266000000003,-18.28799],[177.38146,-18.16432],[177.28504,-17.72465],[177.67087,-17.381140000000002],[178.12557,-17.50481]]],[[[-179.79332010904864,-16.020882256741224],[-179.9173693847653,-16.501783135649397],[-180,-16.555216566639196],[-180,-16.067132663642447],[-179.79332010904864,-16.020882256741224]]]]},"properties":{"ISO_A2":"FJ","NAME":"Fiji"}},
3
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.90371119710453,-0.9500000000000001],[34.07261999999997,-1.0598199999999451],[37.69868999999994,-3.0969899999999484],[37.7669,-3.6771200000000004],[39.20222,-4.67677],[38.74053999999995,-5.9089499999999475],[38.79977000000008,-6.475660000000005],[39.44,-6.839999999999861],[39.47000000000014,-7.099999999999966],[39.19468999999998,-7.703899999999976],[39.25203000000005,-8.00780999999995],[39.18652000000009,-8.48550999999992],[39.53574000000009,-9.112369999999885],[39.94960000000003,-10.098400000000026],[40.316586229110854,-10.317097752817492],[40.31659000000002,-10.317099999999868],[39.52099999999996,-10.89688000000001],[38.42755659358775,-11.285202325081656],[37.827639999999974,-11.26878999999991],[37.471289999999954,-11.568759999999997],[36.775150994622805,-11.594537448780805],[36.51408165868426,-11.720938002166735],[35.31239790216904,-11.439146416879147],[34.55998904799935,-11.520020033415925],[34.27999999999997,-10.160000000000025],[33.940837724096525,-9.693673841980285],[33.73972000000009,-9.417149999999992],[32.75937544122132,-9.23059905358906],[32.19186486179194,-8.930358981973257],[31.556348097466497,-8.762048841998642],[31.15775133695005,-8.594578747317366],[30.740009731422095,-8.34000593035372],[30.74001549655179,-8.340007419470915],[30.199996779101696,-7.079980970898163],[29.620032179490014,-6.520015150583426],[29.419992710088167,-5.939998874539434],[29.519986606572928,-5.419978936386315],[29.339997592900346,-4.4999834122940925],[29.753512404099865,-4.452389418153302],[30.11632000000003,-4.090120000000013],[30.505539999999996,-3.5685799999999404],[30.752240000000086,-3.3593099999999936],[30.743010000000027,-3.034309999999948],[30.527660000000026,-2.807619999999986],[30.469673645761223,-2.41385475710134],[30.469670000000008,-2.4138299999999617],[30.75830895358311,-2.2872502579883687],[30.816134881317712,-1.6989140763453887],[30.419104852019245,-1.1346591121504161],[30.769860000000108,-1.0145499999999856],[31.866170000000068,-1.0273599999999306],[33.90371119710453,-0.9500000000000001]]]},"properties":{"ISO_A2":"TZ","NAME":"Tanzania"}},
4
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.665589565454809,27.656425889592356],[-8.665124477564191,27.589479071558227],[-8.684399786809053,27.395744126896005],[-8.6872936670174,25.881056219988906],[-11.96941891117116,25.933352769468268],[-11.937224493853321,23.374594224536168],[-12.874221564169575,23.284832261645178],[-13.118754441774712,22.771220201096256],[-12.929101935263532,21.327070624267563],[-16.845193650773993,21.33332347257488],[-17.06342322434257,20.999752102130827],[-17.02042843267577,21.422310288981578],[-17.00296179856109,21.420734157796577],[-14.750954555713534,21.500600083903663],[-14.630832688851072,21.860939846274903],[-14.221167771857253,22.31016307218816],[-13.891110398809047,23.691009019459305],[-12.50096269372537,24.7701162785782],[-12.03075883630163,26.030866197203068],[-11.718219773800357,26.104091701760623],[-11.392554897497007,26.883423977154393],[-10.551262579785273,26.990807603456886],[-10.189424200877582,26.860944729107405],[-9.735343390328879,26.860944729107405],[-9.41303748212448,27.088476060488574],[-8.794883999049077,27.120696316022507],[-8.817828334986672,27.656425889592356],[-8.665589565454809,27.656425889592356]]]},"properties":{"ISO_A2":"EH","NAME":"W. Sahara"}},
5
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-122.84000000000003,49.000000000000114],[-122.97421000000001,49.00253777777778],[-124.91024,49.98456],[-125.62461,50.416560000000004],[-127.43561000000001,50.83061],[-127.99276,51.71583],[-127.85032,52.32961],[-129.12979,52.75538],[-129.30523,53.561589999999995],[-130.51497,54.28757],[-130.53610895273684,54.80275447679924],[-130.53611,54.802780000000006],[-129.98,55.285000000000004],[-130.00778000000003,55.915830000000085],[-131.70781,56.55212],[-132.73042,57.692890000000006],[-133.35556000000003,58.41028000000001],[-134.27111000000002,58.86111000000005],[-134.94500000000005,59.2705600000001],[-135.47583,59.787780000000005],[-136.47972000000004,59.46389000000005],[-137.4525,58.905],[-138.34089,59.562110000000004],[-139.03900000000002,60],[-140.013,60.27682000000001],[-140.99778,60.30639000000001],[-140.9925,66.00003000000001],[-140.986,69.712],[-140.98598761037601,69.71199839952635],[-139.12052,69.47102],[-137.54636000000002,68.99002],[-136.50358,68.89804],[-135.62576,69.31512000000001],[-134.41464000000002,69.62743],[-132.92925000000002,69.50534],[-131.43135999999998,69.94451],[-129.79471,70.19369],[-129.10773,69.77927000000001],[-128.36156,70.01286],[-128.13817,70.48384],[-127.44712000000001,70.37721],[-125.75632000000002,69.48058],[-124.42483,70.1584],[-124.28968,69.39968999999999],[-123.06108,69.56372],[-122.6835,69.85553],[-121.47226,69.79778],[-119.94288,69.37786],[-117.60268,69.01128],[-116.22643,68.84151],[-115.24690000000001,68.90591],[-113.89793999999999,68.3989],[-115.30489,67.90261000000001],[-113.49727,67.68815000000001],[-110.798,67.80611999999999],[-109.94619,67.98104000000001],[-108.8802,67.38144],[-107.79239,67.88736],[-108.81299,68.31164],[-108.16721000000001,68.65392],[-106.95,68.7],[-106.15,68.8],[-105.34282000000002,68.56122],[-104.33791000000001,68.018],[-103.22115000000001,68.09775],[-101.45433,67.64689],[-99.90195,67.80566],[-98.4432,67.78165],[-98.5586,68.40394],[-97.66948000000001,68.57864000000001],[-96.11991,68.23939],[-96.12588,67.29338],[-95.48943,68.0907],[-94.685,68.06383],[-94.23282000000002,69.06903000000001],[-95.30408,69.68571],[-96.47131,70.08976],[-96.39115,71.19482],[-95.2088,71.92053],[-93.88997,71.76015],[-92.87818,71.31869],[-91.51964000000001,70.19129000000001],[-92.40692000000001,69.69997000000001],[-90.5471,69.49766],[-90.55151000000001,68.47499],[-89.21515,69.25873],[-88.01966,68.61508],[-88.31748999999999,67.87338000000001],[-87.35017,67.19872],[-86.30606999999999,67.92146],[-85.57664,68.78456],[-85.52197,69.88211],[-84.10081000000001,69.80539],[-82.62258,69.65826],[-81.28043000000001,69.16202000000001],[-81.22019999999999,68.66567],[-81.96436000000001,68.13253],[-81.25928,67.59716],[-81.38653000000001,67.11078],[-83.34456,66.41154],[-84.73542,66.2573],[-85.76943,66.55833],[-86.06760000000001,66.05625],[-87.03143,65.21297],[-87.32324,64.77563],[-88.48296,64.09897000000001],[-89.91444,64.03273],[-90.70398,63.610170000000004],[-90.77004000000001,62.960210000000004],[-91.93342,62.83508],[-93.15698,62.02469000000001],[-94.24153,60.89865],[-94.62930999999999,60.11021],[-94.6846,58.94882],[-93.21502000000001,58.78212],[-92.76462000000001,57.84571],[-92.29702999999999,57.08709],[-90.89769,57.28468],[-89.03953,56.85172],[-88.03978000000001,56.47162],[-87.32421,55.999140000000004],[-86.07121,55.72383],[-85.01181000000001,55.302600000000005],[-83.36055,55.24489],[-82.27285,55.14832],[-82.43620000000001,54.282270000000004],[-82.12502,53.27703],[-81.40075,52.157880000000006],[-79.91289,51.208420000000004],[-79.14301,51.533930000000005],[-78.60191,52.56208],[-79.12421,54.14145],[-79.82958,54.66772],[-78.22874,55.136449999999996],[-77.0956,55.83741],[-76.54137,56.53423000000001],[-76.62319000000001,57.20263],[-77.30226,58.05209],[-78.51688,58.80458],[-77.33676,59.852610000000006],[-77.77272,60.75788000000001],[-78.10687,62.31964000000001],[-77.41067,62.55053],[-75.69621000000001,62.2784],[-74.6682,62.181110000000004],[-73.83988000000001,62.4438],[-72.90853,62.10507],[-71.67708,61.52535],[-71.37369000000001,61.137170000000005],[-69.59042,61.06141],[-69.62033,60.221250000000005],[-69.28790000000001,58.95736],[-68.37455,58.80106],[-67.64976,58.21206],[-66.20178,58.76731],[-65.24517,59.87071],[-64.58352000000001,60.33558],[-63.804750000000006,59.442600000000006],[-62.502359999999996,58.16708],[-61.396550000000005,56.96745000000001],[-61.798660000000005,56.33945],[-60.46853,55.775479999999995],[-59.56962,55.20407],[-57.97508,54.94549000000001],[-57.3332,54.6265],[-56.93689,53.780319999999996],[-56.15811,53.647490000000005],[-55.75632,53.27036],[-55.68338,52.146640000000005],[-56.40916000000001,51.770700000000005],[-57.12691,51.419720000000005],[-58.77482,51.0643],[-60.03309000000001,50.24277],[-61.72366,50.08046],[-63.86251,50.29099],[-65.36331,50.2982],[-66.39905,50.228970000000004],[-67.23631,49.511559999999996],[-68.51114,49.068360000000006],[-69.95362,47.74488],[-71.10458,46.82171],[-70.25522,46.986059999999995],[-68.65,48.3],[-66.55243,49.1331],[-65.05626,49.232780000000005],[-64.17099,48.74248],[-65.11545000000001,48.07085],[-64.79854,46.99297],[-64.47219,46.238490000000006],[-63.17329000000001,45.73902],[-61.520720000000004,45.883770000000005],[-60.518150000000006,47.00793],[-60.448600000000006,46.28264],[-59.80287,45.9204],[-61.03988,45.265249999999995],[-63.254709999999996,44.67014],[-64.24656,44.265530000000005],[-65.36406000000001,43.54523],[-66.1234,43.61867],[-66.16173,44.46512],[-64.42549,45.29204],[-66.02605000000001,45.25931],[-67.13741,45.13753],[-67.79134,45.70281000000001],[-67.79046000000001,47.066359999999996],[-68.23444,47.354859999999974],[-68.90500000000003,47.18500000000006],[-69.237216,47.447781],[-69.99997,46.69307],[-70.305,45.915],[-70.66,45.46],[-71.08482000000004,45.30524000000014],[-71.405,45.254999999999995],[-71.50506,45.0082],[-73.34783,45.00738],[-74.86700000000002,45.000480000000096],[-75.31821000000001,44.81645],[-76.375,44.09631],[-76.50000000000001,44.01845889375865],[-76.82003414580558,43.628784288093755],[-77.7378850979577,43.62905558936328],[-78.72027991404235,43.62508942318493],[-79.17167355011186,43.46633942318426],[-79.01,43.27],[-78.92,42.964999999999996],[-78.93936214874375,42.86361135514798],[-80.24744767934794,42.36619985612255],[-81.27774654816716,42.209025987306816],[-82.4392777167916,41.675105088867326],[-82.69008928092023,41.675105088867326],[-83.029810146807,41.83279572200598],[-83.14199968131264,41.975681057292874],[-83.12,42.08],[-82.9,42.43],[-82.42999999999999,42.980000000000004],[-82.13764238150395,43.57108755143997],[-82.33776312543114,44.440000000000055],[-82.55092464875821,45.34751658790543],[-83.59285071484311,45.81689362241252],[-83.46955074739469,45.994686387712534],[-83.61613094759059,46.116926988299014],[-83.89076534700574,46.116926988299014],[-84.0918512641615,46.27541860613826],[-84.1421195136734,46.51222585711571],[-84.33670000000001,46.408770000000004],[-84.60490000000004,46.439599999999984],[-84.54374874544584,46.538684190449146],[-84.77923824739992,46.63710195574902],[-84.8760798815149,46.90008331968238],[-85.65236324740341,47.22021881773051],[-86.46199083122826,47.553338019392],[-87.43979262330028,47.94],[-88.37811418328671,48.302917588893706],[-89.27291744663665,48.01980825458281],[-89.60000000000002,48.010000000000105],[-90.83,48.27],[-91.64,48.14],[-92.61000000000001,48.44999999999993],[-93.63087000000002,48.609260000000006],[-94.32914000000001,48.67074],[-94.64,48.84],[-94.81758000000002,49.38905],[-95.15609,49.38425000000001],[-95.15906950917206,49],[-97.2287200000048,49.0007],[-100.65000000000003,49.000000000000114],[-104.04826000000003,48.99986000000007],[-107.05000000000001,49],[-110.05000000000001,49],[-113,49],[-116.04818,49],[-117.03121,49],[-120,49.000000000000114],[-122.84000000000003,49.000000000000114]]],[[[-83.99367000000001,62.452799999999996],[-83.25048,62.91409],[-81.87699,62.90458],[-81.89825,62.7108],[-83.06857000000001,62.159220000000005],[-83.77462000000001,62.18231],[-83.99367000000001,62.452799999999996]]],[[[-79.77583312988281,72.8029022216797],[-80.87609863281251,73.33318328857422],[-80.83388519287111,73.69318389892578],[-80.35305786132812,73.75971984863281],[-78.06443786621094,73.65193176269531],[-76.34,73.10268498995305],[-76.25140380859375,72.82638549804688],[-77.31443786621094,72.85554504394531],[-78.39167022705078,72.87665557861328],[-79.4862518310547,72.74220275878906],[-79.77583312988281,72.8029022216797]]],[[[-80.315395,62.08556500000001],[-79.92939,62.3856],[-79.52002,62.363710000000005],[-79.26582,62.158674999999995],[-79.65752,61.63308],[-80.09956000000001,61.71810000000001],[-80.36215,62.016490000000005],[-80.315395,62.08556500000001]]],[[[-93.61275590694046,74.97999726022438],[-94.15690873897391,74.59234650338688],[-95.60868058956564,74.66686391875176],[-96.82093217648455,74.92762319609658],[-96.28858740922982,75.37782827422338],[-94.85081987178917,75.64721751576089],[-93.97774654821797,75.29648956979595],[-93.61275590694046,74.97999726022438]]],[[[-93.84000301794399,77.51999726023455],[-94.29560828324529,77.49134267852868],[-96.16965410031007,77.55511139597685],[-96.43630449093614,77.83462921824362],[-94.42257727738641,77.820004787905],[-93.7206562975659,77.63433136668031],[-93.84000301794399,77.51999726023455]]],[[[-96.75439876990876,78.76581268992702],[-95.5592779202946,78.41831452098033],[-95.83029496944934,78.05694122996324],[-97.30984290239799,77.85059723582181],[-98.12428931353404,78.08285696075761],[-98.55286780474668,78.45810537384507],[-98.63198442258553,78.87193024363837],[-97.33723141151266,78.83198436147676],[-96.75439876990876,78.76581268992702]]],[[[-88.15035030796028,74.39230703398503],[-89.7647220527584,74.51555532500116],[-92.42244096552946,74.83775788034099],[-92.76828548864282,75.38681997344214],[-92.88990597204175,75.88265534128267],[-93.89382402217599,76.31924367950056],[-95.9624574450358,76.4413809272224],[-97.1213789538295,76.7510777859476],[-96.74512285031237,77.16138865834507],[-94.68408586299944,77.09787832305837],[-93.57392106807313,76.77629588490605],[-91.6050231595366,76.7785179714946],[-90.7418458727493,76.44959747995681],[-90.96966142450802,76.07401317005947],[-89.82223792189926,75.84777374948565],[-89.18708289259985,75.61016551380762],[-87.83827633334965,75.56618886992725],[-86.37919226758864,75.4824213731821],[-84.78962521029058,75.69920400664653],[-82.75344458691006,75.78431509063124],[-81.12853084992436,75.71398346628199],[-80.05751095245915,75.33684886341591],[-79.83393286814837,74.92312734648716],[-80.45777075877587,74.65730377877777],[-81.94884253612557,74.44245901152432],[-83.22889360221143,74.56402781849094],[-86.09745235873332,74.41003205026117],[-88.15035030796028,74.39230703398503]]],[[[-111.26444332563088,78.15295604116154],[-109.85445187054711,77.99632477488488],[-110.18693803591302,77.69701487905034],[-112.0511911690585,77.4092288276169],[-113.53427893761912,77.73220652944111],[-112.7245867582539,78.05105011668196],[-111.26444332563088,78.15295604116154]]],[[[-110.96366065147602,78.8044408230652],[-109.6631457182026,78.60197256134565],[-110.88131425661892,78.40691986765997],[-112.54209143761516,78.4079017198735],[-112.52589087609164,78.55055451121522],[-111.5000103422334,78.8499935981305],[-110.96366065147602,78.8044408230652]]],[[[-55.600218268442056,51.31707469339794],[-56.13403581401709,50.68700979267928],[-56.795881720595276,49.81230866149089],[-56.14310502788433,50.15011749938286],[-55.471492275603,49.93581533466846],[-55.82240108908096,49.58712860777905],[-54.935142584845636,49.3130109726868],[-54.473775397343786,49.556691189159125],[-53.47654944519137,49.24913890237404],[-53.786013759971254,48.516780503933624],[-53.08613399922626,48.68780365660358],[-52.958648240762216,48.15716421161447],[-52.64809872090421,47.53554840757552],[-53.069158291218386,46.65549876564492],[-53.521456264853,46.61829173439477],[-54.17893551290251,46.80706574155698],[-53.9618686590605,47.62520701760193],[-54.24048214376214,47.752279364607645],[-55.40077307801157,46.884993801453135],[-55.99748084168583,46.919720363953275],[-55.29121904155279,47.38956248635099],[-56.250798712780586,47.632545070987376],[-57.32522925477708,47.57280711525797],[-59.26601518414682,47.60334788674247],[-59.419494188053676,47.899453843774886],[-58.79658647320744,48.25152537697942],[-59.23162451845657,48.52318838153781],[-58.3918049790652,49.12558055276418],[-57.35868974468606,50.71827403421587],[-56.738650071832026,51.28743825947855],[-55.87097693543532,51.63209422464921],[-55.40697424988659,51.5882726100657],[-55.600218268442056,51.31707469339794]]],[[[-83.88262630891977,65.10961782496354],[-82.78757687043883,64.76669302027467],[-81.6420137193926,64.45513580998697],[-81.55344031444432,63.97960928003714],[-80.81736121287886,64.057485663501],[-80.10345130076664,63.72598135034862],[-80.99101986359572,63.41124603947496],[-82.54717810741704,63.65172231714521],[-83.10879757356511,64.10187571883971],[-84.10041663281388,63.569711819098],[-85.52340471061905,63.052379055424055],[-85.8667687649824,63.63725291610349],[-87.22198320183678,63.54123810490519],[-86.35275977247133,64.0358332383707],[-86.2248864407651,64.82291697860823],[-85.88384782585486,65.7387783881171],[-85.1613079495499,65.6572846543928],[-84.97576371940592,65.21751821558898],[-84.4640120104195,65.37177236598022],[-83.88262630891977,65.10961782496354]]],[[[-78.77063859731078,72.35217316353418],[-77.8246239895596,72.74961660429098],[-75.60584469267573,72.2436784939374],[-74.228616095665,71.76714427355789],[-74.09914079455771,71.33084015571758],[-72.24222571479768,71.55692454699452],[-71.20001542833518,70.92001251899718],[-68.7860542466849,70.52502370877427],[-67.91497046575694,70.12194753689765],[-66.9690333726542,69.18608734809182],[-68.8051228502006,68.72019847276444],[-66.4498660956339,68.06716339789203],[-64.86231441919524,67.84753856065159],[-63.424934454996794,66.92847321234059],[-61.851981370680605,66.86212067327783],[-62.16317684594226,66.16025136988962],[-63.918444383384184,64.9986685248329],[-65.14886023625368,65.42603261988667],[-66.72121904159852,66.38804108343219],[-68.015016038674,66.26272573512439],[-68.1412874009792,65.68978913030439],[-67.08964616562342,65.10845510523696],[-65.73208045109976,64.64840566675856],[-65.32016760930125,64.38273712834605],[-64.66940629744968,63.392926744227495],[-65.01380388045888,62.67418508569598],[-66.27504472519048,62.94509878198612],[-68.7831862046927,63.74567007105183],[-67.36968075221309,62.88396556258484],[-66.32829728866726,62.28007477482201],[-66.16556820338015,61.93089712182582],[-68.87736650254465,62.330149237712824],[-71.02343705919385,62.91070811629588],[-72.23537858751902,63.39783600529522],[-71.88627844917127,63.67998932560887],[-73.37830624051838,64.19396312118384],[-74.83441891142263,64.6790756293238],[-74.81850257027673,64.38909332951793],[-77.70997982452008,64.22954234481678],[-78.5559488593542,64.57290639918013],[-77.89728105336198,65.30919220647475],[-76.01827429879717,65.32696889918314],[-73.95979529488268,65.45476471624094],[-74.29388342964964,65.81177134872938],[-73.94491248238262,66.31057811142666],[-72.65116716173942,67.28457550726391],[-72.92605994331605,67.72692576768235],[-73.31161780464572,68.06943716091287],[-74.84330725777684,68.55462718370127],[-76.86910091826672,68.89473562283025],[-76.22864905465738,69.14776927354741],[-77.28736996123715,69.76954010688321],[-78.1686339993266,69.82648753526887],[-78.95724219431673,70.16688019477543],[-79.49245500356366,69.87180776638884],[-81.30547095409176,69.74318512641436],[-84.94470618359851,69.96663401964442],[-87.06000342481789,70.26000112576538],[-88.68171322300148,70.4107412787608],[-89.51341956252303,70.76203766548095],[-88.46772111688082,71.21818553332132],[-89.88815121128755,71.22255219184997],[-90.20516028518205,72.23507436796079],[-89.436576707705,73.12946421985238],[-88.40824154331287,73.53788890247121],[-85.82615108920098,73.80381582304518],[-86.56217851433412,73.15744700793844],[-85.77437130404454,72.53412588163387],[-84.85011247428822,73.34027822538708],[-82.31559017610101,73.7509508328106],[-80.60008765330768,72.71654368762417],[-80.74894161652443,72.06190664335072],[-78.77063859731078,72.35217316353418]]],[[[-94.50365759965237,74.13490672473922],[-92.42001217321173,74.1000251329422],[-90.50979285354263,73.85673248971206],[-92.00396521682987,72.96624420845852],[-93.19629553910026,72.77199249947334],[-94.26904659704726,72.02459625923599],[-95.40985551632266,72.06188080513458],[-96.03374508338244,72.94027680123183],[-96.01826799191102,73.43742991809582],[-95.49579342322404,73.86241689726417],[-94.50365759965237,74.13490672473922]]],[[[-122.85492448615902,76.11654287383568],[-122.85492529360326,76.11654287383568],[-121.15753536032824,76.86450755482828],[-119.1039389718211,77.51221995717462],[-117.570130784966,77.4983189968881],[-116.19858659550738,77.6452867703262],[-116.33581336145845,76.87696157501061],[-117.10605058476882,76.53003184681911],[-118.04041215703819,76.48117178008714],[-119.89931758688572,76.053213406062],[-121.49999507712648,75.90001862253276],[-122.85492448615902,76.11654287383568]]],[[[-132.71000788443126,54.04000931542356],[-131.74998958400334,54.12000438090922],[-132.049480347351,52.98462148702447],[-131.1790425218266,52.180432847698285],[-131.57782954982298,52.18237071390928],[-132.18042842677852,52.639707139692405],[-132.54999243231384,53.100014960332146],[-133.05461117875552,53.411468817755406],[-133.2396644827927,53.851080227262344],[-133.1800040417117,54.169975490935315],[-132.71000788443126,54.04000931542356]]],[[[-105.4922891914932,79.30159393992916],[-103.52928239623795,79.16534902619163],[-100.8251580472688,78.80046173777872],[-100.0601918200522,78.32475434031589],[-99.67093909381364,77.90754466420744],[-101.30394019245301,78.01898489044486],[-102.94980872273302,78.34322866486023],[-105.17613277873151,78.3803323432458],[-104.21042945027713,78.67742015249176],[-105.41958045125853,78.91833567983649],[-105.4922891914932,79.30159393992916]]],[[[-123.51000158755119,48.51001089130341],[-124.01289078839955,48.37084625914139],[-125.65501277733838,48.8250045843385],[-125.95499446679275,49.17999583596759],[-126.85000443587185,49.53000031188043],[-127.02999344954443,49.81499583597008],[-128.0593363043662,49.9949590114266],[-128.44458410710214,50.539137681676095],[-128.35841365625546,50.77064809834371],[-127.30858109602994,50.552573554071955],[-126.69500097721235,50.400903225295394],[-125.7550066738232,50.29501821552935],[-125.4150015875588,49.95000051533259],[-124.92076818911934,49.475274970083376],[-123.92250870832106,49.06248362893581],[-123.51000158755119,48.51001089130341]]],[[[-121.53787999999997,74.44893000000002],[-120.10978,74.24135000000001],[-117.55563999999993,74.18576999999993],[-116.58442000000002,73.89607000000007],[-115.51080999999999,73.47519],[-116.76793999999995,73.22291999999999],[-119.22000000000003,72.51999999999998],[-120.45999999999998,71.82000000000005],[-120.45999999999998,71.38360179308756],[-123.09218999999996,70.90164000000004],[-123.62,71.34000000000009],[-125.92894873747338,71.86868846301138],[-125.49999999999994,72.29226081179502],[-124.80729000000002,73.02255999999994],[-123.93999999999994,73.68000000000012],[-124.91774999999996,74.29275000000013],[-121.53787999999997,74.44893000000002]]],[[[-107.81943000000001,75.84552000000001],[-106.92893000000001,76.01282],[-105.881,75.96940000000001],[-105.70498,75.47951],[-106.31347000000001,75.00527],[-109.70000000000002,74.85000000000001],[-112.22306999999999,74.41696],[-113.74381,74.39427],[-113.87135,74.72029],[-111.79420999999999,75.16250000000001],[-116.31221,75.04343],[-117.7104,75.2222],[-116.34602000000001,76.19903000000001],[-115.40487,76.47887],[-112.59056000000001,76.14134],[-110.81422,75.54919],[-109.06710000000001,75.47321000000001],[-110.49726000000001,76.42982],[-109.58109999999999,76.79417],[-108.54858999999999,76.67832000000001],[-108.21141,76.20168000000001],[-107.81943000000001,75.84552000000001]]],[[[-106.52258999999992,73.07601],[-105.40245999999996,72.67259000000007],[-104.77484000000004,71.6984000000001],[-104.4647599999999,70.99297000000007],[-102.78537,70.49776000000003],[-100.98077999999992,70.02431999999999],[-101.08928999999995,69.58447000000012],[-102.73115999999993,69.50402000000003],[-102.09329000000002,69.11962000000011],[-102.43024000000003,68.75281999999999],[-104.24000000000001,68.91000000000008],[-105.96000000000004,69.18000000000012],[-107.12254000000001,69.11922000000004],[-108.99999999999994,68.78000000000003],[-111.53414887520017,68.63005915681794],[-113.31320000000005,68.53553999999997],[-113.85495999999989,69.00744000000009],[-115.22000000000003,69.28000000000009],[-116.10793999999999,69.16821000000004],[-117.34000000000003,69.9600000000001],[-116.67472999999995,70.06655],[-115.13112000000001,70.23730000000006],[-113.72140999999999,70.1923700000001],[-112.41610000000003,70.36637999999999],[-114.35000000000002,70.60000000000002],[-116.48684000000003,70.52044999999998],[-117.90480000000002,70.54056000000014],[-118.43238000000002,70.90920000000006],[-116.11311,71.30917999999997],[-117.65567999999996,71.29520000000002],[-119.40199000000001,71.55858999999998],[-118.56266999999997,72.30785000000003],[-117.86641999999995,72.70594000000006],[-115.18909000000002,73.31459000000012],[-114.16716999999994,73.1214500000001],[-114.66633999999999,72.65277000000009],[-112.44101999999992,72.95540000000011],[-111.05039,72.45040000000006],[-109.92034999999993,72.96113000000008],[-109.00653999999997,72.63335000000001],[-108.18834999999996,71.65089],[-107.68599,72.0654800000001],[-108.39639,73.08953000000008],[-107.51645000000002,73.23597999999998],[-106.52258999999992,73.07601]]],[[[-100.43836,72.70588000000001],[-101.54,73.36],[-100.35642000000001,73.84389],[-99.16387,73.63339],[-97.38,73.76],[-97.12,73.47],[-98.05359,72.99052],[-96.54,72.56],[-96.72000000000001,71.66],[-98.35966,71.27284999999999],[-99.32286,71.35639],[-100.01482,71.73827],[-102.5,72.51],[-102.48000000000002,72.83000000000001],[-100.43836,72.70588000000001]]],[[[-106.6,73.60000000000001],[-105.26,73.64],[-104.5,73.42],[-105.38000000000001,72.76],[-106.94,73.46000000000001],[-106.6,73.60000000000001]]],[[[-98.50000000000001,76.72],[-97.735585,76.25656000000001],[-97.70441500000001,75.74344],[-98.16000000000001,75],[-99.80874,74.89744],[-100.88365999999999,75.05736],[-100.86292000000002,75.64075],[-102.50209,75.5638],[-102.56552,76.3366],[-101.48973,76.30537],[-99.98349,76.64634],[-98.57699,76.58859],[-98.50000000000001,76.72]]],[[[-96.01644,80.60233000000001],[-95.32345000000001,80.90729],[-94.29843,80.97727],[-94.73542,81.20646000000002],[-92.40983999999999,81.25739000000003],[-91.13288999999999,80.72345000000003],[-89.45000000000002,80.50932203389831],[-87.81,80.32000000000001],[-87.02000000000001,79.66000000000001],[-85.81435,79.3369],[-87.18755999999999,79.0393],[-89.03535000000001,78.28723],[-90.80436,78.21533000000001],[-92.87669000000001,78.34333000000001],[-93.95116000000002,78.75099],[-93.93574,79.11373],[-93.14524,79.3801],[-94.974,79.37248],[-96.07614000000001,79.70502],[-96.70972,80.15777],[-96.01644,80.60233000000001]]],[[[-91.58702000000001,81.89429000000001],[-90.10000000000001,82.08500000000004],[-88.93227,82.11751000000001],[-86.97024,82.27961],[-85.5,82.65227345805702],[-84.260005,82.60000000000001],[-83.18,82.32],[-82.42,82.86000000000001],[-81.1,83.02],[-79.30664,83.13056],[-76.25,83.17205882352941],[-75.71878000000001,83.06404000000002],[-72.83153,83.23324000000001],[-70.66576500000001,83.16978075838284],[-68.50000000000001,83.10632151676572],[-65.82735,83.02801000000001],[-63.68,82.9],[-61.85,82.62860000000002],[-61.89388,82.36165000000001],[-64.334,81.92775000000002],[-66.75342,81.72527000000001],[-67.65755,81.50141],[-65.48031,81.50657000000002],[-67.84,80.90000000000003],[-69.4697,80.61683000000001],[-71.18,79.8],[-73.2428,79.63415],[-73.88000000000001,79.43016220480206],[-76.90773,79.32309000000001],[-75.52924,79.19766000000001],[-76.22046,79.01907],[-75.39345,78.52581],[-76.34354,78.18296000000001],[-77.88851000000001,77.89991],[-78.36269,77.50859000000001],[-79.75951,77.20967999999999],[-79.61965000000001,76.98336],[-77.91089000000001,77.022045],[-77.88911,76.777955],[-80.56125,76.17812],[-83.17439,76.45403],[-86.11184,76.29901000000001],[-87.60000000000001,76.42],[-89.49068,76.47239],[-89.6161,76.95213000000001],[-87.76739,77.17833],[-88.26,77.9],[-87.65,77.97022222222223],[-84.97634,77.53873],[-86.34,78.18],[-87.96191999999999,78.37181],[-87.15198000000001,78.75867],[-85.37868,78.99690000000001],[-85.09495,79.34543000000001],[-86.50734,79.73624],[-86.93179,80.25145],[-84.19844,80.20836],[-83.40869565217389,80.10000000000001],[-81.84823,80.46442],[-84.1,80.58],[-87.59895,80.51627],[-89.36663,80.85569000000001],[-90.2,81.26],[-91.36786000000001,81.5531],[-91.58702000000001,81.89429000000001]]],[[[-75.21597,67.44425],[-75.86588,67.14886],[-76.98687,67.09873],[-77.2364,67.58809000000001],[-76.81166,68.14856],[-75.89521,68.28721],[-75.11449999999999,68.01035999999999],[-75.10333,67.58202],[-75.21597,67.44425]]],[[[-96.25740120380055,69.49003035832177],[-95.64768120380054,69.10769035832178],[-96.26952120380055,68.75704035832177],[-97.61740120380055,69.06003035832177],[-98.43180120380055,68.95070035832177],[-99.79740120380055,69.40003035832177],[-98.91740120380055,69.71003035832177],[-98.21826120380055,70.14354035832177],[-97.15740120380055,69.86003035832177],[-96.55740120380055,69.68003035832177],[-96.25740120380055,69.49003035832177]]],[[[-64.51912,49.87304],[-64.17322,49.95718],[-62.858290000000004,49.70641],[-61.835584999999995,49.28855],[-61.806304999999995,49.10506000000001],[-62.29318,49.08717],[-63.589259999999996,49.400690000000004],[-64.51912,49.87304]]],[[[-64.01486,47.03601],[-63.6645,46.55001],[-62.9393,46.41587],[-62.012080000000005,46.44314],[-62.503910000000005,46.033390000000004],[-62.87433,45.968180000000004],[-64.14280000000001,46.39265],[-64.39261,46.72747],[-64.01486,47.03601]]]]},"properties":{"ISO_A2":"CA","NAME":"Canada"}},
6
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-122.84000000000003,49.000000000000114],[-120,49.000000000000114],[-117.03121,49],[-116.04818,49],[-113,49],[-110.05000000000001,49],[-107.05000000000001,49],[-104.04826000000003,48.99986000000007],[-100.65000000000003,49.000000000000114],[-97.2287200000048,49.0007],[-95.15906950917206,49],[-95.15609,49.38425000000001],[-94.81758000000002,49.38905],[-94.64,48.84],[-94.32914000000001,48.67074],[-93.63087000000002,48.609260000000006],[-92.61000000000001,48.44999999999993],[-91.64,48.14],[-90.83,48.27],[-89.60000000000002,48.010000000000105],[-89.27291744663665,48.01980825458281],[-88.37811418328671,48.302917588893706],[-87.43979262330028,47.94],[-86.46199083122826,47.553338019392],[-85.65236324740341,47.22021881773051],[-84.8760798815149,46.90008331968238],[-84.77923824739992,46.63710195574902],[-84.54374874544584,46.538684190449146],[-84.60490000000004,46.439599999999984],[-84.33670000000001,46.408770000000004],[-84.1421195136734,46.51222585711571],[-84.0918512641615,46.27541860613826],[-83.89076534700574,46.116926988299014],[-83.61613094759059,46.116926988299014],[-83.46955074739469,45.994686387712534],[-83.59285071484311,45.81689362241252],[-82.55092464875821,45.34751658790543],[-82.33776312543114,44.440000000000055],[-82.13764238150395,43.57108755143997],[-82.42999999999999,42.980000000000004],[-82.9,42.43],[-83.12,42.08],[-83.14199968131264,41.975681057292874],[-83.029810146807,41.83279572200598],[-82.69008928092023,41.675105088867326],[-82.4392777167916,41.675105088867326],[-81.27774654816716,42.209025987306816],[-80.24744767934794,42.36619985612255],[-78.93936214874375,42.86361135514798],[-78.92,42.964999999999996],[-79.01,43.27],[-79.17167355011186,43.46633942318426],[-78.72027991404235,43.62508942318493],[-77.7378850979577,43.62905558936328],[-76.82003414580558,43.628784288093755],[-76.50000000000001,44.01845889375865],[-76.375,44.09631],[-75.31821000000001,44.81645],[-74.86700000000002,45.000480000000096],[-73.34783,45.00738],[-71.50506,45.0082],[-71.405,45.254999999999995],[-71.08482000000004,45.30524000000014],[-70.66,45.46],[-70.305,45.915],[-69.99997,46.69307],[-69.237216,47.447781],[-68.90500000000003,47.18500000000006],[-68.23444,47.354859999999974],[-67.79046000000001,47.066359999999996],[-67.79134,45.70281000000001],[-67.13741,45.13753],[-66.96465999999998,44.809700000000134],[-68.03251999999998,44.325199999999995],[-69.05999999999995,43.980000000000075],[-70.11616999999995,43.68405000000013],[-70.64547563341102,43.09023834896402],[-70.81488999999999,42.865299999999934],[-70.82499999999999,42.33499999999998],[-70.49499999999995,41.80500000000001],[-70.07999999999998,41.78000000000003],[-70.185,42.145000000000095],[-69.88496999999995,41.92283000000009],[-69.96502999999996,41.63717000000014],[-70.63999999999999,41.47500000000002],[-71.12039000000004,41.49445000000014],[-71.8599999999999,41.32000000000005],[-72.29500000000002,41.26999999999998],[-72.87643000000003,41.220650000000035],[-73.71000000000004,40.93110235165449],[-72.24125999999995,41.119480000000124],[-71.94499999999988,40.930000000000064],[-73.34499999999997,40.63000000000005],[-73.98200000000003,40.62799999999993],[-73.95232499999997,40.75075000000004],[-74.25671,40.47351000000003],[-73.96243999999996,40.42763000000002],[-74.17838,39.70925999999997],[-74.90603999999996,38.93954000000002],[-74.98041,39.19640000000004],[-75.20002,39.248450000000105],[-75.52805000000001,39.49850000000009],[-75.32,38.960000000000036],[-75.07183476478986,38.782032230179254],[-75.05672999999996,38.40412000000009],[-75.37746999999996,38.015510000000006],[-75.94022999999999,37.21689000000009],[-76.03126999999995,37.25659999999999],[-75.72204999999985,37.93705000000011],[-76.23286999999999,38.319214999999986],[-76.35000000000002,39.14999999999998],[-76.54272499999996,38.71761500000008],[-76.32933000000003,38.08326000000005],[-76.98999793161352,38.23999176691336],[-76.30161999999996,37.91794499999992],[-76.25873999999999,36.96640000000008],[-75.97179999999997,36.89726000000002],[-75.8680399999999,36.55125000000004],[-75.72748999999999,35.55074000000013],[-76.36318,34.80854000000011],[-77.39763499999992,34.512009999999975],[-78.05496,33.92547000000002],[-78.55434999999989,33.86133000000012],[-79.06067000000002,33.493949999999984],[-79.20357000000001,33.158390000000054],[-80.30132499999996,32.509355000000085],[-80.86498,32.033300000000054],[-81.33629000000002,31.44049000000001],[-81.49041999999997,30.7299900000001],[-81.31371000000001,30.035520000000076],[-80.97999999999996,29.18000000000012],[-80.53558499999991,28.472129999999993],[-80.52999999999986,28.040000000000077],[-80.05653928497759,26.88000000000011],[-80.08801499999998,26.205764999999985],[-80.13155999999992,25.816775000000064],[-80.38103000000001,25.20616000000001],[-80.67999999999995,25.08000000000004],[-81.17212999999998,25.201260000000104],[-81.33000000000004,25.639999999999986],[-81.70999999999987,25.870000000000005],[-82.23999999999995,26.730000000000132],[-82.70515,27.495040000000074],[-82.85525999999999,27.886240000000043],[-82.64999999999998,28.550000000000125],[-82.92999999999995,29.10000000000008],[-83.70958999999999,29.936560000000043],[-84.09999999999997,30.09000000000009],[-85.10881999999998,29.636150000000043],[-85.28784000000002,29.68612000000013],[-85.7731,30.152610000000095],[-86.39999999999992,30.40000000000009],[-87.53035999999992,30.27433000000002],[-88.41781999999995,30.384900000000016],[-89.1804899999999,30.315980000000025],[-89.5938311784198,30.159994004836847],[-89.41373499999997,29.89418999999998],[-89.43,29.488639999999975],[-89.21767,29.291080000000022],[-89.40822999999995,29.159610000000043],[-89.77927999999997,29.307140000000118],[-90.15463,29.11743000000007],[-90.88022499999994,29.148535000000095],[-91.62678499999993,29.677000000000135],[-92.49905999999999,29.552300000000002],[-93.22636999999997,29.783750000000055],[-93.84841999999998,29.71363000000008],[-94.69,29.480000000000132],[-95.60025999999999,28.738630000000057],[-96.59403999999995,28.307480000000055],[-97.13999999999987,27.83000000000004],[-97.36999999999995,27.380000000000052],[-97.37999999999994,26.690000000000055],[-97.32999999999998,26.210000000000093],[-97.13999999999987,25.870000000000005],[-97.52999999999992,25.84000000000009],[-98.23999999999995,26.06000000000006],[-99.01999999999992,26.37000000000006],[-99.30000000000001,26.840000000000032],[-99.51999999999992,27.54000000000002],[-100.10999999999996,28.110000000000127],[-100.45584000000002,28.69612000000012],[-100.95759999999996,29.380710000000136],[-101.66239999999999,29.77930000000009],[-102.48000000000002,29.75999999999999],[-103.11000000000001,28.970000000000027],[-103.94,29.27000000000004],[-104.4569699999999,29.571960000000047],[-104.70574999999997,30.121730000000014],[-105.03737000000001,30.644019999999955],[-105.63159000000002,31.08383000000009],[-106.1429,31.399950000000047],[-106.50758999999988,31.754520000000014],[-108.24000000000001,31.754853718166373],[-108.24193999999994,31.342220000000054],[-109.03500000000003,31.341940000000136],[-111.02361000000002,31.334719999999948],[-113.30498,32.03914000000009],[-114.815,32.52528000000001],[-114.72138999999993,32.72082999999992],[-115.99134999999995,32.61239000000012],[-117.12775999999985,32.53533999999996],[-117.29593769127393,33.04622461520387],[-117.94400000000002,33.621236431201396],[-118.41060227589753,33.74090922312445],[-118.51989482279976,34.02778157757575],[-119.08100000000002,34.07799999999992],[-119.43884064201671,34.34847717828427],[-120.36777999999998,34.447110000000066],[-120.62286,34.60854999999998],[-120.74432999999999,35.15686000000011],[-121.71456999999992,36.161529999999914],[-122.54746999999998,37.551760000000115],[-122.51201000000003,37.78339000000011],[-122.95319,38.11371000000008],[-123.72720000000004,38.95166000000012],[-123.86516999999998,39.76699000000008],[-124.39807000000002,40.313199999999995],[-124.17885999999999,41.142020000000116],[-124.21370000000002,41.99964000000011],[-124.53283999999996,42.7659900000001],[-124.14213999999998,43.708380000000034],[-124.020535,44.615894999999966],[-123.89892999999995,45.52341000000007],[-124.079635,46.864750000000015],[-124.39566999999994,47.72017000000011],[-124.68721008300781,48.18443298339855],[-124.56610107421875,48.37971496582037],[-123.12,48.04000000000002],[-122.58735999999993,47.09600000000006],[-122.34000000000003,47.360000000000014],[-122.5,48.180000000000064],[-122.84000000000003,49.000000000000114]]],[[[-155.40214,20.07975],[-155.22452,19.99302],[-155.06226,19.8591],[-154.80741,19.50871],[-154.83147,19.453280000000003],[-155.22217,19.23972],[-155.54211,19.08348],[-155.68817,18.91619],[-155.93665,19.05939],[-155.90806,19.33888],[-156.07347000000001,19.70294],[-156.02368,19.81422],[-155.85008000000002,19.97729],[-155.91907,20.17395],[-155.86108000000002,20.267210000000002],[-155.78505,20.2487],[-155.40214,20.07975]]],[[[-155.99566000000002,20.76404],[-156.07926,20.643970000000003],[-156.41445,20.57241],[-156.58673,20.783],[-156.70167,20.8643],[-156.71054999999998,20.92676],[-156.61258,21.01249],[-156.25711,20.917450000000002],[-155.99566000000002,20.76404]]],[[[-156.75824,21.176840000000002],[-156.78933,21.068730000000002],[-157.32521,21.097770000000004],[-157.25027,21.219579999999997],[-156.75824,21.176840000000002]]],[[[-158.0252,21.71696],[-157.94161,21.65272],[-157.65283000000002,21.322170000000003],[-157.70703,21.26442],[-157.7786,21.27729],[-158.12667000000002,21.31244],[-158.2538,21.53919],[-158.29265,21.57912],[-158.0252,21.71696]]],[[[-159.36569,22.21494],[-159.34512,21.982000000000003],[-159.46372,21.88299],[-159.80051,22.065330000000003],[-159.74877,22.1382],[-159.5962,22.236179999999997],[-159.36569,22.21494]]],[[[-166.46779212142462,60.384169826897754],[-165.67442969466364,60.29360687930625],[-165.57916419173358,59.90998688418753],[-166.19277014876727,59.75444082298899],[-166.84833736882197,59.941406155020985],[-167.45527706609008,60.21306915957936],[-166.46779212142462,60.384169826897754]]],[[[-153.22872941792113,57.96896841087248],[-152.56479061583514,57.901427313866996],[-152.1411472239064,57.591058661522],[-153.00631405333692,57.11584219016593],[-154.0050902984581,56.734676825581076],[-154.51640275777004,56.99274892844669],[-154.67099280497118,57.46119578717253],[-153.7627795074415,57.81657461204373],[-153.22872941792113,57.96896841087248]]],[[[-140.98598761037601,69.71199839952635],[-140.986,69.712],[-140.9925,66.00003000000001],[-140.99778,60.30639000000001],[-140.013,60.27682000000001],[-139.03900000000002,60],[-138.34089,59.562110000000004],[-137.4525,58.905],[-136.47972000000004,59.46389000000005],[-135.47583,59.787780000000005],[-134.94500000000005,59.2705600000001],[-134.27111000000002,58.86111000000005],[-133.35556000000003,58.41028000000001],[-132.73042,57.692890000000006],[-131.70781,56.55212],[-130.00778000000003,55.915830000000085],[-129.98,55.285000000000004],[-130.53611,54.802780000000006],[-130.53610895273684,54.80275447679924],[-130.5361101894673,54.8027534043494],[-131.08581823797215,55.17890615500204],[-131.9672114671423,55.497775580459006],[-132.2500107428595,56.3699962428974],[-133.53918108435641,57.17888743756214],[-134.07806292029608,58.12306753196691],[-135.0382110322791,58.18771474876394],[-136.62806230995471,58.21220937767043],[-137.800006279686,58.49999542910376],[-139.867787041413,59.53776154238915],[-140.825273817133,59.727517401765056],[-142.57444353556446,60.08444651960497],[-143.9588809948799,59.999180406323376],[-145.92555681682788,60.45860972761426],[-147.11437394914665,60.884656073644635],[-148.22430620012761,60.67298940697714],[-148.01806555885082,59.97832896589364],[-148.57082251686086,59.914172675203304],[-149.72785783587585,59.70565827090553],[-150.60824337461642,59.368211168039466],[-151.7163927886833,59.15582103131993],[-151.85943315326722,59.744984035879554],[-151.40971900124717,60.72580272077937],[-150.3469414947325,61.03358755150987],[-150.62111080625704,61.2844249538544],[-151.89583919981683,60.727197984451266],[-152.57832984109558,60.061657212964235],[-154.01917212625764,59.35027944603428],[-153.28751135965317,58.86472768821977],[-154.23249243875847,58.14637360293051],[-155.3074914215102,57.727794501366304],[-156.30833472392305,57.422774359763594],[-156.55609737854638,56.97998484967064],[-158.11721655986779,56.46360809999419],[-158.43332129619714,55.99415355083852],[-159.60332739971741,55.56668610292013],[-160.28971961163427,55.643580634170576],[-161.22304765525777,55.364734605523495],[-162.23776607974105,55.02418691672011],[-163.06944658104638,54.68973704692712],[-164.78556922102717,54.40417308208214],[-164.94222632552007,54.57222483989534],[-163.84833960676565,55.03943146424609],[-162.87000139061595,55.34804311789321],[-161.80417497459607,55.89498647727038],[-160.5636047027812,56.00805451112501],[-160.07055986228448,56.41805532492873],[-158.6844429189195,57.01667511659787],[-158.46109737855403,57.21692129172885],[-157.72277035218391,57.57000051536306],[-157.55027442119362,58.328326321030204],[-157.04167497457698,58.91888458926172],[-158.19473120830554,58.61580231386978],[-158.51721798402303,58.78778148053732],[-159.0586061269288,58.42418610293163],[-159.71166704001737,58.93139028587632],[-159.98128882550017,58.572549140041644],[-160.3552711659965,59.07112335879361],[-161.3550034251151,58.670837714260756],[-161.96889360252632,58.67166453717738],[-162.05498653872465,59.26692536074745],[-161.8741707021354,59.63362132429057],[-162.51805904849212,59.98972361921386],[-163.8183414378202,59.79805573184336],[-164.66221757714652,60.26748444278263],[-165.3463877024748,60.50749563256238],[-165.3508318756519,61.073895168697504],[-166.12137915755602,61.50001902937623],[-165.73445187077058,62.074996853271784],[-164.9191786367179,62.63307648380794],[-164.56250790103934,63.14637848576302],[-163.75333248599708,63.21944896102377],[-163.06722449445786,63.05945872664802],[-162.26055538638175,63.54193573674115],[-161.53444983624863,63.455816962326764],[-160.7725066803211,63.766108100023246],[-160.9583351308426,64.22279857040274],[-161.51806840721218,64.40278758407527],[-160.77777767641481,64.78860382756642],[-161.39192623598765,64.77723501246231],[-162.4530500966689,64.55944468856819],[-162.75778601789415,64.33860545516876],[-163.54639421288428,64.5591604681905],[-164.96082984114514,64.44694509546883],[-166.42528825586447,64.68667206487066],[-166.8450042389391,65.08889557561452],[-168.11056006576715,65.66999705673675],[-166.70527116602193,66.08831777613938],[-164.47470964257548,66.5766600612975],[-163.65251176659564,66.5766600612975],[-163.78860165103623,66.07720734319668],[-161.67777442121013,66.11611969671242],[-162.48971452538004,66.73556509059512],[-163.71971696679117,67.11639455837008],[-164.4309913808565,67.61633820257777],[-165.39028683170673,68.04277212185025],[-166.76444068099605,68.35887685817966],[-166.20470740462667,68.88303091091615],[-164.43081051334346,68.91553538682774],[-163.1686136546145,69.37111481391287],[-162.930566169262,69.85806183539927],[-161.90889726463556,70.33332998318764],[-160.93479651593367,70.44768992784958],[-159.03917578838713,70.89164215766891],[-158.11972286683394,70.82472117785102],[-156.58082455139808,71.35776357694175],[-155.06779029032427,71.14777639432367],[-154.3441652089412,70.69640859647018],[-153.9000062733926,70.88998851183567],[-152.21000606993528,70.82999217394485],[-152.27000240782613,70.60000621202983],[-150.73999243874448,70.43001658800569],[-149.7200030181675,70.53001048449045],[-147.61336157935705,70.2140349392418],[-145.68998980022533,70.12000967068673],[-144.9200109590764,69.98999176704046],[-143.58944618042523,70.15251414659832],[-142.07251034871348,69.85193817817265],[-140.98598752156073,69.71199839952635],[-140.98598761037601,69.71199839952635]]],[[[-171.73165686753944,63.782515367275934],[-171.1144335602453,63.59219106714495],[-170.4911124339407,63.694975490973505],[-169.6825054596536,63.43111562769119],[-168.6894394603007,63.297506212000556],[-168.77194088445466,63.18859813094544],[-169.5294398672051,62.97693146427792],[-170.29055620021595,63.194437567794424],[-170.67138566799093,63.3758218451389],[-171.55306311753873,63.317789211675105],[-171.79111060289122,63.40584585230046],[-171.73165686753944,63.782515367275934]]]]},"properties":{"ISO_A2":"US","NAME":"United States of America"}},
7
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[87.35997033076265,49.21498078062912],[86.59877648310336,48.549181626980626],[85.7682328633083,48.45575063739699],[85.72048383987067,47.452969468773105],[85.16429039911324,47.0009557155161],[83.18048383986047,47.33003123635086],[82.45892581576906,45.539649563166506],[81.9470707539181,45.31702749285312],[79.96610639844141,44.91751699480463],[80.86620649610126,43.18036204688101],[80.1801501809943,42.92006785742694],[80.2599902688853,42.34999929459906],[79.64364546094012,42.49668284765953],[79.14217736197978,42.85609243424952],[77.65839196158322,42.96068553320826],[76.00035363149846,42.98802236589067],[75.63696495962202,42.87789988867668],[74.21286583852256,43.29833934180337],[73.64530358266092,43.09127187760987],[73.48975752146237,42.50089447689132],[71.8446382994506,42.8453954127651],[71.18628055205212,42.70429291439214],[70.96231489449914,42.266154283205495],[70.3889648782208,42.08130768489745],[69.07002729683524,41.38424428971234],[68.63248294462002,40.66868073176681],[68.25989586779562,40.6623245305949],[67.98585574735182,41.13599070898222],[66.71404707221652,41.1684435084615],[66.51064863471572,41.987644151368556],[66.02339155463562,41.99464630794404],[66.09801232286509,42.997660020513095],[64.90082441595928,43.72808055274258],[63.18578698105657,43.650074978198006],[62.01330040878625,43.50447663021565],[61.05831994003245,44.40581696225051],[60.23997195825834,44.78403677019473],[58.68998904809581,45.50001373959873],[58.50312706892845,45.586804307632974],[55.928917270741096,44.99585846615911],[55.96819135928291,41.30864166926936],[55.45525109235377,41.25985911718584],[54.75534549339264,42.043971462566574],[54.07941775901495,42.32410940202083],[52.944293247291654,42.11603424739759],[52.50245975119615,41.78331553808637],[52.44633914572722,42.027150783855575],[52.692112257707265,42.44389537207337],[52.50142622255032,42.7922978785852],[51.342427199108215,43.132974758469345],[50.89129194520024,44.03103363705378],[50.339129266161365,44.284015611338475],[50.30564293803627,44.609835516938915],[51.278503452363225,44.51485423438646],[51.31689904155604,45.2459982366679],[52.16738976421573,45.40839142514511],[53.0408764992452,45.25904653582177],[53.220865512917726,46.234645901059935],[53.042736850807785,46.85300608986449],[52.04202273947561,46.80463694923924],[51.191945428274266,47.048704738953916],[50.03408328634248,46.60898997658222],[49.10116000000011,46.399330000000134],[48.59325000000018,46.56104000000005],[48.694733514201744,47.07562816017793],[48.05725000000001,47.74377000000004],[47.31524000000013,47.7158500000001],[46.46644575377627,48.39415233010493],[47.04367150247651,49.152038886097614],[46.75159630716274,49.35600576435377],[47.54948042174931,50.454698391311126],[48.57784142435753,49.87475962991567],[48.70238162618102,50.60512848571284],[50.76664839051216,51.6927623561599],[52.32872358583097,51.718652248738124],[54.532878452376224,51.02623973245932],[55.71694000000002,50.62171000000018],[56.77798000000013,51.043550000000096],[58.363320000000044,51.06364000000002],[59.642282342370606,50.545442206415714],[59.93280724471549,50.842194118851864],[61.337424350840934,50.79907013610426],[61.58800337102417,51.272658799843214],[59.967533807215545,51.9604204372157],[60.92726850774028,52.44754832621504],[60.73999311711458,52.71998647725775],[61.699986199800605,52.97999644633427],[60.978066440683165,53.66499339457914],[61.43660000000017,54.00625000000002],[65.17853356309593,54.35422781027211],[65.66687000000002,54.60125000000011],[68.16910037625883,54.97039175070432],[69.06816694527288,55.38525014914353],[70.86526655465514,55.169733588270105],[71.18013105660941,54.13328522400826],[72.22415001820218,54.376655381886735],[73.5085160663844,54.0356167669766],[73.42567874542044,53.489810289109755],[74.38482000000016,53.54685000000012],[76.89110029491343,54.49052440044193],[76.52517947785475,54.17700348572714],[77.80091556184425,53.404414984747575],[80.03555952344169,50.86475088154725],[80.56844689323549,51.38833649352847],[81.94598554883993,50.81219594990637],[83.38300377801238,51.069182847693924],[83.93511478061885,50.88924551045358],[84.41637739455308,50.311399644565824],[85.11555952346203,50.11730296487764],[85.54126997268247,49.69285858824816],[86.82935672398963,49.82667470966817],[87.35997033076265,49.21498078062912]]]},"properties":{"ISO_A2":"KZ","NAME":"Kazakhstan"}},
8
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[55.96819135928291,41.30864166926936],[55.928917270741096,44.99585846615911],[58.50312706892845,45.586804307632974],[58.68998904809581,45.50001373959873],[60.23997195825834,44.78403677019473],[61.05831994003245,44.40581696225051],[62.01330040878625,43.50447663021565],[63.18578698105657,43.650074978198006],[64.90082441595928,43.72808055274258],[66.09801232286509,42.997660020513095],[66.02339155463562,41.99464630794404],[66.51064863471572,41.987644151368556],[66.71404707221652,41.1684435084615],[67.98585574735182,41.13599070898222],[68.25989586779562,40.6623245305949],[68.63248294462002,40.66868073176681],[69.07002729683524,41.38424428971234],[70.3889648782208,42.08130768489745],[70.96231489449914,42.266154283205495],[71.25924767444823,42.16771067968946],[70.42002241402821,41.51999827734314],[71.1578585142916,41.14358714452912],[71.87011478057047,41.392900092121266],[73.05541710804917,40.866033026689465],[71.77487511585656,40.14584442805378],[71.01419803252017,40.24436554621823],[70.60140669137269,40.21852733007229],[70.45815962105962,40.49649485937029],[70.66662234892505,40.960213324541414],[69.32949466337283,40.72782440852485],[69.0116329283455,40.08615814875667],[68.53641645698943,39.53345286717894],[67.70142866401736,39.58047842056453],[67.44221967964131,39.140143541005486],[68.17602501818592,38.901553453113905],[68.39203250516596,38.15702525486874],[67.82999962755952,37.144994004864685],[67.07578209825962,37.35614390720929],[66.51860680528867,37.36278432875879],[66.54615034370022,37.97468496352687],[65.2159989765074,38.4026950139843],[64.17022301621677,38.892406724598246],[63.51801476426103,39.36325653742564],[62.374260288345006,40.05388621679039],[61.88271406438469,41.084856879229406],[61.54717898951356,41.266370347654615],[60.465952996670694,41.22032664648255],[60.083340691981675,41.425146185871405],[59.976422153569786,42.22308197689021],[58.62901085799146,42.75155101172305],[57.78652998233708,42.17055288346552],[56.932215203687804,41.826026109375604],[57.0963912290791,41.32231008561057],[55.96819135928291,41.30864166926936]]]},"properties":{"ISO_A2":"UZ","NAME":"Uzbekistan"}},
9
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[141.00021040259185,-2.60015105551566],[142.73524661679147,-3.28915292726321],[144.58397098203324,-3.861417738463416],[145.27317955950997,-4.373737888205049],[145.8297864117257,-4.876497897972683],[145.981921828393,-5.465609226100043],[147.64807335834757,-6.0836593563108465],[147.89110761941623,-6.614014580922343],[146.97090538959486,-6.721656589386313],[147.19187381407494,-7.388024183790023],[148.08463585834932,-8.044108168167647],[148.73410525939357,-9.104663588093764],[149.30683515848443,-9.07143564213009],[149.26663089416132,-9.514406019736029],[150.03872846903425,-9.684318129111709],[149.7387984560122,-9.872937106977048],[150.80162763895913,-10.293686618697478],[150.6905749859639,-10.582712904505925],[150.02839318257583,-10.652476088099952],[149.78231001200197,-10.393267103723923],[148.92313764871727,-10.280922539921384],[147.913018426708,-10.13044076908745],[147.13544315001218,-9.492443536011983],[146.56788089415056,-8.942554619994155],[146.04848107318492,-8.067414239131281],[144.74416792213805,-7.630128269077446],[143.89708784400966,-7.915330498896296],[143.28637576718432,-8.24549122480908],[143.41391320208066,-8.983068942910982],[142.62843143124417,-9.326820570516524],[142.06825890520025,-9.159595635620022],[141.03385176001382,-9.117892754760483],[141.01705691951895,-5.859021905138071],[141.00021040259185,-2.60015105551566]]],[[[152.64001671774253,-3.659983005389691],[153.0199935243847,-3.9800151505732653],[153.14003787659874,-4.4999834122940925],[152.82729210836828,-4.7664270971909914],[152.63867313050298,-4.176127211120921],[152.40602583232493,-3.7897425268745835],[151.95323693258354,-3.4620622697118155],[151.38427941305002,-3.0354216447101123],[150.66204959533883,-2.741486097833935],[150.93996544820448,-2.500002129734007],[151.47998416565457,-2.779985039891379],[151.8200150901351,-2.9999716121578857],[152.23998945537113,-3.24000864015364],[152.64001671774253,-3.659983005389691]]],[[[151.30139041565388,-5.840728448106752],[150.75444705627666,-6.083762709175431],[150.2411967307538,-6.317753594593028],[149.70996300679332,-6.316513360218025],[148.89006473205046,-6.026040134305404],[148.31893680236067,-5.747142429226166],[148.40182579975686,-5.437755629094717],[149.29841190002082,-5.58374155031926],[149.84556196512722,-5.505503431829368],[149.99625044169028,-5.026101169457654],[150.13975589416486,-5.0013481583898525],[150.23690758687354,-5.532220147324267],[150.80746707580812,-5.455842380396874],[151.08967207255404,-5.113692722192383],[151.6478808941709,-4.757073662946162],[151.53786176982146,-4.167807305521933],[152.1367916200843,-4.14879037843852],[152.33874311748093,-4.312966403829805],[152.3186926617517,-4.867661228050771],[151.98279585185452,-5.478063246282382],[151.45910688700866,-5.560280450058754],[151.30139041565388,-5.840728448106752]]],[[[154.75999067608439,-5.339983819198495],[155.06291792217934,-5.56679168052753],[155.5477462099417,-6.200654799019645],[156.0199654482248,-6.540013929880381],[155.8800256695784,-6.819996840037753],[155.59999108298877,-6.9199907365225215],[155.16699425681514,-6.535931491729322],[154.72919152243838,-5.900828138862195],[154.51411421123964,-5.139117526879986],[154.65250369691728,-5.04243092206189],[154.75999067608439,-5.339983819198495]]]]},"properties":{"ISO_A2":"PG","NAME":"Papua New Guinea"}},
10
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[141.00021040259185,-2.60015105551566],[141.01705691951895,-5.859021905138071],[141.03385176001382,-9.117892754760483],[140.14341515519254,-8.29716765710095],[139.1277665549281,-8.096042982620979],[138.881476678625,-8.380935153846075],[137.61447391169287,-8.41168263105974],[138.03909915583517,-7.597882175327321],[138.66862145401478,-7.320224704623087],[138.4079138531023,-6.232849216337485],[137.92783979711078,-5.393365573756],[135.98925011611345,-4.54654387778907],[135.16459760959975,-4.462931410340822],[133.66288048719787,-3.538853448097541],[133.36770470594672,-4.024818617370315],[132.98395551974727,-4.112978610860253],[132.75694095268904,-3.7462826473171233],[132.75378869031925,-3.3117872046070502],[131.98980431531618,-2.820551039240499],[133.0668445171434,-2.460417982598436],[133.78003095920354,-2.4798483211401816],[133.69621178602614,-2.214541517753702],[132.23237348849426,-2.2125261368943185],[131.83622195854474,-1.6171619604596472],[130.94283979708285,-1.4325220678807826],[130.5195581401801,-0.9377202286860893],[131.8675378765136,-0.6954611141017892],[132.3801164084167,-0.36953785563694913],[133.98554813042836,-0.7802104630604559],[134.14336795464772,-1.151867364103623],[134.42262739475302,-2.769184665542376],[135.45760298069467,-3.367752780779149],[136.29331424371884,-2.307042331556154],[137.44073774632756,-1.7035132788193648],[138.3297274110447,-1.7026864559026933],[139.18492068904288,-2.0512956681436734],[139.92668419816044,-2.409051608900313],[141.00021040259185,-2.60015105551566]]],[[[124.96868248911623,-8.892790215697083],[125.07001997284061,-9.089987481322872],[125.08852013560109,-9.393173109579294],[124.43595014861933,-10.140000909061449],[123.57998172413669,-10.359987481327956],[123.459989048355,-10.239994805546223],[123.55000939340744,-9.900015557497987],[123.9800089865081,-9.290026950724716],[124.96868248911623,-8.892790215697083]]],[[[134.21013390516885,-6.89523772545472],[134.11277550673094,-6.142467136259],[134.29033572808584,-5.783057549669017],[134.49962527886788,-5.445042006047871],[134.72700158095216,-5.737582289252167],[134.7246244650667,-6.214400730009288],[134.21013390516885,-6.89523772545472]]],[[[117.88203494677018,4.137551377779516],[117.3132324565335,3.234428208830593],[118.0483297058854,2.2876901310273325],[117.87562706916597,1.8276406925489255],[118.99674726773816,0.9022191430660627],[117.8118583517178,0.7842418481437078],[117.47833865770603,0.10247467691702639],[117.52164350796664,-0.8037232397532676],[116.56004845587947,-1.4876608211362097],[116.5337968282752,-2.483517347832901],[116.14808393764866,-4.012726332214022],[116.00085778204911,-3.6570374487490582],[114.86480309454456,-4.106984144714396],[114.46865156459506,-3.495703627133828],[113.75567182826407,-3.4391696102065197],[113.25699425664752,-3.118775729996905],[112.06812625534067,-3.4783920223160507],[111.70329064336005,-2.9944422339026535],[111.04824018762824,-3.0494259578612106],[110.223846063276,-2.9340324845534553],[110.07093550012434,-1.5928740372824635],[109.571947869914,-1.3149065079844746],[109.0918738139225,-0.45950652425709393],[108.9526575053282,0.41537547444431766],[109.06913618371408,1.3419339054376138],[109.66326012577375,2.0064669864949565],[109.83022667850881,1.3381356876641632],[110.51406090702716,0.7731314152009645],[111.15913781132662,0.976478176269481],[111.79754845586041,0.9044412296546085],[112.38025190638359,1.4101209578467433],[112.85980919805218,1.4977900252299037],[113.8058496440195,1.2175487329110695],[114.62135542201753,1.4306881778989011],[115.13403730678522,2.8214818383862337],[115.51907840379198,3.169238389494396],[115.8655172058767,4.3065591495901],[117.01521447150628,4.3060940616994685],[117.88203494677018,4.137551377779516]]],[[[129.37099775606094,-2.8021542293445947],[130.47134402885177,-3.093764336767634],[130.83483605359282,-3.8584721818227763],[129.99054650280817,-3.446300957862796],[129.15524865124235,-3.3626368139822485],[128.59068362845363,-3.428679294451264],[127.89889122936235,-3.393435967628207],[128.13587934785284,-2.843650404474971],[129.37099775606094,-2.8021542293445947]]],[[[126.87492272349886,-3.7909827612495874],[126.18380211802736,-3.607376397316564],[125.98903364471926,-3.177273451351305],[127.00065148326497,-3.129317722184446],[127.24921512258891,-3.45906503663889],[126.87492272349886,-3.7909827612495874]]],[[[127.93237755748748,2.1745962589565693],[128.00415612194087,1.6285313989283452],[128.5945593608755,1.5408106551128782],[128.6882487326207,1.1323859724940633],[128.63595218314134,0.2584858260061935],[128.1201697124361,0.3564126651992865],[127.96803429576886,-0.25207732503751856],[128.3799988139997,-0.7800037573313005],[128.1000159038423,-0.8999964331130315],[127.69647464407507,-0.26659840251153355],[127.39949018769369,1.011721503092545],[127.60051150930906,1.810690822757195],[127.93237755748748,2.1745962589565693]]],[[[122.9275667664518,0.8751923689774088],[124.07752241424288,0.9171019555661245],[125.0659892111218,1.6432591821315297],[125.2405005229715,1.4198361271176054],[124.4370353536974,0.4278811710589565],[123.6855049988767,0.235593166500891],[122.72308312387287,0.4311367862933366],[121.05672488818911,0.3812173526993945],[120.18308312386272,0.2372468123342344],[120.04086958219548,-0.5196578914448367],[120.93590538949073,-1.408905938323393],[121.4758207540762,-0.9559620092851304],[123.34056481332846,-0.6156727026431383],[123.25839928598441,-1.0762130672283092],[122.82271528533161,-0.9309506160558526],[122.38852990121529,-1.516858005381117],[121.50827355355551,-1.904482924002458],[122.4545723816843,-3.1860584448409237],[122.2718961935325,-3.5295000138527115],[123.17096276254655,-4.683693129091701],[123.1623327983538,-5.340603936385996],[122.62851525277875,-5.634591159694466],[122.23639448454801,-5.2829330379482675],[122.71956912647701,-4.464171644715826],[121.73823367725436,-4.851331475446543],[121.48946333220127,-4.574552504091265],[121.61917117725386,-4.1884778784386825],[120.89818159391766,-3.602105401222794],[120.97238895068878,-2.627642917494939],[120.30545291552986,-2.9316036922357327],[120.39004723519167,-4.097579034037274],[120.43071658740537,-5.528241062037793],[119.79654341031949,-5.673400160345665],[119.36690555224489,-5.3798780249278195],[119.65360639860017,-4.459417412944973],[119.49883548388601,-3.4944117163265322],[119.07834435432704,-3.487021986508793],[118.76776899625287,-2.801999200047718],[119.18097374885869,-2.1471037736128054],[119.3233939962551,-1.3531470678804638],[119.82599897672587,0.1542544620734816],[120.0357019389663,0.5664773624657613],[120.88577925016762,1.3092227237968501],[121.66681684782696,1.0139435896810909],[122.9275667664518,0.8751923689774088]]],[[[120.29501427620689,-10.258649997603591],[118.96780846565471,-9.557969252158074],[119.90030968636157,-9.361340427287502],[120.42575564990534,-9.665921319215798],[120.77550174365675,-9.96967538822743],[120.71560875863045,-10.239581394087885],[120.29501427620689,-10.258649997603591]]],[[[121.34166873584651,-8.536739597206072],[122.00736453663043,-8.460620212440148],[122.90353722543607,-8.094234307490765],[122.75698286345632,-8.649807631060696],[121.2544905945701,-8.933666273639957],[119.92439090380958,-8.81041798262384],[119.92092858284605,-8.444858900591122],[120.71509199430757,-8.236964613480914],[121.34166873584651,-8.536739597206072]]],[[[118.26061648974044,-8.362383314653293],[118.87845991422208,-8.280682875199844],[119.12650678922307,-8.705824883665088],[117.97040164598928,-8.906639499551304],[117.27773074754901,-9.040894870645594],[116.74014082241665,-9.032936700072646],[117.0837374207253,-8.45715789147659],[117.6320243673421,-8.449303073768228],[117.90001834520776,-8.09568124759494],[118.26061648974044,-8.362383314653293]]],[[[108.48684614464926,-6.42198495852574],[108.62347863162896,-6.777673841990705],[110.53922732955328,-6.877357679881726],[110.75957563684585,-6.465186455921747],[112.6148112325564,-6.946035658397626],[112.97876834518806,-7.594213148634594],[114.47893517462114,-7.7765276017603275],[115.70552697150106,-8.370806573116873],[114.56451134649649,-8.751816908404855],[113.46473351446085,-8.348947442257405],[112.55967247930097,-8.376180922075221],[111.52206139531245,-8.302128594600973],[110.58614953007432,-8.122604668819001],[109.42766727095511,-7.740664157749762],[108.69365522668133,-7.641600437046243],[108.27776329959633,-7.766657403192576],[106.45410200401612,-7.354899590690934],[106.28062422081231,-6.924899997590252],[105.36548628135552,-6.851416110871206],[106.05164594932702,-5.895918877794472],[107.2650085795402,-5.954985039904081],[108.07209109907467,-6.3457622208952245],[108.48684614464926,-6.42198495852574]]],[[[104.36999148968489,-1.0848430314210589],[104.53949018760221,-1.7823715144967662],[104.88789269411402,-2.340425306816705],[105.62211144411697,-2.4288436824680986],[106.10859337771265,-3.0617766251789647],[105.85744591677414,-4.305524997579774],[105.8176550639094,-5.85235564537242],[104.71038414919144,-5.873284600450632],[103.86821333213078,-5.037314955264996],[102.5842606954069,-4.2202588842981825],[102.156173130301,-3.6141460099468006],[101.39911339722507,-2.7997771134591645],[100.90250288290015,-2.050262139497832],[100.14198082886065,-0.6503475887109857],[99.26373986206028,0.1831415877246343],[98.97001102091326,1.042882391764536],[98.60135135294306,1.8235065779655741],[97.69959760944985,2.45318390544206],[97.17694217324984,3.3087905948985963],[96.42401655475726,3.868859768077925],[95.3808760925135,4.970782172053688],[95.29302615761729,5.479820868344788],[95.93686282754174,5.439513251157123],[97.4848820332771,5.246320909033955],[98.36916914265566,4.2683702661263965],[99.1425586283358,3.590349636240873],[99.69399783732241,3.174328518075143],[100.64143354696162,2.099381211755741],[101.65801232300734,2.0836974145551608],[102.49827111207323,1.3987004663102311],[103.07684044801303,0.5613613956688681],[103.83839603069836,0.10454173420869493],[103.4376452982749,-0.7119458960029021],[104.01078860882404,-1.0592115210042863],[104.36999148968489,-1.0848430314210589]]]]},"properties":{"ISO_A2":"ID","NAME":"Indonesia"}},
11
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-68.63401022758323,-52.63637045887449],[-68.25,-53.1],[-67.75,-53.85],[-66.45,-54.45],[-65.05,-54.699999999999996],[-65.5,-55.2],[-66.45,-55.25],[-66.95992000000001,-54.896810000000016],[-67.56244,-54.87001],[-68.63335000000001,-54.869499999999995],[-68.63401022758323,-52.63637045887449]]],[[[-57.62513342958296,-30.21629485445426],[-57.87493730328188,-31.016556084926208],[-58.14244035504076,-32.044503676076154],[-58.13264767112145,-33.040566908502015],[-58.349611172098875,-33.26318897881541],[-58.42707414410439,-33.909454441057576],[-58.49544206402655,-34.43148976007008],[-57.22582963726366,-35.28802662530788],[-57.36235877137878,-35.977390232081476],[-56.73748735210545,-36.41312590916655],[-56.78828528504836,-36.901571547189334],[-57.74915686708346,-38.18387053807989],[-59.23185706240189,-38.720220228837235],[-61.23744523786564,-38.9284245745412],[-62.33595699731013,-38.827707208004334],[-62.125763108962936,-39.42410491308485],[-62.330530971919494,-40.17258635840034],[-62.145994432205214,-40.67689666113672],[-62.745802781816984,-41.0287614886121],[-63.77049475773255,-41.16678923926369],[-64.73208980981973,-40.80267709733515],[-65.11803524439158,-41.06431487402891],[-64.97856055363582,-42.05800099056934],[-64.3034079657425,-42.35901620866951],[-63.75594784204239,-42.043686618824495],[-63.458059048095876,-42.563138116222405],[-64.37880388045633,-42.87355844499969],[-65.18180396183975,-43.495380954767796],[-65.32882341171013,-44.501366062193696],[-65.5652689276616,-45.036785577169795],[-66.50996578638934,-45.03962778094586],[-67.29379391139247,-45.55189625425519],[-67.58054643418008,-46.30177296324257],[-66.59706641301729,-47.033924655953825],[-65.64102657740149,-47.23613453551193],[-65.98508826360079,-48.133289076531135],[-67.16617896184769,-48.697337334996945],[-67.81608761256643,-49.86966887797038],[-68.72874508327321,-50.26421843851883],[-69.13853919134777,-50.732510267947795],[-68.81556148952356,-51.771104011594126],[-68.14999487982038,-52.34998340612768],[-68.57154537624133,-52.299443855346226],[-69.49836218939609,-52.14276091263727],[-71.91480383979638,-52.0090223058659],[-72.32940385607407,-51.42595631287243],[-72.30997351753234,-50.67700977966632],[-72.97574683296469,-50.741450290734285],[-73.32805091011453,-50.378785088909915],[-73.4154357571201,-49.31843637471297],[-72.64824744331494,-48.87861825947683],[-72.33116085477201,-48.2442383766618],[-72.44735531278027,-47.73853281025352],[-71.91725847033024,-46.88483814879177],[-71.55200944689128,-45.5607329241771],[-71.65931555854536,-44.973688653341426],[-71.22277889675976,-44.784242852559416],[-71.32980078803622,-44.407521661151655],[-71.79362260607193,-44.207172133156064],[-71.46405615913051,-43.787611179378345],[-71.91542395698389,-43.40856454851745],[-72.14889807807856,-42.254888197601375],[-71.7468037584155,-42.05138640723598],[-71.91573401557763,-40.83233936947069],[-71.68076127794649,-39.808164157878046],[-71.41351660834906,-38.91602223079114],[-70.81466427273469,-38.55299529394074],[-71.11862504747549,-37.57682748794724],[-71.12188066270987,-36.65812387466232],[-70.36476925320164,-36.00508879978992],[-70.38804948594913,-35.16968759535949],[-69.81730912950152,-34.1935714657983],[-69.81477698431922,-33.273886000299825],[-70.0743993801536,-33.09120981214805],[-70.53506893581951,-31.36501026787031],[-69.91900834825194,-30.33633920666828],[-70.01355038112992,-29.367922865518572],[-69.65613033718317,-28.459141127233686],[-69.00123491074825,-27.52121388113618],[-68.29554155137043,-26.89933969493578],[-68.59479977077268,-26.506908868111296],[-68.38600114609736,-26.185016371365215],[-68.41765296087614,-24.51855478281688],[-67.32844295924417,-24.02530323659095],[-66.9852339341777,-22.98634856536284],[-67.1066735500636,-22.735924574476417],[-66.27333940292485,-21.83231047942072],[-64.96489213729461,-22.075861504812327],[-64.37702104354226,-22.79809132252354],[-63.986838141522476,-21.99364430103595],[-62.84646847192156,-22.03498544686945],[-62.685057135657885,-22.249029229422387],[-60.846564704009914,-23.880712579038292],[-60.02896603050403,-24.032796319273274],[-58.80712846539498,-24.77145924245331],[-57.77721716981794,-25.16233977630904],[-57.63366004091113,-25.60365650808164],[-58.61817359071975,-27.123718763947096],[-57.60975969097614,-27.395898532828387],[-56.486701626192996,-27.548499037386293],[-55.69584550639816,-27.387837009390864],[-54.78879492859505,-26.621785577096134],[-54.625290696823576,-25.739255466415514],[-54.13004960795439,-25.547639255477254],[-53.628348965048744,-26.124865004177472],[-53.64873531758789,-26.92347258881609],[-54.490725267135524,-27.47475676850579],[-55.16228634298457,-27.881915378533463],[-56.29089962423908,-28.852760512000895],[-57.62513342958296,-30.21629485445426]]]]},"properties":{"ISO_A2":"AR","NAME":"Argentina"}},
12
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-68.63401022758323,-52.63637045887449],[-68.63335000000001,-54.869499999999995],[-67.56244,-54.87001],[-66.95992000000001,-54.896810000000016],[-67.29102999999992,-55.30123999999995],[-68.14862999999991,-55.61183],[-68.63999081081187,-55.58001799908692],[-69.2321,-55.49905999999993],[-69.95808999999997,-55.19843000000003],[-71.00567999999998,-55.053830000000005],[-72.26390000000004,-54.49513999999999],[-73.28519999999997,-53.95751999999993],[-74.66253,-52.837489999999946],[-73.8381,-53.04743000000002],[-72.43417999999997,-53.71539999999999],[-71.10773,-54.07432999999992],[-70.59177999999986,-53.61582999999996],[-70.26747999999998,-52.93123000000003],[-69.34564999999992,-52.518299999999954],[-68.63401022758323,-52.63637045887449]]],[[[-69.59042375352405,-17.580011895419332],[-69.10024695501949,-18.260125420812678],[-68.96681840684187,-18.981683444904107],[-68.44222510443092,-19.40506845467143],[-68.75716712103375,-20.372657972904463],[-68.21991309271128,-21.494346612231865],[-67.82817989772273,-22.872918796482175],[-67.1066735500636,-22.735924574476417],[-66.9852339341777,-22.98634856536284],[-67.32844295924417,-24.02530323659095],[-68.41765296087614,-24.51855478281688],[-68.38600114609736,-26.185016371365215],[-68.59479977077268,-26.506908868111296],[-68.29554155137043,-26.89933969493578],[-69.00123491074825,-27.52121388113618],[-69.65613033718317,-28.459141127233686],[-70.01355038112992,-29.367922865518572],[-69.91900834825194,-30.33633920666828],[-70.53506893581951,-31.36501026787031],[-70.0743993801536,-33.09120981214805],[-69.81477698431922,-33.273886000299825],[-69.81730912950152,-34.1935714657983],[-70.38804948594913,-35.16968759535949],[-70.36476925320164,-36.00508879978992],[-71.12188066270987,-36.65812387466232],[-71.11862504747549,-37.57682748794724],[-70.81466427273469,-38.55299529394074],[-71.41351660834906,-38.91602223079114],[-71.68076127794649,-39.808164157878046],[-71.91573401557763,-40.83233936947069],[-71.7468037584155,-42.05138640723598],[-72.14889807807856,-42.254888197601375],[-71.91542395698389,-43.40856454851745],[-71.46405615913051,-43.787611179378345],[-71.79362260607193,-44.207172133156064],[-71.32980078803622,-44.407521661151655],[-71.22277889675976,-44.784242852559416],[-71.65931555854536,-44.973688653341426],[-71.55200944689128,-45.5607329241771],[-71.91725847033024,-46.88483814879177],[-72.44735531278027,-47.73853281025352],[-72.33116085477201,-48.2442383766618],[-72.64824744331494,-48.87861825947683],[-73.4154357571201,-49.31843637471297],[-73.32805091011453,-50.378785088909915],[-72.97574683296469,-50.741450290734285],[-72.30997351753234,-50.67700977966632],[-72.32940385607407,-51.42595631287243],[-71.91480383979638,-52.0090223058659],[-69.49836218939609,-52.14276091263727],[-68.57154537624133,-52.299443855346226],[-69.46128434922667,-52.29195077266391],[-69.9427795071062,-52.53793059037322],[-70.8451016913546,-52.89920052852571],[-71.00633216010525,-53.83325204220132],[-71.429794684521,-53.85645476030037],[-72.55794287788488,-53.53141000118449],[-73.7027567206629,-52.835069268607235],[-73.7027567206629,-52.835070076051494],[-74.94676347522517,-52.262753588419],[-75.2600260077785,-51.62935475037325],[-74.97663245308988,-51.0433956846157],[-75.47975419788355,-50.37837167745158],[-75.60801510283198,-48.67377288187184],[-75.18276974150216,-47.7119194476232],[-74.1265809801047,-46.93925343199511],[-75.64439531116545,-46.64764332457207],[-74.69215369332312,-45.76397633238103],[-74.35170935738425,-44.10304412208794],[-73.24035600451522,-44.454960625995604],[-72.7178039211798,-42.38335580827898],[-73.38889990913822,-42.117532240569574],[-73.70133561877488,-43.365776462579774],[-74.33194312203261,-43.22495818458442],[-74.0179571194272,-41.79481292090683],[-73.67709937202999,-39.94221282324317],[-73.21759253609065,-39.25868865331856],[-73.50555945503712,-38.282882582351114],[-73.58806087919109,-37.15628468195598],[-73.1667170884993,-37.12378020604439],[-72.55313696968174,-35.50884002049106],[-71.86173214383263,-33.90909270603153],[-71.4384504869299,-32.41889942803078],[-71.66872066922247,-30.920644626592495],[-71.37008256700773,-30.09568206148503],[-71.48989437527645,-28.861442152625923],[-70.90512386746161,-27.640379734001247],[-70.72495398627599,-25.705924167587256],[-70.40396582709502,-23.628996677344574],[-70.09124589708074,-21.39331918710126],[-70.16441972520605,-19.756468194256165],[-70.37257239447771,-18.34797535570887],[-69.85844356960587,-18.092693780187012],[-69.59042375352405,-17.580011895419332]]]]},"properties":{"ISO_A2":"CL","NAME":"Chile"}},
13
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.339997592900346,-4.4999834122940925],[29.519986606572928,-5.419978936386315],[29.419992710088167,-5.939998874539434],[29.620032179490014,-6.520015150583426],[30.199996779101696,-7.079980970898163],[30.74001549655179,-8.340007419470915],[30.740009731422095,-8.34000593035372],[30.346086053190817,-8.238256524288218],[29.00291222506047,-8.407031752153472],[28.734866570762502,-8.526559340044578],[28.449871046672826,-9.164918308146085],[28.67368167492893,-9.605924981324932],[28.49606977714177,-10.789883721564046],[28.372253045370428,-11.793646742401393],[28.642417433392353,-11.971568698782315],[29.34154788586909,-12.360743910372413],[29.61600141777123,-12.178894545137311],[29.69961388521949,-13.257226657771831],[28.934285922976837,-13.248958428605135],[28.523561639121027,-12.698604424696683],[28.155108676879987,-12.272480564017897],[27.388798862423783,-12.132747491100666],[27.164419793412463,-11.608748467661075],[26.553087599399618,-11.924439792532127],[25.752309604604733,-11.784965101776358],[25.418118116973204,-11.330935967659961],[24.78316979340295,-11.238693536018964],[24.31451622894795,-11.26282642989927],[24.25715538910399,-10.951992689663657],[23.912215203555718,-10.926826267137514],[23.45679080576744,-10.867863457892483],[22.83734541188474,-11.01762175867433],[22.402798292742375,-10.993075453335692],[22.155268182064308,-11.084801120653772],[22.208753289486395,-9.894796237836509],[21.875181919042348,-9.523707777548566],[21.8018013851879,-8.90870655684298],[21.949130893652043,-8.305900974158277],[21.74645592620331,-7.920084730667149],[21.7281107927397,-7.290872491081302],[20.5147481625265,-7.2996058081386295],[20.6018229509383,-6.939317722199682],[20.091621534920648,-6.943090101756994],[20.037723016040218,-7.116361179231646],[19.41750247567316,-7.155428562044299],[19.16661339689611,-7.738183688999754],[19.01675174324967,-7.988245944860132],[18.464175652752687,-7.847014255406443],[18.13422163256905,-7.987677504104923],[17.472970004962235,-8.0685511206417],[17.08999596524717,-7.545688978712526],[16.8601908708452,-7.2222978654299865],[16.573179965896145,-6.6226445451150875],[16.326528354567046,-5.877470391466268],[13.375597364971895,-5.8642412247995495],[13.024869419006961,-5.984388929878158],[12.735171339578699,-5.965682061388499],[12.32243167486351,-6.10009246177966],[12.182336866920252,-5.789930515163839],[12.436688266660868,-5.6843038875592455],[12.468004184629736,-5.248361504745005],[12.63161176926579,-4.991271254092936],[12.995517205465177,-4.781103203961884],[13.258240187237048,-4.882957452009165],[13.600234816144678,-4.50013844159097],[14.144956088933299,-4.510008640158716],[14.209034864975223,-4.793092136253598],[14.582603794013181,-4.97023894615014],[15.170991652088444,-4.343507175314301],[15.753540073314753,-3.8551648901560966],[16.0062895036543,-3.535132744972529],[15.972803175529151,-2.7123922664536124],[16.407091912510054,-1.7409270157986825],[16.865306837642123,-1.2258163387132868],[17.523716261472856,-0.743830254726987],[17.638644646889986,-0.4248316381892465],[17.66355268725468,-0.05808399821381727],[17.826540154703252,0.28892324462610475],[17.774191928791566,0.8556586775710854],[17.898835483479587,1.7418319767282782],[18.094275750407434,2.365721543788055],[18.393792351971143,2.90044342692822],[18.45306521980993,3.5043858911233485],[18.54298221199778,4.201785183118318],[18.93231245288476,4.709506130385975],[19.46778364429315,5.03152781821278],[20.290679152108936,4.691677761245288],[20.927591180106276,4.322785549329737],[21.659122755630023,4.22434194581372],[22.405123732195538,4.029160061047321],[22.70412356943629,4.633050848810157],[22.841479526468106,4.710126247573484],[23.29721398285014,4.609693101414223],[24.410531040146253,5.10878408448913],[24.805028924262416,4.89724660890235],[25.12883344900328,4.92724477784779],[25.278798455514305,5.170408229997192],[25.650455356557472,5.256087754737123],[26.402760857862543,5.1508745385908705],[27.04406538260471,5.127852688004836],[27.37422610851749,5.233944403500061],[27.97997724784281,4.408413397637375],[28.428993768026913,4.287154649264494],[28.696677687298802,4.455077215996937],[29.1590784034465,4.389267279473231],[29.71599531425602,4.600804755060153],[29.953500197069474,4.173699042167684],[30.833852421715427,3.5091716042224625],[30.83385989759381,3.509165961110341],[30.77334679538004,2.339883327642127],[31.174149204235817,2.204465236821264],[30.85267011894806,1.8493964705438088],[30.46850752129029,1.5838054467797065],[30.086153598762706,1.0623127303062887],[29.875778842902434,0.5973798689763612],[29.819503208136638,-0.2053101538133717],[29.58783776217217,-0.587405694179381],[29.579466180140884,-1.3413131648856265],[29.291886834436614,-1.6200558406679872],[29.254834832483343,-2.2151099585089113],[29.117478875451553,-2.2922111954883846],[29.024926385216787,-2.8392579077301576],[29.276383904749053,-3.293907159034063],[29.339997592900346,-4.4999834122940925]]]},"properties":{"ISO_A2":"CD","NAME":"Dem. Rep. Congo"}},
14
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[41.58513,-1.6832500000000001],[40.993,-0.85829],[40.98105,2.7845199999999997],[41.85508309264397,3.918911920483727],[42.128609999999995,4.23413],[42.76967,4.25259],[43.66086999999999,4.957550000000083],[44.96360000000001,5.00162],[47.78942,8.003],[48.48673587422695,8.837626247589995],[48.93812951029645,9.451748968946617],[48.93823286316103,9.973500067581512],[48.938491245322496,10.982327378783467],[48.94200524271835,11.394266058798138],[48.94820475850974,11.410617281697963],[48.94820475850985,11.41061728169797],[49.26776,11.43033],[49.72862,11.5789],[50.25878000000001,11.67957],[50.73202,12.021900000000002],[51.1112,12.024640000000002],[51.13387,11.74815],[51.04153,11.16651],[51.04531,10.6409],[50.834179999999996,10.279720000000001],[50.55239,9.19874],[50.07092,8.08173],[49.45270000000001,6.80466],[48.594550000000005,5.339110000000001],[47.740790000000004,4.2194],[46.56476,2.85529],[45.563990000000004,2.04576],[44.068149999999996,1.0528300000000002],[43.13597,0.2922],[42.04157000000001,-0.9191600000000001],[41.81095,-1.4464700000000001],[41.58513,-1.6832500000000001]]]},"properties":{"ISO_A2":"SO","NAME":"Somalia"}},
15
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[39.20222,-4.67677],[37.7669,-3.6771200000000004],[37.69868999999994,-3.0969899999999484],[34.07261999999997,-1.0598199999999451],[33.90371119710453,-0.9500000000000001],[33.893568969666944,0.1098135378618963],[34.18,0.515],[34.6721,1.1769399999999999],[35.03599,1.90584],[34.59607,3.0537400000001185],[34.47913,3.5556000000000836],[34.005,4.249884947362048],[34.62019626785388,4.8471227420819885],[35.29800711823298,5.506],[35.817447662353516,5.338232082790797],[35.817447662353516,4.7769656634618896],[36.159078632855646,4.447864127672769],[36.85509323800812,4.447864127672769],[38.120915,3.598605],[38.43697,3.58851],[38.67114,3.6160700000000006],[38.89251,3.5007400000000004],[39.55938425876585,3.42206],[39.85494,3.83879],[40.76848,4.257020000000001],[41.1718,3.9190899999999997],[41.85508309264397,3.918911920483727],[40.98105,2.7845199999999997],[40.993,-0.85829],[41.58513,-1.6832500000000001],[40.88477,-2.08255],[40.63785000000001,-2.49979],[40.26304000000001,-2.57309],[40.12119,-3.27768],[39.80006,-3.68116],[39.604890000000005,-4.3465300000000004],[39.20222,-4.67677]]]},"properties":{"ISO_A2":"KE","NAME":"Kenya"}},
16
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[24.567369012152085,8.229187933785468],[23.805813429466752,8.666318874542526],[23.459012892355986,8.954285793488893],[23.394779087017184,9.265067857292223],[23.55724979014283,9.681218166538684],[23.554304233502194,10.089255275915308],[22.97754357269261,10.71446259199854],[22.864165480244225,11.142395127807546],[22.876219999999932,11.384610000000123],[22.50869,11.679360000000031],[22.497619999999984,12.260240000000067],[22.288010000000043,12.646049999999946],[21.93680999999998,12.588180000000136],[22.037589999999966,12.95545999999996],[22.296580000000006,13.372319999999945],[22.18329,13.78648000000004],[22.512020000000007,14.093179999999961],[22.30350999999996,14.326820000000055],[22.56795000000011,14.944290000000137],[23.024590000000103,15.680720000000065],[23.886890000000108,15.610839999999996],[23.83766000000014,19.580470000000105],[23.850000000000136,20.000000000000057],[25.000000000000114,20.003040000000055],[25,22],[29.019999999999982,22],[32.89999999999998,22],[36.86622999999997,22],[37.1887200000001,21.018850000000043],[36.969409999999925,20.83744000000013],[37.11470000000014,19.807960000000094],[37.4817900000001,18.61409000000009],[37.862760000000094,18.36785999999995],[38.410089959473225,17.998307399970315],[37.90400000000011,17.427540000000022],[37.167470000000094,17.263140000000135],[36.852530000000115,16.956549999999993],[36.75389000000007,16.291860000000042],[36.32321999999999,14.822490000000016],[36.42951000000005,14.422110000000032],[36.27022000000005,13.563330000000121],[35.86363,12.578280000000063],[35.26049000000006,12.08286000000004],[34.83163000000013,11.318960000000118],[34.73115000000013,10.910170000000107],[34.25745000000006,10.630089999999996],[33.961620000000096,9.583580000000097],[33.97498000000007,8.68455999999992],[33.963392794971185,9.464285229420625],[33.82496348090751,9.484060845715362],[33.84213085302815,9.981914637215993],[33.72195924818311,10.325262079630193],[33.206938084561784,10.720111638406593],[33.086766479716744,11.441141267476496],[33.206938084561784,12.179338268667095],[32.743419037302544,12.248007757149992],[32.67474954881965,12.02483191958072],[32.073891524594785,11.973329803218519],[32.31423473428475,11.68148447716652],[32.400071594888345,11.080626452941488],[31.850715687025513,10.531270545078826],[31.35286189552488,9.810240916008695],[30.837840731903384,9.70723668328452],[29.996639497988554,10.290927335388687],[29.61895731133285,10.084918869940225],[29.515953078608618,9.793073543888056],[29.000931914987177,9.60423245056029],[28.966597170745786,9.398223985111656],[27.970889587744352,9.398223985111656],[27.833550610778786,9.60423245056029],[27.112520981708883,9.638567194801624],[26.752006167173818,9.466893473594496],[26.477328213242515,9.552730334198088],[25.962307049621018,10.136420986302426],[25.790633328413946,10.411098940233728],[25.069603699343986,10.273759963267992],[24.794925745412684,9.810240916008695],[24.53741516360202,8.91753756573172],[24.19406772118765,8.728696472403897],[23.886979580860668,8.619729712933065],[24.567369012152085,8.229187933785468]]]},"properties":{"ISO_A2":"SD","NAME":"Sudan"}},
17
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[23.83766000000014,19.580470000000105],[23.886890000000108,15.610839999999996],[23.024590000000103,15.680720000000065],[22.56795000000011,14.944290000000137],[22.30350999999996,14.326820000000055],[22.512020000000007,14.093179999999961],[22.18329,13.78648000000004],[22.296580000000006,13.372319999999945],[22.037589999999966,12.95545999999996],[21.93680999999998,12.588180000000136],[22.288010000000043,12.646049999999946],[22.497619999999984,12.260240000000067],[22.50869,11.679360000000031],[22.876219999999932,11.384610000000123],[22.864165480244225,11.142395127807546],[22.23112918466876,10.97188873946061],[21.723821648859456,10.567055568885976],[21.000868361096167,9.475985215691509],[20.05968549976427,9.012706000194854],[19.09400800952602,9.07484691002584],[18.812009718509273,8.982914536978598],[18.911021762780507,8.630894680206353],[18.38955488452322,8.281303615751824],[17.964929640380888,7.890914008002994],[16.705988396886255,7.5083275415299795],[16.456184523187346,7.734773667832968],[16.290561557691888,7.754307359239419],[16.106231723706742,7.497087917506462],[15.279460483469109,7.421924546737969],[15.436091749745742,7.692812404811889],[15.120865512765306,8.382150173369439],[14.97999555833769,8.796104234243472],[14.54446658698177,8.965861314322268],[13.954218377344006,9.549494940626687],[14.171466098699028,10.021378282099931],[14.62720055508106,9.920919297724538],[14.909353875394716,9.992129421422732],[15.467872755605242,9.982336737503545],[14.92356489427496,10.891325181517473],[14.9601518083376,11.555574042197224],[14.89336000000003,12.219049999999982],[14.495787387762846,12.85939626713733],[14.595781284247607,13.33042694747786],[13.95447675950561,13.353448798063766],[13.956698846094127,13.996691189016929],[13.540393507550789,14.367133693901224],[13.972170000000006,15.684370000000058],[15.247731154041844,16.627305813050782],[15.30044111497972,17.927949937405003],[15.685740594147774,19.957180080642388],[15.903246697664315,20.387618923417506],[15.487148064850146,20.730414537025638],[15.47106000000008,21.04845000000006],[15.096887648181848,21.30851878507491],[14.851300000000037,22.862950000000126],[15.860850000000084,23.409719999999993],[19.849260000000072,21.49509000000006],[23.83766000000014,19.580470000000105]]]},"properties":{"ISO_A2":"TD","NAME":"Chad"}},
18
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.71236141629296,19.714455878167357],[-71.62487321642283,19.169837958243306],[-71.7013026597825,18.785416978424053],[-71.94511206733556,18.61690013272026],[-71.68773759630588,18.31666006110447],[-71.70830481635805,18.044997056546094],[-72.37247616238935,18.21496084235406],[-72.84441118029488,18.145611070218365],[-73.45455481636503,18.2179063989947],[-73.92243323433566,18.030992743395004],[-74.45803361682478,18.342549953682706],[-74.36992529976713,18.66490753831941],[-73.44954220243272,18.526052964751145],[-72.69493709989064,18.445799465401862],[-72.334881557897,18.668421535715254],[-72.79164954292489,19.10162506761803],[-72.78410478381028,19.48359141690341],[-73.41502234566175,19.639550889560283],[-73.18979061551762,19.915683905511912],[-72.57967281766362,19.871500555902358],[-71.71236141629296,19.714455878167357]]]},"properties":{"ISO_A2":"HT","NAME":"Haiti"}},
19
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-71.70830481635805,18.044997056546094],[-71.68773759630588,18.31666006110447],[-71.94511206733556,18.61690013272026],[-71.7013026597825,18.785416978424053],[-71.62487321642283,19.169837958243306],[-71.71236141629296,19.714455878167357],[-71.58730445014663,19.8849105900821],[-70.80670610216174,19.880285549391985],[-70.21436499701613,19.62288524014616],[-69.95081519232758,19.64799998624001],[-69.76925004747008,19.29326711677244],[-69.22212582057988,19.313214219637103],[-69.25434607611385,19.015196234609874],[-68.80941199408083,18.979074408437853],[-68.31794328476897,18.612197577381693],[-68.68931596543452,18.205142320218613],[-69.16494584824892,18.42264842373511],[-69.62398759629764,18.38071299893025],[-69.95293392605154,18.42830699307106],[-70.1332329983179,18.245915025296895],[-70.51713721381422,18.184290879788833],[-70.66929846869763,18.426885891183034],[-70.99995012071719,18.283328762276213],[-71.4002099270339,17.5985643579766],[-71.65766191271202,17.7575727401387],[-71.70830481635805,18.044997056546094]]]},"properties":{"ISO_A2":"DO","NAME":"Dominican Rep."}},
20
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[178.7253,71.0988],[180.00000000000006,71.51571433642829],[180.00000000000006,70.83219920854673],[178.90342499999997,70.78114000000001],[178.7253,71.0988]]],[[[49.10116000000011,46.399330000000134],[48.64541000000008,45.806290000000104],[47.67590999999999,45.64149000000015],[46.68201000000005,44.6092000000001],[47.59093999999999,43.660160000000076],[47.49252000000007,42.98658000000012],[48.58437000000015,41.808880000000045],[48.58435339611342,41.80886879162067],[47.98728315612598,41.40581920019423],[47.81566572448463,41.15141612402135],[47.37331546406623,41.2197323675112],[46.68607059101661,41.82713715266988],[46.404950799348825,41.860675157227305],[45.776400000000024,42.09244000000018],[45.47027916848572,42.50278066666998],[44.537622918481986,42.71199270280363],[43.931210000000135,42.55496000000011],[43.75599000000011,42.740830000000074],[42.39440000000013,43.220300000000066],[40.922190000000114,43.38215000000014],[40.07696495947977,43.553104153002316],[39.955008579270924,43.43499766699922],[38.68000000000001,44.280000000000086],[37.539120000000025,44.65721000000002],[36.6754600000001,45.244690000000105],[37.4031700000001,45.40451000000013],[38.23295000000002,46.24087000000003],[37.67372,46.636570000000006],[39.14767000000012,47.044750000000136],[39.121200000000044,47.26336000000009],[38.223538038899335,47.10218984637595],[38.25511233902978,47.54640045835691],[38.77057000000008,47.825620000000185],[39.738277622238854,47.89893707945197],[39.89562000000018,48.23241000000007],[39.674649999999986,48.78382000000016],[40.080789015469406,49.30742991799934],[40.06904000000014,49.60104999999999],[38.59498823421342,49.9264619004237],[38.01063113785693,49.9156615260747],[37.39345950699516,50.38395335550365],[36.62616784032542,50.225590928745135],[35.356116163887975,50.57719737405904],[35.377909999999986,50.773940000000096],[35.02218305841791,51.2075723333715],[34.22481570815427,51.25599315042888],[34.141978387190534,51.566413479206346],[34.39173058445709,51.768881740925906],[33.75269982273579,52.3350745713318],[32.715760532367085,52.23846548116211],[32.41205813978769,52.28869497334978],[32.15944000000013,52.06125000000014],[31.78599244755525,52.1016775699397],[31.785970000000077,52.1016800000001],[31.54001834486226,52.74205231384636],[31.305200636528014,53.07399587667321],[31.49763999999999,53.16743000000014],[32.30451948418823,53.13272614197291],[32.69364301934604,53.35142080343218],[32.405598585751164,53.61804535584204],[31.731272820774507,53.79402944601202],[31.79142418796224,53.974638576872124],[31.38447228366374,54.15705638286238],[30.75753380709872,54.81177094178432],[30.971835971813135,55.08154775656404],[30.87390913262001,55.55097646750341],[29.896294386522356,55.78946320253041],[29.371571893030673,55.670090643936184],[29.229513380660308,55.91834422466636],[28.17670942557794,56.16912995057879],[27.855282016722526,56.75932648378429],[27.77001590344093,57.24425812441123],[27.288184848751513,57.47452830670383],[27.71668582531572,57.79189911562436],[27.42015000000015,58.72457000000014],[28.13169925305175,59.300825100330925],[27.981120000000033,59.47537000000011],[27.981126857000987,59.47537333432527],[29.117700000000013,60.02805000000012],[28.070001921525666,60.50351912796823],[28.07000000000005,60.503520000000094],[30.21110721204445,61.780027777749694],[31.139991082490894,62.35769277612441],[31.516092156711125,62.86768748641289],[30.035872430142717,63.55281362573855],[30.44468468600371,64.20445343693909],[29.54442955904699,64.94867157659048],[30.217650000000003,65.80598],[29.054588657352326,66.94428620062206],[29.97742638522061,67.69829702419275],[28.445943637818658,68.36461294216404],[28.591929559043194,69.06477692328666],[29.399550000000033,69.15692000000013],[31.101042202597625,69.55810108805622],[31.10108000000008,69.55811000000011],[32.13272000000018,69.90595000000019],[33.77547000000004,69.30142000000012],[36.51396,69.06342000000006],[40.29234000000014,67.93240000000003],[41.059870000000046,67.45713000000012],[41.1259500000001,66.79158000000007],[40.01583000000005,66.26618000000013],[38.382949999999994,65.9995300000001],[33.91871000000015,66.75961000000001],[33.18444000000005,66.63252999999997],[34.814770000000124,65.90015000000017],[34.87857425307874,65.4362128770482],[34.94391000000007,64.41437000000019],[36.23129,64.10945000000004],[37.01273000000009,63.84983000000011],[37.141970000000185,64.33471000000009],[36.53957903508979,64.76446000000004],[37.17604000000006,65.14322000000016],[39.59345000000002,64.5207900000002],[40.43560000000008,64.76446000000004],[39.76260000000019,65.49682000000001],[42.09309000000013,66.47623000000004],[43.01604000000009,66.41858000000013],[43.94975000000011,66.06908000000004],[44.53226000000001,66.75634000000014],[43.698390000000074,67.35245000000003],[44.18795000000017,67.95051000000012],[43.45282000000003,68.57078999999999],[46.250000000000114,68.25],[46.82134000000008,67.68997000000007],[45.55517000000003,67.56652000000003],[45.56202000000013,67.01005000000015],[46.34915000000012,66.6676700000001],[47.89416000000017,66.8845500000001],[48.13876000000005,67.52238000000006],[50.22766000000013,67.99867000000017],[53.71743000000015,68.85738000000015],[54.47171000000009,68.80815000000001],[53.48582000000016,68.20130999999998],[54.726279999999974,68.09701999999999],[55.44268000000011,68.43866000000008],[57.31702000000007,68.4662800000001],[58.802000000000135,68.88081999999997],[59.94142000000011,68.27844000000005],[61.07784000000021,68.94069000000007],[60.02999999999997,69.5200000000001],[60.55000000000001,69.85000000000002],[63.50400000000013,69.54739000000006],[64.88811500000003,69.23483500000009],[68.51216000000016,68.09233000000012],[69.18068000000011,68.61563000000012],[68.16444000000007,69.14436000000006],[68.13522,69.35649000000012],[66.93008000000015,69.45461000000012],[67.25976000000009,69.92873000000009],[66.72492000000017,70.70889000000017],[66.69466000000006,71.02897000000019],[68.54006000000004,71.93450000000018],[69.19636000000003,72.84336000000019],[69.94,73.04000000000008],[72.58754000000005,72.77629000000013],[72.79603000000003,72.22005999999999],[71.84811000000008,71.4089800000001],[72.47010999999998,71.09019000000006],[72.79188000000005,70.39114000000001],[72.56470000000013,69.02085],[73.66787,68.40789999999998],[73.23870000000005,67.74040000000002],[71.28000000000009,66.3200000000001],[72.42301000000009,66.17267000000021],[72.82076999999998,66.53267000000005],[73.92099000000013,66.78946000000013],[74.18651000000011,67.28429],[75.05200000000008,67.76047000000011],[74.46926000000013,68.32899000000009],[74.9358400000001,68.98918000000009],[73.84235999999999,69.07146000000006],[73.60187000000019,69.62763000000001],[74.39980000000003,70.63175000000001],[73.10109999999997,71.4471700000002],[74.89082000000019,72.12119000000013],[74.65926000000007,72.83227000000005],[75.1580100000001,72.85497000000015],[75.68351000000013,72.30056000000013],[75.2889800000001,71.3355600000001],[76.35911000000004,71.15287000000018],[75.90313000000015,71.87401000000006],[77.57665000000009,72.26717000000002],[79.6520200000001,72.32011],[81.50000000000006,71.75000000000006],[80.6107100000001,72.58285000000012],[80.51109000000002,73.64819999999997],[82.25000000000006,73.85000000000014],[84.65526,73.80591000000021],[86.82230000000015,73.93688000000003],[86.00956000000002,74.45967000000019],[87.16682000000014,75.11643000000004],[88.31571000000008,75.14393000000007],[90.26000000000005,75.64000000000004],[92.90057999999999,75.7733300000001],[93.23421000000008,76.04720000000009],[95.86000000000018,76.1400000000001],[96.67821000000009,75.91548],[98.92254000000014,76.44689],[100.75967000000014,76.43028000000004],[101.03532000000001,76.86189000000007],[101.9908400000001,77.28754000000015],[104.35160000000013,77.69792000000007],[106.06664000000018,77.37389000000007],[104.70500000000015,77.12740000000008],[106.9701300000001,76.97419000000008],[107.24000000000012,76.48000000000002],[108.1538000000001,76.7233500000001],[111.0772600000002,76.71000000000004],[113.33150999999998,76.22224],[114.13417000000004,75.84764000000001],[113.88539000000003,75.32779000000016],[112.77918,75.03186000000011],[110.15125000000012,74.47673000000003],[109.40000000000003,74.18000000000006],[110.63999999999999,74.04000000000002],[112.11919,73.78774000000016],[113.01954000000023,73.97693000000015],[113.52958000000024,73.33505000000014],[113.96880999999996,73.59488000000005],[115.56781999999998,73.75285000000008],[118.77633000000014,73.58771999999999],[119.01999999999998,73.12000000000006],[123.20066000000008,72.97122000000007],[123.25777000000016,73.73503000000005],[125.38000000000011,73.56000000000006],[126.97644000000003,73.56549000000012],[128.59126000000003,73.0387100000001],[129.05156999999997,72.39872000000008],[128.46000000000004,71.98000000000002],[129.71599000000015,71.19304000000011],[131.28858000000025,70.78699000000012],[132.25350000000014,71.83630000000011],[133.85766000000024,71.3864200000001],[135.56192999999996,71.65525000000014],[137.49755000000005,71.3476300000001],[138.23409000000015,71.62803000000002],[139.8698300000001,71.48783000000014],[139.14791000000002,72.41619000000014],[140.46817,72.84941000000015],[149.5,72.20000000000005],[150.3511800000001,71.60643000000005],[152.9689000000002,70.84222000000005],[157.00688000000002,71.03141000000005],[158.99779,70.86671999999999],[159.83031000000017,70.45324000000005],[159.70866,69.72198000000003],[160.9405300000003,69.4372800000001],[162.27907000000005,69.64204000000001],[164.05248000000006,69.66823],[165.94037000000014,69.47199],[167.83566999999994,69.58269000000013],[169.5776300000001,68.69380000000007],[170.8168800000002,69.01362999999998],[170.0082000000001,69.65276000000006],[170.4534500000002,70.09703000000007],[173.64391000000012,69.81743000000006],[175.7240300000002,69.87725000000017],[178.60000000000002,69.40000000000003],[180,68.96363636363651],[180,64.97970870219848],[179.99280999999996,64.97433000000001],[178.70720000000028,64.53493000000003],[177.41128000000003,64.60821000000004],[178.3130000000001,64.07593000000003],[178.90825000000018,63.251970000000085],[179.37033999999994,62.98262000000011],[179.48636,62.56894],[179.22825,62.304100000000176],[177.36430000000007,62.52190000000007],[174.56929000000025,61.769150000000025],[173.68013000000008,61.652610000000095],[172.14999999999998,60.94999999999999],[170.69850000000008,60.33618000000013],[170.33085000000028,59.881770000000074],[168.90045999999995,60.57355000000007],[166.29498000000024,59.78855000000016],[165.84000000000015,60.160000000000025],[164.87673999999993,59.731600000000014],[163.53929000000005,59.86871000000002],[163.21711000000016,59.211010000000044],[162.01733000000002,58.24328000000003],[162.05296999999996,57.83911999999998],[163.19191,57.615030000000104],[163.05794000000014,56.159240000000125],[162.12958000000015,56.122190000000046],[161.70146,55.285680000000184],[162.1174900000001,54.855140000000006],[160.36877000000027,54.34433000000007],[160.02173000000016,53.202570000000094],[158.5309400000001,52.958680000000186],[158.23118,51.94269000000003],[156.78979000000027,51.01105000000007],[156.42000000000007,51.700000000000045],[155.99181999999996,53.158950000000004],[155.43366000000003,55.38103000000012],[155.9144200000003,56.767920000000174],[156.75815,57.36470000000003],[156.81035000000008,57.832040000000006],[158.3643300000001,58.055750000000046],[160.15064000000007,59.31477000000007],[161.87203999999997,60.343000000000075],[163.66968999999995,61.1409000000001],[164.47355000000005,62.550610000000006],[163.25842000000011,62.46627000000012],[162.65791000000002,61.64250000000004],[160.12148000000002,60.544230000000084],[159.30232,61.7739600000001],[156.72068000000002,61.434420000000046],[154.21806000000026,59.75818000000015],[155.04375000000005,59.14495000000005],[152.81185000000005,58.88385000000005],[151.2657300000002,58.78089],[151.33815000000004,59.50396000000006],[149.78371000000004,59.655730000000176],[148.54480999999998,59.164480000000026],[145.48721999999998,59.336370000000045],[142.1978200000001,59.03998000000013],[138.95848000000024,57.08805000000007],[135.12618999999995,54.72959000000009],[136.70171000000005,54.603550000000155],[137.19342000000006,53.97732000000002],[138.16470000000004,53.7550100000002],[138.80462999999997,54.25455000000005],[139.90151000000003,54.18968000000012],[141.34531000000004,53.08957000000015],[141.37923,52.238770000000045],[140.59742000000017,51.2396700000001],[140.51307999999995,50.045530000000156],[140.0619300000002,48.44671000000011],[138.5547200000002,46.999649999999974],[138.21970999999996,46.307950000000005],[136.86232000000007,45.14350000000013],[135.51535000000013,43.98900000000009],[134.86939000000018,43.39821000000006],[133.53687000000025,42.8114700000001],[132.90627000000006,42.79849000000013],[132.27807000000018,43.28456000000011],[130.93587000000014,42.552740000000085],[130.78000485358513,42.22001036108258],[130.78000366004676,42.220007813203225],[130.77999999999997,42.22000000000014],[130.77999231657833,42.22000960427719],[130.6400000000001,42.39500000000004],[130.63999970690955,42.39502427522179],[130.63386640840974,42.90301463477053],[131.1446879416149,42.92998973242689],[131.28855512911548,44.11151968034828],[131.02519000000018,44.96796000000006],[131.8834542176595,45.32116160743652],[133.09712000000013,45.14409000000006],[133.76964399631288,46.116926988299014],[134.1123500000001,47.212480000000085],[134.50081,47.57845000000009],[135.02631147678665,48.478229885443874],[133.37359581922794,48.18344167743487],[132.50669000000005,47.78896000000003],[130.9872600000001,47.79013000000003],[130.58229332898242,48.72968740497614],[129.39781782442043,49.44060008401544],[127.65740000000028,49.760270000000105],[127.28745568248485,50.73979726826548],[126.93915652883766,51.35389415140592],[126.56439904185697,51.7842554795327],[125.94634891164617,52.79279857035698],[125.06821129771038,53.16104482686886],[123.57146999999998,53.45880000000005],[122.24574791879283,53.431725979213695],[121.00308475147017,53.25140106873119],[120.17708865771681,52.75388621684124],[120.72578901579197,52.516226304730935],[120.7382,51.96411000000006],[120.18208000000016,51.64355000000012],[119.27939000000003,50.58292],[119.2884607280258,50.142882798862004],[117.8792444194264,49.510983384796965],[116.67880089728612,49.888531399121405],[115.48569542853136,49.80517731383475],[114.96210981655018,50.140247300815126],[114.36245649623527,50.24830272073741],[112.89773969935436,49.54356537535699],[111.58123091028662,49.37796824807769],[110.66201053267878,49.13012807880585],[109.40244917199664,49.292960516957635],[108.47516727095129,49.28254771585074],[107.86817589725095,49.793705145865815],[106.8888041524553,50.27429596618032],[105.88659142458675,50.406019192092224],[104.62158,50.27532000000019],[103.67654544476022,50.089966132195116],[102.25589000000008,50.51056000000011],[102.06521000000004,51.25991000000005],[100.88948042196262,51.51685578063832],[99.98173221232354,51.63400625264399],[98.86149051310034,52.04736603454669],[97.82573978067431,51.01099518493318],[98.23176150919156,50.422400621128745],[97.25976000000014,49.72605000000004],[95.8140200000002,49.97746000000012],[94.81594933469873,50.01343333597085],[94.14756635943559,50.48053660745717],[93.10421000000002,50.49529000000001],[92.23471154171968,50.80217072204172],[90.71366743364068,50.33181183532109],[88.80556684769552,49.47052073831242],[87.75126427607671,49.297197984405486],[87.35997033076265,49.21498078062912],[86.82935672398963,49.82667470966817],[85.54126997268247,49.69285858824816],[85.11555952346203,50.11730296487764],[84.41637739455308,50.311399644565824],[83.93511478061885,50.88924551045358],[83.38300377801238,51.069182847693924],[81.94598554883993,50.81219594990637],[80.56844689323549,51.38833649352847],[80.03555952344169,50.86475088154725],[77.80091556184425,53.404414984747575],[76.52517947785475,54.17700348572714],[76.89110029491343,54.49052440044193],[74.38482000000016,53.54685000000012],[73.42567874542044,53.489810289109755],[73.5085160663844,54.0356167669766],[72.22415001820218,54.376655381886735],[71.18013105660941,54.13328522400826],[70.86526655465514,55.169733588270105],[69.06816694527288,55.38525014914353],[68.16910037625883,54.97039175070432],[65.66687000000002,54.60125000000011],[65.17853356309593,54.35422781027211],[61.43660000000017,54.00625000000002],[60.978066440683165,53.66499339457914],[61.699986199800605,52.97999644633427],[60.73999311711458,52.71998647725775],[60.92726850774028,52.44754832621504],[59.967533807215545,51.9604204372157],[61.58800337102417,51.272658799843214],[61.337424350840934,50.79907013610426],[59.93280724471549,50.842194118851864],[59.642282342370606,50.545442206415714],[58.363320000000044,51.06364000000002],[56.77798000000013,51.043550000000096],[55.71694000000002,50.62171000000018],[54.532878452376224,51.02623973245932],[52.32872358583097,51.718652248738124],[50.76664839051216,51.6927623561599],[48.70238162618102,50.60512848571284],[48.57784142435753,49.87475962991567],[47.54948042174931,50.454698391311126],[46.75159630716274,49.35600576435377],[47.04367150247651,49.152038886097614],[46.46644575377627,48.39415233010493],[47.31524000000013,47.7158500000001],[48.05725000000001,47.74377000000004],[48.694733514201744,47.07562816017793],[48.59325000000018,46.56104000000005],[49.10116000000011,46.399330000000134]]],[[[93.77766000000001,81.0246],[95.94089500000001,81.2504],[97.88385,80.74697500000002],[100.186655,79.780135],[99.93976,78.88094],[97.75794,78.75619999999999],[94.97259,79.044745],[93.31288,79.4265],[92.5454,80.14379000000001],[91.18107000000002,80.34146000000001],[93.77766000000001,81.0246]]],[[[102.837815,79.28129],[105.37243000000001,78.71334],[105.07547000000002,78.30689],[99.43814,77.921],[101.2649,79.23399],[102.08635,79.34641],[102.837815,79.28129]]],[[[138.831075,76.13676000000001],[141.47161499999999,76.09289],[145.086285,75.562625],[144.3,74.82000000000001],[140.61381,74.84768],[138.95544,74.61148],[136.97439,75.26167000000001],[137.51176,75.94917],[138.831075,76.13676000000001]]],[[[148.22223,75.345845],[150.73167,75.08406],[149.575925,74.68892],[147.977465,74.778355],[146.11919,75.17298],[146.358485,75.49682],[148.22223,75.345845]]],[[[139.86312,73.36983000000001],[140.81171,73.76506],[142.06207,73.85758],[143.48283,73.47525],[143.60385,73.21244],[142.08763000000002,73.20544],[140.03815500000002,73.31692000000001],[139.86312,73.36983000000001]]],[[[44.84695804218114,80.58980988231714],[46.79913862487123,80.77191762971368],[48.31847741068461,80.78400991486998],[48.52280602396667,80.51456899690017],[49.097189568890855,80.7539859077084],[50.03976769389462,80.91888540315178],[51.522932977103665,80.69972565380193],[51.13618655783128,80.54728017854093],[49.79368452332071,80.4154277615482],[48.89441124857755,80.33956675894375],[48.75493655782177,80.17546824820089],[47.58611901224418,80.01018117951533],[46.50282596210963,80.2472468126543],[47.07245527526294,80.55942414012951],[44.84695804218114,80.58980988231714]]],[[[22.731098667092652,54.327536932993326],[20.892244500418627,54.31252492941253],[19.660640089606403,54.42608388937393],[19.888481479581287,54.86616038677151],[21.268448927503467,55.190481675835315],[22.315723504330577,55.015298570365864],[22.75776370615526,54.85657440858138],[22.65105187347254,54.582740993866736],[22.731098667092652,54.327536932993326]]],[[[53.50828982932515,73.7498139513002],[55.90245893740766,74.62748647734536],[55.631932814359686,75.08141225859718],[57.86864383324885,75.60939036732326],[61.170044386647476,76.25188345000812],[64.49836836127017,76.43905548776927],[66.21097700385513,76.80978221303117],[68.1570597675348,76.93969676381293],[68.85221113472508,76.5448113064546],[68.1805725442276,76.23364166940907],[64.63732628770302,75.73775462513625],[61.58350752141476,75.26088450794684],[58.47708214705335,74.30905630156285],[56.98678551618803,73.33304352486623],[55.419335971910925,72.37126760526603],[55.62283776227633,71.54059479439032],[57.535692579992315,70.72046397570212],[56.94497928246388,70.63274323188666],[53.67737511578417,70.76265778266846],[53.412016635965394,71.20666168892022],[51.601894565645665,71.47475901965045],[51.455753615124216,72.01488108996513],[52.47827518088354,72.22944163684097],[52.44416873557088,72.77473135038481],[54.42761355979758,73.6275475124976],[53.50828982932515,73.7498139513002]]],[[[142.91461551327654,53.704577541714784],[143.2608476096321,52.74076040303906],[143.23526777564763,51.75666026468876],[143.64800744036285,50.747600409541505],[144.6541475770856,48.97639069273754],[143.1739278505172,49.306551418650315],[142.55866824765013,47.86157501890495],[143.53349246640403,46.83672801369252],[143.50527713437265,46.137907619809525],[142.74770063697383,46.74076487892651],[142.09203006405454,45.966755276058834],[141.906925083585,46.80592886004656],[142.01844282447087,47.78013296161296],[141.90444461483503,48.85918854429957],[142.1358000022057,49.61516307229739],[142.17998335181528,50.9523424342819],[141.59407596249002,51.9354348822025],[141.6825460145737,53.301966457728795],[142.60693403541075,53.762145087287934],[142.20974897681543,54.225475979216874],[142.65478641171302,54.36588084575389],[142.91461551327654,53.704577541714784]]],[[[-174.92825000000002,67.20589000000001],[-175.01425000000003,66.58435],[-174.33983000000003,66.33556],[-174.57182,67.06219],[-171.85731,66.91308000000001],[-169.89958000000001,65.97724],[-170.89107,65.54138999999999],[-172.53025000000002,65.43791],[-172.555,64.46079],[-172.95533,64.25269],[-173.89184,64.2826],[-174.65392000000003,64.63125000000001],[-175.98353,64.92288],[-176.20716,65.35667000000001],[-177.22266,65.52024],[-178.35993000000002,65.39052000000001],[-178.90332000000004,65.74044],[-178.68610999999999,66.11211],[-179.88377,65.87456],[-179.43268,65.40411],[-180,64.9797087021984],[-180,68.96363636363635],[-177.55000000000004,68.2],[-174.92825000000002,67.20589000000001]]],[[[-178.69378000000003,70.89302],[-180,70.83219920854673],[-180,71.51571433642827],[-179.871875,71.55762000000001],[-179.02433000000002,71.55553],[-177.57794500000003,71.26948],[-177.663575,71.13277000000001],[-178.69378000000003,70.89302]]],[[[33.435988094713366,45.971917370797485],[33.69946184910907,46.219572831556434],[34.41040172853718,46.005162391728845],[34.73201738827845,45.96566573176062],[34.861792128174045,45.76818243191957],[35.01265897004737,45.73772519982549],[35.02078779474607,45.65121898048466],[35.51000857925311,45.40999339454612],[36.52999799983019,45.46998973243717],[36.334712762199274,45.11321564389402],[35.239999220528205,44.93999624285175],[33.882511020652885,44.361478583344194],[33.32642093276013,44.564877020844904],[33.546924269349404,45.03477081967486],[32.4541744321055,45.327466132176085],[32.63080447767919,45.51918569597899],[33.58816206231842,45.85156850848023],[33.435988094713366,45.971917370797485]]]]},"properties":{"ISO_A2":"RU","NAME":"Russia"}},
21
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-78.98,26.790000000000003],[-78.51,26.870000000000005],[-77.85000000000001,26.84],[-77.82000000000001,26.580000000000005],[-78.91000000000001,26.42],[-78.98,26.790000000000003]]],[[[-77.79,27.040000000000003],[-77,26.59],[-77.17255,25.87918],[-77.35641,26.00735],[-77.34,26.53],[-77.78802,26.925159999999998],[-77.79,27.040000000000003]]],[[[-78.19087,25.210300000000004],[-77.89,25.17],[-77.54,24.34],[-77.53466,23.759750000000004],[-77.78,23.710000000000004],[-78.03405000000001,24.28615],[-78.40848,24.575640000000003],[-78.19087,25.210300000000004]]]]},"properties":{"ISO_A2":"BS","NAME":"Bahamas"}},
22
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.2,-51.85],[-60,-51.25],[-59.15,-51.5],[-58.550000000000004,-51.10000000000001],[-57.75,-51.55],[-58.050000000000004,-51.900000000000006],[-59.400000000000006,-52.199999999999996],[-59.85000000000001,-51.85],[-60.7,-52.300000000000004],[-61.2,-51.85]]]},"properties":{"ISO_A2":"FK","NAME":"Falkland Is."}},
23
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[15.142820000000002,79.67431],[15.52255,80.01608],[16.990850000000002,80.05086],[18.25183,79.70175],[21.54383,78.95611],[19.02737,78.5626],[18.47172,77.82669],[17.59441,77.63796],[17.1182,76.80941],[15.91315,76.77045],[13.76259,77.38035],[14.669560000000002,77.73565],[13.1706,78.02493],[11.22231,78.8693],[10.44453,79.65239],[13.170770000000001,80.01046000000001],[13.71852,79.66039],[15.142820000000002,79.67431]]],[[[31.101042202597625,69.55810108805622],[29.399550000000033,69.15692000000013],[28.591929559043194,69.06477692328666],[29.015572950971972,69.76649119737799],[27.732292107867863,70.16419302029625],[26.179622023226244,69.82529897732614],[25.689212680776365,69.09211375596904],[24.735679152126725,68.64955678982146],[23.66204959483076,68.89124746365054],[22.356237827247412,68.84174144151491],[21.244936150810673,69.37044302029308],[20.645592889089528,69.10624726020087],[20.025268995857886,69.0651386583127],[19.878559604581255,68.40719432237258],[17.993868442464333,68.56739126247736],[17.729181756265348,68.01055186631628],[16.768878614985482,68.0139366726314],[16.108712192456778,67.30245555283689],[15.108411492583002,66.19386688909547],[13.55568973150909,64.78702769638151],[13.919905226302204,64.44542064071608],[13.571916131248713,64.04911408146971],[12.579935336973934,64.06621898055833],[11.930569288794231,63.12831757267698],[11.992064243221563,61.80036245385655],[12.631146681375185,61.293571682370136],[12.3003658382749,60.11793284773003],[11.468271925511146,59.43239329694604],[11.027368605196868,58.85614940045936],[10.356556837616067,59.469807033925356],[8.382000359743586,58.313288479233215],[7.048748406613271,58.078884182357285],[5.665835402050419,58.5881554225937],[5.308234490590678,59.663231919993834],[4.992078077828978,61.97099803328432],[5.912900424837886,62.614472968182724],[8.553411085655739,63.45400828719648],[10.527709181366758,64.4860383164975],[12.358346795306373,65.87972585719318],[14.761145867581604,67.81064158799516],[16.435927361728943,68.56320547146173],[19.18402835457846,69.81744415961778],[21.378416375420585,70.2551693793461],[23.023742303161526,70.2020718451662],[24.546543409938465,71.03049673123722],[26.37004967622181,70.98626170519539],[28.165547316202943,71.18547435168055],[31.293418409965454,70.4537877468599],[30.005435011522792,70.18625885688489],[31.101042202597625,69.55810108805622]]],[[[27.407505730913446,80.05640574820042],[25.92465050629815,79.51783397085451],[23.024465773213617,79.40001170522903],[20.075188429451828,79.56682322866722],[19.897266473070914,79.84236196564747],[18.462263624757867,79.85988027619443],[17.368015170977458,80.31889618602698],[20.45599205901064,80.59815562613225],[21.907944777115404,80.35767934846204],[22.91925255706738,80.65714427359343],[25.447625359811866,80.40734039989452],[27.407505730913446,80.05640574820042]]],[[[24.724120000000003,77.85385],[22.490320000000004,77.44493],[20.726010000000002,77.67704],[21.416110000000003,77.93504],[20.8119,78.25463],[22.884259999999998,78.45494000000001],[23.281340000000004,78.07954],[24.724120000000003,77.85385]]]]},"properties":{"ISO_A2":"-99","NAME":"Norway"}},
24
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-46.76379,82.62796],[-43.40644,83.22516000000002],[-39.89753,83.18018],[-38.62214,83.54905],[-35.08787,83.64513000000001],[-27.10046,83.51966],[-20.84539,82.72668999999999],[-22.69182,82.34165],[-26.51753,82.29765],[-31.900000000000002,82.2],[-31.396459999999998,82.02154],[-27.85666,82.13177999999999],[-24.84448,81.78697],[-22.90328,82.09317],[-22.071749999999998,81.73449000000001],[-23.169610000000002,81.15271],[-20.62363,81.52462],[-15.768180000000001,81.91245],[-12.77018,81.71885],[-12.20855,81.29154],[-16.285330000000002,80.58004],[-16.85,80.35],[-20.04624,80.17708],[-17.73035,80.12912],[-18.900000000000002,79.4],[-19.70499,78.75128000000001],[-19.67353,77.63859000000001],[-18.47285,76.98565],[-20.03503,76.94434000000001],[-21.679440000000003,76.62795],[-19.83407,76.09808],[-19.59896,75.24838],[-20.66818,75.15585],[-19.37281,74.29561000000001],[-21.594220000000004,74.22382],[-20.434540000000002,73.81713],[-20.762340000000002,73.46436],[-22.17221,73.30955],[-23.56593,73.30663],[-22.313109999999998,72.62928],[-22.29954,72.18409],[-24.278340000000004,72.59788],[-24.79296,72.3302],[-23.442960000000003,72.08015999999999],[-22.13281,71.46898],[-21.753560000000004,70.66369],[-23.53603,70.471],[-24.307019999999998,70.85649000000001],[-25.543409999999998,71.43093999999999],[-25.20135,70.75225999999999],[-26.36276,70.22646],[-23.727420000000002,70.18401],[-22.349020000000003,70.12946000000001],[-25.029270000000004,69.25880000000001],[-27.74737,68.47046],[-30.67371,68.12503],[-31.77665,68.12078000000001],[-32.81105,67.73547],[-34.20196,66.67974],[-36.35284,65.9789],[-37.043780000000005,65.93768],[-38.37505,65.69213],[-39.81222,65.45848],[-40.66899,64.83997000000001],[-40.68281,64.13902],[-41.188700000000004,63.482459999999996],[-42.819379999999995,62.68233],[-42.41666000000001,61.90093],[-42.86619,61.074040000000004],[-43.3784,60.09772],[-44.7875,60.03676000000001],[-46.26364,60.85328],[-48.26294000000001,60.858430000000006],[-49.23308000000001,61.40681000000001],[-49.90039,62.38336],[-51.63325,63.62691],[-52.140139999999995,64.27842],[-52.27659,65.17670000000001],[-53.66166,66.09957],[-53.30161,66.8365],[-53.96911,67.18899],[-52.9804,68.35759],[-51.47536,68.72958000000001],[-51.08041,69.14781],[-50.87122,69.9291],[-52.013585,69.574925],[-52.55792,69.42616],[-53.456289999999996,69.283625],[-54.68336,69.61003],[-54.750009999999996,70.28932],[-54.35884,70.82131500000001],[-53.431315000000005,70.835755],[-51.39014,70.56978],[-53.109370000000006,71.20485000000001],[-54.00422,71.54719],[-55,71.40653696727257],[-55.83468,71.65444000000001],[-54.71819000000001,72.58625],[-55.32634,72.95861000000001],[-56.12003,73.64977],[-57.32363,74.71026],[-58.59679,75.09861000000001],[-58.58516,75.51727],[-61.26861,76.10238000000001],[-63.39165,76.1752],[-66.06427,76.13486],[-68.50438,76.06141000000001],[-69.66485,76.37975],[-71.40257,77.00857],[-68.77671,77.32312],[-66.76397,77.37595],[-71.04293,77.63595],[-73.297,78.04419],[-73.15938,78.43271],[-69.37345,78.91388],[-65.7107,79.39436],[-65.3239,79.75814],[-68.02298,80.11721],[-67.15129,80.51582],[-63.68925,81.21396000000001],[-62.234440000000006,81.3211],[-62.65116,81.77042],[-60.28249,82.03363000000002],[-57.207440000000005,82.19074],[-54.13442,82.19962],[-53.043279999999996,81.88833],[-50.39061,82.43883],[-48.003859999999996,82.06481000000001],[-46.59984000000001,81.985945],[-44.523,81.6607],[-46.9007,82.19979000000001],[-46.76379,82.62796]]]},"properties":{"ISO_A2":"GL","NAME":"Greenland"}},
25
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[68.935,-48.62500000000001],[69.58,-48.940000000000005],[70.525,-49.065000000000005],[70.56,-49.255],[70.28,-49.71],[68.745,-49.775000000000006],[68.72000000000001,-49.2425],[68.8675,-48.830000000000005],[68.935,-48.62500000000001]]]},"properties":{"ISO_A2":"TF","NAME":"Fr. S. Antarctic Lands"}},
26
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[124.96868248911623,-8.892790215697083],[125.08624637258026,-8.65688730228468],[125.94707238169826,-8.432094821815035],[126.64470421763855,-8.398246758663852],[126.95724328013983,-8.273344821814398],[127.33592817597463,-8.397316582882603],[126.96799197805655,-8.668256117388893],[125.9258850444586,-9.106007175333353],[125.08852013560109,-9.393173109579294],[125.07001997284061,-9.089987481322872],[124.96868248911623,-8.892790215697083]]]},"properties":{"ISO_A2":"TL","NAME":"Timor-Leste"}},
27
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.344976840895242,-28.5767050106977],[16.824017368240902,-28.08216155366447],[17.218928663815404,-28.35594329194681],[17.387497185951503,-28.78351409272978],[17.83615197110953,-28.85637786226132],[18.464899122804752,-29.04546192801728],[19.002127312911085,-28.972443129188868],[19.894734327888614,-28.461104831660776],[19.895767856534434,-24.76779021576059],[20.16572553882719,-24.91796192800077],[20.75860924651184,-25.86813648855145],[20.66647016773544,-26.477453301704923],[20.88960900237174,-26.828542982695915],[21.605896030369394,-26.726533705351756],[22.105968865657868,-26.280256036079138],[22.57953169118059,-25.979447523708146],[22.8242712745149,-25.50045867279477],[23.312096795350186,-25.26868987396572],[23.73356977712271,-25.390129489851617],[24.211266717228796,-25.670215752873574],[25.025170525825786,-25.7196700985769],[25.66466637543772,-25.486816094669713],[25.76584882986521,-25.17484547292368],[25.94165205252216,-24.69637338633322],[26.4857532081233,-24.616326592713104],[26.786406691197413,-24.240690606383485],[27.119409620886245,-23.574323011979775],[28.01723595552525,-22.82775359465908],[29.43218834810904,-22.091312758067588],[29.839036899542972,-22.102216485281176],[30.322883335091774,-22.271611830333935],[30.65986535006709,-22.151567478119915],[31.19140913262129,-22.2515096981724],[31.670397983534656,-23.658969008073864],[31.930588820124253,-24.36941659922254],[31.75240848158188,-25.484283949487413],[31.83777794772806,-25.84333180105135],[31.333157586397903,-25.66019052500895],[31.04407962415715,-25.731452325139443],[30.949666782359913,-26.02264902110415],[30.67660851412964,-26.398078301704608],[30.68596194837448,-26.743845310169533],[31.28277306491333,-27.285879408478998],[31.86806033705108,-27.177927341421277],[32.07166548028107,-26.73382008230491],[32.830120477028885,-26.742191664336197],[32.580264926897684,-27.470157566031816],[32.46213260267845,-28.301011244420557],[32.20338870619304,-28.75240488049007],[31.521001417778876,-29.257386976846256],[31.325561150851,-29.401977634398914],[30.901762729625347,-29.909956963828037],[30.62281334811382,-30.42377573010613],[30.05571618014278,-31.140269463832958],[28.92555260591954,-32.1720411109725],[28.2197558936771,-32.771952813448856],[27.464608188595975,-33.2269637997788],[26.419452345492825,-33.61495045342619],[25.90966434093349,-33.6670402971764],[25.780628289500697,-33.94464609144834],[25.172861769315972,-33.796851495093584],[24.677853224392123,-33.98717579522455],[23.594043409934642,-33.794474379208154],[22.988188917744736,-33.91643075941698],[22.574157342222236,-33.86408253350531],[21.542799106541025,-34.258838799782936],[20.689052768647002,-34.417175388325234],[20.071261020597632,-34.79513681410799],[19.61640506356457,-34.81916635512371],[19.193278435958717,-34.46259897230979],[18.85531456876987,-34.444305515278465],[18.42464318204938,-33.99787281670897],[18.377410922934615,-34.13652068454807],[18.24449913907992,-33.86775156019803],[18.250080193767445,-33.28143075941444],[17.92519046394844,-32.61129078545343],[18.247909783611192,-32.42913136162457],[18.22176150887148,-31.66163298922567],[17.56691775886887,-30.725721123987547],[17.064416131262703,-29.878641045859162],[17.062917514726223,-29.875953871379984],[16.344976840895242,-28.5767050106977]],[[28.978262566857243,-28.95559661226171],[28.541700066855498,-28.64750172293757],[28.074338413207784,-28.851468601193588],[27.532511020627478,-29.24271087007536],[26.999261915807637,-29.875953871379984],[27.749397006956485,-30.645105889612225],[28.107204624145425,-30.54573211031495],[28.29106937023991,-30.2262167294543],[28.84839969250774,-30.070050551068256],[29.018415154748027,-29.74376555757737],[29.32516645683259,-29.257386976846256],[28.978262566857243,-28.95559661226171]]]},"properties":{"ISO_A2":"ZA","NAME":"South Africa"}},
28
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.978262566857243,-28.95559661226171],[29.32516645683259,-29.257386976846256],[29.018415154748027,-29.74376555757737],[28.84839969250774,-30.070050551068256],[28.29106937023991,-30.2262167294543],[28.107204624145425,-30.54573211031495],[27.749397006956485,-30.645105889612225],[26.999261915807637,-29.875953871379984],[27.532511020627478,-29.24271087007536],[28.074338413207784,-28.851468601193588],[28.541700066855498,-28.64750172293757],[28.978262566857243,-28.95559661226171]]]},"properties":{"ISO_A2":"LS","NAME":"Lesotho"}},
29
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-117.12775999999985,32.53533999999996],[-115.99134999999995,32.61239000000012],[-114.72138999999993,32.72082999999992],[-114.815,32.52528000000001],[-113.30498,32.03914000000009],[-111.02361000000002,31.334719999999948],[-109.03500000000003,31.341940000000136],[-108.24193999999994,31.342220000000054],[-108.24000000000001,31.754853718166373],[-106.50758999999988,31.754520000000014],[-106.1429,31.399950000000047],[-105.63159000000002,31.08383000000009],[-105.03737000000001,30.644019999999955],[-104.70574999999997,30.121730000000014],[-104.4569699999999,29.571960000000047],[-103.94,29.27000000000004],[-103.11000000000001,28.970000000000027],[-102.48000000000002,29.75999999999999],[-101.66239999999999,29.77930000000009],[-100.95759999999996,29.380710000000136],[-100.45584000000002,28.69612000000012],[-100.10999999999996,28.110000000000127],[-99.51999999999992,27.54000000000002],[-99.30000000000001,26.840000000000032],[-99.01999999999992,26.37000000000006],[-98.23999999999995,26.06000000000006],[-97.52999999999992,25.84000000000009],[-97.14000830767071,25.8699974634784],[-97.52807247596655,24.9921440699203],[-97.70294552284224,24.272343044526735],[-97.77604183631905,22.93257986092766],[-97.87236670611111,22.44421173755336],[-97.69904395220419,21.898689480064263],[-97.38895952023677,21.411018988525825],[-97.18933346229329,20.635433254473128],[-96.52557552772032,19.890930894444068],[-96.29212724484177,19.320371405509547],[-95.90088497595997,18.82802419684873],[-94.83906348344271,18.562717393462208],[-94.42572953975622,18.144370835843347],[-93.5486512926824,18.423836981677937],[-92.7861138577835,18.52483856859226],[-92.0373481920904,18.704569200103435],[-91.40790340855926,18.87608327888023],[-90.77186987991087,19.28412038825678],[-90.53358985061305,19.8674181177513],[-90.45147599970124,20.707521877520435],[-90.2786183336849,20.999855454995554],[-89.60132117385149,21.26172577563449],[-88.54386633986286,21.49367544197662],[-87.65841651075772,21.45884552661198],[-87.05189022494807,21.5435431991383],[-86.81198238803296,21.331514797444754],[-86.84590796583262,20.849864610268355],[-87.38329118523586,20.25540477139873],[-87.62105445021075,19.64655304613592],[-87.43675045444178,19.47240346931227],[-87.58656043165593,19.04013011319074],[-87.83719112827151,18.25981598558343],[-88.09066402866318,18.51664785407405],[-88.3000310940937,18.4999822046599],[-88.49012285027935,18.486830552641607],[-88.84834387892661,17.883198147040233],[-89.02985734735182,18.001511338772488],[-89.15090938999553,17.95546763760042],[-89.14308041050333,17.808318996649405],[-90.06793351923098,17.819326076727478],[-91.00151994501596,17.81759491624571],[-91.00226925328421,17.25465770107418],[-91.45392127151516,17.252177232324172],[-91.08167009150065,16.918476670799407],[-90.71182186558772,16.687483018454728],[-90.60084672724093,16.47077789963879],[-90.43886695022204,16.410109768128095],[-90.46447262242266,16.069562079324655],[-91.74796017125595,16.066564846251765],[-92.2292486234063,15.251446641495875],[-92.08721594925207,15.064584662328441],[-92.20322953974733,14.830102850804069],[-92.22775000686983,14.538828640190928],[-93.35946387406176,15.615429592343673],[-93.87516883011853,15.940164292865916],[-94.69165646033014,16.200975246642884],[-95.25022701697304,16.128318182840644],[-96.05338212765332,15.752087917539598],[-96.55743404822829,15.653515122942792],[-97.26359249549665,15.917064927631316],[-98.01302995480961,16.107311713113916],[-98.94767574745651,16.566043402568766],[-99.69739742714705,16.70616404872817],[-100.82949886758132,17.17107107184205],[-101.66608862995446,17.649026394109626],[-101.91852800170022,17.916090196193977],[-102.47813208698892,17.975750637275098],[-103.50098954955808,18.29229462327885],[-103.91752743204682,18.74857168220001],[-104.9920096504755,19.316133938061682],[-105.49303849976144,19.946767279535436],[-105.73139604370766,20.434101874264115],[-105.39777299683135,20.531718654863425],[-105.50066077352443,20.81689504646613],[-105.27075232625793,21.07628489835514],[-105.26581722697404,21.42210358325235],[-105.6031609769754,21.87114594165257],[-105.69341386597313,22.269080308516152],[-106.02871639689897,22.773752346278627],[-106.90998043498837,23.767774359628902],[-107.91544877809139,24.54891531015295],[-108.40190487347098,25.172313951105934],[-109.26019873740665,25.58060944264406],[-109.44408932171734,25.82488393808768],[-109.29164384645628,26.442934068298428],[-109.80145768923182,26.676175645447927],[-110.3917317370857,27.16211497650454],[-110.64101884646163,27.859876003525528],[-111.17891883018785,27.94124054616907],[-111.75960689985163,28.46795258230395],[-112.2282346260904,28.95440867768349],[-112.27182369672869,29.266844387320077],[-112.80959448937398,30.02111359305235],[-113.16381059451868,30.786880804969428],[-113.14866939985717,31.170965887978923],[-113.87188106978186,31.567608344035193],[-114.20573666060352,31.524045111613134],[-114.77645117883503,31.79953217216115],[-114.93669979537214,31.393484605427602],[-114.7712318591735,30.913617255165263],[-114.67389929895177,30.162681179315996],[-114.33097449426293,29.750432440707414],[-113.58887508833544,29.061611436473015],[-113.42405310754054,28.82617361095123],[-113.27196936730553,28.7547826197399],[-113.14003943566439,28.41128937429596],[-112.9622983467965,28.42519033458251],[-112.76158708377488,27.780216783147523],[-112.45791052941166,27.52581370697476],[-112.2449519519368,27.17172679291076],[-111.61648902061921,26.662817287700477],[-111.28467464887302,25.732589830014433],[-110.9878193835724,25.294606228124564],[-110.71000688357134,24.82600434010186],[-110.65504899782889,24.298594672131117],[-110.17285620811344,24.265547593680424],[-109.77184709352855,23.811182562754198],[-109.40910437705571,23.36467234953625],[-109.43339230023292,23.1855876734287],[-109.85421932660171,22.818271592698068],[-110.03139197471444,22.823077500901206],[-110.29507097048366,23.43097321216669],[-110.94950130902805,24.000964260345995],[-111.6705684070127,24.484423122652515],[-112.18203589562148,24.738412787367167],[-112.14898881717085,25.47012523040405],[-112.3007108223797,26.012004299416617],[-112.77729671919155,26.32195954030317],[-113.46467078332194,26.768185533143424],[-113.59672990604383,26.639459540304472],[-113.84893673384425,26.90006378835244],[-114.46574662968004,27.142090358991368],[-115.05514217818501,27.72272675222291],[-114.98225257043742,27.798200181585116],[-114.57036556685495,27.74148529714489],[-114.19932878299926,28.115002549750557],[-114.16201839888464,28.566111965442303],[-114.93184221073665,29.27947927501549],[-115.518653937627,29.5563615992354],[-115.88736528202958,30.180793768834178],[-116.25835038945291,30.836464341753583],[-116.72152625208497,31.635743720012044],[-117.12775999999985,32.53533999999996]]]},"properties":{"ISO_A2":"MX","NAME":"Mexico"}},
30
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-57.62513342958296,-30.21629485445426],[-56.976025763564735,-30.109686374636127],[-55.97324459494094,-30.883075860316303],[-55.601510179249345,-30.853878676071393],[-54.57245154480512,-31.494511407193748],[-53.78795162618219,-32.047242526987624],[-53.209588995971544,-32.727666110974724],[-53.6505439927181,-33.20200408298183],[-53.373661668498244,-33.768377780900764],[-53.806425950726535,-34.39681487400223],[-54.93586605489773,-34.952646579733624],[-55.67408972840329,-34.75265878676407],[-56.21529700379607,-34.85983570733742],[-57.1396850246331,-34.430456231424245],[-57.81786068381551,-34.4625472958775],[-58.42707414410439,-33.909454441057576],[-58.349611172098875,-33.26318897881541],[-58.13264767112145,-33.040566908502015],[-58.14244035504076,-32.044503676076154],[-57.87493730328188,-31.016556084926208],[-57.62513342958296,-30.21629485445426]]]},"properties":{"ISO_A2":"UY","NAME":"Uruguay"}},
31
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-53.373661668498244,-33.768377780900764],[-53.6505439927181,-33.20200408298183],[-53.209588995971544,-32.727666110974724],[-53.78795162618219,-32.047242526987624],[-54.57245154480512,-31.494511407193748],[-55.601510179249345,-30.853878676071393],[-55.97324459494094,-30.883075860316303],[-56.976025763564735,-30.109686374636127],[-57.62513342958296,-30.21629485445426],[-56.29089962423908,-28.852760512000895],[-55.16228634298457,-27.881915378533463],[-54.490725267135524,-27.47475676850579],[-53.64873531758789,-26.92347258881609],[-53.628348965048744,-26.124865004177472],[-54.13004960795439,-25.547639255477254],[-54.625290696823576,-25.739255466415514],[-54.42894609233059,-25.162184747012166],[-54.29347632507745,-24.570799655863965],[-54.29295956075452,-24.02101409271073],[-54.65283423523513,-23.83957813893396],[-55.02790178080955,-24.00127369557523],[-55.40074723979542,-23.956935316668805],[-55.517639329639636,-23.571997572526637],[-55.610682745981144,-22.655619398694846],[-55.79795813660691,-22.356929620047822],[-56.47331743022939,-22.086300144135283],[-56.8815095689029,-22.28215382252148],[-57.937155727761294,-22.090175876557172],[-57.8706739976178,-20.73268767668195],[-58.166392381408045,-20.176700941653678],[-57.85380164247451,-19.96999521248619],[-57.949997321185826,-19.40000416430682],[-57.67600887717431,-18.96183969490403],[-57.49837114117099,-18.174187513911292],[-57.734558274961,-17.55246835700777],[-58.28080400250225,-17.271710300366017],[-58.38805843772404,-16.877109063385276],[-58.24121985536668,-16.299573256091293],[-60.158389655179036,-16.258283786690086],[-60.54296566429515,-15.093910414289596],[-60.251148851142936,-15.07721892665932],[-60.26432634137737,-14.645979099183641],[-60.45919816755003,-14.354007256734555],[-60.503304002511136,-13.775954685117659],[-61.08412126325565,-13.479383640194598],[-61.71320431176078,-13.489202162330052],[-62.127080857986385,-13.198780612849724],[-62.803060268796386,-13.000653171442686],[-63.19649878605057,-12.627032565972435],[-64.3163529120316,-12.461978041232193],[-65.40228146021303,-11.566270440317155],[-65.32189876978302,-10.895872084194679],[-65.44483700220539,-10.511451104375432],[-65.33843522811642,-9.761987806846392],[-66.6469083319628,-9.931331475466862],[-67.17380123561074,-10.306812432499612],[-68.04819230820539,-10.712059014532485],[-68.27125362819326,-11.01452117273682],[-68.78615759954948,-11.03638030359628],[-69.52967810736496,-10.951734307502194],[-70.0937522040469,-11.123971856331012],[-70.54868567572841,-11.009146823778465],[-70.48189388699117,-9.490118096558845],[-71.30241227892154,-10.079436130415374],[-72.18489071316985,-10.053597914269432],[-72.56303300646564,-9.520193780152717],[-73.22671342639016,-9.462212823121234],[-73.01538265653255,-9.032833347208062],[-73.57105933296707,-8.424446709835834],[-73.98723548042966,-7.523829847853065],[-73.7234014553635,-7.340998630404414],[-73.72448666044164,-6.91859547285064],[-73.1200274319236,-6.629930922068239],[-73.21971126981461,-6.089188734566078],[-72.9645072089412,-5.7412513159448935],[-72.89192765978726,-5.274561455916981],[-71.74840572781655,-4.593982842633011],[-70.92884334988358,-4.401591485210368],[-70.7947688463023,-4.251264743673303],[-69.89363521999663,-4.2981869441943275],[-69.44410193548961,-1.5562871232198177],[-69.42048580593223,-1.1226185034264091],[-69.5770653957766,-0.549991957200163],[-70.02065589057005,-0.18515634521953928],[-70.01556576198931,0.5414142928042054],[-69.45239600287246,0.7061587589506929],[-69.25243404811906,0.6026508650700748],[-69.21863766140018,0.9856765812174331],[-69.80459672715773,1.0890811222334662],[-69.81697323269162,1.7148052026396243],[-67.86856502955884,1.6924551456733923],[-67.5378100246747,2.03716278727633],[-67.2599975246736,1.7199986840849562],[-67.0650481838525,1.130112209473225],[-66.87632585312258,1.253360500489336],[-66.32576514348496,0.7244522159820121],[-65.54826738143757,0.7892544620760303],[-65.35471330428837,1.0952822941085003],[-64.61101192895987,1.3287305769870417],[-64.19930579289051,1.49285492594602],[-64.08308549666609,1.9163691267940803],[-63.368788011311665,2.200899562993129],[-63.42286739770512,2.4110676131241746],[-64.2699991522658,2.497005520025567],[-64.40882788761792,3.126786200366624],[-64.3684944322141,3.797210394705246],[-64.81606401229402,4.056445217297423],[-64.62865943058755,4.14848094320925],[-63.88834286157416,4.020530096854571],[-63.093197597899106,3.7705711938587854],[-62.804533047116706,4.006965033377952],[-62.08542965355913,4.162123521334308],[-60.96689327660154,4.536467596856639],[-60.601179165271944,4.91809804933213],[-60.73357418480372,5.200277207861901],[-60.21368343773133,5.244486395687602],[-59.980958624904886,5.014061184098139],[-60.11100236676738,4.574966538914083],[-59.767405768458715,4.423502915866607],[-59.53803992373123,3.9588025984819377],[-59.815413174057866,3.6064985213320853],[-59.97452490908456,2.755232652188056],[-59.71854570172675,2.2496304386443597],[-59.64604366722126,1.786893825686789],[-59.03086157900265,1.3176976586927225],[-58.540012986878295,1.2680882836925207],[-58.429477098205965,1.4639419620787208],[-58.11344987652502,1.5071951359070253],[-57.66097103537737,1.6825849471056387],[-57.335822923396904,1.9485377058957594],[-56.78270423036083,1.8637108422886541],[-56.539385748914555,1.8995226098669207],[-55.995698004771754,1.8176671411166012],[-55.905600145070885,2.0219957543986595],[-56.0733418442903,2.2207949894254995],[-55.973322109589375,2.510363877773017],[-55.569755011606,2.4215062524471307],[-55.09758744975514,2.5237480737366127],[-54.524754197799716,2.3118488631237852],[-54.08806250671725,2.105556545414629],[-53.77852067728892,2.3767027856500818],[-53.554839240113544,2.334896551925951],[-53.41846513529531,2.0533891870159806],[-52.939657151894956,2.1248576928756364],[-52.55642473001842,2.504705308437053],[-52.249337531123956,3.241094468596245],[-51.65779741067889,4.156232408053029],[-51.31714636901086,4.203490505383954],[-51.069771287629656,3.650397650564031],[-50.508875291533656,1.901563828942457],[-49.97407589374506,1.736483465986069],[-49.94710079608871,1.0461896834312228],[-50.699251268096916,0.22298411702168153],[-50.38821082213214,-0.07844451253681939],[-48.62056677915632,-0.2354891902718208],[-48.58449662941659,-1.2378052710050014],[-47.824956427590635,-0.5816179337628],[-46.566583624851226,-0.941027520352776],[-44.905703090990414,-1.551739597178134],[-44.417619187993665,-2.137750339367976],[-44.58158850765578,-2.691308282078524],[-43.418791266440195,-2.383110039889793],[-41.47265682632825,-2.9120183243971165],[-39.97866533055404,-2.873054294449041],[-38.50038347019657,-3.7006523576033956],[-37.2232521225352,-4.820945733258917],[-36.45293738457639,-5.109403578312154],[-35.59779578301047,-5.149504489770649],[-35.23538896334756,-5.464937432480247],[-34.89602983248683,-6.738193047719711],[-34.729993455533034,-7.343220716992967],[-35.12821204277422,-8.996401462442286],[-35.636966518687714,-9.649281508017815],[-37.046518724097,-11.040721123908803],[-37.68361161960736,-12.171194756725823],[-38.42387651218844,-13.038118584854288],[-38.67388709161652,-13.057652276260619],[-38.953275722802545,-13.793369642800023],[-38.88229814304965,-15.667053724838768],[-39.16109249526431,-17.208406670808472],[-39.2673392400564,-17.867746270420483],[-39.58352149103423,-18.262295830968938],[-39.76082333022764,-19.59911345792741],[-40.77474077001034,-20.904511814052423],[-40.94475623225061,-21.93731698983781],[-41.754164191238225,-22.370675551037458],[-41.98828426773656,-22.970070489190896],[-43.07470374202475,-22.96769337330547],[-44.64781185563781,-23.351959323827842],[-45.35213578955992,-23.796841729428582],[-46.47209326840554,-24.088968601174543],[-47.64897233742066,-24.885199069927722],[-48.4954581365777,-25.877024834905654],[-48.64100480812774,-26.623697605090932],[-48.474735887228654,-27.17591196056189],[-48.661520351747626,-28.18613453543572],[-48.8884574041574,-28.674115085567884],[-49.587329474472675,-29.224469089476337],[-50.696874152211485,-30.98446502047296],[-51.576226162306156,-31.77769825615321],[-52.256081305538046,-32.24536996839467],[-52.712099982297694,-33.19657805759118],[-53.373661668498244,-33.768377780900764]]]},"properties":{"ISO_A2":"BR","NAME":"Brazil"}},
32
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-69.52967810736496,-10.951734307502194],[-68.78615759954948,-11.03638030359628],[-68.27125362819326,-11.01452117273682],[-68.04819230820539,-10.712059014532485],[-67.17380123561074,-10.306812432499612],[-66.6469083319628,-9.931331475466862],[-65.33843522811642,-9.761987806846392],[-65.44483700220539,-10.511451104375432],[-65.32189876978302,-10.895872084194679],[-65.40228146021303,-11.566270440317155],[-64.3163529120316,-12.461978041232193],[-63.19649878605057,-12.627032565972435],[-62.803060268796386,-13.000653171442686],[-62.127080857986385,-13.198780612849724],[-61.71320431176078,-13.489202162330052],[-61.08412126325565,-13.479383640194598],[-60.503304002511136,-13.775954685117659],[-60.45919816755003,-14.354007256734555],[-60.26432634137737,-14.645979099183641],[-60.251148851142936,-15.07721892665932],[-60.54296566429515,-15.093910414289596],[-60.158389655179036,-16.258283786690086],[-58.24121985536668,-16.299573256091293],[-58.38805843772404,-16.877109063385276],[-58.28080400250225,-17.271710300366017],[-57.734558274961,-17.55246835700777],[-57.49837114117099,-18.174187513911292],[-57.67600887717431,-18.96183969490403],[-57.949997321185826,-19.40000416430682],[-57.85380164247451,-19.96999521248619],[-58.166392381408045,-20.176700941653678],[-58.183471442280506,-19.868399346600363],[-59.11504248720611,-19.3569060197754],[-60.04356462262649,-19.342746677327426],[-61.78632646345377,-19.633736667562964],[-62.2659612697708,-20.513734633061276],[-62.291179368729225,-21.051634616787393],[-62.685057135657885,-22.249029229422387],[-62.84646847192156,-22.03498544686945],[-63.986838141522476,-21.99364430103595],[-64.37702104354226,-22.79809132252354],[-64.96489213729461,-22.075861504812327],[-66.27333940292485,-21.83231047942072],[-67.1066735500636,-22.735924574476417],[-67.82817989772273,-22.872918796482175],[-68.21991309271128,-21.494346612231865],[-68.75716712103375,-20.372657972904463],[-68.44222510443092,-19.40506845467143],[-68.96681840684187,-18.981683444904107],[-69.10024695501949,-18.260125420812678],[-69.59042375352405,-17.580011895419332],[-68.9596353827533,-16.50069793057127],[-69.38976416693471,-15.660129082911652],[-69.16034664577495,-15.323973890853019],[-69.33953467474701,-14.953195489158832],[-68.9488866848366,-14.453639418193283],[-68.92922380234954,-13.602683607643009],[-68.88007951523997,-12.899729099176653],[-68.66507971868963,-12.561300144097173],[-69.52967810736496,-10.951734307502194]]]},"properties":{"ISO_A2":"BO","NAME":"Bolivia"}},
33
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-69.89363521999663,-4.2981869441943275],[-70.7947688463023,-4.251264743673303],[-70.92884334988358,-4.401591485210368],[-71.74840572781655,-4.593982842633011],[-72.89192765978726,-5.274561455916981],[-72.9645072089412,-5.7412513159448935],[-73.21971126981461,-6.089188734566078],[-73.1200274319236,-6.629930922068239],[-73.72448666044164,-6.91859547285064],[-73.7234014553635,-7.340998630404414],[-73.98723548042966,-7.523829847853065],[-73.57105933296707,-8.424446709835834],[-73.01538265653255,-9.032833347208062],[-73.22671342639016,-9.462212823121234],[-72.56303300646564,-9.520193780152717],[-72.18489071316985,-10.053597914269432],[-71.30241227892154,-10.079436130415374],[-70.48189388699117,-9.490118096558845],[-70.54868567572841,-11.009146823778465],[-70.0937522040469,-11.123971856331012],[-69.52967810736496,-10.951734307502194],[-68.66507971868963,-12.561300144097173],[-68.88007951523997,-12.899729099176653],[-68.92922380234954,-13.602683607643009],[-68.9488866848366,-14.453639418193283],[-69.33953467474701,-14.953195489158832],[-69.16034664577495,-15.323973890853019],[-69.38976416693471,-15.660129082911652],[-68.9596353827533,-16.50069793057127],[-69.59042375352405,-17.580011895419332],[-69.85844356960587,-18.092693780187012],[-70.37257239447771,-18.34797535570887],[-71.37525021023693,-17.773798516513857],[-71.46204077827113,-17.363487644116383],[-73.44452958850042,-16.359362888252996],[-75.23788265654144,-15.265682875227782],[-76.00920508492995,-14.649286390850321],[-76.42346920439775,-13.823186944232432],[-76.25924150257417,-13.535039157772943],[-77.10619238962184,-12.22271615972082],[-78.09215287953464,-10.377712497604065],[-79.03695309112695,-8.386567884965892],[-79.44592037628485,-7.93083342858386],[-79.76057817251005,-7.194340915560084],[-80.53748165558608,-6.541667575713717],[-81.24999630402642,-6.136834405139183],[-80.92634680858244,-5.690556735866565],[-81.41094255239946,-4.7367648250554595],[-81.09966956248937,-4.036394138203697],[-80.30256059438722,-3.4048564591647126],[-80.18401485870967,-3.8211617977080437],[-80.46929460317695,-4.0592867977089995],[-80.44224199087216,-4.425724379090674],[-80.02890804718561,-4.3460909969288934],[-79.62497921417618,-4.454198093283495],[-79.20528906931773,-4.959128513207389],[-78.63989722361234,-4.547784112164074],[-78.45068396677564,-3.873096612161376],[-77.83790483265861,-3.003020521663103],[-76.63539425322672,-2.6086776668438176],[-75.54499569365204,-1.5616097957458803],[-75.23372270374195,-0.9114169246495294],[-75.37322323271385,-0.1520317521204504],[-75.10662451852008,-0.05720549886486026],[-74.44160051135597,-0.5308200008198867],[-74.12239518908906,-1.002832533373848],[-73.6595035468346,-1.2604912247811342],[-73.07039221870724,-2.3089543595509525],[-72.32578650581365,-2.434218031426454],[-71.7747607082854,-2.169789727388938],[-71.41364579942979,-2.3428024227021282],[-70.81347571479196,-2.2568645158007428],[-70.04770850287485,-2.725156345229699],[-70.69268205430971,-3.742872002785859],[-70.39404395209499,-3.7665914852078255],[-69.89363521999663,-4.2981869441943275]]]},"properties":{"ISO_A2":"PE","NAME":"Peru"}},
34
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-66.87632585312258,1.253360500489336],[-67.0650481838525,1.130112209473225],[-67.2599975246736,1.7199986840849562],[-67.5378100246747,2.03716278727633],[-67.86856502955884,1.6924551456733923],[-69.81697323269162,1.7148052026396243],[-69.80459672715773,1.0890811222334662],[-69.21863766140018,0.9856765812174331],[-69.25243404811906,0.6026508650700748],[-69.45239600287246,0.7061587589506929],[-70.01556576198931,0.5414142928042054],[-70.02065589057005,-0.18515634521953928],[-69.5770653957766,-0.549991957200163],[-69.42048580593223,-1.1226185034264091],[-69.44410193548961,-1.5562871232198177],[-69.89363521999663,-4.2981869441943275],[-70.39404395209499,-3.7665914852078255],[-70.69268205430971,-3.742872002785859],[-70.04770850287485,-2.725156345229699],[-70.81347571479196,-2.2568645158007428],[-71.41364579942979,-2.3428024227021282],[-71.7747607082854,-2.169789727388938],[-72.32578650581365,-2.434218031426454],[-73.07039221870724,-2.3089543595509525],[-73.6595035468346,-1.2604912247811342],[-74.12239518908906,-1.002832533373848],[-74.44160051135597,-0.5308200008198867],[-75.10662451852008,-0.05720549886486026],[-75.37322323271385,-0.1520317521204504],[-75.8014658271166,0.08480133707320192],[-76.29231441924097,0.4160472680641192],[-76.5763797675494,0.256935533037435],[-77.4249843004304,0.395686753741117],[-77.66861284047044,0.8258930525709616],[-77.85506140817952,0.8099250349927729],[-78.85525875518871,1.380923773601822],[-78.99093522817104,1.6913699405952514],[-78.61783138702371,1.766404120283056],[-78.66211808949785,2.2673554549204766],[-78.42761043975733,2.629555568854215],[-77.93154252797149,2.6966057397529255],[-77.51043128122501,3.325016994638247],[-77.12768978545526,3.8496361352653565],[-77.49627193877703,4.087606105969428],[-77.3076012844794,4.6679841170394525],[-77.53322058786573,5.582811997902497],[-77.31881507028675,5.84535411216136],[-77.47666073272228,6.691116441266303],[-77.88157141794525,7.223771267114785],[-77.7534138658614,7.709839789252143],[-77.43110795765699,7.638061224798734],[-77.24256649444008,7.935278225125444],[-77.47472286651133,8.524286200388218],[-77.35336076527386,8.67050466555807],[-76.83667395700357,8.638749497914716],[-76.08638383655786,9.336820583529487],[-75.67460018584006,9.443248195834599],[-75.66470414905618,9.774003200718738],[-75.48042599150335,10.618990383339309],[-74.90689510771199,11.083044745320322],[-74.27675269234489,11.102035834187587],[-74.1972226630477,11.310472723836867],[-73.41476396350029,11.22701528568548],[-72.62783525255963,11.731971543825523],[-72.23819495307892,11.955549628136326],[-71.75409013536864,12.437303168177309],[-71.3998223537917,12.376040757695293],[-71.13746110704588,12.112981879113505],[-71.3315836249503,11.776284084515808],[-71.97392167833829,11.60867157637712],[-72.22757544624294,11.10870209395324],[-72.61465776232521,10.821975409381778],[-72.9052860175347,10.450344346554772],[-73.02760413276957,9.736770331252444],[-73.30495154488005,9.151999823437606],[-72.7887298245004,9.085027167187334],[-72.6604947577681,8.625287787302682],[-72.43986223009796,8.405275376820029],[-72.36090064155597,8.002638454617895],[-72.47967892117885,7.632506008327354],[-72.44448727078807,7.423784898300482],[-72.19835242378188,7.340430813013683],[-71.96017574734864,6.991614895043539],[-70.67423356798152,7.087784735538719],[-70.09331295437242,6.96037649172311],[-69.38947994655712,6.0998605411988365],[-68.98531856960236,6.206804917826858],[-68.26505245631823,6.153268133972475],[-67.69508724635502,6.267318020040647],[-67.34143958196557,6.095468044454023],[-67.52153194850275,5.556870428891969],[-67.74469662135522,5.221128648291668],[-67.82301225449355,4.503937282728899],[-67.62183590358129,3.8394817163199946],[-67.33756384954368,3.5423422306417223],[-67.30317318385345,3.31845408773718],[-67.8099381171237,2.820655015469569],[-67.44709204778631,2.6002808699608693],[-67.18129431829307,2.250638129074062],[-66.87632585312258,1.253360500489336]]]},"properties":{"ISO_A2":"CO","NAME":"Colombia"}},
35
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-77.35336076527386,8.67050466555807],[-77.47472286651133,8.524286200388218],[-77.24256649444008,7.935278225125444],[-77.43110795765699,7.638061224798734],[-77.7534138658614,7.709839789252143],[-77.88157141794525,7.223771267114785],[-78.21493608266012,7.512254950384161],[-78.42916073272607,8.052041123888927],[-78.18209570993864,8.319182440621773],[-78.4354652574657,8.38770538984079],[-78.62212053090394,8.718124497915028],[-79.12030717641375,8.996092027213024],[-79.55787736684519,8.932374986197146],[-79.76057817251005,8.5845150822244],[-80.16448116730334,8.333315944853595],[-80.38265906443962,8.298408514840432],[-80.4806892564973,8.09030752200107],[-80.00368994822716,7.547524115423372],[-80.276670701809,7.419754136581716],[-80.42115800649708,7.271571966984765],[-80.8864009264208,7.220541490096537],[-81.05954281281473,7.817921047390597],[-81.18971574575795,7.64790558515034],[-81.51951473664468,7.706610012233909],[-81.72131120474447,8.108962714058435],[-82.13144120962892,8.175392767769637],[-82.39093441438257,8.29236237226229],[-82.82008134635042,8.290863755725823],[-82.85095801464482,8.073822740099956],[-82.96578304719736,8.225027980985985],[-82.91317643912421,8.42351715741907],[-82.82977067740516,8.62629547773237],[-82.86865719270477,8.807266343618522],[-82.71918311230053,8.925708726431495],[-82.92715491405916,9.074330145702916],[-82.93289099804358,9.476812038608173],[-82.54619625520348,9.566134751824677],[-82.18712256542341,9.20744863528678],[-82.20758643261097,8.9955752628901],[-81.80856686066929,8.950616766796173],[-81.71415401887204,9.031955471223583],[-81.43928707551154,8.786234035675719],[-80.94730160187676,8.858503526235907],[-80.52190121125008,9.111072089062432],[-79.91459977895599,9.31276520429762],[-79.57330278188431,9.611610012241528],[-79.02119177927793,9.552931423374105],[-79.05845048696037,9.454565334506526],[-78.50088762074719,9.420458889193881],[-78.05592770049802,9.2477304142583],[-77.72951351592641,8.946844387238869],[-77.35336076527386,8.67050466555807]]]},"properties":{"ISO_A2":"PA","NAME":"Panama"}},
36
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-82.54619625520348,9.566134751824677],[-82.93289099804358,9.476812038608173],[-82.92715491405916,9.074330145702916],[-82.71918311230053,8.925708726431495],[-82.86865719270477,8.807266343618522],[-82.82977067740516,8.62629547773237],[-82.91317643912421,8.42351715741907],[-82.96578304719736,8.225027980985985],[-83.50843726269431,8.446926581247283],[-83.71147396516908,8.656836249216866],[-83.59631303580665,8.830443223501419],[-83.63264156770784,9.051385809765321],[-83.90988562695374,9.29080272057358],[-84.30340165885636,9.487354030795714],[-84.64764421256866,9.61553742109571],[-84.71335079622777,9.908051866083852],[-84.97566036654133,10.086723130733006],[-84.91137488477024,9.795991522658923],[-85.11092342806532,9.55703969974131],[-85.33948828809227,9.83454214114866],[-85.66078650586698,9.933347479690724],[-85.79744483106285,10.134885565629034],[-85.79170874707843,10.439337266476613],[-85.65931372754667,10.75433095951172],[-85.94172543002176,10.895278428587801],[-85.7125404528073,11.088444932494824],[-85.5618519762442,11.217119248901597],[-84.90300330273895,10.952303371621896],[-84.67306901725627,11.082657172078143],[-84.35593075228104,10.999225572142905],[-84.19017859570485,10.793450018756674],[-83.89505449088595,10.726839097532446],[-83.65561174186158,10.938764146361422],[-83.40231970898296,10.395438137244653],[-83.01567664257517,9.992982082555557],[-82.54619625520348,9.566134751824677]]]},"properties":{"ISO_A2":"CR","NAME":"Costa Rica"}},
37
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.65561174186158,10.938764146361422],[-83.89505449088595,10.726839097532446],[-84.19017859570485,10.793450018756674],[-84.35593075228104,10.999225572142905],[-84.67306901725627,11.082657172078143],[-84.90300330273895,10.952303371621896],[-85.5618519762442,11.217119248901597],[-85.7125404528073,11.088444932494824],[-86.05848832878526,11.403438625529944],[-86.52584998243296,11.806876532432597],[-86.74599158399633,12.143961900272487],[-87.16751624220116,12.458257961471658],[-87.66849341505471,12.909909979702633],[-87.55746660027562,13.064551703336065],[-87.39238623731923,12.914018256069838],[-87.31665442579549,12.984685777228975],[-87.00576900912758,13.025794379117158],[-86.88055701368438,13.254204209847217],[-86.7338217841916,13.263092556201443],[-86.75508663607971,13.754845485890913],[-86.52070817741992,13.778487453664468],[-86.31214209668993,13.77135610600817],[-86.09626380079061,14.038187364147234],[-85.80129472526859,13.83605499923759],[-85.69866533073696,13.960078436738002],[-85.51441301140028,14.079011745657908],[-85.16536454948482,14.354369615125051],[-85.14875057650296,14.560196844943617],[-85.05278744173694,14.551541042534723],[-84.9245006985724,14.79049286545235],[-84.82003679069436,14.81958669683267],[-84.64958207877964,14.666805324761867],[-84.4493359036486,14.621614284722511],[-84.22834164095241,14.74876414637663],[-83.97572140169359,14.749435939996488],[-83.62858496777292,14.880073960830302],[-83.48998877636612,15.016267198135537],[-83.14721900097413,14.99582916916411],[-83.23323442252394,14.899866034398102],[-83.2841615465476,14.6766238468972],[-83.18212643098728,14.31070302983845],[-83.41249996614445,13.970077826386557],[-83.51983191601468,13.567699286345883],[-83.55220720084554,13.127054348193086],[-83.49851538769427,12.869292303921227],[-83.47332312695198,12.419087225794428],[-83.62610449902292,12.320850328007566],[-83.71961300325506,11.893124497927728],[-83.65085751009072,11.62903209070012],[-83.8554703437504,11.373311265503787],[-83.80893571647155,11.103043524617275],[-83.65561174186158,10.938764146361422]]]},"properties":{"ISO_A2":"NI","NAME":"Nicaragua"}},
38
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-83.14721900097413,14.99582916916411],[-83.48998877636612,15.016267198135537],[-83.62858496777292,14.880073960830302],[-83.97572140169359,14.749435939996488],[-84.22834164095241,14.74876414637663],[-84.4493359036486,14.621614284722511],[-84.64958207877964,14.666805324761867],[-84.82003679069436,14.81958669683267],[-84.9245006985724,14.79049286545235],[-85.05278744173694,14.551541042534723],[-85.14875057650296,14.560196844943617],[-85.16536454948482,14.354369615125051],[-85.51441301140028,14.079011745657908],[-85.69866533073696,13.960078436738002],[-85.80129472526859,13.83605499923759],[-86.09626380079061,14.038187364147234],[-86.31214209668993,13.77135610600817],[-86.52070817741992,13.778487453664468],[-86.75508663607971,13.754845485890913],[-86.7338217841916,13.263092556201443],[-86.88055701368438,13.254204209847217],[-87.00576900912758,13.025794379117158],[-87.31665442579549,12.984685777228975],[-87.48940873894713,13.297534898323931],[-87.79311113152657,13.384480495655055],[-87.7235029772294,13.785050360565506],[-87.85951534702161,13.893312486217098],[-88.06534257684014,13.964625962779778],[-88.50399797234971,13.845485948130857],[-88.541230841816,13.980154730683479],[-88.84307288283284,14.14050670008517],[-89.05851192905766,14.340029405164087],[-89.35332597528281,14.424132798719086],[-89.14553504103719,14.678019110569153],[-89.22522009963127,14.874286200413621],[-89.15481096063357,15.06641917567481],[-88.68067969435563,15.346247056535304],[-88.22502275262202,15.727722479713904],[-88.12115312371537,15.688655096901357],[-87.90181250685242,15.864458319558196],[-87.61568010125234,15.878798529519202],[-87.52292090528846,15.797278957578783],[-87.36776241733213,15.846940009011291],[-86.90319129102818,15.75671295822957],[-86.44094560417739,15.782835394753192],[-86.11923397494434,15.893448798073962],[-86.00195431185784,16.00540578863439],[-85.68331743034628,15.953651841693954],[-85.44400387240256,15.885749009662447],[-85.18244361035721,15.909158433490632],[-84.98372188997882,15.995923163308703],[-84.52697974316715,15.857223619037427],[-84.36825558138258,15.835157782448732],[-84.06305457226682,15.648244126849136],[-83.77397661002612,15.424071763566872],[-83.41038123242038,15.270902818253774],[-83.14721900097413,14.99582916916411]]]},"properties":{"ISO_A2":"HN","NAME":"Honduras"}},
39
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.35332597528281,14.424132798719086],[-89.05851192905766,14.340029405164087],[-88.84307288283284,14.14050670008517],[-88.541230841816,13.980154730683479],[-88.50399797234971,13.845485948130857],[-88.06534257684014,13.964625962779778],[-87.85951534702161,13.893312486217098],[-87.7235029772294,13.785050360565506],[-87.79311113152657,13.384480495655055],[-87.90411210808952,13.149016831917137],[-88.48330156121682,13.163951320849492],[-88.84322791212972,13.259733588102478],[-89.2567427233293,13.458532823129303],[-89.81239356154767,13.520622056527998],[-90.09555457229098,13.735337632700734],[-90.0646779039966,13.881969509328925],[-89.72193396682073,14.134228013561696],[-89.53421932652051,14.244815578666305],[-89.58734269891656,14.36258616785949],[-89.35332597528281,14.424132798719086]]]},"properties":{"ISO_A2":"SV","NAME":"El Salvador"}},
40
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-92.22775000686983,14.538828640190928],[-92.20322953974733,14.830102850804069],[-92.08721594925207,15.064584662328441],[-92.2292486234063,15.251446641495875],[-91.74796017125595,16.066564846251765],[-90.46447262242266,16.069562079324655],[-90.43886695022204,16.410109768128095],[-90.60084672724093,16.47077789963879],[-90.71182186558772,16.687483018454728],[-91.08167009150065,16.918476670799407],[-91.45392127151516,17.252177232324172],[-91.00226925328421,17.25465770107418],[-91.00151994501596,17.81759491624571],[-90.06793351923098,17.819326076727478],[-89.14308041050333,17.808318996649405],[-89.15080603713095,17.015576687075836],[-89.22912167026928,15.886937567605171],[-88.93061275913527,15.887273464415076],[-88.60458614780585,15.70638011317736],[-88.51836402052686,15.855389105690975],[-88.22502275262202,15.727722479713904],[-88.68067969435563,15.346247056535304],[-89.15481096063357,15.06641917567481],[-89.22522009963127,14.874286200413621],[-89.14553504103719,14.678019110569153],[-89.35332597528281,14.424132798719086],[-89.58734269891656,14.36258616785949],[-89.53421932652051,14.244815578666305],[-89.72193396682073,14.134228013561696],[-90.0646779039966,13.881969509328925],[-90.09555457229098,13.735337632700734],[-90.60862403030085,13.909771429901951],[-91.23241024449605,13.927832342987957],[-91.68974667027913,14.126218166556455],[-92.22775000686983,14.538828640190928]]]},"properties":{"ISO_A2":"GT","NAME":"Guatemala"}},
41
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-89.14308041050333,17.808318996649405],[-89.15090938999553,17.95546763760042],[-89.02985734735182,18.001511338772488],[-88.84834387892661,17.883198147040233],[-88.49012285027935,18.486830552641607],[-88.3000310940937,18.4999822046599],[-88.29633622918482,18.35327281338327],[-88.10681291375438,18.348673610909287],[-88.1234785631685,18.07667470954101],[-88.2853549873228,17.644142971258034],[-88.19786678745265,17.489475409408456],[-88.30264075392444,17.131693630435663],[-88.23951799187991,17.036066392479555],[-88.35542822951057,16.530774237529627],[-88.55182451043585,16.265467434143147],[-88.73243364129594,16.233634751851355],[-88.93061275913527,15.887273464415076],[-89.22912167026928,15.886937567605171],[-89.15080603713095,17.015576687075836],[-89.14308041050333,17.808318996649405]]]},"properties":{"ISO_A2":"BZ","NAME":"Belize"}},
42
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-60.73357418480372,5.200277207861901],[-60.601179165271944,4.91809804933213],[-60.96689327660154,4.536467596856639],[-62.08542965355913,4.162123521334308],[-62.804533047116706,4.006965033377952],[-63.093197597899106,3.7705711938587854],[-63.88834286157416,4.020530096854571],[-64.62865943058755,4.14848094320925],[-64.81606401229402,4.056445217297423],[-64.3684944322141,3.797210394705246],[-64.40882788761792,3.126786200366624],[-64.2699991522658,2.497005520025567],[-63.42286739770512,2.4110676131241746],[-63.368788011311665,2.200899562993129],[-64.08308549666609,1.9163691267940803],[-64.19930579289051,1.49285492594602],[-64.61101192895987,1.3287305769870417],[-65.35471330428837,1.0952822941085003],[-65.54826738143757,0.7892544620760303],[-66.32576514348496,0.7244522159820121],[-66.87632585312258,1.253360500489336],[-67.18129431829307,2.250638129074062],[-67.44709204778631,2.6002808699608693],[-67.8099381171237,2.820655015469569],[-67.30317318385345,3.31845408773718],[-67.33756384954368,3.5423422306417223],[-67.62183590358129,3.8394817163199946],[-67.82301225449355,4.503937282728899],[-67.74469662135522,5.221128648291668],[-67.52153194850275,5.556870428891969],[-67.34143958196557,6.095468044454023],[-67.69508724635502,6.267318020040647],[-68.26505245631823,6.153268133972475],[-68.98531856960236,6.206804917826858],[-69.38947994655712,6.0998605411988365],[-70.09331295437242,6.96037649172311],[-70.67423356798152,7.087784735538719],[-71.96017574734864,6.991614895043539],[-72.19835242378188,7.340430813013683],[-72.44448727078807,7.423784898300482],[-72.47967892117885,7.632506008327354],[-72.36090064155597,8.002638454617895],[-72.43986223009796,8.405275376820029],[-72.6604947577681,8.625287787302682],[-72.7887298245004,9.085027167187334],[-73.30495154488005,9.151999823437606],[-73.02760413276957,9.736770331252444],[-72.9052860175347,10.450344346554772],[-72.61465776232521,10.821975409381778],[-72.22757544624294,11.10870209395324],[-71.97392167833829,11.60867157637712],[-71.3315836249503,11.776284084515808],[-71.36000566271082,11.539993597861212],[-71.94704993354651,11.423282375530022],[-71.62086829292019,10.969459947142795],[-71.63306393094109,10.446494452349029],[-72.07417395698451,9.865651353388373],[-71.69564409044654,9.072263088411248],[-71.26455929226773,9.137194525585983],[-71.03999935574339,9.859992784052409],[-71.35008378771079,10.211935126176215],[-71.40062333849224,10.968969021036015],[-70.15529883490652,11.37548167566004],[-70.29384334988103,11.846822414594214],[-69.94324459499683,12.162307033736099],[-69.58430009629747,11.459610907431212],[-68.88299923366445,11.443384507691563],[-68.23327145045873,10.885744126829946],[-68.19412655299763,10.554653225135922],[-67.29624854192633,10.54586823164631],[-66.227864142508,10.648626817258688],[-65.65523759628175,10.200798855017323],[-64.89045223657817,10.0772146671913],[-64.32947872583374,10.38959870039568],[-64.31800655786495,10.64141795495398],[-63.07932247582873,10.7017243514386],[-61.880946010980196,10.715625311725104],[-62.73011898461641,10.420268662960906],[-62.388511928950976,9.94820445397464],[-61.58876746280194,9.873066921422264],[-60.83059668643172,9.381339829948942],[-60.67125240745973,8.580174261911878],[-60.15009558779618,8.602756862823426],[-59.758284878159195,8.367034816924047],[-60.5505879380582,7.779602972846178],[-60.637972785063766,7.4149999048108555],[-60.2956680975624,7.043911444522919],[-60.54399919294099,6.856584377464883],[-61.15933631045648,6.696077378766319],[-61.13941504580795,6.234296779806144],[-61.410302903881956,5.959068101419618],[-60.73357418480372,5.200277207861901]]]},"properties":{"ISO_A2":"VE","NAME":"Venezuela"}},
43
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-56.539385748914555,1.8995226098669207],[-56.78270423036083,1.8637108422886541],[-57.335822923396904,1.9485377058957594],[-57.66097103537737,1.6825849471056387],[-58.11344987652502,1.5071951359070253],[-58.429477098205965,1.4639419620787208],[-58.540012986878295,1.2680882836925207],[-59.03086157900265,1.3176976586927225],[-59.64604366722126,1.786893825686789],[-59.71854570172675,2.2496304386443597],[-59.97452490908456,2.755232652188056],[-59.815413174057866,3.6064985213320853],[-59.53803992373123,3.9588025984819377],[-59.767405768458715,4.423502915866607],[-60.11100236676738,4.574966538914083],[-59.980958624904886,5.014061184098139],[-60.21368343773133,5.244486395687602],[-60.73357418480372,5.200277207861901],[-61.410302903881956,5.959068101419618],[-61.13941504580795,6.234296779806144],[-61.15933631045648,6.696077378766319],[-60.54399919294099,6.856584377464883],[-60.2956680975624,7.043911444522919],[-60.637972785063766,7.4149999048108555],[-60.5505879380582,7.779602972846178],[-59.758284878159195,8.367034816924047],[-59.10168412945866,7.999201971870492],[-58.48296220562806,7.347691351750697],[-58.45487606467742,6.832787380394464],[-58.078103196837375,6.809093736188643],[-57.542218593970645,6.321268215353356],[-57.14743648947689,5.973149929219161],[-57.307245856339506,5.073566595882227],[-57.91428890647214,4.812626451024414],[-57.8602095200787,4.57680105226045],[-58.04469438336068,4.0608635522583825],[-57.60156897645787,3.3346546492606848],[-57.28143347840971,3.3334919295341194],[-57.15009782573991,2.7689269067454063],[-56.539385748914555,1.8995226098669207]]]},"properties":{"ISO_A2":"GY","NAME":"Guyana"}},
44
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-54.524754197799716,2.3118488631237852],[-55.09758744975514,2.5237480737366127],[-55.569755011606,2.4215062524471307],[-55.973322109589375,2.510363877773017],[-56.0733418442903,2.2207949894254995],[-55.905600145070885,2.0219957543986595],[-55.995698004771754,1.8176671411166012],[-56.539385748914555,1.8995226098669207],[-57.15009782573991,2.7689269067454063],[-57.28143347840971,3.3334919295341194],[-57.60156897645787,3.3346546492606848],[-58.04469438336068,4.0608635522583825],[-57.8602095200787,4.57680105226045],[-57.91428890647214,4.812626451024414],[-57.307245856339506,5.073566595882227],[-57.14743648947689,5.973149929219161],[-55.9493184067898,5.772877915872002],[-55.841779751190415,5.95312531170606],[-55.033250291551774,6.025291449401664],[-53.9580446030709,5.756548163267765],[-54.47863298197923,4.896755682795586],[-54.399542202356514,4.212611395683467],[-54.00693050801901,3.6200377465925584],[-54.181726040246275,3.1897797713304215],[-54.2697051662232,2.7323916691150463],[-54.524754197799716,2.3118488631237852]]]},"properties":{"ISO_A2":"SR","NAME":"Suriname"}},
45
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-51.65779741067889,4.156232408053029],[-52.249337531123956,3.241094468596245],[-52.55642473001842,2.504705308437053],[-52.939657151894956,2.1248576928756364],[-53.41846513529531,2.0533891870159806],[-53.554839240113544,2.334896551925951],[-53.77852067728892,2.3767027856500818],[-54.08806250671725,2.105556545414629],[-54.524754197799716,2.3118488631237852],[-54.2697051662232,2.7323916691150463],[-54.181726040246275,3.1897797713304215],[-54.00693050801901,3.6200377465925584],[-54.399542202356514,4.212611395683467],[-54.47863298197923,4.896755682795586],[-53.9580446030709,5.756548163267765],[-53.618452928264844,5.6465290389183735],[-52.88214128275409,5.409850979021584],[-51.8233428615259,4.565768133966131],[-51.65779741067889,4.156232408053029]]],[[[6.186320428094177,49.463802802114515],[6.658229607783568,49.20195831969157],[8.099278598674744,49.01778351500333],[7.593676385131062,48.33301911070372],[7.466759067422231,47.62058197691181],[7.192202182655507,47.44976552997102],[6.736571079138059,47.541801255882845],[6.768713820023606,47.2877082383037],[6.037388950229001,46.725778713561866],[6.022609490593538,46.27298981382047],[6.5000997249704255,46.42967275652944],[6.843592970414505,45.99114655210061],[6.802355177445605,45.70857982032864],[7.096652459347837,45.33309886329589],[6.749955275101655,45.02851797136758],[7.007562290076635,44.25476675066136],[7.549596388386107,44.12790110938481],[7.435184767291872,43.69384491634922],[6.52924523278304,43.128892320318315],[4.556962517931424,43.399650987311595],[3.1004105973526634,43.075200507167054],[2.9859989762584576,42.47301504166986],[1.8267932470871528,42.34338471126569],[0.7015906103638941,42.795734361332606],[0.3380469091905809,42.57954600683955],[-1.502770961910528,43.03401439063043],[-1.901351284177764,43.42280202897834],[-1.384225226232985,44.022610378590116],[-1.1937975732374184,46.01491771095486],[-2.2257242496738456,47.06436269793822],[-2.9632761295596026,47.57032664650795],[-4.4915549381594815,47.954954332056374],[-4.592349819344776,48.68416046812699],[-3.295813971357802,48.90169240985963],[-1.6165107893849608,48.64442129169454],[-1.933494025063311,49.776341864615745],[-0.98946895995536,49.34737580016091],[1.3387610205226963,50.12717316344526],[1.6390010921384996,50.9466063502975],[2.5135730322461427,51.14850617126183],[2.658422071960274,50.796848049515745],[3.1232515804256877,50.78036326761455],[3.588184441755658,50.37899241800356],[4.2860229834250845,49.907496649772554],[4.799221632515724,49.98537303323637],[5.674051954784829,49.529483547557504],[5.897759230176348,49.44266714130711],[6.186320428094177,49.463802802114515]]],[[[8.746009148807559,42.62812185319392],[9.390000848028876,43.00998484961471],[9.560016310269134,42.15249197037952],[9.229752231491773,41.380006822264455],[8.775723097375362,41.58361196549443],[8.544212680707773,42.25651662858306],[8.746009148807559,42.62812185319392]]]]},"properties":{"ISO_A2":"-99","NAME":"France"}},
46
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-75.37322323271385,-0.1520317521204504],[-75.23372270374195,-0.9114169246495294],[-75.54499569365204,-1.5616097957458803],[-76.63539425322672,-2.6086776668438176],[-77.83790483265861,-3.003020521663103],[-78.45068396677564,-3.873096612161376],[-78.63989722361234,-4.547784112164074],[-79.20528906931773,-4.959128513207389],[-79.62497921417618,-4.454198093283495],[-80.02890804718561,-4.3460909969288934],[-80.44224199087216,-4.425724379090674],[-80.46929460317695,-4.0592867977089995],[-80.18401485870967,-3.8211617977080437],[-80.30256059438722,-3.4048564591647126],[-79.77029334178093,-2.65751189535964],[-79.98655921092242,-2.220794366061014],[-80.36878394236925,-2.6851587866357884],[-80.96776546906436,-2.246942640800704],[-80.76480628123804,-1.9650477026485331],[-80.93365902375172,-1.057454522306358],[-80.58337032746127,-0.9066626928786832],[-80.39932471385376,-0.28370330160014134],[-80.02089820018037,0.3603400740534682],[-80.09060970734211,0.7684288598623965],[-79.5427620103998,0.982937730305963],[-78.85525875518871,1.380923773601822],[-77.85506140817952,0.8099250349927729],[-77.66861284047044,0.8258930525709616],[-77.4249843004304,0.395686753741117],[-76.5763797675494,0.256935533037435],[-76.29231441924097,0.4160472680641192],[-75.8014658271166,0.08480133707320192],[-75.37322323271385,-0.1520317521204504]]]},"properties":{"ISO_A2":"EC","NAME":"Ecuador"}},
47
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-66.28243445500821,18.514761664295364],[-65.7713028632093,18.426679185453878],[-65.59100379094295,18.228034979723915],[-65.84716386581377,17.97590566657186],[-66.59993445500949,17.981822618069273],[-67.18416236028527,17.946553453030077],[-67.24242753769435,18.374460150622937],[-67.10067908391774,18.52060110114435],[-66.28243445500821,18.514761664295364]]]},"properties":{"ISO_A2":"PR","NAME":"Puerto Rico"}},
48
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-77.56960079619921,18.490525417550487],[-76.89661861846213,18.400866807524082],[-76.36535905628554,18.160700588447597],[-76.19965857614164,17.886867173732966],[-76.9025614081757,17.868237819891746],[-77.20634131540348,17.70111623785982],[-77.76602291534061,17.86159739834224],[-78.33771928578561,18.225967922432233],[-78.21772661000388,18.454532782459196],[-77.79736467152563,18.524218451404778],[-77.56960079619921,18.490525417550487]]]},"properties":{"ISO_A2":"JM","NAME":"Jamaica"}},
49
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-82.26815121125706,23.188610744717707],[-81.40445716014683,23.117271429938782],[-80.6187686835812,23.105980129483],[-79.67952368846025,22.76530324959883],[-79.28148596873208,22.399201565027056],[-78.34743445505649,22.512166246017088],[-77.99329586456028,22.277193508385935],[-77.14642249216105,21.657851467367834],[-76.52382483590856,21.206819566324373],[-76.19462012399319,21.220565497314013],[-75.59822241891267,21.016624457274133],[-75.67106035022806,20.735091254148003],[-74.9338960435845,20.693905137611385],[-74.17802486845126,20.28462779385974],[-74.29664811877726,20.05037852628068],[-74.96159461129294,19.92343537035569],[-75.63468014189459,19.873774318923196],[-76.323656175426,19.95289093676206],[-77.75548092315307,19.855480861891877],[-77.08510840524674,20.413353786698792],[-77.49265458851661,20.673105373613893],[-78.13729224314159,20.739948838783434],[-78.48282670766119,21.02861338956585],[-78.71986650258401,21.598113511638434],[-79.28499996612794,21.5591753199065],[-80.21747534861865,21.827324327069036],[-80.51753455272141,22.03707896574176],[-81.82094336620318,22.19205658618507],[-82.16999182811864,22.387109279870753],[-81.79500179719267,22.636964830001958],[-82.77589799674085,22.688150336187064],[-83.49445878775936,22.16851797127613],[-83.90880042187563,22.154565334557333],[-84.05215084505326,21.910575059491254],[-84.54703019889638,21.801227728761646],[-84.97491105827311,21.89602814380109],[-84.44706214062776,22.204949856041907],[-84.23035702181178,22.565754706303764],[-83.7782399156902,22.788118394455694],[-83.26754757356575,22.983041897060644],[-82.51043616405751,23.078746649665188],[-82.26815121125706,23.188610744717707]]]},"properties":{"ISO_A2":"CU","NAME":"Cuba"}},
50
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[31.19140913262129,-22.2515096981724],[30.65986535006709,-22.151567478119915],[30.322883335091774,-22.271611830333935],[29.839036899542972,-22.102216485281176],[29.43218834810904,-22.091312758067588],[28.794656202924216,-21.63945403410745],[28.021370070108617,-21.485975030200585],[27.72722781750326,-20.851801853114715],[27.724747348753255,-20.49905852629039],[27.296504754350508,-20.391519870691],[26.164790887158485,-19.29308562589494],[25.85039147309473,-18.714412937090536],[25.649163445750162,-18.53602589281899],[25.264225701608012,-17.736539808831417],[26.381935255648926,-17.8460421688579],[26.70677330903564,-17.961228936436484],[27.044427117630732,-17.938026218337434],[27.59824344250276,-17.290830580314008],[28.467906121542683,-16.468400160388846],[28.8258687680285,-16.389748630440614],[28.947463413211267,-16.04305144619444],[29.516834344203147,-15.644677829656388],[30.27425581230511,-15.507786960515213],[30.338954705534544,-15.880839125230246],[31.17306399915768,-15.860943698797874],[31.636498243951195,-16.071990248277885],[31.8520406430406,-16.319417006091378],[32.32823896661023,-16.392074069893752],[32.847638787575846,-16.713398125884616],[32.84986087416439,-17.97905730557718],[32.65488569512715,-18.672089939043495],[32.61199425632489,-19.419382826416275],[32.772707960752626,-19.715592136313298],[32.65974327976258,-20.304290052982317],[32.50869306817344,-20.395292250248307],[32.244988234188014,-21.116488539313693],[31.19140913262129,-22.2515096981724]]]},"properties":{"ISO_A2":"ZW","NAME":"Zimbabwe"}},
51
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[29.43218834810904,-22.091312758067588],[28.01723595552525,-22.82775359465908],[27.119409620886245,-23.574323011979775],[26.786406691197413,-24.240690606383485],[26.4857532081233,-24.616326592713104],[25.94165205252216,-24.69637338633322],[25.76584882986521,-25.17484547292368],[25.66466637543772,-25.486816094669713],[25.025170525825786,-25.7196700985769],[24.211266717228796,-25.670215752873574],[23.73356977712271,-25.390129489851617],[23.312096795350186,-25.26868987396572],[22.8242712745149,-25.50045867279477],[22.57953169118059,-25.979447523708146],[22.105968865657868,-26.280256036079138],[21.605896030369394,-26.726533705351756],[20.88960900237174,-26.828542982695915],[20.66647016773544,-26.477453301704923],[20.75860924651184,-25.86813648855145],[20.16572553882719,-24.91796192800077],[19.895767856534434,-24.76779021576059],[19.89545779794068,-21.84915699634787],[20.88113406747587,-21.814327080983148],[20.910641310314535,-18.252218926672022],[21.655040317478978,-18.219146010005225],[23.1968583513393,-17.869038181227786],[23.579005568137717,-18.28126108162006],[24.217364536239213,-17.88934701911849],[24.520705193792537,-17.887124932529936],[25.08444339366457,-17.661815687737374],[25.264225701608012,-17.736539808831417],[25.649163445750162,-18.53602589281899],[25.85039147309473,-18.714412937090536],[26.164790887158485,-19.29308562589494],[27.296504754350508,-20.391519870691],[27.724747348753255,-20.49905852629039],[27.72722781750326,-20.851801853114715],[28.021370070108617,-21.485975030200585],[28.794656202924216,-21.63945403410745],[29.43218834810904,-22.091312758067588]]]},"properties":{"ISO_A2":"BW","NAME":"Botswana"}},
52
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[19.895767856534434,-24.76779021576059],[19.894734327888614,-28.461104831660776],[19.002127312911085,-28.972443129188868],[18.464899122804752,-29.04546192801728],[17.83615197110953,-28.85637786226132],[17.387497185951503,-28.78351409272978],[17.218928663815404,-28.35594329194681],[16.824017368240902,-28.08216155366447],[16.344976840895242,-28.5767050106977],[15.601818068105816,-27.821247247022804],[15.21047244635946,-27.090955905874047],[14.989710727608553,-26.117371921495156],[14.743214145576331,-25.39292001719538],[14.408144158595833,-23.853014011329847],[14.385716586981149,-22.65665292734069],[14.257714064194175,-22.111208184499958],[13.86864220546866,-21.699036960539978],[13.35249799973744,-20.872834161057504],[12.826845330464494,-19.673165785401665],[12.608564080463621,-19.0453488094877],[11.794918654028066,-18.069129327061916],[11.734198846085121,-17.301889336824473],[12.215461460019355,-17.111668389558083],[12.814081251688407,-16.94134286872407],[13.462362094789967,-16.971211846588773],[14.05850141770901,-17.423380629142663],[14.209706658595024,-17.35310068122572],[18.263309360434164,-17.309950860262006],[18.956186964603603,-17.789094740472258],[21.377176141045567,-17.930636488519696],[23.215048455506064,-17.523116143465984],[24.033861525170778,-17.295843194246324],[24.682349074001507,-17.353410739819473],[25.07695031098226,-17.57882333747662],[25.08444339366457,-17.661815687737374],[24.520705193792537,-17.887124932529936],[24.217364536239213,-17.88934701911849],[23.579005568137717,-18.28126108162006],[23.1968583513393,-17.869038181227786],[21.655040317478978,-18.219146010005225],[20.910641310314535,-18.252218926672022],[20.88113406747587,-21.814327080983148],[19.89545779794068,-21.84915699634787],[19.895767856534434,-24.76779021576059]]]},"properties":{"ISO_A2":"NA","NAME":"Namibia"}},
53
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-16.71372880702347,13.594958604379855],[-17.126106736712615,14.373515733289224],[-17.62504269049066,14.729540513564073],[-17.18517289882223,14.919477240452862],[-16.700706346085923,15.621527411354108],[-16.463098110407884,16.13503611903846],[-16.12069007004193,16.455662543193384],[-15.623666144258692,16.369337063049812],[-15.135737270558819,16.587282416240782],[-14.577347581428981,16.59826365810281],[-14.099521450242179,16.304302273010492],[-13.435737677453062,16.03938304286619],[-12.830658331747516,15.303691514542948],[-12.170750291380301,14.616834214735505],[-12.12488745772126,13.994727484589788],[-11.927716030311615,13.422075100147396],[-11.55339779300543,13.141213690641067],[-11.467899135778524,12.754518947800975],[-11.51394283695059,12.442987575729418],[-11.658300950557932,12.386582749882836],[-12.203564825885634,12.465647691289405],[-12.27859900557344,12.354440008997287],[-12.499050665730564,12.332089952031057],[-13.217818162478238,12.575873521367967],[-13.700476040084325,12.586182969610194],[-15.54847693527401,12.628170070847347],[-15.816574266004254,12.515567124883347],[-16.147716844130585,12.547761542201187],[-16.677451951554573,12.384851589401052],[-16.841524624081273,13.15139394780256],[-15.931295945692211,13.130284125211332],[-15.691000535534995,13.270353094938457],[-15.511812506562933,13.278569647672867],[-15.141163295949468,13.509511623585238],[-14.712197231494628,13.298206691943777],[-14.277701788784555,13.280585028532244],[-13.844963344772408,13.505041612192002],[-14.046992356817482,13.79406789800045],[-14.376713833055788,13.625680243377374],[-14.687030808968487,13.630356960499784],[-15.08173539881382,13.876491807505985],[-15.39877031092446,13.86036876063092],[-15.624596320039942,13.62358734786956],[-16.71372880702347,13.594958604379855]]]},"properties":{"ISO_A2":"SN","NAME":"Senegal"}},
54
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-11.51394283695059,12.442987575729418],[-11.467899135778524,12.754518947800975],[-11.55339779300543,13.141213690641067],[-11.927716030311615,13.422075100147396],[-12.12488745772126,13.994727484589788],[-12.170750291380301,14.616834214735505],[-11.834207526079467,14.79909699142894],[-11.666078253617854,15.388208319556298],[-11.349095017939504,15.411256008358478],[-10.650791388379417,15.132745876521426],[-10.086846482778213,15.330485744686271],[-9.700255092802706,15.264107367407362],[-9.55023840985939,15.486496893775438],[-5.537744309908447,15.501689764869257],[-5.315277268891933,16.20185374599184],[-5.488522508150439,16.325102037007966],[-5.9711287093242476,20.64083344164763],[-6.453786586930335,24.956590684503425],[-4.923337368174231,24.974574082941],[-1.5500548974576134,22.792665920497384],[1.8232275732590324,20.610809434486043],[2.06099083823392,20.142233384679486],[2.683588494486429,19.856230170160117],[3.1466610042539003,19.693578599521445],[3.158133172222705,19.057364203360038],[4.267419467800039,19.155265204337],[4.2702099951438015,16.852227484601215],[3.7234216650634835,16.184283759012615],[3.6382589046464773,15.568119818580456],[2.749992709981484,15.409524847876696],[1.3855281917468576,15.323561102759172],[1.0157833186984817,14.96818227788799],[0.3748922054146817,14.92890818934613],[-0.2662572900305804,14.924308986872148],[-0.5158544580003479,15.116157741755728],[-1.0663634912056636,14.973815009007765],[-2.001035122068771,14.559008287000893],[-2.1918245100903846,14.246417548067356],[-2.9676944645205765,13.79815033615151],[-3.1037068343127596,13.541266791228594],[-3.522802700199861,13.337661647998615],[-4.006390753587226,13.472485459848116],[-4.28040503581488,13.228443508349741],[-4.427166103523803,12.542645575404295],[-5.220941941743121,11.713858954307227],[-5.1978425765086484,11.37514577885014],[-5.470564947929006,10.951269842976048],[-5.404341599946974,10.370736802609146],[-5.816926235365287,10.222554633012194],[-6.050452032892267,10.096360785355444],[-6.205222947606431,10.524060777219134],[-6.493965013037268,10.411302801958271],[-6.666460944027548,10.430810655148449],[-6.8505065576350574,10.138993841996239],[-7.622759161804809,10.147236232946796],[-7.899589809592372,10.297382106970828],[-8.029943610048619,10.206534939001713],[-8.33537716310974,10.494811916541934],[-8.282357143578281,10.792597357623846],[-8.407310756860028,10.909256903522762],[-8.620321010767128,10.810890814655183],[-8.581305304386774,11.136245632364805],[-8.376304897484914,11.393645941610629],[-8.786099005559464,11.812560939984706],[-8.90526485842453,12.088358059126437],[-9.127473517279583,12.308060411015333],[-9.327616339546012,12.334286200403454],[-9.567911749703214,12.194243068892476],[-9.890992804392013,12.060478623904972],[-10.165213792348837,11.844083563682744],[-10.593223842806282,11.92397532800598],[-10.870829637078215,12.17788747807211],[-11.03655595543826,12.211244615116515],[-11.297573614944511,12.077971096235771],[-11.456168585648271,12.076834214725338],[-11.51394283695059,12.442987575729418]]]},"properties":{"ISO_A2":"ML","NAME":"Mali"}},
55
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-17.06342322434257,20.999752102130827],[-16.845193650773993,21.33332347257488],[-12.929101935263532,21.327070624267563],[-13.118754441774712,22.771220201096256],[-12.874221564169575,23.284832261645178],[-11.937224493853321,23.374594224536168],[-11.96941891117116,25.933352769468268],[-8.6872936670174,25.881056219988906],[-8.684399786809053,27.395744126896005],[-4.923337368174231,24.974574082941],[-6.453786586930335,24.956590684503425],[-5.9711287093242476,20.64083344164763],[-5.488522508150439,16.325102037007966],[-5.315277268891933,16.20185374599184],[-5.537744309908447,15.501689764869257],[-9.55023840985939,15.486496893775438],[-9.700255092802706,15.264107367407362],[-10.086846482778213,15.330485744686271],[-10.650791388379417,15.132745876521426],[-11.349095017939504,15.411256008358478],[-11.666078253617854,15.388208319556298],[-11.834207526079467,14.79909699142894],[-12.170750291380301,14.616834214735505],[-12.830658331747516,15.303691514542948],[-13.435737677453062,16.03938304286619],[-14.099521450242179,16.304302273010492],[-14.577347581428981,16.59826365810281],[-15.135737270558819,16.587282416240782],[-15.623666144258692,16.369337063049812],[-16.12069007004193,16.455662543193384],[-16.463098110407884,16.13503611903846],[-16.549707810929064,16.673892116761962],[-16.270551723688357,17.166962795474873],[-16.14634741867485,18.108481553616656],[-16.256883307347167,19.096715806550307],[-16.37765112961327,19.593817246981985],[-16.277838100641517,20.0925206568147],[-16.536323614965468,20.567866319251493],[-17.06342322434257,20.999752102130827]]]},"properties":{"ISO_A2":"MR","NAME":"Mauritania"}},
56
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.6917016943562544,6.258817246928629],[1.8652405127123188,6.142157701029731],[1.618950636409238,6.832038072126238],[1.664477573258381,9.12859039960938],[1.46304284018467,9.334624335157088],[1.425060662450136,9.825395412633],[1.0777950374487375,10.175606594275024],[0.7723356461714843,10.470808213742359],[0.8995630224740694,10.99733938236426],[1.2434696793764886,11.110510769083461],[1.4471781754710662,11.547719224488858],[1.9359855485198807,11.641150214072553],[2.1544735042499212,11.940150051313339],[2.49016360841793,12.233052069543675],[2.8486430192265857,12.23563589115821],[3.611180454125559,11.660167141155968],[3.572216424177469,11.32793935795152],[3.7971122575117136,10.734745591673105],[3.600070021182802,10.332186184119408],[3.7054382666259187,10.063210354040208],[3.2203515967021015,9.444152533399702],[2.912308383810256,9.137607937044322],[2.723792758809509,8.50684540448971],[2.7490625342002204,7.870734361192888],[2.6917016943562544,6.258817246928629]]]},"properties":{"ISO_A2":"BJ","NAME":"Benin"}},
57
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.851300000000037,22.862950000000126],[15.096887648181848,21.30851878507491],[15.47106000000008,21.04845000000006],[15.487148064850146,20.730414537025638],[15.903246697664315,20.387618923417506],[15.685740594147774,19.957180080642388],[15.30044111497972,17.927949937405003],[15.247731154041844,16.627305813050782],[13.972170000000006,15.684370000000058],[13.540393507550789,14.367133693901224],[13.956698846094127,13.996691189016929],[13.95447675950561,13.353448798063766],[14.595781284247607,13.33042694747786],[14.495787387762846,12.85939626713733],[14.213530714584635,12.802035427293347],[14.181336297266794,12.483656927943116],[13.995352817448293,12.461565253138303],[13.318701613018561,13.556356309457826],[13.083987257548813,13.596147162322495],[12.302071160540523,13.037189032437524],[11.527803175511394,13.328980007373588],[10.989593133191534,13.387322699431195],[10.701031935273706,13.246917832894084],[10.114814487354693,13.27725189864941],[9.524928012742947,12.851102199754479],[9.014933302454438,12.826659247280418],[7.804671258178786,13.343526923063747],[7.330746697630019,13.0980380314612],[6.820441928747754,13.115091254117518],[6.445426059605637,13.492768459522678],[5.443058302440136,13.865923977102227],[4.368343540066007,13.747481594289411],[4.107945997747322,13.531215725147831],[3.9672827490488487,12.956108710171575],[3.6806335791258107,12.552903347214226],[3.611180454125559,11.660167141155968],[2.8486430192265857,12.23563589115821],[2.49016360841793,12.233052069543675],[2.1544735042499212,11.940150051313339],[2.177107781593776,12.625017808477535],[1.0241032242974768,12.851825669806574],[0.9930456884900708,13.335749620003824],[0.429927605805517,13.988733018443924],[0.29564639649510127,14.444234930880654],[0.3748922054146817,14.92890818934613],[1.0157833186984817,14.96818227788799],[1.3855281917468576,15.323561102759172],[2.749992709981484,15.409524847876696],[3.6382589046464773,15.568119818580456],[3.7234216650634835,16.184283759012615],[4.2702099951438015,16.852227484601215],[4.267419467800039,19.155265204337],[5.677565952180686,19.601206976799716],[8.572893100629784,21.565660712159143],[11.999505649471613,23.47166840259645],[13.581424594790462,23.04050608976928],[14.143870883855243,22.491288967371133],[14.851300000000037,22.862950000000126]]]},"properties":{"ISO_A2":"NE","NAME":"Niger"}},
58
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.6917016943562544,6.258817246928629],[2.7490625342002204,7.870734361192888],[2.723792758809509,8.50684540448971],[2.912308383810256,9.137607937044322],[3.2203515967021015,9.444152533399702],[3.7054382666259187,10.063210354040208],[3.600070021182802,10.332186184119408],[3.7971122575117136,10.734745591673105],[3.572216424177469,11.32793935795152],[3.611180454125559,11.660167141155968],[3.6806335791258107,12.552903347214226],[3.9672827490488487,12.956108710171575],[4.107945997747322,13.531215725147831],[4.368343540066007,13.747481594289411],[5.443058302440136,13.865923977102227],[6.445426059605637,13.492768459522678],[6.820441928747754,13.115091254117518],[7.330746697630019,13.0980380314612],[7.804671258178786,13.343526923063747],[9.014933302454438,12.826659247280418],[9.524928012742947,12.851102199754479],[10.114814487354693,13.27725189864941],[10.701031935273706,13.246917832894084],[10.989593133191534,13.387322699431195],[11.527803175511394,13.328980007373588],[12.302071160540523,13.037189032437524],[13.083987257548813,13.596147162322495],[13.318701613018561,13.556356309457826],[13.995352817448293,12.461565253138303],[14.181336297266794,12.483656927943116],[14.577177768622533,12.085360826053503],[14.468192172918975,11.904751695193411],[14.415378859116684,11.572368882692075],[13.572949659894562,10.798565985553566],[13.308676385153918,10.160362046748928],[13.167599724997103,9.640626328973411],[12.955467970438974,9.417771714714704],[12.753671502339216,8.717762762888995],[12.218872104550599,8.305824082874324],[12.063946160539558,7.799808457872302],[11.839308709366803,7.397042344589437],[11.74577436691851,6.981382961449754],[11.058787876030351,6.6444267846905944],[10.497375115611419,7.0553577742755635],[10.118276808318257,7.03876963950988],[9.522705926154401,6.453482367372117],[9.233162876023044,6.444490668153335],[8.757532993208628,5.479665839047911],[8.500287713259695,4.7719829370268485],[7.462108188515941,4.412108262546241],[7.0825964697644395,4.4646890324032285],[6.6980721370806,4.240594183769517],[5.898172641634687,4.262453314628985],[5.3628048030908815,4.887970689305959],[5.033574252959369,5.611802476418234],[4.325607130560684,6.2706511499234665],[3.574180128604553,6.258300482605719],[2.6917016943562544,6.258817246928629]]]},"properties":{"ISO_A2":"NG","NAME":"Nigeria"}},
59
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.495787387762846,12.85939626713733],[14.89336000000003,12.219049999999982],[14.9601518083376,11.555574042197224],[14.92356489427496,10.891325181517473],[15.467872755605242,9.982336737503545],[14.909353875394716,9.992129421422732],[14.62720055508106,9.920919297724538],[14.171466098699028,10.021378282099931],[13.954218377344006,9.549494940626687],[14.54446658698177,8.965861314322268],[14.97999555833769,8.796104234243472],[15.120865512765306,8.382150173369439],[15.436091749745742,7.692812404811889],[15.279460483469109,7.421924546737969],[14.776545444404576,6.408498033062045],[14.536560092841114,6.2269587264206905],[14.459407179429348,5.4517605656103],[14.558935988023507,5.03059764243153],[14.47837243008047,4.732605495620447],[14.950953403389661,4.210389309094921],[15.036219516671252,3.8513672957471243],[15.405395948964383,3.33530060466434],[15.862732374747482,3.0135372989989833],[15.907380812247652,2.557389431158612],[16.012852410555354,2.267639675298085],[15.940918816805066,1.7276726342802957],[15.146341993885244,1.9640147973671844],[14.33781253424658,2.2278746606494906],[13.075822381246752,2.2670970727590145],[12.951333855855609,2.32161570882694],[12.359380323952221,2.19281220133945],[11.75166548019979,2.3267575138399934],[11.276449008843713,2.261050930180872],[9.649158155972628,2.2838660750377358],[9.795195753629457,3.073404445809117],[9.404366896206,3.734526882335203],[8.948115675501072,3.9041289331171356],[8.744923943729418,4.35221527751996],[8.48881554529089,4.495617377129918],[8.500287713259695,4.7719829370268485],[8.757532993208628,5.479665839047911],[9.233162876023044,6.444490668153335],[9.522705926154401,6.453482367372117],[10.118276808318257,7.03876963950988],[10.497375115611419,7.0553577742755635],[11.058787876030351,6.6444267846905944],[11.74577436691851,6.981382961449754],[11.839308709366803,7.397042344589437],[12.063946160539558,7.799808457872302],[12.218872104550599,8.305824082874324],[12.753671502339216,8.717762762888995],[12.955467970438974,9.417771714714704],[13.167599724997103,9.640626328973411],[13.308676385153918,10.160362046748928],[13.572949659894562,10.798565985553566],[14.415378859116684,11.572368882692075],[14.468192172918975,11.904751695193411],[14.577177768622533,12.085360826053503],[14.181336297266794,12.483656927943116],[14.213530714584635,12.802035427293347],[14.495787387762846,12.85939626713733]]]},"properties":{"ISO_A2":"CM","NAME":"Cameroon"}},
60
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.8995630224740694,10.99733938236426],[0.7723356461714843,10.470808213742359],[1.0777950374487375,10.175606594275024],[1.425060662450136,9.825395412633],[1.46304284018467,9.334624335157088],[1.664477573258381,9.12859039960938],[1.618950636409238,6.832038072126238],[1.8652405127123188,6.142157701029731],[1.0601216976049272,5.928837388528876],[0.8369311865363329,6.279978745952149],[0.5703841487748491,6.914358628767189],[0.4909574723422451,7.411744289576475],[0.7120292496868785,8.31246450442383],[0.46119184734212126,8.677222601756014],[0.3659005061958851,9.465003973829482],[0.3675799902453889,10.19121287682718],[-0.04978471515994442,10.706917832883931],[0.023802524423700785,11.018681748900804],[0.8995630224740694,10.99733938236426]]]},"properties":{"ISO_A2":"TG","NAME":"Togo"}},
61
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[0.023802524423700785,11.018681748900804],[-0.04978471515994442,10.706917832883931],[0.3675799902453889,10.19121287682718],[0.3659005061958851,9.465003973829482],[0.46119184734212126,8.677222601756014],[0.7120292496868785,8.31246450442383],[0.4909574723422451,7.411744289576475],[0.5703841487748491,6.914358628767189],[0.8369311865363329,6.279978745952149],[1.0601216976049272,5.928837388528876],[-0.5076379052659377,5.3434726017426755],[-1.0636246402941936,5.000547797053812],[-1.9647065901675944,4.710462144383371],[-2.856125047202397,4.994475816259509],[-2.8107014632178395,5.38905121502411],[-3.244370083011262,6.250471503113502],[-2.9835849674503265,7.379704901555513],[-2.562189500326241,8.219627793811483],[-2.8274963037127065,9.642460842319778],[-2.9638962467471117,10.395334784380083],[-2.9404093082704605,10.962690334512558],[-1.2033577132114317,11.009819240762738],[-0.7615758935481834,10.936929633015055],[-0.43870154458858224,11.098340969278722],[0.023802524423700785,11.018681748900804]]]},"properties":{"ISO_A2":"GH","NAME":"Ghana"}},
62
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.029943610048619,10.206534939001713],[-7.899589809592372,10.297382106970828],[-7.622759161804809,10.147236232946796],[-6.8505065576350574,10.138993841996239],[-6.666460944027548,10.430810655148449],[-6.493965013037268,10.411302801958271],[-6.205222947606431,10.524060777219134],[-6.050452032892267,10.096360785355444],[-5.816926235365287,10.222554633012194],[-5.404341599946974,10.370736802609146],[-4.954653286143099,10.152713934769736],[-4.7798835921319665,9.821984768101743],[-4.3302469547603835,9.610834865757141],[-3.9804491845766847,9.8623440617217],[-3.511898972986273,9.90032623945622],[-2.8274963037127065,9.642460842319778],[-2.562189500326241,8.219627793811483],[-2.9835849674503265,7.379704901555513],[-3.244370083011262,6.250471503113502],[-2.8107014632178395,5.38905121502411],[-2.856125047202397,4.994475816259509],[-3.3110843571000714,4.984295559098015],[-4.008819545904942,5.179813340674315],[-4.649917364917911,5.168263658057086],[-5.8344962223445265,4.993700669775137],[-6.528769090185847,4.705087795425015],[-7.5189412093304355,4.338288479017308],[-7.7121593896697505,4.364565944837722],[-7.635368211284031,5.188159084489456],[-7.539715135111763,5.313345241716519],[-7.570152553731688,5.707352199725904],[-7.993692592795881,6.126189683451543],[-8.311347622094019,6.193033148621083],[-8.60288021486862,6.4675641951716605],[-8.385451626000574,6.911800645368743],[-8.48544552248535,7.39520783124307],[-8.439298468448698,7.686042792181738],[-8.280703497744938,7.687179673692157],[-8.221792364932199,8.123328762235573],[-8.299048631208564,8.316443589710303],[-8.20349890790088,8.455453192575447],[-7.832100389019188,8.575704250518626],[-8.07911373537435,9.376223863152035],[-8.30961646161225,9.789531968622441],[-8.229337124046822,10.1290202905639],[-8.029943610048619,10.206534939001713]]]},"properties":{"ISO_A2":"CI","NAME":"Côte d'Ivoire"}},
63
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-13.700476040084325,12.586182969610194],[-13.217818162478238,12.575873521367967],[-12.499050665730564,12.332089952031057],[-12.27859900557344,12.354440008997287],[-12.203564825885634,12.465647691289405],[-11.658300950557932,12.386582749882836],[-11.51394283695059,12.442987575729418],[-11.456168585648271,12.076834214725338],[-11.297573614944511,12.077971096235771],[-11.03655595543826,12.211244615116515],[-10.870829637078215,12.17788747807211],[-10.593223842806282,11.92397532800598],[-10.165213792348837,11.844083563682744],[-9.890992804392013,12.060478623904972],[-9.567911749703214,12.194243068892476],[-9.327616339546012,12.334286200403454],[-9.127473517279583,12.308060411015333],[-8.90526485842453,12.088358059126437],[-8.786099005559464,11.812560939984706],[-8.376304897484914,11.393645941610629],[-8.581305304386774,11.136245632364805],[-8.620321010767128,10.810890814655183],[-8.407310756860028,10.909256903522762],[-8.282357143578281,10.792597357623846],[-8.33537716310974,10.494811916541934],[-8.029943610048619,10.206534939001713],[-8.229337124046822,10.1290202905639],[-8.30961646161225,9.789531968622441],[-8.07911373537435,9.376223863152035],[-7.832100389019188,8.575704250518626],[-8.20349890790088,8.455453192575447],[-8.299048631208564,8.316443589710303],[-8.221792364932199,8.123328762235573],[-8.280703497744938,7.687179673692157],[-8.439298468448698,7.686042792181738],[-8.722123582382125,7.71167430259851],[-8.926064622422004,7.309037380396376],[-9.208786383490846,7.313920803247953],[-9.40334815106975,7.526905218938907],[-9.337279832384581,7.9285344507113535],[-9.755342169625834,8.541055202666925],[-10.016566534861255,8.428503933135232],[-10.23009355309128,8.406205552601293],[-10.505477260774668,8.348896389189605],[-10.494315151399633,8.715540676300435],[-10.654770473665891,8.977178452994195],[-10.622395188835041,9.267910061068278],[-10.839151984083301,9.688246161330369],[-11.11748124840733,10.045872911006285],[-11.917277390988659,10.046983954300558],[-12.150338100625005,9.858571682164381],[-12.425928514037565,9.835834051955956],[-12.59671912276221,9.62018830000197],[-12.71195756677308,9.342711696810767],[-13.246550258832515,8.903048610871508],[-13.685153977909792,9.49474376061346],[-14.074044969122282,9.886166897008252],[-14.33007585291237,10.015719712763968],[-14.579698859098258,10.214467271358515],[-14.693231980843505,10.656300767454042],[-14.839553798877944,10.87657156009814],[-15.130311245168173,11.040411688679526],[-14.685687221728898,11.527823798056488],[-14.382191534878729,11.509271958863692],[-14.121406419317779,11.677117010947697],[-13.900799729863776,11.678718980348748],[-13.743160773157413,11.811269029177412],[-13.828271857142125,12.142644151249044],[-13.718743658899513,12.24718557377551],[-13.700476040084325,12.586182969610194]]]},"properties":{"ISO_A2":"GN","NAME":"Guinea"}},
64
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-16.677451951554573,12.384851589401052],[-16.147716844130585,12.547761542201187],[-15.816574266004254,12.515567124883347],[-15.54847693527401,12.628170070847347],[-13.700476040084325,12.586182969610194],[-13.718743658899513,12.24718557377551],[-13.828271857142125,12.142644151249044],[-13.743160773157413,11.811269029177412],[-13.900799729863776,11.678718980348748],[-14.121406419317779,11.677117010947697],[-14.382191534878729,11.509271958863692],[-14.685687221728898,11.527823798056488],[-15.130311245168173,11.040411688679526],[-15.664180467175527,11.458474025920795],[-16.085214199273565,11.52459402103824],[-16.314786749730203,11.80651479740655],[-16.30894731288123,11.95870189050612],[-16.61383826340328,12.170911159712702],[-16.677451951554573,12.384851589401052]]]},"properties":{"ISO_A2":"GW","NAME":"Guinea-Bissau"}},
65
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.439298468448698,7.686042792181738],[-8.48544552248535,7.39520783124307],[-8.385451626000574,6.911800645368743],[-8.60288021486862,6.4675641951716605],[-8.311347622094019,6.193033148621083],[-7.993692592795881,6.126189683451543],[-7.570152553731688,5.707352199725904],[-7.539715135111763,5.313345241716519],[-7.635368211284031,5.188159084489456],[-7.7121593896697505,4.364565944837722],[-7.974107224957251,4.355755113131963],[-9.004793667018674,4.8324185245922],[-9.913420376006684,5.593560695819207],[-10.765383876986645,6.140710760925558],[-11.438779466182055,6.7859168563057475],[-11.19980180504828,7.1058456486247366],[-11.146704270868383,7.396706447779536],[-10.69559485517648,7.939464016141088],[-10.23009355309128,8.406205552601293],[-10.016566534861255,8.428503933135232],[-9.755342169625834,8.541055202666925],[-9.337279832384581,7.9285344507113535],[-9.40334815106975,7.526905218938907],[-9.208786383490846,7.313920803247953],[-8.926064622422004,7.309037380396376],[-8.722123582382125,7.71167430259851],[-8.439298468448698,7.686042792181738]]]},"properties":{"ISO_A2":"LR","NAME":"Liberia"}},
66
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-13.246550258832515,8.903048610871508],[-12.71195756677308,9.342711696810767],[-12.59671912276221,9.62018830000197],[-12.425928514037565,9.835834051955956],[-12.150338100625005,9.858571682164381],[-11.917277390988659,10.046983954300558],[-11.11748124840733,10.045872911006285],[-10.839151984083301,9.688246161330369],[-10.622395188835041,9.267910061068278],[-10.654770473665891,8.977178452994195],[-10.494315151399633,8.715540676300435],[-10.505477260774668,8.348896389189605],[-10.23009355309128,8.406205552601293],[-10.69559485517648,7.939464016141088],[-11.146704270868383,7.396706447779536],[-11.19980180504828,7.1058456486247366],[-11.438779466182055,6.7859168563057475],[-11.70819454593574,6.860098374860726],[-12.428098924193819,7.26294200279203],[-12.949049038128194,7.798645738145738],[-13.124025437868482,8.163946438016978],[-13.246550258832515,8.903048610871508]]]},"properties":{"ISO_A2":"SL","NAME":"Sierra Leone"}},
67
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-5.404341599946974,10.370736802609146],[-5.470564947929006,10.951269842976048],[-5.1978425765086484,11.37514577885014],[-5.220941941743121,11.713858954307227],[-4.427166103523803,12.542645575404295],[-4.28040503581488,13.228443508349741],[-4.006390753587226,13.472485459848116],[-3.522802700199861,13.337661647998615],[-3.1037068343127596,13.541266791228594],[-2.9676944645205765,13.79815033615151],[-2.1918245100903846,14.246417548067356],[-2.001035122068771,14.559008287000893],[-1.0663634912056636,14.973815009007765],[-0.5158544580003479,15.116157741755728],[-0.2662572900305804,14.924308986872148],[0.3748922054146817,14.92890818934613],[0.29564639649510127,14.444234930880654],[0.429927605805517,13.988733018443924],[0.9930456884900708,13.335749620003824],[1.0241032242974768,12.851825669806574],[2.177107781593776,12.625017808477535],[2.1544735042499212,11.940150051313339],[1.9359855485198807,11.641150214072553],[1.4471781754710662,11.547719224488858],[1.2434696793764886,11.110510769083461],[0.8995630224740694,10.99733938236426],[0.023802524423700785,11.018681748900804],[-0.43870154458858224,11.098340969278722],[-0.7615758935481834,10.936929633015055],[-1.2033577132114317,11.009819240762738],[-2.9404093082704605,10.962690334512558],[-2.9638962467471117,10.395334784380083],[-2.8274963037127065,9.642460842319778],[-3.511898972986273,9.90032623945622],[-3.9804491845766847,9.8623440617217],[-4.3302469547603835,9.610834865757141],[-4.7798835921319665,9.821984768101743],[-4.954653286143099,10.152713934769736],[-5.404341599946974,10.370736802609146]]]},"properties":{"ISO_A2":"BF","NAME":"Burkina Faso"}},
68
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.37422610851749,5.233944403500061],[27.04406538260471,5.127852688004836],[26.402760857862543,5.1508745385908705],[25.650455356557472,5.256087754737123],[25.278798455514305,5.170408229997192],[25.12883344900328,4.92724477784779],[24.805028924262416,4.89724660890235],[24.410531040146253,5.10878408448913],[23.29721398285014,4.609693101414223],[22.841479526468106,4.710126247573484],[22.70412356943629,4.633050848810157],[22.405123732195538,4.029160061047321],[21.659122755630023,4.22434194581372],[20.927591180106276,4.322785549329737],[20.290679152108936,4.691677761245288],[19.46778364429315,5.03152781821278],[18.93231245288476,4.709506130385975],[18.54298221199778,4.201785183118318],[18.45306521980993,3.5043858911233485],[17.809900343505262,3.5601964379985698],[17.133042433346304,3.728196519379452],[16.537058139724138,3.198254706226279],[16.012852410555354,2.267639675298085],[15.907380812247652,2.557389431158612],[15.862732374747482,3.0135372989989833],[15.405395948964383,3.33530060466434],[15.036219516671252,3.8513672957471243],[14.950953403389661,4.210389309094921],[14.47837243008047,4.732605495620447],[14.558935988023507,5.03059764243153],[14.459407179429348,5.4517605656103],[14.536560092841114,6.2269587264206905],[14.776545444404576,6.408498033062045],[15.279460483469109,7.421924546737969],[16.106231723706742,7.497087917506462],[16.290561557691888,7.754307359239419],[16.456184523187346,7.734773667832968],[16.705988396886255,7.5083275415299795],[17.964929640380888,7.890914008002994],[18.38955488452322,8.281303615751824],[18.911021762780507,8.630894680206353],[18.812009718509273,8.982914536978598],[19.09400800952602,9.07484691002584],[20.05968549976427,9.012706000194854],[21.000868361096167,9.475985215691509],[21.723821648859456,10.567055568885976],[22.23112918466876,10.97188873946061],[22.864165480244225,11.142395127807546],[22.97754357269261,10.71446259199854],[23.554304233502194,10.089255275915308],[23.55724979014283,9.681218166538684],[23.394779087017184,9.265067857292223],[23.459012892355986,8.954285793488893],[23.805813429466752,8.666318874542526],[24.567369012152085,8.229187933785468],[25.11493248871679,7.825104071479174],[25.124130893664727,7.500085150579437],[25.79664798351118,6.979315904158071],[26.213418409945117,6.546603298362072],[26.465909458123235,5.9467174341018705],[27.21340905122517,5.5509534773945575],[27.37422610851749,5.233944403500061]]]},"properties":{"ISO_A2":"CF","NAME":"Central African Rep."}},
69
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[18.45306521980993,3.5043858911233485],[18.393792351971143,2.90044342692822],[18.094275750407434,2.365721543788055],[17.898835483479587,1.7418319767282782],[17.774191928791566,0.8556586775710854],[17.826540154703252,0.28892324462610475],[17.66355268725468,-0.05808399821381727],[17.638644646889986,-0.4248316381892465],[17.523716261472856,-0.743830254726987],[16.865306837642123,-1.2258163387132868],[16.407091912510054,-1.7409270157986825],[15.972803175529151,-2.7123922664536124],[16.0062895036543,-3.535132744972529],[15.753540073314753,-3.8551648901560966],[15.170991652088444,-4.343507175314301],[14.582603794013181,-4.97023894615014],[14.209034864975223,-4.793092136253598],[14.144956088933299,-4.510008640158716],[13.600234816144678,-4.50013844159097],[13.258240187237048,-4.882957452009165],[12.995517205465177,-4.781103203961884],[12.620759718484493,-4.438023369976136],[12.318607618873926,-4.606230157086188],[11.91496300624209,-5.037986748884791],[11.093772820691925,-3.978826592630547],[11.855121697648116,-3.4268706193210505],[11.478038771214303,-2.7656189917142413],[11.820963575903193,-2.514161472181982],[12.495702752338161,-2.391688327650243],[12.575284458067642,-1.948511244315135],[13.109618767965628,-2.4287403296035137],[13.99240726080771,-2.4708049454890997],[14.299210239324566,-1.998275648612214],[14.425455763413595,-1.333406670744971],[14.316418491277744,-0.5526274552470483],[13.843320753645656,0.038757635901149],[14.276265903386957,1.1969298364266194],[14.026668735417218,1.3956773950211527],[13.282631463278818,1.3141836612968805],[13.003113641012078,1.8308963077833198],[13.075822381246752,2.2670970727590145],[14.33781253424658,2.2278746606494906],[15.146341993885244,1.9640147973671844],[15.940918816805066,1.7276726342802957],[16.012852410555354,2.267639675298085],[16.537058139724138,3.198254706226279],[17.133042433346304,3.728196519379452],[17.809900343505262,3.5601964379985698],[18.45306521980993,3.5043858911233485]]]},"properties":{"ISO_A2":"CG","NAME":"Congo"}},
70
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.276449008843713,2.261050930180872],[11.75166548019979,2.3267575138399934],[12.359380323952221,2.19281220133945],[12.951333855855609,2.32161570882694],[13.075822381246752,2.2670970727590145],[13.003113641012078,1.8308963077833198],[13.282631463278818,1.3141836612968805],[14.026668735417218,1.3956773950211527],[14.276265903386957,1.1969298364266194],[13.843320753645656,0.038757635901149],[14.316418491277744,-0.5526274552470483],[14.425455763413595,-1.333406670744971],[14.299210239324566,-1.998275648612214],[13.99240726080771,-2.4708049454890997],[13.109618767965628,-2.4287403296035137],[12.575284458067642,-1.948511244315135],[12.495702752338161,-2.391688327650243],[11.820963575903193,-2.514161472181982],[11.478038771214303,-2.7656189917142413],[11.855121697648116,-3.4268706193210505],[11.093772820691925,-3.978826592630547],[10.06613528813574,-2.9694825171056816],[9.40524539555497,-2.144313246269043],[8.79799563969317,-1.111301364754496],[8.830086704146424,-0.7790735815500369],[9.048419630579588,-0.45935149496021666],[9.29135053878369,0.2686660831676875],[9.492888624721985,1.010119533691494],[9.830284051155644,1.0678937849937995],[11.285078973036462,1.0576618514000131],[11.276449008843713,2.261050930180872]]]},"properties":{"ISO_A2":"GA","NAME":"Gabon"}},
71
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.649158155972628,2.2838660750377358],[11.276449008843713,2.261050930180872],[11.285078973036462,1.0576618514000131],[9.830284051155644,1.0678937849937995],[9.492888624721985,1.010119533691494],[9.305613234096256,1.1609113631191832],[9.649158155972628,2.2838660750377358]]]},"properties":{"ISO_A2":"GQ","NAME":"Eq. Guinea"}},
72
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.740009731422095,-8.34000593035372],[31.15775133695005,-8.594578747317366],[31.556348097466497,-8.762048841998642],[32.19186486179194,-8.930358981973257],[32.75937544122132,-9.23059905358906],[33.2313879737753,-9.6767216935648],[33.48568769708359,-10.525558770391115],[33.315310499817286,-10.796549981329697],[33.114289178201915,-11.607198174692314],[33.306422153463075,-12.435778090060218],[32.991764357237884,-12.783870537978274],[32.68816531752313,-13.712857761289277],[33.214024692525214,-13.971860039936153],[30.17948123548183,-14.796099134991529],[30.27425581230511,-15.507786960515213],[29.516834344203147,-15.644677829656388],[28.947463413211267,-16.04305144619444],[28.8258687680285,-16.389748630440614],[28.467906121542683,-16.468400160388846],[27.59824344250276,-17.290830580314008],[27.044427117630732,-17.938026218337434],[26.70677330903564,-17.961228936436484],[26.381935255648926,-17.8460421688579],[25.264225701608012,-17.736539808831417],[25.08444339366457,-17.661815687737374],[25.07695031098226,-17.57882333747662],[24.682349074001507,-17.353410739819473],[24.033861525170778,-17.295843194246324],[23.215048455506064,-17.523116143465984],[22.56247846852426,-16.898451429921813],[21.887842644953874,-16.08031015387688],[21.933886346125917,-12.898437188369359],[24.016136508894675,-12.911046237848574],[23.930922072045377,-12.565847670138856],[24.079905226342845,-12.191296888887365],[23.904153680118185,-11.722281589406322],[24.01789350759259,-11.23729827234709],[23.912215203555718,-10.926826267137514],[24.25715538910399,-10.951992689663657],[24.31451622894795,-11.26282642989927],[24.78316979340295,-11.238693536018964],[25.418118116973204,-11.330935967659961],[25.752309604604733,-11.784965101776358],[26.553087599399618,-11.924439792532127],[27.164419793412463,-11.608748467661075],[27.388798862423783,-12.132747491100666],[28.155108676879987,-12.272480564017897],[28.523561639121027,-12.698604424696683],[28.934285922976837,-13.248958428605135],[29.69961388521949,-13.257226657771831],[29.61600141777123,-12.178894545137311],[29.34154788586909,-12.360743910372413],[28.642417433392353,-11.971568698782315],[28.372253045370428,-11.793646742401393],[28.49606977714177,-10.789883721564046],[28.67368167492893,-9.605924981324932],[28.449871046672826,-9.164918308146085],[28.734866570762502,-8.526559340044578],[29.00291222506047,-8.407031752153472],[30.346086053190817,-8.238256524288218],[30.740009731422095,-8.34000593035372]]]},"properties":{"ISO_A2":"ZM","NAME":"Zambia"}},
73
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.75937544122132,-9.23059905358906],[33.73972000000009,-9.417149999999992],[33.940837724096525,-9.693673841980285],[34.27999999999997,-10.160000000000025],[34.55998904799935,-11.520020033415925],[34.28000613784198,-12.280025323132506],[34.55998904799935,-13.579997653866876],[34.907151320136165,-13.565424899960568],[35.26795617039801,-13.887834161029566],[35.68684533055594,-14.611045830954332],[35.77190473810836,-15.896858819240727],[35.339062941231646,-16.10744028083011],[35.033810255683534,-16.801299737213093],[34.38129194513405,-16.183559665596043],[34.307291294092096,-15.478641452702597],[34.51766604995231,-15.013708591372612],[34.45963341648854,-14.613009535381423],[34.064825473778626,-14.35995004644812],[33.789700148256685,-14.45183074306307],[33.214024692525214,-13.971860039936153],[32.68816531752313,-13.712857761289277],[32.991764357237884,-12.783870537978274],[33.306422153463075,-12.435778090060218],[33.114289178201915,-11.607198174692314],[33.315310499817286,-10.796549981329697],[33.48568769708359,-10.525558770391115],[33.2313879737753,-9.6767216935648],[32.75937544122132,-9.23059905358906]]]},"properties":{"ISO_A2":"MW","NAME":"Malawi"}},
74
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.55998904799935,-11.520020033415925],[35.31239790216904,-11.439146416879147],[36.51408165868426,-11.720938002166735],[36.775150994622805,-11.594537448780805],[37.471289999999954,-11.568759999999997],[37.827639999999974,-11.26878999999991],[38.42755659358775,-11.285202325081656],[39.52099999999996,-10.89688000000001],[40.31659000000002,-10.317099999999868],[40.316586229110854,-10.317097752817492],[40.31658857601719,-10.317096042525698],[40.47838748552303,-10.765440769089993],[40.437253045418686,-11.761710707245015],[40.56081139502857,-12.639176527561027],[40.59962039567975,-14.201975192931862],[40.775475294768995,-14.691764418194241],[40.4772506040126,-15.406294447493972],[40.08926395036522,-16.10077402106446],[39.45255862809705,-16.72089120856694],[38.53835086442152,-17.101023044505958],[37.41113284683888,-17.586368096591237],[36.28127933120936,-18.65968759529345],[35.89649661636406,-18.842260430580637],[35.198399692533144,-19.552811374593894],[34.78638349787005,-19.784011732667736],[34.70189253107284,-20.49704314543101],[35.176127150215365,-21.25436126066841],[35.37342776870574,-21.840837090748877],[35.385848253705404,-22.14],[35.562545536369086,-22.090000000000003],[35.533934767404304,-23.070787855727758],[35.37177412287238,-23.5353589820317],[35.60747033055563,-23.706563002214683],[35.45874555841962,-24.12260995859655],[35.04073489761066,-24.478350518493805],[34.21582400893547,-24.81631438568266],[33.01321007663901,-25.357573337507738],[32.574632195777866,-25.727318210556092],[32.66036339695009,-26.148584486599447],[32.91595503106569,-26.215867201443466],[32.830120477028885,-26.742191664336197],[32.07166548028107,-26.73382008230491],[31.98577924981197,-26.291779880480227],[31.83777794772806,-25.84333180105135],[31.75240848158188,-25.484283949487413],[31.930588820124253,-24.36941659922254],[31.670397983534656,-23.658969008073864],[31.19140913262129,-22.2515096981724],[32.244988234188014,-21.116488539313693],[32.50869306817344,-20.395292250248307],[32.65974327976258,-20.304290052982317],[32.772707960752626,-19.715592136313298],[32.61199425632489,-19.419382826416275],[32.65488569512715,-18.672089939043495],[32.84986087416439,-17.97905730557718],[32.847638787575846,-16.713398125884616],[32.32823896661023,-16.392074069893752],[31.8520406430406,-16.319417006091378],[31.636498243951195,-16.071990248277885],[31.17306399915768,-15.860943698797874],[30.338954705534544,-15.880839125230246],[30.27425581230511,-15.507786960515213],[30.17948123548183,-14.796099134991529],[33.214024692525214,-13.971860039936153],[33.789700148256685,-14.45183074306307],[34.064825473778626,-14.35995004644812],[34.45963341648854,-14.613009535381423],[34.51766604995231,-15.013708591372612],[34.307291294092096,-15.478641452702597],[34.38129194513405,-16.183559665596043],[35.033810255683534,-16.801299737213093],[35.339062941231646,-16.10744028083011],[35.77190473810836,-15.896858819240727],[35.68684533055594,-14.611045830954332],[35.26795617039801,-13.887834161029566],[34.907151320136165,-13.565424899960568],[34.55998904799935,-13.579997653866876],[34.28000613784198,-12.280025323132506],[34.55998904799935,-11.520020033415925]]]},"properties":{"ISO_A2":"MZ","NAME":"Mozambique"}},
75
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.07166548028107,-26.73382008230491],[31.86806033705108,-27.177927341421277],[31.28277306491333,-27.285879408478998],[30.68596194837448,-26.743845310169533],[30.67660851412964,-26.398078301704608],[30.949666782359913,-26.02264902110415],[31.04407962415715,-25.731452325139443],[31.333157586397903,-25.66019052500895],[31.83777794772806,-25.84333180105135],[31.98577924981197,-26.291779880480227],[32.07166548028107,-26.73382008230491]]]},"properties":{"ISO_A2":"SZ","NAME":"eSwatini"}},
76
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[12.995517205465177,-4.781103203961884],[12.63161176926579,-4.991271254092936],[12.468004184629736,-5.248361504745005],[12.436688266660868,-5.6843038875592455],[12.182336866920252,-5.789930515163839],[11.91496300624209,-5.037986748884791],[12.318607618873926,-4.606230157086188],[12.620759718484493,-4.438023369976136],[12.995517205465177,-4.781103203961884]]],[[[12.32243167486351,-6.10009246177966],[12.735171339578699,-5.965682061388499],[13.024869419006961,-5.984388929878158],[13.375597364971895,-5.8642412247995495],[16.326528354567046,-5.877470391466268],[16.573179965896145,-6.6226445451150875],[16.8601908708452,-7.2222978654299865],[17.08999596524717,-7.545688978712526],[17.472970004962235,-8.0685511206417],[18.13422163256905,-7.987677504104923],[18.464175652752687,-7.847014255406443],[19.01675174324967,-7.988245944860132],[19.16661339689611,-7.738183688999754],[19.41750247567316,-7.155428562044299],[20.037723016040218,-7.116361179231646],[20.091621534920648,-6.943090101756994],[20.6018229509383,-6.939317722199682],[20.5147481625265,-7.2996058081386295],[21.7281107927397,-7.290872491081302],[21.74645592620331,-7.920084730667149],[21.949130893652043,-8.305900974158277],[21.8018013851879,-8.90870655684298],[21.875181919042348,-9.523707777548566],[22.208753289486395,-9.894796237836509],[22.155268182064308,-11.084801120653772],[22.402798292742375,-10.993075453335692],[22.83734541188474,-11.01762175867433],[23.45679080576744,-10.867863457892483],[23.912215203555718,-10.926826267137514],[24.01789350759259,-11.23729827234709],[23.904153680118185,-11.722281589406322],[24.079905226342845,-12.191296888887365],[23.930922072045377,-12.565847670138856],[24.016136508894675,-12.911046237848574],[21.933886346125917,-12.898437188369359],[21.887842644953874,-16.08031015387688],[22.56247846852426,-16.898451429921813],[23.215048455506064,-17.523116143465984],[21.377176141045567,-17.930636488519696],[18.956186964603603,-17.789094740472258],[18.263309360434164,-17.309950860262006],[14.209706658595024,-17.35310068122572],[14.05850141770901,-17.423380629142663],[13.462362094789967,-16.971211846588773],[12.814081251688407,-16.94134286872407],[12.215461460019355,-17.111668389558083],[11.734198846085121,-17.301889336824473],[11.64009606288161,-16.67314218512925],[11.778537224991537,-15.793816013250735],[12.12358076340439,-14.878316338767904],[12.175618930722294,-14.449143568583892],[12.50009524908299,-13.54769988368445],[12.738478631245385,-13.137905775609902],[13.312913852601866,-12.483630466362492],[13.6337211442698,-12.03864470789717],[13.738727654686897,-11.297863050993165],[13.686379428775238,-10.73107594161589],[13.387327915102162,-10.373578383020714],[13.120987583069846,-9.766897067914122],[12.875369500386569,-9.166933689005468],[12.92906131353783,-8.959091078327553],[13.236432732809874,-8.562629489784307],[12.93304039882429,-7.596538588087733],[12.728298374083892,-6.927122084178805],[12.227347039446471,-6.294447523629394],[12.32243167486351,-6.10009246177966]]]]},"properties":{"ISO_A2":"AO","NAME":"Angola"}},
77
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.469673645761223,-2.41385475710134],[30.527660000000026,-2.807619999999986],[30.743010000000027,-3.034309999999948],[30.752240000000086,-3.3593099999999936],[30.505539999999996,-3.5685799999999404],[30.11632000000003,-4.090120000000013],[29.753512404099865,-4.452389418153302],[29.339997592900346,-4.4999834122940925],[29.276383904749053,-3.293907159034063],[29.024926385216787,-2.8392579077301576],[29.632176141078588,-2.917857761246097],[29.93835900240794,-2.348486830254238],[30.469673645761223,-2.41385475710134]]]},"properties":{"ISO_A2":"BI","NAME":"Burundi"}},
78
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.71991824722275,32.709192409794866],[35.54566531753454,32.393992011030576],[35.183930291491436,32.53251068778894],[34.97464074070933,31.866582343059722],[35.22589155451243,31.754341132121766],[34.970506626125996,31.61677846936081],[34.92740848159457,31.353435370401414],[35.397560662586045,31.489086005167582],[35.420918409981965,31.100065822874356],[34.92260257339143,29.501326198844524],[34.823243288783814,29.76108076171822],[34.265440000000005,31.219359999999998],[34.26543474464621,31.21935730952032],[34.26543338393569,31.219360866820153],[34.55637169773891,31.548823960896996],[34.48810713068136,31.60553884533732],[34.75258711115117,32.07292633720117],[34.95541710789678,32.82737641044638],[35.098457472480675,33.080539252244265],[35.126052687324545,33.09090037691878],[35.460709262846706,33.08904002535628],[35.55279666519081,33.26427480725802],[35.82110070165024,33.2774264592763],[35.836396925608625,32.86812327730851],[35.70079796727475,32.71601369885738],[35.71991824722275,32.709192409794866]]]},"properties":{"ISO_A2":"IL","NAME":"Israel"}},
79
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.82110070165024,33.2774264592763],[35.55279666519081,33.26427480725802],[35.460709262846706,33.08904002535628],[35.126052687324545,33.09090037691878],[35.48220665868013,33.90545014091944],[35.9795923194894,34.61005829521913],[35.99840254084364,34.644914048800004],[36.4481942075121,34.59393524834407],[36.61175011571589,34.20178864189718],[36.066460402172055,33.82491242119255],[35.82110070165024,33.2774264592763]]]},"properties":{"ISO_A2":"LB","NAME":"Lebanon"}},
80
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[49.54351891459575,-12.469832858940554],[49.808980747279094,-12.895284925999555],[50.056510857957164,-13.555761407121985],[50.21743126811407,-14.758788750876796],[50.47653689962553,-15.226512139550543],[50.377111443895956,-15.706069431219127],[50.20027469259318,-16.000263360256767],[49.86060550313868,-15.414252618066918],[49.67260664246086,-15.710203545802479],[49.863344354050156,-16.451036879138776],[49.77456424337271,-16.8750420060936],[49.49861209493412,-17.106035658438273],[49.435618523970305,-17.953064060134366],[49.041792433473944,-19.118781019774445],[48.54854088724801,-20.496888116134127],[47.93074913919867,-22.391501153251085],[47.54772342305131,-23.781958916928517],[47.095761346226595,-24.941629733990453],[46.282477654817086,-25.178462823184105],[45.40950768411045,-25.60143442149309],[44.833573846217554,-25.34610116953894],[44.03972049334976,-24.988345228782308],[43.76376834491117,-24.46067717864999],[43.697777540874455,-23.574116306250602],[43.345654331237625,-22.776903985283873],[43.254187046081,-22.057413018484123],[43.43329756040464,-21.33647511158019],[43.893682895692926,-21.16330738697013],[43.896370070172104,-20.830459486578174],[44.37432539243966,-20.07236622485639],[44.46439741392439,-19.435454196859048],[44.23242190936617,-18.961994724200906],[44.042976108584156,-18.33138722094317],[43.96308434426091,-17.409944756746782],[44.31246870298628,-16.850495700754955],[44.4465173683514,-16.216219170804507],[44.94493655780653,-16.1793738745804],[45.50273196796499,-15.97437346767854],[45.87299360533626,-15.793454278224687],[46.31224327981721,-15.780018405828798],[46.882182651564285,-15.210182386946315],[47.70512983581236,-14.594302666891764],[48.005214878131255,-14.091232598530375],[47.869047479042166,-13.663868503476586],[48.29382775248138,-13.784067884987486],[48.84506025573879,-13.089174899958664],[48.86350874206698,-12.48786793381042],[49.194651320193316,-12.04055673589197],[49.54351891459575,-12.469832858940554]]]},"properties":{"ISO_A2":"MG","NAME":"Madagascar"}},
81
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.397560662586045,31.489086005167582],[34.92740848159457,31.353435370401414],[34.970506626125996,31.61677846936081],[35.22589155451243,31.754341132121766],[34.97464074070933,31.866582343059722],[35.183930291491436,32.53251068778894],[35.54566531753454,32.393992011030576],[35.5452519060762,31.78250478772084],[35.397560662586045,31.489086005167582]]]},"properties":{"ISO_A2":"PS","NAME":"Palestine"}},
82
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-16.71372880702347,13.594958604379855],[-15.624596320039942,13.62358734786956],[-15.39877031092446,13.86036876063092],[-15.08173539881382,13.876491807505985],[-14.687030808968487,13.630356960499784],[-14.376713833055788,13.625680243377374],[-14.046992356817482,13.79406789800045],[-13.844963344772408,13.505041612192002],[-14.277701788784555,13.280585028532244],[-14.712197231494628,13.298206691943777],[-15.141163295949468,13.509511623585238],[-15.511812506562933,13.278569647672867],[-15.691000535534995,13.270353094938457],[-15.931295945692211,13.130284125211332],[-16.841524624081273,13.15139394780256],[-16.71372880702347,13.594958604379855]]]},"properties":{"ISO_A2":"GM","NAME":"Gambia"}},
83
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.482139926805274,30.307556057246188],[9.05560265466815,32.10269196220129],[8.439102817426118,32.50628489840082],[8.430472853233368,32.74833730725595],[7.6126416357821824,33.34411489514896],[7.524481642292244,34.09737641045146],[8.140981479534304,34.65514598239379],[8.376367628623768,35.479876003555944],[8.217824334352315,36.433176988260286],[8.420964389691676,36.94642731378316],[9.509993523810607,37.349994411766545],[10.210002475636317,37.230001735984814],[10.180650262094531,36.724037787415085],[11.02886722173335,37.09210317641396],[11.100025668999251,36.899996039368915],[10.600004510143094,36.410000108377375],[10.593286573945138,35.94744436293281],[10.939518670300687,35.698984076473494],[10.807847120821009,34.83350718844919],[10.149592726287125,34.33077301689771],[10.339658644256616,33.78574168551532],[10.856836378633687,33.76874013929128],[11.108500603895122,33.293342800422195],[11.488787469131012,33.13699575452324],[11.432253452203696,32.368903103152874],[10.944789666394456,32.081814683555365],[10.636901482799487,31.761420803345757],[9.950225050505082,31.376069647745258],[10.056575148161699,30.961831366493527],[9.970017124072854,30.53932485607524],[9.482139926805274,30.307556057246188]]]},"properties":{"ISO_A2":"TN","NAME":"Tunisia"}},
84
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-8.684399786809053,27.395744126896005],[-8.665124477564191,27.589479071558227],[-8.665589565454809,27.656425889592356],[-8.674116176782974,28.84128896739658],[-7.059227667661958,29.5792284205246],[-6.060632290053774,29.731699734001694],[-5.242129278982787,30.00044302013559],[-4.859646165374471,30.501187649043846],[-3.6904410465547244,30.896951605751156],[-3.647497931320146,31.637294012980675],[-3.068980271812648,31.724497992473218],[-2.616604783529567,32.09434621838619],[-1.30789913573787,32.2628889023061],[-1.1245511539663084,32.65152151135713],[-1.388049282222596,32.86401500094138],[-1.7334545556614671,33.91971283623212],[-1.792985805661715,34.527918606091305],[-2.169913702798624,35.16839630791668],[-1.208602871089056,35.7148487411871],[-0.12745439289460592,35.888662421200806],[0.5038765804152092,36.30127289483528],[1.466918572606545,36.605647081034405],[3.1616988460508253,36.78390493422522],[4.81575809084913,36.86503693292346],[5.3201200700177935,36.71651886651662],[6.261819695672613,37.11065501560674],[7.330384962603971,37.11838064223437],[7.737078484741005,36.885707505840216],[8.420964389691676,36.94642731378316],[8.217824334352315,36.433176988260286],[8.376367628623768,35.479876003555944],[8.140981479534304,34.65514598239379],[7.524481642292244,34.09737641045146],[7.6126416357821824,33.34411489514896],[8.430472853233368,32.74833730725595],[8.439102817426118,32.50628489840082],[9.05560265466815,32.10269196220129],[9.482139926805274,30.307556057246188],[9.805634392952356,29.424638373323376],[9.859997999723447,28.959989732371014],[9.683884718472768,28.1441738957792],[9.756128370816782,27.688258571884205],[9.629056023811074,27.14095347748092],[9.716285841519664,26.512206325785655],[9.319410841518163,26.094324856057455],[9.910692579801776,25.365454616796796],[9.94826134607797,24.936953640232517],[10.303846876678362,24.379313259370917],[10.771363559622927,24.56253205006175],[11.560669386449005,24.097909247325518],[11.999505649471613,23.47166840259645],[8.572893100629784,21.565660712159143],[5.677565952180686,19.601206976799716],[4.267419467800039,19.155265204337],[3.158133172222705,19.057364203360038],[3.1466610042539003,19.693578599521445],[2.683588494486429,19.856230170160117],[2.06099083823392,20.142233384679486],[1.8232275732590324,20.610809434486043],[-1.5500548974576134,22.792665920497384],[-4.923337368174231,24.974574082941],[-8.684399786809053,27.395744126896005]]]},"properties":{"ISO_A2":"DZ","NAME":"Algeria"}},
85
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.54566531753454,32.393992011030576],[35.71991824722275,32.709192409794866],[36.834062127435544,32.312937526980775],[38.792340529136084,33.378686428352225],[39.19546837744497,32.16100881604267],[39.00488569515255,32.01021698661498],[37.00216556168101,31.508412990844747],[37.998848911294374,30.508499864213135],[37.66811974462638,30.3386652694859],[37.503581984209035,30.003776150018407],[36.74052778498725,29.86528331147619],[36.50121422704359,29.505253607698705],[36.06894087092206,29.197494615184453],[34.95603722508426,29.356554673778845],[34.92260257339143,29.501326198844524],[35.420918409981965,31.100065822874356],[35.397560662586045,31.489086005167582],[35.5452519060762,31.78250478772084],[35.54566531753454,32.393992011030576]]]},"properties":{"ISO_A2":"JO","NAME":"Jordan"}},
86
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[51.57951867046327,24.245497137951105],[51.757440626844186,24.29407298430547],[51.79438927593287,24.019826158132506],[52.57708051942561,24.177439276622707],[53.404006788960146,24.15131684009917],[54.00800092958758,24.121757920828216],[54.69302371604863,24.79789236093509],[55.43902469261414,25.43914520924494],[56.07082075381456,26.05546417897398],[56.261041701080956,25.71460643157677],[56.396847365144005,24.924732163995486],[55.88623253766801,24.920830593357447],[55.804118686756226,24.269604193615265],[55.98121382022046,24.13054291431783],[55.52863162620824,23.933604030853502],[55.525841098864475,23.524869289640932],[55.234489373602884,23.110992743415324],[55.208341098863194,22.708329982997046],[55.006803012924905,22.496947536707136],[52.000733270074335,23.00115448657894],[51.61770755392698,24.01421926522883],[51.57951867046327,24.245497137951105]]]},"properties":{"ISO_A2":"AE","NAME":"United Arab Emirates"}},
87
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[50.81010827006958,24.754742539971378],[50.74391076030369,25.482424221289396],[51.013351678273494,26.006991685484195],[51.28646162293606,26.11458201751587],[51.58907881043726,25.80111277923338],[51.60670047384881,25.21567047779874],[51.38960778179063,24.62738597258806],[51.11241539897702,24.556330878186724],[50.81010827006958,24.754742539971378]]]},"properties":{"ISO_A2":"QA","NAME":"Qatar"}},
88
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[47.974519077349896,29.975819200148504],[48.18318851094449,29.534476630159762],[48.09394331237642,29.306299343375002],[48.416094191283946,28.55200429942667],[47.708850538937384,28.526062730416143],[47.45982181172283,29.002519436147224],[46.568713413281756,29.09902517345229],[47.30262210469096,30.059069932570722],[47.974519077349896,29.975819200148504]]]},"properties":{"ISO_A2":"KW","NAME":"Kuwait"}},
89
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[39.19546837744497,32.16100881604267],[38.792340529136084,33.378686428352225],[41.006158888519934,34.41937226006212],[41.383965285005814,35.628316555314356],[41.289707472505455,36.35881460219227],[41.83706424334096,36.605853786763575],[42.34959109881177,37.2298725449041],[42.77912560402183,37.385263576805755],[43.9422587420473,37.25622752537295],[44.29345177590287,37.0015143906063],[44.77267710159504,37.17043692561684],[45.42061811705321,35.977545884742824],[46.0763403664048,35.67738332777549],[46.15178795755094,35.09325877536429],[45.64845950702809,34.748137722303014],[45.41669070819904,33.967797756479584],[46.10936160663932,33.017287299119005],[47.33466149271191,32.46915538179911],[47.8492037290421,31.70917593029867],[47.68528608581227,30.984853217079632],[48.004698113808324,30.985137437457244],[48.0145683123761,30.452456773392598],[48.567971225789755,29.926778265903522],[47.974519077349896,29.975819200148504],[47.30262210469096,30.059069932570722],[46.568713413281756,29.09902517345229],[44.70949873228474,29.178891099559383],[41.889980910007836,31.19000865327837],[40.399994337736246,31.889991766887935],[39.19546837744497,32.16100881604267]]]},"properties":{"ISO_A2":"IQ","NAME":"Iraq"}},
90
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[55.208341098863194,22.708329982997046],[55.234489373602884,23.110992743415324],[55.525841098864475,23.524869289640932],[55.52863162620824,23.933604030853502],[55.98121382022046,24.13054291431783],[55.804118686756226,24.269604193615265],[55.88623253766801,24.920830593357447],[56.396847365144005,24.924732163995486],[56.845140415276006,24.241673081961505],[57.4034525897574,23.878594468678813],[58.13694786970825,23.74793060962881],[58.72921146020542,23.56566783293536],[59.18050174341033,22.992395331305474],[59.45009769067703,22.6602709009656],[59.80806033716286,22.533611965418217],[59.806148309168066,22.310524807214193],[59.442191196536385,21.714540513592027],[59.28240766788991,21.43388580981485],[58.86114139184656,21.114034532144302],[58.48798587426694,20.428985907467094],[58.034318475176605,20.481437486243337],[57.826372511634105,20.24300242764863],[57.665762160070955,19.73600495043307],[57.788700392493325,19.067570298737678],[57.694390903560645,18.94470958096376],[57.234263950433814,18.947991034414287],[56.60965091332193,18.574267076079465],[56.51218916201947,18.087113348863966],[56.28352094912793,17.876066799383963],[55.66149173363064,17.884128322821496],[55.26993940615512,17.632309068263197],[55.27490034365513,17.22835439703762],[54.79100223167404,16.95069692633338],[54.23925296409371,17.044980577049913],[53.570508253804576,16.707662665264706],[53.10857262554751,16.651051133688952],[52.78218427919205,17.349742336491232],[52.00000980002224,19.000003363516058],[54.99998172386236,19.999994004796108],[55.666659376859826,22.00000112557234],[55.208341098863194,22.708329982997046]]],[[[56.261041701080956,25.71460643157677],[56.07082075381456,26.05546417897398],[56.36201744977927,26.39593435312898],[56.48567915225374,26.309117946878633],[56.39142133975335,25.895990708921246],[56.261041701080956,25.71460643157677]]]]},"properties":{"ISO_A2":"OM","NAME":"Oman"}},
91
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[167.2168013857696,-15.89184620530842],[167.84487674384502,-16.46633310309717],[167.51518110582288,-16.59784962327999],[167.1800077659778,-16.159995212470946],[167.2168013857696,-15.89184620530842]]],[[[166.79315799384085,-15.668810723536687],[166.6498592470955,-15.392703545801211],[166.6291369977464,-14.626497084209605],[167.10771243720149,-14.933920179913954],[167.27002811103023,-15.740020847234888],[167.00120731024793,-15.614602146062516],[166.79315799384085,-15.668810723536687]]]]},"properties":{"ISO_A2":"VU","NAME":"Vanuatu"}},
92
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[102.5849324890267,12.186594956913282],[102.34809939983302,13.394247341358223],[102.98842207236163,14.225721136934467],[104.28141808473661,14.416743068901367],[105.21877689007889,14.273211778210694],[106.04394616091552,13.881091009979956],[106.49637332563088,14.570583807834282],[107.38272749230109,14.202440904186972],[107.61454796756243,13.535530707244206],[107.49140302941089,12.337205918827948],[105.81052371625313,11.567614650921229],[106.24967003786946,10.961811835163587],[105.19991499229235,10.889309800658097],[104.33433475140347,10.48654368737523],[103.4972799011397,10.632555446815928],[103.09068973186726,11.153660590047165],[102.5849324890267,12.186594956913282]]]},"properties":{"ISO_A2":"KH","NAME":"Cambodia"}},
93
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[105.21877689007889,14.273211778210694],[104.28141808473661,14.416743068901367],[102.98842207236163,14.225721136934467],[102.34809939983302,13.394247341358223],[102.5849324890267,12.186594956913282],[101.68715783081996,12.645740057826572],[100.83180952352487,12.627084865769206],[100.9784672383692,13.412721665902566],[100.09779747925111,13.406856390837433],[100.01873253784456,12.307001044153354],[99.47892052612363,10.846366685423547],[99.15377241414316,9.963061428258555],[99.22239871622676,9.239255479362427],[99.87383182169813,9.20786204674512],[100.27964684448622,8.295152899606052],[100.45927412313276,7.429572658717177],[101.01732791545273,6.856868597842478],[101.62307905477806,6.74062246340192],[102.14118696493638,6.221636053894628],[101.81428185425798,5.8108084171742425],[101.15421878459387,5.691384182147715],[101.07551557821336,6.2048670516159214],[100.25959638875696,6.6428248152895435],[100.0857568705271,6.4644894474502905],[99.69069054565576,6.8482127954335965],[99.51964155476963,7.34345388430276],[98.9882528015123,7.907993068875328],[98.503786248776,8.382305202666288],[98.339661899817,7.794511623562386],[98.15000939330582,8.350007432483878],[98.25915001830626,8.973922837759801],[98.55355065307305,9.932959906448545],[99.03812055867398,10.960545762572437],[99.58728600463972,11.892762762901697],[99.19635379435167,12.80474843998867],[99.21201175333609,13.269293728076464],[99.09775516153876,13.827502549693278],[98.43081912637987,14.622027696180837],[98.1920740091914,15.123702500870351],[98.53737592976572,15.308497422746084],[98.90334842325676,16.17782420497612],[98.49376102091135,16.83783559820793],[97.85912275593486,17.567946071843664],[97.37589643757354,18.445437730375815],[97.79778283080441,18.627080389881755],[98.25372399291561,19.708203029860044],[98.95967573445488,19.752980658440947],[99.54330936075931,20.186597601802063],[100.11598758341785,20.417849636308187],[100.54888105672688,20.109237982661128],[100.60629357300316,19.508344427971224],[101.2820146016517,19.462584947176765],[101.03593143107777,18.408928330961615],[101.05954756063517,17.51249725999449],[102.11359175009248,18.109101670804165],[102.41300499879162,17.932781683824288],[102.99870568238771,17.9616946476916],[103.20019209189374,18.309632066312773],[103.9564766784853,18.24095408779688],[104.7169470560925,17.42885895433008],[104.7793205098688,16.44186493577145],[105.58903852745016,15.570316066952858],[105.54433841351769,14.723933620660418],[105.21877689007889,14.273211778210694]]]},"properties":{"ISO_A2":"TH","NAME":"Thailand"}},
94
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[107.38272749230109,14.202440904186972],[106.49637332563088,14.570583807834282],[106.04394616091552,13.881091009979956],[105.21877689007889,14.273211778210694],[105.54433841351769,14.723933620660418],[105.58903852745016,15.570316066952858],[104.7793205098688,16.44186493577145],[104.7169470560925,17.42885895433008],[103.9564766784853,18.24095408779688],[103.20019209189374,18.309632066312773],[102.99870568238771,17.9616946476916],[102.41300499879162,17.932781683824288],[102.11359175009248,18.109101670804165],[101.05954756063517,17.51249725999449],[101.03593143107777,18.408928330961615],[101.2820146016517,19.462584947176765],[100.60629357300316,19.508344427971224],[100.54888105672688,20.109237982661128],[100.11598758341785,20.417849636308187],[100.32910119018953,20.786121731036232],[101.18000532430754,21.436572984294028],[101.27002566935997,21.201651923095184],[101.80311974488293,21.17436676684507],[101.65201785686152,22.318198757409547],[102.17043582561358,22.464753119389304],[102.75489627483466,21.675137233969465],[103.20386111858645,20.76656220141375],[104.43500044150805,20.75873322192153],[104.8225736836971,19.886641750563882],[104.18338789267894,19.62466807706022],[103.89653201702671,19.265180975821806],[105.09459842328152,18.66697459561108],[105.92576216026403,17.48531545660896],[106.55600792849569,16.604283962464805],[107.3127059265456,15.90853831630318],[107.5645251811039,15.20217316330556],[107.38272749230109,14.202440904186972]]]},"properties":{"ISO_A2":"LA","NAME":"Laos"}},
95
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[100.11598758341785,20.417849636308187],[99.54330936075931,20.186597601802063],[98.95967573445488,19.752980658440947],[98.25372399291561,19.708203029860044],[97.79778283080441,18.627080389881755],[97.37589643757354,18.445437730375815],[97.85912275593486,17.567946071843664],[98.49376102091135,16.83783559820793],[98.90334842325676,16.17782420497612],[98.53737592976572,15.308497422746084],[98.1920740091914,15.123702500870351],[98.43081912637987,14.622027696180837],[99.09775516153876,13.827502549693278],[99.21201175333609,13.269293728076464],[99.19635379435167,12.80474843998867],[99.58728600463972,11.892762762901697],[99.03812055867398,10.960545762572437],[98.55355065307305,9.932959906448545],[98.45717410684873,10.67526601810515],[98.76454552612078,11.441291612183749],[98.42833865762985,12.032986761925685],[98.50957400919268,13.122377631070677],[98.1036039571077,13.640459703012851],[97.77773237507517,14.837285874892642],[97.59707156778276,16.10056793869977],[97.1645398294998,16.92873444260934],[96.505768670643,16.42724050543285],[95.3693522481124,15.7143899601826],[94.80840457558412,15.80345429123764],[94.18880415240454,16.037936102762018],[94.53348595579135,17.277240301985728],[94.32481652219676,18.2135139022499],[93.54098839719364,19.366492621330025],[93.66325483599621,19.726961574781996],[93.07827762245219,19.855144965081976],[92.36855350135562,20.670883287025347],[92.30323449093868,21.47548533780982],[92.65225711463799,21.324047552978485],[92.67272098182556,22.041238918541254],[93.16612755734837,22.278459580977103],[93.06029422401463,22.70311066333557],[93.28632693885928,23.043658352139005],[93.3251876159428,24.078556423432204],[94.10674197792507,23.85074087167348],[94.55265791217164,24.675238348890336],[94.60324913938538,25.162495428970402],[95.1551534362626,26.001307277932085],[95.12476769407496,26.5735720891323],[96.41936567585097,27.264589341739224],[97.1339990580153,27.083773505149964],[97.0519885599681,27.69905894623315],[97.40256147663614,27.882536119085444],[97.32711388549004,28.26158274994634],[97.91198774616944,28.335945136014345],[98.2462309102333,27.74722138112918],[98.68269005737046,27.50881216075062],[98.71209394734451,26.743535874940267],[98.67183800658916,25.918702500913525],[97.72460900267914,25.083637193293],[97.60471967976198,23.897404690033042],[98.66026248575577,24.063286037689966],[98.89874922078278,23.14272207284253],[99.5319922220874,22.94903880461258],[99.24089887898725,22.11831431730458],[99.98348921102149,21.7429367131364],[100.41653771362738,21.558839423096614],[101.15003299357825,21.849984442629022],[101.18000532430754,21.436572984294028],[100.32910119018953,20.786121731036232],[100.11598758341785,20.417849636308187]]]},"properties":{"ISO_A2":"MM","NAME":"Myanmar"}},
96
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[104.33433475140347,10.48654368737523],[105.19991499229235,10.889309800658097],[106.24967003786946,10.961811835163587],[105.81052371625313,11.567614650921229],[107.49140302941089,12.337205918827948],[107.61454796756243,13.535530707244206],[107.38272749230109,14.202440904186972],[107.5645251811039,15.20217316330556],[107.3127059265456,15.90853831630318],[106.55600792849569,16.604283962464805],[105.92576216026403,17.48531545660896],[105.09459842328152,18.66697459561108],[103.89653201702671,19.265180975821806],[104.18338789267894,19.62466807706022],[104.8225736836971,19.886641750563882],[104.43500044150805,20.75873322192153],[103.20386111858645,20.76656220141375],[102.75489627483466,21.675137233969465],[102.17043582561358,22.464753119389304],[102.7069922221001,22.708795070887675],[103.50451460166056,22.70375661873921],[104.47685835166448,22.819150092046968],[105.32920942588663,23.352063300056912],[105.81124718630522,22.976892401617903],[106.72540327354847,22.79426788989842],[106.56727339073532,22.21820486092477],[107.04342003787264,21.811898912029914],[108.05018029178294,21.55237986906012],[106.7150679870901,20.69685069425202],[105.88168216351903,19.752050482659698],[105.66200564984631,19.05816518806057],[106.42681684776602,18.004120998603227],[107.36195356651974,16.697456569887052],[108.26949507042963,16.07974233648615],[108.87710656131748,15.27669057867044],[109.33526981001722,13.426028347217724],[109.20013593957398,11.666859239137764],[108.36612999881545,11.008320624226272],[107.22092858279524,10.364483954301832],[106.40511274620343,9.53083974856932],[105.15826378786511,8.599759629750494],[104.79518517458239,9.241038316276502],[105.07620161338562,9.918490505406808],[104.33433475140347,10.48654368737523]]]},"properties":{"ISO_A2":"VN","NAME":"Vietnam"}},
97
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[130.78000366004676,42.220007813203225],[130.78000485358513,42.22001036108258],[130.78000735893113,42.22000722916885],[130.78000366004676,42.220007813203225]]],[[[130.63999970690955,42.39502427522179],[130.6400000000001,42.39500000000004],[130.77999231657833,42.22000960427719],[130.40003055228902,42.28000356705971],[129.96594852103726,41.94136790625106],[129.66736209525482,41.60110443782523],[129.70518924369247,40.88282786718433],[129.18811486218,40.66180776627199],[129.01039961152821,40.485436102859815],[128.63336836152672,40.18984691015031],[127.96741417858135,40.02541250259756],[127.53343550019417,39.7568500839767],[127.5021195822253,39.32393077245153],[127.38543419811027,39.213472398427655],[127.78334272675772,39.05089834243742],[128.34971642467661,38.61224294692785],[128.20574588431145,38.37039724380189],[127.78003543509101,38.30453563084589],[127.07330854706737,38.2561148137884],[126.68371992401893,37.80477285415118],[126.23733890188176,37.84037791600028],[126.17475874237624,37.74968577732804],[125.68910363169721,37.94001007745902],[125.5684391622957,37.75208873142962],[125.2753304383362,37.669070542952724],[125.24008711151316,37.85722443292744],[124.98103315643397,37.94882090916478],[124.71216067921938,38.10834605564979],[124.98599409393398,38.54847422947968],[125.2219486837787,38.66585724543067],[125.13285851450752,38.84855927179859],[125.3865897970606,39.387957872061165],[125.32111575734682,39.55138458918421],[124.7374821310424,39.66034434667162],[124.26562462778531,39.928493353834156],[125.07994184784064,40.56982371679245],[126.18204511932943,41.10733612727637],[126.86908328664987,41.81656932226619],[127.34378299368302,41.50315176041597],[128.20843305879066,41.46677155208249],[128.0522152039723,41.99428457291795],[129.59666873587952,42.42498179785456],[129.99426720593323,42.985386867843786],[130.63999970690955,42.39502427522179]]]]},"properties":{"ISO_A2":"KP","NAME":"North Korea"}},
98
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[126.17475874237624,37.74968577732804],[126.23733890188176,37.84037791600028],[126.68371992401893,37.80477285415118],[127.07330854706737,38.2561148137884],[127.78003543509101,38.30453563084589],[128.20574588431145,38.37039724380189],[128.34971642467661,38.61224294692785],[129.21291954968007,37.43239248305595],[129.46044966035817,36.78418915460283],[129.4683044780665,35.63214061130395],[129.0913765809296,35.082484239231434],[128.1858504578791,34.89037710218639],[127.3865194031884,34.47567373304412],[126.48574751190876,34.39004588473648],[126.37391971242914,34.934560451795946],[126.55923139862779,35.6845405136479],[126.11739790253229,36.72548472751926],[126.86014326386339,36.893924058574626],[126.17475874237624,37.74968577732804]]]},"properties":{"ISO_A2":"KR","NAME":"South Korea"}},
99
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[87.75126427607671,49.297197984405486],[88.80556684769552,49.47052073831242],[90.71366743364068,50.33181183532109],[92.23471154171968,50.80217072204172],[93.10421000000002,50.49529000000001],[94.14756635943559,50.48053660745717],[94.81594933469873,50.01343333597085],[95.8140200000002,49.97746000000012],[97.25976000000014,49.72605000000004],[98.23176150919156,50.422400621128745],[97.82573978067431,51.01099518493318],[98.86149051310034,52.04736603454669],[99.98173221232354,51.63400625264399],[100.88948042196262,51.51685578063832],[102.06521000000004,51.25991000000005],[102.25589000000008,50.51056000000011],[103.67654544476022,50.089966132195116],[104.62158,50.27532000000019],[105.88659142458675,50.406019192092224],[106.8888041524553,50.27429596618032],[107.86817589725095,49.793705145865815],[108.47516727095129,49.28254771585074],[109.40244917199664,49.292960516957635],[110.66201053267878,49.13012807880585],[111.58123091028662,49.37796824807769],[112.89773969935436,49.54356537535699],[114.36245649623527,50.24830272073741],[114.96210981655018,50.140247300815126],[115.48569542853136,49.80517731383475],[116.67880089728612,49.888531399121405],[116.19180219936757,49.134598090199106],[115.48528201707306,48.13538259540344],[115.74283735561579,47.72654450132629],[116.30895267137323,47.85341014260284],[117.29550744025741,47.69770905210743],[118.06414269416672,48.06673045510369],[118.86657433479495,47.74706004494617],[119.7728239278975,47.04805878355013],[119.66326989143876,46.69267995867892],[118.87432579963873,46.80541209572365],[117.42170128791419,46.67273285581426],[116.71786828009886,46.38820241961521],[115.98509647020009,45.727235012386004],[114.46033165899607,45.339816799493825],[113.46390669154417,44.80889313412712],[112.43606245325881,45.01164561622429],[111.8733061056003,45.10207937273506],[111.34837690637946,44.45744171811009],[111.66773725794323,44.07317576758771],[111.82958784388137,43.74311839453952],[111.12968224492023,43.40683401140015],[110.41210330611528,42.87123362891103],[109.24359581913146,42.5194463160841],[107.74477257693795,42.48151581478187],[106.12931562706169,42.13432770442891],[104.96499393109347,41.59740957291635],[104.52228193564899,41.908346666016556],[103.31227827353482,41.9074681666676],[101.83304039917994,42.51487295182628],[100.84586551310827,42.66380442969145],[99.51581749878004,42.524691473961724],[97.45175744017801,42.74888967546002],[96.34939578652781,42.725635280928685],[95.76245486855669,43.319449164394605],[95.30687544147153,44.24133087826547],[94.68892866412533,44.35233185482842],[93.4807336771413,44.975472113619965],[92.13389082231822,45.11507599545646],[90.9455395853343,45.28607330991028],[90.58576826371828,45.71971609148753],[90.97080936072501,46.88814606382293],[90.28082563676392,47.69354909930793],[88.85429772334676,48.069081732772965],[88.01383222855173,48.599462795600616],[87.75126427607671,49.297197984405486]]]},"properties":{"ISO_A2":"MN","NAME":"Mongolia"}},
100
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[97.32711388549004,28.26158274994634],[97.40256147663614,27.882536119085444],[97.0519885599681,27.69905894623315],[97.1339990580153,27.083773505149964],[96.41936567585097,27.264589341739224],[95.12476769407496,26.5735720891323],[95.1551534362626,26.001307277932085],[94.60324913938538,25.162495428970402],[94.55265791217164,24.675238348890336],[94.10674197792507,23.85074087167348],[93.3251876159428,24.078556423432204],[93.28632693885928,23.043658352139005],[93.06029422401463,22.70311066333557],[93.16612755734837,22.278459580977103],[92.67272098182556,22.041238918541254],[92.14603478390681,23.627498684172593],[91.86992760617132,23.624346421802784],[91.70647505083211,22.985263983649187],[91.15896325069973,23.50352692310439],[91.46772993364368,24.072639471934792],[91.91509280799443,24.130413723237112],[92.37620161333481,24.976692816664965],[91.79959598182208,25.147431748957317],[90.87221072791212,25.132600612889547],[89.92069258012185,25.26974986419218],[89.83248091019962,25.96508209889548],[89.35509402868729,26.014407253518073],[88.56304935094977,26.446525580342723],[88.2097892598025,25.768065700782714],[88.93155398962308,25.238692328384776],[88.30637251175602,24.866079413344206],[88.08442223506242,24.501657212821925],[88.69994022009092,24.23371491138856],[88.52976972855379,23.631141872649167],[88.87631188350309,22.87914642993783],[89.03196129756623,22.055708319582976],[88.88876590368542,21.690588487224748],[88.20849734899522,21.703171698487807],[86.97570438024027,21.49556163175521],[87.03316857294887,20.743307806882413],[86.49935102737379,20.151638495356607],[85.0602657409097,19.4785788029711],[83.94100589390001,18.302009792549725],[83.18921715691785,17.67122142177898],[82.19279218946592,17.016636053937816],[82.19124189649719,16.556664130107848],[81.69271935417748,16.310219224507904],[80.79199913933014,15.951972357644493],[80.32489586784388,15.89918488205835],[80.02506920768644,15.136414903214147],[80.2332735533904,13.835770778859981],[80.28629357292186,13.006260687710835],[79.8625468281285,12.056215318240888],[79.85799930208682,10.35727509199711],[79.340511509116,10.30885427493962],[78.88534549348918,9.546135972527722],[79.1897196796883,9.216543687370148],[78.2779407083305,8.933046779816934],[77.94116539908435,8.252959092639742],[77.53989790233794,7.965534776232332],[76.59297895702167,8.89927623131419],[76.13006147655108,10.299630031775521],[75.7464673196485,11.308250637248307],[75.39610110870959,11.781245022015824],[74.86481570831683,12.741935736537897],[74.61671715688354,13.99258291264968],[74.44385949086723,14.617221787977698],[73.5341992532334,15.99065216721496],[73.11990929554943,17.928570054592498],[72.82090945830865,19.208233547436166],[72.8244751321368,20.419503282141534],[72.6305334817454,21.356009426351008],[71.17527347197395,20.757441311114235],[70.4704586119451,20.877330634031384],[69.16413008003883,22.0892980005727],[69.6449276060824,22.450774644454338],[69.34959679553435,22.84317963306269],[68.1766451353734,23.69196503345671],[68.84259931831878,24.35913361256094],[71.04324018746823,24.3565239527302],[70.84469933460284,25.21510203704352],[70.2828731627256,25.72222870533983],[70.16892662952202,26.491871649678842],[69.51439293811313,26.940965684511372],[70.61649620960193,27.989196275335868],[71.77766564320032,27.913180243434525],[72.8237516620847,28.961591701772054],[73.45063846221743,29.97641347911987],[74.42138024282028,30.979814764931177],[74.40592898956501,31.69263947196528],[75.25864179881322,32.2711054550405],[74.45155927927871,32.7648996038055],[74.10429365427734,33.44147329358685],[73.74994835805197,34.31769887952785],[74.24020267120497,34.748887030571254],[75.75706098826834,34.50492259372132],[76.87172163280403,34.65354401299274],[77.83745079947457,35.494009507787766],[78.91226891471322,34.32193634697579],[78.81108646028574,33.50619802503242],[79.20889163606859,32.994394639613716],[79.17612877799553,32.48377981213771],[78.45844648632601,32.61816437431273],[78.73889448437401,31.515906073527063],[79.7213668151071,30.88271474865473],[81.11125613802932,30.183480943313402],[80.4767212259174,29.72986522065534],[80.08842451367627,28.79447011974014],[81.05720258985203,28.416095282499043],[81.99998742058497,27.925479234319994],[83.30424889519955,27.36450572357556],[84.6750179381738,27.234901231387536],[85.25177859898338,26.726198431906344],[86.02439293817918,26.63098460540857],[87.2274719583663,26.397898057556077],[88.06023766474982,26.41461538340249],[88.17480431514092,26.81040517832595],[88.04313276566123,27.445818589786825],[88.12044070836987,27.876541652939594],[88.73032596227856,28.086864732367516],[88.81424848832056,27.299315904239364],[88.83564253128938,27.098966376243762],[89.74452762243885,26.719402981059957],[90.37327477413407,26.87572418874288],[91.21751264848643,26.808648179628022],[92.03348351437509,26.83831045176356],[92.10371178585974,27.452614040633208],[91.69665652869668,27.771741848251665],[92.50311893104364,27.89687632904645],[93.41334760943269,28.640629380807226],[94.56599043170294,29.277438055939985],[95.40480228066464,29.03171662039213],[96.11767866413103,29.452802028922466],[96.58659061074749,28.83097951915434],[96.24883344928779,28.411030992134442],[97.32711388549004,28.26158274994634]]]},"properties":{"ISO_A2":"IN","NAME":"India"}},
101
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[92.67272098182556,22.041238918541254],[92.65225711463799,21.324047552978485],[92.30323449093868,21.47548533780982],[92.36855350135562,20.670883287025347],[92.08288618364614,21.19219513598577],[92.02521528520839,21.701569729086767],[91.83489098507744,22.182935695885565],[91.41708702999766,22.76501902922122],[90.49600630082728,22.80501658781513],[90.58695682166098,22.392793687422866],[90.27297081905556,21.83636770272011],[89.84746707556428,22.039146023033425],[89.70204959509493,21.857115790285306],[89.41886274613549,21.9661789006373],[89.03196129756623,22.055708319582976],[88.87631188350309,22.87914642993783],[88.52976972855379,23.631141872649167],[88.69994022009092,24.23371491138856],[88.08442223506242,24.501657212821925],[88.30637251175602,24.866079413344206],[88.93155398962308,25.238692328384776],[88.2097892598025,25.768065700782714],[88.56304935094977,26.446525580342723],[89.35509402868729,26.014407253518073],[89.83248091019962,25.96508209889548],[89.92069258012185,25.26974986419218],[90.87221072791212,25.132600612889547],[91.79959598182208,25.147431748957317],[92.37620161333481,24.976692816664965],[91.91509280799443,24.130413723237112],[91.46772993364368,24.072639471934792],[91.15896325069973,23.50352692310439],[91.70647505083211,22.985263983649187],[91.86992760617132,23.624346421802784],[92.14603478390681,23.627498684172593],[92.67272098182556,22.041238918541254]]]},"properties":{"ISO_A2":"BD","NAME":"Bangladesh"}},
102
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[91.69665652869668,27.771741848251665],[92.10371178585974,27.452614040633208],[92.03348351437509,26.83831045176356],[91.21751264848643,26.808648179628022],[90.37327477413407,26.87572418874288],[89.74452762243885,26.719402981059957],[88.83564253128938,27.098966376243762],[88.81424848832056,27.299315904239364],[89.47581017452111,28.042758897406397],[90.01582889197118,28.296438503527217],[90.7305139505678,28.064953925075756],[91.25885379431992,28.040614325466294],[91.69665652869668,27.771741848251665]]]},"properties":{"ISO_A2":"BT","NAME":"Bhutan"}},
103
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[88.12044070836987,27.876541652939594],[88.04313276566123,27.445818589786825],[88.17480431514092,26.81040517832595],[88.06023766474982,26.41461538340249],[87.2274719583663,26.397898057556077],[86.02439293817918,26.63098460540857],[85.25177859898338,26.726198431906344],[84.6750179381738,27.234901231387536],[83.30424889519955,27.36450572357556],[81.99998742058497,27.925479234319994],[81.05720258985203,28.416095282499043],[80.08842451367627,28.79447011974014],[80.4767212259174,29.72986522065534],[81.11125613802932,30.183480943313402],[81.52580447787474,30.42271698660863],[82.32751264845088,30.115268052688137],[83.33711510613719,29.463731594352197],[83.89899295444673,29.320226141877658],[84.23457970575015,28.839893703724698],[85.01163821812304,28.642773952747344],[85.82331994013151,28.203575954698707],[86.9545170430006,27.974261786403517],[88.12044070836987,27.876541652939594]]]},"properties":{"ISO_A2":"NP","NAME":"Nepal"}},
104
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[77.83745079947457,35.494009507787766],[76.87172163280403,34.65354401299274],[75.75706098826834,34.50492259372132],[74.24020267120497,34.748887030571254],[73.74994835805197,34.31769887952785],[74.10429365427734,33.44147329358685],[74.45155927927871,32.7648996038055],[75.25864179881322,32.2711054550405],[74.40592898956501,31.69263947196528],[74.42138024282028,30.979814764931177],[73.45063846221743,29.97641347911987],[72.8237516620847,28.961591701772054],[71.77766564320032,27.913180243434525],[70.61649620960193,27.989196275335868],[69.51439293811313,26.940965684511372],[70.16892662952202,26.491871649678842],[70.2828731627256,25.72222870533983],[70.84469933460284,25.21510203704352],[71.04324018746823,24.3565239527302],[68.84259931831878,24.35913361256094],[68.1766451353734,23.69196503345671],[67.44366661974547,23.94484365487699],[67.14544192898907,24.663611151624647],[66.37282758979327,25.42514089609385],[64.53040774929113,25.23703868255143],[62.90570071803461,25.21840932871021],[61.49736290878419,25.0782370061185],[61.87418745305655,26.239974880472104],[63.31663170761959,26.756532497661667],[63.2338977395203,27.21704702403071],[62.75542565292986,27.378923448184988],[62.72783043808599,28.25964488373539],[61.77186811711863,28.6993338078908],[61.36930870956494,29.303276272085924],[60.87424848820879,29.829238999952608],[62.54985680527278,29.31857249604431],[63.55026085801117,29.468330796826166],[64.14800215033125,29.340819200145972],[64.35041873561852,29.560030625928093],[65.0468620136161,29.472180691031905],[66.34647260932442,29.887943427036177],[66.38145755398602,30.738899237586452],[66.93889122911847,31.304911200479353],[67.68339358914747,31.30315420178142],[67.79268924344478,31.58293040620963],[68.55693200060932,31.713310044882018],[68.92667687365767,31.620189113892067],[69.31776411324256,31.901412258424443],[69.26252200712256,32.5019440780883],[69.68714725126486,33.105498969041236],[70.3235941913716,33.35853261975839],[69.9305432473596,34.02012014417511],[70.8818030129884,33.98885590263852],[71.15677330921346,34.34891144463215],[71.11501875192164,34.733125718722235],[71.61307620635071,35.153203436822864],[71.49876793812109,35.650563259416],[71.26234826038575,36.074387518857804],[71.84629194528392,36.50994232842986],[72.92002485544447,36.72000702569632],[74.06755171091783,36.83617564548845],[74.57589277537298,37.02084137628346],[75.15802778514092,37.13303091078912],[75.89689741405013,36.666806138651836],[76.19284834178569,35.89840342868783],[77.83745079947457,35.494009507787766]]]},"properties":{"ISO_A2":"PK","NAME":"Pakistan"}},
105
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[66.51860680528867,37.36278432875879],[67.07578209825962,37.35614390720929],[67.82999962755952,37.144994004864685],[68.13556237170138,37.02311513930431],[68.85944583524594,37.344335842430596],[69.19627282092438,37.15114350030743],[69.51878543485796,37.60899669041342],[70.11657840361033,37.58822276463209],[70.27057417184014,37.735164699854025],[70.3763041523093,38.13839590102752],[70.80682050973289,38.486281643216415],[71.34813113799026,38.25890534113216],[71.23940392444817,37.953265082341886],[71.54191775908478,37.905774441065645],[71.44869347523024,37.06564484308052],[71.8446382994506,36.73817129164692],[72.1930408059624,36.948287665345674],[72.63688968291729,37.047558091778356],[73.26005577992501,37.495256862939],[73.9486959166465,37.4215662704908],[74.98000247589542,37.419990139305895],[75.15802778514092,37.13303091078912],[74.57589277537298,37.02084137628346],[74.06755171091783,36.83617564548845],[72.92002485544447,36.72000702569632],[71.84629194528392,36.50994232842986],[71.26234826038575,36.074387518857804],[71.49876793812109,35.650563259416],[71.61307620635071,35.153203436822864],[71.11501875192164,34.733125718722235],[71.15677330921346,34.34891144463215],[70.8818030129884,33.98885590263852],[69.9305432473596,34.02012014417511],[70.3235941913716,33.35853261975839],[69.68714725126486,33.105498969041236],[69.26252200712256,32.5019440780883],[69.31776411324256,31.901412258424443],[68.92667687365767,31.620189113892067],[68.55693200060932,31.713310044882018],[67.79268924344478,31.58293040620963],[67.68339358914747,31.30315420178142],[66.93889122911847,31.304911200479353],[66.38145755398602,30.738899237586452],[66.34647260932442,29.887943427036177],[65.0468620136161,29.472180691031905],[64.35041873561852,29.560030625928093],[64.14800215033125,29.340819200145972],[63.55026085801117,29.468330796826166],[62.54985680527278,29.31857249604431],[60.87424848820879,29.829238999952608],[61.781221551363444,30.735850328081238],[61.69931440618083,31.379506130492672],[60.94194461451113,31.548074652628753],[60.863654819588966,32.18291962333443],[60.536077915290775,32.98126882581157],[60.963700392506006,33.52883230237626],[60.52842980331158,33.676446031218006],[60.80319339380745,34.40410187431986],[61.210817091725744,35.650072333309225],[62.230651483005886,35.270663967422294],[62.98466230657661,35.40404083916762],[63.19353844590035,35.857165635718914],[63.98289594915871,36.0079574651466],[64.5464791197339,36.31207326918427],[64.7461051776774,37.111817735333304],[65.58894778835784,37.30521678318564],[65.74563073106683,37.66116404881207],[66.21738488145934,37.39379018813392],[66.51860680528867,37.36278432875879]]]},"properties":{"ISO_A2":"AF","NAME":"Afghanistan"}},
106
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[67.82999962755952,37.144994004864685],[68.39203250516596,38.15702525486874],[68.17602501818592,38.901553453113905],[67.44221967964131,39.140143541005486],[67.70142866401736,39.58047842056453],[68.53641645698943,39.53345286717894],[69.0116329283455,40.08615814875667],[69.32949466337283,40.72782440852485],[70.66662234892505,40.960213324541414],[70.45815962105962,40.49649485937029],[70.60140669137269,40.21852733007229],[71.01419803252017,40.24436554621823],[70.64801883329997,39.93575389257117],[69.55960981636852,40.10321137141298],[69.46488691597753,39.5266832545487],[70.54916181832562,39.6041979029865],[71.784693637992,39.27946320246437],[73.6753792662548,39.4312368841056],[73.92885216664644,38.50581533462274],[74.25751427602273,38.60650686294345],[74.86481570831683,38.3788463404816],[74.8299857929521,37.9900070257014],[74.98000247589542,37.419990139305895],[73.9486959166465,37.4215662704908],[73.26005577992501,37.495256862939],[72.63688968291729,37.047558091778356],[72.1930408059624,36.948287665345674],[71.8446382994506,36.73817129164692],[71.44869347523024,37.06564484308052],[71.54191775908478,37.905774441065645],[71.23940392444817,37.953265082341886],[71.34813113799026,38.25890534113216],[70.80682050973289,38.486281643216415],[70.3763041523093,38.13839590102752],[70.27057417184014,37.735164699854025],[70.11657840361033,37.58822276463209],[69.51878543485796,37.60899669041342],[69.19627282092438,37.15114350030743],[68.85944583524594,37.344335842430596],[68.13556237170138,37.02311513930431],[67.82999962755952,37.144994004864685]]]},"properties":{"ISO_A2":"TJ","NAME":"Tajikistan"}},
107
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[70.96231489449914,42.266154283205495],[71.18628055205212,42.70429291439214],[71.8446382994506,42.8453954127651],[73.48975752146237,42.50089447689132],[73.64530358266092,43.09127187760987],[74.21286583852256,43.29833934180337],[75.63696495962202,42.87789988867668],[76.00035363149846,42.98802236589067],[77.65839196158322,42.96068553320826],[79.14217736197978,42.85609243424952],[79.64364546094012,42.49668284765953],[80.2599902688853,42.34999929459906],[80.11943037305139,42.12394074153825],[78.54366092317531,41.58224254003869],[78.18719689322597,41.18531586360481],[76.90448449087708,41.06648590754965],[76.52636803579745,40.42794607193512],[75.4678279967307,40.56207225194867],[74.77686242055606,40.36642527929163],[73.8222436868283,39.893973497063186],[73.96001305531843,39.660008449861735],[73.6753792662548,39.4312368841056],[71.784693637992,39.27946320246437],[70.54916181832562,39.6041979029865],[69.46488691597753,39.5266832545487],[69.55960981636852,40.10321137141298],[70.64801883329997,39.93575389257117],[71.01419803252017,40.24436554621823],[71.77487511585656,40.14584442805378],[73.05541710804917,40.866033026689465],[71.87011478057047,41.392900092121266],[71.1578585142916,41.14358714452912],[70.42002241402821,41.51999827734314],[71.25924767444823,42.16771067968946],[70.96231489449914,42.266154283205495]]]},"properties":{"ISO_A2":"KG","NAME":"Kyrgyzstan"}},
108
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[52.50245975119615,41.78331553808637],[52.944293247291654,42.11603424739759],[54.07941775901495,42.32410940202083],[54.75534549339264,42.043971462566574],[55.45525109235377,41.25985911718584],[55.96819135928291,41.30864166926936],[57.0963912290791,41.32231008561057],[56.932215203687804,41.826026109375604],[57.78652998233708,42.17055288346552],[58.62901085799146,42.75155101172305],[59.976422153569786,42.22308197689021],[60.083340691981675,41.425146185871405],[60.465952996670694,41.22032664648255],[61.54717898951356,41.266370347654615],[61.88271406438469,41.084856879229406],[62.374260288345006,40.05388621679039],[63.51801476426103,39.36325653742564],[64.17022301621677,38.892406724598246],[65.2159989765074,38.4026950139843],[66.54615034370022,37.97468496352687],[66.51860680528867,37.36278432875879],[66.21738488145934,37.39379018813392],[65.74563073106683,37.66116404881207],[65.58894778835784,37.30521678318564],[64.7461051776774,37.111817735333304],[64.5464791197339,36.31207326918427],[63.98289594915871,36.0079574651466],[63.19353844590035,35.857165635718914],[62.98466230657661,35.40404083916762],[62.230651483005886,35.270663967422294],[61.210817091725744,35.650072333309225],[61.123070509694145,36.491597194966246],[60.37763797388388,36.52738312432837],[59.23476199731681,37.41298798273034],[58.436154412678206,37.5223094752438],[57.330433790928986,38.02922943781094],[56.61936608259282,38.121394354803485],[56.18037479027333,37.93512665460743],[55.51157840355191,37.96411713312317],[54.800303989486565,37.392420762678185],[53.92159793479556,37.19891836196126],[53.73551110211252,37.90613617609169],[53.880928582581845,38.95209300389536],[53.1010278664329,39.29057363540713],[53.35780805849123,39.97528636327445],[52.69397260926982,40.03362905533197],[52.915251092343624,40.87652334244473],[53.858139275941134,40.63103445084218],[54.73684533063215,40.95101491959346],[54.008310988181314,41.55121084244742],[53.72171349469059,42.12319143327003],[52.916749708880076,41.86811656347733],[52.81468875510362,41.13537059179471],[52.50245975119615,41.78331553808637]]]},"properties":{"ISO_A2":"TM","NAME":"Turkmenistan"}},
109
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[48.567971225789755,29.926778265903522],[48.0145683123761,30.452456773392598],[48.004698113808324,30.985137437457244],[47.68528608581227,30.984853217079632],[47.8492037290421,31.70917593029867],[47.33466149271191,32.46915538179911],[46.10936160663932,33.017287299119005],[45.41669070819904,33.967797756479584],[45.64845950702809,34.748137722303014],[46.15178795755094,35.09325877536429],[46.0763403664048,35.67738332777549],[45.42061811705321,35.977545884742824],[44.77267710159504,37.17043692561684],[44.77267,37.17045],[44.22575564960053,37.97158437758935],[44.421402622257546,38.28128123631454],[44.10922529478234,39.4281362981681],[44.79398969908195,39.71300263117705],[44.95268802265031,39.33576467544637],[45.45772179543877,38.87413910578306],[46.14362308124882,38.74120148371222],[46.50571984231797,38.770605373686294],[47.685079380083096,39.50836395930122],[48.06009524922524,39.58223541926246],[48.35552941263788,39.28876496027691],[48.01074425638648,38.79401479751452],[48.63437544128482,38.27037750910097],[48.88324913920249,38.32024526626262],[49.19961225769334,37.582874253889884],[50.14777143738462,37.37456655532134],[50.84235436381971,36.8728142359834],[52.264024692601424,36.7004216578577],[53.82578982932642,36.965030829408235],[53.92159793479556,37.19891836196126],[54.800303989486565,37.392420762678185],[55.51157840355191,37.96411713312317],[56.18037479027333,37.93512665460743],[56.61936608259282,38.121394354803485],[57.330433790928986,38.02922943781094],[58.436154412678206,37.5223094752438],[59.23476199731681,37.41298798273034],[60.37763797388388,36.52738312432837],[61.123070509694145,36.491597194966246],[61.210817091725744,35.650072333309225],[60.80319339380745,34.40410187431986],[60.52842980331158,33.676446031218006],[60.963700392506006,33.52883230237626],[60.536077915290775,32.98126882581157],[60.863654819588966,32.18291962333443],[60.94194461451113,31.548074652628753],[61.69931440618083,31.379506130492672],[61.781221551363444,30.735850328081238],[60.87424848820879,29.829238999952608],[61.36930870956494,29.303276272085924],[61.77186811711863,28.6993338078908],[62.72783043808599,28.25964488373539],[62.75542565292986,27.378923448184988],[63.2338977395203,27.21704702403071],[63.31663170761959,26.756532497661667],[61.87418745305655,26.239974880472104],[61.49736290878419,25.0782370061185],[59.616134067630846,25.380156561783778],[58.525761346272304,25.60996165618573],[57.39725141788239,25.73990204518364],[56.970765822177555,26.966106268821363],[56.492138706290206,27.143304755150197],[55.723710158110066,26.964633490501043],[54.71508955263727,26.480657863871514],[53.49309695823135,26.81236888275305],[52.48359785340961,27.580849107365495],[51.52076256694742,27.865689602158298],[50.85294803243954,28.814520575469388],[50.115008579311585,30.147772528599717],[49.576850213423995,29.985715236932407],[48.94133344909855,30.317090359004037],[48.567971225789755,29.926778265903522]]]},"properties":{"ISO_A2":"IR","NAME":"Iran"}},
110
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[35.71991824722275,32.709192409794866],[35.70079796727475,32.71601369885738],[35.836396925608625,32.86812327730851],[35.82110070165024,33.2774264592763],[36.066460402172055,33.82491242119255],[36.61175011571589,34.20178864189718],[36.4481942075121,34.59393524834407],[35.99840254084364,34.644914048800004],[35.905023227692226,35.410009467097325],[36.149762811026534,35.82153473565367],[36.417550083163036,36.04061697035506],[36.6853890317318,36.259699205056464],[36.7394942563414,36.81752045343109],[37.06676110204583,36.62303620050062],[38.1677274920242,36.90121043552777],[38.6998913917659,36.71292735447234],[39.52258019385255,36.71605377862599],[40.67325931169569,37.09127635349729],[41.21208947120305,37.074352321921694],[42.34959109881177,37.2298725449041],[41.83706424334096,36.605853786763575],[41.289707472505455,36.35881460219227],[41.383965285005814,35.628316555314356],[41.006158888519934,34.41937226006212],[38.792340529136084,33.378686428352225],[36.834062127435544,32.312937526980775],[35.71991824722275,32.709192409794866]]]},"properties":{"ISO_A2":"SY","NAME":"Syria"}},
111
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[46.50571984231797,38.770605373686294],[46.14362308124882,38.74120148371222],[45.73537926614301,39.31971914321974],[45.73997846861698,39.47399913182713],[45.29814497252146,39.471751207022436],[45.00198733905675,39.740003567049555],[44.79398969908195,39.71300263117705],[44.4000085792887,40.00500031184228],[43.65643639504094,40.253563951166186],[43.75265791196841,40.74020091405876],[43.58274580259273,41.09214325618257],[44.97248009621808,41.248128567055595],[45.17949588397934,40.98535390885141],[45.56035118997045,40.812289537105926],[45.35917483905817,40.56150381119346],[45.89190717955509,40.21847565364],[45.61001224140293,39.89999380142518],[46.034534132680676,39.628020738273065],[46.48349897643246,39.464154771475535],[46.50571984231797,38.770605373686294]]]},"properties":{"ISO_A2":"AM","NAME":"Armenia"}},
112
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[11.027368605196868,58.85614940045936],[11.468271925511146,59.43239329694604],[12.3003658382749,60.11793284773003],[12.631146681375185,61.293571682370136],[11.992064243221563,61.80036245385655],[11.930569288794231,63.12831757267698],[12.579935336973934,64.06621898055833],[13.571916131248713,64.04911408146971],[13.919905226302204,64.44542064071608],[13.55568973150909,64.78702769638151],[15.108411492583002,66.19386688909547],[16.108712192456778,67.30245555283689],[16.768878614985482,68.0139366726314],[17.729181756265348,68.01055186631628],[17.993868442464333,68.56739126247736],[19.878559604581255,68.40719432237258],[20.025268995857886,69.0651386583127],[20.645592889089528,69.10624726020087],[21.978534783626117,68.6168456081807],[23.53947309743444,67.93600861273525],[23.565879754335583,66.39605093043743],[23.903378533633802,66.00692739527962],[22.18317345550193,65.72374054632017],[21.21351687997722,65.02600535751527],[21.369631381930958,64.41358795842429],[19.77887576669022,63.60955434839504],[17.84777916837521,62.74940013289681],[17.119554884518124,61.34116567651097],[17.83134606290639,60.63658336042741],[18.78772179533209,60.081914374422595],[17.86922488777634,58.9537661810587],[16.829185011470088,58.71982697207339],[16.447709588291474,57.041118069071885],[15.879785597403783,56.10430186626866],[14.666681349352075,56.200885118222175],[14.100721062891465,55.40778107362265],[12.942910597392057,55.36173737245058],[12.625100538797028,56.30708018658197],[11.787942335668674,57.44181712506307],[11.027368605196868,58.85614940045936]]]},"properties":{"ISO_A2":"SE","NAME":"Sweden"}},
113
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.17670942557794,56.16912995057879],[29.229513380660308,55.91834422466636],[29.371571893030673,55.670090643936184],[29.896294386522356,55.78946320253041],[30.87390913262001,55.55097646750341],[30.971835971813135,55.08154775656404],[30.75753380709872,54.81177094178432],[31.38447228366374,54.15705638286238],[31.79142418796224,53.974638576872124],[31.731272820774507,53.79402944601202],[32.405598585751164,53.61804535584204],[32.69364301934604,53.35142080343218],[32.30451948418823,53.13272614197291],[31.49763999999999,53.16743000000014],[31.305200636528014,53.07399587667321],[31.54001834486226,52.74205231384636],[31.785970000000077,52.1016800000001],[31.78599244755525,52.1016775699397],[30.927549269338982,52.04235342061439],[30.619454380014815,51.822806098022454],[30.555117221811457,51.31950348571566],[30.157363722460897,51.41613841410147],[29.25493818534784,51.36823436136689],[28.992835320763533,51.602044379271476],[28.61761274589225,51.42771393493484],[28.24161502453657,51.57222707783907],[27.454066196408405,51.592303371784396],[26.337958611768556,51.83228872334797],[25.32778771332701,51.91065603291855],[24.553106316839518,51.888461005249184],[24.00507775238418,51.617443956094405],[23.52707075368437,51.57845408793031],[23.508002150168693,52.02364655212473],[23.199493849386187,52.48697744405367],[23.79919884613338,52.69109935160657],[23.80493493011778,53.089731350306074],[23.527535841575002,53.470121568406555],[23.48412763844985,53.91249766704114],[24.450683628037037,53.905702216194754],[25.536353794056993,54.28242340760253],[25.7684326514798,54.84696259217509],[26.58827924979039,55.16717560487167],[26.494331495883756,55.615106919977634],[27.10245975109453,55.783313707087686],[28.17670942557794,56.16912995057879]]]},"properties":{"ISO_A2":"BY","NAME":"Belarus"}},
114
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[31.78599244755525,52.1016775699397],[32.15944000000013,52.06125000000014],[32.41205813978769,52.28869497334978],[32.715760532367085,52.23846548116211],[33.75269982273579,52.3350745713318],[34.39173058445709,51.768881740925906],[34.141978387190534,51.566413479206346],[34.22481570815427,51.25599315042888],[35.02218305841791,51.2075723333715],[35.377909999999986,50.773940000000096],[35.356116163887975,50.57719737405904],[36.62616784032542,50.225590928745135],[37.39345950699516,50.38395335550365],[38.01063113785693,49.9156615260747],[38.59498823421342,49.9264619004237],[40.06904000000014,49.60104999999999],[40.080789015469406,49.30742991799934],[39.674649999999986,48.78382000000016],[39.89562000000018,48.23241000000007],[39.738277622238854,47.89893707945197],[38.77057000000008,47.825620000000185],[38.25511233902978,47.54640045835691],[38.223538038899335,47.10218984637595],[37.4251371599899,47.02222056740419],[36.75985477066445,46.69870026304102],[35.82368452326489,46.64596446388714],[34.96234174982385,46.27319651954974],[35.01265897004737,45.73772519982549],[34.861792128174045,45.76818243191957],[34.73201738827845,45.96566573176062],[34.41040172853718,46.005162391728845],[33.69946184910907,46.219572831556434],[33.435988094713366,45.971917370797485],[33.29856733575474,46.08059845639781],[31.744140252415207,46.33334788673733],[31.67530724460255,46.70624502215554],[30.74874881360921,46.583100084004116],[30.377608676888883,46.03241018328572],[29.603289015427436,45.293308010431126],[29.149724969201653,45.464925442072456],[28.67977949393938,45.304030870131704],[28.23355350109904,45.48828318946829],[28.485269402792767,45.5969070501459],[28.65998742037158,45.93998688413164],[28.933717482221596,46.25883047137256],[28.862972446414062,46.43788930926383],[29.07210696789929,46.517677720722496],[29.170653924279804,46.37926239682872],[29.759971958136394,46.34998769793536],[30.024658644335375,46.42393667254504],[29.838210076626297,46.52532583270169],[29.908851759569302,46.67436066343146],[29.559674106573112,46.928582872091326],[29.415135125452736,47.34664520933258],[29.05086795422727,47.5102269557525],[29.12269819511303,47.849095160506465],[28.670891147585166,48.1181485052341],[28.259546746541844,48.15556224221342],[27.522537469195157,48.467119452501116],[26.857823520624805,48.368210761094495],[26.619336785597795,48.22072622333347],[26.19745039236693,48.22088125263035],[25.9459411964024,47.987148749374214],[25.20774336111299,47.89105642352747],[24.866317172960578,47.737525743188314],[24.40205610525038,47.98187775328043],[23.76095828623741,47.985598456405455],[23.142236362406805,48.09634105080695],[22.710531447040495,47.88219391538941],[22.640819939878725,48.150239569687415],[22.085608351334855,48.42226430927179],[22.28084191253356,48.82539215758067],[22.558137648211755,49.085738023467144],[22.776418898212626,49.02739533140962],[22.518450148211603,49.47677358661974],[23.426508416444392,50.30850576435745],[23.92275719574326,50.42488108987874],[24.029985792748903,50.70540660257518],[23.52707075368437,51.57845408793031],[24.00507775238418,51.617443956094405],[24.553106316839518,51.888461005249184],[25.32778771332701,51.91065603291855],[26.337958611768556,51.83228872334797],[27.454066196408405,51.592303371784396],[28.24161502453657,51.57222707783907],[28.61761274589225,51.42771393493484],[28.992835320763533,51.602044379271476],[29.25493818534784,51.36823436136689],[30.157363722460897,51.41613841410147],[30.555117221811457,51.31950348571566],[30.619454380014815,51.822806098022454],[30.927549269338982,52.04235342061439],[31.78599244755525,52.1016775699397]]]},"properties":{"ISO_A2":"UA","NAME":"Ukraine"}},
115
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[23.48412763844985,53.91249766704114],[23.527535841575002,53.470121568406555],[23.80493493011778,53.089731350306074],[23.79919884613338,52.69109935160657],[23.199493849386187,52.48697744405367],[23.508002150168693,52.02364655212473],[23.52707075368437,51.57845408793031],[24.029985792748903,50.70540660257518],[23.92275719574326,50.42488108987874],[23.426508416444392,50.30850576435745],[22.518450148211603,49.47677358661974],[22.776418898212626,49.02739533140962],[22.558137648211755,49.085738023467144],[21.607808058364213,49.47010732685409],[20.887955356538413,49.32877228453583],[20.415839471119853,49.43145335549977],[19.825022820726872,49.21712535256923],[19.320712517990472,49.571574001659194],[18.90957482267632,49.435845852244576],[18.853144158613617,49.49622976337764],[18.392913852622172,49.98862864847075],[17.64944502123899,50.049038397819956],[17.55456709155112,50.36214590107642],[16.86876915860566,50.47397370055603],[16.719475945714436,50.21574656839354],[16.176253289462267,50.42260732685791],[16.23862674323857,50.69773265237984],[15.490972120839729,50.78472992614321],[15.01699588385867,51.10667409932158],[14.607098422919535,51.74518809671997],[14.685026482815687,52.0899474147552],[14.437599725002201,52.62485016540839],[14.074521111719434,52.98126251892535],[14.353315463934138,53.24817129171297],[14.119686313542559,53.75702912049104],[14.802900424873458,54.05070628520575],[16.36347700365573,54.513158677785725],[17.622831658608675,54.85153595643291],[18.62085859546164,54.68260569927078],[18.696254510175464,54.43871877706929],[19.660640089606403,54.42608388937393],[20.892244500418627,54.31252492941253],[22.731098667092652,54.327536932993326],[23.24398725758951,54.22056671814914],[23.48412763844985,53.91249766704114]]]},"properties":{"ISO_A2":"PL","NAME":"Poland"}},
116
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.979666782304037,48.123497015976305],[16.90375410326726,47.71486562762833],[16.340584344150415,47.71290192320123],[16.534267612380376,47.49617096616912],[16.202298211337364,46.85238597267696],[16.011663852612656,46.6836107448117],[15.137091912504985,46.65870270444703],[14.63247155117483,46.43181732846955],[13.806475457421527,46.509306138691215],[12.376485223040817,46.76755910906985],[12.153088006243054,47.11539317482645],[11.16482791509327,46.94157949481273],[11.048555942436536,46.75135854754634],[10.44270145024663,46.89354625099743],[9.932448357796659,46.92072805438296],[9.479969516649021,47.102809963563374],[9.632931756232978,47.34760122332999],[9.59422610844635,47.52505809182027],[9.89606814946319,47.580196845075704],[10.402083774465211,47.30248769793916],[10.544504021861599,47.5663992376538],[11.426414015354737,47.523766181012974],[12.141357456112788,47.703083401065776],[12.620759718484493,47.67238760028441],[12.932626987365948,47.467645575544],[13.02585127122049,47.63758352313583],[12.884102817443875,48.28914581968786],[13.243357374737,48.416114813829054],[13.595945672264437,48.87717194273715],[14.338897739324722,48.55530528420721],[14.901447381254057,48.964401760445824],[15.253415561593982,49.03907420510758],[16.02964725105022,48.73389903420793],[16.499282667718774,48.78580801044511],[16.960288120194576,48.5969823268506],[16.879982944413,48.47001333270947],[16.979666782304037,48.123497015976305]]]},"properties":{"ISO_A2":"AT","NAME":"Austria"}},
117
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.085608351334855,48.42226430927179],[22.640819939878725,48.150239569687415],[22.710531447040495,47.88219391538941],[22.099767693782837,47.6724392767167],[21.626514926853872,46.99423777931816],[21.02195234547125,46.3160879583519],[20.220192498462836,46.127468980486555],[19.596044549241583,46.17172984474454],[18.82983808764996,45.90887767189193],[18.829824792873946,45.908872358025285],[18.45606245288286,45.75948110613615],[17.630066359129557,45.95176911069419],[16.8825150895953,46.38063182228444],[16.564808383864857,46.50375092221983],[16.370504998447416,46.841327216166505],[16.202298211337364,46.85238597267696],[16.534267612380376,47.49617096616912],[16.340584344150415,47.71290192320123],[16.90375410326726,47.71486562762833],[16.979666782304037,48.123497015976305],[17.48847293464982,47.867466132186216],[17.857132602620027,47.75842886005037],[18.696512892336926,47.880953681014404],[18.77702477384767,48.081768296900634],[19.17436486173989,48.11137889260387],[19.661363559658497,48.26661489520866],[19.769470656013112,48.202691148463614],[20.239054396249347,48.32756724709692],[20.473562045989866,48.562850043321816],[20.801293979584926,48.623854071642384],[21.872236362401736,48.31997081155002],[22.085608351334855,48.42226430927179]]]},"properties":{"ISO_A2":"HU","NAME":"Hungary"}},
118
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[26.619336785597795,48.22072622333347],[26.857823520624805,48.368210761094495],[27.522537469195157,48.467119452501116],[28.259546746541844,48.15556224221342],[28.670891147585166,48.1181485052341],[29.12269819511303,47.849095160506465],[29.05086795422727,47.5102269557525],[29.415135125452736,47.34664520933258],[29.559674106573112,46.928582872091326],[29.908851759569302,46.67436066343146],[29.838210076626297,46.52532583270169],[30.024658644335375,46.42393667254504],[29.759971958136394,46.34998769793536],[29.170653924279804,46.37926239682872],[29.07210696789929,46.517677720722496],[28.862972446414062,46.43788930926383],[28.933717482221596,46.25883047137256],[28.65998742037158,45.93998688413164],[28.485269402792767,45.5969070501459],[28.23355350109904,45.48828318946829],[28.0544429867754,45.944586086605625],[28.160017937947714,46.37156260841722],[28.128030226359044,46.810476386088254],[27.551166212684848,47.40511709247083],[27.233872918412743,47.82677094175638],[26.924176059687568,48.123264472030996],[26.619336785597795,48.22072622333347]]]},"properties":{"ISO_A2":"MD","NAME":"Moldova"}},
119
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.23355350109904,45.48828318946829],[28.67977949393938,45.304030870131704],[29.149724969201653,45.464925442072456],[29.603289015427436,45.293308010431126],[29.62654340995877,45.0353909368624],[29.141611769331835,44.820210272799045],[28.8378577003202,44.913873806328056],[28.558081495891997,43.70746165625813],[27.970107049275075,43.81246816667522],[27.242399529740908,44.175986029632405],[26.065158725699746,43.94349376075127],[25.569271681426926,43.68844472917472],[24.100679152124172,43.74105133724785],[23.332302280376325,43.897010809904714],[22.944832391051847,43.82378530534713],[22.65714969248299,44.23492300066128],[22.4740084164406,44.40922760678177],[22.705725538837356,44.57800283464702],[22.459022251075936,44.7025171982543],[22.14508792490281,44.47842234962059],[21.56202273935361,44.7689472519655],[21.48352623870221,45.18117015235788],[20.874312778413355,45.416375433934235],[20.762174920339987,45.734573065771485],[20.220192498462836,46.127468980486555],[21.02195234547125,46.3160879583519],[21.626514926853872,46.99423777931816],[22.099767693782837,47.6724392767167],[22.710531447040495,47.88219391538941],[23.142236362406805,48.09634105080695],[23.76095828623741,47.985598456405455],[24.40205610525038,47.98187775328043],[24.866317172960578,47.737525743188314],[25.20774336111299,47.89105642352747],[25.9459411964024,47.987148749374214],[26.19745039236693,48.22088125263035],[26.619336785597795,48.22072622333347],[26.924176059687568,48.123264472030996],[27.233872918412743,47.82677094175638],[27.551166212684848,47.40511709247083],[28.128030226359044,46.810476386088254],[28.160017937947714,46.37156260841722],[28.0544429867754,45.944586086605625],[28.23355350109904,45.48828318946829]]]},"properties":{"ISO_A2":"RO","NAME":"Romania"}},
120
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[26.494331495883756,55.615106919977634],[26.58827924979039,55.16717560487167],[25.7684326514798,54.84696259217509],[25.536353794056993,54.28242340760253],[24.450683628037037,53.905702216194754],[23.48412763844985,53.91249766704114],[23.24398725758951,54.22056671814914],[22.731098667092652,54.327536932993326],[22.65105187347254,54.582740993866736],[22.75776370615526,54.85657440858138],[22.315723504330577,55.015298570365864],[21.268448927503467,55.190481675835315],[21.055800408622417,56.031076361711065],[22.201156853939494,56.33780182557949],[23.878263787539964,56.27367137310527],[24.86068444184076,56.37252838807963],[25.000934279080894,56.16453074810484],[25.533046502390334,56.100296942766036],[26.494331495883756,55.615106919977634]]]},"properties":{"ISO_A2":"LT","NAME":"Lithuania"}},
121
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.288184848751513,57.47452830670383],[27.77001590344093,57.24425812441123],[27.855282016722526,56.75932648378429],[28.17670942557794,56.16912995057879],[27.10245975109453,55.783313707087686],[26.494331495883756,55.615106919977634],[25.533046502390334,56.100296942766036],[25.000934279080894,56.16453074810484],[24.86068444184076,56.37252838807963],[23.878263787539964,56.27367137310527],[22.201156853939494,56.33780182557949],[21.055800408622417,56.031076361711065],[21.090423618257972,56.78387278912294],[21.581866489353672,57.411870632549935],[22.52434126149288,57.75337433535076],[23.318452996522097,57.00623647727487],[24.12072960785343,57.02569265403277],[24.312862583114622,57.79342357037697],[25.16459354014927,57.97015696881519],[25.60280968598437,57.84752879498657],[26.463532342237787,57.47638865826633],[27.288184848751513,57.47452830670383]]]},"properties":{"ISO_A2":"LV","NAME":"Latvia"}},
122
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[27.981126857000987,59.47537333432527],[27.981120000000033,59.47537000000011],[28.13169925305175,59.300825100330925],[27.42015000000015,58.72457000000014],[27.71668582531572,57.79189911562436],[27.288184848751513,57.47452830670383],[26.463532342237787,57.47638865826633],[25.60280968598437,57.84752879498657],[25.16459354014927,57.97015696881519],[24.312862583114622,57.79342357037697],[24.42892785004216,58.38341339785329],[24.061198357853186,58.25737457949341],[23.426560092876684,58.612753404364625],[23.339795363058645,59.187240302153384],[24.604214308376186,59.46585378685502],[25.86418908051664,59.61109039981133],[26.949135776484525,59.445803331125774],[27.981114129353244,59.475388088612874],[27.981126857000987,59.47537333432527]]]},"properties":{"ISO_A2":"EE","NAME":"Estonia"}},
123
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[14.119686313542559,53.75702912049104],[14.353315463934138,53.24817129171297],[14.074521111719434,52.98126251892535],[14.437599725002201,52.62485016540839],[14.685026482815687,52.0899474147552],[14.607098422919535,51.74518809671997],[15.01699588385867,51.10667409932158],[14.570718214586066,51.002339382524276],[14.307013380600637,51.117267767941414],[14.056227654688172,50.9269176295943],[13.338131951560285,50.73323436136435],[12.966836785543194,50.484076443069085],[12.240111118222558,50.266337795607285],[12.415190870827445,49.96912079528057],[12.521024204161193,49.547415269562734],[13.031328973043431,49.30706818297324],[13.595945672264437,48.87717194273715],[13.243357374737,48.416114813829054],[12.884102817443875,48.28914581968786],[13.02585127122049,47.63758352313583],[12.932626987365948,47.467645575544],[12.620759718484493,47.67238760028441],[12.141357456112788,47.703083401065776],[11.426414015354737,47.523766181012974],[10.544504021861599,47.5663992376538],[10.402083774465211,47.30248769793916],[9.89606814946319,47.580196845075704],[9.59422610844635,47.52505809182027],[8.522611932009767,47.83082754169129],[8.317301466514095,47.61357982033627],[7.466759067422231,47.62058197691181],[7.593676385131062,48.33301911070372],[8.099278598674744,49.01778351500333],[6.658229607783568,49.20195831969157],[6.186320428094177,49.463802802114515],[6.242751092156993,49.90222565367873],[6.043073357781111,50.128051662794235],[6.15665815595878,50.80372101501058],[5.988658074577813,51.851615709025054],[6.589396599970826,51.852029120483394],[6.842869500362383,52.22844025329755],[7.092053256873896,53.144043280644894],[6.905139601274129,53.48216217713065],[7.100424838905269,53.69393219666267],[7.936239454793963,53.74829580343379],[8.121706170289485,53.52779246684429],[8.800734490604668,54.020785630908904],[8.57211795414537,54.39564647075406],[8.526229282270208,54.96274363872516],[9.282048780971138,54.830865383516176],[9.921906365609118,54.98310415304803],[9.9395797054529,54.596641954153256],[10.950112338920519,54.363607082733154],[10.93946699386845,54.00869334575259],[11.956252475643282,54.19648550070116],[12.518440382546714,54.470370591847995],[13.647467075259499,54.0755109727059],[14.119686313542559,53.75702912049104]]]},"properties":{"ISO_A2":"DE","NAME":"Germany"}},
124
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.65714969248299,44.23492300066128],[22.944832391051847,43.82378530534713],[23.332302280376325,43.897010809904714],[24.100679152124172,43.74105133724785],[25.569271681426926,43.68844472917472],[26.065158725699746,43.94349376075127],[27.242399529740908,44.175986029632405],[27.970107049275075,43.81246816667522],[28.558081495891997,43.70746165625813],[28.03909508638472,43.293171698574184],[27.67389773937805,42.57789236100622],[27.99672041190539,42.00735871028779],[27.13573937349048,42.14148489030134],[26.1170418637208,41.82690460872456],[26.106138136507127,41.32889883072784],[25.197201368925448,41.23448598893053],[24.492644891057978,41.58389618587205],[23.692073601992348,41.309080918943856],[22.952377150166452,41.33799388281115],[22.881373732197346,41.999297186850356],[22.380525750424592,42.32025950781509],[22.54501183440962,42.46136200618804],[22.43659467946128,42.580321153323936],[22.60480146657133,42.898518785161144],[22.986018507588483,43.2111612005271],[22.500156691180223,43.642814439461006],[22.410446404721597,44.008063462899955],[22.65714969248299,44.23492300066128]]]},"properties":{"ISO_A2":"BG","NAME":"Bulgaria"}},
125
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[26.290002882601698,35.29999034274793],[26.16499759288766,35.00499542900977],[24.724982130642303,34.91998769788964],[24.735007358506916,35.08499054619759],[23.51497846852808,35.27999156345098],[23.699980096133004,35.70500438083549],[24.246665073348705,35.368022365860185],[25.02501549652891,35.42499563246197],[25.769207797964185,35.35401805270908],[25.745023227651586,35.1799976669662],[26.290002882601698,35.29999034274793]]],[[[22.952377150166452,41.33799388281115],[23.692073601992348,41.309080918943856],[24.492644891057978,41.58389618587205],[25.197201368925448,41.23448598893053],[26.106138136507127,41.32889883072784],[26.1170418637208,41.82690460872456],[26.60419559093623,41.562114569661105],[26.294602085075667,40.93626129817413],[26.05694217296534,40.82412344010076],[25.44767703624416,40.85254547786144],[24.92584842296094,40.947061672523205],[23.71481123220076,40.687129218095095],[24.40799889496401,40.12499298762407],[23.899967889102584,39.96200552017552],[23.342999301860743,39.96099782974579],[22.813987664488934,40.476005153966526],[22.626298862404724,40.25656118423916],[22.84974775563478,39.659310818025745],[23.35002729665257,39.190011298167235],[22.973099399515547,38.97090322524963],[23.530016310324925,38.51000112563844],[24.025024855248887,38.21999298761642],[24.040011020613576,37.655014553369426],[23.115002882589124,37.920011298162194],[23.409971958111043,37.40999074965737],[22.77497195810861,37.30501007745653],[23.15422529469862,36.422505804992056],[22.490028110451078,36.4100001083774],[21.67002648284364,36.8449864771942],[21.29501061370155,37.64498932550464],[21.120034213961333,38.31032339126273],[20.730032179454554,38.769985256498785],[20.217712029712857,39.34023468683961],[20.15001590341052,39.62499766698397],[20.615000441172754,40.11000682225938],[20.674996779063633,40.43499990494303],[20.999989861747224,40.58000397395398],[21.0200403174764,40.84272695572588],[21.674160597426976,40.931274522457954],[22.05537763844427,41.14986583105269],[22.597308383889015,41.130487168943205],[22.761770000000013,41.30480000000006],[22.952377150166452,41.33799388281115]]]]},"properties":{"ISO_A2":"GR","NAME":"Greece"}},
126
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[44.77267710159504,37.17043692561684],[44.29345177590287,37.0015143906063],[43.9422587420473,37.25622752537295],[42.77912560402183,37.385263576805755],[42.34959109881177,37.2298725449041],[41.21208947120305,37.074352321921694],[40.67325931169569,37.09127635349729],[39.52258019385255,36.71605377862599],[38.6998913917659,36.71292735447234],[38.1677274920242,36.90121043552777],[37.06676110204583,36.62303620050062],[36.7394942563414,36.81752045343109],[36.6853890317318,36.259699205056464],[36.417550083163036,36.04061697035506],[36.149762811026534,35.82153473565367],[35.782084995269855,36.27499542901485],[36.160821567537,36.65060557712833],[35.55093631362831,36.565442816711325],[34.714553256984345,36.7955321314909],[34.026894972476384,36.219960028624016],[32.509158156064075,36.107563788389186],[31.699595167779567,36.64427521417258],[30.621624790171097,36.6778648951623],[30.391096225717064,36.26298065850699],[29.69997562024554,36.144357408180994],[28.732902866335422,36.67683136651647],[27.641186557737317,36.65882212986274],[27.048767937943264,37.653360907536],[26.318218214633045,38.208133246405396],[26.804700148228733,38.985760199533516],[26.17078535330433,39.463612168936464],[27.28001997244939,40.42001373957831],[28.81997765474722,40.46001129817221],[29.240003696415584,41.21999074967267],[31.14593387220444,41.08762156835702],[32.34797936374571,41.736264146484615],[33.51328291192746,42.01896006933731],[35.167703891751785,42.040224921225416],[36.9131270688421,41.33535838476427],[38.34766482926452,40.94858612727573],[39.512606642420195,41.10276276301855],[40.373432651538224,41.01367259374735],[41.55408410011066,41.53565623632757],[42.61954878110449,41.58317271581994],[43.58274580259273,41.09214325618257],[43.75265791196841,40.74020091405876],[43.65643639504094,40.253563951166186],[44.4000085792887,40.00500031184228],[44.79398969908195,39.71300263117705],[44.10922529478234,39.4281362981681],[44.421402622257546,38.28128123631454],[44.22575564960053,37.97158437758935],[44.77267,37.17045],[44.77267710159504,37.17043692561684]]],[[[26.1170418637208,41.82690460872456],[27.13573937349048,42.14148489030134],[27.99672041190539,42.00735871028779],[28.115524529744416,41.62288605403624],[28.988442824018733,41.29993419042819],[28.806438429486743,41.05496206314856],[27.61901736828409,40.99982330989314],[27.19237674328238,40.69056570084242],[26.35800906749779,40.151993923496505],[26.04335127127257,40.61775360774317],[26.05694217296534,40.82412344010076],[26.294602085075667,40.93626129817413],[26.60419559093623,41.562114569661105],[26.1170418637208,41.82690460872456]]]]},"properties":{"ISO_A2":"TR","NAME":"Turkey"}},
127
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[21.0200403174764,40.84272695572588],[20.999989861747224,40.58000397395398],[20.674996779063633,40.43499990494303],[20.615000441172754,40.11000682225938],[20.15001590341052,39.62499766698397],[19.980000441170148,39.69499339452341],[19.960001661873207,39.91500580500605],[19.406081984136733,40.250773423822466],[19.319058872157143,40.72723012955356],[19.40354983895429,41.40956574153546],[19.540027296637106,41.71998607031276],[19.37176883309496,41.877547512370654],[19.37176816334725,41.877550679783496],[19.304486118250793,42.19574514420782],[19.73805138517963,42.68824738216557],[19.801613396898688,42.50009349219084],[20.070700000000045,42.58863000000008],[20.283754510181893,42.32025950781508],[20.522950000000037,42.21787000000006],[20.590246546680227,41.855408919283626],[20.59024743010491,41.855404161133606],[20.463175083099202,41.51508901627534],[20.605181919037364,41.086226304685226],[21.0200403174764,40.84272695572588]]]},"properties":{"ISO_A2":"AL","NAME":"Albania"}},
128
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.564808383864857,46.50375092221983],[16.8825150895953,46.38063182228444],[17.630066359129557,45.95176911069419],[18.45606245288286,45.75948110613615],[18.829824792873946,45.908872358025285],[19.072768995854176,45.52151113543209],[19.39047570158459,45.236515611342384],[19.005484597557594,44.86023449354299],[18.553214145591653,45.08158966733146],[17.861783481526402,45.067740383477144],[17.002146030351014,45.23377676043094],[16.534939406000206,45.21160757097772],[16.318156772535872,45.00412669532591],[15.959367303133376,45.23377676043094],[15.750026075918981,44.818711656262565],[16.23966027188453,44.35114329688571],[16.456442905348865,44.04123973243128],[16.91615644701733,43.66772247982567],[17.297373488034452,43.44634064388737],[17.674921502358984,43.02856252702361],[18.559999999999945,42.64999999999998],[18.45001688302086,42.47999224531218],[18.450016310304818,42.47999136002932],[17.509970330483327,42.849994615239154],[16.930005730871642,43.20999848080038],[16.015384555737683,43.50721548112722],[15.174453973052096,44.243191229827914],[15.376250441151797,44.31791535092208],[14.92030927904051,44.73848399512946],[14.901602410550879,45.07606028907611],[14.258747592839995,45.23377676043094],[13.952254672917036,44.80212352149687],[13.656975538801191,45.13693512631596],[13.67940311041582,45.48414907488501],[13.715059848697223,45.500323798192376],[14.411968214585414,45.46616567644746],[14.595109490627806,45.634940904312714],[14.935243767972935,45.471695054702685],[15.327674594797429,45.45231639259333],[15.323953891672405,45.73178253842768],[15.671529575267556,45.83415355079788],[15.768732944408553,46.23810822202345],[16.564808383864857,46.50375092221983]]]},"properties":{"ISO_A2":"HR","NAME":"Croatia"}},
129
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[9.59422610844635,47.52505809182027],[9.632931756232978,47.34760122332999],[9.479969516649021,47.102809963563374],[9.932448357796659,46.92072805438296],[10.44270145024663,46.89354625099743],[10.363378126678612,46.48357127540986],[9.922836541390382,46.31489940040919],[9.182881707403055,46.44021474871698],[8.966305779667806,46.03693187111119],[8.489952426801324,46.005150865251686],[8.31662967289438,46.16364248309086],[7.7559920589598335,45.82449005795931],[7.2738509456766565,45.776947740250776],[6.843592970414505,45.99114655210061],[6.5000997249704255,46.42967275652944],[6.022609490593538,46.27298981382047],[6.037388950229001,46.725778713561866],[6.768713820023606,47.2877082383037],[6.736571079138059,47.541801255882845],[7.192202182655507,47.44976552997102],[7.466759067422231,47.62058197691181],[8.317301466514095,47.61357982033627],[8.522611932009767,47.83082754169129],[9.59422610844635,47.52505809182027]]]},"properties":{"ISO_A2":"CH","NAME":"Switzerland"}},
130
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.043073357781111,50.128051662794235],[6.242751092156993,49.90222565367873],[6.186320428094177,49.463802802114515],[5.897759230176348,49.44266714130711],[5.674051954784829,49.529483547557504],[5.782417433300907,50.09032786722122],[6.043073357781111,50.128051662794235]]]},"properties":{"ISO_A2":"LU","NAME":"Luxembourg"}},
131
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.15665815595878,50.80372101501058],[6.043073357781111,50.128051662794235],[5.782417433300907,50.09032786722122],[5.674051954784829,49.529483547557504],[4.799221632515724,49.98537303323637],[4.2860229834250845,49.907496649772554],[3.588184441755658,50.37899241800356],[3.1232515804256877,50.78036326761455],[2.658422071960274,50.796848049515745],[2.5135730322461427,51.14850617126183],[3.3149711442285366,51.345780951536085],[3.3150114849641596,51.34577662473805],[3.3149711442285366,51.34575511331991],[4.047071160507528,51.26725861266857],[4.973991326526914,51.47502370869813],[5.606975945670001,51.03729848896978],[6.15665815595878,50.80372101501058]]]},"properties":{"ISO_A2":"BE","NAME":"Belgium"}},
132
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[6.905139601274129,53.48216217713065],[7.092053256873896,53.144043280644894],[6.842869500362383,52.22844025329755],[6.589396599970826,51.852029120483394],[5.988658074577813,51.851615709025054],[6.15665815595878,50.80372101501058],[5.606975945670001,51.03729848896978],[4.973991326526914,51.47502370869813],[4.047071160507528,51.26725861266857],[3.3149711442285366,51.34575511331991],[3.3150114849641596,51.34577662473805],[3.8302885270431375,51.62054454203195],[4.705997348661185,53.091798407597764],[6.074182570020923,53.510403347378144],[6.905139601274129,53.48216217713065]]]},"properties":{"ISO_A2":"NL","NAME":"Netherlands"}},
133
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-9.034817674180246,41.880570583659676],[-8.67194576662672,42.13468943945496],[-8.263856980817792,42.28046865495034],[-8.013174607769912,41.790886135417125],[-7.422512986673795,41.79207469335984],[-7.251308966490824,41.91834605566505],[-6.6686055159676565,41.883386949219584],[-6.389087693700915,41.381815497394655],[-6.851126674822552,41.11108266861753],[-6.864019944679385,40.33087189387483],[-7.026413133156595,40.184524237624245],[-7.066591559263529,39.711891587882775],[-7.498632371439726,39.62957103124181],[-7.098036668313128,39.03007274022379],[-7.374092169616318,38.37305858006492],[-7.029281175148796,38.07576406508977],[-7.166507941099865,37.803894354802225],[-7.537105475281024,37.42890432387624],[-7.453725551778092,37.09778758396607],[-7.855613165711986,36.83826854099627],[-8.382816127953689,36.97888011326246],[-8.898856980820327,36.86880931248078],[-8.746101446965554,37.65134552667661],[-8.83999752443988,38.266243394517616],[-9.287463751655224,38.3584858261586],[-9.526570603869715,38.73742910415491],[-9.446988898140233,39.39206614842837],[-9.048305223008427,39.75509308527877],[-8.977353481471681,40.15930613866581],[-8.768684047877102,40.76063894303019],[-8.79085323733031,41.18433401139126],[-8.99078935386757,41.54345937760364],[-9.034817674180246,41.880570583659676]]]},"properties":{"ISO_A2":"PT","NAME":"Portugal"}},
134
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-7.453725551778092,37.09778758396607],[-7.537105475281024,37.42890432387624],[-7.166507941099865,37.803894354802225],[-7.029281175148796,38.07576406508977],[-7.374092169616318,38.37305858006492],[-7.098036668313128,39.03007274022379],[-7.498632371439726,39.62957103124181],[-7.066591559263529,39.711891587882775],[-7.026413133156595,40.184524237624245],[-6.864019944679385,40.33087189387483],[-6.851126674822552,41.11108266861753],[-6.389087693700915,41.381815497394655],[-6.6686055159676565,41.883386949219584],[-7.251308966490824,41.91834605566505],[-7.422512986673795,41.79207469335984],[-8.013174607769912,41.790886135417125],[-8.263856980817792,42.28046865495034],[-8.67194576662672,42.13468943945496],[-9.034817674180246,41.880570583659676],[-8.984433152695672,42.59277517350627],[-9.392883673530648,43.0266246608127],[-7.97818966310831,43.74833771420099],[-6.754491746436756,43.567909450853925],[-5.411886359061597,43.57423981380968],[-4.3478427799557835,43.40344920508504],[-3.5175317041060907,43.4559007838613],[-1.901351284177764,43.42280202897834],[-1.502770961910528,43.03401439063043],[0.3380469091905809,42.57954600683955],[0.7015906103638941,42.795734361332606],[1.8267932470871528,42.34338471126569],[2.9859989762584576,42.47301504166986],[3.0394840836805486,41.892120266276905],[2.0918416683121848,41.226088568683096],[0.8105245296351882,41.01473196060934],[0.7213310074994013,40.678318386389236],[0.10669152181986874,40.12393362076202],[-0.27871131021294104,39.30997813573272],[0.11129072429383768,38.73851430923304],[-0.4671235823491031,38.29236583104115],[-0.6833894514905978,37.642353827457825],[-1.4383821272748492,37.44306366632422],[-2.146452602538119,36.67414419203729],[-3.4157808089233868,36.65889964451118],[-4.368900926114719,36.677839056946155],[-4.995219285492212,36.32470815687964],[-5.3771597965614575,35.946850083961465],[-5.866432257500904,36.02981659600606],[-6.236693894872175,36.367677110330334],[-6.520190802425404,36.94291331638732],[-7.453725551778092,37.09778758396607]]]},"properties":{"ISO_A2":"ES","NAME":"Spain"}},
135
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-6.197884894220991,53.867565009163364],[-6.032985398777611,53.15316417094435],[-6.788856573910849,52.260117906292336],[-8.56161658368356,51.669301255899356],[-9.977085740590269,51.82045482035308],[-9.166282517930782,52.86462881124268],[-9.688524542672454,53.8813626165853],[-8.327987433292009,54.66451894796863],[-7.572167934591064,55.13162221945487],[-7.3660306461787854,54.59584096945272],[-7.572167934591064,54.059956366586],[-6.953730231138067,54.073702297575636],[-6.197884894220991,53.867565009163364]]]},"properties":{"ISO_A2":"IE","NAME":"Ireland"}},
136
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[165.77998986232637,-21.08000497811563],[166.59999148993384,-21.700018812753527],[167.1200114280869,-22.15999073658349],[166.7400346214448,-22.39997608814695],[166.18973229396866,-22.129708347260454],[165.47437544175222,-21.679606621998232],[164.82981530177568,-21.14981983814195],[164.16799523341365,-20.444746595951628],[164.029605747736,-20.105645847252354],[164.45996707586272,-20.1200118954295],[165.02003624904205,-20.45999114347773],[165.46000939357512,-20.80002206795826],[165.77998986232637,-21.08000497811563]]]},"properties":{"ISO_A2":"NC","NAME":"New Caledonia"}},
137
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[162.1190246930409,-10.48271900802115],[162.3986458681722,-10.826367282762106],[161.70003218001835,-10.820011081590211],[161.31979699121476,-10.204751478723168],[161.91738325423802,-10.446700534713713],[162.1190246930409,-10.48271900802115]]],[[[161.67998172428912,-9.599982191611367],[161.5293966005906,-9.784312025596485],[160.78825320866054,-8.917543226764892],[160.57999718652434,-8.32000864017396],[160.92002811100485,-8.32000864017396],[161.28000613835,-9.120011488484451],[161.67998172428912,-9.599982191611367]]],[[[160.85222863183787,-9.872937106977048],[160.4625883323572,-9.895209649294841],[159.84944746321412,-9.794027194867354],[159.64000288313514,-9.639979750205278],[159.70294477766663,-9.242949720906815],[160.36295617089843,-9.40030445723557],[160.68851769433724,-9.610162448772869],[160.85222863183787,-9.872937106977048]]],[[[159.64000288313514,-8.020026950719632],[159.87502729719859,-8.337320244991737],[159.91740197167792,-8.53828989017483],[159.13367719953936,-8.114181410355428],[158.5861137229747,-7.7548235001977375],[158.21114953026483,-7.421872246941199],[158.35997765526542,-7.320017998893917],[158.8200012555277,-7.560003350457379],[159.64000288313514,-8.020026950719632]]],[[[157.14000044171888,-7.021638278840641],[157.5384257346892,-7.347819919466943],[157.33941979393325,-7.404767347852592],[156.90203047101483,-7.1768742814454285],[156.4913578635913,-6.765943291860452],[156.542827590154,-6.599338474151452],[157.14000044171888,-7.021638278840641]]]]},"properties":{"ISO_A2":"SB","NAME":"Solomon Is."}},
138
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[176.8858236026052,-40.0659778785822],[176.50801720611926,-40.60480803808957],[176.01244022044023,-41.28962411882147],[175.23956749908297,-41.68830779395328],[175.06789839100935,-41.42589487077513],[174.65097293527847,-41.2818209775454],[175.22763024322356,-40.45923552832336],[174.9001566917899,-39.9089332008472],[173.82404666574394,-39.50885426204351],[173.85226199777532,-39.14660247167748],[174.57480187408035,-38.797683200842755],[174.74347374908098,-38.02780771255843],[174.6970166364506,-37.38112883885792],[174.2920284365792,-36.71109221776149],[174.31900353423552,-36.53482390721391],[173.8409965355357,-36.12198088963413],[173.0541711774596,-35.23712533950039],[172.63600548735377,-34.52910654066943],[173.00704227120946,-34.45066171645037],[173.55129845610747,-35.00618336358801],[174.3293904971262,-35.26549570082862],[174.61200890533044,-36.15639739354052],[175.33661583892712,-37.20909799575827],[175.3575964704376,-36.52619394302117],[175.80888675364253,-36.79894215265767],[175.9584900251275,-37.55538176854612],[176.76319542877656,-37.881253350578675],[177.4388131045605,-37.961248467766495],[178.01035444570866,-37.579824721020174],[178.51709354076274,-37.6953732236248],[178.27473107331383,-38.58281259537314],[177.97046023997927,-39.166342868812976],[177.20699262929918,-39.14577564876082],[176.93998050364706,-39.44973642350161],[177.0329464053401,-39.879942722331464],[176.8858236026052,-40.0659778785822]]],[[[169.66781456937315,-43.555325616226376],[170.52491987536615,-43.031688327812816],[171.125089960004,-42.51275359473782],[171.56971398344325,-41.767424411792135],[171.94870893787186,-41.514416599291124],[172.0972270042787,-40.956104424809716],[172.79857954334403,-40.4939620908235],[173.02037479074076,-40.919052422856446],[173.2472343285021,-41.33199879330081],[173.9584053897028,-40.926700534835646],[174.24758670480816,-41.34915536882171],[174.24851688058942,-41.77000823340673],[173.87644656808794,-42.23318409603879],[173.2227396995957,-42.970038344088614],[172.71124637277074,-43.372287693048555],[173.08011274647015,-43.853343601253606],[172.3085836123525,-43.86569426857136],[171.45292524646362,-44.2425188128437],[171.18513797432718,-44.89710418068486],[170.61669721911653,-45.908928724959736],[169.8314221540093,-46.35577483498757],[169.33233117093428,-46.641235446967876],[168.41135379462855,-46.61994475686363],[167.76374474514682,-46.29019744240919],[166.67688602118417,-46.219917494492236],[166.50914432196467,-45.85270476662619],[167.0464241885033,-45.110941257508635],[168.30376346259686,-44.12397307716614],[168.94940880765157,-43.935819187191434],[169.66781456937315,-43.555325616226376]]]]},"properties":{"ISO_A2":"NZ","NAME":"New Zealand"}},
139
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[147.68925947488418,-40.808258152022674],[148.289067824496,-40.87543751400211],[148.35986453673587,-42.06244516374644],[148.01730146707303,-42.40702361426865],[147.91405195535384,-43.211522312188535],[147.56456424376393,-42.937688897473905],[146.87034305235488,-43.6345972633621],[146.66332726459365,-43.58085377377856],[146.04837772032033,-43.549744561538844],[145.4319295595106,-42.693776137056254],[145.29509036680173,-42.033609714527564],[144.71807132383066,-41.16255177181576],[144.7437545106797,-40.70397511165767],[145.3979781434948,-40.79254851660594],[146.3641207216237,-41.13769540788336],[146.90858361225088,-41.00054615658073],[147.68925947488418,-40.808258152022674]]],[[[126.14871382050114,-32.21596607842059],[125.08862348846566,-32.72875131605285],[124.22164798390492,-32.95948658623607],[124.02894656788851,-33.4838473447017],[123.65966678273077,-33.89017913181271],[122.81103641163364,-33.914467054989885],[122.1830644064228,-34.0034021949642],[121.29919070850259,-33.821036065406176],[120.58026818245806,-33.93017669040661],[119.89369510302822,-33.9760653622818],[119.29889936734875,-34.50936614353394],[119.00734093635802,-34.46414926527854],[118.5057178081008,-34.74681934991509],[118.02497195848949,-35.0647327613747],[117.29550744025741,-35.02545867283287],[116.62510908413495,-35.02509693780683],[115.56434695847966,-34.38642791111157],[115.02680870977957,-34.19651702243893],[115.04861616420676,-33.623425388322055],[115.54512332566708,-33.48725798923297],[115.7146737000167,-33.25957162855497],[115.67937869676135,-32.900368747694166],[115.80164513556394,-32.205062351207005],[115.68961063035516,-31.612437025683807],[115.160909051577,-30.601594333622465],[114.99704308477948,-30.03072478609414],[115.04003787644629,-29.46109547294082],[114.64197431850201,-28.81023080822467],[114.6164978373821,-28.51639861421308],[114.17357913620847,-28.11807667410732],[114.04888390508816,-27.334765313427106],[113.47749759323692,-26.543134047147902],[113.33895307826242,-26.116545098578484],[113.77835778204022,-26.549025160429174],[113.44096235560656,-25.621278171493167],[113.93690107631167,-25.91123463308287],[114.23285200404723,-26.29844614024588],[114.21616051641698,-25.786281019801123],[113.7212553243577,-24.99893889740214],[113.62534386602397,-24.683971042583167],[113.39352339076264,-24.384764499613226],[113.5020438985756,-23.806350192970285],[113.70699262904515,-23.56021534596409],[113.84341841029567,-23.059987481378755],[113.73655154831609,-22.47547535572538],[114.1497563009219,-21.75588103606104],[114.22530724493262,-22.517488295178673],[114.6477620789187,-21.829519952076954],[115.46016727097924,-21.495173435148537],[115.94737267462702,-21.068687839443704],[116.71161543179153,-20.701681817306824],[117.16631635952771,-20.623598728113805],[117.44154503791424,-20.74689869556221],[118.229558953933,-20.37420826587322],[118.83608523974274,-20.263310642174858],[118.98780724495168,-20.044202569257315],[119.25249393115067,-19.952941989829867],[119.80522505094451,-19.976506442954964],[120.85622033089668,-19.683707777589206],[121.39985639860717,-19.239755547769725],[121.65513797412902,-18.70531788500717],[122.24166548064179,-18.197648614171804],[122.28662397673571,-17.798603204013958],[122.3127722514754,-17.25496713630345],[123.01257449757193,-16.405199883695886],[123.43378909718304,-17.268558037996215],[123.85934451710659,-17.069035332917288],[123.50324222218329,-16.596506036040402],[123.81707319549184,-16.111316013252],[124.25828657439985,-16.327943617419535],[124.37972619028575,-15.56705982835399],[124.92615278534004,-15.07510019293536],[125.16727501841387,-14.680395603090028],[125.67008670461381,-14.510070082256014],[125.68579634003055,-14.23065561285385],[126.12514936737608,-14.347340996968903],[126.14282270721986,-14.095986830301227],[126.58258914602374,-13.952791436420448],[127.06586714081732,-13.817967624570954],[127.80463341686196,-14.27690601975508],[128.35968997610894,-14.869169610252243],[128.98554324759584,-14.875990899314765],[129.62147342337965,-14.969783623924522],[129.40960005098293,-14.42066985439107],[129.8886405783286,-13.618703301653492],[130.33946577364293,-13.357375583553484],[130.18350630098604,-13.107520033422276],[130.61779503796697,-12.536392103732489],[131.22349450086,-12.183648776908166],[131.73509118054955,-12.302452894747184],[132.5752982931831,-12.114040622611007],[132.55721154188097,-11.603012383676678],[131.82469811414364,-11.27378183354515],[132.3572237489114,-11.128519382372696],[133.01956058159635,-11.376411228076812],[133.55084598198908,-11.786515394745116],[134.39306847548204,-12.042365411022182],[134.67863244032696,-11.941182956594693],[135.29849124566795,-12.248606052299046],[135.8826933127276,-11.962266940969776],[136.2583809754895,-12.049341729381588],[136.49247521377168,-11.857208754120398],[136.951620314685,-12.351958916882793],[136.6851249533558,-12.887223402562022],[136.3054065288751,-13.291229750219884],[135.96175825413417,-13.324509372615852],[136.07761681533253,-13.724278252825783],[135.78383629775323,-14.2239893530882],[135.4286641786112,-14.715432224183912],[135.50018436090318,-14.997740573794424],[136.2951745952813,-15.55026498785913],[137.06536014215942,-15.87076222093333],[137.5804708192448,-16.21508228929408],[138.30321740127897,-16.807604261952704],[138.58516401586343,-16.806622409739155],[139.10854292211548,-17.06267913174539],[139.2605749859182,-17.371600843986208],[140.21524539607827,-17.710804945550066],[140.87546349503924,-17.369068698803908],[141.07111046769626,-16.83204721442676],[141.27409549373874,-16.38887013109165],[141.39822228410384,-15.840531508042588],[141.70218305884464,-15.044921156476901],[141.56338016170866,-14.561333103089552],[141.6355204611881,-14.270394789286307],[141.5198686057189,-13.698078301653808],[141.65092003801107,-12.944687595270585],[141.8426912782462,-12.741547539931231],[141.68699018775084,-12.407614434461145],[141.9286291851476,-11.877465915578817],[142.11848839738798,-11.328042087451612],[142.1437064963464,-11.042736504768186],[142.51526004452495,-10.668185723516686],[142.797310011974,-11.157354831591562],[142.86676313697427,-11.784706719614903],[143.11594689348573,-11.905629571177885],[143.15863162655876,-12.325655612846232],[143.5221236512998,-12.834358412327433],[143.5971578309876,-13.400422051652612],[143.5618111513,-13.763655694232192],[143.9220992372389,-14.548310642151996],[144.56371382057483,-14.171176039285903],[144.89490807513346,-14.594457696188641],[145.3747237489635,-14.98497649501833],[145.27199100156724,-15.428205254785732],[145.4852596376358,-16.28567229580478],[145.637033319277,-16.78491830817657],[145.88890425026761,-16.906926364817686],[146.16030887266453,-17.761654554925272],[146.06367394427872,-18.28007252367734],[146.38747846901964,-18.958274021075887],[147.4710815777479,-19.48072275154673],[148.17760176004242,-19.9559392229028],[148.84841352762322,-20.391209812097244],[148.71746544819558,-20.63346892668155],[149.28942020080206,-21.260510756111135],[149.6783370302307,-22.342511895438385],[150.07738244038853,-22.122783705333337],[150.48293908101516,-22.556142266532994],[150.72726525289113,-22.402404880464665],[150.89955447815225,-23.462236830338696],[151.60917524638427,-24.07625619883074],[152.07353966695905,-24.457886651306225],[152.8551973818059,-25.267501316023],[153.1361621441768,-26.071173191026215],[153.16194868389044,-26.641319268502457],[153.0929089703485,-27.260299574494514],[153.56946902894418,-28.11006682710208],[153.51210818910022,-28.99507740653271],[153.339095493787,-29.45820159273248],[153.06924116435886,-30.350240166954794],[153.08960167868184,-30.923641859665423],[152.89157759013938,-31.640445651986],[152.45000247620533,-32.550002536755265],[151.70911746643674,-33.041342054986394],[151.3439717958624,-33.81602345147387],[151.0105554547152,-34.31036020277793],[150.71413943908902,-35.173459974916796],[150.3282198427333,-35.671879164371916],[150.0752120302323,-36.42020558039054],[149.9461243023672,-37.10905242284121],[149.99728397033613,-37.42526051203518],[149.42388227762552,-37.77268116633344],[148.30462243061584,-37.809061374666925],[147.38173302631526,-38.21921721776752],[146.92212283751132,-38.606532077795116],[146.31792199115478,-39.03575652441141],[145.4896521343806,-38.59376799901902],[144.87697635312816,-38.41744801203915],[145.03221235573295,-37.89618783951102],[144.48568240781407,-38.085323581699285],[143.60997358619602,-38.8094654274053],[142.74542687395297,-38.538267510737555],[142.17832970598192,-38.380034275059835],[141.60658165910468,-38.30851409276788],[140.63857872941327,-38.019332777662555],[139.99215823787426,-37.402936293285094],[139.8065881695141,-36.64360279718831],[139.57414757706528,-36.13836231867066],[139.08280805883413,-35.732754001611745],[138.12074791885635,-35.61229623793939],[138.44946170466494,-35.127261244447865],[138.20756432510672,-34.38472258884593],[137.71917036351618,-35.076825046531],[136.8294055523147,-35.26053476332861],[137.35237104710848,-34.7073385556441],[137.50388634658827,-34.13026783624075],[137.8901160015377,-33.64047861097838],[137.81032759007905,-32.90000701266812],[136.9968371929404,-33.752771498348615],[136.37206912653164,-34.094766127256236],[135.98904341038428,-34.89011809666046],[135.20821251845405,-34.478670342752565],[135.23921837782916,-33.94795338311502],[134.6134167827746,-33.222778008763164],[134.08590376193916,-32.84807219821479],[134.27390262261702,-32.61723357516699],[132.99077680880976,-32.01122405368019],[132.28808068250487,-31.982646986622782],[131.32633060112084,-31.49580331800104],[129.53579389863972,-31.590422865527465],[128.24093753470225,-31.948488864877852],[127.1028674663383,-32.28226694105106],[126.14871382050114,-32.21596607842059]]]]},"properties":{"ISO_A2":"AU","NAME":"Australia"}},
140
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[81.7879590188914,7.523055324733164],[81.63732221876059,6.481775214051922],[81.21801964714433,6.197141424988288],[80.34835696810441,5.968369859232155],[79.87246870312853,6.76346344647493],[79.69516686393513,8.200843410673386],[80.14780073437964,9.824077663609557],[80.83881798698656,9.268426825391188],[81.30431928907177,8.56420624433369],[81.7879590188914,7.523055324733164]]]},"properties":{"ISO_A2":"LK","NAME":"Sri Lanka"}},
141
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[109.47520958866365,18.197700913968575],[108.65520796105616,18.507681993071387],[108.62621748254044,19.367887885001906],[109.11905561730804,19.821038519769345],[110.21159874882281,20.101253973872033],[110.78655073450221,20.077534491450052],[111.01005130416458,19.69592987719072],[110.57064660038677,19.25587921800927],[110.33918786015147,18.678395087147592],[109.47520958866365,18.197700913968575]]],[[[80.2599902688853,42.34999929459906],[80.1801501809943,42.92006785742694],[80.86620649610126,43.18036204688101],[79.96610639844141,44.91751699480463],[81.9470707539181,45.31702749285312],[82.45892581576906,45.539649563166506],[83.18048383986047,47.33003123635086],[85.16429039911324,47.0009557155161],[85.72048383987067,47.452969468773105],[85.7682328633083,48.45575063739699],[86.59877648310336,48.549181626980626],[87.35997033076265,49.21498078062912],[87.75126427607671,49.297197984405486],[88.01383222855173,48.599462795600616],[88.85429772334676,48.069081732772965],[90.28082563676392,47.69354909930793],[90.97080936072501,46.88814606382293],[90.58576826371828,45.71971609148753],[90.9455395853343,45.28607330991028],[92.13389082231822,45.11507599545646],[93.4807336771413,44.975472113619965],[94.68892866412533,44.35233185482842],[95.30687544147153,44.24133087826547],[95.76245486855669,43.319449164394605],[96.34939578652781,42.725635280928685],[97.45175744017801,42.74888967546002],[99.51581749878004,42.524691473961724],[100.84586551310827,42.66380442969145],[101.83304039917994,42.51487295182628],[103.31227827353482,41.9074681666676],[104.52228193564899,41.908346666016556],[104.96499393109347,41.59740957291635],[106.12931562706169,42.13432770442891],[107.74477257693795,42.48151581478187],[109.24359581913146,42.5194463160841],[110.41210330611528,42.87123362891103],[111.12968224492023,43.40683401140015],[111.82958784388137,43.74311839453952],[111.66773725794323,44.07317576758771],[111.34837690637946,44.45744171811009],[111.8733061056003,45.10207937273506],[112.43606245325881,45.01164561622429],[113.46390669154417,44.80889313412712],[114.46033165899607,45.339816799493825],[115.98509647020009,45.727235012386004],[116.71786828009886,46.38820241961521],[117.42170128791419,46.67273285581426],[118.87432579963873,46.80541209572365],[119.66326989143876,46.69267995867892],[119.7728239278975,47.04805878355013],[118.86657433479495,47.74706004494617],[118.06414269416672,48.06673045510369],[117.29550744025741,47.69770905210743],[116.30895267137323,47.85341014260284],[115.74283735561579,47.72654450132629],[115.48528201707306,48.13538259540344],[116.19180219936757,49.134598090199106],[116.67880089728612,49.888531399121405],[117.8792444194264,49.510983384796965],[119.2884607280258,50.142882798862004],[119.27939000000003,50.58292],[120.18208000000016,51.64355000000012],[120.7382,51.96411000000006],[120.72578901579197,52.516226304730935],[120.17708865771681,52.75388621684124],[121.00308475147017,53.25140106873119],[122.24574791879283,53.431725979213695],[123.57146999999998,53.45880000000005],[125.06821129771038,53.16104482686886],[125.94634891164617,52.79279857035698],[126.56439904185697,51.7842554795327],[126.93915652883766,51.35389415140592],[127.28745568248485,50.73979726826548],[127.65740000000028,49.760270000000105],[129.39781782442043,49.44060008401544],[130.58229332898242,48.72968740497614],[130.9872600000001,47.79013000000003],[132.50669000000005,47.78896000000003],[133.37359581922794,48.18344167743487],[135.02631147678665,48.478229885443874],[134.50081,47.57845000000009],[134.1123500000001,47.212480000000085],[133.76964399631288,46.116926988299014],[133.09712000000013,45.14409000000006],[131.8834542176595,45.32116160743652],[131.02519000000018,44.96796000000006],[131.28855512911548,44.11151968034828],[131.1446879416149,42.92998973242689],[130.63386640840974,42.90301463477053],[130.63999970690955,42.39502427522179],[129.99426720593323,42.985386867843786],[129.59666873587952,42.42498179785456],[128.0522152039723,41.99428457291795],[128.20843305879066,41.46677155208249],[127.34378299368302,41.50315176041597],[126.86908328664987,41.81656932226619],[126.18204511932943,41.10733612727637],[125.07994184784064,40.56982371679245],[124.26562462778531,39.928493353834156],[122.86757042856095,39.63778758397622],[122.1313879741309,39.170451768544666],[121.05455447803286,38.897471014962846],[121.58599490772248,39.36085358332407],[121.37675703337268,39.75026133885949],[122.16859500538106,40.422442531896024],[121.64035851449353,40.94638987890333],[120.76862877816194,40.59338816991754],[119.63960208544907,39.898055935214245],[119.02346398323306,39.252333075511146],[118.04274865119791,39.2042739934797],[117.53270226447711,38.73763580988408],[118.05969852098964,38.06147553156106],[118.87814985562832,37.89732534438593],[118.91163618375344,37.44846385349871],[119.70280236214205,37.15638865818505],[120.8234574728236,37.87042776137801],[121.711258579598,37.48112335870718],[122.35793745329849,37.45448415786072],[122.5199947449658,36.93061432550185],[121.10416385303307,36.651329047180425],[120.63700890511453,36.111439520811075],[119.66456180224606,35.60979055433772],[119.1512081238586,34.90985911716044],[120.22752485563373,34.36033193616865],[120.62036909391655,33.37672272392514],[121.22901411345023,32.46031871187719],[121.90814578663003,31.692174384074647],[121.89191938689038,30.949351508095106],[121.26425744027328,30.6762674016487],[121.50351932178467,30.14291494396429],[122.0921138855891,29.83252045340315],[121.93842817595306,29.01802236583478],[121.68443851123851,28.225512600206617],[121.12566124886649,28.135673122667185],[120.39547326058232,27.05320689544932],[119.5854968608395,25.740780544532612],[118.65687137255452,24.54739085540024],[117.28160647997088,23.624501451099658],[115.89073530483512,22.78287323657807],[114.76382734584624,22.668074042241667],[114.15254682826564,22.22376007739615],[113.80677981980074,22.5483397486214],[113.24107791550159,22.051367499270455],[111.84359215703248,21.550493679281473],[110.78546552942407,21.397143866455338],[110.44403934127168,20.34103261970633],[109.88986128137361,20.282457383703488],[109.62765506392466,21.008227037026703],[109.86448815311832,21.395050970947523],[108.5228129415244,21.715212307211814],[108.05018029178294,21.55237986906012],[107.04342003787264,21.811898912029914],[106.56727339073532,22.21820486092477],[106.72540327354847,22.79426788989842],[105.81124718630522,22.976892401617903],[105.32920942588663,23.352063300056912],[104.47685835166448,22.819150092046968],[103.50451460166056,22.70375661873921],[102.7069922221001,22.708795070887675],[102.17043582561358,22.464753119389304],[101.65201785686152,22.318198757409547],[101.80311974488293,21.17436676684507],[101.27002566935997,21.201651923095184],[101.18000532430754,21.436572984294028],[101.15003299357825,21.849984442629022],[100.41653771362738,21.558839423096614],[99.98348921102149,21.7429367131364],[99.24089887898725,22.11831431730458],[99.5319922220874,22.94903880461258],[98.89874922078278,23.14272207284253],[98.66026248575577,24.063286037689966],[97.60471967976198,23.897404690033042],[97.72460900267914,25.083637193293],[98.67183800658916,25.918702500913525],[98.71209394734451,26.743535874940267],[98.68269005737046,27.50881216075062],[98.2462309102333,27.74722138112918],[97.91198774616944,28.335945136014345],[97.32711388549004,28.26158274994634],[96.24883344928779,28.411030992134442],[96.58659061074749,28.83097951915434],[96.11767866413103,29.452802028922466],[95.40480228066464,29.03171662039213],[94.56599043170294,29.277438055939985],[93.41334760943269,28.640629380807226],[92.50311893104364,27.89687632904645],[91.69665652869668,27.771741848251665],[91.25885379431992,28.040614325466294],[90.7305139505678,28.064953925075756],[90.01582889197118,28.296438503527217],[89.47581017452111,28.042758897406397],[88.81424848832056,27.299315904239364],[88.73032596227856,28.086864732367516],[88.12044070836987,27.876541652939594],[86.9545170430006,27.974261786403517],[85.82331994013151,28.203575954698707],[85.01163821812304,28.642773952747344],[84.23457970575015,28.839893703724698],[83.89899295444673,29.320226141877658],[83.33711510613719,29.463731594352197],[82.32751264845088,30.115268052688137],[81.52580447787474,30.42271698660863],[81.11125613802932,30.183480943313402],[79.7213668151071,30.88271474865473],[78.73889448437401,31.515906073527063],[78.45844648632601,32.61816437431273],[79.17612877799553,32.48377981213771],[79.20889163606859,32.994394639613716],[78.81108646028574,33.50619802503242],[78.91226891471322,34.32193634697579],[77.83745079947457,35.494009507787766],[76.19284834178569,35.89840342868783],[75.89689741405013,36.666806138651836],[75.15802778514092,37.13303091078912],[74.98000247589542,37.419990139305895],[74.8299857929521,37.9900070257014],[74.86481570831683,38.3788463404816],[74.25751427602273,38.60650686294345],[73.92885216664644,38.50581533462274],[73.6753792662548,39.4312368841056],[73.96001305531843,39.660008449861735],[73.8222436868283,39.893973497063186],[74.77686242055606,40.36642527929163],[75.4678279967307,40.56207225194867],[76.52636803579745,40.42794607193512],[76.90448449087708,41.06648590754965],[78.18719689322597,41.18531586360481],[78.54366092317531,41.58224254003869],[80.11943037305139,42.12394074153825],[80.2599902688853,42.34999929459906]]]]},"properties":{"ISO_A2":"CN","NAME":"China"}},
142
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[121.77781782438993,24.3942735865194],[121.17563235889274,22.790857245367167],[120.74707970589623,21.970571397382113],[120.22008344938368,22.81486094816674],[120.1061885926124,23.556262722258236],[120.69467980355225,24.538450832613737],[121.49504438688878,25.295458889257386],[121.95124393116146,24.997595933527037],[121.77781782438993,24.3942735865194]]]},"properties":{"ISO_A2":"TW","NAME":"Taiwan"}},
143
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[10.44270145024663,46.89354625099743],[11.048555942436536,46.75135854754634],[11.16482791509327,46.94157949481273],[12.153088006243054,47.11539317482645],[12.376485223040817,46.76755910906985],[13.806475457421527,46.509306138691215],[13.698109978905478,46.01677806251735],[13.937630242578308,45.59101593686462],[13.141606479554296,45.73669179949542],[12.32858117030625,45.381778062514826],[12.383874952858548,44.885374253919096],[12.261453484759102,44.600482082693986],[12.589237094786455,44.09136587175446],[13.526905958722494,43.587727362637864],[14.029820997787029,42.761007798832466],[15.142569614327925,41.95513967545685],[15.926191033601896,41.961315009115715],[16.169897088290384,41.74029490820339],[15.889345737377797,41.541082261718216],[16.785001661860548,41.17960561783656],[17.51916873543118,40.87714345963222],[18.37668745288252,40.35562490494263],[18.48024702319543,40.16886627863981],[18.293385044028042,39.810774441073264],[17.738380161213314,40.277671006830346],[16.869595981522338,40.44223460546381],[16.448743116937322,39.79540070246644],[17.17148969897147,39.42469981542068],[17.052840610429314,38.90287120213735],[16.635088331781816,38.843572496082416],[16.100960727613,37.9858987493342],[15.684086948314473,37.908849188787016],[15.687962680736348,38.21459280044188],[15.89198123542468,38.75094249119924],[16.109332309644287,38.9645470240777],[15.718813510814613,39.54407237401492],[15.413612501698793,40.048356838535156],[14.99849572109818,40.17294871679087],[14.703268263414714,40.604550279292596],[14.060671827865264,40.7863479680954],[13.627985060285397,41.1882872584616],[12.888081902730365,41.253089504555604],[12.106682570044939,41.70453481705741],[11.191906365614216,42.3554253199897],[10.51194786951774,42.93146251074721],[10.200028924203991,43.9200068222746],[9.702488234097842,44.03627879493132],[8.88894616052687,44.36633616797951],[8.428560825238577,44.23122813575242],[7.8507666357831445,43.76714793555524],[7.435184767291872,43.69384491634922],[7.549596388386107,44.12790110938481],[7.007562290076635,44.25476675066136],[6.749955275101655,45.02851797136758],[7.096652459347837,45.33309886329589],[6.802355177445605,45.70857982032864],[6.843592970414505,45.99114655210061],[7.2738509456766565,45.776947740250776],[7.7559920589598335,45.82449005795931],[8.31662967289438,46.16364248309086],[8.489952426801324,46.005150865251686],[8.966305779667806,46.03693187111119],[9.182881707403055,46.44021474871698],[9.922836541390382,46.31489940040919],[10.363378126678612,46.48357127540986],[10.44270145024663,46.89354625099743]]],[[[14.761249220446189,38.14387360285046],[15.520376010813806,38.23115509699143],[15.160242954171736,37.44404551853776],[15.309897902089006,37.13421946873183],[15.099988234119422,36.6199872909954],[14.335228712631988,36.996630967754726],[13.826732618879959,37.10453135838016],[12.431003859108756,37.61294993748375],[12.570943637755136,38.12638113051966],[13.741156447004613,38.03496552179533],[14.761249220446189,38.14387360285046]]],[[[8.709990675500109,40.899984442705225],[9.210011834356266,41.209991360024176],[9.80997521326492,40.50000885676613],[9.669518670295616,39.17737641047178],[9.214817742559433,39.24047333430015],[8.806935662479674,38.906617743478506],[8.428302443077115,39.17184703221655],[8.388253208050912,40.37831085871876],[8.159998406617689,40.95000722916376],[8.709990675500109,40.899984442705225]]]]},"properties":{"ISO_A2":"IT","NAME":"Italy"}},
144
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[9.921906365609118,54.98310415304803],[9.282048780971138,54.830865383516176],[8.526229282270208,54.96274363872516],[8.120310906617533,55.5177226833236],[8.08997684086222,56.54001170513759],[8.256581658571207,56.80996938743033],[8.543437534223415,57.11000275331695],[9.424469028367554,57.1720661484995],[9.775558709358535,57.44794078228966],[10.580005730846125,57.73001658795485],[10.546105991262664,57.21573273378612],[10.250000034230226,56.89001618105044],[10.369992710011957,56.60998159446079],[10.912181837618306,56.458621324277885],[10.667803989310016,56.08138336854721],[10.369992710011957,56.19000722922473],[9.649984978889279,55.469999498102055],[9.921906365609118,54.98310415304803]]],[[[12.370904168353292,56.111407375708794],[12.690006137755603,55.60999095318074],[12.089991082414684,54.80001455343792],[11.043543328504226,55.36486379660424],[10.903913608451603,55.77995473898872],[12.370904168353292,56.111407375708794]]]]},"properties":{"ISO_A2":"DK","NAME":"Denmark"}},
145
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-6.197884894220991,53.867565009163364],[-6.953730231138067,54.073702297575636],[-7.572167934591064,54.059956366586],[-7.3660306461787854,54.59584096945272],[-7.572167934591064,55.13162221945487],[-6.733847011736145,55.17286001242378],[-5.661948614921968,54.55460317648381],[-6.197884894220991,53.867565009163364]]],[[[-3.093830673788716,53.404547400669685],[-3.0920796370471066,53.40444082296358],[-2.945008510744344,53.98499970154671],[-3.614700825433033,54.600936773292574],[-3.6300054589893307,54.615012925833014],[-4.8441690739030605,54.790971177786844],[-5.0825266178492825,55.06160065369937],[-4.7191121077567,55.50847260194348],[-5.047980922862109,55.78398550070756],[-5.586397670911197,55.31114614523682],[-5.644998745130238,56.27501496034483],[-6.1499808414864106,56.785009670633485],[-5.786824713555291,57.81884837506465],[-5.009998745127632,58.63001333275008],[-4.211494513353557,58.55084503847911],[-3.0050048486352807,58.63500010846633],[-4.073828497728073,57.55302480735526],[-3.0550017968777183,57.69001902936094],[-1.9592805647769183,57.68479970969952],[-2.219988165689358,56.87001740175356],[-3.1190030582711756,55.973793036515474],[-2.085009324543023,55.9099984808513],[-2.005675679673857,55.804902850350175],[-1.11499101399221,54.624986477265395],[-0.4304849918542004,54.46437612570219],[0.18498131674203933,53.32501414653103],[0.469976840831805,52.929999498092],[1.6815307959146821,52.739520168664],[1.5599878271643206,52.09999848083601],[1.0505615576309424,51.806760565795685],[1.4498653499502439,51.28942780212191],[0.5503336930455021,50.765738837275876],[-0.7875174625586965,50.77498891865622],[-2.4899975244144343,50.50001862243124],[-2.956273972984093,50.696879991247044],[-3.617448085942385,50.22835561787275],[-4.542507900399244,50.341837063185665],[-5.245023159191135,49.95999990498109],[-5.776566941745273,50.15967763935686],[-4.309989793301895,51.21000112568919],[-3.414850633142123,51.42600861266925],[-3.4227194671083794,51.42684816740609],[-4.9843672347109305,51.593466091511004],[-5.267295701508942,51.991400458374585],[-4.222346564134909,52.301355699261364],[-4.77001339356417,52.840004991255626],[-4.579999152026971,53.49500377055517],[-3.093830673788716,53.404547400669685]]]]},"properties":{"ISO_A2":"GB","NAME":"United Kingdom"}},
146
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-14.508695441129234,66.45589223903143],[-14.739637417041607,65.8087482774403],[-13.60973222497981,65.12667104761987],[-14.909833746794902,64.36408193628868],[-17.794438035543422,63.678749091233854],[-18.656245896874992,63.49638296167582],[-19.97275468594276,63.64363495549153],[-22.762971971110158,63.960178941495386],[-21.778484259517683,64.40211579045551],[-23.95504391121911,64.8911298692335],[-22.184402635170358,65.0849681667603],[-22.227423265053332,65.37859365504274],[-24.326184047939336,65.61118927678847],[-23.65051469572309,66.26251902939522],[-22.134922451250887,66.41046865504687],[-20.57628373867955,65.73211212835143],[-19.05684160000159,66.27660085719477],[-17.79862382655905,65.99385325790978],[-16.167818976292125,66.52679230413587],[-14.508695441129234,66.45589223903143]]]},"properties":{"ISO_A2":"IS","NAME":"Iceland"}},
147
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[46.404950799348825,41.860675157227305],[46.68607059101661,41.82713715266988],[47.37331546406623,41.2197323675112],[47.81566572448463,41.15141612402135],[47.98728315612598,41.40581920019423],[48.58435339611342,41.80886879162067],[49.110263706260696,41.28228668880051],[49.6189148293096,40.57292430272996],[50.08482954285313,40.52615713150581],[50.39282107931268,40.25656118423912],[49.569202101444795,40.176100979160665],[49.395259230350376,39.39948171646225],[49.22322838725071,39.04921885838793],[48.85653242370759,38.81548635513178],[48.88324913920249,38.32024526626262],[48.63437544128482,38.27037750910097],[48.01074425638648,38.79401479751452],[48.35552941263788,39.28876496027691],[48.06009524922524,39.58223541926246],[47.685079380083096,39.50836395930122],[46.50571984231797,38.770605373686294],[46.48349897643246,39.464154771475535],[46.034534132680676,39.628020738273065],[45.61001224140293,39.89999380142518],[45.89190717955509,40.21847565364],[45.35917483905817,40.56150381119346],[45.56035118997045,40.812289537105926],[45.17949588397934,40.98535390885141],[44.97248009621808,41.248128567055595],[45.217426385281584,41.41145193131405],[45.96260053893039,41.123872585609774],[46.50163740416693,41.06444468847411],[46.63790815612058,41.181672675128226],[46.14543175637902,41.72280243587258],[46.404950799348825,41.860675157227305]]],[[[46.14362308124882,38.74120148371222],[45.45772179543877,38.87413910578306],[44.95268802265031,39.33576467544637],[44.79398969908195,39.71300263117705],[45.00198733905675,39.740003567049555],[45.29814497252146,39.471751207022436],[45.73997846861698,39.47399913182713],[45.73537926614301,39.31971914321974],[46.14362308124882,38.74120148371222]]]]},"properties":{"ISO_A2":"AZ","NAME":"Azerbaijan"}},
148
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[39.955008579270924,43.43499766699922],[40.07696495947977,43.553104153002316],[40.922190000000114,43.38215000000014],[42.39440000000013,43.220300000000066],[43.75599000000011,42.740830000000074],[43.931210000000135,42.55496000000011],[44.537622918481986,42.71199270280363],[45.47027916848572,42.50278066666998],[45.776400000000024,42.09244000000018],[46.404950799348825,41.860675157227305],[46.14543175637902,41.72280243587258],[46.63790815612058,41.181672675128226],[46.50163740416693,41.06444468847411],[45.96260053893039,41.123872585609774],[45.217426385281584,41.41145193131405],[44.97248009621808,41.248128567055595],[43.58274580259273,41.09214325618257],[42.61954878110449,41.58317271581994],[41.55408410011066,41.53565623632757],[41.70317060727271,41.96294281673292],[41.45347008643839,42.64512339941794],[40.87546919125379,43.013628038091284],[40.32139448422032,43.128633938156845],[39.955008579270924,43.43499766699922]]]},"properties":{"ISO_A2":"GE","NAME":"Georgia"}},
149
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[120.83389611214656,12.704496161342433],[120.32343631396745,13.466413479053825],[121.18012820850211,13.429697373910443],[121.5273938335035,13.06959015548452],[121.26219038298159,12.205560207564403],[120.83389611214656,12.704496161342433]]],[[[122.5860889018671,9.981044826696134],[122.83708133350875,10.261156927934225],[122.9474105164519,10.88186839440806],[123.49884972543845,10.94062449792392],[123.33777428598472,10.267383938025404],[124.0779358257012,11.232725531453738],[123.98243777882584,10.278778591345755],[123.62318322153271,9.950090643753299],[123.30992068897939,9.318268744336706],[122.99588300994166,9.022188625520414],[122.38005496631942,9.713360907424217],[122.5860889018671,9.981044826696134]]],[[[126.37681359263745,8.414706325713297],[126.47851281138789,7.750354112168978],[126.53742394420061,7.189380601424545],[126.19677290253259,6.274294338400054],[125.83142052622907,7.293715318221842],[125.36385216685221,6.786485297060949],[125.68316084198369,6.049656887227272],[125.39651167206063,5.5810033227722755],[124.21978763234239,6.161355495626154],[123.9387195171069,6.885135606306136],[124.24366214406128,7.360610459823661],[123.61021243702749,7.83352732994274],[123.29607140512519,7.418875637232759],[122.82550581267537,7.457374579290204],[122.08549930225573,6.899424139834836],[121.91992801319256,7.192119452336015],[122.31235884001705,8.034962063016465],[122.94239790251959,8.316236883981134],[123.48768761606347,8.69300975182118],[123.84115441293983,8.240324204944372],[124.60146976125021,8.514157619659002],[124.76461225799562,8.960409450715488],[125.47139082245155,8.986996975129657],[125.41211795461277,9.760334784377534],[126.2227144715431,9.286074327018866],[126.30663699758514,8.78248749433456],[126.37681359263745,8.414706325713297]]],[[[118.50458092659036,9.316382554558047],[117.17427453010066,8.367499904814679],[117.66447716682137,9.066888739452892],[118.38691369026175,9.68449961998921],[118.98734215706105,10.376292019080523],[119.51149620979751,11.3696680770272],[119.68967654833989,10.554291490109875],[119.02945844937892,10.003653265823829],[118.50458092659036,9.316382554558047]]],[[[122.336956821788,18.224882717354106],[122.17427941293317,17.810282701076403],[122.5156539246533,17.093504746971973],[122.25231082569393,16.26244436285407],[121.66278608610821,15.931017564350142],[121.50506961475342,15.124813544164622],[121.7288285665772,14.328376369682275],[122.25892540902726,14.21820221603599],[122.70127566944569,14.336541245984378],[123.9502950379403,13.782130642141027],[123.85510704965867,13.237771104378425],[124.18128869028493,12.9975273706535],[124.0774190613783,12.536676947474575],[123.29803510955225,13.02752553959894],[122.92865197152994,13.552919826710422],[122.6713550151487,13.185836289925092],[122.03464969288052,13.784481919810304],[121.12638471891857,13.636687323455547],[120.62863732308324,13.857655747935596],[120.67938357959386,14.271015529838294],[120.99181928923053,14.52539276779504],[120.69333621631267,14.756670640517312],[120.56414513558299,14.396279201713796],[120.07042850146644,14.970869452367126],[119.92092858284605,15.406346747290739],[119.88377322802819,16.363704331929995],[120.28648766487875,16.034628811095345],[120.39004723519167,17.599081122299523],[120.71586714079191,18.505227362537525],[121.32130822152351,18.504064642810945],[121.9376013530364,18.218552354398355],[122.24600630095429,18.478949896717097],[122.336956821788,18.224882717354106]]],[[[122.03837039600555,11.415840969279998],[121.88354780485909,11.891755072471994],[122.48382124236149,11.582187404827538],[123.12021650603594,11.583660183147856],[123.10083784392646,11.16593374271649],[122.63771365772669,10.74130849857417],[122.00261030485957,10.441016750526089],[121.96736697803652,10.905691229694625],[122.03837039600555,11.415840969279998]]],[[[125.50255171112354,12.162694606978292],[125.78346479706221,11.046121934447783],[125.01188398651226,11.311454576050409],[125.03276126515817,10.975816148314692],[125.27744917206019,10.358722032101284],[124.80181928924577,10.134678859899864],[124.76016808481853,10.837995103392258],[124.45910119028605,10.889929917845592],[124.30252160044171,11.495370998577187],[124.89101281138153,11.415582587118536],[124.87799035044401,11.794189968304947],[124.26676150929569,12.557760931849671],[125.22711632700788,12.53572093347718],[125.50255171112354,12.162694606978292]]]]},"properties":{"ISO_A2":"PH","NAME":"Philippines"}},
150
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[100.0857568705271,6.4644894474502905],[100.25959638875696,6.6428248152895435],[101.07551557821336,6.2048670516159214],[101.15421878459387,5.691384182147715],[101.81428185425798,5.8108084171742425],[102.14118696493638,6.221636053894628],[102.37114708863521,6.128205064310919],[102.96170535686673,5.524495144061106],[103.38121463421217,4.8550011255037475],[103.43857547405612,4.181605536308339],[103.33212202353486,3.726697902842986],[103.42942874554049,3.3828687605890053],[103.50244754436889,2.7910185815501762],[103.8546741068703,2.515454006353764],[104.24793175661145,1.6311410587590842],[104.22881147666348,1.2930480004894918],[103.51970747275439,1.2263337264006822],[102.57361535035477,1.9671153833046873],[101.39063846232919,2.760813706875581],[101.27353966675582,3.270291652841152],[100.69543541870664,3.9391397159948696],[100.55740766805502,4.767280381688295],[100.19670617065775,5.312492580583708],[100.30626020711652,6.0405618351439045],[100.0857568705271,6.4644894474502905]]],[[[117.88203494677018,4.137551377779516],[117.01521447150628,4.3060940616994685],[115.8655172058767,4.3065591495901],[115.51907840379198,3.169238389494396],[115.13403730678522,2.8214818383862337],[114.62135542201753,1.4306881778989011],[113.8058496440195,1.2175487329110695],[112.85980919805218,1.4977900252299037],[112.38025190638359,1.4101209578467433],[111.79754845586041,0.9044412296546085],[111.15913781132662,0.976478176269481],[110.51406090702716,0.7731314152009645],[109.83022667850881,1.3381356876641632],[109.66326012577375,2.0064669864949565],[110.3961352885371,1.663774725751395],[111.16885298059748,1.8506367049188128],[111.37008100794205,2.6973033715888595],[111.7969283386729,2.885896511238059],[112.99561486211522,3.102394924324855],[113.71293541875868,3.8935094262811556],[114.20401655482837,4.5258739282368055],[114.65959598191353,4.007636826997754],[114.8695573263154,4.348313706881925],[115.34746097215066,4.316636053887009],[115.40570031134361,4.955227565933839],[115.45071048386981,5.447729803891534],[116.22074100145102,6.1431912296755655],[116.72510298061971,6.924771429873999],[117.12962609260047,6.92805288332454],[117.64339318244627,6.422166449403249],[117.68907514859231,5.987490139180154],[118.34769127815224,5.708695786965492],[119.18190392463997,5.407835598162207],[119.11069380094176,5.016128241389808],[118.43972700406408,4.966518866389606],[118.6183207540648,4.478202419447555],[117.88203494677018,4.137551377779516]]]]},"properties":{"ISO_A2":"MY","NAME":"Malaysia"}},
151
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[115.45071048386981,5.447729803891534],[115.40570031134361,4.955227565933839],[115.34746097215066,4.316636053887009],[114.8695573263154,4.348313706881925],[114.65959598191353,4.007636826997754],[114.20401655482837,4.5258739282368055],[114.59996137904872,4.900011298029966],[115.45071048386981,5.447729803891534]]]},"properties":{"ISO_A2":"BN","NAME":"Brunei"}},
152
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.806475457421527,46.509306138691215],[14.63247155117483,46.43181732846955],[15.137091912504985,46.65870270444703],[16.011663852612656,46.6836107448117],[16.202298211337364,46.85238597267696],[16.370504998447416,46.841327216166505],[16.564808383864857,46.50375092221983],[15.768732944408553,46.23810822202345],[15.671529575267556,45.83415355079788],[15.323953891672405,45.73178253842768],[15.327674594797429,45.45231639259333],[14.935243767972935,45.471695054702685],[14.595109490627806,45.634940904312714],[14.411968214585414,45.46616567644746],[13.715059848697223,45.500323798192376],[13.937630242578308,45.59101593686462],[13.698109978905478,46.01677806251735],[13.806475457421527,46.509306138691215]]]},"properties":{"ISO_A2":"SI","NAME":"Slovenia"}},
153
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[28.591929559043194,69.06477692328666],[28.445943637818658,68.36461294216404],[29.97742638522061,67.69829702419275],[29.054588657352326,66.94428620062206],[30.217650000000003,65.80598],[29.54442955904699,64.94867157659048],[30.44468468600371,64.20445343693909],[30.035872430142717,63.55281362573855],[31.516092156711125,62.86768748641289],[31.139991082490894,62.35769277612441],[30.21110721204445,61.780027777749694],[28.07000000000005,60.503520000000094],[28.070001921525666,60.50351912796823],[28.069997592895277,60.50351654727584],[26.255172967236973,60.4239606797625],[24.496623976344523,60.05731639265166],[22.869694858499457,59.846373196036225],[22.290763787533592,60.39192129174154],[21.322244093519316,60.720169989659524],[21.544866163832694,61.70532949487179],[21.05921105315369,62.60739329695874],[21.536029493910803,63.18973501245587],[22.442744174903993,63.81781037053129],[24.730511508897536,64.90234365504084],[25.398067661243942,65.11142650009374],[25.294043003040404,65.53434642197045],[23.903378533633802,66.00692739527962],[23.565879754335583,66.39605093043743],[23.53947309743444,67.93600861273525],[21.978534783626117,68.6168456081807],[20.645592889089528,69.10624726020087],[21.244936150810673,69.37044302029308],[22.356237827247412,68.84174144151491],[23.66204959483076,68.89124746365054],[24.735679152126725,68.64955678982146],[25.689212680776365,69.09211375596904],[26.179622023226244,69.82529897732614],[27.732292107867863,70.16419302029625],[29.015572950971972,69.76649119737799],[28.591929559043194,69.06477692328666]]]},"properties":{"ISO_A2":"FI","NAME":"Finland"}},
154
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.558137648211755,49.085738023467144],[22.28084191253356,48.82539215758067],[22.085608351334855,48.42226430927179],[21.872236362401736,48.31997081155002],[20.801293979584926,48.623854071642384],[20.473562045989866,48.562850043321816],[20.239054396249347,48.32756724709692],[19.769470656013112,48.202691148463614],[19.661363559658497,48.26661489520866],[19.17436486173989,48.11137889260387],[18.77702477384767,48.081768296900634],[18.696512892336926,47.880953681014404],[17.857132602620027,47.75842886005037],[17.48847293464982,47.867466132186216],[16.979666782304037,48.123497015976305],[16.879982944413,48.47001333270947],[16.960288120194576,48.5969823268506],[17.101984897538898,48.816968899117114],[17.545006951577108,48.80001902932537],[17.88648481616181,48.90347524677371],[17.913511590250465,48.996492824899086],[18.104972771891852,49.04398346617531],[18.170498488037964,49.271514797556435],[18.399993523846177,49.31500051533004],[18.554971144289482,49.495015367218784],[18.853144158613617,49.49622976337764],[18.90957482267632,49.435845852244576],[19.320712517990472,49.571574001659194],[19.825022820726872,49.21712535256923],[20.415839471119853,49.43145335549977],[20.887955356538413,49.32877228453583],[21.607808058364213,49.47010732685409],[22.558137648211755,49.085738023467144]]]},"properties":{"ISO_A2":"SK","NAME":"Slovakia"}},
155
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[15.01699588385867,51.10667409932158],[15.490972120839729,50.78472992614321],[16.23862674323857,50.69773265237984],[16.176253289462267,50.42260732685791],[16.719475945714436,50.21574656839354],[16.86876915860566,50.47397370055603],[17.55456709155112,50.36214590107642],[17.64944502123899,50.049038397819956],[18.392913852622172,49.98862864847075],[18.853144158613617,49.49622976337764],[18.554971144289482,49.495015367218784],[18.399993523846177,49.31500051533004],[18.170498488037964,49.271514797556435],[18.104972771891852,49.04398346617531],[17.913511590250465,48.996492824899086],[17.88648481616181,48.90347524677371],[17.545006951577108,48.80001902932537],[17.101984897538898,48.816968899117114],[16.960288120194576,48.5969823268506],[16.499282667718774,48.78580801044511],[16.02964725105022,48.73389903420793],[15.253415561593982,49.03907420510758],[14.901447381254057,48.964401760445824],[14.338897739324722,48.55530528420721],[13.595945672264437,48.87717194273715],[13.031328973043431,49.30706818297324],[12.521024204161193,49.547415269562734],[12.415190870827445,49.96912079528057],[12.240111118222558,50.266337795607285],[12.966836785543194,50.484076443069085],[13.338131951560285,50.73323436136435],[14.056227654688172,50.9269176295943],[14.307013380600637,51.117267767941414],[14.570718214586066,51.002339382524276],[15.01699588385867,51.10667409932158]]]},"properties":{"ISO_A2":"CZ","NAME":"Czechia"}},
156
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[36.42951000000005,14.422110000000032],[36.32321999999999,14.822490000000016],[36.75389000000007,16.291860000000042],[36.852530000000115,16.956549999999993],[37.167470000000094,17.263140000000135],[37.90400000000011,17.427540000000022],[38.410089959473225,17.998307399970315],[38.990622999840014,16.840626125551694],[39.26611006038803,15.92272349696725],[39.814293654140215,15.435647284400318],[41.17927493669765,14.491079616753211],[41.73495161313235,13.921036892141558],[42.27683068214486,13.343992010954423],[42.58957645037526,13.000421250861905],[43.08122602720016,12.699638576707116],[42.77964236834475,12.455415757695675],[42.35156000000012,12.542230000000131],[42.00975,12.865819999999928],[41.59856000000002,13.452090000000112],[41.15519999999998,13.773329999999987],[40.896600000000035,14.118640000000141],[40.02625000000012,14.519589999999994],[39.34061000000008,14.531549999999982],[39.0994,14.740640000000042],[38.512950000000046,14.50547000000006],[37.90607000000011,14.959430000000168],[37.59377000000006,14.213099999999997],[36.42951000000005,14.422110000000032]]]},"properties":{"ISO_A2":"ER","NAME":"Eritrea"}},
157
+ {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[141.88460086483497,39.180864569651476],[140.95948937394581,38.17400096287662],[140.97638756730527,37.14207428644019],[140.5997697287621,36.3439834661245],[140.77407433488258,35.842877102190215],[140.2532792502451,35.138113918593646],[138.9755277853962,34.66760000257614],[137.21759891169125,34.60628591566183],[135.79298302626893,33.46480520276663],[135.1209827007454,33.849071153289],[135.0794348491827,34.596544908174806],[133.34031619683202,34.375938218720805],[132.15677086805124,33.90493337659652],[130.98614464734345,33.88576142021624],[132.00003624890996,33.149992377244544],[131.33279015515734,31.450354519164822],[130.686317987186,31.029579169228246],[130.2024198752049,31.418237616495432],[130.44767622286213,32.319474595665696],[129.81469160371893,32.61030955660436],[129.40846316947255,33.29605581311752],[130.35393517468464,33.60415070244167],[130.87845096244718,34.23274282484002],[131.8842293641439,34.74971385348792],[132.61767296766243,35.433393052709405],[134.6083008159777,35.731617743465804],[135.67753787652885,35.52713410088687],[136.72383060114242,37.304984239240326],[137.39061160700447,36.82739065199884],[138.8576021669062,37.82748464614346],[139.42640465714283,38.21596222589761],[140.054790073812,39.43880748143637],[139.88337934789985,40.56331248632368],[140.30578250545364,41.19500519465953],[141.3689734234266,41.378559882160275],[141.91426313697048,39.991616115878685],[141.88460086483497,39.180864569651476]]],[[[144.61342654843963,43.96088288021748],[145.32082523008307,44.38473297787541],[145.5431372418027,43.26208832455062],[144.05966189999987,42.98835826270056],[143.18384972551723,41.9952147486992],[141.6114909201724,42.6787905950561],[141.06728641170668,41.58459381770797],[139.955106235921,41.56955597591103],[139.81754357315998,42.563758856774385],[140.31208703019325,43.33327261003269],[141.38054894426,43.38882477474644],[141.67195234595386,44.77212535255146],[141.96764489152798,45.55148346616134],[143.14287031470974,44.51035838477697],[143.91016198137947,44.17409983985374],[144.61342654843963,43.96088288021748]]],[[[132.37117638563024,33.46364248304006],[132.92437259331473,34.06029857028204],[133.4929683778222,33.94462087659667],[133.90410607313635,34.36493113864263],[134.63842817600386,34.149233710256354],[134.76637902235854,33.80633474378362],[134.2034159689709,33.20117788342964],[133.79295006727654,33.5219851750976],[133.28026818250885,33.28957042086489],[133.0148580262578,32.70456736910474],[132.36311486219267,32.989382025681394],[132.37117638563024,33.46364248304006]]]]},"properties":{"ISO_A2":"JP","NAME":"Japan"}},
158
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-58.166392381408045,-20.176700941653678],[-57.8706739976178,-20.73268767668195],[-57.937155727761294,-22.090175876557172],[-56.8815095689029,-22.28215382252148],[-56.47331743022939,-22.086300144135283],[-55.79795813660691,-22.356929620047822],[-55.610682745981144,-22.655619398694846],[-55.517639329639636,-23.571997572526637],[-55.40074723979542,-23.956935316668805],[-55.02790178080955,-24.00127369557523],[-54.65283423523513,-23.83957813893396],[-54.29295956075452,-24.02101409271073],[-54.29347632507745,-24.570799655863965],[-54.42894609233059,-25.162184747012166],[-54.625290696823576,-25.739255466415514],[-54.78879492859505,-26.621785577096134],[-55.69584550639816,-27.387837009390864],[-56.486701626192996,-27.548499037386293],[-57.60975969097614,-27.395898532828387],[-58.61817359071975,-27.123718763947096],[-57.63366004091113,-25.60365650808164],[-57.77721716981794,-25.16233977630904],[-58.80712846539498,-24.77145924245331],[-60.02896603050403,-24.032796319273274],[-60.846564704009914,-23.880712579038292],[-62.685057135657885,-22.249029229422387],[-62.291179368729225,-21.051634616787393],[-62.2659612697708,-20.513734633061276],[-61.78632646345377,-19.633736667562964],[-60.04356462262649,-19.342746677327426],[-59.11504248720611,-19.3569060197754],[-58.183471442280506,-19.868399346600363],[-58.166392381408045,-20.176700941653678]]]},"properties":{"ISO_A2":"PY","NAME":"Paraguay"}},
159
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[52.00000980002224,19.000003363516058],[52.78218427919205,17.349742336491232],[53.10857262554751,16.651051133688952],[52.38520592632588,16.382411200419654],[52.19172936382509,15.93843313238402],[52.1681649107,15.597420355689948],[51.172515089732485,15.175249742081492],[49.57457645040315,14.708766587782748],[48.67923058451416,14.00320241948566],[48.23894738138742,13.948089504446372],[47.938914015500785,14.007233181204427],[47.354453566279716,13.592219753468383],[46.717076450391744,13.39969920496502],[45.87759280781027,13.347764390511685],[45.62505008319988,13.290946153206763],[45.406458774605255,13.026905422411433],[45.14435591002086,12.95393830001531],[44.989533318874415,12.69958690027471],[44.49457645038285,12.721652736863348],[44.17511274595449,12.585950425664876],[43.48295861183713,12.636800035040084],[43.22287112811213,13.220950425667425],[43.25144819516953,13.767583726450852],[43.08794396339806,14.06263031662131],[42.892245314308724,14.802249253798749],[42.60487267433362,15.213335272680595],[42.80501549660005,15.261962795467255],[42.70243777850066,15.718885809791999],[42.823670688657415,15.911742255105267],[42.77933230975097,16.347891343648683],[43.21837527850275,16.66688996018641],[43.11579756040336,17.088440456607373],[43.380794305196105,17.57998668056767],[43.79151858905192,17.31997671149111],[44.06261315285508,17.410358791569593],[45.21665123879719,17.433328965723334],[45.39999922056876,17.333335069238558],[46.366658563020536,17.233315334537636],[46.74999433776165,17.283338120996177],[47.000004917189756,16.949999294497445],[47.46669477721763,17.116681626854884],[48.18334354024134,18.166669216377315],[49.11667158386487,18.616667588774945],[52.00000980002224,19.000003363516058]]]},"properties":{"ISO_A2":"YE","NAME":"Yemen"}},
160
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[34.95603722508426,29.356554673778845],[36.06894087092206,29.197494615184453],[36.50121422704359,29.505253607698705],[36.74052778498725,29.86528331147619],[37.503581984209035,30.003776150018407],[37.66811974462638,30.3386652694859],[37.998848911294374,30.508499864213135],[37.00216556168101,31.508412990844747],[39.00488569515255,32.01021698661498],[39.19546837744497,32.16100881604267],[40.399994337736246,31.889991766887935],[41.889980910007836,31.19000865327837],[44.70949873228474,29.178891099559383],[46.568713413281756,29.09902517345229],[47.45982181172283,29.002519436147224],[47.708850538937384,28.526062730416143],[48.416094191283946,28.55200429942667],[48.80759484232718,27.689627997339883],[49.29955447774583,27.46121816660981],[49.47091352722566,27.109999294538085],[50.15242231629088,26.689663194275997],[50.212935418504685,26.277026882425375],[50.11330325704594,25.94397227630425],[50.239858839728754,25.608049628190926],[50.527386509000735,25.327808335872103],[50.66055667501689,24.999895534764022],[50.81010827006958,24.754742539971378],[51.11241539897702,24.556330878186724],[51.38960778179063,24.62738597258806],[51.57951867046327,24.245497137951105],[51.61770755392698,24.01421926522883],[52.000733270074335,23.00115448657894],[55.006803012924905,22.496947536707136],[55.208341098863194,22.708329982997046],[55.666659376859826,22.00000112557234],[54.99998172386236,19.999994004796108],[52.00000980002224,19.000003363516058],[49.11667158386487,18.616667588774945],[48.18334354024134,18.166669216377315],[47.46669477721763,17.116681626854884],[47.000004917189756,16.949999294497445],[46.74999433776165,17.283338120996177],[46.366658563020536,17.233315334537636],[45.39999922056876,17.333335069238558],[45.21665123879719,17.433328965723334],[44.06261315285508,17.410358791569593],[43.79151858905192,17.31997671149111],[43.380794305196105,17.57998668056767],[43.11579756040336,17.088440456607373],[43.21837527850275,16.66688996018641],[42.77933230975097,16.347891343648683],[42.649572788266084,16.774635321514964],[42.34798912941071,17.075805568912003],[42.270887892431226,17.474721787989125],[41.75438195167396,17.833046169500975],[41.22139122901558,18.67159963630121],[40.93934126156654,19.486485297111756],[40.247652215339826,20.17463450772649],[39.80168460466095,20.338862209550058],[39.139399448408284,21.291904812092934],[39.023695916506796,21.986875311770195],[39.06632897314759,22.57965566659027],[38.49277225114008,23.688451036060854],[38.02386030452362,24.078685614512935],[37.483634881344386,24.285494696545015],[37.154817742671185,24.85848297779731],[37.209491408036,25.084541530858107],[36.93162723160259,25.60295949961018],[36.639603712721225,25.826227525327223],[36.249136590323815,26.57013560638488],[35.64018151219639,27.376520494083422],[35.13018680190788,28.06335195567472],[34.63233605320798,28.058546047471566],[34.787778761541944,28.6074272730597],[34.832220493312946,28.957483425404845],[34.95603722508426,29.356554673778845]]]},"properties":{"ISO_A2":"SA","NAME":"Saudi Arabia"}},
161
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.73178022637745,35.14002594658844],[32.80247358575275,35.14550364841138],[32.946960890440806,35.3867033961337],[33.667227003724946,35.37321584730552],[34.576473829900465,35.67159556735879],[33.900804477684204,35.245755927057616],[33.97361657078346,35.058506374648005],[33.86643965021011,35.09359467217419],[33.675391880027064,35.01786286065045],[33.5256852556775,35.03868846286407],[33.47581749851585,35.000344550103506],[33.45592207208347,35.10142365166641],[33.3838334490363,35.16271190036457],[33.19097700372305,35.17312470147138],[32.919572381326134,35.08783274997364],[32.73178022637745,35.14002594658844]]]},"properties":{"ISO_A2":"-99","NAME":"N. Cyprus"}},
162
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[32.73178022637745,35.14002594658844],[32.919572381326134,35.08783274997364],[33.19097700372305,35.17312470147138],[33.3838334490363,35.16271190036457],[33.45592207208347,35.10142365166641],[33.47581749851585,35.000344550103506],[33.5256852556775,35.03868846286407],[33.675391880027064,35.01786286065045],[33.86643965021011,35.09359467217419],[33.97361657078346,35.058506374648005],[34.00488081232004,34.97809784600186],[32.97982710137845,34.57186941175544],[32.49029625827754,34.701654771456475],[32.25666710788596,35.10323232679663],[32.73178022637745,35.14002594658844]]]},"properties":{"ISO_A2":"CY","NAME":"Cyprus"}},
163
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-2.169913702798624,35.16839630791668],[-1.792985805661715,34.527918606091305],[-1.7334545556614671,33.91971283623212],[-1.388049282222596,32.86401500094138],[-1.1245511539663084,32.65152151135713],[-1.30789913573787,32.2628889023061],[-2.616604783529567,32.09434621838619],[-3.068980271812648,31.724497992473218],[-3.647497931320146,31.637294012980675],[-3.6904410465547244,30.896951605751156],[-4.859646165374471,30.501187649043846],[-5.242129278982787,30.00044302013559],[-6.060632290053774,29.731699734001694],[-7.059227667661958,29.5792284205246],[-8.674116176782974,28.84128896739658],[-8.665589565454809,27.656425889592356],[-8.817828334986672,27.656425889592356],[-8.794883999049077,27.120696316022507],[-9.41303748212448,27.088476060488574],[-9.735343390328879,26.860944729107405],[-10.189424200877582,26.860944729107405],[-10.551262579785273,26.990807603456886],[-11.392554897497007,26.883423977154393],[-11.718219773800357,26.104091701760623],[-12.03075883630163,26.030866197203068],[-12.50096269372537,24.7701162785782],[-13.891110398809047,23.691009019459305],[-14.221167771857253,22.31016307218816],[-14.630832688851072,21.860939846274903],[-14.750954555713534,21.500600083903663],[-17.00296179856109,21.420734157796577],[-17.02042843267577,21.422310288981578],[-16.973247849993243,21.885744533774982],[-16.589136928767687,22.158234361250095],[-16.261921759495635,22.679339504481277],[-16.3264139469959,23.017768459560898],[-15.982610642958036,23.723358466074046],[-15.426003790742186,24.35913361256104],[-15.089331834360735,24.520260728447],[-14.824645148161665,25.103532619725343],[-14.800925665739726,25.63626496022232],[-14.439939947964831,26.254418443297652],[-13.773804897506466,26.618892320252314],[-13.13994177901435,27.640147813420526],[-13.121613369914769,27.65414767171984],[-12.618836635783111,28.03818553314869],[-11.688919236690765,28.148643907172527],[-10.900956997104402,28.83214223888092],[-10.399592251008642,29.09858592377782],[-9.564811163765683,29.93357371674989],[-9.814718390329176,31.17773550060906],[-9.434793260119363,32.038096421836485],[-9.300692918321886,32.564679266890664],[-8.657476365585012,33.240245266242425],[-7.6541784326382185,33.69706492770251],[-6.912544114601417,34.110476386037476],[-6.2443420068514115,35.145865383437524],[-5.92999426921989,35.75998810479399],[-5.193863491222032,35.75518219659085],[-4.591006232105144,35.330711981745594],[-3.640056525070065,35.399855048152006],[-2.604305792644084,35.179093329401155],[-2.169913702798624,35.16839630791668]]]},"properties":{"ISO_A2":"MA","NAME":"Morocco"}},
164
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[36.86622999999997,22],[32.89999999999998,22],[29.019999999999982,22],[25,22],[25,25.682499996361],[25,29.23865452953346],[24.70007,30.044190000000004],[24.957620000000002,30.6616],[24.802869999999984,31.089290000000005],[25.16482,31.56915],[26.49533,31.58568],[27.457620000000002,31.32126],[28.450480000000002,31.025769999999998],[28.913529999999998,30.87005],[29.683419999999998,31.186860000000003],[30.09503,31.4734],[30.976930000000003,31.55586],[31.687960000000004,31.4296],[31.96041,30.933600000000002],[32.19247,31.26034],[32.99392,31.024070000000002],[33.7734,30.967460000000003],[34.26543474464621,31.21935730952032],[34.265440000000005,31.219359999999998],[34.823243288783814,29.76108076171822],[34.9226,29.50133],[34.64174,29.099420000000002],[34.42655,28.343989999999998],[34.15451,27.8233],[33.92136,27.6487],[33.58811,27.97136],[33.13676,28.417650000000002],[32.423230000000004,29.851080000000003],[32.32046,29.76043],[32.73482,28.70523],[33.34876,27.69989],[34.10455,26.14227],[34.473870000000005,25.598560000000003],[34.79507,25.03375],[35.69241,23.92671],[35.49372,23.752370000000003],[35.52598,23.10244],[36.690690000000004,22.20485],[36.86622999999997,22]]]},"properties":{"ISO_A2":"EG","NAME":"Egypt"}},
165
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[25,22],[25.000000000000114,20.003040000000055],[23.850000000000136,20.000000000000057],[23.83766000000014,19.580470000000105],[19.849260000000072,21.49509000000006],[15.860850000000084,23.409719999999993],[14.851300000000037,22.862950000000126],[14.143870883855243,22.491288967371133],[13.581424594790462,23.04050608976928],[11.999505649471613,23.47166840259645],[11.560669386449005,24.097909247325518],[10.771363559622927,24.56253205006175],[10.303846876678362,24.379313259370917],[9.94826134607797,24.936953640232517],[9.910692579801776,25.365454616796796],[9.319410841518163,26.094324856057455],[9.716285841519664,26.512206325785655],[9.629056023811074,27.14095347748092],[9.756128370816782,27.688258571884205],[9.683884718472768,28.1441738957792],[9.859997999723447,28.959989732371014],[9.805634392952356,29.424638373323376],[9.482139926805274,30.307556057246188],[9.970017124072854,30.53932485607524],[10.056575148161699,30.961831366493527],[9.950225050505082,31.376069647745258],[10.636901482799487,31.761420803345757],[10.944789666394456,32.081814683555365],[11.432253452203696,32.368903103152874],[11.488787469131012,33.13699575452324],[12.663310000000024,32.79278000000005],[13.083260000000053,32.878820000000076],[13.918679999999995,32.71196000000009],[15.245630000000006,32.26508000000007],[15.713939999999923,31.376259999999945],[16.611620000000016,31.18217999999996],[18.02108999999996,30.76356999999996],[19.08641,30.26639],[19.574040000000082,30.52582000000001],[20.053349999999966,30.985760000000028],[19.82033000000007,31.751790000000142],[20.13396999999992,32.238200000000006],[20.854520000000093,32.70679999999999],[21.54298,32.843200000000024],[22.895760000000053,32.63857999999999],[23.236800000000017,32.191490000000044],[23.609130000000107,32.18725999999998],[23.92750000000001,32.01667000000009],[24.921139999999923,31.89936],[25.16482,31.56915],[24.802869999999984,31.089290000000005],[24.957620000000002,30.6616],[24.70007,30.044190000000004],[25,29.23865452953346],[25,25.682499996361],[25,22]]]},"properties":{"ISO_A2":"LY","NAME":"Libya"}},
166
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[47.78942,8.003],[44.96360000000001,5.00162],[43.66086999999999,4.957550000000083],[42.76967,4.25259],[42.128609999999995,4.23413],[41.85508309264397,3.918911920483727],[41.1718,3.9190899999999997],[40.76848,4.257020000000001],[39.85494,3.83879],[39.55938425876585,3.42206],[38.89251,3.5007400000000004],[38.67114,3.6160700000000006],[38.43697,3.58851],[38.120915,3.598605],[36.85509323800812,4.447864127672769],[36.159078632855646,4.447864127672769],[35.817447662353516,4.7769656634618896],[35.817447662353516,5.338232082790797],[35.29800711823298,5.506],[34.70702,6.594220000000121],[34.250320000000045,6.8260700000000725],[34.07510000000002,7.2259500000000685],[33.568290000000104,7.7133400000000165],[32.954180000000065,7.784970000000101],[33.29480000000012,8.354580000000055],[33.82550000000015,8.37916000000007],[33.97498000000007,8.68455999999992],[33.961620000000096,9.583580000000097],[34.25745000000006,10.630089999999996],[34.73115000000013,10.910170000000107],[34.83163000000013,11.318960000000118],[35.26049000000006,12.08286000000004],[35.86363,12.578280000000063],[36.27022000000005,13.563330000000121],[36.42951000000005,14.422110000000032],[37.59377000000006,14.213099999999997],[37.90607000000011,14.959430000000168],[38.512950000000046,14.50547000000006],[39.0994,14.740640000000042],[39.34061000000008,14.531549999999982],[40.02625000000012,14.519589999999994],[40.896600000000035,14.118640000000141],[41.15519999999998,13.773329999999987],[41.59856000000002,13.452090000000112],[42.00975,12.865819999999928],[42.35156000000012,12.542230000000131],[42.000000000000114,12.100000000000136],[41.66176000000013,11.631199999999978],[41.73959000000019,11.355110000000138],[41.755570000000205,11.050910000000101],[42.31414000000012,11.034200000000055],[42.55493000000013,11.105110000000195],[42.77685184100096,10.92687856693442],[42.55875999999995,10.57258000000013],[42.92812000000009,10.021940000000143],[43.29699000000011,9.540480000000173],[43.678750000000036,9.18358000000012],[46.94834000000009,7.99688000000009],[47.78942,8.003]]]},"properties":{"ISO_A2":"ET","NAME":"Ethiopia"}},
167
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[42.35156000000012,12.542230000000131],[42.77964236834475,12.455415757695675],[43.08122602720016,12.699638576707116],[43.31785241066467,12.390148423711025],[43.286381463398925,11.974928290245884],[42.715873650896526,11.735640570518342],[43.14530480324214,11.462039699748857],[42.77685184100096,10.92687856693442],[42.55493000000013,11.105110000000195],[42.31414000000012,11.034200000000055],[41.755570000000205,11.050910000000101],[41.73959000000019,11.355110000000138],[41.66176000000013,11.631199999999978],[42.000000000000114,12.100000000000136],[42.35156000000012,12.542230000000131]]]},"properties":{"ISO_A2":"DJ","NAME":"Djibouti"}},
168
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[48.94820475850985,11.41061728169797],[48.94820475850974,11.410617281697963],[48.94200524271835,11.394266058798138],[48.938491245322496,10.982327378783467],[48.93823286316103,9.973500067581512],[48.93812951029645,9.451748968946617],[48.48673587422695,8.837626247589995],[47.78942,8.003],[46.94834000000009,7.99688000000009],[43.678750000000036,9.18358000000012],[43.29699000000011,9.540480000000173],[42.92812000000009,10.021940000000143],[42.55875999999995,10.57258000000013],[42.77685184100096,10.92687856693442],[43.14530480324214,11.462039699748857],[43.470659620951665,11.277709865763882],[43.66666832863484,10.86416921634816],[44.11780358254282,10.445538438351605],[44.614259067570856,10.442205308468942],[45.55694054543915,10.698029486529776],[46.645401238803004,10.816549383991173],[47.525657586462785,11.12722809492999],[48.02159630716778,11.193063869669743],[48.37878380716927,11.375481675660126],[48.94820641459347,11.41062164961852],[48.94820475850985,11.41061728169797]]]},"properties":{"ISO_A2":"-99","NAME":"Somaliland"}},
169
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[33.90371119710453,-0.9500000000000001],[31.866170000000068,-1.0273599999999306],[30.769860000000108,-1.0145499999999856],[30.419104852019245,-1.1346591121504161],[29.821518588996014,-1.4433224422297855],[29.579466180140884,-1.3413131648856265],[29.58783776217217,-0.587405694179381],[29.819503208136638,-0.2053101538133717],[29.875778842902434,0.5973798689763612],[30.086153598762706,1.0623127303062887],[30.46850752129029,1.5838054467797065],[30.85267011894806,1.8493964705438088],[31.174149204235817,2.204465236821264],[30.77334679538004,2.339883327642127],[30.83385989759381,3.509165961110341],[30.833852421715427,3.5091716042224625],[31.24556000000007,3.7819000000000074],[31.881449999999973,3.558269999999993],[32.686420000000055,3.7923200000000747],[33.3900000000001,3.7899999999999636],[34.005,4.249884947362048],[34.47913,3.5556000000000836],[34.59607,3.0537400000001185],[35.03599,1.90584],[34.6721,1.1769399999999999],[34.18,0.515],[33.893568969666944,0.1098135378618963],[33.90371119710453,-0.9500000000000001]]]},"properties":{"ISO_A2":"UG","NAME":"Uganda"}},
170
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.419104852019245,-1.1346591121504161],[30.816134881317712,-1.6989140763453887],[30.75830895358311,-2.2872502579883687],[30.469670000000008,-2.4138299999999617],[30.469673645761223,-2.41385475710134],[29.93835900240794,-2.348486830254238],[29.632176141078588,-2.917857761246097],[29.024926385216787,-2.8392579077301576],[29.117478875451553,-2.2922111954883846],[29.254834832483343,-2.2151099585089113],[29.291886834436614,-1.6200558406679872],[29.579466180140884,-1.3413131648856265],[29.821518588996014,-1.4433224422297855],[30.419104852019245,-1.1346591121504161]]]},"properties":{"ISO_A2":"RW","NAME":"Rwanda"}},
171
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[18.559999999999945,42.64999999999998],[17.674921502358984,43.02856252702361],[17.297373488034452,43.44634064388737],[16.91615644701733,43.66772247982567],[16.456442905348865,44.04123973243128],[16.23966027188453,44.35114329688571],[15.750026075918981,44.818711656262565],[15.959367303133376,45.23377676043094],[16.318156772535872,45.00412669532591],[16.534939406000206,45.21160757097772],[17.002146030351014,45.23377676043094],[17.861783481526402,45.067740383477144],[18.553214145591653,45.08158966733146],[19.005484597557594,44.86023449354299],[19.00548000000009,44.86023],[19.36802999999992,44.863000000000056],[19.11761000000007,44.42307000000011],[19.59976000000006,44.03846999999996],[19.454000000000065,43.56810000000013],[19.218519999999955,43.52384000000001],[19.03165000000007,43.432529999999986],[18.706480000000056,43.200109999999995],[18.559999999999945,42.64999999999998]]]},"properties":{"ISO_A2":"BA","NAME":"Bosnia and Herz."}},
172
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[22.380525750424592,42.32025950781509],[22.881373732197346,41.999297186850356],[22.952377150166452,41.33799388281115],[22.761770000000013,41.30480000000006],[22.597308383889015,41.130487168943205],[22.05537763844427,41.14986583105269],[21.674160597426976,40.931274522457954],[21.0200403174764,40.84272695572588],[20.605181919037364,41.086226304685226],[20.463175083099202,41.51508901627534],[20.59024743010491,41.855404161133606],[20.590246546680227,41.855408919283626],[20.71731000000011,41.84711000000004],[20.762159999999994,42.05186000000003],[21.35270000000014,42.20679999999999],[21.57663598940212,42.24522439706186],[21.917080000000112,42.30363999999997],[22.380525750424592,42.32025950781509]]]},"properties":{"ISO_A2":"MK","NAME":"Macedonia"}},
173
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[18.829824792873946,45.908872358025285],[18.82983808764996,45.90887767189193],[19.596044549241583,46.17172984474454],[20.220192498462836,46.127468980486555],[20.762174920339987,45.734573065771485],[20.874312778413355,45.416375433934235],[21.48352623870221,45.18117015235788],[21.56202273935361,44.7689472519655],[22.14508792490281,44.47842234962059],[22.459022251075936,44.7025171982543],[22.705725538837356,44.57800283464702],[22.4740084164406,44.40922760678177],[22.65714969248299,44.23492300066128],[22.410446404721597,44.008063462899955],[22.500156691180223,43.642814439461006],[22.986018507588483,43.2111612005271],[22.60480146657133,42.898518785161144],[22.43659467946128,42.580321153323936],[22.54501183440962,42.46136200618804],[22.380525750424592,42.32025950781509],[21.917080000000112,42.30363999999997],[21.57663598940212,42.24522439706186],[21.54332000000005,42.3202500000001],[21.662920000000042,42.439220000000034],[21.77505000000002,42.68270000000001],[21.633020000000045,42.67717000000005],[21.43865999999997,42.86254999999994],[21.27421000000004,42.909590000000094],[21.143395000000055,43.06868500000013],[20.95650999999998,43.13094000000007],[20.814480000000003,43.27205000000009],[20.63507999999996,43.21670999999998],[20.496790000000033,42.884690000000035],[20.257580000000075,42.81275000000011],[20.339800000000082,42.89852000000002],[19.958570000000066,43.106040000000064],[19.629999999999995,43.21377997027054],[19.483889999999974,43.35229000000004],[19.218519999999955,43.52384000000001],[19.454000000000065,43.56810000000013],[19.59976000000006,44.03846999999996],[19.11761000000007,44.42307000000011],[19.36802999999992,44.863000000000056],[19.00548000000009,44.86023],[19.005484597557594,44.86023449354299],[19.39047570158459,45.236515611342384],[19.072768995854176,45.52151113543209],[18.829824792873946,45.908872358025285]]]},"properties":{"ISO_A2":"RS","NAME":"Serbia"}},
174
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[20.070700000000045,42.58863000000008],[19.801613396898688,42.50009349219084],[19.73805138517963,42.68824738216557],[19.304486118250793,42.19574514420782],[19.37176816334725,41.877550679783496],[19.162459999999953,41.95502000000005],[18.88214000000005,42.281510000000026],[18.45001688302086,42.47999224531218],[18.559999999999945,42.64999999999998],[18.706480000000056,43.200109999999995],[19.03165000000007,43.432529999999986],[19.218519999999955,43.52384000000001],[19.483889999999974,43.35229000000004],[19.629999999999995,43.21377997027054],[19.958570000000066,43.106040000000064],[20.339800000000082,42.89852000000002],[20.257580000000075,42.81275000000011],[20.070700000000045,42.58863000000008]]]},"properties":{"ISO_A2":"ME","NAME":"Montenegro"}},
175
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[20.590246546680227,41.855408919283626],[20.522950000000037,42.21787000000006],[20.283754510181893,42.32025950781508],[20.070700000000045,42.58863000000008],[20.257580000000075,42.81275000000011],[20.496790000000033,42.884690000000035],[20.63507999999996,43.21670999999998],[20.814480000000003,43.27205000000009],[20.95650999999998,43.13094000000007],[21.143395000000055,43.06868500000013],[21.27421000000004,42.909590000000094],[21.43865999999997,42.86254999999994],[21.633020000000045,42.67717000000005],[21.77505000000002,42.68270000000001],[21.662920000000042,42.439220000000034],[21.54332000000005,42.3202500000001],[21.57663598940212,42.24522439706186],[21.35270000000014,42.20679999999999],[20.762159999999994,42.05186000000003],[20.71731000000011,41.84711000000004],[20.590246546680227,41.855408919283626]]]},"properties":{"ISO_A2":"XK","NAME":"Kosovo"}},
176
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-61.68000000000001,10.760000000000002],[-61.105000000000004,10.89],[-60.895,10.855],[-60.935,10.11],[-61.77000000000001,10],[-61.95,10.09],[-61.660000000000004,10.365000000000002],[-61.68000000000001,10.760000000000002]]]},"properties":{"ISO_A2":"TT","NAME":"Trinidad and Tobago"}},
177
+ {"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[30.833852421715427,3.5091716042224625],[29.953500197069474,4.173699042167684],[29.71599531425602,4.600804755060153],[29.1590784034465,4.389267279473231],[28.696677687298802,4.455077215996937],[28.428993768026913,4.287154649264494],[27.97997724784281,4.408413397637375],[27.37422610851749,5.233944403500061],[27.21340905122517,5.5509534773945575],[26.465909458123235,5.9467174341018705],[26.213418409945117,6.546603298362072],[25.79664798351118,6.979315904158071],[25.124130893664727,7.500085150579437],[25.11493248871679,7.825104071479174],[24.567369012152085,8.229187933785468],[23.886979580860668,8.619729712933065],[24.19406772118765,8.728696472403897],[24.53741516360202,8.91753756573172],[24.794925745412684,9.810240916008695],[25.069603699343986,10.273759963267992],[25.790633328413946,10.411098940233728],[25.962307049621018,10.136420986302426],[26.477328213242515,9.552730334198088],[26.752006167173818,9.466893473594496],[27.112520981708883,9.638567194801624],[27.833550610778786,9.60423245056029],[27.970889587744352,9.398223985111656],[28.966597170745786,9.398223985111656],[29.000931914987177,9.60423245056029],[29.515953078608618,9.793073543888056],[29.61895731133285,10.084918869940225],[29.996639497988554,10.290927335388687],[30.837840731903384,9.70723668328452],[31.35286189552488,9.810240916008695],[31.850715687025513,10.531270545078826],[32.400071594888345,11.080626452941488],[32.31423473428475,11.68148447716652],[32.073891524594785,11.973329803218519],[32.67474954881965,12.02483191958072],[32.743419037302544,12.248007757149992],[33.206938084561784,12.179338268667095],[33.086766479716744,11.441141267476496],[33.206938084561784,10.720111638406593],[33.72195924818311,10.325262079630193],[33.84213085302815,9.981914637215993],[33.82496348090751,9.484060845715362],[33.963392794971185,9.464285229420625],[33.97498000000007,8.68455999999992],[33.82550000000015,8.37916000000007],[33.29480000000012,8.354580000000055],[32.954180000000065,7.784970000000101],[33.568290000000104,7.7133400000000165],[34.07510000000002,7.2259500000000685],[34.250320000000045,6.8260700000000725],[34.70702,6.594220000000121],[35.29800711823298,5.506],[34.62019626785388,4.8471227420819885],[34.005,4.249884947362048],[33.3900000000001,3.7899999999999636],[32.686420000000055,3.7923200000000747],[31.881449999999973,3.558269999999993],[31.24556000000007,3.7819000000000074],[30.833852421715427,3.5091716042224625]]]},"properties":{"ISO_A2":"SS","NAME":"S. Sudan"}}
178
+ ]}
@@ -0,0 +1,2208 @@
1
+ /*! (c) gotoAndPlay | All rights reserved */
2
+ var application =
3
+ /******/ (function(modules) { // webpackBootstrap
4
+ /******/ // install a JSONP callback for chunk loading
5
+ /******/ function webpackJsonpCallback(data) {
6
+ /******/ var chunkIds = data[0];
7
+ /******/ var moreModules = data[1];
8
+ /******/
9
+ /******/
10
+ /******/ // add "moreModules" to the modules object,
11
+ /******/ // then flag all "chunkIds" as loaded and fire callback
12
+ /******/ var moduleId, chunkId, i = 0, resolves = [];
13
+ /******/ for(;i < chunkIds.length; i++) {
14
+ /******/ chunkId = chunkIds[i];
15
+ /******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
16
+ /******/ resolves.push(installedChunks[chunkId][0]);
17
+ /******/ }
18
+ /******/ installedChunks[chunkId] = 0;
19
+ /******/ }
20
+ /******/ for(moduleId in moreModules) {
21
+ /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
22
+ /******/ modules[moduleId] = moreModules[moduleId];
23
+ /******/ }
24
+ /******/ }
25
+ /******/ if(parentJsonpFunction) parentJsonpFunction(data);
26
+ /******/
27
+ /******/ while(resolves.length) {
28
+ /******/ resolves.shift()();
29
+ /******/ }
30
+ /******/
31
+ /******/ };
32
+ /******/
33
+ /******/
34
+ /******/ // The module cache
35
+ /******/ var installedModules = {};
36
+ /******/
37
+ /******/ // object to store loaded and loading chunks
38
+ /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
39
+ /******/ // Promise = chunk loading, 0 = chunk loaded
40
+ /******/ var installedChunks = {
41
+ /******/ "application": 0
42
+ /******/ };
43
+ /******/
44
+ /******/
45
+ /******/
46
+ /******/ // script path function
47
+ /******/ function jsonpScriptSrc(chunkId) {
48
+ /******/ return __webpack_require__.p + "assets/js/core/modules/" + ({"module-10":"module-10","module-11":"module-11","module-12~module-13~module-9":"module-12~module-13~module-9","module-12":"module-12","module-3":"module-3","module-6":"module-6","vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8":"vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8","module-1":"module-1","module-13":"module-13","module-4":"module-4","module-5":"module-5","module-7":"module-7","module-8":"module-8","vendors~module-0":"vendors~module-0","module-0":"module-0","vendors~module-9":"vendors~module-9","module-9":"module-9"}[chunkId]||chunkId) + ".bundle.js"
49
+ /******/ }
50
+ /******/
51
+ /******/ // The require function
52
+ /******/ function __webpack_require__(moduleId) {
53
+ /******/
54
+ /******/ // Check if module is in cache
55
+ /******/ if(installedModules[moduleId]) {
56
+ /******/ return installedModules[moduleId].exports;
57
+ /******/ }
58
+ /******/ // Create a new module (and put it into the cache)
59
+ /******/ var module = installedModules[moduleId] = {
60
+ /******/ i: moduleId,
61
+ /******/ l: false,
62
+ /******/ exports: {}
63
+ /******/ };
64
+ /******/
65
+ /******/ // Execute the module function
66
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
67
+ /******/
68
+ /******/ // Flag the module as loaded
69
+ /******/ module.l = true;
70
+ /******/
71
+ /******/ // Return the exports of the module
72
+ /******/ return module.exports;
73
+ /******/ }
74
+ /******/
75
+ /******/ // This file contains only the entry chunk.
76
+ /******/ // The chunk loading function for additional chunks
77
+ /******/ __webpack_require__.e = function requireEnsure(chunkId) {
78
+ /******/ var promises = [];
79
+ /******/
80
+ /******/
81
+ /******/ // JSONP chunk loading for javascript
82
+ /******/
83
+ /******/ var installedChunkData = installedChunks[chunkId];
84
+ /******/ if(installedChunkData !== 0) { // 0 means "already installed".
85
+ /******/
86
+ /******/ // a Promise means "currently loading".
87
+ /******/ if(installedChunkData) {
88
+ /******/ promises.push(installedChunkData[2]);
89
+ /******/ } else {
90
+ /******/ // setup Promise in chunk cache
91
+ /******/ var promise = new Promise(function(resolve, reject) {
92
+ /******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
93
+ /******/ });
94
+ /******/ promises.push(installedChunkData[2] = promise);
95
+ /******/
96
+ /******/ // start chunk loading
97
+ /******/ var script = document.createElement('script');
98
+ /******/ var onScriptComplete;
99
+ /******/
100
+ /******/ script.charset = 'utf-8';
101
+ /******/ script.timeout = 120;
102
+ /******/ if (__webpack_require__.nc) {
103
+ /******/ script.setAttribute("nonce", __webpack_require__.nc);
104
+ /******/ }
105
+ /******/ script.src = jsonpScriptSrc(chunkId);
106
+ /******/
107
+ /******/ // create error before stack unwound to get useful stacktrace later
108
+ /******/ var error = new Error();
109
+ /******/ onScriptComplete = function (event) {
110
+ /******/ // avoid mem leaks in IE.
111
+ /******/ script.onerror = script.onload = null;
112
+ /******/ clearTimeout(timeout);
113
+ /******/ var chunk = installedChunks[chunkId];
114
+ /******/ if(chunk !== 0) {
115
+ /******/ if(chunk) {
116
+ /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
117
+ /******/ var realSrc = event && event.target && event.target.src;
118
+ /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
119
+ /******/ error.name = 'ChunkLoadError';
120
+ /******/ error.type = errorType;
121
+ /******/ error.request = realSrc;
122
+ /******/ chunk[1](error);
123
+ /******/ }
124
+ /******/ installedChunks[chunkId] = undefined;
125
+ /******/ }
126
+ /******/ };
127
+ /******/ var timeout = setTimeout(function(){
128
+ /******/ onScriptComplete({ type: 'timeout', target: script });
129
+ /******/ }, 120000);
130
+ /******/ script.onerror = script.onload = onScriptComplete;
131
+ /******/ document.head.appendChild(script);
132
+ /******/ }
133
+ /******/ }
134
+ /******/ return Promise.all(promises);
135
+ /******/ };
136
+ /******/
137
+ /******/ // expose the modules object (__webpack_modules__)
138
+ /******/ __webpack_require__.m = modules;
139
+ /******/
140
+ /******/ // expose the module cache
141
+ /******/ __webpack_require__.c = installedModules;
142
+ /******/
143
+ /******/ // define getter function for harmony exports
144
+ /******/ __webpack_require__.d = function(exports, name, getter) {
145
+ /******/ if(!__webpack_require__.o(exports, name)) {
146
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
147
+ /******/ }
148
+ /******/ };
149
+ /******/
150
+ /******/ // define __esModule on exports
151
+ /******/ __webpack_require__.r = function(exports) {
152
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
153
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
154
+ /******/ }
155
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
156
+ /******/ };
157
+ /******/
158
+ /******/ // create a fake namespace object
159
+ /******/ // mode & 1: value is a module id, require it
160
+ /******/ // mode & 2: merge all properties of value into the ns
161
+ /******/ // mode & 4: return value when already ns object
162
+ /******/ // mode & 8|1: behave like require
163
+ /******/ __webpack_require__.t = function(value, mode) {
164
+ /******/ if(mode & 1) value = __webpack_require__(value);
165
+ /******/ if(mode & 8) return value;
166
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
167
+ /******/ var ns = Object.create(null);
168
+ /******/ __webpack_require__.r(ns);
169
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
170
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
171
+ /******/ return ns;
172
+ /******/ };
173
+ /******/
174
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
175
+ /******/ __webpack_require__.n = function(module) {
176
+ /******/ var getter = module && module.__esModule ?
177
+ /******/ function getDefault() { return module['default']; } :
178
+ /******/ function getModuleExports() { return module; };
179
+ /******/ __webpack_require__.d(getter, 'a', getter);
180
+ /******/ return getter;
181
+ /******/ };
182
+ /******/
183
+ /******/ // Object.prototype.hasOwnProperty.call
184
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
185
+ /******/
186
+ /******/ // __webpack_public_path__
187
+ /******/ __webpack_require__.p = "";
188
+ /******/
189
+ /******/ // on error function for async loading
190
+ /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
191
+ /******/
192
+ /******/ var jsonpArray = window["webpackJsonpapplication"] = window["webpackJsonpapplication"] || [];
193
+ /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
194
+ /******/ jsonpArray.push = webpackJsonpCallback;
195
+ /******/ jsonpArray = jsonpArray.slice();
196
+ /******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
197
+ /******/ var parentJsonpFunction = oldJsonpFunction;
198
+ /******/
199
+ /******/
200
+ /******/ // Load entry module and return exports
201
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/application.js");
202
+ /******/ })
203
+ /************************************************************************/
204
+ /******/ ({
205
+
206
+ /***/ "./src/application.js":
207
+ /*!****************************!*\
208
+ !*** ./src/application.js ***!
209
+ \****************************/
210
+ /*! no exports provided */
211
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
212
+
213
+ "use strict";
214
+ __webpack_require__.r(__webpack_exports__);
215
+ /* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _shell_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shell-controller */ "./src/shell-controller.js");
216
+
217
+
218
+ $( document ).ready(function()
219
+ {
220
+ console.info("SmartFoxServer 2X AdminTool ready!");
221
+
222
+ // Create shell controller instance
223
+ this.controller = new _shell_controller__WEBPACK_IMPORTED_MODULE_0__["ShellController"]();
224
+ });
225
+
226
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
227
+
228
+ /***/ }),
229
+
230
+ /***/ "./src/components/view-stack.js":
231
+ /*!**************************************!*\
232
+ !*** ./src/components/view-stack.js ***!
233
+ \**************************************/
234
+ /*! exports provided: ViewStack */
235
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
236
+
237
+ "use strict";
238
+ __webpack_require__.r(__webpack_exports__);
239
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewStack", function() { return ViewStack; });
240
+ class ViewStack extends HTMLElement
241
+ {
242
+ constructor()
243
+ {
244
+ super();
245
+
246
+ // Attach a shadow root
247
+ const shadowRoot = this.attachShadow({mode: 'open'});
248
+ shadowRoot.innerHTML = `
249
+ <style>
250
+ :host {}
251
+
252
+ ::slotted(:not([aria-selected="true"])) {
253
+ display: none !important;
254
+ }
255
+ </style>
256
+ <slot></slot>
257
+ `;
258
+
259
+ // Select first item
260
+ this.selectedIndex = 0;
261
+ }
262
+
263
+ get selectedElement()
264
+ {
265
+ return this._selectedElement;
266
+ }
267
+
268
+ set selectedElement(element)
269
+ {
270
+ if (element != null && element.parentNode == this)
271
+ {
272
+ this._selectedElement = element;
273
+
274
+ for (let element of this.children)
275
+ {
276
+ if (element == this._selectedElement)
277
+ element.setAttribute('aria-selected', 'true');
278
+ else
279
+ element.removeAttribute('aria-selected');
280
+ }
281
+ }
282
+ else
283
+ {
284
+ console.error('Element is not a child of ViewStack');
285
+ }
286
+ }
287
+
288
+ get selectedIndex()
289
+ {
290
+ return Array.from(this.children).indexOf(this._selectedElement);
291
+ }
292
+
293
+ set selectedIndex(index)
294
+ {
295
+ if (this.children.length > 0)
296
+ {
297
+ if (this.children[index] == null)
298
+ {
299
+ console.error("Invalid ViewStack index");
300
+ return;
301
+ }
302
+
303
+ let element = this.children[index];
304
+ this.selectedElement = element;
305
+ }
306
+ }
307
+ }
308
+
309
+ // DEFINE COMPONENT
310
+ if (!window.customElements.get('view-stack'))
311
+ window.customElements.define('view-stack', ViewStack);
312
+
313
+
314
+ /***/ }),
315
+
316
+ /***/ "./src/managers/chat-manager.js":
317
+ /*!**************************************!*\
318
+ !*** ./src/managers/chat-manager.js ***!
319
+ \**************************************/
320
+ /*! exports provided: ChatManager */
321
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
322
+
323
+ "use strict";
324
+ __webpack_require__.r(__webpack_exports__);
325
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChatManager", function() { return ChatManager; });
326
+ class ChatManager
327
+ {
328
+ constructor(shellCtrl)
329
+ {
330
+ this.USERVAR_MODULE = 'mod';
331
+
332
+ this.shellCtrl = shellCtrl;
333
+
334
+ // TODO Implement chat manager after creating the chat UI in main shell
335
+ }
336
+
337
+ /**
338
+ * Called by the shell when the user loads a new module, so that this info
339
+ * can be saved in the user variables and displayed in the chat's userlist.
340
+ */
341
+ setCurrentModule(moduleId)
342
+ {
343
+ // Save module id in user variables
344
+ let userVar = new SFS2X.SFSUserVariable(this.USERVAR_MODULE, moduleId);
345
+ this.shellCtrl.smartFox.send(new SFS2X.SetUserVariablesRequest([userVar]));
346
+ }
347
+ }
348
+
349
+
350
+ /***/ }),
351
+
352
+ /***/ "./src/managers/connection-manager.js":
353
+ /*!********************************************!*\
354
+ !*** ./src/managers/connection-manager.js ***!
355
+ \********************************************/
356
+ /*! exports provided: ConnectionManager */
357
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
358
+
359
+ "use strict";
360
+ __webpack_require__.r(__webpack_exports__);
361
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectionManager", function() { return ConnectionManager; });
362
+ /* harmony import */ var _utils_event_dispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/event-dispatcher */ "./src/utils/event-dispatcher.js");
363
+ /* harmony import */ var _utils_events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/events */ "./src/utils/events.js");
364
+
365
+
366
+
367
+ class ConnectionManager extends _utils_event_dispatcher__WEBPACK_IMPORTED_MODULE_0__["EventDispatcher"]
368
+ {
369
+ constructor(shellCtrl)
370
+ {
371
+ super();
372
+
373
+ this.ADMIN_ZONE_NAME = "--=={{{ AdminZone }}}==--";
374
+ this.EXTENSION_ERROR = "error";
375
+
376
+ this.COMMANDS_PREFIX = "admin";
377
+ this.COMMAND_RESTART = "restart";
378
+ this.COMMAND_HALT = "halt";
379
+
380
+ this.shellCtrl = shellCtrl;
381
+ }
382
+
383
+ get smartFox()
384
+ {
385
+ return this._sf;
386
+ }
387
+
388
+ connect(config, username, password)
389
+ {
390
+ // Set additional configuration options
391
+ config.zone = this.ADMIN_ZONE_NAME;
392
+ config.debug = false;
393
+
394
+ // Create SmartFox instance
395
+ this._sf = new SFS2X.SmartFox(config);
396
+
397
+ // Add listeners to SmartFox events useful to the shell
398
+ this._addSFSEventListeners();
399
+
400
+ // Save reference to connection details
401
+ this._config = config;
402
+ this._username = username;
403
+ this._password = password;
404
+
405
+ // Connect to SmartFoxServer instance
406
+ this._sf.connect();
407
+ }
408
+
409
+ disconnect()
410
+ {
411
+ this._sf.disconnect();
412
+ }
413
+
414
+ restartServer()
415
+ {
416
+ if (this._sf.isConnected)
417
+ this._sf.send(new SFS2X.ExtensionRequest(this.COMMANDS_PREFIX + "." + this.COMMAND_RESTART));
418
+ }
419
+
420
+ haltServer()
421
+ {
422
+ if (this._sf.isConnected)
423
+ this._sf.send(new SFS2X.ExtensionRequest(this.COMMANDS_PREFIX + "." + this.COMMAND_HALT));
424
+ }
425
+
426
+ /* --------- PRIVATE UTILITY METHODS --------- */
427
+
428
+ _addSFSEventListeners()
429
+ {
430
+ this._sf.addEventListener(SFS2X.SFSEvent.CONNECTION, this._onConnection, this);
431
+ this._sf.addEventListener(SFS2X.SFSEvent.CONNECTION_LOST, this._onConnectionLost, this);
432
+ this._sf.addEventListener(SFS2X.SFSEvent.LOGIN, this._onLogin, this);
433
+ this._sf.addEventListener(SFS2X.SFSEvent.LOGIN_ERROR, this._onLoginError, this);
434
+ this._sf.addEventListener(SFS2X.SFSEvent.EXTENSION_RESPONSE, this._onExtensionResponse, this);
435
+ }
436
+
437
+ _reset()
438
+ {
439
+ // Remove SFS event listeners
440
+ this._sf.removeEventListener(SFS2X.SFSEvent.CONNECTION, this._onConnection);
441
+ this._sf.removeEventListener(SFS2X.SFSEvent.CONNECTION_LOST, this._onConnectionLost);
442
+ this._sf.removeEventListener(SFS2X.SFSEvent.LOGIN, this._onLogin);
443
+ this._sf.removeEventListener(SFS2X.SFSEvent.LOGIN_ERROR, this._onLoginError);
444
+ this._sf.removeEventListener(SFS2X.SFSEvent.EXTENSION_RESPONSE, this._onExtensionResponse);
445
+
446
+ // Delete SmartFox class instance
447
+ this._sf = null;
448
+
449
+ // Delete connection details
450
+ this._config = null;
451
+ this._username = null;
452
+ this._password = null;
453
+ }
454
+
455
+ _login()
456
+ {
457
+ // The current AdminTool version must be sent to the server during login, to check if it is up-to-date
458
+ let params = new SFS2X.SFSObject();
459
+ params.putInt('clientVer', this.shellCtrl.intVersion);
460
+
461
+ // Login
462
+ this._sf.send( new SFS2X.LoginRequest(this._username, this._password, params, this._config.zone) );
463
+ }
464
+
465
+ /* --------- SMARTFOX EVENT LISTENERS --------- */
466
+
467
+ _onConnection(evtParams)
468
+ {
469
+ if (evtParams.success)
470
+ {
471
+ // Dispatch connection event
472
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ConnectionManagerEvent"].CONNECTION);
473
+
474
+ // Send login request
475
+ this._login();
476
+ }
477
+ else
478
+ {
479
+ // Dispatch error event
480
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ConnectionManagerEvent"].ERROR, {message: `Unable to connect to ${this._config.host}:${this._config.port}`});
481
+
482
+ // Reset status
483
+ this._reset();
484
+ }
485
+ }
486
+
487
+ _onConnectionLost(evtParams)
488
+ {
489
+ let reason = evtParams.reason;
490
+
491
+ if (reason != SFS2X.ClientDisconnectionReason.MANUAL)
492
+ {
493
+ var msg;
494
+
495
+ // Log disconnection message stating the reason
496
+ if (reason == SFS2X.ClientDisconnectionReason.IDLE)
497
+ msg = 'inactivity';
498
+ else
499
+ {
500
+ msg = 'unknown reason';
501
+
502
+ if (reason != SFS2X.ClientDisconnectionReason.UNKNOWN)
503
+ msg += ` (server reported: ${reason})`;
504
+ }
505
+
506
+ // Dispatch error event
507
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ConnectionManagerEvent"].ERROR, {message: `A disconnection occurred due to ${msg}; please reconnect`});
508
+ }
509
+ else
510
+ {
511
+ // Dispatch disconnection event
512
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ConnectionManagerEvent"].DISCONNECTION);
513
+ }
514
+
515
+ // Reset
516
+ this._reset();
517
+ }
518
+
519
+ _onLogin(evtParams)
520
+ {
521
+ let data = evtParams.data;
522
+
523
+ let params = {
524
+ serverVersion: data.getUtfString('serverVer'),
525
+ serverName: data.getUtfString('serverName'),
526
+ serverUptime: data.getIntArray('uptime'),
527
+ procControlEnabled: data.getBool('procCtrl'),
528
+ allowHalt: data.getBool('allowHalt'),
529
+ modules: data.getSFSArray('modules')
530
+ };
531
+
532
+ // Dispatch login event
533
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ConnectionManagerEvent"].LOGIN, params);
534
+ }
535
+
536
+ _onLoginError(evtParams)
537
+ {
538
+ // Disconnect from server
539
+ this._sf.disconnect();
540
+
541
+ // Dispatch error event
542
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ConnectionManagerEvent"].ERROR, {message: evtParams.errorMessage});
543
+ }
544
+
545
+ _onExtensionResponse(evtParams)
546
+ {
547
+ if (evtParams.cmd == this.EXTENSION_ERROR)
548
+ {
549
+ let data = evtParams.params;
550
+
551
+ // An unexpected error occurred in the Admin Tool server-side extension
552
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ConnectionManagerEvent"].SERVER_ERROR, {message: 'An unexpected error occurred in the Admin Tool server-side extension, please check the server-side logs; the extension reported: ' + data.getUtfString('error')});
553
+ }
554
+ }
555
+ }
556
+
557
+
558
+ /***/ }),
559
+
560
+ /***/ "./src/managers/module-manager.js":
561
+ /*!****************************************!*\
562
+ !*** ./src/managers/module-manager.js ***!
563
+ \****************************************/
564
+ /*! exports provided: ModuleManager */
565
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
566
+
567
+ "use strict";
568
+ __webpack_require__.r(__webpack_exports__);
569
+ /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleManager", function() { return ModuleManager; });
570
+ /* harmony import */ var _utils_event_dispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/event-dispatcher */ "./src/utils/event-dispatcher.js");
571
+ /* harmony import */ var _utils_events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/events */ "./src/utils/events.js");
572
+ /* harmony import */ var _utils_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/utilities */ "./src/utils/utilities.js");
573
+ /* harmony import */ var _modules_base_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/base-module */ "./src/modules/base-module.js");
574
+
575
+
576
+
577
+
578
+
579
+ class ModuleManager extends _utils_event_dispatcher__WEBPACK_IMPORTED_MODULE_0__["EventDispatcher"]
580
+ {
581
+ constructor(shellCtrl, container)
582
+ {
583
+ super();
584
+
585
+ // Make BaseModule class globally available, so it can be extended by custom modules
586
+ window.BaseModule = _modules_base_module__WEBPACK_IMPORTED_MODULE_3__["BaseModule"]
587
+
588
+ this._shellCtrl = shellCtrl;
589
+ this._container = container;
590
+ this._currentModuleId = null;
591
+
592
+ // Add listener for navigation items click
593
+ this._container.on('click', '.nav-item', $.proxy(function(event) {
594
+ event.preventDefault();
595
+
596
+ let moduleId = event.currentTarget.dataset.id;
597
+ let moduleData = this._moduleConfigById[moduleId];
598
+
599
+ if (moduleId != this._currentModuleId)
600
+ {
601
+ // Load selected module
602
+ this._loadModule(moduleData);
603
+ }
604
+
605
+ // Close navigation
606
+ this._shellCtrl._toggleNav(false);
607
+ }, this));
608
+
609
+ // Add listener to show tooltip
610
+ this._container.kendoTooltip({
611
+ filter: 'li[data-id]',
612
+ content: $.proxy(function(event) {
613
+ let moduleId = event.target[0].dataset.id;
614
+ let moduleData = this._moduleConfigById[moduleId];
615
+ return `<strong>${moduleData.name}</strong><br><span>${moduleData.description}</span>`;
616
+ }, this)
617
+ });
618
+
619
+ /* TESTING MEMORY LEAKS IN MODULES LOADING
620
+ ADD THIS IN THE MAIN VIEW TO START THE TEST: <div><button id="temp">test</button><span id="cnt"></span></div>
621
+ $('#temp').click(
622
+ $.proxy(function(event)
623
+ {
624
+ this.cnt = 0;
625
+ if (this.timer == null)
626
+ {
627
+ this.timer = window.setInterval($.proxy(function() {
628
+
629
+ $('#cnt').text(this.cnt++)
630
+ if (this._currentModuleId == 'Dashboard')
631
+ this._loadModule(this._moduleConfigById['ServerConfigurator']);
632
+ else
633
+ this._loadModule(this._moduleConfigById['Dashboard']);
634
+ }, this), 500);
635
+ }
636
+ else
637
+ {
638
+ window.clearInterval(this.timer);
639
+ this.timer = null;
640
+ }
641
+ }, this)
642
+ );
643
+ */
644
+ }
645
+
646
+ initModulesList(modulesData, loadModuleId = null)
647
+ {
648
+ // SETUP MODULES LIST
649
+
650
+ // Empty container of module selection buttons
651
+ this._container.empty();
652
+
653
+ this._moduleConfigById = {};
654
+ var firstModule = null;
655
+ var loadModule = null;
656
+
657
+ for (let i = 0; i < modulesData.size(); i++)
658
+ {
659
+ let moduleData = this._getModuleObject(modulesData.getSFSObject(i));
660
+
661
+ this._moduleConfigById[moduleData.id] = moduleData;
662
+
663
+ // Get first module
664
+ if (i == 0)
665
+ firstModule = moduleData;
666
+
667
+ // Get passed module
668
+ if (moduleData.id == loadModuleId)
669
+ loadModule = moduleData;
670
+
671
+ // Display module button
672
+ let moduleButton = this._createModuleButton(moduleData);
673
+ let element = this._container.append(moduleButton);
674
+ }
675
+
676
+ // LOAD INITIAL MODULE
677
+
678
+ // If module is not passed, load the first one of the modules list
679
+ if (loadModule == null)
680
+ loadModule = firstModule;
681
+
682
+ this._loadModule(loadModule);
683
+ }
684
+
685
+ unloadModule()
686
+ {
687
+ this._destroyCurrentModule();
688
+ }
689
+
690
+ get currentModuleId()
691
+ {
692
+ return this._currentModuleId;
693
+ }
694
+
695
+ get currentModule()
696
+ {
697
+ return document.querySelector('.module');
698
+ }
699
+
700
+ _getModuleObject(sfsObj)
701
+ {
702
+ return {
703
+ id: sfsObj.getUtfString('id'),
704
+ name: sfsObj.getUtfString('name'),
705
+ description: sfsObj.getUtfString('description'),
706
+ isSub: sfsObj.getBool('isSub'),
707
+ icon: sfsObj.containsKey('iconSvg') ? sfsObj.getUtfString('iconSvg') : '',
708
+ tag: Object(_utils_utilities__WEBPACK_IMPORTED_MODULE_2__["toKebabCase"])(sfsObj.getUtfString('id')),
709
+ isCustom: sfsObj.getBool('isCustom')
710
+ }
711
+ }
712
+
713
+ _createModuleButton(moduleData)
714
+ {
715
+ return `
716
+ <li class="nav-item" data-id="${moduleData.id}">
717
+ <div class="module-icon">${moduleData.icon}</div>
718
+ <label>${moduleData.name}</label>
719
+ </li>
720
+ `;
721
+ }
722
+
723
+ _loadModule(moduleData)
724
+ {
725
+ // Load the HTML file of a module
726
+ $('<module/>').load(`modules/${moduleData.tag}.html`, $.proxy(function(html, status) {
727
+
728
+ if (status != 'error')
729
+ {
730
+ if (!moduleData.isCustom)
731
+ {
732
+ // Load the JS file of a standard module
733
+ __webpack_require__("./src/modules lazy recursive ^\\.\\/.*\\.js$")(`./${moduleData.tag}.js`).then(module => {
734
+ this._onModuleControllerLoadSuccess(moduleData, html, module);
735
+ })
736
+ .catch(error => {
737
+ this._onModuleControllerLoadError(moduleData, error);
738
+ });
739
+ }
740
+ else
741
+ {
742
+ // Load the JS file of a custom module
743
+ import(/* webpackIgnore: true */`../custom-modules/${moduleData.tag}.js`).then(module => {
744
+ this._onModuleControllerLoadSuccess(moduleData, html, module);
745
+ })
746
+ .catch(error => {
747
+ this._onModuleControllerLoadError(moduleData, error);
748
+ });
749
+ }
750
+ }
751
+ else
752
+ {
753
+ // Dispatch error event
754
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ModuleManagerEvent"].MODULE_LOAD_ERROR, {message: `${moduleData.name} module's view (html) not found.`});
755
+ }
756
+ }, this));
757
+ }
758
+
759
+ _onModuleControllerLoadSuccess(moduleData, html, module)
760
+ {
761
+ // Destroy current module
762
+ this._destroyCurrentModule();
763
+
764
+ // Define loaded module (if necessary)
765
+ if (!window.customElements.get(moduleData.tag + '-module'))
766
+ window.customElements.define(moduleData.tag + '-module', module.default);
767
+
768
+ // Append new module
769
+ $('div.module-loader').append(html);
770
+
771
+ // Initialize module
772
+ this.currentModule.initialize(moduleData, this._shellCtrl);
773
+
774
+ // Save current module id
775
+ this._currentModuleId = moduleData.id;
776
+
777
+ // Dispatch event
778
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ModuleManagerEvent"].MODULE_LOADED, {moduleData: moduleData});
779
+ }
780
+
781
+ _onModuleControllerLoadError(moduleData, error)
782
+ {
783
+ // Log error details
784
+ this._shellCtrl.logMessage(error, 'warn');
785
+
786
+ // Dispatch error event
787
+ this.dispatchEvent(_utils_events__WEBPACK_IMPORTED_MODULE_1__["ModuleManagerEvent"].MODULE_LOAD_ERROR, {message: `${moduleData.name} custom module's controller (js) couldn't be loaded.`});
788
+ }
789
+
790
+ _destroyCurrentModule()
791
+ {
792
+ // Get a reference to current module
793
+ const mod = this.currentModule;
794
+
795
+ // Call destroy method on module's class
796
+ if (mod != null)
797
+ mod.destroy();
798
+
799
+ // Empty module container
800
+ $('div.module-loader').empty();
801
+
802
+ this._currentModuleId = null;
803
+ }
804
+ }
805
+
806
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
807
+
808
+ /***/ }),
809
+
810
+ /***/ "./src/modules lazy recursive ^\\.\\/.*\\.js$":
811
+ /*!********************************************************!*\
812
+ !*** ./src/modules lazy ^\.\/.*\.js$ namespace object ***!
813
+ \********************************************************/
814
+ /*! no static exports found */
815
+ /***/ (function(module, exports, __webpack_require__) {
816
+
817
+ var map = {
818
+ "./analytics.js": [
819
+ "./src/modules/analytics.js",
820
+ "vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8",
821
+ "vendors~module-0",
822
+ "module-0"
823
+ ],
824
+ "./ban-manager.js": [
825
+ "./src/modules/ban-manager.js",
826
+ "vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8",
827
+ "module-1"
828
+ ],
829
+ "./base-module.js": [
830
+ "./src/modules/base-module.js"
831
+ ],
832
+ "./blue-box-monitor.js": [
833
+ "./src/modules/blue-box-monitor.js",
834
+ "module-3"
835
+ ],
836
+ "./console.js": [
837
+ "./src/modules/console.js",
838
+ "vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8",
839
+ "module-4"
840
+ ],
841
+ "./dashboard.js": [
842
+ "./src/modules/dashboard.js",
843
+ "vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8",
844
+ "module-5"
845
+ ],
846
+ "./extension-manager.js": [
847
+ "./src/modules/extension-manager.js",
848
+ "module-6"
849
+ ],
850
+ "./license-manager.js": [
851
+ "./src/modules/license-manager.js",
852
+ "vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8",
853
+ "module-7"
854
+ ],
855
+ "./log-viewer.js": [
856
+ "./src/modules/log-viewer.js",
857
+ "vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8",
858
+ "module-8"
859
+ ],
860
+ "./server-configurator.js": [
861
+ "./src/modules/server-configurator.js",
862
+ "vendors~module-9",
863
+ "module-12~module-13~module-9",
864
+ "module-9"
865
+ ],
866
+ "./servlet-manager.js": [
867
+ "./src/modules/servlet-manager.js",
868
+ "module-10"
869
+ ],
870
+ "./template.js": [
871
+ "./src/modules/template.js",
872
+ "module-11"
873
+ ],
874
+ "./zone-configurator.js": [
875
+ "./src/modules/zone-configurator.js",
876
+ "module-12~module-13~module-9",
877
+ "module-12"
878
+ ],
879
+ "./zone-monitor.js": [
880
+ "./src/modules/zone-monitor.js",
881
+ "vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8",
882
+ "module-12~module-13~module-9",
883
+ "module-13"
884
+ ]
885
+ };
886
+ function webpackAsyncContext(req) {
887
+ if(!__webpack_require__.o(map, req)) {
888
+ return Promise.resolve().then(function() {
889
+ var e = new Error("Cannot find module '" + req + "'");
890
+ e.code = 'MODULE_NOT_FOUND';
891
+ throw e;
892
+ });
893
+ }
894
+
895
+ var ids = map[req], id = ids[0];
896
+ return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {
897
+ return __webpack_require__(id);
898
+ });
899
+ }
900
+ webpackAsyncContext.keys = function webpackAsyncContextKeys() {
901
+ return Object.keys(map);
902
+ };
903
+ webpackAsyncContext.id = "./src/modules lazy recursive ^\\.\\/.*\\.js$";
904
+ module.exports = webpackAsyncContext;
905
+
906
+ /***/ }),
907
+
908
+ /***/ "./src/modules/base-module.js":
909
+ /*!************************************!*\
910
+ !*** ./src/modules/base-module.js ***!
911
+ \************************************/
912
+ /*! exports provided: BaseModule */
913
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
914
+
915
+ "use strict";
916
+ __webpack_require__.r(__webpack_exports__);
917
+ /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseModule", function() { return BaseModule; });
918
+ class BaseModule extends HTMLElement
919
+ {
920
+ constructor(commandsPrefix)
921
+ {
922
+ super();
923
+
924
+ this._commandsPrefix = commandsPrefix;
925
+ }
926
+
927
+ get shellCtrl()
928
+ {
929
+ return this._shellCtrl;
930
+ }
931
+
932
+ get smartFox()
933
+ {
934
+ return this._shellCtrl.smartFox;
935
+ }
936
+
937
+ get idData()
938
+ {
939
+ return this._idData;
940
+ }
941
+
942
+ //---------------------------------
943
+ // OVERRIDABLE METHODS
944
+ //---------------------------------
945
+
946
+ /**
947
+ * Called by the modules manager after loading the module.
948
+ * In case it is overridden, super must always be called!
949
+ */
950
+ initialize(idData, shellController)
951
+ {
952
+ this._idData = idData;
953
+ this._shellCtrl = shellController;
954
+
955
+ // Add listener to Admin extension messages
956
+ this.smartFox.addEventListener(SFS2X.SFSEvent.EXTENSION_RESPONSE, this._onExtensionResponse, this);
957
+ }
958
+
959
+ /**
960
+ * Called by the modules manager before unloading the module.
961
+ * In case it is overridden, super must always be called!
962
+ */
963
+ destroy()
964
+ {
965
+ // Remove listener to Admin extension messages
966
+ this.smartFox.removeEventListener(SFS2X.SFSEvent.EXTENSION_RESPONSE, this._onExtensionResponse);
967
+
968
+ // Destroy all Kendo widgets
969
+ kendo.destroy($('.module'));
970
+ }
971
+
972
+ /**
973
+ * Called by the onExtensionResponse listener below.
974
+ * Must be overridden.
975
+ */
976
+ onExtensionCommand(cmd, data)
977
+ {
978
+ // Nothing to do
979
+ }
980
+
981
+ /**
982
+ * Called by the main shell whenever the server uptime changes.
983
+ * Can be overridden to display the uptime inside a module or make calculations on the server uptime.
984
+ */
985
+ onUptimeUpdated(values)
986
+ {
987
+ // Nothing to do
988
+ }
989
+
990
+ //---------------------------------
991
+ // PUBLIC METHODS
992
+ //---------------------------------
993
+
994
+ /**
995
+ * Send a request to Admin extension.
996
+ */
997
+ sendExtensionRequest(command, data = null)
998
+ {
999
+ if (data == null)
1000
+ data = new SFS2X.SFSObject();
1001
+
1002
+ this.smartFox.send(new SFS2X.ExtensionRequest(`${this._commandsPrefix}.${command}`, data));
1003
+ }
1004
+
1005
+ //---------------------------------
1006
+ // PRIVATE METHODS
1007
+ //---------------------------------
1008
+
1009
+ _onExtensionResponse(evtParams)
1010
+ {
1011
+ // Filter server responses
1012
+ let commands = evtParams.cmd.split('.');
1013
+ let data = evtParams.params;
1014
+
1015
+ if (commands[0] == this._commandsPrefix)
1016
+ {
1017
+ if (commands.length > 1)
1018
+ this.onExtensionCommand(commands[1], data)
1019
+ }
1020
+ }
1021
+ }
1022
+
1023
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
1024
+
1025
+ /***/ }),
1026
+
1027
+ /***/ "./src/shell-controller.js":
1028
+ /*!*********************************!*\
1029
+ !*** ./src/shell-controller.js ***!
1030
+ \*********************************/
1031
+ /*! exports provided: ShellController */
1032
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1033
+
1034
+ "use strict";
1035
+ __webpack_require__.r(__webpack_exports__);
1036
+ /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShellController", function() { return ShellController; });
1037
+ /* harmony import */ var _components_view_stack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/view-stack */ "./src/components/view-stack.js");
1038
+ /* harmony import */ var _managers_module_manager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./managers/module-manager */ "./src/managers/module-manager.js");
1039
+ /* harmony import */ var _utils_events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/events */ "./src/utils/events.js");
1040
+ /* harmony import */ var _managers_connection_manager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./managers/connection-manager */ "./src/managers/connection-manager.js");
1041
+ /* harmony import */ var _managers_chat_manager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./managers/chat-manager */ "./src/managers/chat-manager.js");
1042
+ /* harmony import */ var _utils_dot_properties_parse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/dot-properties-parse */ "./src/utils/dot-properties-parse.js");
1043
+ /* harmony import */ var _utils_dot_properties_parse__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_utils_dot_properties_parse__WEBPACK_IMPORTED_MODULE_5__);
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+ class ShellController
1053
+ {
1054
+ constructor()
1055
+ {
1056
+ // Set constants and variables
1057
+
1058
+ this.VERSION_MAJOR = 3;
1059
+ this.VERSION_MINOR = 2;
1060
+ this.VERSION_SUB = 1;
1061
+
1062
+ this.DEFAULT_WS_PORT = 8080;
1063
+ this.DEFAULT_WSS_PORT = 8443;
1064
+
1065
+ this.DEFAULT_USERNAME = 'sfsadmin';
1066
+ this.DEFAULT_PASSWORD = 'sfsadmin';
1067
+
1068
+ this._loginValidator = null;
1069
+
1070
+ // Display version
1071
+ $('.admin-version').text('v' + this.stringVersion);
1072
+
1073
+ // Create modules manager instance and add event listeners
1074
+ this._modManager = new _managers_module_manager__WEBPACK_IMPORTED_MODULE_1__["ModuleManager"](this, $('.nav-main'));
1075
+ this._modManager.addEventListener(_utils_events__WEBPACK_IMPORTED_MODULE_2__["ModuleManagerEvent"].MODULE_LOADED, this._onModuleLoaded, this);
1076
+ this._modManager.addEventListener(_utils_events__WEBPACK_IMPORTED_MODULE_2__["ModuleManagerEvent"].MODULE_LOAD_ERROR, this._onModuleLoadError, this);
1077
+
1078
+ // Create connection manager instance and add event listeners
1079
+ this._connManager = new _managers_connection_manager__WEBPACK_IMPORTED_MODULE_3__["ConnectionManager"](this);
1080
+ this._connManager.addEventListener(_utils_events__WEBPACK_IMPORTED_MODULE_2__["ConnectionManagerEvent"].CONNECTION, this._onConnection, this);
1081
+ this._connManager.addEventListener(_utils_events__WEBPACK_IMPORTED_MODULE_2__["ConnectionManagerEvent"].LOGIN, this._onLogin, this);
1082
+ this._connManager.addEventListener(_utils_events__WEBPACK_IMPORTED_MODULE_2__["ConnectionManagerEvent"].DISCONNECTION, this._onDisconnection, this);
1083
+ this._connManager.addEventListener(_utils_events__WEBPACK_IMPORTED_MODULE_2__["ConnectionManagerEvent"].ERROR, this._onConnManagerError, this);
1084
+ this._connManager.addEventListener(_utils_events__WEBPACK_IMPORTED_MODULE_2__["ConnectionManagerEvent"].SERVER_ERROR, this._onServerError, this);
1085
+
1086
+ // Create admin chat manager
1087
+ this._chatManager = new _managers_chat_manager__WEBPACK_IMPORTED_MODULE_4__["ChatManager"](this);
1088
+
1089
+ /* --------------------------- */
1090
+
1091
+ // Initialize views
1092
+ this._initViews();
1093
+
1094
+ // Show login view
1095
+ this._switchShellView('login-view');
1096
+ }
1097
+
1098
+ //---------------------------------
1099
+ // VIEW INITIALIZERS
1100
+ //---------------------------------
1101
+
1102
+ /**
1103
+ * Initialize login view.
1104
+ */
1105
+ _initLoginView()
1106
+ {
1107
+ // Set default input values (password never saved)
1108
+ let host = window.location.hostname;
1109
+ let port = this.DEFAULT_WS_PORT;
1110
+ let encrypt = false;
1111
+ let user = 'sfsadmin';
1112
+ let remember = false;
1113
+
1114
+ // Load "last-server" cookie
1115
+ let data = Cookies.getJSON('last-server')
1116
+ if (data)
1117
+ {
1118
+ host = data.host;
1119
+ port = data.port;
1120
+ encrypt = data.encrypt;
1121
+ user = data.user;
1122
+ remember = true;
1123
+ }
1124
+
1125
+ // Retrieve host from GET parameter
1126
+ let getHost = this._getUrlParameter('host');
1127
+ if (getHost)
1128
+ host = getHost;
1129
+
1130
+ // Set input values
1131
+ $('#loginHost').val(host);
1132
+ $('#loginUsername').val(user);
1133
+ $('#loginEncrypt').prop('checked', encrypt);
1134
+ $('#rememberLogin').prop('checked', remember);
1135
+
1136
+ // Initialize numeric input
1137
+ $('#loginPort').kendoNumericTextBox({
1138
+ format: '#####',
1139
+ value: port
1140
+ });
1141
+
1142
+ // Initialize the Kendo UI Validator on the "form" container
1143
+ // (NOTE: does NOT have to be an actual <form> tag)
1144
+ this._loginValidator = $('#loginForm').kendoValidator({
1145
+ validateOnBlur: true
1146
+ }).data('kendoValidator');
1147
+
1148
+ // Add listener to validate the form when the Connect button is clicked
1149
+ $('#loginButton').click($.proxy(this._onConnectClick, this));
1150
+
1151
+ // Add listener to submit form on Enter key press
1152
+ $('#loginForm').keyup(function(event) {
1153
+ if (event.key !== 'Enter') return;
1154
+
1155
+ $('#loginButton').click();
1156
+ event.preventDefault();
1157
+ });
1158
+
1159
+ // Add listener to encrypt checkbox
1160
+ $('#loginEncrypt').change($.proxy(function(event) {
1161
+ let port = this.DEFAULT_WS_PORT;
1162
+
1163
+ if ($('#loginEncrypt').prop('checked'))
1164
+ port = this.DEFAULT_WSS_PORT;
1165
+
1166
+ $('#loginPort').data('kendoNumericTextBox').value(port);
1167
+ }, this));
1168
+
1169
+ // Hide error message container
1170
+ $('#login-error').hide();
1171
+ }
1172
+
1173
+ /**
1174
+ * Initialize module view.
1175
+ */
1176
+ _initModuleView()
1177
+ {
1178
+ // Add listeners to open/close menu buttons
1179
+ $('.nav-open').click($.proxy(function(event) {
1180
+ event.preventDefault();
1181
+ this._toggleNav(true);
1182
+ }, this));
1183
+
1184
+ $('.nav-close, .nav-overlay').click($.proxy(function(event) {
1185
+ event.preventDefault();
1186
+ this._toggleNav(false);
1187
+ }, this));
1188
+
1189
+ // Add listeners to service buttons
1190
+ $('#restart-button').click($.proxy(this._onRestartClick, this));
1191
+ $('#halt-button').click($.proxy(this._onHaltClick, this));
1192
+ $('#help-button').click($.proxy(this._onHelpClick, this));
1193
+ $('#disconnect-button').click($.proxy(this._onDisconnectClick, this));
1194
+
1195
+ // Add listener to show tooltip on service buttons hover
1196
+ $('.nav-service').kendoTooltip({
1197
+ filter: 'li[title]'
1198
+ });
1199
+
1200
+ // Add listener to scroll main view to top if status bar is clicked
1201
+ $('#status-bar').click(function(event) {
1202
+ event.preventDefault();
1203
+ $('main').animate({ scrollTop: 0 }, 'fast');
1204
+ });
1205
+ }
1206
+
1207
+ //---------------------------------
1208
+ // UI EVENT LISTENERS
1209
+ //---------------------------------
1210
+
1211
+ /**
1212
+ * Validate login form and connect+login to SmartFoxServer.
1213
+ */
1214
+ _onConnectClick(event)
1215
+ {
1216
+ // Hide any previous error message
1217
+ $('#login-error').hide();
1218
+ $('#login-error').text('');
1219
+
1220
+ // Validate login form
1221
+ if (this._loginValidator.validate())
1222
+ {
1223
+ // Disable login form
1224
+ this._enableLoginForm(false);
1225
+
1226
+ // Retrieve connection details
1227
+ let config = {};
1228
+ config.host = $('#loginHost').val().trim();
1229
+ config.port = $('#loginPort').data('kendoNumericTextBox').value();
1230
+ config.useSSL = $('#loginEncrypt').prop('checked');
1231
+
1232
+ let username = $('#loginUsername').val().trim();
1233
+ let password = $('#loginPassword').val();
1234
+
1235
+ // Save input values to cookie (except password)...
1236
+ // ...or clear previously saved cookie
1237
+ if ($('#rememberLogin').prop('checked'))
1238
+ {
1239
+ Cookies.set('last-server', {
1240
+ host: config.host,
1241
+ port: config.port,
1242
+ encrypt: config.useSSL,
1243
+ user: username
1244
+
1245
+ }, {expires: 30});
1246
+ }
1247
+ else
1248
+ {
1249
+ Cookies.remove('last-server');
1250
+ }
1251
+
1252
+ // Connect to SFS2X & login
1253
+ this._connManager.connect(config, username, password);
1254
+ }
1255
+ }
1256
+
1257
+ /**
1258
+ * Restart SmartFoxServer.
1259
+ */
1260
+ _onRestartClick(event)
1261
+ {
1262
+ let message = 'Are you sure you want to stop and restart this instance of SmartFoxServer 2X?';
1263
+ this.showConfirmWarning(message, $.proxy(this._onRestartConfirmDialogConfirm, this));
1264
+ }
1265
+
1266
+ /**
1267
+ * Halt SmartFoxServer.
1268
+ */
1269
+ _onHaltClick(event)
1270
+ {
1271
+ let message = 'Are you sure you want to stop this instance of SmartFoxServer 2X?<br>You won\'t be able to restart it using the Administration Tool.';
1272
+ this.showConfirmWarning(message, $.proxy(this._onHaltConfirmDialogConfirm, this));
1273
+ }
1274
+
1275
+ /**
1276
+ * Open online documentation.
1277
+ */
1278
+ _onHelpClick(event)
1279
+ {
1280
+ // Open online doc
1281
+ window.open(`http://docs2x.smartfoxserver.com/GettingStarted/admintool-${this._modManager.currentModuleId}`, '_blank');
1282
+ }
1283
+
1284
+ /**
1285
+ * Disconnect from server.
1286
+ */
1287
+ _onDisconnectClick(event)
1288
+ {
1289
+ this._connManager.disconnect();
1290
+ }
1291
+
1292
+ //------------------------------------
1293
+ // CONNECTION MANAGER EVENT LISTENERS
1294
+ //------------------------------------
1295
+
1296
+ _onConnection(evtParams)
1297
+ {
1298
+ // Log message
1299
+ this.logMessage(`Connection to ${this._connManager.smartFox.config.host}:${this._connManager.smartFox.config.port} established`);
1300
+ }
1301
+
1302
+ _onLogin(evtParams)
1303
+ {
1304
+ // Log message
1305
+ this.logMessage(`Successful login to ${this._connManager.smartFox.config.host}:${this._connManager.smartFox.config.port} performed`);
1306
+
1307
+ // Get last loaded module from cookies
1308
+ let loadModuleId = null;
1309
+ let data = Cookies.getJSON('last-module')
1310
+ if (data)
1311
+ loadModuleId = data.id;
1312
+
1313
+ // Init the modules list with the configuration returned by the server and: load last saved module, or first module in the list, or passed module id
1314
+ this._modManager.initModulesList(evtParams.modules, loadModuleId);
1315
+
1316
+ // Save current uptime
1317
+ this._uptime = evtParams.serverUptime;
1318
+
1319
+ // Show/hide Halt and Restart buttons depending if:
1320
+ // 1) this feature is supported for the server operating system
1321
+ // 2) the administrator who just logged in has the permission to execute these actions
1322
+ this._showHaltRestartButtons(evtParams.procControlEnabled && evtParams.allowHalt);
1323
+
1324
+ // Switch to modules view
1325
+ this._goToModulesView(evtParams.serverVersion, evtParams.serverName);
1326
+
1327
+ // If default username and password have been used...
1328
+ if ($('#loginUsername').val() == this.DEFAULT_USERNAME && $('#loginPassword').val() == this.DEFAULT_PASSWORD)
1329
+ {
1330
+ // ...show alert
1331
+ this.showSimpleAlert('You are using the default administration profile which is highly insecure, please make sure to immediately change the password.');
1332
+
1333
+ // ...show non-removable message in alert bar
1334
+ $('#alert-bar').show();
1335
+ $('#alert-bar').text('You are using the default administration profile which is highly insecure, please change the password.');
1336
+ }
1337
+ }
1338
+
1339
+ /**
1340
+ * Listener called when the user disconnected voluntarily.
1341
+ */
1342
+ _onDisconnection(evtParams)
1343
+ {
1344
+ // Remove any popup or alert
1345
+ this.removeDialog();
1346
+
1347
+ // Switch back to login view
1348
+ this._goToLoginView();
1349
+
1350
+ // Hide navigation if open
1351
+ this._toggleNav(false);
1352
+ }
1353
+
1354
+ /**
1355
+ * Listener called when an error caused a disconnection.
1356
+ */
1357
+ _onConnManagerError(evtParams)
1358
+ {
1359
+ // Remove any popup or alert
1360
+ this.removeDialog();
1361
+
1362
+ // Log system message
1363
+ this.logMessage(evtParams.message, 'warn');
1364
+
1365
+ // Switch back to login view
1366
+ this._goToLoginView();
1367
+
1368
+ // Display error in login view
1369
+ $('#login-error').text(evtParams.message);
1370
+ $('#login-error').show();
1371
+ }
1372
+
1373
+ /**
1374
+ * Listener called when an unexpected server-side error occurs.
1375
+ */
1376
+ _onServerError(evtParams)
1377
+ {
1378
+ // Show an alert
1379
+ this.showSimpleAlert(evtParams.message);
1380
+ }
1381
+
1382
+ //---------------------------------
1383
+ // OTHER EVENT LISTENERS
1384
+ //---------------------------------
1385
+
1386
+ _onModuleLoaded(evtParams)
1387
+ {
1388
+ const moduleData = evtParams.moduleData;
1389
+
1390
+ // Save last loaded module to cookies
1391
+ Cookies.set('last-module', {
1392
+ id: moduleData.id
1393
+ }, {expires: 30});
1394
+
1395
+ // Display module title
1396
+ $('#module-title').show();
1397
+ $('#module-title-label').text(moduleData.name);
1398
+
1399
+ // Tell the chat manager which module has been loaded
1400
+ this._chatManager.setCurrentModule(moduleData.id);
1401
+
1402
+ // Assign the .selected class to the selected navigation item
1403
+ $('.nav-main').find(`[data-id='${moduleData.id}']`).addClass('selected').siblings('.selected').removeClass('selected');
1404
+ }
1405
+
1406
+ _onModuleLoadError(evtParams)
1407
+ {
1408
+ // Show an alert
1409
+ this.showSimpleAlert(evtParams.message);
1410
+ }
1411
+
1412
+ _onRestartConfirmDialogConfirm()
1413
+ {
1414
+ // Send restart server request
1415
+ this._connManager.restartServer();
1416
+ }
1417
+
1418
+ _onHaltConfirmDialogConfirm()
1419
+ {
1420
+ // Send halt server request
1421
+ this._connManager.haltServer();
1422
+ }
1423
+
1424
+ //---------------------------------
1425
+ // PUBLIC METHODS
1426
+ // This members are used by the sub-managers (i.e. ConnectionManager)
1427
+ // or the modules to communicate with this shell controller.
1428
+ //---------------------------------
1429
+
1430
+ get smartFox()
1431
+ {
1432
+ return this._connManager.smartFox;
1433
+ }
1434
+
1435
+ get intVersion()
1436
+ {
1437
+ var version = this.VERSION_MAJOR;
1438
+ version += (this.VERSION_MINOR < 10 ? '0' : '') + this.VERSION_MINOR;
1439
+ version += (this.VERSION_SUB < 10 ? '0' : '') + this.VERSION_SUB;
1440
+
1441
+ return Number(version);
1442
+ }
1443
+
1444
+ get stringVersion()
1445
+ {
1446
+ return this.VERSION_MAJOR + '.' + this.VERSION_MINOR + '.' + this.VERSION_SUB;
1447
+ }
1448
+
1449
+ logMessage(message, type = 'log')
1450
+ {
1451
+ switch (type) {
1452
+ case 'info':
1453
+ console.info('[ ADMINTOOL | INFO ] ' + message);
1454
+ break;
1455
+ case 'warn':
1456
+ console.warn('[ ADMINTOOL | WARN ] ' + message);
1457
+ break;
1458
+ case 'error':
1459
+ console.error('[ ADMINTOOL | ERROR ] ' + message);
1460
+ break;
1461
+ default:
1462
+ console.log('[ ADMINTOOL | INFO ] ' + message);
1463
+ }
1464
+ }
1465
+
1466
+ removeDialog()
1467
+ {
1468
+ // Hide any showing modal
1469
+ $('.modal').modal('hide');
1470
+
1471
+ // Hide any showing toast
1472
+ $('.toast').toast('hide');
1473
+
1474
+ // Remove shell's dialog
1475
+ if (this._dialog != null)
1476
+ {
1477
+ this._dialog.close();
1478
+ this._dialog.destroy();
1479
+ this._dialog = null;
1480
+ }
1481
+
1482
+ // Enable the following if other Kendo dialogs are used in modules
1483
+ /*
1484
+ // Remove any other dialog (inner to module)
1485
+ $('.k-dialog-content').each(function(index) {
1486
+ // Confirm dialog
1487
+ let confirm = $(this).data('kendoConfirm');
1488
+ if (confirm)
1489
+ {
1490
+ confirm.close();
1491
+ confirm.destroy();
1492
+ }
1493
+ });
1494
+ */
1495
+ }
1496
+
1497
+ /**
1498
+ * Show simple alert.
1499
+ */
1500
+ showSimpleAlert(text, isWarning = true)
1501
+ {
1502
+ // Create and show dialog
1503
+ this._dialog = kendo.alert(text);
1504
+ this._dialog.title(isWarning ? 'Warning' : 'Information');
1505
+
1506
+ // Set custom class for styling
1507
+ this._dialog.wrapper.addClass(isWarning ? 'is-warning' : 'is-info');
1508
+
1509
+ // Log message too
1510
+ // (we encapsule the text in a span and extract the text again to remove inner html tags)
1511
+ let html = $('<span>' + text + '</span>');
1512
+ this.logMessage(html.text(), isWarning ? 'warn' : 'info');
1513
+ }
1514
+
1515
+ /**
1516
+ * Show confirm alert.
1517
+ */
1518
+ showConfirmWarning(text, confirmHandler)
1519
+ {
1520
+ // Create dialog
1521
+ this._dialog = $('<div></div>').kendoConfirm({
1522
+ title: 'Warning',
1523
+ content: text,
1524
+ actions: [
1525
+ {
1526
+ text: 'OK',
1527
+ primary: true,
1528
+ action: confirmHandler
1529
+ },
1530
+ ]
1531
+ }).data('kendoConfirm');
1532
+
1533
+ // Set custom class for styling
1534
+ this._dialog.wrapper.addClass('is-warning');
1535
+
1536
+ // Show dialog
1537
+ this._dialog.open();
1538
+ }
1539
+
1540
+ showNotification(title, message)
1541
+ {
1542
+ // Display notification
1543
+ let toast = $(`
1544
+ <div class="toast" role="alert" aria-live="assertive" aria-atomic="true" data-delay="4000">
1545
+ <div class="toast-header">
1546
+ <strong class="mr-auto">${title}</strong>
1547
+ <button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
1548
+ <span aria-hidden="true">&times;</span>
1549
+ </button>
1550
+ </div>
1551
+ <div class="toast-body">${message}</div>
1552
+ </div>
1553
+ `);
1554
+
1555
+ $('.toast-container').append(toast);
1556
+ toast.toast('show');
1557
+
1558
+ // Log message too
1559
+ // (we encapsule the text in a span and extract the text again to remove inner html tags)
1560
+ let html = $('<span>' + title + ' - ' + message + '</span>');
1561
+ this.logMessage(html.text(), 'info');
1562
+ }
1563
+
1564
+ updateModuleTitle(title, asSuffix = false)
1565
+ {
1566
+ $('#module-title-label').text( (asSuffix ? $('#module-title-label').text() : '') + title );
1567
+ }
1568
+
1569
+ //---------------------------------
1570
+ // PRIVATE METHODS
1571
+ //---------------------------------
1572
+
1573
+ _initViews()
1574
+ {
1575
+ // Initialize login view
1576
+ this._initLoginView();
1577
+
1578
+ // Initialize module view
1579
+ this._initModuleView();
1580
+ }
1581
+
1582
+ /**
1583
+ * Switch view in top view stack.
1584
+ * @param {string} viewId Identifier of the viewstask child to display.
1585
+ */
1586
+ _switchShellView(viewId)
1587
+ {
1588
+ document.getElementById('shell').selectedElement = document.getElementById(viewId);
1589
+
1590
+ // (jQuery alternative)
1591
+ // $('#shell')[0].selectedElement = $('#shell').children('#' + viewId)[0];
1592
+ }
1593
+
1594
+ /**
1595
+ * Enable/disable login form.
1596
+ */
1597
+ _enableLoginForm(enable)
1598
+ {
1599
+ // Enable/disable fieldset (works for all non-kendo inputs)
1600
+ $('#loginForm fieldset').prop('disabled', !enable);
1601
+
1602
+ // Enable/disable numeric textbox
1603
+ $('#loginPort').data('kendoNumericTextBox').enable(enable);
1604
+ }
1605
+
1606
+ _toggleNav(bool)
1607
+ {
1608
+ $('.nav-container, .nav-overlay').toggleClass('is-visible', bool);
1609
+ $('.module-container').toggleClass('scale-down', bool);
1610
+ }
1611
+
1612
+ _getUrlParameter(param)
1613
+ {
1614
+ let pageURL = window.location.search.substring(1);
1615
+ let urlVariables = pageURL.split('&');
1616
+
1617
+ for (var i = 0; i < urlVariables.length; i++) {
1618
+ let paramName = urlVariables[i].split('=');
1619
+ if (paramName[0] == param && paramName[1] != '')
1620
+ return paramName[1];
1621
+ }
1622
+
1623
+ return null;
1624
+ }
1625
+
1626
+ _goToLoginView()
1627
+ {
1628
+ // Clear password field
1629
+ $('#loginPassword').val('');
1630
+
1631
+ // Switch to login view
1632
+ this._switchShellView('login-view');
1633
+
1634
+ // Unload current module
1635
+ this._modManager.unloadModule();
1636
+
1637
+ // Enable login form
1638
+ this._enableLoginForm(true);
1639
+
1640
+ // Remove uptime updater
1641
+ clearInterval(this._uptimeTimer);
1642
+ }
1643
+
1644
+ _goToModulesView(serverVersion, serverName)
1645
+ {
1646
+ // Hide module title
1647
+ $('#module-title').hide();
1648
+ $('#module-title-label').text('');
1649
+
1650
+ // Hide alert bar
1651
+ $('#alert-bar').hide();
1652
+
1653
+ // Show server version in the header
1654
+ $('#sfs-version-value').text(serverVersion);
1655
+
1656
+ // Set server name, IP and port in module's title bar
1657
+ let host = `${this._connManager.smartFox.config.host}:${this._connManager.smartFox.config.port}` + (serverName != '' ? ` [${serverName}]` : '');
1658
+ $('#host-label').text(host);
1659
+
1660
+ // Save current SFS version
1661
+ this._currentSfsVersion = serverVersion;
1662
+
1663
+ // Check new SFS version availability
1664
+ this._checkAvailableSfsVersion();
1665
+
1666
+ // Start uptime updater
1667
+ this._uptimeTimer = setInterval($.proxy(this._updateUptime, this), 1000);
1668
+
1669
+ // Switch to modules view
1670
+ this._switchShellView('module-view');
1671
+ }
1672
+
1673
+ _showHaltRestartButtons(show)
1674
+ {
1675
+ if (show)
1676
+ {
1677
+ $('#restart-button').show();
1678
+ $('#halt-button').show();
1679
+ }
1680
+ else
1681
+ {
1682
+ $('#restart-button').hide();
1683
+ $('#halt-button').hide();
1684
+ }
1685
+ }
1686
+
1687
+ _checkAvailableSfsVersion()
1688
+ {
1689
+ // Remove class to hide update button style and notification icon
1690
+ $('#sfs-version').removeClass('is-active');
1691
+
1692
+ // Remove update button click listeners
1693
+ $('#sfs-version-button').off('click');
1694
+
1695
+ // Load file containing latest SFS version info
1696
+ $.ajax({
1697
+ type: 'GET',
1698
+ url: 'https://www.smartfoxserver.com/downloads/sfs2x/latestVersion.txt',
1699
+ dataType: 'text',
1700
+ success: $.proxy(this._onLatestSfsVersionInfoLoaded, this),
1701
+ error: $.proxy(function() {
1702
+ this.logMessage('Unable to check new server version availability on SmartFoxServer website', 'warn');
1703
+ }, this)
1704
+ });
1705
+ }
1706
+
1707
+ _onLatestSfsVersionInfoLoaded(data)
1708
+ {
1709
+ // Parse returned data
1710
+ const v = Object(_utils_dot_properties_parse__WEBPACK_IMPORTED_MODULE_5__["parse"])(data);
1711
+
1712
+ if (v.version != null && this._isSfsVersionNewer(v.version, this._currentSfsVersion))
1713
+ {
1714
+ this.tempflag = true;
1715
+ this.logMessage('An updated version of SmartFoxServer 2X is available for download', 'info');
1716
+
1717
+ // Set upgrade dialog details
1718
+ this._sfsUpdateDetails = v;
1719
+
1720
+ // Add listener to show SFS version update modal
1721
+ $('#sfs-version-button').click(function() {
1722
+ $('#serverUpdateModal').modal({
1723
+ backdrop: 'static',
1724
+ keyboard: false,
1725
+ });
1726
+ });
1727
+
1728
+ // Set class to show update button style and notification icon
1729
+ $('#sfs-version').addClass('is-active');
1730
+
1731
+ // Update modal content
1732
+ const newVer = this._sfsUpdateDetails;
1733
+ const currVer = this._currentSfsVersion;
1734
+
1735
+ let modal = $('#serverUpdateModal');
1736
+
1737
+ // Update modal content
1738
+ $('#newVersLb', modal).text(newVer.version);
1739
+ $('#updTypeLb', modal).text(newVer.isPatch ? 'patch' : 'full installer');
1740
+ $('#reqVersLb', modal).text(newVer.isPatch ? ' (requires version ' + newVer.requires + ' or later)' : '');
1741
+ $('#currVersLb', modal).text(currVer);
1742
+ $('#serverUpdateModalLink', modal).attr('href', newVer.url);
1743
+ }
1744
+ }
1745
+
1746
+ _isSfsVersionNewer(availableVer, currentVer)
1747
+ {
1748
+ const MAJ = 0;
1749
+ const MIN = 1;
1750
+ const SUB = 2;
1751
+
1752
+ const available = availableVer.split('.');
1753
+ const current = currentVer.split('.');
1754
+
1755
+ // Check major version
1756
+ if (available[MAJ] > current[MAJ])
1757
+ return true;
1758
+ else if (available[MAJ] == current[MAJ])
1759
+ {
1760
+ // Check minor version
1761
+ if (available[MIN] > current[MIN])
1762
+ return true;
1763
+ else if (available[MIN] == current[MIN])
1764
+ {
1765
+ // Check sub version
1766
+ if (available[SUB] > current[SUB])
1767
+ return true;
1768
+ }
1769
+ }
1770
+
1771
+ return false;
1772
+ }
1773
+
1774
+ _updateUptime()
1775
+ {
1776
+ let days = this._uptime[0];
1777
+ let hours = this._uptime[1];
1778
+ let minutes = this._uptime[2];
1779
+ let seconds = this._uptime[3] + 1;
1780
+
1781
+ if (seconds > 59)
1782
+ {
1783
+ seconds = 0;
1784
+ minutes += 1;
1785
+
1786
+ if (minutes > 59)
1787
+ {
1788
+ minutes = 0;
1789
+ hours += 1;
1790
+
1791
+ if (hours > 23)
1792
+ {
1793
+ hours = 0;
1794
+ days += 1;
1795
+ }
1796
+ }
1797
+ }
1798
+
1799
+ this._uptime[3] = seconds;
1800
+ this._uptime[2] = minutes;
1801
+ this._uptime[1] = hours;
1802
+ this._uptime[0] = days;
1803
+
1804
+ // Send updated uptime to current module (if loaded)
1805
+ let module = this._modManager.currentModule;
1806
+ if (module != null)
1807
+ module.onUptimeUpdated(this._uptime);
1808
+ }
1809
+ }
1810
+
1811
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
1812
+
1813
+ /***/ }),
1814
+
1815
+ /***/ "./src/utils/dot-properties-parse.js":
1816
+ /*!*******************************************!*\
1817
+ !*** ./src/utils/dot-properties-parse.js ***!
1818
+ \*******************************************/
1819
+ /*! no static exports found */
1820
+ /***/ (function(module, exports) {
1821
+
1822
+ const atComment = (src, offset) => {
1823
+ const ch = src[offset]
1824
+ return ch === '#' || ch === '!'
1825
+ }
1826
+
1827
+ const atLineEnd = (src, offset) => {
1828
+ const ch = src[offset]
1829
+ return !ch || ch === '\r' || ch === '\n'
1830
+ }
1831
+
1832
+ const endOfIndent = (src, offset) => {
1833
+ let ch = src[offset]
1834
+ while (ch === '\t' || ch === '\f' || ch === ' ') {
1835
+ offset += 1
1836
+ ch = src[offset]
1837
+ }
1838
+ return offset
1839
+ }
1840
+
1841
+ const endOfComment = (src, offset) => {
1842
+ let ch = src[offset]
1843
+ while (ch && ch !== '\r' && ch !== '\n') {
1844
+ offset += 1
1845
+ ch = src[offset]
1846
+ }
1847
+ return offset
1848
+ }
1849
+
1850
+ const endOfKey = (src, offset) => {
1851
+ let ch = src[offset]
1852
+ while (ch && ch !== '\r' && ch !== '\n' && ch !== '\t' && ch !== '\f' && ch !== ' ' && ch !== ':' && ch !== '=') {
1853
+ if (ch === '\\') {
1854
+ if (src[offset + 1] === '\n') {
1855
+ offset = endOfIndent(src, offset + 2)
1856
+ } else {
1857
+ offset += 2
1858
+ }
1859
+ } else {
1860
+ offset += 1
1861
+ }
1862
+ ch = src[offset]
1863
+ }
1864
+ return offset
1865
+ }
1866
+
1867
+ const endOfSeparator = (src, offset) => {
1868
+ let ch = src[offset]
1869
+ let hasEqSign = false
1870
+ loop: while (ch === '\t' || ch === '\f' || ch === ' ' || ch === '=' || ch === ':' || ch === '\\') {
1871
+ switch (ch) {
1872
+ case '\\':
1873
+ if (src[offset + 1] !== '\n') break loop
1874
+ offset = endOfIndent(src, offset + 2)
1875
+ break
1876
+ case '=':
1877
+ case ':':
1878
+ if (hasEqSign) break loop
1879
+ hasEqSign = true
1880
+ // fallthrough
1881
+ default:
1882
+ offset += 1
1883
+ }
1884
+ ch = src[offset]
1885
+ }
1886
+ return offset
1887
+ }
1888
+
1889
+ const endOfValue = (src, offset) => {
1890
+ let ch = src[offset]
1891
+ while (ch && ch !== '\r' && ch !== '\n') {
1892
+ offset += ch === '\\' ? 2 : 1
1893
+ ch = src[offset]
1894
+ }
1895
+ return offset
1896
+ }
1897
+
1898
+ const unescape = (str) => str.replace(/\\(u[0-9a-fA-F]{4}|\r?\n[ \t\f]*|.)?/g, (match, code) => {
1899
+ switch (code && code[0]) {
1900
+ case 'f': return '\f'
1901
+ case 'n': return '\n'
1902
+ case 'r': return '\r'
1903
+ case 't': return '\t'
1904
+ case 'u':
1905
+ const c = parseInt(code.substr(1), 16)
1906
+ return isNaN(c) ? code : String.fromCharCode(c)
1907
+ case '\r':
1908
+ case '\n':
1909
+ case undefined:
1910
+ return ''
1911
+ default:
1912
+ return code
1913
+ }
1914
+ })
1915
+
1916
+ /**
1917
+ * Splits the input string into an array of logical lines
1918
+ *
1919
+ * Key-value pairs are [key, value] arrays with string values. Escape sequences
1920
+ * in keys and values are parsed. Empty lines are included as empty strings, and
1921
+ * comments as strings that start with '#' or '! characters. Leading whitespace
1922
+ * is not included.
1923
+ *
1924
+ * @see https://docs.oracle.com/javase/9/docs/api/java/util/Properties.html#load(java.io.Reader)
1925
+ *
1926
+ * @param {string} src
1927
+ * @returns Array<string | string[]]>
1928
+ */
1929
+ function parseLines (src) {
1930
+ const lines = []
1931
+ for (i = 0; i < src.length; ++i) {
1932
+ if (src[i] === '\n' && src[i - 1] === '\r') i += 1
1933
+ if (!src[i]) break
1934
+ const keyStart = endOfIndent(src, i)
1935
+ if (atLineEnd(src, keyStart)) {
1936
+ lines.push('')
1937
+ i = keyStart
1938
+ continue
1939
+ }
1940
+ if (atComment(src, keyStart)) {
1941
+ const commentEnd = endOfComment(src, keyStart)
1942
+ lines.push(src.slice(keyStart, commentEnd))
1943
+ i = commentEnd
1944
+ continue
1945
+ }
1946
+ const keyEnd = endOfKey(src, keyStart)
1947
+ const key = unescape(src.slice(keyStart, keyEnd))
1948
+ const valueStart = endOfSeparator(src, keyEnd)
1949
+ if (atLineEnd(src, valueStart)) {
1950
+ lines.push([key, ''])
1951
+ i = valueStart
1952
+ continue
1953
+ }
1954
+ const valueEnd = endOfValue(src, valueStart)
1955
+ const value = unescape(src.slice(valueStart, valueEnd))
1956
+ lines.push([key, value])
1957
+ i = valueEnd
1958
+ }
1959
+ return lines
1960
+ }
1961
+
1962
+ /**
1963
+ * Parses an input string read from a .properties file into a JavaScript Object
1964
+ *
1965
+ * If the second `path` parameter is true, dots '.' in keys will result in a
1966
+ * multi-level object (use a string value to customise). If a parent level is
1967
+ * directly assigned a value while it also has a child with an assigned value,
1968
+ * the parent value will be assigned to its empty string '' key. Repeated keys
1969
+ * will take the last assigned value. Key order is not guaranteed, but is likely
1970
+ * to match the order of the input lines.
1971
+ *
1972
+ * @param {string} src
1973
+ * @param {boolean | string} [path=false]
1974
+ */
1975
+ function parse (src, path) {
1976
+ const pathSep = typeof path === 'string' ? path : '.'
1977
+ return parseLines(src).reduce((res, line) => {
1978
+ if (Array.isArray(line)) {
1979
+ const [key, value] = line
1980
+ if (path) {
1981
+ const keyPath = key.split(pathSep)
1982
+ let parent = res
1983
+ while (keyPath.length >= 2) {
1984
+ const p = keyPath.shift()
1985
+ if (!parent[p]) {
1986
+ parent[p] = {}
1987
+ } else if (typeof parent[p] !== 'object') {
1988
+ parent[p] = { '': parent[p] }
1989
+ }
1990
+ parent = parent[p]
1991
+ }
1992
+ const leaf = keyPath[0]
1993
+ if (typeof parent[leaf] === 'object') {
1994
+ parent[leaf][''] = value
1995
+ } else {
1996
+ parent[leaf] = value
1997
+ }
1998
+ } else {
1999
+ res[key] = value
2000
+ }
2001
+ }
2002
+ return res
2003
+ }, {})
2004
+ }
2005
+
2006
+ module.exports = { parse, parseLines }
2007
+
2008
+
2009
+ /***/ }),
2010
+
2011
+ /***/ "./src/utils/event-dispatcher.js":
2012
+ /*!***************************************!*\
2013
+ !*** ./src/utils/event-dispatcher.js ***!
2014
+ \***************************************/
2015
+ /*! exports provided: EventDispatcher */
2016
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2017
+
2018
+ "use strict";
2019
+ __webpack_require__.r(__webpack_exports__);
2020
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventDispatcher", function() { return EventDispatcher; });
2021
+ class EventDispatcher {
2022
+ constructor() {
2023
+ this._listenersByEvent = {};
2024
+ }
2025
+
2026
+ /**
2027
+ * Registers an event listener function that will receive notification of an event.
2028
+ *
2029
+ * <p>If you no longer need an event listener, remove it by calling the <em>removeEventListener()</em> method, or memory issues could arise.
2030
+ * In fact event listeners are not automatically removed from memory.</p>
2031
+ *
2032
+ * @param {string} evtType The type of event to listen to.
2033
+ * @param {function} callback The listener function that processes the event. This function should accept an object as its only parameter, which in turn contains the event parameters.
2034
+ * @param {object} scope The object that acts as a context for the event listener: it is the object that acts as a "parent scope" for the callback function, thus providing context (i.e. access to variables and other mehtods) to the function itself.
2035
+ */
2036
+ addEventListener(evtType, callback, scope)
2037
+ {
2038
+ if (!this._listenersByEvent[evtType])
2039
+ this._listenersByEvent[evtType] = [];
2040
+
2041
+ this._listenersByEvent[evtType].push({callback:callback, scope:scope});
2042
+ }
2043
+
2044
+ /**
2045
+ * Removes an event listener.
2046
+ *
2047
+ * @param {string} evtType The type of event to remove.
2048
+ * @param {function} callback The listener function to be removed.
2049
+ */
2050
+ removeEventListener(evtType, callback)
2051
+ {
2052
+ const listeners = this._listenersByEvent[evtType];
2053
+
2054
+ if (listeners)
2055
+ {
2056
+ for (let i = 0; i < listeners.length; i++)
2057
+ {
2058
+ if (listeners[i].callback === callback)
2059
+ {
2060
+ listeners.splice(i, 1);
2061
+ break;
2062
+ }
2063
+ }
2064
+ }
2065
+ }
2066
+
2067
+ dispatchEvent(evtType, evtObj)
2068
+ {
2069
+ const listeners = this._listenersByEvent[evtType];
2070
+
2071
+ if (listeners)
2072
+ {
2073
+ for (let listener of listeners)
2074
+ listener.callback.call(listener.scope, evtObj);
2075
+ }
2076
+ }
2077
+ }
2078
+
2079
+
2080
+ /***/ }),
2081
+
2082
+ /***/ "./src/utils/events.js":
2083
+ /*!*****************************!*\
2084
+ !*** ./src/utils/events.js ***!
2085
+ \*****************************/
2086
+ /*! exports provided: ConnectionManagerEvent, ModuleManagerEvent */
2087
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2088
+
2089
+ "use strict";
2090
+ __webpack_require__.r(__webpack_exports__);
2091
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectionManagerEvent", function() { return ConnectionManagerEvent; });
2092
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleManagerEvent", function() { return ModuleManagerEvent; });
2093
+ const ConnectionManagerEvent = Object.freeze({
2094
+ CONNECTION: 'connection',
2095
+ LOGIN: 'login',
2096
+ DISCONNECTION: 'disconnection',
2097
+ ERROR: 'error',
2098
+ SERVER_ERROR: 'serverError',
2099
+ });
2100
+
2101
+ const ModuleManagerEvent = Object.freeze({
2102
+ MODULE_LOADED: 'module-loaded',
2103
+ MODULE_LOAD_ERROR: 'module-load-error',
2104
+ });
2105
+
2106
+
2107
+ /***/ }),
2108
+
2109
+ /***/ "./src/utils/utilities.js":
2110
+ /*!********************************!*\
2111
+ !*** ./src/utils/utilities.js ***!
2112
+ \********************************/
2113
+ /*! exports provided: toKebabCase, bytesToSize, kBytesToSize, capitalizeFirst, filterClassName, roundToDecimals, scaleBytes */
2114
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2115
+
2116
+ "use strict";
2117
+ __webpack_require__.r(__webpack_exports__);
2118
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toKebabCase", function() { return toKebabCase; });
2119
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bytesToSize", function() { return bytesToSize; });
2120
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "kBytesToSize", function() { return kBytesToSize; });
2121
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "capitalizeFirst", function() { return capitalizeFirst; });
2122
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filterClassName", function() { return filterClassName; });
2123
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "roundToDecimals", function() { return roundToDecimals; });
2124
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scaleBytes", function() { return scaleBytes; });
2125
+ const toKebabCase = (str) =>
2126
+ str &&
2127
+ str
2128
+ .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
2129
+ .map(x => x.toLowerCase())
2130
+ .join('-');
2131
+
2132
+ function bytesToSize(bytes, decimals = 1, zeroUnit = '', suffix = '') {
2133
+ if (bytes === 0)
2134
+ return '0 ' + zeroUnit + (zeroUnit != '' ? suffix : '');
2135
+
2136
+ if (bytes < 1) // Can happen in chart axis labels!
2137
+ return `${bytes} Bytes${suffix}`;
2138
+
2139
+ const k = 1000;
2140
+ const dm = decimals < 0 ? 0 : decimals;
2141
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
2142
+
2143
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
2144
+
2145
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i] + suffix;
2146
+ }
2147
+
2148
+ function kBytesToSize(kBytes, decimals = 1, zeroUnit = '', suffix = '') {
2149
+ return bytesToSize(kBytes * 1000, decimals, zeroUnit, suffix);
2150
+ }
2151
+
2152
+ function capitalizeFirst(string) {
2153
+ return string.charAt(0).toUpperCase() + string.slice(1);
2154
+ }
2155
+
2156
+ function filterClassName(element, index, array)
2157
+ {
2158
+ if (element.endsWith('.py'))
2159
+ return (element.endsWith('Extension.py'));
2160
+ else if (element.endsWith('.js'))
2161
+ return (element.endsWith('Extension.js'));
2162
+ else
2163
+ return (element.endsWith('Extension'));
2164
+ }
2165
+
2166
+ function roundToDecimals(value, decimals) {
2167
+ return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);
2168
+ }
2169
+
2170
+ function scaleBytes(bytes, decimals = 1) {
2171
+ let obj = {};
2172
+
2173
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
2174
+
2175
+ if (bytes > 0)
2176
+ {
2177
+ const k = 1000;
2178
+ const dm = decimals < 0 ? 0 : decimals;
2179
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
2180
+
2181
+ obj.value = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));
2182
+ obj.unit = sizes[i];
2183
+ }
2184
+ else
2185
+ {
2186
+ obj.value = 0;
2187
+ obj.unit = sizes[0];
2188
+ }
2189
+
2190
+ return obj;
2191
+ }
2192
+
2193
+
2194
+ /***/ }),
2195
+
2196
+ /***/ "jquery":
2197
+ /*!*************************!*\
2198
+ !*** external "jQuery" ***!
2199
+ \*************************/
2200
+ /*! no static exports found */
2201
+ /***/ (function(module, exports) {
2202
+
2203
+ module.exports = jQuery;
2204
+
2205
+ /***/ })
2206
+
2207
+ /******/ });
2208
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2pzL2NvcmUvYXBwbGljYXRpb24uYnVuZGxlLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vLi9zcmMvYXBwbGljYXRpb24uanMiLCJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vLi9zcmMvY29tcG9uZW50cy92aWV3LXN0YWNrLmpzIiwid2VicGFjazovL2FwcGxpY2F0aW9uLy4vc3JjL21hbmFnZXJzL2NoYXQtbWFuYWdlci5qcyIsIndlYnBhY2s6Ly9hcHBsaWNhdGlvbi8uL3NyYy9tYW5hZ2Vycy9jb25uZWN0aW9uLW1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vLi9zcmMvbWFuYWdlcnMvbW9kdWxlLW1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vLi9zcmMvbW9kdWxlcy9iYXNlLW1vZHVsZS5qcyIsIndlYnBhY2s6Ly9hcHBsaWNhdGlvbi8uL3NyYy9zaGVsbC1jb250cm9sbGVyLmpzIiwid2VicGFjazovL2FwcGxpY2F0aW9uLy4vc3JjL3V0aWxzL2RvdC1wcm9wZXJ0aWVzLXBhcnNlLmpzIiwid2VicGFjazovL2FwcGxpY2F0aW9uLy4vc3JjL3V0aWxzL2V2ZW50LWRpc3BhdGNoZXIuanMiLCJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vLi9zcmMvdXRpbHMvZXZlbnRzLmpzIiwid2VicGFjazovL2FwcGxpY2F0aW9uLy4vc3JjL3V0aWxzL3V0aWxpdGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBpbnN0YWxsIGEgSlNPTlAgY2FsbGJhY2sgZm9yIGNodW5rIGxvYWRpbmdcbiBcdGZ1bmN0aW9uIHdlYnBhY2tKc29ucENhbGxiYWNrKGRhdGEpIHtcbiBcdFx0dmFyIGNodW5rSWRzID0gZGF0YVswXTtcbiBcdFx0dmFyIG1vcmVNb2R1bGVzID0gZGF0YVsxXTtcblxuXG4gXHRcdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuIFx0XHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcbiBcdFx0dmFyIG1vZHVsZUlkLCBjaHVua0lkLCBpID0gMCwgcmVzb2x2ZXMgPSBbXTtcbiBcdFx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG4gXHRcdFx0aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgJiYgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG4gXHRcdFx0XHRyZXNvbHZlcy5wdXNoKGluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSk7XG4gXHRcdFx0fVxuIFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG4gXHRcdH1cbiBcdFx0Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG4gXHRcdFx0aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbiBcdFx0XHRcdG1vZHVsZXNbbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRpZihwYXJlbnRKc29ucEZ1bmN0aW9uKSBwYXJlbnRKc29ucEZ1bmN0aW9uKGRhdGEpO1xuXG4gXHRcdHdoaWxlKHJlc29sdmVzLmxlbmd0aCkge1xuIFx0XHRcdHJlc29sdmVzLnNoaWZ0KCkoKTtcbiBcdFx0fVxuXG4gXHR9O1xuXG5cbiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4gXHQvLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbiBcdC8vIFByb21pc2UgPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG4gXHR2YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuIFx0XHRcImFwcGxpY2F0aW9uXCI6IDBcbiBcdH07XG5cblxuXG4gXHQvLyBzY3JpcHQgcGF0aCBmdW5jdGlvblxuIFx0ZnVuY3Rpb24ganNvbnBTY3JpcHRTcmMoY2h1bmtJZCkge1xuIFx0XHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgXCJhc3NldHMvanMvY29yZS9tb2R1bGVzL1wiICsgKHtcIm1vZHVsZS0xMFwiOlwibW9kdWxlLTEwXCIsXCJtb2R1bGUtMTFcIjpcIm1vZHVsZS0xMVwiLFwibW9kdWxlLTEyfm1vZHVsZS0xM35tb2R1bGUtOVwiOlwibW9kdWxlLTEyfm1vZHVsZS0xM35tb2R1bGUtOVwiLFwibW9kdWxlLTEyXCI6XCJtb2R1bGUtMTJcIixcIm1vZHVsZS0zXCI6XCJtb2R1bGUtM1wiLFwibW9kdWxlLTZcIjpcIm1vZHVsZS02XCIsXCJ2ZW5kb3Jzfm1vZHVsZS0wfm1vZHVsZS0xfm1vZHVsZS0xM35tb2R1bGUtNH5tb2R1bGUtNX5tb2R1bGUtN35tb2R1bGUtOFwiOlwidmVuZG9yc35tb2R1bGUtMH5tb2R1bGUtMX5tb2R1bGUtMTN+bW9kdWxlLTR+bW9kdWxlLTV+bW9kdWxlLTd+bW9kdWxlLThcIixcIm1vZHVsZS0xXCI6XCJtb2R1bGUtMVwiLFwibW9kdWxlLTEzXCI6XCJtb2R1bGUtMTNcIixcIm1vZHVsZS00XCI6XCJtb2R1bGUtNFwiLFwibW9kdWxlLTVcIjpcIm1vZHVsZS01XCIsXCJtb2R1bGUtN1wiOlwibW9kdWxlLTdcIixcIm1vZHVsZS04XCI6XCJtb2R1bGUtOFwiLFwidmVuZG9yc35tb2R1bGUtMFwiOlwidmVuZG9yc35tb2R1bGUtMFwiLFwibW9kdWxlLTBcIjpcIm1vZHVsZS0wXCIsXCJ2ZW5kb3Jzfm1vZHVsZS05XCI6XCJ2ZW5kb3Jzfm1vZHVsZS05XCIsXCJtb2R1bGUtOVwiOlwibW9kdWxlLTlcIn1bY2h1bmtJZF18fGNodW5rSWQpICsgXCIuYnVuZGxlLmpzXCJcbiBcdH1cblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG4gXHQvLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4gXHQvLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3NcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZSA9IGZ1bmN0aW9uIHJlcXVpcmVFbnN1cmUoY2h1bmtJZCkge1xuIFx0XHR2YXIgcHJvbWlzZXMgPSBbXTtcblxuXG4gXHRcdC8vIEpTT05QIGNodW5rIGxvYWRpbmcgZm9yIGphdmFzY3JpcHRcblxuIFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtEYXRhID0gaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdO1xuIFx0XHRpZihpbnN0YWxsZWRDaHVua0RhdGEgIT09IDApIHsgLy8gMCBtZWFucyBcImFscmVhZHkgaW5zdGFsbGVkXCIuXG5cbiBcdFx0XHQvLyBhIFByb21pc2UgbWVhbnMgXCJjdXJyZW50bHkgbG9hZGluZ1wiLlxuIFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSkge1xuIFx0XHRcdFx0cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0pO1xuIFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHQvLyBzZXR1cCBQcm9taXNlIGluIGNodW5rIGNhY2hlXG4gXHRcdFx0XHR2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuIFx0XHRcdFx0XHRpbnN0YWxsZWRDaHVua0RhdGEgPSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSBbcmVzb2x2ZSwgcmVqZWN0XTtcbiBcdFx0XHRcdH0pO1xuIFx0XHRcdFx0cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0gPSBwcm9taXNlKTtcblxuIFx0XHRcdFx0Ly8gc3RhcnQgY2h1bmsgbG9hZGluZ1xuIFx0XHRcdFx0dmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuIFx0XHRcdFx0dmFyIG9uU2NyaXB0Q29tcGxldGU7XG5cbiBcdFx0XHRcdHNjcmlwdC5jaGFyc2V0ID0gJ3V0Zi04JztcbiBcdFx0XHRcdHNjcmlwdC50aW1lb3V0ID0gMTIwO1xuIFx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubmMpIHtcbiBcdFx0XHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIF9fd2VicGFja19yZXF1aXJlX18ubmMpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0c2NyaXB0LnNyYyA9IGpzb25wU2NyaXB0U3JjKGNodW5rSWQpO1xuXG4gXHRcdFx0XHQvLyBjcmVhdGUgZXJyb3IgYmVmb3JlIHN0YWNrIHVud291bmQgdG8gZ2V0IHVzZWZ1bCBzdGFja3RyYWNlIGxhdGVyXG4gXHRcdFx0XHR2YXIgZXJyb3IgPSBuZXcgRXJyb3IoKTtcbiBcdFx0XHRcdG9uU2NyaXB0Q29tcGxldGUgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiBcdFx0XHRcdFx0Ly8gYXZvaWQgbWVtIGxlYWtzIGluIElFLlxuIFx0XHRcdFx0XHRzY3JpcHQub25lcnJvciA9IHNjcmlwdC5vbmxvYWQgPSBudWxsO1xuIFx0XHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dCk7XG4gXHRcdFx0XHRcdHZhciBjaHVuayA9IGluc3RhbGxlZENodW5rc1tjaHVua0lkXTtcbiBcdFx0XHRcdFx0aWYoY2h1bmsgIT09IDApIHtcbiBcdFx0XHRcdFx0XHRpZihjaHVuaykge1xuIFx0XHRcdFx0XHRcdFx0dmFyIGVycm9yVHlwZSA9IGV2ZW50ICYmIChldmVudC50eXBlID09PSAnbG9hZCcgPyAnbWlzc2luZycgOiBldmVudC50eXBlKTtcbiBcdFx0XHRcdFx0XHRcdHZhciByZWFsU3JjID0gZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5zcmM7XG4gXHRcdFx0XHRcdFx0XHRlcnJvci5tZXNzYWdlID0gJ0xvYWRpbmcgY2h1bmsgJyArIGNodW5rSWQgKyAnIGZhaWxlZC5cXG4oJyArIGVycm9yVHlwZSArICc6ICcgKyByZWFsU3JjICsgJyknO1xuIFx0XHRcdFx0XHRcdFx0ZXJyb3IubmFtZSA9ICdDaHVua0xvYWRFcnJvcic7XG4gXHRcdFx0XHRcdFx0XHRlcnJvci50eXBlID0gZXJyb3JUeXBlO1xuIFx0XHRcdFx0XHRcdFx0ZXJyb3IucmVxdWVzdCA9IHJlYWxTcmM7XG4gXHRcdFx0XHRcdFx0XHRjaHVua1sxXShlcnJvcik7XG4gXHRcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IHVuZGVmaW5lZDtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fTtcbiBcdFx0XHRcdHZhciB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpe1xuIFx0XHRcdFx0XHRvblNjcmlwdENvbXBsZXRlKHsgdHlwZTogJ3RpbWVvdXQnLCB0YXJnZXQ6IHNjcmlwdCB9KTtcbiBcdFx0XHRcdH0sIDEyMDAwMCk7XG4gXHRcdFx0XHRzY3JpcHQub25lcnJvciA9IHNjcmlwdC5vbmxvYWQgPSBvblNjcmlwdENvbXBsZXRlO1xuIFx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuIFx0fTtcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBvbiBlcnJvciBmdW5jdGlvbiBmb3IgYXN5bmMgbG9hZGluZ1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vZSA9IGZ1bmN0aW9uKGVycikgeyBjb25zb2xlLmVycm9yKGVycik7IHRocm93IGVycjsgfTtcblxuIFx0dmFyIGpzb25wQXJyYXkgPSB3aW5kb3dbXCJ3ZWJwYWNrSnNvbnBhcHBsaWNhdGlvblwiXSA9IHdpbmRvd1tcIndlYnBhY2tKc29ucGFwcGxpY2F0aW9uXCJdIHx8IFtdO1xuIFx0dmFyIG9sZEpzb25wRnVuY3Rpb24gPSBqc29ucEFycmF5LnB1c2guYmluZChqc29ucEFycmF5KTtcbiBcdGpzb25wQXJyYXkucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrO1xuIFx0anNvbnBBcnJheSA9IGpzb25wQXJyYXkuc2xpY2UoKTtcbiBcdGZvcih2YXIgaSA9IDA7IGkgPCBqc29ucEFycmF5Lmxlbmd0aDsgaSsrKSB3ZWJwYWNrSnNvbnBDYWxsYmFjayhqc29ucEFycmF5W2ldKTtcbiBcdHZhciBwYXJlbnRKc29ucEZ1bmN0aW9uID0gb2xkSnNvbnBGdW5jdGlvbjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IFwiLi9zcmMvYXBwbGljYXRpb24uanNcIik7XG4iLCJpbXBvcnQge1NoZWxsQ29udHJvbGxlcn0gZnJvbSAnLi9zaGVsbC1jb250cm9sbGVyJztcblxuJCggZG9jdW1lbnQgKS5yZWFkeShmdW5jdGlvbigpXG57XG4gICAgY29uc29sZS5pbmZvKFwiU21hcnRGb3hTZXJ2ZXIgMlggQWRtaW5Ub29sIHJlYWR5IVwiKTtcblxuXHQvLyBDcmVhdGUgc2hlbGwgY29udHJvbGxlciBpbnN0YW5jZVxuXHR0aGlzLmNvbnRyb2xsZXIgPSBuZXcgU2hlbGxDb250cm9sbGVyKCk7XG59KTtcbiIsImV4cG9ydCBjbGFzcyBWaWV3U3RhY2sgZXh0ZW5kcyBIVE1MRWxlbWVudFxue1xuXHRjb25zdHJ1Y3RvcigpXG5cdHtcblx0ICAgIHN1cGVyKCk7XG5cblx0XHQvLyBBdHRhY2ggYSBzaGFkb3cgcm9vdFxuXHRcdGNvbnN0IHNoYWRvd1Jvb3QgPSB0aGlzLmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7XG5cdFx0c2hhZG93Um9vdC5pbm5lckhUTUwgPSBgXG5cdFx0XHQ8c3R5bGU+XG5cdFx0XHRcdDpob3N0IHt9XG5cblx0XHRcdFx0OjpzbG90dGVkKDpub3QoW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdKSkge1xuXHRcdFx0ICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0ICAgIH1cblx0XHRcdDwvc3R5bGU+XG5cdFx0XHQ8c2xvdD48L3Nsb3Q+XG5cdFx0YDtcblxuXHRcdC8vIFNlbGVjdCBmaXJzdCBpdGVtXG5cdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcblx0fVxuXG5cdGdldCBzZWxlY3RlZEVsZW1lbnQoKVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3NlbGVjdGVkRWxlbWVudDtcblx0fVxuXG5cdHNldCBzZWxlY3RlZEVsZW1lbnQoZWxlbWVudClcblx0e1xuXHRcdGlmIChlbGVtZW50ICE9IG51bGwgJiYgZWxlbWVudC5wYXJlbnROb2RlID09IHRoaXMpXG5cdFx0e1xuXHRcdFx0dGhpcy5fc2VsZWN0ZWRFbGVtZW50ID0gZWxlbWVudDtcblxuXHRcdFx0Zm9yIChsZXQgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKVxuXHRcdFx0e1xuXHRcdFx0XHRpZiAoZWxlbWVudCA9PSB0aGlzLl9zZWxlY3RlZEVsZW1lbnQpXG5cdFx0XHRcdFx0ZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0ZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZVxuXHRcdHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0VsZW1lbnQgaXMgbm90IGEgY2hpbGQgb2YgVmlld1N0YWNrJyk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IHNlbGVjdGVkSW5kZXgoKVxuXHR7XG5cdFx0cmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuaW5kZXhPZih0aGlzLl9zZWxlY3RlZEVsZW1lbnQpO1xuXHR9XG5cblx0c2V0IHNlbGVjdGVkSW5kZXgoaW5kZXgpXG5cdHtcblx0XHRpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKVxuXHRcdHtcblx0XHRcdGlmICh0aGlzLmNoaWxkcmVuW2luZGV4XSA9PSBudWxsKVxuXHRcdFx0e1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKFwiSW52YWxpZCBWaWV3U3RhY2sgaW5kZXhcIik7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0bGV0IGVsZW1lbnQgPSB0aGlzLmNoaWxkcmVuW2luZGV4XTtcblx0XHRcdHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gZWxlbWVudDtcblx0XHR9XG5cdH1cbn1cblxuLy8gREVGSU5FIENPTVBPTkVOVFxuaWYgKCF3aW5kb3cuY3VzdG9tRWxlbWVudHMuZ2V0KCd2aWV3LXN0YWNrJykpXG5cdHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3ZpZXctc3RhY2snLCBWaWV3U3RhY2spO1xuIiwiZXhwb3J0IGNsYXNzIENoYXRNYW5hZ2VyXG57XG5cdGNvbnN0cnVjdG9yKHNoZWxsQ3RybClcblx0e1xuXHRcdHRoaXMuVVNFUlZBUl9NT0RVTEUgPSAnbW9kJztcblxuXHRcdHRoaXMuc2hlbGxDdHJsID0gc2hlbGxDdHJsO1xuXG5cdFx0Ly8gVE9ETyBJbXBsZW1lbnQgY2hhdCBtYW5hZ2VyIGFmdGVyIGNyZWF0aW5nIHRoZSBjaGF0IFVJIGluIG1haW4gc2hlbGxcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsZWQgYnkgdGhlIHNoZWxsIHdoZW4gdGhlIHVzZXIgbG9hZHMgYSBuZXcgbW9kdWxlLCBzbyB0aGF0IHRoaXMgaW5mb1xuXHQgKiBjYW4gYmUgc2F2ZWQgaW4gdGhlIHVzZXIgdmFyaWFibGVzIGFuZCBkaXNwbGF5ZWQgaW4gdGhlIGNoYXQncyB1c2VybGlzdC5cblx0ICovXG5cdHNldEN1cnJlbnRNb2R1bGUobW9kdWxlSWQpXG5cdHtcblx0XHQvLyBTYXZlIG1vZHVsZSBpZCBpbiB1c2VyIHZhcmlhYmxlc1xuXHRcdGxldCB1c2VyVmFyID0gbmV3IFNGUzJYLlNGU1VzZXJWYXJpYWJsZSh0aGlzLlVTRVJWQVJfTU9EVUxFLCBtb2R1bGVJZCk7XG5cdFx0dGhpcy5zaGVsbEN0cmwuc21hcnRGb3guc2VuZChuZXcgU0ZTMlguU2V0VXNlclZhcmlhYmxlc1JlcXVlc3QoW3VzZXJWYXJdKSk7XG5cdH1cbn1cbiIsImltcG9ydCB7RXZlbnREaXNwYXRjaGVyfSBmcm9tICcuLi91dGlscy9ldmVudC1kaXNwYXRjaGVyJztcbmltcG9ydCB7Q29ubmVjdGlvbk1hbmFnZXJFdmVudH0gZnJvbSAnLi4vdXRpbHMvZXZlbnRzJztcblxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25NYW5hZ2VyIGV4dGVuZHMgRXZlbnREaXNwYXRjaGVyXG57XG5cdGNvbnN0cnVjdG9yKHNoZWxsQ3RybClcblx0e1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLkFETUlOX1pPTkVfTkFNRSA9IFwiLS09PXt7eyBBZG1pblpvbmUgfX19PT0tLVwiO1xuXHRcdHRoaXMuRVhURU5TSU9OX0VSUk9SID0gXCJlcnJvclwiO1xuXG5cdFx0dGhpcy5DT01NQU5EU19QUkVGSVggPSBcImFkbWluXCI7XG5cdFx0dGhpcy5DT01NQU5EX1JFU1RBUlQgPSBcInJlc3RhcnRcIjtcblx0XHR0aGlzLkNPTU1BTkRfSEFMVCA9IFwiaGFsdFwiO1xuXG5cdFx0dGhpcy5zaGVsbEN0cmwgPSBzaGVsbEN0cmw7XG5cdH1cblxuXHRnZXQgc21hcnRGb3goKVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3NmO1xuXHR9XG5cblx0Y29ubmVjdChjb25maWcsIHVzZXJuYW1lLCBwYXNzd29yZClcblx0e1xuXHRcdC8vIFNldCBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuXHRcdGNvbmZpZy56b25lID0gdGhpcy5BRE1JTl9aT05FX05BTUU7XG5cdFx0Y29uZmlnLmRlYnVnID0gZmFsc2U7XG5cblx0XHQvLyBDcmVhdGUgU21hcnRGb3ggaW5zdGFuY2Vcblx0XHR0aGlzLl9zZiA9IG5ldyBTRlMyWC5TbWFydEZveChjb25maWcpO1xuXG5cdFx0Ly8gQWRkIGxpc3RlbmVycyB0byBTbWFydEZveCBldmVudHMgdXNlZnVsIHRvIHRoZSBzaGVsbFxuXHRcdHRoaXMuX2FkZFNGU0V2ZW50TGlzdGVuZXJzKCk7XG5cblx0XHQvLyBTYXZlIHJlZmVyZW5jZSB0byBjb25uZWN0aW9uIGRldGFpbHNcblx0XHR0aGlzLl9jb25maWcgPSBjb25maWc7XG5cdFx0dGhpcy5fdXNlcm5hbWUgPSB1c2VybmFtZTtcblx0XHR0aGlzLl9wYXNzd29yZCA9IHBhc3N3b3JkO1xuXG5cdFx0Ly8gQ29ubmVjdCB0byBTbWFydEZveFNlcnZlciBpbnN0YW5jZVxuXHRcdHRoaXMuX3NmLmNvbm5lY3QoKTtcblx0fVxuXG5cdGRpc2Nvbm5lY3QoKVxuXHR7XG5cdFx0dGhpcy5fc2YuZGlzY29ubmVjdCgpO1xuXHR9XG5cblx0cmVzdGFydFNlcnZlcigpXG5cdHtcblx0XHRpZiAodGhpcy5fc2YuaXNDb25uZWN0ZWQpXG5cdFx0XHR0aGlzLl9zZi5zZW5kKG5ldyBTRlMyWC5FeHRlbnNpb25SZXF1ZXN0KHRoaXMuQ09NTUFORFNfUFJFRklYICsgXCIuXCIgKyB0aGlzLkNPTU1BTkRfUkVTVEFSVCkpO1xuXHR9XG5cblx0aGFsdFNlcnZlcigpXG5cdHtcblx0XHRpZiAodGhpcy5fc2YuaXNDb25uZWN0ZWQpXG5cdFx0XHR0aGlzLl9zZi5zZW5kKG5ldyBTRlMyWC5FeHRlbnNpb25SZXF1ZXN0KHRoaXMuQ09NTUFORFNfUFJFRklYICsgXCIuXCIgKyB0aGlzLkNPTU1BTkRfSEFMVCkpO1xuXHR9XG5cblx0LyogLS0tLS0tLS0tIFBSSVZBVEUgVVRJTElUWSBNRVRIT0RTIC0tLS0tLS0tLSAqL1xuXG5cdF9hZGRTRlNFdmVudExpc3RlbmVycygpXG5cdHtcblx0XHR0aGlzLl9zZi5hZGRFdmVudExpc3RlbmVyKFNGUzJYLlNGU0V2ZW50LkNPTk5FQ1RJT04sIHRoaXMuX29uQ29ubmVjdGlvbiwgdGhpcyk7XG5cdFx0dGhpcy5fc2YuYWRkRXZlbnRMaXN0ZW5lcihTRlMyWC5TRlNFdmVudC5DT05ORUNUSU9OX0xPU1QsIHRoaXMuX29uQ29ubmVjdGlvbkxvc3QsIHRoaXMpO1xuXHRcdHRoaXMuX3NmLmFkZEV2ZW50TGlzdGVuZXIoU0ZTMlguU0ZTRXZlbnQuTE9HSU4sIHRoaXMuX29uTG9naW4sIHRoaXMpO1xuXHRcdHRoaXMuX3NmLmFkZEV2ZW50TGlzdGVuZXIoU0ZTMlguU0ZTRXZlbnQuTE9HSU5fRVJST1IsIHRoaXMuX29uTG9naW5FcnJvciwgdGhpcyk7XG5cdFx0dGhpcy5fc2YuYWRkRXZlbnRMaXN0ZW5lcihTRlMyWC5TRlNFdmVudC5FWFRFTlNJT05fUkVTUE9OU0UsIHRoaXMuX29uRXh0ZW5zaW9uUmVzcG9uc2UsIHRoaXMpO1xuXHR9XG5cblx0X3Jlc2V0KClcblx0e1xuXHRcdC8vIFJlbW92ZSBTRlMgZXZlbnQgbGlzdGVuZXJzXG5cdFx0dGhpcy5fc2YucmVtb3ZlRXZlbnRMaXN0ZW5lcihTRlMyWC5TRlNFdmVudC5DT05ORUNUSU9OLCB0aGlzLl9vbkNvbm5lY3Rpb24pO1xuXHRcdHRoaXMuX3NmLnJlbW92ZUV2ZW50TGlzdGVuZXIoU0ZTMlguU0ZTRXZlbnQuQ09OTkVDVElPTl9MT1NULCB0aGlzLl9vbkNvbm5lY3Rpb25Mb3N0KTtcblx0XHR0aGlzLl9zZi5yZW1vdmVFdmVudExpc3RlbmVyKFNGUzJYLlNGU0V2ZW50LkxPR0lOLCB0aGlzLl9vbkxvZ2luKTtcblx0XHR0aGlzLl9zZi5yZW1vdmVFdmVudExpc3RlbmVyKFNGUzJYLlNGU0V2ZW50LkxPR0lOX0VSUk9SLCB0aGlzLl9vbkxvZ2luRXJyb3IpO1xuXHRcdHRoaXMuX3NmLnJlbW92ZUV2ZW50TGlzdGVuZXIoU0ZTMlguU0ZTRXZlbnQuRVhURU5TSU9OX1JFU1BPTlNFLCB0aGlzLl9vbkV4dGVuc2lvblJlc3BvbnNlKTtcblxuXHRcdC8vIERlbGV0ZSBTbWFydEZveCBjbGFzcyBpbnN0YW5jZVxuXHRcdHRoaXMuX3NmID0gbnVsbDtcblxuXHRcdC8vIERlbGV0ZSBjb25uZWN0aW9uIGRldGFpbHNcblx0XHR0aGlzLl9jb25maWcgPSBudWxsO1xuXHRcdHRoaXMuX3VzZXJuYW1lID0gbnVsbDtcblx0XHR0aGlzLl9wYXNzd29yZCA9IG51bGw7XG5cdH1cblxuXHRfbG9naW4oKVxuXHR7XG5cdFx0Ly8gVGhlIGN1cnJlbnQgQWRtaW5Ub29sIHZlcnNpb24gbXVzdCBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIgZHVyaW5nIGxvZ2luLCB0byBjaGVjayBpZiBpdCBpcyB1cC10by1kYXRlXG5cdFx0bGV0IHBhcmFtcyA9IG5ldyBTRlMyWC5TRlNPYmplY3QoKTtcblx0XHRwYXJhbXMucHV0SW50KCdjbGllbnRWZXInLCB0aGlzLnNoZWxsQ3RybC5pbnRWZXJzaW9uKTtcblxuXHRcdC8vIExvZ2luXG5cdFx0dGhpcy5fc2Yuc2VuZCggbmV3IFNGUzJYLkxvZ2luUmVxdWVzdCh0aGlzLl91c2VybmFtZSwgdGhpcy5fcGFzc3dvcmQsIHBhcmFtcywgdGhpcy5fY29uZmlnLnpvbmUpICk7XG5cdH1cblxuXHQvKiAtLS0tLS0tLS0gU01BUlRGT1ggRVZFTlQgTElTVEVORVJTIC0tLS0tLS0tLSAqL1xuXG5cdF9vbkNvbm5lY3Rpb24oZXZ0UGFyYW1zKVxuXHR7XG5cdFx0aWYgKGV2dFBhcmFtcy5zdWNjZXNzKVxuXHRcdHtcblx0XHRcdC8vIERpc3BhdGNoIGNvbm5lY3Rpb24gZXZlbnRcblx0XHRcdHRoaXMuZGlzcGF0Y2hFdmVudChDb25uZWN0aW9uTWFuYWdlckV2ZW50LkNPTk5FQ1RJT04pO1xuXG5cdFx0XHQvLyBTZW5kIGxvZ2luIHJlcXVlc3Rcblx0XHRcdHRoaXMuX2xvZ2luKCk7XG5cdFx0fVxuXHRcdGVsc2Vcblx0XHR7XG5cdFx0XHQvLyBEaXNwYXRjaCBlcnJvciBldmVudFxuXHRcdFx0dGhpcy5kaXNwYXRjaEV2ZW50KENvbm5lY3Rpb25NYW5hZ2VyRXZlbnQuRVJST1IsIHttZXNzYWdlOiBgVW5hYmxlIHRvIGNvbm5lY3QgdG8gJHt0aGlzLl9jb25maWcuaG9zdH06JHt0aGlzLl9jb25maWcucG9ydH1gfSk7XG5cblx0XHRcdC8vIFJlc2V0IHN0YXR1c1xuXHRcdFx0dGhpcy5fcmVzZXQoKTtcblx0XHR9XG5cdH1cblxuXHRfb25Db25uZWN0aW9uTG9zdChldnRQYXJhbXMpXG5cdHtcblx0XHRsZXQgcmVhc29uID0gZXZ0UGFyYW1zLnJlYXNvbjtcblxuXHRcdGlmIChyZWFzb24gIT0gU0ZTMlguQ2xpZW50RGlzY29ubmVjdGlvblJlYXNvbi5NQU5VQUwpXG5cdFx0e1xuXHRcdFx0dmFyIG1zZztcblxuXHRcdFx0Ly8gTG9nIGRpc2Nvbm5lY3Rpb24gbWVzc2FnZSBzdGF0aW5nIHRoZSByZWFzb25cblx0XHRcdGlmIChyZWFzb24gPT0gU0ZTMlguQ2xpZW50RGlzY29ubmVjdGlvblJlYXNvbi5JRExFKVxuXHRcdFx0XHRtc2cgPSAnaW5hY3Rpdml0eSc7XG5cdFx0XHRlbHNlXG5cdFx0XHR7XG5cdFx0XHRcdG1zZyA9ICd1bmtub3duIHJlYXNvbic7XG5cblx0XHRcdFx0aWYgKHJlYXNvbiAhPSBTRlMyWC5DbGllbnREaXNjb25uZWN0aW9uUmVhc29uLlVOS05PV04pXG5cdFx0XHRcdFx0bXNnICs9IGAgKHNlcnZlciByZXBvcnRlZDogJHtyZWFzb259KWA7XG5cdFx0XHR9XG5cblx0XHRcdC8vIERpc3BhdGNoIGVycm9yIGV2ZW50XG5cdFx0XHR0aGlzLmRpc3BhdGNoRXZlbnQoQ29ubmVjdGlvbk1hbmFnZXJFdmVudC5FUlJPUiwge21lc3NhZ2U6IGBBIGRpc2Nvbm5lY3Rpb24gb2NjdXJyZWQgZHVlIHRvICR7bXNnfTsgcGxlYXNlIHJlY29ubmVjdGB9KTtcblx0XHR9XG5cdFx0ZWxzZVxuXHRcdHtcblx0XHRcdC8vIERpc3BhdGNoIGRpc2Nvbm5lY3Rpb24gZXZlbnRcblx0XHRcdHRoaXMuZGlzcGF0Y2hFdmVudChDb25uZWN0aW9uTWFuYWdlckV2ZW50LkRJU0NPTk5FQ1RJT04pO1xuXHRcdH1cblxuXHRcdC8vIFJlc2V0XG5cdFx0dGhpcy5fcmVzZXQoKTtcblx0fVxuXG5cdF9vbkxvZ2luKGV2dFBhcmFtcylcblx0e1xuXHRcdGxldCBkYXRhID0gZXZ0UGFyYW1zLmRhdGE7XG5cblx0XHRsZXQgcGFyYW1zID0ge1xuXHRcdFx0c2VydmVyVmVyc2lvbjogZGF0YS5nZXRVdGZTdHJpbmcoJ3NlcnZlclZlcicpLFxuXHRcdFx0c2VydmVyTmFtZTogZGF0YS5nZXRVdGZTdHJpbmcoJ3NlcnZlck5hbWUnKSxcblx0XHRcdHNlcnZlclVwdGltZTogZGF0YS5nZXRJbnRBcnJheSgndXB0aW1lJyksXG5cdFx0XHRwcm9jQ29udHJvbEVuYWJsZWQ6IGRhdGEuZ2V0Qm9vbCgncHJvY0N0cmwnKSxcblx0XHRcdGFsbG93SGFsdDogZGF0YS5nZXRCb29sKCdhbGxvd0hhbHQnKSxcblx0XHRcdG1vZHVsZXM6IGRhdGEuZ2V0U0ZTQXJyYXkoJ21vZHVsZXMnKVxuXHRcdH07XG5cblx0XHQvLyBEaXNwYXRjaCBsb2dpbiBldmVudFxuXHRcdHRoaXMuZGlzcGF0Y2hFdmVudChDb25uZWN0aW9uTWFuYWdlckV2ZW50LkxPR0lOLCBwYXJhbXMpO1xuXHR9XG5cblx0X29uTG9naW5FcnJvcihldnRQYXJhbXMpXG5cdHtcblx0XHQvLyBEaXNjb25uZWN0IGZyb20gc2VydmVyXG5cdFx0dGhpcy5fc2YuZGlzY29ubmVjdCgpO1xuXG5cdFx0Ly8gRGlzcGF0Y2ggZXJyb3IgZXZlbnRcblx0XHR0aGlzLmRpc3BhdGNoRXZlbnQoQ29ubmVjdGlvbk1hbmFnZXJFdmVudC5FUlJPUiwge21lc3NhZ2U6IGV2dFBhcmFtcy5lcnJvck1lc3NhZ2V9KTtcblx0fVxuXG5cdF9vbkV4dGVuc2lvblJlc3BvbnNlKGV2dFBhcmFtcylcblx0e1xuXHRcdGlmIChldnRQYXJhbXMuY21kID09IHRoaXMuRVhURU5TSU9OX0VSUk9SKVxuXHRcdHtcblx0XHRcdGxldCBkYXRhID0gZXZ0UGFyYW1zLnBhcmFtcztcblxuXHRcdFx0Ly8gQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCBpbiB0aGUgQWRtaW4gVG9vbCBzZXJ2ZXItc2lkZSBleHRlbnNpb25cblx0XHRcdHRoaXMuZGlzcGF0Y2hFdmVudChDb25uZWN0aW9uTWFuYWdlckV2ZW50LlNFUlZFUl9FUlJPUiwge21lc3NhZ2U6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkIGluIHRoZSBBZG1pbiBUb29sIHNlcnZlci1zaWRlIGV4dGVuc2lvbiwgcGxlYXNlIGNoZWNrIHRoZSBzZXJ2ZXItc2lkZSBsb2dzOyB0aGUgZXh0ZW5zaW9uIHJlcG9ydGVkOiAnICsgZGF0YS5nZXRVdGZTdHJpbmcoJ2Vycm9yJyl9KTtcblx0XHR9XG5cdH1cbn1cbiIsImltcG9ydCB7RXZlbnREaXNwYXRjaGVyfSBmcm9tICcuLi91dGlscy9ldmVudC1kaXNwYXRjaGVyJztcbmltcG9ydCB7TW9kdWxlTWFuYWdlckV2ZW50fSBmcm9tICcuLi91dGlscy9ldmVudHMnO1xuaW1wb3J0IHt0b0tlYmFiQ2FzZX0gZnJvbSAnLi4vdXRpbHMvdXRpbGl0aWVzJztcbmltcG9ydCB7QmFzZU1vZHVsZX0gZnJvbSAnLi4vbW9kdWxlcy9iYXNlLW1vZHVsZSc7XG5cbmV4cG9ydCBjbGFzcyBNb2R1bGVNYW5hZ2VyIGV4dGVuZHMgRXZlbnREaXNwYXRjaGVyXG57XG5cdGNvbnN0cnVjdG9yKHNoZWxsQ3RybCwgY29udGFpbmVyKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdC8vIE1ha2UgQmFzZU1vZHVsZSBjbGFzcyBnbG9iYWxseSBhdmFpbGFibGUsIHNvIGl0IGNhbiBiZSBleHRlbmRlZCBieSBjdXN0b20gbW9kdWxlc1xuXHRcdHdpbmRvdy5CYXNlTW9kdWxlID0gQmFzZU1vZHVsZVxuXG5cdFx0dGhpcy5fc2hlbGxDdHJsID0gc2hlbGxDdHJsO1xuXHRcdHRoaXMuX2NvbnRhaW5lciA9IGNvbnRhaW5lcjtcblx0XHR0aGlzLl9jdXJyZW50TW9kdWxlSWQgPSBudWxsO1xuXG5cdFx0Ly8gQWRkIGxpc3RlbmVyIGZvciBuYXZpZ2F0aW9uIGl0ZW1zIGNsaWNrXG5cdFx0dGhpcy5fY29udGFpbmVyLm9uKCdjbGljaycsICcubmF2LWl0ZW0nLCAkLnByb3h5KGZ1bmN0aW9uKGV2ZW50KSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0XHRsZXQgbW9kdWxlSWQgPSBldmVudC5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuaWQ7XG5cdFx0XHRsZXQgbW9kdWxlRGF0YSA9IHRoaXMuX21vZHVsZUNvbmZpZ0J5SWRbbW9kdWxlSWRdO1xuXG5cdFx0XHRpZiAobW9kdWxlSWQgIT0gdGhpcy5fY3VycmVudE1vZHVsZUlkKVxuXHRcdFx0e1xuXHRcdFx0XHQvLyBMb2FkIHNlbGVjdGVkIG1vZHVsZVxuXHRcdFx0XHR0aGlzLl9sb2FkTW9kdWxlKG1vZHVsZURhdGEpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDbG9zZSBuYXZpZ2F0aW9uXG5cdFx0XHR0aGlzLl9zaGVsbEN0cmwuX3RvZ2dsZU5hdihmYWxzZSk7XG5cdFx0fSwgdGhpcykpO1xuXG5cdFx0Ly8gQWRkIGxpc3RlbmVyIHRvIHNob3cgdG9vbHRpcFxuXHRcdHRoaXMuX2NvbnRhaW5lci5rZW5kb1Rvb2x0aXAoe1xuXHRcdFx0ZmlsdGVyOiAnbGlbZGF0YS1pZF0nLFxuXHRcdFx0Y29udGVudDogJC5wcm94eShmdW5jdGlvbihldmVudCkge1xuXHRcdFx0XHRsZXQgbW9kdWxlSWQgPSBldmVudC50YXJnZXRbMF0uZGF0YXNldC5pZDtcblx0XHRcdFx0bGV0IG1vZHVsZURhdGEgPSB0aGlzLl9tb2R1bGVDb25maWdCeUlkW21vZHVsZUlkXTtcblx0XHQgICAgICAgIHJldHVybiBgPHN0cm9uZz4ke21vZHVsZURhdGEubmFtZX08L3N0cm9uZz48YnI+PHNwYW4+JHttb2R1bGVEYXRhLmRlc2NyaXB0aW9ufTwvc3Bhbj5gO1xuXHRcdCAgICB9LCB0aGlzKVxuXHRcdH0pO1xuXG5cdFx0LyogVEVTVElORyBNRU1PUlkgTEVBS1MgSU4gTU9EVUxFUyBMT0FESU5HXG5cdFx0QUREIFRISVMgSU4gVEhFIE1BSU4gVklFVyBUTyBTVEFSVCBUSEUgVEVTVDogPGRpdj48YnV0dG9uIGlkPVwidGVtcFwiPnRlc3Q8L2J1dHRvbj48c3BhbiBpZD1cImNudFwiPjwvc3Bhbj48L2Rpdj5cblx0XHQkKCcjdGVtcCcpLmNsaWNrKFxuXHRcdFx0JC5wcm94eShmdW5jdGlvbihldmVudClcblx0XHRcdHtcblx0XHRcdFx0dGhpcy5jbnQgPSAwO1xuXHRcdFx0XHRpZiAodGhpcy50aW1lciA9PSBudWxsKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dGhpcy50aW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbCgkLnByb3h5KGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdFx0XHQkKCcjY250JykudGV4dCh0aGlzLmNudCsrKVxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuX2N1cnJlbnRNb2R1bGVJZCA9PSAnRGFzaGJvYXJkJylcblx0XHRcdFx0XHRcdFx0dGhpcy5fbG9hZE1vZHVsZSh0aGlzLl9tb2R1bGVDb25maWdCeUlkWydTZXJ2ZXJDb25maWd1cmF0b3InXSk7XG5cdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xvYWRNb2R1bGUodGhpcy5fbW9kdWxlQ29uZmlnQnlJZFsnRGFzaGJvYXJkJ10pO1xuXHRcdFx0XHRcdH0sIHRoaXMpLCA1MDApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuXHRcdFx0XHRcdHRoaXMudGltZXIgPSBudWxsO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCB0aGlzKVxuXHRcdCk7XG5cdFx0Ki9cblx0fVxuXG5cdGluaXRNb2R1bGVzTGlzdChtb2R1bGVzRGF0YSwgbG9hZE1vZHVsZUlkID0gbnVsbClcblx0e1xuXHRcdC8vIFNFVFVQIE1PRFVMRVMgTElTVFxuXHRcdFxuXHRcdC8vIEVtcHR5IGNvbnRhaW5lciBvZiBtb2R1bGUgc2VsZWN0aW9uIGJ1dHRvbnNcblx0XHR0aGlzLl9jb250YWluZXIuZW1wdHkoKTtcblxuXHRcdHRoaXMuX21vZHVsZUNvbmZpZ0J5SWQgPSB7fTtcblx0XHR2YXIgZmlyc3RNb2R1bGUgPSBudWxsO1xuXHRcdHZhciBsb2FkTW9kdWxlID0gbnVsbDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbW9kdWxlc0RhdGEuc2l6ZSgpOyBpKyspXG5cdFx0e1xuXHRcdFx0bGV0IG1vZHVsZURhdGEgPSB0aGlzLl9nZXRNb2R1bGVPYmplY3QobW9kdWxlc0RhdGEuZ2V0U0ZTT2JqZWN0KGkpKTtcblxuXHRcdFx0dGhpcy5fbW9kdWxlQ29uZmlnQnlJZFttb2R1bGVEYXRhLmlkXSA9IG1vZHVsZURhdGE7XG5cblx0XHRcdC8vIEdldCBmaXJzdCBtb2R1bGVcblx0XHRcdGlmIChpID09IDApXG5cdFx0XHRcdGZpcnN0TW9kdWxlID0gbW9kdWxlRGF0YTtcblxuXHRcdFx0Ly8gR2V0IHBhc3NlZCBtb2R1bGVcblx0XHRcdGlmIChtb2R1bGVEYXRhLmlkID09IGxvYWRNb2R1bGVJZClcblx0XHRcdFx0bG9hZE1vZHVsZSA9IG1vZHVsZURhdGE7XG5cblx0XHRcdC8vIERpc3BsYXkgbW9kdWxlIGJ1dHRvblxuXHRcdFx0bGV0IG1vZHVsZUJ1dHRvbiA9IHRoaXMuX2NyZWF0ZU1vZHVsZUJ1dHRvbihtb2R1bGVEYXRhKTtcblx0XHRcdGxldCBlbGVtZW50ID0gdGhpcy5fY29udGFpbmVyLmFwcGVuZChtb2R1bGVCdXR0b24pO1xuXHRcdH1cblxuXHRcdC8vIExPQUQgSU5JVElBTCBNT0RVTEVcblxuXHRcdC8vIElmIG1vZHVsZSBpcyBub3QgcGFzc2VkLCBsb2FkIHRoZSBmaXJzdCBvbmUgb2YgdGhlIG1vZHVsZXMgbGlzdFxuXHRcdGlmIChsb2FkTW9kdWxlID09IG51bGwpXG5cdFx0XHRsb2FkTW9kdWxlID0gZmlyc3RNb2R1bGU7XG5cblx0XHR0aGlzLl9sb2FkTW9kdWxlKGxvYWRNb2R1bGUpO1xuXHR9XG5cblx0dW5sb2FkTW9kdWxlKClcblx0e1xuXHRcdHRoaXMuX2Rlc3Ryb3lDdXJyZW50TW9kdWxlKCk7XG5cdH1cblxuXHRnZXQgY3VycmVudE1vZHVsZUlkKClcblx0e1xuXHRcdHJldHVybiB0aGlzLl9jdXJyZW50TW9kdWxlSWQ7XG5cdH1cblxuXHRnZXQgY3VycmVudE1vZHVsZSgpXG5cdHtcblx0XHRyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1vZHVsZScpO1xuXHR9XG5cblx0X2dldE1vZHVsZU9iamVjdChzZnNPYmopXG5cdHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aWQ6IHNmc09iai5nZXRVdGZTdHJpbmcoJ2lkJyksXG5cdFx0XHRuYW1lOiBzZnNPYmouZ2V0VXRmU3RyaW5nKCduYW1lJyksXG5cdFx0XHRkZXNjcmlwdGlvbjogc2ZzT2JqLmdldFV0ZlN0cmluZygnZGVzY3JpcHRpb24nKSxcblx0XHRcdGlzU3ViOiBzZnNPYmouZ2V0Qm9vbCgnaXNTdWInKSxcblx0XHRcdGljb246IHNmc09iai5jb250YWluc0tleSgnaWNvblN2ZycpID8gc2ZzT2JqLmdldFV0ZlN0cmluZygnaWNvblN2ZycpIDogJycsXG5cdFx0XHR0YWc6IHRvS2ViYWJDYXNlKHNmc09iai5nZXRVdGZTdHJpbmcoJ2lkJykpLFxuXHRcdFx0aXNDdXN0b206IHNmc09iai5nZXRCb29sKCdpc0N1c3RvbScpXG5cdFx0fVxuXHR9XG5cblx0X2NyZWF0ZU1vZHVsZUJ1dHRvbihtb2R1bGVEYXRhKVxuXHR7XG5cdFx0cmV0dXJuIGBcblx0XHRcdDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgZGF0YS1pZD1cIiR7bW9kdWxlRGF0YS5pZH1cIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1vZHVsZS1pY29uXCI+JHttb2R1bGVEYXRhLmljb259PC9kaXY+XG5cdFx0XHRcdDxsYWJlbD4ke21vZHVsZURhdGEubmFtZX08L2xhYmVsPlxuXHRcdFx0PC9saT5cblx0XHRgO1xuXHR9XG5cblx0X2xvYWRNb2R1bGUobW9kdWxlRGF0YSlcblx0e1xuXHRcdC8vIExvYWQgdGhlIEhUTUwgZmlsZSBvZiBhIG1vZHVsZVxuXHRcdCQoJzxtb2R1bGUvPicpLmxvYWQoYG1vZHVsZXMvJHttb2R1bGVEYXRhLnRhZ30uaHRtbGAsICQucHJveHkoZnVuY3Rpb24oaHRtbCwgc3RhdHVzKSB7XG5cblx0XHRcdGlmIChzdGF0dXMgIT0gJ2Vycm9yJylcblx0XHRcdHtcblx0XHRcdFx0aWYgKCFtb2R1bGVEYXRhLmlzQ3VzdG9tKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Ly8gTG9hZCB0aGUgSlMgZmlsZSBvZiBhIHN0YW5kYXJkIG1vZHVsZVxuXHRcdFx0XHRcdGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcIm1vZHVsZS1cIiAqLyBgLi4vbW9kdWxlcy8ke21vZHVsZURhdGEudGFnfS5qc2ApLnRoZW4obW9kdWxlID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuX29uTW9kdWxlQ29udHJvbGxlckxvYWRTdWNjZXNzKG1vZHVsZURhdGEsIGh0bWwsIG1vZHVsZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuY2F0Y2goZXJyb3IgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5fb25Nb2R1bGVDb250cm9sbGVyTG9hZEVycm9yKG1vZHVsZURhdGEsIGVycm9yKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQvLyBMb2FkIHRoZSBKUyBmaWxlIG9mIGEgY3VzdG9tIG1vZHVsZVxuXHRcdFx0XHRcdGltcG9ydCgvKiB3ZWJwYWNrSWdub3JlOiB0cnVlICovYC4uL2N1c3RvbS1tb2R1bGVzLyR7bW9kdWxlRGF0YS50YWd9LmpzYCkudGhlbihtb2R1bGUgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5fb25Nb2R1bGVDb250cm9sbGVyTG9hZFN1Y2Nlc3MobW9kdWxlRGF0YSwgaHRtbCwgbW9kdWxlKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5jYXRjaChlcnJvciA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLl9vbk1vZHVsZUNvbnRyb2xsZXJMb2FkRXJyb3IobW9kdWxlRGF0YSwgZXJyb3IpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRlbHNlXG5cdFx0XHR7XG5cdFx0XHRcdC8vIERpc3BhdGNoIGVycm9yIGV2ZW50XG5cdFx0XHRcdHRoaXMuZGlzcGF0Y2hFdmVudChNb2R1bGVNYW5hZ2VyRXZlbnQuTU9EVUxFX0xPQURfRVJST1IsIHttZXNzYWdlOiBgJHttb2R1bGVEYXRhLm5hbWV9IG1vZHVsZSdzIHZpZXcgKGh0bWwpIG5vdCBmb3VuZC5gfSk7XG5cdFx0XHR9XG5cdFx0fSwgdGhpcykpO1xuXHR9XG5cblx0X29uTW9kdWxlQ29udHJvbGxlckxvYWRTdWNjZXNzKG1vZHVsZURhdGEsIGh0bWwsIG1vZHVsZSlcblx0e1xuXHRcdC8vIERlc3Ryb3kgY3VycmVudCBtb2R1bGVcblx0XHR0aGlzLl9kZXN0cm95Q3VycmVudE1vZHVsZSgpO1xuXG5cdFx0Ly8gRGVmaW5lIGxvYWRlZCBtb2R1bGUgKGlmIG5lY2Vzc2FyeSlcblx0XHRpZiAoIXdpbmRvdy5jdXN0b21FbGVtZW50cy5nZXQobW9kdWxlRGF0YS50YWcgKyAnLW1vZHVsZScpKVxuXHRcdFx0d2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZShtb2R1bGVEYXRhLnRhZyArICctbW9kdWxlJywgbW9kdWxlLmRlZmF1bHQpO1xuXG5cdFx0Ly8gQXBwZW5kIG5ldyBtb2R1bGVcblx0XHQkKCdkaXYubW9kdWxlLWxvYWRlcicpLmFwcGVuZChodG1sKTtcblxuXHRcdC8vIEluaXRpYWxpemUgbW9kdWxlXG5cdFx0dGhpcy5jdXJyZW50TW9kdWxlLmluaXRpYWxpemUobW9kdWxlRGF0YSwgdGhpcy5fc2hlbGxDdHJsKTtcblxuXHRcdC8vIFNhdmUgY3VycmVudCBtb2R1bGUgaWRcblx0XHR0aGlzLl9jdXJyZW50TW9kdWxlSWQgPSBtb2R1bGVEYXRhLmlkO1xuXG5cdFx0Ly8gRGlzcGF0Y2ggZXZlbnRcblx0XHR0aGlzLmRpc3BhdGNoRXZlbnQoTW9kdWxlTWFuYWdlckV2ZW50Lk1PRFVMRV9MT0FERUQsIHttb2R1bGVEYXRhOiBtb2R1bGVEYXRhfSk7XG5cdH1cblxuXHRfb25Nb2R1bGVDb250cm9sbGVyTG9hZEVycm9yKG1vZHVsZURhdGEsIGVycm9yKVxuXHR7XG5cdFx0Ly8gTG9nIGVycm9yIGRldGFpbHNcblx0XHR0aGlzLl9zaGVsbEN0cmwubG9nTWVzc2FnZShlcnJvciwgJ3dhcm4nKTtcblxuXHRcdC8vIERpc3BhdGNoIGVycm9yIGV2ZW50XG5cdFx0dGhpcy5kaXNwYXRjaEV2ZW50KE1vZHVsZU1hbmFnZXJFdmVudC5NT0RVTEVfTE9BRF9FUlJPUiwge21lc3NhZ2U6IGAke21vZHVsZURhdGEubmFtZX0gY3VzdG9tIG1vZHVsZSdzIGNvbnRyb2xsZXIgKGpzKSBjb3VsZG4ndCBiZSBsb2FkZWQuYH0pO1xuXHR9XG5cblx0X2Rlc3Ryb3lDdXJyZW50TW9kdWxlKClcblx0e1xuXHRcdC8vIEdldCBhIHJlZmVyZW5jZSB0byBjdXJyZW50IG1vZHVsZVxuXHRcdGNvbnN0IG1vZCA9IHRoaXMuY3VycmVudE1vZHVsZTtcblxuXHRcdC8vIENhbGwgZGVzdHJveSBtZXRob2Qgb24gbW9kdWxlJ3MgY2xhc3Ncblx0XHRpZiAobW9kICE9IG51bGwpXG5cdFx0XHRtb2QuZGVzdHJveSgpO1xuXG5cdFx0Ly8gRW1wdHkgbW9kdWxlIGNvbnRhaW5lclxuXHRcdCQoJ2Rpdi5tb2R1bGUtbG9hZGVyJykuZW1wdHkoKTtcblxuXHRcdHRoaXMuX2N1cnJlbnRNb2R1bGVJZCA9IG51bGw7XG5cdH1cbn1cbiIsImV4cG9ydCBjbGFzcyBCYXNlTW9kdWxlIGV4dGVuZHMgSFRNTEVsZW1lbnRcbntcblx0Y29uc3RydWN0b3IoY29tbWFuZHNQcmVmaXgpXG5cdHtcblx0ICAgIHN1cGVyKCk7XG5cblx0XHR0aGlzLl9jb21tYW5kc1ByZWZpeCA9IGNvbW1hbmRzUHJlZml4O1xuXHR9XG5cblx0Z2V0IHNoZWxsQ3RybCgpXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fc2hlbGxDdHJsO1xuXHR9XG5cblx0Z2V0IHNtYXJ0Rm94KClcblx0e1xuXHRcdHJldHVybiB0aGlzLl9zaGVsbEN0cmwuc21hcnRGb3g7XG5cdH1cblxuXHRnZXQgaWREYXRhKClcblx0e1xuXHRcdHJldHVybiB0aGlzLl9pZERhdGE7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBPVkVSUklEQUJMRSBNRVRIT0RTXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0LyoqXG5cdCAqIENhbGxlZCBieSB0aGUgbW9kdWxlcyBtYW5hZ2VyIGFmdGVyIGxvYWRpbmcgdGhlIG1vZHVsZS5cblx0ICogSW4gY2FzZSBpdCBpcyBvdmVycmlkZGVuLCBzdXBlciBtdXN0IGFsd2F5cyBiZSBjYWxsZWQhXG5cdCAqL1xuXHRpbml0aWFsaXplKGlkRGF0YSwgc2hlbGxDb250cm9sbGVyKVxuXHR7XG5cdFx0dGhpcy5faWREYXRhID0gaWREYXRhO1xuXHRcdHRoaXMuX3NoZWxsQ3RybCA9IHNoZWxsQ29udHJvbGxlcjtcblxuXHRcdC8vIEFkZCBsaXN0ZW5lciB0byBBZG1pbiBleHRlbnNpb24gbWVzc2FnZXNcblx0XHR0aGlzLnNtYXJ0Rm94LmFkZEV2ZW50TGlzdGVuZXIoU0ZTMlguU0ZTRXZlbnQuRVhURU5TSU9OX1JFU1BPTlNFLCB0aGlzLl9vbkV4dGVuc2lvblJlc3BvbnNlLCB0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsZWQgYnkgdGhlIG1vZHVsZXMgbWFuYWdlciBiZWZvcmUgdW5sb2FkaW5nIHRoZSBtb2R1bGUuXG5cdCAqIEluIGNhc2UgaXQgaXMgb3ZlcnJpZGRlbiwgc3VwZXIgbXVzdCBhbHdheXMgYmUgY2FsbGVkIVxuXHQgKi9cblx0ZGVzdHJveSgpXG5cdHtcblx0XHQvLyBSZW1vdmUgbGlzdGVuZXIgdG8gQWRtaW4gZXh0ZW5zaW9uIG1lc3NhZ2VzXG5cdFx0dGhpcy5zbWFydEZveC5yZW1vdmVFdmVudExpc3RlbmVyKFNGUzJYLlNGU0V2ZW50LkVYVEVOU0lPTl9SRVNQT05TRSwgdGhpcy5fb25FeHRlbnNpb25SZXNwb25zZSk7XG5cblx0XHQvLyBEZXN0cm95IGFsbCBLZW5kbyB3aWRnZXRzXG5cdFx0a2VuZG8uZGVzdHJveSgkKCcubW9kdWxlJykpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxlZCBieSB0aGUgb25FeHRlbnNpb25SZXNwb25zZSBsaXN0ZW5lciBiZWxvdy5cblx0ICogTXVzdCBiZSBvdmVycmlkZGVuLlxuXHQgKi9cblx0b25FeHRlbnNpb25Db21tYW5kKGNtZCwgZGF0YSlcblx0e1xuXHRcdC8vIE5vdGhpbmcgdG8gZG9cblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsZWQgYnkgdGhlIG1haW4gc2hlbGwgd2hlbmV2ZXIgdGhlIHNlcnZlciB1cHRpbWUgY2hhbmdlcy5cblx0ICogQ2FuIGJlIG92ZXJyaWRkZW4gdG8gZGlzcGxheSB0aGUgdXB0aW1lIGluc2lkZSBhIG1vZHVsZSBvciBtYWtlIGNhbGN1bGF0aW9ucyBvbiB0aGUgc2VydmVyIHVwdGltZS5cblx0ICovXG5cdG9uVXB0aW1lVXBkYXRlZCh2YWx1ZXMpXG5cdHtcblx0XHQvLyBOb3RoaW5nIHRvIGRvXG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBQVUJMSUMgTUVUSE9EU1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdC8qKlxuXHQgKiBTZW5kIGEgcmVxdWVzdCB0byBBZG1pbiBleHRlbnNpb24uXG5cdCAqL1xuXHRzZW5kRXh0ZW5zaW9uUmVxdWVzdChjb21tYW5kLCBkYXRhID0gbnVsbClcblx0e1xuXHRcdGlmIChkYXRhID09IG51bGwpXG5cdFx0XHRkYXRhID0gbmV3IFNGUzJYLlNGU09iamVjdCgpO1xuXG5cdFx0dGhpcy5zbWFydEZveC5zZW5kKG5ldyBTRlMyWC5FeHRlbnNpb25SZXF1ZXN0KGAke3RoaXMuX2NvbW1hbmRzUHJlZml4fS4ke2NvbW1hbmR9YCwgZGF0YSkpO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gUFJJVkFURSBNRVRIT0RTXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0X29uRXh0ZW5zaW9uUmVzcG9uc2UoZXZ0UGFyYW1zKVxuXHR7XG5cdFx0Ly8gRmlsdGVyIHNlcnZlciByZXNwb25zZXNcblx0XHRsZXQgY29tbWFuZHMgPSBldnRQYXJhbXMuY21kLnNwbGl0KCcuJyk7XG5cdFx0bGV0IGRhdGEgPSBldnRQYXJhbXMucGFyYW1zO1xuXG5cdFx0aWYgKGNvbW1hbmRzWzBdID09IHRoaXMuX2NvbW1hbmRzUHJlZml4KVxuXHRcdHtcblx0XHRcdGlmIChjb21tYW5kcy5sZW5ndGggPiAxKVxuXHRcdFx0XHR0aGlzLm9uRXh0ZW5zaW9uQ29tbWFuZChjb21tYW5kc1sxXSwgZGF0YSlcblx0XHR9XG5cdH1cbn1cbiIsImltcG9ydCB7Vmlld1N0YWNrfSBmcm9tICcuL2NvbXBvbmVudHMvdmlldy1zdGFjayc7XG5pbXBvcnQge01vZHVsZU1hbmFnZXJ9IGZyb20gJy4vbWFuYWdlcnMvbW9kdWxlLW1hbmFnZXInO1xuaW1wb3J0IHtNb2R1bGVNYW5hZ2VyRXZlbnR9IGZyb20gJy4vdXRpbHMvZXZlbnRzJztcbmltcG9ydCB7Q29ubmVjdGlvbk1hbmFnZXJ9IGZyb20gJy4vbWFuYWdlcnMvY29ubmVjdGlvbi1tYW5hZ2VyJztcbmltcG9ydCB7Q29ubmVjdGlvbk1hbmFnZXJFdmVudH0gZnJvbSAnLi91dGlscy9ldmVudHMnO1xuaW1wb3J0IHtDaGF0TWFuYWdlcn0gZnJvbSAnLi9tYW5hZ2Vycy9jaGF0LW1hbmFnZXInO1xuaW1wb3J0IHtwYXJzZX0gZnJvbSAnLi91dGlscy9kb3QtcHJvcGVydGllcy1wYXJzZSc7XG5cbmV4cG9ydCBjbGFzcyBTaGVsbENvbnRyb2xsZXJcbntcblx0Y29uc3RydWN0b3IoKVxuXHR7XG5cdFx0Ly8gU2V0IGNvbnN0YW50cyBhbmQgdmFyaWFibGVzXG5cblx0XHR0aGlzLlZFUlNJT05fTUFKT1IgPSAzO1xuXHRcdHRoaXMuVkVSU0lPTl9NSU5PUiA9IDI7XG5cdFx0dGhpcy5WRVJTSU9OX1NVQiA9IDE7XG5cblx0XHR0aGlzLkRFRkFVTFRfV1NfUE9SVCA9IDgwODA7XG5cdFx0dGhpcy5ERUZBVUxUX1dTU19QT1JUID0gODQ0MztcblxuXHRcdHRoaXMuREVGQVVMVF9VU0VSTkFNRSA9ICdzZnNhZG1pbic7XG5cdFx0dGhpcy5ERUZBVUxUX1BBU1NXT1JEID0gJ3Nmc2FkbWluJztcblxuXHRcdHRoaXMuX2xvZ2luVmFsaWRhdG9yID0gbnVsbDtcblxuXHRcdC8vIERpc3BsYXkgdmVyc2lvblxuXHRcdCQoJy5hZG1pbi12ZXJzaW9uJykudGV4dCgndicgKyB0aGlzLnN0cmluZ1ZlcnNpb24pO1xuXG5cdFx0Ly8gQ3JlYXRlIG1vZHVsZXMgbWFuYWdlciBpbnN0YW5jZSBhbmQgYWRkIGV2ZW50IGxpc3RlbmVyc1xuXHRcdHRoaXMuX21vZE1hbmFnZXIgPSBuZXcgTW9kdWxlTWFuYWdlcih0aGlzLCAkKCcubmF2LW1haW4nKSk7XG5cdFx0dGhpcy5fbW9kTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKE1vZHVsZU1hbmFnZXJFdmVudC5NT0RVTEVfTE9BREVELCB0aGlzLl9vbk1vZHVsZUxvYWRlZCwgdGhpcyk7XG5cdFx0dGhpcy5fbW9kTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKE1vZHVsZU1hbmFnZXJFdmVudC5NT0RVTEVfTE9BRF9FUlJPUiwgdGhpcy5fb25Nb2R1bGVMb2FkRXJyb3IsIHRoaXMpO1xuXG5cdFx0Ly8gQ3JlYXRlIGNvbm5lY3Rpb24gbWFuYWdlciBpbnN0YW5jZSBhbmQgYWRkIGV2ZW50IGxpc3RlbmVyc1xuXHRcdHRoaXMuX2Nvbm5NYW5hZ2VyID0gbmV3IENvbm5lY3Rpb25NYW5hZ2VyKHRoaXMpO1xuXHRcdHRoaXMuX2Nvbm5NYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQ29ubmVjdGlvbk1hbmFnZXJFdmVudC5DT05ORUNUSU9OLCB0aGlzLl9vbkNvbm5lY3Rpb24sIHRoaXMpO1xuXHRcdHRoaXMuX2Nvbm5NYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQ29ubmVjdGlvbk1hbmFnZXJFdmVudC5MT0dJTiwgdGhpcy5fb25Mb2dpbiwgdGhpcyk7XG5cdFx0dGhpcy5fY29ubk1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDb25uZWN0aW9uTWFuYWdlckV2ZW50LkRJU0NPTk5FQ1RJT04sIHRoaXMuX29uRGlzY29ubmVjdGlvbiwgdGhpcyk7XG5cdFx0dGhpcy5fY29ubk1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDb25uZWN0aW9uTWFuYWdlckV2ZW50LkVSUk9SLCB0aGlzLl9vbkNvbm5NYW5hZ2VyRXJyb3IsIHRoaXMpO1xuXHRcdHRoaXMuX2Nvbm5NYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQ29ubmVjdGlvbk1hbmFnZXJFdmVudC5TRVJWRVJfRVJST1IsIHRoaXMuX29uU2VydmVyRXJyb3IsIHRoaXMpO1xuXG5cdFx0Ly8gQ3JlYXRlIGFkbWluIGNoYXQgbWFuYWdlclxuXHRcdHRoaXMuX2NoYXRNYW5hZ2VyID0gbmV3IENoYXRNYW5hZ2VyKHRoaXMpO1xuXG5cdFx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0XHQvLyBJbml0aWFsaXplIHZpZXdzXG5cdFx0dGhpcy5faW5pdFZpZXdzKCk7XG5cblx0XHQvLyBTaG93IGxvZ2luIHZpZXdcblx0XHR0aGlzLl9zd2l0Y2hTaGVsbFZpZXcoJ2xvZ2luLXZpZXcnKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIFZJRVcgSU5JVElBTElaRVJTXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemUgbG9naW4gdmlldy5cblx0ICovXG5cdF9pbml0TG9naW5WaWV3KClcblx0e1xuXHRcdC8vIFNldCBkZWZhdWx0IGlucHV0IHZhbHVlcyAocGFzc3dvcmQgbmV2ZXIgc2F2ZWQpXG5cdFx0bGV0IGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5cdFx0bGV0IHBvcnQgPSB0aGlzLkRFRkFVTFRfV1NfUE9SVDtcblx0XHRsZXQgZW5jcnlwdCA9IGZhbHNlO1xuXHRcdGxldCB1c2VyID0gJ3Nmc2FkbWluJztcblx0XHRsZXQgcmVtZW1iZXIgPSBmYWxzZTtcblxuXHRcdC8vIExvYWQgXCJsYXN0LXNlcnZlclwiIGNvb2tpZVxuXHRcdGxldCBkYXRhID0gQ29va2llcy5nZXRKU09OKCdsYXN0LXNlcnZlcicpXG4gICAgICAgIGlmIChkYXRhKVxuXHRcdHtcblx0XHRcdGhvc3QgPSBkYXRhLmhvc3Q7XG4gICAgICAgICAgICBwb3J0ID0gZGF0YS5wb3J0O1xuXHRcdFx0ZW5jcnlwdCA9IGRhdGEuZW5jcnlwdDtcblx0XHRcdHVzZXIgPSBkYXRhLnVzZXI7XG5cdFx0XHRyZW1lbWJlciA9IHRydWU7XG4gICAgICAgIH1cblxuXHRcdC8vIFJldHJpZXZlIGhvc3QgZnJvbSBHRVQgcGFyYW1ldGVyXG5cdFx0bGV0IGdldEhvc3QgPSB0aGlzLl9nZXRVcmxQYXJhbWV0ZXIoJ2hvc3QnKTtcblx0XHRpZiAoZ2V0SG9zdClcblx0XHRcdGhvc3QgPSBnZXRIb3N0O1xuXG5cdFx0Ly8gU2V0IGlucHV0IHZhbHVlc1xuXHRcdCQoJyNsb2dpbkhvc3QnKS52YWwoaG9zdCk7XG5cdFx0JCgnI2xvZ2luVXNlcm5hbWUnKS52YWwodXNlcik7XG5cdFx0JCgnI2xvZ2luRW5jcnlwdCcpLnByb3AoJ2NoZWNrZWQnLCBlbmNyeXB0KTtcblx0XHQkKCcjcmVtZW1iZXJMb2dpbicpLnByb3AoJ2NoZWNrZWQnLCByZW1lbWJlcik7XG5cblx0XHQvLyBJbml0aWFsaXplIG51bWVyaWMgaW5wdXRcblx0XHQkKCcjbG9naW5Qb3J0Jykua2VuZG9OdW1lcmljVGV4dEJveCh7XG5cdFx0XHRmb3JtYXQ6ICcjIyMjIycsXG5cdFx0XHR2YWx1ZTogcG9ydFxuXHRcdH0pO1xuXG5cdFx0Ly8gSW5pdGlhbGl6ZSB0aGUgS2VuZG8gVUkgVmFsaWRhdG9yIG9uIHRoZSBcImZvcm1cIiBjb250YWluZXJcblx0XHQvLyAoTk9URTogZG9lcyBOT1QgaGF2ZSB0byBiZSBhbiBhY3R1YWwgPGZvcm0+IHRhZylcblx0XHR0aGlzLl9sb2dpblZhbGlkYXRvciA9ICQoJyNsb2dpbkZvcm0nKS5rZW5kb1ZhbGlkYXRvcih7XG5cdFx0XHR2YWxpZGF0ZU9uQmx1cjogdHJ1ZVxuXHRcdH0pLmRhdGEoJ2tlbmRvVmFsaWRhdG9yJyk7XG5cblx0XHQvLyBBZGQgbGlzdGVuZXIgdG8gdmFsaWRhdGUgdGhlIGZvcm0gd2hlbiB0aGUgQ29ubmVjdCBidXR0b24gaXMgY2xpY2tlZFxuXHRcdCQoJyNsb2dpbkJ1dHRvbicpLmNsaWNrKCQucHJveHkodGhpcy5fb25Db25uZWN0Q2xpY2ssIHRoaXMpKTtcblxuXHRcdC8vIEFkZCBsaXN0ZW5lciB0byBzdWJtaXQgZm9ybSBvbiBFbnRlciBrZXkgcHJlc3Ncblx0XHQkKCcjbG9naW5Gb3JtJykua2V5dXAoZnVuY3Rpb24oZXZlbnQpIHtcblx0XHRcdGlmIChldmVudC5rZXkgIT09ICdFbnRlcicpIHJldHVybjtcblxuXHRcdFx0JCgnI2xvZ2luQnV0dG9uJykuY2xpY2soKTtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fSk7XG5cblx0XHQvLyBBZGQgbGlzdGVuZXIgdG8gZW5jcnlwdCBjaGVja2JveFxuXHRcdCQoJyNsb2dpbkVuY3J5cHQnKS5jaGFuZ2UoJC5wcm94eShmdW5jdGlvbihldmVudCkge1xuXHRcdFx0bGV0IHBvcnQgPSB0aGlzLkRFRkFVTFRfV1NfUE9SVDtcblxuXHRcdFx0aWYgKCQoJyNsb2dpbkVuY3J5cHQnKS5wcm9wKCdjaGVja2VkJykpXG5cdFx0XHRcdHBvcnQgPSB0aGlzLkRFRkFVTFRfV1NTX1BPUlQ7XG5cblx0XHRcdCQoJyNsb2dpblBvcnQnKS5kYXRhKCdrZW5kb051bWVyaWNUZXh0Qm94JykudmFsdWUocG9ydCk7XG5cdFx0fSwgdGhpcykpO1xuXG5cdFx0Ly8gSGlkZSBlcnJvciBtZXNzYWdlIGNvbnRhaW5lclxuXHRcdCQoJyNsb2dpbi1lcnJvcicpLmhpZGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbml0aWFsaXplIG1vZHVsZSB2aWV3LlxuXHQgKi9cblx0X2luaXRNb2R1bGVWaWV3KClcblx0e1xuXHRcdC8vIEFkZCBsaXN0ZW5lcnMgdG8gb3Blbi9jbG9zZSBtZW51IGJ1dHRvbnNcblx0XHQkKCcubmF2LW9wZW4nKS5jbGljaygkLnByb3h5KGZ1bmN0aW9uKGV2ZW50KSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0dGhpcy5fdG9nZ2xlTmF2KHRydWUpO1xuXHRcdH0sIHRoaXMpKTtcblxuXHRcdCQoJy5uYXYtY2xvc2UsIC5uYXYtb3ZlcmxheScpLmNsaWNrKCQucHJveHkoZnVuY3Rpb24oZXZlbnQpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHR0aGlzLl90b2dnbGVOYXYoZmFsc2UpO1xuXHRcdH0sIHRoaXMpKTtcblxuXHRcdC8vIEFkZCBsaXN0ZW5lcnMgdG8gc2VydmljZSBidXR0b25zXG5cdFx0JCgnI3Jlc3RhcnQtYnV0dG9uJykuY2xpY2soJC5wcm94eSh0aGlzLl9vblJlc3RhcnRDbGljaywgdGhpcykpO1xuXHRcdCQoJyNoYWx0LWJ1dHRvbicpLmNsaWNrKCQucHJveHkodGhpcy5fb25IYWx0Q2xpY2ssIHRoaXMpKTtcblx0XHQkKCcjaGVscC1idXR0b24nKS5jbGljaygkLnByb3h5KHRoaXMuX29uSGVscENsaWNrLCB0aGlzKSk7XG5cdFx0JCgnI2Rpc2Nvbm5lY3QtYnV0dG9uJykuY2xpY2soJC5wcm94eSh0aGlzLl9vbkRpc2Nvbm5lY3RDbGljaywgdGhpcykpO1xuXG5cdFx0Ly8gQWRkIGxpc3RlbmVyIHRvIHNob3cgdG9vbHRpcCBvbiBzZXJ2aWNlIGJ1dHRvbnMgaG92ZXJcblx0XHQkKCcubmF2LXNlcnZpY2UnKS5rZW5kb1Rvb2x0aXAoe1xuXHRcdFx0ZmlsdGVyOiAnbGlbdGl0bGVdJ1xuXHRcdH0pO1xuXG5cdFx0Ly8gQWRkIGxpc3RlbmVyIHRvIHNjcm9sbCBtYWluIHZpZXcgdG8gdG9wIGlmIHN0YXR1cyBiYXIgaXMgY2xpY2tlZFxuXHRcdCQoJyNzdGF0dXMtYmFyJykuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHQkKCdtYWluJykuYW5pbWF0ZSh7IHNjcm9sbFRvcDogMCB9LCAnZmFzdCcpO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gVUkgRVZFTlQgTElTVEVORVJTXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlIGxvZ2luIGZvcm0gYW5kIGNvbm5lY3QrbG9naW4gdG8gU21hcnRGb3hTZXJ2ZXIuXG5cdCAqL1xuXHRfb25Db25uZWN0Q2xpY2soZXZlbnQpXG5cdHtcblx0XHQvLyBIaWRlIGFueSBwcmV2aW91cyBlcnJvciBtZXNzYWdlXG5cdFx0JCgnI2xvZ2luLWVycm9yJykuaGlkZSgpO1xuXHRcdCQoJyNsb2dpbi1lcnJvcicpLnRleHQoJycpO1xuXG5cdFx0Ly8gVmFsaWRhdGUgbG9naW4gZm9ybVxuXHRcdGlmICh0aGlzLl9sb2dpblZhbGlkYXRvci52YWxpZGF0ZSgpKVxuXHRcdHtcblx0XHRcdC8vIERpc2FibGUgbG9naW4gZm9ybVxuXHRcdFx0dGhpcy5fZW5hYmxlTG9naW5Gb3JtKGZhbHNlKTtcblxuXHRcdFx0Ly8gUmV0cmlldmUgY29ubmVjdGlvbiBkZXRhaWxzXG5cdFx0XHRsZXQgY29uZmlnID0ge307XG5cdFx0XHRjb25maWcuaG9zdCA9ICQoJyNsb2dpbkhvc3QnKS52YWwoKS50cmltKCk7XG5cdFx0XHRjb25maWcucG9ydCA9ICQoJyNsb2dpblBvcnQnKS5kYXRhKCdrZW5kb051bWVyaWNUZXh0Qm94JykudmFsdWUoKTtcblx0XHRcdGNvbmZpZy51c2VTU0wgPSAkKCcjbG9naW5FbmNyeXB0JykucHJvcCgnY2hlY2tlZCcpO1xuXG5cdFx0XHRsZXQgdXNlcm5hbWUgPSAkKCcjbG9naW5Vc2VybmFtZScpLnZhbCgpLnRyaW0oKTtcblx0XHRcdGxldCBwYXNzd29yZCA9ICQoJyNsb2dpblBhc3N3b3JkJykudmFsKCk7XG5cblx0XHRcdC8vIFNhdmUgaW5wdXQgdmFsdWVzIHRvIGNvb2tpZSAoZXhjZXB0IHBhc3N3b3JkKS4uLlxuXHRcdFx0Ly8gLi4ub3IgY2xlYXIgcHJldmlvdXNseSBzYXZlZCBjb29raWVcblx0XHRcdGlmICgkKCcjcmVtZW1iZXJMb2dpbicpLnByb3AoJ2NoZWNrZWQnKSlcblx0XHRcdHtcblx0XHRcdFx0Q29va2llcy5zZXQoJ2xhc3Qtc2VydmVyJywge1xuXHRcdFx0XHRcdGhvc3Q6IGNvbmZpZy5ob3N0LFxuXHRcdFx0XHRcdHBvcnQ6IGNvbmZpZy5wb3J0LFxuXHRcdFx0XHRcdGVuY3J5cHQ6IGNvbmZpZy51c2VTU0wsXG5cdFx0XHRcdFx0dXNlcjogdXNlcm5hbWVcblxuXHRcdFx0XHR9LCB7ZXhwaXJlczogMzB9KTtcblx0XHRcdH1cblx0XHRcdGVsc2Vcblx0XHRcdHtcblx0XHRcdFx0Q29va2llcy5yZW1vdmUoJ2xhc3Qtc2VydmVyJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbm5lY3QgdG8gU0ZTMlggJiBsb2dpblxuXHRcdFx0dGhpcy5fY29ubk1hbmFnZXIuY29ubmVjdChjb25maWcsIHVzZXJuYW1lLCBwYXNzd29yZCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlc3RhcnQgU21hcnRGb3hTZXJ2ZXIuXG5cdCAqL1xuXHRfb25SZXN0YXJ0Q2xpY2soZXZlbnQpXG5cdHtcblx0XHRsZXQgbWVzc2FnZSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gc3RvcCBhbmQgcmVzdGFydCB0aGlzIGluc3RhbmNlIG9mIFNtYXJ0Rm94U2VydmVyIDJYPyc7XG5cdFx0dGhpcy5zaG93Q29uZmlybVdhcm5pbmcobWVzc2FnZSwgJC5wcm94eSh0aGlzLl9vblJlc3RhcnRDb25maXJtRGlhbG9nQ29uZmlybSwgdGhpcykpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbHQgU21hcnRGb3hTZXJ2ZXIuXG5cdCAqL1xuXHRfb25IYWx0Q2xpY2soZXZlbnQpXG5cdHtcblx0XHRsZXQgbWVzc2FnZSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gc3RvcCB0aGlzIGluc3RhbmNlIG9mIFNtYXJ0Rm94U2VydmVyIDJYPzxicj5Zb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJlc3RhcnQgaXQgdXNpbmcgdGhlIEFkbWluaXN0cmF0aW9uIFRvb2wuJztcblx0XHR0aGlzLnNob3dDb25maXJtV2FybmluZyhtZXNzYWdlLCAkLnByb3h5KHRoaXMuX29uSGFsdENvbmZpcm1EaWFsb2dDb25maXJtLCB0aGlzKSk7XG5cdH1cblxuXHQvKipcblx0ICogT3BlbiBvbmxpbmUgZG9jdW1lbnRhdGlvbi5cblx0ICovXG5cdF9vbkhlbHBDbGljayhldmVudClcblx0e1xuXHRcdC8vIE9wZW4gb25saW5lIGRvY1xuXHRcdHdpbmRvdy5vcGVuKGBodHRwOi8vZG9jczJ4LnNtYXJ0Zm94c2VydmVyLmNvbS9HZXR0aW5nU3RhcnRlZC9hZG1pbnRvb2wtJHt0aGlzLl9tb2RNYW5hZ2VyLmN1cnJlbnRNb2R1bGVJZH1gLCAnX2JsYW5rJyk7XG5cdH1cblxuXHQvKipcblx0ICogRGlzY29ubmVjdCBmcm9tIHNlcnZlci5cblx0ICovXG5cdF9vbkRpc2Nvbm5lY3RDbGljayhldmVudClcblx0e1xuXHRcdHRoaXMuX2Nvbm5NYW5hZ2VyLmRpc2Nvbm5lY3QoKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIENPTk5FQ1RJT04gTUFOQUdFUiBFVkVOVCBMSVNURU5FUlNcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRfb25Db25uZWN0aW9uKGV2dFBhcmFtcylcblx0e1xuXHRcdC8vIExvZyBtZXNzYWdlXG5cdFx0dGhpcy5sb2dNZXNzYWdlKGBDb25uZWN0aW9uIHRvICR7dGhpcy5fY29ubk1hbmFnZXIuc21hcnRGb3guY29uZmlnLmhvc3R9OiR7dGhpcy5fY29ubk1hbmFnZXIuc21hcnRGb3guY29uZmlnLnBvcnR9IGVzdGFibGlzaGVkYCk7XG5cdH1cblxuXHRfb25Mb2dpbihldnRQYXJhbXMpXG5cdHtcblx0XHQvLyBMb2cgbWVzc2FnZVxuXHRcdHRoaXMubG9nTWVzc2FnZShgU3VjY2Vzc2Z1bCBsb2dpbiB0byAke3RoaXMuX2Nvbm5NYW5hZ2VyLnNtYXJ0Rm94LmNvbmZpZy5ob3N0fToke3RoaXMuX2Nvbm5NYW5hZ2VyLnNtYXJ0Rm94LmNvbmZpZy5wb3J0fSBwZXJmb3JtZWRgKTtcblxuXHRcdC8vIEdldCBsYXN0IGxvYWRlZCBtb2R1bGUgZnJvbSBjb29raWVzXG5cdFx0bGV0IGxvYWRNb2R1bGVJZCA9IG51bGw7XG5cdFx0bGV0IGRhdGEgPSBDb29raWVzLmdldEpTT04oJ2xhc3QtbW9kdWxlJylcbiAgICAgICAgaWYgKGRhdGEpXG5cdFx0XHRsb2FkTW9kdWxlSWQgPSBkYXRhLmlkO1xuXG5cdFx0Ly8gSW5pdCB0aGUgbW9kdWxlcyBsaXN0IHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gcmV0dXJuZWQgYnkgdGhlIHNlcnZlciBhbmQ6IGxvYWQgbGFzdCBzYXZlZCBtb2R1bGUsIG9yIGZpcnN0IG1vZHVsZSBpbiB0aGUgbGlzdCwgb3IgcGFzc2VkIG1vZHVsZSBpZFxuXHRcdHRoaXMuX21vZE1hbmFnZXIuaW5pdE1vZHVsZXNMaXN0KGV2dFBhcmFtcy5tb2R1bGVzLCBsb2FkTW9kdWxlSWQpO1xuXG5cdFx0Ly8gU2F2ZSBjdXJyZW50IHVwdGltZVxuXHRcdHRoaXMuX3VwdGltZSA9IGV2dFBhcmFtcy5zZXJ2ZXJVcHRpbWU7XG5cblx0XHQvLyBTaG93L2hpZGUgSGFsdCBhbmQgUmVzdGFydCBidXR0b25zIGRlcGVuZGluZyBpZjpcblx0XHQvLyAxKSB0aGlzIGZlYXR1cmUgaXMgc3VwcG9ydGVkIGZvciB0aGUgc2VydmVyIG9wZXJhdGluZyBzeXN0ZW1cblx0XHQvLyAyKSB0aGUgYWRtaW5pc3RyYXRvciB3aG8ganVzdCBsb2dnZWQgaW4gaGFzIHRoZSBwZXJtaXNzaW9uIHRvIGV4ZWN1dGUgdGhlc2UgYWN0aW9uc1xuXHRcdHRoaXMuX3Nob3dIYWx0UmVzdGFydEJ1dHRvbnMoZXZ0UGFyYW1zLnByb2NDb250cm9sRW5hYmxlZCAmJiBldnRQYXJhbXMuYWxsb3dIYWx0KTtcblxuXHRcdC8vIFN3aXRjaCB0byBtb2R1bGVzIHZpZXdcblx0XHR0aGlzLl9nb1RvTW9kdWxlc1ZpZXcoZXZ0UGFyYW1zLnNlcnZlclZlcnNpb24sIGV2dFBhcmFtcy5zZXJ2ZXJOYW1lKTtcblxuXHRcdC8vIElmIGRlZmF1bHQgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGhhdmUgYmVlbiB1c2VkLi4uXG5cdFx0aWYgKCQoJyNsb2dpblVzZXJuYW1lJykudmFsKCkgPT0gdGhpcy5ERUZBVUxUX1VTRVJOQU1FICYmICQoJyNsb2dpblBhc3N3b3JkJykudmFsKCkgPT0gdGhpcy5ERUZBVUxUX1BBU1NXT1JEKVxuXHRcdHtcblx0XHRcdC8vIC4uLnNob3cgYWxlcnRcblx0XHRcdHRoaXMuc2hvd1NpbXBsZUFsZXJ0KCdZb3UgYXJlIHVzaW5nIHRoZSBkZWZhdWx0IGFkbWluaXN0cmF0aW9uIHByb2ZpbGUgd2hpY2ggaXMgaGlnaGx5IGluc2VjdXJlLCBwbGVhc2UgbWFrZSBzdXJlIHRvIGltbWVkaWF0ZWx5IGNoYW5nZSB0aGUgcGFzc3dvcmQuJyk7XG5cblx0XHRcdC8vIC4uLnNob3cgbm9uLXJlbW92YWJsZSBtZXNzYWdlIGluIGFsZXJ0IGJhclxuXHRcdFx0JCgnI2FsZXJ0LWJhcicpLnNob3coKTtcblx0XHRcdCQoJyNhbGVydC1iYXInKS50ZXh0KCdZb3UgYXJlIHVzaW5nIHRoZSBkZWZhdWx0IGFkbWluaXN0cmF0aW9uIHByb2ZpbGUgd2hpY2ggaXMgaGlnaGx5IGluc2VjdXJlLCBwbGVhc2UgY2hhbmdlIHRoZSBwYXNzd29yZC4nKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTGlzdGVuZXIgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZGlzY29ubmVjdGVkIHZvbHVudGFyaWx5LlxuXHQgKi9cblx0X29uRGlzY29ubmVjdGlvbihldnRQYXJhbXMpXG5cdHtcblx0XHQvLyBSZW1vdmUgYW55IHBvcHVwIG9yIGFsZXJ0XG5cdFx0dGhpcy5yZW1vdmVEaWFsb2coKTtcblxuXHRcdC8vIFN3aXRjaCBiYWNrIHRvIGxvZ2luIHZpZXdcblx0XHR0aGlzLl9nb1RvTG9naW5WaWV3KCk7XG5cblx0XHQvLyBIaWRlIG5hdmlnYXRpb24gaWYgb3BlblxuXHRcdHRoaXMuX3RvZ2dsZU5hdihmYWxzZSk7XG5cdH1cblxuXHQvKipcblx0ICogTGlzdGVuZXIgY2FsbGVkIHdoZW4gYW4gZXJyb3IgY2F1c2VkIGEgZGlzY29ubmVjdGlvbi5cblx0ICovXG5cdF9vbkNvbm5NYW5hZ2VyRXJyb3IoZXZ0UGFyYW1zKVxuXHR7XG5cdFx0Ly8gUmVtb3ZlIGFueSBwb3B1cCBvciBhbGVydFxuXHRcdHRoaXMucmVtb3ZlRGlhbG9nKCk7XG5cblx0XHQvLyBMb2cgc3lzdGVtIG1lc3NhZ2Vcblx0XHR0aGlzLmxvZ01lc3NhZ2UoZXZ0UGFyYW1zLm1lc3NhZ2UsICd3YXJuJyk7XG5cblx0XHQvLyBTd2l0Y2ggYmFjayB0byBsb2dpbiB2aWV3XG5cdFx0dGhpcy5fZ29Ub0xvZ2luVmlldygpO1xuXG5cdFx0Ly8gRGlzcGxheSBlcnJvciBpbiBsb2dpbiB2aWV3XG5cdFx0JCgnI2xvZ2luLWVycm9yJykudGV4dChldnRQYXJhbXMubWVzc2FnZSk7XG5cdFx0JCgnI2xvZ2luLWVycm9yJykuc2hvdygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RlbmVyIGNhbGxlZCB3aGVuIGFuIHVuZXhwZWN0ZWQgc2VydmVyLXNpZGUgZXJyb3Igb2NjdXJzLlxuXHQgKi9cblx0X29uU2VydmVyRXJyb3IoZXZ0UGFyYW1zKVxuXHR7XG5cdFx0Ly8gU2hvdyBhbiBhbGVydFxuXHRcdHRoaXMuc2hvd1NpbXBsZUFsZXJ0KGV2dFBhcmFtcy5tZXNzYWdlKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIE9USEVSIEVWRU5UIExJU1RFTkVSU1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdF9vbk1vZHVsZUxvYWRlZChldnRQYXJhbXMpXG5cdHtcblx0XHRjb25zdCBtb2R1bGVEYXRhID0gZXZ0UGFyYW1zLm1vZHVsZURhdGE7XG5cblx0XHQvLyBTYXZlIGxhc3QgbG9hZGVkIG1vZHVsZSB0byBjb29raWVzXG5cdFx0Q29va2llcy5zZXQoJ2xhc3QtbW9kdWxlJywge1xuXHRcdFx0aWQ6IG1vZHVsZURhdGEuaWRcblx0XHR9LCB7ZXhwaXJlczogMzB9KTtcblxuXHRcdC8vIERpc3BsYXkgbW9kdWxlIHRpdGxlXG5cdFx0JCgnI21vZHVsZS10aXRsZScpLnNob3coKTtcblx0XHQkKCcjbW9kdWxlLXRpdGxlLWxhYmVsJykudGV4dChtb2R1bGVEYXRhLm5hbWUpO1xuXG5cdFx0Ly8gVGVsbCB0aGUgY2hhdCBtYW5hZ2VyIHdoaWNoIG1vZHVsZSBoYXMgYmVlbiBsb2FkZWRcblx0XHR0aGlzLl9jaGF0TWFuYWdlci5zZXRDdXJyZW50TW9kdWxlKG1vZHVsZURhdGEuaWQpO1xuXG5cdFx0Ly8gQXNzaWduIHRoZSAuc2VsZWN0ZWQgY2xhc3MgdG8gdGhlIHNlbGVjdGVkIG5hdmlnYXRpb24gaXRlbVxuXHRcdCQoJy5uYXYtbWFpbicpLmZpbmQoYFtkYXRhLWlkPScke21vZHVsZURhdGEuaWR9J11gKS5hZGRDbGFzcygnc2VsZWN0ZWQnKS5zaWJsaW5ncygnLnNlbGVjdGVkJykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7XG5cdH1cblxuXHRfb25Nb2R1bGVMb2FkRXJyb3IoZXZ0UGFyYW1zKVxuXHR7XG5cdFx0Ly8gU2hvdyBhbiBhbGVydFxuXHRcdHRoaXMuc2hvd1NpbXBsZUFsZXJ0KGV2dFBhcmFtcy5tZXNzYWdlKTtcblx0fVxuXG5cdF9vblJlc3RhcnRDb25maXJtRGlhbG9nQ29uZmlybSgpXG5cdHtcblx0XHQvLyBTZW5kIHJlc3RhcnQgc2VydmVyIHJlcXVlc3Rcblx0XHR0aGlzLl9jb25uTWFuYWdlci5yZXN0YXJ0U2VydmVyKCk7XG5cdH1cblxuXHRfb25IYWx0Q29uZmlybURpYWxvZ0NvbmZpcm0oKVxuXHR7XG5cdFx0Ly8gU2VuZCBoYWx0IHNlcnZlciByZXF1ZXN0XG5cdFx0dGhpcy5fY29ubk1hbmFnZXIuaGFsdFNlcnZlcigpO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gUFVCTElDIE1FVEhPRFNcblx0Ly8gVGhpcyBtZW1iZXJzIGFyZSB1c2VkIGJ5IHRoZSBzdWItbWFuYWdlcnMgKGkuZS4gQ29ubmVjdGlvbk1hbmFnZXIpXG5cdC8vIG9yIHRoZSBtb2R1bGVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhpcyBzaGVsbCBjb250cm9sbGVyLlxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdGdldCBzbWFydEZveCgpXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fY29ubk1hbmFnZXIuc21hcnRGb3g7XG5cdH1cblxuXHRnZXQgaW50VmVyc2lvbigpXG5cdHtcblx0XHR2YXIgdmVyc2lvbiA9IHRoaXMuVkVSU0lPTl9NQUpPUjtcblx0XHR2ZXJzaW9uICs9ICh0aGlzLlZFUlNJT05fTUlOT1IgPCAxMCA/ICcwJyA6ICcnKSArIHRoaXMuVkVSU0lPTl9NSU5PUjtcblx0XHR2ZXJzaW9uICs9ICh0aGlzLlZFUlNJT05fU1VCIDwgMTAgPyAnMCcgOiAnJykgKyB0aGlzLlZFUlNJT05fU1VCO1xuXG5cdFx0cmV0dXJuIE51bWJlcih2ZXJzaW9uKTtcblx0fVxuXG5cdGdldCBzdHJpbmdWZXJzaW9uKClcblx0e1xuXHRcdHJldHVybiB0aGlzLlZFUlNJT05fTUFKT1IgKyAnLicgKyB0aGlzLlZFUlNJT05fTUlOT1IgKyAnLicgKyB0aGlzLlZFUlNJT05fU1VCO1xuXHR9XG5cblx0bG9nTWVzc2FnZShtZXNzYWdlLCB0eXBlID0gJ2xvZycpXG5cdHtcblx0XHRzd2l0Y2ggKHR5cGUpIHtcblx0XHRcdGNhc2UgJ2luZm8nOlxuXHRcdFx0XHRjb25zb2xlLmluZm8oJ1sgQURNSU5UT09MIHwgSU5GTyBdICcgKyBtZXNzYWdlKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICd3YXJuJzpcblx0XHRcdFx0Y29uc29sZS53YXJuKCdbIEFETUlOVE9PTCB8IFdBUk4gXSAnICsgbWVzc2FnZSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnZXJyb3InOlxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCdbIEFETUlOVE9PTCB8IEVSUk9SIF0gJyArIG1lc3NhZ2UpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdbIEFETUlOVE9PTCB8IElORk8gXSAnICsgbWVzc2FnZSk7XG5cdFx0fVxuXHR9XG5cblx0cmVtb3ZlRGlhbG9nKClcblx0e1xuXHRcdC8vIEhpZGUgYW55IHNob3dpbmcgbW9kYWxcblx0XHQkKCcubW9kYWwnKS5tb2RhbCgnaGlkZScpO1xuXG5cdFx0Ly8gSGlkZSBhbnkgc2hvd2luZyB0b2FzdFxuXHRcdCQoJy50b2FzdCcpLnRvYXN0KCdoaWRlJyk7XG5cblx0XHQvLyBSZW1vdmUgc2hlbGwncyBkaWFsb2dcblx0XHRpZiAodGhpcy5fZGlhbG9nICE9IG51bGwpXG5cdFx0e1xuXHRcdFx0dGhpcy5fZGlhbG9nLmNsb3NlKCk7XG5cdFx0XHR0aGlzLl9kaWFsb2cuZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5fZGlhbG9nID0gbnVsbDtcblx0XHR9XG5cblx0XHQvLyBFbmFibGUgdGhlIGZvbGxvd2luZyBpZiBvdGhlciBLZW5kbyBkaWFsb2dzIGFyZSB1c2VkIGluIG1vZHVsZXNcblx0XHQvKlxuXHRcdC8vIFJlbW92ZSBhbnkgb3RoZXIgZGlhbG9nIChpbm5lciB0byBtb2R1bGUpXG5cdFx0JCgnLmstZGlhbG9nLWNvbnRlbnQnKS5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7XG5cdFx0XHQvLyBDb25maXJtIGRpYWxvZ1xuXHRcdFx0bGV0IGNvbmZpcm0gPSAkKHRoaXMpLmRhdGEoJ2tlbmRvQ29uZmlybScpO1xuXHRcdFx0aWYgKGNvbmZpcm0pXG5cdFx0XHR7XG5cdFx0XHRcdGNvbmZpcm0uY2xvc2UoKTtcblx0XHRcdFx0Y29uZmlybS5kZXN0cm95KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0Ki9cblx0fVxuXG5cdC8qKlxuXHQgKiBTaG93IHNpbXBsZSBhbGVydC5cblx0ICovXG5cdHNob3dTaW1wbGVBbGVydCh0ZXh0LCBpc1dhcm5pbmcgPSB0cnVlKVxuXHR7XG5cdFx0Ly8gQ3JlYXRlIGFuZCBzaG93IGRpYWxvZ1xuXHRcdHRoaXMuX2RpYWxvZyA9IGtlbmRvLmFsZXJ0KHRleHQpO1xuXHRcdHRoaXMuX2RpYWxvZy50aXRsZShpc1dhcm5pbmcgPyAnV2FybmluZycgOiAnSW5mb3JtYXRpb24nKTtcblxuXHRcdC8vIFNldCBjdXN0b20gY2xhc3MgZm9yIHN0eWxpbmdcblx0XHR0aGlzLl9kaWFsb2cud3JhcHBlci5hZGRDbGFzcyhpc1dhcm5pbmcgPyAnaXMtd2FybmluZycgOiAnaXMtaW5mbycpO1xuXG5cdFx0Ly8gTG9nIG1lc3NhZ2UgdG9vXG5cdFx0Ly8gKHdlIGVuY2Fwc3VsZSB0aGUgdGV4dCBpbiBhIHNwYW4gYW5kIGV4dHJhY3QgdGhlIHRleHQgYWdhaW4gdG8gcmVtb3ZlIGlubmVyIGh0bWwgdGFncylcblx0XHRsZXQgaHRtbCA9ICQoJzxzcGFuPicgKyB0ZXh0ICsgJzwvc3Bhbj4nKTtcblx0XHR0aGlzLmxvZ01lc3NhZ2UoaHRtbC50ZXh0KCksIGlzV2FybmluZyA/ICd3YXJuJyA6ICdpbmZvJyk7XG5cdH1cblxuXHQvKipcblx0ICogU2hvdyBjb25maXJtIGFsZXJ0LlxuXHQgKi9cblx0c2hvd0NvbmZpcm1XYXJuaW5nKHRleHQsIGNvbmZpcm1IYW5kbGVyKVxuXHR7XG5cdFx0Ly8gQ3JlYXRlIGRpYWxvZ1xuXHRcdHRoaXMuX2RpYWxvZyA9ICQoJzxkaXY+PC9kaXY+Jykua2VuZG9Db25maXJtKHtcblx0ICAgICAgdGl0bGU6ICdXYXJuaW5nJyxcblx0ICAgICAgY29udGVudDogdGV4dCxcblx0XHQgIGFjdGlvbnM6IFtcblx0ICAgICAgICAgIHtcblx0ICAgICAgICAgICAgICB0ZXh0OiAnT0snLFxuXHQgICAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG5cdCAgICAgICAgICAgICAgYWN0aW9uOiBjb25maXJtSGFuZGxlclxuXHQgICAgICAgICAgfSxcblx0ICAgICAgXVxuXHQgIFx0fSkuZGF0YSgna2VuZG9Db25maXJtJyk7XG5cblx0XHQvLyBTZXQgY3VzdG9tIGNsYXNzIGZvciBzdHlsaW5nXG5cdFx0dGhpcy5fZGlhbG9nLndyYXBwZXIuYWRkQ2xhc3MoJ2lzLXdhcm5pbmcnKTtcblxuXHRcdC8vIFNob3cgZGlhbG9nXG5cdFx0dGhpcy5fZGlhbG9nLm9wZW4oKTtcblx0fVxuXG5cdHNob3dOb3RpZmljYXRpb24odGl0bGUsIG1lc3NhZ2UpXG5cdHtcblx0XHQvLyBEaXNwbGF5IG5vdGlmaWNhdGlvblxuXHRcdGxldCB0b2FzdCA9ICQoYFxuXHRcdFx0PGRpdiBjbGFzcz1cInRvYXN0XCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCIgZGF0YS1kZWxheT1cIjQwMDBcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInRvYXN0LWhlYWRlclwiPlxuXHRcdFx0XHRcdDxzdHJvbmcgY2xhc3M9XCJtci1hdXRvXCI+JHt0aXRsZX08L3N0cm9uZz5cblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm1sLTIgbWItMSBjbG9zZVwiIGRhdGEtZGlzbWlzcz1cInRvYXN0XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG5cdFx0XHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuXHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIj4ke21lc3NhZ2V9PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRgKTtcblxuXHRcdCQoJy50b2FzdC1jb250YWluZXInKS5hcHBlbmQodG9hc3QpO1xuXHRcdHRvYXN0LnRvYXN0KCdzaG93Jyk7XG5cblx0XHQvLyBMb2cgbWVzc2FnZSB0b29cblx0XHQvLyAod2UgZW5jYXBzdWxlIHRoZSB0ZXh0IGluIGEgc3BhbiBhbmQgZXh0cmFjdCB0aGUgdGV4dCBhZ2FpbiB0byByZW1vdmUgaW5uZXIgaHRtbCB0YWdzKVxuXHRcdGxldCBodG1sID0gJCgnPHNwYW4+JyArIHRpdGxlICsgJyAtICcgKyBtZXNzYWdlICsgJzwvc3Bhbj4nKTtcblx0XHR0aGlzLmxvZ01lc3NhZ2UoaHRtbC50ZXh0KCksICdpbmZvJyk7XG5cdH1cblxuXHR1cGRhdGVNb2R1bGVUaXRsZSh0aXRsZSwgYXNTdWZmaXggPSBmYWxzZSlcblx0e1xuXHRcdCQoJyNtb2R1bGUtdGl0bGUtbGFiZWwnKS50ZXh0KCAoYXNTdWZmaXggPyAkKCcjbW9kdWxlLXRpdGxlLWxhYmVsJykudGV4dCgpIDogJycpICsgdGl0bGUgKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIFBSSVZBVEUgTUVUSE9EU1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdF9pbml0Vmlld3MoKVxuXHR7XG5cdFx0Ly8gSW5pdGlhbGl6ZSBsb2dpbiB2aWV3XG5cdFx0dGhpcy5faW5pdExvZ2luVmlldygpO1xuXG5cdFx0Ly8gSW5pdGlhbGl6ZSBtb2R1bGUgdmlld1xuXHRcdHRoaXMuX2luaXRNb2R1bGVWaWV3KCk7XG5cdH1cblxuXHQvKipcblx0ICogU3dpdGNoIHZpZXcgaW4gdG9wIHZpZXcgc3RhY2suXG5cdCAqIEBwYXJhbSAge3N0cmluZ30gdmlld0lkIElkZW50aWZpZXIgb2YgdGhlIHZpZXdzdGFzayBjaGlsZCB0byBkaXNwbGF5LlxuXHQgKi9cblx0X3N3aXRjaFNoZWxsVmlldyh2aWV3SWQpXG5cdHtcblx0XHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hlbGwnKS5zZWxlY3RlZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh2aWV3SWQpO1xuXG5cdFx0Ly8gKGpRdWVyeSBhbHRlcm5hdGl2ZSlcblx0XHQvLyAkKCcjc2hlbGwnKVswXS5zZWxlY3RlZEVsZW1lbnQgPSAkKCcjc2hlbGwnKS5jaGlsZHJlbignIycgKyB2aWV3SWQpWzBdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVuYWJsZS9kaXNhYmxlIGxvZ2luIGZvcm0uXG5cdCAqL1xuXHRfZW5hYmxlTG9naW5Gb3JtKGVuYWJsZSlcblx0e1xuXHRcdC8vIEVuYWJsZS9kaXNhYmxlIGZpZWxkc2V0ICh3b3JrcyBmb3IgYWxsIG5vbi1rZW5kbyBpbnB1dHMpXG5cdFx0JCgnI2xvZ2luRm9ybSBmaWVsZHNldCcpLnByb3AoJ2Rpc2FibGVkJywgIWVuYWJsZSk7XG5cblx0XHQvLyBFbmFibGUvZGlzYWJsZSBudW1lcmljIHRleHRib3hcblx0XHQkKCcjbG9naW5Qb3J0JykuZGF0YSgna2VuZG9OdW1lcmljVGV4dEJveCcpLmVuYWJsZShlbmFibGUpO1xuXHR9XG5cblx0X3RvZ2dsZU5hdihib29sKVxuXHR7XG5cdFx0JCgnLm5hdi1jb250YWluZXIsIC5uYXYtb3ZlcmxheScpLnRvZ2dsZUNsYXNzKCdpcy12aXNpYmxlJywgYm9vbCk7XG5cdFx0JCgnLm1vZHVsZS1jb250YWluZXInKS50b2dnbGVDbGFzcygnc2NhbGUtZG93bicsIGJvb2wpO1xuXHR9XG5cblx0X2dldFVybFBhcmFtZXRlcihwYXJhbSlcblx0e1xuXHRcdGxldCBwYWdlVVJMID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7XG5cdFx0bGV0IHVybFZhcmlhYmxlcyA9IHBhZ2VVUkwuc3BsaXQoJyYnKTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgdXJsVmFyaWFibGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGFyYW1OYW1lID0gdXJsVmFyaWFibGVzW2ldLnNwbGl0KCc9Jyk7XG5cdFx0XHRpZiAocGFyYW1OYW1lWzBdID09IHBhcmFtICYmIHBhcmFtTmFtZVsxXSAhPSAnJylcblx0XHRcdFx0cmV0dXJuIHBhcmFtTmFtZVsxXTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdF9nb1RvTG9naW5WaWV3KClcblx0e1xuXHRcdC8vIENsZWFyIHBhc3N3b3JkIGZpZWxkXG5cdFx0JCgnI2xvZ2luUGFzc3dvcmQnKS52YWwoJycpO1xuXG5cdFx0Ly8gU3dpdGNoIHRvIGxvZ2luIHZpZXdcblx0XHR0aGlzLl9zd2l0Y2hTaGVsbFZpZXcoJ2xvZ2luLXZpZXcnKTtcblxuXHRcdC8vIFVubG9hZCBjdXJyZW50IG1vZHVsZVxuXHRcdHRoaXMuX21vZE1hbmFnZXIudW5sb2FkTW9kdWxlKCk7XG5cblx0XHQvLyBFbmFibGUgbG9naW4gZm9ybVxuXHRcdHRoaXMuX2VuYWJsZUxvZ2luRm9ybSh0cnVlKTtcblxuXHRcdC8vIFJlbW92ZSB1cHRpbWUgdXBkYXRlclxuXHRcdGNsZWFySW50ZXJ2YWwodGhpcy5fdXB0aW1lVGltZXIpO1xuXHR9XG5cblx0X2dvVG9Nb2R1bGVzVmlldyhzZXJ2ZXJWZXJzaW9uLCBzZXJ2ZXJOYW1lKVxuXHR7XG5cdFx0Ly8gSGlkZSBtb2R1bGUgdGl0bGVcblx0XHQkKCcjbW9kdWxlLXRpdGxlJykuaGlkZSgpO1xuXHRcdCQoJyNtb2R1bGUtdGl0bGUtbGFiZWwnKS50ZXh0KCcnKTtcblxuXHRcdC8vIEhpZGUgYWxlcnQgYmFyXG5cdFx0JCgnI2FsZXJ0LWJhcicpLmhpZGUoKTtcblxuXHRcdC8vIFNob3cgc2VydmVyIHZlcnNpb24gaW4gdGhlIGhlYWRlclxuXHRcdCQoJyNzZnMtdmVyc2lvbi12YWx1ZScpLnRleHQoc2VydmVyVmVyc2lvbik7XG5cblx0XHQvLyBTZXQgc2VydmVyIG5hbWUsIElQIGFuZCBwb3J0IGluIG1vZHVsZSdzIHRpdGxlIGJhclxuXHRcdGxldCBob3N0ID0gYCR7dGhpcy5fY29ubk1hbmFnZXIuc21hcnRGb3guY29uZmlnLmhvc3R9OiR7dGhpcy5fY29ubk1hbmFnZXIuc21hcnRGb3guY29uZmlnLnBvcnR9YCArIChzZXJ2ZXJOYW1lICE9ICcnID8gYCBbJHtzZXJ2ZXJOYW1lfV1gIDogJycpO1xuXHRcdCQoJyNob3N0LWxhYmVsJykudGV4dChob3N0KTtcblxuXHRcdC8vIFNhdmUgY3VycmVudCBTRlMgdmVyc2lvblxuXHRcdHRoaXMuX2N1cnJlbnRTZnNWZXJzaW9uID0gc2VydmVyVmVyc2lvbjtcblxuXHRcdC8vIENoZWNrIG5ldyBTRlMgdmVyc2lvbiBhdmFpbGFiaWxpdHlcblx0XHR0aGlzLl9jaGVja0F2YWlsYWJsZVNmc1ZlcnNpb24oKTtcblxuXHRcdC8vIFN0YXJ0IHVwdGltZSB1cGRhdGVyXG5cdFx0dGhpcy5fdXB0aW1lVGltZXIgPSBzZXRJbnRlcnZhbCgkLnByb3h5KHRoaXMuX3VwZGF0ZVVwdGltZSwgdGhpcyksIDEwMDApO1xuXG5cdFx0Ly8gU3dpdGNoIHRvIG1vZHVsZXMgdmlld1xuXHRcdHRoaXMuX3N3aXRjaFNoZWxsVmlldygnbW9kdWxlLXZpZXcnKTtcblx0fVxuXG5cdF9zaG93SGFsdFJlc3RhcnRCdXR0b25zKHNob3cpXG5cdHtcblx0XHRpZiAoc2hvdylcblx0XHR7XG5cdFx0XHQkKCcjcmVzdGFydC1idXR0b24nKS5zaG93KCk7XG5cdFx0XHQkKCcjaGFsdC1idXR0b24nKS5zaG93KCk7XG5cdFx0fVxuXHRcdGVsc2Vcblx0XHR7XG5cdFx0XHQkKCcjcmVzdGFydC1idXR0b24nKS5oaWRlKCk7XG5cdFx0XHQkKCcjaGFsdC1idXR0b24nKS5oaWRlKCk7XG5cdFx0fVxuXHR9XG5cblx0X2NoZWNrQXZhaWxhYmxlU2ZzVmVyc2lvbigpXG5cdHtcblx0XHQvLyBSZW1vdmUgY2xhc3MgdG8gaGlkZSB1cGRhdGUgYnV0dG9uIHN0eWxlIGFuZCBub3RpZmljYXRpb24gaWNvblxuXHRcdCQoJyNzZnMtdmVyc2lvbicpLnJlbW92ZUNsYXNzKCdpcy1hY3RpdmUnKTtcblxuXHRcdC8vIFJlbW92ZSB1cGRhdGUgYnV0dG9uIGNsaWNrIGxpc3RlbmVyc1xuXHRcdCQoJyNzZnMtdmVyc2lvbi1idXR0b24nKS5vZmYoJ2NsaWNrJyk7XG5cblx0XHQvLyBMb2FkIGZpbGUgY29udGFpbmluZyBsYXRlc3QgU0ZTIHZlcnNpb24gaW5mb1xuXHRcdCQuYWpheCh7XG5cdFx0XHR0eXBlOiAnR0VUJyxcblx0XHRcdHVybDogJ2h0dHBzOi8vd3d3LnNtYXJ0Zm94c2VydmVyLmNvbS9kb3dubG9hZHMvc2ZzMngvbGF0ZXN0VmVyc2lvbi50eHQnLFxuICAgICAgICBcdGRhdGFUeXBlOiAndGV4dCcsXG5cdFx0XHRzdWNjZXNzOiAkLnByb3h5KHRoaXMuX29uTGF0ZXN0U2ZzVmVyc2lvbkluZm9Mb2FkZWQsIHRoaXMpLFxuXHRcdFx0ZXJyb3I6ICQucHJveHkoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHRoaXMubG9nTWVzc2FnZSgnVW5hYmxlIHRvIGNoZWNrIG5ldyBzZXJ2ZXIgdmVyc2lvbiBhdmFpbGFiaWxpdHkgb24gU21hcnRGb3hTZXJ2ZXIgd2Vic2l0ZScsICd3YXJuJyk7XG5cdFx0XHR9LCB0aGlzKVxuXHRcdH0pO1xuXHR9XG5cblx0X29uTGF0ZXN0U2ZzVmVyc2lvbkluZm9Mb2FkZWQoZGF0YSlcblx0e1xuXHRcdC8vIFBhcnNlIHJldHVybmVkIGRhdGFcblx0XHRjb25zdCB2ID0gcGFyc2UoZGF0YSk7XG5cblx0XHRpZiAodi52ZXJzaW9uICE9IG51bGwgJiYgdGhpcy5faXNTZnNWZXJzaW9uTmV3ZXIodi52ZXJzaW9uLCB0aGlzLl9jdXJyZW50U2ZzVmVyc2lvbikpXG5cdFx0e1xuXHRcdFx0dGhpcy50ZW1wZmxhZyA9IHRydWU7XG5cdFx0XHR0aGlzLmxvZ01lc3NhZ2UoJ0FuIHVwZGF0ZWQgdmVyc2lvbiBvZiBTbWFydEZveFNlcnZlciAyWCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkJywgJ2luZm8nKTtcblxuXHRcdFx0Ly8gU2V0IHVwZ3JhZGUgZGlhbG9nIGRldGFpbHNcblx0XHRcdHRoaXMuX3Nmc1VwZGF0ZURldGFpbHMgPSB2O1xuXG5cdFx0XHQvLyBBZGQgbGlzdGVuZXIgdG8gc2hvdyBTRlMgdmVyc2lvbiB1cGRhdGUgbW9kYWxcblx0XHRcdCQoJyNzZnMtdmVyc2lvbi1idXR0b24nKS5jbGljayhmdW5jdGlvbigpIHtcblx0XHRcdFx0JCgnI3NlcnZlclVwZGF0ZU1vZGFsJykubW9kYWwoe1xuXHRcdFx0XHRcdGJhY2tkcm9wOiAnc3RhdGljJyxcblx0XHRcdFx0XHRrZXlib2FyZDogZmFsc2UsXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdC8vIFNldCBjbGFzcyB0byBzaG93IHVwZGF0ZSBidXR0b24gc3R5bGUgYW5kIG5vdGlmaWNhdGlvbiBpY29uXG5cdFx0XHQkKCcjc2ZzLXZlcnNpb24nKS5hZGRDbGFzcygnaXMtYWN0aXZlJyk7XG5cblx0XHRcdC8vIFVwZGF0ZSBtb2RhbCBjb250ZW50XG5cdFx0XHRjb25zdCBuZXdWZXIgPSB0aGlzLl9zZnNVcGRhdGVEZXRhaWxzO1xuXHRcdFx0Y29uc3QgY3VyclZlciA9IHRoaXMuX2N1cnJlbnRTZnNWZXJzaW9uO1xuXG5cdFx0XHRsZXQgbW9kYWwgPSAkKCcjc2VydmVyVXBkYXRlTW9kYWwnKTtcblxuXHRcdFx0Ly8gVXBkYXRlIG1vZGFsIGNvbnRlbnRcblx0XHRcdCQoJyNuZXdWZXJzTGInLCBtb2RhbCkudGV4dChuZXdWZXIudmVyc2lvbik7XG5cdFx0XHQkKCcjdXBkVHlwZUxiJywgbW9kYWwpLnRleHQobmV3VmVyLmlzUGF0Y2ggPyAncGF0Y2gnIDogJ2Z1bGwgaW5zdGFsbGVyJyk7XG5cdFx0XHQkKCcjcmVxVmVyc0xiJywgbW9kYWwpLnRleHQobmV3VmVyLmlzUGF0Y2ggPyAnIChyZXF1aXJlcyB2ZXJzaW9uICcgKyBuZXdWZXIucmVxdWlyZXMgKyAnIG9yIGxhdGVyKScgOiAnJyk7XG5cdFx0XHQkKCcjY3VyclZlcnNMYicsIG1vZGFsKS50ZXh0KGN1cnJWZXIpO1xuXHRcdFx0JCgnI3NlcnZlclVwZGF0ZU1vZGFsTGluaycsIG1vZGFsKS5hdHRyKCdocmVmJywgbmV3VmVyLnVybCk7XG5cdFx0fVxuXHR9XG5cblx0X2lzU2ZzVmVyc2lvbk5ld2VyKGF2YWlsYWJsZVZlciwgY3VycmVudFZlcilcblx0e1xuXHRcdGNvbnN0IE1BSiA9IDA7XG5cdFx0Y29uc3QgTUlOID0gMTtcblx0XHRjb25zdCBTVUIgPSAyO1xuXG5cdFx0Y29uc3QgYXZhaWxhYmxlID0gYXZhaWxhYmxlVmVyLnNwbGl0KCcuJyk7XG5cdFx0Y29uc3QgY3VycmVudCA9IGN1cnJlbnRWZXIuc3BsaXQoJy4nKTtcblxuXHRcdC8vIENoZWNrIG1ham9yIHZlcnNpb25cblx0XHRpZiAoYXZhaWxhYmxlW01BSl0gPiBjdXJyZW50W01BSl0pXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRlbHNlIGlmIChhdmFpbGFibGVbTUFKXSA9PSBjdXJyZW50W01BSl0pXG5cdFx0e1xuXHRcdFx0Ly8gQ2hlY2sgbWlub3IgdmVyc2lvblxuXHRcdFx0aWYgKGF2YWlsYWJsZVtNSU5dID4gY3VycmVudFtNSU5dKVxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdGVsc2UgaWYgKGF2YWlsYWJsZVtNSU5dID09IGN1cnJlbnRbTUlOXSlcblx0XHRcdHtcblx0XHRcdFx0Ly8gQ2hlY2sgc3ViIHZlcnNpb25cblx0XHRcdFx0aWYgKGF2YWlsYWJsZVtTVUJdID4gY3VycmVudFtTVUJdKVxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdF91cGRhdGVVcHRpbWUoKVxuXHR7XG5cdFx0bGV0IGRheXMgPSB0aGlzLl91cHRpbWVbMF07XG5cdFx0bGV0IGhvdXJzID0gdGhpcy5fdXB0aW1lWzFdO1xuXHRcdGxldCBtaW51dGVzID0gdGhpcy5fdXB0aW1lWzJdO1xuXHRcdGxldCBzZWNvbmRzID0gdGhpcy5fdXB0aW1lWzNdICsgMTtcblxuXHRcdGlmIChzZWNvbmRzID4gNTkpXG5cdFx0e1xuXHRcdFx0c2Vjb25kcyA9IDA7XG5cdFx0XHRtaW51dGVzICs9IDE7XG5cblx0XHRcdGlmIChtaW51dGVzID4gNTkpXG5cdFx0XHR7XG5cdFx0XHRcdG1pbnV0ZXMgPSAwO1xuXHRcdFx0XHRob3VycyArPSAxO1xuXG5cdFx0XHRcdGlmIChob3VycyA+IDIzKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aG91cnMgPSAwO1xuXHRcdFx0XHRcdGRheXMgKz0gMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuX3VwdGltZVszXSA9IHNlY29uZHM7XG5cdFx0dGhpcy5fdXB0aW1lWzJdID0gbWludXRlcztcblx0XHR0aGlzLl91cHRpbWVbMV0gPSBob3Vycztcblx0XHR0aGlzLl91cHRpbWVbMF0gPSBkYXlzO1xuXG5cdFx0Ly8gU2VuZCB1cGRhdGVkIHVwdGltZSB0byBjdXJyZW50IG1vZHVsZSAoaWYgbG9hZGVkKVxuXHRcdGxldCBtb2R1bGUgPSB0aGlzLl9tb2RNYW5hZ2VyLmN1cnJlbnRNb2R1bGU7XG5cdFx0aWYgKG1vZHVsZSAhPSBudWxsKVxuXHRcdFx0bW9kdWxlLm9uVXB0aW1lVXBkYXRlZCh0aGlzLl91cHRpbWUpO1xuXHR9XG59XG4iLCJjb25zdCBhdENvbW1lbnQgPSAoc3JjLCBvZmZzZXQpID0+IHtcbiAgY29uc3QgY2ggPSBzcmNbb2Zmc2V0XVxuICByZXR1cm4gY2ggPT09ICcjJyB8fCBjaCA9PT0gJyEnXG59XG5cbmNvbnN0IGF0TGluZUVuZCA9IChzcmMsIG9mZnNldCkgPT4ge1xuICBjb25zdCBjaCA9IHNyY1tvZmZzZXRdXG4gIHJldHVybiAhY2ggfHwgY2ggPT09ICdcXHInIHx8IGNoID09PSAnXFxuJ1xufVxuXG5jb25zdCBlbmRPZkluZGVudCA9IChzcmMsIG9mZnNldCkgPT4ge1xuICBsZXQgY2ggPSBzcmNbb2Zmc2V0XVxuICB3aGlsZSAoY2ggPT09ICdcXHQnIHx8IGNoID09PSAnXFxmJyB8fCBjaCA9PT0gJyAnKSB7XG4gICAgb2Zmc2V0ICs9IDFcbiAgICBjaCA9IHNyY1tvZmZzZXRdXG4gIH1cbiAgcmV0dXJuIG9mZnNldFxufVxuXG5jb25zdCBlbmRPZkNvbW1lbnQgPSAoc3JjLCBvZmZzZXQpID0+IHtcbiAgbGV0IGNoID0gc3JjW29mZnNldF1cbiAgd2hpbGUgKGNoICYmIGNoICE9PSAnXFxyJyAmJiBjaCAhPT0gJ1xcbicpIHtcbiAgICBvZmZzZXQgKz0gMVxuICAgIGNoID0gc3JjW29mZnNldF1cbiAgfVxuICByZXR1cm4gb2Zmc2V0XG59XG5cbmNvbnN0IGVuZE9mS2V5ID0gKHNyYywgb2Zmc2V0KSA9PiB7XG4gIGxldCBjaCA9IHNyY1tvZmZzZXRdXG4gIHdoaWxlIChjaCAmJiBjaCAhPT0gJ1xccicgJiYgY2ggIT09ICdcXG4nICYmIGNoICE9PSAnXFx0JyAmJiBjaCAhPT0gJ1xcZicgJiYgY2ggIT09ICcgJyAmJiBjaCAhPT0gJzonICYmIGNoICE9PSAnPScpIHtcbiAgICBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgaWYgKHNyY1tvZmZzZXQgKyAxXSA9PT0gJ1xcbicpIHtcbiAgICAgICAgb2Zmc2V0ID0gZW5kT2ZJbmRlbnQoc3JjLCBvZmZzZXQgKyAyKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2Zmc2V0ICs9IDJcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb2Zmc2V0ICs9IDFcbiAgICB9XG4gICAgY2ggPSBzcmNbb2Zmc2V0XVxuICB9XG4gIHJldHVybiBvZmZzZXRcbn1cblxuY29uc3QgZW5kT2ZTZXBhcmF0b3IgPSAoc3JjLCBvZmZzZXQpID0+IHtcbiAgbGV0IGNoID0gc3JjW29mZnNldF1cbiAgbGV0IGhhc0VxU2lnbiA9IGZhbHNlXG4gIGxvb3A6IHdoaWxlIChjaCA9PT0gJ1xcdCcgfHwgY2ggPT09ICdcXGYnIHx8IGNoID09PSAnICcgfHwgY2ggPT09ICc9JyB8fCBjaCA9PT0gJzonIHx8IGNoID09PSAnXFxcXCcpIHtcbiAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgaWYgKHNyY1tvZmZzZXQgKyAxXSAhPT0gJ1xcbicpIGJyZWFrIGxvb3BcbiAgICAgICAgb2Zmc2V0ID0gZW5kT2ZJbmRlbnQoc3JjLCBvZmZzZXQgKyAyKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnPSc6XG4gICAgICBjYXNlICc6JzpcbiAgICAgICAgaWYgKGhhc0VxU2lnbikgYnJlYWsgbG9vcFxuICAgICAgICBoYXNFcVNpZ24gPSB0cnVlXG4gICAgICAgIC8vIGZhbGx0aHJvdWdoXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBvZmZzZXQgKz0gMVxuICAgIH1cbiAgICBjaCA9IHNyY1tvZmZzZXRdXG4gIH1cbiAgcmV0dXJuIG9mZnNldFxufVxuXG5jb25zdCBlbmRPZlZhbHVlID0gKHNyYywgb2Zmc2V0KSA9PiB7XG4gIGxldCBjaCA9IHNyY1tvZmZzZXRdXG4gIHdoaWxlIChjaCAmJiBjaCAhPT0gJ1xccicgJiYgY2ggIT09ICdcXG4nKSB7XG4gICAgb2Zmc2V0ICs9IGNoID09PSAnXFxcXCcgPyAyIDogMVxuICAgIGNoID0gc3JjW29mZnNldF1cbiAgfVxuICByZXR1cm4gb2Zmc2V0XG59XG5cbmNvbnN0IHVuZXNjYXBlID0gKHN0cikgPT4gc3RyLnJlcGxhY2UoL1xcXFwodVswLTlhLWZBLUZdezR9fFxccj9cXG5bIFxcdFxcZl0qfC4pPy9nLCAobWF0Y2gsIGNvZGUpID0+IHtcbiAgc3dpdGNoIChjb2RlICYmIGNvZGVbMF0pIHtcbiAgICBjYXNlICdmJzogcmV0dXJuICdcXGYnXG4gICAgY2FzZSAnbic6IHJldHVybiAnXFxuJ1xuICAgIGNhc2UgJ3InOiByZXR1cm4gJ1xccidcbiAgICBjYXNlICd0JzogcmV0dXJuICdcXHQnXG4gICAgY2FzZSAndSc6XG4gICAgICBjb25zdCBjID0gcGFyc2VJbnQoY29kZS5zdWJzdHIoMSksIDE2KVxuICAgICAgcmV0dXJuIGlzTmFOKGMpID8gY29kZSA6IFN0cmluZy5mcm9tQ2hhckNvZGUoYylcbiAgICBjYXNlICdcXHInOlxuICAgIGNhc2UgJ1xcbic6XG4gICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICByZXR1cm4gJydcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGNvZGVcbiAgfVxufSlcblxuLyoqXG4gKiBTcGxpdHMgdGhlIGlucHV0IHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIGxvZ2ljYWwgbGluZXNcbiAqXG4gKiBLZXktdmFsdWUgcGFpcnMgYXJlIFtrZXksIHZhbHVlXSBhcnJheXMgd2l0aCBzdHJpbmcgdmFsdWVzLiBFc2NhcGUgc2VxdWVuY2VzXG4gKiBpbiBrZXlzIGFuZCB2YWx1ZXMgYXJlIHBhcnNlZC4gRW1wdHkgbGluZXMgYXJlIGluY2x1ZGVkIGFzIGVtcHR5IHN0cmluZ3MsIGFuZFxuICogY29tbWVudHMgYXMgc3RyaW5ncyB0aGF0IHN0YXJ0IHdpdGggJyMnIG9yICchIGNoYXJhY3RlcnMuIExlYWRpbmcgd2hpdGVzcGFjZVxuICogaXMgbm90IGluY2x1ZGVkLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvZG9jcy9hcGkvamF2YS91dGlsL1Byb3BlcnRpZXMuaHRtbCNsb2FkKGphdmEuaW8uUmVhZGVyKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzcmNcbiAqIEByZXR1cm5zIEFycmF5PHN0cmluZyB8IHN0cmluZ1tdXT5cbiAqL1xuZnVuY3Rpb24gcGFyc2VMaW5lcyAoc3JjKSB7XG4gIGNvbnN0IGxpbmVzID0gW11cbiAgZm9yIChpID0gMDsgaSA8IHNyYy5sZW5ndGg7ICsraSkge1xuICAgIGlmIChzcmNbaV0gPT09ICdcXG4nICYmIHNyY1tpIC0gMV0gPT09ICdcXHInKSBpICs9IDFcbiAgICBpZiAoIXNyY1tpXSkgYnJlYWtcbiAgICBjb25zdCBrZXlTdGFydCA9IGVuZE9mSW5kZW50KHNyYywgaSlcbiAgICBpZiAoYXRMaW5lRW5kKHNyYywga2V5U3RhcnQpKSB7XG4gICAgICBsaW5lcy5wdXNoKCcnKVxuICAgICAgaSA9IGtleVN0YXJ0XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoYXRDb21tZW50KHNyYywga2V5U3RhcnQpKSB7XG4gICAgICBjb25zdCBjb21tZW50RW5kID0gZW5kT2ZDb21tZW50KHNyYywga2V5U3RhcnQpXG4gICAgICBsaW5lcy5wdXNoKHNyYy5zbGljZShrZXlTdGFydCwgY29tbWVudEVuZCkpXG4gICAgICBpID0gY29tbWVudEVuZFxuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3Qga2V5RW5kID0gZW5kT2ZLZXkoc3JjLCBrZXlTdGFydClcbiAgICBjb25zdCBrZXkgPSB1bmVzY2FwZShzcmMuc2xpY2Uoa2V5U3RhcnQsIGtleUVuZCkpXG4gICAgY29uc3QgdmFsdWVTdGFydCA9IGVuZE9mU2VwYXJhdG9yKHNyYywga2V5RW5kKVxuICAgIGlmIChhdExpbmVFbmQoc3JjLCB2YWx1ZVN0YXJ0KSkge1xuICAgICAgbGluZXMucHVzaChba2V5LCAnJ10pXG4gICAgICBpID0gdmFsdWVTdGFydFxuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgdmFsdWVFbmQgPSBlbmRPZlZhbHVlKHNyYywgdmFsdWVTdGFydClcbiAgICBjb25zdCB2YWx1ZSA9IHVuZXNjYXBlKHNyYy5zbGljZSh2YWx1ZVN0YXJ0LCB2YWx1ZUVuZCkpXG4gICAgbGluZXMucHVzaChba2V5LCB2YWx1ZV0pXG4gICAgaSA9IHZhbHVlRW5kXG4gIH1cbiAgcmV0dXJuIGxpbmVzXG59XG5cbi8qKlxuICogUGFyc2VzIGFuIGlucHV0IHN0cmluZyByZWFkIGZyb20gYSAucHJvcGVydGllcyBmaWxlIGludG8gYSBKYXZhU2NyaXB0IE9iamVjdFxuICpcbiAqIElmIHRoZSBzZWNvbmQgYHBhdGhgIHBhcmFtZXRlciBpcyB0cnVlLCBkb3RzICcuJyBpbiBrZXlzIHdpbGwgcmVzdWx0IGluIGFcbiAqIG11bHRpLWxldmVsIG9iamVjdCAodXNlIGEgc3RyaW5nIHZhbHVlIHRvIGN1c3RvbWlzZSkuIElmIGEgcGFyZW50IGxldmVsIGlzXG4gKiBkaXJlY3RseSBhc3NpZ25lZCBhIHZhbHVlIHdoaWxlIGl0IGFsc28gaGFzIGEgY2hpbGQgd2l0aCBhbiBhc3NpZ25lZCB2YWx1ZSxcbiAqIHRoZSBwYXJlbnQgdmFsdWUgd2lsbCBiZSBhc3NpZ25lZCB0byBpdHMgZW1wdHkgc3RyaW5nICcnIGtleS4gUmVwZWF0ZWQga2V5c1xuICogd2lsbCB0YWtlIHRoZSBsYXN0IGFzc2lnbmVkIHZhbHVlLiBLZXkgb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQsIGJ1dCBpcyBsaWtlbHlcbiAqIHRvIG1hdGNoIHRoZSBvcmRlciBvZiB0aGUgaW5wdXQgbGluZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNyY1xuICogQHBhcmFtIHtib29sZWFuIHwgc3RyaW5nfSBbcGF0aD1mYWxzZV1cbiAqL1xuZnVuY3Rpb24gcGFyc2UgKHNyYywgcGF0aCkge1xuICBjb25zdCBwYXRoU2VwID0gdHlwZW9mIHBhdGggPT09ICdzdHJpbmcnID8gcGF0aCA6ICcuJ1xuICByZXR1cm4gcGFyc2VMaW5lcyhzcmMpLnJlZHVjZSgocmVzLCBsaW5lKSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobGluZSkpIHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGxpbmVcbiAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgIGNvbnN0IGtleVBhdGggPSBrZXkuc3BsaXQocGF0aFNlcClcbiAgICAgICAgbGV0IHBhcmVudCA9IHJlc1xuICAgICAgICB3aGlsZSAoa2V5UGF0aC5sZW5ndGggPj0gMikge1xuICAgICAgICAgIGNvbnN0IHAgPSBrZXlQYXRoLnNoaWZ0KClcbiAgICAgICAgICBpZiAoIXBhcmVudFtwXSkge1xuICAgICAgICAgICAgcGFyZW50W3BdID0ge31cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJlbnRbcF0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBwYXJlbnRbcF0gPSB7ICcnOiBwYXJlbnRbcF0gfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJlbnQgPSBwYXJlbnRbcF1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZWFmID0ga2V5UGF0aFswXVxuICAgICAgICBpZiAodHlwZW9mIHBhcmVudFtsZWFmXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBwYXJlbnRbbGVhZl1bJyddID0gdmFsdWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJlbnRbbGVhZl0gPSB2YWx1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNba2V5XSA9IHZhbHVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfSwge30pXG59XG5cbm1vZHVsZS5leHBvcnRzID0geyBwYXJzZSwgcGFyc2VMaW5lcyB9XG4iLCJleHBvcnQgY2xhc3MgRXZlbnREaXNwYXRjaGVyIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5fbGlzdGVuZXJzQnlFdmVudCA9IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciBmdW5jdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSBub3RpZmljYXRpb24gb2YgYW4gZXZlbnQuXG5cdCAqXG5cdCAqIDxwPklmIHlvdSBubyBsb25nZXIgbmVlZCBhbiBldmVudCBsaXN0ZW5lciwgcmVtb3ZlIGl0IGJ5IGNhbGxpbmcgdGhlIDxlbT5yZW1vdmVFdmVudExpc3RlbmVyKCk8L2VtPiBtZXRob2QsIG9yIG1lbW9yeSBpc3N1ZXMgY291bGQgYXJpc2UuXG5cdCAqIEluIGZhY3QgZXZlbnQgbGlzdGVuZXJzIGFyZSBub3QgYXV0b21hdGljYWxseSByZW1vdmVkIGZyb20gbWVtb3J5LjwvcD5cblx0ICpcblx0ICogQHBhcmFtXHR7c3RyaW5nfSBldnRUeXBlXHRUaGUgdHlwZSBvZiBldmVudCB0byBsaXN0ZW4gdG8uXG5cdCAqIEBwYXJhbVx0e2Z1bmN0aW9ufSBjYWxsYmFja1x0VGhlIGxpc3RlbmVyIGZ1bmN0aW9uIHRoYXQgcHJvY2Vzc2VzIHRoZSBldmVudC4gVGhpcyBmdW5jdGlvbiBzaG91bGQgYWNjZXB0IGFuIG9iamVjdCBhcyBpdHMgb25seSBwYXJhbWV0ZXIsIHdoaWNoIGluIHR1cm4gY29udGFpbnMgdGhlIGV2ZW50IHBhcmFtZXRlcnMuXG5cdCAqIEBwYXJhbVx0e29iamVjdH0gc2NvcGVcdFx0VGhlIG9iamVjdCB0aGF0IGFjdHMgYXMgYSBjb250ZXh0IGZvciB0aGUgZXZlbnQgbGlzdGVuZXI6IGl0IGlzIHRoZSBvYmplY3QgdGhhdCBhY3RzIGFzIGEgXCJwYXJlbnQgc2NvcGVcIiBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLCB0aHVzIHByb3ZpZGluZyBjb250ZXh0IChpLmUuIGFjY2VzcyB0byB2YXJpYWJsZXMgYW5kIG90aGVyIG1laHRvZHMpIHRvIHRoZSBmdW5jdGlvbiBpdHNlbGYuXG5cdCAqL1xuXHRhZGRFdmVudExpc3RlbmVyKGV2dFR5cGUsIGNhbGxiYWNrLCBzY29wZSlcblx0e1xuXHRcdGlmICghdGhpcy5fbGlzdGVuZXJzQnlFdmVudFtldnRUeXBlXSlcblx0XHRcdHRoaXMuX2xpc3RlbmVyc0J5RXZlbnRbZXZ0VHlwZV0gPSBbXTtcblxuXHRcdHRoaXMuX2xpc3RlbmVyc0J5RXZlbnRbZXZ0VHlwZV0ucHVzaCh7Y2FsbGJhY2s6Y2FsbGJhY2ssIHNjb3BlOnNjb3BlfSk7XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyBhbiBldmVudCBsaXN0ZW5lci5cblx0ICpcblx0ICogQHBhcmFtXHR7c3RyaW5nfSBldnRUeXBlXHRUaGUgdHlwZSBvZiBldmVudCB0byByZW1vdmUuXG5cdCAqIEBwYXJhbVx0e2Z1bmN0aW9ufSBjYWxsYmFja1x0VGhlIGxpc3RlbmVyIGZ1bmN0aW9uIHRvIGJlIHJlbW92ZWQuXG5cdCAqL1xuXHRyZW1vdmVFdmVudExpc3RlbmVyKGV2dFR5cGUsIGNhbGxiYWNrKVxuXHR7XG5cdFx0Y29uc3QgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzQnlFdmVudFtldnRUeXBlXTtcblxuXHRcdGlmIChsaXN0ZW5lcnMpXG5cdFx0e1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspXG5cdFx0XHR7XG5cdFx0XHRcdGlmIChsaXN0ZW5lcnNbaV0uY2FsbGJhY2sgPT09IGNhbGxiYWNrKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGlzdGVuZXJzLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGRpc3BhdGNoRXZlbnQoZXZ0VHlwZSwgZXZ0T2JqKVxuXHR7XG5cdFx0Y29uc3QgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzQnlFdmVudFtldnRUeXBlXTtcblxuXHRcdGlmIChsaXN0ZW5lcnMpXG5cdFx0e1xuXHRcdFx0Zm9yIChsZXQgbGlzdGVuZXIgb2YgbGlzdGVuZXJzKVxuXHRcdFx0XHRsaXN0ZW5lci5jYWxsYmFjay5jYWxsKGxpc3RlbmVyLnNjb3BlLCBldnRPYmopO1xuXHRcdH1cblx0fVxufVxuIiwiZXhwb3J0IGNvbnN0IENvbm5lY3Rpb25NYW5hZ2VyRXZlbnQgPSBPYmplY3QuZnJlZXplKHtcblx0Q09OTkVDVElPTjogJ2Nvbm5lY3Rpb24nLFxuXHRMT0dJTjogJ2xvZ2luJyxcblx0RElTQ09OTkVDVElPTjogJ2Rpc2Nvbm5lY3Rpb24nLFxuXHRFUlJPUjogJ2Vycm9yJyxcblx0U0VSVkVSX0VSUk9SOiAnc2VydmVyRXJyb3InLFxufSk7XG5cbmV4cG9ydCBjb25zdCBNb2R1bGVNYW5hZ2VyRXZlbnQgPSBPYmplY3QuZnJlZXplKHtcblx0TU9EVUxFX0xPQURFRDogJ21vZHVsZS1sb2FkZWQnLFxuXHRNT0RVTEVfTE9BRF9FUlJPUjogJ21vZHVsZS1sb2FkLWVycm9yJyxcbn0pO1xuIiwiZXhwb3J0IGNvbnN0IHRvS2ViYWJDYXNlID0gKHN0cikgPT5cbiAgc3RyICYmXG4gIHN0clxuICAgIC5tYXRjaCgvW0EtWl17Mix9KD89W0EtWl1bYS16XStbMC05XSp8XFxiKXxbQS1aXT9bYS16XStbMC05XSp8W0EtWl18WzAtOV0rL2cpXG4gICAgLm1hcCh4ID0+IHgudG9Mb3dlckNhc2UoKSlcbiAgICAuam9pbignLScpO1xuXG5leHBvcnQgZnVuY3Rpb24gYnl0ZXNUb1NpemUoYnl0ZXMsIGRlY2ltYWxzID0gMSwgemVyb1VuaXQgPSAnJywgc3VmZml4ID0gJycpIHtcblx0aWYgKGJ5dGVzID09PSAwKVxuXHRcdHJldHVybiAnMCAnICsgemVyb1VuaXQgKyAoemVyb1VuaXQgIT0gJycgPyBzdWZmaXggOiAnJyk7XG5cblx0aWYgKGJ5dGVzIDwgMSkgLy8gQ2FuIGhhcHBlbiBpbiBjaGFydCBheGlzIGxhYmVscyFcblx0IFx0cmV0dXJuIGAke2J5dGVzfSBCeXRlcyR7c3VmZml4fWA7XG5cbiAgICBjb25zdCBrID0gMTAwMDtcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDwgMCA/IDAgOiBkZWNpbWFscztcbiAgICBjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcblxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcblxuICAgIHJldHVybiBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSkgKyAnICcgKyBzaXplc1tpXSArIHN1ZmZpeDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtCeXRlc1RvU2l6ZShrQnl0ZXMsIGRlY2ltYWxzID0gMSwgemVyb1VuaXQgPSAnJywgc3VmZml4ID0gJycpIHtcblx0cmV0dXJuIGJ5dGVzVG9TaXplKGtCeXRlcyAqIDEwMDAsIGRlY2ltYWxzLCB6ZXJvVW5pdCwgc3VmZml4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemVGaXJzdChzdHJpbmcpIHtcblx0cmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckNsYXNzTmFtZShlbGVtZW50LCBpbmRleCwgYXJyYXkpXG57XG5cdGlmIChlbGVtZW50LmVuZHNXaXRoKCcucHknKSlcblx0XHRyZXR1cm4gKGVsZW1lbnQuZW5kc1dpdGgoJ0V4dGVuc2lvbi5weScpKTtcblx0ZWxzZSBpZiAoZWxlbWVudC5lbmRzV2l0aCgnLmpzJykpXG5cdFx0cmV0dXJuIChlbGVtZW50LmVuZHNXaXRoKCdFeHRlbnNpb24uanMnKSk7XG5cdGVsc2Vcblx0XHRyZXR1cm4gKGVsZW1lbnQuZW5kc1dpdGgoJ0V4dGVuc2lvbicpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFscyh2YWx1ZSwgZGVjaW1hbHMpIHtcbiAgcmV0dXJuIE51bWJlcihNYXRoLnJvdW5kKHZhbHVlICsgJ2UnICsgZGVjaW1hbHMpICsgJ2UtJyArIGRlY2ltYWxzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNjYWxlQnl0ZXMoYnl0ZXMsIGRlY2ltYWxzID0gMSkge1xuXHRsZXQgb2JqID0ge307XG5cblx0Y29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG5cblx0aWYgKGJ5dGVzID4gMClcblx0e1xuXHRcdGNvbnN0IGsgPSAxMDAwO1xuXHRcdGNvbnN0IGRtID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuXHRcdGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcblxuXHRcdG9iai52YWx1ZSA9IHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKTtcblx0XHRvYmoudW5pdCA9IHNpemVzW2ldO1xuXHR9XG5cdGVsc2Vcblx0e1xuXHRcdG9iai52YWx1ZSA9IDA7XG5cdFx0b2JqLnVuaXQgPSBzaXplc1swXTtcblx0fVxuXG5cdHJldHVybiBvYmo7XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQ3JNQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7OztBQ1JBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUN2RUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FDckJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FDL0xBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RPQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUN2R0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUM3dkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUN4TEE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQ3hEQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUNYQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ==