libmongocrypt-helper 1.11.0.0.1001 → 1.13.2.0.1001

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 (598) hide show
  1. checksums.yaml +4 -4
  2. data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +27 -1
  3. data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +13 -2
  4. data/ext/libmongocrypt/libmongocrypt/CODEOWNERS +1 -7
  5. data/ext/libmongocrypt/libmongocrypt/CONTRIBUTING.md +14 -0
  6. data/ext/libmongocrypt/libmongocrypt/Earthfile +49 -50
  7. data/ext/libmongocrypt/libmongocrypt/README.md +39 -23
  8. data/ext/libmongocrypt/libmongocrypt/bindings/cs/README.md +4 -67
  9. data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +14 -1
  10. data/ext/libmongocrypt/libmongocrypt/bindings/python/README.rst +1 -1
  11. data/ext/libmongocrypt/libmongocrypt/bindings/python/libmongocrypt-version.txt +1 -1
  12. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/asynchronous/state_machine.py +1 -1
  13. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +39 -7
  14. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +32 -0
  15. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +1 -1
  16. data/ext/libmongocrypt/libmongocrypt/bindings/python/pyproject.toml +1 -0
  17. data/ext/libmongocrypt/libmongocrypt/bindings/python/release.sh +1 -1
  18. data/ext/libmongocrypt/libmongocrypt/bindings/python/sbom.json +10 -9
  19. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/compact/success/encrypted-field-config-map.json +0 -1
  20. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-field-config-map.json +0 -2
  21. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +13 -12
  22. data/ext/libmongocrypt/libmongocrypt/cmake/FetchMongoC.cmake +4 -2
  23. data/ext/libmongocrypt/libmongocrypt/cmake/ImportBSON.cmake +1 -1
  24. data/ext/libmongocrypt/libmongocrypt/doc/releasing.md +37 -40
  25. data/ext/libmongocrypt/libmongocrypt/etc/cyclonedx.sbom.json +10 -9
  26. data/ext/libmongocrypt/libmongocrypt/etc/format.sh +0 -2
  27. data/ext/libmongocrypt/libmongocrypt/etc/libbson-remove-GCC-diagnostic-in-functions.patch +158 -0
  28. data/ext/libmongocrypt/libmongocrypt/etc/libbson-remove-GCC-diagnostic-pragma.patch +3 -3
  29. data/ext/libmongocrypt/libmongocrypt/etc/purls.txt +1 -1
  30. data/ext/libmongocrypt/libmongocrypt/integrating.md +51 -13
  31. data/ext/libmongocrypt/libmongocrypt/kms-message/README.md +1 -1
  32. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_crypto_windows.c +2 -2
  33. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_response_parser.h +3 -0
  34. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message.c +1 -1
  35. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message_private.h +2 -2
  36. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request.c +3 -3
  37. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_response_parser.c +8 -0
  38. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kmip_reader_writer.c +5 -5
  39. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_assert.h +25 -8
  40. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_azure_online.c +2 -2
  41. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_gcp_online.c +3 -3
  42. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_request.c +12 -10
  43. data/ext/libmongocrypt/libmongocrypt/src/mc-cmp-private.h +137 -0
  44. data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +5 -0
  45. data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +35 -1
  46. data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +5 -2
  47. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +99 -0
  48. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +226 -2
  49. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +0 -1
  50. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +0 -1
  51. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h +5 -0
  52. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +39 -0
  53. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +165 -1
  54. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +0 -1
  55. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h +183 -60
  56. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +498 -115
  57. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds-private.h +10 -0
  58. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block-private.h +49 -0
  59. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c +98 -0
  60. data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +3 -2
  61. data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +2 -1
  62. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +2 -2
  63. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +1 -0
  64. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +6 -1
  65. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +2 -1
  66. data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker-private.h +126 -0
  67. data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker.c +1075 -0
  68. data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets-private.h +95 -0
  69. data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets.c +304 -0
  70. data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode-private.h +45 -0
  71. data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode.c +248 -0
  72. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +112 -2
  73. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +166 -2
  74. data/ext/libmongocrypt/libmongocrypt/src/mlib/windows-lean.h +2 -0
  75. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer-private.h +11 -0
  76. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer.c +36 -3
  77. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo.c +1 -1
  78. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key.c +1 -1
  79. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-private.h +2 -2
  80. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache.c +1 -1
  81. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext.c +1 -1
  82. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +2 -1
  83. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +8 -4
  84. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +429 -858
  85. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-private.h +55 -19
  86. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +13 -10
  87. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +15 -0
  88. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-private.h +9 -0
  89. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key.c +6 -2
  90. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx-private.h +6 -0
  91. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx.c +174 -0
  92. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log.c +0 -1
  93. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +4 -0
  94. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +518 -524
  95. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +0 -4
  96. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +1 -1
  97. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +8 -12
  98. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util.c +1 -1
  99. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +3 -1
  100. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +25 -9
  101. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.h +65 -6
  102. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +3 -1
  103. data/ext/libmongocrypt/libmongocrypt/src/unicode/case-fold-map.c +1434 -0
  104. data/ext/libmongocrypt/libmongocrypt/src/unicode/diacritic-fold-map.c +2884 -0
  105. data/ext/libmongocrypt/libmongocrypt/src/unicode/fold.c +139 -0
  106. data/ext/libmongocrypt/libmongocrypt/src/unicode/fold.h +58 -0
  107. data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/unencrypted/payload.json +2 -2
  108. data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/missing-key-id/collinfo.json +1 -0
  109. data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/no-fields/collinfo.json +1 -0
  110. data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/collinfo.json +1 -0
  111. data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/collinfo.json +1 -1
  112. data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/encrypted-payload-range-v2.json +20 -21
  113. data/ext/libmongocrypt/libmongocrypt/test/data/compact/missing-key-id/collinfo.json +2 -2
  114. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-fields/collinfo.json +1 -1
  115. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/collinfo.json +1 -1
  116. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/collinfo.json +1 -1
  117. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-field-config-map.json +0 -1
  118. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-payload-range-v2.json +20 -21
  119. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/cmd-to-mongocryptd.json +1 -2
  120. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/collinfo.json +2 -2
  121. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/encrypted-payload.json +2 -3
  122. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/mongocryptd-reply.json +1 -2
  123. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/cmd-to-mongocryptd.json +1 -2
  124. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/collinfo.json +2 -2
  125. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/encrypted-payload.json +2 -3
  126. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/mongocryptd-reply.json +1 -2
  127. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/cmd-to-mongocryptd.json +1 -2
  128. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/collinfo.json +2 -2
  129. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/mongocryptd-reply.json +1 -2
  130. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_fle1/collinfo.json +2 -1
  131. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-extraField.json +0 -1
  132. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-missingKeyId.json +0 -1
  133. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-oneField-badVersionSet.json +23 -0
  134. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-oneField-goodVersionSet.json +23 -0
  135. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-oneField.json +0 -1
  136. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-textSearchFields-badVersionSet.json +48 -0
  137. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-textSearchFields-goodVersionSet.json +48 -0
  138. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-textSearchFields.json +47 -0
  139. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-twoFields.json +0 -1
  140. data/ext/libmongocrypt/libmongocrypt/test/data/encrypted-field-config-map.json +1 -3
  141. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE1DeterministicEncryptedValue.json +8 -0
  142. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE1EncryptionPlaceholder.json +8 -0
  143. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE1RandomEncryptedValue.json +8 -0
  144. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2EncryptionPlaceholder.json +8 -0
  145. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json +8 -0
  146. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2FindEqualityPayloadV2.json +8 -0
  147. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValue.json +8 -0
  148. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedEqualityEncryptedValueV2.json +8 -0
  149. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValue.json +8 -0
  150. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2IndexedRangeEncryptedValueV2.json +8 -0
  151. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges-V2.json +8 -0
  152. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayload-with-edges.json +8 -0
  153. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-explicit/insert-indexed.json → explicit-decrypt/FLE2InsertUpdatePayload.json} +1 -1
  154. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2.json +8 -0
  155. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json +8 -0
  156. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2UnindexedEncryptedValue.json +8 -0
  157. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2UnindexedEncryptedValueV2.json +8 -0
  158. data/ext/libmongocrypt/libmongocrypt/test/data/find-with-encryptionInformation.json +0 -1
  159. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-csfle/collinfo.json +2 -1
  160. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-mongocryptd/collinfo.json +2 -1
  161. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-collinfo.json +26 -0
  162. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-create-cmd-mongocryptd-reply.json +51 -0
  163. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-create-cmd-to-mongocryptd.json +45 -0
  164. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-bad-str-encode-version/bad-create-cmd.json +18 -0
  165. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-range/int32/encrypted-field-map.json → fle2-bad-str-encode-version/bad-encrypted-field-config-map.json} +7 -12
  166. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-bad-str-encode-version}/encrypted-payload.json +4 -4
  167. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/cmd-to-mongocryptd.json +1 -2
  168. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/encrypted-field-config-map.json +1 -2
  169. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/cmd-to-mongocryptd.json +44 -0
  170. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/cmd.json +17 -0
  171. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-equality/encrypted-field-map.json → fle2-create-encrypted-collection/encrypted-field-config-map.json} +9 -8
  172. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/encrypted-payload.json +17 -0
  173. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection/mongocryptd-reply.json +50 -0
  174. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-encrypted-fields-unset-str-encode-version/cmd-to-mongocryptd.json +45 -0
  175. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-encrypted-fields-unset-str-encode-version/mongocryptd-reply.json +51 -0
  176. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/cmd-to-mongocryptd.json +46 -0
  177. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/cmd.json +18 -0
  178. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/encrypted-field-config-map.json +25 -0
  179. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/encrypted-payload.json +18 -0
  180. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create-encrypted-collection-with-str-encode-version/mongocryptd-reply.json +52 -0
  181. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/collinfo.json +1 -1
  182. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-field-config-map.json +0 -1
  183. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-payload-v2.json +57 -59
  184. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/mongocryptd-reply.json +63 -64
  185. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/collinfo.json +1 -1
  186. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-field-config-map.json +0 -1
  187. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload-v2.json +64 -66
  188. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/mongocryptd-reply.json +69 -70
  189. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/collinfo.json +1 -1
  190. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/encrypted-payload.json +1 -2
  191. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/cmd-to-mongocryptd.json +1 -2
  192. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/collinfo.json +2 -2
  193. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json +2 -3
  194. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/mongocryptd-reply.json +1 -2
  195. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/cmd-to-mongocryptd.json +0 -1
  196. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/cmd-to-mongod.json +0 -1
  197. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/reply-from-mongocryptd.json +0 -1
  198. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/encrypted-field-map.json +0 -1
  199. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search/cmd.json +9 -0
  200. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-range/double → fle2-insert-text-search}/encrypted-field-map.json +10 -9
  201. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search/encrypted-payload.json +47 -0
  202. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search/mongocryptd-reply.json +55 -0
  203. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-find-range/date → fle2-insert-text-search-with-str-encode-version}/encrypted-field-map.json +12 -10
  204. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search-with-str-encode-version/encrypted-payload.json +47 -0
  205. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-text-search-with-str-encode-version/mongocryptd-reply.json +55 -0
  206. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2-with-str-encode-version/cmd.json +9 -0
  207. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-insert-v2-with-str-encode-version}/encrypted-field-map.json +2 -2
  208. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2-with-str-encode-version/encrypted-payload.json +40 -0
  209. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-insert-v2-with-str-encode-version}/mongocryptd-reply.json +2 -2
  210. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/cmd-to-mongocryptd.json +55 -0
  211. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/cmd.json +22 -0
  212. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/encrypted-field-config-map.json +29 -0
  213. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/encrypted-payload.json +23 -0
  214. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection/mongocryptd-reply.json +61 -0
  215. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/cmd-to-mongocryptd.json +56 -0
  216. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/cmd.json +23 -0
  217. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/encrypted-field-config-map.json +30 -0
  218. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/encrypted-payload.json +23 -0
  219. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-text-search-create-encrypted-collection-with-str-encode-version/mongocryptd-reply.json +62 -0
  220. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneRangeV2.json +9 -1
  221. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneText.json +20 -0
  222. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneTextLarge.json +930 -0
  223. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneV2.json +1 -0
  224. data/ext/libmongocrypt/libmongocrypt/test/data/kms-tests.json +4 -4
  225. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/cmd-to-mongocryptd.json +60 -0
  226. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/cmd.json +14 -0
  227. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/collInfo-c1.json +39 -0
  228. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle/collInfo-c2.json +39 -0
  229. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-facet/cmd.json +20 -0
  230. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-mismatch/cmd.json +14 -0
  231. data/ext/libmongocrypt/libmongocrypt/{bindings/cs/MongoDB.Libmongocrypt.Test/test/example/collection-info.json → test/data/lookup/csfle-mismatch/collInfo-c1.json} +12 -10
  232. data/ext/libmongocrypt/libmongocrypt/{bindings/java/mongocrypt/src/test/resources/collection-info.json → test/data/lookup/csfle-mismatch/collInfo-c3.json} +13 -11
  233. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-nested/cmd.json +24 -0
  234. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-only-schemaMap/cmd-to-mongocryptd.json +60 -0
  235. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-only-schemaMap/cmd.json +14 -0
  236. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-only-schemaMap/schemaMap.json +40 -0
  237. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/cmd-to-mongocryptd.json +60 -0
  238. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/cmd.json +14 -0
  239. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/collInfo-c1.json +39 -0
  240. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-schemaMap/schemaMap.json +21 -0
  241. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-self/cmd-to-mongocryptd.json +34 -0
  242. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-self/cmd.json +14 -0
  243. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-self/collInfo-c1.json +39 -0
  244. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/cmd-to-mongocryptd.json +49 -0
  245. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/cmd.json +14 -0
  246. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/collInfo-c1.json +39 -0
  247. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/collInfo-c2.json +29 -0
  248. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-sibling/reply-from-mongocryptd.json +18 -0
  249. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-unionWith/cmd.json +21 -0
  250. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-view/cmd.json +14 -0
  251. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-view/collInfo-c1.json +39 -0
  252. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/csfle-view/collInfo-v1.json +11 -0
  253. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/cmd-to-mongocryptd.json +65 -0
  254. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/cmd-to-mongod.json +26 -0
  255. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/cmd.json +19 -0
  256. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/collInfo-c1.json +39 -0
  257. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/collInfo-c2.json +39 -0
  258. data/ext/libmongocrypt/libmongocrypt/{bindings/java/mongocrypt/src/test/resources/keys/ABCDEFAB123498761234123456789012-local-document.json → test/data/lookup/mixed/csfle/csfle/key-doc.json} +4 -4
  259. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/csfle/reply-from-mongocryptd.json +33 -0
  260. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/cmd-to-mongocryptd.json +47 -0
  261. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/cmd-to-mongod.json +26 -0
  262. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/cmd.json +19 -0
  263. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/collInfo-c1.json +39 -0
  264. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/collInfo-c2.json +17 -0
  265. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/key-doc.json +30 -0
  266. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/no-schema/reply-from-mongocryptd.json +33 -0
  267. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/cmd-to-mongocryptd.json +70 -0
  268. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/cmd.json +19 -0
  269. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/collInfo-c1.json +39 -0
  270. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/csfle/qe/collInfo-c2.json +42 -0
  271. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/cmd-to-mongocryptd.json +47 -0
  272. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/cmd-to-mongod.json +26 -0
  273. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/cmd.json +19 -0
  274. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/collInfo-c1.json +17 -0
  275. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/collInfo-c2.json +39 -0
  276. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/key-doc.json +30 -0
  277. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/csfle/reply-from-mongocryptd.json +33 -0
  278. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/cmd-to-mongocryptd.json +29 -0
  279. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/cmd-to-mongod.json +19 -0
  280. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/cmd.json +19 -0
  281. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/collInfo-c1.json +17 -0
  282. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/collInfo-c2.json +17 -0
  283. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/no-schema/reply-from-mongocryptd.json +26 -0
  284. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/cmd-to-mongocryptd.json +53 -0
  285. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/cmd-to-mongod.json +58 -0
  286. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/cmd.json +19 -0
  287. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/collInfo-c1.json +17 -0
  288. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/collInfo-c2.json +42 -0
  289. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/key-doc.json +30 -0
  290. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/no-schema/qe/reply-from-mongocryptd.json +65 -0
  291. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/cmd-to-mongocryptd.json +70 -0
  292. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/cmd.json +19 -0
  293. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/collInfo-c1.json +42 -0
  294. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/csfle/collInfo-c2.json +39 -0
  295. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/cmd-to-mongocryptd.json +53 -0
  296. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/cmd-to-mongod.json +56 -0
  297. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/cmd.json +19 -0
  298. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/collInfo-c1.json +42 -0
  299. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/collInfo-c2.json +17 -0
  300. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/key-doc.json +30 -0
  301. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/no-schema/reply-from-mongocryptd.json +63 -0
  302. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/cmd-to-mongocryptd.json +66 -0
  303. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/cmd-to-mongod.json +71 -0
  304. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/cmd.json +19 -0
  305. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/collInfo-c1.json +42 -0
  306. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/collInfo-c2.json +42 -0
  307. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/key-doc.json +30 -0
  308. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/mixed/qe/qe/reply-from-mongocryptd.json +78 -0
  309. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/cmd-to-mongocryptd.json +61 -0
  310. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/cmd-to-mongod.json +14 -0
  311. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/cmd.json +14 -0
  312. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/collInfo-c1.json +42 -0
  313. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/collInfo-c2.json +42 -0
  314. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe/reply-from-mongocryptd.json +68 -0
  315. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/cmd-to-mongocryptd.json +66 -0
  316. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/cmd-to-mongod.json +71 -0
  317. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/cmd.json +19 -0
  318. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/collInfo-c1.json +42 -0
  319. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert-unindexed/encrypted-field-map.json → lookup/qe-encryptedFieldsMap/encryptedFieldsMap.json} +6 -7
  320. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/key-doc.json +30 -0
  321. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-encryptedFieldsMap/reply-from-mongocryptd.json +78 -0
  322. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/cmd-to-mongocryptd.json +46 -0
  323. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/cmd-to-mongod.json +53 -0
  324. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/cmd.json +19 -0
  325. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/collInfo-c1.json +42 -0
  326. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/key-doc.json +30 -0
  327. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-self/reply-from-mongocryptd.json +58 -0
  328. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/cmd-to-mongocryptd.json +66 -0
  329. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/cmd-to-mongod.json +75 -0
  330. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/cmd.json +19 -0
  331. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/collInfo-c1.json +42 -0
  332. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/collInfo-c2.json +42 -0
  333. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/key-doc.json +30 -0
  334. data/ext/libmongocrypt/libmongocrypt/test/data/lookup/qe-with-payload/reply-from-mongocryptd.json +78 -0
  335. data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-create/mongocryptd-ismaster.json → mongocryptd-ismaster-17.json} +1 -1
  336. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-ismaster-26.json +12 -0
  337. data/ext/libmongocrypt/libmongocrypt/test/data/multikey/command.json +7 -0
  338. data/ext/libmongocrypt/libmongocrypt/{bindings/java/mongocrypt/src/test/resources/key-document.json → test/data/multikey/key-document-a.json} +18 -19
  339. data/ext/libmongocrypt/libmongocrypt/test/data/multikey/key-document-b.json +37 -0
  340. data/ext/libmongocrypt/libmongocrypt/test/data/multikey/mongocryptd_reply.json +34 -0
  341. data/ext/libmongocrypt/libmongocrypt/test/data/multikey/schema_map.json +35 -0
  342. data/ext/libmongocrypt/libmongocrypt/{bindings/java/mongocrypt/src/test/resources/kms-reply.txt → test/data/rmd/kms-decrypt-reply-429.txt} +1 -1
  343. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-encryptedFields.json +42 -0
  344. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-encryptedFields2.json +42 -0
  345. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-jsonSchema.json +43 -0
  346. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/collinfo-noSchema.json +21 -0
  347. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/create-with-jsonSchema.json +24 -0
  348. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/encryptedFields.json +20 -0
  349. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/encryptedFields2.json +20 -0
  350. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/encryptedFieldsMap.json +42 -0
  351. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/jsonSchema.json +19 -0
  352. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/jsonSchema2.json +19 -0
  353. data/ext/libmongocrypt/libmongocrypt/test/data/schema-broker/schemaMap.json +40 -0
  354. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +28 -2
  355. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +28 -2
  356. data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +1 -1
  357. data/ext/libmongocrypt/libmongocrypt/test/test-mc-cmp.c +304 -0
  358. data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +70 -0
  359. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-encryption-placeholder.c +468 -0
  360. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-equality-payload-v2.c +20 -1
  361. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev-v2.c +370 -22
  362. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev.c +1 -1
  363. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +25 -1
  364. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +24 -1
  365. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev.c +2 -2
  366. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +2 -2
  367. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-tag-and-encrypted-metadata-block.c +91 -0
  368. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +6 -7
  369. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +32 -33
  370. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +68 -75
  371. data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +2 -2
  372. data/ext/libmongocrypt/libmongocrypt/test/test-mc-schema-broker.c +1124 -0
  373. data/ext/libmongocrypt/libmongocrypt/test/test-mc-text-search-str-encode.c +1207 -0
  374. data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +144 -37
  375. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +13 -14
  376. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.h +2 -2
  377. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +21 -4
  378. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +25 -0
  379. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +3 -20
  380. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +57 -46
  381. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +37 -7
  382. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +21 -0
  383. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +226 -146
  384. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +1529 -1197
  385. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +79 -0
  386. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +160 -0
  387. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +3 -3
  388. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +7 -7
  389. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-responses.c +6 -5
  390. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +750 -110
  391. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +143 -33
  392. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +39 -4
  393. data/ext/libmongocrypt/libmongocrypt/test/test-unicode-fold.c +97 -0
  394. data/lib/libmongocrypt_helper/version.rb +2 -2
  395. metadata +233 -225
  396. data/ext/libmongocrypt/libmongocrypt/bindings/cs/CMakeLists.txt +0 -17
  397. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Driver.snk +0 -0
  398. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/AssemblyInfo.cs +0 -4
  399. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Binary.cs +0 -145
  400. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/BinarySafeHandle.cs +0 -60
  401. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CheckableSafeHandle.cs +0 -46
  402. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CipherCallbacks.cs +0 -168
  403. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/ContextSafeHandle.cs +0 -48
  404. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClient.cs +0 -257
  405. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClientFactory.cs +0 -138
  406. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptContext.cs +0 -214
  407. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptException.cs +0 -37
  408. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptOptions.cs +0 -67
  409. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/HashCallback.cs +0 -59
  410. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/HmacShaCallbacks.cs +0 -96
  411. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/IStatus.cs +0 -26
  412. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsCredentials.cs +0 -53
  413. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsKeyId.cs +0 -91
  414. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsRequest.cs +0 -125
  415. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsRequestCollection.cs +0 -60
  416. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Library.cs +0 -684
  417. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/LibraryLoader.cs +0 -289
  418. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/LibraryLoadingException.cs +0 -34
  419. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/License.txt +0 -14
  420. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/LogLevel.cs +0 -26
  421. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoCryptSafeHandle.cs +0 -48
  422. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.csproj +0 -107
  423. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.ruleset +0 -85
  424. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.targets +0 -21
  425. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/OperatingSystemHelper.cs +0 -59
  426. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Package.include.template.csproj +0 -38
  427. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/PinnedBinary.cs +0 -49
  428. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/SecureRandomCallback.cs +0 -51
  429. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/SigningRSAESPKCSCallback.cs +0 -74
  430. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Status.cs +0 -94
  431. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/StatusSafeHandle.cs +0 -60
  432. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/StyleCop.ruleset +0 -11
  433. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/stylecop.json +0 -8
  434. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/MongoDB.Libmongocrypt.Example.csproj +0 -23
  435. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/Package.include.template.csproj +0 -11
  436. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/Program.cs +0 -442
  437. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/BasicTests.cs +0 -748
  438. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/BsonUtil.cs +0 -82
  439. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/CallbackUtils.cs +0 -37
  440. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/CipherCallbacksTests.cs +0 -46
  441. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/HashCallbackTests.cs +0 -37
  442. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/HmacShaCallbacksTests.cs +0 -37
  443. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/MongoDB.Libmongocrypt.Test.csproj +0 -37
  444. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/Package.include.template.csproj +0 -23
  445. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/SigningRSAESPKCSCallbackTests.cs +0 -64
  446. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/command-reply.json +0 -13
  447. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/encrypted-command-reply.json +0 -16
  448. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/encrypted-command.json +0 -11
  449. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/encrypted-value.json +0 -6
  450. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/key-document.json +0 -36
  451. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/key-filter.json +0 -19
  452. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/list-collections-filter.json +0 -3
  453. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/mongocryptd-command.json +0 -22
  454. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/xunit.runner.json +0 -6
  455. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test32/BasicTests.cs +0 -54
  456. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test32/MongoDB.Libmongocrypt.Test32.csproj +0 -44
  457. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test32/Package.include.template.csproj +0 -23
  458. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.cake +0 -215
  459. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.config +0 -3
  460. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.ps1 +0 -275
  461. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.sh +0 -77
  462. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/README.md +0 -36
  463. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/build.gradle.kts +0 -28
  464. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/src/main/java/com/mongodb/crypt/benchmark/BenchmarkRunner.java +0 -217
  465. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/src/main/resources/keyDocument.json +0 -24
  466. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/build.gradle.kts +0 -354
  467. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.jar +0 -0
  468. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.properties +0 -5
  469. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew +0 -234
  470. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew.bat +0 -89
  471. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/settings.gradle.kts +0 -1
  472. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/BinaryHolder.java +0 -45
  473. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPI.java +0 -1165
  474. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPIHelper.java +0 -96
  475. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CipherCallback.java +0 -92
  476. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/DisposableMemory.java +0 -31
  477. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/JULLogger.java +0 -130
  478. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/Logger.java +0 -144
  479. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/Loggers.java +0 -50
  480. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MacCallback.java +0 -60
  481. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MessageDigestCallback.java +0 -55
  482. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoAwsKmsProviderOptions.java +0 -104
  483. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCrypt.java +0 -100
  484. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptContext.java +0 -137
  485. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptContextImpl.java +0 -164
  486. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptException.java +0 -67
  487. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptImpl.java +0 -423
  488. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptOptions.java +0 -284
  489. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCrypts.java +0 -38
  490. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoDataKeyOptions.java +0 -125
  491. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoExplicitEncryptOptions.java +0 -227
  492. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoKeyDecryptor.java +0 -76
  493. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoKeyDecryptorImpl.java +0 -105
  494. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoLocalKmsProviderOptions.java +0 -83
  495. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoRewrapManyDataKeyOptions.java +0 -104
  496. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SLF4JLogger.java +0 -110
  497. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SecureRandomCallback.java +0 -51
  498. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SigningRSAESPKCSCallback.java +0 -76
  499. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/package-info.java +0 -18
  500. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/resources/META-INF/native-image/jni-config.json +0 -180
  501. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/resources/META-INF/native-image/reflect-config.json +0 -134
  502. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/java/com/mongodb/crypt/capi/MongoCryptTest.java +0 -389
  503. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/command-reply.json +0 -13
  504. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/command.json +0 -6
  505. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-command-reply.json +0 -16
  506. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-command.json +0 -11
  507. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-value.json +0 -6
  508. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/encrypted-payload.json +0 -26
  509. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/key-filter.json +0 -19
  510. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/rangeopts.json +0 -14
  511. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/value-to-encrypt.json +0 -20
  512. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/json-schema.json +0 -15
  513. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-filter-keyAltName.json +0 -14
  514. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-filter.json +0 -19
  515. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/list-collections-filter.json +0 -3
  516. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/mongocryptd-command.json +0 -22
  517. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/mongocryptd-reply.json +0 -18
  518. data/ext/libmongocrypt/libmongocrypt/etc/silk-create-asset-group.sh +0 -70
  519. data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/jsonSchema/cmd.json +0 -20
  520. data/ext/libmongocrypt/libmongocrypt/test/data/collection-info-no-schema.json +0 -19
  521. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/encrypted-field-config-map.json +0 -47
  522. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/insert/cmd.json +0 -8
  523. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/insert/collinfo.json +0 -9
  524. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/ismaster-to-mongocryptd.json +0 -3
  525. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-payload.json +0 -91
  526. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload.json +0 -98
  527. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-contentionFactor1.json +0 -8
  528. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-contentionFactor1.json +0 -8
  529. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-same-user-and-index-key.json +0 -8
  530. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/cmd.json +0 -6
  531. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/encrypted-payload.json +0 -41
  532. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/mongocryptd-reply.json +0 -19
  533. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/cmd.json +0 -10
  534. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/encrypted-payload.json +0 -42
  535. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/mongocryptd-reply.json +0 -50
  536. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/cmd.json +0 -6
  537. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/encrypted-field-map.json +0 -28
  538. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/encrypted-payload.json +0 -42
  539. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/mongocryptd-reply.json +0 -50
  540. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/cmd.json +0 -6
  541. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/encrypted-field-map.json +0 -31
  542. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/encrypted-payload.json +0 -51
  543. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/mongocryptd-reply.json +0 -59
  544. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/cmd.json +0 -8
  545. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/encrypted-payload.json +0 -42
  546. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/mongocryptd-reply.json +0 -50
  547. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/cmd.json +0 -8
  548. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/encrypted-field-map.json +0 -31
  549. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/encrypted-payload.json +0 -45
  550. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/mongocryptd-reply.json +0 -53
  551. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/cmd.json +0 -8
  552. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/encrypted-payload.json +0 -42
  553. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/mongocryptd-reply.json +0 -50
  554. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/cmd.json +0 -8
  555. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/encrypted-field-map.json +0 -28
  556. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/encrypted-payload.json +0 -42
  557. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/mongocryptd-reply.json +0 -50
  558. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload.json +0 -26
  559. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload.json +0 -26
  560. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
  561. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json +0 -26
  562. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload.json +0 -16
  563. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/cmd.json +0 -13
  564. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/encrypted-field-map.json +0 -28
  565. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/encrypted-payload.json +0 -45
  566. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/mongocryptd-reply.json +0 -53
  567. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/cmd.json +0 -9
  568. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/encrypted-field-map.json +0 -28
  569. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/encrypted-payload.json +0 -45
  570. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/mongocryptd-reply.json +0 -53
  571. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/cmd.json +0 -9
  572. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/encrypted-field-map.json +0 -31
  573. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/encrypted-payload.json +0 -54
  574. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/mongocryptd-reply.json +0 -62
  575. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/cmd.json +0 -11
  576. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/encrypted-field-map.json +0 -28
  577. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/encrypted-payload.json +0 -45
  578. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/mongocryptd-reply.json +0 -53
  579. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/cmd.json +0 -11
  580. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/encrypted-field-map.json +0 -31
  581. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/encrypted-payload.json +0 -48
  582. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/mongocryptd-reply.json +0 -56
  583. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/encrypted-payload.json +0 -45
  584. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/mongocryptd-reply.json +0 -53
  585. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/cmd.json +0 -11
  586. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/encrypted-field-map.json +0 -28
  587. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/encrypted-payload.json +0 -45
  588. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/mongocryptd-reply.json +0 -53
  589. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload.json +0 -8
  590. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload.json +0 -8
  591. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json +0 -8
  592. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload.json +0 -8
  593. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/cmd.json +0 -9
  594. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/encrypted-payload.json +0 -14
  595. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/mongocryptd-reply.json +0 -46
  596. data/ext/libmongocrypt/libmongocrypt/test/data/schema.json +0 -19
  597. /data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-explicit/find-indexed.json → explicit-decrypt/FLE2FindEqualityPayload.json} +0 -0
  598. /data/ext/libmongocrypt/libmongocrypt/test/data/{fle2-insert → fle2-insert-text-search-with-str-encode-version}/cmd.json +0 -0
