ccxt-look 1.81.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/.cache/eslintcache +1 -0
  2. package/.dockerignore +6 -0
  3. package/.eslintignore +1 -0
  4. package/.gitattributes +5 -0
  5. package/.readthedocs.yaml +16 -0
  6. package/CONTRIBUTING.md +1049 -0
  7. package/LICENSE.txt +21 -0
  8. package/README.md +537 -0
  9. package/SECURITY.md +5 -0
  10. package/build/cleanup-old-tags.js +94 -0
  11. package/build/countries.js +256 -0
  12. package/build/export-exchanges.js +520 -0
  13. package/build/fs.js +51 -0
  14. package/build/transpile.js +1772 -0
  15. package/build/vss.js +78 -0
  16. package/ccxt.browser.js +7 -0
  17. package/ccxt.d.ts +692 -0
  18. package/ccxt.js +171 -0
  19. package/cleanup.sh +2 -0
  20. package/composer-install.sh +20 -0
  21. package/dist/ccxt.browser.js +208383 -0
  22. package/gource.sh +3 -0
  23. package/index.html +7 -0
  24. package/js/.eslintrc +87 -0
  25. package/js/aax.js +2686 -0
  26. package/js/ascendex.js +2584 -0
  27. package/js/base/.eslintrc.js +43 -0
  28. package/js/base/Exchange.js +2371 -0
  29. package/js/base/Precise.js +283 -0
  30. package/js/base/errorHierarchy.js +47 -0
  31. package/js/base/errors.js +55 -0
  32. package/js/base/functions/crypto.js +158 -0
  33. package/js/base/functions/encode.js +118 -0
  34. package/js/base/functions/generic.js +270 -0
  35. package/js/base/functions/misc.js +138 -0
  36. package/js/base/functions/number.js +329 -0
  37. package/js/base/functions/platform.js +38 -0
  38. package/js/base/functions/string.js +21 -0
  39. package/js/base/functions/throttle.js +79 -0
  40. package/js/base/functions/time.js +210 -0
  41. package/js/base/functions/type.js +66 -0
  42. package/js/base/functions.js +28 -0
  43. package/js/bequant.js +32 -0
  44. package/js/bibox.js +1407 -0
  45. package/js/bigone.js +1366 -0
  46. package/js/binance.js +5652 -0
  47. package/js/binancecoinm.js +46 -0
  48. package/js/binanceus.js +46 -0
  49. package/js/binanceusdm.js +49 -0
  50. package/js/bit2c.js +535 -0
  51. package/js/bitbank.js +842 -0
  52. package/js/bitbay.js +16 -0
  53. package/js/bitbns.js +1073 -0
  54. package/js/bitcoincom.js +15 -0
  55. package/js/bitfinex.js +1433 -0
  56. package/js/bitfinex2.js +2025 -0
  57. package/js/bitflyer.js +840 -0
  58. package/js/bitforex.js +614 -0
  59. package/js/bitget.js +2397 -0
  60. package/js/bithumb.js +980 -0
  61. package/js/bitmart.js +2516 -0
  62. package/js/bitmex.js +1809 -0
  63. package/js/bitopro.js +1443 -0
  64. package/js/bitpanda.js +1782 -0
  65. package/js/bitrue.js +1747 -0
  66. package/js/bitso.js +1062 -0
  67. package/js/bitstamp.js +1757 -0
  68. package/js/bitstamp1.js +343 -0
  69. package/js/bittrex.js +1876 -0
  70. package/js/bitvavo.js +1579 -0
  71. package/js/bkex.js +1233 -0
  72. package/js/bl3p.js +346 -0
  73. package/js/blockchaincom.js +969 -0
  74. package/js/btcalpha.js +680 -0
  75. package/js/btcbox.js +477 -0
  76. package/js/btcmarkets.js +1022 -0
  77. package/js/btctradeua.js +466 -0
  78. package/js/btcturk.js +734 -0
  79. package/js/buda.js +946 -0
  80. package/js/bw.js +1265 -0
  81. package/js/bybit.js +3372 -0
  82. package/js/bytetrade.js +1336 -0
  83. package/js/cdax.js +1646 -0
  84. package/js/cex.js +1410 -0
  85. package/js/coinbase.js +1342 -0
  86. package/js/coinbaseprime.js +31 -0
  87. package/js/coinbasepro.js +1466 -0
  88. package/js/coincheck.js +755 -0
  89. package/js/coinex.js +3400 -0
  90. package/js/coinfalcon.js +880 -0
  91. package/js/coinmate.js +794 -0
  92. package/js/coinone.js +816 -0
  93. package/js/coinspot.js +345 -0
  94. package/js/crex24.js +1636 -0
  95. package/js/cryptocom.js +1832 -0
  96. package/js/currencycom.js +1748 -0
  97. package/js/delta.js +1547 -0
  98. package/js/deribit.js +2148 -0
  99. package/js/digifinex.js +1585 -0
  100. package/js/eqonex.js +1660 -0
  101. package/js/exmo.js +1670 -0
  102. package/js/fairdesk.js +1231 -0
  103. package/js/flowbtc.js +35 -0
  104. package/js/fmfwio.js +34 -0
  105. package/js/ftx.js +2751 -0
  106. package/js/ftxus.js +38 -0
  107. package/js/gateio.js +4174 -0
  108. package/js/gemini.js +1397 -0
  109. package/js/hitbtc.js +1343 -0
  110. package/js/hitbtc3.js +2329 -0
  111. package/js/hollaex.js +1486 -0
  112. package/js/huobi.js +5706 -0
  113. package/js/huobijp.js +1710 -0
  114. package/js/huobipro.js +18 -0
  115. package/js/idex.js +1439 -0
  116. package/js/independentreserve.js +649 -0
  117. package/js/indodax.js +742 -0
  118. package/js/itbit.js +722 -0
  119. package/js/kraken.js +2179 -0
  120. package/js/kucoin.js +2571 -0
  121. package/js/kucoinfutures.js +1771 -0
  122. package/js/kuna.js +809 -0
  123. package/js/latoken.js +1445 -0
  124. package/js/lbank.js +760 -0
  125. package/js/liquid.js +1432 -0
  126. package/js/luno.js +873 -0
  127. package/js/lykke.js +1147 -0
  128. package/js/mercado.js +771 -0
  129. package/js/mexc.js +3151 -0
  130. package/js/ndax.js +2233 -0
  131. package/js/novadax.js +1318 -0
  132. package/js/oceanex.js +816 -0
  133. package/js/okcoin.js +3841 -0
  134. package/js/okex.js +16 -0
  135. package/js/okex5.js +16 -0
  136. package/js/okx.js +4795 -0
  137. package/js/paymium.js +498 -0
  138. package/js/phemex.js +2957 -0
  139. package/js/poloniex.js +1674 -0
  140. package/js/probit.js +1346 -0
  141. package/js/qtrade.js +1588 -0
  142. package/js/ripio.js +1061 -0
  143. package/js/static_dependencies/BN/bn.js +3526 -0
  144. package/js/static_dependencies/README.md +1 -0
  145. package/js/static_dependencies/crypto-js/crypto-js.js +5988 -0
  146. package/js/static_dependencies/elliptic/lib/elliptic/curve/base.js +375 -0
  147. package/js/static_dependencies/elliptic/lib/elliptic/curve/edwards.js +433 -0
  148. package/js/static_dependencies/elliptic/lib/elliptic/curve/index.js +8 -0
  149. package/js/static_dependencies/elliptic/lib/elliptic/curve/mont.js +180 -0
  150. package/js/static_dependencies/elliptic/lib/elliptic/curve/short.js +938 -0
  151. package/js/static_dependencies/elliptic/lib/elliptic/curves.js +204 -0
  152. package/js/static_dependencies/elliptic/lib/elliptic/ec/index.js +240 -0
  153. package/js/static_dependencies/elliptic/lib/elliptic/ec/key.js +119 -0
  154. package/js/static_dependencies/elliptic/lib/elliptic/ec/signature.js +24 -0
  155. package/js/static_dependencies/elliptic/lib/elliptic/eddsa/index.js +145 -0
  156. package/js/static_dependencies/elliptic/lib/elliptic/eddsa/key.js +100 -0
  157. package/js/static_dependencies/elliptic/lib/elliptic/eddsa/signature.js +65 -0
  158. package/js/static_dependencies/elliptic/lib/elliptic/precomputed/secp256k1.js +780 -0
  159. package/js/static_dependencies/elliptic/lib/elliptic/utils.js +214 -0
  160. package/js/static_dependencies/elliptic/lib/elliptic.js +22 -0
  161. package/js/static_dependencies/elliptic/lib/hmac-drbg/hmac-drbg.js +114 -0
  162. package/js/static_dependencies/fetch-ponyfill/fetch-node.js +39 -0
  163. package/js/static_dependencies/node-fetch/index.js +1564 -0
  164. package/js/static_dependencies/node-rsa/NodeRSA.js +223 -0
  165. package/js/static_dependencies/node-rsa/asn1/ber/errors.js +13 -0
  166. package/js/static_dependencies/node-rsa/asn1/ber/index.js +21 -0
  167. package/js/static_dependencies/node-rsa/asn1/ber/reader.js +262 -0
  168. package/js/static_dependencies/node-rsa/asn1/ber/types.js +36 -0
  169. package/js/static_dependencies/node-rsa/asn1/index.js +17 -0
  170. package/js/static_dependencies/node-rsa/encryptEngines/js.js +34 -0
  171. package/js/static_dependencies/node-rsa/formats/components.js +71 -0
  172. package/js/static_dependencies/node-rsa/formats/formats.js +31 -0
  173. package/js/static_dependencies/node-rsa/formats/pkcs1.js +148 -0
  174. package/js/static_dependencies/node-rsa/formats/pkcs8.js +187 -0
  175. package/js/static_dependencies/node-rsa/libs/jsbn.js +1252 -0
  176. package/js/static_dependencies/node-rsa/libs/rsa.js +147 -0
  177. package/js/static_dependencies/node-rsa/schemes/pkcs1.js +176 -0
  178. package/js/static_dependencies/node-rsa/schemes/schemes.js +21 -0
  179. package/js/static_dependencies/node-rsa/utils.js +98 -0
  180. package/js/static_dependencies/qs/formats.js +18 -0
  181. package/js/static_dependencies/qs/index.js +11 -0
  182. package/js/static_dependencies/qs/parse.js +242 -0
  183. package/js/static_dependencies/qs/stringify.js +269 -0
  184. package/js/static_dependencies/qs/utils.js +230 -0
  185. package/js/stex.js +1925 -0
  186. package/js/test/.eslintrc.js +42 -0
  187. package/js/test/Exchange/test.balance.js +61 -0
  188. package/js/test/Exchange/test.borrowRate.js +32 -0
  189. package/js/test/Exchange/test.currency.js +52 -0
  190. package/js/test/Exchange/test.fetchBalance.js +23 -0
  191. package/js/test/Exchange/test.fetchBorrowInterest.js +59 -0
  192. package/js/test/Exchange/test.fetchBorrowRate.js +32 -0
  193. package/js/test/Exchange/test.fetchBorrowRates.js +28 -0
  194. package/js/test/Exchange/test.fetchClosedOrders.js +32 -0
  195. package/js/test/Exchange/test.fetchCurrencies.js +35 -0
  196. package/js/test/Exchange/test.fetchDeposits.js +31 -0
  197. package/js/test/Exchange/test.fetchFundingFees.js +19 -0
  198. package/js/test/Exchange/test.fetchFundingRateHistory.js +40 -0
  199. package/js/test/Exchange/test.fetchL2OrderBook.js +23 -0
  200. package/js/test/Exchange/test.fetchLedger.js +42 -0
  201. package/js/test/Exchange/test.fetchLeverageTiers.js +33 -0
  202. package/js/test/Exchange/test.fetchMarketLeverageTiers.js +22 -0
  203. package/js/test/Exchange/test.fetchMarkets.js +33 -0
  204. package/js/test/Exchange/test.fetchMyTrades.js +42 -0
  205. package/js/test/Exchange/test.fetchOHLCV.js +46 -0
  206. package/js/test/Exchange/test.fetchOpenOrders.js +36 -0
  207. package/js/test/Exchange/test.fetchOrderBook.js +25 -0
  208. package/js/test/Exchange/test.fetchOrderBooks.js +35 -0
  209. package/js/test/Exchange/test.fetchOrders.js +41 -0
  210. package/js/test/Exchange/test.fetchPositions.js +47 -0
  211. package/js/test/Exchange/test.fetchStatus.js +35 -0
  212. package/js/test/Exchange/test.fetchTicker.js +38 -0
  213. package/js/test/Exchange/test.fetchTickers.js +49 -0
  214. package/js/test/Exchange/test.fetchTrades.js +39 -0
  215. package/js/test/Exchange/test.fetchTradingFee.js +18 -0
  216. package/js/test/Exchange/test.fetchTradingFees.js +22 -0
  217. package/js/test/Exchange/test.fetchTransactions.js +31 -0
  218. package/js/test/Exchange/test.fetchWithdrawals.js +31 -0
  219. package/js/test/Exchange/test.ledgerItem.js +46 -0
  220. package/js/test/Exchange/test.leverageTier.js +33 -0
  221. package/js/test/Exchange/test.loadMarkets.js +35 -0
  222. package/js/test/Exchange/test.market.js +129 -0
  223. package/js/test/Exchange/test.ohlcv.js +33 -0
  224. package/js/test/Exchange/test.order.js +62 -0
  225. package/js/test/Exchange/test.orderbook.js +61 -0
  226. package/js/test/Exchange/test.position.js +21 -0
  227. package/js/test/Exchange/test.throttle.js +94 -0
  228. package/js/test/Exchange/test.ticker.js +95 -0
  229. package/js/test/Exchange/test.trade.js +68 -0
  230. package/js/test/Exchange/test.tradingFee.js +34 -0
  231. package/js/test/Exchange/test.transaction.js +35 -0
  232. package/js/test/base/.eslintrc +38 -0
  233. package/js/test/base/functions/test.crypto.js +110 -0
  234. package/js/test/base/functions/test.datetime.js +62 -0
  235. package/js/test/base/functions/test.generic.js +152 -0
  236. package/js/test/base/functions/test.number.js +362 -0
  237. package/js/test/base/functions/test.time.js +56 -0
  238. package/js/test/base/functions/test.type.js +53 -0
  239. package/js/test/base/test.base.js +193 -0
  240. package/js/test/errors/test.InsufficientFunds.js +86 -0
  241. package/js/test/errors/test.InvalidNonce.js +64 -0
  242. package/js/test/errors/test.InvalidOrder.js +35 -0
  243. package/js/test/errors/test.OrderNotFound.js +39 -0
  244. package/js/test/test.js +426 -0
  245. package/js/test/test.timeout_hang.js +12 -0
  246. package/js/therock.js +1431 -0
  247. package/js/tidebit.js +632 -0
  248. package/js/tidex.js +939 -0
  249. package/js/timex.js +1283 -0
  250. package/js/upbit.js +1622 -0
  251. package/js/vcc.js +1353 -0
  252. package/js/wavesexchange.js +2185 -0
  253. package/js/wazirx.js +732 -0
  254. package/js/whitebit.js +1352 -0
  255. package/js/woo.js +1577 -0
  256. package/js/xena.js +1948 -0
  257. package/js/yobit.js +1129 -0
  258. package/js/zaif.js +647 -0
  259. package/js/zb.js +4088 -0
  260. package/js/zipmex.js +40 -0
  261. package/js/zonda.js +1497 -0
  262. package/multilang.sh +159 -0
  263. package/package.json +591 -0
  264. package/postinstall.js +103 -0
