pixel-react 1.15.21 → 1.15.23

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 (208) hide show
  1. package/lib/_virtual/aesCipherSuites.js +4 -0
  2. package/lib/_virtual/aesCipherSuites.js.map +1 -0
  3. package/lib/_virtual/asn1-validator.js +4 -0
  4. package/lib/_virtual/asn1-validator.js.map +1 -0
  5. package/lib/_virtual/asn1.js +4 -0
  6. package/lib/_virtual/asn1.js.map +1 -0
  7. package/lib/_virtual/cipherModes.js +4 -0
  8. package/lib/_virtual/cipherModes.js.map +1 -0
  9. package/lib/_virtual/hmac.js +4 -0
  10. package/lib/_virtual/hmac.js.map +1 -0
  11. package/lib/_virtual/index11.js +2 -2
  12. package/lib/_virtual/index12.js +2 -2
  13. package/lib/_virtual/index13.js +2 -2
  14. package/lib/_virtual/index14.js +4 -0
  15. package/lib/_virtual/index14.js.map +1 -0
  16. package/lib/_virtual/index2.js +5 -3
  17. package/lib/_virtual/index2.js.map +1 -1
  18. package/lib/_virtual/index3.js +4 -2
  19. package/lib/_virtual/index3.js.map +1 -1
  20. package/lib/_virtual/index4.js +2 -4
  21. package/lib/_virtual/index4.js.map +1 -1
  22. package/lib/_virtual/index5.js +4 -2
  23. package/lib/_virtual/index5.js.map +1 -1
  24. package/lib/_virtual/index6.js +2 -2
  25. package/lib/_virtual/index7.js +2 -6
  26. package/lib/_virtual/index7.js.map +1 -1
  27. package/lib/_virtual/index8.js +6 -2
  28. package/lib/_virtual/index8.js.map +1 -1
  29. package/lib/_virtual/index9.js +2 -2
  30. package/lib/_virtual/md5.js +4 -0
  31. package/lib/_virtual/md5.js.map +1 -0
  32. package/lib/_virtual/mgf1.js +4 -0
  33. package/lib/_virtual/mgf1.js.map +1 -0
  34. package/lib/_virtual/oids.js +4 -0
  35. package/lib/_virtual/oids.js.map +1 -0
  36. package/lib/_virtual/pem.js +4 -0
  37. package/lib/_virtual/pem.js.map +1 -0
  38. package/lib/_virtual/pkcs1.js +4 -0
  39. package/lib/_virtual/pkcs1.js.map +1 -0
  40. package/lib/_virtual/pkcs12.js +4 -0
  41. package/lib/_virtual/pkcs12.js.map +1 -0
  42. package/lib/_virtual/pkcs7.js +4 -0
  43. package/lib/_virtual/pkcs7.js.map +1 -0
  44. package/lib/_virtual/pkcs7asn1.js +4 -0
  45. package/lib/_virtual/pkcs7asn1.js.map +1 -0
  46. package/lib/_virtual/pki.js +4 -0
  47. package/lib/_virtual/pki.js.map +1 -0
  48. package/lib/_virtual/prime.js +4 -0
  49. package/lib/_virtual/prime.js.map +1 -0
  50. package/lib/_virtual/prng.js +4 -0
  51. package/lib/_virtual/prng.js.map +1 -0
  52. package/lib/_virtual/pss.js +4 -0
  53. package/lib/_virtual/pss.js.map +1 -0
  54. package/lib/_virtual/random.js +4 -0
  55. package/lib/_virtual/random.js.map +1 -0
  56. package/lib/_virtual/sha1.js +4 -0
  57. package/lib/_virtual/sha1.js.map +1 -0
  58. package/lib/_virtual/sha256.js +4 -0
  59. package/lib/_virtual/sha256.js.map +1 -0
  60. package/lib/_virtual/sha512.js +4 -0
  61. package/lib/_virtual/sha512.js.map +1 -0
  62. package/lib/_virtual/ssh.js +4 -0
  63. package/lib/_virtual/ssh.js.map +1 -0
  64. package/lib/_virtual/util.js +4 -0
  65. package/lib/_virtual/util.js.map +1 -0
  66. package/lib/_virtual/x509.js +4 -0
  67. package/lib/_virtual/x509.js.map +1 -0
  68. package/lib/assets/icons/testify_icon.svg.js +6 -0
  69. package/lib/assets/icons/testify_icon.svg.js.map +1 -0
  70. package/lib/assets/icons/testify_loader.svg.js +6 -0
  71. package/lib/assets/icons/testify_loader.svg.js.map +1 -0
  72. package/lib/assets/icons/testify_logo_name.svg.js +6 -0
  73. package/lib/assets/icons/testify_logo_name.svg.js.map +1 -0
  74. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js +3 -1
  75. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js.map +1 -1
  76. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js +2 -9
  77. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js.map +1 -1
  78. package/lib/components/Charts/DashboardDonutChart/types.d.ts +1 -1
  79. package/lib/components/ConditionalDropdown/ConditionalDropdown.js +2 -9
  80. package/lib/components/ConditionalDropdown/ConditionalDropdown.js.map +1 -1
  81. package/lib/components/Editor/Editor.js +37 -17
  82. package/lib/components/Editor/Editor.js.map +1 -1
  83. package/lib/components/Icon/iconList.js +6 -0
  84. package/lib/components/Icon/iconList.js.map +1 -1
  85. package/lib/components/MultiSelect/MultiSelect.js +9 -10
  86. package/lib/components/MultiSelect/MultiSelect.js.map +1 -1
  87. package/lib/components/PhoneInput/PhoneInput.js +1 -0
  88. package/lib/components/PhoneInput/PhoneInput.js.map +1 -1
  89. package/lib/components/SessionDropdown/SessionDropdown.js +4 -2
  90. package/lib/components/SessionDropdown/SessionDropdown.js.map +1 -1
  91. package/lib/index.cjs +27423 -379
  92. package/lib/index.cjs.map +1 -1
  93. package/lib/index.d.ts +1 -1
  94. package/lib/node_modules/classnames/index.js +1 -1
  95. package/lib/node_modules/input-format/modules/react/Input.js +1 -1
  96. package/lib/node_modules/js-beautify/js/index.js +1 -1
  97. package/lib/node_modules/js-beautify/js/src/html/beautifier.js +1 -1
  98. package/lib/node_modules/js-beautify/js/src/html/index.js +1 -1
  99. package/lib/node_modules/js-beautify/js/src/html/options.js +1 -1
  100. package/lib/node_modules/js-beautify/js/src/html/tokenizer.js +1 -1
  101. package/lib/node_modules/js-beautify/js/src/index.js +1 -1
  102. package/lib/node_modules/js-beautify/js/src/javascript/beautifier.js +1 -1
  103. package/lib/node_modules/js-beautify/js/src/javascript/index.js +1 -1
  104. package/lib/node_modules/js-beautify/js/src/javascript/options.js +1 -1
  105. package/lib/node_modules/js-beautify/js/src/javascript/tokenizer.js +1 -1
  106. package/lib/node_modules/node-forge/lib/aes.js +1014 -0
  107. package/lib/node_modules/node-forge/lib/aes.js.map +1 -0
  108. package/lib/node_modules/node-forge/lib/aesCipherSuites.js +286 -0
  109. package/lib/node_modules/node-forge/lib/aesCipherSuites.js.map +1 -0
  110. package/lib/node_modules/node-forge/lib/asn1-validator.js +100 -0
  111. package/lib/node_modules/node-forge/lib/asn1-validator.js.map +1 -0
  112. package/lib/node_modules/node-forge/lib/asn1.js +1379 -0
  113. package/lib/node_modules/node-forge/lib/asn1.js.map +1 -0
  114. package/lib/node_modules/node-forge/lib/baseN.js +181 -0
  115. package/lib/node_modules/node-forge/lib/baseN.js.map +1 -0
  116. package/lib/node_modules/node-forge/lib/cipher.js +236 -0
  117. package/lib/node_modules/node-forge/lib/cipher.js.map +1 -0
  118. package/lib/node_modules/node-forge/lib/cipherModes.js +936 -0
  119. package/lib/node_modules/node-forge/lib/cipherModes.js.map +1 -0
  120. package/lib/node_modules/node-forge/lib/des.js +467 -0
  121. package/lib/node_modules/node-forge/lib/des.js.map +1 -0
  122. package/lib/node_modules/node-forge/lib/ed25519.js +1108 -0
  123. package/lib/node_modules/node-forge/lib/ed25519.js.map +1 -0
  124. package/lib/node_modules/node-forge/lib/forge.js +23 -0
  125. package/lib/node_modules/node-forge/lib/forge.js.map +1 -0
  126. package/lib/node_modules/node-forge/lib/hmac.js +158 -0
  127. package/lib/node_modules/node-forge/lib/hmac.js.map +1 -0
  128. package/lib/node_modules/node-forge/lib/index.js +70 -0
  129. package/lib/node_modules/node-forge/lib/index.js.map +1 -0
  130. package/lib/node_modules/node-forge/lib/jsbn.js +1481 -0
  131. package/lib/node_modules/node-forge/lib/jsbn.js.map +1 -0
  132. package/lib/node_modules/node-forge/lib/kem.js +178 -0
  133. package/lib/node_modules/node-forge/lib/kem.js.map +1 -0
  134. package/lib/node_modules/node-forge/lib/log.js +325 -0
  135. package/lib/node_modules/node-forge/lib/log.js.map +1 -0
  136. package/lib/node_modules/node-forge/lib/md.all.js +28 -0
  137. package/lib/node_modules/node-forge/lib/md.all.js.map +1 -0
  138. package/lib/node_modules/node-forge/lib/md.js +22 -0
  139. package/lib/node_modules/node-forge/lib/md.js.map +1 -0
  140. package/lib/node_modules/node-forge/lib/md5.js +288 -0
  141. package/lib/node_modules/node-forge/lib/md5.js.map +1 -0
  142. package/lib/node_modules/node-forge/lib/mgf.js +24 -0
  143. package/lib/node_modules/node-forge/lib/mgf.js.map +1 -0
  144. package/lib/node_modules/node-forge/lib/mgf1.js +68 -0
  145. package/lib/node_modules/node-forge/lib/mgf1.js.map +1 -0
  146. package/lib/node_modules/node-forge/lib/oids.js +185 -0
  147. package/lib/node_modules/node-forge/lib/oids.js.map +1 -0
  148. package/lib/node_modules/node-forge/lib/pbe.js +966 -0
  149. package/lib/node_modules/node-forge/lib/pbe.js.map +1 -0
  150. package/lib/node_modules/node-forge/lib/pbkdf2.js +209 -0
  151. package/lib/node_modules/node-forge/lib/pbkdf2.js.map +1 -0
  152. package/lib/node_modules/node-forge/lib/pem.js +250 -0
  153. package/lib/node_modules/node-forge/lib/pem.js.map +1 -0
  154. package/lib/node_modules/node-forge/lib/pkcs1.js +273 -0
  155. package/lib/node_modules/node-forge/lib/pkcs1.js.map +1 -0
  156. package/lib/node_modules/node-forge/lib/pkcs12.js +980 -0
  157. package/lib/node_modules/node-forge/lib/pkcs12.js.map +1 -0
  158. package/lib/node_modules/node-forge/lib/pkcs7.js +1073 -0
  159. package/lib/node_modules/node-forge/lib/pkcs7.js.map +1 -0
  160. package/lib/node_modules/node-forge/lib/pkcs7asn1.js +415 -0
  161. package/lib/node_modules/node-forge/lib/pkcs7asn1.js.map +1 -0
  162. package/lib/node_modules/node-forge/lib/pki.js +125 -0
  163. package/lib/node_modules/node-forge/lib/pki.js.map +1 -0
  164. package/lib/node_modules/node-forge/lib/prime.js +297 -0
  165. package/lib/node_modules/node-forge/lib/prime.js.map +1 -0
  166. package/lib/node_modules/node-forge/lib/prng.js +433 -0
  167. package/lib/node_modules/node-forge/lib/prng.js.map +1 -0
  168. package/lib/node_modules/node-forge/lib/pss.js +246 -0
  169. package/lib/node_modules/node-forge/lib/pss.js.map +1 -0
  170. package/lib/node_modules/node-forge/lib/random.js +191 -0
  171. package/lib/node_modules/node-forge/lib/random.js.map +1 -0
  172. package/lib/node_modules/node-forge/lib/rc2.js +382 -0
  173. package/lib/node_modules/node-forge/lib/rc2.js.map +1 -0
  174. package/lib/node_modules/node-forge/lib/rsa.js +1815 -0
  175. package/lib/node_modules/node-forge/lib/rsa.js.map +1 -0
  176. package/lib/node_modules/node-forge/lib/sha1.js +325 -0
  177. package/lib/node_modules/node-forge/lib/sha1.js.map +1 -0
  178. package/lib/node_modules/node-forge/lib/sha256.js +306 -0
  179. package/lib/node_modules/node-forge/lib/sha256.js.map +1 -0
  180. package/lib/node_modules/node-forge/lib/sha512.js +479 -0
  181. package/lib/node_modules/node-forge/lib/sha512.js.map +1 -0
  182. package/lib/node_modules/node-forge/lib/ssh.js +244 -0
  183. package/lib/node_modules/node-forge/lib/ssh.js.map +1 -0
  184. package/lib/node_modules/node-forge/lib/tls.js +4207 -0
  185. package/lib/node_modules/node-forge/lib/tls.js.map +1 -0
  186. package/lib/node_modules/node-forge/lib/util.js +2565 -0
  187. package/lib/node_modules/node-forge/lib/util.js.map +1 -0
  188. package/lib/node_modules/node-forge/lib/x509.js +2986 -0
  189. package/lib/node_modules/node-forge/lib/x509.js.map +1 -0
  190. package/lib/node_modules/prop-types/index.js +1 -1
  191. package/lib/node_modules/react-async-script/lib/esm/async-script-loader.js +1 -1
  192. package/lib/node_modules/react-google-recaptcha/lib/esm/recaptcha.js +1 -1
  193. package/lib/node_modules/react-is/index.js +1 -1
  194. package/lib/node_modules/react-phone-number-input/modules/CountryIcon.js +1 -1
  195. package/lib/node_modules/react-phone-number-input/modules/CountrySelect.js +1 -1
  196. package/lib/node_modules/react-phone-number-input/modules/Flag.js +1 -1
  197. package/lib/node_modules/react-phone-number-input/modules/InputBasic.js +1 -1
  198. package/lib/node_modules/react-phone-number-input/modules/InputSmart.js +1 -1
  199. package/lib/node_modules/react-phone-number-input/modules/InternationalIcon.js +1 -1
  200. package/lib/node_modules/react-phone-number-input/modules/PhoneInputWithCountry.js +1 -1
  201. package/lib/node_modules/react-phone-number-input/modules/PropTypes.js +1 -1
  202. package/lib/node_modules/scheduler/index.js +1 -1
  203. package/lib/node_modules/use-context-selector/dist/index.js +1 -1
  204. package/lib/styles.css +1 -1
  205. package/lib/styles.css.map +1 -1
  206. package/lib/utils/getEncryptedData/getEncryptedData.js +10 -13
  207. package/lib/utils/getEncryptedData/getEncryptedData.js.map +1 -1
  208. package/package.json +3 -1