@@ -0,0 +1,2884 @@
1
+ /**
2
+ * Copyright (C) 2025-present MongoDB, Inc.
3
+ *
4
+ * This program is free software: you can redistribute it and/or modify
5
+ * it under the terms of the Server Side Public License, version 1,
6
+ * as published by MongoDB, Inc.
7
+ *
8
+ * This program is distributed in the hope that it will be useful,
9
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ * Server Side Public License for more details.
12
+ *
13
+ * You should have received a copy of the Server Side Public License
14
+ * along with this program. If not, see
15
+ * <http://www.mongodb.com/licensing/server-side-public-license>.
16
+ *
17
+ * As a special exception, the copyright holders give permission to link the
18
+ * code of portions of this program with the OpenSSL library under certain
19
+ * conditions as described in each individual source file and distribute
20
+ * linked combinations including the program with the OpenSSL library. You
21
+ * must comply with the Server Side Public License in all respects for
22
+ * all of the code used other than as permitted herein. If you modify file(s)
23
+ * with this exception, you may extend this exception to your version of the
24
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
25
+ * delete this exception statement from your version. If you delete this
26
+ * exception statement from all source files in the program, then also delete
27
+ * it in the license file.
28
+ *
29
+ * THIS IS A GENERATED FILE, DO NOT MODIFY.
30
+ */
31
+
32
+ #include "bson/bson.h"
33
+ #include "fold.h"
34
+
35
+ bson_unichar_t unicode_codepoint_remove_diacritics(bson_unichar_t codepoint) {
36
+ switch (codepoint) {
37
+ case 0x5e: return 0x0;
38
+ case 0x60: return 0x0;
39
+ case 0xa8: return 0x0;
40
+ case 0xaf: return 0x0;
41
+ case 0xb4: return 0x0;
42
+ case 0xb7: return 0x0;
43
+ case 0xb8: return 0x0;
44
+ case 0xc0: return 0x41;
45
+ case 0xc1: return 0x41;
46
+ case 0xc2: return 0x41;
47
+ case 0xc3: return 0x41;
48
+ case 0xc4: return 0x41;
49
+ case 0xc5: return 0x41;
50
+ case 0xc7: return 0x43;
51
+ case 0xc8: return 0x45;
52
+ case 0xc9: return 0x45;
53
+ case 0xca: return 0x45;
54
+ case 0xcb: return 0x45;
55
+ case 0xcc: return 0x49;
56
+ case 0xcd: return 0x49;
57
+ case 0xce: return 0x49;
58
+ case 0xcf: return 0x49;
59
+ case 0xd1: return 0x4e;
60
+ case 0xd2: return 0x4f;
61
+ case 0xd3: return 0x4f;
62
+ case 0xd4: return 0x4f;
63
+ case 0xd5: return 0x4f;
64
+ case 0xd6: return 0x4f;
65
+ case 0xd9: return 0x55;
66
+ case 0xda: return 0x55;
67
+ case 0xdb: return 0x55;
68
+ case 0xdc: return 0x55;
69
+ case 0xdd: return 0x59;
70
+ case 0xe0: return 0x61;
71
+ case 0xe1: return 0x61;
72
+ case 0xe2: return 0x61;
73
+ case 0xe3: return 0x61;
74
+ case 0xe4: return 0x61;
75
+ case 0xe5: return 0x61;
76
+ case 0xe7: return 0x63;
77
+ case 0xe8: return 0x65;
78
+ case 0xe9: return 0x65;
79
+ case 0xea: return 0x65;
80
+ case 0xeb: return 0x65;
81
+ case 0xec: return 0x69;
82
+ case 0xed: return 0x69;
83
+ case 0xee: return 0x69;
84
+ case 0xef: return 0x69;
85
+ case 0xf1: return 0x6e;
86
+ case 0xf2: return 0x6f;
87
+ case 0xf3: return 0x6f;
88
+ case 0xf4: return 0x6f;
89
+ case 0xf5: return 0x6f;
90
+ case 0xf6: return 0x6f;
91
+ case 0xf9: return 0x75;
92
+ case 0xfa: return 0x75;
93
+ case 0xfb: return 0x75;
94
+ case 0xfc: return 0x75;
95
+ case 0xfd: return 0x79;
96
+ case 0xff: return 0x79;
97
+ case 0x100: return 0x41;
98
+ case 0x101: return 0x61;
99
+ case 0x102: return 0x41;
100
+ case 0x103: return 0x61;
101
+ case 0x104: return 0x41;
102
+ case 0x105: return 0x61;
103
+ case 0x106: return 0x43;
104
+ case 0x107: return 0x63;
105
+ case 0x108: return 0x43;
106
+ case 0x109: return 0x63;
107
+ case 0x10a: return 0x43;
108
+ case 0x10b: return 0x63;
109
+ case 0x10c: return 0x43;
110
+ case 0x10d: return 0x63;
111
+ case 0x10e: return 0x44;
112
+ case 0x10f: return 0x64;
113
+ case 0x112: return 0x45;
114
+ case 0x113: return 0x65;
115
+ case 0x114: return 0x45;
116
+ case 0x115: return 0x65;
117
+ case 0x116: return 0x45;
118
+ case 0x117: return 0x65;
119
+ case 0x118: return 0x45;
120
+ case 0x119: return 0x65;
121
+ case 0x11a: return 0x45;
122
+ case 0x11b: return 0x65;
123
+ case 0x11c: return 0x47;
124
+ case 0x11d: return 0x67;
125
+ case 0x11e: return 0x47;
126
+ case 0x11f: return 0x67;
127
+ case 0x120: return 0x47;
128
+ case 0x121: return 0x67;
129
+ case 0x122: return 0x47;
130
+ case 0x123: return 0x67;
131
+ case 0x124: return 0x48;
132
+ case 0x125: return 0x68;
133
+ case 0x128: return 0x49;
134
+ case 0x129: return 0x69;
135
+ case 0x12a: return 0x49;
136
+ case 0x12b: return 0x69;
137
+ case 0x12c: return 0x49;
138
+ case 0x12d: return 0x69;
139
+ case 0x12e: return 0x49;
140
+ case 0x12f: return 0x69;
141
+ case 0x130: return 0x49;
142
+ case 0x134: return 0x4a;
143
+ case 0x135: return 0x6a;
144
+ case 0x136: return 0x4b;
145
+ case 0x137: return 0x6b;
146
+ case 0x139: return 0x4c;
147
+ case 0x13a: return 0x6c;
148
+ case 0x13b: return 0x4c;
149
+ case 0x13c: return 0x6c;
150
+ case 0x13d: return 0x4c;
151
+ case 0x13e: return 0x6c;
152
+ case 0x143: return 0x4e;
153
+ case 0x144: return 0x6e;
154
+ case 0x145: return 0x4e;
155
+ case 0x146: return 0x6e;
156
+ case 0x147: return 0x4e;
157
+ case 0x148: return 0x6e;
158
+ case 0x14c: return 0x4f;
159
+ case 0x14d: return 0x6f;
160
+ case 0x14e: return 0x4f;
161
+ case 0x14f: return 0x6f;
162
+ case 0x150: return 0x4f;
163
+ case 0x151: return 0x6f;
164
+ case 0x154: return 0x52;
165
+ case 0x155: return 0x72;
166
+ case 0x156: return 0x52;
167
+ case 0x157: return 0x72;
168
+ case 0x158: return 0x52;
169
+ case 0x159: return 0x72;
170
+ case 0x15a: return 0x53;
171
+ case 0x15b: return 0x73;
172
+ case 0x15c: return 0x53;
173
+ case 0x15d: return 0x73;
174
+ case 0x15e: return 0x53;
175
+ case 0x15f: return 0x73;
176
+ case 0x160: return 0x53;
177
+ case 0x161: return 0x73;
178
+ case 0x162: return 0x54;
179
+ case 0x163: return 0x74;
180
+ case 0x164: return 0x54;
181
+ case 0x165: return 0x74;
182
+ case 0x168: return 0x55;
183
+ case 0x169: return 0x75;
184
+ case 0x16a: return 0x55;
185
+ case 0x16b: return 0x75;
186
+ case 0x16c: return 0x55;
187
+ case 0x16d: return 0x75;
188
+ case 0x16e: return 0x55;
189
+ case 0x16f: return 0x75;
190
+ case 0x170: return 0x55;
191
+ case 0x171: return 0x75;
192
+ case 0x172: return 0x55;
193
+ case 0x173: return 0x75;
194
+ case 0x174: return 0x57;
195
+ case 0x175: return 0x77;
196
+ case 0x176: return 0x59;
197
+ case 0x177: return 0x79;
198
+ case 0x178: return 0x59;
199
+ case 0x179: return 0x5a;
200
+ case 0x17a: return 0x7a;
201
+ case 0x17b: return 0x5a;
202
+ case 0x17c: return 0x7a;
203
+ case 0x17d: return 0x5a;
204
+ case 0x17e: return 0x7a;
205
+ case 0x1a0: return 0x4f;
206
+ case 0x1a1: return 0x6f;
207
+ case 0x1af: return 0x55;
208
+ case 0x1b0: return 0x75;
209
+ case 0x1cd: return 0x41;
210
+ case 0x1ce: return 0x61;
211
+ case 0x1cf: return 0x49;
212
+ case 0x1d0: return 0x69;
213
+ case 0x1d1: return 0x4f;
214
+ case 0x1d2: return 0x6f;
215
+ case 0x1d3: return 0x55;
216
+ case 0x1d4: return 0x75;
217
+ case 0x1d5: return 0x55;
218
+ case 0x1d6: return 0x75;
219
+ case 0x1d7: return 0x55;
220
+ case 0x1d8: return 0x75;
221
+ case 0x1d9: return 0x55;
222
+ case 0x1da: return 0x75;
223
+ case 0x1db: return 0x55;
224
+ case 0x1dc: return 0x75;
225
+ case 0x1de: return 0x41;
226
+ case 0x1df: return 0x61;
227
+ case 0x1e0: return 0x41;
228
+ case 0x1e1: return 0x61;
229
+ case 0x1e2: return 0xc6;
230
+ case 0x1e3: return 0xe6;
231
+ case 0x1e6: return 0x47;
232
+ case 0x1e7: return 0x67;
233
+ case 0x1e8: return 0x4b;
234
+ case 0x1e9: return 0x6b;
235
+ case 0x1ea: return 0x4f;
236
+ case 0x1eb: return 0x6f;
237
+ case 0x1ec: return 0x4f;
238
+ case 0x1ed: return 0x6f;
239
+ case 0x1ee: return 0x1b7;
240
+ case 0x1ef: return 0x292;
241
+ case 0x1f0: return 0x6a;
242
+ case 0x1f4: return 0x47;
243
+ case 0x1f5: return 0x67;
244
+ case 0x1f8: return 0x4e;
245
+ case 0x1f9: return 0x6e;
246
+ case 0x1fa: return 0x41;
247
+ case 0x1fb: return 0x61;
248
+ case 0x1fc: return 0xc6;
249
+ case 0x1fd: return 0xe6;
250
+ case 0x1fe: return 0xd8;
251
+ case 0x1ff: return 0xf8;
252
+ case 0x200: return 0x41;
253
+ case 0x201: return 0x61;
254
+ case 0x202: return 0x41;
255
+ case 0x203: return 0x61;
256
+ case 0x204: return 0x45;
257
+ case 0x205: return 0x65;
258
+ case 0x206: return 0x45;
259
+ case 0x207: return 0x65;
260
+ case 0x208: return 0x49;
261
+ case 0x209: return 0x69;
262
+ case 0x20a: return 0x49;
263
+ case 0x20b: return 0x69;
264
+ case 0x20c: return 0x4f;
265
+ case 0x20d: return 0x6f;
266
+ case 0x20e: return 0x4f;
267
+ case 0x20f: return 0x6f;
268
+ case 0x210: return 0x52;
269
+ case 0x211: return 0x72;
270
+ case 0x212: return 0x52;
271
+ case 0x213: return 0x72;
272
+ case 0x214: return 0x55;
273
+ case 0x215: return 0x75;
274
+ case 0x216: return 0x55;
275
+ case 0x217: return 0x75;
276
+ case 0x218: return 0x53;
277
+ case 0x219: return 0x73;
278
+ case 0x21a: return 0x54;
279
+ case 0x21b: return 0x74;
280
+ case 0x21e: return 0x48;
281
+ case 0x21f: return 0x68;
282
+ case 0x226: return 0x41;
283
+ case 0x227: return 0x61;
284
+ case 0x228: return 0x45;
285
+ case 0x229: return 0x65;
286
+ case 0x22a: return 0x4f;
287
+ case 0x22b: return 0x6f;
288
+ case 0x22c: return 0x4f;
289
+ case 0x22d: return 0x6f;
290
+ case 0x22e: return 0x4f;
291
+ case 0x22f: return 0x6f;
292
+ case 0x230: return 0x4f;
293
+ case 0x231: return 0x6f;
294
+ case 0x232: return 0x59;
295
+ case 0x233: return 0x79;
296
+ case 0x2b0: return 0x0;
297
+ case 0x2b1: return 0x0;
298
+ case 0x2b2: return 0x0;
299
+ case 0x2b3: return 0x0;
300
+ case 0x2b4: return 0x0;
301
+ case 0x2b5: return 0x0;
302
+ case 0x2b6: return 0x0;
303
+ case 0x2b7: return 0x0;
304
+ case 0x2b8: return 0x0;
305
+ case 0x2b9: return 0x0;
306
+ case 0x2ba: return 0x0;
307
+ case 0x2bb: return 0x0;
308
+ case 0x2bc: return 0x0;
309
+ case 0x2bd: return 0x0;
310
+ case 0x2be: return 0x0;
311
+ case 0x2bf: return 0x0;
312
+ case 0x2c0: return 0x0;
313
+ case 0x2c1: return 0x0;
314
+ case 0x2c2: return 0x0;
315
+ case 0x2c3: return 0x0;
316
+ case 0x2c4: return 0x0;
317
+ case 0x2c5: return 0x0;
318
+ case 0x2c6: return 0x0;
319
+ case 0x2c7: return 0x0;
320
+ case 0x2c8: return 0x0;
321
+ case 0x2c9: return 0x0;
322
+ case 0x2ca: return 0x0;
323
+ case 0x2cb: return 0x0;
324
+ case 0x2cc: return 0x0;
325
+ case 0x2cd: return 0x0;
326
+ case 0x2ce: return 0x0;
327
+ case 0x2cf: return 0x0;
328
+ case 0x2d0: return 0x0;
329
+ case 0x2d1: return 0x0;
330
+ case 0x2d2: return 0x0;
331
+ case 0x2d3: return 0x0;
332
+ case 0x2d4: return 0x0;
333
+ case 0x2d5: return 0x0;
334
+ case 0x2d6: return 0x0;
335
+ case 0x2d7: return 0x0;
336
+ case 0x2d8: return 0x0;
337
+ case 0x2d9: return 0x0;
338
+ case 0x2da: return 0x0;
339
+ case 0x2db: return 0x0;
340
+ case 0x2dc: return 0x0;
341
+ case 0x2dd: return 0x0;
342
+ case 0x2de: return 0x0;
343
+ case 0x2df: return 0x0;
344
+ case 0x2e0: return 0x0;
345
+ case 0x2e1: return 0x0;
346
+ case 0x2e2: return 0x0;
347
+ case 0x2e3: return 0x0;
348
+ case 0x2e4: return 0x0;
349
+ case 0x2e5: return 0x0;
350
+ case 0x2e6: return 0x0;
351
+ case 0x2e7: return 0x0;
352
+ case 0x2e8: return 0x0;
353
+ case 0x2e9: return 0x0;
354
+ case 0x2ea: return 0x0;
355
+ case 0x2eb: return 0x0;
356
+ case 0x2ec: return 0x0;
357
+ case 0x2ed: return 0x0;
358
+ case 0x2ee: return 0x0;
359
+ case 0x2ef: return 0x0;
360
+ case 0x2f0: return 0x0;
361
+ case 0x2f1: return 0x0;
362
+ case 0x2f2: return 0x0;
363
+ case 0x2f3: return 0x0;
364
+ case 0x2f4: return 0x0;
365
+ case 0x2f5: return 0x0;
366
+ case 0x2f6: return 0x0;
367
+ case 0x2f7: return 0x0;
368
+ case 0x2f8: return 0x0;
369
+ case 0x2f9: return 0x0;
370
+ case 0x2fa: return 0x0;
371
+ case 0x2fb: return 0x0;
372
+ case 0x2fc: return 0x0;
373
+ case 0x2fd: return 0x0;
374
+ case 0x2fe: return 0x0;
375
+ case 0x2ff: return 0x0;
376
+ case 0x300: return 0x0;
377
+ case 0x301: return 0x0;
378
+ case 0x302: return 0x0;
379
+ case 0x303: return 0x0;
380
+ case 0x304: return 0x0;
381
+ case 0x305: return 0x0;
382
+ case 0x306: return 0x0;
383
+ case 0x307: return 0x0;
384
+ case 0x308: return 0x0;
385
+ case 0x309: return 0x0;
386
+ case 0x30a: return 0x0;
387
+ case 0x30b: return 0x0;
388
+ case 0x30c: return 0x0;
389
+ case 0x30d: return 0x0;
390
+ case 0x30e: return 0x0;
391
+ case 0x30f: return 0x0;
392
+ case 0x310: return 0x0;
393
+ case 0x311: return 0x0;
394
+ case 0x312: return 0x0;
395
+ case 0x313: return 0x0;
396
+ case 0x314: return 0x0;
397
+ case 0x315: return 0x0;
398
+ case 0x316: return 0x0;
399
+ case 0x317: return 0x0;
400
+ case 0x318: return 0x0;
401
+ case 0x319: return 0x0;
402
+ case 0x31a: return 0x0;
403
+ case 0x31b: return 0x0;
404
+ case 0x31c: return 0x0;
405
+ case 0x31d: return 0x0;
406
+ case 0x31e: return 0x0;
407
+ case 0x31f: return 0x0;
408
+ case 0x320: return 0x0;
409
+ case 0x321: return 0x0;
410
+ case 0x322: return 0x0;
411
+ case 0x323: return 0x0;
412
+ case 0x324: return 0x0;
413
+ case 0x325: return 0x0;
414
+ case 0x326: return 0x0;
415
+ case 0x327: return 0x0;
416
+ case 0x328: return 0x0;
417
+ case 0x329: return 0x0;
418
+ case 0x32a: return 0x0;
419
+ case 0x32b: return 0x0;
420
+ case 0x32c: return 0x0;
421
+ case 0x32d: return 0x0;
422
+ case 0x32e: return 0x0;
423
+ case 0x32f: return 0x0;
424
+ case 0x330: return 0x0;
425
+ case 0x331: return 0x0;
426
+ case 0x332: return 0x0;
427
+ case 0x333: return 0x0;
428
+ case 0x334: return 0x0;
429
+ case 0x335: return 0x0;
430
+ case 0x336: return 0x0;
431
+ case 0x337: return 0x0;
432
+ case 0x338: return 0x0;
433
+ case 0x339: return 0x0;
434
+ case 0x33a: return 0x0;
435
+ case 0x33b: return 0x0;
436
+ case 0x33c: return 0x0;
437
+ case 0x33d: return 0x0;
438
+ case 0x33e: return 0x0;
439
+ case 0x33f: return 0x0;
440
+ case 0x340: return 0x0;
441
+ case 0x341: return 0x0;
442
+ case 0x342: return 0x0;
443
+ case 0x343: return 0x0;
444
+ case 0x344: return 0x0;
445
+ case 0x345: return 0x0;
446
+ case 0x346: return 0x0;
447
+ case 0x347: return 0x0;
448
+ case 0x348: return 0x0;
449
+ case 0x349: return 0x0;
450
+ case 0x34a: return 0x0;
451
+ case 0x34b: return 0x0;
452
+ case 0x34c: return 0x0;
453
+ case 0x34d: return 0x0;
454
+ case 0x34e: return 0x0;
455
+ case 0x350: return 0x0;
456
+ case 0x351: return 0x0;
457
+ case 0x352: return 0x0;
458
+ case 0x353: return 0x0;
459
+ case 0x354: return 0x0;
460
+ case 0x355: return 0x0;
461
+ case 0x356: return 0x0;
462
+ case 0x357: return 0x0;
463
+ case 0x35d: return 0x0;
464
+ case 0x35e: return 0x0;
465
+ case 0x35f: return 0x0;
466
+ case 0x360: return 0x0;
467
+ case 0x361: return 0x0;
468
+ case 0x362: return 0x0;
469
+ case 0x374: return 0x0;
470
+ case 0x375: return 0x0;
471
+ case 0x37a: return 0x0;
472
+ case 0x37e: return 0x3b;
473
+ case 0x384: return 0x0;
474
+ case 0x385: return 0x0;
475
+ case 0x386: return 0x391;
476
+ case 0x388: return 0x395;
477
+ case 0x389: return 0x397;
478
+ case 0x38a: return 0x399;
479
+ case 0x38c: return 0x39f;
480
+ case 0x38e: return 0x3a5;
481
+ case 0x38f: return 0x3a9;
482
+ case 0x390: return 0x3b9;
483
+ case 0x3aa: return 0x399;
484
+ case 0x3ab: return 0x3a5;
485
+ case 0x3ac: return 0x3b1;
486
+ case 0x3ad: return 0x3b5;
487
+ case 0x3ae: return 0x3b7;
488
+ case 0x3af: return 0x3b9;
489
+ case 0x3b0: return 0x3c5;
490
+ case 0x3ca: return 0x3b9;
491
+ case 0x3cb: return 0x3c5;
492
+ case 0x3cc: return 0x3bf;
493
+ case 0x3cd: return 0x3c5;
494
+ case 0x3ce: return 0x3c9;
495
+ case 0x3d3: return 0x3d2;
496
+ case 0x3d4: return 0x3d2;
497
+ case 0x400: return 0x415;
498
+ case 0x401: return 0x415;
499
+ case 0x403: return 0x413;
500
+ case 0x407: return 0x406;
501
+ case 0x40c: return 0x41a;
502
+ case 0x40d: return 0x418;
503
+ case 0x40e: return 0x423;
504
+ case 0x419: return 0x418;
505
+ case 0x439: return 0x438;
506
+ case 0x450: return 0x435;
507
+ case 0x451: return 0x435;
508
+ case 0x453: return 0x433;
509
+ case 0x457: return 0x456;
510
+ case 0x45c: return 0x43a;
511
+ case 0x45d: return 0x438;
512
+ case 0x45e: return 0x443;
513
+ case 0x476: return 0x474;
514
+ case 0x477: return 0x475;
515
+ case 0x483: return 0x0;
516
+ case 0x484: return 0x0;
517
+ case 0x485: return 0x0;
518
+ case 0x486: return 0x0;
519
+ case 0x487: return 0x0;
520
+ case 0x4c1: return 0x416;
521
+ case 0x4c2: return 0x436;
522
+ case 0x4d0: return 0x410;
523
+ case 0x4d1: return 0x430;
524
+ case 0x4d2: return 0x410;
525
+ case 0x4d3: return 0x430;
526
+ case 0x4d6: return 0x415;
527
+ case 0x4d7: return 0x435;
528
+ case 0x4da: return 0x4d8;
529
+ case 0x4db: return 0x4d9;
530
+ case 0x4dc: return 0x416;
531
+ case 0x4dd: return 0x436;
532
+ case 0x4de: return 0x417;
533
+ case 0x4df: return 0x437;
534
+ case 0x4e2: return 0x418;
535
+ case 0x4e3: return 0x438;
536
+ case 0x4e4: return 0x418;
537
+ case 0x4e5: return 0x438;
538
+ case 0x4e6: return 0x41e;
539
+ case 0x4e7: return 0x43e;
540
+ case 0x4ea: return 0x4e8;
541
+ case 0x4eb: return 0x4e9;
542
+ case 0x4ec: return 0x42d;
543
+ case 0x4ed: return 0x44d;
544
+ case 0x4ee: return 0x423;
545
+ case 0x4ef: return 0x443;
546
+ case 0x4f0: return 0x423;
547
+ case 0x4f1: return 0x443;
548
+ case 0x4f2: return 0x423;
549
+ case 0x4f3: return 0x443;
550
+ case 0x4f4: return 0x427;
551
+ case 0x4f5: return 0x447;
552
+ case 0x4f8: return 0x42b;
553
+ case 0x4f9: return 0x44b;
554
+ case 0x559: return 0x0;
555
+ case 0x591: return 0x0;
556
+ case 0x592: return 0x0;
557
+ case 0x593: return 0x0;
558
+ case 0x594: return 0x0;
559
+ case 0x595: return 0x0;
560
+ case 0x596: return 0x0;
561
+ case 0x597: return 0x0;
562
+ case 0x598: return 0x0;
563
+ case 0x599: return 0x0;
564
+ case 0x59a: return 0x0;
565
+ case 0x59b: return 0x0;
566
+ case 0x59c: return 0x0;
567
+ case 0x59d: return 0x0;
568
+ case 0x59e: return 0x0;
569
+ case 0x59f: return 0x0;
570
+ case 0x5a0: return 0x0;
571
+ case 0x5a1: return 0x0;
572
+ case 0x5a3: return 0x0;
573
+ case 0x5a4: return 0x0;
574
+ case 0x5a5: return 0x0;
575
+ case 0x5a6: return 0x0;
576
+ case 0x5a7: return 0x0;
577
+ case 0x5a8: return 0x0;
578
+ case 0x5a9: return 0x0;
579
+ case 0x5aa: return 0x0;
580
+ case 0x5ab: return 0x0;
581
+ case 0x5ac: return 0x0;
582
+ case 0x5ad: return 0x0;
583
+ case 0x5ae: return 0x0;
584
+ case 0x5af: return 0x0;
585
+ case 0x5b0: return 0x0;
586
+ case 0x5b1: return 0x0;
587
+ case 0x5b2: return 0x0;
588
+ case 0x5b3: return 0x0;
589
+ case 0x5b4: return 0x0;
590
+ case 0x5b5: return 0x0;
591
+ case 0x5b6: return 0x0;
592
+ case 0x5b7: return 0x0;
593
+ case 0x5b8: return 0x0;
594
+ case 0x5b9: return 0x0;
595
+ case 0x5ba: return 0x0;
596
+ case 0x5bb: return 0x0;
597
+ case 0x5bc: return 0x0;
598
+ case 0x5bd: return 0x0;
599
+ case 0x5bf: return 0x0;
600
+ case 0x5c1: return 0x0;
601
+ case 0x5c2: return 0x0;
602
+ case 0x5c4: return 0x0;
603
+ case 0x64b: return 0x0;
604
+ case 0x64c: return 0x0;
605
+ case 0x64d: return 0x0;
606
+ case 0x64e: return 0x0;
607
+ case 0x64f: return 0x0;
608
+ case 0x650: return 0x0;
609
+ case 0x651: return 0x0;
610
+ case 0x652: return 0x0;
611
+ case 0x657: return 0x0;
612
+ case 0x658: return 0x0;
613
+ case 0x6df: return 0x0;
614
+ case 0x6e0: return 0x0;
615
+ case 0x6e5: return 0x0;
616
+ case 0x6e6: return 0x0;
617
+ case 0x6ea: return 0x0;
618
+ case 0x6eb: return 0x0;
619
+ case 0x6ec: return 0x0;
620
+ case 0x730: return 0x0;
621
+ case 0x731: return 0x0;
622
+ case 0x732: return 0x0;
623
+ case 0x733: return 0x0;
624
+ case 0x734: return 0x0;
625
+ case 0x735: return 0x0;
626
+ case 0x736: return 0x0;
627
+ case 0x737: return 0x0;
628
+ case 0x738: return 0x0;
629
+ case 0x739: return 0x0;
630
+ case 0x73a: return 0x0;
631
+ case 0x73b: return 0x0;
632
+ case 0x73c: return 0x0;
633
+ case 0x73d: return 0x0;
634
+ case 0x73e: return 0x0;
635
+ case 0x73f: return 0x0;
636
+ case 0x740: return 0x0;
637
+ case 0x741: return 0x0;
638
+ case 0x742: return 0x0;
639
+ case 0x743: return 0x0;
640
+ case 0x744: return 0x0;
641
+ case 0x745: return 0x0;
642
+ case 0x746: return 0x0;
643
+ case 0x747: return 0x0;
644
+ case 0x748: return 0x0;
645
+ case 0x749: return 0x0;
646
+ case 0x74a: return 0x0;
647
+ case 0x7a6: return 0x0;
648
+ case 0x7a7: return 0x0;
649
+ case 0x7a8: return 0x0;
650
+ case 0x7a9: return 0x0;
651
+ case 0x7aa: return 0x0;
652
+ case 0x7ab: return 0x0;
653
+ case 0x7ac: return 0x0;
654
+ case 0x7ad: return 0x0;
655
+ case 0x7ae: return 0x0;
656
+ case 0x7af: return 0x0;
657
+ case 0x7b0: return 0x0;
658
+ case 0x7eb: return 0x0;
659
+ case 0x7ec: return 0x0;
660
+ case 0x7ed: return 0x0;
661
+ case 0x7ee: return 0x0;
662
+ case 0x7ef: return 0x0;
663
+ case 0x7f0: return 0x0;
664
+ case 0x7f1: return 0x0;
665
+ case 0x7f2: return 0x0;
666
+ case 0x7f3: return 0x0;
667
+ case 0x7f4: return 0x0;
668
+ case 0x7f5: return 0x0;
669
+ case 0x818: return 0x0;
670
+ case 0x819: return 0x0;
671
+ case 0x8e3: return 0x0;
672
+ case 0x8e4: return 0x0;
673
+ case 0x8e5: return 0x0;
674
+ case 0x8e6: return 0x0;
675
+ case 0x8e7: return 0x0;
676
+ case 0x8e8: return 0x0;
677
+ case 0x8e9: return 0x0;
678
+ case 0x8ea: return 0x0;
679
+ case 0x8eb: return 0x0;
680
+ case 0x8ec: return 0x0;
681
+ case 0x8ed: return 0x0;
682
+ case 0x8ee: return 0x0;
683
+ case 0x8ef: return 0x0;
684
+ case 0x8f0: return 0x0;
685
+ case 0x8f1: return 0x0;
686
+ case 0x8f2: return 0x0;
687
+ case 0x8f3: return 0x0;
688
+ case 0x8f4: return 0x0;
689
+ case 0x8f5: return 0x0;
690
+ case 0x8f6: return 0x0;
691
+ case 0x8f7: return 0x0;
692
+ case 0x8f8: return 0x0;
693
+ case 0x8f9: return 0x0;
694
+ case 0x8fa: return 0x0;
695
+ case 0x8fb: return 0x0;
696
+ case 0x8fc: return 0x0;
697
+ case 0x8fd: return 0x0;
698
+ case 0x8fe: return 0x0;
699
+ case 0x929: return 0x928;
700
+ case 0x931: return 0x930;
701
+ case 0x934: return 0x933;
702
+ case 0x93c: return 0x0;
703
+ case 0x94d: return 0x0;
704
+ case 0x951: return 0x0;
705
+ case 0x952: return 0x0;
706
+ case 0x953: return 0x0;
707
+ case 0x954: return 0x0;
708
+ case 0x958: return 0x915;
709
+ case 0x959: return 0x916;
710
+ case 0x95a: return 0x917;
711
+ case 0x95b: return 0x91c;
712
+ case 0x95c: return 0x921;
713
+ case 0x95d: return 0x922;
714
+ case 0x95e: return 0x92b;
715
+ case 0x95f: return 0x92f;
716
+ case 0x971: return 0x0;
717
+ case 0x9bc: return 0x0;
718
+ case 0x9cd: return 0x0;
719
+ case 0x9dc: return 0x9a1;
720
+ case 0x9dd: return 0x9a2;
721
+ case 0x9df: return 0x9af;
722
+ case 0xa33: return 0xa32;
723
+ case 0xa36: return 0xa38;
724
+ case 0xa3c: return 0x0;
725
+ case 0xa4d: return 0x0;
726
+ case 0xa59: return 0xa16;
727
+ case 0xa5a: return 0xa17;
728
+ case 0xa5b: return 0xa1c;
729
+ case 0xa5e: return 0xa2b;
730
+ case 0xabc: return 0x0;
731
+ case 0xacd: return 0x0;
732
+ case 0xafd: return 0x0;
733
+ case 0xafe: return 0x0;
734
+ case 0xaff: return 0x0;
735
+ case 0xb3c: return 0x0;
736
+ case 0xb4d: return 0x0;
737
+ case 0xb55: return 0x0;
738
+ case 0xb5c: return 0xb21;
739
+ case 0xb5d: return 0xb22;
740
+ case 0xbcd: return 0x0;
741
+ case 0xc4d: return 0x0;
742
+ case 0xcbc: return 0x0;
743
+ case 0xccd: return 0x0;
744
+ case 0xd3b: return 0x0;
745
+ case 0xd3c: return 0x0;
746
+ case 0xd4d: return 0x0;
747
+ case 0xdca: return 0x0;
748
+ case 0xdda: return 0xdd9;
749
+ case 0xddd: return 0xddc;
750
+ case 0xe47: return 0x0;
751
+ case 0xe48: return 0x0;
752
+ case 0xe49: return 0x0;
753
+ case 0xe4a: return 0x0;
754
+ case 0xe4b: return 0x0;
755
+ case 0xe4c: return 0x0;
756
+ case 0xe4e: return 0x0;
757
+ case 0xeba: return 0x0;
758
+ case 0xec8: return 0x0;
759
+ case 0xec9: return 0x0;
760
+ case 0xeca: return 0x0;
761
+ case 0xecb: return 0x0;
762
+ case 0xecc: return 0x0;
763
+ case 0xf18: return 0x0;
764
+ case 0xf19: return 0x0;
765
+ case 0xf35: return 0x0;
766
+ case 0xf37: return 0x0;
767
+ case 0xf39: return 0x0;
768
+ case 0xf3e: return 0x0;
769
+ case 0xf3f: return 0x0;
770
+ case 0xf82: return 0x0;
771
+ case 0xf83: return 0x0;
772
+ case 0xf84: return 0x0;
773
+ case 0xf86: return 0x0;
774
+ case 0xf87: return 0x0;
775
+ case 0xfc6: return 0x0;
776
+ case 0x1037: return 0x0;
777
+ case 0x1039: return 0x0;
778
+ case 0x103a: return 0x0;
779
+ case 0x1063: return 0x0;
780
+ case 0x1064: return 0x0;
781
+ case 0x1069: return 0x0;
782
+ case 0x106a: return 0x0;
783
+ case 0x106b: return 0x0;
784
+ case 0x106c: return 0x0;
785
+ case 0x106d: return 0x0;
786
+ case 0x1087: return 0x0;
787
+ case 0x1088: return 0x0;
788
+ case 0x1089: return 0x0;
789
+ case 0x108a: return 0x0;
790
+ case 0x108b: return 0x0;
791
+ case 0x108c: return 0x0;
792
+ case 0x108d: return 0x0;
793
+ case 0x108f: return 0x0;
794
+ case 0x109a: return 0x0;
795
+ case 0x109b: return 0x0;
796
+ case 0x135d: return 0x0;
797
+ case 0x135e: return 0x0;
798
+ case 0x135f: return 0x0;
799
+ case 0x17c9: return 0x0;
800
+ case 0x17ca: return 0x0;
801
+ case 0x17cb: return 0x0;
802
+ case 0x17cc: return 0x0;
803
+ case 0x17cd: return 0x0;
804
+ case 0x17ce: return 0x0;
805
+ case 0x17cf: return 0x0;
806
+ case 0x17d0: return 0x0;
807
+ case 0x17d1: return 0x0;
808
+ case 0x17d2: return 0x0;
809
+ case 0x17d3: return 0x0;
810
+ case 0x17dd: return 0x0;
811
+ case 0x1939: return 0x0;
812
+ case 0x193a: return 0x0;
813
+ case 0x193b: return 0x0;
814
+ case 0x1a75: return 0x0;
815
+ case 0x1a76: return 0x0;
816
+ case 0x1a77: return 0x0;
817
+ case 0x1a78: return 0x0;
818
+ case 0x1a79: return 0x0;
819
+ case 0x1a7a: return 0x0;
820
+ case 0x1a7b: return 0x0;
821
+ case 0x1a7c: return 0x0;
822
+ case 0x1a7f: return 0x0;
823
+ case 0x1ab0: return 0x0;
824
+ case 0x1ab1: return 0x0;
825
+ case 0x1ab2: return 0x0;
826
+ case 0x1ab3: return 0x0;
827
+ case 0x1ab4: return 0x0;
828
+ case 0x1ab5: return 0x0;
829
+ case 0x1ab6: return 0x0;
830
+ case 0x1ab7: return 0x0;
831
+ case 0x1ab8: return 0x0;
832
+ case 0x1ab9: return 0x0;
833
+ case 0x1aba: return 0x0;
834
+ case 0x1abb: return 0x0;
835
+ case 0x1abc: return 0x0;
836
+ case 0x1abd: return 0x0;
837
+ case 0x1b34: return 0x0;
838
+ case 0x1b44: return 0x0;
839
+ case 0x1b6b: return 0x0;
840
+ case 0x1b6c: return 0x0;
841
+ case 0x1b6d: return 0x0;
842
+ case 0x1b6e: return 0x0;
843
+ case 0x1b6f: return 0x0;
844
+ case 0x1b70: return 0x0;
845
+ case 0x1b71: return 0x0;
846
+ case 0x1b72: return 0x0;
847
+ case 0x1b73: return 0x0;
848
+ case 0x1baa: return 0x0;
849
+ case 0x1bab: return 0x0;
850
+ case 0x1c36: return 0x0;
851
+ case 0x1c37: return 0x0;
852
+ case 0x1c78: return 0x0;
853
+ case 0x1c79: return 0x0;
854
+ case 0x1c7a: return 0x0;
855
+ case 0x1c7b: return 0x0;
856
+ case 0x1c7c: return 0x0;
857
+ case 0x1c7d: return 0x0;
858
+ case 0x1cd0: return 0x0;
859
+ case 0x1cd1: return 0x0;
860
+ case 0x1cd2: return 0x0;
861
+ case 0x1cd3: return 0x0;
862
+ case 0x1cd4: return 0x0;
863
+ case 0x1cd5: return 0x0;
864
+ case 0x1cd6: return 0x0;
865
+ case 0x1cd7: return 0x0;
866
+ case 0x1cd8: return 0x0;
867
+ case 0x1cd9: return 0x0;
868
+ case 0x1cda: return 0x0;
869
+ case 0x1cdb: return 0x0;
870
+ case 0x1cdc: return 0x0;
871
+ case 0x1cdd: return 0x0;
872
+ case 0x1cde: return 0x0;
873
+ case 0x1cdf: return 0x0;
874
+ case 0x1ce0: return 0x0;
875
+ case 0x1ce1: return 0x0;
876
+ case 0x1ce2: return 0x0;
877
+ case 0x1ce3: return 0x0;
878
+ case 0x1ce4: return 0x0;
879
+ case 0x1ce5: return 0x0;
880
+ case 0x1ce6: return 0x0;
881
+ case 0x1ce7: return 0x0;
882
+ case 0x1ce8: return 0x0;
883
+ case 0x1ced: return 0x0;
884
+ case 0x1cf4: return 0x0;
885
+ case 0x1cf7: return 0x0;
886
+ case 0x1cf8: return 0x0;
887
+ case 0x1cf9: return 0x0;
888
+ case 0x1d2c: return 0x0;
889
+ case 0x1d2d: return 0x0;
890
+ case 0x1d2e: return 0x0;
891
+ case 0x1d2f: return 0x0;
892
+ case 0x1d30: return 0x0;
893
+ case 0x1d31: return 0x0;
894
+ case 0x1d32: return 0x0;
895
+ case 0x1d33: return 0x0;
896
+ case 0x1d34: return 0x0;
897
+ case 0x1d35: return 0x0;
898
+ case 0x1d36: return 0x0;
899
+ case 0x1d37: return 0x0;
900
+ case 0x1d38: return 0x0;
901
+ case 0x1d39: return 0x0;
902
+ case 0x1d3a: return 0x0;
903
+ case 0x1d3b: return 0x0;
904
+ case 0x1d3c: return 0x0;
905
+ case 0x1d3d: return 0x0;
906
+ case 0x1d3e: return 0x0;
907
+ case 0x1d3f: return 0x0;
908
+ case 0x1d40: return 0x0;
909
+ case 0x1d41: return 0x0;
910
+ case 0x1d42: return 0x0;
911
+ case 0x1d43: return 0x0;
912
+ case 0x1d44: return 0x0;
913
+ case 0x1d45: return 0x0;
914
+ case 0x1d46: return 0x0;
915
+ case 0x1d47: return 0x0;
916
+ case 0x1d48: return 0x0;
917
+ case 0x1d49: return 0x0;
918
+ case 0x1d4a: return 0x0;
919
+ case 0x1d4b: return 0x0;
920
+ case 0x1d4c: return 0x0;
921
+ case 0x1d4d: return 0x0;
922
+ case 0x1d4e: return 0x0;
923
+ case 0x1d4f: return 0x0;
924
+ case 0x1d50: return 0x0;
925
+ case 0x1d51: return 0x0;
926
+ case 0x1d52: return 0x0;
927
+ case 0x1d53: return 0x0;
928
+ case 0x1d54: return 0x0;
929
+ case 0x1d55: return 0x0;
930
+ case 0x1d56: return 0x0;
931
+ case 0x1d57: return 0x0;
932
+ case 0x1d58: return 0x0;
933
+ case 0x1d59: return 0x0;
934
+ case 0x1d5a: return 0x0;
935
+ case 0x1d5b: return 0x0;
936
+ case 0x1d5c: return 0x0;
937
+ case 0x1d5d: return 0x0;
938
+ case 0x1d5e: return 0x0;
939
+ case 0x1d5f: return 0x0;
940
+ case 0x1d60: return 0x0;
941
+ case 0x1d61: return 0x0;
942
+ case 0x1d62: return 0x0;
943
+ case 0x1d63: return 0x0;
944
+ case 0x1d64: return 0x0;
945
+ case 0x1d65: return 0x0;
946
+ case 0x1d66: return 0x0;
947
+ case 0x1d67: return 0x0;
948
+ case 0x1d68: return 0x0;
949
+ case 0x1d69: return 0x0;
950
+ case 0x1d6a: return 0x0;
951
+ case 0x1dc4: return 0x0;
952
+ case 0x1dc5: return 0x0;
953
+ case 0x1dc6: return 0x0;
954
+ case 0x1dc7: return 0x0;
955
+ case 0x1dc8: return 0x0;
956
+ case 0x1dc9: return 0x0;
957
+ case 0x1dca: return 0x0;
958
+ case 0x1dcb: return 0x0;
959
+ case 0x1dcc: return 0x0;
960
+ case 0x1dcd: return 0x0;
961
+ case 0x1dce: return 0x0;
962
+ case 0x1dcf: return 0x0;
963
+ case 0x1df5: return 0x0;
964
+ case 0x1df6: return 0x0;
965
+ case 0x1df7: return 0x0;
966
+ case 0x1df8: return 0x0;
967
+ case 0x1df9: return 0x0;
968
+ case 0x1dfd: return 0x0;
969
+ case 0x1dfe: return 0x0;
970
+ case 0x1dff: return 0x0;
971
+ case 0x1e00: return 0x41;
972
+ case 0x1e01: return 0x61;
973
+ case 0x1e02: return 0x42;
974
+ case 0x1e03: return 0x62;
975
+ case 0x1e04: return 0x42;
976
+ case 0x1e05: return 0x62;
977
+ case 0x1e06: return 0x42;
978
+ case 0x1e07: return 0x62;
979
+ case 0x1e08: return 0x43;
980
+ case 0x1e09: return 0x63;
981
+ case 0x1e0a: return 0x44;
982
+ case 0x1e0b: return 0x64;
983
+ case 0x1e0c: return 0x44;
984
+ case 0x1e0d: return 0x64;
985
+ case 0x1e0e: return 0x44;
986
+ case 0x1e0f: return 0x64;
987
+ case 0x1e10: return 0x44;
988
+ case 0x1e11: return 0x64;
989
+ case 0x1e12: return 0x44;
990
+ case 0x1e13: return 0x64;
991
+ case 0x1e14: return 0x45;
992
+ case 0x1e15: return 0x65;
993
+ case 0x1e16: return 0x45;
994
+ case 0x1e17: return 0x65;
995
+ case 0x1e18: return 0x45;
996
+ case 0x1e19: return 0x65;
997
+ case 0x1e1a: return 0x45;
998
+ case 0x1e1b: return 0x65;
999
+ case 0x1e1c: return 0x45;
1000
+ case 0x1e1d: return 0x65;
1001
+ case 0x1e1e: return 0x46;
1002
+ case 0x1e1f: return 0x66;
1003
+ case 0x1e20: return 0x47;
1004
+ case 0x1e21: return 0x67;
1005
+ case 0x1e22: return 0x48;
1006
+ case 0x1e23: return 0x68;
1007
+ case 0x1e24: return 0x48;
1008
+ case 0x1e25: return 0x68;
1009
+ case 0x1e26: return 0x48;
1010
+ case 0x1e27: return 0x68;
1011
+ case 0x1e28: return 0x48;
1012
+ case 0x1e29: return 0x68;
1013
+ case 0x1e2a: return 0x48;
1014
+ case 0x1e2b: return 0x68;
1015
+ case 0x1e2c: return 0x49;
1016
+ case 0x1e2d: return 0x69;
1017
+ case 0x1e2e: return 0x49;
1018
+ case 0x1e2f: return 0x69;
1019
+ case 0x1e30: return 0x4b;
1020
+ case 0x1e31: return 0x6b;
1021
+ case 0x1e32: return 0x4b;
1022
+ case 0x1e33: return 0x6b;
1023
+ case 0x1e34: return 0x4b;
1024
+ case 0x1e35: return 0x6b;
1025
+ case 0x1e36: return 0x4c;
1026
+ case 0x1e37: return 0x6c;
1027
+ case 0x1e38: return 0x4c;
1028
+ case 0x1e39: return 0x6c;
1029
+ case 0x1e3a: return 0x4c;
1030
+ case 0x1e3b: return 0x6c;
1031
+ case 0x1e3c: return 0x4c;
1032
+ case 0x1e3d: return 0x6c;
1033
+ case 0x1e3e: return 0x4d;
1034
+ case 0x1e3f: return 0x6d;
1035
+ case 0x1e40: return 0x4d;
1036
+ case 0x1e41: return 0x6d;
1037
+ case 0x1e42: return 0x4d;
1038
+ case 0x1e43: return 0x6d;
1039
+ case 0x1e44: return 0x4e;
1040
+ case 0x1e45: return 0x6e;
1041
+ case 0x1e46: return 0x4e;
1042
+ case 0x1e47: return 0x6e;
1043
+ case 0x1e48: return 0x4e;
1044
+ case 0x1e49: return 0x6e;
1045
+ case 0x1e4a: return 0x4e;
1046
+ case 0x1e4b: return 0x6e;
1047
+ case 0x1e4c: return 0x4f;
1048
+ case 0x1e4d: return 0x6f;
1049
+ case 0x1e4e: return 0x4f;
1050
+ case 0x1e4f: return 0x6f;
1051
+ case 0x1e50: return 0x4f;
1052
+ case 0x1e51: return 0x6f;
1053
+ case 0x1e52: return 0x4f;
1054
+ case 0x1e53: return 0x6f;
1055
+ case 0x1e54: return 0x50;
1056
+ case 0x1e55: return 0x70;
1057
+ case 0x1e56: return 0x50;
1058
+ case 0x1e57: return 0x70;
1059
+ case 0x1e58: return 0x52;
1060
+ case 0x1e59: return 0x72;
1061
+ case 0x1e5a: return 0x52;
1062
+ case 0x1e5b: return 0x72;
1063
+ case 0x1e5c: return 0x52;
1064
+ case 0x1e5d: return 0x72;
1065
+ case 0x1e5e: return 0x52;
1066
+ case 0x1e5f: return 0x72;
1067
+ case 0x1e60: return 0x53;
1068
+ case 0x1e61: return 0x73;
1069
+ case 0x1e62: return 0x53;
1070
+ case 0x1e63: return 0x73;
1071
+ case 0x1e64: return 0x53;
1072
+ case 0x1e65: return 0x73;
1073
+ case 0x1e66: return 0x53;
1074
+ case 0x1e67: return 0x73;
1075
+ case 0x1e68: return 0x53;
1076
+ case 0x1e69: return 0x73;
1077
+ case 0x1e6a: return 0x54;
1078
+ case 0x1e6b: return 0x74;
1079
+ case 0x1e6c: return 0x54;
1080
+ case 0x1e6d: return 0x74;
1081
+ case 0x1e6e: return 0x54;
1082
+ case 0x1e6f: return 0x74;
1083
+ case 0x1e70: return 0x54;
1084
+ case 0x1e71: return 0x74;
1085
+ case 0x1e72: return 0x55;
1086
+ case 0x1e73: return 0x75;
1087
+ case 0x1e74: return 0x55;
1088
+ case 0x1e75: return 0x75;
1089
+ case 0x1e76: return 0x55;
1090
+ case 0x1e77: return 0x75;
1091
+ case 0x1e78: return 0x55;
1092
+ case 0x1e79: return 0x75;
1093
+ case 0x1e7a: return 0x55;
1094
+ case 0x1e7b: return 0x75;
1095
+ case 0x1e7c: return 0x56;
1096
+ case 0x1e7d: return 0x76;
1097
+ case 0x1e7e: return 0x56;
1098
+ case 0x1e7f: return 0x76;
1099
+ case 0x1e80: return 0x57;
1100
+ case 0x1e81: return 0x77;
1101
+ case 0x1e82: return 0x57;
1102
+ case 0x1e83: return 0x77;
1103
+ case 0x1e84: return 0x57;
1104
+ case 0x1e85: return 0x77;
1105
+ case 0x1e86: return 0x57;
1106
+ case 0x1e87: return 0x77;
1107
+ case 0x1e88: return 0x57;
1108
+ case 0x1e89: return 0x77;
1109
+ case 0x1e8a: return 0x58;
1110
+ case 0x1e8b: return 0x78;
1111
+ case 0x1e8c: return 0x58;
1112
+ case 0x1e8d: return 0x78;
1113
+ case 0x1e8e: return 0x59;
1114
+ case 0x1e8f: return 0x79;
1115
+ case 0x1e90: return 0x5a;
1116
+ case 0x1e91: return 0x7a;
1117
+ case 0x1e92: return 0x5a;
1118
+ case 0x1e93: return 0x7a;
1119
+ case 0x1e94: return 0x5a;
1120
+ case 0x1e95: return 0x7a;
1121
+ case 0x1e96: return 0x68;
1122
+ case 0x1e97: return 0x74;
1123
+ case 0x1e98: return 0x77;
1124
+ case 0x1e99: return 0x79;
1125
+ case 0x1e9b: return 0x17f;
1126
+ case 0x1ea0: return 0x41;
1127
+ case 0x1ea1: return 0x61;
1128
+ case 0x1ea2: return 0x41;
1129
+ case 0x1ea3: return 0x61;
1130
+ case 0x1ea4: return 0x41;
1131
+ case 0x1ea5: return 0x61;
1132
+ case 0x1ea6: return 0x41;
1133
+ case 0x1ea7: return 0x61;
1134
+ case 0x1ea8: return 0x41;
1135
+ case 0x1ea9: return 0x61;
1136
+ case 0x1eaa: return 0x41;
1137
+ case 0x1eab: return 0x61;
1138
+ case 0x1eac: return 0x41;
1139
+ case 0x1ead: return 0x61;
1140
+ case 0x1eae: return 0x41;
1141
+ case 0x1eaf: return 0x61;
1142
+ case 0x1eb0: return 0x41;
1143
+ case 0x1eb1: return 0x61;
1144
+ case 0x1eb2: return 0x41;
1145
+ case 0x1eb3: return 0x61;
1146
+ case 0x1eb4: return 0x41;
1147
+ case 0x1eb5: return 0x61;
1148
+ case 0x1eb6: return 0x41;
1149
+ case 0x1eb7: return 0x61;
1150
+ case 0x1eb8: return 0x45;
1151
+ case 0x1eb9: return 0x65;
1152
+ case 0x1eba: return 0x45;
1153
+ case 0x1ebb: return 0x65;
1154
+ case 0x1ebc: return 0x45;
1155
+ case 0x1ebd: return 0x65;
1156
+ case 0x1ebe: return 0x45;
1157
+ case 0x1ebf: return 0x65;
1158
+ case 0x1ec0: return 0x45;
1159
+ case 0x1ec1: return 0x65;
1160
+ case 0x1ec2: return 0x45;
1161
+ case 0x1ec3: return 0x65;
1162
+ case 0x1ec4: return 0x45;
1163
+ case 0x1ec5: return 0x65;
1164
+ case 0x1ec6: return 0x45;
1165
+ case 0x1ec7: return 0x65;
1166
+ case 0x1ec8: return 0x49;
1167
+ case 0x1ec9: return 0x69;
1168
+ case 0x1eca: return 0x49;
1169
+ case 0x1ecb: return 0x69;
1170
+ case 0x1ecc: return 0x4f;
1171
+ case 0x1ecd: return 0x6f;
1172
+ case 0x1ece: return 0x4f;
1173
+ case 0x1ecf: return 0x6f;
1174
+ case 0x1ed0: return 0x4f;
1175
+ case 0x1ed1: return 0x6f;
1176
+ case 0x1ed2: return 0x4f;
1177
+ case 0x1ed3: return 0x6f;
1178
+ case 0x1ed4: return 0x4f;
1179
+ case 0x1ed5: return 0x6f;
1180
+ case 0x1ed6: return 0x4f;
1181
+ case 0x1ed7: return 0x6f;
1182
+ case 0x1ed8: return 0x4f;
1183
+ case 0x1ed9: return 0x6f;
1184
+ case 0x1eda: return 0x4f;
1185
+ case 0x1edb: return 0x6f;
1186
+ case 0x1edc: return 0x4f;
1187
+ case 0x1edd: return 0x6f;
1188
+ case 0x1ede: return 0x4f;
1189
+ case 0x1edf: return 0x6f;
1190
+ case 0x1ee0: return 0x4f;
1191
+ case 0x1ee1: return 0x6f;
1192
+ case 0x1ee2: return 0x4f;
1193
+ case 0x1ee3: return 0x6f;
1194
+ case 0x1ee4: return 0x55;
1195
+ case 0x1ee5: return 0x75;
1196
+ case 0x1ee6: return 0x55;
1197
+ case 0x1ee7: return 0x75;
1198
+ case 0x1ee8: return 0x55;
1199
+ case 0x1ee9: return 0x75;
1200
+ case 0x1eea: return 0x55;
1201
+ case 0x1eeb: return 0x75;
1202
+ case 0x1eec: return 0x55;
1203
+ case 0x1eed: return 0x75;
1204
+ case 0x1eee: return 0x55;
1205
+ case 0x1eef: return 0x75;
1206
+ case 0x1ef0: return 0x55;
1207
+ case 0x1ef1: return 0x75;
1208
+ case 0x1ef2: return 0x59;
1209
+ case 0x1ef3: return 0x79;
1210
+ case 0x1ef4: return 0x59;
1211
+ case 0x1ef5: return 0x79;
1212
+ case 0x1ef6: return 0x59;
1213
+ case 0x1ef7: return 0x79;
1214
+ case 0x1ef8: return 0x59;
1215
+ case 0x1ef9: return 0x79;
1216
+ case 0x1f00: return 0x3b1;
1217
+ case 0x1f01: return 0x3b1;
1218
+ case 0x1f02: return 0x3b1;
1219
+ case 0x1f03: return 0x3b1;
1220
+ case 0x1f04: return 0x3b1;
1221
+ case 0x1f05: return 0x3b1;
1222
+ case 0x1f06: return 0x3b1;
1223
+ case 0x1f07: return 0x3b1;
1224
+ case 0x1f08: return 0x391;
1225
+ case 0x1f09: return 0x391;
1226
+ case 0x1f0a: return 0x391;
1227
+ case 0x1f0b: return 0x391;
1228
+ case 0x1f0c: return 0x391;
1229
+ case 0x1f0d: return 0x391;
1230
+ case 0x1f0e: return 0x391;
1231
+ case 0x1f0f: return 0x391;
1232
+ case 0x1f10: return 0x3b5;
1233
+ case 0x1f11: return 0x3b5;
1234
+ case 0x1f12: return 0x3b5;
1235
+ case 0x1f13: return 0x3b5;
1236
+ case 0x1f14: return 0x3b5;
1237
+ case 0x1f15: return 0x3b5;
1238
+ case 0x1f18: return 0x395;
1239
+ case 0x1f19: return 0x395;
1240
+ case 0x1f1a: return 0x395;
1241
+ case 0x1f1b: return 0x395;
1242
+ case 0x1f1c: return 0x395;
1243
+ case 0x1f1d: return 0x395;
1244
+ case 0x1f20: return 0x3b7;
1245
+ case 0x1f21: return 0x3b7;
1246
+ case 0x1f22: return 0x3b7;
1247
+ case 0x1f23: return 0x3b7;
1248
+ case 0x1f24: return 0x3b7;
1249
+ case 0x1f25: return 0x3b7;
1250
+ case 0x1f26: return 0x3b7;
1251
+ case 0x1f27: return 0x3b7;
1252
+ case 0x1f28: return 0x397;
1253
+ case 0x1f29: return 0x397;
1254
+ case 0x1f2a: return 0x397;
1255
+ case 0x1f2b: return 0x397;
1256
+ case 0x1f2c: return 0x397;
1257
+ case 0x1f2d: return 0x397;
1258
+ case 0x1f2e: return 0x397;
1259
+ case 0x1f2f: return 0x397;
1260
+ case 0x1f30: return 0x3b9;
1261
+ case 0x1f31: return 0x3b9;
1262
+ case 0x1f32: return 0x3b9;
1263
+ case 0x1f33: return 0x3b9;
1264
+ case 0x1f34: return 0x3b9;
1265
+ case 0x1f35: return 0x3b9;
1266
+ case 0x1f36: return 0x3b9;
1267
+ case 0x1f37: return 0x3b9;
1268
+ case 0x1f38: return 0x399;
1269
+ case 0x1f39: return 0x399;
1270
+ case 0x1f3a: return 0x399;
1271
+ case 0x1f3b: return 0x399;
1272
+ case 0x1f3c: return 0x399;
1273
+ case 0x1f3d: return 0x399;
1274
+ case 0x1f3e: return 0x399;
1275
+ case 0x1f3f: return 0x399;
1276
+ case 0x1f40: return 0x3bf;
1277
+ case 0x1f41: return 0x3bf;
1278
+ case 0x1f42: return 0x3bf;
1279
+ case 0x1f43: return 0x3bf;
1280
+ case 0x1f44: return 0x3bf;
1281
+ case 0x1f45: return 0x3bf;
1282
+ case 0x1f48: return 0x39f;
1283
+ case 0x1f49: return 0x39f;
1284
+ case 0x1f4a: return 0x39f;
1285
+ case 0x1f4b: return 0x39f;
1286
+ case 0x1f4c: return 0x39f;
1287
+ case 0x1f4d: return 0x39f;
1288
+ case 0x1f50: return 0x3c5;
1289
+ case 0x1f51: return 0x3c5;
1290
+ case 0x1f52: return 0x3c5;
1291
+ case 0x1f53: return 0x3c5;
1292
+ case 0x1f54: return 0x3c5;
1293
+ case 0x1f55: return 0x3c5;
1294
+ case 0x1f56: return 0x3c5;
1295
+ case 0x1f57: return 0x3c5;
1296
+ case 0x1f59: return 0x3a5;
1297
+ case 0x1f5b: return 0x3a5;
1298
+ case 0x1f5d: return 0x3a5;
1299
+ case 0x1f5f: return 0x3a5;
1300
+ case 0x1f60: return 0x3c9;
1301
+ case 0x1f61: return 0x3c9;
1302
+ case 0x1f62: return 0x3c9;
1303
+ case 0x1f63: return 0x3c9;
1304
+ case 0x1f64: return 0x3c9;
1305
+ case 0x1f65: return 0x3c9;
1306
+ case 0x1f66: return 0x3c9;
1307
+ case 0x1f67: return 0x3c9;
1308
+ case 0x1f68: return 0x3a9;
1309
+ case 0x1f69: return 0x3a9;
1310
+ case 0x1f6a: return 0x3a9;
1311
+ case 0x1f6b: return 0x3a9;
1312
+ case 0x1f6c: return 0x3a9;
1313
+ case 0x1f6d: return 0x3a9;
1314
+ case 0x1f6e: return 0x3a9;
1315
+ case 0x1f6f: return 0x3a9;
1316
+ case 0x1f70: return 0x3b1;
1317
+ case 0x1f71: return 0x3b1;
1318
+ case 0x1f72: return 0x3b5;
1319
+ case 0x1f73: return 0x3b5;
1320
+ case 0x1f74: return 0x3b7;
1321
+ case 0x1f75: return 0x3b7;
1322
+ case 0x1f76: return 0x3b9;
1323
+ case 0x1f77: return 0x3b9;
1324
+ case 0x1f78: return 0x3bf;
1325
+ case 0x1f79: return 0x3bf;
1326
+ case 0x1f7a: return 0x3c5;
1327
+ case 0x1f7b: return 0x3c5;
1328
+ case 0x1f7c: return 0x3c9;
1329
+ case 0x1f7d: return 0x3c9;
1330
+ case 0x1f80: return 0x3b1;
1331
+ case 0x1f81: return 0x3b1;
1332
+ case 0x1f82: return 0x3b1;
1333
+ case 0x1f83: return 0x3b1;
1334
+ case 0x1f84: return 0x3b1;
1335
+ case 0x1f85: return 0x3b1;
1336
+ case 0x1f86: return 0x3b1;
1337
+ case 0x1f87: return 0x3b1;
1338
+ case 0x1f88: return 0x391;
1339
+ case 0x1f89: return 0x391;
1340
+ case 0x1f8a: return 0x391;
1341
+ case 0x1f8b: return 0x391;
1342
+ case 0x1f8c: return 0x391;
1343
+ case 0x1f8d: return 0x391;
1344
+ case 0x1f8e: return 0x391;
1345
+ case 0x1f8f: return 0x391;
1346
+ case 0x1f90: return 0x3b7;
1347
+ case 0x1f91: return 0x3b7;
1348
+ case 0x1f92: return 0x3b7;
1349
+ case 0x1f93: return 0x3b7;
1350
+ case 0x1f94: return 0x3b7;
1351
+ case 0x1f95: return 0x3b7;
1352
+ case 0x1f96: return 0x3b7;
1353
+ case 0x1f97: return 0x3b7;
1354
+ case 0x1f98: return 0x397;
1355
+ case 0x1f99: return 0x397;
1356
+ case 0x1f9a: return 0x397;
1357
+ case 0x1f9b: return 0x397;
1358
+ case 0x1f9c: return 0x397;
1359
+ case 0x1f9d: return 0x397;
1360
+ case 0x1f9e: return 0x397;
1361
+ case 0x1f9f: return 0x397;
1362
+ case 0x1fa0: return 0x3c9;
1363
+ case 0x1fa1: return 0x3c9;
1364
+ case 0x1fa2: return 0x3c9;
1365
+ case 0x1fa3: return 0x3c9;
1366
+ case 0x1fa4: return 0x3c9;
1367
+ case 0x1fa5: return 0x3c9;
1368
+ case 0x1fa6: return 0x3c9;
1369
+ case 0x1fa7: return 0x3c9;
1370
+ case 0x1fa8: return 0x3a9;
1371
+ case 0x1fa9: return 0x3a9;
1372
+ case 0x1faa: return 0x3a9;
1373
+ case 0x1fab: return 0x3a9;
1374
+ case 0x1fac: return 0x3a9;
1375
+ case 0x1fad: return 0x3a9;
1376
+ case 0x1fae: return 0x3a9;
1377
+ case 0x1faf: return 0x3a9;
1378
+ case 0x1fb0: return 0x3b1;
1379
+ case 0x1fb1: return 0x3b1;
1380
+ case 0x1fb2: return 0x3b1;
1381
+ case 0x1fb3: return 0x3b1;
1382
+ case 0x1fb4: return 0x3b1;
1383
+ case 0x1fb6: return 0x3b1;
1384
+ case 0x1fb7: return 0x3b1;
1385
+ case 0x1fb8: return 0x391;
1386
+ case 0x1fb9: return 0x391;
1387
+ case 0x1fba: return 0x391;
1388
+ case 0x1fbb: return 0x391;
1389
+ case 0x1fbc: return 0x391;
1390
+ case 0x1fbd: return 0x0;
1391
+ case 0x1fbe: return 0x3b9;
1392
+ case 0x1fbf: return 0x0;
1393
+ case 0x1fc0: return 0x0;
1394
+ case 0x1fc1: return 0x0;
1395
+ case 0x1fc2: return 0x3b7;
1396
+ case 0x1fc3: return 0x3b7;
1397
+ case 0x1fc4: return 0x3b7;
1398
+ case 0x1fc6: return 0x3b7;
1399
+ case 0x1fc7: return 0x3b7;
1400
+ case 0x1fc8: return 0x395;
1401
+ case 0x1fc9: return 0x395;
1402
+ case 0x1fca: return 0x397;
1403
+ case 0x1fcb: return 0x397;
1404
+ case 0x1fcc: return 0x397;
1405
+ case 0x1fcd: return 0x0;
1406
+ case 0x1fce: return 0x0;
1407
+ case 0x1fcf: return 0x0;
1408
+ case 0x1fd0: return 0x3b9;
1409
+ case 0x1fd1: return 0x3b9;
1410
+ case 0x1fd2: return 0x3b9;
1411
+ case 0x1fd3: return 0x3b9;
1412
+ case 0x1fd6: return 0x3b9;
1413
+ case 0x1fd7: return 0x3b9;
1414
+ case 0x1fd8: return 0x399;
1415
+ case 0x1fd9: return 0x399;
1416
+ case 0x1fda: return 0x399;
1417
+ case 0x1fdb: return 0x399;
1418
+ case 0x1fdd: return 0x0;
1419
+ case 0x1fde: return 0x0;
1420
+ case 0x1fdf: return 0x0;
1421
+ case 0x1fe0: return 0x3c5;
1422
+ case 0x1fe1: return 0x3c5;
1423
+ case 0x1fe2: return 0x3c5;
1424
+ case 0x1fe3: return 0x3c5;
1425
+ case 0x1fe4: return 0x3c1;
1426
+ case 0x1fe5: return 0x3c1;
1427
+ case 0x1fe6: return 0x3c5;
1428
+ case 0x1fe7: return 0x3c5;
1429
+ case 0x1fe8: return 0x3a5;
1430
+ case 0x1fe9: return 0x3a5;
1431
+ case 0x1fea: return 0x3a5;
1432
+ case 0x1feb: return 0x3a5;
1433
+ case 0x1fec: return 0x3a1;
1434
+ case 0x1fed: return 0x0;
1435
+ case 0x1fee: return 0x0;
1436
+ case 0x1fef: return 0x0;
1437
+ case 0x1ff2: return 0x3c9;
1438
+ case 0x1ff3: return 0x3c9;
1439
+ case 0x1ff4: return 0x3c9;
1440
+ case 0x1ff6: return 0x3c9;
1441
+ case 0x1ff7: return 0x3c9;
1442
+ case 0x1ff8: return 0x39f;
1443
+ case 0x1ff9: return 0x39f;
1444
+ case 0x1ffa: return 0x3a9;
1445
+ case 0x1ffb: return 0x3a9;
1446
+ case 0x1ffc: return 0x3a9;
1447
+ case 0x1ffd: return 0x0;
1448
+ case 0x1ffe: return 0x0;
1449
+ case 0x2000: return 0x2002;
1450
+ case 0x2001: return 0x2003;
1451
+ case 0x2126: return 0x3a9;
1452
+ case 0x212a: return 0x4b;
1453
+ case 0x212b: return 0x41;
1454
+ case 0x219a: return 0x2190;
1455
+ case 0x219b: return 0x2192;
1456
+ case 0x21ae: return 0x2194;
1457
+ case 0x21cd: return 0x21d0;
1458
+ case 0x21ce: return 0x21d4;
1459
+ case 0x21cf: return 0x21d2;
1460
+ case 0x2204: return 0x2203;
1461
+ case 0x2209: return 0x2208;
1462
+ case 0x220c: return 0x220b;
1463
+ case 0x2224: return 0x2223;
1464
+ case 0x2226: return 0x2225;
1465
+ case 0x2241: return 0x223c;
1466
+ case 0x2244: return 0x2243;
1467
+ case 0x2247: return 0x2245;
1468
+ case 0x2249: return 0x2248;
1469
+ case 0x2260: return 0x3d;
1470
+ case 0x2262: return 0x2261;
1471
+ case 0x226d: return 0x224d;
1472
+ case 0x226e: return 0x3c;
1473
+ case 0x226f: return 0x3e;
1474
+ case 0x2270: return 0x2264;
1475
+ case 0x2271: return 0x2265;
1476
+ case 0x2274: return 0x2272;
1477
+ case 0x2275: return 0x2273;
1478
+ case 0x2278: return 0x2276;
1479
+ case 0x2279: return 0x2277;
1480
+ case 0x2280: return 0x227a;
1481
+ case 0x2281: return 0x227b;
1482
+ case 0x2284: return 0x2282;
1483
+ case 0x2285: return 0x2283;
1484
+ case 0x2288: return 0x2286;
1485
+ case 0x2289: return 0x2287;
1486
+ case 0x22ac: return 0x22a2;
1487
+ case 0x22ad: return 0x22a8;
1488
+ case 0x22ae: return 0x22a9;
1489
+ case 0x22af: return 0x22ab;
1490
+ case 0x22e0: return 0x227c;
1491
+ case 0x22e1: return 0x227d;
1492
+ case 0x22e2: return 0x2291;
1493
+ case 0x22e3: return 0x2292;
1494
+ case 0x22ea: return 0x22b2;
1495
+ case 0x22eb: return 0x22b3;
1496
+ case 0x22ec: return 0x22b4;
1497
+ case 0x22ed: return 0x22b5;
1498
+ case 0x2329: return 0x3008;
1499
+ case 0x232a: return 0x3009;
1500
+ case 0x2adc: return 0x2add;
1501
+ case 0x2cef: return 0x0;
1502
+ case 0x2cf0: return 0x0;
1503
+ case 0x2cf1: return 0x0;
1504
+ case 0x2e2f: return 0x0;
1505
+ case 0x302a: return 0x0;
1506
+ case 0x302b: return 0x0;
1507
+ case 0x302c: return 0x0;
1508
+ case 0x302d: return 0x0;
1509
+ case 0x302e: return 0x0;
1510
+ case 0x302f: return 0x0;
1511
+ case 0x304c: return 0x304b;
1512
+ case 0x304e: return 0x304d;
1513
+ case 0x3050: return 0x304f;
1514
+ case 0x3052: return 0x3051;
1515
+ case 0x3054: return 0x3053;
1516
+ case 0x3056: return 0x3055;
1517
+ case 0x3058: return 0x3057;
1518
+ case 0x305a: return 0x3059;
1519
+ case 0x305c: return 0x305b;
1520
+ case 0x305e: return 0x305d;
1521
+ case 0x3060: return 0x305f;
1522
+ case 0x3062: return 0x3061;
1523
+ case 0x3065: return 0x3064;
1524
+ case 0x3067: return 0x3066;
1525
+ case 0x3069: return 0x3068;
1526
+ case 0x3070: return 0x306f;
1527
+ case 0x3071: return 0x306f;
1528
+ case 0x3073: return 0x3072;
1529
+ case 0x3074: return 0x3072;
1530
+ case 0x3076: return 0x3075;
1531
+ case 0x3077: return 0x3075;
1532
+ case 0x3079: return 0x3078;
1533
+ case 0x307a: return 0x3078;
1534
+ case 0x307c: return 0x307b;
1535
+ case 0x307d: return 0x307b;
1536
+ case 0x3094: return 0x3046;
1537
+ case 0x3099: return 0x0;
1538
+ case 0x309a: return 0x0;
1539
+ case 0x309b: return 0x0;
1540
+ case 0x309c: return 0x0;
1541
+ case 0x309e: return 0x309d;
1542
+ case 0x30ac: return 0x30ab;
1543
+ case 0x30ae: return 0x30ad;
1544
+ case 0x30b0: return 0x30af;
1545
+ case 0x30b2: return 0x30b1;
1546
+ case 0x30b4: return 0x30b3;
1547
+ case 0x30b6: return 0x30b5;
1548
+ case 0x30b8: return 0x30b7;
1549
+ case 0x30ba: return 0x30b9;
1550
+ case 0x30bc: return 0x30bb;
1551
+ case 0x30be: return 0x30bd;
1552
+ case 0x30c0: return 0x30bf;
1553
+ case 0x30c2: return 0x30c1;
1554
+ case 0x30c5: return 0x30c4;
1555
+ case 0x30c7: return 0x30c6;
1556
+ case 0x30c9: return 0x30c8;
1557
+ case 0x30d0: return 0x30cf;
1558
+ case 0x30d1: return 0x30cf;
1559
+ case 0x30d3: return 0x30d2;
1560
+ case 0x30d4: return 0x30d2;
1561
+ case 0x30d6: return 0x30d5;
1562
+ case 0x30d7: return 0x30d5;
1563
+ case 0x30d9: return 0x30d8;
1564
+ case 0x30da: return 0x30d8;
1565
+ case 0x30dc: return 0x30db;
1566
+ case 0x30dd: return 0x30db;
1567
+ case 0x30f4: return 0x30a6;
1568
+ case 0x30f7: return 0x30ef;
1569
+ case 0x30f8: return 0x30f0;
1570
+ case 0x30f9: return 0x30f1;
1571
+ case 0x30fa: return 0x30f2;
1572
+ case 0x30fc: return 0x0;
1573
+ case 0x30fe: return 0x30fd;
1574
+ case 0xa66f: return 0x0;
1575
+ case 0xa67c: return 0x0;
1576
+ case 0xa67d: return 0x0;
1577
+ case 0xa67f: return 0x0;
1578
+ case 0xa69c: return 0x0;
1579
+ case 0xa69d: return 0x0;
1580
+ case 0xa6f0: return 0x0;
1581
+ case 0xa6f1: return 0x0;
1582
+ case 0xa700: return 0x0;
1583
+ case 0xa701: return 0x0;
1584
+ case 0xa702: return 0x0;
1585
+ case 0xa703: return 0x0;
1586
+ case 0xa704: return 0x0;
1587
+ case 0xa705: return 0x0;
1588
+ case 0xa706: return 0x0;
1589
+ case 0xa707: return 0x0;
1590
+ case 0xa708: return 0x0;
1591
+ case 0xa709: return 0x0;
1592
+ case 0xa70a: return 0x0;
1593
+ case 0xa70b: return 0x0;
1594
+ case 0xa70c: return 0x0;
1595
+ case 0xa70d: return 0x0;
1596
+ case 0xa70e: return 0x0;
1597
+ case 0xa70f: return 0x0;
1598
+ case 0xa710: return 0x0;
1599
+ case 0xa711: return 0x0;
1600
+ case 0xa712: return 0x0;
1601
+ case 0xa713: return 0x0;
1602
+ case 0xa714: return 0x0;
1603
+ case 0xa715: return 0x0;
1604
+ case 0xa716: return 0x0;
1605
+ case 0xa717: return 0x0;
1606
+ case 0xa718: return 0x0;
1607
+ case 0xa719: return 0x0;
1608
+ case 0xa71a: return 0x0;
1609
+ case 0xa71b: return 0x0;
1610
+ case 0xa71c: return 0x0;
1611
+ case 0xa71d: return 0x0;
1612
+ case 0xa71e: return 0x0;
1613
+ case 0xa71f: return 0x0;
1614
+ case 0xa720: return 0x0;
1615
+ case 0xa721: return 0x0;
1616
+ case 0xa788: return 0x0;
1617
+ case 0xa789: return 0x0;
1618
+ case 0xa78a: return 0x0;
1619
+ case 0xa7f8: return 0x0;
1620
+ case 0xa7f9: return 0x0;
1621
+ case 0xa8c4: return 0x0;
1622
+ case 0xa8e0: return 0x0;
1623
+ case 0xa8e1: return 0x0;
1624
+ case 0xa8e2: return 0x0;
1625
+ case 0xa8e3: return 0x0;
1626
+ case 0xa8e4: return 0x0;
1627
+ case 0xa8e5: return 0x0;
1628
+ case 0xa8e6: return 0x0;
1629
+ case 0xa8e7: return 0x0;
1630
+ case 0xa8e8: return 0x0;
1631
+ case 0xa8e9: return 0x0;
1632
+ case 0xa8ea: return 0x0;
1633
+ case 0xa8eb: return 0x0;
1634
+ case 0xa8ec: return 0x0;
1635
+ case 0xa8ed: return 0x0;
1636
+ case 0xa8ee: return 0x0;
1637
+ case 0xa8ef: return 0x0;
1638
+ case 0xa8f0: return 0x0;
1639
+ case 0xa8f1: return 0x0;
1640
+ case 0xa92b: return 0x0;
1641
+ case 0xa92c: return 0x0;
1642
+ case 0xa92d: return 0x0;
1643
+ case 0xa92e: return 0x0;
1644
+ case 0xa953: return 0x0;
1645
+ case 0xa9b3: return 0x0;
1646
+ case 0xa9c0: return 0x0;
1647
+ case 0xa9e5: return 0x0;
1648
+ case 0xaa7b: return 0x0;
1649
+ case 0xaa7c: return 0x0;
1650
+ case 0xaa7d: return 0x0;
1651
+ case 0xaabf: return 0x0;
1652
+ case 0xaac0: return 0x0;
1653
+ case 0xaac1: return 0x0;
1654
+ case 0xaac2: return 0x0;
1655
+ case 0xaaf6: return 0x0;
1656
+ case 0xab5b: return 0x0;
1657
+ case 0xab5c: return 0x0;
1658
+ case 0xab5d: return 0x0;
1659
+ case 0xab5e: return 0x0;
1660
+ case 0xab5f: return 0x0;
1661
+ case 0xab69: return 0x0;
1662
+ case 0xab6a: return 0x0;
1663
+ case 0xab6b: return 0x0;
1664
+ case 0xabec: return 0x0;
1665
+ case 0xabed: return 0x0;
1666
+ case 0xf900: return 0x8c48;
1667
+ case 0xf901: return 0x66f4;
1668
+ case 0xf902: return 0x8eca;
1669
+ case 0xf903: return 0x8cc8;
1670
+ case 0xf904: return 0x6ed1;
1671
+ case 0xf905: return 0x4e32;
1672
+ case 0xf906: return 0x53e5;
1673
+ case 0xf907: return 0x9f9c;
1674
+ case 0xf908: return 0x9f9c;
1675
+ case 0xf909: return 0x5951;
1676
+ case 0xf90a: return 0x91d1;
1677
+ case 0xf90b: return 0x5587;
1678
+ case 0xf90c: return 0x5948;
1679
+ case 0xf90d: return 0x61f6;
1680
+ case 0xf90e: return 0x7669;
1681
+ case 0xf90f: return 0x7f85;
1682
+ case 0xf910: return 0x863f;
1683
+ case 0xf911: return 0x87ba;
1684
+ case 0xf912: return 0x88f8;
1685
+ case 0xf913: return 0x908f;
1686
+ case 0xf914: return 0x6a02;
1687
+ case 0xf915: return 0x6d1b;
1688
+ case 0xf916: return 0x70d9;
1689
+ case 0xf917: return 0x73de;
1690
+ case 0xf918: return 0x843d;
1691
+ case 0xf919: return 0x916a;
1692
+ case 0xf91a: return 0x99f1;
1693
+ case 0xf91b: return 0x4e82;
1694
+ case 0xf91c: return 0x5375;
1695
+ case 0xf91d: return 0x6b04;
1696
+ case 0xf91e: return 0x721b;
1697
+ case 0xf91f: return 0x862d;
1698
+ case 0xf920: return 0x9e1e;
1699
+ case 0xf921: return 0x5d50;
1700
+ case 0xf922: return 0x6feb;
1701
+ case 0xf923: return 0x85cd;
1702
+ case 0xf924: return 0x8964;
1703
+ case 0xf925: return 0x62c9;
1704
+ case 0xf926: return 0x81d8;
1705
+ case 0xf927: return 0x881f;
1706
+ case 0xf928: return 0x5eca;
1707
+ case 0xf929: return 0x6717;
1708
+ case 0xf92a: return 0x6d6a;
1709
+ case 0xf92b: return 0x72fc;
1710
+ case 0xf92c: return 0x90ce;
1711
+ case 0xf92d: return 0x4f86;
1712
+ case 0xf92e: return 0x51b7;
1713
+ case 0xf92f: return 0x52de;
1714
+ case 0xf930: return 0x64c4;
1715
+ case 0xf931: return 0x6ad3;
1716
+ case 0xf932: return 0x7210;
1717
+ case 0xf933: return 0x76e7;
1718
+ case 0xf934: return 0x8001;
1719
+ case 0xf935: return 0x8606;
1720
+ case 0xf936: return 0x865c;
1721
+ case 0xf937: return 0x8def;
1722
+ case 0xf938: return 0x9732;
1723
+ case 0xf939: return 0x9b6f;
1724
+ case 0xf93a: return 0x9dfa;
1725
+ case 0xf93b: return 0x788c;
1726
+ case 0xf93c: return 0x797f;
1727
+ case 0xf93d: return 0x7da0;
1728
+ case 0xf93e: return 0x83c9;
1729
+ case 0xf93f: return 0x9304;
1730
+ case 0xf940: return 0x9e7f;
1731
+ case 0xf941: return 0x8ad6;
1732
+ case 0xf942: return 0x58df;
1733
+ case 0xf943: return 0x5f04;
1734
+ case 0xf944: return 0x7c60;
1735
+ case 0xf945: return 0x807e;
1736
+ case 0xf946: return 0x7262;
1737
+ case 0xf947: return 0x78ca;
1738
+ case 0xf948: return 0x8cc2;
1739
+ case 0xf949: return 0x96f7;
1740
+ case 0xf94a: return 0x58d8;
1741
+ case 0xf94b: return 0x5c62;
1742
+ case 0xf94c: return 0x6a13;
1743
+ case 0xf94d: return 0x6dda;
1744
+ case 0xf94e: return 0x6f0f;
1745
+ case 0xf94f: return 0x7d2f;
1746
+ case 0xf950: return 0x7e37;
1747
+ case 0xf951: return 0x964b;
1748
+ case 0xf952: return 0x52d2;
1749
+ case 0xf953: return 0x808b;
1750
+ case 0xf954: return 0x51dc;
1751
+ case 0xf955: return 0x51cc;
1752
+ case 0xf956: return 0x7a1c;
1753
+ case 0xf957: return 0x7dbe;
1754
+ case 0xf958: return 0x83f1;
1755
+ case 0xf959: return 0x9675;
1756
+ case 0xf95a: return 0x8b80;
1757
+ case 0xf95b: return 0x62cf;
1758
+ case 0xf95c: return 0x6a02;
1759
+ case 0xf95d: return 0x8afe;
1760
+ case 0xf95e: return 0x4e39;
1761
+ case 0xf95f: return 0x5be7;
1762
+ case 0xf960: return 0x6012;
1763
+ case 0xf961: return 0x7387;
1764
+ case 0xf962: return 0x7570;
1765
+ case 0xf963: return 0x5317;
1766
+ case 0xf964: return 0x78fb;
1767
+ case 0xf965: return 0x4fbf;
1768
+ case 0xf966: return 0x5fa9;
1769
+ case 0xf967: return 0x4e0d;
1770
+ case 0xf968: return 0x6ccc;
1771
+ case 0xf969: return 0x6578;
1772
+ case 0xf96a: return 0x7d22;
1773
+ case 0xf96b: return 0x53c3;
1774
+ case 0xf96c: return 0x585e;
1775
+ case 0xf96d: return 0x7701;
1776
+ case 0xf96e: return 0x8449;
1777
+ case 0xf96f: return 0x8aaa;
1778
+ case 0xf970: return 0x6bba;
1779
+ case 0xf971: return 0x8fb0;
1780
+ case 0xf972: return 0x6c88;
1781
+ case 0xf973: return 0x62fe;
1782
+ case 0xf974: return 0x82e5;
1783
+ case 0xf975: return 0x63a0;
1784
+ case 0xf976: return 0x7565;
1785
+ case 0xf977: return 0x4eae;
1786
+ case 0xf978: return 0x5169;
1787
+ case 0xf979: return 0x51c9;
1788
+ case 0xf97a: return 0x6881;
1789
+ case 0xf97b: return 0x7ce7;
1790
+ case 0xf97c: return 0x826f;
1791
+ case 0xf97d: return 0x8ad2;
1792
+ case 0xf97e: return 0x91cf;
1793
+ case 0xf97f: return 0x52f5;
1794
+ case 0xf980: return 0x5442;
1795
+ case 0xf981: return 0x5973;
1796
+ case 0xf982: return 0x5eec;
1797
+ case 0xf983: return 0x65c5;
1798
+ case 0xf984: return 0x6ffe;
1799
+ case 0xf985: return 0x792a;
1800
+ case 0xf986: return 0x95ad;
1801
+ case 0xf987: return 0x9a6a;
1802
+ case 0xf988: return 0x9e97;
1803
+ case 0xf989: return 0x9ece;
1804
+ case 0xf98a: return 0x529b;
1805
+ case 0xf98b: return 0x66c6;
1806
+ case 0xf98c: return 0x6b77;
1807
+ case 0xf98d: return 0x8f62;
1808
+ case 0xf98e: return 0x5e74;
1809
+ case 0xf98f: return 0x6190;
1810
+ case 0xf990: return 0x6200;
1811
+ case 0xf991: return 0x649a;
1812
+ case 0xf992: return 0x6f23;
1813
+ case 0xf993: return 0x7149;
1814
+ case 0xf994: return 0x7489;
1815
+ case 0xf995: return 0x79ca;
1816
+ case 0xf996: return 0x7df4;
1817
+ case 0xf997: return 0x806f;
1818
+ case 0xf998: return 0x8f26;
1819
+ case 0xf999: return 0x84ee;
1820
+ case 0xf99a: return 0x9023;
1821
+ case 0xf99b: return 0x934a;
1822
+ case 0xf99c: return 0x5217;
1823
+ case 0xf99d: return 0x52a3;
1824
+ case 0xf99e: return 0x54bd;
1825
+ case 0xf99f: return 0x70c8;
1826
+ case 0xf9a0: return 0x88c2;
1827
+ case 0xf9a1: return 0x8aaa;
1828
+ case 0xf9a2: return 0x5ec9;
1829
+ case 0xf9a3: return 0x5ff5;
1830
+ case 0xf9a4: return 0x637b;
1831
+ case 0xf9a5: return 0x6bae;
1832
+ case 0xf9a6: return 0x7c3e;
1833
+ case 0xf9a7: return 0x7375;
1834
+ case 0xf9a8: return 0x4ee4;
1835
+ case 0xf9a9: return 0x56f9;
1836
+ case 0xf9aa: return 0x5be7;
1837
+ case 0xf9ab: return 0x5dba;
1838
+ case 0xf9ac: return 0x601c;
1839
+ case 0xf9ad: return 0x73b2;
1840
+ case 0xf9ae: return 0x7469;
1841
+ case 0xf9af: return 0x7f9a;
1842
+ case 0xf9b0: return 0x8046;
1843
+ case 0xf9b1: return 0x9234;
1844
+ case 0xf9b2: return 0x96f6;
1845
+ case 0xf9b3: return 0x9748;
1846
+ case 0xf9b4: return 0x9818;
1847
+ case 0xf9b5: return 0x4f8b;
1848
+ case 0xf9b6: return 0x79ae;
1849
+ case 0xf9b7: return 0x91b4;
1850
+ case 0xf9b8: return 0x96b8;
1851
+ case 0xf9b9: return 0x60e1;
1852
+ case 0xf9ba: return 0x4e86;
1853
+ case 0xf9bb: return 0x50da;
1854
+ case 0xf9bc: return 0x5bee;
1855
+ case 0xf9bd: return 0x5c3f;
1856
+ case 0xf9be: return 0x6599;
1857
+ case 0xf9bf: return 0x6a02;
1858
+ case 0xf9c0: return 0x71ce;
1859
+ case 0xf9c1: return 0x7642;
1860
+ case 0xf9c2: return 0x84fc;
1861
+ case 0xf9c3: return 0x907c;
1862
+ case 0xf9c4: return 0x9f8d;
1863
+ case 0xf9c5: return 0x6688;
1864
+ case 0xf9c6: return 0x962e;
1865
+ case 0xf9c7: return 0x5289;
1866
+ case 0xf9c8: return 0x677b;
1867
+ case 0xf9c9: return 0x67f3;
1868
+ case 0xf9ca: return 0x6d41;
1869
+ case 0xf9cb: return 0x6e9c;
1870
+ case 0xf9cc: return 0x7409;
1871
+ case 0xf9cd: return 0x7559;
1872
+ case 0xf9ce: return 0x786b;
1873
+ case 0xf9cf: return 0x7d10;
1874
+ case 0xf9d0: return 0x985e;
1875
+ case 0xf9d1: return 0x516d;
1876
+ case 0xf9d2: return 0x622e;
1877
+ case 0xf9d3: return 0x9678;
1878
+ case 0xf9d4: return 0x502b;
1879
+ case 0xf9d5: return 0x5d19;
1880
+ case 0xf9d6: return 0x6dea;
1881
+ case 0xf9d7: return 0x8f2a;
1882
+ case 0xf9d8: return 0x5f8b;
1883
+ case 0xf9d9: return 0x6144;
1884
+ case 0xf9da: return 0x6817;
1885
+ case 0xf9db: return 0x7387;
1886
+ case 0xf9dc: return 0x9686;
1887
+ case 0xf9dd: return 0x5229;
1888
+ case 0xf9de: return 0x540f;
1889
+ case 0xf9df: return 0x5c65;
1890
+ case 0xf9e0: return 0x6613;
1891
+ case 0xf9e1: return 0x674e;
1892
+ case 0xf9e2: return 0x68a8;
1893
+ case 0xf9e3: return 0x6ce5;
1894
+ case 0xf9e4: return 0x7406;
1895
+ case 0xf9e5: return 0x75e2;
1896
+ case 0xf9e6: return 0x7f79;
1897
+ case 0xf9e7: return 0x88cf;
1898
+ case 0xf9e8: return 0x88e1;
1899
+ case 0xf9e9: return 0x91cc;
1900
+ case 0xf9ea: return 0x96e2;
1901
+ case 0xf9eb: return 0x533f;
1902
+ case 0xf9ec: return 0x6eba;
1903
+ case 0xf9ed: return 0x541d;
1904
+ case 0xf9ee: return 0x71d0;
1905
+ case 0xf9ef: return 0x7498;
1906
+ case 0xf9f0: return 0x85fa;
1907
+ case 0xf9f1: return 0x96a3;
1908
+ case 0xf9f2: return 0x9c57;
1909
+ case 0xf9f3: return 0x9e9f;
1910
+ case 0xf9f4: return 0x6797;
1911
+ case 0xf9f5: return 0x6dcb;
1912
+ case 0xf9f6: return 0x81e8;
1913
+ case 0xf9f7: return 0x7acb;
1914
+ case 0xf9f8: return 0x7b20;
1915
+ case 0xf9f9: return 0x7c92;
1916
+ case 0xf9fa: return 0x72c0;
1917
+ case 0xf9fb: return 0x7099;
1918
+ case 0xf9fc: return 0x8b58;
1919
+ case 0xf9fd: return 0x4ec0;
1920
+ case 0xf9fe: return 0x8336;
1921
+ case 0xf9ff: return 0x523a;
1922
+ case 0xfa00: return 0x5207;
1923
+ case 0xfa01: return 0x5ea6;
1924
+ case 0xfa02: return 0x62d3;
1925
+ case 0xfa03: return 0x7cd6;
1926
+ case 0xfa04: return 0x5b85;
1927
+ case 0xfa05: return 0x6d1e;
1928
+ case 0xfa06: return 0x66b4;
1929
+ case 0xfa07: return 0x8f3b;
1930
+ case 0xfa08: return 0x884c;
1931
+ case 0xfa09: return 0x964d;
1932
+ case 0xfa0a: return 0x898b;
1933
+ case 0xfa0b: return 0x5ed3;
1934
+ case 0xfa0c: return 0x5140;
1935
+ case 0xfa0d: return 0x55c0;
1936
+ case 0xfa10: return 0x585a;
1937
+ case 0xfa12: return 0x6674;
1938
+ case 0xfa15: return 0x51de;
1939
+ case 0xfa16: return 0x732a;
1940
+ case 0xfa17: return 0x76ca;
1941
+ case 0xfa18: return 0x793c;
1942
+ case 0xfa19: return 0x795e;
1943
+ case 0xfa1a: return 0x7965;
1944
+ case 0xfa1b: return 0x798f;
1945
+ case 0xfa1c: return 0x9756;
1946
+ case 0xfa1d: return 0x7cbe;
1947
+ case 0xfa1e: return 0x7fbd;
1948
+ case 0xfa20: return 0x8612;
1949
+ case 0xfa22: return 0x8af8;
1950
+ case 0xfa25: return 0x9038;
1951
+ case 0xfa26: return 0x90fd;
1952
+ case 0xfa2a: return 0x98ef;
1953
+ case 0xfa2b: return 0x98fc;
1954
+ case 0xfa2c: return 0x9928;
1955
+ case 0xfa2d: return 0x9db4;
1956
+ case 0xfa2e: return 0x90de;
1957
+ case 0xfa2f: return 0x96b7;
1958
+ case 0xfa30: return 0x4fae;
1959
+ case 0xfa31: return 0x50e7;
1960
+ case 0xfa32: return 0x514d;
1961
+ case 0xfa33: return 0x52c9;
1962
+ case 0xfa34: return 0x52e4;
1963
+ case 0xfa35: return 0x5351;
1964
+ case 0xfa36: return 0x559d;
1965
+ case 0xfa37: return 0x5606;
1966
+ case 0xfa38: return 0x5668;
1967
+ case 0xfa39: return 0x5840;
1968
+ case 0xfa3a: return 0x58a8;
1969
+ case 0xfa3b: return 0x5c64;
1970
+ case 0xfa3c: return 0x5c6e;
1971
+ case 0xfa3d: return 0x6094;
1972
+ case 0xfa3e: return 0x6168;
1973
+ case 0xfa3f: return 0x618e;
1974
+ case 0xfa40: return 0x61f2;
1975
+ case 0xfa41: return 0x654f;
1976
+ case 0xfa42: return 0x65e2;
1977
+ case 0xfa43: return 0x6691;
1978
+ case 0xfa44: return 0x6885;
1979
+ case 0xfa45: return 0x6d77;
1980
+ case 0xfa46: return 0x6e1a;
1981
+ case 0xfa47: return 0x6f22;
1982
+ case 0xfa48: return 0x716e;
1983
+ case 0xfa49: return 0x722b;
1984
+ case 0xfa4a: return 0x7422;
1985
+ case 0xfa4b: return 0x7891;
1986
+ case 0xfa4c: return 0x793e;
1987
+ case 0xfa4d: return 0x7949;
1988
+ case 0xfa4e: return 0x7948;
1989
+ case 0xfa4f: return 0x7950;
1990
+ case 0xfa50: return 0x7956;
1991
+ case 0xfa51: return 0x795d;
1992
+ case 0xfa52: return 0x798d;
1993
+ case 0xfa53: return 0x798e;
1994
+ case 0xfa54: return 0x7a40;
1995
+ case 0xfa55: return 0x7a81;
1996
+ case 0xfa56: return 0x7bc0;
1997
+ case 0xfa57: return 0x7df4;
1998
+ case 0xfa58: return 0x7e09;
1999
+ case 0xfa59: return 0x7e41;
2000
+ case 0xfa5a: return 0x7f72;
2001
+ case 0xfa5b: return 0x8005;
2002
+ case 0xfa5c: return 0x81ed;
2003
+ case 0xfa5d: return 0x8279;
2004
+ case 0xfa5e: return 0x8279;
2005
+ case 0xfa5f: return 0x8457;
2006
+ case 0xfa60: return 0x8910;
2007
+ case 0xfa61: return 0x8996;
2008
+ case 0xfa62: return 0x8b01;
2009
+ case 0xfa63: return 0x8b39;
2010
+ case 0xfa64: return 0x8cd3;
2011
+ case 0xfa65: return 0x8d08;
2012
+ case 0xfa66: return 0x8fb6;
2013
+ case 0xfa67: return 0x9038;
2014
+ case 0xfa68: return 0x96e3;
2015
+ case 0xfa69: return 0x97ff;
2016
+ case 0xfa6a: return 0x983b;
2017
+ case 0xfa6b: return 0x6075;
2018
+ case 0xfa6c: return 0x242ee;
2019
+ case 0xfa6d: return 0x8218;
2020
+ case 0xfa70: return 0x4e26;
2021
+ case 0xfa71: return 0x51b5;
2022
+ case 0xfa72: return 0x5168;
2023
+ case 0xfa73: return 0x4f80;
2024
+ case 0xfa74: return 0x5145;
2025
+ case 0xfa75: return 0x5180;
2026
+ case 0xfa76: return 0x52c7;
2027
+ case 0xfa77: return 0x52fa;
2028
+ case 0xfa78: return 0x559d;
2029
+ case 0xfa79: return 0x5555;
2030
+ case 0xfa7a: return 0x5599;
2031
+ case 0xfa7b: return 0x55e2;
2032
+ case 0xfa7c: return 0x585a;
2033
+ case 0xfa7d: return 0x58b3;
2034
+ case 0xfa7e: return 0x5944;
2035
+ case 0xfa7f: return 0x5954;
2036
+ case 0xfa80: return 0x5a62;
2037
+ case 0xfa81: return 0x5b28;
2038
+ case 0xfa82: return 0x5ed2;
2039
+ case 0xfa83: return 0x5ed9;
2040
+ case 0xfa84: return 0x5f69;
2041
+ case 0xfa85: return 0x5fad;
2042
+ case 0xfa86: return 0x60d8;
2043
+ case 0xfa87: return 0x614e;
2044
+ case 0xfa88: return 0x6108;
2045
+ case 0xfa89: return 0x618e;
2046
+ case 0xfa8a: return 0x6160;
2047
+ case 0xfa8b: return 0x61f2;
2048
+ case 0xfa8c: return 0x6234;
2049
+ case 0xfa8d: return 0x63c4;
2050
+ case 0xfa8e: return 0x641c;
2051
+ case 0xfa8f: return 0x6452;
2052
+ case 0xfa90: return 0x6556;
2053
+ case 0xfa91: return 0x6674;
2054
+ case 0xfa92: return 0x6717;
2055
+ case 0xfa93: return 0x671b;
2056
+ case 0xfa94: return 0x6756;
2057
+ case 0xfa95: return 0x6b79;
2058
+ case 0xfa96: return 0x6bba;
2059
+ case 0xfa97: return 0x6d41;
2060
+ case 0xfa98: return 0x6edb;
2061
+ case 0xfa99: return 0x6ecb;
2062
+ case 0xfa9a: return 0x6f22;
2063
+ case 0xfa9b: return 0x701e;
2064
+ case 0xfa9c: return 0x716e;
2065
+ case 0xfa9d: return 0x77a7;
2066
+ case 0xfa9e: return 0x7235;
2067
+ case 0xfa9f: return 0x72af;
2068
+ case 0xfaa0: return 0x732a;
2069
+ case 0xfaa1: return 0x7471;
2070
+ case 0xfaa2: return 0x7506;
2071
+ case 0xfaa3: return 0x753b;
2072
+ case 0xfaa4: return 0x761d;
2073
+ case 0xfaa5: return 0x761f;
2074
+ case 0xfaa6: return 0x76ca;
2075
+ case 0xfaa7: return 0x76db;
2076
+ case 0xfaa8: return 0x76f4;
2077
+ case 0xfaa9: return 0x774a;
2078
+ case 0xfaaa: return 0x7740;
2079
+ case 0xfaab: return 0x78cc;
2080
+ case 0xfaac: return 0x7ab1;
2081
+ case 0xfaad: return 0x7bc0;
2082
+ case 0xfaae: return 0x7c7b;
2083
+ case 0xfaaf: return 0x7d5b;
2084
+ case 0xfab0: return 0x7df4;
2085
+ case 0xfab1: return 0x7f3e;
2086
+ case 0xfab2: return 0x8005;
2087
+ case 0xfab3: return 0x8352;
2088
+ case 0xfab4: return 0x83ef;
2089
+ case 0xfab5: return 0x8779;
2090
+ case 0xfab6: return 0x8941;
2091
+ case 0xfab7: return 0x8986;
2092
+ case 0xfab8: return 0x8996;
2093
+ case 0xfab9: return 0x8abf;
2094
+ case 0xfaba: return 0x8af8;
2095
+ case 0xfabb: return 0x8acb;
2096
+ case 0xfabc: return 0x8b01;
2097
+ case 0xfabd: return 0x8afe;
2098
+ case 0xfabe: return 0x8aed;
2099
+ case 0xfabf: return 0x8b39;
2100
+ case 0xfac0: return 0x8b8a;
2101
+ case 0xfac1: return 0x8d08;
2102
+ case 0xfac2: return 0x8f38;
2103
+ case 0xfac3: return 0x9072;
2104
+ case 0xfac4: return 0x9199;
2105
+ case 0xfac5: return 0x9276;
2106
+ case 0xfac6: return 0x967c;
2107
+ case 0xfac7: return 0x96e3;
2108
+ case 0xfac8: return 0x9756;
2109
+ case 0xfac9: return 0x97db;
2110
+ case 0xfaca: return 0x97ff;
2111
+ case 0xfacb: return 0x980b;
2112
+ case 0xfacc: return 0x983b;
2113
+ case 0xfacd: return 0x9b12;
2114
+ case 0xface: return 0x9f9c;
2115
+ case 0xfacf: return 0x2284a;
2116
+ case 0xfad0: return 0x22844;
2117
+ case 0xfad1: return 0x233d5;
2118
+ case 0xfad2: return 0x3b9d;
2119
+ case 0xfad3: return 0x4018;
2120
+ case 0xfad4: return 0x4039;
2121
+ case 0xfad5: return 0x25249;
2122
+ case 0xfad6: return 0x25cd0;
2123
+ case 0xfad7: return 0x27ed3;
2124
+ case 0xfad8: return 0x9f43;
2125
+ case 0xfad9: return 0x9f8e;
2126
+ case 0xfb1d: return 0x5d9;
2127
+ case 0xfb1e: return 0x0;
2128
+ case 0xfb1f: return 0x5f2;
2129
+ case 0xfb2a: return 0x5e9;
2130
+ case 0xfb2b: return 0x5e9;
2131
+ case 0xfb2c: return 0x5e9;
2132
+ case 0xfb2d: return 0x5e9;
2133
+ case 0xfb2e: return 0x5d0;
2134
+ case 0xfb2f: return 0x5d0;
2135
+ case 0xfb30: return 0x5d0;
2136
+ case 0xfb31: return 0x5d1;
2137
+ case 0xfb32: return 0x5d2;
2138
+ case 0xfb33: return 0x5d3;
2139
+ case 0xfb34: return 0x5d4;
2140
+ case 0xfb35: return 0x5d5;
2141
+ case 0xfb36: return 0x5d6;
2142
+ case 0xfb38: return 0x5d8;
2143
+ case 0xfb39: return 0x5d9;
2144
+ case 0xfb3a: return 0x5da;
2145
+ case 0xfb3b: return 0x5db;
2146
+ case 0xfb3c: return 0x5dc;
2147
+ case 0xfb3e: return 0x5de;
2148
+ case 0xfb40: return 0x5e0;
2149
+ case 0xfb41: return 0x5e1;
2150
+ case 0xfb43: return 0x5e3;
2151
+ case 0xfb44: return 0x5e4;
2152
+ case 0xfb46: return 0x5e6;
2153
+ case 0xfb47: return 0x5e7;
2154
+ case 0xfb48: return 0x5e8;
2155
+ case 0xfb49: return 0x5e9;
2156
+ case 0xfb4a: return 0x5ea;
2157
+ case 0xfb4b: return 0x5d5;
2158
+ case 0xfb4c: return 0x5d1;
2159
+ case 0xfb4d: return 0x5db;
2160
+ case 0xfb4e: return 0x5e4;
2161
+ case 0xfe20: return 0x0;
2162
+ case 0xfe21: return 0x0;
2163
+ case 0xfe22: return 0x0;
2164
+ case 0xfe23: return 0x0;
2165
+ case 0xfe24: return 0x0;
2166
+ case 0xfe25: return 0x0;
2167
+ case 0xfe26: return 0x0;
2168
+ case 0xfe27: return 0x0;
2169
+ case 0xfe28: return 0x0;
2170
+ case 0xfe29: return 0x0;
2171
+ case 0xfe2a: return 0x0;
2172
+ case 0xfe2b: return 0x0;
2173
+ case 0xfe2c: return 0x0;
2174
+ case 0xfe2d: return 0x0;
2175
+ case 0xfe2e: return 0x0;
2176
+ case 0xfe2f: return 0x0;
2177
+ case 0xff3e: return 0x0;
2178
+ case 0xff40: return 0x0;
2179
+ case 0xff70: return 0x0;
2180
+ case 0xff9e: return 0x0;
2181
+ case 0xff9f: return 0x0;
2182
+ case 0xffe3: return 0x0;
2183
+ case 0x102e0: return 0x0;
2184
+ case 0x10ae5: return 0x0;
2185
+ case 0x10ae6: return 0x0;
2186
+ case 0x10d22: return 0x0;
2187
+ case 0x10d23: return 0x0;
2188
+ case 0x10d24: return 0x0;
2189
+ case 0x10d25: return 0x0;
2190
+ case 0x10d26: return 0x0;
2191
+ case 0x10d27: return 0x0;
2192
+ case 0x10f46: return 0x0;
2193
+ case 0x10f47: return 0x0;
2194
+ case 0x10f48: return 0x0;
2195
+ case 0x10f49: return 0x0;
2196
+ case 0x10f4a: return 0x0;
2197
+ case 0x10f4b: return 0x0;
2198
+ case 0x10f4c: return 0x0;
2199
+ case 0x10f4d: return 0x0;
2200
+ case 0x10f4e: return 0x0;
2201
+ case 0x10f4f: return 0x0;
2202
+ case 0x10f50: return 0x0;
2203
+ case 0x1109a: return 0x11099;
2204
+ case 0x1109c: return 0x1109b;
2205
+ case 0x110ab: return 0x110a5;
2206
+ case 0x110b9: return 0x0;
2207
+ case 0x110ba: return 0x0;
2208
+ case 0x11133: return 0x0;
2209
+ case 0x11134: return 0x0;
2210
+ case 0x11173: return 0x0;
2211
+ case 0x111c0: return 0x0;
2212
+ case 0x111ca: return 0x0;
2213
+ case 0x111cb: return 0x0;
2214
+ case 0x111cc: return 0x0;
2215
+ case 0x11235: return 0x0;
2216
+ case 0x11236: return 0x0;
2217
+ case 0x112e9: return 0x0;
2218
+ case 0x112ea: return 0x0;
2219
+ case 0x1133c: return 0x0;
2220
+ case 0x1134d: return 0x0;
2221
+ case 0x11366: return 0x0;
2222
+ case 0x11367: return 0x0;
2223
+ case 0x11368: return 0x0;
2224
+ case 0x11369: return 0x0;
2225
+ case 0x1136a: return 0x0;
2226
+ case 0x1136b: return 0x0;
2227
+ case 0x1136c: return 0x0;
2228
+ case 0x11370: return 0x0;
2229
+ case 0x11371: return 0x0;
2230
+ case 0x11372: return 0x0;
2231
+ case 0x11373: return 0x0;
2232
+ case 0x11374: return 0x0;
2233
+ case 0x11442: return 0x0;
2234
+ case 0x11446: return 0x0;
2235
+ case 0x114c2: return 0x0;
2236
+ case 0x114c3: return 0x0;
2237
+ case 0x115bf: return 0x0;
2238
+ case 0x115c0: return 0x0;
2239
+ case 0x1163f: return 0x0;
2240
+ case 0x116b6: return 0x0;
2241
+ case 0x116b7: return 0x0;
2242
+ case 0x1172b: return 0x0;
2243
+ case 0x11839: return 0x0;
2244
+ case 0x1183a: return 0x0;
2245
+ case 0x1193d: return 0x0;
2246
+ case 0x1193e: return 0x0;
2247
+ case 0x11943: return 0x0;
2248
+ case 0x119e0: return 0x0;
2249
+ case 0x11a34: return 0x0;
2250
+ case 0x11a47: return 0x0;
2251
+ case 0x11a99: return 0x0;
2252
+ case 0x11c3f: return 0x0;
2253
+ case 0x11d42: return 0x0;
2254
+ case 0x11d44: return 0x0;
2255
+ case 0x11d45: return 0x0;
2256
+ case 0x11d97: return 0x0;
2257
+ case 0x16af0: return 0x0;
2258
+ case 0x16af1: return 0x0;
2259
+ case 0x16af2: return 0x0;
2260
+ case 0x16af3: return 0x0;
2261
+ case 0x16af4: return 0x0;
2262
+ case 0x16b30: return 0x0;
2263
+ case 0x16b31: return 0x0;
2264
+ case 0x16b32: return 0x0;
2265
+ case 0x16b33: return 0x0;
2266
+ case 0x16b34: return 0x0;
2267
+ case 0x16b35: return 0x0;
2268
+ case 0x16b36: return 0x0;
2269
+ case 0x16f8f: return 0x0;
2270
+ case 0x16f90: return 0x0;
2271
+ case 0x16f91: return 0x0;
2272
+ case 0x16f92: return 0x0;
2273
+ case 0x16f93: return 0x0;
2274
+ case 0x16f94: return 0x0;
2275
+ case 0x16f95: return 0x0;
2276
+ case 0x16f96: return 0x0;
2277
+ case 0x16f97: return 0x0;
2278
+ case 0x16f98: return 0x0;
2279
+ case 0x16f99: return 0x0;
2280
+ case 0x16f9a: return 0x0;
2281
+ case 0x16f9b: return 0x0;
2282
+ case 0x16f9c: return 0x0;
2283
+ case 0x16f9d: return 0x0;
2284
+ case 0x16f9e: return 0x0;
2285
+ case 0x16f9f: return 0x0;
2286
+ case 0x16ff0: return 0x0;
2287
+ case 0x16ff1: return 0x0;
2288
+ case 0x1d167: return 0x0;
2289
+ case 0x1d168: return 0x0;
2290
+ case 0x1d169: return 0x0;
2291
+ case 0x1d16d: return 0x0;
2292
+ case 0x1d16e: return 0x0;
2293
+ case 0x1d16f: return 0x0;
2294
+ case 0x1d170: return 0x0;
2295
+ case 0x1d171: return 0x0;
2296
+ case 0x1d172: return 0x0;
2297
+ case 0x1d17b: return 0x0;
2298
+ case 0x1d17c: return 0x0;
2299
+ case 0x1d17d: return 0x0;
2300
+ case 0x1d17e: return 0x0;
2301
+ case 0x1d17f: return 0x0;
2302
+ case 0x1d180: return 0x0;
2303
+ case 0x1d181: return 0x0;
2304
+ case 0x1d182: return 0x0;
2305
+ case 0x1d185: return 0x0;
2306
+ case 0x1d186: return 0x0;
2307
+ case 0x1d187: return 0x0;
2308
+ case 0x1d188: return 0x0;
2309
+ case 0x1d189: return 0x0;
2310
+ case 0x1d18a: return 0x0;
2311
+ case 0x1d18b: return 0x0;
2312
+ case 0x1d1aa: return 0x0;
2313
+ case 0x1d1ab: return 0x0;
2314
+ case 0x1d1ac: return 0x0;
2315
+ case 0x1d1ad: return 0x0;
2316
+ case 0x1e130: return 0x0;
2317
+ case 0x1e131: return 0x0;
2318
+ case 0x1e132: return 0x0;
2319
+ case 0x1e133: return 0x0;
2320
+ case 0x1e134: return 0x0;
2321
+ case 0x1e135: return 0x0;
2322
+ case 0x1e136: return 0x0;
2323
+ case 0x1e2ec: return 0x0;
2324
+ case 0x1e2ed: return 0x0;
2325
+ case 0x1e2ee: return 0x0;
2326
+ case 0x1e2ef: return 0x0;
2327
+ case 0x1e8d0: return 0x0;
2328
+ case 0x1e8d1: return 0x0;
2329
+ case 0x1e8d2: return 0x0;
2330
+ case 0x1e8d3: return 0x0;
2331
+ case 0x1e8d4: return 0x0;
2332
+ case 0x1e8d5: return 0x0;
2333
+ case 0x1e8d6: return 0x0;
2334
+ case 0x1e944: return 0x0;
2335
+ case 0x1e945: return 0x0;
2336
+ case 0x1e946: return 0x0;
2337
+ case 0x1e948: return 0x0;
2338
+ case 0x1e949: return 0x0;
2339
+ case 0x1e94a: return 0x0;
2340
+ case 0x2f800: return 0x4e3d;
2341
+ case 0x2f801: return 0x4e38;
2342
+ case 0x2f802: return 0x4e41;
2343
+ case 0x2f803: return 0x20122;
2344
+ case 0x2f804: return 0x4f60;
2345
+ case 0x2f805: return 0x4fae;
2346
+ case 0x2f806: return 0x4fbb;
2347
+ case 0x2f807: return 0x5002;
2348
+ case 0x2f808: return 0x507a;
2349
+ case 0x2f809: return 0x5099;
2350
+ case 0x2f80a: return 0x50e7;
2351
+ case 0x2f80b: return 0x50cf;
2352
+ case 0x2f80c: return 0x349e;
2353
+ case 0x2f80d: return 0x2063a;
2354
+ case 0x2f80e: return 0x514d;
2355
+ case 0x2f80f: return 0x5154;
2356
+ case 0x2f810: return 0x5164;
2357
+ case 0x2f811: return 0x5177;
2358
+ case 0x2f812: return 0x2051c;
2359
+ case 0x2f813: return 0x34b9;
2360
+ case 0x2f814: return 0x5167;
2361
+ case 0x2f815: return 0x518d;
2362
+ case 0x2f816: return 0x2054b;
2363
+ case 0x2f817: return 0x5197;
2364
+ case 0x2f818: return 0x51a4;
2365
+ case 0x2f819: return 0x4ecc;
2366
+ case 0x2f81a: return 0x51ac;
2367
+ case 0x2f81b: return 0x51b5;
2368
+ case 0x2f81c: return 0x291df;
2369
+ case 0x2f81d: return 0x51f5;
2370
+ case 0x2f81e: return 0x5203;
2371
+ case 0x2f81f: return 0x34df;
2372
+ case 0x2f820: return 0x523b;
2373
+ case 0x2f821: return 0x5246;
2374
+ case 0x2f822: return 0x5272;
2375
+ case 0x2f823: return 0x5277;
2376
+ case 0x2f824: return 0x3515;
2377
+ case 0x2f825: return 0x52c7;
2378
+ case 0x2f826: return 0x52c9;
2379
+ case 0x2f827: return 0x52e4;
2380
+ case 0x2f828: return 0x52fa;
2381
+ case 0x2f829: return 0x5305;
2382
+ case 0x2f82a: return 0x5306;
2383
+ case 0x2f82b: return 0x5317;
2384
+ case 0x2f82c: return 0x5349;
2385
+ case 0x2f82d: return 0x5351;
2386
+ case 0x2f82e: return 0x535a;
2387
+ case 0x2f82f: return 0x5373;
2388
+ case 0x2f830: return 0x537d;
2389
+ case 0x2f831: return 0x537f;
2390
+ case 0x2f832: return 0x537f;
2391
+ case 0x2f833: return 0x537f;
2392
+ case 0x2f834: return 0x20a2c;
2393
+ case 0x2f835: return 0x7070;
2394
+ case 0x2f836: return 0x53ca;
2395
+ case 0x2f837: return 0x53df;
2396
+ case 0x2f838: return 0x20b63;
2397
+ case 0x2f839: return 0x53eb;
2398
+ case 0x2f83a: return 0x53f1;
2399
+ case 0x2f83b: return 0x5406;
2400
+ case 0x2f83c: return 0x549e;
2401
+ case 0x2f83d: return 0x5438;
2402
+ case 0x2f83e: return 0x5448;
2403
+ case 0x2f83f: return 0x5468;
2404
+ case 0x2f840: return 0x54a2;
2405
+ case 0x2f841: return 0x54f6;
2406
+ case 0x2f842: return 0x5510;
2407
+ case 0x2f843: return 0x5553;
2408
+ case 0x2f844: return 0x5563;
2409
+ case 0x2f845: return 0x5584;
2410
+ case 0x2f846: return 0x5584;
2411
+ case 0x2f847: return 0x5599;
2412
+ case 0x2f848: return 0x55ab;
2413
+ case 0x2f849: return 0x55b3;
2414
+ case 0x2f84a: return 0x55c2;
2415
+ case 0x2f84b: return 0x5716;
2416
+ case 0x2f84c: return 0x5606;
2417
+ case 0x2f84d: return 0x5717;
2418
+ case 0x2f84e: return 0x5651;
2419
+ case 0x2f84f: return 0x5674;
2420
+ case 0x2f850: return 0x5207;
2421
+ case 0x2f851: return 0x58ee;
2422
+ case 0x2f852: return 0x57ce;
2423
+ case 0x2f853: return 0x57f4;
2424
+ case 0x2f854: return 0x580d;
2425
+ case 0x2f855: return 0x578b;
2426
+ case 0x2f856: return 0x5832;
2427
+ case 0x2f857: return 0x5831;
2428
+ case 0x2f858: return 0x58ac;
2429
+ case 0x2f859: return 0x214e4;
2430
+ case 0x2f85a: return 0x58f2;
2431
+ case 0x2f85b: return 0x58f7;
2432
+ case 0x2f85c: return 0x5906;
2433
+ case 0x2f85d: return 0x591a;
2434
+ case 0x2f85e: return 0x5922;
2435
+ case 0x2f85f: return 0x5962;
2436
+ case 0x2f860: return 0x216a8;
2437
+ case 0x2f861: return 0x216ea;
2438
+ case 0x2f862: return 0x59ec;
2439
+ case 0x2f863: return 0x5a1b;
2440
+ case 0x2f864: return 0x5a27;
2441
+ case 0x2f865: return 0x59d8;
2442
+ case 0x2f866: return 0x5a66;
2443
+ case 0x2f867: return 0x36ee;
2444
+ case 0x2f868: return 0x36fc;
2445
+ case 0x2f869: return 0x5b08;
2446
+ case 0x2f86a: return 0x5b3e;
2447
+ case 0x2f86b: return 0x5b3e;
2448
+ case 0x2f86c: return 0x219c8;
2449
+ case 0x2f86d: return 0x5bc3;
2450
+ case 0x2f86e: return 0x5bd8;
2451
+ case 0x2f86f: return 0x5be7;
2452
+ case 0x2f870: return 0x5bf3;
2453
+ case 0x2f871: return 0x21b18;
2454
+ case 0x2f872: return 0x5bff;
2455
+ case 0x2f873: return 0x5c06;
2456
+ case 0x2f874: return 0x5f53;
2457
+ case 0x2f875: return 0x5c22;
2458
+ case 0x2f876: return 0x3781;
2459
+ case 0x2f877: return 0x5c60;
2460
+ case 0x2f878: return 0x5c6e;
2461
+ case 0x2f879: return 0x5cc0;
2462
+ case 0x2f87a: return 0x5c8d;
2463
+ case 0x2f87b: return 0x21de4;
2464
+ case 0x2f87c: return 0x5d43;
2465
+ case 0x2f87d: return 0x21de6;
2466
+ case 0x2f87e: return 0x5d6e;
2467
+ case 0x2f87f: return 0x5d6b;
2468
+ case 0x2f880: return 0x5d7c;
2469
+ case 0x2f881: return 0x5de1;
2470
+ case 0x2f882: return 0x5de2;
2471
+ case 0x2f883: return 0x382f;
2472
+ case 0x2f884: return 0x5dfd;
2473
+ case 0x2f885: return 0x5e28;
2474
+ case 0x2f886: return 0x5e3d;
2475
+ case 0x2f887: return 0x5e69;
2476
+ case 0x2f888: return 0x3862;
2477
+ case 0x2f889: return 0x22183;
2478
+ case 0x2f88a: return 0x387c;
2479
+ case 0x2f88b: return 0x5eb0;
2480
+ case 0x2f88c: return 0x5eb3;
2481
+ case 0x2f88d: return 0x5eb6;
2482
+ case 0x2f88e: return 0x5eca;
2483
+ case 0x2f88f: return 0x2a392;
2484
+ case 0x2f890: return 0x5efe;
2485
+ case 0x2f891: return 0x22331;
2486
+ case 0x2f892: return 0x22331;
2487
+ case 0x2f893: return 0x8201;
2488
+ case 0x2f894: return 0x5f22;
2489
+ case 0x2f895: return 0x5f22;
2490
+ case 0x2f896: return 0x38c7;
2491
+ case 0x2f897: return 0x232b8;
2492
+ case 0x2f898: return 0x261da;
2493
+ case 0x2f899: return 0x5f62;
2494
+ case 0x2f89a: return 0x5f6b;
2495
+ case 0x2f89b: return 0x38e3;
2496
+ case 0x2f89c: return 0x5f9a;
2497
+ case 0x2f89d: return 0x5fcd;
2498
+ case 0x2f89e: return 0x5fd7;
2499
+ case 0x2f89f: return 0x5ff9;
2500
+ case 0x2f8a0: return 0x6081;
2501
+ case 0x2f8a1: return 0x393a;
2502
+ case 0x2f8a2: return 0x391c;
2503
+ case 0x2f8a3: return 0x6094;
2504
+ case 0x2f8a4: return 0x226d4;
2505
+ case 0x2f8a5: return 0x60c7;
2506
+ case 0x2f8a6: return 0x6148;
2507
+ case 0x2f8a7: return 0x614c;
2508
+ case 0x2f8a8: return 0x614e;
2509
+ case 0x2f8a9: return 0x614c;
2510
+ case 0x2f8aa: return 0x617a;
2511
+ case 0x2f8ab: return 0x618e;
2512
+ case 0x2f8ac: return 0x61b2;
2513
+ case 0x2f8ad: return 0x61a4;
2514
+ case 0x2f8ae: return 0x61af;
2515
+ case 0x2f8af: return 0x61de;
2516
+ case 0x2f8b0: return 0x61f2;
2517
+ case 0x2f8b1: return 0x61f6;
2518
+ case 0x2f8b2: return 0x6210;
2519
+ case 0x2f8b3: return 0x621b;
2520
+ case 0x2f8b4: return 0x625d;
2521
+ case 0x2f8b5: return 0x62b1;
2522
+ case 0x2f8b6: return 0x62d4;
2523
+ case 0x2f8b7: return 0x6350;
2524
+ case 0x2f8b8: return 0x22b0c;
2525
+ case 0x2f8b9: return 0x633d;
2526
+ case 0x2f8ba: return 0x62fc;
2527
+ case 0x2f8bb: return 0x6368;
2528
+ case 0x2f8bc: return 0x6383;
2529
+ case 0x2f8bd: return 0x63e4;
2530
+ case 0x2f8be: return 0x22bf1;
2531
+ case 0x2f8bf: return 0x6422;
2532
+ case 0x2f8c0: return 0x63c5;
2533
+ case 0x2f8c1: return 0x63a9;
2534
+ case 0x2f8c2: return 0x3a2e;
2535
+ case 0x2f8c3: return 0x6469;
2536
+ case 0x2f8c4: return 0x647e;
2537
+ case 0x2f8c5: return 0x649d;
2538
+ case 0x2f8c6: return 0x6477;
2539
+ case 0x2f8c7: return 0x3a6c;
2540
+ case 0x2f8c8: return 0x654f;
2541
+ case 0x2f8c9: return 0x656c;
2542
+ case 0x2f8ca: return 0x2300a;
2543
+ case 0x2f8cb: return 0x65e3;
2544
+ case 0x2f8cc: return 0x66f8;
2545
+ case 0x2f8cd: return 0x6649;
2546
+ case 0x2f8ce: return 0x3b19;
2547
+ case 0x2f8cf: return 0x6691;
2548
+ case 0x2f8d0: return 0x3b08;
2549
+ case 0x2f8d1: return 0x3ae4;
2550
+ case 0x2f8d2: return 0x5192;
2551
+ case 0x2f8d3: return 0x5195;
2552
+ case 0x2f8d4: return 0x6700;
2553
+ case 0x2f8d5: return 0x669c;
2554
+ case 0x2f8d6: return 0x80ad;
2555
+ case 0x2f8d7: return 0x43d9;
2556
+ case 0x2f8d8: return 0x6717;
2557
+ case 0x2f8d9: return 0x671b;
2558
+ case 0x2f8da: return 0x6721;
2559
+ case 0x2f8db: return 0x675e;
2560
+ case 0x2f8dc: return 0x6753;
2561
+ case 0x2f8dd: return 0x233c3;
2562
+ case 0x2f8de: return 0x3b49;
2563
+ case 0x2f8df: return 0x67fa;
2564
+ case 0x2f8e0: return 0x6785;
2565
+ case 0x2f8e1: return 0x6852;
2566
+ case 0x2f8e2: return 0x6885;
2567
+ case 0x2f8e3: return 0x2346d;
2568
+ case 0x2f8e4: return 0x688e;
2569
+ case 0x2f8e5: return 0x681f;
2570
+ case 0x2f8e6: return 0x6914;
2571
+ case 0x2f8e7: return 0x3b9d;
2572
+ case 0x2f8e8: return 0x6942;
2573
+ case 0x2f8e9: return 0x69a3;
2574
+ case 0x2f8ea: return 0x69ea;
2575
+ case 0x2f8eb: return 0x6aa8;
2576
+ case 0x2f8ec: return 0x236a3;
2577
+ case 0x2f8ed: return 0x6adb;
2578
+ case 0x2f8ee: return 0x3c18;
2579
+ case 0x2f8ef: return 0x6b21;
2580
+ case 0x2f8f0: return 0x238a7;
2581
+ case 0x2f8f1: return 0x6b54;
2582
+ case 0x2f8f2: return 0x3c4e;
2583
+ case 0x2f8f3: return 0x6b72;
2584
+ case 0x2f8f4: return 0x6b9f;
2585
+ case 0x2f8f5: return 0x6bba;
2586
+ case 0x2f8f6: return 0x6bbb;
2587
+ case 0x2f8f7: return 0x23a8d;
2588
+ case 0x2f8f8: return 0x21d0b;
2589
+ case 0x2f8f9: return 0x23afa;
2590
+ case 0x2f8fa: return 0x6c4e;
2591
+ case 0x2f8fb: return 0x23cbc;
2592
+ case 0x2f8fc: return 0x6cbf;
2593
+ case 0x2f8fd: return 0x6ccd;
2594
+ case 0x2f8fe: return 0x6c67;
2595
+ case 0x2f8ff: return 0x6d16;
2596
+ case 0x2f900: return 0x6d3e;
2597
+ case 0x2f901: return 0x6d77;
2598
+ case 0x2f902: return 0x6d41;
2599
+ case 0x2f903: return 0x6d69;
2600
+ case 0x2f904: return 0x6d78;
2601
+ case 0x2f905: return 0x6d85;
2602
+ case 0x2f906: return 0x23d1e;
2603
+ case 0x2f907: return 0x6d34;
2604
+ case 0x2f908: return 0x6e2f;
2605
+ case 0x2f909: return 0x6e6e;
2606
+ case 0x2f90a: return 0x3d33;
2607
+ case 0x2f90b: return 0x6ecb;
2608
+ case 0x2f90c: return 0x6ec7;
2609
+ case 0x2f90d: return 0x23ed1;
2610
+ case 0x2f90e: return 0x6df9;
2611
+ case 0x2f90f: return 0x6f6e;
2612
+ case 0x2f910: return 0x23f5e;
2613
+ case 0x2f911: return 0x23f8e;
2614
+ case 0x2f912: return 0x6fc6;
2615
+ case 0x2f913: return 0x7039;
2616
+ case 0x2f914: return 0x701e;
2617
+ case 0x2f915: return 0x701b;
2618
+ case 0x2f916: return 0x3d96;
2619
+ case 0x2f917: return 0x704a;
2620
+ case 0x2f918: return 0x707d;
2621
+ case 0x2f919: return 0x7077;
2622
+ case 0x2f91a: return 0x70ad;
2623
+ case 0x2f91b: return 0x20525;
2624
+ case 0x2f91c: return 0x7145;
2625
+ case 0x2f91d: return 0x24263;
2626
+ case 0x2f91e: return 0x719c;
2627
+ case 0x2f91f: return 0x243ab;
2628
+ case 0x2f920: return 0x7228;
2629
+ case 0x2f921: return 0x7235;
2630
+ case 0x2f922: return 0x7250;
2631
+ case 0x2f923: return 0x24608;
2632
+ case 0x2f924: return 0x7280;
2633
+ case 0x2f925: return 0x7295;
2634
+ case 0x2f926: return 0x24735;
2635
+ case 0x2f927: return 0x24814;
2636
+ case 0x2f928: return 0x737a;
2637
+ case 0x2f929: return 0x738b;
2638
+ case 0x2f92a: return 0x3eac;
2639
+ case 0x2f92b: return 0x73a5;
2640
+ case 0x2f92c: return 0x3eb8;
2641
+ case 0x2f92d: return 0x3eb8;
2642
+ case 0x2f92e: return 0x7447;
2643
+ case 0x2f92f: return 0x745c;
2644
+ case 0x2f930: return 0x7471;
2645
+ case 0x2f931: return 0x7485;
2646
+ case 0x2f932: return 0x74ca;
2647
+ case 0x2f933: return 0x3f1b;
2648
+ case 0x2f934: return 0x7524;
2649
+ case 0x2f935: return 0x24c36;
2650
+ case 0x2f936: return 0x753e;
2651
+ case 0x2f937: return 0x24c92;
2652
+ case 0x2f938: return 0x7570;
2653
+ case 0x2f939: return 0x2219f;
2654
+ case 0x2f93a: return 0x7610;
2655
+ case 0x2f93b: return 0x24fa1;
2656
+ case 0x2f93c: return 0x24fb8;
2657
+ case 0x2f93d: return 0x25044;
2658
+ case 0x2f93e: return 0x3ffc;
2659
+ case 0x2f93f: return 0x4008;
2660
+ case 0x2f940: return 0x76f4;
2661
+ case 0x2f941: return 0x250f3;
2662
+ case 0x2f942: return 0x250f2;
2663
+ case 0x2f943: return 0x25119;
2664
+ case 0x2f944: return 0x25133;
2665
+ case 0x2f945: return 0x771e;
2666
+ case 0x2f946: return 0x771f;
2667
+ case 0x2f947: return 0x771f;
2668
+ case 0x2f948: return 0x774a;
2669
+ case 0x2f949: return 0x4039;
2670
+ case 0x2f94a: return 0x778b;
2671
+ case 0x2f94b: return 0x4046;
2672
+ case 0x2f94c: return 0x4096;
2673
+ case 0x2f94d: return 0x2541d;
2674
+ case 0x2f94e: return 0x784e;
2675
+ case 0x2f94f: return 0x788c;
2676
+ case 0x2f950: return 0x78cc;
2677
+ case 0x2f951: return 0x40e3;
2678
+ case 0x2f952: return 0x25626;
2679
+ case 0x2f953: return 0x7956;
2680
+ case 0x2f954: return 0x2569a;
2681
+ case 0x2f955: return 0x256c5;
2682
+ case 0x2f956: return 0x798f;
2683
+ case 0x2f957: return 0x79eb;
2684
+ case 0x2f958: return 0x412f;
2685
+ case 0x2f959: return 0x7a40;
2686
+ case 0x2f95a: return 0x7a4a;
2687
+ case 0x2f95b: return 0x7a4f;
2688
+ case 0x2f95c: return 0x2597c;
2689
+ case 0x2f95d: return 0x25aa7;
2690
+ case 0x2f95e: return 0x25aa7;
2691
+ case 0x2f95f: return 0x7aee;
2692
+ case 0x2f960: return 0x4202;
2693
+ case 0x2f961: return 0x25bab;
2694
+ case 0x2f962: return 0x7bc6;
2695
+ case 0x2f963: return 0x7bc9;
2696
+ case 0x2f964: return 0x4227;
2697
+ case 0x2f965: return 0x25c80;
2698
+ case 0x2f966: return 0x7cd2;
2699
+ case 0x2f967: return 0x42a0;
2700
+ case 0x2f968: return 0x7ce8;
2701
+ case 0x2f969: return 0x7ce3;
2702
+ case 0x2f96a: return 0x7d00;
2703
+ case 0x2f96b: return 0x25f86;
2704
+ case 0x2f96c: return 0x7d63;
2705
+ case 0x2f96d: return 0x4301;
2706
+ case 0x2f96e: return 0x7dc7;
2707
+ case 0x2f96f: return 0x7e02;
2708
+ case 0x2f970: return 0x7e45;
2709
+ case 0x2f971: return 0x4334;
2710
+ case 0x2f972: return 0x26228;
2711
+ case 0x2f973: return 0x26247;
2712
+ case 0x2f974: return 0x4359;
2713
+ case 0x2f975: return 0x262d9;
2714
+ case 0x2f976: return 0x7f7a;
2715
+ case 0x2f977: return 0x2633e;
2716
+ case 0x2f978: return 0x7f95;
2717
+ case 0x2f979: return 0x7ffa;
2718
+ case 0x2f97a: return 0x8005;
2719
+ case 0x2f97b: return 0x264da;
2720
+ case 0x2f97c: return 0x26523;
2721
+ case 0x2f97d: return 0x8060;
2722
+ case 0x2f97e: return 0x265a8;
2723
+ case 0x2f97f: return 0x8070;
2724
+ case 0x2f980: return 0x2335f;
2725
+ case 0x2f981: return 0x43d5;
2726
+ case 0x2f982: return 0x80b2;
2727
+ case 0x2f983: return 0x8103;
2728
+ case 0x2f984: return 0x440b;
2729
+ case 0x2f985: return 0x813e;
2730
+ case 0x2f986: return 0x5ab5;
2731
+ case 0x2f987: return 0x267a7;
2732
+ case 0x2f988: return 0x267b5;
2733
+ case 0x2f989: return 0x23393;
2734
+ case 0x2f98a: return 0x2339c;
2735
+ case 0x2f98b: return 0x8201;
2736
+ case 0x2f98c: return 0x8204;
2737
+ case 0x2f98d: return 0x8f9e;
2738
+ case 0x2f98e: return 0x446b;
2739
+ case 0x2f98f: return 0x8291;
2740
+ case 0x2f990: return 0x828b;
2741
+ case 0x2f991: return 0x829d;
2742
+ case 0x2f992: return 0x52b3;
2743
+ case 0x2f993: return 0x82b1;
2744
+ case 0x2f994: return 0x82b3;
2745
+ case 0x2f995: return 0x82bd;
2746
+ case 0x2f996: return 0x82e6;
2747
+ case 0x2f997: return 0x26b3c;
2748
+ case 0x2f998: return 0x82e5;
2749
+ case 0x2f999: return 0x831d;
2750
+ case 0x2f99a: return 0x8363;
2751
+ case 0x2f99b: return 0x83ad;
2752
+ case 0x2f99c: return 0x8323;
2753
+ case 0x2f99d: return 0x83bd;
2754
+ case 0x2f99e: return 0x83e7;
2755
+ case 0x2f99f: return 0x8457;
2756
+ case 0x2f9a0: return 0x8353;
2757
+ case 0x2f9a1: return 0x83ca;
2758
+ case 0x2f9a2: return 0x83cc;
2759
+ case 0x2f9a3: return 0x83dc;
2760
+ case 0x2f9a4: return 0x26c36;
2761
+ case 0x2f9a5: return 0x26d6b;
2762
+ case 0x2f9a6: return 0x26cd5;
2763
+ case 0x2f9a7: return 0x452b;
2764
+ case 0x2f9a8: return 0x84f1;
2765
+ case 0x2f9a9: return 0x84f3;
2766
+ case 0x2f9aa: return 0x8516;
2767
+ case 0x2f9ab: return 0x273ca;
2768
+ case 0x2f9ac: return 0x8564;
2769
+ case 0x2f9ad: return 0x26f2c;
2770
+ case 0x2f9ae: return 0x455d;
2771
+ case 0x2f9af: return 0x4561;
2772
+ case 0x2f9b0: return 0x26fb1;
2773
+ case 0x2f9b1: return 0x270d2;
2774
+ case 0x2f9b2: return 0x456b;
2775
+ case 0x2f9b3: return 0x8650;
2776
+ case 0x2f9b4: return 0x865c;
2777
+ case 0x2f9b5: return 0x8667;
2778
+ case 0x2f9b6: return 0x8669;
2779
+ case 0x2f9b7: return 0x86a9;
2780
+ case 0x2f9b8: return 0x8688;
2781
+ case 0x2f9b9: return 0x870e;
2782
+ case 0x2f9ba: return 0x86e2;
2783
+ case 0x2f9bb: return 0x8779;
2784
+ case 0x2f9bc: return 0x8728;
2785
+ case 0x2f9bd: return 0x876b;
2786
+ case 0x2f9be: return 0x8786;
2787
+ case 0x2f9bf: return 0x45d7;
2788
+ case 0x2f9c0: return 0x87e1;
2789
+ case 0x2f9c1: return 0x8801;
2790
+ case 0x2f9c2: return 0x45f9;
2791
+ case 0x2f9c3: return 0x8860;
2792
+ case 0x2f9c4: return 0x8863;
2793
+ case 0x2f9c5: return 0x27667;
2794
+ case 0x2f9c6: return 0x88d7;
2795
+ case 0x2f9c7: return 0x88de;
2796
+ case 0x2f9c8: return 0x4635;
2797
+ case 0x2f9c9: return 0x88fa;
2798
+ case 0x2f9ca: return 0x34bb;
2799
+ case 0x2f9cb: return 0x278ae;
2800
+ case 0x2f9cc: return 0x27966;
2801
+ case 0x2f9cd: return 0x46be;
2802
+ case 0x2f9ce: return 0x46c7;
2803
+ case 0x2f9cf: return 0x8aa0;
2804
+ case 0x2f9d0: return 0x8aed;
2805
+ case 0x2f9d1: return 0x8b8a;
2806
+ case 0x2f9d2: return 0x8c55;
2807
+ case 0x2f9d3: return 0x27ca8;
2808
+ case 0x2f9d4: return 0x8cab;
2809
+ case 0x2f9d5: return 0x8cc1;
2810
+ case 0x2f9d6: return 0x8d1b;
2811
+ case 0x2f9d7: return 0x8d77;
2812
+ case 0x2f9d8: return 0x27f2f;
2813
+ case 0x2f9d9: return 0x20804;
2814
+ case 0x2f9da: return 0x8dcb;
2815
+ case 0x2f9db: return 0x8dbc;
2816
+ case 0x2f9dc: return 0x8df0;
2817
+ case 0x2f9dd: return 0x208de;
2818
+ case 0x2f9de: return 0x8ed4;
2819
+ case 0x2f9df: return 0x8f38;
2820
+ case 0x2f9e0: return 0x285d2;
2821
+ case 0x2f9e1: return 0x285ed;
2822
+ case 0x2f9e2: return 0x9094;
2823
+ case 0x2f9e3: return 0x90f1;
2824
+ case 0x2f9e4: return 0x9111;
2825
+ case 0x2f9e5: return 0x2872e;
2826
+ case 0x2f9e6: return 0x911b;
2827
+ case 0x2f9e7: return 0x9238;
2828
+ case 0x2f9e8: return 0x92d7;
2829
+ case 0x2f9e9: return 0x92d8;
2830
+ case 0x2f9ea: return 0x927c;
2831
+ case 0x2f9eb: return 0x93f9;
2832
+ case 0x2f9ec: return 0x9415;
2833
+ case 0x2f9ed: return 0x28bfa;
2834
+ case 0x2f9ee: return 0x958b;
2835
+ case 0x2f9ef: return 0x4995;
2836
+ case 0x2f9f0: return 0x95b7;
2837
+ case 0x2f9f1: return 0x28d77;
2838
+ case 0x2f9f2: return 0x49e6;
2839
+ case 0x2f9f3: return 0x96c3;
2840
+ case 0x2f9f4: return 0x5db2;
2841
+ case 0x2f9f5: return 0x9723;
2842
+ case 0x2f9f6: return 0x29145;
2843
+ case 0x2f9f7: return 0x2921a;
2844
+ case 0x2f9f8: return 0x4a6e;
2845
+ case 0x2f9f9: return 0x4a76;
2846
+ case 0x2f9fa: return 0x97e0;
2847
+ case 0x2f9fb: return 0x2940a;
2848
+ case 0x2f9fc: return 0x4ab2;
2849
+ case 0x2f9fd: return 0x29496;
2850
+ case 0x2f9fe: return 0x980b;
2851
+ case 0x2f9ff: return 0x980b;
2852
+ case 0x2fa00: return 0x9829;
2853
+ case 0x2fa01: return 0x295b6;
2854
+ case 0x2fa02: return 0x98e2;
2855
+ case 0x2fa03: return 0x4b33;
2856
+ case 0x2fa04: return 0x9929;
2857
+ case 0x2fa05: return 0x99a7;
2858
+ case 0x2fa06: return 0x99c2;
2859
+ case 0x2fa07: return 0x99fe;
2860
+ case 0x2fa08: return 0x4bce;
2861
+ case 0x2fa09: return 0x29b30;
2862
+ case 0x2fa0a: return 0x9b12;
2863
+ case 0x2fa0b: return 0x9c40;
2864
+ case 0x2fa0c: return 0x9cfd;
2865
+ case 0x2fa0d: return 0x4cce;
2866
+ case 0x2fa0e: return 0x4ced;
2867
+ case 0x2fa0f: return 0x9d67;
2868
+ case 0x2fa10: return 0x2a0ce;
2869
+ case 0x2fa11: return 0x4cf8;
2870
+ case 0x2fa12: return 0x2a105;
2871
+ case 0x2fa13: return 0x2a20e;
2872
+ case 0x2fa14: return 0x2a291;
2873
+ case 0x2fa15: return 0x9ebb;
2874
+ case 0x2fa16: return 0x4d56;
2875
+ case 0x2fa17: return 0x9ef9;
2876
+ case 0x2fa18: return 0x9efe;
2877
+ case 0x2fa19: return 0x9f05;
2878
+ case 0x2fa1a: return 0x9f0f;
2879
+ case 0x2fa1b: return 0x9f16;
2880
+ case 0x2fa1c: return 0x9f3b;
2881
+ case 0x2fa1d: return 0x2a600;
2882
+ default: return codepoint;
2883
+ }
2884
+ }