package/SECURITY.md ADDED
@@ -0,0 +1,5 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ Please report security issues to info@ccxt.trade
@@ -0,0 +1,94 @@
1
+ "use strict"
2
+
3
+ const { execSync } = require ('child_process')
4
+ const log = require ('ololog').noLocate
5
+ const { groupBy } = require ('../ccxt.js')
6
+ const { values } = Object
7
+ const assert = require ('assert')
8
+
9
+ function cleanupOldTags () {
10
+
11
+ const tags = execSync ('git tag').toString ().split ('\n').filter (s => s).map (t => {
12
+
13
+ const [major, minor, patch] = t.replace ('v', '').split ('.').map (Number)
14
+
15
+ assert (major < 100)
16
+ assert (minor < 100)
17
+
18
+ return {
19
+ key: (major * 100) + minor,
20
+ tag: t,
21
+ major,
22
+ minor,
23
+ patch,
24
+ }
25
+ })
26
+
27
+ const tagsByMajorMinor = values (groupBy (tags, 'key')).sort ((a, b) => a[0].key - b[0].key)
28
+
29
+ // Preserve all tags for first 5 minor versions
30
+
31
+ for (let i = 0; i < 5; i++) {
32
+
33
+ const tags = tagsByMajorMinor.pop ()
34
+
35
+ if (tags) {
36
+ log.green.bright ('Preserving', tags[0].tag, '...', tags[tags.length - 1].tag)
37
+ }
38
+ }
39
+
40
+ // For older versions, leave only "round" numbered versions (1/10th)
41
+
42
+ let tagsToDelete = []
43
+
44
+ for (const tags of tagsByMajorMinor) {
45
+
46
+ for (const { tag, patch } of tags) {
47
+
48
+ if (patch === 1) {
49
+ log.green ('Preserving', tag)
50
+
51
+ } else {
52
+ tagsToDelete.push (tag)
53
+ }
54
+ }
55
+ }
56
+
57
+ log.bright.red ('Deleting', tagsToDelete.length, 'tags...')
58
+
59
+ if (!process.argv.includes ('--paper')) {
60
+
61
+ /* If it happens on a CI server, we don't want it to fail the build because of a super
62
+ long execution time (one tag deletion takes ~5 sec...), hence that limit here */
63
+
64
+ if (process.argv.includes ('--limit')) {
65
+ tagsToDelete = tagsToDelete.slice (-500)
66
+ }
67
+
68
+ for (const tag of tagsToDelete) {
69
+
70
+ log.dim ('Deleting', tag)
71
+ execSync (`git tag -d ${tag} && git push origin :refs/tags/${tag}`)
72
+ }
73
+ }
74
+ }
75
+
76
+ // ============================================================================
77
+ // main entry point
78
+
79
+ if (require.main === module) {
80
+
81
+ // if called directly like `node module`
82
+
83
+ cleanupOldTags ()
84
+
85
+ } else {
86
+
87
+ // do nothing if required as a module
88
+ }
89
+
90
+ // ============================================================================
91
+
92
+ module.exports = {
93
+ cleanupOldTags,
94
+ }
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+
5
+ AF: 'Afghanistan',
6
+ AX: 'Åland Islands',
7
+ AL: 'Albania',
8
+ DZ: 'Algeria',
9
+ AS: 'American Samoa',
10
+ AD: 'Andorra',
11
+ AO: 'Angola',
12
+ AI: 'Anguilla',
13
+ AQ: 'Antarctica',
14
+ AG: 'Antigua and Barbuda',
15
+ AR: 'Argentina',
16
+ AM: 'Armenia',
17
+ AW: 'Aruba',
18
+ AU: 'Australia',
19
+ AT: 'Austria',
20
+ AZ: 'Azerbaijan',
21
+ BS: 'Bahamas',
22
+ BH: 'Bahrain',
23
+ BD: 'Bangladesh',
24
+ BB: 'Barbados',
25
+ BY: 'Belarus',
26
+ BE: 'Belgium',
27
+ BZ: 'Belize',
28
+ BJ: 'Benin',
29
+ BM: 'Bermuda',
30
+ BT: 'Bhutan',
31
+ BO: 'Bolivia',
32
+ BQ: 'Bonaire, Sint Eustatius and Saba',
33
+ BA: 'Bosnia and Herzegovina',
34
+ BW: 'Botswana',
35
+ BV: 'Bouvet Island',
36
+ BR: 'Brazil',
37
+ IO: 'British Indian Ocean Territory',
38
+ BN: 'Brunei Darussalam',
39
+ BG: 'Bulgaria',
40
+ BF: 'Burkina Faso',
41
+ BI: 'Burundi',
42
+ KH: 'Cambodia',
43
+ CM: 'Cameroon',
44
+ CA: 'Canada',
45
+ CV: 'Cabo Verde',
46
+ KY: 'Cayman Islands',
47
+ CF: 'Central African Republic',
48
+ TD: 'Chad',
49
+ CL: 'Chile',
50
+ CN: 'China',
51
+ CX: 'Christmas Island',
52
+ CC: 'Cocos (Keeling) Islands',
53
+ CO: 'Colombia',
54
+ KM: 'Comoros',
55
+ CG: 'Congo',
56
+ CD: 'Congo',
57
+ CK: 'Cook Islands',
58
+ CR: 'Costa Rica',
59
+ CI: 'Côte d\'Ivoire',
60
+ HR: 'Croatia',
61
+ CU: 'Cuba',
62
+ CW: 'Curaçao',
63
+ CY: 'Cyprus',
64
+ CZ: 'Czech Republic',
65
+ DK: 'Denmark',
66
+ DJ: 'Djibouti',
67
+ DM: 'Dominica',
68
+ DO: 'Dominican Republic',
69
+ EC: 'Ecuador',
70
+ EG: 'Egypt',
71
+ SV: 'El Salvador',
72
+ GQ: 'Equatorial Guinea',
73
+ ER: 'Eritrea',
74
+ EE: 'Estonia',
75
+ ET: 'Ethiopia',
76
+ EU: 'EU',
77
+ FK: 'Falkland Islands',
78
+ FO: 'Faroe Islands',
79
+ FJ: 'Fiji',
80
+ FI: 'Finland',
81
+ FR: 'France',
82
+ GF: 'French Guiana',
83
+ PF: 'French Polynesia',
84
+ TF: 'French Southern Territories',
85
+ GA: 'Gabon',
86
+ GM: 'Gambia',
87
+ GE: 'Georgia',
88
+ DE: 'Germany',
89
+ GH: 'Ghana',
90
+ GI: 'Gibraltar',
91
+ GR: 'Greece',
92
+ GL: 'Greenland',
93
+ GD: 'Grenada',
94
+ GP: 'Guadeloupe',
95
+ GU: 'Guam',
96
+ GT: 'Guatemala',
97
+ GG: 'Guernsey',
98
+ GN: 'Guinea',
99
+ GW: 'Guinea-Bissau',
100
+ GY: 'Guyana',
101
+ HT: 'Haiti',
102
+ HM: 'Heard Island and McDonald Islands',
103
+ VA: 'Holy See',
104
+ HN: 'Honduras',
105
+ HK: 'Hong Kong',
106
+ HU: 'Hungary',
107
+ IS: 'Iceland',
108
+ IN: 'India',
109
+ ID: 'Indonesia',
110
+ IR: 'Iran',
111
+ IQ: 'Iraq',
112
+ IE: 'Ireland',
113
+ IM: 'Isle of Man',
114
+ IL: 'Israel',
115
+ IT: 'Italy',
116
+ JM: 'Jamaica',
117
+ JP: 'Japan',
118
+ JE: 'Jersey',
119
+ JO: 'Jordan',
120
+ KZ: 'Kazakhstan',
121
+ KE: 'Kenya',
122
+ KI: 'Kiribati',
123
+ KP: 'North Korea (DPRK)',
124
+ KR: 'South Korea',
125
+ KW: 'Kuwait',
126
+ KG: 'Kyrgyzstan',
127
+ LA: 'Lao People\'s Democratic Republic',
128
+ LV: 'Latvia',
129
+ LB: 'Lebanon',
130
+ LS: 'Lesotho',
131
+ LR: 'Liberia',
132
+ LY: 'Libya',
133
+ LI: 'Liechtenstein',
134
+ LT: 'Lithuania',
135
+ LU: 'Luxembourg',
136
+ MO: 'Macao',
137
+ MK: 'Macedonia',
138
+ MG: 'Madagascar',
139
+ MW: 'Malawi',
140
+ MY: 'Malaysia',
141
+ MV: 'Maldives',
142
+ ML: 'Mali',
143
+ MT: 'Malta',
144
+ MH: 'Marshall Islands',
145
+ MQ: 'Martinique',
146
+ MR: 'Mauritania',
147
+ MU: 'Mauritius',
148
+ YT: 'Mayotte',
149
+ MX: 'Mexico',
150
+ FM: 'Micronesia (Federated States of)',
151
+ MD: 'Moldova',
152
+ MC: 'Monaco',
153
+ MN: 'Mongolia',
154
+ ME: 'Montenegro',
155
+ MS: 'Montserrat',
156
+ MA: 'Morocco',
157
+ MZ: 'Mozambique',
158
+ MM: 'Myanmar',
159
+ NA: 'Namibia',
160
+ NR: 'Nauru',
161
+ NP: 'Nepal',
162
+ NL: 'Netherlands',
163
+ NC: 'New Caledonia',
164
+ NZ: 'New Zealand',
165
+ NI: 'Nicaragua',
166
+ NE: 'Niger',
167
+ NG: 'Nigeria',
168
+ NU: 'Niue',
169
+ NF: 'Norfolk Island',
170
+ MP: 'Northern Mariana Islands',
171
+ NO: 'Norway',
172
+ OM: 'Oman',
173
+ PK: 'Pakistan',
174
+ PW: 'Palau',
175
+ PS: 'Palestine, State of',
176
+ PA: 'Panama',
177
+ PG: 'Papua New Guinea',
178
+ PY: 'Paraguay',
179
+ PE: 'Peru',
180
+ PH: 'Philippines',
181
+ PN: 'Pitcairn',
182
+ PL: 'Poland',
183
+ PT: 'Portugal',
184
+ PR: 'Puerto Rico',
185
+ QA: 'Qatar',
186
+ RE: 'Réunion',
187
+ RO: 'Romania',
188
+ RU: 'Russia',
189
+ RW: 'Rwanda',
190
+ BL: 'Saint Barthélemy',
191
+ SH: 'Saint Helena, Ascension and Tristan da Cunha',
192
+ KN: 'Saint Kitts and Nevis',
193
+ LC: 'Saint Lucia',
194
+ MF: 'Saint Martin (French)',
195
+ PM: 'Saint Pierre and Miquelon',
196
+ VC: 'St. Vincent & Grenadines',
197
+ WS: 'Samoa',
198
+ SM: 'San Marino',
199
+ ST: 'Sao Tome and Principe',
200
+ SA: 'Saudi Arabia',
201
+ SN: 'Senegal',
202
+ RS: 'Serbia',
203
+ SC: 'Seychelles',
204
+ SL: 'Sierra Leone',
205
+ SG: 'Singapore',
206
+ SX: 'Sint Maarten (Dutch)',
207
+ SK: 'Slovakia',
208
+ SI: 'Slovenia',
209
+ SB: 'Solomon Islands',
210
+ SO: 'Somalia',
211
+ ZA: 'South Africa',
212
+ GS: 'South Georgia and the South Sandwich Islands',
213
+ SS: 'South Sudan',
214
+ ES: 'Spain',
215
+ LK: 'Sri Lanka',
216
+ SD: 'Sudan',
217
+ SR: 'Suriname',
218
+ SJ: 'Svalbard and Jan Mayen',
219
+ SZ: 'Swaziland',
220
+ SE: 'Sweden',
221
+ CH: 'Switzerland',
222
+ SY: 'Syrian Arab Republic',
223
+ TW: 'Taiwan',
224
+ TJ: 'Tajikistan',
225
+ TZ: 'Tanzania',
226
+ TH: 'Thailand',
227
+ TL: 'Timor-Leste',
228
+ TG: 'Togo',
229
+ TK: 'Tokelau',
230
+ TO: 'Tonga',
231
+ TT: 'Trinidad and Tobago',
232
+ TN: 'Tunisia',
233
+ TR: 'Turkey',
234
+ TM: 'Turkmenistan',
235
+ TC: 'Turks and Caicos Islands',
236
+ TV: 'Tuvalu',
237
+ UG: 'Uganda',
238
+ UA: 'Ukraine',
239
+ AE: 'United Arab Emirates',
240
+ GB: 'UK',
241
+ UK: 'UK',
242
+ US: 'US',
243
+ UM: 'US Minor Islands',
244
+ UY: 'Uruguay',
245
+ UZ: 'Uzbekistan',
246
+ VU: 'Vanuatu',
247
+ VE: 'Venezuela',
248
+ VN: 'Vietnam',
249
+ VG: 'British Virgin Islands',
250
+ VI: 'US Virgin Islands',
251
+ WF: 'Wallis and Futuna',
252
+ EH: 'Western Sahara',
253
+ YE: 'Yemen',
254
+ ZM: 'Zambia',
255
+ ZW: 'Zimbabwe',
256
+ }