@@ -0,0 +1,382 @@
1
+ import { __require as requireForge } from './forge.js';
2
+ import { __require as requireUtil } from './util.js';
3
+
4
+ /**
5
+ * RC2 implementation.
6
+ *
7
+ * @author Stefan Siegl
8
+ *
9
+ * Copyright (c) 2012 Stefan Siegl <stesie@brokenpipe.de>
10
+ *
11
+ * Information on the RC2 cipher is available from RFC #2268,
12
+ * http://www.ietf.org/rfc/rfc2268.txt
13
+ */
14
+ var rc2;
15
+ var hasRequiredRc2;
16
+ function requireRc2() {
17
+ if (hasRequiredRc2) return rc2;
18
+ hasRequiredRc2 = 1;
19
+ var forge = requireForge();
20
+ requireUtil();
21
+ var piTable = [0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d, 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2, 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32, 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82, 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc, 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26, 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03, 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7, 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a, 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec, 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39, 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31, 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9, 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9, 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e, 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad];
22
+ var s = [1, 2, 3, 5];
23
+
24
+ /**
25
+ * Rotate a word left by given number of bits.
26
+ *
27
+ * Bits that are shifted out on the left are put back in on the right
28
+ * hand side.
29
+ *
30
+ * @param word The word to shift left.
31
+ * @param bits The number of bits to shift by.
32
+ * @return The rotated word.
33
+ */
34
+ var rol = function (word, bits) {
35
+ return word << bits & 0xffff | (word & 0xffff) >> 16 - bits;
36
+ };
37
+
38
+ /**
39
+ * Rotate a word right by given number of bits.
40
+ *
41
+ * Bits that are shifted out on the right are put back in on the left
42
+ * hand side.
43
+ *
44
+ * @param word The word to shift right.
45
+ * @param bits The number of bits to shift by.
46
+ * @return The rotated word.
47
+ */
48
+ var ror = function (word, bits) {
49
+ return (word & 0xffff) >> bits | word << 16 - bits & 0xffff;
50
+ };
51
+
52
+ /* RC2 API */
53
+ rc2 = forge.rc2 = forge.rc2 || {};
54
+
55
+ /**
56
+ * Perform RC2 key expansion as per RFC #2268, section 2.
57
+ *
58
+ * @param key variable-length user key (between 1 and 128 bytes)
59
+ * @param effKeyBits number of effective key bits (default: 128)
60
+ * @return the expanded RC2 key (ByteBuffer of 128 bytes)
61
+ */
62
+ forge.rc2.expandKey = function (key, effKeyBits) {
63
+ if (typeof key === 'string') {
64
+ key = forge.util.createBuffer(key);
65
+ }
66
+ effKeyBits = effKeyBits || 128;
67
+
68
+ /* introduce variables that match the names used in RFC #2268 */
69
+ var L = key;
70
+ var T = key.length();
71
+ var T1 = effKeyBits;
72
+ var T8 = Math.ceil(T1 / 8);
73
+ var TM = 0xff >> (T1 & 0x07);
74
+ var i;
75
+ for (i = T; i < 128; i++) {
76
+ L.putByte(piTable[L.at(i - 1) + L.at(i - T) & 0xff]);
77
+ }
78
+ L.setAt(128 - T8, piTable[L.at(128 - T8) & TM]);
79
+ for (i = 127 - T8; i >= 0; i--) {
80
+ L.setAt(i, piTable[L.at(i + 1) ^ L.at(i + T8)]);
81
+ }
82
+ return L;
83
+ };
84
+
85
+ /**
86
+ * Creates a RC2 cipher object.
87
+ *
88
+ * @param key the symmetric key to use (as base for key generation).
89
+ * @param bits the number of effective key bits.
90
+ * @param encrypt false for decryption, true for encryption.
91
+ *
92
+ * @return the cipher.
93
+ */
94
+ var createCipher = function (key, bits, encrypt) {
95
+ var _finish = false,
96
+ _input = null,
97
+ _output = null,
98
+ _iv = null;
99
+ var mixRound, mashRound;
100
+ var i,
101
+ j,
102
+ K = [];
103
+
104
+ /* Expand key and fill into K[] Array */
105
+ key = forge.rc2.expandKey(key, bits);
106
+ for (i = 0; i < 64; i++) {
107
+ K.push(key.getInt16Le());
108
+ }
109
+ if (encrypt) {
110
+ /**
111
+ * Perform one mixing round "in place".
112
+ *
113
+ * @param R Array of four words to perform mixing on.
114
+ */
115
+ mixRound = function (R) {
116
+ for (i = 0; i < 4; i++) {
117
+ R[i] += K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) + (~R[(i + 3) % 4] & R[(i + 1) % 4]);
118
+ R[i] = rol(R[i], s[i]);
119
+ j++;
120
+ }
121
+ };
122
+
123
+ /**
124
+ * Perform one mashing round "in place".
125
+ *
126
+ * @param R Array of four words to perform mashing on.
127
+ */
128
+ mashRound = function (R) {
129
+ for (i = 0; i < 4; i++) {
130
+ R[i] += K[R[(i + 3) % 4] & 63];
131
+ }
132
+ };
133
+ } else {
134
+ /**
135
+ * Perform one r-mixing round "in place".
136
+ *
137
+ * @param R Array of four words to perform mixing on.
138
+ */
139
+ mixRound = function (R) {
140
+ for (i = 3; i >= 0; i--) {
141
+ R[i] = ror(R[i], s[i]);
142
+ R[i] -= K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) + (~R[(i + 3) % 4] & R[(i + 1) % 4]);
143
+ j--;
144
+ }
145
+ };
146
+
147
+ /**
148
+ * Perform one r-mashing round "in place".
149
+ *
150
+ * @param R Array of four words to perform mashing on.
151
+ */
152
+ mashRound = function (R) {
153
+ for (i = 3; i >= 0; i--) {
154
+ R[i] -= K[R[(i + 3) % 4] & 63];
155
+ }
156
+ };
157
+ }
158
+
159
+ /**
160
+ * Run the specified cipher execution plan.
161
+ *
162
+ * This function takes four words from the input buffer, applies the IV on
163
+ * it (if requested) and runs the provided execution plan.
164
+ *
165
+ * The plan must be put together in form of a array of arrays. Where the
166
+ * outer one is simply a list of steps to perform and the inner one needs
167
+ * to have two elements: the first one telling how many rounds to perform,
168
+ * the second one telling what to do (i.e. the function to call).
169
+ *
170
+ * @param {Array} plan The plan to execute.
171
+ */
172
+ var runPlan = function (plan) {
173
+ var R = [];
174
+
175
+ /* Get data from input buffer and fill the four words into R */
176
+ for (i = 0; i < 4; i++) {
177
+ var val = _input.getInt16Le();
178
+ if (_iv !== null) {
179
+ if (encrypt) {
180
+ /* We're encrypting, apply the IV first. */
181
+ val ^= _iv.getInt16Le();
182
+ } else {
183
+ /* We're decryption, keep cipher text for next block. */
184
+ _iv.putInt16Le(val);
185
+ }
186
+ }
187
+ R.push(val & 0xffff);
188
+ }
189
+
190
+ /* Reset global "j" variable as per spec. */
191
+ j = encrypt ? 0 : 63;
192
+
193
+ /* Run execution plan. */
194
+ for (var ptr = 0; ptr < plan.length; ptr++) {
195
+ for (var ctr = 0; ctr < plan[ptr][0]; ctr++) {
196
+ plan[ptr][1](R);
197
+ }
198
+ }
199
+
200
+ /* Write back result to output buffer. */
201
+ for (i = 0; i < 4; i++) {
202
+ if (_iv !== null) {
203
+ if (encrypt) {
204
+ /* We're encrypting in CBC-mode, feed back encrypted bytes into
205
+ IV buffer to carry it forward to next block. */
206
+ _iv.putInt16Le(R[i]);
207
+ } else {
208
+ R[i] ^= _iv.getInt16Le();
209
+ }
210
+ }
211
+ _output.putInt16Le(R[i]);
212
+ }
213
+ };
214
+
215
+ /* Create cipher object */
216
+ var cipher = null;
217
+ cipher = {
218
+ /**
219
+ * Starts or restarts the encryption or decryption process, whichever
220
+ * was previously configured.
221
+ *
222
+ * To use the cipher in CBC mode, iv may be given either as a string
223
+ * of bytes, or as a byte buffer. For ECB mode, give null as iv.
224
+ *
225
+ * @param iv the initialization vector to use, null for ECB mode.
226
+ * @param output the output the buffer to write to, null to create one.
227
+ */
228
+ start: function (iv, output) {
229
+ if (iv) {
230
+ /* CBC mode */
231
+ if (typeof iv === 'string') {
232
+ iv = forge.util.createBuffer(iv);
233
+ }
234
+ }
235
+ _finish = false;
236
+ _input = forge.util.createBuffer();
237
+ _output = output || new forge.util.createBuffer();
238
+ _iv = iv;
239
+ cipher.output = _output;
240
+ },
241
+ /**
242
+ * Updates the next block.
243
+ *
244
+ * @param input the buffer to read from.
245
+ */
246
+ update: function (input) {
247
+ if (!_finish) {
248
+ // not finishing, so fill the input buffer with more input
249
+ _input.putBuffer(input);
250
+ }
251
+ while (_input.length() >= 8) {
252
+ runPlan([[5, mixRound], [1, mashRound], [6, mixRound], [1, mashRound], [5, mixRound]]);
253
+ }
254
+ },
255
+ /**
256
+ * Finishes encrypting or decrypting.
257
+ *
258
+ * @param pad a padding function to use, null for PKCS#7 padding,
259
+ * signature(blockSize, buffer, decrypt).
260
+ *
261
+ * @return true if successful, false on error.
262
+ */
263
+ finish: function (pad) {
264
+ var rval = true;
265
+ if (encrypt) {
266
+ if (pad) {
267
+ rval = pad(8, _input, !encrypt);
268
+ } else {
269
+ // add PKCS#7 padding to block (each pad byte is the
270
+ // value of the number of pad bytes)
271
+ var padding = _input.length() === 8 ? 8 : 8 - _input.length();
272
+ _input.fillWithByte(padding, padding);
273
+ }
274
+ }
275
+ if (rval) {
276
+ // do final update
277
+ _finish = true;
278
+ cipher.update();
279
+ }
280
+ if (!encrypt) {
281
+ // check for error: input data not a multiple of block size
282
+ rval = _input.length() === 0;
283
+ if (rval) {
284
+ if (pad) {
285
+ rval = pad(8, _output, !encrypt);
286
+ } else {
287
+ // ensure padding byte count is valid
288
+ var len = _output.length();
289
+ var count = _output.at(len - 1);
290
+ if (count > len) {
291
+ rval = false;
292
+ } else {
293
+ // trim off padding bytes
294
+ _output.truncate(count);
295
+ }
296
+ }
297
+ }
298
+ }
299
+ return rval;
300
+ }
301
+ };
302
+ return cipher;
303
+ };
304
+
305
+ /**
306
+ * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the
307
+ * given symmetric key. The output will be stored in the 'output' member
308
+ * of the returned cipher.
309
+ *
310
+ * The key and iv may be given as a string of bytes or a byte buffer.
311
+ * The cipher is initialized to use 128 effective key bits.
312
+ *
313
+ * @param key the symmetric key to use.
314
+ * @param iv the initialization vector to use.
315
+ * @param output the buffer to write to, null to create one.
316
+ *
317
+ * @return the cipher.
318
+ */
319
+ forge.rc2.startEncrypting = function (key, iv, output) {
320
+ var cipher = forge.rc2.createEncryptionCipher(key, 128);
321
+ cipher.start(iv, output);
322
+ return cipher;
323
+ };
324
+
325
+ /**
326
+ * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the
327
+ * given symmetric key.
328
+ *
329
+ * The key may be given as a string of bytes or a byte buffer.
330
+ *
331
+ * To start encrypting call start() on the cipher with an iv and optional
332
+ * output buffer.
333
+ *
334
+ * @param key the symmetric key to use.
335
+ *
336
+ * @return the cipher.
337
+ */
338
+ forge.rc2.createEncryptionCipher = function (key, bits) {
339
+ return createCipher(key, bits, true);
340
+ };
341
+
342
+ /**
343
+ * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the
344
+ * given symmetric key. The output will be stored in the 'output' member
345
+ * of the returned cipher.
346
+ *
347
+ * The key and iv may be given as a string of bytes or a byte buffer.
348
+ * The cipher is initialized to use 128 effective key bits.
349
+ *
350
+ * @param key the symmetric key to use.
351
+ * @param iv the initialization vector to use.
352
+ * @param output the buffer to write to, null to create one.
353
+ *
354
+ * @return the cipher.
355
+ */
356
+ forge.rc2.startDecrypting = function (key, iv, output) {
357
+ var cipher = forge.rc2.createDecryptionCipher(key, 128);
358
+ cipher.start(iv, output);
359
+ return cipher;
360
+ };
361
+
362
+ /**
363
+ * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the
364
+ * given symmetric key.
365
+ *
366
+ * The key may be given as a string of bytes or a byte buffer.
367
+ *
368
+ * To start decrypting call start() on the cipher with an iv and optional
369
+ * output buffer.
370
+ *
371
+ * @param key the symmetric key to use.
372
+ *
373
+ * @return the cipher.
374
+ */
375
+ forge.rc2.createDecryptionCipher = function (key, bits) {
376
+ return createCipher(key, bits, false);
377
+ };
378
+ return rc2;
379
+ }
380
+
381
+ export { requireRc2 as __require };
382
+ //# sourceMappingURL=rc2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rc2.js","sources":["../../../../node_modules/node-forge/lib/rc2.js"],"sourcesContent":["/**\n * RC2 implementation.\n *\n * @author Stefan Siegl\n *\n * Copyright (c) 2012 Stefan Siegl <stesie@brokenpipe.de>\n *\n * Information on the RC2 cipher is available from RFC #2268,\n * http://www.ietf.org/rfc/rfc2268.txt\n */\nvar forge = require('./forge');\nrequire('./util');\n\nvar piTable = [\n 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d,\n 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2,\n 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32,\n 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82,\n 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc,\n 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26,\n 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03,\n 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7,\n 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a,\n 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec,\n 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39,\n 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31,\n 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9,\n 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9,\n 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e,\n 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad\n];\n\nvar s = [1, 2, 3, 5];\n\n/**\n * Rotate a word left by given number of bits.\n *\n * Bits that are shifted out on the left are put back in on the right\n * hand side.\n *\n * @param word The word to shift left.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar rol = function(word, bits) {\n return ((word << bits) & 0xffff) | ((word & 0xffff) >> (16 - bits));\n};\n\n/**\n * Rotate a word right by given number of bits.\n *\n * Bits that are shifted out on the right are put back in on the left\n * hand side.\n *\n * @param word The word to shift right.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar ror = function(word, bits) {\n return ((word & 0xffff) >> bits) | ((word << (16 - bits)) & 0xffff);\n};\n\n/* RC2 API */\nmodule.exports = forge.rc2 = forge.rc2 || {};\n\n/**\n * Perform RC2 key expansion as per RFC #2268, section 2.\n *\n * @param key variable-length user key (between 1 and 128 bytes)\n * @param effKeyBits number of effective key bits (default: 128)\n * @return the expanded RC2 key (ByteBuffer of 128 bytes)\n */\nforge.rc2.expandKey = function(key, effKeyBits) {\n if(typeof key === 'string') {\n key = forge.util.createBuffer(key);\n }\n effKeyBits = effKeyBits || 128;\n\n /* introduce variables that match the names used in RFC #2268 */\n var L = key;\n var T = key.length();\n var T1 = effKeyBits;\n var T8 = Math.ceil(T1 / 8);\n var TM = 0xff >> (T1 & 0x07);\n var i;\n\n for(i = T; i < 128; i++) {\n L.putByte(piTable[(L.at(i - 1) + L.at(i - T)) & 0xff]);\n }\n\n L.setAt(128 - T8, piTable[L.at(128 - T8) & TM]);\n\n for(i = 127 - T8; i >= 0; i--) {\n L.setAt(i, piTable[L.at(i + 1) ^ L.at(i + T8)]);\n }\n\n return L;\n};\n\n/**\n * Creates a RC2 cipher object.\n *\n * @param key the symmetric key to use (as base for key generation).\n * @param bits the number of effective key bits.\n * @param encrypt false for decryption, true for encryption.\n *\n * @return the cipher.\n */\nvar createCipher = function(key, bits, encrypt) {\n var _finish = false, _input = null, _output = null, _iv = null;\n var mixRound, mashRound;\n var i, j, K = [];\n\n /* Expand key and fill into K[] Array */\n key = forge.rc2.expandKey(key, bits);\n for(i = 0; i < 64; i++) {\n K.push(key.getInt16Le());\n }\n\n if(encrypt) {\n /**\n * Perform one mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n R[i] = rol(R[i], s[i]);\n j++;\n }\n };\n\n /**\n * Perform one mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[R[(i + 3) % 4] & 63];\n }\n };\n } else {\n /**\n * Perform one r-mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] = ror(R[i], s[i]);\n R[i] -= K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n j--;\n }\n };\n\n /**\n * Perform one r-mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] -= K[R[(i + 3) % 4] & 63];\n }\n };\n }\n\n /**\n * Run the specified cipher execution plan.\n *\n * This function takes four words from the input buffer, applies the IV on\n * it (if requested) and runs the provided execution plan.\n *\n * The plan must be put together in form of a array of arrays. Where the\n * outer one is simply a list of steps to perform and the inner one needs\n * to have two elements: the first one telling how many rounds to perform,\n * the second one telling what to do (i.e. the function to call).\n *\n * @param {Array} plan The plan to execute.\n */\n var runPlan = function(plan) {\n var R = [];\n\n /* Get data from input buffer and fill the four words into R */\n for(i = 0; i < 4; i++) {\n var val = _input.getInt16Le();\n\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting, apply the IV first. */\n val ^= _iv.getInt16Le();\n } else {\n /* We're decryption, keep cipher text for next block. */\n _iv.putInt16Le(val);\n }\n }\n\n R.push(val & 0xffff);\n }\n\n /* Reset global \"j\" variable as per spec. */\n j = encrypt ? 0 : 63;\n\n /* Run execution plan. */\n for(var ptr = 0; ptr < plan.length; ptr++) {\n for(var ctr = 0; ctr < plan[ptr][0]; ctr++) {\n plan[ptr][1](R);\n }\n }\n\n /* Write back result to output buffer. */\n for(i = 0; i < 4; i++) {\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting in CBC-mode, feed back encrypted bytes into\n IV buffer to carry it forward to next block. */\n _iv.putInt16Le(R[i]);\n } else {\n R[i] ^= _iv.getInt16Le();\n }\n }\n\n _output.putInt16Le(R[i]);\n }\n };\n\n /* Create cipher object */\n var cipher = null;\n cipher = {\n /**\n * Starts or restarts the encryption or decryption process, whichever\n * was previously configured.\n *\n * To use the cipher in CBC mode, iv may be given either as a string\n * of bytes, or as a byte buffer. For ECB mode, give null as iv.\n *\n * @param iv the initialization vector to use, null for ECB mode.\n * @param output the output the buffer to write to, null to create one.\n */\n start: function(iv, output) {\n if(iv) {\n /* CBC mode */\n if(typeof iv === 'string') {\n iv = forge.util.createBuffer(iv);\n }\n }\n\n _finish = false;\n _input = forge.util.createBuffer();\n _output = output || new forge.util.createBuffer();\n _iv = iv;\n\n cipher.output = _output;\n },\n\n /**\n * Updates the next block.\n *\n * @param input the buffer to read from.\n */\n update: function(input) {\n if(!_finish) {\n // not finishing, so fill the input buffer with more input\n _input.putBuffer(input);\n }\n\n while(_input.length() >= 8) {\n runPlan([\n [ 5, mixRound ],\n [ 1, mashRound ],\n [ 6, mixRound ],\n [ 1, mashRound ],\n [ 5, mixRound ]\n ]);\n }\n },\n\n /**\n * Finishes encrypting or decrypting.\n *\n * @param pad a padding function to use, null for PKCS#7 padding,\n * signature(blockSize, buffer, decrypt).\n *\n * @return true if successful, false on error.\n */\n finish: function(pad) {\n var rval = true;\n\n if(encrypt) {\n if(pad) {\n rval = pad(8, _input, !encrypt);\n } else {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (_input.length() === 8) ? 8 : (8 - _input.length());\n _input.fillWithByte(padding, padding);\n }\n }\n\n if(rval) {\n // do final update\n _finish = true;\n cipher.update();\n }\n\n if(!encrypt) {\n // check for error: input data not a multiple of block size\n rval = (_input.length() === 0);\n if(rval) {\n if(pad) {\n rval = pad(8, _output, !encrypt);\n } else {\n // ensure padding byte count is valid\n var len = _output.length();\n var count = _output.at(len - 1);\n\n if(count > len) {\n rval = false;\n } else {\n // trim off padding bytes\n _output.truncate(count);\n }\n }\n }\n }\n\n return rval;\n }\n };\n\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startEncrypting = function(key, iv, output) {\n var cipher = forge.rc2.createEncryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start encrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createEncryptionCipher = function(key, bits) {\n return createCipher(key, bits, true);\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startDecrypting = function(key, iv, output) {\n var cipher = forge.rc2.createDecryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start decrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createDecryptionCipher = function(key, bits) {\n return createCipher(key, bits, false);\n};\n"],"names":["forge","require$$0","require$$1","piTable","s","rol","word","bits","ror","rc2","expandKey","key","effKeyBits","util","createBuffer","L","T","length","T1","T8","Math","ceil","TM","i","putByte","at","setAt","createCipher","encrypt","_finish","_input","_output","_iv","mixRound","mashRound","j","K","push","getInt16Le","R","runPlan","plan","val","putInt16Le","ptr","ctr","cipher","start","iv","output","update","input","putBuffer","finish","pad","rval","padding","fillWithByte","len","count","truncate","startEncrypting","createEncryptionCipher","startDecrypting","createDecryptionCipher"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,EAAA,IAAIA,KAAK,GAAGC,YAAA,EAAkB;AAC9BC,EAAAA,WAAA,EAAiB;AAEjB,EAAA,IAAIC,OAAO,GAAG,CACZ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI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","x_google_ignoreList":[0]}