diff --git a/SHASUMS256.txt b/SHASUMS256.txt index 615b73e..16131f7 100644 --- a/SHASUMS256.txt +++ b/SHASUMS256.txt @@ -1,34 +1,34 @@ -adc237098880c85b3aacaf2dfbea86c3db065fa7e4cbf207b617a661f4627555 node-v18.12.1-aix-ppc64.tar.gz -9857042e18a0530a19f22f29a38de4fed5608e32543216f9afb6edea8d0dfdd3 node-v18.12.1-darwin-arm64.tar.gz -17f2e25d207d36d6b0964845062160d9ed16207c08d09af33b9a2fd046c5896f node-v18.12.1-darwin-arm64.tar.xz -90ac0e8148f3fb52bcfc01d9f7d7963ce565dd0add0cd8d3e0698fbd7ecf1e5a node-v18.12.1-darwin-x64.tar.gz -6c88d462550a024661e74e9377371d7e023321a652eafb3d14d58a866e6ac002 node-v18.12.1-darwin-x64.tar.xz -9d55ee072ba6d5a141db092cef1a0f715f7d3fc938285a6d927a1d0a0c7442f7 node-v18.12.1-headers.tar.gz -c16e93695b00520a085b999808883d40c0ec12759a9ee63448133060c3aab2eb node-v18.12.1-headers.tar.xz -521587df6d2b9d9c524105c8f3f9d775dcfc5e7fbf7633e4455cc2e9af7d0ced node-v18.12.1-linux-arm64.tar.gz -3904869935b7ecc51130b4b86486d2356539a174d11c9181180cab649f32cd2a node-v18.12.1-linux-arm64.tar.xz -0c726bb061d10befb5e383e3e787446dc86ba99ae849fb24f27f88fee27433d5 node-v18.12.1-linux-armv7l.tar.gz -d0131a764c0f44821fdacb3c3ab8b35b52af060a98ac7a150ec49d4c540be3d7 node-v18.12.1-linux-armv7l.tar.xz -b6eb0af1311f6cb0349c7b7babc17bb32865a2eed6c7f304eddc111bf9576481 node-v18.12.1-linux-ppc64le.tar.gz -9646cd3dbaf80828a7b420a9b80fd3be3ecf5d182e1c080c85397b9986a9c818 node-v18.12.1-linux-ppc64le.tar.xz -28270961975e3c166e049d6ceff8cd7068802f54ddd7c9c12b6941ee129ead44 node-v18.12.1-linux-s390x.tar.gz -c4672a02aaf5311d32a1bd3ec8a8607f03b2f692142b5fb305cc3562f9cb316f node-v18.12.1-linux-s390x.tar.xz -a8fcacb8033504e6d704bdee821f7005ee3774db25c799bcf2a13b5bda7de172 node-v18.12.1-linux-x64.tar.gz -4481a34bf32ddb9a9ff9540338539401320e8c3628af39929b4211ea3552a19e node-v18.12.1-linux-x64.tar.xz -16acaf8d12c9f828fdd71cd499b324014e961c9d36d0d0f7a092863ce3100065 node-v18.12.1.pkg -ba8174dda00d5b90943f37c6a180a1d37c861d91e04a4cb38dc1c0c74981c186 node-v18.12.1.tar.gz -4fa406451bc52659a290e52cfdb2162a760bd549da4b8bbebe6a29f296d938df node-v18.12.1.tar.xz -b8f73f9b7fa78aebf172893713b14908aa46585dbb88e333bf9c26102533a7f6 node-v18.12.1-win-x64.7z -5478a5a2dce2803ae22327a9f8ae8494c1dec4a4beca5bbf897027380aecf4c7 node-v18.12.1-win-x64.zip -a02b64d9a3f457e00a6138d6b51812b53dcc458632b228cba862081263d01d48 node-v18.12.1-win-x86.7z -099b42d27b7d05fe6feb04fa525364e960aa348f8ad2d95fef64e1608ee843be node-v18.12.1-win-x86.zip -68e5d77f23c71168b6066444c36c9489c4165db6619c6cf5ac96b48684831fdd node-v18.12.1-x64.msi -860682f15893741ad18c7c257d79a51b875c1136d5d9e3cc55e8c7f273780fbc node-v18.12.1-x86.msi -215180104150568025cc41ba9b234b8f6c6ad4c7f75f2e55a97de85cfb545060 win-x64/node.exe -1bd376a23d181d85096d1a9c46e6be7fcd20d30f9b8f77a2a847d3dbff8e25c7 win-x64/node.lib -2b76e27f6cb0d30467b71a0ac22b55b36f657f6b38e6c38e49e98de6a1e60de9 win-x64/node_pdb.7z -fda35a2fd04d550831c5069d3b2f4024ec7d950e45dff9caa59e7b5f8b16e50c win-x64/node_pdb.zip -4fedbbe7d609875d75c6361974828ff7d2bd65195b4e17472c8c407d991cd209 win-x86/node.exe -b1c6dc670911d85ef1704fa56f4cc4c7e1071f4869778398e6d88b3b0b565978 win-x86/node.lib -99f54dfb72497d84ad3326ee811c667187983707c0f12c96d96d0dd948b78152 win-x86/node_pdb.7z -3fc2c909af7f8039459b86f42332310eb591b44970439445917ecd5fe295130e win-x86/node_pdb.zip +9a479a5b7128ed8bb32c263f4519ca84ec7fa49efb90ebaf0cb25d34dd6d2667 node-v18.13.0-aix-ppc64.tar.gz +418d535e64dbcbd628715180c2de4ffcecb8a84b81f233c60e6ab9f0d795c249 node-v18.13.0-darwin-arm64.tar.gz +15210e2672040f375f7804ed1e665d67e2026e5160125358e4187d32f71bac62 node-v18.13.0-darwin-arm64.tar.xz +8b57c4da4ff6cca19d5ef7953f8816e3406d1508a2e4ee7f997984b3b1d11b77 node-v18.13.0-darwin-x64.tar.gz +37876b315d2b59506d10fccdb8d72cab9fe458c7911f263322b84265395db507 node-v18.13.0-darwin-x64.tar.xz +50b6f8df7e817f13b1c5efc4223fca2ba40663bb95323ff86b36246be96bc9cd node-v18.13.0-headers.tar.gz +79deeac99df8f0063010554c87bee61e7dec8a0de4c3c5f32734c6f8aa8daa7c node-v18.13.0-headers.tar.xz +dc68e229425b941eeae0b1d59c66c680b56fd536d0ad2311e3fb009bd83661e4 node-v18.13.0-linux-arm64.tar.gz +5b338667822341d1ea3b18d5b37d442a655829b9eafdc5f9008f00b8451ac148 node-v18.13.0-linux-arm64.tar.xz +224a1ea21a354dfd567d0ac3c6f8f626f8ac534fc02ed9c11ed294e634767d35 node-v18.13.0-linux-armv7l.tar.gz +52bfe3112bef2cd033ee25b416326411ccbfe0a41a55a9ef6a94012b363b51c7 node-v18.13.0-linux-armv7l.tar.xz +4b306acfd7c36e5081d427c490e145824fe22b7fee32a12b481e9bc756e34172 node-v18.13.0-linux-ppc64le.tar.gz +8671b892820c5375d5c0fa095c592b2a72891bc495f51c860a45f198a9967813 node-v18.13.0-linux-ppc64le.tar.xz +242f94cd3655afefe225bbeaddcd7dec8c84f7976269afedcc88781e55a5f187 node-v18.13.0-linux-s390x.tar.gz +4bd664712f08dbb9fa327ae4d9404a06f2a56c1c37553445549675f5c3c92a47 node-v18.13.0-linux-s390x.tar.xz +2d2881cf860624b9fa9866670a65708c747d458213bdccaa8e7266b105d404ad node-v18.13.0-linux-x64.tar.gz +7f5d6922a91986ef059ba8a4396aa435440adacfe6fc6fab60a857c8f2cf5e7a node-v18.13.0-linux-x64.tar.xz +53b88cd86039dc23b1c14663e2ff0c0918166f17e878aded6a94a6597c1ef8fa node-v18.13.0.pkg +61ae68446438c2479e466d551b6e8c898097d56722957b1a8466ec8476a590d2 node-v18.13.0.tar.gz +fd4ac562e01d172896e3a959bd59552dbf647331c90d726f8d3471683dd3da68 node-v18.13.0.tar.xz +ceac916b111c8a0f04dd0621d7c48cd2a91848ff4fc8e35ff339138350dec801 node-v18.13.0-win-x64.7z +29c99ad1167ddbd72f2b15e91b560e36ac785b1873ba6791ab50d9d62f1957e2 node-v18.13.0-win-x64.zip +e3cdf849a38644eb721f671eb1bde1a0e0d5439e04df106efe80c8c8ee175a49 node-v18.13.0-win-x86.7z +caf703a2e118ec064d3542cb56d4404bf19e64fd357978bc504c0e27736c5420 node-v18.13.0-win-x86.zip +248f975c8e93f1eed659c4b8603eb2ea9ab09c6174f02444b85fa33c7ea4cf0f node-v18.13.0-x64.msi +5cfb5e5c17c36a85f6883c76754209f36af193846b60ef75998f979cb5e3bbdb node-v18.13.0-x86.msi +0dd4b623041704918ab97c85e096aa37d14f64db82f54364a7064c7184691545 win-x64/node.exe +9d36b6e078ffc0bf940bc0497d8e7d8485c50be6f306f46625bf86fcfa57e934 win-x64/node.lib +199f9b5f1829b4c1f02bf13fc1c176f8bedb30280e81bbca2cf8478aaca5efa4 win-x64/node_pdb.7z +43a8fce64f242d8e261fbb1cfb0bec1fba62df4bfd242f53c0a01057fa2cdcd4 win-x64/node_pdb.zip +80eafa18b85001b1773471414150c96ad52e0dd6985a4c25d7d5083fb04ae4fd win-x86/node.exe +e560d516592cf9238220905fc86314ce367a416e576c11f733431f8dd1573241 win-x86/node.lib +b1f8b8bda173e108bd051f6c54ead1ed81880936703f9effede09aca2c7ae764 win-x86/node_pdb.7z +7868ea31549c604a34a14474c95a8f8920e45963a5740b03449f46715bc4f778 win-x86/node_pdb.zip diff --git a/SHASUMS256.txt.sig b/SHASUMS256.txt.sig index 3527c44..d062d5e 100644 Binary files a/SHASUMS256.txt.sig and b/SHASUMS256.txt.sig differ diff --git a/icu721_fixes.patch b/icu721_fixes.patch deleted file mode 100644 index 88d8e86..0000000 --- a/icu721_fixes.patch +++ /dev/null @@ -1,57389 +0,0 @@ -commit 1f9b181c2090d83b93d3edda98296856427d13d1 -Author: Michaël Zasso -Date: Tue Oct 25 16:13:17 2022 +0200 - - deps: update ICU to 72.1 - - Refs: https://github.com/unicode-org/icu/releases/tag/release-72-1 - PR-URL: https://github.com/nodejs/node/pull/45068 - Reviewed-By: Richard Lau - Reviewed-By: Mohammed Keyvanzadeh - Reviewed-By: Steven R Loomis - Reviewed-By: James M Snell - Reviewed-By: Tobias Nießen - -diff --git a/deps/icu-small/README-FULL-ICU.txt b/deps/icu-small/README-FULL-ICU.txt -index 0c33485768..8ca7dfb864 100644 ---- a/deps/icu-small/README-FULL-ICU.txt -+++ b/deps/icu-small/README-FULL-ICU.txt -@@ -1,8 +1,8 @@ - ICU sources - auto generated by shrink-icu-src.py - - This directory contains the ICU subset used by --with-intl=full-icu --It is a strict subset of ICU 71 source files with the following exception(s): --* deps/icu-small/source/data/in/icudt71l.dat.bz2 : compressed data file -+It is a strict subset of ICU 72 source files with the following exception(s): -+* deps/icu-small/source/data/in/icudt72l.dat.bz2 : compressed data file - - - To rebuild this directory, see ../../tools/icu/README.md -diff --git a/deps/icu-small/source/common/appendable.cpp b/deps/icu-small/source/common/appendable.cpp -index fca3c1e413..f9b20180eb 100644 ---- a/deps/icu-small/source/common/appendable.cpp -+++ b/deps/icu-small/source/common/appendable.cpp -@@ -37,23 +37,23 @@ Appendable::appendString(const UChar *s, int32_t length) { - UChar c; - while((c=*s++)!=0) { - if(!appendCodeUnit(c)) { -- return FALSE; -+ return false; - } - } - } else if(length>0) { - const UChar *limit=s+length; - do { - if(!appendCodeUnit(*s++)) { -- return FALSE; -+ return false; - } - } while(s (INT32_MAX - s8Length)) { - errorCode = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - sink.Append(buffer, j); - s8Length += j; -@@ -52,17 +52,17 @@ ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Lengt - if (edits != nullptr) { - edits->addReplace(length, s8Length); - } -- return TRUE; -+ return true; - } - - UBool - ByteSinkUtil::appendChange(const uint8_t *s, const uint8_t *limit, - const char16_t *s16, int32_t s16Length, - ByteSink &sink, Edits *edits, UErrorCode &errorCode) { -- if (U_FAILURE(errorCode)) { return FALSE; } -+ if (U_FAILURE(errorCode)) { return false; } - if ((limit - s) > INT32_MAX) { - errorCode = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - return appendChange((int32_t)(limit - s), s16, s16Length, sink, edits, errorCode); - } -@@ -109,16 +109,16 @@ UBool - ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit, - ByteSink &sink, uint32_t options, Edits *edits, - UErrorCode &errorCode) { -- if (U_FAILURE(errorCode)) { return FALSE; } -+ if (U_FAILURE(errorCode)) { return false; } - if ((limit - s) > INT32_MAX) { - errorCode = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - int32_t length = (int32_t)(limit - s); - if (length > 0) { - appendNonEmptyUnchanged(s, length, sink, options, edits); - } -- return TRUE; -+ return true; - } - - CharStringByteSink::CharStringByteSink(CharString* dest) : dest_(*dest) { -diff --git a/deps/icu-small/source/common/bytesinkutil.h b/deps/icu-small/source/common/bytesinkutil.h -index ab2516432d..929c71fbee 100644 ---- a/deps/icu-small/source/common/bytesinkutil.h -+++ b/deps/icu-small/source/common/bytesinkutil.h -@@ -4,6 +4,9 @@ - // bytesinkutil.h - // created: 2017sep14 Markus W. Scherer - -+#ifndef BYTESINKUTIL_H -+#define BYTESINKUTIL_H -+ - #include "unicode/utypes.h" - #include "unicode/bytestream.h" - #include "unicode/edits.h" -@@ -81,3 +84,5 @@ private: - }; - - U_NAMESPACE_END -+ -+#endif //BYTESINKUTIL_H -diff --git a/deps/icu-small/source/common/bytestream.cpp b/deps/icu-small/source/common/bytestream.cpp -index 0d0e4dda39..c14f206dfe 100644 ---- a/deps/icu-small/source/common/bytestream.cpp -+++ b/deps/icu-small/source/common/bytestream.cpp -@@ -30,14 +30,14 @@ void ByteSink::Flush() {} - - CheckedArrayByteSink::CheckedArrayByteSink(char* outbuf, int32_t capacity) - : outbuf_(outbuf), capacity_(capacity < 0 ? 0 : capacity), -- size_(0), appended_(0), overflowed_(FALSE) { -+ size_(0), appended_(0), overflowed_(false) { - } - - CheckedArrayByteSink::~CheckedArrayByteSink() {} - - CheckedArrayByteSink& CheckedArrayByteSink::Reset() { - size_ = appended_ = 0; -- overflowed_ = FALSE; -+ overflowed_ = false; - return *this; - } - -@@ -48,14 +48,14 @@ void CheckedArrayByteSink::Append(const char* bytes, int32_t n) { - if (n > (INT32_MAX - appended_)) { - // TODO: Report as integer overflow, not merely buffer overflow. - appended_ = INT32_MAX; -- overflowed_ = TRUE; -+ overflowed_ = true; - return; - } - appended_ += n; - int32_t available = capacity_ - size_; - if (n > available) { - n = available; -- overflowed_ = TRUE; -+ overflowed_ = true; - } - if (n > 0 && bytes != (outbuf_ + size_)) { - uprv_memcpy(outbuf_ + size_, bytes, n); -diff --git a/deps/icu-small/source/common/bytestrie.cpp b/deps/icu-small/source/common/bytestrie.cpp -index c4d498c4bf..c272cc4022 100644 ---- a/deps/icu-small/source/common/bytestrie.cpp -+++ b/deps/icu-small/source/common/bytestrie.cpp -@@ -337,13 +337,13 @@ BytesTrie::findUniqueValueFromBranch(const uint8_t *pos, int32_t length, - } - } else { - uniqueValue=value; -- haveUniqueValue=TRUE; -+ haveUniqueValue=true; - } - } else { - if(!findUniqueValue(pos+value, haveUniqueValue, uniqueValue)) { - return NULL; - } -- haveUniqueValue=TRUE; -+ haveUniqueValue=true; - } - } while(--length>1); - return pos+1; // ignore the last comparison byte -@@ -359,9 +359,9 @@ BytesTrie::findUniqueValue(const uint8_t *pos, UBool haveUniqueValue, int32_t &u - } - pos=findUniqueValueFromBranch(pos, node+1, haveUniqueValue, uniqueValue); - if(pos==NULL) { -- return FALSE; -+ return false; - } -- haveUniqueValue=TRUE; -+ haveUniqueValue=true; - } else if(node>1); - if(haveUniqueValue) { - if(value!=uniqueValue) { -- return FALSE; -+ return false; - } - } else { - uniqueValue=value; -- haveUniqueValue=TRUE; -+ haveUniqueValue=true; - } - if(isFinal) { -- return TRUE; -+ return true; - } - pos=skipValue(pos, node); - } -diff --git a/deps/icu-small/source/common/bytestriebuilder.cpp b/deps/icu-small/source/common/bytestriebuilder.cpp -index 82dad42ca5..ac7d3d867e 100644 ---- a/deps/icu-small/source/common/bytestriebuilder.cpp -+++ b/deps/icu-small/source/common/bytestriebuilder.cpp -@@ -231,7 +231,7 @@ BytesTrieBuilder::buildBytes(UStringTrieBuildOption buildOption, UErrorCode &err - } - uprv_sortArray(elements, elementsLength, (int32_t)sizeof(BytesTrieElement), - compareElementStrings, strings, -- FALSE, // need not be a stable sort -+ false, // need not be a stable sort - &errorCode); - if(U_FAILURE(errorCode)) { - return; -@@ -375,7 +375,7 @@ BytesTrieBuilder::createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t le - UBool - BytesTrieBuilder::ensureCapacity(int32_t length) { - if(bytes==NULL) { -- return FALSE; // previous memory allocation had failed -+ return false; // previous memory allocation had failed - } - if(length>bytesCapacity) { - int32_t newCapacity=bytesCapacity; -@@ -388,7 +388,7 @@ BytesTrieBuilder::ensureCapacity(int32_t length) { - uprv_free(bytes); - bytes=NULL; - bytesCapacity=0; -- return FALSE; -+ return false; - } - uprv_memcpy(newBytes+(newCapacity-bytesLength), - bytes+(bytesCapacity-bytesLength), bytesLength); -@@ -396,7 +396,7 @@ BytesTrieBuilder::ensureCapacity(int32_t length) { - bytes=newBytes; - bytesCapacity=newCapacity; - } -- return TRUE; -+ return true; - } - - int32_t -@@ -463,7 +463,7 @@ int32_t - BytesTrieBuilder::writeValueAndType(UBool hasValue, int32_t value, int32_t node) { - int32_t offset=write(node); - if(hasValue) { -- offset=writeValueAndFinal(value, FALSE); -+ offset=writeValueAndFinal(value, false); - } - return offset; - } -diff --git a/deps/icu-small/source/common/bytestrieiterator.cpp b/deps/icu-small/source/common/bytestrieiterator.cpp -index e64961a1f1..eacb7eedb0 100644 ---- a/deps/icu-small/source/common/bytestrieiterator.cpp -+++ b/deps/icu-small/source/common/bytestrieiterator.cpp -@@ -101,12 +101,12 @@ BytesTrie::Iterator::hasNext() const { return pos_!=NULL || !stack_->isEmpty(); - UBool - BytesTrie::Iterator::next(UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - const uint8_t *pos=pos_; - if(pos==NULL) { - if(stack_->isEmpty()) { -- return FALSE; -+ return false; - } - // Pop the state off the stack and continue with the next outbound edge of - // the branch node. -@@ -119,7 +119,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) { - if(length>1) { - pos=branchNext(pos, length, errorCode); - if(pos==NULL) { -- return TRUE; // Reached a final value. -+ return true; // Reached a final value. - } - } else { - str_->append((char)*pos++, errorCode); -@@ -141,7 +141,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) { - } else { - pos_=skipValue(pos, node); - } -- return TRUE; -+ return true; - } - if(maxLength_>0 && str_->length()==maxLength_) { - return truncateAndStop(); -@@ -152,7 +152,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) { - } - pos=branchNext(pos, node+1, errorCode); - if(pos==NULL) { -- return TRUE; // Reached a final value. -+ return true; // Reached a final value. - } - } else { - // Linear-match node, append length bytes to str_. -@@ -177,7 +177,7 @@ UBool - BytesTrie::Iterator::truncateAndStop() { - pos_=NULL; - value_=-1; // no real value for str -- return TRUE; -+ return true; - } - - // Branch node, needs to take the first outbound edge and push state for the rest. -diff --git a/deps/icu-small/source/common/caniter.cpp b/deps/icu-small/source/common/caniter.cpp -index a2083afde3..81f17265fb 100644 ---- a/deps/icu-small/source/common/caniter.cpp -+++ b/deps/icu-small/source/common/caniter.cpp -@@ -119,7 +119,7 @@ UnicodeString CanonicalIterator::getSource() { - * Resets the iterator so that one can start again from the beginning. - */ - void CanonicalIterator::reset() { -- done = FALSE; -+ done = false; - for (int i = 0; i < current_length; ++i) { - current[i] = 0; - } -@@ -151,7 +151,7 @@ UnicodeString CanonicalIterator::next() { - - for (i = current_length - 1; ; --i) { - if (i < 0) { -- done = TRUE; -+ done = true; - break; - } - current[i]++; -@@ -176,7 +176,7 @@ void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &st - if(U_FAILURE(status)) { - return; - } -- done = FALSE; -+ done = false; - - cleanPieces(); - -@@ -521,7 +521,7 @@ Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, con - int32_t decompLen=decompString.length(); - - // See if it matches the start of segment (at segmentPos) -- UBool ok = FALSE; -+ UBool ok = false; - UChar32 cp; - int32_t decompPos = 0; - UChar32 decompCp; -@@ -537,7 +537,7 @@ Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, con - - if (decompPos == decompLen) { // done, have all decomp characters! - temp.append(segment+i, segLen-i); -- ok = TRUE; -+ ok = true; - break; - } - U16_NEXT(decomp, decompPos, decompLen, decompCp); -diff --git a/deps/icu-small/source/common/characterproperties.cpp b/deps/icu-small/source/common/characterproperties.cpp -index a84996b47c..2316a391a3 100644 ---- a/deps/icu-small/source/common/characterproperties.cpp -+++ b/deps/icu-small/source/common/characterproperties.cpp -@@ -36,11 +36,11 @@ namespace { - - UBool U_CALLCONV characterproperties_cleanup(); - --constexpr int32_t NUM_INCLUSIONS = UPROPS_SRC_COUNT + UCHAR_INT_LIMIT - UCHAR_INT_START; -+constexpr int32_t NUM_INCLUSIONS = UPROPS_SRC_COUNT + (UCHAR_INT_LIMIT - UCHAR_INT_START); - - struct Inclusion { - UnicodeSet *fSet = nullptr; -- UInitOnce fInitOnce = U_INITONCE_INITIALIZER; -+ UInitOnce fInitOnce {}; - }; - Inclusion gInclusions[NUM_INCLUSIONS]; // cached getInclusions() - -@@ -85,7 +85,7 @@ UBool U_CALLCONV characterproperties_cleanup() { - ucptrie_close(reinterpret_cast(maps[i])); - maps[i] = nullptr; - } -- return TRUE; -+ return true; - } - - void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode) { -@@ -210,7 +210,7 @@ const UnicodeSet *getInclusionsForSource(UPropertySource src, UErrorCode &errorC - void U_CALLCONV initIntPropInclusion(UProperty prop, UErrorCode &errorCode) { - // This function is invoked only via umtx_initOnce(). - U_ASSERT(UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT); -- int32_t inclIndex = UPROPS_SRC_COUNT + prop - UCHAR_INT_START; -+ int32_t inclIndex = UPROPS_SRC_COUNT + (prop - UCHAR_INT_START); - U_ASSERT(gInclusions[inclIndex].fSet == nullptr); - UPropertySource src = uprops_getSource(prop); - const UnicodeSet *incl = getInclusionsForSource(src, errorCode); -@@ -255,7 +255,7 @@ const UnicodeSet *CharacterProperties::getInclusionsForProperty( - UProperty prop, UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { return nullptr; } - if (UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT) { -- int32_t inclIndex = UPROPS_SRC_COUNT + prop - UCHAR_INT_START; -+ int32_t inclIndex = UPROPS_SRC_COUNT + (prop - UCHAR_INT_START); - Inclusion &i = gInclusions[inclIndex]; - umtx_initOnce(i.fInitOnce, &initIntPropInclusion, prop, errorCode); - return i.fSet; -diff --git a/deps/icu-small/source/common/charstr.cpp b/deps/icu-small/source/common/charstr.cpp -index c35622882c..8a0994c737 100644 ---- a/deps/icu-small/source/common/charstr.cpp -+++ b/deps/icu-small/source/common/charstr.cpp -@@ -220,7 +220,7 @@ UBool CharString::ensureCapacity(int32_t capacity, - int32_t desiredCapacityHint, - UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - if(capacity>buffer.getCapacity()) { - if(desiredCapacityHint==0) { -@@ -230,10 +230,10 @@ UBool CharString::ensureCapacity(int32_t capacity, - buffer.resize(capacity, len+1)==NULL - ) { - errorCode=U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - CharString &CharString::appendPathPart(StringPiece s, UErrorCode &errorCode) { -diff --git a/deps/icu-small/source/common/charstr.h b/deps/icu-small/source/common/charstr.h -index 175acd1c0a..92a75d3d2f 100644 ---- a/deps/icu-small/source/common/charstr.h -+++ b/deps/icu-small/source/common/charstr.h -@@ -177,8 +177,8 @@ private: - - UBool ensureCapacity(int32_t capacity, int32_t desiredCapacityHint, UErrorCode &errorCode); - -- CharString(const CharString &other); // forbid copying of this class -- CharString &operator=(const CharString &other); // forbid copying of this class -+ CharString(const CharString &other) = delete; // forbid copying of this class -+ CharString &operator=(const CharString &other) = delete; // forbid copying of this class - - /** - * Returns U_FILE_ALT_SEP_CHAR if found in string, and U_FILE_SEP_CHAR is not found. -diff --git a/deps/icu-small/source/common/cmemory.cpp b/deps/icu-small/source/common/cmemory.cpp -index 663c1411e4..64f5034921 100644 ---- a/deps/icu-small/source/common/cmemory.cpp -+++ b/deps/icu-small/source/common/cmemory.cpp -@@ -134,5 +134,5 @@ U_CFUNC UBool cmemory_cleanup(void) { - pAlloc = NULL; - pRealloc = NULL; - pFree = NULL; -- return TRUE; -+ return true; - } -diff --git a/deps/icu-small/source/common/cstr.h b/deps/icu-small/source/common/cstr.h -index c7a77a0ae5..be21d910bb 100644 ---- a/deps/icu-small/source/common/cstr.h -+++ b/deps/icu-small/source/common/cstr.h -@@ -51,8 +51,8 @@ class U_COMMON_API CStr : public UMemory { - - private: - CharString s; -- CStr(const CStr &other); // Forbid copying of this class. -- CStr &operator =(const CStr &other); // Forbid assignment. -+ CStr(const CStr &other) = delete; // Forbid copying of this class. -+ CStr &operator =(const CStr &other) = delete; // Forbid assignment. - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/dictbe.cpp b/deps/icu-small/source/common/dictbe.cpp -index 4fdbdf2760..768eb49b95 100644 ---- a/deps/icu-small/source/common/dictbe.cpp -+++ b/deps/icu-small/source/common/dictbe.cpp -@@ -119,7 +119,7 @@ public: - // Select the currently marked candidate, point after it in the text, and invalidate self - int32_t acceptMarked( UText *text ); - -- // Back up from the current candidate to the next shorter one; return TRUE if that exists -+ // Back up from the current candidate to the next shorter one; return true if that exists - // and point the text after it - UBool backUp( UText *text ); - -@@ -165,9 +165,9 @@ UBool - PossibleWord::backUp( UText *text ) { - if (current > 0) { - utext_setNativeIndex(text, offset + cuLengths[--current]); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - /* -@@ -1146,7 +1146,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, - - // Input UText is in one contiguous UTF-16 chunk. - // Use Read-only aliasing UnicodeString. -- inString.setTo(FALSE, -+ inString.setTo(false, - inText->chunkContents + rangeStart - inText->chunkNativeStart, - rangeEnd - rangeStart); - } else { -diff --git a/deps/icu-small/source/common/edits.cpp b/deps/icu-small/source/common/edits.cpp -index 92ca36fb5d..21d7c3f006 100644 ---- a/deps/icu-small/source/common/edits.cpp -+++ b/deps/icu-small/source/common/edits.cpp -@@ -221,7 +221,7 @@ UBool Edits::growArray() { - // Not U_BUFFER_OVERFLOW_ERROR because that could be confused on a string transform API - // with a result-string-buffer overflow. - errorCode_ = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } else if (capacity >= (INT32_MAX / 2)) { - newCapacity = INT32_MAX; - } else { -@@ -230,25 +230,25 @@ UBool Edits::growArray() { - // Grow by at least 5 units so that a maximal change record will fit. - if ((newCapacity - capacity) < 5) { - errorCode_ = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)newCapacity * 2); - if (newArray == NULL) { - errorCode_ = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - uprv_memcpy(newArray, array, (size_t)length * 2); - releaseArray(); - array = newArray; - capacity = newCapacity; -- return TRUE; -+ return true; - } - - UBool Edits::copyErrorTo(UErrorCode &outErrorCode) const { -- if (U_FAILURE(outErrorCode)) { return TRUE; } -- if (U_SUCCESS(errorCode_)) { return FALSE; } -+ if (U_FAILURE(outErrorCode)) { return true; } -+ if (U_SUCCESS(errorCode_)) { return false; } - outErrorCode = errorCode_; -- return TRUE; -+ return true; - } - - Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &errorCode) { -@@ -257,7 +257,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error - // Parallel iteration over both Edits. - Iterator abIter = ab.getFineIterator(); - Iterator bcIter = bc.getFineIterator(); -- UBool abHasNext = TRUE, bcHasNext = TRUE; -+ UBool abHasNext = true, bcHasNext = true; - // Copy iterator state into local variables, so that we can modify and subdivide spans. - // ab old & new length, bc old & new length - int32_t aLength = 0, ab_bLength = 0, bc_bLength = 0, cLength = 0; -@@ -400,7 +400,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error - Edits::Iterator::Iterator(const uint16_t *a, int32_t len, UBool oc, UBool crs) : - array(a), index(0), length(len), remaining(0), - onlyChanges_(oc), coarse(crs), -- dir(0), changed(FALSE), oldLength_(0), newLength_(0), -+ dir(0), changed(false), oldLength_(0), newLength_(0), - srcIndex(0), replIndex(0), destIndex(0) {} - - int32_t Edits::Iterator::readLength(int32_t head) { -@@ -441,16 +441,16 @@ void Edits::Iterator::updatePreviousIndexes() { - UBool Edits::Iterator::noNext() { - // No change before or beyond the string. - dir = 0; -- changed = FALSE; -+ changed = false; - oldLength_ = newLength_ = 0; -- return FALSE; -+ return false; - } - - UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) { - // Forward iteration: Update the string indexes to the limit of the current span, - // and post-increment-read array units to assemble a new span. - // Leaves the array index one after the last unit of that span. -- if (U_FAILURE(errorCode)) { return FALSE; } -+ if (U_FAILURE(errorCode)) { return false; } - // We have an errorCode in case we need to start guarding against integer overflows. - // It is also convenient for caller loops if we bail out when an error was set elsewhere. - if (dir > 0) { -@@ -464,7 +464,7 @@ UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) { - // Stay on the current one of a sequence of compressed changes. - ++index; // next() rests on the index after the sequence unit. - dir = 1; -- return TRUE; -+ return true; - } - } - dir = 1; -@@ -473,7 +473,7 @@ UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) { - // Fine-grained iterator: Continue a sequence of compressed changes. - if (remaining > 1) { - --remaining; -- return TRUE; -+ return true; - } - remaining = 0; - } -@@ -483,7 +483,7 @@ UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) { - int32_t u = array[index++]; - if (u <= MAX_UNCHANGED) { - // Combine adjacent unchanged ranges. -- changed = FALSE; -+ changed = false; - oldLength_ = u + 1; - while (index < length && (u = array[index]) <= MAX_UNCHANGED) { - ++index; -@@ -498,10 +498,10 @@ UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) { - // already fetched u > MAX_UNCHANGED at index - ++index; - } else { -- return TRUE; -+ return true; - } - } -- changed = TRUE; -+ changed = true; - if (u <= MAX_SHORT_CHANGE) { - int32_t oldLen = u >> 12; - int32_t newLen = (u >> 9) & MAX_SHORT_CHANGE_NEW_LENGTH; -@@ -516,14 +516,14 @@ UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) { - if (num > 1) { - remaining = num; // This is the first of two or more changes. - } -- return TRUE; -+ return true; - } - } else { - U_ASSERT(u <= 0x7fff); - oldLength_ = readLength((u >> 6) & 0x3f); - newLength_ = readLength(u & 0x3f); - if (!coarse) { -- return TRUE; -+ return true; - } - } - // Combine adjacent changes. -@@ -539,14 +539,14 @@ UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) { - newLength_ += readLength(u & 0x3f); - } - } -- return TRUE; -+ return true; - } - - UBool Edits::Iterator::previous(UErrorCode &errorCode) { - // Backward iteration: Pre-decrement-read array units to assemble a new span, - // then update the string indexes to the start of that span. - // Leaves the array index on the head unit of that span. -- if (U_FAILURE(errorCode)) { return FALSE; } -+ if (U_FAILURE(errorCode)) { return false; } - // We have an errorCode in case we need to start guarding against integer overflows. - // It is also convenient for caller loops if we bail out when an error was set elsewhere. - if (dir >= 0) { -@@ -559,7 +559,7 @@ UBool Edits::Iterator::previous(UErrorCode &errorCode) { - // Stay on the current one of a sequence of compressed changes. - --index; // previous() rests on the sequence unit. - dir = -1; -- return TRUE; -+ return true; - } - updateNextIndexes(); - } -@@ -572,7 +572,7 @@ UBool Edits::Iterator::previous(UErrorCode &errorCode) { - if (remaining <= (u & SHORT_CHANGE_NUM_MASK)) { - ++remaining; - updatePreviousIndexes(); -- return TRUE; -+ return true; - } - remaining = 0; - } -@@ -582,7 +582,7 @@ UBool Edits::Iterator::previous(UErrorCode &errorCode) { - int32_t u = array[--index]; - if (u <= MAX_UNCHANGED) { - // Combine adjacent unchanged ranges. -- changed = FALSE; -+ changed = false; - oldLength_ = u + 1; - while (index > 0 && (u = array[index - 1]) <= MAX_UNCHANGED) { - --index; -@@ -591,9 +591,9 @@ UBool Edits::Iterator::previous(UErrorCode &errorCode) { - newLength_ = oldLength_; - // No need to handle onlyChanges as long as previous() is called only from findIndex(). - updatePreviousIndexes(); -- return TRUE; -+ return true; - } -- changed = TRUE; -+ changed = true; - if (u <= MAX_SHORT_CHANGE) { - int32_t oldLen = u >> 12; - int32_t newLen = (u >> 9) & MAX_SHORT_CHANGE_NEW_LENGTH; -@@ -609,7 +609,7 @@ UBool Edits::Iterator::previous(UErrorCode &errorCode) { - remaining = 1; // This is the last of two or more changes. - } - updatePreviousIndexes(); -- return TRUE; -+ return true; - } - } else { - if (u <= 0x7fff) { -@@ -629,7 +629,7 @@ UBool Edits::Iterator::previous(UErrorCode &errorCode) { - } - if (!coarse) { - updatePreviousIndexes(); -- return TRUE; -+ return true; - } - } - // Combine adjacent changes. -@@ -648,7 +648,7 @@ UBool Edits::Iterator::previous(UErrorCode &errorCode) { - } - } - updatePreviousIndexes(); -- return TRUE; -+ return true; - } - - int32_t Edits::Iterator::findIndex(int32_t i, UBool findSource, UErrorCode &errorCode) { -@@ -705,7 +705,7 @@ int32_t Edits::Iterator::findIndex(int32_t i, UBool findSource, UErrorCode &erro - // The index is in the current span. - return 0; - } -- while (next(FALSE, errorCode)) { -+ while (next(false, errorCode)) { - if (findSource) { - spanStart = srcIndex; - spanLength = oldLength_; -@@ -739,7 +739,7 @@ int32_t Edits::Iterator::findIndex(int32_t i, UBool findSource, UErrorCode &erro - } - - int32_t Edits::Iterator::destinationIndexFromSourceIndex(int32_t i, UErrorCode &errorCode) { -- int32_t where = findIndex(i, TRUE, errorCode); -+ int32_t where = findIndex(i, true, errorCode); - if (where < 0) { - // Error or before the string. - return 0; -@@ -758,7 +758,7 @@ int32_t Edits::Iterator::destinationIndexFromSourceIndex(int32_t i, UErrorCode & - } - - int32_t Edits::Iterator::sourceIndexFromDestinationIndex(int32_t i, UErrorCode &errorCode) { -- int32_t where = findIndex(i, FALSE, errorCode); -+ int32_t where = findIndex(i, false, errorCode); - if (where < 0) { - // Error or before the string. - return 0; -diff --git a/deps/icu-small/source/common/emojiprops.cpp b/deps/icu-small/source/common/emojiprops.cpp -index 2a05e8602d..d07e07c6cc 100644 ---- a/deps/icu-small/source/common/emojiprops.cpp -+++ b/deps/icu-small/source/common/emojiprops.cpp -@@ -22,7 +22,7 @@ U_NAMESPACE_BEGIN - namespace { - - EmojiProps *singleton = nullptr; --icu::UInitOnce emojiInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce emojiInitOnce {}; - - UBool U_CALLCONV emojiprops_cleanup() { - delete singleton; -diff --git a/deps/icu-small/source/common/filteredbrk.cpp b/deps/icu-small/source/common/filteredbrk.cpp -index e4817367a5..baa1d4e42d 100644 ---- a/deps/icu-small/source/common/filteredbrk.cpp -+++ b/deps/icu-small/source/common/filteredbrk.cpp -@@ -58,7 +58,7 @@ static int32_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) { - /** - * A UVector which implements a set of strings. - */ --class U_COMMON_API UStringSet : public UVector { -+class UStringSet : public UVector { - public: - UStringSet(UErrorCode &status) : UVector(uprv_deleteUObject, - uhash_compareUnicodeString, -@@ -482,7 +482,7 @@ SimpleFilteredSentenceBreakIterator::last(void) { - /** - * Concrete implementation of builder class. - */ --class U_COMMON_API SimpleFilteredBreakIteratorBuilder : public FilteredBreakIteratorBuilder { -+class SimpleFilteredBreakIteratorBuilder : public FilteredBreakIteratorBuilder { - public: - virtual ~SimpleFilteredBreakIteratorBuilder(); - SimpleFilteredBreakIteratorBuilder(const Locale &fromLocale, UErrorCode &status); -@@ -614,11 +614,11 @@ SimpleFilteredBreakIteratorBuilder::build(BreakIterator* adoptBreakIterator, UEr - i++) { - const UnicodeString *abbr = fSet.getStringAt(i); - if(abbr) { -- FB_TRACE("build",abbr,TRUE,i); -+ FB_TRACE("build",abbr,true,i); - ustrs[n] = *abbr; // copy by value -- FB_TRACE("ustrs[n]",&ustrs[n],TRUE,i); -+ FB_TRACE("ustrs[n]",&ustrs[n],true,i); - } else { -- FB_TRACE("build",abbr,FALSE,i); -+ FB_TRACE("build",abbr,false,i); - status = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } -@@ -629,37 +629,37 @@ SimpleFilteredBreakIteratorBuilder::build(BreakIterator* adoptBreakIterator, UEr - for(int i=0;i-1 && (nn+1)!=ustrs[i].length()) { -- FB_TRACE("partial",&ustrs[i],FALSE,i); -+ FB_TRACE("partial",&ustrs[i],false,i); - // is partial. - // is it unique? - int sameAs = -1; - for(int j=0;jadd(prefix, kPARTIAL, status); - revCount++; -- FB_TRACE("Added partial",&prefix,FALSE, i); -- FB_TRACE(u_errorName(status),&ustrs[i],FALSE,i); -+ FB_TRACE("Added partial",&prefix,false, i); -+ FB_TRACE(u_errorName(status),&ustrs[i],false,i); - partials[i] = kSuppressInReverse | kAddToForward; - } else { -- FB_TRACE("NOT adding partial",&prefix,FALSE, i); -- FB_TRACE(u_errorName(status),&ustrs[i],FALSE,i); -+ FB_TRACE("NOT adding partial",&prefix,false, i); -+ FB_TRACE(u_errorName(status),&ustrs[i],false,i); - } - } - } -@@ -668,9 +668,9 @@ SimpleFilteredBreakIteratorBuilder::build(BreakIterator* adoptBreakIterator, UEr - ustrs[i].reverse(); - builder->add(ustrs[i], kMATCH, status); - revCount++; -- FB_TRACE(u_errorName(status), &ustrs[i], FALSE, i); -+ FB_TRACE(u_errorName(status), &ustrs[i], false, i); - } else { -- FB_TRACE("Adding fwd",&ustrs[i], FALSE, i); -+ FB_TRACE("Adding fwd",&ustrs[i], false, i); - - // an optimization would be to only add the portion after the '.' - // for example, for "Ph.D." we store ".hP" in the reverse table. We could just store "D." in the forward, -@@ -682,12 +682,12 @@ SimpleFilteredBreakIteratorBuilder::build(BreakIterator* adoptBreakIterator, UEr - ////if(debug2) u_printf("SUPPRESS- not Added(%d): /%S/ status=%s\n",partials[i], ustrs[i].getTerminatedBuffer(), u_errorName(status)); - } - } -- FB_TRACE("AbbrCount",NULL,FALSE, subCount); -+ FB_TRACE("AbbrCount",NULL,false, subCount); - - if(revCount>0) { - backwardsTrie.adoptInstead(builder->build(USTRINGTRIE_BUILD_FAST, status)); - if(U_FAILURE(status)) { -- FB_TRACE(u_errorName(status),NULL,FALSE, -1); -+ FB_TRACE(u_errorName(status),NULL,false, -1); - return NULL; - } - } -@@ -695,7 +695,7 @@ SimpleFilteredBreakIteratorBuilder::build(BreakIterator* adoptBreakIterator, UEr - if(fwdCount>0) { - forwardsPartialTrie.adoptInstead(builder2->build(USTRINGTRIE_BUILD_FAST, status)); - if(U_FAILURE(status)) { -- FB_TRACE(u_errorName(status),NULL,FALSE, -1); -+ FB_TRACE(u_errorName(status),NULL,false, -1); - return NULL; - } - } -diff --git a/deps/icu-small/source/common/filterednormalizer2.cpp b/deps/icu-small/source/common/filterednormalizer2.cpp -index 1a0914d3f7..63f01206e9 100644 ---- a/deps/icu-small/source/common/filterednormalizer2.cpp -+++ b/deps/icu-small/source/common/filterednormalizer2.cpp -@@ -137,14 +137,14 @@ UnicodeString & - FilteredNormalizer2::normalizeSecondAndAppend(UnicodeString &first, - const UnicodeString &second, - UErrorCode &errorCode) const { -- return normalizeSecondAndAppend(first, second, TRUE, errorCode); -+ return normalizeSecondAndAppend(first, second, true, errorCode); - } - - UnicodeString & - FilteredNormalizer2::append(UnicodeString &first, - const UnicodeString &second, - UErrorCode &errorCode) const { -- return normalizeSecondAndAppend(first, second, FALSE, errorCode); -+ return normalizeSecondAndAppend(first, second, false, errorCode); - } - - UnicodeString & -@@ -224,7 +224,7 @@ UBool - FilteredNormalizer2::isNormalized(const UnicodeString &s, UErrorCode &errorCode) const { - uprv_checkCanGetBuffer(s, errorCode); - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - USetSpanCondition spanCondition=USET_SPAN_SIMPLE; - for(int32_t prevSpanLimit=0; prevSpanLimitlevel == UPLUG_LEVEL_INVALID) { - plug->pluginStatus = U_PLUGIN_DIDNT_SET_LEVEL; -- plug->awaitingLoad = FALSE; -+ plug->awaitingLoad = false; - } - } else { - plug->pluginStatus = U_INTERNAL_PROGRAM_ERROR; -- plug->awaitingLoad = FALSE; -+ plug->awaitingLoad = false; - } - } - -@@ -322,7 +322,7 @@ static void uplug_loadPlug(UPlugData *plug, UErrorCode *status) { - return; - } - uplug_callPlug(plug, UPLUG_REASON_LOAD, status); -- plug->awaitingLoad = FALSE; -+ plug->awaitingLoad = false; - if(!U_SUCCESS(*status)) { - plug->pluginStatus = U_INTERNAL_PROGRAM_ERROR; - } -@@ -347,8 +347,8 @@ static UPlugData *uplug_allocateEmptyPlug(UErrorCode *status) - plug->structSize = sizeof(UPlugData); - plug->name[0]=0; - plug->level = UPLUG_LEVEL_UNKNOWN; /* initialize to null state */ -- plug->awaitingLoad = TRUE; -- plug->dontUnload = FALSE; -+ plug->awaitingLoad = true; -+ plug->dontUnload = false; - plug->pluginStatus = U_ZERO_ERROR; - plug->libName[0] = 0; - plug->config[0]=0; -@@ -403,9 +403,9 @@ static void uplug_deallocatePlug(UPlugData *plug, UErrorCode *status) { - pluginCount = uplug_removeEntryAt(pluginList, pluginCount, sizeof(plug[0]), uplug_pluginNumber(plug)); - } else { - /* not ok- leave as a message. */ -- plug->awaitingLoad=FALSE; -+ plug->awaitingLoad=false; - plug->entrypoint=0; -- plug->dontUnload=TRUE; -+ plug->dontUnload=true; - } - } - -@@ -558,8 +558,8 @@ uplug_initErrorPlug(const char *libName, const char *sym, const char *config, co - if(U_FAILURE(*status)) return NULL; - - plug->pluginStatus = loadStatus; -- plug->awaitingLoad = FALSE; /* Won't load. */ -- plug->dontUnload = TRUE; /* cannot unload. */ -+ plug->awaitingLoad = false; /* Won't load. */ -+ plug->dontUnload = true; /* cannot unload. */ - - if(sym!=NULL) { - uprv_strncpy(plug->sym, sym, UPLUG_NAME_MAX); -@@ -646,7 +646,7 @@ static UBool U_CALLCONV uplug_cleanup(void) - } - /* close other held libs? */ - gCurrentLevel = UPLUG_LEVEL_LOW; -- return TRUE; -+ return true; - } - - #if U_ENABLE_DYLOAD -@@ -678,7 +678,7 @@ static void uplug_loadWaitingPlugs(UErrorCode *status) { - currentLevel = newLevel; - } - } -- pluginToLoad->awaitingLoad = FALSE; -+ pluginToLoad->awaitingLoad = false; - } - } - } -@@ -694,7 +694,7 @@ static void uplug_loadWaitingPlugs(UErrorCode *status) { - } else { - uplug_loadPlug(pluginToLoad, &subStatus); - } -- pluginToLoad->awaitingLoad = FALSE; -+ pluginToLoad->awaitingLoad = false; - } - } - -diff --git a/deps/icu-small/source/common/loadednormalizer2impl.cpp b/deps/icu-small/source/common/loadednormalizer2impl.cpp -index 905fc1decc..24ff629f84 100644 ---- a/deps/icu-small/source/common/loadednormalizer2impl.cpp -+++ b/deps/icu-small/source/common/loadednormalizer2impl.cpp -@@ -67,9 +67,9 @@ LoadedNormalizer2Impl::isAcceptable(void * /*context*/, - ) { - // Normalizer2Impl *me=(Normalizer2Impl *)context; - // uprv_memcpy(me->dataVersion, pInfo->dataVersion, 4); -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -@@ -134,14 +134,14 @@ U_CDECL_END - - #if !NORM2_HARDCODE_NFC_DATA - static Norm2AllModes *nfcSingleton; --static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce nfcInitOnce {}; - #endif - - static Norm2AllModes *nfkcSingleton; --static icu::UInitOnce nfkcInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce nfkcInitOnce {}; - - static Norm2AllModes *nfkc_cfSingleton; --static icu::UInitOnce nfkc_cfInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce nfkc_cfInitOnce {}; - - static UHashtable *cache=NULL; - -@@ -185,7 +185,7 @@ static UBool U_CALLCONV uprv_loaded_normalizer2_cleanup() { - - uhash_close(cache); - cache=NULL; -- return TRUE; -+ return true; - } - - U_CDECL_END -diff --git a/deps/icu-small/source/common/localebuilder.cpp b/deps/icu-small/source/common/localebuilder.cpp -index a5f201e847..c1e1f2ad68 100644 ---- a/deps/icu-small/source/common/localebuilder.cpp -+++ b/deps/icu-small/source/common/localebuilder.cpp -@@ -15,7 +15,7 @@ U_NAMESPACE_BEGIN - #define UPRV_ISDIGIT(c) (((c) >= '0') && ((c) <= '9')) - #define UPRV_ISALPHANUM(c) (uprv_isASCIILetter(c) || UPRV_ISDIGIT(c) ) - --const char* kAttributeKey = "attribute"; -+constexpr const char* kAttributeKey = "attribute"; - - static bool _isExtensionSubtags(char key, const char* s, int32_t len) { - switch (uprv_tolower(key)) { -@@ -459,7 +459,7 @@ Locale LocaleBuilder::build(UErrorCode& errorCode) - UBool LocaleBuilder::copyErrorTo(UErrorCode &outErrorCode) const { - if (U_FAILURE(outErrorCode)) { - // Do not overwrite the older error code -- return TRUE; -+ return true; - } - outErrorCode = status_; - return U_FAILURE(outErrorCode); -diff --git a/deps/icu-small/source/common/localefallback_data.h b/deps/icu-small/source/common/localefallback_data.h -new file mode 100644 -index 0000000000..da725de42d ---- /dev/null -+++ b/deps/icu-small/source/common/localefallback_data.h -@@ -0,0 +1,632 @@ -+// © 2022 and later: Unicode, Inc. and others. -+// License & terms of use: http://www.unicode.org/copyright.html -+// -+// Internal static data tables used by uresbund.cpp -+// WARNING: This file is mechanically generated by the CLDR-to-ICU tool -+// (see tools/cldr/cldr-to-icu/src/main/java/org/unicode/tool/cldrtoicu/generator/ResourcFallbackCodeGenerator.java). -+// DO NOT HAND EDIT!!! -+ -+#ifdef INCLUDED_FROM_URESBUND_CPP -+ -+//====================================================================== -+// Default script table -+const char scriptCodeChars[] = -+ "Aghb\0Ahom\0Arab\0Armi\0Armn\0Avst\0Bamu\0Bass\0Beng\0Brah\0Cakm\0" -+ "Cans\0Cari\0Cham\0Cher\0Chrs\0Copt\0Cprt\0Cyrl\0Deva\0Egyp\0Ethi\0" -+ "Geor\0Gong\0Gonm\0Goth\0Grek\0Gujr\0Guru\0Hans\0Hant\0Hebr\0Hluw\0" -+ "Hmnp\0Ital\0Jpan\0Kali\0Kana\0Kawi\0Khar\0Khmr\0Kits\0Knda\0Kore\0" -+ "Lana\0Laoo\0Lepc\0Lina\0Lisu\0Lyci\0Lydi\0Mand\0Mani\0Medf\0Merc\0" -+ "Mlym\0Mong\0Mroo\0Mymr\0Narb\0Nkoo\0Nshu\0Ogam\0Olck\0Orkh\0Orya\0" -+ "Osge\0Ougr\0Pauc\0Phli\0Phnx\0Plrd\0Prti\0Rohg\0Runr\0Samr\0Sarb\0" -+ "Saur\0Sgnw\0Sinh\0Sogd\0Sora\0Soyo\0Syrc\0Tale\0Talu\0Taml\0Tang\0" -+ "Tavt\0Telu\0Tfng\0Thaa\0Thai\0Tibt\0Tnsa\0Toto\0Ugar\0Vaii\0Wcho\0" -+ "Xpeo\0Xsux\0Yiii\0"; -+ -+const char dsLocaleIDChars[] = -+ "ab\0abq\0adp\0ady\0ae\0aeb\0aho\0ajt\0akk\0alt\0am\0apc\0apd\0" -+ "ar\0arc\0arq\0ars\0ary\0arz\0as\0ase\0av\0avl\0awa\0az_IQ\0az_IR\0" -+ "az_RU\0ba\0bal\0bap\0bax\0bcq\0be\0bej\0bfq\0bft\0bfy\0bg\0bgc\0" -+ "bgn\0bgx\0bhb\0bhi\0bho\0bji\0bjj\0blt\0bn\0bo\0bpy\0bqi\0bra\0" -+ "brh\0brx\0bsq\0bst\0btv\0bua\0byn\0ccp\0ce\0chm\0chr\0cja\0cjm\0" -+ "ckb\0cmg\0cop\0cr\0crh\0crk\0crl\0csw\0ctd\0cu\0cv\0dar\0dcc\0" -+ "dgl\0dmf\0doi\0drh\0drs\0dty\0dv\0dz\0egy\0eky\0el\0esg\0ett\0" -+ "fa\0fia\0fub\0gan\0gbm\0gbz\0gez\0ggn\0gjk\0gju\0glk\0gmv\0gof\0" -+ "gom\0gon\0got\0grc\0grt\0gu\0gvr\0gwc\0gwt\0ha_CM\0ha_SD\0hak\0" -+ "haz\0hdy\0he\0hi\0hlu\0hmd\0hnd\0hne\0hnj\0hno\0hoc\0hoj\0hsn\0" -+ "hy\0ii\0inh\0iu\0iw\0ja\0ji\0jml\0ka\0kaa\0kaw\0kbd\0kby\0kdt\0" -+ "kfr\0kfy\0khb\0khn\0kht\0khw\0kjg\0kk\0kk_AF\0kk_CN\0kk_IR\0kk_MN\0" -+ "km\0kn\0ko\0koi\0kok\0kqy\0krc\0kru\0ks\0ktb\0ku_LB\0kum\0kv\0" -+ "kvx\0kxc\0kxl\0kxm\0kxp\0ky\0ky_CN\0kzh\0lab\0lad\0lah\0lbe\0" -+ "lcp\0lep\0lez\0lif\0lis\0lki\0lmn\0lo\0lrc\0luz\0lwl\0lzh\0mag\0" -+ "mai\0man_GN\0mde\0mdf\0mdx\0mfa\0mgp\0mk\0mki\0ml\0mn\0mn_CN\0" -+ "mni\0mnw\0mr\0mrd\0mrj\0mro\0ms_CC\0mtr\0mvy\0mwr\0mww\0my\0mym\0" -+ "myv\0myz\0mzn\0nan\0ne\0new\0nnp\0nod\0noe\0non\0nqo\0nsk\0nst\0" -+ "oj\0ojs\0or\0oru\0os\0osa\0ota\0otk\0oui\0pa\0pa_PK\0pal\0peo\0" -+ "phl\0phn\0pka\0pnt\0ppa\0pra\0prd\0ps\0raj\0rhg\0rif\0rjs\0rkt\0" -+ "rmt\0ru\0rue\0ryu\0sa\0sah\0sat\0saz\0sck\0scl\0sd\0sd_IN\0sdh\0" -+ "sga\0sgw\0shi\0shn\0shu\0si\0skr\0smp\0sog\0sou\0sr\0srb\0srx\0" -+ "swb\0swv\0syl\0syr\0ta\0taj\0tcy\0tdd\0tdg\0tdh\0te\0tg\0tg_PK\0" -+ "th\0thl\0thq\0thr\0ti\0tig\0tkt\0trw\0tsd\0tsf\0tsj\0tt\0tts\0" -+ "txg\0txo\0tyv\0udi\0udm\0ug\0ug_KZ\0ug_MN\0uga\0uk\0unr\0unr_NP\0" -+ "unx\0ur\0uz_AF\0uz_CN\0vai\0wal\0wbq\0wbr\0wni\0wsg\0wtm\0wuu\0" -+ "xco\0xcr\0xlc\0xld\0xmf\0xmn\0xmr\0xna\0xnr\0xpr\0xsa\0xsr\0yi\0" -+ "yue\0yue_CN\0zdj\0zgh\0zh\0zh_AU\0zh_BN\0zh_GB\0zh_GF\0zh_HK\0" -+ "zh_ID\0zh_MO\0zh_PA\0zh_PF\0zh_PH\0zh_SR\0zh_TH\0zh_TW\0zh_US\0" -+ "zh_VN\0zhx\0zkt\0"; -+ -+const int32_t defaultScriptTable[] = { -+ 0, 90, // ab -> Cyrl -+ 3, 90, // abq -> Cyrl -+ 7, 465, // adp -> Tibt -+ 11, 90, // ady -> Cyrl -+ 15, 25, // ae -> Avst -+ 18, 10, // aeb -> Arab -+ 22, 5, // aho -> Ahom -+ 26, 10, // ajt -> Arab -+ 30, 500, // akk -> Xsux -+ 34, 90, // alt -> Cyrl -+ 38, 105, // am -> Ethi -+ 41, 10, // apc -> Arab -+ 45, 10, // apd -> Arab -+ 49, 10, // ar -> Arab -+ 52, 15, // arc -> Armi -+ 56, 10, // arq -> Arab -+ 60, 10, // ars -> Arab -+ 64, 10, // ary -> Arab -+ 68, 10, // arz -> Arab -+ 72, 40, // as -> Beng -+ 75, 390, // ase -> Sgnw -+ 79, 90, // av -> Cyrl -+ 82, 10, // avl -> Arab -+ 86, 95, // awa -> Deva -+ 90, 10, // az_IQ -> Arab -+ 96, 10, // az_IR -> Arab -+ 102, 90, // az_RU -> Cyrl -+ 108, 90, // ba -> Cyrl -+ 111, 10, // bal -> Arab -+ 115, 95, // bap -> Deva -+ 119, 30, // bax -> Bamu -+ 123, 105, // bcq -> Ethi -+ 127, 90, // be -> Cyrl -+ 130, 10, // bej -> Arab -+ 134, 430, // bfq -> Taml -+ 138, 10, // bft -> Arab -+ 142, 95, // bfy -> Deva -+ 146, 90, // bg -> Cyrl -+ 149, 95, // bgc -> Deva -+ 153, 10, // bgn -> Arab -+ 157, 130, // bgx -> Grek -+ 161, 95, // bhb -> Deva -+ 165, 95, // bhi -> Deva -+ 169, 95, // bho -> Deva -+ 173, 105, // bji -> Ethi -+ 177, 95, // bjj -> Deva -+ 181, 440, // blt -> Tavt -+ 185, 40, // bn -> Beng -+ 188, 465, // bo -> Tibt -+ 191, 40, // bpy -> Beng -+ 195, 10, // bqi -> Arab -+ 199, 95, // bra -> Deva -+ 203, 10, // brh -> Arab -+ 207, 95, // brx -> Deva -+ 211, 35, // bsq -> Bass -+ 215, 105, // bst -> Ethi -+ 219, 95, // btv -> Deva -+ 223, 90, // bua -> Cyrl -+ 227, 105, // byn -> Ethi -+ 231, 50, // ccp -> Cakm -+ 235, 90, // ce -> Cyrl -+ 238, 90, // chm -> Cyrl -+ 242, 70, // chr -> Cher -+ 246, 10, // cja -> Arab -+ 250, 65, // cjm -> Cham -+ 254, 10, // ckb -> Arab -+ 258, 410, // cmg -> Soyo -+ 262, 80, // cop -> Copt -+ 266, 55, // cr -> Cans -+ 269, 90, // crh -> Cyrl -+ 273, 55, // crk -> Cans -+ 277, 55, // crl -> Cans -+ 281, 55, // csw -> Cans -+ 285, 340, // ctd -> Pauc -+ 289, 90, // cu -> Cyrl -+ 292, 90, // cv -> Cyrl -+ 295, 90, // dar -> Cyrl -+ 299, 10, // dcc -> Arab -+ 303, 10, // dgl -> Arab -+ 307, 265, // dmf -> Medf -+ 311, 95, // doi -> Deva -+ 315, 280, // drh -> Mong -+ 319, 105, // drs -> Ethi -+ 323, 95, // dty -> Deva -+ 327, 455, // dv -> Thaa -+ 330, 465, // dz -> Tibt -+ 333, 100, // egy -> Egyp -+ 337, 180, // eky -> Kali -+ 341, 130, // el -> Grek -+ 344, 120, // esg -> Gonm -+ 348, 170, // ett -> Ital -+ 352, 10, // fa -> Arab -+ 355, 10, // fia -> Arab -+ 359, 10, // fub -> Arab -+ 363, 145, // gan -> Hans -+ 367, 95, // gbm -> Deva -+ 371, 10, // gbz -> Arab -+ 375, 105, // gez -> Ethi -+ 379, 95, // ggn -> Deva -+ 383, 10, // gjk -> Arab -+ 387, 10, // gju -> Arab -+ 391, 10, // glk -> Arab -+ 395, 105, // gmv -> Ethi -+ 399, 105, // gof -> Ethi -+ 403, 95, // gom -> Deva -+ 407, 445, // gon -> Telu -+ 411, 125, // got -> Goth -+ 415, 85, // grc -> Cprt -+ 419, 40, // grt -> Beng -+ 423, 135, // gu -> Gujr -+ 426, 95, // gvr -> Deva -+ 430, 10, // gwc -> Arab -+ 434, 10, // gwt -> Arab -+ 438, 10, // ha_CM -> Arab -+ 444, 10, // ha_SD -> Arab -+ 450, 145, // hak -> Hans -+ 454, 10, // haz -> Arab -+ 458, 105, // hdy -> Ethi -+ 462, 155, // he -> Hebr -+ 465, 95, // hi -> Deva -+ 468, 160, // hlu -> Hluw -+ 472, 355, // hmd -> Plrd -+ 476, 10, // hnd -> Arab -+ 480, 95, // hne -> Deva -+ 484, 165, // hnj -> Hmnp -+ 488, 10, // hno -> Arab -+ 492, 95, // hoc -> Deva -+ 496, 95, // hoj -> Deva -+ 500, 145, // hsn -> Hans -+ 504, 20, // hy -> Armn -+ 507, 505, // ii -> Yiii -+ 510, 90, // inh -> Cyrl -+ 514, 55, // iu -> Cans -+ 517, 155, // iw -> Hebr -+ 520, 175, // ja -> Jpan -+ 523, 155, // ji -> Hebr -+ 526, 95, // jml -> Deva -+ 530, 110, // ka -> Geor -+ 533, 90, // kaa -> Cyrl -+ 537, 190, // kaw -> Kawi -+ 541, 90, // kbd -> Cyrl -+ 545, 10, // kby -> Arab -+ 549, 460, // kdt -> Thai -+ 553, 95, // kfr -> Deva -+ 557, 95, // kfy -> Deva -+ 561, 425, // khb -> Talu -+ 565, 95, // khn -> Deva -+ 569, 290, // kht -> Mymr -+ 573, 10, // khw -> Arab -+ 577, 225, // kjg -> Laoo -+ 581, 90, // kk -> Cyrl -+ 584, 10, // kk_AF -> Arab -+ 590, 10, // kk_CN -> Arab -+ 596, 10, // kk_IR -> Arab -+ 602, 10, // kk_MN -> Arab -+ 608, 200, // km -> Khmr -+ 611, 210, // kn -> Knda -+ 614, 215, // ko -> Kore -+ 617, 90, // koi -> Cyrl -+ 621, 95, // kok -> Deva -+ 625, 105, // kqy -> Ethi -+ 629, 90, // krc -> Cyrl -+ 633, 95, // kru -> Deva -+ 637, 10, // ks -> Arab -+ 640, 105, // ktb -> Ethi -+ 644, 10, // ku_LB -> Arab -+ 650, 90, // kum -> Cyrl -+ 654, 90, // kv -> Cyrl -+ 657, 10, // kvx -> Arab -+ 661, 105, // kxc -> Ethi -+ 665, 95, // kxl -> Deva -+ 669, 460, // kxm -> Thai -+ 673, 10, // kxp -> Arab -+ 677, 90, // ky -> Cyrl -+ 680, 10, // ky_CN -> Arab -+ 686, 10, // kzh -> Arab -+ 690, 235, // lab -> Lina -+ 694, 155, // lad -> Hebr -+ 698, 10, // lah -> Arab -+ 702, 90, // lbe -> Cyrl -+ 706, 460, // lcp -> Thai -+ 710, 230, // lep -> Lepc -+ 714, 90, // lez -> Cyrl -+ 718, 95, // lif -> Deva -+ 722, 240, // lis -> Lisu -+ 726, 10, // lki -> Arab -+ 730, 445, // lmn -> Telu -+ 734, 225, // lo -> Laoo -+ 737, 10, // lrc -> Arab -+ 741, 10, // luz -> Arab -+ 745, 460, // lwl -> Thai -+ 749, 145, // lzh -> Hans -+ 753, 95, // mag -> Deva -+ 757, 95, // mai -> Deva -+ 761, 300, // man_GN -> Nkoo -+ 768, 10, // mde -> Arab -+ 772, 90, // mdf -> Cyrl -+ 776, 105, // mdx -> Ethi -+ 780, 10, // mfa -> Arab -+ 784, 95, // mgp -> Deva -+ 788, 90, // mk -> Cyrl -+ 791, 10, // mki -> Arab -+ 795, 275, // ml -> Mlym -+ 798, 90, // mn -> Cyrl -+ 801, 280, // mn_CN -> Mong -+ 807, 40, // mni -> Beng -+ 811, 290, // mnw -> Mymr -+ 815, 95, // mr -> Deva -+ 818, 95, // mrd -> Deva -+ 822, 90, // mrj -> Cyrl -+ 826, 285, // mro -> Mroo -+ 830, 10, // ms_CC -> Arab -+ 836, 95, // mtr -> Deva -+ 840, 10, // mvy -> Arab -+ 844, 95, // mwr -> Deva -+ 848, 165, // mww -> Hmnp -+ 852, 290, // my -> Mymr -+ 855, 105, // mym -> Ethi -+ 859, 90, // myv -> Cyrl -+ 863, 255, // myz -> Mand -+ 867, 10, // mzn -> Arab -+ 871, 145, // nan -> Hans -+ 875, 95, // ne -> Deva -+ 878, 95, // new -> Deva -+ 882, 490, // nnp -> Wcho -+ 886, 220, // nod -> Lana -+ 890, 95, // noe -> Deva -+ 894, 370, // non -> Runr -+ 898, 300, // nqo -> Nkoo -+ 902, 55, // nsk -> Cans -+ 906, 470, // nst -> Tnsa -+ 910, 55, // oj -> Cans -+ 913, 55, // ojs -> Cans -+ 917, 325, // or -> Orya -+ 920, 10, // oru -> Arab -+ 924, 90, // os -> Cyrl -+ 927, 330, // osa -> Osge -+ 931, 10, // ota -> Arab -+ 935, 320, // otk -> Orkh -+ 939, 335, // oui -> Ougr -+ 943, 140, // pa -> Guru -+ 946, 10, // pa_PK -> Arab -+ 952, 345, // pal -> Phli -+ 956, 495, // peo -> Xpeo -+ 960, 10, // phl -> Arab -+ 964, 350, // phn -> Phnx -+ 968, 45, // pka -> Brah -+ 972, 130, // pnt -> Grek -+ 976, 95, // ppa -> Deva -+ 980, 195, // pra -> Khar -+ 984, 10, // prd -> Arab -+ 988, 10, // ps -> Arab -+ 991, 95, // raj -> Deva -+ 995, 365, // rhg -> Rohg -+ 999, 450, // rif -> Tfng -+ 1003, 95, // rjs -> Deva -+ 1007, 40, // rkt -> Beng -+ 1011, 10, // rmt -> Arab -+ 1015, 90, // ru -> Cyrl -+ 1018, 90, // rue -> Cyrl -+ 1022, 185, // ryu -> Kana -+ 1026, 95, // sa -> Deva -+ 1029, 90, // sah -> Cyrl -+ 1033, 315, // sat -> Olck -+ 1037, 385, // saz -> Saur -+ 1041, 95, // sck -> Deva -+ 1045, 10, // scl -> Arab -+ 1049, 10, // sd -> Arab -+ 1052, 95, // sd_IN -> Deva -+ 1058, 10, // sdh -> Arab -+ 1062, 310, // sga -> Ogam -+ 1066, 105, // sgw -> Ethi -+ 1070, 450, // shi -> Tfng -+ 1074, 290, // shn -> Mymr -+ 1078, 10, // shu -> Arab -+ 1082, 395, // si -> Sinh -+ 1085, 10, // skr -> Arab -+ 1089, 375, // smp -> Samr -+ 1093, 400, // sog -> Sogd -+ 1097, 460, // sou -> Thai -+ 1101, 90, // sr -> Cyrl -+ 1104, 405, // srb -> Sora -+ 1108, 95, // srx -> Deva -+ 1112, 10, // swb -> Arab -+ 1116, 95, // swv -> Deva -+ 1120, 40, // syl -> Beng -+ 1124, 415, // syr -> Syrc -+ 1128, 430, // ta -> Taml -+ 1131, 95, // taj -> Deva -+ 1135, 210, // tcy -> Knda -+ 1139, 420, // tdd -> Tale -+ 1143, 95, // tdg -> Deva -+ 1147, 95, // tdh -> Deva -+ 1151, 445, // te -> Telu -+ 1154, 90, // tg -> Cyrl -+ 1157, 10, // tg_PK -> Arab -+ 1163, 460, // th -> Thai -+ 1166, 95, // thl -> Deva -+ 1170, 95, // thq -> Deva -+ 1174, 95, // thr -> Deva -+ 1178, 105, // ti -> Ethi -+ 1181, 105, // tig -> Ethi -+ 1185, 95, // tkt -> Deva -+ 1189, 10, // trw -> Arab -+ 1193, 130, // tsd -> Grek -+ 1197, 95, // tsf -> Deva -+ 1201, 465, // tsj -> Tibt -+ 1205, 90, // tt -> Cyrl -+ 1208, 460, // tts -> Thai -+ 1212, 435, // txg -> Tang -+ 1216, 475, // txo -> Toto -+ 1220, 90, // tyv -> Cyrl -+ 1224, 0, // udi -> Aghb -+ 1228, 90, // udm -> Cyrl -+ 1232, 10, // ug -> Arab -+ 1235, 90, // ug_KZ -> Cyrl -+ 1241, 90, // ug_MN -> Cyrl -+ 1247, 480, // uga -> Ugar -+ 1251, 90, // uk -> Cyrl -+ 1254, 40, // unr -> Beng -+ 1258, 95, // unr_NP -> Deva -+ 1265, 40, // unx -> Beng -+ 1269, 10, // ur -> Arab -+ 1272, 10, // uz_AF -> Arab -+ 1278, 90, // uz_CN -> Cyrl -+ 1284, 485, // vai -> Vaii -+ 1288, 105, // wal -> Ethi -+ 1292, 445, // wbq -> Telu -+ 1296, 95, // wbr -> Deva -+ 1300, 10, // wni -> Arab -+ 1304, 115, // wsg -> Gong -+ 1308, 95, // wtm -> Deva -+ 1312, 145, // wuu -> Hans -+ 1316, 75, // xco -> Chrs -+ 1320, 60, // xcr -> Cari -+ 1324, 245, // xlc -> Lyci -+ 1328, 250, // xld -> Lydi -+ 1332, 110, // xmf -> Geor -+ 1336, 260, // xmn -> Mani -+ 1340, 270, // xmr -> Merc -+ 1344, 295, // xna -> Narb -+ 1348, 95, // xnr -> Deva -+ 1352, 360, // xpr -> Prti -+ 1356, 380, // xsa -> Sarb -+ 1360, 95, // xsr -> Deva -+ 1364, 155, // yi -> Hebr -+ 1367, 150, // yue -> Hant -+ 1371, 145, // yue_CN -> Hans -+ 1378, 10, // zdj -> Arab -+ 1382, 450, // zgh -> Tfng -+ 1386, 145, // zh -> Hans -+ 1389, 150, // zh_AU -> Hant -+ 1395, 150, // zh_BN -> Hant -+ 1401, 150, // zh_GB -> Hant -+ 1407, 150, // zh_GF -> Hant -+ 1413, 150, // zh_HK -> Hant -+ 1419, 150, // zh_ID -> Hant -+ 1425, 150, // zh_MO -> Hant -+ 1431, 150, // zh_PA -> Hant -+ 1437, 150, // zh_PF -> Hant -+ 1443, 150, // zh_PH -> Hant -+ 1449, 150, // zh_SR -> Hant -+ 1455, 150, // zh_TH -> Hant -+ 1461, 150, // zh_TW -> Hant -+ 1467, 150, // zh_US -> Hant -+ 1473, 150, // zh_VN -> Hant -+ 1479, 305, // zhx -> Nshu -+ 1483, 205, // zkt -> Kits -+}; -+ -+//====================================================================== -+// Parent locale table -+const char parentLocaleChars[] = -+ "az_Arab\0az_Cyrl\0bal_Latn\0blt_Latn\0bm_Nkoo\0bs_Cyrl\0byn_Latn\0" -+ "cu_Glag\0dje_Arab\0dyo_Arab\0en_001\0en_150\0en_AG\0en_AI\0en_AT\0" -+ "en_AU\0en_BB\0en_BE\0en_BM\0en_BS\0en_BW\0en_BZ\0en_CC\0en_CH\0" -+ "en_CK\0en_CM\0en_CX\0en_CY\0en_DE\0en_DG\0en_DK\0en_DM\0en_Dsrt\0" -+ "en_ER\0en_FI\0en_FJ\0en_FK\0en_FM\0en_GB\0en_GD\0en_GG\0en_GH\0" -+ "en_GI\0en_GM\0en_GY\0en_HK\0en_IE\0en_IL\0en_IM\0en_IN\0en_IO\0" -+ "en_JE\0en_JM\0en_KE\0en_KI\0en_KN\0en_KY\0en_LC\0en_LR\0en_LS\0" -+ "en_MG\0en_MO\0en_MS\0en_MT\0en_MU\0en_MV\0en_MW\0en_MY\0en_NA\0" -+ "en_NF\0en_NG\0en_NL\0en_NR\0en_NU\0en_NZ\0en_PG\0en_PK\0en_PN\0" -+ "en_PW\0en_RW\0en_SB\0en_SC\0en_SD\0en_SE\0en_SG\0en_SH\0en_SI\0" -+ "en_SL\0en_SS\0en_SX\0en_SZ\0en_Shaw\0en_TC\0en_TK\0en_TO\0en_TT\0" -+ "en_TV\0en_TZ\0en_UG\0en_VC\0en_VG\0en_VU\0en_WS\0en_ZA\0en_ZM\0" -+ "en_ZW\0es_419\0es_AR\0es_BO\0es_BR\0es_BZ\0es_CL\0es_CO\0es_CR\0" -+ "es_CU\0es_DO\0es_EC\0es_GT\0es_HN\0es_MX\0es_NI\0es_PA\0es_PE\0" -+ "es_PR\0es_PY\0es_SV\0es_US\0es_UY\0es_VE\0ff_Adlm\0ff_Arab\0fr_HT\0" -+ "ha_Arab\0hi_Latn\0ht\0iu_Latn\0kk_Arab\0ks_Deva\0ku_Arab\0ky_Arab\0" -+ "ky_Latn\0ml_Arab\0mn_Mong\0mni_Mtei\0ms_Arab\0nb\0nn\0no\0pa_Arab\0" -+ "pt_AO\0pt_CH\0pt_CV\0pt_FR\0pt_GQ\0pt_GW\0pt_LU\0pt_MO\0pt_MZ\0" -+ "pt_PT\0pt_ST\0pt_TL\0root\0sat_Deva\0sd_Deva\0sd_Khoj\0sd_Sind\0" -+ "shi_Latn\0so_Arab\0sr_Latn\0sw_Arab\0tg_Arab\0ug_Cyrl\0uz_Arab\0" -+ "uz_Cyrl\0vai_Latn\0wo_Arab\0yo_Arab\0yue_Hans\0zh_Hant\0zh_Hant_HK\0" -+ "zh_Hant_MO\0"; -+ -+const int32_t parentLocaleTable[] = { -+ 0, 1017, // az_Arab -> root -+ 8, 1017, // az_Cyrl -> root -+ 16, 1017, // bal_Latn -> root -+ 25, 1017, // blt_Latn -> root -+ 34, 1017, // bm_Nkoo -> root -+ 42, 1017, // bs_Cyrl -> root -+ 50, 1017, // byn_Latn -> root -+ 59, 1017, // cu_Glag -> root -+ 67, 1017, // dje_Arab -> root -+ 76, 1017, // dyo_Arab -> root -+ 92, 85, // en_150 -> en_001 -+ 99, 85, // en_AG -> en_001 -+ 105, 85, // en_AI -> en_001 -+ 111, 92, // en_AT -> en_150 -+ 117, 85, // en_AU -> en_001 -+ 123, 85, // en_BB -> en_001 -+ 129, 92, // en_BE -> en_150 -+ 135, 85, // en_BM -> en_001 -+ 141, 85, // en_BS -> en_001 -+ 147, 85, // en_BW -> en_001 -+ 153, 85, // en_BZ -> en_001 -+ 159, 85, // en_CC -> en_001 -+ 165, 92, // en_CH -> en_150 -+ 171, 85, // en_CK -> en_001 -+ 177, 85, // en_CM -> en_001 -+ 183, 85, // en_CX -> en_001 -+ 189, 85, // en_CY -> en_001 -+ 195, 92, // en_DE -> en_150 -+ 201, 85, // en_DG -> en_001 -+ 207, 92, // en_DK -> en_150 -+ 213, 85, // en_DM -> en_001 -+ 219, 1017, // en_Dsrt -> root -+ 227, 85, // en_ER -> en_001 -+ 233, 92, // en_FI -> en_150 -+ 239, 85, // en_FJ -> en_001 -+ 245, 85, // en_FK -> en_001 -+ 251, 85, // en_FM -> en_001 -+ 257, 85, // en_GB -> en_001 -+ 263, 85, // en_GD -> en_001 -+ 269, 85, // en_GG -> en_001 -+ 275, 85, // en_GH -> en_001 -+ 281, 85, // en_GI -> en_001 -+ 287, 85, // en_GM -> en_001 -+ 293, 85, // en_GY -> en_001 -+ 299, 85, // en_HK -> en_001 -+ 305, 85, // en_IE -> en_001 -+ 311, 85, // en_IL -> en_001 -+ 317, 85, // en_IM -> en_001 -+ 323, 85, // en_IN -> en_001 -+ 329, 85, // en_IO -> en_001 -+ 335, 85, // en_JE -> en_001 -+ 341, 85, // en_JM -> en_001 -+ 347, 85, // en_KE -> en_001 -+ 353, 85, // en_KI -> en_001 -+ 359, 85, // en_KN -> en_001 -+ 365, 85, // en_KY -> en_001 -+ 371, 85, // en_LC -> en_001 -+ 377, 85, // en_LR -> en_001 -+ 383, 85, // en_LS -> en_001 -+ 389, 85, // en_MG -> en_001 -+ 395, 85, // en_MO -> en_001 -+ 401, 85, // en_MS -> en_001 -+ 407, 85, // en_MT -> en_001 -+ 413, 85, // en_MU -> en_001 -+ 419, 85, // en_MV -> en_001 -+ 425, 85, // en_MW -> en_001 -+ 431, 85, // en_MY -> en_001 -+ 437, 85, // en_NA -> en_001 -+ 443, 85, // en_NF -> en_001 -+ 449, 85, // en_NG -> en_001 -+ 455, 92, // en_NL -> en_150 -+ 461, 85, // en_NR -> en_001 -+ 467, 85, // en_NU -> en_001 -+ 473, 85, // en_NZ -> en_001 -+ 479, 85, // en_PG -> en_001 -+ 485, 85, // en_PK -> en_001 -+ 491, 85, // en_PN -> en_001 -+ 497, 85, // en_PW -> en_001 -+ 503, 85, // en_RW -> en_001 -+ 509, 85, // en_SB -> en_001 -+ 515, 85, // en_SC -> en_001 -+ 521, 85, // en_SD -> en_001 -+ 527, 92, // en_SE -> en_150 -+ 533, 85, // en_SG -> en_001 -+ 539, 85, // en_SH -> en_001 -+ 545, 92, // en_SI -> en_150 -+ 551, 85, // en_SL -> en_001 -+ 557, 85, // en_SS -> en_001 -+ 563, 85, // en_SX -> en_001 -+ 569, 85, // en_SZ -> en_001 -+ 575, 1017, // en_Shaw -> root -+ 583, 85, // en_TC -> en_001 -+ 589, 85, // en_TK -> en_001 -+ 595, 85, // en_TO -> en_001 -+ 601, 85, // en_TT -> en_001 -+ 607, 85, // en_TV -> en_001 -+ 613, 85, // en_TZ -> en_001 -+ 619, 85, // en_UG -> en_001 -+ 625, 85, // en_VC -> en_001 -+ 631, 85, // en_VG -> en_001 -+ 637, 85, // en_VU -> en_001 -+ 643, 85, // en_WS -> en_001 -+ 649, 85, // en_ZA -> en_001 -+ 655, 85, // en_ZM -> en_001 -+ 661, 85, // en_ZW -> en_001 -+ 674, 667, // es_AR -> es_419 -+ 680, 667, // es_BO -> es_419 -+ 686, 667, // es_BR -> es_419 -+ 692, 667, // es_BZ -> es_419 -+ 698, 667, // es_CL -> es_419 -+ 704, 667, // es_CO -> es_419 -+ 710, 667, // es_CR -> es_419 -+ 716, 667, // es_CU -> es_419 -+ 722, 667, // es_DO -> es_419 -+ 728, 667, // es_EC -> es_419 -+ 734, 667, // es_GT -> es_419 -+ 740, 667, // es_HN -> es_419 -+ 746, 667, // es_MX -> es_419 -+ 752, 667, // es_NI -> es_419 -+ 758, 667, // es_PA -> es_419 -+ 764, 667, // es_PE -> es_419 -+ 770, 667, // es_PR -> es_419 -+ 776, 667, // es_PY -> es_419 -+ 782, 667, // es_SV -> es_419 -+ 788, 667, // es_US -> es_419 -+ 794, 667, // es_UY -> es_419 -+ 800, 667, // es_VE -> es_419 -+ 806, 1017, // ff_Adlm -> root -+ 814, 1017, // ff_Arab -> root -+ 828, 1017, // ha_Arab -> root -+ 836, 323, // hi_Latn -> en_IN -+ 844, 822, // ht -> fr_HT -+ 847, 1017, // iu_Latn -> root -+ 855, 1017, // kk_Arab -> root -+ 863, 1017, // ks_Deva -> root -+ 871, 1017, // ku_Arab -> root -+ 879, 1017, // ky_Arab -> root -+ 887, 1017, // ky_Latn -> root -+ 895, 1017, // ml_Arab -> root -+ 903, 1017, // mn_Mong -> root -+ 911, 1017, // mni_Mtei -> root -+ 920, 1017, // ms_Arab -> root -+ 928, 934, // nb -> no -+ 931, 934, // nn -> no -+ 937, 1017, // pa_Arab -> root -+ 945, 999, // pt_AO -> pt_PT -+ 951, 999, // pt_CH -> pt_PT -+ 957, 999, // pt_CV -> pt_PT -+ 963, 999, // pt_FR -> pt_PT -+ 969, 999, // pt_GQ -> pt_PT -+ 975, 999, // pt_GW -> pt_PT -+ 981, 999, // pt_LU -> pt_PT -+ 987, 999, // pt_MO -> pt_PT -+ 993, 999, // pt_MZ -> pt_PT -+ 1005, 999, // pt_ST -> pt_PT -+ 1011, 999, // pt_TL -> pt_PT -+ 1022, 1017, // sat_Deva -> root -+ 1031, 1017, // sd_Deva -> root -+ 1039, 1017, // sd_Khoj -> root -+ 1047, 1017, // sd_Sind -> root -+ 1055, 1017, // shi_Latn -> root -+ 1064, 1017, // so_Arab -> root -+ 1072, 1017, // sr_Latn -> root -+ 1080, 1017, // sw_Arab -> root -+ 1088, 1017, // tg_Arab -> root -+ 1096, 1017, // ug_Cyrl -> root -+ 1104, 1017, // uz_Arab -> root -+ 1112, 1017, // uz_Cyrl -> root -+ 1120, 1017, // vai_Latn -> root -+ 1129, 1017, // wo_Arab -> root -+ 1137, 1017, // yo_Arab -> root -+ 1145, 1017, // yue_Hans -> root -+ 1154, 1017, // zh_Hant -> root -+ 1173, 1162, // zh_Hant_MO -> zh_Hant_HK -+}; -+ -+ -+#endif // INCLUDED_FROM_URESBUND_CPP -diff --git a/deps/icu-small/source/common/localematcher.cpp b/deps/icu-small/source/common/localematcher.cpp -index 2cad708d99..2f8664b6f7 100644 ---- a/deps/icu-small/source/common/localematcher.cpp -+++ b/deps/icu-small/source/common/localematcher.cpp -@@ -60,7 +60,7 @@ LocaleMatcher::Result::Result(LocaleMatcher::Result &&src) U_NOEXCEPT : - if (desiredIsOwned) { - src.desiredLocale = nullptr; - src.desiredIndex = -1; -- src.desiredIsOwned = FALSE; -+ src.desiredIsOwned = false; - } - } - -@@ -82,7 +82,7 @@ LocaleMatcher::Result &LocaleMatcher::Result::operator=(LocaleMatcher::Result && - if (desiredIsOwned) { - src.desiredLocale = nullptr; - src.desiredIndex = -1; -- src.desiredIsOwned = FALSE; -+ src.desiredIsOwned = false; - } - return *this; - } -@@ -287,10 +287,10 @@ LocaleMatcher::Builder &LocaleMatcher::Builder::internalSetThresholdDistance(int - #endif - - UBool LocaleMatcher::Builder::copyErrorTo(UErrorCode &outErrorCode) const { -- if (U_FAILURE(outErrorCode)) { return TRUE; } -- if (U_SUCCESS(errorCode_)) { return FALSE; } -+ if (U_FAILURE(outErrorCode)) { return true; } -+ if (U_SUCCESS(errorCode_)) { return false; } - outErrorCode = errorCode_; -- return TRUE; -+ return true; - } - - LocaleMatcher LocaleMatcher::Builder::build(UErrorCode &errorCode) const { -@@ -632,30 +632,30 @@ const Locale *LocaleMatcher::getBestMatchForListString( - LocaleMatcher::Result LocaleMatcher::getBestMatchResult( - const Locale &desiredLocale, UErrorCode &errorCode) const { - if (U_FAILURE(errorCode)) { -- return Result(nullptr, defaultLocale, -1, -1, FALSE); -+ return Result(nullptr, defaultLocale, -1, -1, false); - } - int32_t suppIndex = getBestSuppIndex( - getMaximalLsrOrUnd(likelySubtags, desiredLocale, errorCode), - nullptr, errorCode); - if (U_FAILURE(errorCode) || suppIndex < 0) { -- return Result(nullptr, defaultLocale, -1, -1, FALSE); -+ return Result(nullptr, defaultLocale, -1, -1, false); - } else { -- return Result(&desiredLocale, supportedLocales[suppIndex], 0, suppIndex, FALSE); -+ return Result(&desiredLocale, supportedLocales[suppIndex], 0, suppIndex, false); - } - } - - LocaleMatcher::Result LocaleMatcher::getBestMatchResult( - Locale::Iterator &desiredLocales, UErrorCode &errorCode) const { - if (U_FAILURE(errorCode) || !desiredLocales.hasNext()) { -- return Result(nullptr, defaultLocale, -1, -1, FALSE); -+ return Result(nullptr, defaultLocale, -1, -1, false); - } - LocaleLsrIterator lsrIter(likelySubtags, desiredLocales, ULOCMATCH_TEMPORARY_LOCALES); - int32_t suppIndex = getBestSuppIndex(lsrIter.next(errorCode), &lsrIter, errorCode); - if (U_FAILURE(errorCode) || suppIndex < 0) { -- return Result(nullptr, defaultLocale, -1, -1, FALSE); -+ return Result(nullptr, defaultLocale, -1, -1, false); - } else { - return Result(lsrIter.orphanRemembered(), supportedLocales[suppIndex], -- lsrIter.getBestDesiredIndex(), suppIndex, TRUE); -+ lsrIter.getBestDesiredIndex(), suppIndex, true); - } - } - -diff --git a/deps/icu-small/source/common/localeprioritylist.cpp b/deps/icu-small/source/common/localeprioritylist.cpp -index 4455eedb75..e5ba0a3c77 100644 ---- a/deps/icu-small/source/common/localeprioritylist.cpp -+++ b/deps/icu-small/source/common/localeprioritylist.cpp -@@ -234,7 +234,7 @@ void LocalePriorityList::sort(UErrorCode &errorCode) { - // The comparator forces a stable sort via the item index. - if (U_FAILURE(errorCode) || getLength() <= 1 || !hasWeights) { return; } - uprv_sortArray(list->array.getAlias(), listLength, sizeof(LocaleAndWeight), -- compareLocaleAndWeight, nullptr, FALSE, &errorCode); -+ compareLocaleAndWeight, nullptr, false, &errorCode); - } - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/locavailable.cpp b/deps/icu-small/source/common/locavailable.cpp -index e8ec512e37..cf341e1f74 100644 ---- a/deps/icu-small/source/common/locavailable.cpp -+++ b/deps/icu-small/source/common/locavailable.cpp -@@ -37,7 +37,7 @@ U_NAMESPACE_BEGIN - - static icu::Locale* availableLocaleList = NULL; - static int32_t availableLocaleListCount; --static icu::UInitOnce gInitOnceLocale = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gInitOnceLocale {}; - - U_NAMESPACE_END - -@@ -54,7 +54,7 @@ static UBool U_CALLCONV locale_available_cleanup(void) - availableLocaleListCount = 0; - gInitOnceLocale.reset(); - -- return TRUE; -+ return true; - } - - U_CDECL_END -@@ -102,7 +102,7 @@ namespace { - // Enough capacity for the two lists in the res_index.res file - const char** gAvailableLocaleNames[2] = {}; - int32_t gAvailableLocaleCounts[2] = {}; --icu::UInitOnce ginstalledLocalesInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce ginstalledLocalesInitOnce {}; - - class AvailableLocalesSink : public ResourceSink { - public: -@@ -203,7 +203,7 @@ static UBool U_CALLCONV uloc_cleanup(void) { - gAvailableLocaleCounts[i] = 0; - } - ginstalledLocalesInitOnce.reset(); -- return TRUE; -+ return true; - } - - // Load Installed Locales. This function will be called exactly once -diff --git a/deps/icu-small/source/common/locdispnames.cpp b/deps/icu-small/source/common/locdispnames.cpp -index c512a0164c..637556cc71 100644 ---- a/deps/icu-small/source/common/locdispnames.cpp -+++ b/deps/icu-small/source/common/locdispnames.cpp -@@ -514,11 +514,11 @@ uloc_getDisplayName(const char *locale, - UChar formatCloseParen = 0x0029; // ) - UChar formatReplaceCloseParen = 0x005D; // ] - -- UBool haveLang = TRUE; /* assume true, set false if we find we don't have -+ UBool haveLang = true; /* assume true, set false if we find we don't have - a lang component in the locale */ -- UBool haveRest = TRUE; /* assume true, set false if we find we don't have -+ UBool haveRest = true; /* assume true, set false if we find we don't have - any other component in the locale */ -- UBool retry = FALSE; /* set true if we need to retry, see below */ -+ UBool retry = false; /* set true if we need to retry, see below */ - - int32_t langi = 0; /* index of the language substitution (0 or 1), virtually always 0 */ - -@@ -625,7 +625,7 @@ uloc_getDisplayName(const char *locale, - } - - for(int32_t subi=0,resti=0;subi<2;) { /* iterate through patterns 0 and 1*/ -- UBool subdone = FALSE; /* set true when ready to move to next substitution */ -+ UBool subdone = false; /* set true when ready to move to next substitution */ - - /* prep p and cap for calls to get display components, pin cap to 0 since - they complain if cap is negative */ -@@ -643,10 +643,10 @@ uloc_getDisplayName(const char *locale, - length+=langLen; - haveLang=langLen>0; - } -- subdone=TRUE; -+ subdone=true; - } else { /* {1} */ - if(!haveRest) { -- subdone=TRUE; -+ subdone=true; - } else { - int32_t len; /* length of component (plus other stuff) we just fetched */ - switch(resti++) { -@@ -667,7 +667,7 @@ uloc_getDisplayName(const char *locale, - const char* kw=uenum_next(kenum.getAlias(), &len, pErrorCode); - if (kw == NULL) { - len=0; /* mark that we didn't add a component */ -- subdone=TRUE; -+ subdone=true; - } else { - /* incorporating this behavior into the loop made it even more complex, - so just special case it here */ -@@ -772,7 +772,7 @@ uloc_getDisplayName(const char *locale, - /* would have fit, but didn't because of pattern prefix. */ - sub0Pos=0; /* stops initial padding (and a second retry, - so we won't end up here again) */ -- retry=TRUE; -+ retry=true; - } - } - } -diff --git a/deps/icu-small/source/common/locdistance.cpp b/deps/icu-small/source/common/locdistance.cpp -index ff8892791b..fb22fe79ed 100644 ---- a/deps/icu-small/source/common/locdistance.cpp -+++ b/deps/icu-small/source/common/locdistance.cpp -@@ -45,13 +45,13 @@ enum { - }; - - LocaleDistance *gLocaleDistance = nullptr; --UInitOnce gInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce gInitOnce {}; - - UBool U_CALLCONV cleanup() { - delete gLocaleDistance; - gLocaleDistance = nullptr; - gInitOnce.reset(); -- return TRUE; -+ return true; - } - - } // namespace -diff --git a/deps/icu-small/source/common/locdspnm.cpp b/deps/icu-small/source/common/locdspnm.cpp -index f73cedd728..401f1fecbf 100644 ---- a/deps/icu-small/source/common/locdspnm.cpp -+++ b/deps/icu-small/source/common/locdspnm.cpp -@@ -403,7 +403,7 @@ struct LocaleDisplayNamesImpl::CapitalizationContextSink : public ResourceSink { - LocaleDisplayNamesImpl& parent; - - CapitalizationContextSink(LocaleDisplayNamesImpl& _parent) -- : hasCapitalizationUsage(FALSE), parent(_parent) {} -+ : hasCapitalizationUsage(false), parent(_parent) {} - virtual ~CapitalizationContextSink(); - - virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, -@@ -437,8 +437,8 @@ struct LocaleDisplayNamesImpl::CapitalizationContextSink : public ResourceSink { - int32_t titlecaseInt = (parent.capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU) ? intVector[0] : intVector[1]; - if (titlecaseInt == 0) { continue; } - -- parent.fCapitalization[usageEnum] = TRUE; -- hasCapitalizationUsage = TRUE; -+ parent.fCapitalization[usageEnum] = true; -+ hasCapitalizationUsage = true; - } - } - }; -@@ -490,7 +490,7 @@ LocaleDisplayNamesImpl::initialize(void) { - #if !UCONFIG_NO_BREAK_ITERATION - // Only get the context data if we need it! This is a const object so we know now... - // Also check whether we will need a break iterator (depends on the data) -- UBool needBrkIter = FALSE; -+ UBool needBrkIter = false; - if (capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_STANDALONE) { - LocalUResourceBundlePointer resource(ures_open(NULL, locale.getName(), &status)); - if (U_FAILURE(status)) { return; } -@@ -593,8 +593,8 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, - ncat(buffer, ULOC_FULLNAME_CAPACITY, lang, "_", script, "_", country, (char *)0); - localeIdName(buffer, resultName, false); - if (!resultName.isBogus()) { -- hasScript = FALSE; -- hasCountry = FALSE; -+ hasScript = false; -+ hasCountry = false; - break; - } - } -@@ -602,7 +602,7 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, - ncat(buffer, ULOC_FULLNAME_CAPACITY, lang, "_", script, (char *)0); - localeIdName(buffer, resultName, false); - if (!resultName.isBogus()) { -- hasScript = FALSE; -+ hasScript = false; - break; - } - } -@@ -610,11 +610,11 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, - ncat(buffer, ULOC_FULLNAME_CAPACITY, lang, "_", country, (char*)0); - localeIdName(buffer, resultName, false); - if (!resultName.isBogus()) { -- hasCountry = FALSE; -+ hasCountry = false; - break; - } - } -- } while (FALSE); -+ } while (false); - } - if (resultName.isBogus() || resultName.isEmpty()) { - localeIdName(lang, resultName, substitute == UDISPCTX_SUBSTITUTE); -@@ -629,7 +629,7 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, - UErrorCode status = U_ZERO_ERROR; - - if (hasScript) { -- UnicodeString script_str = scriptDisplayName(script, temp, TRUE); -+ UnicodeString script_str = scriptDisplayName(script, temp, true); - if (script_str.isBogus()) { - result.setToBogus(); - return result; -@@ -637,7 +637,7 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, - resultRemainder.append(script_str); - } - if (hasCountry) { -- UnicodeString region_str = regionDisplayName(country, temp, TRUE); -+ UnicodeString region_str = regionDisplayName(country, temp, true); - if (region_str.isBogus()) { - result.setToBogus(); - return result; -@@ -645,7 +645,7 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, - appendWithSep(resultRemainder, region_str); - } - if (hasVariant) { -- UnicodeString variant_str = variantDisplayName(variant, temp, TRUE); -+ UnicodeString variant_str = variantDisplayName(variant, temp, true); - if (variant_str.isBogus()) { - result.setToBogus(); - return result; -@@ -666,10 +666,10 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc, - if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) { - return result; - } -- keyDisplayName(key, temp, TRUE); -+ keyDisplayName(key, temp, true); - temp.findAndReplace(formatOpenParen, formatReplaceOpenParen); - temp.findAndReplace(formatCloseParen, formatReplaceCloseParen); -- keyValueDisplayName(key, value, temp2, TRUE); -+ keyValueDisplayName(key, value, temp2, true); - temp2.findAndReplace(formatOpenParen, formatReplaceOpenParen); - temp2.findAndReplace(formatCloseParen, formatReplaceCloseParen); - if (temp2 != UnicodeString(value, -1, US_INV)) { -@@ -797,13 +797,13 @@ LocaleDisplayNamesImpl::scriptDisplayName(const char* script, - UnicodeString& - LocaleDisplayNamesImpl::scriptDisplayName(const char* script, - UnicodeString& result) const { -- return scriptDisplayName(script, result, FALSE); -+ return scriptDisplayName(script, result, false); - } - - UnicodeString& - LocaleDisplayNamesImpl::scriptDisplayName(UScriptCode scriptCode, - UnicodeString& result) const { -- return scriptDisplayName(uscript_getName(scriptCode), result, FALSE); -+ return scriptDisplayName(uscript_getName(scriptCode), result, false); - } - - UnicodeString& -@@ -827,7 +827,7 @@ LocaleDisplayNamesImpl::regionDisplayName(const char* region, - UnicodeString& - LocaleDisplayNamesImpl::regionDisplayName(const char* region, - UnicodeString& result) const { -- return regionDisplayName(region, result, FALSE); -+ return regionDisplayName(region, result, false); - } - - -@@ -847,7 +847,7 @@ LocaleDisplayNamesImpl::variantDisplayName(const char* variant, - UnicodeString& - LocaleDisplayNamesImpl::variantDisplayName(const char* variant, - UnicodeString& result) const { -- return variantDisplayName(variant, result, FALSE); -+ return variantDisplayName(variant, result, false); - } - - UnicodeString& -@@ -866,7 +866,7 @@ LocaleDisplayNamesImpl::keyDisplayName(const char* key, - UnicodeString& - LocaleDisplayNamesImpl::keyDisplayName(const char* key, - UnicodeString& result) const { -- return keyDisplayName(key, result, FALSE); -+ return keyDisplayName(key, result, false); - } - - UnicodeString& -@@ -908,7 +908,7 @@ UnicodeString& - LocaleDisplayNamesImpl::keyValueDisplayName(const char* key, - const char* value, - UnicodeString& result) const { -- return keyValueDisplayName(key, value, result, FALSE); -+ return keyValueDisplayName(key, value, result, false); - } - - //////////////////////////////////////////////////////////////////////////////////////////////////// -diff --git a/deps/icu-small/source/common/locid.cpp b/deps/icu-small/source/common/locid.cpp -index 73bb8d8aec..5cd083866c 100644 ---- a/deps/icu-small/source/common/locid.cpp -+++ b/deps/icu-small/source/common/locid.cpp -@@ -64,7 +64,7 @@ U_CDECL_END - U_NAMESPACE_BEGIN - - static Locale *gLocaleCache = NULL; --static UInitOnce gLocaleCacheInitOnce = U_INITONCE_INITIALIZER; -+static UInitOnce gLocaleCacheInitOnce {}; - - // gDefaultLocaleMutex protects all access to gDefaultLocalesHashT and gDefaultLocale. - static UMutex gDefaultLocaleMutex; -@@ -128,7 +128,7 @@ static UBool U_CALLCONV locale_cleanup(void) - gDefaultLocalesHashT = NULL; - } - gDefaultLocale = NULL; -- return TRUE; -+ return true; - } - - -@@ -171,7 +171,7 @@ Locale *locale_set_default_internal(const char *id, UErrorCode& status) { - // Synchronize this entire function. - Mutex lock(&gDefaultLocaleMutex); - -- UBool canonicalize = FALSE; -+ UBool canonicalize = false; - - // If given a NULL string for the locale id, grab the default - // name from the system. -@@ -179,7 +179,7 @@ Locale *locale_set_default_internal(const char *id, UErrorCode& status) { - // the current ICU default locale.) - if (id == NULL) { - id = uprv_getDefaultLocaleID(); // This function not thread safe? TODO: verify. -- canonicalize = TRUE; // always canonicalize host ID -+ canonicalize = true; // always canonicalize host ID - } - - CharString localeNameBuf; -@@ -212,7 +212,7 @@ Locale *locale_set_default_internal(const char *id, UErrorCode& status) { - status = U_MEMORY_ALLOCATION_ERROR; - return gDefaultLocale; - } -- newDefault->init(localeNameBuf.data(), FALSE); -+ newDefault->init(localeNameBuf.data(), false); - uhash_put(gDefaultLocalesHashT, (char*) newDefault->getName(), newDefault, &status); - if (U_FAILURE(status)) { - return gDefaultLocale; -@@ -269,7 +269,7 @@ Locale::~Locale() - Locale::Locale() - : UObject(), fullName(fullNameBuffer), baseName(NULL) - { -- init(NULL, FALSE); -+ init(NULL, false); - } - - /* -@@ -292,7 +292,7 @@ Locale::Locale( const char * newLanguage, - { - if( (newLanguage==NULL) && (newCountry == NULL) && (newVariant == NULL) ) - { -- init(NULL, FALSE); /* shortcut */ -+ init(NULL, false); /* shortcut */ - } - else - { -@@ -397,7 +397,7 @@ Locale::Locale( const char * newLanguage, - } - // Parse it, because for example 'language' might really be a complete - // string. -- init(togo.data(), FALSE); -+ init(togo.data(), false); - } - } - -@@ -491,7 +491,7 @@ Locale::operator==( const Locale& other) const - - namespace { - --UInitOnce gKnownCanonicalizedInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce gKnownCanonicalizedInitOnce {}; - UHashtable *gKnownCanonicalized = nullptr; - - static const char* const KNOWN_CANONICALIZED[] = { -@@ -521,7 +521,7 @@ static const char* const KNOWN_CANONICALIZED[] = { - static UBool U_CALLCONV cleanupKnownCanonicalized() { - gKnownCanonicalizedInitOnce.reset(); - if (gKnownCanonicalized) { uhash_close(gKnownCanonicalized); } -- return TRUE; -+ return true; - } - - static void U_CALLCONV loadKnownCanonicalized(UErrorCode &status) { -@@ -682,14 +682,14 @@ private: - - - const AliasData* AliasData::gSingleton = nullptr; --UInitOnce AliasData::gInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce AliasData::gInitOnce {}; - - UBool U_CALLCONV - AliasData::cleanup() - { - gInitOnce.reset(); - delete gSingleton; -- return TRUE; -+ return true; - } - - void -@@ -716,20 +716,19 @@ AliasDataBuilder::readAlias( - status = U_MEMORY_ALLOCATION_ERROR; - return; - } -- int i = 0; -- while (ures_hasNext(alias)) { -+ for (int i = 0; U_SUCCESS(status) && ures_hasNext(alias); i++) { - LocalUResourceBundlePointer res( - ures_getNextResource(alias, nullptr, &status)); - const char* aliasFrom = ures_getKey(res.getAlias()); - UnicodeString aliasTo = - ures_getUnicodeStringByKey(res.getAlias(), "replacement", &status); -+ if (U_FAILURE(status)) return; - - checkType(aliasFrom); - checkReplacement(aliasTo); - - rawTypes[i] = aliasFrom; - rawIndexes[i] = strings->add(aliasTo, status); -- i++; - } - } - -@@ -1818,7 +1817,7 @@ ulocimp_isCanonicalizedLocaleForTest(const char* localeName) - /*This function initializes a Locale from a C locale ID*/ - Locale& Locale::init(const char* localeID, UBool canonicalize) - { -- fIsBogus = FALSE; -+ fIsBogus = false; - /* Free our current storage */ - if ((baseName != fullName) && (baseName != fullNameBuffer)) { - uprv_free(baseName); -@@ -2022,7 +2021,7 @@ Locale::setToBogus() { - *language = 0; - *script = 0; - *country = 0; -- fIsBogus = TRUE; -+ fIsBogus = true; - variantBegin = 0; - } - -@@ -2072,7 +2071,7 @@ Locale::addLikelySubtags(UErrorCode& status) { - return; - } - -- init(maximizedLocaleID.data(), /*canonicalize=*/FALSE); -+ init(maximizedLocaleID.data(), /*canonicalize=*/false); - if (isBogus()) { - status = U_ILLEGAL_ARGUMENT_ERROR; - } -@@ -2094,7 +2093,7 @@ Locale::minimizeSubtags(UErrorCode& status) { - return; - } - -- init(minimizedLocaleID.data(), /*canonicalize=*/FALSE); -+ init(minimizedLocaleID.data(), /*canonicalize=*/false); - if (isBogus()) { - status = U_ILLEGAL_ARGUMENT_ERROR; - } -@@ -2113,7 +2112,7 @@ Locale::canonicalize(UErrorCode& status) { - if (U_FAILURE(status)) { - return; - } -- init(uncanonicalized.data(), /*canonicalize=*/TRUE); -+ init(uncanonicalized.data(), /*canonicalize=*/true); - if (isBogus()) { - status = U_ILLEGAL_ARGUMENT_ERROR; - } -@@ -2160,7 +2159,7 @@ Locale::forLanguageTag(StringPiece tag, UErrorCode& status) - return result; - } - -- result.init(localeID.data(), /*canonicalize=*/FALSE); -+ result.init(localeID.data(), /*canonicalize=*/false); - if (result.isBogus()) { - status = U_ILLEGAL_ARGUMENT_ERROR; - } -@@ -2179,7 +2178,7 @@ Locale::toLanguageTag(ByteSink& sink, UErrorCode& status) const - return; - } - -- ulocimp_toLanguageTag(fullName, sink, /*strict=*/FALSE, &status); -+ ulocimp_toLanguageTag(fullName, sink, /*strict=*/false, &status); - } - - Locale U_EXPORT2 -@@ -2187,7 +2186,7 @@ Locale::createFromName (const char *name) - { - if (name) { - Locale l(""); -- l.init(name, FALSE); -+ l.init(name, false); - return l; - } - else { -@@ -2198,7 +2197,7 @@ Locale::createFromName (const char *name) - Locale U_EXPORT2 - Locale::createCanonical(const char* name) { - Locale loc(""); -- loc.init(name, TRUE); -+ loc.init(name, true); - return loc; - } - -@@ -2241,7 +2240,7 @@ const char* const* U_EXPORT2 Locale::getISOLanguages() - // Set the locale's data based on a posix id. - void Locale::setFromPOSIXID(const char *posixID) - { -- init(posixID, TRUE); -+ init(posixID, true); - } - - const Locale & U_EXPORT2 -@@ -2531,7 +2530,7 @@ Locale::createKeywords(UErrorCode &status) const - if(assignment > variantStart) { - CharString keywords; - CharStringByteSink sink(&keywords); -- ulocimp_getKeywords(variantStart+1, '@', sink, FALSE, &status); -+ ulocimp_getKeywords(variantStart+1, '@', sink, false, &status); - if (U_SUCCESS(status) && !keywords.isEmpty()) { - result = new KeywordEnumeration(keywords.data(), keywords.length(), 0, status); - if (!result) { -@@ -2560,7 +2559,7 @@ Locale::createUnicodeKeywords(UErrorCode &status) const - if(assignment > variantStart) { - CharString keywords; - CharStringByteSink sink(&keywords); -- ulocimp_getKeywords(variantStart+1, '@', sink, FALSE, &status); -+ ulocimp_getKeywords(variantStart+1, '@', sink, false, &status); - if (U_SUCCESS(status) && !keywords.isEmpty()) { - result = new UnicodeKeywordEnumeration(keywords.data(), keywords.length(), 0, status); - if (!result) { -diff --git a/deps/icu-small/source/common/loclikely.cpp b/deps/icu-small/source/common/loclikely.cpp -index d80096b588..ec0dca28a4 100644 ---- a/deps/icu-small/source/common/loclikely.cpp -+++ b/deps/icu-small/source/common/loclikely.cpp -@@ -201,7 +201,7 @@ createTagStringWithAlternates( - **/ - char tagBuffer[ULOC_FULLNAME_CAPACITY]; - int32_t tagLength = 0; -- UBool regionAppended = FALSE; -+ UBool regionAppended = false; - - if (langLength > 0) { - appendTag( -@@ -209,7 +209,7 @@ createTagStringWithAlternates( - langLength, - tagBuffer, - &tagLength, -- /*withSeparator=*/FALSE); -+ /*withSeparator=*/false); - } - else if (alternateTags == NULL) { - /* -@@ -246,7 +246,7 @@ createTagStringWithAlternates( - alternateLangLength, - tagBuffer, - &tagLength, -- /*withSeparator=*/FALSE); -+ /*withSeparator=*/false); - } - } - -@@ -256,7 +256,7 @@ createTagStringWithAlternates( - scriptLength, - tagBuffer, - &tagLength, -- /*withSeparator=*/TRUE); -+ /*withSeparator=*/true); - } - else if (alternateTags != NULL) { - /* -@@ -281,7 +281,7 @@ createTagStringWithAlternates( - alternateScriptLength, - tagBuffer, - &tagLength, -- /*withSeparator=*/TRUE); -+ /*withSeparator=*/true); - } - } - -@@ -291,9 +291,9 @@ createTagStringWithAlternates( - regionLength, - tagBuffer, - &tagLength, -- /*withSeparator=*/TRUE); -+ /*withSeparator=*/true); - -- regionAppended = TRUE; -+ regionAppended = true; - } - else if (alternateTags != NULL) { - /* -@@ -317,9 +317,9 @@ createTagStringWithAlternates( - alternateRegionLength, - tagBuffer, - &tagLength, -- /*withSeparator=*/TRUE); -+ /*withSeparator=*/true); - -- regionAppended = TRUE; -+ regionAppended = true; - } - } - -@@ -622,7 +622,7 @@ createLikelySubtagsString( - likelySubtags, - sink, - err); -- return TRUE; -+ return true; - } - } - -@@ -678,7 +678,7 @@ createLikelySubtagsString( - likelySubtags, - sink, - err); -- return TRUE; -+ return true; - } - } - -@@ -734,7 +734,7 @@ createLikelySubtagsString( - likelySubtags, - sink, - err); -- return TRUE; -+ return true; - } - } - -@@ -789,11 +789,11 @@ createLikelySubtagsString( - likelySubtags, - sink, - err); -- return TRUE; -+ return true; - } - } - -- return FALSE; -+ return false; - - error: - -@@ -801,7 +801,7 @@ error: - *err = U_ILLEGAL_ARGUMENT_ERROR; - } - -- return FALSE; -+ return false; - } - - #define CHECK_TRAILING_VARIANT_SIZE(trailing, trailingLength) UPRV_BLOCK_MACRO_BEGIN { \ -@@ -836,7 +836,7 @@ _uloc_addLikelySubtags(const char* localeID, - const char* trailing = ""; - int32_t trailingLength = 0; - int32_t trailingIndex = 0; -- UBool success = FALSE; -+ UBool success = false; - - if(U_FAILURE(*err)) { - goto error; -@@ -901,7 +901,7 @@ error: - if (!U_FAILURE(*err)) { - *err = U_ILLEGAL_ARGUMENT_ERROR; - } -- return FALSE; -+ return false; - } - - // Add likely subtags to the sink -@@ -925,7 +925,7 @@ _uloc_minimizeSubtags(const char* localeID, - const char* trailing = ""; - int32_t trailingLength = 0; - int32_t trailingIndex = 0; -- UBool successGetMax = FALSE; -+ UBool successGetMax = false; - - if(U_FAILURE(*err)) { - goto error; -@@ -1248,7 +1248,7 @@ _ulocimp_addLikelySubtags(const char* localeID, - if (U_SUCCESS(*status)) { - return _uloc_addLikelySubtags(localeBuffer.getBuffer(), sink, status); - } else { -- return FALSE; -+ return false; - } - } - -@@ -1320,14 +1320,14 @@ uloc_isRightToLeft(const char *locale) { - char lang[8]; - int32_t langLength = uloc_getLanguage(locale, lang, UPRV_LENGTHOF(lang), &errorCode); - if (U_FAILURE(errorCode) || errorCode == U_STRING_NOT_TERMINATED_WARNING) { -- return FALSE; -+ return false; - } - if (langLength > 0) { - const char* langPtr = uprv_strstr(LANG_DIR_STRING, lang); - if (langPtr != NULL) { - switch (langPtr[langLength]) { -- case '-': return FALSE; -- case '+': return TRUE; -+ case '-': return false; -+ case '+': return true; - default: break; // partial match of a longer code - } - } -@@ -1340,12 +1340,12 @@ uloc_isRightToLeft(const char *locale) { - ulocimp_addLikelySubtags(locale, sink, &errorCode); - } - if (U_FAILURE(errorCode) || errorCode == U_STRING_NOT_TERMINATED_WARNING) { -- return FALSE; -+ return false; - } - scriptLength = uloc_getScript(likely.data(), script, UPRV_LENGTHOF(script), &errorCode); - if (U_FAILURE(errorCode) || errorCode == U_STRING_NOT_TERMINATED_WARNING || - scriptLength == 0) { -- return FALSE; -+ return false; - } - } - UScriptCode scriptCode = (UScriptCode)u_getPropertyValueEnum(UCHAR_SCRIPT, script); -@@ -1392,7 +1392,7 @@ ulocimp_getRegionForSupplementalData(const char *localeID, UBool inferRegion, - if (U_FAILURE(*status)) { - rgLen = 0; - } else if (rgLen == 0 && inferRegion) { -- // no unicode_region_subtag but inferRegion TRUE, try likely subtags -+ // no unicode_region_subtag but inferRegion true, try likely subtags - rgStatus = U_ZERO_ERROR; - icu::CharString locBuf; - { -diff --git a/deps/icu-small/source/common/loclikelysubtags.cpp b/deps/icu-small/source/common/loclikelysubtags.cpp -index aa592e6ea8..e913c66a35 100644 ---- a/deps/icu-small/source/common/loclikelysubtags.cpp -+++ b/deps/icu-small/source/common/loclikelysubtags.cpp -@@ -233,7 +233,7 @@ private: - return false; - } - for (int i = 0; i < length; ++i) { -- stringArray.getValue(i, value); // returns TRUE because i < length -+ stringArray.getValue(i, value); // returns true because i < length - rawIndexes[i] = strings.add(value.getUnicodeString(errorCode), errorCode); - if (U_FAILURE(errorCode)) { return false; } - } -@@ -245,13 +245,13 @@ private: - namespace { - - XLikelySubtags *gLikelySubtags = nullptr; --UInitOnce gInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce gInitOnce {}; - - UBool U_CALLCONV cleanup() { - delete gLikelySubtags; - gLikelySubtags = nullptr; - gInitOnce.reset(); -- return TRUE; -+ return true; - } - - } // namespace -diff --git a/deps/icu-small/source/common/locmap.cpp b/deps/icu-small/source/common/locmap.cpp -index 29a5646385..78cfd1ca86 100644 ---- a/deps/icu-small/source/common/locmap.cpp -+++ b/deps/icu-small/source/common/locmap.cpp -@@ -1053,7 +1053,7 @@ uprv_convertToPosix(uint32_t hostid, char *posixID, int32_t posixIDCapacity, UEr - { - uint16_t langID; - uint32_t localeIndex; -- UBool bLookup = TRUE; -+ UBool bLookup = true; - const char *pPosixID = NULL; - - #if U_PLATFORM_HAS_WIN32_API && UCONFIG_USE_WINDOWS_LCID_MAPPING_API -@@ -1074,7 +1074,7 @@ uprv_convertToPosix(uint32_t hostid, char *posixID, int32_t posixIDCapacity, UEr - if (tmpLen > 1) { - int32_t i = 0; - // Only need to look up in table if have _, eg for de-de_phoneb type alternate sort. -- bLookup = FALSE; -+ bLookup = false; - for (i = 0; i < UPRV_LENGTHOF(locName); i++) - { - locName[i] = (char)(windowsLocaleName[i]); -@@ -1088,7 +1088,7 @@ uprv_convertToPosix(uint32_t hostid, char *posixID, int32_t posixIDCapacity, UEr - // TODO: Should these be mapped from _phoneb to @collation=phonebook, etc.? - locName[i] = '\0'; - tmpLen = i; -- bLookup = TRUE; -+ bLookup = true; - break; - } - else if (windowsLocaleName[i] == L'-') -@@ -1201,7 +1201,7 @@ uprv_convertToLCIDPlatform(const char* localeID, UErrorCode* status) - - char asciiBCP47Tag[LOCALE_NAME_MAX_LENGTH] = {}; - // this will change it from de_DE@collation=phonebook to de-DE-u-co-phonebk form -- (void)uloc_toLanguageTag(mylocaleID, asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), FALSE, status); -+ (void)uloc_toLanguageTag(mylocaleID, asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), false, status); - - if (U_SUCCESS(*status)) - { -diff --git a/deps/icu-small/source/common/locutil.cpp b/deps/icu-small/source/common/locutil.cpp -index 3d9d69ff7e..6e2bd497f8 100644 ---- a/deps/icu-small/source/common/locutil.cpp -+++ b/deps/icu-small/source/common/locutil.cpp -@@ -21,7 +21,7 @@ - #include "umutex.h" - - // see LocaleUtility::getAvailableLocaleNames --static icu::UInitOnce LocaleUtilityInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce LocaleUtilityInitOnce {}; - static icu::Hashtable * LocaleUtility_cache = NULL; - - #define UNDERSCORE_CHAR ((UChar)0x005f) -@@ -41,7 +41,7 @@ static UBool U_CALLCONV service_cleanup(void) { - delete LocaleUtility_cache; - LocaleUtility_cache = NULL; - } -- return TRUE; -+ return true; - } - - -diff --git a/deps/icu-small/source/common/messageimpl.h b/deps/icu-small/source/common/messageimpl.h -index a56479066b..061df9189d 100644 ---- a/deps/icu-small/source/common/messageimpl.h -+++ b/deps/icu-small/source/common/messageimpl.h -@@ -55,7 +55,7 @@ public: - UnicodeString &result); - - private: -- MessageImpl(); // no constructor: all static methods -+ MessageImpl() = delete; // no constructor: all static methods - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/messagepattern.cpp b/deps/icu-small/source/common/messagepattern.cpp -index 66fd2f4c93..52afab5f02 100644 ---- a/deps/icu-small/source/common/messagepattern.cpp -+++ b/deps/icu-small/source/common/messagepattern.cpp -@@ -97,9 +97,9 @@ public: - UBool ensureCapacityForOneMore(int32_t oldLength, UErrorCode &errorCode); - UBool equals(const MessagePatternList &other, int32_t length) const { - for(int32_t i=0; i a; -@@ -124,13 +124,13 @@ template - UBool - MessagePatternList::ensureCapacityForOneMore(int32_t oldLength, UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - if(a.getCapacity()>oldLength || a.resize(2*oldLength, oldLength)!=NULL) { -- return TRUE; -+ return true; - } - errorCode=U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - - // MessagePatternList specializations -------------------------------------- *** -@@ -147,7 +147,7 @@ MessagePattern::MessagePattern(UErrorCode &errorCode) - : aposMode(UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE), - partsList(NULL), parts(NULL), partsLength(0), - numericValuesList(NULL), numericValues(NULL), numericValuesLength(0), -- hasArgNames(FALSE), hasArgNumbers(FALSE), needsAutoQuoting(FALSE) { -+ hasArgNames(false), hasArgNumbers(false), needsAutoQuoting(false) { - init(errorCode); - } - -@@ -155,7 +155,7 @@ MessagePattern::MessagePattern(UMessagePatternApostropheMode mode, UErrorCode &e - : aposMode(mode), - partsList(NULL), parts(NULL), partsLength(0), - numericValuesList(NULL), numericValues(NULL), numericValuesLength(0), -- hasArgNames(FALSE), hasArgNumbers(FALSE), needsAutoQuoting(FALSE) { -+ hasArgNames(false), hasArgNumbers(false), needsAutoQuoting(false) { - init(errorCode); - } - -@@ -163,7 +163,7 @@ MessagePattern::MessagePattern(const UnicodeString &pattern, UParseError *parseE - : aposMode(UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE), - partsList(NULL), parts(NULL), partsLength(0), - numericValuesList(NULL), numericValues(NULL), numericValuesLength(0), -- hasArgNames(FALSE), hasArgNumbers(FALSE), needsAutoQuoting(FALSE) { -+ hasArgNames(false), hasArgNumbers(false), needsAutoQuoting(false) { - if(init(errorCode)) { - parse(pattern, parseError, errorCode); - } -@@ -172,15 +172,15 @@ MessagePattern::MessagePattern(const UnicodeString &pattern, UParseError *parseE - UBool - MessagePattern::init(UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - partsList=new MessagePatternPartsList(); - if(partsList==NULL) { - errorCode=U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - parts=partsList->a.getAlias(); -- return TRUE; -+ return true; - } - - MessagePattern::MessagePattern(const MessagePattern &other) -@@ -215,7 +215,7 @@ MessagePattern::operator=(const MessagePattern &other) { - UBool - MessagePattern::copyStorage(const MessagePattern &other, UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - parts=NULL; - partsLength=0; -@@ -225,14 +225,14 @@ MessagePattern::copyStorage(const MessagePattern &other, UErrorCode &errorCode) - partsList=new MessagePatternPartsList(); - if(partsList==NULL) { - errorCode=U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - parts=partsList->a.getAlias(); - } - if(other.partsLength>0) { - partsList->copyFrom(*other.partsList, other.partsLength, errorCode); - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - parts=partsList->a.getAlias(); - partsLength=other.partsLength; -@@ -242,19 +242,19 @@ MessagePattern::copyStorage(const MessagePattern &other, UErrorCode &errorCode) - numericValuesList=new MessagePatternDoubleList(); - if(numericValuesList==NULL) { - errorCode=U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - numericValues=numericValuesList->a.getAlias(); - } - numericValuesList->copyFrom( - *other.numericValuesList, other.numericValuesLength, errorCode); - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - numericValues=numericValuesList->a.getAlias(); - numericValuesLength=other.numericValuesLength; - } -- return TRUE; -+ return true; - } - - MessagePattern::~MessagePattern() { -@@ -303,8 +303,8 @@ void - MessagePattern::clear() { - // Mostly the same as preParse(). - msg.remove(); -- hasArgNames=hasArgNumbers=FALSE; -- needsAutoQuoting=FALSE; -+ hasArgNames=hasArgNumbers=false; -+ needsAutoQuoting=false; - partsLength=0; - numericValuesLength=0; - } -@@ -414,8 +414,8 @@ MessagePattern::preParse(const UnicodeString &pattern, UParseError *parseError, - parseError->postContext[0]=0; - } - msg=pattern; -- hasArgNames=hasArgNumbers=FALSE; -- needsAutoQuoting=FALSE; -+ hasArgNames=hasArgNumbers=false; -+ needsAutoQuoting=false; - partsLength=0; - numericValuesLength=0; - } -@@ -458,7 +458,7 @@ MessagePattern::parseMessage(int32_t index, int32_t msgStartLength, - // Add a Part for auto-quoting. - addPart(UMSGPAT_PART_TYPE_INSERT_CHAR, index, 0, - u_apos, errorCode); // value=char to be inserted -- needsAutoQuoting=TRUE; -+ needsAutoQuoting=true; - } else { - c=msg.charAt(index); - if(c==u_apos) { -@@ -491,7 +491,7 @@ MessagePattern::parseMessage(int32_t index, int32_t msgStartLength, - // Add a Part for auto-quoting. - addPart(UMSGPAT_PART_TYPE_INSERT_CHAR, index, 0, - u_apos, errorCode); // value=char to be inserted -- needsAutoQuoting=TRUE; -+ needsAutoQuoting=true; - break; - } - } -@@ -500,7 +500,7 @@ MessagePattern::parseMessage(int32_t index, int32_t msgStartLength, - // Add a Part for auto-quoting. - addPart(UMSGPAT_PART_TYPE_INSERT_CHAR, index, 0, - u_apos, errorCode); // value=char to be inserted -- needsAutoQuoting=TRUE; -+ needsAutoQuoting=true; - } - } - } else if(UMSGPAT_ARG_TYPE_HAS_PLURAL_STYLE(parentType) && c==u_pound) { -@@ -560,7 +560,7 @@ MessagePattern::parseArg(int32_t index, int32_t argStartLength, int32_t nestingL - errorCode=U_INDEX_OUTOFBOUNDS_ERROR; - return 0; - } -- hasArgNumbers=TRUE; -+ hasArgNumbers=true; - addPart(UMSGPAT_PART_TYPE_ARG_NUMBER, nameIndex, length, number, errorCode); - } else if(number==UMSGPAT_ARG_NAME_NOT_NUMBER) { - int32_t length=index-nameIndex; -@@ -569,7 +569,7 @@ MessagePattern::parseArg(int32_t index, int32_t argStartLength, int32_t nestingL - errorCode=U_INDEX_OUTOFBOUNDS_ERROR; - return 0; - } -- hasArgNames=TRUE; -+ hasArgNames=true; - addPart(UMSGPAT_PART_TYPE_ARG_NAME, nameIndex, length, 0, errorCode); - } else { // number<-1 (ARG_NAME_NOT_VALID) - setParseError(parseError, nameIndex); // Bad argument syntax. -@@ -727,7 +727,7 @@ MessagePattern::parseChoiceStyle(int32_t index, int32_t nestingLevel, - errorCode=U_INDEX_OUTOFBOUNDS_ERROR; - return 0; - } -- parseDouble(numberIndex, index, TRUE, parseError, errorCode); // adds ARG_INT or ARG_DOUBLE -+ parseDouble(numberIndex, index, true, parseError, errorCode); // adds ARG_INT or ARG_DOUBLE - if(U_FAILURE(errorCode)) { - return 0; - } -@@ -774,8 +774,8 @@ MessagePattern::parsePluralOrSelectStyle(UMessagePatternArgType argType, - return 0; - } - int32_t start=index; -- UBool isEmpty=TRUE; -- UBool hasOther=FALSE; -+ UBool isEmpty=true; -+ UBool hasOther=false; - for(;;) { - // First, collect the selector looking for a small set of terminators. - // It would be a little faster to consider the syntax of each possible -@@ -811,7 +811,7 @@ MessagePattern::parsePluralOrSelectStyle(UMessagePatternArgType argType, - return 0; - } - addPart(UMSGPAT_PART_TYPE_ARG_SELECTOR, selectorIndex, length, 0, errorCode); -- parseDouble(selectorIndex+1, index, FALSE, -+ parseDouble(selectorIndex+1, index, false, - parseError, errorCode); // adds ARG_INT or ARG_DOUBLE - } else { - index=skipIdentifier(index); -@@ -845,12 +845,12 @@ MessagePattern::parsePluralOrSelectStyle(UMessagePatternArgType argType, - errorCode=U_INDEX_OUTOFBOUNDS_ERROR; - return 0; - } -- parseDouble(valueIndex, index, FALSE, -+ parseDouble(valueIndex, index, false, - parseError, errorCode); // adds ARG_INT or ARG_DOUBLE - if(U_FAILURE(errorCode)) { - return 0; - } -- isEmpty=FALSE; -+ isEmpty=false; - continue; // no message fragment after the offset - } else { - // normal selector word -@@ -861,7 +861,7 @@ MessagePattern::parsePluralOrSelectStyle(UMessagePatternArgType argType, - } - addPart(UMSGPAT_PART_TYPE_ARG_SELECTOR, selectorIndex, length, 0, errorCode); - if(0==msg.compare(selectorIndex, length, kOther, 0, 5)) { -- hasOther=TRUE; -+ hasOther=true; - } - } - } -@@ -880,7 +880,7 @@ MessagePattern::parsePluralOrSelectStyle(UMessagePatternArgType argType, - if(U_FAILURE(errorCode)) { - return 0; - } -- isEmpty=FALSE; -+ isEmpty=false; - } - } - -@@ -901,11 +901,11 @@ MessagePattern::parseArgNumber(const UnicodeString &s, int32_t start, int32_t li - return 0; - } else { - number=0; -- badNumber=TRUE; // leading zero -+ badNumber=true; // leading zero - } - } else if(0x31<=c && c<=0x39) { - number=c-0x30; -- badNumber=FALSE; -+ badNumber=false; - } else { - return UMSGPAT_ARG_NAME_NOT_NUMBER; - } -@@ -913,7 +913,7 @@ MessagePattern::parseArgNumber(const UnicodeString &s, int32_t start, int32_t li - c=s.charAt(start++); - if(0x30<=c && c<=0x39) { - if(number>=INT32_MAX/10) { -- badNumber=TRUE; // overflow -+ badNumber=true; // overflow - } - number=number*10+(c-0x30); - } else { -diff --git a/deps/icu-small/source/common/norm2_nfc_data.h b/deps/icu-small/source/common/norm2_nfc_data.h -index a774868981..ebe3e6ba90 100644 ---- a/deps/icu-small/source/common/norm2_nfc_data.h -+++ b/deps/icu-small/source/common/norm2_nfc_data.h -@@ -10,14 +10,14 @@ - #ifdef INCLUDED_FROM_NORMALIZER2_CPP - - static const UVersionInfo norm2_nfc_data_formatVersion={4,0,0,0}; --static const UVersionInfo norm2_nfc_data_dataVersion={0xe,0,0,0}; -+static const UVersionInfo norm2_nfc_data_dataVersion={0xf,0,0,0}; - - static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={ --0x50,0x4c54,0x88bc,0x89bc,0x89bc,0x89bc,0x89bc,0x89bc,0xc0,0x300,0xae2,0x29e0,0x3c66,0xfc00,0x1288,0x3b9c, -+0x50,0x4cb8,0x8920,0x8a20,0x8a20,0x8a20,0x8a20,0x8a20,0xc0,0x300,0xae2,0x29e0,0x3c66,0xfc00,0x1288,0x3b9c, - 0x3c34,0x3c66,0x300,0 - }; - --static const uint16_t norm2_nfc_data_trieIndex[1748]={ -+static const uint16_t norm2_nfc_data_trieIndex[1788]={ - 0,0x40,0x7b,0xbb,0xfb,0x13a,0x17a,0x1b2,0x1f2,0x226,0x254,0x226,0x294,0x2d4,0x313,0x353, - 0x393,0x3d2,0x40f,0x44e,0x226,0x226,0x488,0x4c8,0x4f8,0x530,0x226,0x570,0x59f,0x5de,0x226,0x5f3, - 0x631,0x65f,0x687,0x6bd,0x6fd,0x73a,0x75a,0x799,0x7d8,0x815,0x834,0x871,0x75a,0x8aa,0x8d8,0x917, -@@ -82,14 +82,14 @@ static const uint16_t norm2_nfc_data_trieIndex[1748]={ - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x1880,0x18c0,0x1900,0x1940,0x1980,0x19c0,0x1a00,0x1a40,0x1a63,0x1aa3,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac3,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x657,0x666,0x67e,0x69d,0x6b2,0x6b2,0x6b2,0x6b6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x67e,0x68e,0x6a6,0x6c5,0x6da,0x6da,0x6da,0x6de,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc0b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x40c, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1af6,0x226,0x226,0x1b06,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0xdf7,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1b16,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1607,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1607,0x226,0x226,0x226,0x226,0x66b,0x226,0x226,0x226, - 0x226,0x1b20,0x54f,0x226,0x226,0x1b30,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x81c,0x226,0x226, - 0x1b40,0x226,0x1b50,0x1b5d,0x1b69,0x226,0x226,0x226,0x226,0x414,0x226,0x1b74,0x1b84,0x226,0x226,0x226, - 0x811,0x226,0x226,0x226,0x226,0x1b94,0x226,0x226,0x226,0x1b9f,0x226,0x226,0x226,0x226,0x226,0x226, -@@ -104,33 +104,35 @@ static const uint16_t norm2_nfc_data_trieIndex[1748]={ - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x9eb,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc05,0x226,0x226,0x226, - 0x226,0x81b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0x1c3d,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x226,0x226,0xc08,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x226,0x226,0x1c3d,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0x226,0x226,0x226,0x226,0x1c4d,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c4f, -+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c4d,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x1c4f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c5e,0x1c6e,0x1c7c,0x1c89,0x226, -+0x1c95,0x1ca3,0x1cb3,0x226,0x226,0x226,0x226,0xd1b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0x226,0x226,0x226,0x226,0x226,0x1c5e,0x1c6e,0x1c7c,0x1c89,0x226,0x1c95,0x1ca3,0x1cb3,0x226,0x226, --0x226,0x226,0xd1b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cc3,0x1ccb, --0x1cd9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7c9,0x226, --0x226,0x226,0x4fc,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0x226,0x226,0x226,0x1ce9,0x226,0x226,0x226,0x226,0x226,0x226,0x1cf5,0x226,0x226,0x226,0x226, --0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d05,0x1d15,0x1d25,0x1d35,0x1d45,0x1d55,0x1d65,0x1d75,0x1d85, --0x1d95,0x1da5,0x1db5,0x1dc5,0x1dd5,0x1de5,0x1df5,0x1e05,0x1e15,0x1e25,0x1e35,0x1e45,0x1e55,0x1e65,0x1e75,0x1e85, --0x1e95,0x1ea5,0x1eb5,0x1ec5,0x1ed5,0x1ee5,0x1ef5,0x1f05,0x1f15,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x1cc3,0x1ccb,0x1cd9,0x226,0x226,0x226,0x226,0x226,0x4f9,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x7c9,0x226,0x226,0x226,0x4fc,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ce4,0x226,0x226,0x226,0x226,0x226,0x226, -+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cf4,0x226,0x226,0x226,0x226, -+0x226,0x226,0x1d00,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d10,0x1d20, -+0x1d30,0x1d40,0x1d50,0x1d60,0x1d70,0x1d80,0x1d90,0x1da0,0x1db0,0x1dc0,0x1dd0,0x1de0,0x1df0,0x1e00,0x1e10,0x1e20, -+0x1e30,0x1e40,0x1e50,0x1e60,0x1e70,0x1e80,0x1e90,0x1ea0,0x1eb0,0x1ec0,0x1ed0,0x1ee0,0x1ef0,0x1f00,0x1f10,0x1f20, - 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, --0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,0x428,0xc4,0xc4,0xc4,0x448,0x457,0x46d,0x489, --0x4a6,0x4c2,0x4df,0x4fc,0x51b,0x538,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, --0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x552,0xc4,0x566,0xc4,0xc4, -+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,0x428, -+0xc4,0xc4,0xc4,0x448,0x457,0x46d,0x489,0x4a6,0x4c2,0x4df,0x4fc,0x51b,0x538,0x552,0xc4,0xc4, - 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, --0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x586,0xc4,0xc4,0xc4, --0xc4,0xc4,0xc4,0xc4,0xc4,0x591,0x5ae,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5ce,0x5e4,0xc4, --0xc4,0x5f7,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -+0xc4,0xc4,0xc4,0x567,0xc4,0x57b,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, - 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, --0xc4,0xc4,0x617,0x637 -+0xc4,0xc4,0xc4,0xc4,0x59b,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5a6,0x5c3,0xc4, -+0xc4,0xc4,0xc4,0xc4,0xc4,0x5e3,0x5f9,0x60b,0xc4,0x61e,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x63e,0x65e - }; - --static const uint16_t norm2_nfc_data_trieData[7974]={ -+static const uint16_t norm2_nfc_data_trieData[7984]={ - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -@@ -518,7 +520,7 @@ static const uint16_t norm2_nfc_data_trieData[7974]={ - 1,1,1,1,1,0x3c66,1,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c66, - 0x3c66,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,0x3c66,1,1,1,1,0x3c66,1,1,1,0x3c66,1,0x3c66, -+1,1,1,1,0x3c66,1,1,1,1,0x3c66,1,1,1,0x3c66,0x3c66,0x3c66, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -@@ -593,49 +595,49 @@ static const uint16_t norm2_nfc_data_trieData[7974]={ - 0x3304,0x331c,0x3334,0x334c,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, - 0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc, --0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, --1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e, --1,1,1,1,1,0x335b,0x335f,0x3363,0x3367,0x336d,0x2f4d,0x3371,0x3375,0x3379,0x337d,0x2f51, --0x3381,0x3385,0x3389,0x2f55,0x338f,0x3393,0x3397,0x339b,0x33a1,0x33a5,0x33a9,0x33ad,0x33b3,0x33b7,0x33bb,0x33bf, --0x303f,0x33c3,0x33c9,0x33cd,0x33d1,0x33d5,0x33d9,0x33dd,0x33e1,0x33e5,0x3053,0x2f59,0x2f5d,0x3057,0x33e9,0x33ed, --0x2c59,0x33f1,0x2f61,0x33f5,0x33f9,0x33fd,0x3401,0x3401,0x3401,0x3405,0x340b,0x340f,0x3413,0x3417,0x341d,0x3421, --0x3425,0x3429,0x342d,0x3431,0x3435,0x3439,0x343d,0x3441,0x3445,0x3449,0x344d,0x344d,0x305f,0x3451,0x3455,0x3459, --0x345d,0x2f69,0x3461,0x3465,0x3469,0x2ebd,0x346d,0x3471,0x3475,0x3479,0x347d,0x3481,0x3485,0x3489,0x348d,0x3493, --0x3497,0x349b,0x349f,0x34a3,0x34a7,0x34ab,0x34b1,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7, --0x34d7,0x34db,0x34e1,0x34e5,0x2c49,0x34e9,0x34ed,0x34f3,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x2f7d,0x350b,0x350f, --0x3513,0x3519,0x351d,0x3523,0x3527,0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3543,0x3547,0x354b,0x354f,0x3555, --0x3559,0x355d,0x3561,0x2b71,0x3565,0x356b,0x356f,0x356f,0x3575,0x3579,0x3579,0x357d,0x3581,0x3587,0x358d,0x3591, --0x3595,0x3599,0x359d,0x35a1,0x35a5,0x35a9,0x35ad,0x35b1,0x2f81,0x35b5,0x35bb,0x35bf,0x35c3,0x308f,0x35c3,0x35c7, --0x2f89,0x35cb,0x35cf,0x35d3,0x35d7,0x2f8d,0x2b05,0x35db,0x35df,0x35e3,0x35e7,0x35eb,0x35ef,0x35f3,0x35f9,0x35fd, --0x3601,0x3605,0x3609,0x360d,0x3613,0x3617,0x361b,0x361f,0x3623,0x3627,0x362b,0x362f,0x3633,0x2f91,0x3637,0x363b, --0x3641,0x3645,0x3649,0x364d,0x2f99,0x3651,0x3655,0x3659,0x365d,0x3661,0x3665,0x3669,0x366d,0x2b75,0x30af,0x3671, --0x3675,0x3679,0x367d,0x3683,0x3687,0x368b,0x368f,0x2f9d,0x3693,0x3699,0x369d,0x36a1,0x3161,0x36a5,0x36a9,0x36ad, --0x36b1,0x36b5,0x36bb,0x36bf,0x36c3,0x36c7,0x36cd,0x36d1,0x36d5,0x36d9,0x2c8d,0x36dd,0x36e1,0x36e7,0x36ed,0x36f3, --0x36f7,0x36fd,0x3701,0x3705,0x3709,0x370d,0x2fa1,0x2de9,0x3711,0x3715,0x3719,0x371d,0x3723,0x3727,0x372b,0x372f, --0x30bf,0x3733,0x3737,0x373d,0x3741,0x3745,0x374b,0x3751,0x3755,0x30c3,0x3759,0x375d,0x3761,0x3765,0x3769,0x376d, --0x3771,0x3777,0x377b,0x3781,0x3785,0x378b,0x30cb,0x378f,0x3793,0x3799,0x379d,0x37a1,0x37a7,0x37ad,0x37b1,0x37b5, --0x37b9,0x37bd,0x37bd,0x37c1,0x37c5,0x30d3,0x37c9,0x37cd,0x37d1,0x37d5,0x37d9,0x37df,0x37e3,0x2c55,0x37e9,0x37ef, --0x37f3,0x37f9,0x37ff,0x3805,0x3809,0x30eb,0x380d,0x3813,0x3819,0x381f,0x3825,0x3829,0x3829,0x30ef,0x3169,0x382d, --0x3831,0x3835,0x3839,0x383f,0x2bbd,0x30f7,0x3843,0x3847,0x2fcd,0x384d,0x3853,0x2f15,0x3859,0x385d,0x2fdd,0x3861, --0x3865,0x3869,0x386f,0x386f,0x3875,0x3879,0x387d,0x3883,0x3887,0x388b,0x388f,0x3895,0x3899,0x389d,0x38a1,0x38a5, --0x38a9,0x38af,0x38b3,0x38b7,0x38bb,0x38bf,0x38c3,0x38c7,0x38cd,0x38d3,0x38d7,0x38dd,0x38e1,0x38e7,0x38eb,0x2ff5, --0x38ef,0x38f5,0x38fb,0x38ff,0x3905,0x3909,0x390f,0x3913,0x3917,0x391b,0x391f,0x3923,0x3927,0x392d,0x3933,0x3939, --0x3575,0x393f,0x3943,0x3947,0x394b,0x394f,0x3953,0x3957,0x395b,0x395f,0x3963,0x3967,0x396b,0x2c9d,0x3971,0x3975, --0x3979,0x397d,0x3981,0x3985,0x3001,0x3989,0x398d,0x3991,0x3995,0x3999,0x399f,0x39a5,0x39ab,0x39af,0x39b3,0x39b7, --0x39bb,0x39c1,0x39c5,0x39cb,0x39cf,0x39d3,0x39d9,0x39df,0x39e3,0x2ba9,0x39e7,0x39eb,0x39ef,0x39f3,0x39f7,0x39fb, --0x3113,0x39ff,0x3a03,0x3a07,0x3a0b,0x3a0f,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2d,0x3a31,0x3a35,0x3a39, --0x3a3d,0x3a43,0x3a49,0x3a4d,0x3a51,0x3127,0x312b,0x3a55,0x3a59,0x3a5f,0x3a63,0x3a67,0x3a6b,0x3a6f,0x3a75,0x3a7b, --0x3a7f,0x3a83,0x3a87,0x3a8d,0x312f,0x3a91,0x3a97,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3abf, --0x3ac3,0x3ac7,0x3acb,0x3ad1,0x3ad5,0x3ad9,0x3add,0x3ae3,0x3ae7,0x3aeb,0x3aef,0x3af3,0x3af9,0x3aff,0x3b03,0x3b07, --0x3b0b,0x3b11,0x3b15,0x3147,0x3147,0x3b1b,0x3b1f,0x3b25,0x3b29,0x3b2d,0x3b31,0x3b35,0x3b39,0x3b3d,0x3b41,0x314b, --0x3b47,0x3b4b,0x3b4f,0x3b53,0x3b57,0x3b5b,0x3b61,0x3b65,0x3b6b,0x3b71,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,0x3b8b, --0x3b8f,0x3b93,0x3b97,1,1,1 -+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1, -+0xffd0,0xffd0,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,1, -+1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,1, -+0x335b,0x335f,0x3363,0x3367,0x336d,0x2f4d,0x3371,0x3375,0x3379,0x337d,0x2f51,0x3381,0x3385,0x3389,0x2f55,0x338f, -+0x3393,0x3397,0x339b,0x33a1,0x33a5,0x33a9,0x33ad,0x33b3,0x33b7,0x33bb,0x33bf,0x303f,0x33c3,0x33c9,0x33cd,0x33d1, -+0x33d5,0x33d9,0x33dd,0x33e1,0x33e5,0x3053,0x2f59,0x2f5d,0x3057,0x33e9,0x33ed,0x2c59,0x33f1,0x2f61,0x33f5,0x33f9, -+0x33fd,0x3401,0x3401,0x3401,0x3405,0x340b,0x340f,0x3413,0x3417,0x341d,0x3421,0x3425,0x3429,0x342d,0x3431,0x3435, -+0x3439,0x343d,0x3441,0x3445,0x3449,0x344d,0x344d,0x305f,0x3451,0x3455,0x3459,0x345d,0x2f69,0x3461,0x3465,0x3469, -+0x2ebd,0x346d,0x3471,0x3475,0x3479,0x347d,0x3481,0x3485,0x3489,0x348d,0x3493,0x3497,0x349b,0x349f,0x34a3,0x34a7, -+0x34ab,0x34b1,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7,0x34d7,0x34db,0x34e1,0x34e5,0x2c49, -+0x34e9,0x34ed,0x34f3,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x2f7d,0x350b,0x350f,0x3513,0x3519,0x351d,0x3523,0x3527, -+0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3543,0x3547,0x354b,0x354f,0x3555,0x3559,0x355d,0x3561,0x2b71,0x3565, -+0x356b,0x356f,0x356f,0x3575,0x3579,0x3579,0x357d,0x3581,0x3587,0x358d,0x3591,0x3595,0x3599,0x359d,0x35a1,0x35a5, -+0x35a9,0x35ad,0x35b1,0x2f81,0x35b5,0x35bb,0x35bf,0x35c3,0x308f,0x35c3,0x35c7,0x2f89,0x35cb,0x35cf,0x35d3,0x35d7, -+0x2f8d,0x2b05,0x35db,0x35df,0x35e3,0x35e7,0x35eb,0x35ef,0x35f3,0x35f9,0x35fd,0x3601,0x3605,0x3609,0x360d,0x3613, -+0x3617,0x361b,0x361f,0x3623,0x3627,0x362b,0x362f,0x3633,0x2f91,0x3637,0x363b,0x3641,0x3645,0x3649,0x364d,0x2f99, -+0x3651,0x3655,0x3659,0x365d,0x3661,0x3665,0x3669,0x366d,0x2b75,0x30af,0x3671,0x3675,0x3679,0x367d,0x3683,0x3687, -+0x368b,0x368f,0x2f9d,0x3693,0x3699,0x369d,0x36a1,0x3161,0x36a5,0x36a9,0x36ad,0x36b1,0x36b5,0x36bb,0x36bf,0x36c3, -+0x36c7,0x36cd,0x36d1,0x36d5,0x36d9,0x2c8d,0x36dd,0x36e1,0x36e7,0x36ed,0x36f3,0x36f7,0x36fd,0x3701,0x3705,0x3709, -+0x370d,0x2fa1,0x2de9,0x3711,0x3715,0x3719,0x371d,0x3723,0x3727,0x372b,0x372f,0x30bf,0x3733,0x3737,0x373d,0x3741, -+0x3745,0x374b,0x3751,0x3755,0x30c3,0x3759,0x375d,0x3761,0x3765,0x3769,0x376d,0x3771,0x3777,0x377b,0x3781,0x3785, -+0x378b,0x30cb,0x378f,0x3793,0x3799,0x379d,0x37a1,0x37a7,0x37ad,0x37b1,0x37b5,0x37b9,0x37bd,0x37bd,0x37c1,0x37c5, -+0x30d3,0x37c9,0x37cd,0x37d1,0x37d5,0x37d9,0x37df,0x37e3,0x2c55,0x37e9,0x37ef,0x37f3,0x37f9,0x37ff,0x3805,0x3809, -+0x30eb,0x380d,0x3813,0x3819,0x381f,0x3825,0x3829,0x3829,0x30ef,0x3169,0x382d,0x3831,0x3835,0x3839,0x383f,0x2bbd, -+0x30f7,0x3843,0x3847,0x2fcd,0x384d,0x3853,0x2f15,0x3859,0x385d,0x2fdd,0x3861,0x3865,0x3869,0x386f,0x386f,0x3875, -+0x3879,0x387d,0x3883,0x3887,0x388b,0x388f,0x3895,0x3899,0x389d,0x38a1,0x38a5,0x38a9,0x38af,0x38b3,0x38b7,0x38bb, -+0x38bf,0x38c3,0x38c7,0x38cd,0x38d3,0x38d7,0x38dd,0x38e1,0x38e7,0x38eb,0x2ff5,0x38ef,0x38f5,0x38fb,0x38ff,0x3905, -+0x3909,0x390f,0x3913,0x3917,0x391b,0x391f,0x3923,0x3927,0x392d,0x3933,0x3939,0x3575,0x393f,0x3943,0x3947,0x394b, -+0x394f,0x3953,0x3957,0x395b,0x395f,0x3963,0x3967,0x396b,0x2c9d,0x3971,0x3975,0x3979,0x397d,0x3981,0x3985,0x3001, -+0x3989,0x398d,0x3991,0x3995,0x3999,0x399f,0x39a5,0x39ab,0x39af,0x39b3,0x39b7,0x39bb,0x39c1,0x39c5,0x39cb,0x39cf, -+0x39d3,0x39d9,0x39df,0x39e3,0x2ba9,0x39e7,0x39eb,0x39ef,0x39f3,0x39f7,0x39fb,0x3113,0x39ff,0x3a03,0x3a07,0x3a0b, -+0x3a0f,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2d,0x3a31,0x3a35,0x3a39,0x3a3d,0x3a43,0x3a49,0x3a4d,0x3a51, -+0x3127,0x312b,0x3a55,0x3a59,0x3a5f,0x3a63,0x3a67,0x3a6b,0x3a6f,0x3a75,0x3a7b,0x3a7f,0x3a83,0x3a87,0x3a8d,0x312f, -+0x3a91,0x3a97,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3abf,0x3ac3,0x3ac7,0x3acb,0x3ad1,0x3ad5, -+0x3ad9,0x3add,0x3ae3,0x3ae7,0x3aeb,0x3aef,0x3af3,0x3af9,0x3aff,0x3b03,0x3b07,0x3b0b,0x3b11,0x3b15,0x3147,0x3147, -+0x3b1b,0x3b1f,0x3b25,0x3b29,0x3b2d,0x3b31,0x3b35,0x3b39,0x3b3d,0x3b41,0x314b,0x3b47,0x3b4b,0x3b4f,0x3b53,0x3b57, -+0x3b5b,0x3b61,0x3b65,0x3b6b,0x3b71,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,0x3b8b,0x3b8f,0x3b93,0x3b97,1,1 - }; - - static const UCPTrie norm2_nfc_data_trie={ - norm2_nfc_data_trieIndex, - { norm2_nfc_data_trieData }, -- 1748, 7974, -+ 1788, 7984, - 0x2fc00, 0x30, - 0, 0, - 0, 0, -diff --git a/deps/icu-small/source/common/normalizer2.cpp b/deps/icu-small/source/common/normalizer2.cpp -index 6be7e0b21a..3617264490 100644 ---- a/deps/icu-small/source/common/normalizer2.cpp -+++ b/deps/icu-small/source/common/normalizer2.cpp -@@ -62,7 +62,7 @@ Normalizer2::normalizeUTF8(uint32_t /*options*/, StringPiece src, ByteSink &sink - - UBool - Normalizer2::getRawDecomposition(UChar32, UnicodeString &) const { -- return FALSE; -+ return false; - } - - UChar32 -@@ -142,7 +142,7 @@ class NoopNormalizer2 : public Normalizer2 { - } - virtual UBool - getDecomposition(UChar32, UnicodeString &) const U_OVERRIDE { -- return FALSE; -+ return false; - } - // No need to U_OVERRIDE the default getRawDecomposition(). - virtual UBool -@@ -161,9 +161,9 @@ class NoopNormalizer2 : public Normalizer2 { - spanQuickCheckYes(const UnicodeString &s, UErrorCode &) const U_OVERRIDE { - return s.length(); - } -- virtual UBool hasBoundaryBefore(UChar32) const U_OVERRIDE { return TRUE; } -- virtual UBool hasBoundaryAfter(UChar32) const U_OVERRIDE { return TRUE; } -- virtual UBool isInert(UChar32) const U_OVERRIDE { return TRUE; } -+ virtual UBool hasBoundaryBefore(UChar32) const U_OVERRIDE { return true; } -+ virtual UBool hasBoundaryAfter(UChar32) const U_OVERRIDE { return true; } -+ virtual UBool isInert(UChar32) const U_OVERRIDE { return true; } - }; - - NoopNormalizer2::~NoopNormalizer2() {} -@@ -183,7 +183,7 @@ static UBool U_CALLCONV uprv_normalizer2_cleanup(); - U_CDECL_END - - static Normalizer2 *noopSingleton; --static icu::UInitOnce noopInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce noopInitOnce {}; - - static void U_CALLCONV initNoopSingleton(UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { -@@ -245,7 +245,7 @@ Norm2AllModes::createNFCInstance(UErrorCode &errorCode) { - - static Norm2AllModes *nfcSingleton; - --static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce nfcInitOnce {}; - - static void U_CALLCONV initNFCSingleton(UErrorCode &errorCode) { - nfcSingleton=Norm2AllModes::createNFCInstance(errorCode); -@@ -299,7 +299,7 @@ static UBool U_CALLCONV uprv_normalizer2_cleanup() { - nfcSingleton = NULL; - nfcInitOnce.reset(); - #endif -- return TRUE; -+ return true; - } - - U_CDECL_END -@@ -423,7 +423,7 @@ unorm2_normalizeSecondAndAppend(const UNormalizer2 *norm2, - return normalizeSecondAndAppend(norm2, - first, firstLength, firstCapacity, - second, secondLength, -- TRUE, pErrorCode); -+ true, pErrorCode); - } - - U_CAPI int32_t U_EXPORT2 -@@ -434,7 +434,7 @@ unorm2_append(const UNormalizer2 *norm2, - return normalizeSecondAndAppend(norm2, - first, firstLength, firstCapacity, - second, secondLength, -- FALSE, pErrorCode); -+ false, pErrorCode); - } - - U_CAPI int32_t U_EXPORT2 -diff --git a/deps/icu-small/source/common/normalizer2impl.cpp b/deps/icu-small/source/common/normalizer2impl.cpp -index e6bd75e717..d7e05e44d7 100644 ---- a/deps/icu-small/source/common/normalizer2impl.cpp -+++ b/deps/icu-small/source/common/normalizer2impl.cpp -@@ -185,7 +185,7 @@ UBool ReorderingBuffer::init(int32_t destCapacity, UErrorCode &errorCode) { - if(start==NULL) { - // getBuffer() already did str.setToBogus() - errorCode=U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - limit=start+length; - remainingCapacity=str.getCapacity()-length; -@@ -201,7 +201,7 @@ UBool ReorderingBuffer::init(int32_t destCapacity, UErrorCode &errorCode) { - } - reorderStart=codePointLimit; - } -- return TRUE; -+ return true; - } - - UBool ReorderingBuffer::equals(const UChar *otherStart, const UChar *otherLimit) const { -@@ -217,7 +217,7 @@ UBool ReorderingBuffer::equals(const uint8_t *otherStart, const uint8_t *otherLi - int32_t otherLength = (int32_t)(otherLimit - otherStart); - // For equal strings, UTF-8 is at least as long as UTF-16, and at most three times as long. - if (otherLength < length || (otherLength / 3) > length) { -- return FALSE; -+ return false; - } - // Compare valid strings from between normalization boundaries. - // (Invalid sequences are normalization-inert.) -@@ -225,21 +225,21 @@ UBool ReorderingBuffer::equals(const uint8_t *otherStart, const uint8_t *otherLi - if (i >= length) { - return j >= otherLength; - } else if (j >= otherLength) { -- return FALSE; -+ return false; - } - // Not at the end of either string yet. - UChar32 c, other; - U16_NEXT_UNSAFE(start, i, c); - U8_NEXT_UNSAFE(otherStart, j, other); - if (c != other) { -- return FALSE; -+ return false; - } - } - } - - UBool ReorderingBuffer::appendSupplementary(UChar32 c, uint8_t cc, UErrorCode &errorCode) { - if(remainingCapacity<2 && !resize(2, errorCode)) { -- return FALSE; -+ return false; - } - if(lastCC<=cc || cc==0) { - limit[0]=U16_LEAD(c); -@@ -253,17 +253,17 @@ UBool ReorderingBuffer::appendSupplementary(UChar32 c, uint8_t cc, UErrorCode &e - insert(c, cc); - } - remainingCapacity-=2; -- return TRUE; -+ return true; - } - - UBool ReorderingBuffer::append(const UChar *s, int32_t length, UBool isNFD, - uint8_t leadCC, uint8_t trailCC, - UErrorCode &errorCode) { - if(length==0) { -- return TRUE; -+ return true; - } - if(remainingCapacity 1) { -- src = decomposeShort(src, limit, STOP_AT_DECOMP_BOUNDARY, FALSE /* onlyContiguous */, -+ src = decomposeShort(src, limit, STOP_AT_DECOMP_BOUNDARY, false /* onlyContiguous */, - buffer, errorCode); - } - if (U_FAILURE(errorCode)) { -@@ -931,7 +931,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit, - if (leadCC == 0 && stopAt == STOP_AT_DECOMP_BOUNDARY) { - return prevSrc; - } -- if (!buffer.append((const char16_t *)mapping+1, length, TRUE, leadCC, trailCC, errorCode)) { -+ if (!buffer.append((const char16_t *)mapping+1, length, true, leadCC, trailCC, errorCode)) { - return nullptr; - } - } -@@ -1052,7 +1052,7 @@ void Normalizer2Impl::decomposeAndAppend(const UChar *src, const UChar *limit, - limit=u_strchr(p, 0); - } - -- if (buffer.append(src, (int32_t)(p - src), FALSE, firstCC, prevCC, errorCode)) { -+ if (buffer.append(src, (int32_t)(p - src), false, firstCC, prevCC, errorCode)) { - buffer.appendZeroCC(p, limit, errorCode); - } - } -@@ -1064,7 +1064,7 @@ UBool Normalizer2Impl::hasDecompBoundaryBefore(UChar32 c) const { - - UBool Normalizer2Impl::norm16HasDecompBoundaryBefore(uint16_t norm16) const { - if (norm16 < minNoNoCompNoMaybeCC) { -- return TRUE; -+ return true; - } - if (norm16 >= limitNoNo) { - return norm16 <= MIN_NORMAL_MAYBE_YES || norm16 == JAMO_VT; -@@ -1072,23 +1072,23 @@ UBool Normalizer2Impl::norm16HasDecompBoundaryBefore(uint16_t norm16) const { - // c decomposes, get everything from the variable-length extra data - const uint16_t *mapping=getMapping(norm16); - uint16_t firstUnit=*mapping; -- // TRUE if leadCC==0 (hasFCDBoundaryBefore()) -+ // true if leadCC==0 (hasFCDBoundaryBefore()) - return (firstUnit&MAPPING_HAS_CCC_LCCC_WORD)==0 || (*(mapping-1)&0xff00)==0; - } - - UBool Normalizer2Impl::hasDecompBoundaryAfter(UChar32 c) const { - if (c < minDecompNoCP) { -- return TRUE; -+ return true; - } - if (c <= 0xffff && !singleLeadMightHaveNonZeroFCD16(c)) { -- return TRUE; -+ return true; - } - return norm16HasDecompBoundaryAfter(getNorm16(c)); - } - - UBool Normalizer2Impl::norm16HasDecompBoundaryAfter(uint16_t norm16) const { - if(norm16 <= minYesNo || isHangulLVT(norm16)) { -- return TRUE; -+ return true; - } - if (norm16 >= limitNoNo) { - if (isMaybeOrNonZeroCC(norm16)) { -@@ -1103,13 +1103,13 @@ UBool Normalizer2Impl::norm16HasDecompBoundaryAfter(uint16_t norm16) const { - // decomp after-boundary: same as hasFCDBoundaryAfter(), - // fcd16<=1 || trailCC==0 - if(firstUnit>0x1ff) { -- return FALSE; // trailCC>1 -+ return false; // trailCC>1 - } - if(firstUnit<=0xff) { -- return TRUE; // trailCC==0 -+ return true; // trailCC==0 - } - // if(trailCC==1) test leadCC==0, same as checking for before-boundary -- // TRUE if leadCC==0 (hasFCDBoundaryBefore()) -+ // true if leadCC==0 (hasFCDBoundaryBefore()) - return (firstUnit&MAPPING_HAS_CCC_LCCC_WORD)==0 || (*(mapping-1)&0xff00)==0; - } - -@@ -1235,7 +1235,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart - // and are only initialized now to avoid compiler warnings. - compositionsList=NULL; // used as indicator for whether we have a forward-combining starter - starter=NULL; -- starterIsSupplementary=FALSE; -+ starterIsSupplementary=false; - prevCC=0; - - for(;;) { -@@ -1301,7 +1301,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart - *starter=(UChar)composite; - // The composite is shorter than the starter, - // move the intermediate characters forward one. -- starterIsSupplementary=FALSE; -+ starterIsSupplementary=false; - q=starter+1; - r=q+1; - while(r cc) { - // Fails FCD test, need to decompose and contiguously recompose. - if (!doCompose) { -- return FALSE; -+ return false; - } - } else { - // If !onlyContiguous (not FCC), then we ignore the tccc of -@@ -1634,7 +1634,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit, - if (doCompose) { - buffer.appendZeroCC(prevBoundary, limit, errorCode); - } -- return TRUE; -+ return true; - } - uint8_t prevCC = cc; - nextSrc = src; -@@ -1643,7 +1643,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit, - cc = getCCFromNormalYesOrMaybe(n16); - if (prevCC > cc) { - if (!doCompose) { -- return FALSE; -+ return false; - } - break; - } -@@ -1678,28 +1678,28 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit, - } - int32_t recomposeStartIndex=buffer.length(); - // We know there is not a boundary here. -- decomposeShort(prevSrc, src, FALSE /* !stopAtCompBoundary */, onlyContiguous, -+ decomposeShort(prevSrc, src, false /* !stopAtCompBoundary */, onlyContiguous, - buffer, errorCode); - // Decompose until the next boundary. -- src = decomposeShort(src, limit, TRUE /* stopAtCompBoundary */, onlyContiguous, -+ src = decomposeShort(src, limit, true /* stopAtCompBoundary */, onlyContiguous, - buffer, errorCode); - if (U_FAILURE(errorCode)) { - break; - } - if ((src - prevSrc) > INT32_MAX) { // guard before buffer.equals() - errorCode = U_INDEX_OUTOFBOUNDS_ERROR; -- return TRUE; -+ return true; - } - recompose(buffer, recomposeStartIndex, onlyContiguous); - if(!doCompose) { - if(!buffer.equals(prevSrc, src)) { -- return FALSE; -+ return false; - } - buffer.remove(); - } - prevBoundary=src; - } -- return TRUE; -+ return true; - } - - // Very similar to compose(): Make the same changes in both places if relevant. -@@ -1846,7 +1846,7 @@ void Normalizer2Impl::composeAndAppend(const UChar *src, const UChar *limit, - middle.append(src, (int32_t)(firstStarterInSrc-src)); - const UChar *middleStart=middle.getBuffer(); - compose(middleStart, middleStart+middle.length(), onlyContiguous, -- TRUE, buffer, errorCode); -+ true, buffer, errorCode); - if(U_FAILURE(errorCode)) { - return; - } -@@ -1854,7 +1854,7 @@ void Normalizer2Impl::composeAndAppend(const UChar *src, const UChar *limit, - } - } - if(doCompose) { -- compose(src, limit, onlyContiguous, TRUE, buffer, errorCode); -+ compose(src, limit, onlyContiguous, true, buffer, errorCode); - } else { - if(limit==NULL) { // appendZeroCC() needs limit!=NULL - limit=u_strchr(src, 0); -@@ -1883,7 +1883,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - ByteSinkUtil::appendUnchanged(prevBoundary, limit, - *sink, options, edits, errorCode); - } -- return TRUE; -+ return true; - } - if (*src < minNoMaybeLead) { - ++src; -@@ -1904,7 +1904,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - // Medium-fast path: Handle cases that do not require full decomposition and recomposition. - if (!isMaybeOrNonZeroCC(norm16)) { // minNoNo <= norm16 < minMaybeYes - if (sink == nullptr) { -- return FALSE; -+ return false; - } - // Fast path for mapping a character that is immediately surrounded by boundaries. - // In this case, we need not decompose around the current character. -@@ -1972,7 +1972,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - UChar32 l = prev - Hangul::JAMO_L_BASE; - if ((uint32_t)l < Hangul::JAMO_L_COUNT) { - if (sink == nullptr) { -- return FALSE; -+ return false; - } - int32_t t = getJamoTMinusBase(src, limit); - if (t >= 0) { -@@ -2008,7 +2008,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - // The current character is a Jamo Trailing consonant, - // compose with previous Hangul LV that does not contain a Jamo T. - if (sink == nullptr) { -- return FALSE; -+ return false; - } - UChar32 syllable = prev + getJamoTMinusBase(prevSrc, src); - prevSrc -= 3; // Replace the Hangul LV as well. -@@ -2031,7 +2031,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - if (onlyContiguous /* FCC */ && getPreviousTrailCC(prevBoundary, prevSrc) > cc) { - // Fails FCD test, need to decompose and contiguously recompose. - if (sink == nullptr) { -- return FALSE; -+ return false; - } - } else { - // If !onlyContiguous (not FCC), then we ignore the tccc of -@@ -2044,7 +2044,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - ByteSinkUtil::appendUnchanged(prevBoundary, limit, - *sink, options, edits, errorCode); - } -- return TRUE; -+ return true; - } - uint8_t prevCC = cc; - nextSrc = src; -@@ -2053,7 +2053,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - cc = getCCFromNormalYesOrMaybe(n16); - if (prevCC > cc) { - if (sink == nullptr) { -- return FALSE; -+ return false; - } - break; - } -@@ -2098,12 +2098,12 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - } - if ((src - prevSrc) > INT32_MAX) { // guard before buffer.equals() - errorCode = U_INDEX_OUTOFBOUNDS_ERROR; -- return TRUE; -+ return true; - } - recompose(buffer, 0, onlyContiguous); - if (!buffer.equals(prevSrc, src)) { - if (sink == nullptr) { -- return FALSE; -+ return false; - } - if (prevBoundary != prevSrc && - !ByteSinkUtil::appendUnchanged(prevBoundary, prevSrc, -@@ -2117,12 +2117,12 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous, - prevBoundary = src; - } - } -- return TRUE; -+ return true; - } - - UBool Normalizer2Impl::hasCompBoundaryBefore(const UChar *src, const UChar *limit) const { - if (src == limit || *src < minCompNoMaybeCP) { -- return TRUE; -+ return true; - } - UChar32 c; - uint16_t norm16; -@@ -2132,7 +2132,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const UChar *src, const UChar *limi - - UBool Normalizer2Impl::hasCompBoundaryBefore(const uint8_t *src, const uint8_t *limit) const { - if (src == limit) { -- return TRUE; -+ return true; - } - uint16_t norm16; - UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16); -@@ -2142,7 +2142,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const uint8_t *src, const uint8_t * - UBool Normalizer2Impl::hasCompBoundaryAfter(const UChar *start, const UChar *p, - UBool onlyContiguous) const { - if (start == p) { -- return TRUE; -+ return true; - } - UChar32 c; - uint16_t norm16; -@@ -2153,7 +2153,7 @@ UBool Normalizer2Impl::hasCompBoundaryAfter(const UChar *start, const UChar *p, - UBool Normalizer2Impl::hasCompBoundaryAfter(const uint8_t *start, const uint8_t *p, - UBool onlyContiguous) const { - if (start == p) { -- return TRUE; -+ return true; - } - uint16_t norm16; - UCPTRIE_FAST_U8_PREV(normTrie, UCPTRIE_16, start, p, norm16); -@@ -2399,7 +2399,7 @@ Normalizer2Impl::makeFCD(const UChar *src, const UChar *limit, - * The source text does not fulfill the conditions for FCD. - * Decompose and reorder a limited piece of the text. - */ -- decomposeShort(prevBoundary, src, FALSE, FALSE, *buffer, errorCode); -+ decomposeShort(prevBoundary, src, false, false, *buffer, errorCode); - if (U_FAILURE(errorCode)) { - break; - } -@@ -2665,7 +2665,7 @@ UBool Normalizer2Impl::isCanonSegmentStarter(UChar32 c) const { - UBool Normalizer2Impl::getCanonStartSet(UChar32 c, UnicodeSet &set) const { - int32_t canonValue=getCanonValue(c)&~CANON_NOT_SEGMENT_STARTER; - if(canonValue==0) { -- return FALSE; -+ return false; - } - set.clear(); - int32_t value=canonValue&CANON_VALUE_MASK; -@@ -2684,7 +2684,7 @@ UBool Normalizer2Impl::getCanonStartSet(UChar32 c, UnicodeSet &set) const { - addComposites(getCompositionsList(norm16), set); - } - } -- return TRUE; -+ return true; - } - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/normalizer2impl.h b/deps/icu-small/source/common/normalizer2impl.h -index 7c85448b71..449e778384 100644 ---- a/deps/icu-small/source/common/normalizer2impl.h -+++ b/deps/icu-small/source/common/normalizer2impl.h -@@ -131,7 +131,7 @@ public: - } - } - private: -- Hangul(); // no instantiation -+ Hangul() = delete; // no instantiation - }; - - class Normalizer2Impl; -@@ -730,7 +730,7 @@ private: - const uint16_t *extraData; // mappings and/or compositions for yesYes, yesNo & noNo characters - const uint8_t *smallFCD; // [0x100] one bit per 32 BMP code points, set if any FCD!=0 - -- UInitOnce fCanonIterDataInitOnce = U_INITONCE_INITIALIZER; -+ UInitOnce fCanonIterDataInitOnce {}; - CanonIterData *fCanonIterData; - }; - -@@ -759,7 +759,7 @@ public: - // Must be used only when it is known that norm2 is a Normalizer2WithImpl instance. - static const Normalizer2Impl *getImpl(const Normalizer2 *norm2); - private: -- Normalizer2Factory(); // No instantiation. -+ Normalizer2Factory() = delete; // No instantiation. - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/normlzr.cpp b/deps/icu-small/source/common/normlzr.cpp -index 1f4fa15179..58de61591f 100644 ---- a/deps/icu-small/source/common/normlzr.cpp -+++ b/deps/icu-small/source/common/normlzr.cpp -@@ -205,7 +205,7 @@ Normalizer::isNormalized(const UnicodeString& source, - return n2->isNormalized(source, status); - } - } else { -- return FALSE; -+ return false; - } - } - -@@ -483,7 +483,7 @@ Normalizer::nextNormalize() { - currentIndex=nextIndex; - text->setIndex(nextIndex); - if(!text->hasNext()) { -- return FALSE; -+ return false; - } - // Skip at least one character so we make progress. - UnicodeString segment(text->next32PostInc()); -@@ -507,7 +507,7 @@ Normalizer::previousNormalize() { - nextIndex=currentIndex; - text->setIndex(currentIndex); - if(!text->hasPrevious()) { -- return FALSE; -+ return false; - } - UnicodeString segment; - while(text->hasPrevious()) { -diff --git a/deps/icu-small/source/common/patternprops.cpp b/deps/icu-small/source/common/patternprops.cpp -index c38a7e276d..da3243d301 100644 ---- a/deps/icu-small/source/common/patternprops.cpp -+++ b/deps/icu-small/source/common/patternprops.cpp -@@ -118,49 +118,49 @@ static const uint32_t syntaxOrWhiteSpace2000[]={ - UBool - PatternProps::isSyntax(UChar32 c) { - if(c<0) { -- return FALSE; -+ return false; - } else if(c<=0xff) { - return (UBool)(latin1[c]>>1)&1; - } else if(c<0x2010) { -- return FALSE; -+ return false; - } else if(c<=0x3030) { - uint32_t bits=syntax2000[index2000[(c-0x2000)>>5]]; - return (UBool)((bits>>(c&0x1f))&1); - } else if(0xfd3e<=c && c<=0xfe46) { - return c<=0xfd3f || 0xfe45<=c; - } else { -- return FALSE; -+ return false; - } - } - - UBool - PatternProps::isSyntaxOrWhiteSpace(UChar32 c) { - if(c<0) { -- return FALSE; -+ return false; - } else if(c<=0xff) { - return (UBool)(latin1[c]&1); - } else if(c<0x200e) { -- return FALSE; -+ return false; - } else if(c<=0x3030) { - uint32_t bits=syntaxOrWhiteSpace2000[index2000[(c-0x2000)>>5]]; - return (UBool)((bits>>(c&0x1f))&1); - } else if(0xfd3e<=c && c<=0xfe46) { - return c<=0xfd3f || 0xfe45<=c; - } else { -- return FALSE; -+ return false; - } - } - - UBool - PatternProps::isWhiteSpace(UChar32 c) { - if(c<0) { -- return FALSE; -+ return false; - } else if(c<=0xff) { - return (UBool)(latin1[c]>>2)&1; - } else if(0x200e<=c && c<=0x2029) { - return c<=0x200f || 0x2028<=c; - } else { -- return FALSE; -+ return false; - } - } - -@@ -207,15 +207,15 @@ PatternProps::trimWhiteSpace(const UChar *s, int32_t &length) { - UBool - PatternProps::isIdentifier(const UChar *s, int32_t length) { - if(length<=0) { -- return FALSE; -+ return false; - } - const UChar *limit=s+length; - do { - if(isSyntaxOrWhiteSpace(*s++)) { -- return FALSE; -+ return false; - } - } while(sisCompacted=TRUE; -+ pv->isCompacted=true; - - rows=pv->rows; - columns=pv->columns; -@@ -360,7 +360,7 @@ upvec_compact(UPropsVectors *pv, UPVecCompactHandler *handler, void *context, UE - - /* sort the properties vectors to find unique vector values */ - uprv_sortArray(pv->v, rows, columns*4, -- upvec_compareRows, pv, FALSE, pErrorCode); -+ upvec_compareRows, pv, false, pErrorCode); - if(U_FAILURE(*pErrorCode)) { - return; - } -@@ -503,7 +503,7 @@ upvec_compactToUTrie2Handler(void *context, - (void)columns; - UPVecToUTrie2Context *toUTrie2=(UPVecToUTrie2Context *)context; - if(starttrie, start, end, (uint32_t)rowIndex, TRUE, pErrorCode); -+ utrie2_setRange32(toUTrie2->trie, start, end, (uint32_t)rowIndex, true, pErrorCode); - } else { - switch(start) { - case UPVEC_INITIAL_VALUE_CP: -diff --git a/deps/icu-small/source/common/punycode.cpp b/deps/icu-small/source/common/punycode.cpp -index 4832938ff7..f95722da27 100644 ---- a/deps/icu-small/source/common/punycode.cpp -+++ b/deps/icu-small/source/common/punycode.cpp -@@ -573,7 +573,7 @@ u_strFromPunycode(const UChar *src, int32_t srcLength, - /* Case of last character determines uppercase flag: */ - caseFlags[codeUnitIndex]=IS_BASIC_UPPERCASE(src[in-1]); - if(cpLength==2) { -- caseFlags[codeUnitIndex+1]=FALSE; -+ caseFlags[codeUnitIndex+1]=false; - } - } - } -diff --git a/deps/icu-small/source/common/putil.cpp b/deps/icu-small/source/common/putil.cpp -index 68be079b3a..f27c8737d2 100644 ---- a/deps/icu-small/source/common/putil.cpp -+++ b/deps/icu-small/source/common/putil.cpp -@@ -244,7 +244,7 @@ u_signBit(double d) { - */ - UDate fakeClock_t0 = 0; /** Time to start the clock from **/ - UDate fakeClock_dt = 0; /** Offset (fake time - real time) **/ --UBool fakeClock_set = FALSE; /** True if fake clock has spun up **/ -+UBool fakeClock_set = false; /** True if fake clock has spun up **/ - - static UDate getUTCtime_real() { - struct timeval posixTime; -@@ -269,7 +269,7 @@ static UDate getUTCtime_fake() { - fprintf(stderr,"U_DEBUG_FAKETIME was set at compile time, but U_FAKETIME_START was not set.\n" - "Set U_FAKETIME_START to the number of milliseconds since 1/1/1970 to set the ICU clock.\n"); - } -- fakeClock_set = TRUE; -+ fakeClock_set = true; - } - umtx_unlock(&fakeClockMutex); - -@@ -905,7 +905,7 @@ static UBool compareBinaryFiles(const char* defaultTZFileName, const char* TZFil - int32_t sizeFileRead; - int32_t sizeFileToRead; - char bufferFile[MAX_READ_SIZE]; -- UBool result = TRUE; -+ UBool result = true; - - if (tzInfo->defaultTZFilePtr == NULL) { - tzInfo->defaultTZFilePtr = fopen(defaultTZFileName, "r"); -@@ -925,7 +925,7 @@ static UBool compareBinaryFiles(const char* defaultTZFileName, const char* TZFil - sizeFileLeft = sizeFile; - - if (sizeFile != tzInfo->defaultTZFileSize) { -- result = FALSE; -+ result = false; - } else { - /* Store the data from the files in separate buffers and - * compare each byte to determine equality. -@@ -942,7 +942,7 @@ static UBool compareBinaryFiles(const char* defaultTZFileName, const char* TZFil - - sizeFileRead = fread(bufferFile, 1, sizeFileToRead, file); - if (memcmp(tzInfo->defaultTZBuffer + tzInfo->defaultTZPosition, bufferFile, sizeFileRead) != 0) { -- result = FALSE; -+ result = false; - break; - } - sizeFileLeft -= sizeFileRead; -@@ -950,7 +950,7 @@ static UBool compareBinaryFiles(const char* defaultTZFileName, const char* TZFil - } - } - } else { -- result = FALSE; -+ result = false; - } - - if (file != NULL) { -@@ -1189,7 +1189,7 @@ uprv_tzname(int n) - tzInfo->defaultTZBuffer = NULL; - tzInfo->defaultTZFileSize = 0; - tzInfo->defaultTZFilePtr = NULL; -- tzInfo->defaultTZstatus = FALSE; -+ tzInfo->defaultTZstatus = false; - tzInfo->defaultTZPosition = 0; - - gTimeZoneBufferPtr = searchForTZFile(TZZONEINFO, tzInfo); -@@ -1260,10 +1260,10 @@ uprv_tzname(int n) - - /* Get and set the ICU data directory --------------------------------------- */ - --static icu::UInitOnce gDataDirInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gDataDirInitOnce {}; - static char *gDataDirectory = NULL; - --UInitOnce gTimeZoneFilesInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce gTimeZoneFilesInitOnce {}; - static CharString *gTimeZoneFilesDirectory = NULL; - - #if U_POSIX_LOCALE || U_PLATFORM_USES_ONLY_WIN32_API -@@ -1295,7 +1295,7 @@ static UBool U_CALLCONV putil_cleanup(void) - gCorrectedPOSIXLocaleHeapAllocated = false; - } - #endif -- return TRUE; -+ return true; - } - - /* -@@ -1344,16 +1344,16 @@ U_CAPI UBool U_EXPORT2 - uprv_pathIsAbsolute(const char *path) - { - if(!path || !*path) { -- return FALSE; -+ return false; - } - - if(*path == U_FILE_SEP_CHAR) { -- return TRUE; -+ return true; - } - - #if (U_FILE_SEP_CHAR != U_FILE_ALT_SEP_CHAR) - if(*path == U_FILE_ALT_SEP_CHAR) { -- return TRUE; -+ return true; - } - #endif - -@@ -1361,11 +1361,11 @@ uprv_pathIsAbsolute(const char *path) - if( (((path[0] >= 'A') && (path[0] <= 'Z')) || - ((path[0] >= 'a') && (path[0] <= 'z'))) && - path[1] == ':' ) { -- return TRUE; -+ return true; - } - #endif - -- return FALSE; -+ return false; - } - - /* Backup setting of ICU_DATA_DIR_PREFIX_ENV_VAR -@@ -1402,12 +1402,12 @@ static BOOL U_CALLCONV getIcuDataDirectoryUnderWindowsDirectory(char* directoryB - if ((windowsPathUtf8Len + UPRV_LENGTHOF(ICU_DATA_DIR_WINDOWS)) < bufferLength) { - uprv_strcpy(directoryBuffer, windowsPathUtf8); - uprv_strcat(directoryBuffer, ICU_DATA_DIR_WINDOWS); -- return TRUE; -+ return true; - } - } - } - -- return FALSE; -+ return false; - } - #endif - -diff --git a/deps/icu-small/source/common/rbbi.cpp b/deps/icu-small/source/common/rbbi.cpp -index cae8d154b3..2769263894 100644 ---- a/deps/icu-small/source/common/rbbi.cpp -+++ b/deps/icu-small/source/common/rbbi.cpp -@@ -39,7 +39,7 @@ - #include "uvectr32.h" - - #ifdef RBBI_DEBUG --static UBool gTrace = FALSE; -+static UBool gTrace = false; - #endif - - U_NAMESPACE_BEGIN -@@ -267,7 +267,7 @@ RuleBasedBreakIterator::operator=(const RuleBasedBreakIterator& that) { - } - // TODO: clone fLanguageBreakEngines from "that" - UErrorCode status = U_ZERO_ERROR; -- utext_clone(&fText, &that.fText, FALSE, TRUE, &status); -+ utext_clone(&fText, &that.fText, false, true, &status); - - if (fCharIter != &fSCharIter) { - delete fCharIter; -@@ -354,13 +354,13 @@ void RuleBasedBreakIterator::init(UErrorCode &status) { - } - - #ifdef RBBI_DEBUG -- static UBool debugInitDone = FALSE; -- if (debugInitDone == FALSE) { -+ static UBool debugInitDone = false; -+ if (debugInitDone == false) { - char *debugEnv = getenv("U_RBBIDEBUG"); - if (debugEnv && uprv_strstr(debugEnv, "trace")) { -- gTrace = TRUE; -+ gTrace = true; - } -- debugInitDone = TRUE; -+ debugInitDone = true; - } - #endif - } -@@ -439,7 +439,7 @@ void RuleBasedBreakIterator::setText(UText *ut, UErrorCode &status) { - } - fBreakCache->reset(); - fDictionaryCache->reset(); -- utext_clone(&fText, ut, FALSE, TRUE, &status); -+ utext_clone(&fText, ut, false, true, &status); - - // Set up a dummy CharacterIterator to be returned if anyone - // calls getText(). With input from UText, there is no reasonable -@@ -460,7 +460,7 @@ void RuleBasedBreakIterator::setText(UText *ut, UErrorCode &status) { - - - UText *RuleBasedBreakIterator::getUText(UText *fillIn, UErrorCode &status) const { -- UText *result = utext_clone(fillIn, &fText, FALSE, TRUE, &status); -+ UText *result = utext_clone(fillIn, &fText, false, true, &status); - return result; - } - -@@ -548,7 +548,7 @@ RuleBasedBreakIterator &RuleBasedBreakIterator::refreshInputText(UText *input, U - } - int64_t pos = utext_getNativeIndex(&fText); - // Shallow read-only clone of the new UText into the existing input UText -- utext_clone(&fText, input, FALSE, TRUE, &status); -+ utext_clone(&fText, input, false, true, &status); - if (U_FAILURE(status)) { - return *this; - } -@@ -696,7 +696,7 @@ UBool RuleBasedBreakIterator::isBoundary(int32_t offset) { - // out-of-range indexes are never boundary positions - if (offset < 0) { - first(); // For side effects on current position, tag values. -- return FALSE; -+ return false; - } - - // Adjust offset to be on a code point boundary and not beyond the end of the text. -@@ -713,9 +713,9 @@ UBool RuleBasedBreakIterator::isBoundary(int32_t offset) { - } - - if (result && adjustedOffset < offset && utext_char32At(&fText, offset) == U_SENTINEL) { -- // Original offset is beyond the end of the text. Return FALSE, it's not a boundary, -+ // Original offset is beyond the end of the text. Return false, it's not a boundary, - // but the iteration position remains set to the end of the text, which is a boundary. -- return FALSE; -+ return false; - } - if (!result) { - // Not on a boundary. isBoundary() must leave iterator on the following boundary. -@@ -838,7 +838,7 @@ int32_t RuleBasedBreakIterator::handleNext() { - result = initialPosition; - c = UTEXT_NEXT32(&fText); - if (c==U_SENTINEL) { -- fDone = TRUE; -+ fDone = true; - return UBRK_DONE; - } - -@@ -1153,8 +1153,8 @@ U_NAMESPACE_END - - static icu::UStack *gLanguageBreakFactories = nullptr; - static const icu::UnicodeString *gEmptyString = nullptr; --static icu::UInitOnce gLanguageBreakFactoriesInitOnce = U_INITONCE_INITIALIZER; --static icu::UInitOnce gRBBIInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gLanguageBreakFactoriesInitOnce {}; -+static icu::UInitOnce gRBBIInitOnce {}; - - /** - * Release all static memory held by breakiterator. -@@ -1167,7 +1167,7 @@ UBool U_CALLCONV rbbi_cleanup(void) { - gEmptyString = nullptr; - gLanguageBreakFactoriesInitOnce.reset(); - gRBBIInitOnce.reset(); -- return TRUE; -+ return true; - } - U_CDECL_END - -diff --git a/deps/icu-small/source/common/rbbi_cache.cpp b/deps/icu-small/source/common/rbbi_cache.cpp -index 26d82df781..45e02528cf 100644 ---- a/deps/icu-small/source/common/rbbi_cache.cpp -+++ b/deps/icu-small/source/common/rbbi_cache.cpp -@@ -45,7 +45,7 @@ void RuleBasedBreakIterator::DictionaryCache::reset() { - UBool RuleBasedBreakIterator::DictionaryCache::following(int32_t fromPos, int32_t *result, int32_t *statusIndex) { - if (fromPos >= fLimit || fromPos < fStart) { - fPositionInCache = -1; -- return FALSE; -+ return false; - } - - // Sequential iteration, move from previous boundary to the following -@@ -55,13 +55,13 @@ UBool RuleBasedBreakIterator::DictionaryCache::following(int32_t fromPos, int32_ - ++fPositionInCache; - if (fPositionInCache >= fBreaks.size()) { - fPositionInCache = -1; -- return FALSE; -+ return false; - } - r = fBreaks.elementAti(fPositionInCache); - U_ASSERT(r > fromPos); - *result = r; - *statusIndex = fOtherRuleStatusIndex; -- return TRUE; -+ return true; - } - - // Random indexing. Linear search for the boundary following the given position. -@@ -71,7 +71,7 @@ UBool RuleBasedBreakIterator::DictionaryCache::following(int32_t fromPos, int32_ - if (r > fromPos) { - *result = r; - *statusIndex = fOtherRuleStatusIndex; -- return TRUE; -+ return true; - } - } - UPRV_UNREACHABLE_EXIT; -@@ -81,7 +81,7 @@ UBool RuleBasedBreakIterator::DictionaryCache::following(int32_t fromPos, int32_ - UBool RuleBasedBreakIterator::DictionaryCache::preceding(int32_t fromPos, int32_t *result, int32_t *statusIndex) { - if (fromPos <= fStart || fromPos > fLimit) { - fPositionInCache = -1; -- return FALSE; -+ return false; - } - - if (fromPos == fLimit) { -@@ -98,12 +98,12 @@ UBool RuleBasedBreakIterator::DictionaryCache::preceding(int32_t fromPos, int32_ - U_ASSERT(r < fromPos); - *result = r; - *statusIndex = ( r== fStart) ? fFirstRuleStatusIndex : fOtherRuleStatusIndex; -- return TRUE; -+ return true; - } - - if (fPositionInCache == 0) { - fPositionInCache = -1; -- return FALSE; -+ return false; - } - - for (fPositionInCache = fBreaks.size()-1; fPositionInCache >= 0; --fPositionInCache) { -@@ -111,7 +111,7 @@ UBool RuleBasedBreakIterator::DictionaryCache::preceding(int32_t fromPos, int32_ - if (r < fromPos) { - *result = r; - *statusIndex = ( r == fStart) ? fFirstRuleStatusIndex : fOtherRuleStatusIndex; -- return TRUE; -+ return true; - } - } - UPRV_UNREACHABLE_EXIT; -@@ -227,7 +227,7 @@ void RuleBasedBreakIterator::BreakCache::reset(int32_t pos, int32_t ruleStatus) - int32_t RuleBasedBreakIterator::BreakCache::current() { - fBI->fPosition = fTextIdx; - fBI->fRuleStatusIndex = fStatuses[fBufIdx]; -- fBI->fDone = FALSE; -+ fBI->fDone = false; - return fTextIdx; - } - -@@ -302,18 +302,18 @@ void RuleBasedBreakIterator::BreakCache::previous(UErrorCode &status) { - - UBool RuleBasedBreakIterator::BreakCache::seek(int32_t pos) { - if (pos < fBoundaries[fStartBufIdx] || pos > fBoundaries[fEndBufIdx]) { -- return FALSE; -+ return false; - } - if (pos == fBoundaries[fStartBufIdx]) { - // Common case: seek(0), from BreakIterator::first() - fBufIdx = fStartBufIdx; - fTextIdx = fBoundaries[fBufIdx]; -- return TRUE; -+ return true; - } - if (pos == fBoundaries[fEndBufIdx]) { - fBufIdx = fEndBufIdx; - fTextIdx = fBoundaries[fBufIdx]; -- return TRUE; -+ return true; - } - - int32_t min = fStartBufIdx; -@@ -331,51 +331,97 @@ UBool RuleBasedBreakIterator::BreakCache::seek(int32_t pos) { - fBufIdx = modChunkSize(max - 1); - fTextIdx = fBoundaries[fBufIdx]; - U_ASSERT(fTextIdx <= pos); -- return TRUE; -+ return true; - } - - - UBool RuleBasedBreakIterator::BreakCache::populateNear(int32_t position, UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - U_ASSERT(position < fBoundaries[fStartBufIdx] || position > fBoundaries[fEndBufIdx]); - -- // Find a boundary somewhere in the vicinity of the requested position. -- // Depending on the safe rules and the text data, it could be either before, at, or after -- // the requested position. -- -+ // Add boundaries to the cache near the specified position. -+ // The given position need not be a boundary itself. -+ // The input position must be within the range of the text, and -+ // on a code point boundary. -+ // If the requested position is a break boundary, leave the iteration -+ // position on it. -+ // If the requested position is not a boundary, leave the iteration -+ // position on the preceding boundary and include both the -+ // preceding and following boundaries in the cache. -+ // Additional boundaries, either preceding or following, may be added -+ // to the cache as a side effect. - - // If the requested position is not near already cached positions, clear the existing cache, - // find a near-by boundary and begin new cache contents there. - -- if ((position < fBoundaries[fStartBufIdx] - 15) || position > (fBoundaries[fEndBufIdx] + 15)) { -- int32_t aBoundary = 0; -- int32_t ruleStatusIndex = 0; -- if (position > 20) { -- int32_t backupPos = fBI->handleSafePrevious(position); -- -- if (backupPos > 0) { -- // Advance to the boundary following the backup position. -- // There is a complication: the safe reverse rules identify pairs of code points -- // that are safe. If advancing from the safe point moves forwards by less than -- // two code points, we need to advance one more time to ensure that the boundary -- // is good, including a correct rules status value. -- // -- fBI->fPosition = backupPos; -- aBoundary = fBI->handleNext(); -- if (aBoundary <= backupPos + 4) { -- // +4 is a quick test for possibly having advanced only one codepoint. -- // Four being the length of the longest potential code point, a supplementary in UTF-8 -- utext_setNativeIndex(&fBI->fText, aBoundary); -- if (backupPos == utext_getPreviousNativeIndex(&fBI->fText)) { -- // The initial handleNext() only advanced by a single code point. Go again. -- aBoundary = fBI->handleNext(); // Safe rules identify safe pairs. -- } -+ // Threshold for a text position to be considered near to existing cache contents. -+ // TODO: See issue ICU-22024 "perf tuning of Cache needed." -+ // This value is subject to change. See the ticket for more details. -+ static constexpr int32_t CACHE_NEAR = 15; -+ -+ int32_t aBoundary = -1; -+ int32_t ruleStatusIndex = 0; -+ bool retainCache = false; -+ if ((position > fBoundaries[fStartBufIdx] - CACHE_NEAR) && position < (fBoundaries[fEndBufIdx] + CACHE_NEAR)) { -+ // Requested position is near the existing cache. Retain it. -+ retainCache = true; -+ } else if (position <= CACHE_NEAR) { -+ // Requested position is near the start of the text. Fill cache from start, skipping -+ // the need to find a safe point. -+ retainCache = false; -+ aBoundary = 0; -+ } else { -+ // Requested position is not near the existing cache. -+ // Find a safe point to refill the cache from. -+ int32_t backupPos = fBI->handleSafePrevious(position); -+ -+ if (fBoundaries[fEndBufIdx] < position && fBoundaries[fEndBufIdx] >= (backupPos - CACHE_NEAR)) { -+ // The requested position is beyond the end of the existing cache, but the -+ // reverse rules produced a position near or before the cached region. -+ // Retain the existing cache, and fill from the end of it. -+ retainCache = true; -+ } else if (backupPos < CACHE_NEAR) { -+ // The safe reverse rules moved us to near the start of text. -+ // Take that (index 0) as the backup boundary, avoiding the complication -+ // (in the following block) of moving forward from the safe point to a known boundary. -+ // -+ // Retain the cache if it begins not too far from the requested position. -+ aBoundary = 0; -+ retainCache = (fBoundaries[fStartBufIdx] <= (position + CACHE_NEAR)); -+ } else { -+ // The safe reverse rules produced a position that is neither near the existing -+ // cache, nor near the start of text. -+ // Advance to the boundary following. -+ // There is a complication: the safe reverse rules identify pairs of code points -+ // that are safe. If advancing from the safe point moves forwards by less than -+ // two code points, we need to advance one more time to ensure that the boundary -+ // is good, including a correct rules status value. -+ retainCache = false; -+ fBI->fPosition = backupPos; -+ aBoundary = fBI->handleNext(); -+ if (aBoundary != UBRK_DONE && aBoundary <= backupPos + 4) { -+ // +4 is a quick test for possibly having advanced only one codepoint. -+ // Four being the length of the longest potential code point, a supplementary in UTF-8 -+ utext_setNativeIndex(&fBI->fText, aBoundary); -+ if (backupPos == utext_getPreviousNativeIndex(&fBI->fText)) { -+ // The initial handleNext() only advanced by a single code point. Go again. -+ aBoundary = fBI->handleNext(); // Safe rules identify safe pairs. - } -- ruleStatusIndex = fBI->fRuleStatusIndex; - } -+ if (aBoundary == UBRK_DONE) { -+ // Note (Andy Heninger): I don't think this condition can occur, but it's hard -+ // to prove that it can't. We ran off the end of the string looking a boundary -+ // following a safe point; choose the end of the string as that boundary. -+ aBoundary = utext_nativeLength(&fBI->fText); -+ } -+ ruleStatusIndex = fBI->fRuleStatusIndex; - } -+ } -+ -+ if (!retainCache) { -+ U_ASSERT(aBoundary != -1); - reset(aBoundary, ruleStatusIndex); // Reset cache to hold aBoundary as a single starting point. - } - -@@ -430,13 +476,13 @@ UBool RuleBasedBreakIterator::BreakCache::populateFollowing() { - - if (fBI->fDictionaryCache->following(fromPosition, &pos, &ruleStatusIdx)) { - addFollowing(pos, ruleStatusIdx, UpdateCachePosition); -- return TRUE; -+ return true; - } - - fBI->fPosition = fromPosition; - pos = fBI->handleNext(); - if (pos == UBRK_DONE) { -- return FALSE; -+ return false; - } - - ruleStatusIdx = fBI->fRuleStatusIndex; -@@ -446,7 +492,7 @@ UBool RuleBasedBreakIterator::BreakCache::populateFollowing() { - fBI->fDictionaryCache->populateDictionary(fromPosition, pos, fromRuleStatusIdx, ruleStatusIdx); - if (fBI->fDictionaryCache->following(fromPosition, &pos, &ruleStatusIdx)) { - addFollowing(pos, ruleStatusIdx, UpdateCachePosition); -- return TRUE; -+ return true; - // TODO: may want to move a sizable chunk of dictionary cache to break cache at this point. - // But be careful with interactions with populateNear(). - } -@@ -469,18 +515,18 @@ UBool RuleBasedBreakIterator::BreakCache::populateFollowing() { - addFollowing(pos, fBI->fRuleStatusIndex, RetainCachePosition); - } - -- return TRUE; -+ return true; - } - - - UBool RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - - int32_t fromPosition = fBoundaries[fStartBufIdx]; - if (fromPosition == 0) { -- return FALSE; -+ return false; - } - - int32_t position = 0; -@@ -488,7 +534,7 @@ UBool RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode &status) - - if (fBI->fDictionaryCache->preceding(fromPosition, &position, &positionStatusIdx)) { - addPreceding(position, positionStatusIdx, UpdateCachePosition); -- return TRUE; -+ return true; - } - - int32_t backupPosition = fromPosition; -@@ -542,7 +588,7 @@ UBool RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode &status) - break; - } - -- UBool segmentHandledByDictionary = FALSE; -+ UBool segmentHandledByDictionary = false; - if (fBI->fDictionaryCharCount != 0) { - // Segment from the rules includes dictionary characters. - // Subdivide it, with subdivided results going into the dictionary cache. -@@ -569,12 +615,12 @@ UBool RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode &status) - } while (position < fromPosition); - - // Move boundaries from the side buffer to the main circular buffer. -- UBool success = FALSE; -+ UBool success = false; - if (!fSideBuffer.isEmpty()) { - positionStatusIdx = fSideBuffer.popi(); - position = fSideBuffer.popi(); - addPreceding(position, positionStatusIdx, UpdateCachePosition); -- success = TRUE; -+ success = true; - } - - while (!fSideBuffer.isEmpty()) { -diff --git a/deps/icu-small/source/common/rbbicst.pl b/deps/icu-small/source/common/rbbicst.pl -index 1a01386c7c..65907b0f63 100755 ---- a/deps/icu-small/source/common/rbbicst.pl -+++ b/deps/icu-small/source/common/rbbicst.pl -@@ -111,9 +111,9 @@ line_loop: while (<>) { - # - # do the 'n' flag - # -- $state_flag[$num_states] = $javaOutput? "false" : "FALSE"; -+ $state_flag[$num_states] = "false"; - if ($fields[0] eq "n") { -- $state_flag[$num_states] = $javaOutput? "true": "TRUE"; -+ $state_flag[$num_states] = "true"; - shift @fields; - } - -@@ -403,7 +403,7 @@ else - # emit the state transition table - # - print "static const struct RBBIRuleTableEl gRuleParseStateTable[] = {\n"; -- print " {doNOP, 0, 0, 0, TRUE}\n"; # State 0 is a dummy. Real states start with index = 1. -+ print " {doNOP, 0, 0, 0, true}\n"; # State 0 is a dummy. Real states start with index = 1. - for ($state=1; $state < $num_states; $state++) { - print " , {$state_func_name[$state],"; - if ($state_literal_chars[$state] ne "") { -diff --git a/deps/icu-small/source/common/rbbidata.cpp b/deps/icu-small/source/common/rbbidata.cpp -index 6338ed3ed8..f50fc458a5 100644 ---- a/deps/icu-small/source/common/rbbidata.cpp -+++ b/deps/icu-small/source/common/rbbidata.cpp -@@ -38,7 +38,7 @@ RBBIDataWrapper::RBBIDataWrapper(const RBBIDataHeader *data, UErrorCode &status) - RBBIDataWrapper::RBBIDataWrapper(const RBBIDataHeader *data, enum EDontAdopt, UErrorCode &status) { - init0(); - init(data, status); -- fDontFreeData = TRUE; -+ fDontFreeData = true; - } - - RBBIDataWrapper::RBBIDataWrapper(UDataMemory* udm, UErrorCode &status) { -@@ -86,7 +86,7 @@ void RBBIDataWrapper::init0() { - fTrie = NULL; - fUDataMem = NULL; - fRefCount = 0; -- fDontFreeData = TRUE; -+ fDontFreeData = true; - } - - void RBBIDataWrapper::init(const RBBIDataHeader *data, UErrorCode &status) { -@@ -102,7 +102,7 @@ void RBBIDataWrapper::init(const RBBIDataHeader *data, UErrorCode &status) { - // that is no longer supported. At that time fFormatVersion was - // an int32_t field, rather than an array of 4 bytes. - -- fDontFreeData = FALSE; -+ fDontFreeData = false; - if (data->fFTableLen != 0) { - fForwardTable = (RBBIStateTable *)((char *)data + fHeader->fFTable); - } -diff --git a/deps/icu-small/source/common/rbbinode.cpp b/deps/icu-small/source/common/rbbinode.cpp -index 27bcd8f8fe..da5937cafd 100644 ---- a/deps/icu-small/source/common/rbbinode.cpp -+++ b/deps/icu-small/source/common/rbbinode.cpp -@@ -58,10 +58,10 @@ RBBINode::RBBINode(NodeType t) : UMemory() { - fInputSet = NULL; - fFirstPos = 0; - fLastPos = 0; -- fNullable = FALSE; -- fLookAheadEnd = FALSE; -- fRuleRoot = FALSE; -- fChainIn = FALSE; -+ fNullable = false; -+ fLookAheadEnd = false; -+ fRuleRoot = false; -+ fChainIn = false; - fVal = 0; - fPrecedence = precZero; - -@@ -92,7 +92,7 @@ RBBINode::RBBINode(const RBBINode &other) : UMemory(other) { - fLastPos = other.fLastPos; - fNullable = other.fNullable; - fVal = other.fVal; -- fRuleRoot = FALSE; -+ fRuleRoot = false; - fChainIn = other.fChainIn; - UErrorCode status = U_ZERO_ERROR; - fFirstPosSet = new UVector(status); // TODO - get a real status from somewhere -@@ -355,11 +355,11 @@ void RBBINode::printTree(const RBBINode *node, UBool printHeading) { - // Unconditionally dump children of all other node types. - if (node->fType != varRef) { - if (node->fLeftChild != NULL) { -- printTree(node->fLeftChild, FALSE); -+ printTree(node->fLeftChild, false); - } - - if (node->fRightChild != NULL) { -- printTree(node->fRightChild, FALSE); -+ printTree(node->fRightChild, false); - } - } - } -diff --git a/deps/icu-small/source/common/rbbirb.cpp b/deps/icu-small/source/common/rbbirb.cpp -index e5c250dfe4..a9d76f2482 100644 ---- a/deps/icu-small/source/common/rbbirb.cpp -+++ b/deps/icu-small/source/common/rbbirb.cpp -@@ -65,9 +65,9 @@ RBBIRuleBuilder::RBBIRuleBuilder(const UnicodeString &rules, - fDefaultTree = &fForwardTree; - fForwardTable = NULL; - fRuleStatusVals = NULL; -- fChainRules = FALSE; -- fLBCMNoChain = FALSE; -- fLookAheadHardBreak = FALSE; -+ fChainRules = false; -+ fLBCMNoChain = false; -+ fLookAheadHardBreak = false; - fUSetNodes = NULL; - fRuleStatusVals = NULL; - fScanner = NULL; -diff --git a/deps/icu-small/source/common/rbbirb.h b/deps/icu-small/source/common/rbbirb.h -index 11dbf343ec..d983a184b6 100644 ---- a/deps/icu-small/source/common/rbbirb.h -+++ b/deps/icu-small/source/common/rbbirb.h -@@ -54,8 +54,8 @@ public: // of these structs for each ent - ~RBBISymbolTableEntry(); - - private: -- RBBISymbolTableEntry(const RBBISymbolTableEntry &other); // forbid copying of this class -- RBBISymbolTableEntry &operator=(const RBBISymbolTableEntry &other); // forbid copying of this class -+ RBBISymbolTableEntry(const RBBISymbolTableEntry &other) = delete; // forbid copying of this class -+ RBBISymbolTableEntry &operator=(const RBBISymbolTableEntry &other) = delete; // forbid copying of this class - }; - - -@@ -177,8 +177,8 @@ public: - RBBIDataHeader *flattenData(); // Create the flattened (runtime format) - // data tables.. - private: -- RBBIRuleBuilder(const RBBIRuleBuilder &other); // forbid copying of this class -- RBBIRuleBuilder &operator=(const RBBIRuleBuilder &other); // forbid copying of this class -+ RBBIRuleBuilder(const RBBIRuleBuilder &other) = delete; // forbid copying of this class -+ RBBIRuleBuilder &operator=(const RBBIRuleBuilder &other) = delete; // forbid copying of this class - }; - - -diff --git a/deps/icu-small/source/common/rbbirpt.h b/deps/icu-small/source/common/rbbirpt.h -index 586953c90c..ca1bcf45dc 100644 ---- a/deps/icu-small/source/common/rbbirpt.h -+++ b/deps/icu-small/source/common/rbbirpt.h -@@ -79,110 +79,110 @@ struct RBBIRuleTableEl { - }; - - static const struct RBBIRuleTableEl gRuleParseStateTable[] = { -- {doNOP, 0, 0, 0, TRUE} -- , {doExprStart, 254, 29, 9, FALSE} // 1 start -- , {doNOP, 132, 1,0, TRUE} // 2 -- , {doNoChain, 94 /* ^ */, 12, 9, TRUE} // 3 -- , {doExprStart, 36 /* $ */, 88, 98, FALSE} // 4 -- , {doNOP, 33 /* ! */, 19,0, TRUE} // 5 -- , {doNOP, 59 /* ; */, 1,0, TRUE} // 6 -- , {doNOP, 252, 0,0, FALSE} // 7 -- , {doExprStart, 255, 29, 9, FALSE} // 8 -- , {doEndOfRule, 59 /* ; */, 1,0, TRUE} // 9 break-rule-end -- , {doNOP, 132, 9,0, TRUE} // 10 -- , {doRuleError, 255, 103,0, FALSE} // 11 -- , {doExprStart, 254, 29,0, FALSE} // 12 start-after-caret -- , {doNOP, 132, 12,0, TRUE} // 13 -- , {doRuleError, 94 /* ^ */, 103,0, FALSE} // 14 -- , {doExprStart, 36 /* $ */, 88, 37, FALSE} // 15 -- , {doRuleError, 59 /* ; */, 103,0, FALSE} // 16 -- , {doRuleError, 252, 103,0, FALSE} // 17 -- , {doExprStart, 255, 29,0, FALSE} // 18 -- , {doNOP, 33 /* ! */, 21,0, TRUE} // 19 rev-option -- , {doReverseDir, 255, 28, 9, FALSE} // 20 -- , {doOptionStart, 130, 23,0, TRUE} // 21 option-scan1 -- , {doRuleError, 255, 103,0, FALSE} // 22 -- , {doNOP, 129, 23,0, TRUE} // 23 option-scan2 -- , {doOptionEnd, 255, 25,0, FALSE} // 24 -- , {doNOP, 59 /* ; */, 1,0, TRUE} // 25 option-scan3 -- , {doNOP, 132, 25,0, TRUE} // 26 -- , {doRuleError, 255, 103,0, FALSE} // 27 -- , {doExprStart, 255, 29, 9, FALSE} // 28 reverse-rule -- , {doRuleChar, 254, 38,0, TRUE} // 29 term -- , {doNOP, 132, 29,0, TRUE} // 30 -- , {doRuleChar, 131, 38,0, TRUE} // 31 -- , {doNOP, 91 /* [ */, 94, 38, FALSE} // 32 -- , {doLParen, 40 /* ( */, 29, 38, TRUE} // 33 -- , {doNOP, 36 /* $ */, 88, 37, FALSE} // 34 -- , {doDotAny, 46 /* . */, 38,0, TRUE} // 35 -- , {doRuleError, 255, 103,0, FALSE} // 36 -- , {doCheckVarDef, 255, 38,0, FALSE} // 37 term-var-ref -- , {doNOP, 132, 38,0, TRUE} // 38 expr-mod -- , {doUnaryOpStar, 42 /* * */, 43,0, TRUE} // 39 -- , {doUnaryOpPlus, 43 /* + */, 43,0, TRUE} // 40 -- , {doUnaryOpQuestion, 63 /* ? */, 43,0, TRUE} // 41 -- , {doNOP, 255, 43,0, FALSE} // 42 -- , {doExprCatOperator, 254, 29,0, FALSE} // 43 expr-cont -- , {doNOP, 132, 43,0, TRUE} // 44 -- , {doExprCatOperator, 131, 29,0, FALSE} // 45 -- , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 46 -- , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 47 -- , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 48 -- , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 49 -- , {doExprCatOperator, 47 /* / */, 55,0, FALSE} // 50 -- , {doExprCatOperator, 123 /* { */, 67,0, TRUE} // 51 -- , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 52 -- , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 53 -- , {doExprFinished, 255, 255,0, FALSE} // 54 -- , {doSlash, 47 /* / */, 57,0, TRUE} // 55 look-ahead -- , {doNOP, 255, 103,0, FALSE} // 56 -- , {doExprCatOperator, 254, 29,0, FALSE} // 57 expr-cont-no-slash -- , {doNOP, 132, 43,0, TRUE} // 58 -- , {doExprCatOperator, 131, 29,0, FALSE} // 59 -- , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 60 -- , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 61 -- , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 62 -- , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 63 -- , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 64 -- , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 65 -- , {doExprFinished, 255, 255,0, FALSE} // 66 -- , {doNOP, 132, 67,0, TRUE} // 67 tag-open -- , {doStartTagValue, 128, 70,0, FALSE} // 68 -- , {doTagExpectedError, 255, 103,0, FALSE} // 69 -- , {doNOP, 132, 74,0, TRUE} // 70 tag-value -- , {doNOP, 125 /* } */, 74,0, FALSE} // 71 -- , {doTagDigit, 128, 70,0, TRUE} // 72 -- , {doTagExpectedError, 255, 103,0, FALSE} // 73 -- , {doNOP, 132, 74,0, TRUE} // 74 tag-close -- , {doTagValue, 125 /* } */, 77,0, TRUE} // 75 -- , {doTagExpectedError, 255, 103,0, FALSE} // 76 -- , {doExprCatOperator, 254, 29,0, FALSE} // 77 expr-cont-no-tag -- , {doNOP, 132, 77,0, TRUE} // 78 -- , {doExprCatOperator, 131, 29,0, FALSE} // 79 -- , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 80 -- , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 81 -- , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 82 -- , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 83 -- , {doExprCatOperator, 47 /* / */, 55,0, FALSE} // 84 -- , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 85 -- , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 86 -- , {doExprFinished, 255, 255,0, FALSE} // 87 -- , {doStartVariableName, 36 /* $ */, 90,0, TRUE} // 88 scan-var-name -- , {doNOP, 255, 103,0, FALSE} // 89 -- , {doNOP, 130, 92,0, TRUE} // 90 scan-var-start -- , {doVariableNameExpectedErr, 255, 103,0, FALSE} // 91 -- , {doNOP, 129, 92,0, TRUE} // 92 scan-var-body -- , {doEndVariableName, 255, 255,0, FALSE} // 93 -- , {doScanUnicodeSet, 91 /* [ */, 255,0, TRUE} // 94 scan-unicode-set -- , {doScanUnicodeSet, 112 /* p */, 255,0, TRUE} // 95 -- , {doScanUnicodeSet, 80 /* P */, 255,0, TRUE} // 96 -- , {doNOP, 255, 103,0, FALSE} // 97 -- , {doNOP, 132, 98,0, TRUE} // 98 assign-or-rule -- , {doStartAssign, 61 /* = */, 29, 101, TRUE} // 99 -- , {doNOP, 255, 37, 9, FALSE} // 100 -- , {doEndAssign, 59 /* ; */, 1,0, TRUE} // 101 assign-end -- , {doRuleErrorAssignExpr, 255, 103,0, FALSE} // 102 -- , {doExit, 255, 103,0, TRUE} // 103 errorDeath -+ {doNOP, 0, 0, 0, true} -+ , {doExprStart, 254, 29, 9, false} // 1 start -+ , {doNOP, 132, 1,0, true} // 2 -+ , {doNoChain, 94 /* ^ */, 12, 9, true} // 3 -+ , {doExprStart, 36 /* $ */, 88, 98, false} // 4 -+ , {doNOP, 33 /* ! */, 19,0, true} // 5 -+ , {doNOP, 59 /* ; */, 1,0, true} // 6 -+ , {doNOP, 252, 0,0, false} // 7 -+ , {doExprStart, 255, 29, 9, false} // 8 -+ , {doEndOfRule, 59 /* ; */, 1,0, true} // 9 break-rule-end -+ , {doNOP, 132, 9,0, true} // 10 -+ , {doRuleError, 255, 103,0, false} // 11 -+ , {doExprStart, 254, 29,0, false} // 12 start-after-caret -+ , {doNOP, 132, 12,0, true} // 13 -+ , {doRuleError, 94 /* ^ */, 103,0, false} // 14 -+ , {doExprStart, 36 /* $ */, 88, 37, false} // 15 -+ , {doRuleError, 59 /* ; */, 103,0, false} // 16 -+ , {doRuleError, 252, 103,0, false} // 17 -+ , {doExprStart, 255, 29,0, false} // 18 -+ , {doNOP, 33 /* ! */, 21,0, true} // 19 rev-option -+ , {doReverseDir, 255, 28, 9, false} // 20 -+ , {doOptionStart, 130, 23,0, true} // 21 option-scan1 -+ , {doRuleError, 255, 103,0, false} // 22 -+ , {doNOP, 129, 23,0, true} // 23 option-scan2 -+ , {doOptionEnd, 255, 25,0, false} // 24 -+ , {doNOP, 59 /* ; */, 1,0, true} // 25 option-scan3 -+ , {doNOP, 132, 25,0, true} // 26 -+ , {doRuleError, 255, 103,0, false} // 27 -+ , {doExprStart, 255, 29, 9, false} // 28 reverse-rule -+ , {doRuleChar, 254, 38,0, true} // 29 term -+ , {doNOP, 132, 29,0, true} // 30 -+ , {doRuleChar, 131, 38,0, true} // 31 -+ , {doNOP, 91 /* [ */, 94, 38, false} // 32 -+ , {doLParen, 40 /* ( */, 29, 38, true} // 33 -+ , {doNOP, 36 /* $ */, 88, 37, false} // 34 -+ , {doDotAny, 46 /* . */, 38,0, true} // 35 -+ , {doRuleError, 255, 103,0, false} // 36 -+ , {doCheckVarDef, 255, 38,0, false} // 37 term-var-ref -+ , {doNOP, 132, 38,0, true} // 38 expr-mod -+ , {doUnaryOpStar, 42 /* * */, 43,0, true} // 39 -+ , {doUnaryOpPlus, 43 /* + */, 43,0, true} // 40 -+ , {doUnaryOpQuestion, 63 /* ? */, 43,0, true} // 41 -+ , {doNOP, 255, 43,0, false} // 42 -+ , {doExprCatOperator, 254, 29,0, false} // 43 expr-cont -+ , {doNOP, 132, 43,0, true} // 44 -+ , {doExprCatOperator, 131, 29,0, false} // 45 -+ , {doExprCatOperator, 91 /* [ */, 29,0, false} // 46 -+ , {doExprCatOperator, 40 /* ( */, 29,0, false} // 47 -+ , {doExprCatOperator, 36 /* $ */, 29,0, false} // 48 -+ , {doExprCatOperator, 46 /* . */, 29,0, false} // 49 -+ , {doExprCatOperator, 47 /* / */, 55,0, false} // 50 -+ , {doExprCatOperator, 123 /* { */, 67,0, true} // 51 -+ , {doExprOrOperator, 124 /* | */, 29,0, true} // 52 -+ , {doExprRParen, 41 /* ) */, 255,0, true} // 53 -+ , {doExprFinished, 255, 255,0, false} // 54 -+ , {doSlash, 47 /* / */, 57,0, true} // 55 look-ahead -+ , {doNOP, 255, 103,0, false} // 56 -+ , {doExprCatOperator, 254, 29,0, false} // 57 expr-cont-no-slash -+ , {doNOP, 132, 43,0, true} // 58 -+ , {doExprCatOperator, 131, 29,0, false} // 59 -+ , {doExprCatOperator, 91 /* [ */, 29,0, false} // 60 -+ , {doExprCatOperator, 40 /* ( */, 29,0, false} // 61 -+ , {doExprCatOperator, 36 /* $ */, 29,0, false} // 62 -+ , {doExprCatOperator, 46 /* . */, 29,0, false} // 63 -+ , {doExprOrOperator, 124 /* | */, 29,0, true} // 64 -+ , {doExprRParen, 41 /* ) */, 255,0, true} // 65 -+ , {doExprFinished, 255, 255,0, false} // 66 -+ , {doNOP, 132, 67,0, true} // 67 tag-open -+ , {doStartTagValue, 128, 70,0, false} // 68 -+ , {doTagExpectedError, 255, 103,0, false} // 69 -+ , {doNOP, 132, 74,0, true} // 70 tag-value -+ , {doNOP, 125 /* } */, 74,0, false} // 71 -+ , {doTagDigit, 128, 70,0, true} // 72 -+ , {doTagExpectedError, 255, 103,0, false} // 73 -+ , {doNOP, 132, 74,0, true} // 74 tag-close -+ , {doTagValue, 125 /* } */, 77,0, true} // 75 -+ , {doTagExpectedError, 255, 103,0, false} // 76 -+ , {doExprCatOperator, 254, 29,0, false} // 77 expr-cont-no-tag -+ , {doNOP, 132, 77,0, true} // 78 -+ , {doExprCatOperator, 131, 29,0, false} // 79 -+ , {doExprCatOperator, 91 /* [ */, 29,0, false} // 80 -+ , {doExprCatOperator, 40 /* ( */, 29,0, false} // 81 -+ , {doExprCatOperator, 36 /* $ */, 29,0, false} // 82 -+ , {doExprCatOperator, 46 /* . */, 29,0, false} // 83 -+ , {doExprCatOperator, 47 /* / */, 55,0, false} // 84 -+ , {doExprOrOperator, 124 /* | */, 29,0, true} // 85 -+ , {doExprRParen, 41 /* ) */, 255,0, true} // 86 -+ , {doExprFinished, 255, 255,0, false} // 87 -+ , {doStartVariableName, 36 /* $ */, 90,0, true} // 88 scan-var-name -+ , {doNOP, 255, 103,0, false} // 89 -+ , {doNOP, 130, 92,0, true} // 90 scan-var-start -+ , {doVariableNameExpectedErr, 255, 103,0, false} // 91 -+ , {doNOP, 129, 92,0, true} // 92 scan-var-body -+ , {doEndVariableName, 255, 255,0, false} // 93 -+ , {doScanUnicodeSet, 91 /* [ */, 255,0, true} // 94 scan-unicode-set -+ , {doScanUnicodeSet, 112 /* p */, 255,0, true} // 95 -+ , {doScanUnicodeSet, 80 /* P */, 255,0, true} // 96 -+ , {doNOP, 255, 103,0, false} // 97 -+ , {doNOP, 132, 98,0, true} // 98 assign-or-rule -+ , {doStartAssign, 61 /* = */, 29, 101, true} // 99 -+ , {doNOP, 255, 37, 9, false} // 100 -+ , {doEndAssign, 59 /* ; */, 1,0, true} // 101 assign-end -+ , {doRuleErrorAssignExpr, 255, 103,0, false} // 102 -+ , {doExit, 255, 103,0, true} // 103 errorDeath - }; - #ifdef RBBI_DEBUG - static const char * const RBBIRuleStateNames[] = { 0, -diff --git a/deps/icu-small/source/common/rbbiscan.cpp b/deps/icu-small/source/common/rbbiscan.cpp -index 1304f7e37e..92cf77664f 100644 ---- a/deps/icu-small/source/common/rbbiscan.cpp -+++ b/deps/icu-small/source/common/rbbiscan.cpp -@@ -92,7 +92,7 @@ RBBIRuleScanner::RBBIRuleScanner(RBBIRuleBuilder *rb) - fRB = rb; - fScanIndex = 0; - fNextIndex = 0; -- fQuoteMode = FALSE; -+ fQuoteMode = false; - fLineNum = 1; - fCharNum = 0; - fLastChar = 0; -@@ -103,9 +103,9 @@ RBBIRuleScanner::RBBIRuleScanner(RBBIRuleBuilder *rb) - fNodeStack[0] = NULL; - fNodeStackPtr = 0; - -- fReverseRule = FALSE; -- fLookAheadRule = FALSE; -- fNoChainInRule = FALSE; -+ fReverseRule = false; -+ fLookAheadRule = false; -+ fNoChainInRule = false; - - fSymbolTable = NULL; - fSetTable = NULL; -@@ -201,7 +201,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - { - RBBINode *n = NULL; - -- UBool returnVal = TRUE; -+ UBool returnVal = true; - - switch (action) { - -@@ -213,7 +213,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - - case doNoChain: - // Scanned a '^' while on the rule start state. -- fNoChainInRule = TRUE; -+ fNoChainInRule = true; - break; - - -@@ -345,7 +345,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - catNode->fRightChild = endNode; - fNodeStack[fNodeStackPtr] = catNode; - endNode->fVal = fRuleNum; -- endNode->fLookAheadEnd = TRUE; -+ endNode->fLookAheadEnd = true; - thisRule = catNode; - - // TODO: Disable chaining out of look-ahead (hard break) rules. -@@ -354,13 +354,13 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - } - - // Mark this node as being the root of a rule. -- thisRule->fRuleRoot = TRUE; -+ thisRule->fRuleRoot = true; - - // Flag if chaining into this rule is wanted. - // - if (fRB->fChainRules && // If rule chaining is enabled globally via !!chain - !fNoChainInRule) { // and no '^' chain-in inhibit was on this rule -- thisRule->fChainIn = TRUE; -+ thisRule->fChainIn = true; - } - - -@@ -398,9 +398,9 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - // Just move its parse tree from the stack to *destRules. - *destRules = fNodeStack[fNodeStackPtr]; - } -- fReverseRule = FALSE; // in preparation for the next rule. -- fLookAheadRule = FALSE; -- fNoChainInRule = FALSE; -+ fReverseRule = false; // in preparation for the next rule. -+ fLookAheadRule = false; -+ fNoChainInRule = false; - fNodeStackPtr = 0; - } - break; -@@ -408,7 +408,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - - case doRuleError: - error(U_BRK_RULE_SYNTAX); -- returnVal = FALSE; -+ returnVal = false; - break; - - -@@ -484,7 +484,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - if (U_FAILURE(*fRB->fStatus)) { - break; - } -- findSetFor(UnicodeString(TRUE, kAny, 3), n); -+ findSetFor(UnicodeString(true, kAny, 3), n); - n->fFirstPos = fScanIndex; - n->fLastPos = fNextIndex; - fRB->fRules.extractBetween(n->fFirstPos, n->fLastPos, n->fText); -@@ -501,7 +501,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - n->fFirstPos = fScanIndex; - n->fLastPos = fNextIndex; - fRB->fRules.extractBetween(n->fFirstPos, n->fLastPos, n->fText); -- fLookAheadRule = TRUE; -+ fLookAheadRule = true; - break; - - -@@ -534,7 +534,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - - case doTagExpectedError: - error(U_BRK_MALFORMED_RULE_TAG); -- returnVal = FALSE; -+ returnVal = false; - break; - - case doOptionStart: -@@ -546,9 +546,9 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - { - UnicodeString opt(fRB->fRules, fOptionStart, fScanIndex-fOptionStart); - if (opt == UNICODE_STRING("chain", 5)) { -- fRB->fChainRules = TRUE; -+ fRB->fChainRules = true; - } else if (opt == UNICODE_STRING("LBCMNoChain", 11)) { -- fRB->fLBCMNoChain = TRUE; -+ fRB->fLBCMNoChain = true; - } else if (opt == UNICODE_STRING("forward", 7)) { - fRB->fDefaultTree = &fRB->fForwardTree; - } else if (opt == UNICODE_STRING("reverse", 7)) { -@@ -558,7 +558,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - } else if (opt == UNICODE_STRING("safe_reverse", 12)) { - fRB->fDefaultTree = &fRB->fSafeRevTree; - } else if (opt == UNICODE_STRING("lookAheadHardBreak", 18)) { -- fRB->fLookAheadHardBreak = TRUE; -+ fRB->fLookAheadHardBreak = true; - } else if (opt == UNICODE_STRING("quoted_literals_only", 20)) { - fRuleSets[kRuleSet_rule_char-128].clear(); - } else if (opt == UNICODE_STRING("unquoted_literals", 17)) { -@@ -570,7 +570,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - break; - - case doReverseDir: -- fReverseRule = TRUE; -+ fReverseRule = true; - break; - - case doStartVariableName: -@@ -600,7 +600,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - n = fNodeStack[fNodeStackPtr]; - if (n->fLeftChild == NULL) { - error(U_BRK_UNDEFINED_VARIABLE); -- returnVal = FALSE; -+ returnVal = false; - } - break; - -@@ -609,11 +609,11 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - - case doRuleErrorAssignExpr: - error(U_BRK_ASSIGN_ERROR); -- returnVal = FALSE; -+ returnVal = false; - break; - - case doExit: -- returnVal = FALSE; -+ returnVal = false; - break; - - case doScanUnicodeSet: -@@ -622,7 +622,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) - - default: - error(U_BRK_INTERNAL_ERROR); -- returnVal = FALSE; -+ returnVal = false; - break; - } - return returnVal && U_SUCCESS(*fRB->fStatus); -@@ -872,7 +872,7 @@ UChar32 RBBIRuleScanner::nextCharLL() { - fCharNum=0; - if (fQuoteMode) { - error(U_BRK_NEW_LINE_IN_QUOTED_STRING); -- fQuoteMode = FALSE; -+ fQuoteMode = false; - } - } - else { -@@ -901,7 +901,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) { - - fScanIndex = fNextIndex; - c.fChar = nextCharLL(); -- c.fEscaped = FALSE; -+ c.fEscaped = false; - - // - // check for '' sequence. -@@ -910,7 +910,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) { - if (c.fChar == chApos) { - if (fRB->fRules.char32At(fNextIndex) == chApos) { - c.fChar = nextCharLL(); // get nextChar officially so character counts -- c.fEscaped = TRUE; // stay correct. -+ c.fEscaped = true; // stay correct. - } - else - { -@@ -918,18 +918,18 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) { - // Toggle quoting mode. - // Return either '(' or ')', because quotes cause a grouping of the quoted text. - fQuoteMode = !fQuoteMode; -- if (fQuoteMode == TRUE) { -+ if (fQuoteMode == true) { - c.fChar = chLParen; - } else { - c.fChar = chRParen; - } -- c.fEscaped = FALSE; // The paren that we return is not escaped. -+ c.fEscaped = false; // The paren that we return is not escaped. - return; - } - } - - if (fQuoteMode) { -- c.fEscaped = TRUE; -+ c.fEscaped = true; - } - else - { -@@ -963,7 +963,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) { - // Use UnicodeString::unescapeAt() to handle them. - // - if (c.fChar == chBackSlash) { -- c.fEscaped = TRUE; -+ c.fEscaped = true; - int32_t startX = fNextIndex; - c.fChar = fRB->fRules.unescapeAt(fNextIndex); - if (fNextIndex == startX) { -@@ -1032,7 +1032,7 @@ void RBBIRuleScanner::parse() { - #ifdef RBBI_DEBUG - if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "scan")) { RBBIDebugPrintf("."); fflush(stdout);} - #endif -- if (tableEl->fCharClass < 127 && fC.fEscaped == FALSE && tableEl->fCharClass == fC.fChar) { -+ if (tableEl->fCharClass < 127 && fC.fEscaped == false && tableEl->fCharClass == fC.fChar) { - // Table row specified an individual character, not a set, and - // the input character is not escaped, and - // the input character matched it. -@@ -1057,7 +1057,7 @@ void RBBIRuleScanner::parse() { - } - - if (tableEl->fCharClass >= 128 && tableEl->fCharClass < 240 && // Table specs a char class && -- fC.fEscaped == FALSE && // char is not escaped && -+ fC.fEscaped == false && // char is not escaped && - fC.fChar != (UChar32)-1) { // char is not EOF - U_ASSERT((tableEl->fCharClass-128) < UPRV_LENGTHOF(fRuleSets)); - if (fRuleSets[tableEl->fCharClass-128].contains(fC.fChar)) { -@@ -1076,7 +1076,7 @@ void RBBIRuleScanner::parse() { - // We've found the row of the state table that matches the current input - // character from the rules string. - // Perform any action specified by this row in the state table. -- if (doParseActions((int32_t)tableEl->fAction) == FALSE) { -+ if (doParseActions((int32_t)tableEl->fAction) == false) { - // Break out of the state machine loop if the - // the action signalled some kind of error, or - // the action was to exit, occurs on normal end-of-rules-input. -@@ -1133,13 +1133,13 @@ void RBBIRuleScanner::parse() { - if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "symbols")) {fSymbolTable->rbbiSymtablePrint();} - if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "ptree")) { - RBBIDebugPrintf("Completed Forward Rules Parse Tree...\n"); -- RBBINode::printTree(fRB->fForwardTree, TRUE); -+ RBBINode::printTree(fRB->fForwardTree, true); - RBBIDebugPrintf("\nCompleted Reverse Rules Parse Tree...\n"); -- RBBINode::printTree(fRB->fReverseTree, TRUE); -+ RBBINode::printTree(fRB->fReverseTree, true); - RBBIDebugPrintf("\nCompleted Safe Point Forward Rules Parse Tree...\n"); -- RBBINode::printTree(fRB->fSafeFwdTree, TRUE); -+ RBBINode::printTree(fRB->fSafeFwdTree, true); - RBBIDebugPrintf("\nCompleted Safe Point Reverse Rules Parse Tree...\n"); -- RBBINode::printTree(fRB->fSafeRevTree, TRUE); -+ RBBINode::printTree(fRB->fSafeRevTree, true); - } - #endif - } -@@ -1154,7 +1154,7 @@ void RBBIRuleScanner::parse() { - void RBBIRuleScanner::printNodeStack(const char *title) { - int i; - RBBIDebugPrintf("%s. Dumping node stack...\n", title); -- for (i=fNodeStackPtr; i>0; i--) {RBBINode::printTree(fNodeStack[i], TRUE);} -+ for (i=fNodeStackPtr; i>0; i--) {RBBINode::printTree(fNodeStack[i], true);} - } - #endif - -diff --git a/deps/icu-small/source/common/rbbiscan.h b/deps/icu-small/source/common/rbbiscan.h -index 33fdf03354..bf3203880b 100644 ---- a/deps/icu-small/source/common/rbbiscan.h -+++ b/deps/icu-small/source/common/rbbiscan.h -@@ -158,8 +158,8 @@ private: - UnicodeSet *gRuleSet_name_char; - UnicodeSet *gRuleSet_name_start_char; - -- RBBIRuleScanner(const RBBIRuleScanner &other); // forbid copying of this class -- RBBIRuleScanner &operator=(const RBBIRuleScanner &other); // forbid copying of this class -+ RBBIRuleScanner(const RBBIRuleScanner &other) = delete; // forbid copying of this class -+ RBBIRuleScanner &operator=(const RBBIRuleScanner &other) = delete; // forbid copying of this class - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/rbbisetb.cpp b/deps/icu-small/source/common/rbbisetb.cpp -index 29faeb8c45..11c47156d6 100644 ---- a/deps/icu-small/source/common/rbbisetb.cpp -+++ b/deps/icu-small/source/common/rbbisetb.cpp -@@ -261,7 +261,7 @@ void RBBISetBuilder::buildRanges() { - } - if (inputSet->contains(bofString)) { - addValToSet(usetNode, 2); -- fSawBOF = TRUE; -+ fSawBOF = true; - } - } - -@@ -569,7 +569,7 @@ void RBBISetBuilder::printSets() { - RBBI_DEBUG_printUnicodeString(usetNode->fText); - RBBIDebugPrintf("\n"); - if (usetNode->fLeftChild != NULL) { -- RBBINode::printTree(usetNode->fLeftChild, TRUE); -+ RBBINode::printTree(usetNode->fLeftChild, true); - } - } - RBBIDebugPrintf("\n"); -diff --git a/deps/icu-small/source/common/rbbisetb.h b/deps/icu-small/source/common/rbbisetb.h -index 6409a4ea57..cd09d3317a 100644 ---- a/deps/icu-small/source/common/rbbisetb.h -+++ b/deps/icu-small/source/common/rbbisetb.h -@@ -134,8 +134,8 @@ private: - - UBool fSawBOF; - -- RBBISetBuilder(const RBBISetBuilder &other); // forbid copying of this class -- RBBISetBuilder &operator=(const RBBISetBuilder &other); // forbid copying of this class -+ RBBISetBuilder(const RBBISetBuilder &other) = delete; // forbid copying of this class -+ RBBISetBuilder &operator=(const RBBISetBuilder &other) = delete; // forbid copying of this class - }; - - -diff --git a/deps/icu-small/source/common/rbbistbl.cpp b/deps/icu-small/source/common/rbbistbl.cpp -index 627ec1827c..554aeb793f 100644 ---- a/deps/icu-small/source/common/rbbistbl.cpp -+++ b/deps/icu-small/source/common/rbbistbl.cpp -@@ -254,8 +254,8 @@ void RBBISymbolTable::rbbiSymtablePrint() const { - } - RBBISymbolTableEntry *s = (RBBISymbolTableEntry *)e->value.pointer; - RBBIDebugPrintf("%s\n", CStr(s->key)()); -- RBBINode::printTree(s->val, TRUE); -- RBBINode::printTree(s->val->fLeftChild, FALSE); -+ RBBINode::printTree(s->val, true); -+ RBBINode::printTree(s->val->fLeftChild, false); - RBBIDebugPrintf("\n"); - } - } -diff --git a/deps/icu-small/source/common/rbbitblb.cpp b/deps/icu-small/source/common/rbbitblb.cpp -index a495f17a87..0e3ec7999f 100644 ---- a/deps/icu-small/source/common/rbbitblb.cpp -+++ b/deps/icu-small/source/common/rbbitblb.cpp -@@ -85,7 +85,7 @@ void RBBITableBuilder::buildForwardTable() { - #ifdef RBBI_DEBUG - if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "ftree")) { - RBBIDebugPuts("\nParse tree after flattening variable references."); -- RBBINode::printTree(fTree, TRUE); -+ RBBINode::printTree(fTree, true); - } - #endif - -@@ -143,7 +143,7 @@ void RBBITableBuilder::buildForwardTable() { - #ifdef RBBI_DEBUG - if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "stree")) { - RBBIDebugPuts("\nParse tree after flattening Unicode Set references."); -- RBBINode::printTree(fTree, TRUE); -+ RBBINode::printTree(fTree, true); - } - #endif - -@@ -209,14 +209,14 @@ void RBBITableBuilder::calcNullable(RBBINode *n) { - if (n->fType == RBBINode::setRef || - n->fType == RBBINode::endMark ) { - // These are non-empty leaf node types. -- n->fNullable = FALSE; -+ n->fNullable = false; - return; - } - - if (n->fType == RBBINode::lookAhead || n->fType == RBBINode::tag) { - // Lookahead marker node. It's a leaf, so no recursion on children. - // It's nullable because it does not match any literal text from the input stream. -- n->fNullable = TRUE; -+ n->fNullable = true; - return; - } - -@@ -234,10 +234,10 @@ void RBBITableBuilder::calcNullable(RBBINode *n) { - n->fNullable = n->fLeftChild->fNullable && n->fRightChild->fNullable; - } - else if (n->fType == RBBINode::opStar || n->fType == RBBINode::opQuestion) { -- n->fNullable = TRUE; -+ n->fNullable = true; - } - else { -- n->fNullable = FALSE; -+ n->fNullable = false; - } - } - -@@ -618,7 +618,7 @@ void RBBITableBuilder::buildStateTable() { - for (tx=1; txsize(); tx++) { - RBBIStateDescriptor *temp; - temp = (RBBIStateDescriptor *)fDStates->elementAt(tx); -- if (temp->fMarked == FALSE) { -+ if (temp->fMarked == false) { - T = temp; - break; - } -@@ -628,7 +628,7 @@ void RBBITableBuilder::buildStateTable() { - } - - // mark T; -- T->fMarked = TRUE; -+ T->fMarked = true; - - // for each input symbol a do begin - int32_t a; -@@ -655,7 +655,7 @@ void RBBITableBuilder::buildStateTable() { - - // if U is not empty and not in DStates then - int32_t ux = 0; -- UBool UinDstates = FALSE; -+ UBool UinDstates = false; - if (U != NULL) { - U_ASSERT(U->size() > 0); - int ix; -@@ -666,7 +666,7 @@ void RBBITableBuilder::buildStateTable() { - delete U; - U = temp2->fPositions; - ux = ix; -- UinDstates = TRUE; -+ UinDstates = true; - break; - } - } -@@ -1131,7 +1131,7 @@ void RBBITableBuilder::printPosSets(RBBINode *n) { - printf("\n"); - RBBINode::printNodeHeader(); - RBBINode::printNode(n); -- RBBIDebugPrintf(" Nullable: %s\n", n->fNullable?"TRUE":"FALSE"); -+ RBBIDebugPrintf(" Nullable: %s\n", n->fNullable?"true":"false"); - - RBBIDebugPrintf(" firstpos: "); - printSet(n->fFirstPosSet); -@@ -1773,7 +1773,7 @@ void RBBITableBuilder::printRuleStatusTable() { - //----------------------------------------------------------------------------- - - RBBIStateDescriptor::RBBIStateDescriptor(int lastInputSymbol, UErrorCode *fStatus) { -- fMarked = FALSE; -+ fMarked = false; - fAccepting = 0; - fLookAhead = 0; - fTagsIdx = 0; -diff --git a/deps/icu-small/source/common/rbbitblb.h b/deps/icu-small/source/common/rbbitblb.h -index 38607a819a..2ac66da11f 100644 ---- a/deps/icu-small/source/common/rbbitblb.h -+++ b/deps/icu-small/source/common/rbbitblb.h -@@ -219,8 +219,8 @@ public: - ~RBBIStateDescriptor(); - - private: -- RBBIStateDescriptor(const RBBIStateDescriptor &other); // forbid copying of this class -- RBBIStateDescriptor &operator=(const RBBIStateDescriptor &other); // forbid copying of this class -+ RBBIStateDescriptor(const RBBIStateDescriptor &other) = delete; // forbid copying of this class -+ RBBIStateDescriptor &operator=(const RBBIStateDescriptor &other) = delete; // forbid copying of this class - }; - - -diff --git a/deps/icu-small/source/common/resbund.cpp b/deps/icu-small/source/common/resbund.cpp -index 47c0fe1c6e..8591a625f9 100644 ---- a/deps/icu-small/source/common/resbund.cpp -+++ b/deps/icu-small/source/common/resbund.cpp -@@ -254,7 +254,7 @@ ResourceBundle::clone() const { - UnicodeString ResourceBundle::getString(UErrorCode& status) const { - int32_t len = 0; - const UChar *r = ures_getString(fResource, &len, &status); -- return UnicodeString(TRUE, r, len); -+ return UnicodeString(true, r, len); - } - - const uint8_t *ResourceBundle::getBinary(int32_t& len, UErrorCode& status) const { -@@ -312,13 +312,13 @@ ResourceBundle ResourceBundle::getNext(UErrorCode& status) { - UnicodeString ResourceBundle::getNextString(UErrorCode& status) { - int32_t len = 0; - const UChar* r = ures_getNextString(fResource, &len, 0, &status); -- return UnicodeString(TRUE, r, len); -+ return UnicodeString(true, r, len); - } - - UnicodeString ResourceBundle::getNextString(const char ** key, UErrorCode& status) { - int32_t len = 0; - const UChar* r = ures_getNextString(fResource, &len, key, &status); -- return UnicodeString(TRUE, r, len); -+ return UnicodeString(true, r, len); - } - - ResourceBundle ResourceBundle::get(int32_t indexR, UErrorCode& status) const { -@@ -336,7 +336,7 @@ ResourceBundle ResourceBundle::get(int32_t indexR, UErrorCode& status) const { - UnicodeString ResourceBundle::getStringEx(int32_t indexS, UErrorCode& status) const { - int32_t len = 0; - const UChar* r = ures_getStringByIndex(fResource, indexS, &len, &status); -- return UnicodeString(TRUE, r, len); -+ return UnicodeString(true, r, len); - } - - ResourceBundle ResourceBundle::get(const char* key, UErrorCode& status) const { -@@ -364,7 +364,7 @@ ResourceBundle ResourceBundle::getWithFallback(const char* key, UErrorCode& stat - UnicodeString ResourceBundle::getStringEx(const char* key, UErrorCode& status) const { - int32_t len = 0; - const UChar* r = ures_getStringByKey(fResource, key, &len, &status); -- return UnicodeString(TRUE, r, len); -+ return UnicodeString(true, r, len); - } - - const char* -diff --git a/deps/icu-small/source/common/resource.h b/deps/icu-small/source/common/resource.h -index 48f5b9fa6e..1483f7d6bc 100644 ---- a/deps/icu-small/source/common/resource.h -+++ b/deps/icu-small/source/common/resource.h -@@ -286,8 +286,8 @@ public: - UErrorCode &errorCode) = 0; - - private: -- ResourceSink(const ResourceSink &); // no copy constructor -- ResourceSink &operator=(const ResourceSink &); // no assignment operator -+ ResourceSink(const ResourceSink &) = delete; // no copy constructor -+ ResourceSink &operator=(const ResourceSink &) = delete; // no assignment operator - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/ruleiter.cpp b/deps/icu-small/source/common/ruleiter.cpp -index 41eea23c0d..33ffd3d833 100644 ---- a/deps/icu-small/source/common/ruleiter.cpp -+++ b/deps/icu-small/source/common/ruleiter.cpp -@@ -39,7 +39,7 @@ UChar32 RuleCharacterIterator::next(int32_t options, UBool& isEscaped, UErrorCod - if (U_FAILURE(ec)) return DONE; - - UChar32 c = DONE; -- isEscaped = FALSE; -+ isEscaped = false; - - for (;;) { - c = _current(); -@@ -75,7 +75,7 @@ UChar32 RuleCharacterIterator::next(int32_t options, UBool& isEscaped, UErrorCod - int32_t offset = 0; - c = lookahead(tempEscape, MAX_U_NOTATION_LEN).unescapeAt(offset); - jumpahead(offset); -- isEscaped = TRUE; -+ isEscaped = true; - if (c < 0) { - ec = U_MALFORMED_UNICODE_ESCAPE; - return DONE; -diff --git a/deps/icu-small/source/common/ruleiter.h b/deps/icu-small/source/common/ruleiter.h -index 09af129784..41731407da 100644 ---- a/deps/icu-small/source/common/ruleiter.h -+++ b/deps/icu-small/source/common/ruleiter.h -@@ -66,28 +66,28 @@ public: - /** - * Value returned when there are no more characters to iterate. - */ -- enum { DONE = -1 }; -+ static constexpr int32_t DONE = -1; - - /** - * Bitmask option to enable parsing of variable names. If (options & - * PARSE_VARIABLES) != 0, then an embedded variable will be expanded to - * its value. Variables are parsed using the SymbolTable API. - */ -- enum { PARSE_VARIABLES = 1 }; -+ static constexpr int32_t PARSE_VARIABLES = 1; - - /** - * Bitmask option to enable parsing of escape sequences. If (options & - * PARSE_ESCAPES) != 0, then an embedded escape sequence will be expanded - * to its value. Escapes are parsed using Utility.unescapeAt(). - */ -- enum { PARSE_ESCAPES = 2 }; -+ static constexpr int32_t PARSE_ESCAPES = 2; - - /** - * Bitmask option to enable skipping of whitespace. If (options & - * SKIP_WHITESPACE) != 0, then Pattern_White_Space characters will be silently - * skipped, as if they were not present in the input. - */ -- enum { SKIP_WHITESPACE = 4 }; -+ static constexpr int32_t SKIP_WHITESPACE = 4; - - /** - * Constructs an iterator over the given text, starting at the given -diff --git a/deps/icu-small/source/common/serv.cpp b/deps/icu-small/source/common/serv.cpp -index c26dbca1a9..9d8c04149c 100644 ---- a/deps/icu-small/source/common/serv.cpp -+++ b/deps/icu-small/source/common/serv.cpp -@@ -64,7 +64,7 @@ ICUServiceKey::currentDescriptor(UnicodeString& result) const - UBool - ICUServiceKey::fallback() - { -- return FALSE; -+ return false; - } - - UBool -@@ -249,7 +249,7 @@ public: - } - - /** -- * Return TRUE if there is at least one reference to this and the -+ * Return true if there is at least one reference to this and the - * resource has not been released. - */ - UBool isShared() const { -@@ -454,11 +454,11 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer - - UnicodeString currentDescriptor; - LocalPointer cacheDescriptorList; -- UBool putInCache = FALSE; -+ UBool putInCache = false; - - int32_t startIndex = 0; - int32_t limit = factories->size(); -- UBool cacheResult = TRUE; -+ UBool cacheResult = true; - - if (factory != NULL) { - for (int32_t i = 0; i < limit; ++i) { -@@ -472,7 +472,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer - status = U_ILLEGAL_ARGUMENT_ERROR; - return NULL; - } -- cacheResult = FALSE; -+ cacheResult = false; - } - - do { -@@ -486,7 +486,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer - // first test of cache failed, so we'll have to update - // the cache if we eventually succeed-- that is, if we're - // going to update the cache at all. -- putInCache = TRUE; -+ putInCache = true; - - int32_t index = startIndex; - while (index < limit) { -@@ -796,7 +796,7 @@ ICUService::getDisplayNames(UVector& result, - URegistryKey - ICUService::registerInstance(UObject* objToAdopt, const UnicodeString& id, UErrorCode& status) - { -- return registerInstance(objToAdopt, id, TRUE, status); -+ return registerInstance(objToAdopt, id, true, status); - } - - URegistryKey -@@ -864,13 +864,13 @@ UBool - ICUService::unregister(URegistryKey rkey, UErrorCode& status) - { - ICUServiceFactory *factory = (ICUServiceFactory*)rkey; -- UBool result = FALSE; -+ UBool result = false; - if (factory != NULL && factories != NULL) { - Mutex mutex(&lock); - - if (factories->removeElement(factory)) { - clearCaches(); -- result = TRUE; -+ result = true; - } else { - status = U_ILLEGAL_ARGUMENT_ERROR; - delete factory; -diff --git a/deps/icu-small/source/common/servlk.cpp b/deps/icu-small/source/common/servlk.cpp -index 538982ca36..7021806659 100644 ---- a/deps/icu-small/source/common/servlk.cpp -+++ b/deps/icu-small/source/common/servlk.cpp -@@ -126,24 +126,24 @@ LocaleKey::fallback() { - int x = _currentID.lastIndexOf(UNDERSCORE_CHAR); - if (x != -1) { - _currentID.remove(x); // truncate current or fallback, whichever we're pointing to -- return TRUE; -+ return true; - } - - if (!_fallbackID.isBogus()) { - _currentID = _fallbackID; - _fallbackID.setToBogus(); -- return TRUE; -+ return true; - } - - if (_currentID.length() > 0) { - _currentID.remove(0); // completely truncate -- return TRUE; -+ return true; - } - - _currentID.setToBogus(); - } - -- return FALSE; -+ return false; - } - - UBool -diff --git a/deps/icu-small/source/common/servlkf.cpp b/deps/icu-small/source/common/servlkf.cpp -index 84f2347cdd..7ccb0c72aa 100644 ---- a/deps/icu-small/source/common/servlkf.cpp -+++ b/deps/icu-small/source/common/servlkf.cpp -@@ -65,7 +65,7 @@ LocaleKeyFactory::handlesKey(const ICUServiceKey& key, UErrorCode& status) const - key.currentID(id); - return supported->get(id) != NULL; - } -- return FALSE; -+ return false; - } - - void -diff --git a/deps/icu-small/source/common/servls.cpp b/deps/icu-small/source/common/servls.cpp -index 98f0a8a12b..19481122ef 100644 ---- a/deps/icu-small/source/common/servls.cpp -+++ b/deps/icu-small/source/common/servls.cpp -@@ -215,11 +215,11 @@ public: - UBool upToDate(UErrorCode& status) const { - if (U_SUCCESS(status)) { - if (_timestamp == _service->getTimestamp()) { -- return TRUE; -+ return true; - } - status = U_ENUM_OUT_OF_SYNC_ERROR; - } -- return FALSE; -+ return false; - } - - virtual int32_t count(UErrorCode& status) const override { -diff --git a/deps/icu-small/source/common/sharedobject.h b/deps/icu-small/source/common/sharedobject.h -index 6ccfb27b01..6298662bba 100644 ---- a/deps/icu-small/source/common/sharedobject.h -+++ b/deps/icu-small/source/common/sharedobject.h -@@ -38,8 +38,8 @@ public: - - virtual ~UnifiedCacheBase(); - private: -- UnifiedCacheBase(const UnifiedCacheBase &); -- UnifiedCacheBase &operator=(const UnifiedCacheBase &); -+ UnifiedCacheBase(const UnifiedCacheBase &) = delete; -+ UnifiedCacheBase &operator=(const UnifiedCacheBase &) = delete; - }; - - /** -diff --git a/deps/icu-small/source/common/simpleformatter.cpp b/deps/icu-small/source/common/simpleformatter.cpp -index f7f7aead61..01d3024cfc 100644 ---- a/deps/icu-small/source/common/simpleformatter.cpp -+++ b/deps/icu-small/source/common/simpleformatter.cpp -@@ -65,7 +65,7 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( - int32_t min, int32_t max, - UErrorCode &errorCode) { - if (U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - // Parse consistent with MessagePattern, but - // - support only simple numbered arguments -@@ -76,7 +76,7 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( - compiledPattern.setTo((UChar)0); - int32_t textLength = 0; - int32_t maxArg = -1; -- UBool inQuote = FALSE; -+ UBool inQuote = false; - for (int32_t i = 0; i < patternLength;) { - UChar c = patternBuffer[i++]; - if (c == APOS) { -@@ -85,12 +85,12 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( - ++i; - } else if (inQuote) { - // skip the quote-ending apostrophe -- inQuote = FALSE; -+ inQuote = false; - continue; - } else if (c == OPEN_BRACE || c == CLOSE_BRACE) { - // Skip the quote-starting apostrophe, find the end of the quoted literal text. - ++i; -- inQuote = TRUE; -+ inQuote = true; - } else { - // The apostrophe is part of literal text. - c = APOS; -@@ -123,7 +123,7 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( - } - if (argNumber < 0 || c != CLOSE_BRACE) { - errorCode = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - } - if (argNumber > maxArg) { -@@ -149,10 +149,10 @@ UBool SimpleFormatter::applyPatternMinMaxArguments( - int32_t argCount = maxArg + 1; - if (argCount < min || max < argCount) { - errorCode = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - compiledPattern.setCharAt(0, (UChar)argCount); -- return TRUE; -+ return true; - } - - UnicodeString& SimpleFormatter::format( -@@ -192,7 +192,7 @@ UnicodeString& SimpleFormatter::formatAndAppend( - return appendTo; - } - return format(compiledPattern.getBuffer(), compiledPattern.length(), values, -- appendTo, NULL, TRUE, -+ appendTo, NULL, true, - offsets, offsetsLength, errorCode); - } - -@@ -241,7 +241,7 @@ UnicodeString &SimpleFormatter::formatAndReplace( - result.remove(); - } - return format(cp, cpLength, values, -- result, &resultCopy, FALSE, -+ result, &resultCopy, false, - offsets, offsetsLength, errorCode); - } - -diff --git a/deps/icu-small/source/common/static_unicode_sets.cpp b/deps/icu-small/source/common/static_unicode_sets.cpp -index 5dab3931a7..db9432f49a 100644 ---- a/deps/icu-small/source/common/static_unicode_sets.cpp -+++ b/deps/icu-small/source/common/static_unicode_sets.cpp -@@ -31,7 +31,7 @@ alignas(UnicodeSet) - char gEmptyUnicodeSet[sizeof(UnicodeSet)]; - - // Whether the gEmptyUnicodeSet is initialized and ready to use. --UBool gEmptyUnicodeSetInitialized = FALSE; -+UBool gEmptyUnicodeSetInitialized = false; - - inline UnicodeSet* getImpl(Key key) { - UnicodeSet* candidate = gUnicodeSets[key]; -@@ -118,7 +118,7 @@ class ParseDataSink : public ResourceSink { - } else { - // Unknown class of parse lenients - // TODO(ICU-20428): Make ICU automatically accept new classes? -- U_ASSERT(FALSE); -+ U_ASSERT(false); - } - if (U_FAILURE(status)) { return; } - } -@@ -129,19 +129,19 @@ class ParseDataSink : public ResourceSink { - }; - - --icu::UInitOnce gNumberParseUniSetsInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce gNumberParseUniSetsInitOnce {}; - - UBool U_CALLCONV cleanupNumberParseUniSets() { - if (gEmptyUnicodeSetInitialized) { - reinterpret_cast(gEmptyUnicodeSet)->~UnicodeSet(); -- gEmptyUnicodeSetInitialized = FALSE; -+ gEmptyUnicodeSetInitialized = false; - } - for (int32_t i = 0; i < UNISETS_KEY_COUNT; i++) { - delete gUnicodeSets[i]; - gUnicodeSets[i] = nullptr; - } - gNumberParseUniSetsInitOnce.reset(); -- return TRUE; -+ return true; - } - - void U_CALLCONV initNumberParseUniSets(UErrorCode& status) { -@@ -150,7 +150,7 @@ void U_CALLCONV initNumberParseUniSets(UErrorCode& status) { - // Initialize the empty instance for well-defined fallback behavior - new(gEmptyUnicodeSet) UnicodeSet(); - reinterpret_cast(gEmptyUnicodeSet)->freeze(); -- gEmptyUnicodeSetInitialized = TRUE; -+ gEmptyUnicodeSetInitialized = true; - - // These sets were decided after discussion with icu-design@. See tickets #13084 and #13309. - // Zs+TAB is "horizontal whitespace" according to UTS #18 (blank property). -diff --git a/deps/icu-small/source/common/stringtriebuilder.cpp b/deps/icu-small/source/common/stringtriebuilder.cpp -index 4d52a88af7..e6670d1cb7 100644 ---- a/deps/icu-small/source/common/stringtriebuilder.cpp -+++ b/deps/icu-small/source/common/stringtriebuilder.cpp -@@ -85,16 +85,16 @@ StringTrieBuilder::build(UStringTrieBuildOption buildOption, int32_t elementsLen - // have a common prefix of length unitIndex. - int32_t - StringTrieBuilder::writeNode(int32_t start, int32_t limit, int32_t unitIndex) { -- UBool hasValue=FALSE; -+ UBool hasValue=false; - int32_t value=0; - int32_t type; - if(unitIndex==getElementStringLength(start)) { - // An intermediate or final value. - value=getElementValue(start++); - if(start==limit) { -- return writeValueAndFinal(value, TRUE); // final-value node -+ return writeValueAndFinal(value, true); // final-value node - } -- hasValue=TRUE; -+ hasValue=true; - } - // Now all [start..limit[ strings are longer than unitIndex. - int32_t minUnit=getElementUnit(start, unitIndex); -@@ -209,7 +209,7 @@ StringTrieBuilder::makeNode(int32_t start, int32_t limit, int32_t unitIndex, UEr - if(U_FAILURE(errorCode)) { - return NULL; - } -- UBool hasValue=FALSE; -+ UBool hasValue=false; - int32_t value=0; - if(unitIndex==getElementStringLength(start)) { - // An intermediate or final value. -@@ -217,7 +217,7 @@ StringTrieBuilder::makeNode(int32_t start, int32_t limit, int32_t unitIndex, UEr - if(start==limit) { - return registerFinalValue(value, errorCode); - } -- hasValue=TRUE; -+ hasValue=true; - } - Node *node; - // Now all [start..limit[ strings are longer than unitIndex. -@@ -410,7 +410,7 @@ StringTrieBuilder::FinalValueNode::operator==(const Node &other) const { - - void - StringTrieBuilder::FinalValueNode::write(StringTrieBuilder &builder) { -- offset=builder.writeValueAndFinal(value, TRUE); -+ offset=builder.writeValueAndFinal(value, true); - } - - bool -@@ -448,7 +448,7 @@ StringTrieBuilder::IntermediateValueNode::markRightEdgesFirst(int32_t edgeNumber - void - StringTrieBuilder::IntermediateValueNode::write(StringTrieBuilder &builder) { - next->write(builder); -- offset=builder.writeValueAndFinal(value, FALSE); -+ offset=builder.writeValueAndFinal(value, false); - } - - bool -@@ -526,7 +526,7 @@ StringTrieBuilder::ListBranchNode::write(StringTrieBuilder &builder) { - // not jump for it at all. - unitNumber=length-1; - if(rightEdge==NULL) { -- builder.writeValueAndFinal(values[unitNumber], TRUE); -+ builder.writeValueAndFinal(values[unitNumber], true); - } else { - rightEdge->write(builder); - } -@@ -538,12 +538,12 @@ StringTrieBuilder::ListBranchNode::write(StringTrieBuilder &builder) { - if(equal[unitNumber]==NULL) { - // Write the final value for the one string ending with this unit. - value=values[unitNumber]; -- isFinal=TRUE; -+ isFinal=true; - } else { - // Write the delta to the start position of the sub-node. - U_ASSERT(equal[unitNumber]->getOffset()>0); - value=offset-equal[unitNumber]->getOffset(); -- isFinal=FALSE; -+ isFinal=false; - } - builder.writeValueAndFinal(value, isFinal); - offset=builder.write(units[unitNumber]); -diff --git a/deps/icu-small/source/common/uarrsort.cpp b/deps/icu-small/source/common/uarrsort.cpp -index c17dbb2e2b..17b6964ffe 100644 ---- a/deps/icu-small/source/common/uarrsort.cpp -+++ b/deps/icu-small/source/common/uarrsort.cpp -@@ -75,7 +75,7 @@ U_CAPI int32_t U_EXPORT2 - uprv_stableBinarySearch(char *array, int32_t limit, void *item, int32_t itemSize, - UComparator *cmp, const void *context) { - int32_t start=0; -- UBool found=FALSE; -+ UBool found=false; - - /* Binary search until we get down to a tiny sub-array. */ - while((limit-start)>=MIN_QSORT) { -@@ -90,10 +90,10 @@ uprv_stableBinarySearch(char *array, int32_t limit, void *item, int32_t itemSize - * However, if there are many equal items, then it should be - * faster to continue with the binary search. - * It seems likely that we either have all unique items -- * (where found will never become TRUE in the insertion sort) -+ * (where found will never become true in the insertion sort) - * or potentially many duplicates. - */ -- found=TRUE; -+ found=true; - start=i+1; - } else if(diff<0) { - limit=i; -@@ -106,7 +106,7 @@ uprv_stableBinarySearch(char *array, int32_t limit, void *item, int32_t itemSize - while(startmayAllocateText=TRUE; -+ pBiDi->mayAllocateText=true; - } - - if(maxRunCount>0) { -@@ -171,7 +171,7 @@ ubidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode *pErrorCode) - *pErrorCode=U_MEMORY_ALLOCATION_ERROR; - } - } else { -- pBiDi->mayAllocateRuns=TRUE; -+ pBiDi->mayAllocateRuns=true; - } - - if(U_SUCCESS(*pErrorCode)) { -@@ -184,7 +184,7 @@ ubidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode *pErrorCode) - - /* - * We are allowed to allocate memory if memory==NULL or -- * mayAllocate==TRUE for each array that we need. -+ * mayAllocate==true for each array that we need. - * We also try to grow memory as needed if we - * allocate it. - * -@@ -203,18 +203,18 @@ ubidi_getMemory(BidiMemoryForAllocation *bidiMem, int32_t *pSize, UBool mayAlloc - /* we need to allocate memory */ - if(mayAllocate && (*pMemory=uprv_malloc(sizeNeeded))!=NULL) { - *pSize=sizeNeeded; -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } else { - if(sizeNeeded<=*pSize) { - /* there is already enough memory */ -- return TRUE; -+ return true; - } - else if(!mayAllocate) { - /* not enough memory, and we must not allocate */ -- return FALSE; -+ return false; - } else { - /* we try to grow */ - void *memory; -@@ -225,10 +225,10 @@ ubidi_getMemory(BidiMemoryForAllocation *bidiMem, int32_t *pSize, UBool mayAlloc - if((memory=uprv_realloc(*pMemory, sizeNeeded))!=NULL) { - *pMemory=memory; - *pSize=sizeNeeded; -- return TRUE; -+ return true; - } else { - /* we failed to grow */ -- return FALSE; -+ return false; - } - } - } -@@ -280,7 +280,7 @@ ubidi_isInverse(UBiDi *pBiDi) { - if(pBiDi!=NULL) { - return pBiDi->isInverse; - } else { -- return FALSE; -+ return false; - } - } - -@@ -403,17 +403,17 @@ checkParaCount(UBiDi *pBiDi) { - int32_t count=pBiDi->paraCount; - if(pBiDi->paras==pBiDi->simpleParas) { - if(count<=SIMPLE_PARAS_COUNT) -- return TRUE; -+ return true; - if(!getInitialParasMemory(pBiDi, SIMPLE_PARAS_COUNT * 2)) -- return FALSE; -+ return false; - pBiDi->paras=pBiDi->parasMemory; - uprv_memcpy(pBiDi->parasMemory, pBiDi->simpleParas, SIMPLE_PARAS_COUNT * sizeof(Para)); -- return TRUE; -+ return true; - } - if(!getInitialParasMemory(pBiDi, count * 2)) -- return FALSE; -+ return false; - pBiDi->paras=pBiDi->parasMemory; -- return TRUE; -+ return true; - } - - /* -@@ -579,8 +579,8 @@ getDirProps(UBiDi *pBiDi) { - } - if(iparaCount++; -- if(checkParaCount(pBiDi)==FALSE) /* not enough memory for a new para entry */ -- return FALSE; -+ if(checkParaCount(pBiDi)==false) /* not enough memory for a new para entry */ -+ return false; - if(isDefaultLevel) { - pBiDi->paras[pBiDi->paraCount-1].level=defaultParaLevel; - state=SEEKING_STRONG_FOR_PARA; -@@ -636,7 +636,7 @@ getDirProps(UBiDi *pBiDi) { - } - pBiDi->flags=flags; - pBiDi->lastArabicPos=lastArabicPos; -- return TRUE; -+ return true; - } - - /* determine the paragraph level at position index */ -@@ -743,14 +743,14 @@ bracketProcessPDI(BracketData *bd) { - } - - /* newly found opening bracket: create an openings entry */ --static UBool /* return TRUE if success */ -+static UBool /* return true if success */ - bracketAddOpening(BracketData *bd, UChar match, int32_t position) { - IsoRun *pLastIsoRun=&bd->isoRuns[bd->isoRunLast]; - Opening *pOpening; - if(pLastIsoRun->limit>=bd->openingsCount) { /* no available new entry */ - UBiDi *pBiDi=bd->pBiDi; - if(!getInitialOpeningsMemory(pBiDi, pLastIsoRun->limit * 2)) -- return FALSE; -+ return false; - if(bd->openings==bd->simpleOpenings) - uprv_memcpy(pBiDi->openingsMemory, bd->simpleOpenings, - SIMPLE_OPENINGS_COUNT * sizeof(Opening)); -@@ -764,7 +764,7 @@ bracketAddOpening(BracketData *bd, UChar match, int32_t position) { - pOpening->contextPos=pLastIsoRun->contextPos; - pOpening->flags=0; - pLastIsoRun->limit++; -- return TRUE; -+ return true; - } - - /* change N0c1 to N0c2 when a preceding bracket is assigned the embedding level */ -@@ -804,7 +804,7 @@ bracketProcessClosing(BracketData *bd, int32_t openIdx, int32_t position) { - DirProp newProp; - pOpening=&bd->openings[openIdx]; - direction=(UBiDiDirection)(pLastIsoRun->level&1); -- stable=TRUE; /* assume stable until proved otherwise */ -+ stable=true; /* assume stable until proved otherwise */ - - /* The stable flag is set when brackets are paired and their - level is resolved and cannot be changed by what will be -@@ -873,7 +873,7 @@ bracketProcessClosing(BracketData *bd, int32_t openIdx, int32_t position) { - } - - /* handle strong characters, digits and candidates for closing brackets */ --static UBool /* return TRUE if success */ -+static UBool /* return true if success */ - bracketProcessChar(BracketData *bd, int32_t position) { - IsoRun *pLastIsoRun=&bd->isoRuns[bd->isoRunLast]; - DirProp *dirProps, dirProp, newProp; -@@ -912,7 +912,7 @@ bracketProcessChar(BracketData *bd, int32_t position) { - } - /* matching brackets are not overridden by LRO/RLO */ - bd->pBiDi->levels[bd->openings[idx].position]&=~UBIDI_LEVEL_OVERRIDE; -- return TRUE; -+ return true; - } - /* We get here only if the ON character is not a matching closing - bracket or it is a case of N0d */ -@@ -927,14 +927,14 @@ bracketProcessChar(BracketData *bd, int32_t position) { - create an opening entry for each synonym */ - if(match==0x232A) { /* RIGHT-POINTING ANGLE BRACKET */ - if(!bracketAddOpening(bd, 0x3009, position)) -- return FALSE; -+ return false; - } - else if(match==0x3009) { /* RIGHT ANGLE BRACKET */ - if(!bracketAddOpening(bd, 0x232A, position)) -- return FALSE; -+ return false; - } - if(!bracketAddOpening(bd, match, position)) -- return FALSE; -+ return false; - } - } - level=bd->pBiDi->levels[position]; -@@ -998,7 +998,7 @@ bracketProcessChar(BracketData *bd, int32_t position) { - if(position>bd->openings[i].position) - bd->openings[i].flags|=flag; - } -- return TRUE; -+ return true; - } - - /* perform (X1)..(X9) ------------------------------------------------------- */ -@@ -2432,11 +2432,11 @@ setParaRunsOnly(UBiDi *pBiDi, const UChar *text, int32_t length, - * than the original text. But we don't want the levels memory to be - * reallocated shorter than the original length, since we need to restore - * the levels as after the first call to ubidi_setpara() before returning. -- * We will force mayAllocateText to FALSE before the second call to -+ * We will force mayAllocateText to false before the second call to - * ubidi_setpara(), and will restore it afterwards. - */ - saveMayAllocateText=pBiDi->mayAllocateText; -- pBiDi->mayAllocateText=FALSE; -+ pBiDi->mayAllocateText=false; - ubidi_setPara(pBiDi, visualText, visualLength, paraLevel, NULL, pErrorCode); - pBiDi->mayAllocateText=saveMayAllocateText; - ubidi_getRuns(pBiDi, pErrorCode); -@@ -2866,7 +2866,7 @@ ubidi_isOrderParagraphsLTR(UBiDi *pBiDi) { - if(pBiDi!=NULL) { - return pBiDi->orderParagraphsLTR; - } else { -- return FALSE; -+ return false; - } - } - -diff --git a/deps/icu-small/source/common/ubidi_props.cpp b/deps/icu-small/source/common/ubidi_props.cpp -index afcc4aaf4f..3ba58f7af9 100644 ---- a/deps/icu-small/source/common/ubidi_props.cpp -+++ b/deps/icu-small/source/common/ubidi_props.cpp -@@ -53,7 +53,7 @@ _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32 - /* add the start code point to the USet */ - const USetAdder *sa=(const USetAdder *)context; - sa->add(sa->set, start); -- return TRUE; -+ return true; - } - - U_CFUNC void -diff --git a/deps/icu-small/source/common/ubidi_props_data.h b/deps/icu-small/source/common/ubidi_props_data.h -index aad919fa2e..01fcc968cb 100644 ---- a/deps/icu-small/source/common/ubidi_props_data.h -+++ b/deps/icu-small/source/common/ubidi_props_data.h -@@ -9,11 +9,11 @@ - - #ifdef INCLUDED_FROM_UBIDI_PROPS_C - --static const UVersionInfo ubidi_props_dataVersion={0xe,0,0,0}; -+static const UVersionInfo ubidi_props_dataVersion={0xf,0,0,0}; - --static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6a98,0x64a8,0x28,0x620,0x8cc,0x10ac0,0x10d24,0,0,0,0,0,0,0,0x6702b6}; -+static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6bc0,0x65d0,0x28,0x620,0x8cc,0x10ac0,0x10d24,0,0,0,0,0,0,0,0x6702b6}; - --static const uint16_t ubidi_props_trieIndex[12876]={ -+static const uint16_t ubidi_props_trieIndex[13024]={ - 0x387,0x38f,0x397,0x39f,0x3b7,0x3bf,0x3c7,0x3cf,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af, - 0x3a7,0x3af,0x3a7,0x3af,0x3d5,0x3dd,0x3e5,0x3ed,0x3f5,0x3fd,0x3f9,0x401,0x409,0x411,0x40c,0x414, - 0x3a7,0x3af,0x3a7,0x3af,0x41c,0x424,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x42a,0x432,0x43a,0x442, -@@ -185,61 +185,61 @@ static const uint16_t ubidi_props_trieIndex[12876]={ - 0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9a6,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, - 0x9ae,0x9b2,0x43c,0x43c,0x43c,0x43c,0x9c2,0x9ba,0x43c,0x9ca,0x43c,0x43c,0x9d2,0x9d8,0x43c,0x43c, - 0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9e8,0x9e0,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, --0x43c,0x43c,0x43c,0x9f0,0x43c,0x9f8,0x43c,0x43c,0x43c,0x9fc,0xa03,0xa09,0xa11,0xa15,0xa1d,0x43c, --0x51b,0xa25,0xa2c,0xa33,0x41e,0xa3b,0x569,0x3a7,0x501,0xa42,0x3a7,0xa48,0x41e,0xa4d,0xa55,0x3a7, --0x3a7,0xa5a,0x3a7,0x3a7,0x3a7,0x3a7,0x836,0xa62,0x41e,0x5a3,0x57e,0xa69,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0xa25,0xa71,0x3a7,0x3a7,0xa79,0xa81,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa85,0xa8d,0x3a7, --0x3a7,0xa95,0x57e,0xa9d,0x3a7,0xaa3,0x3a7,0x3a7,0x60f,0xaab,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0xab0,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xab7,0xabf,0x3a7,0x3a7,0x3a7,0xac2,0x57e,0xaca, --0xace,0xad6,0x3a7,0xadd,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0xae4,0x3a7,0x3a7,0xaf2,0xaec,0x3a7,0x3a7,0x3a7,0xafa,0xb02,0x3a7,0xb06,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x5a5,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb13,0xb0e,0x3a7, -+0x43c,0x43c,0x43c,0x9f0,0x43c,0x9f8,0x4a6,0xa00,0x43c,0xa08,0xa0f,0xa15,0xa1d,0xa21,0xa29,0x43c, -+0x51b,0xa31,0xa38,0xa3f,0x41e,0xa47,0x569,0x3a7,0x501,0xa4e,0x3a7,0xa54,0x41e,0xa59,0xa61,0x3a7, -+0x3a7,0xa66,0x51b,0x3a7,0x3a7,0x3a7,0x836,0xa6e,0x41e,0x5a3,0x57e,0xa75,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0xa31,0xa7d,0x3a7,0x3a7,0xa85,0xa8d,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa91,0xa99,0x3a7, -+0x3a7,0xaa1,0x57e,0xaa9,0x3a7,0xaaf,0x3a7,0x3a7,0x60f,0xab7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0xabc,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xac3,0xacb,0x3a7,0x3a7,0x3a7,0xace,0x57e,0xad6, -+0xada,0xae2,0x3a7,0xae9,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0xaf0,0x3a7,0x3a7,0xafe,0xaf8,0x3a7,0x3a7,0x3a7,0xb06,0xb0e,0x3a7,0xb12,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x5a5,0x41e,0x99e,0xb1a,0x3a7,0x3a7,0x3a7,0xb27,0xb22,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0xb1b,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb22, --0x3a7,0xb28,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0xb2f,0xb37,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb3d, -+0x3a7,0xb43,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0xa49,0x3a7,0xb2e,0x3a7,0x3a7,0xb36,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0xa55,0x3a7,0xb49,0x3a7,0x3a7,0xb51,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x535,0xb3e,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x535,0xb59,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xb46,0x500,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0xb4e,0xb56,0xb5c,0x3a7,0xb62,0x67c,0x67c,0xb6a,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x67c,0x67c,0xb72,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb78, --0x3a7,0xb7f,0x3a7,0xb7b,0x3a7,0xb82,0x3a7,0xb8a,0xb8e,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xb96,0x3f5,0xb9d,0xba4,0xbac,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xb61,0x500,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0xb69,0xb71,0xb77,0x3a7,0xb7d,0x67c,0x67c,0xb85,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x67c,0x67c,0xb8d,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb93, -+0x3a7,0xb9a,0x3a7,0xb96,0x3a7,0xb9d,0x3a7,0xba5,0xba9,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xbb1,0x3f5,0xbb8,0xbbf,0xbc7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xbb4,0xbbc,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0xb28,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa75,0x3a7, --0xbc1,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0xbc9, --0x43c,0xbd1,0xbd1,0xbd8,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xbcf,0xbd7,0x3a7,0x3a7,0xa55,0x3a7,0x3a7, -+0x3a7,0x3a7,0xb43,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa81,0x3a7, -+0xbdc,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0xbe4,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0xbec, -+0x43c,0xbf4,0xbf4,0xbfb,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, - 0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x91e,0x4a6,0x4a6,0x43c, --0x43c,0x4a6,0x4a6,0xbe0,0x43c,0x43c,0x43c,0x43c,0x43c,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6, --0xbe8,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x67c,0xbf0,0x67c,0x67c,0x67f,0xbf5,0xbf9, --0x858,0xc01,0x3c9,0x3a7,0xc07,0x3a7,0xc0c,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x783,0x3a7,0x3a7,0x3a7, -+0x43c,0x4a6,0x4a6,0xc03,0x43c,0x43c,0x43c,0x43c,0x43c,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6, -+0xc0b,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x67c,0xc13,0x67c,0x67c,0x67f,0xc18,0xc1c, -+0x858,0xc24,0x3c9,0x3a7,0xc2a,0x3a7,0xc2f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x783,0x3a7,0x3a7,0x3a7, - 0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c, --0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0xc14, --0x98f,0x67c,0x67c,0x67c,0x67f,0x67c,0x67c,0xc1c,0xc24,0xbf0,0x67c,0xc2c,0x67c,0xc34,0xc39,0x3a7, --0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67f,0xc41,0xc4d,0xc52,0xc5a, --0xc49,0x67c,0x67c,0x67c,0x67c,0xc62,0x67c,0x792,0xc6a,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0xc37, -+0x98f,0x67c,0x67c,0x67c,0xc3e,0x67c,0x67c,0xc45,0xc4d,0xc13,0x67c,0xc55,0x67c,0xc5d,0xc62,0x3a7, -+0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67f,0xc6a,0xc73,0xc77,0xc7f, -+0xc6f,0x67c,0x67c,0x67c,0x67c,0xc87,0x67c,0x792,0xc8f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc71,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc96,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, - 0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, --0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc71,0xc81,0xc79,0xc79,0xc79,0xc82,0xc82,0xc82, --0xc82,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0xc8a,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, --0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, --0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, --0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, --0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0x386,0x386,0x386,0x12,0x12,0x12,0x12, -+0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc96,0xca6,0xc9e,0xc9e,0xc9e,0xca7,0xca7,0xca7, -+0xca7,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0xcaf,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7, -+0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7, -+0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7, -+0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7, -+0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0xca7,0x386,0x386,0x386,0x12,0x12,0x12,0x12, - 0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12, - 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4, - 4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2, -@@ -384,7 +384,7 @@ static const uint16_t ubidi_props_trieIndex[12876]={ - 0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, - 0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0, -@@ -654,6 +654,9 @@ static const uint16_t ubidi_props_trieIndex[12876]={ - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1, - 1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, - 0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d, - 0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -@@ -721,104 +724,110 @@ static const uint16_t ubidi_props_trieIndex[12876]={ - 0,0,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1, -+0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,4,0xa,0xa,0xa,0xa,0xa,0xa,0xa, - 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,4,4,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0xa0,0xa0,0xa0,0xa0, --0xa0,0xa0,0xa0,0xa0,0xa0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -+0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xb1,0,0,0, -+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0xa,0,0xb1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0xa,0,0xb1,0,0,0, -+0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0, -+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0, -+0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0xb1, --0xb1,0xb1,0,0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0xb2, --0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1, --0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0, -+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0xa,0xa,0xb1,0xb1,0xb1,0xa,0,0, -+0,0,0,0,0xa,0xa,0xb1,0xb1,0xb1,0xa,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0, -+0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0x100a,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0, --0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2, -+0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0, -+0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, --0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, --0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, --0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, --0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, -+2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -+0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, -+0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1, --1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, --0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, --0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, --0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,2,0xa, --0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1, -+0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -+0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd, -+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd, -+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd, -+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -+0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -+0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -+2,2,2,2,2,2,2,2,2,2,2,0xa,0xa,0xa,0xa,0xa, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0xa,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, - 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, --0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0, -+0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -+0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, - 0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa, --0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, --0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, -+0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, -+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, -+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, - 0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0, -+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa, --0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, --2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa, -+0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, -+2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, -+0,0,0,0,0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, - 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, --0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12, - 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, --0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, --0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0,0,0,0 -+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12, -+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0,0,0,0 - }; - - static const uint32_t ubidi_props_mirrors[40]={ -@@ -926,14 +935,14 @@ static const UBiDiProps ubidi_props_singleton={ - ubidi_props_trieIndex+3612, - NULL, - 3612, -- 9264, -+ 9412, - 0x1a0, - 0xe9c, - 0x0, - 0x0, - 0x110000, -- 0x3248, -- NULL, 0, FALSE, FALSE, 0, NULL -+ 0x32dc, -+ NULL, 0, false, false, 0, NULL - }, - { 2,2,0,0 } - }; -diff --git a/deps/icu-small/source/common/ubidiln.cpp b/deps/icu-small/source/common/ubidiln.cpp -index fea239380a..430ece39d2 100644 ---- a/deps/icu-small/source/common/ubidiln.cpp -+++ b/deps/icu-small/source/common/ubidiln.cpp -@@ -101,7 +101,7 @@ setTrailingWSStart(UBiDi *pBiDi) { - are already set to paragraph level. - Setting trailingWSStart to pBidi->length will avoid changing the - level of B chars from 0 to paraLevel in ubidi_getLevels when -- orderParagraphsLTR==TRUE. -+ orderParagraphsLTR==true. - */ - if(dirProps[start-1]==B) { - pBiDi->trailingWSStart=start; /* currently == pBiDi->length */ -@@ -535,7 +535,7 @@ static int32_t getRunFromLogicalIndex(UBiDi *pBiDi, int32_t logicalIndex) { - - /* - * Compute the runs array from the levels array. -- * After ubidi_getRuns() returns TRUE, runCount is guaranteed to be >0 -+ * After ubidi_getRuns() returns true, runCount is guaranteed to be >0 - * and the runs are reordered. - * Odd-level runs have visualStart on their visual right edge and - * they progress visually to the left. -@@ -551,7 +551,7 @@ ubidi_getRuns(UBiDi *pBiDi, UErrorCode*) { - * includes the case of length==0 (handled in setPara).. - */ - if (pBiDi->runCount>=0) { -- return TRUE; -+ return true; - } - - if(pBiDi->direction!=UBIDI_MIXED) { -@@ -608,7 +608,7 @@ ubidi_getRuns(UBiDi *pBiDi, UErrorCode*) { - if(getRunsMemory(pBiDi, runCount)) { - runs=pBiDi->runsMemory; - } else { -- return FALSE; -+ return false; - } - - /* set the runs */ -@@ -703,7 +703,7 @@ ubidi_getRuns(UBiDi *pBiDi, UErrorCode*) { - } - } - -- return TRUE; -+ return true; - } - - static UBool -@@ -714,7 +714,7 @@ prepareReorder(const UBiDiLevel *levels, int32_t length, - UBiDiLevel level, minLevel, maxLevel; - - if(levels==NULL || length<=0) { -- return FALSE; -+ return false; - } - - /* determine minLevel and maxLevel */ -@@ -723,7 +723,7 @@ prepareReorder(const UBiDiLevel *levels, int32_t length, - for(start=length; start>0;) { - level=levels[--start]; - if(level>UBIDI_MAX_EXPLICIT_LEVEL+1) { -- return FALSE; -+ return false; - } - if(levelpBidi, pTransform->src, pTransform->srcLength, - pTransform->pActiveScheme->baseLevel, NULL, pErrorCode); -- return FALSE; -+ return false; - } - - /** -@@ -150,7 +150,7 @@ action_reorder(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - - *pTransform->pDestLength = pTransform->srcLength; - pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT; -- return TRUE; -+ return true; - } - - /** -@@ -166,9 +166,9 @@ static UBool - action_setInverse(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - { - (void)pErrorCode; -- ubidi_setInverse(pTransform->pBidi, TRUE); -+ ubidi_setInverse(pTransform->pBidi, true); - ubidi_setReorderingMode(pTransform->pBidi, UBIDI_REORDER_INVERSE_LIKE_DIRECT); -- return FALSE; -+ return false; - } - - /** -@@ -186,7 +186,7 @@ action_setRunsOnly(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - { - (void)pErrorCode; - ubidi_setReorderingMode(pTransform->pBidi, UBIDI_REORDER_RUNS_ONLY); -- return FALSE; -+ return false; - } - - /** -@@ -205,7 +205,7 @@ action_reverse(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - pTransform->dest, pTransform->destSize, - UBIDI_REORDER_DEFAULT, pErrorCode); - *pTransform->pDestLength = pTransform->srcLength; -- return TRUE; -+ return true; - } - - /** -@@ -274,7 +274,7 @@ static UBool - action_shapeArabic(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - { - if ((pTransform->letters | pTransform->digits) == 0) { -- return FALSE; -+ return false; - } - if (pTransform->pActiveScheme->lettersDir == pTransform->pActiveScheme->digitsDir) { - doShape(pTransform, pTransform->letters | pTransform->digits | pTransform->pActiveScheme->lettersDir, -@@ -288,7 +288,7 @@ action_shapeArabic(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - pErrorCode); - } - } -- return TRUE; -+ return true; - } - - /** -@@ -306,11 +306,11 @@ action_mirror(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - UChar32 c; - uint32_t i = 0, j = 0; - if (0 == (pTransform->reorderingOptions & UBIDI_DO_MIRRORING)) { -- return FALSE; -+ return false; - } - if (pTransform->destSize < pTransform->srcLength) { - *pErrorCode = U_BUFFER_OVERFLOW_ERROR; -- return FALSE; -+ return false; - } - do { - UBool isOdd = ubidi_getLevelAt(pTransform->pBidi, i) & 1; -@@ -320,7 +320,7 @@ action_mirror(UBiDiTransform *pTransform, UErrorCode *pErrorCode) - - *pTransform->pDestLength = pTransform->srcLength; - pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT; -- return TRUE; -+ return true; - } - - /** -@@ -444,7 +444,7 @@ ubiditransform_transform(UBiDiTransform *pBiDiTransform, - UErrorCode *pErrorCode) - { - uint32_t destLength = 0; -- UBool textChanged = FALSE; -+ UBool textChanged = false; - const UBiDiTransform *pOrigTransform = pBiDiTransform; - const UBiDiAction *action = NULL; - -@@ -503,10 +503,10 @@ ubiditransform_transform(UBiDiTransform *pBiDiTransform, - updateSrc(pBiDiTransform, pBiDiTransform->dest, *pBiDiTransform->pDestLength, - *pBiDiTransform->pDestLength, pErrorCode); - } -- textChanged = TRUE; -+ textChanged = true; - } - } -- ubidi_setInverse(pBiDiTransform->pBidi, FALSE); -+ ubidi_setInverse(pBiDiTransform->pBidi, false); - - if (!textChanged && U_SUCCESS(*pErrorCode)) { - /* Text was not changed - just copy src to dest */ -diff --git a/deps/icu-small/source/common/ucase.cpp b/deps/icu-small/source/common/ucase.cpp -index 388c86b1bb..3d1750265b 100644 ---- a/deps/icu-small/source/common/ucase.cpp -+++ b/deps/icu-small/source/common/ucase.cpp -@@ -40,7 +40,7 @@ _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 /*end*/, ui - /* add the start code point to the USet */ - const USetAdder *sa=(const USetAdder *)context; - sa->add(sa->set, start); -- return TRUE; -+ return true; - } - - U_CFUNC void U_EXPORT2 -@@ -354,7 +354,7 @@ ucase_addStringCaseClosure(const UChar *s, int32_t length, const USetAdder *sa) - int32_t i, start, limit, result, unfoldRows, unfoldRowWidth, unfoldStringWidth; - - if(ucase_props_singleton.unfold==NULL || s==NULL) { -- return FALSE; /* no reverse case folding data, or no string */ -+ return false; /* no reverse case folding data, or no string */ - } - if(length<=1) { - /* the string is too short to find any match */ -@@ -364,7 +364,7 @@ ucase_addStringCaseClosure(const UChar *s, int32_t length, const USetAdder *sa) - * but this does not make much practical difference because - * a single supplementary code point would just not be found - */ -- return FALSE; -+ return false; - } - - const uint16_t *unfold=ucase_props_singleton.unfold; -@@ -375,7 +375,7 @@ ucase_addStringCaseClosure(const UChar *s, int32_t length, const USetAdder *sa) - - if(length>unfoldStringWidth) { - /* the string is too long to find any match */ -- return FALSE; -+ return false; - } - - /* do a binary search for the string */ -@@ -395,7 +395,7 @@ ucase_addStringCaseClosure(const UChar *s, int32_t length, const USetAdder *sa) - sa->add(sa->set, c); - ucase_addCaseClosure(c, sa); - } -- return TRUE; -+ return true; - } else if(result<0) { - limit=i; - } else /* result>0 */ { -@@ -403,7 +403,7 @@ ucase_addStringCaseClosure(const UChar *s, int32_t length, const USetAdder *sa) - } - } - -- return FALSE; /* string not found */ -+ return false; /* string not found */ - } - - U_NAMESPACE_BEGIN -@@ -431,7 +431,7 @@ FullCaseFoldingIterator::next(UnicodeString &full) { - // Set "full" to the NUL-terminated string in the first unfold column. - int32_t length=unfoldStringWidth; - while(length>0 && p[length-1]==0) { --length; } -- full.setTo(FALSE, p, length); -+ full.setTo(false, p, length); - // Return the code point. - UChar32 c; - U16_NEXT_UNSAFE(p, rowCpIndex, c); -@@ -905,7 +905,7 @@ isFollowedByCasedLetter(UCaseContextIterator *iter, void *context, int8_t dir) { - UChar32 c; - - if(iter==NULL) { -- return FALSE; -+ return false; - } - - for(/* dir!=0 sets direction */; (c=iter(context, dir))>=0; dir=0) { -@@ -913,13 +913,13 @@ isFollowedByCasedLetter(UCaseContextIterator *iter, void *context, int8_t dir) { - if(type&4) { - /* case-ignorable, continue with the loop */ - } else if(type!=UCASE_NONE) { -- return TRUE; /* followed by cased letter */ -+ return true; /* followed by cased letter */ - } else { -- return FALSE; /* uncased and not case-ignorable */ -+ return false; /* uncased and not case-ignorable */ - } - } - -- return FALSE; /* not followed by cased letter */ -+ return false; /* not followed by cased letter */ - } - - /* Is preceded by Soft_Dotted character with no intervening cc=230 ? */ -@@ -930,19 +930,19 @@ isPrecededBySoftDotted(UCaseContextIterator *iter, void *context) { - int8_t dir; - - if(iter==NULL) { -- return FALSE; -+ return false; - } - - for(dir=-1; (c=iter(context, dir))>=0; dir=0) { - dotType=getDotType(c); - if(dotType==UCASE_SOFT_DOTTED) { -- return TRUE; /* preceded by TYPE_i */ -+ return true; /* preceded by TYPE_i */ - } else if(dotType!=UCASE_OTHER_ACCENT) { -- return FALSE; /* preceded by different base character (not TYPE_i), or intervening cc==230 */ -+ return false; /* preceded by different base character (not TYPE_i), or intervening cc==230 */ - } - } - -- return FALSE; /* not preceded by TYPE_i */ -+ return false; /* not preceded by TYPE_i */ - } - - /* -@@ -987,20 +987,20 @@ isPrecededBy_I(UCaseContextIterator *iter, void *context) { - int8_t dir; - - if(iter==NULL) { -- return FALSE; -+ return false; - } - - for(dir=-1; (c=iter(context, dir))>=0; dir=0) { - if(c==0x49) { -- return TRUE; /* preceded by I */ -+ return true; /* preceded by I */ - } - dotType=getDotType(c); - if(dotType!=UCASE_OTHER_ACCENT) { -- return FALSE; /* preceded by different base character (not I), or intervening cc==230 */ -+ return false; /* preceded by different base character (not I), or intervening cc==230 */ - } - } - -- return FALSE; /* not preceded by I */ -+ return false; /* not preceded by I */ - } - - /* Is followed by one or more cc==230 ? */ -@@ -1011,19 +1011,19 @@ isFollowedByMoreAbove(UCaseContextIterator *iter, void *context) { - int8_t dir; - - if(iter==NULL) { -- return FALSE; -+ return false; - } - - for(dir=1; (c=iter(context, dir))>=0; dir=0) { - dotType=getDotType(c); - if(dotType==UCASE_ABOVE) { -- return TRUE; /* at least one cc==230 following */ -+ return true; /* at least one cc==230 following */ - } else if(dotType!=UCASE_OTHER_ACCENT) { -- return FALSE; /* next base character, no more cc==230 following */ -+ return false; /* next base character, no more cc==230 following */ - } - } - -- return FALSE; /* no more cc==230 following */ -+ return false; /* no more cc==230 following */ - } - - /* Is followed by a dot above (without cc==230 in between) ? */ -@@ -1034,20 +1034,20 @@ isFollowedByDotAbove(UCaseContextIterator *iter, void *context) { - int8_t dir; - - if(iter==NULL) { -- return FALSE; -+ return false; - } - - for(dir=1; (c=iter(context, dir))>=0; dir=0) { - if(c==0x307) { -- return TRUE; -+ return true; - } - dotType=getDotType(c); - if(dotType!=UCASE_OTHER_ACCENT) { -- return FALSE; /* next base character or cc==230 in between */ -+ return false; /* next base character or cc==230 in between */ - } - } - -- return FALSE; /* no dot above following */ -+ return false; /* no dot above following */ - } - - U_CAPI int32_t U_EXPORT2 -@@ -1317,7 +1317,7 @@ ucase_toFullUpper(UChar32 c, - UCaseContextIterator *iter, void *context, - const UChar **pString, - int32_t caseLocale) { -- return toUpperOrTitle(c, iter, context, pString, caseLocale, TRUE); -+ return toUpperOrTitle(c, iter, context, pString, caseLocale, true); - } - - U_CAPI int32_t U_EXPORT2 -@@ -1325,7 +1325,7 @@ ucase_toFullTitle(UChar32 c, - UCaseContextIterator *iter, void *context, - const UChar **pString, - int32_t caseLocale) { -- return toUpperOrTitle(c, iter, context, pString, caseLocale, FALSE); -+ return toUpperOrTitle(c, iter, context, pString, caseLocale, false); - } - - /* case folding ------------------------------------------------------------- */ -@@ -1601,6 +1601,6 @@ ucase_hasBinaryProperty(UChar32 c, UProperty which) { - ucase_toFullUpper(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0 || - ucase_toFullTitle(c, NULL, NULL, &resultString, UCASE_LOC_ROOT)>=0); - default: -- return FALSE; -+ return false; - } - } -diff --git a/deps/icu-small/source/common/ucase.h b/deps/icu-small/source/common/ucase.h -index 7bf57fd370..049f042912 100644 ---- a/deps/icu-small/source/common/ucase.h -+++ b/deps/icu-small/source/common/ucase.h -@@ -139,8 +139,8 @@ public: - */ - UChar32 next(UnicodeString &full); - private: -- FullCaseFoldingIterator(const FullCaseFoldingIterator &); // no copy -- FullCaseFoldingIterator &operator=(const FullCaseFoldingIterator &); // no assignment -+ FullCaseFoldingIterator(const FullCaseFoldingIterator &) = delete; // no copy -+ FullCaseFoldingIterator &operator=(const FullCaseFoldingIterator &) = delete; // no assignment - - const UChar *unfold; - int32_t unfoldRows; -diff --git a/deps/icu-small/source/common/ucase_props_data.h b/deps/icu-small/source/common/ucase_props_data.h -index 8bbf403cdc..b7797d14d7 100644 ---- a/deps/icu-small/source/common/ucase_props_data.h -+++ b/deps/icu-small/source/common/ucase_props_data.h -@@ -9,145 +9,145 @@ - - #ifdef INCLUDED_FROM_UCASE_CPP - --static const UVersionInfo ucase_props_dataVersion={0xe,0,0,0}; -+static const UVersionInfo ucase_props_dataVersion={0xf,0,0,0}; - --static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x7512,0x64e8,0x683,0x172,0,0,0,0,0,0,0,0,0,0,3}; -+static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x76f2,0x66c8,0x683,0x172,0,0,0,0,0,0,0,0,0,0,3}; - --static const uint16_t ucase_props_trieIndex[12908]={ --0x354,0x35c,0x364,0x36c,0x37a,0x382,0x38a,0x392,0x39a,0x3a2,0x3a9,0x3b1,0x3b9,0x3c1,0x3c9,0x3d1, --0x3d7,0x3df,0x3e7,0x3ef,0x3f7,0x3ff,0x407,0x40f,0x417,0x41f,0x427,0x42f,0x437,0x43f,0x447,0x44f, --0x457,0x45f,0x467,0x46f,0x477,0x47f,0x487,0x48f,0x48b,0x493,0x498,0x4a0,0x4a7,0x4af,0x4b7,0x4bf, --0x4c7,0x4cf,0x4d7,0x4df,0x373,0x37b,0x4e4,0x4ec,0x4f1,0x4f9,0x501,0x509,0x508,0x510,0x515,0x51d, --0x525,0x52c,0x530,0x373,0x537,0x354,0x547,0x53f,0x54f,0x551,0x559,0x561,0x565,0x566,0x56e,0x576, --0x57e,0x566,0x586,0x58b,0x57e,0x566,0x593,0x59b,0x565,0x5a3,0x5ab,0x5b3,0x5bb,0x373,0x5c3,0x373, --0x5cb,0x5cd,0x5d5,0x5b3,0x565,0x5a3,0x5dc,0x5b3,0x5e4,0x5e6,0x56e,0x5b3,0x565,0x373,0x5ee,0x373, --0x373,0x5f4,0x5fb,0x373,0x373,0x5ff,0x607,0x373,0x60b,0x612,0x373,0x619,0x621,0x628,0x630,0x373, --0x373,0x635,0x63d,0x645,0x64d,0x655,0x65c,0x664,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x66c,0x373,0x373,0x67c,0x67c,0x674, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x684,0x68a,0x572,0x572,0x373,0x690,0x698,0x373, --0x6a0,0x373,0x6a8,0x373,0x6af,0x6b5,0x373,0x373,0x373,0x6bd,0x373,0x373,0x373,0x373,0x373,0x373, --0x6c4,0x373,0x6cb,0x6d3,0x373,0x6db,0x6e3,0x373,0x5a2,0x6e7,0x6ef,0x6f5,0x5e4,0x6fd,0x373,0x704, --0x373,0x709,0x373,0x70f,0x717,0x71b,0x723,0x72b,0x733,0x738,0x73b,0x743,0x753,0x74b,0x763,0x75b, --0x39a,0x76b,0x39a,0x773,0x776,0x39a,0x77e,0x39a,0x786,0x78e,0x796,0x79e,0x7a6,0x7ae,0x7b6,0x7be, --0x7c6,0x7cd,0x373,0x7d5,0x7dd,0x373,0x7e5,0x7ed,0x7f5,0x7fd,0x805,0x80d,0x815,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x818,0x81e,0x824,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x82c,0x830,0x834,0x83c,0x39a,0x39a,0x39a,0x844,0x84c,0x853,0x373,0x858,0x373,0x373,0x373,0x860, --0x373,0x6a5,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x564,0x868,0x373,0x373,0x86f,0x373,0x373,0x877,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x87f,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x70f,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x885,0x373,0x88d,0x892,0x89a,0x373,0x373,0x8a2,0x8aa,0x8b2,0x39a,0x8b7,0x8bf,0x8c5,0x8cc,0x8d3, --0x8db,0x8e2,0x373,0x373,0x373,0x373,0x8e9,0x8f1,0x373,0x8f9,0x900,0x373,0x54f,0x905,0x90d,0x6af, --0x373,0x913,0x91b,0x91f,0x373,0x927,0x92f,0x937,0x373,0x93d,0x941,0x949,0x959,0x951,0x373,0x961, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x969,0x373,0x373,0x373,0x373,0x971,0x54f,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x976,0x97e,0x982,0x373,0x373,0x373,0x373,0x356,0x35c,0x98a,0x992,0x999,0x50a,0x373,0x373,0x9a1, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0xdd0,0xdd0,0xde8,0xe28,0xe68,0xea4,0xee4,0xf24,0xf5c,0xf9c,0xfdc,0x101c,0x105c,0x109c,0x10dc,0x111c, --0x115c,0x119c,0x11dc,0x121c,0x122c,0x1260,0x129c,0x12dc,0x131c,0x135c,0xdcc,0x1390,0x13c4,0x1404,0x1420,0x1454, --0x9e1,0xa1f,0xa5f,0xa9e,0x188,0x188,0xad6,0x188,0x188,0x188,0x188,0x188,0x188,0xaff,0x188,0x188, --0x188,0x188,0x188,0x188,0x188,0xb3f,0x188,0xb7f,0x188,0xba5,0xbe0,0xc1f,0xc5f,0xc99,0xcd0,0x188, -+static const uint16_t ucase_props_trieIndex[13148]={ -+0x355,0x35d,0x365,0x36d,0x37b,0x383,0x38b,0x393,0x39b,0x3a3,0x3aa,0x3b2,0x3ba,0x3c2,0x3ca,0x3d2, -+0x3d8,0x3e0,0x3e8,0x3f0,0x3f8,0x400,0x408,0x410,0x418,0x420,0x428,0x430,0x438,0x440,0x448,0x450, -+0x458,0x460,0x468,0x470,0x478,0x480,0x488,0x490,0x48c,0x494,0x499,0x4a1,0x4a8,0x4b0,0x4b8,0x4c0, -+0x4c8,0x4d0,0x4d8,0x4e0,0x374,0x37c,0x4e5,0x4ed,0x4f2,0x4fa,0x502,0x50a,0x509,0x511,0x516,0x51e, -+0x526,0x52d,0x531,0x374,0x538,0x355,0x548,0x540,0x550,0x552,0x55a,0x562,0x566,0x567,0x56f,0x577, -+0x57f,0x567,0x587,0x58c,0x57f,0x567,0x594,0x59c,0x566,0x5a4,0x5ac,0x5b4,0x5bc,0x374,0x5c4,0x374, -+0x5cc,0x5ce,0x5d6,0x5b4,0x566,0x5a4,0x5dd,0x5b4,0x5e5,0x5e7,0x56f,0x5b4,0x566,0x374,0x5ef,0x374, -+0x374,0x5f5,0x5fc,0x374,0x374,0x600,0x608,0x374,0x60c,0x613,0x374,0x61a,0x622,0x629,0x631,0x374, -+0x374,0x636,0x63e,0x646,0x64e,0x656,0x65d,0x665,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x66d,0x374,0x374,0x67d,0x67d,0x675, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x685,0x68b,0x573,0x573,0x374,0x691,0x699,0x374, -+0x6a1,0x374,0x6a9,0x374,0x6b0,0x6b6,0x374,0x374,0x374,0x6be,0x374,0x374,0x374,0x374,0x374,0x374, -+0x6c5,0x374,0x6cc,0x6d4,0x374,0x6dc,0x6e4,0x374,0x5a3,0x6e8,0x6f0,0x6f6,0x5e5,0x6fe,0x374,0x705, -+0x374,0x70a,0x374,0x710,0x718,0x71c,0x724,0x72c,0x734,0x739,0x73c,0x744,0x754,0x74c,0x764,0x75c, -+0x39b,0x76c,0x39b,0x774,0x777,0x39b,0x77f,0x39b,0x787,0x78f,0x797,0x79f,0x7a7,0x7af,0x7b7,0x7bf, -+0x7c7,0x7ce,0x374,0x7d6,0x7de,0x374,0x7e6,0x7ee,0x7f6,0x7fe,0x806,0x80e,0x816,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x819,0x81f,0x825,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x82d,0x831,0x835,0x83d,0x39b,0x39b,0x39b,0x845,0x84d,0x854,0x374,0x859,0x374,0x374,0x374,0x861, -+0x374,0x6a6,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x565,0x869,0x374,0x374,0x870,0x374,0x374,0x878,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x880,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x710,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x886,0x374,0x88e,0x893,0x89b,0x374,0x374,0x8a3,0x8ab,0x8b3,0x39b,0x8b8,0x8c0,0x8c6,0x8cd,0x8d4, -+0x8dc,0x8e3,0x374,0x374,0x374,0x374,0x8ea,0x8f2,0x374,0x8fa,0x901,0x374,0x550,0x906,0x90e,0x6b0, -+0x374,0x914,0x91c,0x920,0x374,0x928,0x930,0x938,0x374,0x93e,0x942,0x94a,0x95a,0x952,0x374,0x962, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x96a,0x374,0x374,0x374,0x374,0x972,0x550,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x977,0x97f,0x983,0x374,0x374,0x374,0x374,0x357,0x35d,0x98b,0x993,0x99a,0x50b,0x374,0x374,0x9a2, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0xdd4,0xdd4,0xdec,0xe2c,0xe6c,0xea8,0xee8,0xf28,0xf60,0xfa0,0xfe0,0x1020,0x1060,0x10a0,0x10e0,0x1120, -+0x1160,0x11a0,0x11e0,0x1220,0x1230,0x1264,0x12a0,0x12e0,0x1320,0x1360,0xdd0,0x1394,0x13c8,0x1408,0x1424,0x1458, -+0x9e1,0xa1f,0xa5f,0xa9e,0x188,0x188,0xad9,0x188,0x188,0x188,0x188,0x188,0x188,0xb02,0x188,0x188, -+0x188,0x188,0x188,0x188,0x188,0xb42,0x188,0xb82,0x188,0xba8,0xbe3,0xc22,0xc62,0xc9c,0xcd3,0x188, - 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, - 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, - 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, -@@ -172,642 +172,657 @@ static const uint16_t ucase_props_trieIndex[12908]={ - 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, - 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, - 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, --0xd10,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x9a8,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x9b0,0x373,0x373,0x373,0x9b3,0x373,0x373,0x373, --0x373,0x9bb,0x9c1,0x9c5,0x373,0x373,0x9c9,0x9cd,0x9d3,0x373,0x373,0x373,0x9da,0x9de,0x9e6,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x9f6,0x9ee,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x9fe, --0xa02,0x373,0x373,0x373,0x373,0x373,0xa0a,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0xa12,0xa16,0xa1e,0xa22,0x373,0xa29,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0xa2f,0x373,0x373,0x373,0x373,0xa36,0x373,0xa3e,0x373,0x373,0x373,0x565, --0xa40,0xa47,0xa4b,0x5e4,0xa53,0xa5b,0x373,0xa63,0xa6a,0x373,0xa70,0x5e4,0xa75,0xa7d,0x373,0x373, --0xa82,0x373,0x373,0x373,0x373,0x356,0xa8a,0x5e4,0x5e6,0xa92,0xa99,0x373,0x373,0x373,0x373,0x373, --0xa40,0xaa1,0x373,0x373,0xaa9,0xab1,0x373,0x373,0x373,0x373,0x373,0x373,0xab5,0xabd,0x373,0x373, --0xac5,0x4ce,0x373,0x373,0xacd,0x373,0x373,0xad3,0xadb,0x373,0x373,0x373,0x373,0x373,0x373,0xae0, --0x373,0x373,0x373,0xae8,0xaf0,0x373,0x373,0xaf8,0xb00,0x373,0x373,0x373,0xb03,0x9b0,0xb0b,0xb0f, --0xb17,0x373,0xb1e,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb25, --0x373,0x373,0x971,0xb2d,0x373,0x373,0x373,0xb33,0xb3b,0x373,0xb3f,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0xb45,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb4b,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0xb52,0x373,0xb58,0x5a2,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0xae8,0xaf0,0x373,0x373,0x373,0x373,0x373,0x373,0x6a5,0x373,0xb5e,0x373,0x373,0xb66,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb6b,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0xb73,0x5a2,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x8aa,0xb7b,0xb82, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb89,0xb91,0xb97,0x373,0x373, --0x373,0x373,0xb9f,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0xba7,0xbaf,0xbb4,0xbba,0xbc2,0xbca,0xbd2,0xbab,0xbda,0xbe2,0xbea,0xbf1,0xbac,0xba7,0xbaf,0xbaa, --0xbba,0xbad,0xba8,0xbf9,0xbab,0xc01,0xc09,0xc11,0xc18,0xc04,0xc0c,0xc14,0xc1b,0xc07,0xc23,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x8aa, --0xc2b,0x8aa,0xc32,0xc39,0xc41,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc51,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc49, --0xc59,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc5d,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0xaa5,0x373,0xa27,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc65, --0x373,0xc6d,0xc75,0xc7c,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xba3,0xc84,0xc84,0xc8a,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xa65, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x565,0x8aa,0x8aa,0x8aa,0x373,0x373,0x373,0x373,0x8aa,0x8aa,0x8aa,0x8aa,0x8aa,0x8aa,0x8aa,0xc92, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,4,0,0,0,0,0,0,4,0, --0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, --0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a,0x1012,0x1012,0x1012,0x1012, --0x1012,0x1012,0x1012,0xba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,4,0, --4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149,0xf011,0xf011,0xf011,0xf011, --0xf011,0xf011,0xf011,0x189,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --4,0,1,0,0,4,0,4,0,0,0,0,4,0x1c9,0,4, --4,0,1,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1fa,0x1012,0x1012, --0x1012,0x1012,0x1012,0x1012,0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0, --0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011,0xf011,0x2d9,0xf011,0xf011, --0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0, --0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0xd13,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x9a9,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9b1,0x374,0x374,0x374,0x9b4,0x374,0x374,0x374, -+0x374,0x9bc,0x9c2,0x9c6,0x374,0x374,0x9ca,0x9ce,0x9d4,0x374,0x374,0x374,0x9db,0x9df,0x9e7,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9f7,0x9ef,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9ff, -+0xa03,0x374,0x374,0x374,0x374,0x374,0xa0b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0xa13,0xa17,0xa1f,0xa23,0x374,0xa2a,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0xa30,0x374,0xa34,0x374,0x374,0xa3c,0x374,0xa44,0x374,0x374,0x374,0x566, -+0xa46,0xa4d,0xa51,0x5e5,0xa59,0xa61,0x374,0xa69,0xa70,0x374,0xa76,0x5e5,0xa7b,0xa83,0x374,0x374, -+0xa88,0x566,0x374,0x374,0x374,0x357,0xa90,0x5e5,0x5e7,0xa98,0xa9f,0x374,0x374,0x374,0x374,0x374, -+0xa46,0xaa7,0x374,0x374,0xaaf,0xab7,0x374,0x374,0x374,0x374,0x374,0x374,0xabb,0xac3,0x374,0x374, -+0xacb,0x4cf,0x374,0x374,0xad3,0x374,0x374,0xad9,0xae1,0x374,0x374,0x374,0x374,0x374,0x374,0xae6, -+0x374,0x374,0x374,0xaee,0xaf6,0x374,0x374,0xafe,0xb06,0x374,0x374,0x374,0xb09,0x9b1,0xb11,0xb15, -+0xb1d,0x374,0xb24,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb2b, -+0x374,0x374,0x972,0xb33,0x374,0x374,0x374,0xb39,0xb41,0x374,0xb45,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0xb4b,0x5e5,0xb51,0xb59,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb5d,0xb65,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb6b,0x374,0xb71,0x5a3,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0xaee,0xaf6,0x374,0x374,0x374,0x374,0x374,0x374,0x6a6,0x374,0xb77,0x374, -+0x374,0xb7f,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0xb84,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0xb8c,0x5a3,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x8ab,0xb94,0xb9b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xba2,0xbaa, -+0xbb0,0x374,0x374,0x374,0x374,0xbb8,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0xbc0,0xbc8,0xbcd,0xbd3,0xbdb,0xbe3,0xbeb,0xbc4,0xbf3,0xbfb,0xc03,0xc0a,0xbc5, -+0xbc0,0xbc8,0xbc3,0xbd3,0xbc6,0xbc1,0xc12,0xbc4,0xc1a,0xc22,0xc2a,0xc31,0xc1d,0xc25,0xc2d,0xc34, -+0xc20,0xc3c,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x8ab,0xc44,0x8ab,0xc4b,0xc52,0xc5a,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xc6a,0xc72,0x374,0x374,0x374,0x374, -+0x374,0x374,0xc62,0xc7a,0xc8d,0xc80,0xc85,0x374,0x374,0x374,0x374,0xc95,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xaab,0x374,0xa28,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xc9d,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0xca1,0x374,0xca9,0xcb1,0xcb8,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xbbc,0xcc0,0xcc0,0xcc6, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0xa6b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x566,0x8ab,0x8ab,0x8ab,0x374,0x374,0x374,0x374,0x8ab,0x8ab,0x8ab,0x8ab,0x8ab, -+0x8ab,0x8ab,0xcce,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374, -+0x374,0x374,0x374,0x354,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, -+0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0, -+0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a, -+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0, -+0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149, -+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x189,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,4,0,1,0,0,4,0,4,0,0,0,0, -+4,0x1c9,0,4,4,0,1,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012, -+0x1012,0x1fa,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -+0x1012,0x1012,0x1012,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011, -+0xf011,0x2d9,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -+0xf011,0xf011,0xf011,0,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x31a,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91,0x92,0xff91,0x92,0xff91, --1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x3d9,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x31a,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, -+0xff91,0x3d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xc392,0x92,0xff91,0x92, --0xff91,0x92,0xff91,0x459,0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92,0xff91,0x6692,0x6692,0x92, --0xff91,1,0x2792,0x6512,0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892,0x92,0xff91,0x5191,1, --0x6992,0x6a92,0x4111,0x6b12,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92,0xff91,0x6d12,1,1, --0x92,0xff91,0x6d12,0x92,0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92,0x92,0xff91,1,0, --0x92,0xff91,1,0x1c11,0,0,0,0,0x48a,0x4bb,0x4f9,0x52a,0x55b,0x599,0x5ca,0x5fb, --0x639,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, --0xff91,0xd891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x669,0x6ea,0x71b,0x759,0x92,0xff91,0xcf92,0xe412,0x92,0xff91,0x92,0xff91, -+0xc392,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x459,0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92, -+0xff91,0x6692,0x6692,0x92,0xff91,1,0x2792,0x6512,0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892, -+0x92,0xff91,0x5191,1,0x6992,0x6a92,0x4111,0x6b12,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92, -+0xff91,0x6d12,1,1,0x92,0xff91,0x6d12,0x92,0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92, -+0x92,0xff91,1,0,0x92,0xff91,1,0x1c11,0,0,0,0,0x48a,0x4bb,0x4f9,0x52a, -+0x55b,0x599,0x5ca,0x5fb,0x639,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, -+0xff91,0x92,0xff91,0x92,0xff91,0xd891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x669,0x6ea,0x71b,0x759,0x92,0xff91,0xcf92,0xe412, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xbf12,1,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --1,1,1,1,1,1,0x78a,0x92,0xff91,0xae92,0x7aa,0x7c9,0x7c9,0x92,0xff91,0x9e92, --0x2292,0x2392,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x7e9,0x809,0x829,0x9711, --0x9911,1,0x9991,0x9991,1,0x9b11,1,0x9a91,0x849,1,1,1,0x9991,0x869,1,0x9891, --1,0x889,0x8a9,1,0x97b1,0x9691,0x8a9,0x8c9,0x8e9,1,1,0x9691,1,0x909,0x9591,1, --1,0x9511,1,1,1,1,1,1,1,0x929,1,1,0x9311,1,0x949,0x9311, --1,1,1,0x969,0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1,1,1,0x9291,1, --0,1,1,1,1,1,1,1,1,0x989,0x9a9,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,5,5,0x25,5, --5,5,5,5,5,4,4,4,0x14,4,0x14,4,5,5,4,4, -+0xbf12,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,1,1,1,1,1,1,0x78a,0x92,0xff91,0xae92,0x7aa,0x7c9, -+0x7c9,0x92,0xff91,0x9e92,0x2292,0x2392,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x7e9,0x809,0x829,0x9711,0x9911,1,0x9991,0x9991,1,0x9b11,1,0x9a91,0x849,1,1,1, -+0x9991,0x869,1,0x9891,1,0x889,0x8a9,1,0x97b1,0x9691,0x8a9,0x8c9,0x8e9,1,1,0x9691, -+1,0x909,0x9591,1,1,0x9511,1,1,1,1,1,1,1,0x929,1,1, -+0x9311,1,0x949,0x9311,1,1,1,0x969,0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1, -+1,1,0x9291,1,0,1,1,1,1,1,1,1,1,0x989,0x9a9,1, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -+5,5,0x25,5,5,5,5,5,5,4,4,4,0x14,4,0x14,4, -+5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5, --5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,0x54,0x54,0x44,0x44, --0x44,0x44,0x44,0x9cc,0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x54, --0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, --0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x74,0x64,0x64, --0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x54,0x44, --0x44,0x9dd,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,0x44,0x44,0x44,0x64, --0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44, --0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91, --4,4,0x92,0xff91,0,0,5,0x4111,0x4111,0x4111,0,0x3a12,0,0,0,0, --4,4,0x1312,4,0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92,0xa29,0x1012,0xafa,0x1012, --0x1012,0xb3a,0x1012,0x1012,0xb7a,0xbca,0xc1a,0x1012,0xc5a,0x1012,0x1012,0x1012,0xc9a,0xcda,0,0xd1a, --0x1012,0x1012,0xd5a,0x1012,0x1012,0xd9a,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91,0xdd9,0xf011,0xea9,0xf011, --0xf011,0xee9,0xf011,0xf011,0xf29,0xf79,0xfc9,0xf011,0x1009,0xf011,0xf011,0xf011,0x1049,0x1089,0x10c9,0x10f9, --0xf011,0xf011,0x1139,0xf011,0xf011,0x1179,0xf011,0xf011,0xe011,0xe091,0xe091,0x412,0x11b9,0x11e9,2,2, --2,0x1239,0x1269,0xfc11,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x1299,0x12c9,0x391,0xc631, --0x12fa,0x1349,0,0x92,0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12,0x2812,0x2812,0x2812,0x2812, --0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x1012,0x1012,0x137a,0x1012, --0x13ba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x13fa,0x1012,0x1012,0x143a,0x147a,0x1012, --0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x14ca,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0x1509,0xf011, --0x1549,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1589,0xf011,0xf011,0x15c9,0x1609,0xf011, --0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1659,0xf011,0xf011,0xf011,0xf011,0xf011,0xd811,0xd811,0xd811,0xd811, --0xd811,0xd811,0xd831,0xd811,0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0x92,0xff91,0x169a,0x16d9, -+5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+0x54,0x54,0x44,0x44,0x44,0x44,0x44,0x9cc,0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44, -+0x44,0x44,0x44,0x54,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -+0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -+0x64,0x74,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44, -+0x44,0x44,0x54,0x44,0x44,0x9dd,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x64,4, -+0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64, -+0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -+0x92,0xff91,0x92,0xff91,4,4,0x92,0xff91,0,0,5,0x4111,0x4111,0x4111,0,0x3a12, -+0,0,0,0,4,4,0x1312,4,0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92, -+0xa29,0x1012,0xafa,0x1012,0x1012,0xb3a,0x1012,0x1012,0xb7a,0xbca,0xc1a,0x1012,0xc5a,0x1012,0x1012,0x1012, -+0xc9a,0xcda,0,0xd1a,0x1012,0x1012,0xd5a,0x1012,0x1012,0xd9a,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91, -+0xdd9,0xf011,0xea9,0xf011,0xf011,0xee9,0xf011,0xf011,0xf29,0xf79,0xfc9,0xf011,0x1009,0xf011,0xf011,0xf011, -+0x1049,0x1089,0x10c9,0x10f9,0xf011,0xf011,0x1139,0xf011,0xf011,0x1179,0xf011,0xf011,0xe011,0xe091,0xe091,0x412, -+0x11b9,0x11e9,2,2,2,0x1239,0x1269,0xfc11,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44, --0x44,0x44,0x44,0x44,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x1299,0x12c9,0x391,0xc631,0x12fa,0x1349,0,0x92,0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12, -+0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812, -+0x1012,0x1012,0x137a,0x1012,0x13ba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x13fa,0x1012, -+0x1012,0x143a,0x147a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x14ca,0x1012,0x1012,0x1012,0x1012,0x1012, -+0xf011,0xf011,0x1509,0xf011,0x1549,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1589,0xf011, -+0xf011,0x15c9,0x1609,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1659,0xf011,0xf011,0xf011,0xf011,0xf011, -+0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd831,0xd811,0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811, -+0x92,0xff91,0x169a,0x16d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0,0x44,0x44,0x44,0x44,0x44,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x792,0x92,0xff91,0x92, --0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x1812,0x1812,0x1812, --0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, --0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0,4,0,0,0,0,0,4, --1,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, -+0x792,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0,4,0,0, -+0,0,0,4,1,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, - 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, --0xe811,0xe811,0xe811,0x1719,1,0,0,0,0,0,0,0,0,0x64,0x44,0x44, --0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64, --0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64, --0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,0,0x64,0x64,0, --0x44,0x64,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -+0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x1719,1,0,0,0,0,0,0,0, -+0,0x64,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44, -+0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44, -+0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0x64, -+0,0x64,0x64,0,0x44,0x64,0,0x64,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, --4,4,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, --0x44,0x44,0x44,0x44,0x64,0x64,0x64,0,4,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, --0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44, --0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,0,0x44, --0x44,0x44,0x44,0x64,0x44,4,4,0x44,0x44,0,0x64,0x44,0x44,0x64,0,0, -+0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, -+4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0, -+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,4,0,0x64,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64, --0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x44,0, -+4,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64, -+0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44, -+0x44,4,0,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0x44,0x44,0,0x64,0x44, -+0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,4,0,0x64,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64, -+0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44, -+0x64,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4, --4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44, --0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0,0,0,0,4,0, --0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,4,0x44, --0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,0,0, -+0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, -+4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0,0,0,0, --0,0,0,0,4,0,0,0,0,0,0,0,4,4,0,0, --0,0,0,0,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,4,0x64, --0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44, --0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0,0,0,0, --0,0,0,0,0,4,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64, --0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, --0x64,0,0,0,0,4,4,4,4,4,4,4,4,0,0,0, --0,0x64,0,0,0,0x44,0x64,0x44,0x44,4,4,4,0,0,0,0, --0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, --0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0,0, -+0,0,4,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, -+0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,4,0x44,0x44,0x44, -+0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64, -+0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -+4,4,0,0,0,0,0,0,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x44, -+0x44,0x44,4,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64, -+0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44, -+0,0,0,0,0,0,0,0,0,4,0x44,0x44,0x44,0x44,0x44,0x64, -+0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -+4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x64,0,0,0,0,4,4,4,4,0,0,0, --0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -+0,0,4,0,0x64,0,0,0,0,4,4,4,4,4,4,4, -+4,0,0,0,0,0x64,0,0,0,0x44,0x64,0x44,0x44,4,4,4, - 0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0, -+0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0x44,0,0,4,4,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,4, --4,0,0,4,4,0x64,0,0,0,4,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, --0,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4, --4,4,0,4,4,0,0,0,0,0x64,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x64,0,0,0,0,4,4,4, -+4,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0x44,0,0,4,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x64,0,0,4,0,4,4,4, --4,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, --0,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4, -+0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0, -+0,0,0,4,4,0,0,4,4,0x64,0,0,0,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, -+4,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0, -+0,4,4,4,4,4,0,4,4,0,0,0,0,0x64,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, --0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, --4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x64,0,4,4,4,0,0,0,0,0,4,4,4,0,4,4, --4,0x64,0,0,0,0,0,0,0,0x64,0x64,0,0,0,0,0, --0,0,0,0,0,0,4,0,0,0,0,0,4,0x64,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4, -+0,4,4,4,4,0,0,0,0,0,0,0,0,0x64,0,0, -+0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0, -+0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0, --0,0,0x64,0,0,0,0,0,0,0,4,4,4,0,4,0, -+4,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,4,0,0,4,4,4,4,0x64,0x64,0x64,0,0,0,0,0, --0,0,4,4,0x64,0x64,0x64,0x64,4,4,4,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, --4,4,4,4,0x64,0x64,0x64,4,4,0,0,0,0,0,0,0, --0,0,4,0,0x64,0x64,0x64,0x64,4,4,0,0,0,0,0,0, -+4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x64,0x64,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0x64, --0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0x64,0x64,4,0x64,4,4,4,4,4,0x64,0x64, --0x64,0x64,4,0,0x64,4,0x44,0x44,0x64,0,0x44,0x44,0,0,0,0, --0,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0, --0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x64,0,4,4,4,0,0,0,0,0,4,4, -+4,0,4,4,4,0x64,0,0,0,0,0,0,0,0x64,0x64,0, -+0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, -+4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,4,4,4,4,0,4,4,4,4,4,0x64,0,0x64,0x64,0, --0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, --0,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0, --0,0,0,0,0,0,4,0,0,4,4,0,0,0,0,0, --0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,4,0,0,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a, --0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a, --0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0,0x175a,0,0,0,0,0,0x175a,0,0, --0x1779,0x17a9,0x17d9,0x1809,0x1839,0x1869,0x1899,0x18c9,0x18f9,0x1929,0x1959,0x1989,0x19b9,0x19e9,0x1a19,0x1a49, --0x1a79,0x1aa9,0x1ad9,0x1b09,0x1b39,0x1b69,0x1b99,0x1bc9,0x1bf9,0x1c29,0x1c59,0x1c89,0x1cb9,0x1ce9,0x1d19,0x1d49, --0x1d79,0x1da9,0x1dd9,0x1e09,0x1e39,0x1e69,0x1e99,0x1ec9,0x1ef9,0x1f29,0x1f59,0,4,0x1f89,0x1fb9,0x1fe9, -+0,0,0,0,0,0,0,0x64,0x64,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,4,4, -+4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,4,0,0,4,4,4,4,0x64,0x64,0x64,0, -+0,0,0,0,0,0,4,4,0x64,0x64,0x64,0x64,4,4,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44, --0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, --0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0,0,0x2059,0x2089,0x20b9,0x20e9,0x2119,0x2149,0,0, --0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, --0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, -+0,4,0,0,4,4,4,4,0x64,0x64,0x64,4,4,0,0,0, -+0,0,0,0,0,0,4,0,0x64,0x64,0x64,0x64,4,4,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,4,4,0x64,0x60,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,4,4,0x60,0,0,0, -+0,0,0,0,0,0,0,0,0x64,0x64,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,4,4,0,4,4,4,4,4,4,4,0,0, --0,0,0,0,0,0,4,0,0,4,4,4,4,4,4,4, --4,4,0x64,4,0,0,0,4,0,0,0,0,0,0x44,0,0, --0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, -+0,0x64,0,0x64,0,0x64,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0x64,0x64,4,0x64,4,4,4, -+4,4,0x64,0x64,0x64,0x64,4,0,0x64,4,0x44,0x44,0x64,0,0x44,0x44, -+0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4, -+0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+4,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,4,4,4,4,0,4,4,4,4,4,0x64, -+0,0x64,0x64,0,0,4,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0, -+4,4,0,0,0,0,4,4,4,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0, -+0,0,0,0,0,0,0,0,0,0,4,0,0,4,4,0, -+0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,4,0,0,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a, -+0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a, -+0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0,0x175a,0,0,0,0, -+0,0x175a,0,0,0x1779,0x17a9,0x17d9,0x1809,0x1839,0x1869,0x1899,0x18c9,0x18f9,0x1929,0x1959,0x1989, -+0x19b9,0x19e9,0x1a19,0x1a49,0x1a79,0x1aa9,0x1ad9,0x1b09,0x1b39,0x1b69,0x1b99,0x1bc9,0x1bf9,0x1c29,0x1c59,0x1c89, -+0x1cb9,0x1ce9,0x1d19,0x1d49,0x1d79,0x1da9,0x1dd9,0x1e09,0x1e39,0x1e69,0x1e99,0x1ec9,0x1ef9,0x1f29,0x1f59,0, -+5,0x1f89,0x1fb9,0x1fe9,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0x44,0x44,0x44,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, -+0x201a,0x201a,0x201a,0x201a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0,0,0x2059,0x2089,0x20b9,0x20e9, -+0x2119,0x2149,0,0,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, -+0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, -+0x201a,0x201a,0x201a,0x201a,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,4,4,0x64,0x60,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -+0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,4,4,0,4,4,4,4,4, -+4,4,0,0,0,0,0,0,0,0,4,0,0,4,4,4, -+4,4,4,4,4,4,0x64,4,0,0,0,4,0,0,0,0, -+0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -+4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,4,4,4,0,0,0,0,4,4,0,0,0, --0,0,0,0,0,0,4,0,0,0,0,0,0,0x64,0x44,0x64, -+0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0x44,0x64,0,0,4,0,0,0,0, -+0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,4, -+4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, -+0,0x64,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0,0,4, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,4,0,4,4,4,4,4,4,4,0, -+0x64,0,4,0,0,4,4,4,4,4,4,4,4,0,0,0, -+0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x64, -+0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -+0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,4,0x64, -+0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,4,0,4,4,4,4,4,4,4,0,0x64,0,4,0, --0,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4, --4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x64,0,0,0,0, --0,0,0,4,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, --0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,4,0x64,0x64,0x44,0x44,0x64, --0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0,0,0,0,0, -+0,0,0,0,0x64,0,4,4,4,4,4,0,4,0,0,0, -+0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x64,0,4,4,4,4,4,0,4,0,0,0,0,0,4,0, --0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44, --0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,4,4,4,4,0,0,4,4,0x60,0x64, --4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0x64,0,4,4,0,0,0,4,0,4, --4,4,0x60,0x60,0,0,0,0,0,0,0,0,0,0,0,0, --4,4,4,4,4,4,4,4,0,0,4,0x64,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,4,4,4,4,4,4,0,0,0x2179,0x21a9,0x21d9,0x2209, --0x2239,0x2289,0x22d9,0x2309,0x2339,0,0,0,0,0,0,0,0x236a,0x236a,0x236a,0x236a, -+0,0,0,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0, -+4,4,0x60,0x64,4,4,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,0,0, -+0,4,0,4,4,4,0x60,0x60,0,0,0,0,0,0,0,0, -+0,0,0,0,4,4,4,4,4,4,4,4,0,0,4,0x64, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0, -+0x2179,0x21a9,0x21d9,0x2209,0x2239,0x2289,0x22d9,0x2309,0x2339,0,0,0,0,0,0,0, - 0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a, --0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0,0,0x236a,0x236a,0x236a,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0, --0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0,0x64,0x64, --0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0,0,0,0,0, --0x44,0,0,0,0x44,0x44,0,0,0,0,0,0,1,1,1,1, -+0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0,0,0x236a,0x236a,0x236a, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64, -+0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0, -+0,0,0,0,0x44,0,0,0,0x44,0x44,0,0,0,0,0,0, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x25,5, --5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1, --1,1,1,1,5,0x2389,1,1,1,0x23a9,1,1,5,5,5,5, --0x25,5,5,5,0x25,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,0x23c9,1,1,1,1,1, --1,1,0x21,1,1,1,1,5,5,5,5,5,0x44,0x44,0x44,0x44, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,0x25,5,5,5,5,5,5,5,5,1,1,1,1,1, -+1,1,1,1,1,1,1,1,5,0x2389,1,1,1,0x23a9,1,1, -+5,5,5,5,0x25,5,5,5,0x25,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x23c9,1, -+1,1,1,1,1,1,0x21,1,1,1,1,5,5,5,5,5, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, --0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x64,0x44, --0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x44,0x44, --0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x23ea,0x2429,0x92,0xff91, -+0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64, -+0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64, -+0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x2469,0x24e9, --0x2569,0x25e9,0x2669,0x26e9,1,1,0x271a,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, --0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0, --0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, --0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, --0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0, --0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x2769,0x411,0x27e9,0x411,0x2899,0x411,0x2949,0x411, --0,0xfc12,0,0xfc12,0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, --0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11,0x2b11,0x2b11,0x3211,0x3211, --0x4011,0x4011,0x3811,0x3811,0x3f11,0x3f11,0,0,0x29f9,0x2a69,0x2ad9,0x2b49,0x2bb9,0x2c29,0x2c99,0x2d09, --0x2d7b,0x2deb,0x2e5b,0x2ecb,0x2f3b,0x2fab,0x301b,0x308b,0x30f9,0x3169,0x31d9,0x3249,0x32b9,0x3329,0x3399,0x3409, --0x347b,0x34eb,0x355b,0x35cb,0x363b,0x36ab,0x371b,0x378b,0x37f9,0x3869,0x38d9,0x3949,0x39b9,0x3a29,0x3a99,0x3b09, --0x3b7b,0x3beb,0x3c5b,0x3ccb,0x3d3b,0x3dab,0x3e1b,0x3e8b,0x411,0x411,0x3ef9,0x3f79,0x3fe9,0,0x4069,0x40e9, --0xfc12,0xfc12,0xdb12,0xdb12,0x419b,4,0x4209,4,4,4,0x4259,0x42d9,0x4349,0,0x43c9,0x4449, --0xd512,0xd512,0xd512,0xd512,0x44fb,4,4,4,0x411,0x411,0x4569,0x4619,0,0,0x46e9,0x4769, --0xfc12,0xfc12,0xce12,0xce12,0,4,4,4,0x411,0x411,0x4819,0x48c9,0x4999,0x391,0x4a19,0x4a99, --0xfc12,0xfc12,0xc812,0xc812,0xfc92,4,4,4,0,0,0x4b49,0x4bc9,0x4c39,0,0x4cb9,0x4d39, --0xc012,0xc012,0xc112,0xc112,0x4deb,4,4,0,0,0,0,0,0,0,0,0, --0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0, --4,4,0,0,0,0,0,0,4,0,0,4,0,0,4,4, --4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,4,4,4,4,4,0,4,4,4,4,4,4, --4,4,4,4,0,0x25,0,0,0,0,0,0,0,0,0,0, --0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x44, --0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44,0x64,0x44,0x64,0x64, --0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,2,0,0,0,0,2,0,0,1,2, --2,2,1,1,2,2,2,1,0,2,0,0,0,2,2,2, --2,2,0,0,0,0,0,0,2,0,0x4e5a,0,2,0,0x4e9a,0x4eda, --2,2,0,1,2,2,0xe12,2,1,0,0,0,0,1,0,0, --1,1,2,2,0,0,0,0,0,2,1,1,0x21,0x21,0,0, --0,0,0xf211,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812, --0x812,0x812,0x812,0x812,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811, --0xf811,0xf811,0xf811,0xf811,0,0,0,0x92,0xff91,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12, --0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311, --0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -+0x23ea,0x2429,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x2469,0x24e9,0x2569,0x25e9,0x2669,0x26e9,1,1,0x271a,1,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411, -+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -+0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411, -+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -+0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x2769,0x411,0x27e9,0x411, -+0x2899,0x411,0x2949,0x411,0,0xfc12,0,0xfc12,0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411, -+0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11, -+0x2b11,0x2b11,0x3211,0x3211,0x4011,0x4011,0x3811,0x3811,0x3f11,0x3f11,0,0,0x29f9,0x2a69,0x2ad9,0x2b49, -+0x2bb9,0x2c29,0x2c99,0x2d09,0x2d7b,0x2deb,0x2e5b,0x2ecb,0x2f3b,0x2fab,0x301b,0x308b,0x30f9,0x3169,0x31d9,0x3249, -+0x32b9,0x3329,0x3399,0x3409,0x347b,0x34eb,0x355b,0x35cb,0x363b,0x36ab,0x371b,0x378b,0x37f9,0x3869,0x38d9,0x3949, -+0x39b9,0x3a29,0x3a99,0x3b09,0x3b7b,0x3beb,0x3c5b,0x3ccb,0x3d3b,0x3dab,0x3e1b,0x3e8b,0x411,0x411,0x3ef9,0x3f79, -+0x3fe9,0,0x4069,0x40e9,0xfc12,0xfc12,0xdb12,0xdb12,0x419b,4,0x4209,4,4,4,0x4259,0x42d9, -+0x4349,0,0x43c9,0x4449,0xd512,0xd512,0xd512,0xd512,0x44fb,4,4,4,0x411,0x411,0x4569,0x4619, -+0,0,0x46e9,0x4769,0xfc12,0xfc12,0xce12,0xce12,0,4,4,4,0x411,0x411,0x4819,0x48c9, -+0x4999,0x391,0x4a19,0x4a99,0xfc12,0xfc12,0xc812,0xc812,0xfc92,4,4,4,0,0,0x4b49,0x4bc9, -+0x4c39,0,0x4cb9,0x4d39,0xc012,0xc012,0xc112,0xc112,0x4deb,4,4,0,0,0,0,0, -+0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0, -+0,0,0,0,4,4,0,0,0,0,0,0,4,0,0,4, -+0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,4, -+4,4,4,4,4,4,4,4,0,0x25,0,0,0,0,0,0, -+0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44, -+0x64,0x64,0x64,0x44,0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44, -+0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2, -+0,0,1,2,2,2,1,1,2,2,2,1,0,2,0,0, -+0,2,2,2,2,2,0,0,0,0,0,0,2,0,0x4e5a,0, -+2,0,0x4e9a,0x4eda,2,2,0,1,2,2,0xe12,2,1,0,0,0, -+0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,1, -+0x21,0x21,0,0,0,0,0xf211,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812, -+0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811, -+0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0,0,0,0x92,0xff91,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12, -+0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311, -+0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, - 0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -+0x1812,0x1812,0x1812,0x1812,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, - 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, --0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, --0x92,0xff91,0x4f1a,0x4f3a,0x4f5a,0x4f79,0x4f99,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x4fba,0x4fda,0x4ffa, --0x501a,1,0x92,0xff91,1,0x92,0xff91,1,1,1,1,1,0x25,5,0x503a,0x503a, --0x92,0xff91,0x92,0xff91,1,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,0x44, --0x44,0x44,0x92,0xff91,0,0,0,0,0,0,0,0,0,0,0,0, --0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059, -+0xe811,0xe811,0xe811,0xe811,0x92,0xff91,0x4f1a,0x4f3a,0x4f5a,0x4f79,0x4f99,0x92,0xff91,0x92,0xff91,0x92, -+0xff91,0x4fba,0x4fda,0x4ffa,0x501a,1,0x92,0xff91,1,0x92,0xff91,1,1,1,1,1, -+0x25,5,0x503a,0x503a,0x92,0xff91,0x92,0xff91,1,0,0,0,0,0,0,0x92, -+0xff91,0x92,0xff91,0x44,0x44,0x44,0x92,0xff91,0,0,0,0,0,0,0,0, -+0,0,0,0,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059, - 0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059, --0x5059,0x5059,0,0x5059,0,0,0,0,0,0x5059,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64, --0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -+0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0,0x5059,0,0,0,0,0,0x5059,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, - 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, --0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x60,0x60, --0,4,4,4,4,4,0,0,0,0,0,4,0,0,0,0, -+0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0x64,0x64, -+0x64,0x64,0x60,0x60,0,4,4,4,4,4,0,0,0,0,0,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0x64,0x64,4,4,4,4,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0x64,0x64,4,4,4,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x507a,0x50b9, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,4,4,4,0,0x44,0x44,0x44,0x44, --0x44,0x44,0x44,0x44,0x44,0x44,0,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x507a,0x50b9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,4,4,4,0, -+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,4,0x92,0xff91,0x92,0xff91, - 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,5,5,0x44,0x44,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x44,0x44,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,5,0x44,0x44,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,1,1,1, --1,1,1,1,1,0x92,0xff91,0x92,0xff91,0x50fa,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,4,4,4,0x92,0xff91,0x511a,1,0,0x92,0xff91,0x92,0xff91, --0x1811,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x513a,0x515a, --0x517a,0x519a,0x513a,1,0x51ba,0x51da,0x51fa,0x521a,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, --0x92,0xff91,0x92,0xff91,0xe812,0x523a,0x525a,0x92,0xff91,0x92,0xff91,0,0,0,0,0, --0x92,0xff91,0,1,0,1,0x92,0xff91,0x92,0xff91,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, --4,0x92,0xff91,0,5,5,1,0,0,0,0,0,0,0,4,0, --0,0,0x64,0,0,0,0,4,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0, --0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x64,4,0,0,0,0,0,0, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+5,1,1,1,1,1,1,1,1,0x92,0xff91,0x92,0xff91,0x50fa,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,4,4,4,0x92,0xff91,0x511a,1,0, -+0x92,0xff91,0x92,0xff91,0x1811,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x513a,0x515a,0x517a,0x519a,0x513a,1,0x51ba,0x51da,0x51fa,0x521a,0x92,0xff91,0x92,0xff91, -+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xe812,0x523a,0x525a,0x92,0xff91,0x92,0xff91,0, -+0,0,0,0,0x92,0xff91,0,1,0,1,0x92,0xff91,0x92,0xff91,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,5,5,5,0x92,0xff91,0,5,5,1,0,0,0,0,0, -+0,0,4,0,0,0,0x64,0,0,0,0,4,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,4,4,0,0,0,0,0,0x64,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x64,4,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0, -+0,0,0,0,0,0,0,4,0,0,0,0,0,0,4,4, -+4,4,4,0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, -+4,4,4,4,4,4,0,0x60,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4,4, -+4,4,0,0,4,4,0,0,0x60,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0, -+0,4,4,0,0,4,4,0,0,0,0,0,0,0,0,0, -+0,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, --0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0, --0,0,0,4,0,0,0,0,0,0,4,4,4,4,4,0x64, --0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4, --4,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0x64,0,0,4,4,4,4,0,0, --4,4,0,0,0x60,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,4,4,4,4,4,4,0,0,4,4,0, --0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4, --0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, --0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x44,0,0x44,0x44, --0x64,0,0,0x44,0x44,0,0,0,0,0,0x44,0x44,0,0x44,0,0, -+4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,4, --4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,0x5279,1,1,1,1,1,1,1,4, --5,5,5,5,1,1,1,1,1,1,1,1,1,4,4,4, --0,0,0,0,0x5299,0x52c9,0x52f9,0x5329,0x5359,0x5389,0x53b9,0x53e9,0x5419,0x5449,0x5479,0x54a9, --0x54d9,0x5509,0x5539,0x5569,0x5b99,0x5bc9,0x5bf9,0x5c29,0x5c59,0x5c89,0x5cb9,0x5ce9,0x5d19,0x5d49,0x5d79,0x5da9, --0x5dd9,0x5e09,0x5e39,0x5e69,0x5e99,0x5ec9,0x5ef9,0x5f29,0x5f59,0x5f89,0x5fb9,0x5fe9,0x6019,0x6049,0x6079,0x60a9, --0x60d9,0x6109,0x6139,0x6169,0x5599,0x55c9,0x55f9,0x5629,0x5659,0x5689,0x56b9,0x56e9,0x5719,0x5749,0x5779,0x57a9, --0x57d9,0x5809,0x5839,0x5869,0x5899,0x58c9,0x58f9,0x5929,0x5959,0x5989,0x59b9,0x59e9,0x5a19,0x5a49,0x5a79,0x5aa9, --0x5ad9,0x5b09,0x5b39,0x5b69,0,0,0,0,0,4,0,0,4,0,0,0, --0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x6199,0x6219,0x6299,0x6319,0x63c9,0x6479,0x6519,0,0,0,0,0, --0,0,0,0,0,0,0,0x65b9,0x6639,0x66b9,0x6739,0x67b9,0,0,0,0, --0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,0,0,0,4,0,0,0,0, --0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64, --0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,4,0,0,4,0,0, --0,0,0,0,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -+0x44,0,0x44,0x44,0x64,0,0,0x44,0x44,0,0,0,0,0,0x44,0x44, -+0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, -+0,0,0,4,4,0,0x64,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,0x5279,1,1,1,1, -+1,1,1,4,5,5,5,5,1,1,1,1,1,1,1,1, -+1,5,4,4,0,0,0,0,0x5299,0x52c9,0x52f9,0x5329,0x5359,0x5389,0x53b9,0x53e9, -+0x5419,0x5449,0x5479,0x54a9,0x54d9,0x5509,0x5539,0x5569,0x5b99,0x5bc9,0x5bf9,0x5c29,0x5c59,0x5c89,0x5cb9,0x5ce9, -+0x5d19,0x5d49,0x5d79,0x5da9,0x5dd9,0x5e09,0x5e39,0x5e69,0x5e99,0x5ec9,0x5ef9,0x5f29,0x5f59,0x5f89,0x5fb9,0x5fe9, -+0x6019,0x6049,0x6079,0x60a9,0x60d9,0x6109,0x6139,0x6169,0x5599,0x55c9,0x55f9,0x5629,0x5659,0x5689,0x56b9,0x56e9, -+0x5719,0x5749,0x5779,0x57a9,0x57d9,0x5809,0x5839,0x5869,0x5899,0x58c9,0x58f9,0x5929,0x5959,0x5989,0x59b9,0x59e9, -+0x5a19,0x5a49,0x5a79,0x5aa9,0x5ad9,0x5b09,0x5b39,0x5b69,0,0,0,0,0,4,0,0, -+4,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x6199,0x6219,0x6299,0x6319,0x63c9,0x6479,0x6519,0, -+0,0,0,0,0,0,0,0,0,0,0,0x65b9,0x6639,0x66b9,0x6739,0x67b9, -+0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, -+4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,4, -+0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, -+0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, -+0,4,0,0,0,0,0,0,0,0,0,0,0,0x1012,0x1012,0x1012, - 0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, --0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011, - 0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, --0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, -+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0, --0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0x1412,0x1412,0x1412,0x1412, -+0,0x64,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0, -+0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, - 0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, --0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0xec11,0xec11,0xec11,0xec11, --0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11, --0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, --0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0,0,0,0,0xec11,0xec11,0xec11,0xec11, - 0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11, - 0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392, --0x1392,0x1392,0x1392,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0,0x1392,0x1392,0,0xec91, --0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0xec91,0xec91,0xec91, --0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0xec91,0xec91,0xec91, --0xec91,0xec91,0,0xec91,0xec91,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, --5,5,5,0,0,0,0,0,5,4,4,5,5,5,0,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0,4,4,4,0,4,4,0, --0,0,0,0,4,0x64,4,0x44,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0,0,0x44,0x64,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012, -+0,0,0,0,0,0,0,0,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, -+0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0,0,0,0, -+0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11, -+0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x1392,0x1392,0x1392,0x1392, -+0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0, -+0x1392,0x1392,0,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91, -+0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91, -+0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0,0,0,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -+5,5,5,5,5,5,5,0,0,0,0,0,5,4,4,5, -+5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0,4,4,4, -+0,4,4,0,0,0,0,0,4,0x64,4,0x44,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0, -+0,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x2012,0x2012,0x2012,0x2012, - 0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012, --0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0,0,0,0,0, --0,0,0,0,0,0,0,0,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011, -+0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0xe011,0xe011,0xe011,0xe011, - 0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011, --0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0,0,0, -+0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0x44,0x44,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64, --0x44,0x44,0x44,0x64,0x44,0x64,0x64,0x64,0x64,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x64,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, --4,4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4, --4,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, --4,4,4,0,0,0x64,0x64,0,0,4,0,0,0,0,4,0, --0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64, -+0,0,0,0,0,0,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x64,0x64, -+0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0x44,0x64,0x44,0x64,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, --4,4,4,4,0,4,4,4,4,4,4,0x64,0x64,0,0,0, -+4,4,4,4,4,4,4,4,4,4,0x64,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x64,0,0,4,4,0,0,0,0,0,0,0, - 0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, --4,4,4,0,0x60,0,0,0,0,0,0,0,0,4,0x64,4, --4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,4,4,4,0,0,4,0x60,0x64,4, --0,0,0,0,0,0,4,0,0,0,0,4,4,4,4,4, --4,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, --0,0,0,0,0,0x60,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44, --0x44,0,0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0, --0,0,0,0,0,0,0x64,4,4,0,0x64,0,0,0,0,0, -+0,0,0,0,0,0,0,4,4,4,4,0,0,0x64,0x64,0, -+0,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0, -+0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,4,4,4,4,4,4,0,4,0, --0,0,0,4,4,0,0x64,0x64,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,4,4,4,4,4,0,4,4,4, -+4,4,4,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,4,4,4,4,0,0,0,0,0,0, --4,4,0,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0, -+0,0,4,4,4,4,4,4,4,4,4,0,0x60,0,0,0, -+0,0,0,0,0,4,0x64,4,4,0,0,4,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -+4,4,0,0,4,0x60,0x64,4,0,0,0,0,0,0,4,0, -+0,0,0,4,4,4,4,4,4,0x64,0x64,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,0, --0,4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,4, --0,4,0,0,4,4,4,4,4,4,0x60,0x64,0,0,0,0, -+4,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,4,4,4,0,0,4,4, --4,4,0,4,4,4,4,0x64,0,0,0,0,0,0,0,0, -+0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0x44,0x44,0x44,0x44, -+0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,4, -+4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0x44,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, --4,4,4,4,4,4,4,4,0,0x64,0x64,0,0,0,0,0, --0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, --0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, --0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, --0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -+4,4,4,4,4,0,4,0,0,0,0,4,4,0,0x64,0x64, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,4,4,0x60,0x64,0, --0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -+4,4,0,0,0,0,0,0,4,4,0,0x64,0x64,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --4,4,4,4,0,0,4,4,0,0,0,0,0,4,4,4, --4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, --0x64,4,4,4,4,0,0,4,4,4,4,0,0,0,0,0, --0,0,0,0x64,0,0,0,0,0,0,0,0,0,4,4,4, --4,4,4,0,0,4,4,4,0,0,0,0,0,0,0,0, --0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,0, --4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,4,4,4,4,4,4,4,0,4,4,4,4, --4,4,0,0x64,4,4,4,4,4,4,4,4,0,0,4,4, --4,4,4,4,4,0,4,4,0,4,4,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, --4,4,4,0,0,0,4,0,4,4,0,4,4,4,0x64,4, --0x64,0x64,0,4,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, --0,4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, --4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0,0,0, -+4,4,4,4,4,4,4,0,0,4,0,0x64,0,0,0,0, -+0,0,0,0,0,0,0,4,0,4,0,0,4,4,4,4, -+4,4,0x60,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,4,4,4,0,0,4,4,4,4,0,4,4,4,4,0x64, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,0,4,4,0,0,0, --0,0,0,0,0,0,0,0,0x60,0x60,0,0,0,0,0,0, -+0,0x64,0x64,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,4,4,0x60,0x64,0,0,0,0,0x64,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,4,4,4,4,0,0,4,4, -+0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,4,0x64,4,4,4,4,0,0,4, -+4,4,4,0,0,0,0,0,0,0,0,0x64,0,0,0,0, -+0,0,0,0,0,4,4,4,4,4,4,0,0,4,4,4, -+0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, -+4,4,4,4,4,4,4,0,4,0x64,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, --0,4,4,4,4,4,4,4,0,4,4,0,0,0,0,0, -+4,4,4,0,4,4,4,4,4,4,0,0x64,4,4,4,4, -+4,4,4,4,0,0,4,4,4,4,4,4,4,0,4,4, -+0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,4,4,4,4,4,4,0,0,0,4,0, -+4,4,0,4,4,4,0x64,4,0x64,0x64,0,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,4,0x64,0,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,0,0,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0, -+0,0,0,0,4,4,0,0,0,4,0,0x64,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -+4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,0, -+0,0,0,0,4,0x60,0x64,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0x60,0x60,0x64,0x64,0x64,0,0, --0,0x60,0x60,0x60,0x60,0x60,0x60,4,4,4,4,4,4,4,4,0x64, --0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64, -+0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, -+4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4, -+4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64, -+0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4, -+4,0,0,0,0,0,0,0,0,0,0,0,0x60,0x60,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+4,4,4,4,0,4,4,4,4,4,4,4,0,4,4,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0x64,0, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0x60,0x64, -+0x64,0x64,0,0,0,0x60,0x60,0x60,0x60,0x60,0x60,4,4,4,4,4, -+4,4,4,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0x44,0x44,0x44, -+0x44,0x44,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, --0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,1,1,1,1,1,1,1,1,0x21,0x21, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, --1,1,1,1,1,0,0x21,0x21,1,1,1,1,1,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1, - 1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,2,0,2,2,0,0,2,0,0,2,2,0, --0,2,2,2,2,0,2,2,2,2,2,2,2,2,1,1, --1,1,0,1,0,1,0x21,0x21,1,1,1,1,0,1,1,1, --1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,1,1,1,1,2,2,0,2, --2,2,2,0,0,2,2,2,2,2,2,2,2,0,2,2, --2,2,2,2,2,0,1,1,1,1,1,1,1,1,0x21,0x21, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --2,2,0,2,2,2,2,0,2,2,2,2,2,0,2,0, --0,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,1,1,1,1,1,1,1,0,0x21,0x21,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, -+1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,2,0,2,2,0,0,2,0, -+0,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2, -+2,2,1,1,1,1,0,1,0,1,0x21,0x21,1,1,1,1, -+0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -+2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2, -+2,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1, - 1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,2,2,0,2,2,2,2,0,2,2,2,2, -+2,0,2,0,0,0,2,2,2,2,2,2,2,0,1,1, -+1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1, - 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,1,1,1,1,1,1,0,0,2,2,2,2, -+2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, --1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0, -+2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,0,1,1,1,1,1,1,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,0, --1,1,1,1,1,1,2,1,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, -+1,1,1,0,1,1,1,1,1,1,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+1,1,1,0,1,1,1,1,1,1,2,1,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,0,0,0,0,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,0,0,0,0,0,0,0,0,4,0,0, --0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, --4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0x44,0x44,0x44,0x44, --0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x44, --0x44,0x44,0x44,0x44,1,1,1,1,1,1,1,1,1,1,0,1, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x21,1, --1,1,1,0,0x44,0x44,0,0x44,0x44,0,0x44,0x44,0x44,0x44,0x44,0, -+4,4,4,4,4,4,4,0,0,0,0,4,4,4,4,4, -+4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0, -+0,4,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,4,4,4,4,4,0,4,4,4,4,4,4,4, -+4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0, -+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -+0x44,0,0,0x44,0x44,0x44,0x44,0x44,1,1,1,1,1,1,1,1, -+1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,0x21,1,1,1,1,0,0,0,0,0,0,1,1,1, -+1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0x44,0x44,0,0x44,0x44,0,0x44,0x44, -+0x44,0x44,0x44,0,0,0,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,0x25,5,5,5,5,5,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0x44,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+0x25,0x25,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,4,4, --4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -+0x64,0x64,0x64,0x44,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0, - 0,0,0,0,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112, - 0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112, -@@ -965,17 +980,17 @@ static const UCaseProps ucase_props_singleton={ - ucase_props_unfold, - { - ucase_props_trieIndex, -- ucase_props_trieIndex+3408, -+ ucase_props_trieIndex+3412, - NULL, -- 3408, -- 9500, -+ 3412, -+ 9736, - 0x188, -- 0xdcc, -+ 0xdd0, - 0x0, - 0x0, - 0xe0800, -- 0x3268, -- NULL, 0, FALSE, FALSE, 0, NULL -+ 0x3358, -+ NULL, 0, false, false, 0, NULL - }, - { 4,0,0,0 } - }; -diff --git a/deps/icu-small/source/common/ucasemap.cpp b/deps/icu-small/source/common/ucasemap.cpp -index 95b55d56a0..fc0439db0f 100644 ---- a/deps/icu-small/source/common/ucasemap.cpp -+++ b/deps/icu-small/source/common/ucasemap.cpp -@@ -157,7 +157,7 @@ appendResult(int32_t cpLength, int32_t result, const UChar *s, - ByteSinkUtil::appendCodePoint(cpLength, result, sink, edits); - } - } -- return TRUE; -+ return true; - } - - // See unicode/utf8.h U8_APPEND_UNSAFE(). -@@ -525,14 +525,14 @@ ucasemap_internalUTF8ToTitle( - csc.p=(void *)src; - csc.limit=srcLength; - int32_t prev=0; -- UBool isFirstIndex=TRUE; -+ UBool isFirstIndex=true; - - /* titlecasing loop */ - while(prevfirst(); - } else { - index=iter->next(); -@@ -643,12 +643,12 @@ UBool isFollowedByCasedLetter(const uint8_t *s, int32_t i, int32_t length) { - if ((type & UCASE_IGNORABLE) != 0) { - // Case-ignorable, continue with the loop. - } else if (type != UCASE_NONE) { -- return TRUE; // Followed by cased letter. -+ return true; // Followed by cased letter. - } else { -- return FALSE; // Uncased and not case-ignorable. -+ return false; // Uncased and not case-ignorable. - } - } -- return FALSE; // Not followed by cased letter. -+ return false; // Not followed by cased letter. - } - - // Keep this consistent with the UTF-16 version in ustrcase.cpp and the Java version in CaseMap.java. -@@ -707,7 +707,7 @@ void toUpper(uint32_t options, - nextState |= AFTER_VOWEL_WITH_ACCENT; - } - // Map according to Greek rules. -- UBool addTonos = FALSE; -+ UBool addTonos = false; - if (upper == 0x397 && - (data & HAS_ACCENT) != 0 && - numYpogegrammeni == 0 && -@@ -718,7 +718,7 @@ void toUpper(uint32_t options, - if (i == nextIndex) { - upper = 0x389; // Preserve the precomposed form. - } else { -- addTonos = TRUE; -+ addTonos = true; - } - } else if ((data & HAS_DIALYTIKA) != 0) { - // Preserve a vowel with dialytika in precomposed form if it exists. -@@ -733,7 +733,7 @@ void toUpper(uint32_t options, - - UBool change; - if (edits == nullptr && (options & U_OMIT_UNCHANGED_TEXT) == 0) { -- change = TRUE; // common, simple usage -+ change = true; // common, simple usage - } else { - // Find out first whether we are changing the text. - U_ASSERT(0x370 <= upper && upper <= 0x3ff); // 2-byte UTF-8, main Greek block -diff --git a/deps/icu-small/source/common/uchar.cpp b/deps/icu-small/source/common/uchar.cpp -index 61e9c3d900..7789a3b88a 100644 ---- a/deps/icu-small/source/common/uchar.cpp -+++ b/deps/icu-small/source/common/uchar.cpp -@@ -126,7 +126,7 @@ u_isxdigit(UChar32 c) { - (c<=0x66 && c>=0x41 && (c<=0x46 || c>=0x61)) || - (c>=0xff21 && c<=0xff46 && (c<=0xff26 || c>=0xff41)) - ) { -- return TRUE; -+ return true; - } - - GET_PROPS(c, props); -@@ -249,7 +249,7 @@ U_CAPI UBool U_EXPORT2 - u_isprint(UChar32 c) { - uint32_t props; - GET_PROPS(c, props); -- /* comparing ==0 returns FALSE for the categories mentioned */ -+ /* comparing ==0 returns false for the categories mentioned */ - return (UBool)((CAT_MASK(props)&U_GC_C_MASK)==0); - } - -@@ -273,7 +273,7 @@ U_CAPI UBool U_EXPORT2 - u_isgraph(UChar32 c) { - uint32_t props; - GET_PROPS(c, props); -- /* comparing ==0 returns FALSE for the categories mentioned */ -+ /* comparing ==0 returns false for the categories mentioned */ - return (UBool)((CAT_MASK(props)& - (U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CS_MASK|U_GC_CN_MASK|U_GC_Z_MASK)) - ==0); -@@ -291,7 +291,7 @@ u_isgraphPOSIX(UChar32 c) { - uint32_t props; - GET_PROPS(c, props); - /* \p{space}\p{gc=Control} == \p{gc=Z}\p{Control} */ -- /* comparing ==0 returns FALSE for the categories mentioned */ -+ /* comparing ==0 returns false for the categories mentioned */ - return (UBool)((CAT_MASK(props)& - (U_GC_CC_MASK|U_GC_CS_MASK|U_GC_CN_MASK|U_GC_Z_MASK)) - ==0); -@@ -591,7 +591,7 @@ uscript_hasScript(UChar32 c, UScriptCode sc) { - uint32_t sc32=sc; - if(sc32>0x7fff) { - /* Guard against bogus input that would make us go past the Script_Extensions terminator. */ -- return FALSE; -+ return false; - } - while(sc32>*scx) { - ++scx; -@@ -654,7 +654,7 @@ _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32 - sa->add(sa->set, start); - (void)end; - (void)value; -- return TRUE; -+ return true; - } - - #define USET_ADD_CP_AND_NEXT(sa, cp) sa->add(sa->set, cp); sa->add(sa->set, cp+1) -diff --git a/deps/icu-small/source/common/uchar_props_data.h b/deps/icu-small/source/common/uchar_props_data.h -index c45b9da3fd..acbeadd249 100644 ---- a/deps/icu-small/source/common/uchar_props_data.h -+++ b/deps/icu-small/source/common/uchar_props_data.h -@@ -9,146 +9,146 @@ - - #ifdef INCLUDED_FROM_UCHAR_C - --static const UVersionInfo dataVersion={0xe,0,0,0}; -+static const UVersionInfo dataVersion={0xf,0,0,0}; - --static const uint16_t propsTrie_index[22688]={ --0x48c,0x494,0x49c,0x4a4,0x4bc,0x4c4,0x4cc,0x4d4,0x4dc,0x4e4,0x4ea,0x4f2,0x4fa,0x502,0x50a,0x512, --0x518,0x520,0x528,0x530,0x533,0x53b,0x543,0x54b,0x553,0x55b,0x557,0x55f,0x567,0x56f,0x574,0x57c, --0x584,0x58c,0x590,0x598,0x5a0,0x5a8,0x5b0,0x5b8,0x5b4,0x5bc,0x5c1,0x5c9,0x5cf,0x5d7,0x5df,0x5e7, --0x5ef,0x5f7,0x5ff,0x607,0x60c,0x614,0x617,0x61f,0x627,0x62f,0x635,0x63d,0x63c,0x644,0x64c,0x654, --0x664,0x65c,0x66c,0x674,0x67a,0x5f7,0x68a,0x682,0x69a,0x69c,0x6a4,0x692,0x6b4,0x6ba,0x6c2,0x6ac, --0x6d2,0x6d8,0x6e0,0x6ca,0x6f0,0x6f6,0x6fe,0x6e8,0x70e,0x714,0x71c,0x706,0x72c,0x734,0x73c,0x724, --0x74c,0x752,0x75a,0x744,0x76a,0x770,0x778,0x762,0x788,0x78d,0x795,0x780,0x7a5,0x7ac,0x7b4,0x79d, --0x638,0x7bc,0x7c4,0x4ac,0x7cc,0x7d3,0x7db,0x4ac,0x7e3,0x7eb,0x7f3,0x7f8,0x800,0x807,0x80f,0x4ac, --0x5f7,0x817,0x81f,0x827,0x82f,0x584,0x83f,0x837,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x847,0x5f7,0x84f,0x853,0x85b,0x5f7,0x861,0x5f7,0x867,0x86f,0x877,0x584,0x584,0x87f, --0x887,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x88c,0x894,0x5f7,0x5f7,0x89c,0x8a4,0x8ac,0x8b4,0x8bc,0x5f7,0x8c4,0x8cc,0x8d4, --0x8e4,0x5f7,0x8ec,0x8ee,0x8f6,0x8dc,0x5f7,0x8f9,0x90d,0x901,0x909,0x915,0x5f7,0x91d,0x923,0x92b, --0x933,0x5f7,0x943,0x94b,0x953,0x93b,0x963,0x4ac,0x96b,0x96e,0x976,0x95b,0x986,0x97e,0x5f7,0x98d, --0x5f7,0x99c,0x995,0x9a4,0x9ac,0x9b0,0x9b8,0x9c0,0x52c,0x9c8,0x9cb,0x9d1,0x9d8,0x9cb,0x553,0x553, --0x4dc,0x4dc,0x4dc,0x4dc,0x9e0,0x4dc,0x4dc,0x4dc,0x9f0,0x9f8,0xa00,0xa08,0xa10,0xa14,0xa1c,0x9e8, --0xa34,0xa3c,0xa24,0xa2c,0xa44,0xa4c,0xa54,0xa5c,0xa74,0xa64,0xa6c,0xa7c,0xa84,0xa93,0xa98,0xa8b, --0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa8,0xab0,0x92b,0xab3,0xabb,0xac2,0xac7,0xacf, --0x92b,0xad6,0xad5,0xae6,0xae9,0x92b,0x92b,0xade,0x92b,0x92b,0x92b,0x92b,0x92b,0xaf8,0xb00,0xaf0, --0x92b,0x92b,0x92b,0xb05,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xb0b,0xb13,0x92b,0xb1b,0xb22, --0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xaa0,0xaa0,0xaa0,0xaa0,0xb2a,0xaa0,0xb31,0xb38, --0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0x92b,0xb40,0xb47,0xb4b,0xb51,0x92b,0x92b,0x92b, --0x584,0x58c,0x52c,0xb59,0x4dc,0x4dc,0x4dc,0xb61,0x52c,0xb69,0x5f7,0xb6f,0xb7f,0xb77,0xb77,0x553, --0xb87,0xb8f,0xb97,0x4ac,0xb9f,0x92b,0x92b,0xba6,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xbae,0xbb4, --0xbc4,0xbbc,0x638,0x5f7,0xbcc,0x887,0x5f7,0xbd4,0xbdc,0xbe0,0x5f7,0x5f7,0xbe5,0x5f7,0x92b,0xbec, --0xad0,0xbf4,0xbfa,0x92b,0xbf4,0xc02,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b, --0xc0a,0x5f7,0x5f7,0x5f7,0xc12,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0xc18,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc1d,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x92b,0x92b, --0xc25,0x5f7,0xc28,0x5f7,0xc30,0xc36,0xc3e,0xc46,0xc4b,0x5f7,0x5f7,0xc4f,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc56,0x5f7,0xc5d,0xc63,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc6b,0x5f7,0x5f7,0x5f7,0xc73,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc75,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc7c,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0xc83,0x5f7,0x5f7,0x5f7,0xc8a,0xc92,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc97,0x5f7,0x5f7,0xc9f,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xca3,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xca6,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xca9,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0xcaf,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0xcb7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0xcbc,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xcc1,0x5f7,0x5f7,0x5f7,0xcc6,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0xcce,0xcd5,0xcd9,0x5f7,0x5f7,0x5f7,0xce0,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0xcee,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0xce6,0x92b,0xcf6,0x9a4,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0xcfb,0xd03,0x4dc,0xd13,0xd0b,0x5f7,0x5f7,0xd1b,0xd23,0xd33,0x4dc,0xd38,0xd40,0xd46,0xd4d,0xd2b, --0xd55,0xd5d,0x5f7,0xd65,0xd75,0xd78,0xd6d,0xd80,0x64c,0xd88,0xd8f,0x8ed,0x69a,0xd9f,0xd97,0xda7, --0x5f7,0xdaf,0xdb7,0xdbf,0x5f7,0xdc7,0xdcf,0xdd7,0xddf,0xde7,0xdeb,0xdf3,0x52c,0x52c,0x5f7,0xdfb, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xe03,0xe0f,0xe07, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, --0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0x5f7,0x5f7,0x5f7,0xe27,0x5f7,0xce1,0xe2e,0xe33, --0x5f7,0x5f7,0x5f7,0xe3b,0x5f7,0x5f7,0x8f8,0x4ac,0xe51,0xe41,0xe49,0x5f7,0x5f7,0xe59,0xe61,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xe66,0x92f,0x5f7,0xe6e,0x5f7,0xe74,0xe78, --0xe80,0xe88,0xe8f,0xe97,0x5f7,0x5f7,0x5f7,0xe9d,0xeb5,0x49c,0xebd,0xec5,0xeca,0x90d,0xea5,0xead, --0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, --0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, --0x12b0,0x12b0,0x12f0,0x1330,0x1370,0x13a8,0x13e8,0x1428,0x1460,0x14a0,0x14cc,0x150c,0x154c,0x155c,0x159c,0x15d0, --0x1610,0x1640,0x1680,0x16c0,0x16d0,0x1704,0x173c,0x177c,0x17bc,0x17fc,0x1830,0x185c,0x189c,0x18d4,0x18f0,0x1930, --0xa80,0xac0,0xb00,0xb40,0xb80,0xbab,0xbeb,0xa40,0xc0d,0xa40,0xa40,0xa40,0xa40,0xc4d,0x1db,0x1db, --0xc8d,0xccd,0xa40,0xa40,0xa40,0xcf6,0xd36,0xd56,0xa40,0xd7c,0xdbc,0xdfc,0xe3c,0xe7c,0xebc,0xefc, --0xf3c,0xf73,0x1db,0x1db,0xf97,0xfcb,0x1db,0xff3,0x1db,0x1db,0x1db,0x1db,0x1020,0x1db,0x1db,0x1db, --0x1db,0x1db,0x1db,0x1db,0x1034,0x1db,0x106c,0x10ac,0x1db,0x10b7,0x1db,0x1db,0x1db,0x10ed,0xa40,0x112d, --0x1db,0x1db,0x116d,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -+static const uint16_t propsTrie_index[23016]={ -+0x495,0x49d,0x4a5,0x4ad,0x4c5,0x4cd,0x4d5,0x4dd,0x4e5,0x4ed,0x4f3,0x4fb,0x503,0x50b,0x513,0x51b, -+0x521,0x529,0x531,0x539,0x53c,0x544,0x54c,0x554,0x55c,0x564,0x560,0x568,0x570,0x578,0x57d,0x585, -+0x58d,0x595,0x599,0x5a1,0x5a9,0x5b1,0x5b9,0x5c1,0x5bd,0x5c5,0x5ca,0x5d2,0x5d8,0x5e0,0x5e8,0x5f0, -+0x5f8,0x600,0x608,0x610,0x615,0x61d,0x620,0x628,0x630,0x638,0x63e,0x646,0x645,0x64d,0x655,0x65d, -+0x66d,0x665,0x675,0x67d,0x683,0x600,0x693,0x68b,0x6a3,0x6a5,0x6ad,0x69b,0x6bd,0x6c3,0x6cb,0x6b5, -+0x6db,0x6e1,0x6e9,0x6d3,0x6f9,0x6ff,0x707,0x6f1,0x717,0x71d,0x725,0x70f,0x735,0x73d,0x745,0x72d, -+0x755,0x75b,0x763,0x74d,0x773,0x779,0x781,0x76b,0x791,0x796,0x79e,0x789,0x7ae,0x7b5,0x7bd,0x7a6, -+0x641,0x7c5,0x7cd,0x4b5,0x7d5,0x7dc,0x7e4,0x4b5,0x7ec,0x7f4,0x7fc,0x801,0x809,0x810,0x818,0x4b5, -+0x600,0x820,0x828,0x830,0x838,0x58d,0x848,0x840,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x850,0x600,0x858,0x85c,0x864,0x600,0x86a,0x600,0x870,0x878,0x880,0x58d,0x58d,0x888, -+0x890,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x895,0x89d,0x600,0x600,0x8a5,0x8ad,0x8b5,0x8bd,0x8c5,0x600,0x8cd,0x8d5,0x8dd, -+0x8ed,0x600,0x8f5,0x8f7,0x8ff,0x8e5,0x600,0x902,0x916,0x90a,0x912,0x91e,0x600,0x926,0x92c,0x934, -+0x93c,0x600,0x94c,0x954,0x95c,0x944,0x96c,0x4b5,0x974,0x977,0x97f,0x964,0x98f,0x987,0x600,0x996, -+0x600,0x9a5,0x99e,0x9ad,0x9b5,0x9b9,0x9c1,0x9c9,0x535,0x9d1,0x9d4,0x9da,0x9e1,0x9d4,0x55c,0x55c, -+0x4e5,0x4e5,0x4e5,0x4e5,0x9e9,0x4e5,0x4e5,0x4e5,0x9f9,0xa01,0xa09,0xa11,0xa19,0xa1d,0xa25,0x9f1, -+0xa3d,0xa45,0xa2d,0xa35,0xa4d,0xa55,0xa5d,0xa65,0xa7d,0xa6d,0xa75,0xa85,0xa8d,0xa9c,0xaa1,0xa94, -+0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xab1,0xab9,0x934,0xabc,0xac4,0xacb,0xad0,0xad8, -+0x934,0xadf,0xade,0xaef,0xaf2,0x934,0x934,0xae7,0x934,0x934,0x934,0x934,0x934,0xb01,0xb09,0xaf9, -+0x934,0x934,0x934,0xb0e,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0xb14,0xb1c,0x934,0xb24,0xb2b, -+0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0xaa9,0xaa9,0xaa9,0xaa9,0xb33,0xaa9,0xb3a,0xb41, -+0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0xaa9,0x934,0xb49,0xb50,0xb54,0xb5a,0x934,0x934,0x934, -+0x58d,0x595,0x535,0xb62,0x4e5,0x4e5,0x4e5,0xb6a,0x535,0xb72,0x600,0xb78,0xb88,0xb80,0xb80,0x55c, -+0xb90,0xb98,0xba0,0x4b5,0xba8,0x934,0x934,0xbaf,0x934,0x934,0x934,0x934,0x934,0x934,0xbb7,0xbbd, -+0xbcd,0xbc5,0x641,0x600,0xbd5,0x890,0x600,0xbdd,0xbe5,0xbe9,0x600,0x600,0xbee,0x600,0x934,0xbf5, -+0xad9,0xbfd,0xc03,0x934,0xbfd,0xc0b,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934, -+0xc13,0x600,0x600,0x600,0xc1b,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0xc21,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc26,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x934,0x934, -+0xc2e,0x600,0xc31,0x600,0xc39,0xc3f,0xc47,0xc4f,0xc54,0x600,0x600,0xc58,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc5f,0x600,0xc66,0xc6c,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc74,0x600,0x600,0x600,0xc7c,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0xc7e,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc85,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0xc8c,0x600,0x600,0x600,0xc93,0xc9b,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xca0,0x600,0x600,0xca8,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xcac,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xcaf,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xcb2,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0xcb8,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0xcc0,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0xcc5,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0xcca,0x600,0x600,0x600,0xccf,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0xcd7,0xcde,0xce2,0x600,0x600,0x600,0xce9,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0xcf7,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0xcef,0x934,0xcff,0x9ad,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0xd04,0xd0c,0x4e5,0xd1c,0xd14,0x600,0x600,0xd24,0xd2c,0xd3c,0x4e5,0xd41,0xd49,0xd4f,0xd56,0xd34, -+0xd5e,0xd66,0x600,0xd6e,0xd7e,0xd81,0xd76,0xd89,0x655,0xd91,0xd98,0x8f6,0x6a3,0xda8,0xda0,0xdb0, -+0x600,0xdb8,0xdc0,0xdc8,0x600,0xdd0,0xdd8,0xde0,0xde8,0xdf0,0xdf4,0xdfc,0x535,0x535,0x600,0xe04, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xe0c,0xe18,0xe10, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20, -+0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0x600,0x600,0x600,0xe30,0x600,0xcea,0xe37,0xe3c, -+0x600,0x600,0x600,0xe44,0x600,0x600,0x901,0x4b5,0xe5a,0xe4a,0xe52,0x600,0x600,0xe62,0xe6a,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xe6f,0x938,0x600,0xe77,0x600,0xe7d,0xe81, -+0xe89,0xe91,0xe98,0xea0,0x600,0x600,0x600,0xea6,0xebe,0x4a5,0xec6,0xece,0xed3,0x916,0xeae,0xeb6, -+0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20, -+0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20,0xe20, -+0x12d4,0x12d4,0x1314,0x1354,0x1394,0x13cc,0x140c,0x144c,0x1484,0x14c4,0x14f0,0x1530,0x1570,0x1580,0x15c0,0x15f4, -+0x1634,0x1664,0x16a4,0x16e4,0x16f4,0x1728,0x1760,0x17a0,0x17e0,0x1820,0x1854,0x1880,0x18c0,0x18f8,0x1914,0x1954, -+0xa80,0xac0,0xb00,0xb40,0xb80,0xbab,0xbeb,0xa40,0xc0e,0xa40,0xa40,0xa40,0xa40,0xc4e,0x1db,0x1db, -+0xc8e,0xcce,0xa40,0xa40,0xa40,0xcf7,0xd37,0xd57,0xa40,0xd7d,0xdbd,0xdfd,0xe3d,0xe7d,0xebd,0xefd, -+0xf3d,0xf74,0x1db,0x1db,0xf98,0xfcc,0x1db,0xff4,0x1db,0x1db,0x1db,0x1db,0x1021,0x1db,0x1db,0x1db, -+0x1db,0x1db,0x1db,0x1db,0x1035,0x1db,0x106d,0x10ad,0x1db,0x10b8,0x1db,0x1db,0x1db,0x10ee,0xa40,0x112e, -+0x1db,0x1db,0x116e,0x1db,0x1191,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -@@ -170,1033 +170,1044 @@ static const uint16_t propsTrie_index[22688]={ - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, --0x11ad,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -+0x11d1,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, --0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x11ed, -+0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1211, - 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, --0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x11ed, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0xed2,0xed9,0xee1,0x4ac,0x5f7,0x5f7,0x5f7,0xee9,0xef9,0xef1,0xf10,0xf01,0xf08,0xf18,0xf1c,0xf20, --0x4ac,0x4ac,0x4ac,0x4ac,0x8ed,0x5f7,0xf28,0xf30,0x5f7,0xf38,0xf40,0xf44,0xf4c,0x5f7,0xf54,0x4ac, --0x584,0x58e,0xf5c,0x5f7,0xf60,0xf68,0xf78,0xf70,0x5f7,0xf80,0x5f7,0xf87,0xf97,0xf8f,0x4ac,0x4ac, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xb7f,0x8f9,0xf9f,0xfaf,0xfa7,0x4ac,0x4ac, --0xfbf,0xfb7,0xfc2,0xfca,0x90d,0xfd2,0x4ac,0xfda,0xfe2,0xfea,0x4ac,0x4ac,0x5f7,0xffa,0x1002,0xff2, --0x1012,0x1019,0x100a,0x1021,0x1029,0x4ac,0x1039,0x1031,0x5f7,0x103c,0x1044,0x104c,0x1054,0x105c,0x4ac,0x4ac, --0x5f7,0x5f7,0x1064,0x4ac,0x584,0x106c,0x52c,0x1074,0x5f7,0x107c,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x1084,0x5f7,0x108c,0x4ac,0x4ac,0x1094,0x109c,0x10a3,0xfd6,0x10ab,0xfd6,0x10b3,0xb7f, --0x10c3,0x62d,0x10cb,0x10bb,0x986,0x10d3,0x10db,0x10e1,0x10f9,0x10e9,0x10f1,0x10fd,0x986,0x110d,0x1105,0x1115, --0x1125,0x111d,0x4ac,0x4ac,0x112c,0x1134,0x64f,0x113c,0x114c,0x1152,0x115a,0x1144,0x4ac,0x4ac,0x4ac,0x4ac, --0x5f7,0x1162,0x116a,0x1172,0x5f7,0x117a,0x1182,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x118a,0x1192,0x4ac, --0x5f7,0x119a,0x11a2,0x11aa,0x5f7,0x11ba,0x11b2,0x4ac,0x867,0x11c2,0x11ca,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x5f7,0x11d2,0x4ac,0x4ac,0x4ac,0x584,0x52c,0x11da,0x11ea,0x11f0,0x11e2,0x4ac,0x4ac,0x1200,0x1204,0x11f8, --0x121c,0x120c,0x1214,0x5f7,0x122a,0x1224,0x5f7,0x8ee,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x1240,0x1245,0x1232,0x123a,0x1255,0x124d,0x4ac,0x4ac,0x1264,0x1268,0x125c,0x1278,0x1270,0x11b2,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x127c,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x1283,0x1293,0x128b, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x8f8,0x4ac,0x4ac,0x4ac, --0x12a3,0x12ab,0x12b3,0x129b,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x12bb,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0xfd6,0x5f7,0x5f7,0x12c3,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x12cb,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x11ca, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x8ee,0x90d, --0xd9b,0x5f7,0x90d,0x12d3,0x12d8,0x5f7,0x12e8,0x12f0,0x12f8,0x12e0,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x584, --0x52c,0x1300,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x1308,0x130d,0x1313,0x4ac,0x4ac,0x131b,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x1323,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x8f9,0x4ac,0x1064,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x1329,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x1331, --0x1335,0x133c,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xe07,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7,0x1342,0x1347,0x134f,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x553,0x135f,0x1366,0x92b,0x92b,0x92b,0x1357,0x4ac,0x92b,0x92b,0x92b,0x92b, --0x92b,0x92b,0x92b,0xbae,0x92b,0x136d,0x92b,0x1374,0x137c,0x1382,0x92b,0xad5,0x92b,0x92b,0x138a,0x4ac, --0x4ac,0x4ac,0x4ac,0x1392,0x92b,0x92b,0xad2,0x139a,0x4ac,0x4ac,0x4ac,0x4ac,0x13aa,0x13b1,0x13b6,0x13bc, --0x13c4,0x13cc,0x13d4,0x13ae,0x13dc,0x13e4,0x13ec,0x13f1,0x13c3,0x13aa,0x13b1,0x13ad,0x13bc,0x13f9,0x13ab,0x13fc, --0x13ae,0x1404,0x140c,0x1414,0x141b,0x1407,0x140f,0x1417,0x141e,0x140a,0x1426,0x13a2,0x92b,0x92b,0x92b,0x92b, --0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x553,0x1436,0x553,0x143d, --0x1444,0x142e,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x1453,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x144b,0x145b,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x146b,0x1463,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0xfd6,0x1473,0x5f7,0x147b,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x1483,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x148b,0x4ac,0x584,0x149b,0x1493,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x14a3, --0x14b3,0x14ab,0x4ac,0x4ac,0x14c3,0x14bb,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x14d3,0x14db,0x14e3,0x14eb, --0x14f3,0x14fb,0x4ac,0x14cb,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x92b,0x1503,0x92b,0x92b, --0xba6,0x136b,0x150b,0xbae,0x1513,0x92b,0x92b,0x92b,0x92b,0xbb0,0x4ac,0x151b,0x1523,0x1527,0x152f,0x1537, --0x4ac,0x4ac,0x4ac,0x4ac,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x153f,0x92b,0x92b,0x92b,0x92b, --0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b, --0x92b,0x92b,0x1547,0x154f,0x92b,0x92b,0x92b,0xba6,0x92b,0x92b,0x1557,0x155f,0x1503,0x92b,0x1567,0x92b, --0x156f,0x1574,0x4ac,0x4ac,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xba6,0x157c, --0x1588,0x158d,0x1595,0x1584,0x92b,0x92b,0x92b,0x92b,0x159d,0x92b,0xad5,0x11ae,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x15a5,0x5f7,0x5f7,0x15ac, --0x5f7,0x5f7,0x5f7,0x15b4,0x5f7,0x15bc,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc87,0x5f7,0x5f7,0x15c4, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15cc,0x15d4,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0xcc6,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15db,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15e2,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x15e9,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x4ac,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x8ee,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xf60,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x1090,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15f1,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, --0x5f7,0x15f9,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xf60,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, --0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15ff,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x160f,0x1607,0x1607, --0x1607,0x4ac,0x4ac,0x4ac,0x4ac,0x553,0x553,0x553,0x553,0x553,0x553,0x553,0x1617,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, --0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, --0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0x161f,0x48b,0x48b,0x48b, --0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -+0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1211, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0xedb,0xee2,0xeea,0x4b5,0x600,0x600,0x600,0xef2,0xf02,0xefa,0xf19,0xf0a,0xf11,0xf21,0xf25,0xf29, -+0x4b5,0x4b5,0x4b5,0x4b5,0x8f6,0x600,0xf31,0xf39,0x600,0xf41,0xf49,0xf4d,0xf55,0x600,0xf5d,0x4b5, -+0x58d,0x597,0xf65,0x600,0xf69,0xf71,0xf81,0xf79,0x600,0xf89,0x600,0xf90,0xfa0,0xf98,0x4b5,0x4b5, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xb88,0x902,0xfa8,0xfb8,0xfb0,0x4b5,0x4b5, -+0xfc8,0xfc0,0xfcb,0xfd3,0x916,0xfdb,0x4b5,0xfe3,0xfeb,0xff3,0x4b5,0x4b5,0x600,0x1003,0x100b,0xffb, -+0x101b,0x1022,0x1013,0x102a,0x1032,0x4b5,0x1042,0x103a,0x600,0x1045,0x104d,0x1055,0x105d,0x1065,0x4b5,0x4b5, -+0x600,0x600,0x106d,0x4b5,0x58d,0x1075,0x535,0x107d,0x600,0x1085,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x108d,0x600,0x1095,0x4b5,0x109a,0x10a2,0x10aa,0x10b1,0xfdf,0x10b9,0xfdf,0x10c1,0xb88, -+0x10d1,0x636,0x10d9,0x10c9,0x98f,0x10e1,0x10e9,0x10ef,0x1107,0x10f7,0x10ff,0x110b,0x98f,0x111b,0x1113,0x1123, -+0x113b,0x112b,0x1133,0x4b5,0x1142,0x114a,0x658,0x1152,0x1162,0x1168,0x1170,0x115a,0x4b5,0x4b5,0x4b5,0x4b5, -+0x600,0x1178,0x1180,0x1099,0x600,0x1188,0x1190,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x1198,0x11a0,0x4b5, -+0x600,0x11a8,0x11b0,0x11b8,0x600,0x11c8,0x11c0,0x4b5,0x870,0x11d0,0x11d8,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x600,0x11e0,0x4b5,0x4b5,0x4b5,0x58d,0x535,0x11e8,0x11f8,0x11fe,0x11f0,0x4b5,0x4b5,0x120e,0x1212,0x1206, -+0x122a,0x121a,0x1222,0x600,0x1238,0x1232,0x600,0x8f7,0x1248,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x1256,0x125b,0x1240,0x1250,0x126b,0x1263,0x4b5,0x4b5,0x127a,0x127e,0x1272,0x128e,0x1286,0x11c0,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x1292,0x12a2,0x12a7,0x129a,0x4b5,0x4b5,0x12af,0x12bf,0x12b7, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x901,0x4b5,0x4b5,0x4b5, -+0x12cf,0x12d7,0x12df,0x12c7,0x600,0x600,0x600,0x600,0x600,0x600,0x12e7,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0xfdf,0x600,0x600,0x12ef,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x12f7,0x12ff,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x11d8,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x8f7, -+0x916,0xda4,0x600,0x916,0x1307,0x130c,0x600,0x131c,0x1324,0x132c,0x1314,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x58d,0x535,0x1334,0x4b5,0x4b5,0x4b5,0x600,0x600,0x133c,0x1341,0x1347,0x4b5,0x4b5,0x134f,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1357,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x902,0x4b5,0x106d,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x135d,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x1365,0x136a,0x1371,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xe10,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600,0x600,0x1377,0x137c,0x1384,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x55c,0x1394,0x139b,0x934,0x934,0x934,0x138c,0x4b5,0x934,0x934,0x934, -+0x934,0x934,0x934,0x934,0xbb7,0x934,0x13a2,0x934,0x13a9,0x13b1,0x13b7,0x934,0xade,0x934,0x934,0x13bf, -+0x4b5,0x4b5,0x4b5,0x13c7,0x13c7,0x934,0x934,0xadb,0x13cf,0x4b5,0x4b5,0x4b5,0x4b5,0x13df,0x13e6,0x13eb, -+0x13f1,0x13f9,0x1401,0x1409,0x13e3,0x1411,0x1419,0x1421,0x1426,0x13f8,0x13df,0x13e6,0x13e2,0x13f1,0x142e,0x13e0, -+0x1431,0x13e3,0x1439,0x1441,0x1449,0x1450,0x143c,0x1444,0x144c,0x1453,0x143f,0x145b,0x13d7,0x934,0x934,0x934, -+0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x55c,0x146b,0x55c, -+0x1472,0x1479,0x1463,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x1488,0x1490,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x1480,0x1498,0x9d4, -+0x14a8,0x14a0,0x4b5,0x4b5,0x4b5,0x600,0x14b8,0x14b0,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0xfdf,0x14c0,0x600,0x14c8,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0xfdf,0x14d0,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x14d8,0x600,0x600,0x600, -+0x600,0x600,0x600,0x14e0,0x4b5,0x58d,0x14f0,0x14e8,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x14f8,0x1508,0x1500,0x4b5,0x4b5,0x1518,0x1510,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x1528,0x1530,0x1538, -+0x1540,0x1548,0x1550,0x4b5,0x1520,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x934,0x1558,0x934, -+0x934,0xbaf,0x13a0,0x1560,0xbb7,0x1568,0x934,0x934,0x934,0x934,0xbb9,0x4b5,0x1570,0x1578,0x157c,0x1584, -+0x158c,0x4b5,0x4b5,0x4b5,0x4b5,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x1594,0x934,0x934,0x934, -+0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934, -+0x934,0x934,0x934,0x157d,0x159c,0x934,0x934,0x934,0x15a4,0x934,0x934,0x15ab,0x15b3,0x1558,0x934,0x15bb, -+0x934,0x15c3,0x15c8,0x4b5,0x4b5,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0x934,0xbaf, -+0x15d0,0x15d9,0x15dd,0x15e5,0x15d5,0x934,0x934,0x934,0x934,0x15ed,0x934,0xade,0x11bc,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x15f5,0x600,0x600, -+0x15fc,0x600,0x600,0x600,0x1604,0x600,0x160c,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xc90,0x600,0x600, -+0x1614,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x161c,0x1624,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0xccf,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x162b,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1632,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x1639,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x4b5,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x901,0x600,0x600,0x600,0x600,0x600,0x600,0xf69,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1641,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1649,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -+0x600,0x600,0x1651,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0xf69,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x67d,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x1314,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x1661,0x1659,0x1659,0x1659,0x4b5,0x4b5,0x4b5,0x4b5,0x55c,0x55c,0x55c,0x55c,0x55c,0x55c,0x55c, -+0x1669,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5,0x4b5, -+0x4b5,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0x1671,0x494,0x494,0x494,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, - 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, --0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17, --0x17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,0x14,0x17,0x15,0x1a,0x16, --0x1a,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,0x14,0x18,0x15,0x18,0xf, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0xf,0xf,0xf,0xf,0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18, -+0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, -+0x18,0x18,0x18,0x17,0x17,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x14, -+0x17,0x15,0x1a,0x16,0x1a,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x14, -+0x18,0x15,0x18,0xf,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, - 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, --0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, --0xc,0x17,0x19,0x19,0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c,0x18,0x10,0x1b,0x1a, --0x1b,0x18,0x34b,0x38b,0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d,0x34cb,0x344b,0x3ccb,0x17, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,0x18,1,1,1,1,1,1,1,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,2,2, --1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1, --2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -+0xf,0xf,0xf,0xf,0xc,0x17,0x19,0x19,0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c, -+0x18,0x10,0x1b,0x1a,0x1b,0x18,0x34b,0x38b,0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d, -+0x34cb,0x344b,0x3ccb,0x17,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,0x18,1,1,1,1, -+1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,2,2, -+2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,1,2,1,2,1,2,2,2,1,1,2,1,2,1,1, --2,1,1,1,2,2,1,1,1,1,2,1,1,2,1,1, --1,2,2,2,1,1,2,1,1,2,1,2,1,2,1,1, --2,1,2,2,1,2,1,1,2,1,1,1,2,1,2,1, --1,2,2,5,1,2,2,2,5,5,5,5,1,3,2,1, --3,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1, -+1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1, - 2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,1,2,1,2,2,1,3,2,1,2,1,1, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -+1,2,1,2,1,1,2,1,2,1,2,2,2,1,1,2, -+1,2,1,1,2,1,1,1,2,2,1,1,1,1,2,1, -+1,2,1,1,1,2,2,2,1,1,2,1,1,2,1,2, -+1,2,1,1,2,1,2,2,1,2,1,1,2,1,1,1, -+2,1,2,1,1,2,2,5,1,2,2,2,5,5,5,5, -+1,3,2,1,3,2,1,3,2,1,2,1,2,1,2,1, -+2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2, -+1,2,1,2,1,2,1,2,1,2,1,2,2,1,3,2, -+1,2,1,1,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,2,2,2,2,2,2,1,1,2,1,1,2, --2,1,2,1,1,1,1,2,1,2,1,2,1,2,1,2, -+1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -+1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1, -+2,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2, -+1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x1a,0x1a, --0x1a,0x1a,4,4,4,4,4,4,4,4,4,4,4,4,0x1a,0x1a, --0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4, --4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a,0x1a,0x1a,0x1a,0x1a, --0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,6,6,6,6, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+4,4,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4,4, -+4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -+4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a, -+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,6,1,2,1,2, --4,0x1a,1,2,0,0,4,2,2,2,0x17,1,0,0,0,0, --0x1a,0x1a,1,0x17,1,1,1,0,1,0,1,1,2,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1, --1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, --2,2,1,1,1,2,2,2,1,2,1,2,1,2,1,2, -+1,2,1,2,4,0x1a,1,2,0,0,4,2,2,2,0x17,1, -+0,0,0,0,0x1a,0x1a,1,0x17,1,1,1,0,1,0,1,1, -+2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,0,1,1,1,1,1,1,1,1,1,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,1,2,2,1,1,1,2,2,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --2,2,2,2,1,2,0x18,1,2,1,1,2,2,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -+1,2,1,2,2,2,2,2,1,2,0x18,1,2,1,1,2, -+2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -+2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,0x1b,6,6,6,6,6,7,7,1,2,1,2,1,2, -+1,2,1,2,1,2,0x1b,6,6,6,6,6,7,7,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2, -+1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1, -+2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,0,0,4,0x17,0x17, --0x17,0x17,0x17,0x17,2,2,2,2,2,2,2,2,2,2,2,2, -+1,2,1,2,0,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, -+0,4,0x17,0x17,0x17,0x17,0x17,0x17,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,0x17,0x13,0,0,0x1b,0x1b,0x19,0,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -+2,2,2,2,2,2,2,2,2,0x17,0x13,0,0,0x1b,0x1b,0x19, -+0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,0x13,6,0x17,6,6,0x17, --6,6,0x17,6,0,0,0,0,0,0,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,0x17, --0x17,0,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10, --0x10,0x10,0x18,0x18,0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b,6,6,6,6, --6,6,6,6,6,6,6,0x17,0x10,0x17,0x17,0x17,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5, --5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,6,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,5,6,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,0x13,6, -+0x17,6,6,0x17,6,6,0x17,6,0,0,0,0,0,0,0,0, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5, -+5,5,5,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, -+0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x18,0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b, -+6,6,6,6,6,6,6,6,6,6,6,0x17,0x10,0x17,0x17,0x17, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0x17,5,6,6,6,6,6,6,6,0x10,0x1b,6,6,6,6,6, --6,4,4,6,6,0x1b,6,6,6,6,5,5,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,0x1b,0x1b,5,0x17,0x17,0x17,0x17, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10,5,6,5,5, -+4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,5, -+6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0, --0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6, --6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5, -+5,5,5,5,0x17,5,6,6,6,6,6,6,6,0x10,0x1b,6, -+6,6,6,6,6,4,4,6,6,0x1b,6,6,6,6,5,5, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,0x1b,0x1b,5, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10, -+5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, --6,6,6,6,4,4,0x1b,0x17,0x17,0x17,4,0,0,6,0x19,0x19, --6,6,6,6,4,6,6,6,4,6,6,6,6,6,0,0, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,0,0,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,6,6,6,6,4,6,6,6,6,6, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,6,6,6,0,0,0x17,0, --5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6, -+6,6,6,6,6,5,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0x1a,5,5,5,5,5,5,0,0x10,0x10,0,0,0,0,0,0, --6,6,6,6,6,6,6,6,6,6,0x10,6,6,6,6,6, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, -+6,6,6,6,6,6,6,6,4,4,0x1b,0x17,0x17,0x17,4,0, -+0,6,0x19,0x19,6,6,6,6,4,6,6,6,4,6,6,6, -+6,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -+0x17,0x17,0x17,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,6,6,6,6,4,6, -+6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6, -+0,0,0x17,0,5,5,5,5,5,5,5,5,5,5,5,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,0x1a,5,5,5,5,5,5,0,0x10,0x10,0,0, -+0,0,0,0,6,6,6,6,6,6,6,6,6,6,0x10,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5, --5,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,5,5,6,6,0x17,0x17,0x49,0x89, --0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,4,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,6,6,6,8,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,6,8,6,5,8,8, --8,6,6,6,6,6,6,6,6,8,8,8,8,6,8,8, --5,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5, --5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, --5,5,0x19,0x19,0x37cb,0x35cb,0x3fcb,0x34cb,0x3ccb,0x94b,0x1b,0x19,5,0x17,6,0, --5,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5, --5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,5,5,5,5,5,5,5,0,5,0,0,0,5,5, --5,5,0,0,6,5,8,8,8,6,6,6,6,0,0,8, --8,0,0,8,8,6,5,0,0,0,0,0,0,0,0,8, --0,0,0,0,5,5,0,5,0,0,0,0,0,0,0x49,0x89, --0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,6,5,5,5,6,0x17,0, --0,0,0,0,0,0,0,0,0,6,6,8,0,5,5,5, --5,5,5,0,0,0,0,5,5,0,0,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, --5,0,5,5,0,5,5,0,5,5,0,0,6,0,8,8, --8,6,6,0,0,0,0,6,6,0,0,6,6,6,0,0, --0,6,0,0,0,0,0,0,0,5,5,5,5,0,5,0, --5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, --0x17,0x19,0,0,0,0,0,0,0,5,6,6,6,6,6,6, --0,6,6,8,0,5,5,5,5,5,5,5,5,5,0,5, --5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5, --5,5,0,0,6,5,8,8,8,6,6,6,6,6,0,6, --6,8,0,8,8,6,0,0,5,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,5,5,6,6,0,0,0x49,0x89, --0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x1b,5,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb, -+6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5, -+5,5,5,5,5,4,6,6,6,6,6,6,6,6,6,6, -+6,6,6,6,6,6,6,6,6,6,6,6,5,5,6,6, -+0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,4,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,8, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, -+6,5,8,8,8,6,6,6,6,6,6,6,6,8,8,8, -+8,6,8,8,5,6,6,6,6,6,6,6,5,5,5,5, -+5,5,5,5,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -+0x1c9,0x209,0x249,0x289,5,5,0x19,0x19,0x37cb,0x35cb,0x3fcb,0x34cb,0x3ccb,0x94b,0x1b,0x19, -+5,0x17,6,0,5,6,8,8,0,5,5,5,5,5,5,5, -+5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,0, -+0,0,5,5,5,5,0,0,6,5,8,8,8,6,6,6, -+6,0,0,8,8,0,0,8,8,6,5,0,0,0,0,0, -+0,0,0,8,0,0,0,0,5,5,0,5,0,0,0,0, -+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,6,5,5, -+5,6,0x17,0,0,0,0,0,0,0,0,0,0,6,6,8, -+0,5,5,5,5,5,5,0,0,0,0,5,5,0,0,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -+5,5,5,5,5,0,5,5,0,5,5,0,5,5,0,0, -+6,0,8,8,8,6,6,0,0,0,0,6,6,0,0,6, -+6,6,0,0,0,6,0,0,0,0,0,0,0,5,5,5, -+5,0,5,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -+0x1c9,0x209,0x249,0x289,0x17,0x19,0,0,0,0,0,0,0,5,6,6, -+6,6,6,6,0,6,6,8,0,5,5,5,5,5,5,5, -+5,5,0,5,5,5,0,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5, -+0,5,5,5,5,5,0,0,6,5,8,8,8,6,6,6, -+6,6,0,6,6,8,0,8,8,6,0,0,5,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6, -+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x1b,5,0x34cb,0x344b, -+0x3ccb,0x37cb,0x35cb,0x3fcb,0,0,0,0,0,0,0,0,0,6,8,8, -+0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -+5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,0, -+6,5,8,6,8,6,6,6,6,0,0,8,8,0,0,8, -+8,6,0,0,0,0,0,0,0,6,6,8,0,0,0,0, -+5,5,0,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -+0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x1b,0, -+0,0,0,0,0,0,6,5,0,5,5,5,5,5,5,0, -+0,0,5,5,5,0,5,5,5,5,0,0,0,5,5,0, -+5,0,5,5,0,0,0,5,5,0,0,0,5,5,5,0, -+0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -+0,0,8,8,6,8,8,0,0,0,8,8,8,0,8,8, -+8,6,0,0,5,0,0,0,0,0,0,8,0,0,0,0, -+0,0,0,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -+0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0x17,0x54b,0x58b,0x5cb,0x60b, -+0x58b,0x5cb,0x60b,0x1b,6,8,8,8,6,5,5,5,5,5,5,5, -+5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,0,6,5,6,6,6,8,8,8, -+8,0,6,6,6,0,6,6,6,6,0,0,0,0,0,0, -+0,6,6,0,5,5,5,0,0,5,0,0,5,5,6,6, -+0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,5,5,8, -+0,0,0,0,0,0,0,0,0,0,0,0,5,6,8,8, -+0x17,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -+5,5,5,5,5,5,5,5,0,5,5,5,5,5,0,0, -+6,5,8,6,8,8,8,8,8,0,6,8,8,0,8,8, -+6,6,0,0,0,0,0,0,0,8,8,0,0,0,0,0, -+0,5,5,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -+0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5, -+5,5,5,5,6,6,8,8,5,5,5,5,5,5,5,5, -+5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,6,6,5,8,8,8,6,6,6,6,0,8,8, -+8,0,8,8,8,6,5,0x1b,0,0,0,0,5,5,5,8, -+0xcc0b,0xca0b,0xcb4b,0xc90b,0x364b,0xc94b,0x350b,5,0,0,0,0,0,0,0x49,0x89, -+0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,8,8,0x17,0,0,0, - 0,0,0,0,0,0,0,0,0,6,8,8,0,5,5,5, --5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, --5,0,5,5,0,5,5,5,5,5,0,0,6,5,8,6, --8,6,6,6,6,0,0,8,8,0,0,8,8,6,0,0, --0,0,0,0,0,6,6,8,0,0,0,0,5,5,0,5, --0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, --0x7cb,0x1e4b,0x784b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x1b,0,0,0,0,0, --0,0,6,5,0,5,5,5,5,5,5,0,0,0,5,5, --5,0,5,5,5,5,0,0,0,5,5,0,5,0,5,5, --0,0,0,5,5,0,0,0,5,5,5,0,0,0,5,5, --5,5,5,5,5,5,5,5,5,5,0,0,0,0,8,8, --6,8,8,0,0,0,8,8,8,0,8,8,8,6,0,0, --5,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0, --5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, --0,0,0,0,0,0,0,0x17,0x54b,0x58b,0x5cb,0x60b,0x58b,0x5cb,0x60b,0x1b, --6,8,8,8,6,5,5,5,5,5,5,5,5,0,5,5, --5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,0,6,5,6,6,6,8,8,8,8,0,6,6, --6,0,6,6,6,6,0,0,0,0,0,0,0,6,6,0, --5,5,5,0,0,5,0,0,5,5,6,6,0,0,0x49,0x89, --0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,5,5,0,0,0,0,0, --0,0,0,0,0,0,0,0,5,6,8,8,0x17,5,5,5, --5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, --5,5,5,5,0,5,5,5,5,5,0,0,6,5,8,6, --8,8,8,8,8,0,6,8,8,0,8,8,6,6,0,0, --0,0,0,0,0,8,8,0,0,0,0,0,0,5,5,0, --5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, --0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5,5,5,5,5, --6,6,8,8,5,5,5,5,5,5,5,5,5,0,5,5, --5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, --6,5,8,8,8,6,6,6,6,0,8,8,8,0,8,8, --8,6,5,0x1b,0,0,0,0,5,5,5,8,0xcc0b,0xca0b,0xcb4b,0xc90b, --0x364b,0xc94b,0x350b,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, --0x1c9,0x209,0x249,0x289,0,0,8,8,0x17,0,0,0,0,0,0,0, --0,0,0,0,0,6,8,8,0,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0,0,0,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,5,5,5,5,5,5,5,5,5,0,5,0,0, --5,5,5,5,5,5,5,0,0,0,6,0,0,0,0,8, --8,8,6,6,6,0,6,0,8,8,8,8,8,8,8,8, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,6,5,5,6,6,6,6,6,6,6,0,0,0,0,0x19, --5,5,5,5,5,5,4,6,6,6,6,6,6,6,6,0x17, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0,0,0, --0,5,5,0,5,0,5,5,5,5,5,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0,5,0,5,5,5,5,5,5,5,5,5,5,6,5,5, --6,6,6,6,6,6,6,6,6,5,0,0,5,5,5,5, --5,0,4,0,6,6,6,6,6,6,0,0,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,5,5,5,5,5,0x1b,0x1b,0x1b, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b, --0x17,0x1b,0x1b,0x1b,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b,0x644b,0x6c4b,0x744b,0x2c4b, --0x1b,6,0x1b,6,0x1b,6,0x14,0x15,0x14,0x15,8,8,5,5,5,5, --5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, --0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8, --6,6,6,6,6,0x17,6,6,5,5,5,5,5,6,6,6, --6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -+0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -+0,5,0,0,5,5,5,5,5,5,5,0,0,0,6,0, -+0,0,0,8,8,8,6,6,6,0,6,0,8,8,8,8, -+8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,6,5,5,6,6,6,6,6,6,6,0, -+0,0,0,0x19,5,5,5,5,5,5,4,6,6,6,6,6, -+6,6,6,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, -+0,0,0,0,0,5,5,0,5,0,5,5,5,5,5,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,0,5,0,5,5,5,5,5,5,5,5,5, -+5,6,5,5,6,6,6,6,6,6,6,6,6,5,0,0, -+5,5,5,5,5,0,4,0,6,6,6,6,6,6,6,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,5,5,5,5, -+5,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -+0x17,0x17,0x17,0x1b,0x17,0x1b,0x1b,0x1b,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b, -+0x644b,0x6c4b,0x744b,0x2c4b,0x1b,6,0x1b,6,0x1b,6,0x14,0x15,0x14,0x15,8,8, -+5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,8,6,6,6,6,6,0x17,6,6,5,5,5,5, -+5,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,6,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x17,0x17,0x17,0x17, --0x17,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,0,0,0,0,5,5,5,5, --5,5,5,5,5,5,5,8,8,6,6,6,6,8,6,6, --6,6,6,6,8,6,6,8,8,6,6,5,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5, --5,5,8,8,6,6,5,5,5,5,6,6,6,5,8,8, --8,5,5,8,8,8,8,8,8,8,5,5,5,6,6,6, --6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, --8,6,6,8,8,8,8,8,8,6,5,8,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,8,8,8,6,0x1b,0x1b,2,2,2,2, -+6,6,6,6,6,6,6,6,6,6,6,6,6,0,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b, -+0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,6, -+6,8,6,6,6,6,6,6,8,6,6,8,8,6,6,5, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17, -+5,5,5,5,5,5,8,8,6,6,5,5,5,5,6,6, -+6,5,8,8,8,5,5,8,8,8,8,8,8,8,5,5, -+5,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5, -+5,5,6,8,8,6,6,8,8,8,8,8,8,6,5,8, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,8,8,8,6,0x1b,0x1b, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,0x17,4,2,2,2,1,1,1,1, --1,1,0,1,0,0,0,0,0,1,0,0,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5, --5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5, --5,5,5,0,5,0,5,5,5,5,0,0,5,5,5,5, --5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, --5,5,0,0,5,5,5,5,5,5,5,0,5,0,5,5, --5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,0,0,6,6,6,0x17,0x17,0x17,0x17, --0x17,0x17,0x17,0x17,0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b, --0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,0,0,2,2,2,2,2,2,0,0,0x13,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0x1b,0x17,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0xc,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0x14,0x15,0,0,0, --5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x98a,0x9ca, --0xa0a,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,6,6,6,8,0,0,0,0,0,0,0,0,0,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,6,6,8,0x17,0x17,0,0,0,0,0,0,0,0,0, -+2,2,2,2,2,2,2,2,2,2,2,0x17,4,2,2,2, -+1,1,1,1,1,1,0,1,0,0,0,0,0,1,0,0, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, -+5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,0, -+5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, --5,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0, -+5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,0, -+5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,6,6,8,6,6,6,6,6,6,6,8,8, --8,8,8,8,8,8,6,8,8,6,6,6,6,6,6,6, --6,6,6,6,0x17,0x17,0x17,4,0x17,0x17,0x17,0x19,5,6,0,0, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, --0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,5,6,5,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,6, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b, -+0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x17,0x17,6,6,6,0x10,6, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, --5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,0,0,2,2,2,2,2,2,0,0, -+0x13,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,0x1b,0x17,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,0xc,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x14, -+0x15,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0x17, -+0x17,0x17,0x98a,0x9ca,0xa0a,5,5,5,5,5,5,5,5,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,6,6,6,8,0,0,0,0,0,0, -+0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,6,6,8,0x17,0x17,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,6,6,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,0,5,5,5,0,6,6,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,6,6,8,6,6,6,6,6, -+6,6,8,8,8,8,8,8,8,8,6,8,8,6,6,6, -+6,6,6,6,6,6,6,6,0x17,0x17,0x17,4,0x17,0x17,0x17,0x19, -+5,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -+0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,6,5,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x17,0x17,6, -+6,6,0x10,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -+0,0,0,0,5,5,5,4,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,0,0,0,0,0,0,5,5,5,5,5,6,6,5, -+5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5, -+5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -+0,0,0,0,0,0,0,0,6,6,6,8,8,8,8,6, -+6,8,8,8,0,0,0,0,8,8,6,8,8,8,8,8, -+8,6,6,6,0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89, -+0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,0,5,5,5,5,5,0,0,0, -+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, --0,0,0,0,6,6,6,8,8,8,8,6,6,8,8,8, --0,0,0,0,8,8,6,8,8,8,8,8,8,6,6,6, --0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189, --0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,0,5,5,5,5,5,0,0,0,0,0,0,0, --0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,6,6,8,8,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17, --0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,7,6,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,8,6,8,6,6,6,6,6,6,6,0,6,8,6,8, --8,6,6,6,6,6,6,6,6,8,8,8,8,8,8,6, --6,6,6,6,6,6,6,6,6,0,0,6,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x17,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, --8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,6,8,6,6, --6,6,6,8,6,8,8,8,8,8,6,8,8,5,5,5, --5,5,5,5,5,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6,6,6,8,8, --6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,5,5,5,5,5,5,6,6,8,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,6,8,6,6,8,8, --8,6,8,6,6,6,8,8,0,0,0,0,0,0,0,0, --0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, --0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, --5,5,5,5,8,8,8,8,8,8,8,8,6,6,6,6, --6,6,6,6,8,8,6,6,0,0,0,0x17,0x17,0x17,0x17,0x17, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,4,4,4,4,4,4,0x17,0x17, --2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, --6,6,6,0x17,6,6,6,6,6,6,6,6,6,6,6,6, --6,8,6,6,6,6,6,6,6,5,5,5,5,6,5,5, --5,5,5,5,6,5,5,8,6,6,5,0,0,0,0,0, --2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4, -+5,5,5,5,5,5,5,6,6,8,8,6,0,0,0x17,0x17, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,8,6,8,6,6,6,6,6,6,6,0, -+6,8,6,8,8,6,6,6,6,6,6,6,6,8,8,8, -+8,8,8,6,6,6,6,6,6,6,6,6,6,0,0,6, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -+0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6, -+6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+6,6,6,6,8,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+6,8,6,6,6,6,6,8,6,8,8,8,8,8,6,8, -+8,5,5,5,5,5,5,5,5,0,0,0,0x49,0x89,0xc9,0x109, -+0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6, -+6,6,8,8,6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109, -+0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,6,6,8,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, -+6,6,8,8,8,6,8,6,6,6,8,8,0,0,0,0, -+0,0,0,0,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -+0x249,0x289,0,0,0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -+0x249,0x289,5,5,5,5,5,5,8,8,8,8,8,8,8,8, -+6,6,6,6,6,6,6,6,8,8,6,6,0,0,0,0x17, -+0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4, -+4,4,0x17,0x17,2,2,2,2,2,2,2,2,2,0,0,0, -+0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, -+0,1,1,1,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0, -+0,0,0,0,6,6,6,0x17,6,6,6,6,6,6,6,6, -+6,6,6,6,6,8,6,6,6,6,6,6,6,5,5,5, -+5,6,5,5,5,5,5,5,6,5,5,8,6,6,5,0, -+0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2, --2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4, --1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2, --2,2,2,2,2,2,2,2,1,1,1,1,1,0x1a,0x1a,0x1a, --0,0,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0, --2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, --2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0, --2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, --2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, --2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0, --2,2,2,2,2,2,2,2,0,1,0,1,0,1,0,1, --2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0, --2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3, --2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3, --2,2,2,2,2,0,2,2,1,1,1,1,3,0x1a,2,0x1a, --0x1a,0x1a,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0x1a, --2,2,2,2,0,0,2,2,1,1,1,1,0,0x1a,0x1a,0x1a, --0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, --0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc, --0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, --0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,4, --0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10, --0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16, --0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,0, --4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0, --0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2, -+4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4, -+4,4,4,4,1,2,1,2,1,2,1,2,1,2,1,2, -+1,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2, -+2,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1, -+1,0x1a,0x1a,0x1a,0,0,2,2,2,0,2,2,1,1,1,1, -+3,0x1a,0x1a,0,2,2,2,2,2,2,2,2,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, -+1,1,0,0,2,2,2,2,2,2,2,2,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, -+1,1,0,0,2,2,2,2,2,2,2,2,0,1,0,1, -+0,1,0,1,2,2,2,2,2,2,2,2,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,0,0,2,2,2,2,2,2,2,2,3,3,3,3, -+3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3, -+3,3,3,3,2,2,2,2,2,0,2,2,1,1,1,1, -+3,0x1a,2,0x1a,0x1a,0x1a,2,2,2,0,2,2,1,1,1,1, -+3,0x1a,0x1a,0x1a,2,2,2,2,0,0,2,2,1,1,1,1, -+0,0x1a,0x1a,0x1a,0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17, -+0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -+0x17,0x17,0x17,0xc,0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10, -+0x10,0x10,0x10,0x10,0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, -+0x18,0x14,0x15,4,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10, -+0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c, -+0x1c,0x1d,0x14,0x1c,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10, -+0x10,0x10,0x10,0xc,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17, -+0x17,0x17,0x17,0x16,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, -+0x18,0x14,0x15,0,4,4,4,4,4,4,4,4,4,4,4,4, -+4,0,0,0,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, - 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, --0x19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7, --7,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6, --6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2, --1,1,1,1,2,5,5,5,5,2,0x1b,0x1b,2,2,1,1, --0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0x1b, --0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b, --0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2, --1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1,1,1,0x1b,0x1b, --0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a, --0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a, --0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b,0,0,0,0, --0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b, -+0x19,0x19,0x19,0x19,0x19,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, -+6,7,7,7,7,6,7,7,7,6,6,6,6,6,6,6, -+6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1, -+1,1,0x1b,2,1,1,1,1,2,5,5,5,5,2,0x1b,0x1b, -+2,2,1,1,0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18, -+0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb, -+0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1, -+1,1,2,2,1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1, -+1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, -+0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, -+0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b, -+0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18, --0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18, --0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -+0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -+0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b, -+0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18, -+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, -+0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b, --0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb, --0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb, -+0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b, -+0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb, - 0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -+0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b, -+0x98b,0x9cb,0xa0b,0xa4b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, -+0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, --0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb, --0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, --0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15, --0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, -+0x14,0x15,0x14,0x15,0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, -+0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b, -+0x48b,0x4cb,0x50b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -+0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18, -+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14, - 0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, --0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15, -+0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, - 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, --0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -+0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1,2,1,1,1,2,2,1, -+2,1,2,1,2,1,1,1,1,2,1,2,2,1,2,2, -+2,2,2,2,4,4,1,1,1,2,1,2,2,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,1,2,1,2,6,6,6,1,2,0,0,0,0, -+0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17,2,2,2,2,2,2,0,2, -+0,0,0,0,0,2,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,4, -+0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, -+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, -+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, -+0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17, -+0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x17,0x17,4, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,0x17,0x17,0x17,0x17, -+0x13,0x17,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -+0x1b,0x1b,0x17,0x17,0x17,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0,0, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,1,2,1,1,1,2,2,1,2,1,2,1, --2,1,1,1,1,2,1,2,2,1,2,2,2,2,2,2, --4,4,1,1,1,2,1,2,2,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1, --2,1,2,6,6,6,1,2,0,0,0,0,0,0x17,0x17,0x17, --0x17,0x344b,0x17,0x17,2,2,2,2,2,2,0,2,0,0,0,0, --0,2,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,0,0,0,0,0,0,0,4,0x17,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,6,5,5,5,5, --5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5, --5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,0,0,0,0,0,0,0,0,0,0x17,0x17,0x1c,0x1d, --0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x17,0x17, --0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17,0x1c,0x1d,0x14,0x15, --0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x17,0x17,4,0x17,0x17,0x17,0x17, --0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,0x17,0x17,0x17,0x17,0x13,0x17,0x14,0x17, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x17,0x17, --0x17,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0,0,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, --0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, --0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6,6,6,8,8, --0x13,4,4,4,4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4,5,0x17,0x1b,0x1b, --0xc,0x17,0x17,0x17,0x1b,4,5,0x54a,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, --0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0x14,0x15,0x15, -+0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0,0,0,0,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6, -+6,6,8,8,0x13,4,4,4,4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4, -+5,0x17,0x1b,0x1b,0xc,0x17,0x17,0x17,0x1b,4,5,0x54a,0x14,0x15,0x14,0x15, -+0x14,0x15,0x14,0x15,0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, -+0x13,0x14,0x15,0x15,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,0x1a, -+0x1a,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x17, -+4,4,4,5,0,0,0,0,0,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,0,0,6,6,0x1a,0x1a,4,4,5, -+5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,0,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1b,0xa8b,0xacb,0xb0b, -+0xb4b,0xb8b,0xbcb,0xc0b,0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0xe4b,0xe8b,0xecb, -+0xf0b,0xf4b,0xf8b,0xfcb,0x100b,0x104b,0x108b,0x10cb,0x110b,0x114b,0x118b,0x11cb,5,5,5,5, -+5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x5c5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0x17,4,4,4,5, --0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x685,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,0,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,0x705,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,0x585,5,5,0x705,5,5,5,0x7885, -+5,0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1b,0xa8b,0xacb,0xb0b,0xb4b,0xb8b,0xbcb,0xc0b, --0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0xe4b,0xe8b,0xecb,0xf0b,0xf4b,0xf8b,0xfcb, --0x100b,0x104b,0x108b,0x10cb,0x110b,0x114b,0x118b,0x11cb,5,5,5,5,5,0x685,5,5, -+5,0x785,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+0x5c5,5,5,5,5,5,5,5,0x685,5,0x645,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,0x7985,0x7c5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0x685,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,0x7845,5,5,5,5, -+5,5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0x685,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0x705,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,0x585,5,5,0x705,5,5,5,0x7885,5,0x605,5,5, -+0x1e45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+0x7985,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7a85,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0x785,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5, --5,5,5,5,0x685,5,0x645,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,0x5c5,5,0x745,5,0x6c5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,0x7985,0x7c5,5,5,5,5,5,5,5, -+5,0x7c5,5,0x7845,0xa45,0xcc5,5,5,5,5,5,5,0xf45,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,0x7845,5,5,5,5,5,5,5,5, --0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0x685,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x1e45,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x7985,5,5,5, -+5,0x605,0x605,0x605,0x605,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0x7a85,5,5,5,5,5, -+5,5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0x585,5,5,5,5,5,5,5,0x585,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,0x5c5,5,0x745,5,0x6c5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0x7c5,5,0x7845, --0xa45,0xcc5,5,5,5,5,5,5,0xf45,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0x605,0x605,0x605, --0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x645, -+5,5,5,5,5,5,5,5,5,5,0x585,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0x585,5,5,5,5,5,5,5,0x585,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,0x785,0xa45,5,5,5,5, -+5,5,5,5,5,5,5,5,0x585,0x5c5,0x605,5,0x5c5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0x585,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7c5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0x745,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0x785,0xa45,5,5,5,5,5,5,5,5, --5,5,5,5,0x585,0x5c5,0x605,5,0x5c5,5,5,5,5,5,5,5, -+5,5,0x705,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x785,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0x745,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x705,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1e45,5, -+5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0x785,5,5,5,5,5, -+0x7885,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0x5c5,5,5,5,5,0x5c5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0x7845,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0x1e45,5,5,5,5,5, --5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x7885,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5, -+5,5,5,5,0x1e45,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0x5c5,5,5,5,5,0x5c5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0x5c5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0x7845,5,5,5,5,5,5, -+0x6c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,0x545,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5, --0x1e45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5, -+5,4,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,4,0x17,0x17,0x17, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0x545,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5, --5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, --0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,4,0x17,0x17,0x17,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,2, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,2,1,2,1,2,4,4,6,6,1,2,1,2, --1,2,1,2,1,2,1,2,1,2,5,6,7,7,7,0x17, --6,6,6,6,6,6,6,6,6,6,0x17,4,5,5,5,5, --5,5,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x54a,6,6,0x17,0x17, --0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0x1a,0x1a,0x1a,0x1a, -+1,2,1,2,1,2,1,2,1,2,1,2,4,4,6,6, -+1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,6, -+7,7,7,0x17,6,6,6,6,6,6,6,6,6,6,0x17,4, -+5,5,5,5,5,5,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x54a, -+6,6,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, - 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, --0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, --4,1,2,5,4,4,2,5,5,5,5,5,0x1a,0x1a,1,2, --1,2,1,2,1,2,1,2,1,2,1,2,2,2,1,2, --1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, --4,2,2,2,2,2,2,2,2,1,2,1,2,1,1,2, --1,2,1,2,1,2,1,2,4,0x1a,0x1a,1,2,1,2,5, --1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2, --1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,2, --1,2,1,2,1,2,1,2,1,1,1,1,2,1,2,0, --0,0,0,0,1,2,0,2,0,2,1,2,1,2,0,0, --0,0,0,0,5,5,6,5,5,5,6,5,5,5,5,6, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,8,8,6,6,8,0x1b,0x1b,0x1b,0x1b, --6,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b,0x19,0x1b,0,0, --0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17,0,0,0,0, --0,0,0,0,8,8,8,8,6,6,0,0,0,0,0,0, --0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, --0,0,0,0,8,8,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,8,8,8,8,8,8,8,8,8,8,8,8, --6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,5,5,5,5,5,5,0x17,0x17,0x17,5,0x17,5,5,6, --5,5,5,5,5,5,6,6,6,6,6,6,6,6,0x17,0x17, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,6,6,6,6,6,6,6,6,6,6,6,8,8, --0,0,0,0,0,0,0,0,0,0,0,0x17,8,0x17,0x17,0x17, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,4,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, --8,8,6,6,6,6,8,8,6,6,8,8,5,5,5,5, --5,6,4,5,5,5,5,5,5,5,5,5,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,0,5,5,5,5, --5,5,5,5,5,6,6,6,6,6,6,8,8,6,6,8, --8,6,6,0,0,0,0,0,0,0,0,0,5,5,5,6, --5,5,5,5,5,5,5,5,6,8,0,0,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0x17,0x17,0x17,0x17,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5, --5,5,5,0x1b,0x1b,0x1b,5,8,6,8,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,6,5,6,6, --6,5,5,6,6,5,5,5,5,5,6,6,5,6,5,0, -+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,5,5,4,0x17,0x17,5,5,5,5, --5,5,5,5,5,5,5,8,6,6,8,8,0x17,0x17,5,4, --4,8,6,0,0,0,0,0,0,0,0,0,0,5,5,5, --5,5,5,0,0,5,5,5,5,5,5,0,0,5,5,5, --5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,5, --5,5,5,0,5,5,5,5,5,5,5,0,2,2,2,2, -+0,0,4,4,4,1,2,5,4,4,2,5,5,5,5,5, -+0x1a,0x1a,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -+2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -+1,2,1,2,4,2,2,2,2,2,2,2,2,1,2,1, -+2,1,1,2,1,2,1,2,1,2,1,2,4,0x1a,0x1a,1, -+2,1,2,5,1,2,1,2,2,2,1,2,1,2,1,2, -+1,2,1,2,1,2,1,1,1,1,1,2,1,1,1,1, -+1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,1, -+2,1,2,0,0,0,0,0,1,2,0,2,0,2,1,2, -+1,2,0,0,0,0,0,0,5,5,6,5,5,5,6,5, -+5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,8, -+0x1b,0x1b,0x1b,0x1b,6,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b, -+0x19,0x1b,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17, -+0,0,0,0,0,0,0,0,8,8,8,8,6,6,0,0, -+0,0,0,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -+0x249,0x289,0,0,0,0,0,0,8,8,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,8,8,8,8,8,8,8,8, -+8,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,6,6,6,5,5,5,5,5,5,0x17,0x17,0x17,5, -+0x17,5,5,6,5,5,5,5,5,5,6,6,6,6,6,6, -+6,6,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6, -+6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,0x17, -+8,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,4, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,6,8,8,6,6,6,6,8,8,6,6,8,8, -+5,5,5,5,5,6,4,5,5,5,5,5,5,5,5,5, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,0, -+5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,8, -+8,6,6,8,8,6,6,0,0,0,0,0,0,0,0,0, -+5,5,5,6,5,5,5,5,5,5,5,5,6,8,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0x17,0x17,0x17,0x17, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+4,5,5,5,5,5,5,0x1b,0x1b,0x1b,5,8,6,8,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+6,5,6,6,6,5,5,6,6,5,5,5,5,5,6,6, -+5,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,5,5,4,0x17,0x17, -+5,5,5,5,5,5,5,5,5,5,5,8,6,6,8,8, -+0x17,0x17,5,4,4,8,6,0,0,0,0,0,0,0,0,0, -+0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,0, -+0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,0x1a,4,4,4,4,2,2,2,2, --2,2,2,2,2,4,0x1a,0x1a,0,0,0,0,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,8, --8,6,8,8,6,8,8,0x17,8,6,0,0,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, --0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -+2,2,2,2,2,2,2,2,2,2,2,0x1a,4,4,4,4, -+2,2,2,2,2,2,2,2,2,4,0x1a,0x1a,0,0,0,0, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+5,5,5,8,8,6,8,8,6,8,8,0x17,8,6,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -+5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, -+5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5, --5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0x12,0x12,0x12,0x12, - 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, --0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11, -+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, --0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,5,5,5,5, --5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,0x7c5, --5,5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0x6c5,5,0x6c5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0x18,5,5, --5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, --5,0,5,0,5,5,0,5,5,0,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,2,2,2,2,2,2,2,0,0,0,0,0, --0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0, --0,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, --0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0x15,0x14,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0,0,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0x1b, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,5,5,5,5,0x19,0x1b,0x1b,0x1b, --6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x15,0x17,0,0,0,0,0,0, --6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, --0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x17,0x17,0x17,0, --0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13, --0x18,0x18,0x18,0,0x17,0x19,0x17,0x17,0,0,0,0,5,5,5,5, --5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -+5,5,5,5,5,5,5,5,5,5,5,0x605,5,5,5,5, -+5,5,5,0x7c5,5,5,5,5,0x5c5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5,0x6c5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,0,0x10,0,0,5,5,5,5,5,5,0,0,5,5, --5,5,5,5,0,0,5,5,5,5,5,5,0,0,5,5, --5,0,0,0,0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0,0x1b,0x18,0x18,0x18, --0x18,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10, --0x1b,0x1b,0,0,0,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18, --0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, --0x18,0x18,0x18,0x17,0x1a,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x14, --0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15,0x17,0x17,5,5,5,5,5,5, --5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0x7c5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5, --5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, --5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, --0,0,0,0,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b, --0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b, --0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b, --0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xcca,0x11ca,0x11ca,0x11ca,0x11ca,0x1e4a,0x880a, --0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a,0x11ca,0x344b,0x344b,0x388b,0x3ccb,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0x34cb,0x1b,0x1b,0x1b,0, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, --0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x984a,0x68a, --0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca,0x58a,0x58a,0x58a,0x5ca,0x5ca,0x5ca,0x5ca,0x68a, --0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0,0, -+5,0x18,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -+5,5,5,5,5,0,5,0,5,5,0,5,5,0,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --6,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, --0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0,0,0,0, --0x58b,0x68b,0x7cb,0x11cb,0,0,0,0,0,0,0,0,0,5,5,5, -+5,5,5,5,5,5,5,5,2,2,2,2,2,2,2,0, -+0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2, -+0,0,0,0,0,5,6,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0x1bca,5,5,5,5,5,5,5,5,0xb80a,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,0x15,0x14,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0,0,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, -+0,0,0,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+0x19,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x15,0x17,0,0, -+0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,6,0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14, -+0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16, -+0x17,0x17,0x17,0,0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17, -+0x17,0x17,0x18,0x13,0x18,0x18,0x18,0,0x17,0x19,0x17,0x17,0,0,0,0, -+5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0,0,0x10,0,0,5,5,5,5,5,5, -+0,0,5,5,5,5,5,5,0,0,5,5,5,5,5,5, -+0,0,5,5,5,0,0,0,0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0, -+0x1b,0x18,0x18,0x18,0x18,0x1b,0x1b,0,0,0,0,0,0,0,0,0, -+0,0x10,0x10,0x10,0x1b,0x1b,0,0,0,0x17,0x17,0x17,0x19,0x17,0x17,0x17, -+0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -+0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17,0x1a,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,0x14,0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15,0x17,0x17,5,5, -+5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,6,6,6,6,6,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5, -+5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17, --5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5, --0x17,0x58a,0x5ca,0x7ca,0xa4a,0x1e4a,0,0,0,0,0,0,0,0,0,0, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+5,5,5,0,5,5,0,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,0,0,0,0,0,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b, -+0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0,0,0,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0,0,0,0,0x58b, -+0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b, -+0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xcca,0x11ca,0x11ca, -+0x11ca,0x11ca,0x1e4a,0x880a,0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a,0x11ca,0x344b,0x344b,0x388b, -+0x3ccb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0x34cb, -+0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0,0,0,0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a,0x68a,0x7ca,0x11ca,0x1e4a, -+0x980a,0x784a,0x984a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca,0x58a,0x58a,0x58a,0x5ca, -+0x5ca,0x5ca,0x5ca,0x68a,0x1b,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,6,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,6,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b, -+0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b, -+0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0,0,0,0,0,0,0,0, -+0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0x1bca,5,5,5,5,5,5,5,5,0xb80a,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -+5,5,0,0x17,5,5,5,5,0,0,0,0,5,5,5,5, -+5,5,5,5,0x17,0x58a,0x5ca,0x7ca,0xa4a,0x1e4a,0,0,0,0,0,0, -+0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -+0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2, -+0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2, -+2,2,2,2,5,5,5,5,5,5,5,5,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0x17, -+1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1, -+2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,0,2,2,2,2,2,2,2,0,2,2,0,0,0, -+1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1, -+1,1,1,0,1,1,0,2,2,2,2,2,2,2,2,2, - 5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+4,0,4,4,4,4,4,4,4,4,4,0,0,0,0,0, -+4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0,0,0,0,0,0,0,0,0,0,0,0x17,1,1,1,1, --1,1,1,1,1,1,1,0,1,1,1,1,2,2,0,2, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2, --2,2,2,2,2,2,0,2,2,0,0,0,1,1,1,1, --1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, --1,1,0,2,2,2,2,2,2,2,2,2,5,5,5,5, --5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4, --4,4,4,4,4,4,4,0,0,0,0,0,4,4,4,4, --4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4, --4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,5,5,0,0,0,5,0,0,5,5,5,5,5, --5,5,0,0,5,0,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17, --0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1b, --0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0,0,0,0,0,0,0,0x58b, --0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0,5,5,0,0, --0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb, --0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,0,0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b, --0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b, --0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0,0,0,0,0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, --0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b, --0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b, --0x344b,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, --0x17,0,0,0,0,0,0,0,5,6,6,6,0,6,6,0, --0,0,0,0,6,6,6,6,5,5,5,5,0,5,5,5, --0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,0,0,6,6,6,0, --0,0,0,6,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,5,5,0,0,0,5,0,0,5, -+5,5,5,5,5,5,0,0,5,0,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,0,0x17,0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0x58b,0x11cb,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0,0,0,0, -+0,0,0,0x58b,0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -+5,5,0,0,0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0x58b,0x7cb,0xa4b,5,5,5,5,5,6,6,0,0,0,0,0x58b, --0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0, --0,0,0,0,5,5,5,5,5,5,5,5,0x1b,5,5,5, -+5,5,0x58b,0x7cb,0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -+5,5,5,5,5,5,0,0,0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b, -+0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb, -+0xb0cb,0xb8cb,0x36cb,0x354b,0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, -+5,5,5,5,0,0,0,0,0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b, -+0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b, -+0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb, -+0x7cb,0xa4b,0x1e4b,0x784b,0x344b,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17, -+0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,5,6,6,6, -+0,6,6,0,0,0,0,0,6,6,6,6,5,5,5,5, -+0,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -+6,6,6,0,0,0,0,6,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, -+5,5,5,5,5,0x58b,0x11cb,0x17,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0, --0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b, -+5,5,5,5,5,0x58b,0x7cb,0xa4b,5,5,5,5,5,6,6,0, -+0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0, -+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -+0x1b,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,0,0,0,0x17,0x17,0x17, -+0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b, -+0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b, -+0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,0,0,0,0,0,0,0x17,0x17,0x17, -+0x17,0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b, -+0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, -+0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, -+0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,0,0,0,0,0,0,0,0x58b,0x68b, -+0x7cb,0x11cb,0x1e4b,0x784b,5,5,5,5,6,6,6,6,0,0,0,0, -+0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -+0,0,0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb, -+0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b, -+0x34cb,0x348b,0x388b,0,5,5,5,5,5,5,5,5,5,5,0,6, -+6,0x13,0,0,5,5,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, --2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,0,0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b, --5,5,5,5,6,6,6,6,0,0,0,0,0,0,0,0, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, --0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb, --0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0, --5,5,5,5,5,5,5,5,5,5,0,6,6,0x13,0,0, --5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,6,6,6,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x5cb,0x60b, --0x64b,0x68b,0x7cb,0xa4b,0xccb,0x1e4b,0x344b,5,0,0,0,0,0,0,0,0, -+5,5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0xccb,0x1e4b,0x344b,5, -+0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6, -+6,6,6,6,6,0x58b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0,0, -+0,0,0,0,5,5,6,6,6,6,0x17,0x17,0x17,0x17,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189, -+0x1c9,0x209,0x249,0x289,6,5,5,6,6,5,0,0,0,0,0,0, -+0,0,0,6,8,6,8,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17, -+0x17,0x17,0,0,0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, -+0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,8,8,8,6,6,6,6,8,8,6,6,0x17, -+0x17,0x10,0x17,0x17,0x17,0x17,6,0,0,0,0,0,0,0,0,0, -+0,0x10,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -+0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, -+5,5,5,6,6,6,6,6,8,6,6,6,6,6,6,6, -+6,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17, -+5,8,8,5,0,0,0,0,0,0,0,0,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,6,6,6,6,6,6,6,6,6,6,6,0x58b,0x7cb,0xa4b, --0x1e4b,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,5,5,6,6, --6,6,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, -+0x17,0x17,5,0,0,0,0,0,0,0,0,0,8,5,5,5, -+5,0x17,0x17,0x17,0x17,6,6,6,6,0x17,8,6,0x49,0x89,0xc9,0x109, -+0x149,0x189,0x1c9,0x209,0x249,0x289,5,0x17,5,0x17,0x17,0x17,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, -+8,8,6,6,6,6,6,6,6,6,6,8,0,0x58b,0x5cb,0x60b, -+0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b, -+0x784b,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -+5,5,5,5,5,5,5,5,8,8,8,6,6,6,8,8, -+6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,6,5,5,6,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, --5,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x144b,0x16cb,0x194b,0x1bcb, --0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,5,5,6, --6,5,0,0,0,0,0,0,0,0,0,6,8,6,8,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, --6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0x30b,0x34b, --0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6, --6,6,6,8,8,6,6,0x17,0x17,0x10,0x17,0x17,0x17,0x17,6,0, --0,0,0,0,0,0,0,0,0,0x10,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, --0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, --0,0,0,0,5,5,5,5,5,5,5,6,6,6,6,6, --8,6,6,6,6,6,6,6,6,0,0x49,0x89,0xc9,0x109,0x149,0x189, --0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,8,8,5,0,0,0,0, --0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,6,6,6,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,6,0x17,0x17,5,0,0,0,0,0, --0,0,0,0,8,5,5,5,5,0x17,0x17,0x17,0x17,6,6,6, --6,0x17,8,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,0x17, --5,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,8,8,8,6,6,6,6,6,6, --6,6,6,8,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b, --0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0,0,0,0,0,0,0, --0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --8,8,8,6,6,6,8,8,6,8,6,6,0x17,0x17,0x17,0x17, --0x17,0x17,6,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5, --5,5,5,5,5,5,5,5,5,0x17,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -+5,0,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -+5,0x17,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, -+6,6,6,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -+0x249,0x289,0,0,0,0,0,0,5,5,8,8,0,0,6,6, -+6,6,6,6,6,0,0,0,6,6,6,6,6,0,0,0, -+0,0,0,0,0,0,0,0,6,6,8,8,0,5,5,5, -+5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, -+5,0,5,5,0,5,5,5,5,5,0,6,6,5,8,8, -+6,8,8,8,8,0,0,8,8,0,0,8,8,8,0,0, -+5,0,0,0,0,0,0,8,0,0,0,0,0,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,8,8,8,6,6,6,6,6,6,6,6, -+8,8,6,6,6,8,6,5,5,5,5,0x17,0x17,0x17,0x17,0x17, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0x17,6,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --8,8,8,6,6,6,6,6,6,6,6,0,0,0,0,0, -+8,8,8,6,6,6,6,6,6,8,6,8,8,8,8,6, -+6,8,6,6,5,5,0x17,5,0,0,0,0,0,0,0,0, - 0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, --5,5,8,8,0,0,6,6,6,6,6,6,6,0,0,0, --6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0, --6,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5, --5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5, --5,5,0,6,6,5,8,8,6,8,8,8,8,0,0,8, --8,0,0,8,8,8,0,0,5,0,0,0,0,0,0,8, --0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,8,8,8, --6,6,6,6,6,6,6,6,8,8,6,6,6,8,6,5, --5,5,5,0x17,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0x17,0x17,0,0x17,6,5,5,5,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, -+8,8,6,6,6,6,0,0,8,8,8,8,6,6,8,6, -+6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,6,6,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+8,8,8,6,6,6,6,6,6,6,6,8,8,6,8,6, -+6,0x17,0x17,0x17,5,0,0,0,0,0,0,0,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,6,8,6,8,8, -+6,6,6,6,6,6,8,6,5,0x17,0,0,0,0,0,0, -+8,8,6,6,6,6,8,6,6,6,6,6,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b, -+5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6, -+6,6,6,6,6,6,6,6,8,6,6,0x17,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, -+0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0,0,0,0,5, -+8,5,8,6,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -+5,5,5,5,5,5,5,0,0,5,0,0,5,5,5,5, -+5,5,5,5,0,5,5,0,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,8,8,8,8,8,8,0,8, -+8,0,0,6,6,8,6,5,6,5,0x17,5,8,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, --6,8,6,8,8,8,8,6,6,8,6,6,5,5,0x17,5, --0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,8,8,8,6,6,6,6,0,0, --8,8,8,8,6,6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, --5,5,5,5,6,6,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, --6,6,6,8,8,6,8,6,6,0x17,0x17,0x17,5,0,0,0, --0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, --0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,8,8,8,6,6,6,6, -+0,0,6,6,8,8,8,8,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, -+6,8,5,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,6, -+0,0,0,0,0,0,0,0,5,6,6,6,6,6,6,8, -+8,6,6,6,5,5,5,5,5,6,6,6,6,6,6,6, -+6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,0x17,0x17,0x17,0,0,0,0,0, - 0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,6,8,6,8,8,6,6,6,6,6,6,8,6, --5,0x17,0,0,0,0,0,0,8,8,6,6,6,6,8,6, --6,6,6,6,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b,5,5,5,5,5,5,5,0, -+5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6, -+6,6,6,6,6,6,6,8,6,6,0x17,0x17,0x17,5,0x17,0x17, -+5,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,6, --8,6,6,0x17,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0, --0,0,0,0,0,0,0,5,8,5,8,6,0x17,0x17,0x17,0, -+0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0,0,0, -+0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,8,6,6,6,6, -+6,6,6,0,6,6,6,6,6,6,8,6,6,6,6,6, -+6,6,6,6,0,8,6,6,6,6,6,6,6,8,6,6, -+8,6,6,0,0,0,0,0,0,0,0,0,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0,0,6,6, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,6, - 0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, - 0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,0, --0,5,0,0,5,5,5,5,5,5,5,5,0,5,5,0, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --8,8,8,8,8,8,0,8,8,0,0,6,6,8,6,5, --6,5,0x17,5,8,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,0,0,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,8,8,8,6,6,6,6,0,0,6,6,8,8,8,8, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,6,6,6,6,6,6,8,5,6,6,6,6,0x17, --0x17,0x17,0x17,0x17,0x17,0x17,0x17,6,0,0,0,0,0,0,0,0, --5,6,6,6,6,6,6,8,8,6,6,6,5,5,5,5, --5,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,8, --6,6,0x17,0x17,0x17,5,0x17,0x17,5,0x17,0x17,0x17,0x17,0x17,0,0, --0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, --0x249,0x289,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb, --0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0,0,0,0x17,0x17,5,5,5,5,5,5, -+5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,0, -+0,0,6,0,6,6,0,6,5,5,5,5,5,5,5,5, -+5,5,8,8,8,8,8,0,6,6,0,8,8,6,8,6, -+5,0,0,0,0,0,0,0,5,5,5,5,5,5,0,5, -+5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,6,6,8,8,0x17, -+0x17,0,0,0,0,0,0,0,6,8,6,0x17,0x17,0x17,0x17,0x17, -+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -+0x249,0x289,0,0,0,0,0,0,6,6,5,8,5,5,5,5, - 5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,8,6,6,6,6,6,6,6,0,6,6,6,6, --6,6,8,6,6,6,6,6,6,6,6,6,0,8,6,6, --6,6,6,6,6,8,6,6,8,6,6,0,0,0,0,0, --0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,0,0,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,5,6,0,0,0,0,0,0,0,0, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, --5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,6,6,6,6,6,6,0,0,0,6,0,6,6,0,6, --5,5,5,5,5,5,5,5,5,5,8,8,8,8,8,0, --6,6,0,8,8,6,8,6,5,0,0,0,0,0,0,0, --5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,6,6,8,8,0x17,0x17,0,0,0,0,0,0,0, -+8,8,6,6,6,6,6,0,0,0,8,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0x19,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, -@@ -1215,8 +1226,10 @@ static const uint16_t propsTrie_index[22688]={ - 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0, - 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0,0x10,0x10,0x10,0x10, --0x10,0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -+5,5,5,5,5,5,5,5,5,5,5,5,0x10,0x10,0x10,0x10, -+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,5,5,5, -+5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, - 0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, - 6,6,6,6,6,0x17,0,0,0,0,0,0,0,0,0,0, -@@ -1241,145 +1254,153 @@ static const uint16_t propsTrie_index[22688]={ - 5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,4,4,4,4,0,4,4,4,4,4,4,4, - 0,4,4,0,5,5,5,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,5,5,5,0,0,5,0,0, -+0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,5, -+5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,0,0,0x1b,6,6,0x17, -+0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0, --0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0, --5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,0,0,0,0,0,5,5,5,5,5,5,5,5, --5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5, --5,5,5,5,5,5,0,0,0x1b,6,6,0x17,0x10,0x10,0x10,0x10, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,0,0,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0, --0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b,0x1b,8,8,8, --8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,6,6,6,6, --6,6,6,0x1b,0x1b,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, -+0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b, -+0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6, -+6,6,6,6,6,6,6,0x1b,0x1b,6,6,6,6,6,6,6, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,0x1b,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, --0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0,0,0,0, --0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, --0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x58b,0x5cb,0x60b,0x64b,0x68b,0x58b, --0x68b,0,0,0,0,0,0,0,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189, --0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89, --0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,2,2,2,2,2,2,2,0,2,2, --2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6, -+6,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b, -+0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b, -+0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b, -+0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x58b,0x5cb, -+0x60b,0x64b,0x68b,0x58b,0x68b,0,0,0,0,0,0,0,0x249,0x289,0x49,0x89, -+0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -+0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,1,0,1,1, --0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1, --1,1,1,1,1,1,2,2,2,2,0,2,0,2,2,2, --2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2, -+1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, -+2,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --2,2,2,2,1,1,0,1,1,1,1,0,0,1,1,1, --1,1,1,1,1,0,1,1,1,1,1,1,1,0,2,2, -+1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0, --1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1, -+1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1, -+1,0,1,1,1,1,1,1,1,1,2,2,2,2,0,2, -+0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2, -+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,2,2,2,2,1,1,0,1,1,1,1,0, -+0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1, - 1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1, -+1,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1, -+1,1,1,1,1,0,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --2,2,2,2,2,2,0,0,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,0x18,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,2,2, --2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,1,1,1,0x18,2,2,2,2, -+1,1,1,1,1,0x18,2,2,2,2,2,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x18, -+2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,0x18,2,2,2,2,2,2,1,1,1,1,1,1,1,1, --1,1,1,1,1,1,1,1,2,2,2,0x18,2,2,2,2, --2,2,1,2,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, --0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0x1b, --0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6, --6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,0,0,6,6,6,6,6,2,2,2,2, --2,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,0,6,6,0,6, --6,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,5,0x1b,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,0,0,0,6,6,6,6, --6,6,6,4,4,4,4,4,4,4,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,6,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, --5,5,5,5,5,5,5,5,6,6,6,6,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0x19,5,5,5,5, --5,5,5,0,5,5,5,5,0,5,5,0,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, --5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,6,6,6,6, --6,6,6,0,0,0,0,0,0,0,0,0,2,2,2,2, --6,6,6,6,6,6,6,4,0,0,0,0,0x49,0x89,0xc9,0x109, --0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,1,1,2,2, -+2,2,2,2,2,0x18,2,2,2,2,2,2,1,1,1,1, -+1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,0x18, -+2,2,2,2,2,2,1,2,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -+0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0,6,6,6, -+6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, -+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6, -+6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, -+6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6, -+6,6,6,6,6,6,6,6,6,0,0,6,6,6,6,6, -+2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,2, -+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0, -+0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+6,6,0,6,6,0,6,6,6,6,6,0,0,0,0,0, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,5,0x1b, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, -+6,6,6,6,6,6,6,4,4,4,4,4,4,4,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0x19, -+5,5,5,5,5,5,5,5,5,5,5,4,6,6,6,6, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -+5,5,5,5,5,5,5,0,5,5,5,5,0,5,5,0, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -+5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b, -+6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0, -+2,2,2,2,6,6,6,6,6,6,6,4,0,0,0,0, -+0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17, -+1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, --2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b, --0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x78cb,0x794b,0x814b,0x58b, --0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x1b,0x34cb,0x344b,0x3ccb,0x19,0x58b,0x5cb,0x788b, --0x78cb,0,0,0,0,0,0,0,0,0,0,0,0x16cb,0x194b,0x1bcb,0x1e4b, --0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b, --0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x984b,0xa04b,0xa84b,0xb04b, --0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x1b,0x5cb,0x60b,0x64b,0x68b,0x6cb, --0x70b,0x74b,0x78b,0x7cb,0x900b,0xa00b,0x804b,0x788b,0x344b,0x354b,0,0,0,0x58b,0x5cb,0x60b, --0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b, --0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x18,0x18,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, --0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,0, --5,0,0,5,0,5,5,5,5,5,5,5,5,5,5,0, --5,5,5,5,0,5,0,5,0,0,0,0,0,0,5,0, --0,0,0,5,0,5,0,5,0,5,5,5,0,5,5,0, --5,0,0,5,0,5,0,5,0,5,0,5,0,5,5,0, --5,0,0,5,5,5,5,0,5,5,5,5,5,5,5,0, --5,5,5,5,0,5,5,5,5,0,5,0,5,5,5,5, --5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5, --0,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,5,0,0,0,0,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b, --0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b,0x54b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, -+0x78cb,0x794b,0x814b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x1b,0x34cb,0x344b,0x3ccb, -+0x19,0x58b,0x5cb,0x788b,0x78cb,0,0,0,0,0,0,0,0,0,0,0, -+0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b, -+0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb, -+0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x1b,0x5cb, -+0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x900b,0xa00b,0x804b,0x788b,0x344b,0x354b,0,0, -+0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, -+0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -+5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+0,5,5,0,5,0,0,5,0,5,5,5,5,5,5,5, -+5,5,5,0,5,5,5,5,0,5,0,5,0,0,0,0, -+0,0,5,0,0,0,0,5,0,5,0,5,0,5,5,5, -+0,5,5,0,5,0,0,5,0,5,0,5,0,5,0,5, -+0,5,5,0,5,0,0,5,5,5,5,0,5,5,5,5, -+5,5,5,0,5,5,5,5,0,5,5,5,5,0,5,0, -+5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, -+0,5,5,5,0,5,5,5,5,5,0,5,5,5,5,5, -+5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, --0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x2cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b,0x54b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0, - 0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -@@ -1388,13 +1409,12 @@ static const uint16_t propsTrie_index[22688]={ - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, - 0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, --0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, -+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, -+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, --0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, --0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, -+0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, -+0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, - 0x1b,0x1b,0x1b,0x1b,5,0x705,5,5,5,5,5,5,5,5,5,5, -@@ -1416,176 +1436,177 @@ static const uint16_t propsTrie_index[22688]={ - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5,5, - 5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -+5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,0x785,5,5,5,5,5,5,5,5,5,5,5, --5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10, -+5,5,5,5,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, --0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0,0x10,0,0, -+0x10,0x10,0x10,0x10,0,0x10,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, --6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0, --0,0,0,0,0,0,0,0,0,0,0,0,0x11,0x11,0x11,0x11, -+0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, -+6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, - 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, --0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0,0,0,0,0,0 -+0x11,0x11,0,0,0,0,0,0 - }; - - static const UTrie2 propsTrie={ - propsTrie_index, -- propsTrie_index+4656, -+ propsTrie_index+4692, - NULL, -- 4656, -- 18032, -+ 4692, -+ 18324, - 0xa40, -- 0x12b0, -+ 0x12d4, - 0x0, - 0x0, - 0x110000, -- 0x589c, -- NULL, 0, FALSE, FALSE, 0, NULL -+ 0x59e4, -+ NULL, 0, false, false, 0, NULL - }; - --static const uint16_t propsVectorsTrie_index[32060]={ --0x511,0x519,0x521,0x529,0x541,0x549,0x551,0x559,0x561,0x569,0x571,0x579,0x581,0x589,0x591,0x599, --0x5a0,0x5a8,0x5b0,0x5b8,0x5bb,0x5c3,0x5cb,0x5d3,0x5db,0x5e3,0x5eb,0x5f3,0x5fb,0x603,0x60b,0x613, --0x61b,0x623,0x62a,0x632,0x63a,0x642,0x64a,0x652,0x65a,0x662,0x667,0x66f,0x676,0x67e,0x686,0x68e, --0x696,0x69e,0x6a6,0x6ae,0x6b5,0x6bd,0x6c5,0x6cd,0x6d5,0x6dd,0x6e5,0x6ed,0x6f5,0x6fd,0x705,0x70d, --0x1aba,0xd5a,0xe2e,0x1162,0x1299,0x1c7b,0x1e12,0x1c73,0x1367,0x1377,0x135f,0x136f,0x7da,0x7e0,0x7e8,0x7f0, --0x7f8,0x7fe,0x806,0x80e,0x816,0x81c,0x824,0x82c,0x834,0x83a,0x842,0x84a,0x852,0x85a,0x862,0x869, --0x871,0x877,0x87f,0x887,0x88f,0x895,0x89d,0x8a5,0x8ad,0x137f,0x8b5,0x8bd,0x8c5,0x8cc,0x8d4,0x8dc, --0x8e4,0x8e8,0x8f0,0x8f7,0x8ff,0x907,0x90f,0x917,0x169a,0x16a2,0x91f,0x927,0x92f,0x937,0x93f,0x946, --0x1700,0x16f0,0x16f8,0x19f5,0x19fd,0x138f,0x94e,0x1387,0x15e3,0x15e3,0x15e5,0x13a3,0x13a4,0x1397,0x1399,0x139b, --0x1708,0x170a,0x956,0x170a,0x95e,0x963,0x96b,0x170f,0x971,0x170a,0x977,0x97f,0xc3a,0x1717,0x1717,0x987, --0x1727,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728, --0x1728,0x1728,0x1728,0x171f,0x98f,0x1730,0x1730,0x997,0xb62,0xb6a,0xb72,0xb7a,0x1740,0x1738,0x99f,0x9a7, --0x9af,0x174a,0x1752,0x9b7,0x1748,0x9bf,0x1ac2,0xd62,0xb82,0xb8a,0xb92,0xb97,0x195b,0xc61,0xc68,0x18b7, --0xc12,0x1aca,0xd6a,0xd72,0xd7a,0xd82,0xf38,0xf3c,0x19bb,0x19c0,0xca0,0xca8,0x1a31,0x1a39,0x1b93,0xe36, --0x1a41,0xcee,0xcf6,0x1a49,0x10e2,0x118a,0xf10,0xd8a,0x18d7,0x18bf,0x18cf,0x18c7,0x1973,0x196b,0x1927,0x19b3, --0x13ac,0x13ac,0x13ac,0x13ac,0x13af,0x13ac,0x13ac,0x13b7,0x9c7,0x13bf,0x9cb,0x9d3,0x13bf,0x9db,0x9e3,0x9eb, --0x13cf,0x13c7,0x13d7,0x9f3,0x9fb,0x13df,0xa03,0xa0b,0x13e7,0x13ef,0x13f7,0x13ff,0xa13,0x1407,0x140e,0x1416, --0x141e,0x1426,0x142e,0x1436,0x143e,0x1445,0x144d,0x1455,0x145d,0x1465,0x1468,0x146a,0x175a,0x184d,0x1853,0x19a3, --0x1472,0xa1b,0xa23,0x1598,0x159d,0x15a0,0x15a6,0x147a,0x15ae,0x15ae,0x148a,0x1482,0x1492,0x149a,0x14a2,0x14aa, --0x14b2,0x14ba,0x14c2,0x14ca,0x185b,0x18af,0x1a05,0x1b5b,0x14da,0x14e0,0x14e8,0x14f0,0x14d2,0x14f8,0x1863,0x186a, --0x1762,0x1762,0x1762,0x1762,0x1762,0x1762,0x1762,0x1762,0x1872,0x1872,0x1872,0x1872,0x187a,0x1881,0x1883,0x188a, --0x1892,0x1896,0x1896,0x1899,0x1896,0x1896,0x189f,0x1896,0x18df,0x19ab,0x1a0d,0xb9f,0xba5,0x1cbf,0x1cc7,0x1d9d, --0x194b,0x193f,0x1943,0x19c8,0x192f,0x192f,0x192f,0xc22,0x1937,0xc42,0x198b,0xc90,0xc2a,0xc32,0xc32,0x1a51, --0x197b,0x1a15,0xc78,0xc80,0xa2b,0x176a,0x176a,0xa33,0x1772,0x1772,0x1772,0x1772,0x1772,0x1772,0xa3b,0x715, --0x15cb,0x15ed,0xa43,0x15f5,0xa4b,0x15fd,0x1605,0x160d,0xa53,0xa58,0x1615,0x161c,0xa5d,0x177a,0x199b,0xc1a, --0xa65,0x1677,0x167e,0x1624,0x1686,0x168a,0x162c,0x1630,0x1649,0x1649,0x164b,0x1638,0x1640,0x1640,0x1641,0x1692, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, --0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1785,0x18e7,0x18e7, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, --0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x165a,0x1ab2,0x1e7e, --0x178d,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793, --0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793, --0x1793,0x1793,0x1793,0x1793,0xa6d,0x179b,0xa75,0x1ad2,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d, --0x1a59,0xcfe,0x1a6d,0x1a65,0x1a6f,0x1ada,0x1ada,0xd92,0x1953,0x19d0,0x1a25,0x1a29,0x1a1d,0x1b8b,0xcb0,0xcb7, --0x1983,0xc88,0x19d8,0xcbf,0x1a77,0x1a7a,0xd06,0x1ae2,0x1a8a,0x1a82,0xd0e,0xd9a,0x1aea,0x1aee,0xda2,0xfec, --0x1a92,0xd16,0xd1e,0x1af6,0x1b06,0x1afe,0xdaa,0xee0,0xe3e,0xe46,0x1d0d,0xf9c,0x1dba,0x1dba,0x1b0e,0xdb2, --0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3, --0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5, --0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7, --0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2, --0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4, --0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6, --0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8, --0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3, --0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5, --0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7, --0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2, --0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4, --0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6, --0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8, --0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3, --0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5, --0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7, --0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2, --0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4, --0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6, --0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8, --0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0xa7d,0xdba,0xdbd, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba, --0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, --0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662, --0x1667,0x166f,0x18a7,0x132c,0x1993,0x1993,0x1330,0x1337,0xa85,0xa8d,0xa95,0x1518,0x151f,0x1527,0xa9d,0x152f, --0x156d,0x156d,0x1500,0x1508,0x1537,0x1564,0x1565,0x1575,0x153f,0x1544,0x154c,0x1554,0xaa5,0x155c,0xaad,0x1510, --0xc98,0x157d,0xab5,0xabd,0x1585,0x158b,0x1590,0xac5,0xad5,0x15d3,0x15db,0x15be,0x15c3,0xadd,0xae5,0xacd, --0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, --0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16b2,0x16b2,0x16b2,0x16b2, --0x14c4,0x14c4,0x1504,0x1544,0x1584,0x15c4,0x1604,0x1644,0x1680,0x16c0,0x16ec,0x172c,0x176c,0x17ac,0x17ec,0x182c, --0x186c,0x18a8,0x18e8,0x1928,0x1968,0x199c,0x19d8,0x1a18,0x1a58,0x1a98,0x1ad4,0x1b14,0x1b54,0x1b94,0x1bd4,0x1c14, --0xe59,0xa80,0xac0,0xb00,0xb40,0xb6b,0xed9,0xa40,0xefb,0xa40,0xa40,0xa40,0xa40,0xbab,0x1381,0x1381, --0xf3b,0xfbb,0xa40,0xa40,0xa40,0xbeb,0xf7b,0xc2b,0xa40,0xc51,0xc91,0xcd1,0xd11,0xd51,0xe99,0xdc9, --0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1, --0x12c1,0x12c1,0x12c1,0x12c1,0xffb,0x1301,0x1136,0x1176,0x1341,0x1181,0x13c1,0x13c1,0x13c1,0x103b,0x105b,0x109b, --0x1401,0x1401,0x10db,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b, --0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x10f6, -+static const uint16_t propsVectorsTrie_index[32692]={ -+0x539,0x541,0x549,0x551,0x569,0x571,0x579,0x581,0x589,0x591,0x599,0x5a1,0x5a9,0x5b1,0x5b9,0x5c1, -+0x5c8,0x5d0,0x5d8,0x5e0,0x5e3,0x5eb,0x5f3,0x5fb,0x603,0x60b,0x613,0x61b,0x623,0x62b,0x633,0x63b, -+0x643,0x64b,0x652,0x65a,0x662,0x66a,0x672,0x67a,0x682,0x68a,0x68f,0x697,0x69e,0x6a6,0x6ae,0x6b6, -+0x6be,0x6c6,0x6ce,0x6d6,0x6dd,0x6e5,0x6ed,0x6f5,0x6fd,0x705,0x70d,0x715,0x71d,0x725,0x72d,0x735, -+0x1b39,0xd8a,0xe56,0x118d,0x12cc,0x1d01,0x1ea0,0x1cf9,0x13e6,0x13f6,0x13de,0x13ee,0x80a,0x810,0x818,0x820, -+0x828,0x82e,0x836,0x83e,0x846,0x84c,0x854,0x85c,0x864,0x86a,0x872,0x87a,0x882,0x88a,0x892,0x899, -+0x8a1,0x8a7,0x8af,0x8b7,0x8bf,0x8c5,0x8cd,0x8d5,0x8dd,0x13fe,0x8e5,0x8ed,0x8f5,0x8fc,0x904,0x90c, -+0x914,0x918,0x920,0x927,0x92f,0x937,0x93f,0x947,0x1719,0x1721,0x94f,0x957,0x95f,0x967,0x96f,0x976, -+0x177f,0x176f,0x1777,0x1a74,0x1a7c,0x140e,0x97e,0x1406,0x1662,0x1662,0x1664,0x1422,0x1423,0x1416,0x1418,0x141a, -+0x1787,0x1789,0x986,0x1789,0x98e,0x993,0x99b,0x178e,0x9a1,0x1789,0x9a7,0x9af,0xc6a,0x1796,0x1796,0x9b7, -+0x17a6,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7,0x17a7, -+0x17a7,0x17a7,0x17a7,0x179e,0x9bf,0x17af,0x17af,0x9c7,0xb92,0xb9a,0xba2,0xbaa,0x17bf,0x17b7,0x9cf,0x9d7, -+0x9df,0x17c9,0x17d1,0x9e7,0x17c7,0x9ef,0x1b41,0xd92,0xbb2,0xbba,0xbc2,0xbc7,0x19da,0xc91,0xc98,0x1936, -+0xc42,0x1b49,0xd9a,0xda2,0xdaa,0xdb2,0xf60,0xf64,0x1a3a,0x1a3f,0xcd0,0xcd8,0x1ab0,0x1ab8,0x1c19,0xe5e, -+0x1ac0,0xd1e,0xd26,0x1ac8,0x1105,0x11b5,0xf38,0xdba,0x1956,0x193e,0x194e,0x1946,0x19f2,0x19ea,0x19a6,0x1a32, -+0x142b,0x142b,0x142b,0x142b,0x142e,0x142b,0x142b,0x1436,0x9f7,0x143e,0x9fb,0xa03,0x143e,0xa0b,0xa13,0xa1b, -+0x144e,0x1446,0x1456,0xa23,0xa2b,0x145e,0xa33,0xa3b,0x1466,0x146e,0x1476,0x147e,0xa43,0x1486,0x148d,0x1495, -+0x149d,0x14a5,0x14ad,0x14b5,0x14bd,0x14c4,0x14cc,0x14d4,0x14dc,0x14e4,0x14e7,0x14e9,0x17d9,0x18cc,0x18d2,0x1a22, -+0x14f1,0xa4b,0xa53,0x1617,0x161c,0x161f,0x1625,0x14f9,0x162d,0x162d,0x1509,0x1501,0x1511,0x1519,0x1521,0x1529, -+0x1531,0x1539,0x1541,0x1549,0x18da,0x192e,0x1a84,0x1be1,0x1559,0x155f,0x1567,0x156f,0x1551,0x1577,0x18e2,0x18e9, -+0x17e1,0x17e1,0x17e1,0x17e1,0x17e1,0x17e1,0x17e1,0x17e1,0x18f1,0x18f1,0x18f1,0x18f1,0x18f9,0x1900,0x1902,0x1909, -+0x1911,0x1915,0x1915,0x1918,0x1915,0x1915,0x191e,0x1915,0x195e,0x1a2a,0x1a8c,0xbcf,0xbd5,0x1d45,0x1d4d,0x1e2b, -+0x19ca,0x19be,0x19c2,0x1a47,0x19ae,0x19ae,0x19ae,0xc52,0x19b6,0xc72,0x1a0a,0xcc0,0xc5a,0xc62,0xc62,0x1ad0, -+0x19fa,0x1a94,0xca8,0xcb0,0xa5b,0x17e9,0x17e9,0xa63,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0xa6b,0x73d, -+0x164a,0x166c,0xa73,0x1674,0xa7b,0x167c,0x1684,0x168c,0xa83,0xa88,0x1694,0x169b,0xa8d,0x17f9,0x1a1a,0xc4a, -+0xa95,0x16f6,0x16fd,0x16a3,0x1705,0x1709,0x16ab,0x16af,0x16c8,0x16c8,0x16ca,0x16b7,0x16bf,0x16bf,0x16c0,0x1711, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801, -+0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1804,0x1966,0x1966, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, -+0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d9,0x1b31,0x1f0c, -+0x180c,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -+0x1812,0x1812,0x1812,0x1812,0xa9d,0x181a,0xaa5,0x1b51,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc, -+0x1ad8,0xd2e,0x1aec,0x1ae4,0x1aee,0x1b59,0x1b59,0xdc2,0x19d2,0x1a4f,0x1aa4,0x1aa8,0x1a9c,0x1c11,0xce0,0xce7, -+0x1a02,0xcb8,0x1a57,0xcef,0x1af6,0x1af9,0xd36,0x1b61,0x1b09,0x1b01,0xd3e,0xdca,0x1b69,0x1b6d,0xdd2,0x100f, -+0x1b11,0xd46,0xd4e,0x1b75,0x1b85,0x1b7d,0xdda,0xf08,0xe66,0xe6e,0x1d9b,0xfbf,0x1e48,0x1e48,0x1b8d,0xde2, -+0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762, -+0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764, -+0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766, -+0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761, -+0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763, -+0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765, -+0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767, -+0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762, -+0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764, -+0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766, -+0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761, -+0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763, -+0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765, -+0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767, -+0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762, -+0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764, -+0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766, -+0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761, -+0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763, -+0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765, -+0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767, -+0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0x1767,0x1761,0x1762,0x1763,0x1764,0x1765,0x1766,0xaad,0xdea,0xded, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739, -+0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739,0x1739, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635, -+0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x16e1,0x16e1,0x16e1,0x16e1,0x16e1,0x16e1,0x16e1,0x16e1, -+0x16e6,0x16ee,0x1926,0x13a3,0x1a12,0x1a12,0x13a7,0x13ae,0xab5,0xabd,0xac5,0x1597,0x159e,0x15a6,0xacd,0x15ae, -+0x15ec,0x15ec,0x157f,0x1587,0x15b6,0x15e3,0x15e4,0x15f4,0x15be,0x15c3,0x15cb,0x15d3,0xad5,0x15db,0xadd,0x158f, -+0xcc8,0x15fc,0xae5,0xaed,0x1604,0x160a,0x160f,0xaf5,0xb05,0x1652,0x165a,0x163d,0x1642,0xb0d,0xb15,0xafd, -+0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729, -+0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1729,0x1731,0x1731,0x1731,0x1731, -+0x1564,0x1564,0x15a4,0x15e4,0x1624,0x1664,0x16a4,0x16e4,0x1720,0x1760,0x178c,0x17cc,0x180c,0x184c,0x188c,0x18cc, -+0x190c,0x1948,0x1988,0x19c8,0x1a08,0x1a3c,0x1a78,0x1ab8,0x1af8,0x1b38,0x1b74,0x1bb4,0x1bf4,0x1c34,0x1c74,0x1cb4, -+0xe59,0xa80,0xac0,0xb00,0xb40,0xb6b,0xf99,0xa40,0xed9,0xa40,0xa40,0xa40,0xa40,0xbab,0x13e2,0x13e2, -+0xf19,0xfd9,0xa40,0xa40,0xa40,0xbeb,0xf59,0xc2b,0xa40,0xc51,0xc91,0xcd1,0xd11,0xd51,0xe99,0xdc9, -+0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322,0x1322, -+0x1322,0x1322,0x1322,0x1322,0x1019,0x1362,0x1157,0x1197,0x13a2,0x11a2,0x1422,0x1422,0x1422,0x1059,0x1079,0x10b9, -+0x1462,0x1462,0x11e2,0x14a2,0x10f9,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079, -+0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1079,0x1117, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -@@ -1608,1868 +1629,1908 @@ static const uint16_t propsVectorsTrie_index[32060]={ - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, - 0xe09,0xe19,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, - 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, --0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241, --0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x11c1, --0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281, --0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1201, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0xbf7,0xbfa,0xdc5,0x1d5d,0xff4,0x71d,0x531,0x108e,0xcc7,0xd46,0x531,0x531,0x1c8b,0xee8,0xef0,0x1da5, --0xc4a,0xc51,0xc59,0x1b16,0x1d3d,0x531,0x1d1d,0xfc4,0x1b1e,0xdcd,0xdd5,0xddd,0x101c,0x725,0x531,0x531, --0x1b26,0x1b26,0x72d,0x531,0x1dd2,0x10a6,0x1dca,0x10ae,0x1ebe,0x11a0,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0xde5,0x1f16,0x1291,0x531,0x531,0x1ede,0x11c8,0x11cf,0x11d6,0x12cd,0x12d1,0x1248,0x11de, --0x1b9b,0x1b9d,0xe4e,0xe55,0x1b2e,0x1b36,0xded,0xf08,0x1c83,0xed0,0xed8,0xfbc,0x1ca3,0x1ca7,0x1caf,0x103c, --0xf87,0xf8c,0x735,0x531,0x1096,0x109e,0x1d05,0xf94,0xf69,0xf6f,0xf77,0xf7f,0x531,0x531,0x531,0x531, --0x1e42,0x1e3a,0x1110,0x1118,0x1d85,0x1d7d,0x1064,0x531,0x531,0x531,0x531,0x531,0x1d6d,0x1024,0x102c,0x1034, --0x1d35,0x1d2d,0xfd4,0x1108,0x1cb7,0xf18,0x73d,0x531,0x1074,0x107c,0x745,0x531,0x531,0x531,0x531,0x531, --0x1eb6,0x1182,0x74d,0x531,0x531,0x1d95,0x1d8d,0x106c,0x1250,0x1256,0x125e,0x531,0x531,0x11e6,0x11ea,0x11f2, --0x1e76,0x1e6e,0x116a,0x1e66,0x1e5e,0x115a,0x1d65,0x1014,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x10c6,0x10cb,0x10d3,0x10da,0x10fa,0x1100,0x531,0x531,0x113e,0x1142,0x114a,0x1192,0x1198,0x755,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x11b0,0x531,0x531,0x531,0x531,0x531,0x759,0x1efe,0x1238, --0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0, --0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e5,0xccf,0xcd6,0xcd6,0xcd6, --0x19ed,0x19ed,0x19ed,0xcde,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x761,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x765,0x1f2e,0x1f2e,0x12a1,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5, --0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0xe5d,0xfdc,0xfe4,0x1f36, --0x12d9,0x12e1,0xf20,0x1d55,0x1d4d,0x1004,0x100c,0x76d,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1ed6,0x1ece,0x11c0, --0x531,0x531,0x531,0x1c9b,0x1c9b,0xef8,0x1c93,0xf00,0x531,0x531,0x10f2,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x771,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1ced,0x1ced,0x1ced,0xf44,0xf49, --0x779,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1f46,0x1301,0x1308,0x1f3e,0x1f3e,0x1f3e,0x781, --0x531,0x17c0,0x17c0,0x17c0,0x17c0,0x17c0,0x17c0,0x17c0,0xafb,0x17d0,0xb03,0x17d1,0x17c8,0x17d9,0x17df,0x17e7, --0xb0b,0x190f,0x190f,0x789,0x531,0x531,0x531,0x531,0x11b8,0x18ff,0x18ff,0xc02,0xce6,0x531,0x531,0x531, --0x531,0x1818,0x181f,0xb13,0x1822,0xb1b,0xb23,0xb2b,0x181c,0xb33,0xb3b,0xb43,0x1821,0x1829,0x1818,0x181f, --0x181b,0x1822,0x182a,0x1819,0x1820,0x181c,0xb4a,0x17ef,0x17f7,0x17fe,0x1805,0x17f2,0x17fa,0x1801,0x1808,0xb52, --0x1810,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea, --0x1dea,0x1dda,0x1ddd,0x1dda,0x1de4,0x10b6,0x791,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x12bd,0x12c5,0x12c5,0x12c5,0x12c5,0x12c5,0x12c5, --0x12c5,0x10ea,0x799,0x531,0x531,0x531,0x531,0x531,0x531,0x1ef6,0x11fa,0x7a1,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x7a5,0x12e9,0x1f06,0x1240,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x12a9,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0xfcc,0x531,0x1e32,0x1e2a,0x10be,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x7ad,0x1ec6,0x11a8,0x531,0x531,0x1202,0x1203,0x7b5,0x531,0x531,0x531,0x531, --0x531,0xe95,0xe9d,0xea5,0xead,0xeb5,0xebd,0xec4,0xec8,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x7b9,0x1044,0x1d75,0x104a,0x1d75,0x1052,0x1057,0x105c, --0x105c,0x1dfa,0x1e1a,0x1e22,0x1e8e,0x1e02,0x1ee6,0x1e0a,0x1e96,0x1eee,0x1eee,0x1172,0x117a,0x121a,0x1220,0x1228, --0x1230,0x1f0e,0x1f0e,0x1f0e,0x1f0e,0x1274,0x1f0e,0x127a,0x127e,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1, --0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1, --0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c2,0xb5a,0x1832,0x1832,0x1832,0x7ca,0x7ca,0x7ca, --0x7ca,0x1907,0x1907,0x1907,0x1907,0x1907,0x1907,0x1907,0x7d2,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, --0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, --0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, --0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, --0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xbad,0xbb4,0xbbc,0xbc4,0x18ef,0x18ef,0x18ef, --0xbcc,0xbd4,0xbd7,0x191f,0x1917,0xc0a,0xd26,0xd2a,0xd2e,0x531,0x531,0x531,0x531,0xd36,0x1a9a,0xd3e, --0xf30,0x17a3,0xaed,0xaf3,0xffc,0xbdf,0x1963,0xc70,0x531,0x17b8,0x17ab,0x17b0,0x18f7,0xbe7,0xbef,0x1120, --0x1126,0x1cf5,0xf51,0x1ce5,0xf28,0x12f1,0x12f9,0x531,0x531,0x1d15,0x1d15,0x1d15,0x1d15,0x1d15,0x1d15,0x1d15, --0x1d15,0x1d15,0xfa4,0xfac,0xfb4,0x12b1,0x12b5,0x531,0x531,0x1aa2,0xd4e,0x1aaa,0x1aaa,0xd52,0xe65,0xe6d, --0xe75,0x1b6b,0x1b53,0x1b73,0x1b7b,0x1b63,0xdfd,0xe01,0xe08,0xe10,0xe14,0xe1c,0xe24,0xe26,0xe26,0xe26, --0xe26,0x1bdc,0x1be4,0x1bdc,0x1bea,0x1bf2,0x1bbd,0x1bfa,0x1c02,0x1bdc,0x1c0a,0x1c12,0x1c19,0x1c21,0x1bc5,0x1bdc, --0x1c26,0x1bcd,0x1bd4,0x1c2e,0x1c34,0x1cd6,0x1cdd,0x1ccf,0x1c3b,0x1c43,0x1c4b,0x1c53,0x1d45,0x1c5b,0x1c63,0xe7d, --0xe85,0x1bad,0x1bad,0x1bad,0xe8d,0x1cfd,0x1cfd,0xf59,0xf61,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e, --0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b40,0x1b3e,0x1b48,0x1b3e,0x1b3e, --0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b4b,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0xdf5,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad, --0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1db2,0x1dad,0x1dad,0x1dad,0x1084,0x1086,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x112e,0x1bb5,0x1e86,0x1e86,0x1e86,0x1e86, --0x1e86,0x1e86,0x1e86,0x1ea6,0x1136,0x120b,0x1212,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae, --0x1eae,0x1eae,0x1152,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52, --0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52, --0x1e52,0x1e52,0x1e56,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26, --0x1f26,0x1266,0x126c,0x1286,0x1289,0x1289,0x1289,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, --0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x183d,0x1310,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, --0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, --0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1318,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1845,0x1845,0x1845,0x1845,0x1845, --0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x133f,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x131c,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, --0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, --0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1324,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, --0x1310,0x1310,0x1310,0x1310,0x1310,0x131c,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, --0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, --0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, --0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1347, --0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x134f,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1357,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, --0x1e9e,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16c2,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16ca,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, --0x16d2,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, --0x16da,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, --0x183a,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, --0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, --0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, --0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, --0x1b83,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, --0x1df2,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, --0x1e4a,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, --0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, --0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, --0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, --0x1e9e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, --0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, --0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, --0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, --0x1f1e,0x510,0x510,0x510,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d6,0x2df,0x2d9, --0x2d9,0x2dc,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3, --0x2d3,0x2d3,0x2d3,0x2d3,0x7cb,0x7c5,0x7aa,0x78f,0x79b,0x798,0x78f,0x7a7,0x795,0x7a1,0x78f,0x7bc, --0x7b3,0x7a4,0x7c8,0x79e,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x7b0,0x7ad, --0x7b6,0x7b6,0x7b6,0x7c5,0x78f,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1, --0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x795, --0x79b,0x7a1,0x7c2,0x789,0x7bf,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce, --0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x795, --0x7b9,0x792,0x7b6,0x2d3,0,0,0,0,0,0,0,0,0,0,0,0, -+0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2, -+0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x12a2,0x1222, -+0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2, -+0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x12e2,0x1262, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0xc27,0xc2a,0xdf5,0x1deb,0x1017,0x745,0x559,0x10b1,0xcf7,0xd76,0x559,0x559,0x1d11,0xf10,0xf18,0x1e33, -+0xc7a,0xc81,0xc89,0x1b95,0x1dcb,0x559,0x1dab,0xfe7,0x1b9d,0xdfd,0xe05,0xe0d,0x103f,0x74d,0x559,0x559, -+0x1ba5,0x1ba5,0x755,0x559,0x1e60,0x10c9,0x1e58,0x10d1,0x1f4c,0x11cb,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0xe15,0x1fa4,0x12c4,0x1346,0x1347,0x1f6c,0x11f3,0x11fa,0x1201,0x1303,0x1307,0x127b,0x1211, -+0x1c21,0x1c23,0xe76,0xe7d,0x1bad,0x1bb5,0xe1d,0xf30,0x1d09,0xef8,0xf00,0xfdf,0x1d29,0x1d2d,0x1d35,0x105f, -+0xfaf,0x1d8b,0x75d,0x559,0x10b9,0x10c1,0x1d93,0xfb7,0xf91,0xf97,0xf9f,0xfa7,0x559,0x559,0x559,0x559, -+0x1ed0,0x1ec8,0x113b,0x1143,0x1e13,0x1e0b,0x1087,0x559,0x559,0x559,0x559,0x559,0x1dfb,0x1047,0x104f,0x1057, -+0x1dc3,0x1dbb,0xff7,0x1133,0x1d3d,0xf40,0x765,0x559,0x1097,0x109f,0x76d,0x559,0x559,0x559,0x559,0x559, -+0x1f44,0x11ad,0x775,0x559,0x559,0x1e23,0x1e1b,0x108f,0x1283,0x1289,0x1291,0x559,0x559,0x1219,0x121d,0x1225, -+0x1f04,0x1efc,0x1195,0x1ef4,0x1eec,0x1185,0x1df3,0x1037,0x1357,0x135a,0x135a,0x559,0x559,0x559,0x559,0x559, -+0x10e9,0x10ee,0x10f6,0x10fd,0x1125,0x112b,0x559,0x559,0x1169,0x116d,0x1175,0x11bd,0x11c3,0x77d,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x11db,0x136a,0x136f,0x1377,0x559,0x559,0x781,0x1f8c,0x126b, -+0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f, -+0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a5f,0x1a64,0xcff,0xd06,0xd06,0xd06, -+0x1a6c,0x1a6c,0x1a6c,0xd0e,0x1e50,0x1e50,0x1e50,0x1e50,0x1e50,0x1e50,0x789,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x78d,0x1fbc,0x1fbc,0x12d4,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b, -+0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0x1c2b,0xe85,0xfff,0x1007,0x1fc4, -+0x130f,0x1317,0xf48,0x1de3,0x1ddb,0x1027,0x102f,0x795,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x1f64,0x1f5c,0x11eb, -+0x559,0x559,0x559,0x1d21,0x1d21,0xf20,0x1d19,0xf28,0x559,0x559,0x111d,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x799,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x1d73,0x1d73,0x1d73,0xf6c,0xf71, -+0x7a1,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x1fd4,0x1337,0x133e,0x1fcc,0x1fcc,0x1fcc,0x7a9, -+0x559,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0xb2b,0x184f,0xb33,0x1850,0x1847,0x1858,0x185e,0x1866, -+0xb3b,0x198e,0x198e,0x7b1,0x559,0x559,0x559,0x1362,0x11e3,0x197e,0x197e,0xc32,0xd16,0x559,0x559,0x559, -+0x559,0x1897,0x189e,0xb43,0x18a1,0xb4b,0xb53,0xb5b,0x189b,0xb63,0xb6b,0xb73,0x18a0,0x18a8,0x1897,0x189e, -+0x189a,0x18a1,0x18a9,0x1898,0x189f,0x189b,0xb7a,0x186e,0x1876,0x187d,0x1884,0x1871,0x1879,0x1880,0x1887,0xb82, -+0x188f,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78,0x1e78, -+0x1e78,0x1e68,0x1e6b,0x1e68,0x1e72,0x10d9,0x7b9,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x12f0,0x12f8,0x12fb,0x12fb,0x12fb,0x12fb,0x12fb, -+0x12fb,0x110d,0x1115,0x1fdc,0x134f,0x7c1,0x559,0x559,0x559,0x1f84,0x122d,0x7c9,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x7cd,0x131f,0x1f94,0x1273,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x7d5,0x137f,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x12dc,0x1db3,0x1db3,0x1db3,0x1db3,0x1db3,0x1db3,0xfef,0x559,0x1ec0,0x1eb8,0x10e1,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x7dd,0x1f54,0x11d3,0x559,0x559,0x1235,0x1236,0x7e5,0x559,0x559,0x559,0x559, -+0x559,0xebd,0xec5,0xecd,0xed5,0xedd,0xee5,0xeec,0xef0,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x7e9,0x1067,0x1e03,0x106d,0x1e03,0x1075,0x107a,0x107f, -+0x107f,0x1e88,0x1ea8,0x1eb0,0x1f1c,0x1e90,0x1f74,0x1e98,0x1f24,0x1f7c,0x1f7c,0x119d,0x11a5,0x124d,0x1253,0x125b, -+0x1263,0x1f9c,0x1f9c,0x1f9c,0x1f9c,0x12a7,0x1f9c,0x12ad,0x12b1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1, -+0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1, -+0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f1,0x7f2,0xb8a,0x18b1,0x18b1,0x18b1,0x7fa,0x7fa,0x7fa, -+0x7fa,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x802,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa, -+0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa, -+0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa, -+0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa, -+0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0x7fa,0xbdd,0xbe4,0xbec,0xbf4,0x196e,0x196e,0x196e, -+0xbfc,0xc04,0xc07,0x199e,0x1996,0xc3a,0xd56,0xd5a,0xd5e,0x559,0x559,0x559,0x559,0xd66,0x1b19,0xd6e, -+0xf58,0x1822,0xb1d,0xb23,0x101f,0xc0f,0x19e2,0xca0,0x559,0x1837,0x182a,0x182f,0x1976,0xc17,0xc1f,0x114b, -+0x1151,0x1d7b,0xf79,0x1d6b,0xf50,0x1327,0x132f,0x559,0x559,0x1da3,0x1da3,0x1da3,0x1da3,0x1da3,0x1da3,0x1da3, -+0x1da3,0x1da3,0xfc7,0xfcf,0xfd7,0x12e4,0x12e8,0x559,0x559,0x1b21,0xd7e,0x1b29,0x1b29,0xd82,0xe8d,0xe95, -+0xe9d,0x1bf1,0x1bd9,0x1bf9,0x1c01,0x1be9,0xe25,0xe29,0xe30,0xe38,0xe3c,0xe44,0xe4c,0xe4e,0xe4e,0xe4e, -+0xe4e,0x1c62,0x1c6a,0x1c62,0x1c70,0x1c78,0x1c43,0x1c80,0x1c88,0x1c62,0x1c90,0x1c98,0x1c9f,0x1ca7,0x1c4b,0x1c62, -+0x1cac,0x1c53,0x1c5a,0x1cb4,0x1cba,0x1d5c,0x1d63,0x1d55,0x1cc1,0x1cc9,0x1cd1,0x1cd9,0x1dd3,0x1ce1,0x1ce9,0xea5, -+0xead,0x1c33,0x1c33,0x1c33,0xeb5,0x1d83,0x1d83,0xf81,0xf89,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x1e3b,0x1e3b,0x1e3b,0x1e3b,0x1e3b,0x1e3b,0x1e3b, -+0x1e3b,0x1e3b,0x1e3b,0x1e3b,0x1e3b,0x1e3b,0x1e3b,0x1e40,0x1e3b,0x1e3b,0x1e3b,0x10a7,0x10a9,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1159,0x1c3b,0x1f14,0x1f14,0x1f14,0x1f14,0x1f14,0x1f14, -+0x1f14,0x1f34,0x1161,0x123e,0x1245,0x1f3c,0x1f3c,0x1f3c,0x1f3c,0x1f3c,0x1f3c,0x1f3c,0x1f3c,0x1f3c,0x1f3c,0x1f3c, -+0x117d,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd, -+0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbf,0x1bbd,0x1bc7,0x1bbd,0x1bbd, -+0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bca,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1bd1,0x1209,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0, -+0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0,0x1ee0, -+0x1ee4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1fb4,0x1299, -+0x129f,0x12b9,0x12bc,0x12bc,0x12bc,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559, -+0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x559,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9, -+0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9, -+0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9, -+0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18bc, -+0x1387,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c, -+0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c, -+0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x138f,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x18c4,0x18c4,0x18c4,0x18c4,0x18c4,0x18c4,0x18c4, -+0x18c4,0x18c4,0x18c4,0x18c4,0x18c4,0x18c4,0x18c4,0x18c4,0x18c4,0x13b6,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1393,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x139b,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1387, -+0x1387,0x1387,0x1387,0x1387,0x1387,0x1387,0x1393,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x13be,0x1cf1,0x1cf1,0x1cf1,0x1cf1,0x1cf1,0x1cf1,0x13c6,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x13ce,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c, -+0x1f2c,0x1f2c,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac, -+0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x13d6,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1741,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1749,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751,0x1751, -+0x1751,0x1751,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759,0x1759, -+0x1759,0x1759,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9, -+0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9, -+0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9, -+0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9,0x18b9, -+0x18b9,0x18b9,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09,0x1c09, -+0x1c09,0x1c09,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80,0x1e80, -+0x1e80,0x1e80,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8,0x1ed8, -+0x1ed8,0x1ed8,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c, -+0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c, -+0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c, -+0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c,0x1f2c, -+0x1f2c,0x1f2c,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac, -+0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac, -+0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac, -+0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac,0x1fac, -+0x1fac,0x1fac,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4,0x1fe4, -+0x1fe4,0x1fe4,0x538,0x538,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e5,0x2ee,0x2e8, -+0x2e8,0x2eb,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2, -+0x2e2,0x2e2,0x2e2,0x2e2,0x7da,0x7d4,0x7b9,0x79e,0x7aa,0x7a7,0x79e,0x7b6,0x7a4,0x7b0,0x79e,0x7cb, -+0x7c2,0x7b3,0x7d7,0x7ad,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x7bf,0x7bc, -+0x7c5,0x7c5,0x7c5,0x7d4,0x79e,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0, -+0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7e0,0x7a4, -+0x7aa,0x7b0,0x7d1,0x798,0x7ce,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd, -+0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7a4, -+0x7c8,0x7a1,0x7c5,0x2e2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2f1,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2, --0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2, --0x2e2,0x2e2,0x2e2,0x2e2,0x2e5,0x63c,0x7e0,0x7e3,0x642,0x7e3,0x7dd,0x636,0x62d,0x2eb,0x64b,0x2ee, --0x7e6,0x624,0x639,0x7da,0x63f,0x648,0x62a,0x62a,0x630,0x2e8,0x636,0x633,0x62d,0x62a,0x64b,0x2ee, --0x627,0x627,0x627,0x63c,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x654,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7, --0x2f7,0x2f7,0x2f7,0x2f7,0x654,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x645,0x654,0x2f7,0x2f7,0x2f7, --0x2f7,0x2f7,0x654,0x64e,0x651,0x651,0x2f4,0x2f4,0x2f4,0x2f4,0x64e,0x2f4,0x651,0x651,0x651,0x2f4, --0x651,0x651,0x2f4,0x2f4,0x64e,0x2f4,0x651,0x651,0x2f4,0x2f4,0x2f4,0x645,0x64e,0x651,0x651,0x2f4, --0x651,0x2f4,0x64e,0x2f4,0x303,0x65a,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa, --0x303,0x2fa,0x303,0x2fa,0x300,0x657,0x303,0x65a,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x65a, --0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x660,0x657,0x303,0x2fa,0x303,0x65a, --0x303,0x2fa,0x303,0x2fa,0x303,0x657,0x663,0x65d,0x303,0x2fa,0x303,0x2fa,0x657,0x303,0x2fa,0x303, --0x2fa,0x303,0x2fa,0x663,0x65d,0x660,0x657,0x303,0x65a,0x303,0x2fa,0x303,0x65a,0x666,0x660,0x657, --0x303,0x65a,0x303,0x2fa,0x303,0x2fa,0x660,0x657,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa, --0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x660,0x657,0x303,0x2fa,0x303,0x65a, --0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x303,0x2fa,0x303, --0x2fa,0x303,0x2fa,0x2fd,0x306,0x312,0x312,0x306,0x312,0x306,0x312,0x312,0x306,0x312,0x312,0x312, --0x306,0x306,0x312,0x312,0x312,0x312,0x306,0x312,0x312,0x306,0x312,0x312,0x312,0x306,0x306,0x306, --0x312,0x312,0x306,0x312,0x315,0x309,0x312,0x306,0x312,0x306,0x312,0x312,0x306,0x312,0x306,0x306, --0x312,0x306,0x312,0x315,0x309,0x312,0x312,0x312,0x306,0x312,0x306,0x312,0x312,0x306,0x306,0x30f, --0x312,0x306,0x306,0x306,0x30f,0x30f,0x30f,0x30f,0x318,0x318,0x30c,0x318,0x318,0x30c,0x318,0x318, --0x30c,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315, --0x669,0x306,0x315,0x309,0x315,0x309,0x315,0x309,0x312,0x306,0x315,0x309,0x315,0x309,0x315,0x309, --0x315,0x309,0x315,0x309,0x309,0x318,0x318,0x30c,0x315,0x309,0x9bd,0x9bd,0x9c0,0x9ba,0x315,0x309, --0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309, --0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x9c0,0x9ba,0x9c0,0x9ba,0x9bd,0x9b7,0x9c0,0x9ba, --0xb79,0xc72,0x9bd,0x9b7,0x9bd,0x9b7,0x9c0,0x9ba,0x9c0,0x9ba,0x9c0,0x9ba,0x9c0,0x9ba,0x9c0,0x9ba, --0x9c0,0x9ba,0x9c0,0x9ba,0xc72,0xc72,0xc72,0xd6b,0xd6b,0xd6b,0xd6e,0xd6e,0xd6b,0xd6e,0xd6e,0xd6b, --0xd6b,0xd6e,0xeac,0xeaf,0xeaf,0xeaf,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac, --0x31b,0x66c,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, --0x31b,0x66c,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, --0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, --0x31e,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, --0x31b,0x31b,0x31b,0x31b,0x31b,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0xc75,0xc75,0x333,0x333,0x333,0x333, --0x333,0x333,0x333,0x333,0x333,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x327,0x327,0x324,0x324, --0x672,0x324,0x32a,0x675,0x32d,0x675,0x675,0x675,0x32d,0x675,0x32a,0x32a,0x678,0x330,0x324,0x324, --0x324,0x324,0x324,0x324,0x66f,0x66f,0x66f,0x66f,0x321,0x66f,0x324,0xaef,0x333,0x333,0x333,0x333, --0x333,0x324,0x324,0x324,0x324,0x324,0x9cc,0x9cc,0x9c9,0x9c6,0x9c9,0xc78,0xc78,0xc78,0xc78,0xc78, --0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0x67b,0x67b,0x67b,0x67b, --0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b, --0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b, --0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b, --0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67e,0x67e,0x91e,0x67e, --0x67e,0x921,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xc2a,0xd35,0xd35,0xd35,0xd35, --0xd35,0xd35,0xd35,0xd35,0xe70,0xe70,0xe70,0xe70,0xe73,0xd38,0xd38,0xd38,0x681,0x681,0xaf5,0xc6f, --0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xf5a,0xf57,0xf5a,0xf57, --0x33f,0x348,0xf5a,0xf57,9,9,0x34e,0xeb2,0xeb2,0xeb2,0x336,0x149d,9,9,9,9, --0x34b,0x339,0x35d,0x33c,0x35d,0x35d,0x35d,9,0x35d,9,0x35d,0x35d,0x354,0x687,0x687,0x687, --0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,9,0x687, --0x687,0x687,0x687,0x687,0x687,0x687,0x35d,0x35d,0x354,0x354,0x354,0x354,0x354,0x684,0x684,0x684, --0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x351,0x684, --0x684,0x684,0x684,0x684,0x684,0x684,0x354,0x354,0x354,0x354,0x354,0xf5a,0x360,0x360,0x363,0x35d, --0x35d,0x360,0x357,0x9cf,0xb82,0xb7f,0x35a,0x9cf,0x35a,0x9cf,0x35a,0x9cf,0x35a,0x9cf,0x345,0x342, --0x345,0x342,0x345,0x342,0x345,0x342,0x345,0x342,0x345,0x342,0x345,0x342,0x360,0x360,0x357,0x351, --0xb31,0xb2e,0xb7c,0xc7e,0xc7b,0xc81,0xc7e,0xc7b,0xd71,0xd74,0xd74,0xd74,0x9de,0x693,0x36f,0x372, --0x36f,0x36f,0x36f,0x372,0x36f,0x36f,0x36f,0x36f,0x372,0x9de,0x372,0x36f,0x690,0x690,0x690,0x690, --0x690,0x690,0x690,0x690,0x690,0x693,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690, --0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x68a,0x68a,0x68a,0x68a, --0x68a,0x68a,0x68a,0x68a,0x68a,0x68d,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, --0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x9d8,0x68d,0x369,0x36c,0x369,0x369,0x369,0x36c, --0x369,0x369,0x369,0x369,0x36c,0x9d8,0x36c,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, --0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x372,0x36c, --0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x366,0x92a,0x92d,0x90f,0x90f,0x1101, --0x9d2,0x9d2,0xb88,0xb85,0x9db,0x9d5,0x9db,0x9d5,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, --0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, --0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, --0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x372,0x36c,0x36f,0x369,0xb88,0xb85,0x36f, --0x369,0xb88,0xb85,0x36f,0x369,0xb88,0xb85,0xeb5,0x372,0x36c,0x372,0x36c,0x36f,0x369,0x372,0x36c, --0x36f,0x369,0x372,0x36c,0x372,0x36c,0x372,0x36c,0x36f,0x369,0x372,0x36c,0x372,0x36c,0x372,0x36c, --0x36f,0x369,0x372,0x36c,0x9de,0x9d8,0x372,0x36c,0x372,0x36c,0x372,0x36c,0x372,0x36c,0xd7a,0xd77, --0x372,0x36c,0xeb8,0xeb5,0xeb8,0xeb5,0xeb8,0xeb5,0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb, --0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb,0xee5,0xee2,0xee5,0xee2,0xfd5,0xfd2,0xfd5,0xfd2, --0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0x113a,0x1137,0x1317,0x1314, --0x14d3,0x14d0,0x14d3,0x14d0,0x14d3,0x14d0,0x14d3,0x14d0,0xc,0x384,0x384,0x384,0x384,0x384,0x384,0x384, --0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384, --0x384,0x384,0x384,0xc,0xc,0x387,0x375,0x375,0x375,0x37b,0x375,0x378,0x18d8,0x37e,0x37e,0x37e, --0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e, --0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x381, --0x18d8,0x38a,0x9e1,0xc,0xc,0x14a0,0x14a0,0x13bc,0xf,0x951,0x951,0x951,0x951,0x951,0x951,0x951, --0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0xd7d,0x951,0x951,0x951,0x951,0x951, --0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d, --0x38d,0x38d,0xebb,0x38d,0x38d,0x38d,0x399,0x38d,0x390,0x38d,0x38d,0x39c,0x954,0xd80,0xd83,0xd80, --0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f, --0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f, --0x39f,0x39f,0x39f,0xf,0xf,0xf,0xf,0x18db,0x39f,0x39f,0x39f,0x396,0x393,0xf,0xf,0xf, --0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xc96,0xc96,0xc96,0xc96,0x13bf,0x14a3,0xf63,0xf63, --0xf63,0xf60,0xf60,0xd89,0x897,0xc90,0xc8d,0xc8d,0xc84,0xc84,0xc84,0xc84,0xc84,0xc84,0xf5d,0xf5d, --0xf5d,0xf5d,0xf5d,0x894,0x149a,0x1aeb,0xd8c,0x89a,0x12de,0x3ba,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3ba, --0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, --0x3ba,0x3ba,0x3ba,0xf66,0xf66,0xf66,0xf66,0xf66,0x89d,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, --0x3ba,0x3ba,0x3ba,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0xb28,0xb28,0xb28,0xc84,0xc8a, --0xc87,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0x12db,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930, --0x930,0x930,0x3b4,0x3b1,0x3ae,0x3ab,0xb8b,0xb8b,0x912,0x3ba,0x3ba,0x3c6,0x3ba,0x3c0,0x3c0,0x3c0, --0x3c0,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, --0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, --0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, --0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x9e7,0x9e7,0x3ba,0x3ba, --0x3ba,0x3ba,0x3ba,0x9e7,0x3bd,0x3ba,0x3bd,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, --0x3ba,0x3ba,0x3ba,0x9e7,0x3ba,0x3ba,0x3ba,0x3bd,0x933,0x3ba,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5, --0x3a5,0x3a2,0x3ab,0x3a8,0x3a8,0x3a5,0x3a5,0x3a5,0x3a5,0x3c3,0x3c3,0x3a5,0x3a5,0x3ab,0x3a8,0x3a8, --0x3a8,0x3a5,0xc93,0xc93,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x9e7,0x9e7, --0x9e7,0x9e4,0x9e4,0xc93,0x9fc,0x9fc,0x9fc,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f3, --0x9f6,0x9f3,0x12,0x9ff,0x9f9,0x9ea,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9, --0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9, --0x9f9,0xc99,0xc99,0xc99,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0, --0x9f0,0x9f0,0x9f0,0x9f0,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x12, --0x12,0xc99,0xc99,0xc99,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9, --0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9, --0xde9,0xde9,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7, --0xfe7,0xfe7,0xfe7,0xfe7,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05, --0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05, --0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02, --0xa02,0xa02,0xa02,0xa02,0xa02,0xb8e,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, --0x15,0x15,0x15,0x15,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xf00,0xf00, --0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00, --0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xef4, --0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xf03,0xf03,0xef7,0xef7,0xefa,0xf09,0xf06,0x102, --0x102,0x18ff,0x1902,0x1902,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0xb01,0xb01,0xb04,0xb04,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01, --0x6f,0x6f,0x6f,0x6f,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1605,0x1605,0x1605,0x1605,0x1605, --0x1605,0x1605,0x1605,0x1605,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x163e,0x163e,0x163e, --0x163e,0x163e,0x163e,0x163e,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x16b,0x16b,0x16b, -+0,0,0,0,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x300,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1, -+0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1, -+0x2f1,0x2f1,0x2f1,0x2f1,0x2f4,0x64b,0x7ef,0x7f2,0x651,0x7f2,0x7ec,0x645,0x63c,0x2fa,0x65a,0x2fd, -+0x7f5,0x633,0x648,0x7e9,0x64e,0x657,0x639,0x639,0x63f,0x2f7,0x645,0x642,0x63c,0x639,0x65a,0x2fd, -+0x636,0x636,0x636,0x64b,0x306,0x306,0x306,0x306,0x306,0x306,0x663,0x306,0x306,0x306,0x306,0x306, -+0x306,0x306,0x306,0x306,0x663,0x306,0x306,0x306,0x306,0x306,0x306,0x654,0x663,0x306,0x306,0x306, -+0x306,0x306,0x663,0x65d,0x660,0x660,0x303,0x303,0x303,0x303,0x65d,0x303,0x660,0x660,0x660,0x303, -+0x660,0x660,0x303,0x303,0x65d,0x303,0x660,0x660,0x303,0x303,0x303,0x654,0x65d,0x660,0x660,0x303, -+0x660,0x303,0x65d,0x303,0x312,0x669,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309, -+0x312,0x309,0x312,0x309,0x30f,0x666,0x312,0x669,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x669, -+0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x66f,0x666,0x312,0x309,0x312,0x669, -+0x312,0x309,0x312,0x309,0x312,0x666,0x672,0x66c,0x312,0x309,0x312,0x309,0x666,0x312,0x309,0x312, -+0x309,0x312,0x309,0x672,0x66c,0x66f,0x666,0x312,0x669,0x312,0x309,0x312,0x669,0x675,0x66f,0x666, -+0x312,0x669,0x312,0x309,0x312,0x309,0x66f,0x666,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309, -+0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x66f,0x666,0x312,0x309,0x312,0x669, -+0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x309,0x312,0x312,0x309,0x312, -+0x309,0x312,0x309,0x30c,0x315,0x321,0x321,0x315,0x321,0x315,0x321,0x321,0x315,0x321,0x321,0x321, -+0x315,0x315,0x321,0x321,0x321,0x321,0x315,0x321,0x321,0x315,0x321,0x321,0x321,0x315,0x315,0x315, -+0x321,0x321,0x315,0x321,0x324,0x318,0x321,0x315,0x321,0x315,0x321,0x321,0x315,0x321,0x315,0x315, -+0x321,0x315,0x321,0x324,0x318,0x321,0x321,0x321,0x315,0x321,0x315,0x321,0x321,0x315,0x315,0x31e, -+0x321,0x315,0x315,0x315,0x31e,0x31e,0x31e,0x31e,0x327,0x327,0x31b,0x327,0x327,0x31b,0x327,0x327, -+0x31b,0x324,0x678,0x324,0x678,0x324,0x678,0x324,0x678,0x324,0x678,0x324,0x678,0x324,0x678,0x324, -+0x678,0x315,0x324,0x318,0x324,0x318,0x324,0x318,0x321,0x315,0x324,0x318,0x324,0x318,0x324,0x318, -+0x324,0x318,0x324,0x318,0x318,0x327,0x327,0x31b,0x324,0x318,0x9cf,0x9cf,0x9d2,0x9cc,0x324,0x318, -+0x324,0x318,0x324,0x318,0x324,0x318,0x324,0x318,0x324,0x318,0x324,0x318,0x324,0x318,0x324,0x318, -+0x324,0x318,0x324,0x318,0x324,0x318,0x324,0x318,0x9d2,0x9cc,0x9d2,0x9cc,0x9cf,0x9c9,0x9d2,0x9cc, -+0xb8b,0xc84,0x9cf,0x9c9,0x9cf,0x9c9,0x9d2,0x9cc,0x9d2,0x9cc,0x9d2,0x9cc,0x9d2,0x9cc,0x9d2,0x9cc, -+0x9d2,0x9cc,0x9d2,0x9cc,0xc84,0xc84,0xc84,0xd7d,0xd7d,0xd7d,0xd80,0xd80,0xd7d,0xd80,0xd80,0xd7d, -+0xd7d,0xd80,0xebe,0xec1,0xec1,0xec1,0xec1,0xebe,0xec1,0xebe,0xec1,0xebe,0xec1,0xebe,0xec1,0xebe, -+0x32a,0x67b,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a, -+0x32a,0x67b,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a, -+0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a, -+0x32d,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a, -+0x32a,0x32a,0x32a,0x32a,0x32a,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0xc87,0xc87,0x342,0x342,0x342,0x342, -+0x342,0x342,0x342,0x342,0x342,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x336,0x336,0x333,0x333, -+0x681,0x333,0x339,0x684,0x33c,0x684,0x684,0x684,0x33c,0x684,0x339,0x339,0x687,0x33f,0x333,0x333, -+0x333,0x333,0x333,0x333,0x67e,0x67e,0x67e,0x67e,0x330,0x67e,0x333,0xb01,0x342,0x342,0x342,0x342, -+0x342,0x333,0x333,0x333,0x333,0x333,0x9de,0x9de,0x9db,0x9d8,0x9db,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a, -+0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0x68a,0x68a,0x68a,0x68a, -+0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, -+0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, -+0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, -+0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68d,0x68d,0x92d,0x68d, -+0x68d,0x930,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xc3c,0xd47,0xd47,0xd47,0xd47, -+0xd47,0xd47,0xd47,0xd47,0xe82,0xe82,0xe82,0xe82,0xe85,0xd4a,0xd4a,0xd4a,0x690,0x690,0xb07,0xc81, -+0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xf6c,0xf69,0xf6c,0xf69, -+0x34e,0x357,0xf6c,0xf69,9,9,0x35d,0xec4,0xec4,0xec4,0x345,0x14af,9,9,9,9, -+0x35a,0x348,0x36c,0x34b,0x36c,0x36c,0x36c,9,0x36c,9,0x36c,0x36c,0x363,0x696,0x696,0x696, -+0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,0x696,9,0x696, -+0x696,0x696,0x696,0x696,0x696,0x696,0x36c,0x36c,0x363,0x363,0x363,0x363,0x363,0x693,0x693,0x693, -+0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x360,0x693, -+0x693,0x693,0x693,0x693,0x693,0x693,0x363,0x363,0x363,0x363,0x363,0xf6c,0x36f,0x36f,0x372,0x36c, -+0x36c,0x36f,0x366,0x9e1,0xb94,0xb91,0x369,0x9e1,0x369,0x9e1,0x369,0x9e1,0x369,0x9e1,0x354,0x351, -+0x354,0x351,0x354,0x351,0x354,0x351,0x354,0x351,0x354,0x351,0x354,0x351,0x36f,0x36f,0x366,0x360, -+0xb43,0xb40,0xb8e,0xc90,0xc8d,0xc93,0xc90,0xc8d,0xd83,0xd86,0xd86,0xd86,0x9f0,0x6a2,0x37e,0x381, -+0x37e,0x37e,0x37e,0x381,0x37e,0x37e,0x37e,0x37e,0x381,0x9f0,0x381,0x37e,0x69f,0x69f,0x69f,0x69f, -+0x69f,0x69f,0x69f,0x69f,0x69f,0x6a2,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f, -+0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x699,0x699,0x699,0x699, -+0x699,0x699,0x699,0x699,0x699,0x69c,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699, -+0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x699,0x9ea,0x69c,0x378,0x37b,0x378,0x378,0x378,0x37b, -+0x378,0x378,0x378,0x378,0x37b,0x9ea,0x37b,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378, -+0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x381,0x37b, -+0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x375,0x939,0x93c,0x91e,0x91e,0x1116, -+0x9e4,0x9e4,0xb9a,0xb97,0x9ed,0x9e7,0x9ed,0x9e7,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378, -+0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378, -+0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378, -+0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x378,0x37e,0x381,0x37b,0x37e,0x378,0xb9a,0xb97,0x37e, -+0x378,0xb9a,0xb97,0x37e,0x378,0xb9a,0xb97,0xec7,0x381,0x37b,0x381,0x37b,0x37e,0x378,0x381,0x37b, -+0x37e,0x378,0x381,0x37b,0x381,0x37b,0x381,0x37b,0x37e,0x378,0x381,0x37b,0x381,0x37b,0x381,0x37b, -+0x37e,0x378,0x381,0x37b,0x9f0,0x9ea,0x381,0x37b,0x381,0x37b,0x381,0x37b,0x381,0x37b,0xd8c,0xd89, -+0x381,0x37b,0xeca,0xec7,0xeca,0xec7,0xeca,0xec7,0xc00,0xbfd,0xc00,0xbfd,0xc00,0xbfd,0xc00,0xbfd, -+0xc00,0xbfd,0xc00,0xbfd,0xc00,0xbfd,0xc00,0xbfd,0xef7,0xef4,0xef7,0xef4,0xfe7,0xfe4,0xfe7,0xfe4, -+0xfe7,0xfe4,0xfe7,0xfe4,0xfe7,0xfe4,0xfe7,0xfe4,0xfe7,0xfe4,0xfe7,0xfe4,0x114f,0x114c,0x1329,0x1326, -+0x14e5,0x14e2,0x14e5,0x14e2,0x14e5,0x14e2,0x14e5,0x14e2,0xc,0x393,0x393,0x393,0x393,0x393,0x393,0x393, -+0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393, -+0x393,0x393,0x393,0xc,0xc,0x396,0x384,0x384,0x384,0x38a,0x384,0x387,0x18ea,0x38d,0x38d,0x38d, -+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d, -+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x390, -+0x18ea,0x399,0x9f3,0xc,0xc,0x14b2,0x14b2,0x13ce,0xf,0x960,0x960,0x960,0x960,0x960,0x960,0x960, -+0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0xd8f,0x960,0x960,0x960,0x960,0x960, -+0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -+0x39c,0x39c,0xecd,0x39c,0x39c,0x39c,0x3a8,0x39c,0x39f,0x39c,0x39c,0x3ab,0x963,0xd92,0xd95,0xd92, -+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae, -+0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae, -+0x3ae,0x3ae,0x3ae,0xf,0xf,0xf,0xf,0x18ed,0x3ae,0x3ae,0x3ae,0x3a5,0x3a2,0xf,0xf,0xf, -+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xca8,0xca8,0xca8,0xca8,0x13d1,0x14b5,0xf75,0xf75, -+0xf75,0xf72,0xf72,0xd9b,0x8a6,0xca2,0xc9f,0xc9f,0xc96,0xc96,0xc96,0xc96,0xc96,0xc96,0xf6f,0xf6f, -+0xf6f,0xf6f,0xf6f,0x8a3,0x14ac,0x1afd,0xd9e,0x8a9,0x12f0,0x3c9,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3c9, -+0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9, -+0x3c9,0x3c9,0x3c9,0xf78,0xf78,0xf78,0xf78,0xf78,0x8ac,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9, -+0x3c9,0x3c9,0x3c9,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0xb3a,0xb3a,0xb3a,0xc96,0xc9c, -+0xc99,0xd98,0xd98,0xd98,0xd98,0xd98,0xd98,0x12ed,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f, -+0x93f,0x93f,0x3c3,0x3c0,0x3bd,0x3ba,0xb9d,0xb9d,0x921,0x3c9,0x3c9,0x3d5,0x3c9,0x3cf,0x3cf,0x3cf, -+0x3cf,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9, -+0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9, -+0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9, -+0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x9f9,0x9f9,0x3c9,0x3c9, -+0x3c9,0x3c9,0x3c9,0x9f9,0x3cc,0x3c9,0x3cc,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9,0x3c9, -+0x3c9,0x3c9,0x3c9,0x9f9,0x3c9,0x3c9,0x3c9,0x3cc,0x942,0x3c9,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4, -+0x3b4,0x3b1,0x3ba,0x3b7,0x3b7,0x3b4,0x3b4,0x3b4,0x3b4,0x3d2,0x3d2,0x3b4,0x3b4,0x3ba,0x3b7,0x3b7, -+0x3b7,0x3b4,0xca5,0xca5,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x3c6,0x9f9,0x9f9, -+0x9f9,0x9f6,0x9f6,0xca5,0xa0e,0xa0e,0xa0e,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa08,0xa05, -+0xa08,0xa05,0x12,0xa11,0xa0b,0x9fc,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b, -+0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b,0xa0b, -+0xa0b,0xcab,0xcab,0xcab,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02, -+0xa02,0xa02,0xa02,0xa02,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x9ff,0x12, -+0x12,0xcab,0xcab,0xcab,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb, -+0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb, -+0xdfb,0xdfb,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9,0xff9, -+0xff9,0xff9,0xff9,0xff9,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, -+0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, -+0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14, -+0xa14,0xa14,0xa14,0xa14,0xa14,0xba0,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, -+0x15,0x15,0x15,0x15,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f,0xf12,0xf12, -+0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12, -+0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf06, -+0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf06,0xf15,0xf15,0xf09,0xf09,0xf0c,0xf1b,0xf18,0x102, -+0x102,0x1911,0x1914,0x1914,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0xb13,0xb13,0xb16,0xb16,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13, -+0x6f,0x6f,0x6f,0x6f,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1617,0x1617,0x1617,0x1617,0x1617, -+0x1617,0x1617,0x1617,0x1617,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1650,0x1650,0x1650, -+0x1650,0x1650,0x1650,0x1650,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x16b,0x16b,0x16b, - 0x16b,0x16b,0x16b,0x16b,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5, --0x1c5,0x1c5,0x1c5,0x1c5,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1aa,0x1aa, --0x1aa,0x1aa,0x1aa,0x1aa,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x204,0x204,0x204,0x204,0x204, --0x204,0x204,0x204,0x204,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c, --0x24c,0x24c,0x24c,0x24c,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x252,0x252, --0x252,0x252,0x252,0x252,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1aaf,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e, --0x28e,0x28e,0x28e,0x28e,0x1740,0x1740,0x1740,0x1740,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a, --0x20a,0x20a,0x20a,0x20a,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, --0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, --0x162c,0x162c,0x162c,0x162c,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x2a3,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x1bb1, --0x2a3,0x1bb1,0x1bb1,0x2a3,0x16a4,0x16a4,0x16a4,0x16a4,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2, --0x1f2,0x1f2,0x1f2,0x1f2,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, --0x2b8,0x2b8,0x2b8,0x2b8,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0xde0,0xde0,0xddd,0xddd,0xddd,0xde0,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5, -+0,0,0,0,0x1bdb,0x1bd8,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2, -+0x1c2,0x1c2,0x1c2,0x1c2,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x1488,0x1a7,0x1a7, -+0x1a7,0x1a7,0x1a7,0x1a7,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x201,0x201,0x201,0x201,0x201, -+0x201,0x201,0x201,0x201,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249, -+0x249,0x249,0x249,0x249,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x195f,0x195f,0x195f,0x195f,0x195f,0x195f,0x195f,0x195f,0x195f,0x195f,0x24f,0x24f, -+0x24f,0x24f,0x24f,0x24f,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1ac1,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b, -+0x28b,0x28b,0x28b,0x28b,0x1752,0x1752,0x1752,0x1752,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207, -+0x207,0x207,0x207,0x207,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c, -+0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e, -+0x163e,0x163e,0x163e,0x163e,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x2a0,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3,0x1bc3, -+0x2a0,0x1bc3,0x1bc3,0x2a0,0x16b6,0x16b6,0x16b6,0x16b6,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef, -+0x1ef,0x1ef,0x1ef,0x1ef,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5, -+0x2b5,0x2b5,0x2b5,0x2b5,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0xdf2,0xdf2,0xdef,0xdef,0xdef,0xdf2,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5, - 0xd5,0xd5,0xd5,0xd5,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x216,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, --0x1758,0x1758,0x1758,0x1758,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x17dc,0x17dc,0x222,0x17dc,0x17dc,0x222,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x222, --0x222,0x222,0x222,0x222,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x273,0x273, --0x273,0x273,0x1a04,0x19fe,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81, --0x1b81,0x1b81,0x1b81,0x1b81,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0,0,0x258,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962, --0x1962,0x1962,0x1962,0x1962,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276, --0x276,0x276,0x276,0x276,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x213,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a, -+0x176a,0x176a,0x176a,0x176a,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, -+0x2bb,0x2bb,0x2bb,0x1bf6,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1a13,0x1a13,0x1a13,0x1a13,0x1a13,0x1a13,0x1a13,0x1a13,0x1a13,0x1a13,0x270,0x270, -+0x270,0x270,0x1a16,0x1a10,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93, -+0x1b93,0x1b93,0x1b93,0x1b93,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26, -+0x1c26,0x1c26,0x1c26,0x1c26,0,0,0,0,0,0,0,0,0,0,0,0, -+0,0,0,0,0x255,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974, -+0x1974,0x1974,0x1974,0x1974,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273, -+0x273,0x273,0x273,0x273,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, --0,0,0x94e,0x94e,3,3,3,3,3,3,3,3,3,3,3,3, -+0,0,0x95d,0x95d,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, --3,3,3,3,3,3,0x94e,0x94e,6,6,6,6,6,6,6,6, -+3,3,3,3,3,3,0x95d,0x95d,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e, --0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,6,6,6,6,6,6,6,6, --6,6,6,6,6,6,6,6,0x14a9,0x3e1,0x3f0,0x3f0,0x18,0x3f6,0x3f6,0x3f6, --0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x18,0x18,0x3f6,0x3f6,0x18,0x18,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6, --0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x18,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6, --0x3f6,0x18,0x3f6,0x18,0x18,0x18,0x3f6,0x3f6,0x3f6,0x3f6,0x18,0x18,0x3e4,0xc9f,0x3e1,0x3f0, --0x3f0,0x3e1,0x3e1,0x3e1,0x3e1,0x18,0x18,0x3f0,0x3f0,0x18,0x18,0x3f3,0x3f3,0x3e7,0xd92,0x18, --0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3e1,0x18,0x18,0x18,0x18,0x3f9,0x3f9,0x18,0x3f9, --0x3f6,0x3f6,0x3e1,0x3e1,0x18,0x18,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939, --0x3f6,0x3f6,0x3ed,0x3ed,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ed,0x3ea,0x1110,0x1839,0x1836,0x18de,0x18, --0x1b,0xca2,0x3fc,0xca5,0x1b,0x408,0x408,0x408,0x408,0x408,0x408,0x1b,0x1b,0x1b,0x1b,0x408, --0x408,0x1b,0x1b,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408, --0x408,0x1b,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x1b,0x408,0x40b,0x1b,0x408,0x40b,0x1b, --0x408,0x408,0x1b,0x1b,0x3ff,0x1b,0x405,0x405,0x405,0x3fc,0x3fc,0x1b,0x1b,0x1b,0x1b,0x3fc, --0x3fc,0x1b,0x1b,0x3fc,0x3fc,0x402,0x1b,0x1b,0x1b,0xf6f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, --0x1b,0x40b,0x40b,0x40b,0x408,0x1b,0x40b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x93c,0x93c, --0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x3fc,0x3fc,0x408,0x408,0x408,0xf6f,0x18e1,0x1b, --0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1e,0x40e,0x40e,0x417,0x1e,0x41a,0x41a,0x41a, --0x41a,0x41a,0x41a,0x41a,0xcae,0x41a,0x1e,0x41a,0x41a,0x41a,0x1e,0x41a,0x41a,0x41a,0x41a,0x41a, --0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x1e,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a, --0x41a,0x1e,0x41a,0x41a,0x1e,0x41a,0x41a,0x41a,0x41a,0x41a,0x1e,0x1e,0x411,0x41a,0x417,0x417, --0x417,0x40e,0x40e,0x40e,0x40e,0x40e,0x1e,0x40e,0x40e,0x417,0x1e,0x417,0x417,0x414,0x1e,0x1e, --0x41a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, --0x41a,0xcae,0xca8,0xca8,0x1e,0x1e,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f, --0x13c2,0xcab,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x16b9,0x183c,0x183c,0x183c,0x183f,0x183f,0x183f, --0x21,0x41d,0x42c,0x42c,0x21,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x21,0x21,0x432, --0x432,0x21,0x21,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432, --0x432,0x21,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x21,0x432,0x432,0x21,0xcb1,0x432,0x432, --0x432,0x432,0x21,0x21,0x420,0x432,0x41d,0x41d,0x42c,0x41d,0x41d,0x41d,0xf72,0x21,0x21,0x42c, --0x42f,0x21,0x21,0x42f,0x42f,0x423,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1a49,0x41d,0x41d, --0x21,0x21,0x21,0x21,0x435,0x435,0x21,0x432,0x432,0x432,0xf72,0xf72,0x21,0x21,0x429,0x429, --0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x426,0xcb1,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea, --0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x24,0x24,0x438,0x444,0x24,0x444,0x444,0x444, --0x444,0x444,0x444,0x24,0x24,0x24,0x444,0x444,0x444,0x24,0x444,0x444,0x447,0x444,0x24,0x24, --0x24,0x444,0x444,0x24,0x444,0x24,0x444,0x444,0x24,0x24,0x24,0x444,0x444,0x24,0x24,0x24, --0x444,0x444,0x444,0x24,0x24,0x24,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0xd95,0x444, --0x444,0x444,0x24,0x24,0x24,0x24,0x438,0x43e,0x438,0x43e,0x43e,0x24,0x24,0x24,0x43e,0x43e, --0x43e,0x24,0x441,0x441,0x441,0x43b,0x24,0x24,0xf75,0x24,0x24,0x24,0x24,0x24,0x24,0x438, --0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0xea9,0x945,0x945,0x945,0x945,0x945, --0x945,0x945,0x945,0x945,0x942,0x942,0x942,0xd65,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb7,0xcb4,0x24, --0x24,0x24,0x24,0x24,0x14ac,0x456,0x456,0x456,0x18e4,0x459,0x459,0x459,0x459,0x459,0x459,0x459, --0x459,0x27,0x459,0x459,0x459,0x27,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459, --0x459,0x459,0x459,0x459,0x459,0x27,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459, --0x14af,0x459,0x459,0x459,0x459,0x459,0x27,0x27,0x1aee,0xf7e,0x44a,0x44a,0x44a,0x456,0x456,0x456, --0x456,0x27,0x44a,0x44a,0x44d,0x27,0x44a,0x44a,0x44a,0x450,0x27,0x27,0x27,0x27,0x27,0x27, --0x27,0x44a,0x44a,0x27,0xf7e,0xf7e,0x16bc,0x27,0x27,0x1af1,0x27,0x27,0x459,0x459,0xf78,0xf78, --0x27,0x27,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x27,0x27,0x27,0x27, --0x27,0x27,0x27,0x19ad,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0x177c,0x14b2,0x462,0x462, --0x18e7,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x2a,0x468,0x468,0x468,0x2a,0x468,0x468, --0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x2a,0x468,0x468, --0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x2a,0x468,0x468,0x468,0x468,0x468,0x2a,0x2a, --0xcba,0xcbd,0x462,0x45c,0x465,0x462,0x45c,0x462,0x462,0x2a,0x45c,0x465,0x465,0x2a,0x465,0x465, --0x45c,0x45f,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x45c,0x45c,0x2a,0x2a,0x2a,0x2a,0x2a, --0x2a,0x1af4,0x468,0x2a,0x468,0x468,0xec1,0xec1,0x2a,0x2a,0x948,0x948,0x948,0x948,0x948,0x948, --0x948,0x948,0x948,0x948,0x2a,0xec4,0xec4,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, --0x2a,0x2a,0x2a,0x2a,0x1842,0x14b5,0x474,0x474,0x1a4c,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a, --0x47a,0x2d,0x47a,0x47a,0x47a,0x2d,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a, --0x47a,0x47a,0x47a,0x47a,0x474,0x46b,0x46b,0x46b,0xf81,0x2d,0x474,0x474,0x474,0x2d,0x477,0x477, --0x477,0x46e,0x12f0,0x177f,0x2d,0x2d,0x2d,0x2d,0x1782,0x1782,0x1782,0x46b,0x177f,0x177f,0x177f,0x177f, --0x177f,0x177f,0x177f,0x16bf,0x47a,0x47a,0xf81,0xf81,0x2d,0x2d,0x471,0x471,0x471,0x471,0x471,0x471, --0x471,0x471,0x471,0x471,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0x177f,0x177f,0x177f,0xf87,0xf8a,0xf8a, --0xf8a,0xf8a,0xf8a,0xf8a,0x30,0x1a4f,0xa11,0xa11,0x30,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, --0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x30,0x30,0x30,0xa17,0xa17, --0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, --0xa17,0xa17,0x30,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x30,0xa17,0x30,0x30, --0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x30,0x30,0x30,0xa0b,0x30,0x30,0x30,0x30,0xa08, --0xa11,0xa11,0xa08,0xa08,0xa08,0x30,0xa08,0x30,0xa11,0xa11,0xa14,0xa11,0xa14,0xa14,0xa14,0xa08, --0x30,0x30,0x30,0x30,0x30,0x30,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8, --0x30,0x30,0xa11,0xa11,0xa0e,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, --0x33,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495, --0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495, --0x495,0x480,0x495,0x492,0x480,0x480,0x480,0x480,0x480,0x480,0x486,0x33,0x33,0x33,0x33,0x47d, --0x49b,0x49b,0x49b,0x49b,0x49b,0x495,0x498,0x483,0x483,0x483,0x483,0x483,0x483,0x480,0x483,0x489, --0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48c,0x48c,0x33,0x33,0x33,0x33, -+6,6,6,6,6,6,6,6,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50, -+0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,6,6,6,6,6,6,6,6, -+6,6,6,6,6,6,6,6,0x14bb,0x3f0,0x3ff,0x3ff,0x18,0x405,0x405,0x405, -+0x405,0x405,0x405,0x405,0x405,0x18,0x18,0x405,0x405,0x18,0x18,0x405,0x405,0x405,0x405,0x405, -+0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x405,0x18,0x405,0x405,0x405,0x405,0x405,0x405, -+0x405,0x18,0x405,0x18,0x18,0x18,0x405,0x405,0x405,0x405,0x18,0x18,0x3f3,0xcb1,0x3f0,0x3ff, -+0x3ff,0x3f0,0x3f0,0x3f0,0x3f0,0x18,0x18,0x3ff,0x3ff,0x18,0x18,0x402,0x402,0x3f6,0xda4,0x18, -+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3f0,0x18,0x18,0x18,0x18,0x408,0x408,0x18,0x408, -+0x405,0x405,0x3f0,0x3f0,0x18,0x18,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948, -+0x405,0x405,0x3fc,0x3fc,0x3f9,0x3f9,0x3f9,0x3f9,0x3f9,0x3fc,0x3f9,0x1125,0x184b,0x1848,0x18f0,0x18, -+0x1b,0xcb4,0x40b,0xcb7,0x1b,0x417,0x417,0x417,0x417,0x417,0x417,0x1b,0x1b,0x1b,0x1b,0x417, -+0x417,0x1b,0x1b,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x417, -+0x417,0x1b,0x417,0x417,0x417,0x417,0x417,0x417,0x417,0x1b,0x417,0x41a,0x1b,0x417,0x41a,0x1b, -+0x417,0x417,0x1b,0x1b,0x40e,0x1b,0x414,0x414,0x414,0x40b,0x40b,0x1b,0x1b,0x1b,0x1b,0x40b, -+0x40b,0x1b,0x1b,0x40b,0x40b,0x411,0x1b,0x1b,0x1b,0xf81,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -+0x1b,0x41a,0x41a,0x41a,0x417,0x1b,0x41a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x94b,0x94b, -+0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x40b,0x40b,0x417,0x417,0x417,0xf81,0x18f3,0x1b, -+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1e,0x41d,0x41d,0x426,0x1e,0x429,0x429,0x429, -+0x429,0x429,0x429,0x429,0xcc0,0x429,0x1e,0x429,0x429,0x429,0x1e,0x429,0x429,0x429,0x429,0x429, -+0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x1e,0x429,0x429,0x429,0x429,0x429,0x429, -+0x429,0x1e,0x429,0x429,0x1e,0x429,0x429,0x429,0x429,0x429,0x1e,0x1e,0x420,0x429,0x426,0x426, -+0x426,0x41d,0x41d,0x41d,0x41d,0x41d,0x1e,0x41d,0x41d,0x426,0x1e,0x426,0x426,0x423,0x1e,0x1e, -+0x429,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, -+0x429,0xcc0,0xcba,0xcba,0x1e,0x1e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e, -+0x13d4,0xcbd,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x16cb,0x184e,0x184e,0x184e,0x1851,0x1851,0x1851, -+0x21,0x42c,0x43b,0x43b,0x21,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x21,0x21,0x441, -+0x441,0x21,0x21,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x441, -+0x441,0x21,0x441,0x441,0x441,0x441,0x441,0x441,0x441,0x21,0x441,0x441,0x21,0xcc3,0x441,0x441, -+0x441,0x441,0x21,0x21,0x42f,0x441,0x42c,0x42c,0x43b,0x42c,0x42c,0x42c,0xf84,0x21,0x21,0x43b, -+0x43e,0x21,0x21,0x43e,0x43e,0x432,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1a5b,0x42c,0x42c, -+0x21,0x21,0x21,0x21,0x444,0x444,0x21,0x441,0x441,0x441,0xf84,0xf84,0x21,0x21,0x438,0x438, -+0x438,0x438,0x438,0x438,0x438,0x438,0x438,0x438,0x435,0xcc3,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc,0x12fc, -+0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x24,0x24,0x447,0x453,0x24,0x453,0x453,0x453, -+0x453,0x453,0x453,0x24,0x24,0x24,0x453,0x453,0x453,0x24,0x453,0x453,0x456,0x453,0x24,0x24, -+0x24,0x453,0x453,0x24,0x453,0x24,0x453,0x453,0x24,0x24,0x24,0x453,0x453,0x24,0x24,0x24, -+0x453,0x453,0x453,0x24,0x24,0x24,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0xda7,0x453, -+0x453,0x453,0x24,0x24,0x24,0x24,0x447,0x44d,0x447,0x44d,0x44d,0x24,0x24,0x24,0x44d,0x44d, -+0x44d,0x24,0x450,0x450,0x450,0x44a,0x24,0x24,0xf87,0x24,0x24,0x24,0x24,0x24,0x24,0x447, -+0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0xebb,0x954,0x954,0x954,0x954,0x954, -+0x954,0x954,0x954,0x954,0x951,0x951,0x951,0xd77,0xcc6,0xcc6,0xcc6,0xcc6,0xcc6,0xcc9,0xcc6,0x24, -+0x24,0x24,0x24,0x24,0x14be,0x465,0x465,0x465,0x18f6,0x468,0x468,0x468,0x468,0x468,0x468,0x468, -+0x468,0x27,0x468,0x468,0x468,0x27,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468, -+0x468,0x468,0x468,0x468,0x468,0x27,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468, -+0x14c1,0x468,0x468,0x468,0x468,0x468,0x27,0x27,0x1b00,0xf90,0x459,0x459,0x459,0x465,0x465,0x465, -+0x465,0x27,0x459,0x459,0x45c,0x27,0x459,0x459,0x459,0x45f,0x27,0x27,0x27,0x27,0x27,0x27, -+0x27,0x459,0x459,0x27,0xf90,0xf90,0x16ce,0x27,0x27,0x1b03,0x27,0x27,0x468,0x468,0xf8a,0xf8a, -+0x27,0x27,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x462,0x27,0x27,0x27,0x27, -+0x27,0x27,0x27,0x19bf,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0xf8d,0x178e,0x14c4,0x471,0x471, -+0x18f9,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x2a,0x477,0x477,0x477,0x2a,0x477,0x477, -+0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x2a,0x477,0x477, -+0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x477,0x2a,0x477,0x477,0x477,0x477,0x477,0x2a,0x2a, -+0xccc,0xccf,0x471,0x46b,0x474,0x471,0x46b,0x471,0x471,0x2a,0x46b,0x474,0x474,0x2a,0x474,0x474, -+0x46b,0x46e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x46b,0x46b,0x2a,0x2a,0x2a,0x2a,0x2a, -+0x2a,0x1b06,0x477,0x2a,0x477,0x477,0xed3,0xed3,0x2a,0x2a,0x957,0x957,0x957,0x957,0x957,0x957, -+0x957,0x957,0x957,0x957,0x2a,0xed6,0xed6,0x1bc9,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -+0x2a,0x2a,0x2a,0x2a,0x1854,0x14c7,0x483,0x483,0x1a5e,0x489,0x489,0x489,0x489,0x489,0x489,0x489, -+0x489,0x2d,0x489,0x489,0x489,0x2d,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489, -+0x489,0x489,0x489,0x489,0x483,0x47a,0x47a,0x47a,0xf93,0x2d,0x483,0x483,0x483,0x2d,0x486,0x486, -+0x486,0x47d,0x1302,0x1791,0x2d,0x2d,0x2d,0x2d,0x1794,0x1794,0x1794,0x47a,0x1791,0x1791,0x1791,0x1791, -+0x1791,0x1791,0x1791,0x16d1,0x489,0x489,0xf93,0xf93,0x2d,0x2d,0x480,0x480,0x480,0x480,0x480,0x480, -+0x480,0x480,0x480,0x480,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0x1791,0x1791,0x1791,0xf99,0xf9c,0xf9c, -+0xf9c,0xf9c,0xf9c,0xf9c,0x30,0x1a61,0xa23,0xa23,0x30,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29, -+0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0x30,0x30,0x30,0xa29,0xa29, -+0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29, -+0xa29,0xa29,0x30,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0x30,0xa29,0x30,0x30, -+0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0x30,0x30,0x30,0xa1d,0x30,0x30,0x30,0x30,0xa1a, -+0xa23,0xa23,0xa1a,0xa1a,0xa1a,0x30,0xa1a,0x30,0xa23,0xa23,0xa26,0xa23,0xa26,0xa26,0xa26,0xa1a, -+0x30,0x30,0x30,0x30,0x30,0x30,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca, -+0x30,0x30,0xa23,0xa23,0xa20,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, -+0x33,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4, -+0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4, -+0x4a4,0x48f,0x4a4,0x4a1,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x495,0x33,0x33,0x33,0x33,0x48c, -+0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4a4,0x4a7,0x492,0x492,0x492,0x492,0x492,0x492,0x48f,0x492,0x498, -+0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49b,0x49b,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, --0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x4aa,0x4aa,0x36, --0x4aa,0x36,0x19b3,0x4aa,0x4aa,0x19b3,0x4aa,0x36,0x19b3,0x4aa,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3, --0x4aa,0x4aa,0x4aa,0x4aa,0x19b3,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x19b3,0x4aa,0x4aa,0x4aa, --0x36,0x4aa,0x36,0x4aa,0x19b3,0x19b3,0x4aa,0x4aa,0x19b3,0x4aa,0x4aa,0x4aa,0x4aa,0x49e,0x4aa,0x4a7, --0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x19b0,0x49e,0x49e,0x4aa,0x36,0x36,0x4b3,0x4b3,0x4b3,0x4b3, --0x4b3,0x36,0x4b0,0x36,0x4a1,0x4a1,0x4a1,0x4a1,0x4a1,0x49e,0x36,0x36,0x4a4,0x4a4,0x4a4,0x4a4, --0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x36,0x36,0x4ad,0x4ad,0x13c5,0x13c5,0x36,0x36,0x36,0x36, -+0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x4b9,0x4b9,0x36, -+0x4b9,0x36,0x19c5,0x4b9,0x4b9,0x19c5,0x4b9,0x36,0x19c5,0x4b9,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5, -+0x4b9,0x4b9,0x4b9,0x4b9,0x19c5,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x19c5,0x4b9,0x4b9,0x4b9, -+0x36,0x4b9,0x36,0x4b9,0x19c5,0x19c5,0x4b9,0x4b9,0x19c5,0x4b9,0x4b9,0x4b9,0x4b9,0x4ad,0x4b9,0x4b6, -+0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x19c2,0x4ad,0x4ad,0x4b9,0x36,0x36,0x4c2,0x4c2,0x4c2,0x4c2, -+0x4c2,0x36,0x4bf,0x36,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4ad,0x1bcc,0x36,0x4b3,0x4b3,0x4b3,0x4b3, -+0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x36,0x36,0x4bc,0x4bc,0x13d7,0x13d7,0x36,0x36,0x36,0x36, - 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, --0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x98a,0x98a,0x98a,0x98d, --0x98a,0x98a,0x98a,0x98a,0x39,0x98a,0x98a,0x98a,0x98a,0x98d,0x98a,0x98a,0x98a,0x98a,0x98d,0x98a, --0x98a,0x98a,0x98a,0x98d,0x98a,0x98a,0x98a,0x98a,0x98d,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a, --0x98a,0x98a,0x98a,0x98a,0x98a,0x98d,0xa26,0xf96,0xf96,0x39,0x39,0x39,0x39,0x957,0x957,0x95a, --0x957,0x95a,0x95a,0x963,0x95a,0x963,0x957,0x957,0x957,0x957,0x957,0x984,0x957,0x95a,0x95d,0x95d, --0x960,0x969,0x95d,0x95d,0x98a,0x98a,0x98a,0x98a,0x12f9,0x12f3,0x12f3,0x12f3,0x957,0x957,0x957,0x95a, --0x957,0x957,0xa1a,0x957,0x39,0x957,0x957,0x957,0x957,0x95a,0x957,0x957,0x957,0x957,0x95a,0x957, --0x957,0x957,0x957,0x95a,0x957,0x957,0x957,0x957,0x95a,0x957,0xa1a,0xa1a,0xa1a,0x957,0x957,0x957, --0x957,0x957,0x957,0x957,0xa1a,0x95a,0xa1a,0xa1a,0xa1a,0x39,0xa23,0xa23,0xa20,0xa20,0xa20,0xa20, --0xa20,0xa20,0xa1d,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0x39,0xf8d,0xa20,0xd98,0xd98,0xf90,0xf93, --0xf8d,0x1113,0x1113,0x1113,0x1113,0x12f6,0x12f6,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, -+0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x99c,0x99c,0x99c,0x99f, -+0x99c,0x99c,0x99c,0x99c,0x39,0x99c,0x99c,0x99c,0x99c,0x99f,0x99c,0x99c,0x99c,0x99c,0x99f,0x99c, -+0x99c,0x99c,0x99c,0x99f,0x99c,0x99c,0x99c,0x99c,0x99f,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c, -+0x99c,0x99c,0x99c,0x99c,0x99c,0x99f,0xa38,0xfa8,0xfa8,0x39,0x39,0x39,0x39,0x966,0x966,0x969, -+0x966,0x969,0x969,0x975,0x969,0x975,0x966,0x966,0x966,0x966,0x966,0x996,0x966,0x969,0x96f,0x96f, -+0x972,0x97b,0x96c,0x96c,0x99c,0x99c,0x99c,0x99c,0x130b,0x1305,0x1305,0x1305,0x966,0x966,0x966,0x969, -+0x966,0x966,0xa2c,0x966,0x39,0x966,0x966,0x966,0x966,0x969,0x966,0x966,0x966,0x966,0x969,0x966, -+0x966,0x966,0x966,0x969,0x966,0x966,0x966,0x966,0x969,0x966,0xa2c,0xa2c,0xa2c,0x966,0x966,0x966, -+0x966,0x966,0x966,0x966,0xa2c,0x969,0xa2c,0xa2c,0xa2c,0x39,0xa35,0xa35,0xa32,0xa32,0xa32,0xa32, -+0xa32,0xa32,0xa2f,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0x39,0xf9f,0xa32,0xdaa,0xdaa,0xfa2,0xfa5, -+0xf9f,0x1128,0x1128,0x1128,0x1128,0x1308,0x1308,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, - 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, --0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x3c,0x13cb, --0x3c,0x3c,0x3c,0x3c,0x3c,0x13cb,0x3c,0x3c,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6, --0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7, --0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0x3f, --0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7, --0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0x3f,0xa50,0xa50, --0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0x3f,0xa50,0x3f,0xa50,0xa50, --0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0xda7,0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0x12fc,0x12fc,0xda1,0xda4,0xa4a,0xa53,0xa47, --0xa47,0xa47,0xa47,0xa53,0xa53,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa44,0xa44, --0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0x3f,0x3f,0x3f,0xa56,0xa56,0xa56,0xa56, --0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56, --0xa56,0x16c5,0x42,0x42,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x42,0x42,0xa68,0xa6b,0xa6b,0xa6b, --0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b, --0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa65,0xa62,0x45,0x45,0x45,0xa71,0xa71,0xa71,0xa71, --0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa6e,0xa6e,0xa6e,0xa71,0xa71,0xa71,0x14bb,0x14bb,0x14bb, --0x14bb,0x14bb,0x14bb,0x14bb,0x14bb,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0xa92,0xa92,0xa92,0xa92, --0xa92,0xa92,0xa74,0xa92,0xa92,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa7a,0xa77, --0xa89,0xa89,0xa8c,0xa95,0xa83,0xa80,0xa89,0xa86,0xa95,0xcc0,0x4b,0x4b,0xa8f,0xa8f,0xa8f,0xa8f, --0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xcc3,0xcc3,0xcc3,0xcc3, --0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xaa4,0xaa4,0xb1c,0xb1f, --0xaaa,0xb19,0xaa7,0xaa4,0xaad,0xabc,0xab0,0xabf,0xabf,0xabf,0xa9b,0x1af7,0xab3,0xab3,0xab3,0xab3, --0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xab6,0xab6,0xab6,0xab6, --0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, --0xab6,0xab6,0xab6,0xab6,0x18ea,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xab6,0xab6,0xab6,0xab6, --0xab6,0xab6,0xab6,0xab6,0xab6,0xa9e,0xfb4,0x4e,0x4e,0x4e,0x4e,0x4e,0x116a,0x116a,0x116a,0x116a, --0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x51,0x51,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x51,0x51,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x51,0x4da,0x51,0x4da,0x51,0x4da,0x51,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x51,0x51,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d1,0x4d7,0x4d1,0x4d1,0x4ce,0x4d7,0x4d7, --0x4d7,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4ce,0x4ce,0x4ce,0x4d7,0x4d7,0x4d7,0x4d7, --0x51,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x51,0x4ce,0x4ce,0x4ce,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4ce,0x4ce,0x4ce,0x51,0x51,0x4d7,0x4d7, --0x4d7,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d4,0x4d1,0x51,0xb94,0xb97,0xb97,0xb97, --0xfbd,0x54,0x1497,0x1497,0x1497,0x1497,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x52e,0xba9,0x57,0x57, --0x6c9,0x52e,0x52e,0x52e,0x52e,0x52e,0x534,0x546,0x534,0x540,0x53a,0x6cc,0x52b,0x6c6,0x6c6,0x6c6, --0x6c6,0x52b,0x52b,0x52b,0x52b,0x52b,0x531,0x543,0x531,0x53d,0x537,0x57,0xdb0,0xdb0,0xdb0,0xdb0, --0xdb0,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x57,0x57,0x57,0x1afa,0x5a,0x5a,0x5a, --0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x555,0x555,0x555,0x555, --0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x552,0x552,0x552,0x552,0x555,0xacb,0xacb, --0xbaf,0xbb5,0xbb5,0xbb2,0xbb2,0xbb2,0xbb2,0xdb6,0xec7,0xec7,0xec7,0xec7,0x10fe,0x5d,0x5d,0x5d, --0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x585,0x585,0x585,0xad4, --0xed0,0xfc3,0xfc3,0xfc3,0xfc3,0x125d,0x16cb,0x16cb,0x60,0x60,0x60,0x60,0x6f3,0x6f3,0x6f3,0x6f3, --0x6f3,0x6f3,0x6f3,0x6f3,0x6f3,0x6f3,0x591,0x591,0x58e,0x58e,0x58e,0x58e,0x5b2,0x5b2,0x5b2,0x5b2, --0x5b2,0xadd,0xadd,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, --0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x5b5,0x5b5,0x5b5,0x5b5, --0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, --0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0xaf8,0xaf8,0xaf8,0xaf8, --0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, --0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0x69,0xaf8,0xaf8,0xaf8,0xaf8,0xafb,0xaf8,0xaf8,0xaf8,0xaf8, --0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xafb, --0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0xafe,0xafe,0xafe,0xafe, --0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, --0xafe,0xafe,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x72,0x813,0x80d,0x813, --0x80d,0x813,0x80d,0x813,0x80d,0x813,0x80d,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d, --0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x80d,0x80d,0x80d,0x813, --0x80d,0x813,0x80d,0x813,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x813,0x80d,0x80d,0x80d,0x80d,0x80d, --0x810,0xc4e,0xc4e,0x72,0x72,0x927,0x927,0x8ee,0x8ee,0x816,0x819,0xc4b,0x75,0x75,0x75,0x75, --0x75,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b, --0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x10ec,0x18b1,0x1998, --0x78,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, --0x82e,0x82e,0x82e,0x78,0x8f7,0x8f7,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa, --0x8fa,0x8fa,0x8fa,0x8fa,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837, --0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837, --0x837,0xd4a,0xd4a,0x7b,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, --0xb10,0x7e,0x7e,0x7e,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, --0xb16,0xb16,0xb16,0xb16,0xb16,0xc57,0xb16,0xb16,0xb16,0xc57,0xb16,0x81,0x81,0x81,0x81,0x81, --0x81,0x81,0x81,0x81,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, --0x1191,0x1191,0x1191,0x1191,0x9ae,0x9ae,0x9ae,0x9ae,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84, --0x84,0x84,0x84,0x84,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206, --0x1206,0x1206,0x1206,0x1206,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x87,0x87,0x87,0x87,0x87, --0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x87,0x87,0x87,0x87, --0x87,0xae9,0x5eb,0x5f1,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5ee,0x5f1,0x5f1, --0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x87,0x5f1,0x5f1,0x5f1,0x5f1, --0x5f1,0x87,0x5f1,0x87,0x5f1,0x5f1,0x87,0x5f1,0x5f1,0x87,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1, --0x5f1,0x5f1,0x5f1,0x5f4,0x606,0x600,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600, --0x603,0x609,0x606,0x600,0x1311,0x1311,0x1afd,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a, --0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x606,0x600,0x603,0x609,0x606,0x600,0x606,0x600,0x606, --0x600,0x606,0x606,0x600,0x600,0x600,0x600,0x603,0x600,0x600,0x603,0x600,0x603,0x603,0x603,0x600, --0x603,0x603,0x603,0x603,0x8a,0x8a,0x603,0x603,0x603,0x603,0x600,0x600,0x603,0x600,0x600,0x600, --0x600,0x603,0x600,0x600,0x600,0x600,0x600,0x603,0x603,0x603,0x600,0x600,0x8a,0x8a,0x8a,0x8a, --0x8a,0x8a,0x8a,0x1afd,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34, --0xb34,0xb34,0xb34,0xb34,0x84f,0x861,0x85e,0x861,0x85e,0xc6c,0xc6c,0xd56,0xd53,0x852,0x852,0x852, --0x852,0x864,0x864,0x864,0x87c,0x87f,0x88e,0x8d,0x882,0x885,0x891,0x891,0x879,0x870,0x86a,0x870, --0x86a,0x870,0x86a,0x86d,0x86d,0x888,0x888,0x88b,0x888,0x888,0x888,0x8d,0x888,0x876,0x873,0x86d, --0x8d,0x8d,0x8d,0x8d,0x612,0x61e,0x612,0xbe8,0x612,0x90,0x612,0x61e,0x612,0x61e,0x612,0x61e, --0x612,0x61e,0x612,0x61e,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, --0x61e,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b, --0x615,0x90,0x90,0x60f,0x750,0x753,0x768,0x76b,0x74a,0x753,0x753,0x96,0x732,0x735,0x735,0x735, --0x735,0x732,0x732,0x96,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0xaec,0xaec,0xaec, --0x9b1,0x72c,0x621,0x621,0x96,0x77a,0x759,0x74a,0x753,0x750,0x74a,0x75c,0x74d,0x747,0x74a,0x768, --0x75f,0x756,0x777,0x74a,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x765,0x762, --0x768,0x768,0x768,0x77a,0x73b,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738, --0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738, --0x738,0x738,0x738,0x96,0x96,0x96,0x738,0x738,0x738,0x738,0x738,0x738,0x96,0x96,0x738,0x738, --0x738,0x738,0x738,0x738,0x96,0x96,0x738,0x738,0x738,0x738,0x738,0x738,0x96,0x96,0x738,0x738, --0x738,0x96,0x96,0x96,0xb37,0xb37,0xb37,0xb37,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, --0x99,0x184e,0x184e,0x184e,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, --0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0x9c,0x9c,0x9c,0x9c,0x9c,0x1614,0x1614,0x1614,0x1614, --0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0xb46,0xb46,0xb46,0xb46, --0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, --0xb46,0xb46,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0xb52,0xb52,0xb52,0xb52, --0xb52,0xb52,0xb52,0xa2,0xa2,0xfcf,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, --0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0x16d1,0x16d1,0x16d1,0x16d1, --0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x1b00,0x1b00,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2, --0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xa5,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xa5,0xb6a,0xb6a,0xa5,0xa5,0xb6a,0xa5, --0xa5,0xb6a,0xb6a,0xa5,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xa5,0xb67,0xa5,0xb67,0xb67,0xb67,0xb67,0xcde,0xb67,0xb67, --0xa5,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67, --0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xa5,0xb6a,0xa5,0xa5,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xdc8,0xdc8,0xa5,0xa5, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb61,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xedf,0xedc,0xa5,0xa5,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, --0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xa8,0xb70,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8, -+0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x3c,0x13dd, -+0x3c,0x3c,0x3c,0x3c,0x3c,0x13dd,0x3c,0x3c,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5, -+0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xdb9, -+0xa62,0x3f,0xa62,0xa62,0xa62,0xa62,0x3f,0x3f,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0x3f, -+0xa62,0x3f,0xa62,0xa62,0xa62,0xa62,0x3f,0x3f,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xdb9, -+0xa62,0x3f,0xa62,0xa62,0xa62,0xa62,0x3f,0x3f,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xdb9,0xa62,0x3f,0xa62,0xa62, -+0xa62,0xa62,0x3f,0x3f,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0x3f,0xa62,0x3f,0xa62,0xa62, -+0xa62,0xa62,0x3f,0x3f,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xdb9,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0x3f,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xdb9,0xa62,0x3f,0xa62,0xa62,0xa62,0xa62,0x3f,0x3f,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xdb9,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0x3f,0x3f,0x130e,0x130e,0xdb3,0xdb6,0xa5c,0xa65,0xa59, -+0xa59,0xa59,0xa59,0xa65,0xa65,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa5f,0xa56,0xa56, -+0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0x3f,0x3f,0x3f,0xa68,0xa68,0xa68,0xa68, -+0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68, -+0xa68,0x16d7,0x42,0x42,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x42,0x42,0xa7a,0xa7d,0xa7d,0xa7d, -+0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d, -+0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa77,0xa74,0x45,0x45,0x45,0xa83,0xa83,0xa83,0xa83, -+0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa80,0xa80,0xa80,0xa83,0xa83,0xa83,0x14cd,0x14cd,0x14cd, -+0x14cd,0x14cd,0x14cd,0x14cd,0x14cd,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0xaa4,0xaa4,0xaa4,0xaa4, -+0xaa4,0xaa4,0xa86,0xaa4,0xaa4,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa8c,0xa89, -+0xa9b,0xa9b,0xa9e,0xaa7,0xa95,0xa92,0xa9b,0xa98,0xaa7,0xcd2,0x4b,0x4b,0xaa1,0xaa1,0xaa1,0xaa1, -+0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xcd5,0xcd5,0xcd5,0xcd5, -+0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xab6,0xab6,0xb2e,0xb31, -+0xabc,0xb2b,0xab9,0xab6,0xabf,0xace,0xac2,0xad1,0xad1,0xad1,0xaad,0x1b09,0xac5,0xac5,0xac5,0xac5, -+0xac5,0xac5,0xac5,0xac5,0xac5,0xac5,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xac8,0xac8,0xac8,0x18fc,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xac8,0xac8,0xac8,0xac8,0xab0,0xfc6,0x4e,0x4e,0x4e,0x4e,0x4e,0x117f,0x117f,0x117f,0x117f, -+0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x4e6,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x4e6,0x51,0x51,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x51,0x51,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x4e6,0x4e6,0x4e6,0x51,0x4e9,0x51,0x4e9,0x51,0x4e9,0x51,0x4e9,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x4e6,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x51,0x51,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x4e6,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x51,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e0,0x4e6,0x4e0,0x4e0,0x4dd,0x4e6,0x4e6, -+0x4e6,0x51,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4dd,0x4dd,0x4dd,0x4e6,0x4e6,0x4e6,0x4e6, -+0x51,0x51,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x51,0x4dd,0x4dd,0x4dd,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e6,0x4e6,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4dd,0x4dd,0x4dd,0x51,0x51,0x4e6,0x4e6, -+0x4e6,0x51,0x4e6,0x4e6,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e3,0x4e0,0x51,0xba6,0xba9,0xba9,0xba9, -+0xfcf,0x54,0x14a9,0x14a9,0x14a9,0x14a9,0x4f2,0x4f2,0x4f2,0x4f2,0x4f2,0x4f2,0x53d,0xbbb,0x57,0x57, -+0x6d8,0x53d,0x53d,0x53d,0x53d,0x53d,0x543,0x555,0x543,0x54f,0x549,0x6db,0x53a,0x6d5,0x6d5,0x6d5, -+0x6d5,0x53a,0x53a,0x53a,0x53a,0x53a,0x540,0x552,0x540,0x54c,0x546,0x57,0xdc2,0xdc2,0xdc2,0xdc2, -+0xdc2,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x57,0x57,0x57,0x1b0c,0x5a,0x5a,0x5a, -+0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x564,0x564,0x564,0x564, -+0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x564,0x561,0x561,0x561,0x561,0x564,0xadd,0xadd, -+0xbc1,0xbc7,0xbc7,0xbc4,0xbc4,0xbc4,0xbc4,0xdc8,0xed9,0xed9,0xed9,0xed9,0x1113,0x5d,0x5d,0x5d, -+0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x594,0x594,0x594,0xae6, -+0xee2,0xfd5,0xfd5,0xfd5,0xfd5,0x126f,0x16dd,0x16dd,0x60,0x60,0x60,0x60,0x702,0x702,0x702,0x702, -+0x702,0x702,0x702,0x702,0x702,0x702,0x5a0,0x5a0,0x59d,0x59d,0x59d,0x59d,0x5c1,0x5c1,0x5c1,0x5c1, -+0x5c1,0xaef,0xaef,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, -+0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x5c4,0x5c4,0x5c4,0x5c4, -+0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, -+0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0xb0a,0xb0a,0xb0a,0xb0a, -+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, -+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0x69,0xb0a,0xb0a,0xb0a,0xb0a,0xb0d,0xb0a,0xb0a,0xb0a,0xb0a, -+0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0d, -+0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0xb10,0xb10,0xb10,0xb10, -+0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, -+0xb10,0xb10,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x72,0x822,0x81c,0x822, -+0x81c,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c, -+0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81c,0x81c,0x81c,0x822, -+0x81c,0x822,0x81c,0x822,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c,0x822,0x81c,0x81c,0x81c,0x81c,0x81c, -+0x81f,0xc60,0xc60,0x72,0x72,0x936,0x936,0x8fd,0x8fd,0x825,0x828,0xc5d,0x75,0x75,0x75,0x75, -+0x75,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a, -+0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x1101,0x18c3,0x19aa, -+0x78,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d, -+0x83d,0x83d,0x83d,0x78,0x906,0x906,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909,0x909, -+0x909,0x909,0x909,0x909,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846, -+0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846, -+0x846,0xd5c,0xd5c,0x7b,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22, -+0xb22,0x7e,0x7e,0x7e,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28, -+0xb28,0xb28,0xb28,0xb28,0xb28,0xc69,0xb28,0xb28,0xb28,0xc69,0xb28,0x81,0x81,0x81,0x81,0x81, -+0x81,0x81,0x81,0x81,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, -+0x11a6,0x11a6,0x11a6,0x11a6,0x9c0,0x9c0,0x9c0,0x9c0,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84, -+0x84,0x84,0x84,0x84,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b, -+0x121b,0x121b,0x121b,0x121b,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x87,0x87,0x87,0x87,0x87, -+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x87,0x87,0x87,0x87, -+0x87,0xafb,0x5fa,0x600,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x5fd,0x600,0x600, -+0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x87,0x600,0x600,0x600,0x600, -+0x600,0x87,0x600,0x87,0x600,0x600,0x87,0x600,0x600,0x87,0x600,0x600,0x600,0x600,0x600,0x600, -+0x600,0x600,0x600,0x603,0x615,0x60f,0x615,0x60f,0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f, -+0x612,0x618,0x615,0x60f,0x1323,0x1323,0x1b0f,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a, -+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x615,0x60f,0x612,0x618,0x615,0x60f,0x615,0x60f,0x615, -+0x60f,0x615,0x615,0x60f,0x60f,0x60f,0x60f,0x612,0x60f,0x60f,0x612,0x60f,0x612,0x612,0x612,0x60f, -+0x612,0x612,0x612,0x612,0x8a,0x8a,0x612,0x612,0x612,0x612,0x60f,0x60f,0x612,0x60f,0x60f,0x60f, -+0x60f,0x612,0x60f,0x60f,0x60f,0x60f,0x60f,0x612,0x612,0x612,0x60f,0x60f,0x8a,0x8a,0x8a,0x8a, -+0x8a,0x8a,0x8a,0x1b0f,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, -+0xb46,0xb46,0xb46,0xb46,0x85e,0x870,0x86d,0x870,0x86d,0xc7e,0xc7e,0xd68,0xd65,0x861,0x861,0x861, -+0x861,0x873,0x873,0x873,0x88b,0x88e,0x89d,0x8d,0x891,0x894,0x8a0,0x8a0,0x888,0x87f,0x879,0x87f, -+0x879,0x87f,0x879,0x87c,0x87c,0x897,0x897,0x89a,0x897,0x897,0x897,0x8d,0x897,0x885,0x882,0x87c, -+0x8d,0x8d,0x8d,0x8d,0x621,0x62d,0x621,0xbfa,0x621,0x90,0x621,0x62d,0x621,0x62d,0x621,0x62d, -+0x621,0x62d,0x621,0x62d,0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627, -+0x62d,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x62a, -+0x624,0x90,0x90,0x61e,0x75f,0x762,0x777,0x77a,0x759,0x762,0x762,0x96,0x741,0x744,0x744,0x744, -+0x744,0x741,0x741,0x96,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0xafe,0xafe,0xafe, -+0x9c3,0x73b,0x630,0x630,0x96,0x789,0x768,0x759,0x762,0x75f,0x759,0x76b,0x75c,0x756,0x759,0x777, -+0x76e,0x765,0x786,0x759,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x783,0x774,0x771, -+0x777,0x777,0x777,0x789,0x74a,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747, -+0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747,0x747, -+0x747,0x747,0x747,0x96,0x96,0x96,0x747,0x747,0x747,0x747,0x747,0x747,0x96,0x96,0x747,0x747, -+0x747,0x747,0x747,0x747,0x96,0x96,0x747,0x747,0x747,0x747,0x747,0x747,0x96,0x96,0x747,0x747, -+0x747,0x96,0x96,0x96,0xb49,0xb49,0xb49,0xb49,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, -+0x99,0x1860,0x1860,0x1860,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f, -+0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0x9c,0x9c,0x9c,0x9c,0x9c,0x1626,0x1626,0x1626,0x1626, -+0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0xb58,0xb58,0xb58,0xb58, -+0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58, -+0xb58,0xb58,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0xb64,0xb64,0xb64,0xb64, -+0xb64,0xb64,0xb64,0xa2,0xa2,0xfe1,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, -+0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0x16e3,0x16e3,0x16e3,0x16e3, -+0x16e3,0x16e3,0x16e3,0x16e3,0x16e3,0x1b12,0x1b12,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2, -+0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xa5,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb7c,0xb7c,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb7c,0xa5,0xb7c,0xb7c,0xa5,0xa5,0xb7c,0xa5, -+0xa5,0xb7c,0xb7c,0xa5,0xa5,0xb7c,0xb7c,0xb7c,0xb7c,0xa5,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb79,0xb79,0xb79,0xb79,0xa5,0xb79,0xa5,0xb79,0xb79,0xb79,0xb79,0xcf0,0xb79,0xb79, -+0xa5,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb79,0xb79,0xb79,0xb79, -+0xb7c,0xb7c,0xa5,0xb7c,0xb7c,0xb7c,0xb7c,0xa5,0xa5,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xa5,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xa5,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb7c,0xb7c,0xa5,0xb7c,0xb7c,0xb7c,0xb7c,0xa5,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xa5,0xb7c,0xa5,0xa5,0xa5,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xa5,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xdda,0xdda,0xa5,0xa5, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb79,0xb79,0xb79,0xb73,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xef1,0xeee,0xa5,0xa5,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, -+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xa8,0xb82,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8, - 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8, --0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, --0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0x1b06,0xbf7,0xbf7,0xbf7,0xbf7,0xbf1,0xbf1,0xbf4,0x1b03,0xab,0xab, --0xab,0xab,0xab,0xab,0xab,0xab,0xab,0x1b06,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, --0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xbfa,0xbfa,0xbfd,0xc60,0xc60,0xae, --0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06, --0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc03,0xc03,0xb1,0xb1,0xb1,0xb1, --0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c, --0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xb4,0xc0c,0xc0c,0xc0c,0xb4,0xc09,0xc09,0xb4,0xb4,0xb4,0xb4, --0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, --0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, --0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0x14d6,0x14d6,0xb7,0xce1,0xce1,0xce1,0xced,0xced,0xced,0xced,0xce1, --0xce1,0xced,0xced,0xced,0xb7,0xb7,0xb7,0xb7,0xced,0xced,0xce1,0xced,0xced,0xced,0xced,0xced, --0xced,0xce4,0xce4,0xce4,0xb7,0xb7,0xb7,0xb7,0xce7,0xb7,0xb7,0xb7,0xcf3,0xcf3,0xcea,0xcea, --0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6, --0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xba,0xba,0xcf6,0xcf6,0xcf6,0xcf6, --0xcf6,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0x14d9,0x14d9,0x14d9,0x14d9, --0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, --0xbd,0xbd,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, --0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0xbd,0x1a52,0x14d9,0x14d9,0x14d9,0x14d9, --0x14d9,0x14d9,0x14d9,0x14d9,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, --0xc0,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, --0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, --0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xd1a,0xd1a,0xc0,0xd1a, --0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xc0, --0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xc0, -+0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09, -+0xc09,0xc09,0xc09,0xc09,0xc09,0x1b18,0xc09,0xc09,0xc09,0xc09,0xc03,0xc03,0xc06,0x1b15,0xab,0xab, -+0xab,0xab,0xab,0xab,0xab,0xab,0xab,0x1b18,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12, -+0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc0c,0xc0c,0xc0f,0xc72,0xc72,0xae, -+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, -+0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc15,0xc15,0xb1,0xb1,0xb1,0xb1, -+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xc1e, -+0xc1e,0xc1e,0xc1e,0xc1e,0xc1e,0xb4,0xc1e,0xc1e,0xc1e,0xb4,0xc1b,0xc1b,0xb4,0xb4,0xb4,0xb4, -+0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02, -+0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02,0xd02, -+0xd02,0xd02,0xd02,0xd02,0xd02,0x14e8,0x14e8,0xb7,0xcf3,0xcf3,0xcf3,0xcff,0xcff,0xcff,0xcff,0xcf3, -+0xcf3,0xcff,0xcff,0xcff,0xb7,0xb7,0xb7,0xb7,0xcff,0xcff,0xcf3,0xcff,0xcff,0xcff,0xcff,0xcff, -+0xcff,0xcf6,0xcf6,0xcf6,0xb7,0xb7,0xb7,0xb7,0xcf9,0xb7,0xb7,0xb7,0xd05,0xd05,0xcfc,0xcfc, -+0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xcfc,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08, -+0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xba,0xba,0xd08,0xd08,0xd08,0xd08, -+0xd08,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0x14eb,0x14eb,0x14eb,0x14eb, -+0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb, -+0xbd,0xbd,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb, -+0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0xbd,0x1a64,0x14eb,0x14eb,0x14eb,0x14eb, -+0x14eb,0x14eb,0x14eb,0x14eb,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c, -+0xc0,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c, -+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xc0,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c, -+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xc0,0xd2c,0xd2c,0xc0,0xd2c, -+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xc0,0xc0, -+0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xc0,0xc0, - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, - 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, --0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d, --0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xc3,0xc3,0xc3,0xc3,0xc3, --0xd5c,0xd5c,0xd62,0xc6,0xc6,0xc6,0xc6,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59, --0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59, --0xc6,0xc6,0xc6,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd23,0xd23,0xd23,0xd23, --0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23, --0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xc9,0xd20,0xd2c,0xd2c,0xd2c,0xd2c, --0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c, --0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xcc,0xcc,0xd29,0xd29,0xd29,0xd29, --0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x1812,0x1812,0x1812,0x1812, --0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0xd2f,0xd2f,0xd2f,0xd2f, --0xd2f,0xd2f,0xcf,0xcf,0xd2f,0xcf,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f, --0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xcf,0xd2f, --0xd2f,0xcf,0xcf,0xcf,0xd2f,0xcf,0xcf,0xd2f,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32, --0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd2, --0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3, --0xde3,0xde3,0xde3,0x14dc,0x14dc,0x1788,0x1788,0xd8,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb, --0x10cb,0x10cb,0x10cb,0x10cb,0x1a61,0x129,0x129,0x129,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5, --0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdec, --0xdec,0xdf2,0xdf2,0xdec,0xdb,0xdb,0xdef,0xdef,0x10fb,0x10fb,0x10fb,0x10fb,0xde,0xde,0xde,0xde, --0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d, --0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xe07,0xe04,0xe07,0xe04,0xe04,0xdfb,0xdfb,0xdfb, --0xdfb,0xdfb,0xdfb,0x1146,0x1143,0x1146,0x1143,0x1140,0x1140,0x1140,0x13d4,0x13d1,0xe1,0xe1,0xe1,0xe1, --0xe1,0xe01,0xdfe,0xdfe,0xdfe,0xdfb,0xe01,0xdfe,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a, --0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4, --0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4, --0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4, --0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10, --0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d, --0xe0d,0xe0d,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xea,0x13d7, --0xea,0xea,0xea,0xea,0xea,0x13d7,0xea,0xea,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a, --0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe2b,0xe1f,0xe1f,0xe1f,0xed,0xe1f,0xe1f,0xed, --0xed,0xed,0xed,0xed,0xe1f,0xe1f,0xe1f,0xe1f,0xe2b,0xe2b,0xe2b,0xe2b,0xed,0xe2b,0xe2b,0xe2b, --0xed,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b, --0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0x18f3,0x18f3,0xed,0xed,0xe1c,0xe1c,0xe1c,0xed, --0xed,0xed,0xed,0xe22,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0x18f0,0xed,0xed,0xed, --0xed,0xed,0xed,0xed,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe2e,0xe2e,0xe25,0xed,0xed,0xed, --0xed,0xed,0xed,0xed,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0x114c,0x114c, --0xf0,0xf0,0xf0,0xf0,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3d,0xe3d,0xe3d,0xe3a,0xe3a,0xe3d,0xe3a, --0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0, --0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0x1149,0xf0,0xf0,0xf0,0xe34,0xe34, --0xe43,0xe43,0xe43,0xe43,0xf3,0xf3,0xf3,0xf3,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43, --0xe40,0xe43,0xe43,0xe43,0xe43,0xe43,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3, --0x14eb,0x14f1,0x14ee,0x1833,0x178e,0x1857,0x1857,0x1857,0x1857,0x1857,0x18f9,0x18f6,0x18fc,0x18f6,0x18fc,0x19b9, --0x1a55,0x1a55,0x1a55,0x1b18,0x1b18,0x1b12,0x1b0f,0x1b12,0x1b0f,0x1b12,0x1b0f,0x1b12,0x1b0f,0x1b15,0xf6,0xf6, -+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f, -+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xc3,0xc3,0xc3,0xc3,0xc3, -+0xd6e,0xd6e,0xd74,0xc6,0xc6,0xc6,0xc6,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b, -+0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b, -+0xc6,0xc6,0xc6,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd35,0xd35,0xd35,0xd35, -+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35, -+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xc9,0xd32,0xd3e,0xd3e,0xd3e,0xd3e, -+0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e, -+0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xcc,0xcc,0xd3b,0xd3b,0xd3b,0xd3b, -+0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x1824,0x1824,0x1824,0x1824, -+0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0xd41,0xd41,0xd41,0xd41, -+0xd41,0xd41,0xcf,0xcf,0xd41,0xcf,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41, -+0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xcf,0xd41, -+0xd41,0xcf,0xcf,0xcf,0xd41,0xcf,0xcf,0xd41,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44, -+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd2, -+0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5, -+0xdf5,0xdf5,0xdf5,0x14ee,0x14ee,0x179a,0x179a,0xd8,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0, -+0x10e0,0x10e0,0x10e0,0x10e0,0x1a73,0x129,0x129,0x129,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07, -+0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xe07,0xdfe, -+0xdfe,0xe04,0xe04,0xdfe,0xdb,0xdb,0xe01,0xe01,0x1110,0x1110,0x1110,0x1110,0xde,0xde,0xde,0xde, -+0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f, -+0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xe19,0xe16,0xe19,0xe16,0xe16,0xe0d,0xe0d,0xe0d, -+0xe0d,0xe0d,0xe0d,0x115b,0x1158,0x115b,0x1158,0x1155,0x1155,0x1155,0x13e6,0x13e3,0xe1,0xe1,0xe1,0xe1, -+0xe1,0xe13,0xe10,0xe10,0xe10,0xe0d,0xe13,0xe10,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c, -+0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe4, -+0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe4, -+0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe4,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe4, -+0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe1c,0xe4,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22, -+0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe22,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, -+0xe1f,0xe1f,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xea,0x13e9, -+0xea,0xea,0xea,0xea,0xea,0x13e9,0xea,0xea,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c, -+0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe3d,0xe31,0xe31,0xe31,0xed,0xe31,0xe31,0xed, -+0xed,0xed,0xed,0xed,0xe31,0xe31,0xe31,0xe31,0xe3d,0xe3d,0xe3d,0xe3d,0xed,0xe3d,0xe3d,0xe3d, -+0xed,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d, -+0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0xe3d,0x1905,0x1905,0xed,0xed,0xe2e,0xe2e,0xe2e,0xed, -+0xed,0xed,0xed,0xe34,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0x1902,0xed,0xed,0xed, -+0xed,0xed,0xed,0xed,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe40,0xe40,0xe37,0xed,0xed,0xed, -+0xed,0xed,0xed,0xed,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0x1161,0x1161, -+0xf0,0xf0,0xf0,0xf0,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4f,0xe4f,0xe4f,0xe4c,0xe4c,0xe4f,0xe4c, -+0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0, -+0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0x115e,0xf0,0xf0,0xf0,0xe46,0xe46, -+0xe55,0xe55,0xe55,0xe55,0xf3,0xf3,0xf3,0xf3,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55, -+0xe52,0xe55,0xe55,0xe55,0xe55,0xe55,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3, -+0x14fd,0x1503,0x1500,0x1845,0x17a0,0x1869,0x1869,0x1869,0x1869,0x1869,0x190b,0x1908,0x190e,0x1908,0x190e,0x19cb, -+0x1a67,0x1a67,0x1a67,0x1b2a,0x1b2a,0x1b24,0x1b21,0x1b24,0x1b21,0x1b24,0x1b21,0x1b24,0x1b21,0x1b27,0xf6,0xf6, - 0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, - 0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, --0xe67,0xe67,0xe67,0xe64,0xe64,0xe5b,0xe5b,0xe64,0xe61,0xe61,0xe61,0xe61,0x1a58,0xf9,0xf9,0xf9, --0x12ba,0x12ba,0x12ba,0x12bd,0x12bd,0x12bd,0x12b4,0x12b4,0x12b7,0x12b4,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d, --0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0x13e3,0x13e3,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xe6d, --0x1323,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0x1320, --0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30, --0xe9a,0xe8b,0xe85,0xe97,0xe94,0xe8e,0xe8e,0xe9d,0xe88,0xe91,0xff,0xff,0xff,0xff,0xff,0xff, --0xf21,0xf21,0xf0c,0xf21,0xf24,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0x1b1b,0x105,0x105,0x105, --0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf2d,0xf2d,0xf12,0xf18,0xf2d,0xf2d, --0xf15,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f, --0xf0f,0xf0f,0xf0f,0xf0f,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0x1b1e,0x1b1e,0x105, --0x1b27,0x1b21,0x19bf,0x19bc,0x19bf,0x19bf,0x19bf,0x1a5e,0x1a5b,0x1a5e,0x1a5b,0x108,0x108,0x108,0x108,0x108, --0x1b27,0x1b21,0x108,0x1b21,0x108,0x1b21,0x1b27,0x1b21,0x1b27,0x1b21,0x108,0x108,0x108,0x108,0x108,0x108, --0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x1b24,0x1b24, --0x1b24,0x1a5e,0x1a5b,0x14fa,0x13ec,0x13ec,0x1326,0x1026,0x1026,0x1026,0x1026,0x1026,0xf3c,0xf3c,0xf3c,0xf3c, --0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c, --0xf39,0xf39,0xf3f,0xf3f,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0xf48,0xf48,0xf48,0xf48, --0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48, --0xf48,0xf48,0xf42,0xf42,0xf42,0xf42,0x1155,0x1155,0x10e,0x10e,0x10e,0xf45,0x1500,0x1500,0x1500,0x1500, --0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500, --0x1500,0x1500,0x1500,0x1500,0x1500,0x16e0,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111, -+0xe79,0xe79,0xe79,0xe76,0xe76,0xe6d,0xe6d,0xe76,0xe73,0xe73,0xe73,0xe73,0x1a6a,0xf9,0xf9,0xf9, -+0x12cc,0x12cc,0x12cc,0x12cf,0x12cf,0x12cf,0x12c6,0x12c6,0x12c9,0x12c6,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d, -+0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0x13f5,0x13f5,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xe7f, -+0x1335,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0x1332, -+0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42,0xc42, -+0xeac,0xe9d,0xe97,0xea9,0xea6,0xea0,0xea0,0xeaf,0xe9a,0xea3,0xff,0xff,0xff,0xff,0xff,0xff, -+0xf33,0xf33,0xf1e,0xf33,0xf36,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0x1b2d,0x105,0x105,0x105, -+0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf2d,0xf3f,0xf3f,0xf24,0xf2a,0xf3f,0xf3f, -+0xf27,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf21,0xf21,0xf21,0xf21,0xf21, -+0xf21,0xf21,0xf21,0xf21,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0xf24,0x1b30,0x1b30,0x105, -+0x1b39,0x1b33,0x19d1,0x19ce,0x19d1,0x19d1,0x19d1,0x1a70,0x1a6d,0x1a70,0x1a6d,0x108,0x108,0x108,0x108,0x108, -+0x1b39,0x1b33,0x108,0x1b33,0x108,0x1b33,0x1b39,0x1b33,0x1b39,0x1b33,0x108,0x108,0x108,0x108,0x108,0x108, -+0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x1b36,0x1b36, -+0x1b36,0x1a70,0x1a6d,0x150c,0x13fe,0x13fe,0x1338,0x103b,0x103b,0x103b,0x103b,0x103b,0xf4e,0xf4e,0xf4e,0xf4e, -+0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e, -+0xf4b,0xf4b,0xf51,0xf51,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0xf5a,0xf5a,0xf5a,0xf5a, -+0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a,0xf5a, -+0xf5a,0xf5a,0xf54,0xf54,0xf54,0xf54,0x116a,0x116a,0x10e,0x10e,0x10e,0xf57,0x1512,0x1512,0x1512,0x1512, -+0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512, -+0x1512,0x1512,0x1512,0x1512,0x1512,0x16f2,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111, - 0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111, --0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0xf51,0xf51,0xf51,0x1506,0x1506,0x1506,0x1506,0x1506, --0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x114,0xf4e,0xf4e,0xf4e,0xf4e,0x1503,0x114,0x114,0x114, --0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54, --0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b, --0x190b,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x104d,0x104d,0x104d,0x104d,0x104a,0x104a,0x104a,0x104a, --0x104a,0x104a,0x104a,0x104a,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x104a,0x104a,0x1041,0x103e, --0x11a,0x11a,0x11a,0x1050,0x1050,0x1044,0x1044,0x1044,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047, --0x1047,0x1047,0x11a,0x11a,0x11a,0x104d,0x104d,0x104d,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053, --0x1053,0x1053,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068, --0x1068,0x1068,0x106b,0x106b,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d, --0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x1092,0x1092,0x1092,0x1092,0x108c,0x1794,0x120,0x120, --0x120,0x120,0x120,0x120,0x120,0x120,0x1098,0x1098,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f, --0x108f,0x108f,0x120,0x120,0x120,0x120,0x120,0x120,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10aa, --0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10b0,0x10b3,0x123,0x123,0x123,0x123, --0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x10ad,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, --0x10c5,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10c2,0x10c2,0x10b9,0x10b9,0x10c2,0x10c2,0x10b9,0x10b9,0x126, --0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x10c5,0x10c5,0x10c5,0x10b9,0x10c5,0x10c5,0x10c5,0x10c5, --0x10c5,0x10c5,0x10c5,0x10c5,0x10b9,0x10c2,0x126,0x126,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf, --0x10bf,0x10bf,0x126,0x126,0x10bc,0x10c8,0x10c8,0x10c8,0x1512,0x129,0x129,0x129,0x129,0x129,0x129,0x129, -+0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0xf63,0xf63,0xf63,0x1518,0x1518,0x1518,0x1518,0x1518, -+0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x114,0xf60,0xf60,0xf60,0xf60,0x1515,0x114,0x114,0x114, -+0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66, -+0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0xf66,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d, -+0x191d,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x1062,0x1062,0x1062,0x1062,0x105f,0x105f,0x105f,0x105f, -+0x105f,0x105f,0x105f,0x105f,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x1050,0x105f,0x105f,0x1056,0x1053, -+0x11a,0x11a,0x11a,0x1065,0x1065,0x1059,0x1059,0x1059,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c,0x105c, -+0x105c,0x105c,0x11a,0x11a,0x11a,0x1062,0x1062,0x1062,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068, -+0x1068,0x1068,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x107d, -+0x107d,0x107d,0x1080,0x1080,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d, -+0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x10a7,0x10a7,0x10a7,0x10a7,0x10a1,0x17a6,0x120,0x120, -+0x120,0x120,0x120,0x120,0x120,0x120,0x10ad,0x10ad,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4, -+0x10a4,0x10a4,0x120,0x120,0x120,0x120,0x120,0x120,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10bf, -+0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10c5,0x10c8,0x123,0x123,0x123,0x123, -+0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x10c2,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da, -+0x10da,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10d7,0x10d7,0x10ce,0x10ce,0x10d7,0x10d7,0x10ce,0x10ce,0x126, -+0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x10da,0x10da,0x10da,0x10ce,0x10da,0x10da,0x10da,0x10da, -+0x10da,0x10da,0x10da,0x10da,0x10ce,0x10d7,0x126,0x126,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4, -+0x10d4,0x10d4,0x126,0x126,0x10d1,0x10dd,0x10dd,0x10dd,0x1524,0x129,0x129,0x129,0x129,0x129,0x129,0x129, - 0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129, --0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce, --0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce, --0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10d1,0x12c,0x12c,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4, --0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4, --0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x12f,0x12f,0x12f,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, --0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x132,0x132,0x132,0x132,0x132,0x132,0x132, --0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd, --0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd, --0x10dd,0x10dd,0x135,0x135,0x135,0x135,0x135,0x10da,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0, --0x10e0,0x10e0,0x10e0,0x10e0,0x138,0x138,0x138,0x138,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, --0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x13b,0x13b,0x13b,0x13b, --0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x115b,0x115b,0x115b,0x115b,0x1164,0x115b,0x115b,0x115b, --0x1164,0x115b,0x115b,0x115b,0x115b,0x1158,0x13e,0x13e,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1167, --0x1161,0x1167,0x1161,0x1161,0x1161,0x1167,0x1167,0x13e,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, --0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x141,0x141, --0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185, --0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1182,0x116d,0x1182, --0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x144,0x1176,0x117f,0x116d,0x117f,0x117f,0x116d,0x116d,0x116d, --0x116d,0x116d,0x116d,0x116d,0x116d,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x116d,0x116d,0x1173,0x1173,0x1173, --0x1173,0x1173,0x1173,0x1173,0x1173,0x144,0x144,0x1170,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c, --0x117c,0x117c,0x144,0x144,0x144,0x144,0x144,0x144,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c, --0x117c,0x117c,0x144,0x144,0x144,0x144,0x144,0x144,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1188, --0x118b,0x118b,0x118b,0x118b,0x1179,0x1179,0x144,0x144,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551, --0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x154e,0x1a73,0x12cf,0x12a8,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6, --0x12c6,0x12ae,0x12ab,0x12a2,0x12a2,0x12cc,0x12a2,0x12a2,0x12a2,0x12a2,0x12b1,0x148b,0x1491,0x148e,0x148e,0x18d2, --0x16a7,0x16a7,0x1a40,0x147,0x147,0x147,0x147,0x147,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, --0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x1197,0x1197,0x119a,0x11a3,0x119d,0x119d,0x119d,0x11a3, --0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293, --0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293, --0x1293,0x1293,0x1293,0x1293,0x1293,0x150,0x150,0x150,0x11c1,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b8, --0x11c7,0x11c7,0x11b5,0x11b5,0x11b5,0x11b5,0x153,0x12c3,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb, --0x11bb,0x11bb,0x153,0x153,0x153,0x153,0x11b5,0x11b5,0x11e5,0x11d9,0x11e5,0x156,0x156,0x156,0x156,0x156, -+0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, -+0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, -+0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e6,0x12c,0x12c,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9, -+0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9, -+0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x12f,0x12f,0x12f,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec, -+0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x132,0x132,0x132,0x132,0x132,0x132,0x132, -+0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2, -+0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2, -+0x10f2,0x10f2,0x135,0x135,0x135,0x135,0x135,0x10ef,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5, -+0x10f5,0x10f5,0x10f5,0x10f5,0x138,0x138,0x138,0x138,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8, -+0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x13b,0x13b,0x13b,0x13b, -+0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x1170,0x1170,0x1170,0x1170,0x1179,0x1170,0x1170,0x1170, -+0x1179,0x1170,0x1170,0x1170,0x1170,0x116d,0x13e,0x13e,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x1176,0x117c, -+0x1176,0x117c,0x1176,0x1176,0x1176,0x117c,0x117c,0x13e,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f, -+0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x141,0x141, -+0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a, -+0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x1197,0x1182,0x1197, -+0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x144,0x118b,0x1194,0x1182,0x1194,0x1194,0x1182,0x1182,0x1182, -+0x1182,0x1182,0x1182,0x1182,0x1182,0x1197,0x1197,0x1197,0x1197,0x1197,0x1197,0x1182,0x1182,0x1188,0x1188,0x1188, -+0x1188,0x1188,0x1188,0x1188,0x1188,0x144,0x144,0x1185,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, -+0x1191,0x1191,0x144,0x144,0x144,0x144,0x144,0x144,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, -+0x1191,0x1191,0x144,0x144,0x144,0x144,0x144,0x144,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x118e,0x119d, -+0x11a0,0x11a0,0x11a0,0x11a0,0x118e,0x118e,0x144,0x144,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, -+0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1560,0x1a85,0x12e1,0x12ba,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8, -+0x12d8,0x12c0,0x12bd,0x12b4,0x12b4,0x12de,0x12b4,0x12b4,0x12b4,0x12b4,0x12c3,0x149d,0x14a3,0x14a0,0x14a0,0x18e4, -+0x16b9,0x16b9,0x1a52,0x147,0x147,0x147,0x147,0x147,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5, -+0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11ac,0x11ac,0x11af,0x11b8,0x11b2,0x11b2,0x11b2,0x11b8, -+0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5, -+0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x12a5, -+0x12a5,0x12a5,0x12a5,0x12a5,0x12a5,0x150,0x150,0x150,0x11d6,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11cd, -+0x11dc,0x11dc,0x11ca,0x11ca,0x11ca,0x11ca,0x153,0x12d5,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0, -+0x11d0,0x11d0,0x153,0x153,0x153,0x153,0x11ca,0x11ca,0x11fa,0x11ee,0x11fa,0x156,0x156,0x156,0x156,0x156, - 0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156, --0x156,0x156,0x156,0x11e2,0x11e2,0x11e8,0x11dc,0x11df,0x11fd,0x11fd,0x11fd,0x11f7,0x11f7,0x11ee,0x11f7,0x11f7, --0x11ee,0x11f7,0x11f7,0x1200,0x11fa,0x11f1,0x159,0x159,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4, --0x11f4,0x11f4,0x159,0x159,0x159,0x159,0x159,0x159,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x15c, --0x15c,0x15c,0x15c,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203, --0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203, --0x15c,0x15c,0x15c,0x15c,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f, --0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x15f,0x120c,0x1209,0x1209,0x1209,0x1209, --0x1209,0x1209,0x1209,0x1209,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e, --0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x162,0x162,0x162,0x1218,0x121b,0x121b, --0x121b,0x121b,0x121b,0x121b,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224, --0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x165,0x165,0x1221,0x1221,0x1221,0x1221, --0x1221,0x1221,0x1221,0x1221,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, --0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x168,0x168,0x168,0x168,0x168,0x1227,0x1227,0x1227,0x1227, --0x1227,0x1227,0x1227,0x1227,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, --0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, --0x1230,0x1230,0x1230,0x16e,0x124b,0x124b,0x1b2a,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171, --0x171,0x1914,0x171,0x171,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a, --0x146a,0x146a,0x146a,0x146a,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, --0x1251,0x1251,0x1251,0x174,0x19e3,0x19e3,0x19e3,0x19e3,0x19e3,0x19e3,0x19e3,0x19e6,0x19e0,0x26a,0x26a,0x26a, --0x26a,0x26a,0x26a,0x26a,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815, --0x1815,0x1a64,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177, -+0x156,0x156,0x156,0x11f7,0x11f7,0x11fd,0x11f1,0x11f4,0x1212,0x1212,0x1212,0x120c,0x120c,0x1203,0x120c,0x120c, -+0x1203,0x120c,0x120c,0x1215,0x120f,0x1206,0x159,0x159,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209, -+0x1209,0x1209,0x159,0x159,0x159,0x159,0x159,0x159,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x121b,0x15c, -+0x15c,0x15c,0x15c,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218, -+0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218,0x1218, -+0x15c,0x15c,0x15c,0x15c,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224, -+0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x15f,0x1221,0x121e,0x121e,0x121e,0x121e, -+0x121e,0x121e,0x121e,0x121e,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233, -+0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x162,0x162,0x162,0x122d,0x1230,0x1230, -+0x1230,0x1230,0x1230,0x1230,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239, -+0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x1239,0x165,0x165,0x1236,0x1236,0x1236,0x1236, -+0x1236,0x1236,0x1236,0x1236,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f, -+0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x123f,0x168,0x168,0x168,0x168,0x168,0x123c,0x123c,0x123c,0x123c, -+0x123c,0x123c,0x123c,0x123c,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245, -+0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245, -+0x1245,0x1245,0x1245,0x16e,0x125d,0x125d,0x1b3c,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171, -+0x171,0x1926,0x171,0x171,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c, -+0x147c,0x147c,0x147c,0x147c,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827, -+0x1827,0x1a76,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174, -+0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174, -+0x174,0x174,0x174,0x174,0x174,0x174,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344, -+0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344, -+0x12ae,0x13a7,0x13a7,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177, -+0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab,0x12ab, -+0x12ab,0x12ab,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x182a,0x177,0x177,0x177,0x177, -+0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x12a8,0x177,0x177,0x177,0x177,0x177,0x177,0x177, -+0x13cb,0x13cb,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177, -+0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177, - 0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177, --0x177,0x177,0x177,0x177,0x177,0x177,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, --0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, --0x129c,0x1395,0x1395,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, --0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, --0x1299,0x1299,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1818,0x17a,0x17a,0x17a,0x17a, --0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, --0x13b9,0x13b9,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, --0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, --0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, --0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b, --0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b, --0x133b,0x1335,0x1335,0x1335,0x17d,0x17d,0x1338,0x17d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x133e,0x1347, --0x1341,0x1341,0x1347,0x1347,0x1347,0x1341,0x1347,0x1341,0x1341,0x1341,0x134a,0x134a,0x180,0x180,0x180,0x180, --0x180,0x180,0x180,0x180,0x1344,0x1344,0x1344,0x1344,0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183, --0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183,0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183, --0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183, --0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae, --0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1356,0x1368, --0x1368,0x135c,0x135c,0x135c,0x135c,0x135c,0x186,0x186,0x186,0x186,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359, --0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f, --0x135f,0x135f,0x135f,0x135f,0x1b30,0x1b33,0x1b33,0x1b2d,0x1b2d,0x1b33,0x186,0x186,0x186,0x186,0x186,0x186, --0x186,0x186,0x186,0x1521,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, --0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x189,0x189,0x189, --0x189,0x189,0x189,0x189,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, --0x136e,0x136e,0x136e,0x18c,0x18c,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, --0x136e,0x136e,0x136e,0x1524,0x18c,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, --0x136e,0x136e,0x136e,0x139e,0x18c,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, --0x136e,0x136e,0x136e,0x136e,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524, --0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c, --0x18c,0x18c,0x18c,0x18c,0x13b3,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530, --0x169e,0x1530,0x1530,0x1530,0x1770,0x1821,0x1821,0x185a,0x185a,0x1a22,0x1acd,0x1acd,0x18f,0x18f,0x18f,0x18f, --0x18f,0x1b9c,0x1b9c,0x1b9c,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x169b, --0x169b,0x18f,0x18f,0x18f,0x1530,0x1530,0x1530,0x1530,0x1821,0x1821,0x1821,0x18bd,0x18bd,0x199e,0x1a22,0x1acd, --0x1acd,0x18f,0x18f,0x18f,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371, --0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, --0x192,0x192,0x192,0x192,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, --0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, --0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x195,0x140d,0x195,0x195,0x140d,0x195,0x140d,0x140d,0x140d, --0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x195,0x140d, --0x195,0x195,0x195,0x195,0x195,0x195,0x140d,0x195,0x195,0x195,0x195,0x140d,0x195,0x140d,0x195,0x140d, --0x195,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x195,0x140d,0x195,0x195,0x140d,0x195,0x140d,0x195,0x140d, --0x195,0x140d,0x195,0x140d,0x195,0x140d,0x140d,0x195,0x140d,0x195,0x195,0x140d,0x140d,0x140d,0x140d,0x195, --0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d, --0x140d,0x195,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d, --0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, --0x195,0x195,0x195,0x195,0x195,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d, --0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, --0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, --0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, --0x140a,0x140a,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, --0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1410,0x1410,0x1410,0x1410,0x1410,0x141f,0x1410,0x1413,0x1413, --0x1410,0x1410,0x1410,0x1416,0x1416,0x198,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c, --0x1419,0x1425,0x1425,0x1425,0x1920,0x191d,0x191d,0x1a6a,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198, --0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, --0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x142e,0x1428,0x1428,0x142e,0x142e, --0x1437,0x1437,0x1431,0x1434,0x1434,0x142e,0x142b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b, --0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a, --0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x19e,0x19e,0x19e,0x19e,0x16f5,0x16f5,0x143a,0x143a, --0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, --0x19e,0x19e,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, --0x1446,0x1446,0x1446,0x1446,0x1446,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x1a1,0x1a1,0x1a1,0x1a1,0x19c5, --0x1446,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443, --0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1440, --0x1440,0x1440,0x1440,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449, --0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, --0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, --0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7, --0x12c9,0x12c6,0x12c9,0x12a5,0x12c6,0x12cc,0x12cc,0x12cf,0x12cc,0x12cf,0x12d2,0x12c6,0x12cf,0x12cf,0x12c6,0x12c6, --0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x1470,0x1479,0x1470,0x1479,0x1479, --0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x147c,0x1473,0x19ce,0x1b3f,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa, --0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1ad,0x1ad, --0x153f,0x153f,0x153f,0x153f,0x153f,0x1545,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad, --0x154b,0x154b,0x154b,0x154b,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1548, --0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x2b5,0x1b8a,0x1b8a,0x1b8a,0x1b8a, --0x16aa,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1, --0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x1b3,0x1b3,0x1b3,0x1b3, --0x1a73,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b42,0x1b42,0x1b42,0x1b6, --0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6, --0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6, --0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9, --0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1b9,0x1b9,0x1b9, --0x1b9,0x1b9,0x1b9,0x1b9,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1b9,0x1b9, --0x155a,0x1554,0x1557,0x1560,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1bc,0x1bc,0x1bc,0x1bc, --0x1bc,0x1bc,0x1bc,0x1bc,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, --0x154b,0x154b,0x154b,0x154b,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566, --0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1923,0x1923,0x1923,0x1923,0x1bf,0x1bf,0x1bf, --0x1bf,0x1bf,0x1bf,0x1bf,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25, --0x1bf,0x1bf,0x1bf,0x1bf,0x1b9f,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf, --0x1bf,0x1bf,0x1bf,0x1bf,0x170a,0x16ad,0x156f,0x16b3,0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578, --0x1578,0x1c2,0x1c2,0x1578,0x1578,0x1c2,0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578, --0x1578,0x1578,0x1578,0x1578,0x1578,0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1c2,0x1578,0x1578, --0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1c2,0x19aa,0x16b0,0x1578,0x1569,0x156f,0x1569,0x156f,0x156f,0x156f, --0x156f,0x1c2,0x1c2,0x156f,0x156f,0x1c2,0x1c2,0x1572,0x1572,0x1575,0x1c2,0x1c2,0x170d,0x1c2,0x1c2,0x1c2, --0x1c2,0x1c2,0x1c2,0x1569,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x157b,0x1578,0x1578,0x1578,0x1578,0x156f,0x156f, --0x1c2,0x1c2,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x1c2,0x1c2,0x1c2,0x156c,0x156c,0x156c,0x156c, --0x156c,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1590,0x1590,0x1590,0x1590, --0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1c5,0x1590, --0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x158a,0x158a,0x158a,0x157e, --0x157e,0x157e,0x158a,0x158a,0x157e,0x158d,0x1581,0x157e,0x1593,0x1593,0x1587,0x1593,0x1593,0x1584,0x17a3,0x1c5, --0x15a2,0x15a2,0x15a2,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1599,0x159c,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, --0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, --0x1710,0x1710,0x1710,0x1710,0x15ae,0x15ab,0x19d1,0x19d1,0x1a79,0x1a7c,0x1a76,0x1a76,0x1cb,0x1cb,0x1cb,0x1cb, --0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, --0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, --0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, --0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, --0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, --0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, --0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, --0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, --0x15c0,0x15c0,0x15c0,0x15b7,0x15ba,0x15bd,0x15c0,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, --0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15c3,0x15c3,0x1d4,0x1d4,0x1d4,0x1d4,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6, --0x15cc,0x15cc,0x16b6,0x15cc,0x15cc,0x15cc,0x15c9,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4, --0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x1d7,0x1d7,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, --0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7, --0x15db,0x15ed,0x15ed,0x15e1,0x15ea,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, --0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, --0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3, --0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x1dd, --0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x1dd,0x1dd,0x1dd,0x1dd,0x15f6,0x15f6, --0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, --0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15f9,0x1602,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff, --0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x1e0, --0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608, --0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1e3, --0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614, --0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1611,0x1611,0x1611,0x1611,0x1611,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6, --0x162c,0x162c,0x162f,0x162f,0x1632,0x1623,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9, --0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1e9,0x1623,0x1623,0x1623,0x1623,0x1623, --0x1623,0x1623,0x1e9,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, --0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x162c,0x162c,0x162c, --0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b, --0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec, --0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644, --0x1644,0x1644,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1641,0x1641,0x1641,0x1641,0x1ef,0x1ef,0x1ef, --0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x1647, --0x1659,0x1659,0x1647,0x1647,0x1647,0x1647,0x1f5,0x1f5,0x1659,0x1659,0x165c,0x165c,0x1647,0x1647,0x1659,0x164d, --0x164a,0x1650,0x1662,0x1662,0x1653,0x1653,0x1656,0x1656,0x1656,0x1662,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719, --0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1716,0x1716,0x1716,0x1716,0x1713,0x1713,0x1f5,0x1f5, --0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5, --0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5, --0x1f8,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665, --0x1665,0x1665,0x1665,0x1665,0x1665,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8, --0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1fb,0x1fb,0x1fb,0x1fb, --0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, --0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, --0x1668,0x1668,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, --0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, --0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1fb,0x1fb,0x1a7f,0x1a7f,0x1fb,0x1fb, --0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, --0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, --0x166b,0x167a,0x1671,0x166e,0x1680,0x1680,0x1674,0x1680,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe, --0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe, --0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683, --0x1683,0x1683,0x1683,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x168c, --0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e, --0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x1926,0x204,0x204,0x171c,0x171c,0x171c, --0x1728,0x1728,0x171c,0x171c,0x171c,0x171c,0x172b,0x171c,0x171c,0x171c,0x171c,0x171f,0x204,0x204,0x204,0x204, --0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1722,0x1722,0x1731,0x1731,0x1731,0x1722, --0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207, --0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207, --0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746, --0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x20d,0x1746,0x1746,0x20d,0x20d, --0x20d,0x20d,0x20d,0x1743,0x1743,0x1743,0x1743,0x1743,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x210, --0x1749,0x210,0x1749,0x1749,0x1749,0x1749,0x210,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749, --0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x210,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749, --0x1749,0x174c,0x210,0x210,0x210,0x210,0x210,0x210,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, --0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, --0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x213,0x213,0x213,0x213,0x213, --0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, --0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x213,0x213,0x213,0x213,0x213, --0x213,0x213,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x175b,0x175b,0x175b,0x175b,0x1758,0x175b,0x175b,0x175e, --0x1761,0x175e,0x175e,0x175b,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, --0x216,0x216,0x216,0x1758,0x1758,0x1758,0x1758,0x1758,0x17b8,0x17b8,0x17b8,0x17b8,0x17af,0x17af,0x17af,0x17a9, --0x17ac,0x17ac,0x17ac,0x19d4,0x219,0x219,0x219,0x219,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5, --0x17b5,0x17b5,0x219,0x219,0x219,0x219,0x17b2,0x17b2,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3, --0x17d3,0x21c,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3, --0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d0,0x17be,0x17be,0x17be,0x17be, --0x17be,0x17be,0x17be,0x21c,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17d0,0x17c1,0x17d3,0x17d6,0x17d6,0x17ca, --0x17c7,0x17c7,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x17cd,0x17cd,0x17cd,0x17cd, --0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4, --0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x21c,0x21c,0x21c,0x17e2,0x17e5,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb, --0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9, --0x17d9,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944, --0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x222, --0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc, --0x17dc,0x222,0x222,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x182a,0x18c6,0x1a2e,0x1a31,0x1ad9,0x225,0x225,0x225, --0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x1ad6,0x1ad6,0x225,0x225,0x225,0x225,0x225,0x225, --0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb, --0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x228,0x228,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df, --0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x228,0x17e8,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df, --0x17df,0x17e8,0x17df,0x17df,0x17e8,0x17df,0x17df,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228, --0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x22b,0x22b,0x22b, -+0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d, -+0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d, -+0x134d,0x1347,0x1347,0x1347,0x17a,0x17a,0x134a,0x17a,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x1350,0x1359, -+0x1353,0x1353,0x1359,0x1359,0x1359,0x1353,0x1359,0x1353,0x1353,0x1353,0x135c,0x135c,0x17d,0x17d,0x17d,0x17d, -+0x17d,0x17d,0x17d,0x17d,0x1356,0x1356,0x1356,0x1356,0x180,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x180, -+0x180,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x180,0x180,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x180, -+0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x180, -+0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x1362,0x180,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, -+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1368,0x137a, -+0x137a,0x136e,0x136e,0x136e,0x136e,0x136e,0x183,0x183,0x183,0x183,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, -+0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371, -+0x1371,0x1371,0x1371,0x1371,0x1b42,0x1b45,0x1b45,0x1b3f,0x1b3f,0x1b45,0x183,0x183,0x183,0x183,0x183,0x183, -+0x183,0x183,0x183,0x1533,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d, -+0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x186,0x186,0x186, -+0x186,0x186,0x186,0x186,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, -+0x1380,0x1380,0x1380,0x189,0x189,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, -+0x1380,0x1380,0x1380,0x1536,0x189,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, -+0x1380,0x1380,0x1380,0x13b0,0x189,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380,0x1380, -+0x1380,0x1380,0x1380,0x1380,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536, -+0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x189,0x189,0x189,0x189,0x189,0x189, -+0x189,0x189,0x189,0x189,0x13c5,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542, -+0x16b0,0x1542,0x1542,0x1542,0x1782,0x1833,0x1833,0x186c,0x186c,0x1a34,0x1adf,0x1adf,0x18c,0x18c,0x18c,0x18c, -+0x1c2c,0x1bae,0x1bae,0x1bae,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x16ad, -+0x16ad,0x18c,0x18c,0x18c,0x1542,0x1542,0x1542,0x1542,0x1833,0x1833,0x1833,0x18cf,0x18cf,0x19b0,0x1a34,0x1adf, -+0x1adf,0x18c,0x18c,0x18c,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383, -+0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1bd2,0x1bd2,0x1bd2,0x18f,0x18f,0x18f,0x18f,0x1bd2, -+0x1bd2,0x1bd2,0x1bd2,0x1bd2,0x141f,0x141f,0x141f,0x141f,0x192,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f, -+0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f, -+0x141f,0x141f,0x141f,0x141f,0x192,0x141f,0x141f,0x192,0x141f,0x192,0x192,0x141f,0x192,0x141f,0x141f,0x141f, -+0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x192,0x141f,0x141f,0x141f,0x141f,0x192,0x141f,0x192,0x141f, -+0x192,0x192,0x192,0x192,0x192,0x192,0x141f,0x192,0x192,0x192,0x192,0x141f,0x192,0x141f,0x192,0x141f, -+0x192,0x141f,0x141f,0x141f,0x192,0x141f,0x141f,0x192,0x141f,0x192,0x192,0x141f,0x192,0x141f,0x192,0x141f, -+0x192,0x141f,0x192,0x141f,0x192,0x141f,0x141f,0x192,0x141f,0x192,0x192,0x141f,0x141f,0x141f,0x141f,0x192, -+0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x192,0x141f,0x141f,0x141f,0x141f,0x192,0x141f,0x141f,0x141f, -+0x141f,0x192,0x141f,0x192,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x192,0x141f, -+0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f, -+0x192,0x192,0x192,0x192,0x192,0x141f,0x141f,0x141f,0x192,0x141f,0x141f,0x141f,0x141f,0x141f,0x192,0x141f, -+0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f,0x141f, -+0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, -+0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, -+0x141c,0x141c,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, -+0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1422,0x1422,0x1422,0x1422,0x1422,0x1431,0x1422,0x1425,0x1425, -+0x1422,0x1422,0x1422,0x1428,0x1428,0x195,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e,0x142e, -+0x142b,0x1437,0x1437,0x1437,0x1932,0x192f,0x192f,0x1a7c,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, -+0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2, -+0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1440,0x143a,0x143a,0x1440,0x1440, -+0x1449,0x1449,0x1443,0x1446,0x1446,0x1440,0x143d,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198, -+0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c, -+0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x19b,0x19b,0x19b,0x19b,0x1707,0x1707,0x144c,0x144c, -+0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, -+0x19b,0x19b,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, -+0x1458,0x1458,0x1458,0x1458,0x1458,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19e,0x19e,0x19e,0x19e,0x19d7, -+0x1458,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455, -+0x19da,0x19da,0x19da,0x19da,0x19da,0x19da,0x19da,0x19da,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x1452, -+0x1452,0x1452,0x1452,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b,0x145b, -+0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1, -+0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,0x1479,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1, -+0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, -+0x12db,0x12d8,0x12db,0x12b7,0x12d8,0x12de,0x12de,0x12e1,0x12de,0x12e1,0x12e4,0x12d8,0x12e1,0x12e1,0x12d8,0x12d8, -+0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1482,0x148b,0x1482,0x148b,0x148b, -+0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x148e,0x1485,0x19e0,0x1b51,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7, -+0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1aa,0x1aa, -+0x1551,0x1551,0x1551,0x1551,0x1551,0x1557,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa, -+0x155d,0x155d,0x155d,0x155d,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x155a, -+0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x2b2,0x1b9c,0x1b9c,0x1b9c,0x1b9c, -+0x16bc,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3, -+0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x1b0,0x1b0,0x1b0,0x1b0, -+0x1a85,0x1b57,0x1b57,0x1b57,0x1b57,0x1b57,0x1b57,0x1b57,0x1b57,0x1b57,0x1b57,0x1b57,0x1b54,0x1b54,0x1b54,0x1b3, -+0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3, -+0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3, -+0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6, -+0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x1b6,0x1b6,0x1b6, -+0x1b6,0x1b6,0x1b6,0x1b6,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x1b6,0x1b6, -+0x156c,0x1566,0x1569,0x1572,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1b9,0x1b9,0x1b9,0x1b9, -+0x1b9,0x1b9,0x1b9,0x1b9,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, -+0x155d,0x155d,0x155d,0x155d,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578, -+0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1935,0x1935,0x1935,0x1935,0x1bd5,0x1bc,0x1bc, -+0x1bc,0x1bc,0x1bc,0x1bc,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37, -+0x1bc,0x1bc,0x1bc,0x1bc,0x1bb1,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc, -+0x1bc,0x1bc,0x1bc,0x1bc,0x171c,0x16bf,0x1581,0x16c5,0x1bf,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a, -+0x158a,0x1bf,0x1bf,0x158a,0x158a,0x1bf,0x1bf,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a, -+0x158a,0x158a,0x158a,0x158a,0x158a,0x1bf,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x158a,0x1bf,0x158a,0x158a, -+0x1bf,0x158a,0x158a,0x158a,0x158a,0x158a,0x1bf,0x19bc,0x16c2,0x158a,0x157b,0x1581,0x157b,0x1581,0x1581,0x1581, -+0x1581,0x1bf,0x1bf,0x1581,0x1581,0x1bf,0x1bf,0x1584,0x1584,0x1587,0x1bf,0x1bf,0x171f,0x1bf,0x1bf,0x1bf, -+0x1bf,0x1bf,0x1bf,0x157b,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x158d,0x158a,0x158a,0x158a,0x158a,0x1581,0x1581, -+0x1bf,0x1bf,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x157e,0x1bf,0x1bf,0x1bf,0x157e,0x157e,0x157e,0x157e, -+0x157e,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x15a2,0x15a2,0x15a2,0x15a2, -+0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x1c2,0x15a2, -+0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15b4,0x15b4,0x15b4,0x15a8, -+0x15a8,0x15a8,0x15a8,0x15a8,0x15a8,0x15ab,0x15ae,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x15b1,0x15b1,0x15b1,0x15b1, -+0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1722,0x1722,0x1722,0x1722, -+0x15c0,0x15bd,0x19e3,0x19e3,0x1a8b,0x1a8e,0x1a88,0x1a88,0x1c8,0x1c8,0x1c8,0x1c8,0x174f,0x174f,0x174f,0x174f, -+0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x15c6,0x15c6,0x15c6,0x15c6, -+0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6, -+0x15c6,0x15c6,0x15c6,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x15c6,0x15c6,0x15c6,0x15c6, -+0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6, -+0x15c6,0x15c6,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x15c6,0x15c6,0x15c6,0x15c6, -+0x15c6,0x15c6,0x15c6,0x15c6,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb, -+0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x15d2,0x15d2,0x15d2,0x15d2, -+0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15c9, -+0x15cc,0x15cf,0x15d2,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x15e1,0x15e1,0x15e1,0x15e1, -+0x15e1,0x15d5,0x15d5,0x1d1,0x1d1,0x1d1,0x1d1,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15de,0x15de,0x16c8,0x15de, -+0x15de,0x15de,0x15db,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x15ea,0x15ea,0x15ea,0x15ea, -+0x15ea,0x1d4,0x1d4,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e4,0x15e4,0x15e4,0x15e4, -+0x15e4,0x15e4,0x15e4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x15ed,0x15ff,0x15ff,0x15f3, -+0x15fc,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x15f6,0x15f6,0x15f6,0x15f6, -+0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x15f6,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1605,0x1605,0x1605,0x1605, -+0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605, -+0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1da,0x1602,0x1602,0x1602,0x1602, -+0x1602,0x1602,0x1602,0x1602,0x1602,0x1602,0x1da,0x1da,0x1da,0x1da,0x1608,0x1608,0x1b8d,0x1b8d,0x1b8d,0x1b8d, -+0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1611,0x1611,0x1611,0x1611, -+0x1611,0x160b,0x1614,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x1611,0x160e,0x160e,0x160e,0x160e, -+0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x1611,0x1611,0x1611,0x1611,0x1611,0x1dd,0x161a,0x161a,0x161a,0x161a, -+0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a, -+0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x161a,0x1e0,0x1626,0x1626,0x1626,0x1626, -+0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626,0x1626, -+0x1626,0x1626,0x1623,0x1623,0x1623,0x1623,0x1623,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x163e,0x163e,0x1641,0x1641, -+0x1644,0x1635,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x163b,0x163b,0x163b,0x163b, -+0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x1e6,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x1e6,0x163e, -+0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e, -+0x163e,0x163e,0x163e,0x163e,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x163e,0x163e,0x163e,0x164d,0x164d,0x164d,0x164d, -+0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d, -+0x164d,0x164d,0x164d,0x164d,0x164d,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1656,0x1656,0x1656,0x1656, -+0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1656,0x1ec,0x1ec, -+0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1653,0x1653,0x1653,0x1653,0x1ec,0x1ec,0x1ec,0x1671,0x1671,0x1671,0x1671, -+0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1659,0x166b,0x166b,0x1659,0x1659, -+0x1659,0x1659,0x1f2,0x1f2,0x166b,0x166b,0x166e,0x166e,0x1659,0x1659,0x166b,0x165f,0x165c,0x1662,0x1674,0x1674, -+0x1665,0x1665,0x1668,0x1668,0x1668,0x1674,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b,0x172b, -+0x172b,0x172b,0x172b,0x172b,0x1728,0x1728,0x1728,0x1728,0x1725,0x1725,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2, -+0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2, -+0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f5,0x1677,0x1677,0x1677, -+0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677, -+0x1677,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x167a,0x167a,0x167a,0x167a, -+0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x1f8,0x1f8,0x1f8,0x1f8,0x167a,0x167a,0x167a,0x167a, -+0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x1f8,0x1f8,0x1f8,0x1f8, -+0x1f8,0x1f8,0x1f8,0x1f8,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x1f8,0x1f8, -+0x1f8,0x1f8,0x1f8,0x1f8,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x1f8,0x1f8,0x1f8,0x1f8, -+0x1f8,0x1f8,0x1f8,0x1f8,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a, -+0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x1f8,0x1f8,0x1a91,0x1a91,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8, -+0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8, -+0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x167d,0x168c,0x1683,0x1680, -+0x1692,0x1692,0x1686,0x1692,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1689,0x1689,0x1689,0x1689, -+0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1698,0x1698,0x1698,0x1698, -+0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1695,0x1fe, -+0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x169e,0x1740,0x1740,0x1740,0x1740, -+0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740, -+0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1938,0x201,0x201,0x172e,0x172e,0x172e,0x173a,0x173a,0x172e,0x172e, -+0x172e,0x172e,0x173d,0x172e,0x172e,0x172e,0x172e,0x1731,0x201,0x201,0x201,0x201,0x1737,0x1737,0x1737,0x1737, -+0x1737,0x1737,0x1737,0x1737,0x1737,0x1737,0x1734,0x1734,0x1743,0x1743,0x1743,0x1734,0x1746,0x1746,0x1746,0x1746, -+0x1746,0x1746,0x1746,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204, -+0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204, -+0x204,0x204,0x204,0x204,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, -+0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x20a,0x1758,0x1758,0x20a,0x20a,0x20a,0x20a,0x20a,0x1755, -+0x1755,0x1755,0x1755,0x1755,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x20d,0x175b,0x20d,0x175b,0x175b, -+0x175b,0x175b,0x20d,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b, -+0x175b,0x175b,0x20d,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175e,0x20d,0x20d, -+0x20d,0x20d,0x20d,0x20d,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7, -+0x15b7,0x15b7,0x15b7,0x15b7,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -+0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x210, -+0x210,0x210,0x210,0x210,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764, -+0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x210,0x210,0x210,0x210,0x210,0x210,0x210,0x1761,0x1761, -+0x1761,0x1761,0x1761,0x1761,0x176d,0x176d,0x176d,0x176d,0x176a,0x176d,0x176d,0x1770,0x1773,0x1770,0x1770,0x176d, -+0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x176a, -+0x176a,0x176a,0x176a,0x176a,0x17ca,0x17ca,0x17ca,0x17ca,0x17c1,0x17c1,0x17c1,0x17bb,0x17be,0x17be,0x17be,0x19e6, -+0x216,0x216,0x216,0x216,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x17c7,0x216,0x216, -+0x216,0x216,0x17c4,0x17c4,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x219,0x17e5,0x17e5, -+0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5, -+0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e5,0x17e2,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x219, -+0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17d0,0x17e2,0x17d3,0x17e5,0x17e8,0x17e8,0x17dc,0x17d9,0x17d9,0x219,0x219, -+0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df, -+0x17df,0x17df,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6,0x17d6, -+0x17d6,0x219,0x219,0x219,0x17f4,0x17f7,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd, -+0x17fd,0x17fd,0x17fd,0x17fd,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x21c,0x21c,0x21c, -+0x21c,0x21c,0x21c,0x21c,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956, -+0x1956,0x1956,0x1956,0x1956,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x21f,0x17ee,0x17ee,0x17ee,0x17ee, -+0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x21f,0x21f,0x17ee, -+0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x21f,0x17ee,0x17ee,0x21f,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x21f, -+0x21f,0x21f,0x21f,0x21f,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc, -+0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x183c,0x18d8,0x1a40,0x1a43,0x1aeb,0x222,0x222,0x222,0x222,0x222,0x222,0x222, -+0x222,0x222,0x222,0x222,0x1ae8,0x1ae8,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222,0x222, -+0x222,0x222,0x222,0x222,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd,0x17fd, -+0x17fd,0x17fd,0x17fd,0x17fd,0x225,0x225,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1, -+0x17f1,0x17f1,0x17f1,0x17f1,0x225,0x17fa,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17fa,0x17f1,0x17f1, -+0x17fa,0x17f1,0x17f1,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x1800,0x1800,0x1800,0x1800, -+0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,0x228,0x228,0x228,0x228,0x228,0x228,0x228, -+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x1818,0x1818,0x1809,0x1803, -+0x1803,0x1818,0x1806,0x181b,0x181b,0x181b,0x181b,0x181e,0x181e,0x1812,0x180f,0x180c,0x1815,0x1815,0x1815,0x1815, -+0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1a94,0x1812,0x22b,0x180c,0x193b,0x19e9,0x1a97,0x1a97,0x22b,0x22b, - 0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b, --0x1806,0x1806,0x17f7,0x17f1,0x17f1,0x1806,0x17f4,0x1809,0x1809,0x1809,0x1809,0x180c,0x180c,0x1800,0x17fd,0x17fa, --0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1a82,0x1800,0x22e,0x17fa,0x1929,0x19d7, --0x1a85,0x1a85,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e, --0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e, --0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, --0x1812,0x1812,0x1812,0x1812,0x231,0x231,0x231,0x231,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, --0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, --0x180f,0x180f,0x180f,0x180f,0x231,0x231,0x231,0x231,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, --0x182d,0x182d,0x182d,0x182d,0x182d,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x1a34,0x1a34,0x1a34,0x1a34,0x1a34,0x1a34, --0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1ba8,0x1ba8,0x1ba8,0x237,0x237,0x237,0x237,0x237, --0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279, --0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x23a, --0x186c,0x186c,0x23a,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c, --0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x23a, --0x23a,0x23a,0x1860,0x23a,0x1860,0x1860,0x23a,0x1860,0x1860,0x1860,0x1863,0x1860,0x1866,0x1866,0x186f,0x1860, --0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x1869,0x1869,0x1869,0x1869,0x1869,0x1869,0x1869,0x1869, --0x1869,0x1869,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, --0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, --0x18cf,0x18cf,0x18cf,0x18cf,0x23d,0x23d,0x23d,0x23d,0x187e,0x1881,0x1881,0x240,0x240,0x240,0x240,0x240, --0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84, --0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1890,0x1890,0x1890,0x1890,0x1890,0x1890,0x1890,0x1890, --0x1890,0x1890,0x1890,0x243,0x243,0x243,0x243,0x243,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51, --0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x189c,0x189f,0x18ae,0x18ae,0x189f,0x18a2,0x189c,0x1899, --0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x1887,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1884, --0x1884,0x1872,0x1872,0x1872,0x1887,0x1887,0x1887,0x1887,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd, --0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x249,0x249,0x249,0x249, --0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f, --0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x249,0x249,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1adf,0x27c,0x27c,0x27c, --0x1a3d,0x1a3d,0x1a3d,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941, --0x1941,0x1941,0x1941,0x1941,0x193e,0x193e,0x193e,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932, --0x193e,0x1938,0x1935,0x193b,0x24c,0x24c,0x24c,0x24c,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944, --0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944, --0x1944,0x1944,0x1944,0x24f,0x24f,0x1944,0x1944,0x1944,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x252,0x1953, --0x1953,0x252,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953, --0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1950,0x1950,0x1950,0x1950,0x1950,0x252, --0x1947,0x1947,0x252,0x1950,0x1950,0x1947,0x1950,0x194a,0x1953,0x252,0x252,0x252,0x252,0x252,0x252,0x252, --0x195c,0x195c,0x195f,0x195f,0x1956,0x1956,0x1956,0x1956,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255, --0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x255,0x255,0x255,0x255,0x255,0x255, --0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1965,0x1962,0x1962,0x1962, --0x1965,0x1962,0x1962,0x1962,0x1962,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258, --0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e, --0x196e,0x196e,0x196e,0x1968,0x1968,0x196b,0x196b,0x1971,0x1971,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b, --0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974, --0x1974,0x1974,0x1974,0x1974,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e, --0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, --0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x197a,0x1983,0x1977,0x1977,0x261,0x261,0x261,0x261,0x261, --0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1989,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264, --0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992, --0x1992,0x1992,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198f,0x198f,0x198f, --0x198f,0x1995,0x1995,0x1995,0x1995,0x1995,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267, --0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72, --0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9, --0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x26d, --0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8, --0x270,0x270,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8, --0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f5,0x19f5,0x19f5,0x19ec,0x19ec,0x19ec,0x19ec, --0x270,0x270,0x19ec,0x19ec,0x19f5,0x19f5,0x19f5,0x19f5,0x19ef,0x19f8,0x19f2,0x19f8,0x19f5,0x270,0x270,0x270, --0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270, --0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04, --0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x273,0x273,0x273,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x1a04, --0x1a04,0x1a04,0x1a04,0x1a04,0x1a07,0x1a07,0x273,0x273,0x276,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a, -+0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x1824,0x1824,0x1824,0x1824, -+0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, -+0x22e,0x22e,0x22e,0x22e,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821, -+0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821, -+0x22e,0x22e,0x22e,0x22e,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, -+0x183f,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x1a46,0x231,0x231,0x231,0x231, -+0x231,0x231,0x231,0x231,0x1bba,0x1bba,0x1bba,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234, -+0x234,0x234,0x234,0x234,0x276,0x276,0x1c2f,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276, -+0x276,0x276,0x276,0x276,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x237,0x187e,0x187e,0x237,0x187e, -+0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e, -+0x187e,0x187e,0x187e,0x187e,0x187e,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x237,0x237,0x237,0x1872,0x237, -+0x1872,0x1872,0x237,0x1872,0x1872,0x1872,0x1875,0x1872,0x1878,0x1878,0x1881,0x1872,0x237,0x237,0x237,0x237, -+0x237,0x237,0x237,0x237,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x237,0x237, -+0x237,0x237,0x237,0x237,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1, -+0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1, -+0x23a,0x23a,0x23a,0x23a,0x1890,0x1893,0x1893,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d, -+0x23d,0x23d,0x23d,0x23d,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96,0x1b96, -+0x1b96,0x1b96,0x1b96,0x1b96,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x18a2,0x240, -+0x240,0x240,0x240,0x240,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63, -+0x1b63,0x1b63,0x1b63,0x1b63,0x18ae,0x18b1,0x18c0,0x18c0,0x18b1,0x18b4,0x18ae,0x18ab,0x243,0x243,0x243,0x243, -+0x243,0x243,0x243,0x243,0x1899,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1896,0x1896,0x1884,0x1884,0x1884, -+0x1899,0x1899,0x1899,0x1899,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef, -+0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246, -+0x246,0x246,0x246,0x246,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941, -+0x1941,0x1941,0x246,0x246,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1af1,0x1c35,0x1c35,0x1c35,0x1a4f,0x1a4f,0x1a4f,0x1bbd, -+0x1bbd,0x279,0x279,0x279,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953, -+0x1950,0x1950,0x1950,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1950,0x194a,0x1947,0x194d, -+0x249,0x249,0x249,0x249,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956, -+0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x24c, -+0x24c,0x1956,0x1956,0x1956,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x24f,0x1965,0x1965,0x24f,0x1965,0x1965, -+0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1965, -+0x1965,0x1965,0x1965,0x1965,0x1965,0x1965,0x1962,0x1962,0x1962,0x1962,0x1962,0x24f,0x1959,0x1959,0x24f,0x1962, -+0x1962,0x1959,0x1962,0x195c,0x1965,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x196e,0x196e,0x1971,0x1971, -+0x1968,0x1968,0x1968,0x1968,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x252,0x196b,0x196b,0x196b,0x196b, -+0x196b,0x196b,0x196b,0x196b,0x196b,0x196b,0x252,0x252,0x252,0x252,0x252,0x252,0x1974,0x1974,0x1974,0x1974, -+0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1977,0x1974,0x1974,0x1974,0x1977,0x1974,0x1974,0x1974, -+0x1974,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x1980,0x1980,0x1980,0x1980, -+0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x197a, -+0x197a,0x197d,0x197d,0x1983,0x1983,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x1986,0x1986,0x1986,0x1986, -+0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986, -+0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x1989,0x1989,0x1989,0x1989, -+0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989, -+0x1989,0x1989,0x1989,0x198c,0x1995,0x1989,0x1989,0x25e,0x25e,0x25e,0x25e,0x25e,0x1998,0x1998,0x1998,0x1998, -+0x1998,0x1998,0x1998,0x199b,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x19a4,0x19a4,0x19a4,0x19a4, -+0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x19a4,0x199e,0x199e, -+0x199e,0x199e,0x199e,0x199e,0x199e,0x199e,0x199e,0x199e,0x199e,0x19a1,0x19a1,0x19a1,0x19a1,0x19a7,0x19a7,0x19a7, -+0x19a7,0x19a7,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264, -+0x264,0x264,0x264,0x264,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84, -+0x1b84,0x1b84,0x1b84,0x1b84,0x1be7,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bed,0x1bea,0x1bea,0x1bea,0x1bea,0x1bea, -+0x1bea,0x1bea,0x1bea,0x1bea,0x1bea,0x1bea,0x1bea,0x1bea,0x1bea,0x1bea,0x267,0x267,0x267,0x267,0x267,0x267, -+0x267,0x267,0x267,0x267,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb, -+0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x26a,0x26a,0x26a,0x26a,0x26a, -+0x26a,0x26a,0x26a,0x26a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x26d,0x26d,0x1a0a,0x1a0a, - 0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a, --0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x276,0x276,0x279,0x279,0x279,0x279, --0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x1a37,0x1a37,0x1a37,0x279, --0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x1a3a,0x1a3a,0x1a3a,0x1a3a, --0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, --0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x1a3d,0x1a3d,0x1a3d,0x1adf,0x1adf,0x1adf,0x1adf,0x27c, --0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1adf,0x1adf, --0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1bab,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c, --0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1bab,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x27c,0x27c, --0x1adf,0x1adf,0x1adf,0x1bae,0x1bae,0x1bae,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, --0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, --0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, --0x1bae,0x1bae,0x1bae,0x1bae,0x1bae,0x1bae,0x1bae,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, --0x1a13,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d, --0x1a0d,0x1a0d,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x1a10, --0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a16,0x1a16,0x1a16,0x1a16, --0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x282,0x282,0x282,0x282,0x282,0x1a19, --0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x285,0x285,0x285,0x285, --0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285, --0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x288,0x288,0x1aa6,0x288,0x288,0x1aa6,0x1aa6,0x1aa6,0x1aa6, --0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x288,0x1aa6,0x1aa6,0x288,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6, --0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1a8e,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x288,0x1a9d, --0x1aa0,0x288,0x288,0x1a8e,0x1a8e,0x1aa3,0x1a94,0x1aa9,0x1a9d,0x1aa9,0x1a9d,0x1a91,0x1aac,0x1a97,0x1aac,0x288, --0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a, --0x1a9a,0x1a9a,0x288,0x288,0x288,0x288,0x288,0x288,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5, --0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x28b,0x28b, --0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b, --0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b, --0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, --0x1ab2,0x1ab2,0x1ab2,0x291,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, --0x1ab2,0x1ab2,0x1ab2,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291, --0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5, --0x1ab5,0x1ab5,0x291,0x291,0x291,0x291,0x291,0x291,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8, --0x1ae8,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294, --0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294, --0x294,0x294,0x294,0x294,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x297,0x1ab8, --0x1ab8,0x1abb,0x297,0x297,0x1abe,0x1abe,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297, --0x297,0x297,0x297,0x297,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b4e,0x1b51,0x1b51,0x1b51, --0x1b51,0x1b51,0x1b51,0x29a,0x1b54,0x1b54,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x1b4b,0x1b4b,0x1b4b,0x1b4b, --0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, --0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b57,0x1b57,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d, --0x29d,0x29d,0x29d,0x29d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x2a0,0x1b5d,0x1b5d,0x1b5d,0x1b5d, --0x2a0,0x1b5d,0x1b5d,0x2a0,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d, --0x1b5d,0x1b5d,0x1b5d,0x2a0,0x1b60,0x1b66,0x1b66,0x1b63,0x1b63,0x1b63,0x2a6,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63, --0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63, --0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x2a6,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x2a6, --0x2a6,0x2a6,0x2a6,0x2a6,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b6c,0x1b69, --0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69, --0x1b69,0x1b69,0x1b69,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, --0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, --0x2a9,0x2a9,0x2a9,0x2a9,0x1b72,0x1b72,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b75,0x1b75,0x1b75,0x1b75,0x2ac,0x2ac, --0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, --0x2ac,0x2ac,0x2ac,0x2ac,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b, --0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, --0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, --0x1b7b,0x1b7b,0x1b7b,0x2af,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x2af,0x2af, --0x2af,0x2af,0x2af,0x2af,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542, --0x1542,0x1542,0x1542,0x1542,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81, --0x1b81,0x1b81,0x1b7e,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2, --0x2b2,0x2b2,0x2b2,0x2b2,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x2b5, --0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x2b5,0x1b8a,0x1b8a,0x2b5,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87, --0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x2b5,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87, --0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x2b5,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x2b5,0x1b87, --0x1b87,0x2b5,0x2b5,0x2b5,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, --0x1b90,0x1b90,0x2b8,0x2b8,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, --0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, -+0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a07,0x1a07,0x1a07,0x19fe,0x19fe,0x19fe,0x19fe,0x26d,0x26d,0x19fe,0x19fe, -+0x1a07,0x1a07,0x1a07,0x1a07,0x1a01,0x1a0a,0x1a04,0x1a0a,0x1a07,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d, -+0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d, -+0x26d,0x26d,0x26d,0x26d,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16, -+0x1a16,0x270,0x270,0x270,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16, -+0x1a19,0x1a19,0x270,0x270,0x273,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c, -+0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c, -+0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x273,0x273,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276, -+0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x1a49,0x1a49,0x1a49,0x276,0x276,0x1c32,0x276,0x276, -+0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x1a4c,0x1a4c,0x1a4c,0x1a4c,0x276,0x276,0x276,0x276, -+0x276,0x276,0x276,0x276,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1, -+0x18e1,0x18e1,0x18e1,0x18e1,0x1a4f,0x1a4f,0x1a4f,0x1af1,0x1af1,0x1af1,0x1af1,0x1c35,0x1c35,0x279,0x279,0x279, -+0x279,0x279,0x279,0x279,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1af1,0x1af1,0x1af1,0x1af1,0x1af1,0x1af1, -+0x1af1,0x1af1,0x1af1,0x1af1,0x1af1,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1c35,0x1c35,0x1c35,0x1af1,0x1af1,0x1af1,0x1af1, -+0x1af1,0x1af1,0x1af1,0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1c35,0x1c35,0x1c35,0x279,0x1c35,0x1af1,0x1af1,0x1af1,0x1bc0, -+0x1bc0,0x1bc0,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x1c35,0x1c35,0x1af1,0x1af1,0x1af1,0x1af1, -+0x1af1,0x1af1,0x1af1,0x1bbd,0x1bbd,0x1bbd,0x1c35,0x1c35,0x279,0x279,0x279,0x279,0x1bbd,0x1bbd,0x1bbd,0x1bbd, -+0x1bbd,0x1bbd,0x1bbd,0x1bbd,0x1c35,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x1bc0,0x1bc0,0x1bc0,0x1bc0, -+0x1bc0,0x1bc0,0x1bc0,0x1c38,0x1c38,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x1a25,0x1a1f,0x1a1f,0x1a1f, -+0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x27c,0x27c, -+0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x1a22,0x1a31,0x1a31,0x1a31,0x1a31, -+0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a28,0x1a28,0x1a28,0x1a28,0x1a2e,0x1a2e,0x1a2e,0x1a2e, -+0x1a2e,0x1a2e,0x1a2e,0x1a2e,0x1a2e,0x1a2e,0x27f,0x27f,0x27f,0x27f,0x27f,0x1a2b,0x1a9d,0x1a9d,0x1a9d,0x1a9d, -+0x1a9d,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282, -+0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x282,0x1ab8,0x1ab8,0x1ab8,0x1ab8, -+0x1ab8,0x1ab8,0x1ab8,0x285,0x285,0x1ab8,0x285,0x285,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8, -+0x285,0x1ab8,0x1ab8,0x285,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1ab8, -+0x1ab8,0x1ab8,0x1ab8,0x1ab8,0x1aa0,0x1aaf,0x1aaf,0x1aaf,0x1aaf,0x1aaf,0x285,0x1aaf,0x1ab2,0x285,0x285,0x1aa0, -+0x1aa0,0x1ab5,0x1aa6,0x1abb,0x1aaf,0x1abb,0x1aaf,0x1aa3,0x1abe,0x1aa9,0x1abe,0x285,0x285,0x285,0x285,0x285, -+0x285,0x285,0x285,0x285,0x1aac,0x1aac,0x1aac,0x1aac,0x1aac,0x1aac,0x1aac,0x1aac,0x1aac,0x1aac,0x285,0x285, -+0x285,0x285,0x285,0x285,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7, -+0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x288,0x288,0x288,0x288,0x288,0x288, -+0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288, -+0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x1ac4,0x1ac4,0x1ac4,0x1ac4, -+0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x28e, -+0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x28e, -+0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e, -+0x28e,0x28e,0x28e,0x28e,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x28e,0x28e, -+0x28e,0x28e,0x28e,0x28e,0x1afa,0x1afa,0x1afa,0x1afa,0x1afa,0x1afa,0x1afa,0x1afa,0x1afa,0x291,0x291,0x291, -+0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291, -+0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291, -+0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x294,0x1aca,0x1aca,0x1acd,0x294,0x294, -+0x1ad0,0x1ad0,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294, -+0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b60,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x297, -+0x1b66,0x1b66,0x297,0x297,0x297,0x297,0x297,0x297,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d, -+0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c, -+0x1b6c,0x1b69,0x1b69,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a, -+0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x29d,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x29d,0x1b6f,0x1b6f,0x29d, -+0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x29d, -+0x1b72,0x1b78,0x1b78,0x1b75,0x1b75,0x1b75,0x2a3,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75, -+0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75, -+0x1b75,0x2a3,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x1b75,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3, -+0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7e,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, -+0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x2a6, -+0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x1bf0,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6, -+0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6, -+0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x1b84,0x1b84,0x1b81,0x1b81, -+0x1b81,0x1b81,0x1b87,0x1b87,0x1b87,0x1b87,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, -+0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x1a9d,0x1a9d,0x1a9d,0x1a9d, -+0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, - 0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, --0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, --0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, --0x18c9,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd, --0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, --0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x94e,0x94e, --0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0, --0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, --0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0x128d,0x128d,0x128d,0x2be,0x2be, --0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, --0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be, -+0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x2ac,0x1b8a,0x1b8a,0x1b8a,0x1b8a, -+0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x1554,0x1554,0x1554,0x1554, -+0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1554,0x1b93,0x1b93,0x1b93,0x1b93, -+0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b93,0x1b90,0x2af,0x2af,0x2af,0x2af,0x2af, -+0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x1b9c,0x1b9c,0x1b9c,0x1b9c, -+0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x2b2,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x1b9c,0x2b2, -+0x1b9c,0x1b9c,0x2b2,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x2b2,0x1b99, -+0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x2b2,0x1b99, -+0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x1b99,0x2b2,0x1b99,0x1b99,0x2b2,0x2b2,0x2b2,0x1ba2,0x1ba2,0x1ba2,0x1ba2, -+0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x2b5,0x2b5,0x1ba2,0x1ba2,0x1ba2,0x1ba2, -+0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x2b5, -+0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x2b5,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f, -+0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, -+0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, -+0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x1bf3,0x1bf3,0x1bf3,0x1bf9,0x1bf9,0x1bf9,0x1bf9, -+0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bfc,0x1bfc,0x1bfc,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, -+0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x1bff,0x1bff,0x1bff,0x1bff, -+0x1bff,0x1bff,0x1bff,0x1bff,0x1bff,0x1bff,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be, - 0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be, --0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0xb76,0xb76,0xb76,0xb76, --0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, --0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0x2c1,0x2c1,0x129f,0x129f,0x129f,0x129f, --0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f, --0x129f,0x1b99,0x1b99,0x1b99,0x1b99,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x13b6,0x13b6,0x13b6,0x13b6, --0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, --0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x2c7,0x2c7,0x1773,0x1773,0x2ca,0x2ca, --0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x18c9,0x18c9,0x18c9,0x18c9, --0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x3d8,0x3cc,0x3cc,0x3cc, --0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3d8,0x3d8,0x3d8,0x3d8,0x3d2,0x110a,0x12e4,0x3db,0x918,0x91b,0x3c9, --0x3c9,0x1107,0x12e1,0x12e1,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x1107,0x3cc,0x3cc,0x3d8, --0xc9c,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db, --0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3cc,0x3cc, --0x8a0,0x8a3,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x3d5,0xf6c,0xf69,0x12e7, --0x12e7,0x12e7,0x12e7,0x12e7,0x14a6,0x110d,0x110d,0xebe,0xebe,0xd8f,0xebe,0xebe,0x3db,0x3db,0x3db,0x3db, --0x3db,0x3db,0x3db,0x3db,0x3db,0x3de,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3de,0x3db,0x3db, --0x3de,0x3db,0x3db,0x3db,0x3db,0x3db,0x12e1,0x12e4,0x3cf,0x3db,0x3d8,0x3d8,0x47a,0x47a,0x47a,0x47a, --0x47a,0x47a,0x47a,0x47a,0x47a,0x12ed,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a, --0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x12ed,0x1845,0x1845,0xf8a,0x46b,0x474,0x4b6,0x4b6,0x4b6,0x4b6, --0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6, --0x4b6,0x4b6,0x4b6,0xb91,0xb91,0xd9b,0xd9b,0x8a6,0xd9e,0x13c8,0x13c8,0x13c8,0x4b9,0x4b9,0x4b9,0x4b9, --0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9, --0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4bf,0x4bf,0x4bf,0x1122, --0x1122,0x1122,0x1122,0x1122,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc, --0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc, --0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x4c2,0x4bf,0x4bf,0x4bf, --0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf, --0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf, --0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5, --0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5, --0x4cb,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c8,0x990,0xfb7,0xfb7,0xfba,0xfb7,0x4cb,0x4c5,0x4cb,0x4c5, --0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5, --0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, --0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x696,0x696,0x699,0x4f5, --0x6a5,0x6a2,0x6a2,0x69f,0x51f,0x51f,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0xb22,0x6a8,0x501,0x6c0,0x6c3, --0x516,0x6a8,0x504,0x504,0x4f5,0x510,0x510,0x696,0x51c,0x519,0x69c,0x4ef,0x4e6,0x4e6,0x4e9,0x4e9, --0x4e9,0x4e9,0x4e9,0x4ec,0x4e9,0x4e9,0x4e9,0x4e0,0x528,0x525,0x522,0x522,0x6b4,0x50a,0x507,0x6b1, --0x6ae,0x6ab,0x6bd,0x4f8,0x6ba,0x6ba,0x50d,0x510,0x6b7,0x6b7,0x50d,0x510,0x4f2,0x4f5,0x4f5,0x4f5, --0x513,0x4fe,0x4fb,0xba6,0xac5,0xac5,0xac2,0xac2,0xac2,0xac2,0xb9d,0xb9d,0xb9d,0xb9d,0xba3,0xcc9, --0xcc6,0xdaa,0xdad,0xba0,0xdad,0xdad,0xdad,0xdad,0xdaa,0xdad,0xdad,0xb9a,0x54c,0x54c,0x54c,0x54c, --0x54c,0x54c,0x54c,0x549,0x54f,0x72f,0x54c,0x993,0x9b4,0xac8,0xac8,0xac8,0xbac,0xbac,0xdb3,0xdb3, --0xdb3,0xdb3,0x112b,0x112e,0x112e,0x1302,0x1494,0x14be,0x14c1,0x14c1,0x16c8,0x1848,0x55b,0x55b,0x573,0x6d5, --0x558,0x6cf,0x55b,0x570,0x558,0x6d5,0x56a,0x573,0x573,0x573,0x56a,0x56a,0x573,0x573,0x573,0x6db, --0x558,0x573,0x6d8,0x558,0x567,0x573,0x573,0x573,0x573,0x573,0x558,0x558,0x55e,0x6cf,0x6d2,0x558, --0x573,0x558,0x6de,0x558,0x573,0x561,0x579,0x6e1,0x573,0x573,0x564,0x56a,0x573,0x573,0x576,0x573, --0x56a,0x56d,0x56d,0x56d,0x56d,0xad1,0xace,0xccc,0xdbc,0xbc1,0xbc4,0xbc4,0xbbe,0xbbb,0xbbb,0xbbb, --0xbbb,0xbc4,0xbc1,0xbc1,0xbc1,0xbc1,0xbb8,0xbbb,0xdb9,0xeca,0xecd,0xfc0,0x1131,0x1131,0x1131,0x6e7, --0x6e4,0x57c,0x57f,0x57f,0x57f,0x57f,0x57f,0x6e4,0x6e7,0x6e7,0x6e4,0x57f,0x6ed,0x6ed,0x6ed,0x6ed, --0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x588,0x588,0x588,0x588,0x6ea,0x6ea,0x6ea,0x6ea, --0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x582,0x582,0x582,0x582,0x582,0x582,0x58e,0x58e,0x58e,0x58e, --0x58e,0x58e,0x58e,0x58e,0x58b,0x58e,0x58e,0x58e,0x58e,0x58e,0x591,0x58b,0x58e,0x58e,0x58b,0x58b, --0x58b,0x58b,0x58e,0x58e,0x6f0,0x6f0,0x58b,0x58b,0x58e,0x58e,0x58e,0x58e,0x58e,0x58e,0x58e,0x58e, --0x58e,0x58e,0x58e,0x58e,0x58e,0x591,0x591,0x591,0x58e,0x58e,0x6f3,0x58e,0x6f3,0x58e,0x58e,0x58e, --0x58e,0x58e,0x58e,0x58e,0x58b,0x58e,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58e,0x58e,0x58b,0x6f0, --0x58b,0x58b,0x58b,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xbc7,0xbc7,0xbc7,0xbc7, --0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0x6f6,0x594,0x6f6,0x6f6,0x597,0x594,0x594,0x6f6, --0x6f6,0x597,0x594,0x6f6,0x597,0x594,0x594,0x6f6,0x594,0x6f6,0x5a3,0x5a0,0x594,0x6f6,0x594,0x594, --0x594,0x594,0x6f6,0x594,0x594,0x6f6,0x6f6,0x6f6,0x6f6,0x594,0x594,0x6f6,0x597,0x6f6,0x597,0x6f6, --0x6f6,0x6f6,0x6f6,0x6f6,0x6fc,0x59a,0x6f6,0x59a,0x59a,0x594,0x594,0x594,0x6f6,0x6f6,0x6f6,0x6f6, --0x594,0x594,0x594,0x594,0x6f6,0x6f6,0x594,0x594,0x594,0x597,0x594,0x594,0x597,0x594,0x594,0x597, --0x6f6,0x597,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594, --0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x6f9,0x6f6,0x597,0x594,0x6f6,0x6f6,0x6f6,0x6f6, --0x594,0x594,0x6f6,0x6f6,0x594,0x597,0x6f9,0x6f9,0x597,0x597,0x594,0x594,0x597,0x597,0x594,0x594, --0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x597,0x597,0x6f6,0x6f6,0x597,0x597,0x6f6,0x6f6, --0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x6f6,0x594,0x594, --0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x594, --0x597,0x597,0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594, --0x594,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594, --0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594, --0x594,0x594,0x594,0x594,0x597,0x597,0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x597,0x597, --0x597,0x597,0x594,0x59d,0x594,0x594,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca, --0xbca,0xbca,0xbca,0xbca,0x5a6,0xada,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5af,0x5ac,0x5af,0x5ac, --0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x6ff,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x7ef,0x7ef, --0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x7f5,0x7f2,0x5a6, --0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, --0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, --0x5a6,0x5a6,0x5a6,0xada,0xbd0,0xada,0xada,0xada,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2, --0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2, --0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708, --0x708,0x708,0x5b8,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d, --0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xd3b,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, --0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x5bb,0x5be,0x5be,0x5be, --0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, --0x70e,0x70e,0x70e,0x70e,0x5be,0x5be,0x5be,0x5be,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, --0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711, --0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x5c1,0x5c1,0x711,0x711,0x711,0x711,0xbd3,0xbd3, --0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0x717,0x717,0x5c4,0x714,0x714,0x714,0x714,0x714, --0x714,0x714,0x5c4,0x5c4,0x5c4,0x5c4,0x5c7,0x5c7,0x5c7,0x5c7,0x717,0x717,0x5c7,0x5c7,0x717,0x717, --0x5c4,0x5c4,0x5c4,0x5c4,0x717,0x717,0x5c7,0x5c7,0x717,0x717,0x5c4,0x5c4,0x5c4,0x5c4,0x717,0x717, --0x714,0x5c4,0x5c7,0x717,0x5c4,0x5c4,0x714,0x717,0x717,0x717,0x5c7,0x5c7,0x5c4,0x5c4,0x5c4,0x5c4, --0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x717,0x714,0x717,0x714,0x5c4,0x5c7, --0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c4,0x5c4,0x714,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0, --0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xc45,0xc45,0xbd6,0x5cd,0x5cd,0x5cd,0x5cd,0x5ca,0x720,0x720,0x5ca, --0x5ca,0x71a,0x5ca,0x5ca,0x5ca,0x5ca,0x71a,0x71a,0x5ca,0x5ca,0x5ca,0x5ca,0xd44,0xd44,0xbd9,0xbd9, --0xdc5,0xae3,0x5cd,0x5cd,0x71d,0x5d0,0x71d,0x5cd,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca, --0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca, --0x5ca,0x5cd,0x5cd,0x5cd,0x5ca,0x5ca,0x5ca,0x5ca,0x720,0x5ca,0x720,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca, --0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x5ca,0x5ca,0x5ca,0x5ca, --0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x720,0x720,0x5d3,0x720,0x71a,0x71a,0x5ca,0x71a, --0x71d,0x71a,0x71a,0x5ca,0x71a,0x720,0x5d3,0x720,0xae3,0xae3,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc, --0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xdc2,0xe79,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6, --0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d9,0x1389,0x1389,0x1389, --0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x14c7,0x5df,0x5df,0x5df,0x5df,0x1389,0x5d9,0x5d9, --0x5df,0x5df,0x138c,0x138c,0x5e5,0x5e5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, --0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x1389,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, --0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x726,0x5d9,0x5d9, --0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x1389,0x5d9,0x1389,0x5d9, --0x5d9,0x5d9,0x5d9,0x1389,0x1389,0x1389,0x5d9,0x1287,0x5d9,0x5d9,0x5d9,0x5e2,0x5e2,0x5e2,0x5e2,0x130e, --0x130e,0x5d9,0x5dc,0x5dc,0x5df,0x5d9,0x5d9,0x5d9,0xbe2,0xbdf,0xbe2,0xbdf,0xbe2,0xbdf,0xbe2,0xbdf, --0xbe2,0xbdf,0xbe2,0xbdf,0xbe2,0xbdf,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723, --0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, --0x1389,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x1389, --0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606, --0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x5fd,0x5fd, --0x5fd,0x5fd,0x5fd,0x5fd,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, --0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, --0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34, --0x606,0x606,0x94b,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x5fd,0x5fd,0xbe5,0xd68,0x1afd,0x1afd, --0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600, --0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600, --0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x603,0x609,0x606,0x600, --0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x606,0x600,0x603,0x609, --0x606,0x600,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x606,0x600,0x1311,0x1311, --0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x606,0x600,0x606,0x600, --0x606,0x600,0x603,0x609,0x603,0x609,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600, --0x606,0x600,0x606,0x600,0x603,0x606,0x600,0x603,0x606,0x600,0x603,0x609,0x600,0x600,0x600,0x600, --0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, --0x600,0x600,0x600,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x606,0x606,0x606,0x606, --0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x600,0x600,0x600, --0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x603,0x603,0x603, --0x603,0x603,0x603,0x603,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x600,0x606,0x909,0x90c, --0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd, --0x603,0x600,0x603,0x603,0x603,0x603,0x603,0x603,0x600,0x603,0x600,0x600,0x603,0x603,0x600,0x600, --0x603,0x603,0x600,0x603,0x600,0x603,0x600,0x600,0x603,0x600,0x600,0x603,0x600,0x603,0x600,0x600, --0x603,0x600,0x603,0x603,0x600,0x600,0x600,0x603,0x600,0x600,0x600,0x600,0x600,0x603,0x600,0x600, --0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, --0x600,0x600,0x600,0x600,0x603,0x603,0x600,0x600,0x603,0x600,0x603,0x600,0x600,0x600,0x600,0x600, --0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603, --0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603, --0x603,0x603,0x603,0x609,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606, --0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606, --0x606,0x606,0x606,0x606,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609, --0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x606,0x606,0x606,0x606,0x606,0x606,0x606, --0x606,0x606,0x606,0x606,0x60c,0x60c,0x60c,0x60c,0xfcc,0xfcc,0xfcc,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca, --0x14ca,0x14ca,0x16ce,0x16ce,0x855,0x85b,0x85b,0x867,0x867,0x858,0x84f,0x858,0x84f,0x858,0x84f,0x858, --0x84f,0x858,0x84f,0x858,0x61b,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x618, --0x61e,0x61b,0x615,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, --0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x618, --0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, --0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, --0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705, --0x705,0x705,0x705,0x705,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702, --0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702, --0x702,0x702,0x702,0x702,0x702,0x702,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b, --0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708, --0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, --0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, --0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729, --0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729, --0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0xc33,0x8b8,0x8b2,0x8af,0x8b5,0x8ac,0x73e,0x741, --0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x8be,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e, --0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e, --0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x8bb,0x8bb,0x744,0x8cd,0x8d0,0x8d6, --0x7fb,0x807,0x8eb,0x804,0x8c4,0x8c1,0x8c4,0x8c1,0x8ca,0x8c7,0x8ca,0x8c7,0x8c4,0x8c1,0x801,0x8d6, --0x8c4,0x8c1,0x8c4,0x8c1,0x8c4,0x8c1,0x8c4,0x8c1,0x8dc,0x8e2,0x8df,0x8df,0x74a,0x786,0x786,0x786, --0x786,0x786,0x786,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780, --0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x74d,0x768,0x747,0x76e,0x771,0x76b,0x783,0x783,0x783, --0x783,0x783,0x783,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d, --0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x74d,0x768,0x747,0x768,0xc36,0x7e9,0x7e9,0x7e9,0x7e9, --0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9, --0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x1281,0x1281, --0x1281,0x1281,0x1281,0x7ec,0x801,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x924,0x924, --0x924,0x924,0x80a,0x80a,0x8d9,0x8e8,0x8e8,0x8e8,0x8e8,0x8e5,0x7fe,0x8d3,0xb07,0xb07,0xb07,0xc48, --0xc66,0xc63,0xb25,0x8a9,0x810,0x80d,0x810,0x813,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x80d, --0x80d,0x80d,0x80d,0x80d,0x810,0x810,0x80d,0x810,0x810,0x80d,0x810,0x810,0x80d,0x810,0x810,0x80d, --0x810,0x810,0x80d,0x80d,0xc69,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x81c, --0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c, --0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x822,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81c, --0x81c,0x81c,0x81c,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c, --0x81f,0x81f,0x81c,0x81c,0x81c,0x81c,0x81c,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x81c,0x81c,0x81c, --0x81c,0x81c,0x822,0x81c,0x81c,0x81c,0x81c,0x81c,0x81f,0x822,0x822,0x81f,0x81f,0x81f,0x81f,0x8f1, --0x8f4,0x825,0x828,0xc51,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, --0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, --0x82e,0x82e,0x82e,0x82e,0x831,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, --0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, --0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a, --0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0xd4d,0xd4d,0xe7c,0x834, --0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0xd47,0xd47,0xd47,0xd47, -+0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02, -+0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x1c02,0x2c1,0x2c1,0x2c1,0x2c1, -+0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x1c05,0x1c05,0x1c1a,0x1c11,0x1c17,0x1c17,0x1c17,0x1c17, -+0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x2c4,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17, -+0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17,0x1c17, -+0x1c11,0x1c11,0x1c05,0x1c05,0x1c05,0x1c05,0x1c05,0x2c4,0x2c4,0x2c4,0x1c11,0x1c11,0x1c05,0x1c14,0x1c08,0x1c1d, -+0x1c1d,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0b,0x1c0e,0x1c0e,0x1c0e,0x1c0e, -+0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x1c0e,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x1c26,0x1c26,0x1c26,0x1c26, -+0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c26,0x1c20,0x1c20,0x1c20,0x1c20,0x1c23,0x1c23,0x1c23,0x1c23, -+0x1c23,0x1c23,0x1c23,0x1c23,0x1c23,0x1c23,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2ca,0x2ca,0x2ca,0x2ca, -+0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca, -+0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x18db,0x2dc,0x2dc,0x2dc, -+0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2ca,0x2ca,0x2ca,0x2ca, -+0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca, -+0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x95d,0x95d,0x1c3b,0x1c3b,0x1c3b,0x1c3b, -+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x2ca,0x2ca,0x2ca,0x2ca, -+0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0xc6c,0xc6c,0xc6c,0xc6c, -+0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0x129f,0x129f,0x129f,0x2cd,0x2cd,0xe94,0xe94,0xe94,0xe94, -+0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94, -+0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd, -+0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd, -+0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -+0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -+0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0x2d0,0x2d0,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1, -+0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x1bab,0x1bab,0x1bab, -+0x1bab,0x1c29,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8, -+0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8, -+0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x2d6,0x2d6,0x1785,0x1785,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9, -+0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db, -+0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4, -+0x1af4,0x1af4,0x1af4,0x2df,0x2df,0x2df,0x2df,0x2df,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b, -+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x3e7,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db, -+0x3db,0x3e7,0x3e7,0x3e7,0x3e7,0x3e1,0x111f,0x12f6,0x3ea,0x927,0x92a,0x3d8,0x3d8,0x111c,0x12f3,0x12f3, -+0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x3ed,0x111c,0x3db,0x3db,0x3e7,0xcae,0x3ea,0x3ea,0x3ea, -+0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea, -+0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3db,0x3db,0x8af,0x8b2,0x945,0x945, -+0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x3e4,0xf7e,0xf7b,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9, -+0x14b8,0x1122,0x1122,0xed0,0xed0,0xda1,0xed0,0xed0,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea, -+0x3ea,0x3ed,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ed,0x3ea,0x3ea,0x3ed,0x3ea,0x3ea,0x3ea, -+0x3ea,0x3ea,0x12f3,0x12f6,0x3de,0x3ea,0x3e7,0x3e7,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489, -+0x489,0x12ff,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489, -+0x489,0x489,0x12ff,0x1857,0x1857,0xf9c,0x47a,0x483,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5, -+0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0xba3, -+0xba3,0xdb0,0xdb0,0x8b5,0xdad,0x13da,0x13da,0x13da,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8, -+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8, -+0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4c8,0x4ce,0x4ce,0x4ce,0x1137,0x1137,0x1137,0x1137,0x1137, -+0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -+0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -+0x4cb,0x4cb,0x1134,0x1134,0x1134,0x1134,0x1134,0x1134,0x4d1,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce, -+0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce, -+0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4da,0x4d4,0x4da,0x4d4, -+0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4, -+0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4d4,0x4d4, -+0x4d4,0x4d4,0x4d7,0x9a2,0xfc9,0xfc9,0xfcc,0xfc9,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4, -+0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4,0x4da,0x4d4, -+0x4da,0x4d4,0xfcc,0xfc9,0xfcc,0xfc9,0xfcc,0xfc9,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6,0x4e6, -+0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x4e9,0x6a5,0x6a5,0x6a8,0x504,0x6b4,0x6b1,0x6b1,0x6ae, -+0x52e,0x52e,0x4ec,0x4ec,0x4ec,0x4ec,0x4ec,0xb34,0x6b7,0x510,0x6cf,0x6d2,0x525,0x6b7,0x513,0x513, -+0x504,0x51f,0x51f,0x6a5,0x52b,0x528,0x6ab,0x4fe,0x4f5,0x4f5,0x4f8,0x4f8,0x4f8,0x4f8,0x4f8,0x4fb, -+0x4f8,0x4f8,0x4f8,0x4ef,0x537,0x534,0x531,0x531,0x6c3,0x519,0x516,0x6c0,0x6bd,0x6ba,0x6cc,0x507, -+0x6c9,0x6c9,0x51c,0x51f,0x6c6,0x6c6,0x51c,0x51f,0x501,0x504,0x504,0x504,0x522,0x50d,0x50a,0xbb8, -+0xad7,0xad7,0xad4,0xad4,0xad4,0xad4,0xbaf,0xbaf,0xbaf,0xbaf,0xbb5,0xcdb,0xcd8,0xdbc,0xdbf,0xbb2, -+0xdbf,0xdbf,0xdbf,0xdbf,0xdbc,0xdbf,0xdbf,0xbac,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x55b,0x558, -+0x55e,0x73e,0x55b,0x9a5,0x9c6,0xada,0xada,0xada,0xbbe,0xbbe,0xdc5,0xdc5,0xdc5,0xdc5,0x1140,0x1143, -+0x1143,0x1314,0x14a6,0x14d0,0x14d3,0x14d3,0x16da,0x185a,0x56a,0x56a,0x582,0x6e4,0x567,0x6de,0x56a,0x57f, -+0x567,0x6e4,0x579,0x582,0x582,0x582,0x579,0x579,0x582,0x582,0x582,0x6ea,0x567,0x582,0x6e7,0x567, -+0x576,0x582,0x582,0x582,0x582,0x582,0x567,0x567,0x56d,0x6de,0x6e1,0x567,0x582,0x567,0x6ed,0x567, -+0x582,0x570,0x588,0x6f0,0x582,0x582,0x573,0x579,0x582,0x582,0x585,0x582,0x579,0x57c,0x57c,0x57c, -+0x57c,0xae3,0xae0,0xcde,0xdce,0xbd3,0xbd6,0xbd6,0xbd0,0xbcd,0xbcd,0xbcd,0xbcd,0xbd6,0xbd3,0xbd3, -+0xbd3,0xbd3,0xbca,0xbcd,0xdcb,0xedc,0xedf,0xfd2,0x1146,0x1146,0x1146,0x6f6,0x6f3,0x58b,0x58e,0x58e, -+0x58e,0x58e,0x58e,0x6f3,0x6f6,0x6f6,0x6f3,0x58e,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc,0x6fc, -+0x6fc,0x6fc,0x6fc,0x6fc,0x597,0x597,0x597,0x597,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9,0x6f9, -+0x6f9,0x6f9,0x591,0x591,0x591,0x591,0x591,0x591,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d, -+0x59a,0x59d,0x59d,0x59d,0x59d,0x59d,0x5a0,0x59a,0x59d,0x59d,0x59a,0x59a,0x59a,0x59a,0x59d,0x59d, -+0x6ff,0x6ff,0x59a,0x59a,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d, -+0x59d,0x5a0,0x5a0,0x5a0,0x59d,0x59d,0x702,0x59d,0x702,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d, -+0x59a,0x59d,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x59d,0x59d,0x59a,0x6ff,0x59a,0x59a,0x59a,0xae9, -+0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9, -+0xbd9,0xbd9,0xbd9,0xbd9,0x705,0x5a3,0x705,0x705,0x5a6,0x5a3,0x5a3,0x705,0x705,0x5a6,0x5a3,0x705, -+0x5a6,0x5a3,0x5a3,0x705,0x5a3,0x705,0x5b2,0x5af,0x5a3,0x705,0x5a3,0x5a3,0x5a3,0x5a3,0x705,0x5a3, -+0x5a3,0x705,0x705,0x705,0x705,0x5a3,0x5a3,0x705,0x5a6,0x705,0x5a6,0x705,0x705,0x705,0x705,0x705, -+0x70b,0x5a9,0x705,0x5a9,0x5a9,0x5a3,0x5a3,0x5a3,0x705,0x705,0x705,0x705,0x5a3,0x5a3,0x5a3,0x5a3, -+0x705,0x705,0x5a3,0x5a3,0x5a3,0x5a6,0x5a3,0x5a3,0x5a6,0x5a3,0x5a3,0x5a6,0x705,0x5a6,0x5a3,0x5a3, -+0x705,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x705,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3, -+0x5a3,0x5a3,0x5a3,0x5a3,0x708,0x705,0x5a6,0x5a3,0x705,0x705,0x705,0x705,0x5a3,0x5a3,0x705,0x705, -+0x5a3,0x5a6,0x708,0x708,0x5a6,0x5a6,0x5a3,0x5a3,0x5a6,0x5a6,0x5a3,0x5a3,0x5a6,0x5a6,0x5a3,0x5a3, -+0x5a3,0x5a3,0x5a3,0x5a3,0x5a6,0x5a6,0x705,0x705,0x5a6,0x5a6,0x705,0x705,0x5a6,0x5a6,0x5a3,0x5a3, -+0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x705,0x5a3,0x5a3,0x5a3,0x705,0x5a3,0x5a3, -+0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x705,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a6,0x5a6,0x5a6,0x5a6, -+0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x705, -+0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3, -+0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3, -+0x5a6,0x5a6,0x5a6,0x5a6,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x5a6,0x5a6,0x5a6,0x5a6,0x5a3,0x5ac, -+0x5a3,0x5a3,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc, -+0x5b5,0xaec,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5be,0x5bb,0x5be,0x5bb,0x5b5,0x5b5,0x5b5,0x5b5, -+0x5b5,0x5b5,0x70e,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x7fe,0x7fe,0x5b5,0x5b5,0x5b5,0x5b5, -+0x5b8,0x5b8,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x804,0x801,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5, -+0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5, -+0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0xaec, -+0xbe2,0xaec,0xaec,0xaec,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1, -+0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1, -+0x5c1,0x5c1,0x5c1,0x5c1,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x5c7,0xc3f, -+0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f, -+0xc3f,0xc3f,0xc3f,0xd4d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d, -+0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x5ca,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd, -+0x5cd,0x5cd,0x5cd,0x5cd,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d, -+0x5cd,0x5cd,0x5cd,0x5cd,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d, -+0x71d,0x71d,0x71d,0x71d,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720, -+0x720,0x720,0x720,0x720,0x5d0,0x5d0,0x720,0x720,0x720,0x720,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5, -+0xbe5,0xbe5,0xbe5,0xbe5,0x726,0x726,0x5d3,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x5d3,0x5d3, -+0x5d3,0x5d3,0x5d6,0x5d6,0x5d6,0x5d6,0x726,0x726,0x5d6,0x5d6,0x726,0x726,0x5d3,0x5d3,0x5d3,0x5d3, -+0x726,0x726,0x5d6,0x5d6,0x726,0x726,0x5d3,0x5d3,0x5d3,0x5d3,0x726,0x726,0x723,0x5d3,0x5d6,0x726, -+0x5d3,0x5d3,0x723,0x726,0x726,0x726,0x5d6,0x5d6,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3, -+0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x726,0x723,0x726,0x723,0x5d3,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6, -+0x5d6,0x5d3,0x5d3,0x723,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xbe8,0xbe8,0xbe8,0xbe8, -+0xbe8,0xc57,0xc57,0xbe8,0x5dc,0x5dc,0x5dc,0x5dc,0x5d9,0x72f,0x72f,0x5d9,0x5d9,0x729,0x5d9,0x5d9, -+0x5d9,0x5d9,0x729,0x729,0x5d9,0x5d9,0x5d9,0x5d9,0xd56,0xd56,0xbeb,0xbeb,0xdd7,0xaf5,0x5dc,0x5dc, -+0x72c,0x5df,0x72c,0x5dc,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, -+0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5dc,0x5dc,0x5dc, -+0x5d9,0x5d9,0x5d9,0x5d9,0x72f,0x5d9,0x72f,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x807,0x807,0x807,0x807, -+0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, -+0x5d9,0x5d9,0x5d9,0x5d9,0x72f,0x72f,0x5e2,0x72f,0x729,0x729,0x5d9,0x729,0x72c,0x729,0x729,0x5d9, -+0x729,0x72f,0x5e2,0x72f,0xaf5,0xaf5,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee, -+0xbee,0xbee,0xdd4,0xe8b,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5, -+0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e8,0x139b,0x139b,0x139b,0x5e8,0x5e8,0x5e8,0x5e8, -+0x5e8,0x5e8,0x5e8,0x5e8,0x14d9,0x5ee,0x5ee,0x5ee,0x5ee,0x139b,0x5e8,0x5e8,0x5ee,0x5ee,0x139e,0x139e, -+0x5f4,0x5f4,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8, -+0x5e8,0x5e8,0x5e8,0x5e8,0x139b,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8, -+0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x735,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8, -+0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x139b,0x5e8,0x139b,0x5e8,0x5e8,0x5e8,0x5e8,0x139b, -+0x139b,0x139b,0x5e8,0x1299,0x5e8,0x5e8,0x5e8,0x5f1,0x5f1,0x5f1,0x5f1,0x1320,0x1320,0x5e8,0x5eb,0x5eb, -+0x5ee,0x5e8,0x5e8,0x5e8,0xbf4,0xbf1,0xbf4,0xbf1,0xbf4,0xbf1,0xbf4,0xbf1,0xbf4,0xbf1,0xbf4,0xbf1, -+0xbf4,0xbf1,0x732,0x732,0x732,0x732,0x732,0x732,0x732,0x732,0x732,0x732,0x5e8,0x5e8,0x5e8,0x5e8, -+0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x139b,0x5e8,0x5e8,0x5e8, -+0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x139b,0x615,0x615,0x615,0x615, -+0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615, -+0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x60c,0x60c,0x60c,0x60c,0x60c,0x60c, -+0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f, -+0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0xb46,0xb46,0xb46,0xb46, -+0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0x615,0x615,0x95a,0x615, -+0x615,0x615,0x615,0x615,0x615,0x615,0x60c,0x60c,0xbf7,0xd7a,0x1b0f,0x1b0f,0x612,0x618,0x615,0x60f, -+0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f, -+0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f,0x615,0x60f,0x615,0x60f, -+0x615,0x60f,0x615,0x60f,0x615,0x60f,0x615,0x60f,0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f, -+0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f,0x615,0x60f,0x612,0x618,0x615,0x60f,0x615,0x60f, -+0x612,0x618,0x615,0x60f,0x612,0x618,0x615,0x60f,0x615,0x60f,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323, -+0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x1323,0x615,0x60f,0x615,0x60f,0x615,0x60f,0x612,0x618, -+0x612,0x618,0x615,0x60f,0x615,0x60f,0x615,0x60f,0x615,0x60f,0x615,0x60f,0x615,0x60f,0x615,0x60f, -+0x612,0x615,0x60f,0x612,0x615,0x60f,0x612,0x618,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f, -+0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x612, -+0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615, -+0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f, -+0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x612,0x612,0x612,0x612,0x612,0x612,0x612, -+0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x60f,0x615,0x918,0x91b,0x1b0f,0x1b0f,0x1b0f,0x1b0f, -+0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x1b0f,0x612,0x60f,0x612,0x612, -+0x612,0x612,0x612,0x612,0x60f,0x612,0x60f,0x60f,0x612,0x612,0x60f,0x60f,0x612,0x612,0x60f,0x612, -+0x60f,0x612,0x60f,0x60f,0x612,0x60f,0x60f,0x612,0x60f,0x612,0x60f,0x60f,0x612,0x60f,0x612,0x612, -+0x60f,0x60f,0x60f,0x612,0x60f,0x60f,0x60f,0x60f,0x60f,0x612,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f, -+0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f,0x60f, -+0x612,0x612,0x60f,0x60f,0x612,0x60f,0x612,0x60f,0x60f,0x60f,0x60f,0x60f,0x612,0x612,0x612,0x612, -+0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612, -+0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x612,0x618, -+0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615, -+0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615, -+0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618, -+0x618,0x618,0x618,0x618,0x618,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615,0x615, -+0x61b,0x61b,0x61b,0x61b,0xfde,0xfde,0xfde,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x14dc,0x16e0,0x16e0, -+0x864,0x86a,0x86a,0x876,0x876,0x867,0x85e,0x867,0x85e,0x867,0x85e,0x867,0x85e,0x867,0x85e,0x867, -+0x62a,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x62a, -+0x624,0x627,0x62d,0x62a,0x624,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627, -+0x62d,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627, -+0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627, -+0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627,0x62d,0x62a,0x624,0x627,0x714,0x714,0x714,0x714, -+0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714,0x714, -+0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711, -+0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711, -+0x711,0x711,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a,0x71a, -+0x71a,0x71a,0x71a,0x71a,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717,0x717, -+0x717,0x717,0x717,0x717,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d, -+0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d, -+0x71d,0x71d,0x71d,0x71d,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738, -+0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738, -+0x738,0x738,0x738,0x738,0xc45,0x8c7,0x8c1,0x8be,0x8c4,0x8bb,0x74d,0x750,0x750,0x750,0x750,0x750, -+0x750,0x750,0x750,0x750,0x8cd,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d, -+0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x74d, -+0x74d,0x74d,0x74d,0x74d,0x74d,0x74d,0x8ca,0x8ca,0x753,0x8dc,0x8df,0x8e5,0x80a,0x816,0x8fa,0x813, -+0x8d3,0x8d0,0x8d3,0x8d0,0x8d9,0x8d6,0x8d9,0x8d6,0x8d3,0x8d0,0x810,0x8e5,0x8d3,0x8d0,0x8d3,0x8d0, -+0x8d3,0x8d0,0x8d3,0x8d0,0x8eb,0x8f1,0x8ee,0x8ee,0x759,0x795,0x795,0x795,0x795,0x795,0x795,0x78f, -+0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x78f, -+0x78f,0x78f,0x78f,0x75c,0x777,0x756,0x77d,0x780,0x77a,0x792,0x792,0x792,0x792,0x792,0x792,0x78c, -+0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c, -+0x78c,0x78c,0x78c,0x75c,0x777,0x756,0x777,0xc48,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8, -+0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8, -+0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x1293,0x1293,0x1293,0x1293,0x1293,0x7fb, -+0x810,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x933,0x933,0x933,0x933,0x819,0x819, -+0x8e8,0x8f7,0x8f7,0x8f7,0x8f7,0x8f4,0x80d,0x8e2,0xb19,0xb19,0xb19,0xc5a,0xc78,0xc75,0xb37,0x8b8, -+0x81f,0x81c,0x81f,0x822,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81c,0x81c,0x81c,0x81c,0x81c, -+0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81c, -+0xc7b,0x831,0x82b,0x831,0x82b,0x831,0x82b,0x831,0x82b,0x831,0x82b,0x82b,0x82e,0x82b,0x82e,0x82b, -+0x82e,0x82b,0x82e,0x82b,0x82e,0x82b,0x82e,0x82b,0x82e,0x82b,0x82e,0x82b,0x82e,0x82b,0x82e,0x82b, -+0x82e,0x82b,0x82e,0x831,0x82b,0x82e,0x82b,0x82e,0x82b,0x82e,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b, -+0x82e,0x82e,0x82b,0x82e,0x82e,0x82b,0x82e,0x82e,0x82b,0x82e,0x82e,0x82b,0x82e,0x82e,0x82b,0x82b, -+0x82b,0x82b,0x82b,0x831,0x82b,0x831,0x82b,0x831,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x831,0x82b, -+0x82b,0x82b,0x82b,0x82b,0x82e,0x831,0x831,0x82e,0x82e,0x82e,0x82e,0x900,0x903,0x834,0x837,0xc63, - 0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d, --0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x1a46, --0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903, --0x903,0x840,0x840,0x840,0x840,0x840,0x840,0xd50,0xd50,0xd50,0xd50,0x906,0x906,0x906,0x906,0x906, --0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840, --0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840, --0x840,0x840,0xd50,0xd50,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843, --0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843, --0x843,0x843,0x843,0x843,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x846,0x846,0x846,0x846, --0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846, --0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0xe7f,0xe7f, --0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f, --0xe7f,0xe7f,0xe7f,0xe7f,0x10ef,0x10ef,0x10ef,0x10ef,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849, -+0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d, -+0x840,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d, -+0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x849,0x849,0x849,0x849, - 0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849, --0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x84c,0x84c,0x849,0x84c,0x849,0x84c, --0x84c,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x84c,0x849,0x84c,0x849,0x84c, --0x84c,0x849,0x849,0x84c,0x84c,0x84c,0x849,0x849,0x849,0x849,0x1485,0x1485,0xc5a,0xc5a,0xc5a,0xc5a, --0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0x8fd,0x8fd,0x8fd,0x8fd, --0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd, --0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x12c0,0x12c0,0x12c0,0x12c0, --0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0xd47,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54, --0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900, --0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900, --0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54, --0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903, --0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903, --0x903,0x903,0x903,0x903,0x903,0x903,0x903,0xd50,0x98a,0x96c,0x96c,0x96c,0x96c,0x966,0x96c,0x96c, --0x97e,0x96c,0x96c,0x969,0x975,0x97b,0x97b,0x97b,0x97b,0x97b,0x97e,0x966,0x972,0x966,0x966,0x966, --0x95d,0x95d,0x966,0x966,0x966,0x966,0x966,0x966,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981, --0x981,0x981,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x969,0x95d,0x966,0x95d, --0x966,0x95d,0x978,0x96f,0x978,0x96f,0x987,0x987,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996, --0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996, --0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999, --0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999, --0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c, --0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c, --0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, --0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, --0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x99f,0x99f,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, --0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, --0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a2,0x9a2,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, --0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, --0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, -+0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0xd5f,0xd5f,0xe8e,0x843,0x90c,0x90c,0x90c,0x90c, -+0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0xd59,0xd59,0xd59,0xd59,0x84c,0x84c,0x84c,0x84c, -+0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c, -+0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x1a58,0x912,0x912,0x912,0x912, -+0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x84f,0x84f,0x84f, -+0x84f,0x84f,0x84f,0xd62,0xd62,0xd62,0xd62,0x915,0x915,0x915,0x915,0x915,0x84f,0x84f,0x84f,0x84f, -+0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f, -+0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0x84f,0xd62,0xd62, -+0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, -+0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852, -+0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855, -+0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855, -+0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91, -+0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91, -+0x1104,0x1104,0x1104,0x1104,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858, -+0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x858, -+0x858,0x858,0x858,0x858,0x858,0x858,0x85b,0x85b,0x858,0x85b,0x858,0x85b,0x85b,0x858,0x858,0x858, -+0x858,0x858,0x858,0x858,0x858,0x858,0x858,0x85b,0x858,0x85b,0x858,0x85b,0x85b,0x858,0x858,0x85b, -+0x85b,0x85b,0x858,0x858,0x858,0x858,0x1497,0x1497,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c, -+0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c, -+0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c, -+0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x12d2,0x12d2,0x12d2,0x12d2,0x127b,0x127b,0x127b,0x127b, -+0x127b,0x127b,0x127b,0x127b,0xd59,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66, -+0xc66,0xc66,0xc66,0xc66,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f, -+0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f, -+0x90f,0x90f,0x90f,0x90f,0x90f,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66, -+0xc66,0xc66,0xc66,0xc66,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912, -+0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912,0x912, -+0x912,0x912,0x912,0xd62,0x99c,0x97e,0x97e,0x97e,0x97e,0x978,0x97e,0x97e,0x990,0x97e,0x97e,0x97b, -+0x987,0x98d,0x98d,0x98d,0x98d,0x98d,0x990,0x978,0x984,0x978,0x978,0x978,0x96c,0x96c,0x978,0x978, -+0x978,0x978,0x978,0x978,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x993,0x978,0x978, -+0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x97b,0x96c,0x978,0x96c,0x978,0x96c,0x98a,0x981, -+0x98a,0x981,0x999,0x999,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, - 0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, --0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9ab,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, -+0x9a8,0x9a8,0x9a8,0x9a8,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab, -+0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab, -+0x9ab,0x9ab,0x9ab,0x9ab,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, - 0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, --0x9ae,0x9ae,0x9ae,0x9ae,0x9ab,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, --0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, --0xa3b,0xa3b,0xfb1,0xa3b,0xa3b,0xa3b,0xa3e,0xa3b,0xfb1,0xa3b,0xa3b,0xfa8,0xa35,0xa29,0xa29,0xa29, --0xa29,0xa38,0xa29,0xf99,0xf99,0xf99,0xa29,0xa2c,0xa35,0xa2f,0xf9f,0xfab,0xfab,0xf99,0xf99,0xfb1, --0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xa41,0xa41,0xa32,0xa32,0xa32,0xa32, --0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa38,0xa38,0xa29,0xa29,0xfb1,0xfb1,0xfb1,0xfb1,0xf99,0xf99, --0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b, --0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b, --0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50, --0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa56,0xa56,0xa56,0xa56, --0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56, --0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa5c,0xa5c,0xa5c,0xa5c, --0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa59,0xa5f,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c, --0xa5c,0xa5c,0xa5c,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1125,0xa5c,0xa5c,0xa5c, --0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c, --0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c, --0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71, --0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71, --0xa95,0xa95,0xa95,0xa98,0xa98,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, --0xa95,0xa95,0xa95,0xa95,0xa7d,0xa7d,0xa92,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa92,0xa92, --0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, --0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, --0xab6,0xab6,0xab6,0xab6,0xab6,0xaa1,0xaa1,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, --0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, --0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab9,0xab6,0xab6,0xab6,0xab6, --0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, --0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada, --0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada, --0xada,0xada,0xada,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, --0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, --0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, -+0x9ae,0x9ae,0x9ae,0x9ae,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7, -+0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7, -+0x9b7,0x9b7,0x9b1,0x9b1,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba, -+0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba, -+0x9ba,0x9ba,0x9b4,0x9b4,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7, -+0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7, -+0x9b7,0x9b7,0x9b7,0x9b7,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba, -+0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba,0x9ba, -+0x9ba,0x9ba,0x9ba,0x9ba,0x9bd,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0, -+0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0, -+0x9bd,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0, -+0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0xa4d,0xa4d,0xfc3,0xa4d, -+0xa4d,0xa4d,0xa50,0xa4d,0xfc3,0xa4d,0xa4d,0xfba,0xa47,0xa3b,0xa3b,0xa3b,0xa3b,0xa4a,0xa3b,0xfab, -+0xfab,0xfab,0xa3b,0xa3e,0xa47,0xa41,0xfb1,0xfbd,0xfbd,0xfab,0xfab,0xfc3,0xb3d,0xb3d,0xb3d,0xb3d, -+0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xa53,0xa53,0xa44,0xa44,0xa44,0xa44,0xa4d,0xa4d,0xa4d,0xa4d, -+0xa4d,0xa4d,0xa4a,0xa4a,0xa3b,0xa3b,0xfc3,0xfc3,0xfc3,0xfc3,0xfab,0xfab,0xa4d,0xa4d,0xa4d,0xa4d, -+0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d, -+0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xdb9,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xdb9,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62, -+0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa62,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68, -+0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68, -+0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e, -+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6b,0xa71,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0x113d, -+0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113d,0x113a,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e, -+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e, -+0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa6e,0xa83,0xa83,0xa83,0xa83, -+0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83, -+0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xaa7,0xaa7,0xaa7,0xaaa, -+0xaaa,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7, -+0xa8f,0xa8f,0xaa4,0xa86,0xa86,0xa86,0xa86,0xa86,0xa86,0xa86,0xaa4,0xaa4,0xaa7,0xaa7,0xaa7,0xaa7, -+0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7, -+0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xab3,0xab3,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xacb,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8, -+0xac8,0xac8,0xac8,0xac8,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec, -+0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xbe2, -+0xbe2,0xbe2,0xbe2,0xbe2,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, - 0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, --0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, --0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, --0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, -+0xaf8,0xaf8,0xaf8,0xaf8,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, - 0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, --0x138f,0x138f,0x138f,0x1ac1,0x1ac1,0x1ac1,0x1ac1,0x1ac1,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d, --0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d, --0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4, --0x1ac4,0x1ac4,0x1ac4,0x1ac4,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, --0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb13,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, -+0xb0a,0xb0a,0xb0a,0xb0a,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, - 0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, --0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb16,0xb16,0xc57,0xc57, --0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, --0xc57,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb3a,0xb3a,0xb3a,0xb3a, --0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a, --0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0x14cd,0xb43,0xb43,0xb43,0xb43, --0xb43,0xb43,0xcdb,0xcdb,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, --0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xcd8,0xcd8, --0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, --0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43, --0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43, --0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, --0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, --0xb55,0xb55,0xb55,0xb55,0xb55,0xb4c,0xb58,0xb5e,0xb5e,0xb5e,0xb52,0xb52,0xb52,0xb5b,0xb4f,0xb4f, --0xb4f,0xb4f,0xb4f,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e, --0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, --0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, --0xb52,0xb52,0xb55,0xb55,0xb5e,0xb5e,0xb5e,0xb52,0xb52,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e, --0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, --0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb5e,0xb5e,0xb5e,0xb5e,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, --0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb52,0xb52,0xb52, -+0xb10,0xb10,0xb10,0xb10,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c, -+0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0x13a1,0x13a1,0x13a1,0x1ad3, -+0x1ad3,0x1ad3,0x1ad3,0x1ad3,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f, -+0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f, -+0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0x1ad6,0x1ad6,0x1ad6,0x1ad6,0x1ad6,0x1ad6,0x1ad6,0x1ad6,0x1ad6,0x1ad6, -+0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22, -+0xb22,0xb22,0xb22,0xb22,0xb22,0xb25,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22, -+0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22, -+0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb28,0xb28,0xc69,0xc69,0xb28,0xb28,0xb28,0xb28, -+0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xc69,0xb28,0xb28,0xb28, -+0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, -+0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, -+0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0x14df,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xced,0xced, - 0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, --0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0x16d1,0x16d1,0xb6a,0xb61,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb61,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb61,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb61,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb61,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, -+0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xcea,0xcea,0xd38,0xd38,0xd38,0xd38, -+0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xb55,0xb55,0xb55,0xb55, -+0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55, -+0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb58,0xb58,0xb58,0xb58, -+0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58, -+0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb58,0xb67,0xb67,0xb67,0xb67, -+0xb67,0xb5e,0xb6a,0xb70,0xb70,0xb70,0xb64,0xb64,0xb64,0xb6d,0xb61,0xb61,0xb61,0xb61,0xb61,0xb5b, -+0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb5b,0xb70,0xb70,0xb70,0xb70,0xb70,0xb64,0xb64,0xb64,0xb64, - 0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, -+0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb67,0xb67, -+0xb70,0xb70,0xb70,0xb64,0xb64,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb64,0xb64,0xb64,0xb64, - 0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, --0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, --0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb6a,0xb6a,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d, --0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d, --0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73, --0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73, --0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0x1aca,0x1aca,0x1aca,0x1aca,0x1aca, --0x1aca,0x1aca,0x1b96,0x1b96,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, -+0xb64,0xb64,0xb70,0xb70,0xb70,0xb70,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, -+0xb64,0xb64,0xb64,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, -+0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, -+0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0x16e3,0x16e3,0xb7c,0xb73,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb73,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb73,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb73,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb73,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb76,0xb76,0xb76,0xb76, - 0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, --0xb76,0xb76,0xb76,0xb76,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0, --0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbcd,0xbd0,0xbcd,0xbcd,0xbcd,0xbcd, --0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xccf,0xcd2,0xdbf,0xdbf,0xdbf, --0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xed6,0xed6,0xed6,0xed6,0xbdc,0xbdc,0xbdc,0xbdc, --0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xdc2,0xe76, --0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xfc6,0x1260,0x1260,0xdcb,0xdcb,0xdcb,0xdcb, --0xdcb,0xdd1,0xdce,0xee8,0xee8,0xee8,0xee8,0x13ce,0xfd8,0x13ce,0x131a,0x131a,0xc0f,0xc0f,0xc0f,0xc0f, --0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc3c,0xc39, --0xc3c,0xc39,0xc3c,0xc39,0x10e9,0x10e6,0xfde,0xfdb,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12, --0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15, --0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15, --0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc18,0xc18,0xc18,0xc1e,0xc1b,0xc42,0xc3f,0xc1e, --0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e, --0xc1b,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, --0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, --0xc18,0xc18,0xc18,0xc18,0xc1e,0xc1b,0xc1e,0xc1b,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, --0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, --0xc18,0xc18,0xc18,0xc18,0xc1e,0xc1b,0xc18,0xc18,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, --0xc21,0xc21,0xc21,0xc21,0xc27,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, --0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, --0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc27,0xc27,0xc27,0xc21,0xc21,0xc21,0xc21,0xc21, --0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, --0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc24,0xc21,0xc21,0xc21,0xc5a,0xc5a,0xc5a,0xc5a, --0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a, --0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xcd5,0xd41,0xdc2,0xdc2, --0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xe76,0xe76,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xed9,0xfc6, --0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0x1284,0x1284,0x1263,0xcf9,0xcf9,0xcf9,0xcf9, --0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9, --0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xd08,0xd08,0xd08,0xd08, --0xd08,0xd08,0xcff,0xcff,0xcff,0xcff,0xcff,0xcfc,0xd11,0xd11,0xd11,0xd0b,0xd11,0xd11,0xd11,0xd11, --0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd0b,0xd11,0xd11,0xd11,0xd11,0xd05,0xd05,0xd0e,0xd0e, --0xd0e,0xd0e,0xd02,0xd02,0xd02,0xd02,0xd02,0xd08,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7, --0xdd7,0xdd7,0xdd7,0xdd7,0xdd4,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xd11,0xd11,0xd11,0xd11, --0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd0b,0xd11,0xd11,0xd11,0xd11,0xd11, --0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd05,0xd05,0xd05,0xd08,0xd08,0xd08,0xd08, --0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08, --0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd14,0xd14,0xd14,0xd14, --0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda, --0xeeb,0xeeb,0xeeb,0xeeb,0xeeb,0xeeb,0xeeb,0x10f2,0x10f2,0xfe1,0xfe1,0xfe1,0xd17,0xd17,0xd17,0xd17, --0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17, --0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd1d,0xd1d,0xd1d,0xd1d, --0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d, --0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd26,0xd26,0xd26,0xd26, --0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, --0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd32,0xd32,0xd32,0xd32, --0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32, --0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd3e,0xd3e,0xd3e,0xd3e, --0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e, --0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xde0,0xde0,0xde0,0xde0, --0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0, --0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde6,0xde6,0xde6,0xde6, --0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6, --0xde6,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde6,0xde6,0xde6,0xde6, --0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6, --0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xea6,0xea6,0xdf8,0xdf8, --0xeee,0xeee,0xeee,0xeee,0xeee,0xeee,0xeee,0xfed,0xfed,0xfed,0xfed,0xfed,0xfea,0xfea,0xfea,0xfea, --0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xe07,0xe04,0xe07,0xe04, --0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04, --0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe13,0xe13,0xe13,0xe13, --0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13, --0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe19,0xe19,0xe19,0xe19, --0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0x1b0c,0xe16,0xe16,0xe16,0xe16, --0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16, --0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0x1b09,0xe19,0xe19,0xe19,0xe19, --0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, --0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xea0,0xea0,0xea0,0xea0, --0xea0,0xea0,0xea0,0xea0,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31, --0xe31,0xe31,0xe31,0xef1,0xef1,0xef1,0xef1,0xff0,0xff0,0xff0,0xff0,0xff0,0xe3a,0xe3a,0xe3a,0xe3a, --0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a, --0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe43,0xe43,0xe43,0xe43, --0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43, --0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe4c,0xe4c,0xe4c,0xe4c, -+0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -+0xb7c,0xb7c,0xb7c,0xb7c,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f, -+0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f, -+0xb7f,0xb7f,0xb7f,0xb7f,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85, -+0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85, -+0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0xb85,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1ba8,0x1ba8, -+0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -+0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -+0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2, -+0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbdf,0xbe2,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf, -+0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xce1,0xce4,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1,0xdd1, -+0xdd1,0xdd1,0xdd1,0xdd1,0xee8,0xee8,0xee8,0xee8,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee,0xbee, -+0xbee,0xbee,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xdd4,0xe88,0xdd4,0xdd4,0xdd4,0xdd4, -+0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xfd8,0x1272,0x1272,0xddd,0xddd,0xddd,0xddd,0xddd,0xde3,0xde0,0xefa, -+0xefa,0xefa,0xefa,0x13e0,0xfea,0x13e0,0x132c,0x132c,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, -+0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc4e,0xc4b,0xc4e,0xc4b,0xc4e,0xc4b, -+0x10fe,0x10fb,0xff0,0xfed,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24,0xc24, -+0xc24,0xc24,0xc24,0xc24,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27, -+0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27,0xc27, -+0xc27,0xc27,0xc27,0xc27,0xc2a,0xc2a,0xc2a,0xc30,0xc2d,0xc54,0xc51,0xc30,0xc2d,0xc30,0xc2d,0xc30, -+0xc2d,0xc30,0xc2d,0xc30,0xc2d,0xc30,0xc2d,0xc30,0xc2d,0xc30,0xc2d,0xc30,0xc2d,0xc2a,0xc2a,0xc2a, -+0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a, -+0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a, -+0xc30,0xc2d,0xc30,0xc2d,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a, -+0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a, -+0xc30,0xc2d,0xc2a,0xc2a,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33, -+0xc39,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33, -+0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33, -+0xc33,0xc33,0xc33,0xc33,0xc39,0xc39,0xc39,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33, -+0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33,0xc33, -+0xc33,0xc33,0xc33,0xc33,0xc36,0xc33,0xc33,0xc33,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c, -+0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c, -+0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xce7,0xd53,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4, -+0xdd4,0xdd4,0xe88,0xe88,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xdd4,0xeeb,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8, -+0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0x1296,0x1296,0x1275,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b, -+0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b, -+0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd0b,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd11,0xd11, -+0xd11,0xd11,0xd11,0xd0e,0xd23,0xd23,0xd23,0xd1d,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23, -+0xd23,0xd23,0xd23,0xd1d,0xd23,0xd23,0xd23,0xd23,0xd17,0xd17,0xd20,0xd20,0xd20,0xd20,0xd14,0xd14, -+0xd14,0xd14,0xd14,0xd1a,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9, -+0xde6,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23, -+0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd1d,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23, -+0xd23,0xd23,0xd23,0xd23,0xd23,0xd17,0xd17,0xd17,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, -+0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, -+0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, -+0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xdec,0xdec,0xdec,0xdec,0xdec,0xdec,0xefd,0xefd,0xefd,0xefd, -+0xefd,0xefd,0xefd,0x1107,0x1107,0xff3,0xff3,0xff3,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29, -+0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29, -+0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f, -+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f, -+0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38, -+0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38, -+0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44, -+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44, -+0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50, -+0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50, -+0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xd50,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2, -+0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2, -+0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf2,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8, -+0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf5,0xdf5,0xdf5, -+0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8, -+0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8, -+0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xeb8,0xeb8,0xe0a,0xe0a,0xf00,0xf00,0xf00,0xf00, -+0xf00,0xf00,0xf00,0xfff,0xfff,0x1002,0xfff,0xfff,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc, -+0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16, -+0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16, -+0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe19,0xe16,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25, -+0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25, -+0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b, -+0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0x1b1e,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28, -+0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0x1b1b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b, -+0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b, -+0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2,0xeb2, -+0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xf03, -+0xf03,0xf03,0xf03,0x1005,0x1005,0x1005,0x1005,0x1005,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c, - 0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c, --0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe46,0xe49,0xe49,0xe49,0xe49, --0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49, --0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe55,0xe55,0xe55,0xe55, --0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52, --0xe52,0xe52,0xe4f,0xe58,0xffc,0xff6,0x1005,0xff3,0xe55,0xe55,0xff3,0xff3,0xe67,0xe67,0xe5b,0xe67, --0xe67,0xe67,0xe5e,0xe67,0xe67,0xe67,0xe67,0xe5b,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, --0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe6a,0xe6a,0xe6a,0xe6a, --0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a, --0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe82,0xe82,0xe82,0xe82, --0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, --0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xea3,0xea3,0xea3,0xea3, --0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0x10fb,0x10fb,0x10fb,0x10fb, --0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0xed6,0xed6,0xed6,0xed3, --0xed3,0xed3,0xed3,0xed3,0x1134,0x1380,0x1380,0x1380,0x1380,0x1305,0x1305,0x1305,0x1383,0x1308,0x1308,0x1383, --0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x1785,0x1785,0x1785,0x1785,0x184b,0xeeb,0xeeb,0xeeb,0xeeb, --0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe4,0xfe4,0xfe4,0xfe4, --0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfea,0xfea,0xfea,0xfea, --0xfea,0xfea,0xfea,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df, --0x14df,0x14e2,0x1854,0x1854,0x18d5,0x1854,0x1bb4,0x178b,0x131d,0x113d,0xeee,0xeee,0xf0c,0xf0c,0xf0c,0xf0c, --0xf1e,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf27,0xf27,0xf2a,0xf27, --0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27, --0xf27,0xf27,0xf27,0xf27,0xf0f,0xf0c,0xf0c,0xf0c,0xf0c,0xf0c,0xf0c,0xf21,0xf0c,0xf21,0xf1e,0xf1e, --0xf33,0xf30,0xf33,0xf33,0xf33,0xf30,0xf30,0xf33,0xf30,0xf33,0xf30,0xf33,0xf30,0x1017,0x1017,0x1017, --0x1152,0x100e,0x1017,0x100e,0xf30,0xf33,0xf30,0xf30,0x100e,0x100e,0x100e,0x100e,0x1011,0x1014,0x1152,0x1152, --0xf36,0xf36,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, --0x1020,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, --0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c, --0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c, --0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b, --0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b, --0xf4b,0xf4b,0xf4b,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500, --0x1500,0x1500,0x1500,0x1500,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51, --0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51, --0xf51,0xf51,0xf51,0xf51,0xf99,0xfb1,0xfa8,0xfae,0xfae,0xfb1,0xfb1,0xfa8,0xfa8,0xfae,0xfae,0xfae, --0xfae,0xfae,0xfb1,0xfb1,0xfb1,0xf99,0xf99,0xf99,0xf99,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1, --0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xf99,0xfa8,0xfab,0xf99,0xf99,0xfae,0xfae,0xfae,0xfae,0xfae, --0xfae,0xf9c,0xfb1,0xfae,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0x111c,0x111c, --0x1119,0x1116,0xfa2,0xfa2,0xfc9,0xfc9,0xfc9,0xfc9,0x1284,0x1284,0x1263,0x1263,0x1263,0x1260,0x1260,0x1260, --0x1260,0x1263,0x1386,0x1263,0x1263,0x1263,0x1260,0x1263,0x1284,0x1260,0x1260,0x1260,0x1263,0x1263,0x1260,0x1260, --0x1263,0x1260,0x1260,0x1263,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe1,0xfe1,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4, --0xfe4,0x14d9,0x14d9,0x14d9,0x10f2,0xfe1,0xfe1,0xfe1,0xfe1,0x1290,0x126c,0x126c,0x126c,0x126c,0x14d9,0x14d9, --0x14d9,0x14d9,0x14d9,0x14d9,0x1002,0x1002,0xfff,0xff9,0xfff,0xff9,0xfff,0xff9,0xfff,0xff9,0xff6,0xff6, --0xff6,0xff6,0x100b,0x1008,0xff6,0x114f,0x13da,0x13dd,0x13dd,0x13da,0x13da,0x13da,0x13da,0x13da,0x13e0,0x13e0, --0x14f4,0x14e8,0x14e8,0x14e5,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x101d,0x101a,0x101a,0x1029, --0x1020,0x1329,0x1326,0x16da,0x1329,0x1326,0x13e9,0x13e6,0x14f7,0x14f7,0x14fd,0x14f7,0x14fd,0x14f7,0x14fd,0x14f7, --0x14fd,0x14f7,0x14fd,0x14f7,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, --0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, --0x1029,0x1020,0x1029,0x1020,0x1023,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1029,0x1020,0x1029, --0x1020,0x1029,0x1029,0x1020,0x102c,0x102c,0x1032,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, --0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, --0x1038,0x1038,0x1038,0x1038,0x1038,0x1032,0x102c,0x102c,0x102c,0x102c,0x1032,0x1032,0x102c,0x102c,0x1035,0x13f2, --0x13ef,0x13ef,0x1038,0x1038,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x13f5,0x13f5, --0x13f5,0x13f5,0x13f5,0x13f5,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d, -+0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55, -+0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55, -+0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e, -+0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e, -+0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe58,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, -+0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b, -+0xe5b,0xe5b,0xe5b,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, -+0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe61,0xe6a, -+0x1011,0x100b,0x101a,0x1008,0xe67,0xe67,0x1008,0x1008,0xe79,0xe79,0xe6d,0xe79,0xe79,0xe79,0xe70,0xe79, -+0xe79,0xe79,0xe79,0xe6d,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79, -+0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c, -+0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c, -+0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe7c,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94, -+0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94, -+0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xe94,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5, -+0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110, -+0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0x1110,0xee8,0xee8,0xee8,0xee5,0xee5,0xee5,0xee5,0xee5, -+0x1149,0x1392,0x1392,0x1392,0x1392,0x1317,0x1317,0x1317,0x1395,0x131a,0x131a,0x1395,0x14d6,0x14d6,0x14d6,0x14d6, -+0x14d6,0x14d6,0x14d6,0x1797,0x1797,0x1797,0x1797,0x185d,0xefd,0xefd,0xefd,0xefd,0xff3,0xff3,0xff3,0xff3, -+0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0xff6,0xff6,0xff6,0xff6,0xff6,0xff6,0xff6,0xff6, -+0xff6,0xff6,0xff6,0xff6,0xff6,0xff6,0xff6,0xff6,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0x14f1, -+0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f1,0x14f4,0x1866,0x1866, -+0x18e7,0x1866,0x1bc6,0x179d,0x132f,0x1152,0xf00,0xf00,0xf1e,0xf1e,0xf1e,0xf1e,0xf30,0xf39,0xf3c,0xf39, -+0xf3c,0xf39,0xf3c,0xf39,0xf3c,0xf39,0xf3c,0xf39,0xf39,0xf39,0xf3c,0xf39,0xf39,0xf39,0xf39,0xf39, -+0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39, -+0xf21,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf1e,0xf33,0xf1e,0xf33,0xf30,0xf30,0xf45,0xf42,0xf45,0xf45, -+0xf45,0xf42,0xf42,0xf45,0xf42,0xf45,0xf42,0xf45,0xf42,0x102c,0x102c,0x102c,0x1167,0x1023,0x102c,0x1023, -+0xf42,0xf45,0xf42,0xf42,0x1023,0x1023,0x1023,0x1023,0x1026,0x1029,0x1167,0x1167,0xf48,0xf48,0x103e,0x1035, -+0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x1035,0x1035,0x103e,0x1035, -+0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0xf4e,0xf4e,0xf4e,0xf4e, -+0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e, -+0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf5d,0xf5d,0xf5d,0xf5d, -+0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d, -+0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d,0x1512, -+0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512,0x1512, -+0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63, -+0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63,0xf63, -+0xfab,0xfc3,0xfba,0xfc0,0xfc0,0xfc3,0xfc3,0xfba,0xfba,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc3,0xfc3, -+0xfc3,0xfab,0xfab,0xfab,0xfab,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3,0xfc3, -+0xfc3,0xfc3,0xfab,0xfba,0xfbd,0xfab,0xfab,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfc0,0xfae,0xfc3,0xfc0, -+0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0x1131,0x1131,0x112e,0x112b,0xfb4,0xfb4, -+0xfdb,0xfdb,0xfdb,0xfdb,0x1296,0x1296,0x1275,0x1275,0x1275,0x1272,0x1272,0x1272,0x1272,0x1275,0x1398,0x1275, -+0x1275,0x1275,0x1272,0x1275,0x1296,0x1272,0x1272,0x1272,0x1275,0x1275,0x1272,0x1272,0x1275,0x1272,0x1272,0x1275, -+0xff6,0xff6,0xff6,0xff6,0xff6,0xff3,0xff3,0xff6,0xff6,0xff6,0xff6,0xff6,0xff6,0x14eb,0x14eb,0x14eb, -+0x1107,0xff3,0xff3,0xff3,0xff3,0x12a2,0x127e,0x127e,0x127e,0x127e,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb, -+0x1017,0x1017,0x1014,0x100e,0x1014,0x100e,0x1014,0x100e,0x1014,0x100e,0x100b,0x100b,0x100b,0x100b,0x1020,0x101d, -+0x100b,0x1164,0x13ec,0x13ef,0x13ef,0x13ec,0x13ec,0x13ec,0x13ec,0x13ec,0x13f2,0x13f2,0x1506,0x14fa,0x14fa,0x14f7, -+0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x1032,0x102f,0x102f,0x103e,0x1035,0x133b,0x1338,0x16ec, -+0x133b,0x1338,0x13fb,0x13f8,0x1509,0x1509,0x150f,0x1509,0x150f,0x1509,0x150f,0x1509,0x150f,0x1509,0x150f,0x1509, -+0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035, -+0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x1035, -+0x1038,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x103e,0x1035,0x103e,0x1035,0x103e,0x103e,0x1035, -+0x1041,0x1041,0x1047,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d, - 0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d, --0x104d,0x104d,0x104d,0x104d,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056, --0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1059,0x1059,0x1059,0x105c, --0x1059,0x1059,0x105f,0x105f,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062, -+0x104d,0x1047,0x1041,0x1041,0x1041,0x1041,0x1047,0x1047,0x1041,0x1041,0x104a,0x1404,0x1401,0x1401,0x104d,0x104d, -+0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x1044,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407, -+0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062, - 0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062, --0x1062,0x1062,0x1062,0x1062,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b, --0x106e,0x1065,0x1074,0x1071,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b, - 0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b, --0x106b,0x106b,0x106b,0x106b,0x132f,0x132c,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080, --0x1086,0x1080,0x1083,0x1104,0x1077,0x1077,0x1077,0x107d,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8, --0x107a,0x107a,0x107d,0x1089,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080, --0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080, --0x1086,0x1080,0x1086,0x1080,0x150c,0x1509,0x150c,0x1509,0x150f,0x150f,0x16e3,0x13f8,0x1092,0x1092,0x1095,0x1095, --0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095, --0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1092,0x1092,0x1092,0x1092, --0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x109b,0x109b, --0x109b,0x109b,0x109b,0x109e,0x109e,0x109e,0x10f8,0x10a7,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6, --0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1, --0x10a1,0x10a1,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4, --0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, --0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, --0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, --0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, --0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10e0,0x10e0,0x10e0,0x10e0,0x10f5,0x10e0,0x10e0,0x10e0, --0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0, --0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, --0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, --0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10ef,0x10ef,0x10ef,0x10ef,0x128a,0x128a,0x128a,0x128a, --0x128a,0x128a,0x128a,0x128a,0x1482,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x18b4,0x18b4, --0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164, --0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x115b,0x115b, --0x115e,0x115e,0x1164,0x115b,0x115b,0x115b,0x115b,0x115b,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, --0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, --0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185, --0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185, --0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, --0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, --0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x118e,0x1194,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, --0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, --0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, --0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x12d5,0x11ac,0x12d8,0x11ac,0x11ac,0x11ac,0x11ac, --0x11a9,0x11a9,0x11a9,0x11ac,0x16e6,0x16e9,0x1911,0x190e,0x11af,0x11af,0x11af,0x11be,0x11c4,0x11c4,0x11c4,0x11c4, --0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, --0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11b2,0x11be,0x11be,0x11af,0x11af, --0x11af,0x11af,0x11be,0x11be,0x11af,0x11af,0x11be,0x11be,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0, --0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d3,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11ca, --0x11ca,0x11ca,0x11d0,0x11cd,0x1515,0x1518,0x151b,0x151b,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2, --0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11d6,0x11e2,0x11d6,0x11d6,0x11d6,0x11eb,0x11eb,0x11d6, --0x11d6,0x11eb,0x11e2,0x11eb,0x11eb,0x11e2,0x11d6,0x11d9,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2, --0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2, --0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd, --0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd, --0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215, --0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215, --0x1215,0x1215,0x1215,0x1215,0x1215,0x1212,0x1212,0x1212,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e, --0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e, --0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d, --0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d, --0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x1233,0x1233,0x1242,0x1245,0x1245,0x1245,0x1245,0x1245, --0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245, --0x1245,0x1245,0x1248,0x1245,0x1248,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245, --0x1245,0x1245,0x1245,0x1248,0x1245,0x1245,0x1245,0x1245,0x1242,0x1242,0x1242,0x1236,0x1236,0x1236,0x1236,0x1242, --0x1242,0x123c,0x1239,0x123f,0x123f,0x124e,0x124b,0x124b,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, --0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, --0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1257,0x1257,0x1257,0x1254,0x1254,0x1254,0x1251,0x1251, --0x1251,0x1251,0x1254,0x1251,0x1251,0x1251,0x1257,0x1254,0x1257,0x1254,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, --0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, --0x1251,0x1251,0x1251,0x1251,0x1251,0x1257,0x1254,0x1254,0x1251,0x1251,0x1251,0x1251,0x1272,0x1272,0x1272,0x1272, --0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1275,0x1275,0x1275,0x125a,0x1917,0x137d,0x127e,0x137d,0x137d, --0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x127e,0x137d,0x127e,0x1263,0x1263,0x130b,0x1260, --0x130b,0x130b,0x130b,0x130b,0x1260,0x1260,0x1284,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1263,0x1284,0x1284, --0x1263,0x1284,0x1260,0x1263,0x1263,0x1266,0x1284,0x1260,0x1260,0x1284,0x1263,0x1263,0x137a,0x137a,0x137a,0x137a, --0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x126f,0x126f,0x126f,0x126f,0x1392,0x1374,0x1278,0x1392,0x1392,0x1392, --0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1815,0x1815,0x1815,0x1815,0x1815,0x1272,0x1272,0x1272,0x1272, --0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x151e,0x151e,0x1a64,0x1a64,0x1a64,0x1272,0x1272,0x1272,0x1272, --0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x137d,0x137d,0x127e,0x137d, --0x137d,0x137d,0x127e,0x137d,0x137d,0x137d,0x1278,0x1278,0x1278,0x1278,0x1278,0x1377,0x137a,0x137a,0x137a,0x137a, --0x137a,0x137a,0x137a,0x127b,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x127b,0x137a,0x137a,0x137a,0x137a, --0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x13fb,0x13fb,0x19c2,0x1a64,0x1a64,0x1a64,0x137a,0x137a,0x137a,0x137a, --0x137a,0x137a,0x137a,0x137a,0x137a,0x127b,0x137a,0x127b,0x127b,0x137a,0x137a,0x127b,0x129f,0x129f,0x129f,0x129f, --0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f, --0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x1329,0x1326,0x1329,0x1326, --0x1329,0x1326,0x1329,0x1326,0x1329,0x1326,0x13e9,0x14fd,0x14fd,0x14fd,0x1791,0x1905,0x14fd,0x14fd,0x16dd,0x16dd, --0x16dd,0x16d7,0x16dd,0x16d7,0x1908,0x1905,0x19bf,0x19bc,0x19bf,0x19bc,0x19bf,0x19bc,0x134d,0x134d,0x134d,0x134d, --0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d, --0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x1362,0x1353,0x1362,0x1365, --0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365, --0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1353,0x1353,0x1353,0x1353, --0x1353,0x1353,0x1353,0x1353,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, --0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, --0x136b,0x136b,0x136b,0x136b,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371, --0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371, --0x1371,0x1371,0x1371,0x1371,0x139b,0x1398,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, --0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, --0x18ba,0x18ba,0x18ba,0x18ba,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a1,0x13a4,0x13a4,0x13a4,0x13a1,0x13a4,0x13a1,0x13a4,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a1,0x13a4,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1, --0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x1527,0x1527, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x1767,0x1767,0x1767, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x1767,0x1767,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x1527,0x1527,0x152a,0x152a,0x13a4,0x13a4,0x13a7,0x13a7,0x13a7,0x1692,0x13a4,0x13a7, --0x13a4,0x13a4,0x13a7,0x152d,0x152d,0x152a,0x152a,0x1767,0x1767,0x1767,0x1767,0x1767,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x152a,0x1692,0x152a,0x152a,0x152a, --0x1767,0x1767,0x1767,0x176a,0x176a,0x176a,0x176a,0x176a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x13a4,0x152a,0x13a7,0x13a7,0x13a4,0x13a4,0x13a7,0x13a7, --0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, --0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a4,0x13a4,0x13a4, --0x13a7,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a7,0x13a7,0x13a4,0x13a7,0x13a7,0x13a7,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a7,0x13a4,0x13a7,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x1692,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x1767,0x13fe,0x13fe,0x13fe,0x13fe,0x1527,0x1527,0x1527,0x1527, --0x1527,0x1527,0x152a,0x1767,0x1767,0x1767,0x1767,0x16ec,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, --0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x152d,0x152d,0x152a,0x152a,0x152a,0x152a,0x181e,0x152a,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, --0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x152a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x1488,0x13aa,0x13aa,0x13aa, --0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x1488,0x13aa,0x13aa, --0x13aa,0x1488,0x13aa,0x1488,0x13aa,0x1488,0x13aa,0x1488,0x13aa,0x13aa,0x13aa,0x1488,0x13aa,0x13aa,0x13aa,0x13aa, --0x13aa,0x13aa,0x1488,0x1488,0x13aa,0x13aa,0x13aa,0x13aa,0x1488,0x13aa,0x1488,0x1488,0x13aa,0x13aa,0x13aa,0x13aa, --0x1488,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x1698,0x1698,0x176d, --0x176d,0x13ad,0x13ad,0x13ad,0x13aa,0x13aa,0x13aa,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x1617,0x1617,0x1617,0x1617, --0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x13b0,0x13b0,0x13b0,0x13b0, --0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0, --0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b3, --0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0, --0x13b3,0x13b3,0x13b3,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b6,0x13b6,0x13b6,0x13b6, -+0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106e,0x106e,0x106e,0x1071,0x106e,0x106e,0x1074,0x1074, -+0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077, -+0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077,0x1077, -+0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1083,0x107a,0x1089,0x1086, -+0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080, -+0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080,0x1080, -+0x1341,0x133e,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x1098,0x1119, -+0x108c,0x108c,0x108c,0x1092,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x108f,0x108f,0x1092,0x109e, -+0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095, -+0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095,0x109b,0x1095, -+0x151e,0x151b,0x151e,0x151b,0x1521,0x1521,0x16f5,0x140a,0x10a7,0x10a7,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa, -+0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa, -+0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7,0x10a7, -+0x10a7,0x10a7,0x10a7,0x10a7,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b3, -+0x10b3,0x10b3,0x110d,0x10bc,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb, -+0x10cb,0x10cb,0x10cb,0x10cb,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b9,0x10b9, -+0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9, -+0x10b9,0x10b9,0x10b9,0x10b9,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da, -+0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da,0x10da, -+0x10da,0x10da,0x10da,0x10da,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec, -+0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec,0x10ec, -+0x10ec,0x10ec,0x10ec,0x10ec,0x10f5,0x10f5,0x10f5,0x10f5,0x110a,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5, -+0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5,0x10f5, -+0x10f5,0x10f5,0x10f5,0x10f5,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8, -+0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8, -+0x10f8,0x10f8,0x10f8,0x10f8,0x1104,0x1104,0x1104,0x1104,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c,0x129c, -+0x1494,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6, -+0x18c6,0x18c6,0x18c6,0x18c6,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179, -+0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1170,0x1170,0x1173,0x1173,0x1179,0x1170, -+0x1170,0x1170,0x1170,0x1170,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f, -+0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f,0x117f, -+0x117f,0x117f,0x117f,0x117f,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a, -+0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a,0x119a, -+0x119a,0x119a,0x119a,0x119a,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, -+0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, -+0x11a6,0x11a6,0x11a3,0x11a9,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5, -+0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5, -+0x11b5,0x11b5,0x11b5,0x11b5,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb, -+0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x12e7,0x11c1,0x12ea,0x11c1,0x11c1,0x11c1,0x11c1,0x11be,0x11be,0x11be,0x11c1, -+0x16f8,0x16fb,0x1923,0x1920,0x11c4,0x11c4,0x11c4,0x11d3,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9, -+0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9, -+0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11d9,0x11c7,0x11d3,0x11d3,0x11c4,0x11c4,0x11c4,0x11c4,0x11d3,0x11d3, -+0x11c4,0x11c4,0x11d3,0x11d3,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5, -+0x11e5,0x11e5,0x11e5,0x11e5,0x11e8,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11e5,0x11df,0x11df,0x11df,0x11e5,0x11e2, -+0x1527,0x152a,0x152d,0x152d,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7, -+0x11f7,0x11f7,0x11f7,0x11f7,0x11eb,0x11f7,0x11eb,0x11eb,0x11eb,0x1200,0x1200,0x11eb,0x11eb,0x1200,0x11f7,0x1200, -+0x1200,0x11f7,0x11eb,0x11ee,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7, -+0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7,0x11f7, -+0x11f7,0x11f7,0x11f7,0x11f7,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212, -+0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212, -+0x1212,0x1212,0x1212,0x1212,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, -+0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, -+0x122a,0x1227,0x1227,0x1227,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233, -+0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233,0x1233, -+0x1233,0x1233,0x1233,0x1233,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242, -+0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242, -+0x1242,0x1242,0x1242,0x1242,0x1248,0x1248,0x1254,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257, -+0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x125a,0x1257, -+0x125a,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x1257,0x125a, -+0x1257,0x1257,0x1257,0x1257,0x1254,0x1254,0x1254,0x1248,0x1248,0x1248,0x1248,0x1254,0x1254,0x124e,0x124b,0x1251, -+0x1251,0x1260,0x125d,0x125d,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263, -+0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263, -+0x1263,0x1263,0x1263,0x1263,0x1269,0x1269,0x1269,0x1266,0x1266,0x1266,0x1263,0x1263,0x1263,0x1263,0x1266,0x1263, -+0x1263,0x1263,0x1269,0x1266,0x1269,0x1266,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263, -+0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263, -+0x1263,0x1269,0x1266,0x1266,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263, -+0x1263,0x1263,0x1263,0x1bcf,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f8,0x19f2,0x1be1,0x1be1,0x1be1, -+0x1be4,0x1bde,0x1be4,0x1bde,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1287, -+0x1287,0x1287,0x126c,0x1929,0x138f,0x1290,0x138f,0x138f,0x138f,0x138f,0x138f,0x138f,0x138f,0x138f,0x138f,0x138f, -+0x138f,0x1290,0x138f,0x1290,0x1275,0x1275,0x131d,0x1272,0x131d,0x131d,0x131d,0x131d,0x1272,0x1272,0x1296,0x1272, -+0x1272,0x1272,0x1272,0x1272,0x1272,0x1275,0x1296,0x1296,0x1275,0x1296,0x1272,0x1275,0x1275,0x1278,0x1296,0x1272, -+0x1272,0x1296,0x1275,0x1275,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x1281,0x1281, -+0x1281,0x1281,0x13a4,0x1386,0x128a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x1827, -+0x1827,0x1827,0x1827,0x1827,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1530, -+0x1530,0x1a76,0x1a76,0x1a76,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284,0x1284, -+0x1284,0x1284,0x1284,0x1284,0x138f,0x138f,0x1290,0x138f,0x138f,0x138f,0x1290,0x138f,0x138f,0x138f,0x128a,0x128a, -+0x128a,0x128a,0x128a,0x1389,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x128d,0x138c,0x138c,0x138c,0x138c, -+0x138c,0x138c,0x138c,0x128d,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x140d,0x140d, -+0x19d4,0x1a76,0x1a76,0x1a76,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x128d,0x138c,0x128d, -+0x128d,0x138c,0x138c,0x128d,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1, -+0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1,0x12b1, -+0x12b1,0x12b1,0x12b1,0x12b1,0x133b,0x1338,0x133b,0x1338,0x133b,0x1338,0x133b,0x1338,0x133b,0x1338,0x13fb,0x150f, -+0x150f,0x150f,0x17a3,0x1917,0x150f,0x150f,0x16ef,0x16ef,0x16ef,0x16e9,0x16ef,0x16e9,0x191a,0x1917,0x19d1,0x19ce, -+0x19d1,0x19ce,0x19d1,0x19ce,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f, -+0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f, -+0x135f,0x135f,0x135f,0x135f,0x1374,0x1365,0x1374,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377, -+0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377,0x1377, -+0x1377,0x1377,0x1377,0x1377,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x137d,0x137d,0x137d,0x137d, -+0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d, -+0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x1383,0x1383,0x1383,0x1383, -+0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383, -+0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x1383,0x13ad,0x13aa,0x18cc,0x18cc, -+0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc, -+0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b3,0x13b3,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b3,0x13b6,0x13b6,0x13b6,0x13b3,0x13b6,0x13b3,0x13b6, -+0x13b3,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b9,0x13b6,0x13b6,0x13b6,0x13b6,0x13b3,0x13b6,0x13b3,0x13b3,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b3,0x13b3,0x13b3,0x13b3, -+0x13b3,0x13b3,0x13b3,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3, -+0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x1539,0x1539,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -+0x153c,0x153c,0x153c,0x153c,0x153c,0x1779,0x1779,0x1779,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x153c,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x153c,0x1779,0x1779, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b9,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x1539,0x1539,0x153c,0x153c, -+0x13b6,0x13b6,0x13b9,0x13b9,0x13b9,0x16a4,0x13b6,0x13b9,0x13b6,0x13b6,0x13b9,0x153f,0x153f,0x153c,0x153c,0x1779, -+0x1779,0x1779,0x1779,0x1779,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x153c,0x153c,0x153c,0x16a4,0x153c,0x153c,0x153c,0x1779,0x1779,0x1779,0x177c,0x177c,0x177c,0x177c,0x177c, - 0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, --0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x179a,0x179a,0x1797,0x16ef, --0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1404,0x1404,0x1404,0x1404, --0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1533,0x1407,0x1536,0x1407,0x1407, --0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x16f2, --0x16f2,0x1b39,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x1a67,0x1a67,0x1410,0x1410,0x1410,0x1422, --0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422, --0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x143d,0x143d,0x143d,0x143d, --0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d, --0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x1443,0x1443,0x1443,0x1443, --0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443, --0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x19c8,0x1446,0x1446,0x1446,0x1446, --0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446, --0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x144c,0x144c,0x1458,0x145e, --0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e, --0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x1458, --0x1458,0x1458,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x1458,0x145b,0x145e,0x1461,0x1461, --0x145e,0x1464,0x1464,0x144f,0x1452,0x16f8,0x16fb,0x16fb,0x16fb,0x153c,0x1a70,0x1a6d,0x1455,0x1455,0x1455,0x1455, --0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1539,0x1701,0x1704,0x16fe,0x1707,0x1707,0x147f,0x147f,0x147f,0x147f, --0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f, --0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x14d9,0x14d9,0x14d9,0x14d9, --0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, --0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x18ed,0x18ed,0x18ed,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, --0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x19b6,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x1851,0x18ed, --0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, --0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152d,0x152a,0x152a,0x152a,0x152a,0x1695,0x1695,0x152a, --0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x181b,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, --0x152a,0x152a,0x152a,0x152a,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, --0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, --0x154b,0x154b,0x154b,0x154b,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x153c, -+0x13b6,0x153c,0x13b9,0x13b9,0x13b6,0x13b6,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9, -+0x13b9,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9, -+0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b6,0x13b6,0x13b6,0x13b9,0x13b6,0x13b6,0x13b6,0x13b6,0x13b9,0x13b9,0x13b9, -+0x13b6,0x13b9,0x13b9,0x13b9,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b9,0x13b6,0x13b9,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x16a4,0x13b6,0x13b6,0x13b6,0x13b6,0x153c,0x153c,0x1779, -+0x1410,0x1410,0x1410,0x1410,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x153c,0x1779,0x1779,0x1779,0x1779,0x16fe, -+0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, -+0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153f,0x153f,0x153c,0x153c, -+0x153c,0x153c,0x1830,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -+0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x153c,0x13b6, -+0x13b6,0x13b6,0x13b6,0x13b6,0x149a,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc, -+0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x149a,0x13bc,0x13bc,0x13bc,0x149a,0x13bc,0x149a,0x13bc,0x149a,0x13bc,0x149a, -+0x13bc,0x13bc,0x13bc,0x149a,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x149a,0x149a,0x13bc,0x13bc,0x13bc,0x13bc, -+0x149a,0x13bc,0x149a,0x149a,0x13bc,0x13bc,0x13bc,0x13bc,0x149a,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x13bc, -+0x13bc,0x13bc,0x13bc,0x13bc,0x13bc,0x16aa,0x16aa,0x177f,0x177f,0x13bf,0x13bf,0x13bf,0x13bc,0x13bc,0x13bc,0x13bf, -+0x13bf,0x13bf,0x13bf,0x13bf,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629, -+0x1629,0x1629,0x1629,0x1629,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2, -+0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2, -+0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c5,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2, -+0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2,0x13c5,0x13c5,0x13c5,0x13c2,0x13c2,0x13c2,0x13c2,0x13c2, -+0x13c2,0x13c2,0x13c2,0x13c2,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8, -+0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8, -+0x13c8,0x13c8,0x13c8,0x13c8,0x17ac,0x17ac,0x17a9,0x1701,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1413,0x1413, -+0x1413,0x1413,0x1413,0x1413,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416, -+0x1416,0x1416,0x1416,0x1545,0x1419,0x1548,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419,0x1419, -+0x1419,0x1548,0x1548,0x1548,0x1548,0x1548,0x1548,0x1704,0x1704,0x1b4b,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2, -+0x17b2,0x17b2,0x1a79,0x1a79,0x1422,0x1422,0x1422,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, -+0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434,0x1434, -+0x1434,0x1434,0x1434,0x1434,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f, -+0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f,0x144f, -+0x144f,0x144f,0x144f,0x144f,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455, -+0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455, -+0x1455,0x1455,0x1455,0x19da,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458, -+0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458, -+0x1458,0x1458,0x1458,0x1458,0x145e,0x145e,0x146a,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470, -+0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470, -+0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x146a,0x146a,0x146a,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e, -+0x145e,0x145e,0x145e,0x146a,0x146d,0x1470,0x1473,0x1473,0x1470,0x1476,0x1476,0x1461,0x1464,0x170a,0x170d,0x170d, -+0x170d,0x154e,0x1a82,0x1a7f,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x154b,0x1713, -+0x1716,0x1710,0x1719,0x1719,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491, -+0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491, -+0x1491,0x1491,0x1491,0x1491,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb, -+0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x18ff,0x18ff, -+0x18ff,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x19c8,0x14eb,0x14eb, -+0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x14eb,0x1863,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff, -+0x18ff,0x18ff,0x18ff,0x18ff,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -+0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539,0x1539, -+0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -+0x153f,0x153c,0x153c,0x153c,0x153c,0x16a7,0x16a7,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -+0x182d,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -+0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x155d,0x155d,0x155d,0x155d, - 0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, --0x155d,0x155d,0x155d,0x155d,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, --0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, --0x1563,0x1563,0x1563,0x1563,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566, --0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566, --0x1566,0x1566,0x1566,0x1566,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, --0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, --0x15a5,0x15a5,0x15a5,0x1596,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae, --0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15a8, --0x15b1,0x15b1,0x15b1,0x15b1,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, --0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, --0x15b4,0x15b4,0x15b4,0x15b4,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15c6,0x15cf,0x15cf,0x15cf, --0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf, --0x15cf,0x15cf,0x15cf,0x15cf,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8, --0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8, --0x15d8,0x15d8,0x15d8,0x15d8,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea, --0x15ea,0x15ea,0x15ea,0x15ea,0x15e7,0x15e7,0x15e7,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15e7, --0x15e7,0x15db,0x15e7,0x15de,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea, -+0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x156f,0x156f,0x156f,0x156f, -+0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f, -+0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x156f,0x1575,0x1575,0x1575,0x1575, -+0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575, -+0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1575,0x1578,0x1578,0x1578,0x1578, -+0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578, -+0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x15a2,0x15a2,0x15a2,0x15a2, -+0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x15a2,0x159c,0x159c,0x159c,0x1590,0x1590,0x1590,0x159c,0x159c, -+0x1590,0x159f,0x1593,0x1590,0x15a5,0x15a5,0x1599,0x15a5,0x15a5,0x1596,0x17b5,0x1bdb,0x15b7,0x15b7,0x15b7,0x15b7, -+0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7, -+0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15b7,0x15a8,0x15c0,0x15c0,0x15c0,0x15c0, -+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, -+0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15ba,0x15c3,0x15c3,0x15c3,0x15c3,0x15c6,0x15c6,0x15c6,0x15c6, -+0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6, -+0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6,0x15e1,0x15e1,0x15e1,0x15e1, -+0x15e1,0x15e1,0x15e1,0x15e1,0x15d8,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1, -+0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15e1,0x15ea,0x15ea,0x15ea,0x15ea, - 0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea, --0x15ea,0x15ea,0x15ea,0x15ea,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e, --0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e, --0x160e,0x160b,0x160b,0x160b,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617, --0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x161d,0x161d,0x161d,0x161a,0x161a,0x161a, --0x1617,0x1617,0x1617,0x1617,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, --0x162c,0x162c,0x162c,0x162c,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1632,0x1632,0x1626,0x1623,0x1623, --0x1623,0x1623,0x1623,0x1623,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, --0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, --0x162c,0x162c,0x162c,0x162c,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638, --0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1635,0x1635,0x1635,0x1635,0x1635, --0x1635,0x1635,0x1635,0x1635,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b, --0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b, --0x163b,0x163b,0x163b,0x163b,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f, --0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f, --0x165f,0x165f,0x165f,0x165f,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, --0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, --0x1668,0x1668,0x1668,0x1668,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680, --0x1680,0x1680,0x1680,0x1680,0x166b,0x167a,0x167a,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x167a,0x166b,0x167d, --0x167d,0x166b,0x167d,0x166b,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680, --0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680, --0x1680,0x1680,0x1680,0x1680,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689, --0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689, --0x1689,0x1689,0x1689,0x1689,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f, --0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f, --0x168f,0x168f,0x168f,0x168f,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed, --0x16d4,0x16d4,0x16d4,0x16d4,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed, --0x18ed,0x18ed,0x18ed,0x19b6,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, --0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, --0x16f5,0x16f5,0x16f5,0x16f5,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734, --0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734, --0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x173a,0x1737,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734, --0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, --0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, --0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740, --0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740, --0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, -+0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15fc,0x15fc,0x15fc,0x15fc, -+0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15f9,0x15f9,0x15f9,0x15ed, -+0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15ed,0x15f9,0x15f9,0x15ed,0x15f9,0x15f0,0x15fc,0x15fc,0x15fc,0x15fc, -+0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc, -+0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x1620,0x1620,0x1620,0x1620, -+0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620, -+0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x161d,0x161d,0x161d,0x1629,0x1629,0x1629,0x1629, -+0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629, -+0x1629,0x1629,0x162f,0x162f,0x162f,0x162c,0x162c,0x162c,0x1629,0x1629,0x1629,0x1629,0x163e,0x163e,0x163e,0x163e, -+0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x1632,0x1632,0x1632,0x1632, -+0x1632,0x1632,0x1632,0x1644,0x1644,0x1638,0x1635,0x1635,0x1635,0x1635,0x1635,0x1635,0x163e,0x163e,0x163e,0x163e, -+0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e, -+0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x164a,0x164a,0x164a,0x164a, -+0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a, -+0x164a,0x164a,0x164a,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x164d,0x164d,0x164d,0x164d, -+0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d, -+0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x164d,0x1671,0x1671,0x1671,0x1671, -+0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671, -+0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x1671,0x167a,0x167a,0x167a,0x167a, -+0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a, -+0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x167a,0x1692,0x1692,0x1692,0x1692, -+0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x167d,0x168c,0x168c,0x167d, -+0x167d,0x167d,0x167d,0x167d,0x167d,0x168c,0x167d,0x168f,0x168f,0x167d,0x168f,0x167d,0x1692,0x1692,0x1692,0x1692, -+0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692, -+0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x1692,0x169b,0x169b,0x169b,0x169b, -+0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b, -+0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x16a1,0x16a1,0x16a1,0x16a1, -+0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1, -+0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x18ff,0x18ff,0x18ff,0x18ff, -+0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x16e6,0x16e6,0x16e6,0x16e6,0x18ff,0x18ff,0x18ff,0x18ff, -+0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x19c8,0x1707,0x1707,0x1707,0x1707, -+0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707, -+0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1707,0x1746,0x1746,0x1746,0x1746, -+0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746, -+0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x174c,0x1749, -+0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746, -+0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f, -+0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f, - 0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, --0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, --0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, --0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, --0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, --0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x175b,0x175b,0x175b,0x175b,0x1758, --0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x175b,0x175b,0x175b, --0x175b,0x175b,0x175b,0x175b,0x175b,0x1758,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b, --0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b, --0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773, --0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773, --0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d, --0x185d,0x185d,0x185d,0x185d,0x1ad3,0x1a28,0x1a28,0x1a2b,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776, --0x1779,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x18c3,0x1776,0x1776,0x1776,0x1776,0x1776,0x1824,0x1824,0x1824, --0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0, --0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x1776,0x19a1,0x19a1,0x1a28,0x1a28,0x1a28,0x1a28,0x1a28, --0x1a28,0x1a28,0x1a28,0x1ad0,0x1ba2,0x1a2b,0x1a2b,0x1a2b,0x18c0,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3, --0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c0,0x18c0,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67, --0x1b39,0x1b3c,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x191a,0x179d,0x179d,0x179d,0x179d, --0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1827,0x1824, --0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x1827,0x18c3,0x18c3,0x1827,0x1827,0x1827,0x1827,0x1827, --0x1827,0x1827,0x1824,0x17a6,0x1827,0x1827,0x1827,0x1a28,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x17a6,0x1824, --0x1824,0x1824,0x1824,0x1824,0x18c0,0x19a1,0x19a1,0x19a1,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, --0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x18c0,0x17bb,0x17bb,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8, --0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8, --0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, --0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, --0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809, --0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1806,0x1806,0x1806, --0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809, --0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809, --0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, --0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, --0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830, --0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830, --0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc, --0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1887,0x1887,0x1887,0x1887,0x19da,0x19da,0x188a,0x188a, --0x188a,0x188a,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1884, --0x1875,0x1878,0x187b,0x188d,0x188d,0x192c,0x187e,0x187e,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887, --0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887, --0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8, --0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x1893,0x1899,0x1896,0x1896,0x1896, --0x1896,0x18a5,0x18ab,0x1896,0x1896,0x1896,0x1896,0x18a2,0x18a8,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896, --0x1896,0x1896,0x1896,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8, --0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4, --0x18b4,0x18b4,0x18b4,0x199b,0x199b,0x199b,0x199b,0x199b,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7, --0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1b93,0x1b93,0x1b93,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, -+0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, -+0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764, -+0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764, -+0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -+0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767,0x1767, -+0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a, -+0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a, -+0x176a,0x176a,0x176a,0x176d,0x176d,0x176d,0x176d,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a,0x176a, -+0x176a,0x176a,0x176a,0x176a,0x176a,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176a,0x176d,0x176d, -+0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d, -+0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d,0x176d, -+0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785, -+0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785, -+0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x186f,0x1ae5,0x1a3a,0x1a3a,0x1a3d, -+0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x1788,0x178b,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x18d5, -+0x1788,0x1788,0x1788,0x1788,0x1788,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836, -+0x1836,0x1836,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3, -+0x1788,0x19b3,0x19b3,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1ae2,0x1bb4,0x1a3d,0x1a3d,0x1a3d, -+0x18d2,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d2,0x18d2, -+0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1b4b,0x1b4e,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48, -+0x1b48,0x1b48,0x1b48,0x192c,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af, -+0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1839,0x1836,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2, -+0x1839,0x18d5,0x18d5,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1839,0x1836,0x17b8,0x1839,0x1839,0x1839,0x1a3a, -+0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x17b8,0x1836,0x1836,0x1836,0x1836,0x1836,0x18d2,0x19b3,0x19b3,0x19b3, -+0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x18d2, -+0x17cd,0x17cd,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca, -+0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca,0x17ca, -+0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd, -+0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd, -+0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b, -+0x181b,0x181b,0x181b,0x181b,0x181b,0x1818,0x1818,0x1818,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803, -+0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b, -+0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b,0x181b, -+0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, -+0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f,0x183f, -+0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842, -+0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842, -+0x1842,0x1842,0x1842,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee,0x1aee, -+0x1899,0x1899,0x1899,0x1899,0x19ec,0x19ec,0x189c,0x189c,0x189c,0x189c,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884, -+0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1884,0x1896,0x1887,0x188a,0x188d,0x189f,0x189f,0x193e,0x1890,0x1890, -+0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899, -+0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899, -+0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, -+0x18ba,0x18ba,0x18ba,0x18a5,0x18ab,0x18a8,0x18a8,0x18a8,0x18a8,0x18b7,0x18bd,0x18a8,0x18a8,0x18a8,0x18a8,0x18b4, -+0x18ba,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, - 0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, --0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0, --0x18c0,0x18c0,0x18c0,0x18c0,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x1a28,0x1ad0,0x19a1,0x19a1,0x19a1,0x19a1,0x1ad3, --0x1ad0,0x1ba2,0x19a1,0x1a28,0x19a1,0x19a1,0x19a1,0x19a1,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x19a1, --0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1, --0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9, --0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9, --0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc, -+0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad, -+0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ad9,0x1ba5,0x1ba5,0x1ba5, - 0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc, --0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x1ba5,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, --0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, --0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941, --0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941, --0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c, --0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c, --0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962, --0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962, --0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d, --0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d, --0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980, --0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980, --0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989, --0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989, --0x1989,0x1989,0x1989,0x1989,0x1989,0x1986,0x1986,0x1986,0x19a1,0x19a1,0x19a1,0x1ad0,0x1ad0,0x1a28,0x1a28,0x1a28, --0x1a28,0x1a28,0x1a28,0x1ad0,0x1ad0,0x1ad0,0x1a28,0x1a28,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a4,0x19a4,0x19a1, --0x19a4,0x19a4,0x1a28,0x1a2b,0x1a28,0x1a28,0x1a28,0x1a28,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd, --0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd, --0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04, --0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04, --0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d, --0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a43,0x1a43,0x1a0d,0x1a43,0x1a0d,0x1a0d,0x1a0d,0x1a0d, --0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a13,0x1a13,0x1a13,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f, -+0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc, -+0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x19b3,0x19b3,0x19b3,0x19b3, -+0x19b3,0x1a3a,0x1ae2,0x19b3,0x19b3,0x19b3,0x19b3,0x1ae5,0x1ae2,0x1bb4,0x19b3,0x1a3a,0x19b3,0x19b3,0x19b3,0x19b3, -+0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3, -+0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3, -+0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db, -+0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db, -+0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de, -+0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x18de,0x1bb7, -+0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1, -+0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1,0x18e1, -+0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953, -+0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953, -+0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e, -+0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e, -+0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974, -+0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974, -+0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f, -+0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f,0x198f, -+0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992, -+0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992, -+0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b, -+0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x1998,0x1998,0x1998, -+0x19b3,0x19b3,0x19b3,0x1ae2,0x1ae2,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1a3a,0x1ae2,0x1ae2,0x1ae2,0x1a3a,0x1a3a, -+0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b6,0x19b6,0x19b3,0x19b6,0x19b6,0x1a3a,0x1a3d,0x1a3a,0x1a3a,0x1a3a,0x1a3a, -+0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef, -+0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef, -+0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16, -+0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16,0x1a16, - 0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f, --0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, --0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, --0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe, --0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe, --0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2, --0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2, --0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5, --0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5, --0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, --0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, --0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, --0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, --0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, -+0x1a55,0x1a55,0x1a1f,0x1a55,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a25,0x1a25,0x1a25, -+0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31, -+0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31,0x1a31, -+0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4, -+0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4, -+0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0, -+0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0,0x1ad0, -+0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4, -+0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4, -+0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7, -+0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7, -+0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c, -+0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c,0x1b6c, -+0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, - 0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, --0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, --0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, --0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0,0,0,0 -+0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f, -+0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f,0x1b9f, -+0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2, -+0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2,0x1ba2, -+0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc,0x1bfc, -+0x1bfc,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9,0x1bf9, -+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b, -+0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b,0x1c3b, -+0,0,0,0 - }; - - static const UTrie2 propsVectorsTrie={ - propsVectorsTrie_index, -- propsVectorsTrie_index+5188, -+ propsVectorsTrie_index+5348, - NULL, -- 5188, -- 26872, -+ 5348, -+ 27344, - 0xa40, -- 0x14c4, -+ 0x1564, - 0x0, - 0x0, - 0x110000, -- 0x7d38, -- NULL, 0, FALSE, FALSE, 0, NULL -+ 0x7fb0, -+ NULL, 0, false, false, 0, NULL - }; - --static const uint32_t propsVectors[7095]={ -+static const uint32_t propsVectors[7230]={ - 0x67,0,0,0x67,0,0xe00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67, - 0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0,0,0x1267,0, - 0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0,0x1767,0,0, -@@ -3493,429 +3554,437 @@ static const uint32_t propsVectors[7095]={ - 0,0xad67,0,0,0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0, - 0xb467,0,0,0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0,0,0xba67, - 0,0,0xbc67,0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,0xc067,0, --0,0xc167,0,0,0xc267,0,0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667,0,0, --0xc767,0,0,0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcc67,0,0xe00000,0xcf67, --0,0xe00000,0xd067,0,0xe00000,0xd367,0,0,0xd467,0,0,0xd567,0,0,0xd667,0, --0,0xd867,0,0,0xda67,0,0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0, --0xde67,0,0,0xdf67,0,0,0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367, --0,0xe00000,0xe467,0,0,0xe567,0,0,0xe667,0,0,0xe767,0,0,0xe867,0, --0,0xe967,0,0,0xea67,0,0,0xeb67,0,0,0xec67,0,0,0xed67,0,0, --0xee67,0,0,0xef67,0,0,0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667, --0,0,0xf767,0,0,0xf867,0,0,0xf967,0,0,0xfa67,0,0xe00000,0xfb67,0, --0,0xfc67,0,0,0xfd67,0,0,0xfe67,0,0,0x10167,0,0,0x10267,0,0, --0x10367,0,0,0x10467,0,0,0x10667,0,0,0x10767,0,0,0x10867,0,0,0x10967, --0,0,0x10a67,0,0,0x10b67,0,0,0x10c67,0,0,0x10d67,0,0,0x10e67,0, --0,0x10f67,0,0,0x11067,0,0,0x11367,0,0,0x11467,0,0,0x11567,0,0, --0x11667,0,0,0x11767,0,0,0x11867,0,0,0x11967,0,0xe00000,0x11a67,0,0,0x11b67, --0,0,0x11c67,0,0,0x11d67,0,0,0x11e67,0,0,0x11f67,0,0,0x12067,0, --0,0x12167,0,0,0x12267,0,0,0x12367,0,0,0x12467,0,0,0x12567,0,0, --0x12667,0,0,0x12767,0,0,0x12867,0,0,0x12967,0,0,0x12a67,0,0xe00000,0x12b67, --0,0,0x12c67,0,0,0x12d67,0,0,0x12f67,0,0,0x13067,0,0,0x13167,0, --0,0x13267,0,0,0x13367,0,0,0x13467,0,0,0x13567,0,0,0x13667,0,0, --0x13767,0,0,0x13867,0,0,0x13967,0,0,0x13a67,0,0,0x13b67,0,0,0x13c67, --0,0,0x13d67,0,0,0x13f67,0,0,0x14067,0,0,0xa0067,0,0xe00000,0xa4f67,0, --0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067,0,0xe00000,0xb1267,0,0xe00000, --0xb2e67,0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100, --0x40000001,0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x200000,0x11000200,0x24000008, --0x1710000,0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402, --0x11000319,0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419, --0x7c00100,0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100, --0x230400,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x200400,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400,0x11000600,0x7c00500,0x530400, --0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800,0x6800010,0x201001,0x11000800, --0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400,0x200002,0x1100080e,0x7000500, --0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400,0x1100080e,0x7c00100,0x250401, --0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,0x11000908,0x7c00100,0x220401,0x11000908, --0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200400,0x11000a03,0x4000000,0x201000,0x11000a03,0x4000000,0x270000,0x11000a03,0x7c00100, --0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000a03,0xc000010,0x1049400,0x11000b13,0x2802500,0x962460, --0x11000b13,0x4000000,0x200000,0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13, --0x7c00100,0x2633800,0x11000c00,0x80000000,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000, --0x1329400,0x11000c02,0x4000000,0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401, --0x11000c02,0x7c00100,0x230402,0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000f01,0x2802400,0x962460,0x11000f0a,0x2802100,0x962460,0x11000f0a, --0x2802400,0x962460,0x11000f0a,0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100, --0x230401,0x11001004,0x2802100,0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000, --0x11001004,0x6800100,0x962540,0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110, --0x2802400,0x962460,0x11001110,0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100, --0x962460,0x1100120f,0x2802400,0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460, --0x1100131f,0x2802400,0x962460,0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f, --0x6800100,0x962541,0x1100131f,0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100, --0x962540,0x11001423,0x6800100,0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461, --0x11001524,0x2806400,0x962460,0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615, --0x2806400,0x962460,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,0x2806400, --0x962460,0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,0x1600000, --0x11001926,0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,0x11001926, --0x6800000,0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,0x2802100, --0x1862460,0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,0x1830002, --0x11001a18,0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12, --0x7c00100,0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400, --0x200001,0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,0x918820, --0x11002800,0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x445801,0x11002800,0x4000001,0x445802,0x11002800,0x4000001,0xc4000b,0x11002800, --0x6800000,0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,0x24000000, --0x1410000,0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000, --0x11002800,0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x1248002,0x11002800, --0x40000001,0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0x2a65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,0x4000000, --0x20000f,0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,0x141000e, --0x11002900,0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,0x11002a00, --0x4000000,0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,0x4000000, --0x20000f,0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,0x230402, --0x11002c00,0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,0x11002d00, --0x4000000,0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,0x24000020, --0x200000,0x11002e00,0x24000020,0x200001,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,0x200002,0x11002f00,0x24000020,0xf00000, --0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000, --0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,0x4000000,0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000, --0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000, --0x11003700,0x24000000,0x2800000,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800, --0x24000000,0xe00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x2800000,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020, --0x200005,0x11005013,0x7c00100,0x2633801,0x11005013,0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005102,0x7000100,0x230408, --0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460,0x11005500, --0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502,0x7c00100, --0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,0x100002, --0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x200000,0x11020200,0x24000000,0x1400000,0x11020200, --0x24000000,0x1500000,0x11020200,0x24000000,0x1600000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,0x7c00100, --0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,0x220402, --0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,0x11020600, --0x4000400,0x100002,0x11020600,0x4000400,0x200400,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701,0x2802400, --0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,0x220401, --0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002,0x11022800, --0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800,0x24000002, --0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,0x100000, --0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,0x11022c00, --0x4000000,0x100002,0x11022c00,0x4000000,0x10000f,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x7c00120,0x120405,0x11022c0e,0x7c00100, --0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,0x150402, --0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001,0x11022f00,0x24000020,0x100002,0x11023000, --0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300,0x4000100,0x150403,0x11023400,0x24000000, --0x100000,0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020,0x100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000, --0x11023700,0x24000020,0x100000,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,0,0,0x11025600,0x4000000,0x100000,0x11042a00, --0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,0xe3040a,0x11045712,0x7c80100,0xe3040a,0x11045716,0x7c00100, --0xe30c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x445811,0x11065700,0x4000000,0x810011,0x11065700,0x4000000,0xe00011,0x11065700,0x4000000,0x1410011, --0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,0x4000008,0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700, --0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,0xe00011,0x11065700,0x4000400,0xe00011,0x11065700,0x4000420, --0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe29811,0x11065700,0xc000010,0x80ac11,0x11065700,0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411, --0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,0x6800000,0x201c00,0x11080100,0x68000c0,0x1329800,0x11080100, --0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,0x1500000,0x11080100,0x24000000,0x1600000,0x11080100,0x24000000, --0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000006,0xd70000,0x11080100,0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400, --0x11080100,0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,0x11080100,0x24000020,0x200000,0x11080100,0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100, --0x24000400,0x200000,0x11080100,0x24000420,0x200000,0x11080100,0x2c000010,0xb48000,0x11080100,0x2c000010,0x100ac00,0x11080100,0x44000001,0x1a45800,0x11080119,0x7c00100, --0x220400,0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,0x220400,0x11080119,0x7c001c0,0x250400,0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000, --0x11080200,0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,0x11080200,0x24000020,0x200000,0x110a1e12,0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000, --0x24000000,0xe00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001,0x110a3700,0x24000000,0x200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000, --0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,0x110a3d11,0x7c00900,0x1230400,0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000, --0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,0x7c00900,0x1230000,0x110a3e14,0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16, --0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,0x1230c00,0x110a3f16,0x7c00900,0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100, --0xe30402,0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,0xe00000,0x110a4412,0x4000000,0xe00002,0x110a4412,0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03, --0x110a4500,0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,0x110a4711,0x7c40300,0xe30000,0x110a4f11,0x7c00300,0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300, --0x4000000,0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,0x4000000,0xe00010,0x110a5300,0x4000000,0x1410010,0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008, --0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,0x110a5300,0x6800000,0xe01c10,0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c, --0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,0x4000000,0x160000c,0x110a5400,0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400, --0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,0x127100c,0x110a5400,0x4000020,0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010, --0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400c0c,0x4000010,0xb00000,0x11400c0c,0x4000010,0x1071400,0x11400c17,0xc000010,0xb48000,0x11400c1e,0x7c00900,0x230400, --0x11400f4b,0xc000010,0x448000,0x11400f5f,0xc000010,0x448000,0x11401d94,0x4000000,0x200000,0x11403dca,0x4000000,0xe00000,0x114457bf,0x4000004,0x120000a,0x114457bf, --0x4000008,0x81000a,0x114457bf,0x4000008,0x141000a,0x114457bf,0x4000010,0x87000a,0x114457bf,0xc000010,0x84800a,0x114457c8,0x3802500,0x126246a,0x114457c8,0x7c00d00, --0x2530c0a,0x114a3dbf,0x24000000,0x810000,0x114a3dbf,0x24000000,0x1410000,0x114a3dbf,0x24000008,0x810000,0x114a3dbf,0x24000008,0x1410000,0x114a3dbf,0x24000010,0x870000, --0x114a3dbf,0x2c000010,0x848000,0x114a3dc5,0x4000000,0xe00000,0x114a3dc5,0x24000000,0xe00000,0x114a3dc5,0x24000002,0xe00000,0x114a3dc5,0x24000002,0x1200000,0x114a3dc5, --0x24000008,0x810000,0x114a3dc5,0x24000008,0x1410000,0x114a3dc8,0x7c00900,0x930c00,0x114a3dc8,0x7c00900,0xe30c00,0x114a3dca,0x7c00300,0xe30000,0x114a3ec8,0x7000400, --0x1200c02,0x114a3fbf,0x4000004,0x1200000,0x114a3fc8,0x7c00d00,0x2530c00,0x114a42ca,0x4000000,0xe00000,0x114a42ca,0x4000000,0xe0000f,0x114a44ca,0x4000000,0xe00002, --0x114a44ca,0x4000000,0xe00003,0x114a45ca,0x4000000,0xe00002,0x114a45ca,0x4000000,0xe0000d,0x11505103,0x24000000,0x810000,0x11505103,0x24000000,0x1410000,0x1180090a, --0x2802400,0x962460,0x11800c27,0x2802100,0x962460,0x11800c27,0x2802500,0x962460,0x11800f32,0x2802400,0x962460,0x11800f3f,0x2802400,0x962460,0x11820700,0x2802400, --0x962460,0x11820700,0x2802500,0x962460,0x118a3dcb,0x2802400,0x962460,0x118a3ec8,0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460, --0x11c00c2c,0x6800000,0x1329800,0x11c00c30,0xc000010,0xb48000,0x11c00f78,0x6800000,0x1329800,0x11c0107d,0x6800000,0x1329800,0x11c01181,0x6800000,0x1329800,0x11c01285, --0x6800000,0x1329800,0x11c01489,0x4000000,0x200000,0x11c01489,0x6800000,0x1329800,0x11c0168d,0x6800000,0x1329800,0x11d05107,0x7c00100,0x230408,0x20000067,0x1000, --0,0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,0x2802100,0x962461,0x20001b27,0x2802400,0x962460, --0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,0x400000,0x20001b27,0x4000000,0x500000,0x20001b27, --0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,0x20001b27,0x4000010,0xb00000,0x20001b27,0x4000010, --0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,0x7c00100,0x230400,0x20001b27,0x7c00100,0x230401, --0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900000,0x20004c67,0,0x1900000,0x20004d67,0,0x1900000,0x20006d67, --0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100,0x1f304c1,0x200a4a12,0x7c00100, --0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,0x7c00100,0x220401,0x30000419,0x7c00100,0x250400, --0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200400,0x30000600,0x7c00500,0x230400,0x30000605,0x4000400,0x200400,0x3000080e, --0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,0x30000908,0x7c00100,0x250400,0x30000908,0x7c00100, --0x250401,0x30000a03,0x4000006,0x400400,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460, --0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000d22, --0x80000000,0x218960,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,0x30001821,0x2806400,0x962460,0x30001821,0x4000000, --0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,0x2802100,0x962460,0x30001b27,0x2802400,0x962460, --0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,0x1862460,0x30001c1c,0x2802400,0x1862460,0x30001c1c, --0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,0x30001c1c,0x7c00100,0x1830000,0x30001c1c,0x7c00100, --0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,0x4000010,0x400000,0x30001f0b,0x6800000,0x200000, --0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000000,0x200000,0x30002128,0x7c00100,0x230400,0x30002128, --0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x445800,0x3000221d,0x7c00100,0x230400,0x30002300,0x4000010, --0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,0x2806400,0x1862460,0x30002417,0x2882000,0x1862460, --0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,0x400000,0x30002417,0x4000010,0x1200000,0x30002417, --0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,0x3000251b,0x80000,0xc18820,0x3000251b,0x2802100, --0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,0x3000251b,0x4000010,0x400000,0x3000251b,0x4000010,0xb70000, --0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,0x7c00900,0x230400,0x3000251b,0xc000010,0xb48000,0x3000251b, --0x12882000,0x962460,0x30002800,0x24000000,0x200000,0x30002800,0x2c000010,0x1248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002c00,0x4000000, --0x200000,0x30002c00,0x7c00100,0x220405,0x30002d19,0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100,0x24000000,0x200000, --0x30003600,0x24000000,0x200000,0x30003700,0x24000000,0x200000,0x3000392e,0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600, --0x4000400,0x500400,0x30020701,0x2802400,0x962460,0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000, --0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000, --0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929,0x4000000,0xe00000,0x3040259a,0x4000010,0x400000,0x3040259a,0x4000010,0xb70000,0x3040259a, --0xc000010,0xb48000,0x304028ba,0x4000001,0xc41c0b,0x304a3dca,0x4000000,0xe00000,0x30800c27,0x2802100,0x962460,0x30c01c92,0x6800000,0x1329800,0x3100080e,0x7c00120, --0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000,0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400, --0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00,0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00, --0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000,0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400, --0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405,0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x962460, --0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419,0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e, --0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100,0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100, --0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820,0x32002800,0x4000001,0x445802,0x32002800,0x24000000,0x200000, --0x32002800,0x24000000,0x200002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919,0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01, --0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000,0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020, --0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000,0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000, --0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000,0x200000,0x32003800, --0x24000000,0x810000,0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100, --0x250400,0x3200622a,0x2802100,0x962460,0x3200622a,0x2806400,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x6804000,0x962540, --0x3200632b,0x7c00100,0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600, --0x24000020,0x200000,0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000,0x32006900,0x24000020, --0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300,0x4000000,0x100000, --0x32026c01,0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020,0x1410000,0x32086900, --0x24000020,0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,0xe30010,0x320a3e14,0x7c00100, --0x2530000,0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,0x320a6b16,0x7c00100,0x2530c00, --0x32406396,0xc000010,0x448000,0x324a3dcd,0x4000000,0xe00000,0x324a3dcd,0x7c00100,0x1230400,0x324a3fc8,0x4000002,0x1200c00,0x324a53c5,0x24000000,0xe00000,0x32820701, --0x2802000,0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200400,0x4000080e,0x7c00100,0x220400,0x4000080e,0x7c00100, --0x250400,0x4000080e,0x7c00100,0x250402,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02,0x4000000,0x200000, --0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000c02,0x80000000,0x218960,0x40000d22,0x7c00100,0x230400,0x40000f0a,0x7c00100,0x230400,0x40001004, --0x7c00100,0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,0x1600000,0x4000120f,0x7c00100, --0x230400,0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,0x40001615,0x7c00100,0x230400, --0x40002417,0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,0x4000000,0x200002,0x40003000, --0x24000000,0x200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40005a09,0x7c00100,0x220400,0x40005a09,0x7c00100,0x250400,0x40005d00,0x7c00120, --0x220405,0x40006f30,0x2802100,0x962460,0x40006f30,0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,0x1329800,0x40006f30,0x6800100,0x962540, --0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010,0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,0x40007208,0x7c00100,0x220400,0x4000720e, --0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e,0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,0x7c00500,0x220400,0x40007219,0x7c00500, --0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007400,0x4000000,0x200000,0x40007531,0x7c00100,0x230400,0x40007631,0x7c00100,0x230400, --0x40007835,0x4000010,0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,0x40007a32,0x6800000,0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f, --0x7c00100,0x230400,0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,0x2802400,0xc62460,0x40023300,0x4000000,0x200000,0x40027d01,0x12882000, --0x962460,0x400a3700,0x24000000,0x200000,0x400a3700,0x24000000,0xe00000,0x400a4400,0x4000000,0xe0000d,0x400a4412,0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003, --0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,0x4000000,0x1410010,0x40507709,0x4000000,0x200000,0x4050770c,0x4000000,0x400000,0x4050770f, --0x4000000,0x200000,0x4050770f,0x4000000,0x400000,0x40c01489,0x4000000,0x200000,0x40d05107,0x4000000,0x200000,0x41000419,0x7c00100,0x220400,0x41000419,0x7c00100, --0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13,0x2802000,0x962460, --0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0x1500000,0x41000c02,0xc000010,0xb48000,0x41000f0a, --0x7c00100,0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x230400,0x41001d0c,0x7c00100, --0x23040f,0x41001f0b,0x2802400,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800,0x24000000,0x400000, --0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120,0x220405,0x41003000, --0x24000000,0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0xe00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000,0x41006600,0x24000020, --0x810000,0x41006600,0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e,0x2802000,0x962460, --0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100,0x962460,0x41008137, --0x4000000,0x200000,0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000,0x41008407,0x4000000, --0x400000,0x41008407,0x4000000,0xb00000,0x41008407,0x7c00100,0x220400,0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b,0x4000000,0x200000, --0x4100860b,0x7c00100,0x230400,0x4100870c,0x7c00100,0x220400,0x41008838,0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000,0x962460,0x41008939, --0x2802100,0x962460,0x41008939,0x2806000,0x962460,0x41008939,0x4000000,0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400,0x41008939,0xc000010, --0x448000,0x41008a00,0x4000400,0x200400,0x41008b3b,0x4000000,0x1800000,0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b,0x7e00100,0x1830000, --0x41008c3d,0x4000010,0x400000,0x41008c3d,0x7c00100,0x230400,0x41008d0e,0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100,0x22040f,0x41008e00, --0x24000000,0x200000,0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000, --0x962460,0x41008f3a,0x4000000,0x200000,0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f, --0x41020701,0x2802000,0x962460,0x41020701,0x2802000,0xc62460,0x410a3700,0x24000000,0x200000,0x410a3700,0x24000000,0xe00000,0x410a4412,0x4000000,0xe00003,0x410a4711, --0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,0x4000000,0x800010,0x410a9100,0x4000000,0x810010,0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000, --0xb00010,0x410a9100,0x4000000,0xf00010,0x410a9100,0x4000000,0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010, --0x41408ad0,0x4000400,0x200000,0x414a82ca,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,0x41c01489,0x6800000,0x1329800,0x50000419,0x7c00100,0x220400,0x50000419, --0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,0x7c00100,0x250400,0x50000b13,0x2802500,0x962460,0x50000f0a,0x7c00100, --0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,0x962460,0x50002c00,0x4000000,0x200000,0x50002c19,0x7c00100,0x220400, --0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,0x50003700,0x24000000,0x200000,0x50005d00,0x7c00120,0x220405,0x50005d00, --0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,0x24000020,0x200000,0x50007300,0x24000000,0x200000,0x50008301,0x2802400, --0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,0x200000,0x50009257,0x4000010,0x1071400,0x50009257,0x6800000,0x1329800, --0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100,0x962460,0x5000933e, --0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,0x4000010,0x400000,0x5000933e,0x6800000,0x1329800,0x5000933e,0x6800100, --0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e,0xc000010,0x448000, --0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200400,0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100,0x230400,0x5000965a, --0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,0x7c00100,0x230400,0x50009865,0x7c00100,0x230400,0x50009965,0x4000010, --0x400000,0x50009965,0x7c00100,0x230400,0x50409aca,0x4000000,0x200000,0x5100080e,0x7c00100,0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02,0x2802100,0x962460, --0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500,0x230400,0x51001110, --0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,0x2802100,0x962460,0x51001524,0x4000000,0x200000,0x51001524,0x7c00100, --0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,0x1500000,0x5100171a,0x7c00100,0x230400,0x51001b27,0x4000000,0x200000, --0x51001b27,0x4000000,0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,0x7c00100,0x230400,0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802500,0x1862460,0x51001c1c, --0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,0x6800100,0x1862400,0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800500, --0x1862400,0x51001c1c,0x7c00100,0x1830000,0x5100251b,0x7c00100,0x230400,0x51002619,0x7c00100,0x220400,0x51002619,0x7c00100,0x250400,0x51002800,0x80020,0x218820, --0x51002c00,0x4000000,0x200000,0x51002d19,0x7c00100,0x230400,0x51003700,0x24000000,0x200000,0x51003700,0x24000000,0xe00000,0x51005201,0x2802400,0x962460,0x51005c00, --0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,0x7c00100,0x250400,0x51006600,0x24000020,0x200000,0x51006600,0x24000020,0x810000,0x51006600,0x24000020, --0x1410000,0x51007300,0x24000000,0x200000,0x51007300,0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301,0x2802000,0x962460,0x51008301,0x2802400,0x962460, --0x51008a00,0x7c00500,0x230400,0x51008e00,0x24000000,0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000,0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00, --0x24000000,0x1410000,0x51008e00,0x24000000,0x1710000,0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400,0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100, --0x220400,0x51009419,0x7c00100,0x22040e,0x51009419,0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500,0x4000400,0x200400,0x51009500,0x7c00500,0x230400, --0x51009519,0x7c00100,0x220400,0x51009519,0x7c00100,0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100,0x250400,0x51009b71,0x2802100,0x962460,0x51009b71, --0x6800000,0x1329800,0x51009b71,0x6800100,0x962540,0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400,0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400, --0x962460,0x51009c52,0x2802d00,0x962460,0x51009c52,0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52,0x6800100,0x962540,0x51009c52,0x7c00100,0x230400, --0x51009c52,0xc000010,0x448000,0x51009d6d,0x6800000,0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500,0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d, --0xc000010,0x448000,0x51009e08,0x2802100,0x962460,0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800,0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900, --0x230400,0x51009f63,0xc000010,0x448000,0x51009f63,0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008,0x2802400,0x962460,0x5100a008,0x4000000,0x200000, --0x5100a008,0x7c00100,0x220400,0x5100a008,0x7c00100,0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500,0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f, --0x6800000,0x1329800,0x5100a16f,0x6800100,0x962540,0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000,0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400, --0x962460,0x5100a24f,0x6800000,0x1329800,0x5100a24f,0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e,0x2802100,0x962460,0x5100a36e,0x4000000,0x200000, --0x5100a36e,0x6800100,0x962540,0x5100a36e,0x6804400,0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100,0x962460,0x5100a442,0x4000000,0x200000,0x5100a442, --0x6800000,0x1329800,0x5100a442,0x6800100,0x962540,0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000,0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000, --0x200000,0x5100a601,0x2802000,0x962460,0x5100a76b,0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400, --0x5100aa00,0x4000000,0xe00000,0x5100ab00,0x4000000,0xe00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020,0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711, --0x7c40300,0xe30000,0x510a7300,0x24000000,0x200000,0x510aaa00,0x4000000,0xe00000,0x5140a2fe,0x4000400,0x400000,0x514a82ca,0x4000000,0xe00000,0x51802bbc,0x2802000, --0x962460,0x51c00908,0x2802400,0x962460,0x51c0a008,0x2802400,0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a,0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400, --0x52001004,0x4000000,0x1600000,0x52001b00,0x4000000,0x200000,0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100,0x1862400,0x52001c1c,0x6800500,0x1862400,0x52001e12, --0x7c00100,0x2230500,0x52001e12,0x7c00100,0x2330520,0x52002128,0x4000002,0x400000,0x52002128,0x7c00100,0x230400,0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000, --0x1600000,0x52002d00,0x4000000,0x200006,0x52003000,0x24000000,0x200000,0x52006108,0x7c00100,0x220400,0x52006108,0x7c00100,0x250400,0x52008301,0x2802400,0x962460, --0x52008407,0x2802400,0x962460,0x52008407,0x7c00100,0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000,0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00, --0x24000000,0x400000,0x52009419,0x7c00100,0x250400,0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460,0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400, --0x962460,0x5200ac7e,0x4000010,0x200000,0x5200ac7e,0x7c00100,0x230400,0x5200ac7e,0xc000010,0x248000,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460, --0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000,0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a, --0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000,0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010, --0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182,0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,0x4000010,0x400000, --0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400,0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e, --0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000,0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100, --0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e,0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,0x6800500,0x1862400, --0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100,0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f, --0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000,0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100, --0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873,0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,0x7c00100,0x230400, --0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100,0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74, --0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400,0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100, --0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a,0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400, --0x5200c002,0x4000000,0x200000,0x5200c178,0x2802000,0x962460,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400,0x962460,0x5200c178, --0x4000000,0x200000,0x5200c178,0x6800100,0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,0x5200c178,0xc000010,0x448000,0x5200c178,0x80000000, --0x218960,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,0x4000000,0x100006, --0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,0x24000000,0x2800000,0x52024400,0x4000000,0x100000,0x52027300,0x24000000,0x100000,0x5202c300, --0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100, --0x15040d,0x520a1e12,0x7c00100,0x2130480,0x520a3700,0x24000000,0xe00000,0x520a3800,0x24000000,0x100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11,0x7c00300,0xe30001, --0x520a7300,0x24000000,0x100000,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511, --0x7c40300,0xe30000,0x5240af9c,0x7c00100,0x230400,0x5240afa1,0x4000400,0x200000,0x5240afa3,0x6800400,0x962540,0x5240afa3,0x7c00100,0x230400,0x5240afad,0x7c00100, --0x230400,0x5240afaf,0x7c00100,0x230400,0x5240b2d2,0x4000000,0x200000,0x5240b2d2,0x4000000,0x1500000,0x5240b2dd,0x4000000,0x200000,0x5240b2eb,0x4000000,0x200000, --0x524a44ca,0x4000000,0xe00003,0x5250b501,0x7c00900,0x230400,0x5280af9c,0x2802400,0x962460,0x5280af9d,0x2802400,0x962460,0x5280afa3,0x2802400,0x962460,0x5280afa5, --0x2802400,0x962460,0x5280afa7,0x2802400,0x962460,0x52c0b3f8,0x2802400,0x962460,0x52c0b3fc,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460,0x60000c02,0x7c00100, --0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,0x6000171a,0x7c00100,0x230400, --0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802400,0x962460,0x60002919, --0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x200000,0x60003000,0x24000000,0xe00000,0x60003700,0x24000000,0x200000,0x60003800,0x24000000, --0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301,0x2802400,0x962460, --0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100,0x220400,0x6000a008, --0x7c00100,0x250400,0x6000c300,0x4000000,0x2703580,0x6000c654,0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400,0x6000c73f,0x2802000, --0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f,0x7c00100,0x230400, --0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806400,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010,0x200000,0x6000c941, --0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400,0x6000cc00,0x4000000, --0xe00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300,0x4000100,0x15040d, --0x600a3000,0x24000000,0x200000,0x600a3000,0x24000000,0xe00000,0x600a3700,0x24000000,0x200000,0x600a3800,0x24000000,0x200000,0x600a3800,0x24000000,0x2800000,0x600a4305, --0x7c00100,0xe30400,0x600ac300,0x4000000,0x100000,0x600ac400,0x4000000,0xe0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000, --0xe00000,0x600acd00,0x4000000,0x200000,0x600acd00,0x4000000,0xe00000,0x600acd00,0x4000000,0x2800000,0x600ace00,0x4000000,0xe00000,0x600ace00,0x4000000,0x2800000, --0x600acf00,0x4000000,0xe00000,0x600acf00,0x4000000,0x2800000,0x600ad111,0x7c40300,0xe30000,0x604ac4ca,0x4000000,0xe00003,0x61000a03,0x4000000,0x1600000,0x61000c02, --0x80000000,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,0x61001d0c,0x7c00100,0x230400,0x61001d0c,0x7c00100,0x250400,0x61006600,0x24000020, --0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,0x7c00100,0x220400,0x61008e00,0x24000000,0x200000,0x61008e00,0x24000000,0x400000, --0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,0x220400,0x61009519,0x7c00100,0x250400,0x61009519,0x7c00500,0x22040f,0x61009b71, --0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,0x230400,0x6100a008,0x2802100,0x962460,0x6100c300,0x4000000,0x20000f,0x6100cd00,0x4000000, --0x200000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,0x6100d202,0x7c00100,0x230400,0x6100d302,0x4000020,0x200000,0x6100d302,0x7c00120,0x230405, --0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,0x2806400,0x962460,0x6100d476,0x4000000,0x400000,0x6100d476,0x6800000,0x1329800,0x6100d476, --0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,0x448000,0x6100d573,0x2802100,0x962460,0x6100d573,0x2806400,0x962460,0x6100d573,0x6800100, --0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,0x6100d573,0xc000010,0x448000,0x6100d68d,0x7c00100,0x230400,0x6100d756,0x7c00100,0x230400, --0x6100d85c,0x2802500,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,0x7c00100,0x230400,0x6100d85c,0x7c00500,0x230400,0x6100d997,0x2802100,0x962460,0x6100d997, --0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800,0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540,0x6100d997,0x7c00100, --0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000,0x200000, --0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400,0x962540,0x6100dc99, --0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x610ace00,0x4000000,0xe00000,0x6140afa1,0x7c00100,0x230400,0x6140afa3,0x7c00100, --0x230400,0x6180af9e,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63002800,0x80000,0x918820,0x63c00c15,0x80000,0x918820,0x7000080e,0x7c00100,0x250400, --0x70000a03,0x4000000,0x200000,0x70000c00,0x80000000,0x218960,0x70000f0a,0x7c00100,0x230400,0x70001004,0x7c00100,0x230400,0x70001524,0x2802100,0x962460,0x70001524, --0x7c00100,0x230400,0x70001615,0x2802100,0x962460,0x7000171a,0x2802100,0x962460,0x70001821,0x6800000,0x1329800,0x70002320,0x7c00100,0x230400,0x70002a00,0x4000000, --0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,0x70003800,0x24000000,0xe00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400, --0x70006108,0x7c00100,0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400,0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000,0x200000,0x70008301, --0x2802100,0x962460,0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000,0x70008e00,0x24000000,0x400000,0x70008e00,0x24000002,0x400000,0x70008e00,0x24000008, --0x1410000,0x70008e00,0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100,0x220400,0x70009519,0x7c00100,0x230400,0x70009519,0x7c00100,0x250400, --0x70009865,0x7c00100,0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100,0x230400,0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100,0x250400,0x7000a008, --0x7c00500,0x22040f,0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802500,0x1862460,0x7000b61c,0x6800500,0x1862400,0x7000b61c,0x7c00100,0x1830000,0x7000c300,0x4000000, --0x100000,0x7000c941,0x2806000,0x962460,0x7000cc00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x2800000, --0x7000cf00,0x4000000,0xe00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,0x230400,0x7000d997,0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86, --0x2802400,0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,0x7000de9f,0x4000000,0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2400, --0x962460,0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,0x2802100,0x962460,0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400, --0x7000e187,0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,0x200000,0x7000e489,0x2802100,0x962460,0x7000e489,0x2802400,0x962460,0x7000e489, --0x6800100,0x962540,0x7000e489,0x6800100,0x962541,0x7000e489,0x6804400,0x962540,0x7000e489,0x7c00100,0x230400,0x7000e489,0x7c00900,0x230400,0x7000e59d,0x2802100, --0x962460,0x7000e59d,0x2802400,0x962460,0x7000e59d,0x4000000,0x200000,0x7000e59d,0x4000010,0x200000,0x7000e59d,0x6800100,0x962540,0x7000e59d,0x6804400,0x962540, --0x7000e59d,0x7c00100,0x230400,0x7000e59d,0xc000010,0x448000,0x7000e691,0x2802100,0x962460,0x7000e691,0x2802400,0x962460,0x7000e691,0x2806400,0x962460,0x7000e691, --0x6800000,0x1329800,0x7000e691,0x6800100,0x962540,0x7000e691,0x7c00100,0x230400,0x7000e700,0x4000400,0x200400,0x7000e70e,0x7c00100,0x220400,0x7000e719,0x7c00100, --0x220400,0x7000e719,0x7c00500,0x22040f,0x7000e853,0x7c00100,0x230400,0x7000e9a0,0x2802400,0x962460,0x7000e9a0,0x4000000,0x200000,0x7000e9a0,0x4000000,0x500000, --0x7000e9a0,0x7c00100,0x230400,0x7000ea79,0x2802400,0x962460,0x7000ea79,0x4000000,0x200000,0x7000ea79,0x4000000,0xf00000,0x7000ea79,0x4000010,0x400000,0x7000ea79, --0x7c00100,0x230400,0x7000eb8c,0x2802400,0x962460,0x7000eb8c,0x4000000,0x200000,0x7000eb8c,0x7c00100,0x230400,0x7000eca3,0x2802100,0x962460,0x7000eca3,0x2806400, --0x962460,0x7000eca3,0x4000000,0x200000,0x7000eca3,0x6800000,0x1329800,0x7000eca3,0x6800100,0x962540,0x7000eca3,0x7c00100,0x230400,0x7000eca3,0xc000010,0x448000, --0x7000ed95,0x6800000,0x1329800,0x7000ed95,0x7c00100,0x230400,0x7000ed95,0xc000010,0x448000,0x7000ee1c,0x2802500,0x1862460,0x7000ee1c,0x6800000,0x1329800,0x7000ee1c, --0x7c00100,0x1830000,0x7000ee1c,0x7c00900,0x1830000,0x7000ef8f,0x4000000,0x200000,0x7000ef8f,0x7c00100,0x230400,0x7000f08e,0x4000000,0x200000,0x7000f08e,0x7c00100, --0x230400,0x7000f159,0x2802100,0x962460,0x7000f159,0x7c00100,0x230400,0x7000f200,0x4000000,0x200000,0x7000f200,0x4000000,0x1200000,0x7000f200,0x4000000,0x1710000, --0x7000f34b,0x2802400,0x962460,0x7000f34b,0x4000000,0x200000,0x7000f34b,0x4000010,0x400000,0x7000f34b,0x6800000,0x1329800,0x7000f34b,0x7c00100,0x230400,0x7000f34b, --0x7c00900,0x230400,0x7000f34b,0xc000010,0x448000,0x7000f490,0x4000000,0x200000,0x7000f490,0x7c00100,0x230400,0x7000f5a5,0x7c00100,0x230400,0x7000f67b,0x4000000, --0x200000,0x7000f67b,0x4000010,0x200000,0x7000f67b,0x7c00100,0x230400,0x7000f8a6,0x2802100,0x962460,0x7000f8a6,0x2802400,0x962460,0x7000f8a6,0x2806400,0x962460, --0x7000f8a6,0x4000000,0x500000,0x7000f8a6,0x4000010,0xb00000,0x7000f8a6,0x4000800,0x200000,0x7000f8a6,0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6, --0x7c00100,0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,0x4000000,0x200000,0x7000fa00,0x4000000,0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400, --0x962460,0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,0x6800000,0x1329800,0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541, --0x7000fb9e,0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92, --0x7c00100,0x250400,0x700acd00,0x4000000,0xe00000,0x700acd00,0x4000000,0x2800000,0x700ace00,0x4000000,0xe00000,0x700acf00,0x4000000,0xe00000,0x700acf00,0x4000000, --0x2800000,0x7050df11,0x4000000,0x200000,0x7050f719,0x80000,0x918820,0x7080afa1,0x2802400,0x962460,0x7090df11,0x2802400,0x962460,0x70d0e417,0x2802100,0x962460, --0x70d0e417,0x2802400,0x962460,0x70d0e417,0x6800100,0x962540,0x70d0ea15,0x4000010,0x400000,0x8000120f,0x7c00100,0x230400,0x80001524,0x7c00100,0x230400,0x8000171a, --0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,0x4000000,0x200000,0x80005208,0x2802400, --0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,0x230400,0x80009519,0x7c00100,0x250400, --0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,0x8000cd00,0x4000000,0xe00000,0x8000d202, --0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802000,0x962460,0x8000d997,0x2802400,0x962460,0x8000d997,0x4000000, --0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,0x962460,0x8000e489,0x7c00100,0x230400, --0x8000e719,0x7c00100,0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,0x8000fda1,0x2802100,0x1862460,0x8000fda1, --0x2806400,0x1862460,0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862400,0x8000fda1,0x6800100,0x1862540,0x8000fda1,0x7c00100, --0x1830000,0x8000fda1,0xc000010,0x448000,0x8000fe9c,0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,0x7c00100,0x220400, --0x80010165,0x7c00100,0x230400,0x800102a2,0x4000000,0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,0x448000,0x8001044c, --0x4000000,0x200000,0x8001044c,0x7c00100,0x220400,0x8001044c,0x7c00100,0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,0x80010670,0x4000010, --0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0xe00000,0x800acd00,0x4000000,0x2902460,0x800ace00,0x4000000,0xe00000, --0x800acf00,0x4000000,0xe00000,0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0xe00000,0x800b0500,0x4000000,0x2800000,0x90001615,0x7c00100,0x230400,0x9000171a, --0x4000000,0x200000,0x9000171a,0x7c00100,0x230400,0x90003000,0x24000000,0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802400,0x962460,0x90008e00,0x24000000, --0x400000,0x90009519,0x7c00100,0x250400,0x9000a16f,0x2802100,0x962460,0x9000d200,0x80000000,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202,0x2802100,0x962460, --0x9000d202,0x7c00100,0x230400,0x9000e59d,0x2802100,0x962460,0x90010500,0x4000000,0xe00000,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400,0x962460,0x900107a7, --0x2802c00,0x962460,0x900107a7,0x4000000,0x1400000,0x900107a7,0x6800000,0x1329800,0x900107a7,0x7c00100,0x220400,0x900107a7,0x7c00100,0x250400,0x900108a8,0x2802100, --0x962460,0x900108a8,0x2806400,0x962460,0x900108a8,0x4000000,0x200000,0x900108a8,0x4000000,0x400000,0x900108a8,0x4000010,0x400000,0x900108a8,0x6800000,0x1329800, --0x900108a8,0x6800100,0x962540,0x900108a8,0x7c00100,0x230400,0x900108a8,0xc000010,0x448000,0x90010908,0x7c00100,0x220400,0x90010a38,0x2802100,0x962460,0x90010ca9, --0x2802100,0x962460,0x90010ca9,0x4000000,0x500000,0x90010ca9,0x4000010,0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400,0x90010d1b,0x4000000, --0x500000,0x90010eaa,0x2802100,0x962460,0x90010eaa,0x2802400,0x962460,0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa,0x4000000,0x400000, --0x90010eaa,0x4000010,0x400000,0x90010eaa,0x6800000,0x1329800,0x90010eaa,0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010,0x448000,0x90010fab, --0x7c00100,0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300,0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0xe00000,0x900acd00,0x4000000, --0x2800000,0x900acf00,0x4000000,0xe00000,0x900b0500,0x4000000,0xe00000,0x900b0500,0x4000000,0x2800000,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,0x7c00300,0xe30000, --0x900b119a,0x7c00300,0xe30000,0x90408e06,0x24000000,0x400000,0xa0001004,0x4000000,0x200000,0xa0001004,0x7c00100,0x230400,0xa000120f,0x2802100,0x962460,0xa000120f, --0x2802400,0x962460,0xa000171a,0x2802100,0x962460,0xa000171a,0x2806400,0x962460,0xa0002a00,0x4000000,0x1600000,0xa0003000,0x24000000,0x200000,0xa000581e,0x7c00100, --0x230400,0xa0007300,0x24000000,0x200000,0xa0008301,0x2802400,0x962460,0xa0008e00,0x24000000,0x400000,0xa000cf00,0x4000000,0xe00000,0xa0010500,0x4000000,0x200000, --0xa00114af,0x2802100,0x962460,0xa00114af,0x2802400,0x962460,0xa00114af,0x2806400,0x962460,0xa00114af,0x6800000,0x1329800,0xa00114af,0x7c00100,0x230400,0xa00114af, --0x7c00100,0x230560,0xa00116b0,0x2802100,0x962460,0xa00116b0,0x2802800,0x962460,0xa00116b0,0x2806400,0x962460,0xa00116b0,0x4000000,0x400000,0xa00116b0,0x4000000, --0x500000,0xa00116b0,0x4000010,0x400000,0xa00116b0,0x6800100,0x962540,0xa00116b0,0x7c00100,0x230400,0xa00116b0,0x7c00100,0x230560,0xa00116b0,0xc000010,0x448000, --0xa0011722,0x7c00100,0x230400,0xa00118b1,0x2802000,0x962460,0xa00118b1,0x2802100,0x962460,0xa00118b1,0x2806400,0x962460,0xa00118b1,0x4000000,0x200000,0xa00118b1, --0x4000000,0x400000,0xa00118b1,0x4000000,0x500000,0xa00118b1,0x6800100,0x962540,0xa00118b1,0x7c00100,0x230400,0xa00118b1,0x7c00100,0x230560,0xa00118b1,0xc000010, --0x448000,0xa00a4005,0x7c00100,0xe30400,0xa00a4711,0x7c40300,0xe30000,0xa00ac400,0x4000000,0xe00000,0xa00acb14,0x7c00100,0xe30000,0xa00acf00,0x4000000,0xe00000, --0xa00b0500,0x4000000,0xe00000,0xa00b0500,0x4000000,0x2800000,0xa00b0b96,0x7c00900,0x1230400,0xa00b1211,0x7c40300,0xe30000,0xa00b1314,0x7c00100,0xe30000,0xa00b1596, --0x7c00300,0xe30000,0xa040afb7,0x6800400,0x962540,0xa08083b8,0x2802400,0x962460,0xb0000a03,0x7c00100,0x220400,0xb0000b13,0x7c00100,0x2633800,0xb0001004,0x2802000, --0x962460,0xb0001110,0x4000000,0x200000,0xb0001524,0x2802000,0x962460,0xb0001615,0x4000000,0x500000,0xb000251b,0x7c00100,0x230400,0xb0007300,0x24000000,0x200000, --0xb0008939,0x4000000,0x200000,0xb0008939,0x7c00100,0x230400,0xb0008e00,0x24000000,0x200000,0xb0008e00,0x24000000,0x400000,0xb0008e00,0x24000010,0x400000,0xb0009257, --0x2802000,0x962460,0xb0009257,0x4000000,0x1600000,0xb0009519,0x7c00100,0x220400,0xb0009519,0x7c00100,0x250400,0xb0009a00,0x4000000,0x200000,0xb000b30a,0x2802100, --0x962460,0xb000b30a,0x7c00100,0x230400,0xb000c178,0x80000000,0x218960,0xb000c300,0x4000000,0x200000,0xb000d202,0x2802000,0x962460,0xb000d476,0x6800100,0x962540, --0xb000d476,0x7c00100,0x230400,0xb000e300,0x4000000,0xe00000,0xb000fda1,0x7c00100,0x1830000,0xb0010eaa,0x2802000,0x962460,0xb00116b0,0x7c00100,0x230400,0xb0011900, --0x4000000,0xe00000,0xb0011ab2,0x2802100,0x962460,0xb0011ab2,0x2802400,0x962460,0xb0011ab2,0x2806400,0x962460,0xb0011ab2,0x4000000,0x200000,0xb0011ab2,0x6800100, --0x962540,0xb0011ab2,0x7c00100,0x230400,0xb0011b0c,0x7c00100,0x230400,0xb0011cb3,0x2802100,0x962460,0xb0011cb3,0x2806400,0x962460,0xb0011cb3,0x6800000,0x1329800, --0xb0011cb3,0x6800100,0x962540,0xb0011cb3,0x7c00100,0x230400,0xb0011db6,0x2802500,0x962460,0xb0011db6,0x6800000,0x1329800,0xb0011db6,0x7c00100,0x230400,0xb0011db6, --0x7c00500,0x230400,0xb0011e00,0x4000000,0x200000,0xb0011e00,0x4000000,0x1500000,0xb0011fb4,0x2802100,0x962460,0xb0011fb4,0x6800100,0x962540,0xb0011fb4,0x7c00100, --0x230400,0xb0011fb4,0xc000010,0x248000,0xb0012000,0x4000000,0x200000,0xb00121b5,0x4000000,0x200000,0xb00121b5,0x4000010,0x400000,0xb00121b5,0x7c00100,0x220400, --0xb00121b5,0x7c00100,0x250400,0xb00121b5,0xc000010,0x448000,0xb00122b8,0x4000000,0x200000,0xb00122b8,0x7c00100,0x230400,0xb00123b7,0x2802400,0x962460,0xb00123b7, --0x4000000,0x200000,0xb00123b7,0x7c00100,0x230400,0xb00123b7,0xc000010,0x248000,0xb00a4005,0x7c00100,0xe30400,0xb00a4711,0x7c40300,0xe30000,0xb00acf00,0x4000000, --0xe00000,0xb00b0500,0x4000000,0xe00000,0xb00b0500,0x4000000,0x2800000,0xb00b109a,0x7c00300,0xe30000,0xb080e487,0x2802000,0x962460,0xc0001524,0x4000000,0x500000, --0xc0001a18,0x2806400,0x1862460,0xc0001a18,0x7c00100,0x1830000,0xc0007300,0x24000000,0x200000,0xc0008e00,0x24000010,0x400000,0xc0009519,0x7c00100,0x220400,0xc0009519, --0x7c00100,0x250400,0xc000c300,0x4000000,0x20000f,0xc000d85c,0x2802100,0x962460,0xc000d85c,0x6800100,0x962540,0xc000d85c,0x7c00100,0x230400,0xc000dc99,0x7c00100, --0x230400,0xc000e719,0x7c00100,0x220400,0xc00107a7,0x7c00100,0x230400,0xc0010eaa,0x7c00100,0x230400,0xc00116b0,0x7c00100,0x230560,0xc0011900,0x4000000,0x200000, --0xc0012447,0,0x818820,0xc0012447,0,0xc18820,0xc0012447,0,0x1418820,0xc00125b9,0x7c00100,0x230400,0xc00126bb,0x2802100,0x962460,0xc00126bb, --0x2806400,0x962460,0xc00126bb,0x4000000,0x500000,0xc00126bb,0x6800100,0x962540,0xc00126bb,0x7c00100,0x230400,0xc00127ba,0x2802400,0x962460,0xc00127ba,0x4000000, --0x200000,0xc00127ba,0x6800000,0x1329800,0xc00127ba,0x7c00100,0x230400,0xc00127ba,0x7c00900,0x230400,0xc0012800,0x4000000,0x200000,0xc0012b23,0x4000000,0x200000, --0xc0012b23,0x4000000,0x400000,0xc0012b23,0x4000000,0x1500000,0xc0012cbc,0x2802400,0x962460,0xc0012cbc,0x4000000,0x1600000,0xc0012cbc,0x6800000,0x1329800,0xc0012cbc, --0x7c00100,0x230400,0xc00acf00,0x4000000,0xe00000,0xc00ae300,0x4000000,0xe00000,0xc00b0500,0x4000000,0xe00000,0xc00b0500,0x4000000,0x2800000,0xc00b0b11,0x4000000, --0x1200000,0xc00b0b11,0x7c00900,0x1230400,0xc00b109a,0x7c00300,0xe30000,0xc00b2914,0x7c00100,0x2530000,0xc00b2916,0x7c00100,0x2530c00,0xc00b2a00,0x4000000,0xe00000, --0xc040af5e,0x7c00100,0x230400,0xc0c12b89,0x4000000,0x200000,0xc14a44ca,0x4000000,0xe0000d,0xd000131f,0x2802c00,0x962460,0xd000171a,0x7c00100,0x230400,0xd0001821, --0x2802100,0x962460,0xd0007300,0x24000000,0x200000,0xd0008e00,0x24000000,0x200000,0xd0008f3a,0x2806000,0x962460,0xd0009519,0x7c00100,0x220400,0xd0009519,0x7c00100, --0x250400,0xd000a500,0x4000000,0x200000,0xd000c300,0x4000000,0xe00000,0xd000d202,0x7c00100,0x230400,0xd000d476,0x7c00100,0x230400,0xd000d997,0x2802100,0x962460, --0xd000d997,0x6800100,0x962540,0xd000e001,0x2802100,0x962460,0xd000e700,0x4000400,0x200000,0xd000e719,0x7c00100,0x220400,0xd000e719,0x7c00500,0x23040f,0xd000fa00, --0x4000000,0xe00000,0xd0010eaa,0x4000010,0x400000,0xd0010eaa,0x7c00100,0x230400,0xd0012dbd,0x4000000,0x200000,0xd0012dbd,0x7c00100,0x230400,0xd0012fbe,0x2802100, --0x962460,0xd0012fbe,0x2802400,0x962460,0xd0012fbe,0x2806400,0x962460,0xd0012fbe,0x4000000,0x400000,0xd0012fbe,0x6800000,0x1329800,0xd0012fbe,0x6800100,0x962540, --0xd0012fbe,0x6800100,0x962541,0xd0012fbe,0x6804400,0x962540,0xd0012fbe,0x7c00100,0x230400,0xd0012fbe,0x7c00100,0x230560,0xd0012fbe,0xc000010,0x448000,0xd0013183, --0x7c00100,0x230400,0xd0013200,0x4000000,0x200000,0xd0013200,0x6800000,0x1329805,0xd00134c0,0x2802100,0x962460,0xd00134c0,0x4000002,0x400000,0xd00134c0,0x7c00100, --0x230400,0xd00a4305,0x7c00100,0xe30400,0xd00a4611,0x7c40300,0xe30000,0xd00a4711,0x7c40300,0xe30000,0xd00a5e11,0x7c40300,0xe30000,0xd00acf00,0x4000000,0xe00000, --0xd00b0500,0x4000000,0xe00000,0xd00b0500,0x4000000,0x2800000,0xd00b0b11,0x6800500,0x962540,0xd00b0bbf,0x2802200,0xc62460,0xd00b119a,0x7c00300,0xe30000,0xd00b2a00, --0x4000000,0xe00000,0xd00b2e11,0x7c40300,0xe30000,0xd00b30bf,0x7c00300,0x230000,0xd00b339a,0x7c00300,0xe30000,0xe0000c02,0xc000010,0xb48000,0xe0001524,0x2802400, --0x962460,0xe0001524,0x7c00100,0x230400,0xe0001615,0x7c00100,0x230400,0xe000251b,0x12882000,0x962460,0xe0002a00,0x4000000,0x1500000,0xe0005102,0x4000000,0x200000, --0xe0005c00,0x4000000,0x200000,0xe000622a,0x6804400,0x962540,0xe000622a,0x7c00100,0x230400,0xe0008838,0x7c00100,0x220400,0xe0008838,0x7c00100,0x250400,0xe0008e00, --0x24000000,0x810000,0xe0008e00,0x24000000,0x1410000,0xe0008e00,0x24000002,0x400000,0xe0008e00,0x2c000010,0xb48000,0xe000933e,0x7c00100,0x230400,0xe000933e,0xc000010, --0x448000,0xe0009519,0x7c00100,0x220400,0xe0009519,0x7c00100,0x23040f,0xe0009519,0x7c00100,0x250400,0xe000c178,0x2802100,0x962460,0xe000c941,0x2802100,0x962460, --0xe000c941,0x2806400,0x962460,0xe000c941,0x7c00100,0x230400,0xe000d202,0x2802400,0x962460,0xe000d202,0x7c00100,0x230400,0xe000d202,0x7c00500,0x230400,0xe000dc99, --0x4000000,0x200000,0xe000e001,0x2802100,0x962460,0xe000e001,0x2802400,0x962460,0xe000fda1,0x7c00100,0x1830000,0xe0013502,0x2802400,0x962460,0xe0013502,0x4000000, --0x200000,0xe0013502,0x7c00100,0x230400,0xe0013502,0x80000000,0x218960,0xe00136c1,0x4000000,0x200000,0xe00136c1,0x7c00100,0x230400,0xe001370b,0x7c00100,0x230400, --0xe0013919,0x7c00500,0x220400,0xe0013919,0x7c00500,0x22040f,0xe0013919,0x7c00d00,0x23040f,0xe0013a19,0x7c00100,0x220400,0xe0013a19,0x7c00100,0x230400,0xe0013bc2, --0x2802400,0x962460,0xe0013bc2,0x7c00100,0x230400,0xe0013bc2,0xc000010,0x248000,0xe0013cc3,0x6800000,0x1329800,0xe0013cc3,0x7c00100,0x230400,0xe0013dc4,0x2802400, --0x962460,0xe0013dc4,0x7c00100,0x230400,0xe0013e28,0x7c00100,0x230400,0xe0013fc5,0x7c00100,0x220400,0xe0013fc5,0x7c00100,0x250400,0xe0014000,0x4000000,0x200000, --0xe0014001,0x2802400,0x962460,0xe00a4711,0x7c40300,0xe30000,0xe00a5e11,0x7c40300,0xe30000,0xe00ac511,0x7c40300,0xe30000,0xe00acf00,0x4000000,0xe00000,0xe00ae300, --0x4000000,0xe00000,0xe00b0500,0x4000000,0xe00000,0xe00b1314,0x7c00100,0xe30000,0xe00b1316,0x7c00100,0xe30c00,0xe00b2a00,0x4000000,0xe00000,0xe00b2a00,0x4000000, --0x2800000,0xe00b3816,0x7c00500,0x230c00,0xe0808328,0x2802400,0x962460}; -+0,0xc167,0,0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667,0,0,0xc767,0,0, -+0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcc67,0,0xe00000,0xcf67,0,0xe00000,0xd067, -+0,0xe00000,0xd367,0,0,0xd467,0,0,0xd567,0,0,0xd667,0,0,0xd867,0, -+0,0xda67,0,0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0,0xde67,0,0, -+0xdf67,0,0,0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367,0,0xe00000,0xe467, -+0,0,0xe567,0,0,0xe667,0,0,0xe767,0,0,0xe867,0,0,0xe967,0, -+0,0xea67,0,0,0xeb67,0,0,0xec67,0,0,0xed67,0,0,0xee67,0,0, -+0xef67,0,0,0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667,0,0,0xf767, -+0,0,0xf867,0,0,0xf967,0,0,0xfa67,0,0xe00000,0xfb67,0,0,0xfc67,0, -+0,0xfd67,0,0,0xfe67,0,0,0x10167,0,0,0x10267,0,0,0x10367,0,0, -+0x10467,0,0,0x10667,0,0,0x10767,0,0,0x10867,0,0,0x10967,0,0,0x10a67, -+0,0,0x10b67,0,0,0x10c67,0,0,0x10d67,0,0,0x10e67,0,0,0x10f67,0, -+0,0x11067,0,0,0x11367,0,0,0x11467,0,0,0x11567,0,0,0x11667,0,0, -+0x11767,0,0,0x11867,0,0,0x11967,0,0xe00000,0x11a67,0,0,0x11b67,0,0,0x11c67, -+0,0,0x11d67,0,0,0x11e67,0,0,0x11f67,0,0,0x12067,0,0,0x12167,0, -+0,0x12267,0,0,0x12367,0,0,0x12467,0,0,0x12567,0,0,0x12667,0,0, -+0x12767,0,0,0x12867,0,0,0x12967,0,0,0x12a67,0,0xe00000,0x12b67,0,0,0x12c67, -+0,0,0x12d67,0,0,0x12f67,0,0,0x13067,0,0,0x13167,0,0,0x13267,0, -+0,0x13367,0,0,0x13467,0,0,0x13567,0,0,0x13667,0,0,0x13767,0,0, -+0x13867,0,0,0x13967,0,0,0x13a67,0,0,0x13b67,0,0,0x13c67,0,0,0x13d67, -+0,0,0x13f67,0,0,0x14067,0,0,0x14167,0,0,0x14367,0,0,0x14467,0, -+0,0x14567,0,0,0x14667,0,0,0x14767,0,0,0xa0067,0,0xe00000,0xa4f67,0,0xe00000, -+0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067,0,0xe00000,0xb1267,0,0xe00000,0xb2e67, -+0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100,0x40000001, -+0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x200000,0x11000200,0x24000008,0x1710000, -+0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402,0x11000319, -+0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419,0x7c00100, -+0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100,0x230400, -+0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x200400,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400,0x11000600,0x7c00500,0x530400,0x11000600, -+0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800,0x6800010,0x201001,0x11000800,0x7c00500, -+0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400,0x200002,0x1100080e,0x7000500,0x220402, -+0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400,0x1100080e,0x7c00100,0x250401,0x1100080e, -+0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,0x11000908,0x7c00100,0x220401,0x11000908,0x7c00100, -+0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200400,0x11000a03,0x4000000,0x201000,0x11000a03,0x4000000,0x270000,0x11000a03,0x7c00100,0x220400, -+0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000a03,0xc000010,0x1049400,0x11000b13,0x2802500,0x962460,0x11000b13, -+0x4000000,0x200000,0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100, -+0x2633800,0x11000c00,0x80000000,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000,0x1329400, -+0x11000c02,0x4000000,0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02, -+0x7c00100,0x230402,0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000f01,0x2802400,0x962460,0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400, -+0x962460,0x11000f0a,0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401, -+0x11001004,0x2802100,0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000,0x11001004, -+0x6800100,0x962540,0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110,0x2802400, -+0x962460,0x11001110,0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100,0x962460, -+0x1100120f,0x2802400,0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460,0x1100131f, -+0x2802400,0x962460,0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100, -+0x962541,0x1100131f,0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100,0x962540, -+0x11001423,0x6800100,0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461,0x11001524, -+0x2806400,0x962460,0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615,0x2806400, -+0x962460,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,0x2806400,0x962460, -+0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,0x1600000,0x11001926, -+0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,0x11001926,0x6800000, -+0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,0x2802100,0x1862460, -+0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,0x1830002,0x11001a18, -+0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12,0x7c00100, -+0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400,0x200001, -+0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,0x918820,0x11002800, -+0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x445801,0x11002800,0x4000001,0x445802,0x11002800,0x4000001,0xc4000b,0x11002800,0x6800000, -+0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,0x24000000,0x1410000, -+0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000,0x11002800, -+0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x1248002,0x11002800,0x40000001, -+0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0x2a65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,0x4000000,0x20000f, -+0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,0x141000e,0x11002900, -+0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,0x11002a00,0x4000000, -+0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,0x4000000,0x20000f, -+0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,0x230402,0x11002c00, -+0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,0x11002d00,0x4000000, -+0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,0x24000020,0x200000, -+0x11002e00,0x24000020,0x200001,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,0x200002,0x11002f00,0x24000020,0xf00000,0x11002f00, -+0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000,0x24000020, -+0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,0x4000000,0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000,0x200000, -+0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000,0x11003700, -+0x24000000,0x2800000,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,0x24000000, -+0xe00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x2800000,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020,0x200005, -+0x11005013,0x7c00100,0x2633801,0x11005013,0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005102,0x7000100,0x230408,0x11005102, -+0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460,0x11005500,0x80000, -+0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502,0x7c00100,0x230409, -+0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,0x100002,0x11020200, -+0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x200000,0x11020200,0x24000000,0x1400000,0x11020200,0x24000000, -+0x1500000,0x11020200,0x24000000,0x1600000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,0x7c00100,0x220400, -+0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,0x220402,0x11020319, -+0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,0x11020600,0x4000400, -+0x100002,0x11020600,0x4000400,0x200400,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701,0x2802400,0x962461, -+0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,0x220401,0x11020908, -+0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002,0x11022800,0x24000000, -+0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800,0x24000002,0x370000, -+0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,0x100000,0x11022800, -+0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,0x11022c00,0x4000000, -+0x100002,0x11022c00,0x4000000,0x10000f,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x7c00120,0x120405,0x11022c0e,0x7c00100,0x250401, -+0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,0x150402,0x11022e00, -+0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001,0x11022f00,0x24000020,0x100002,0x11023000,0x24000000, -+0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300,0x4000100,0x150403,0x11023400,0x24000000,0x100000, -+0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020,0x100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000,0x11023700, -+0x24000020,0x100000,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,0,0,0x11025600,0x4000000,0x100000,0x11042a00,0x4000000, -+0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,0xe3040a,0x11045712,0x7c80100,0xe3040a,0x11045716,0x7c00100,0xe30c0a, -+0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x445811,0x11065700,0x4000000,0x810011,0x11065700,0x4000000,0xe00011,0x11065700,0x4000000,0x1410011,0x11065700, -+0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,0x4000008,0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700,0x4000010, -+0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,0xe00011,0x11065700,0x4000400,0xe00011,0x11065700,0x4000420,0xe00011, -+0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe29811,0x11065700,0xc000010,0x80ac11,0x11065700,0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411,0x11065719, -+0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,0x6800000,0x201c00,0x11080100,0x68000c0,0x1329800,0x11080100,0x24000000, -+0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,0x1500000,0x11080100,0x24000000,0x1600000,0x11080100,0x24000000,0x1b00000, -+0x11080100,0x24000000,0x2410000,0x11080100,0x24000006,0xd70000,0x11080100,0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400,0x11080100, -+0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,0x11080100,0x24000020,0x200000,0x11080100,0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100,0x24000400, -+0x200000,0x11080100,0x24000420,0x200000,0x11080100,0x2c000010,0xb48000,0x11080100,0x2c000010,0x100ac00,0x11080100,0x44000001,0x1a45800,0x11080119,0x7c00100,0x220400, -+0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,0x220400,0x11080119,0x7c001c0,0x250400,0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000,0x11080200, -+0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,0x11080200,0x24000020,0x200000,0x110a1e12,0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000,0x24000000, -+0xe00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001,0x110a3700,0x24000000,0x200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000,0xe00002, -+0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,0x110a3d11,0x7c00900,0x1230400,0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000,0x110a3e14, -+0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,0x7c00900,0x1230000,0x110a3e14,0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16,0x7c00100, -+0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,0x1230c00,0x110a3f16,0x7c00900,0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100,0xe30402, -+0x110a4112,0x7c80100,0xe30402,0x110a4400,0x4000000,0xe00000,0x110a4412,0x4000000,0xe00002,0x110a4412,0x4000000,0xe00003,0x110a4416,0x4000000,0xe00c03,0x110a4500, -+0x4000000,0xe0000d,0x110a4516,0x4000000,0xe00c0d,0x110a4711,0x7c40300,0xe30000,0x110a4f11,0x7c00300,0xe30001,0x110a4f11,0x7c40300,0xe30000,0x110a5300,0x4000000, -+0x810010,0x110a5300,0x4000000,0xe00002,0x110a5300,0x4000000,0xe00010,0x110a5300,0x4000000,0x1410010,0x110a5300,0x4000002,0xe70010,0x110a5300,0x4000008,0x810010, -+0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,0x110a5300,0x6800000,0xe01c10,0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c,0x110a5400, -+0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,0x4000000,0x160000c,0x110a5400,0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400,0x4000010, -+0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,0x127100c,0x110a5400,0x4000020,0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010,0x80ac0c, -+0x110a5400,0xc000010,0xb4800c,0x11400c0c,0x4000010,0xb00000,0x11400c0c,0x4000010,0x1071400,0x11400c17,0xc000010,0xb48000,0x11400c1e,0x7c00900,0x230400,0x11400f4b, -+0xc000010,0x448000,0x11400f5f,0xc000010,0x448000,0x11401d94,0x4000000,0x200000,0x11403dca,0x4000000,0xe00000,0x114457bf,0x4000004,0x120000a,0x114457bf,0x4000008, -+0x81000a,0x114457bf,0x4000008,0x141000a,0x114457bf,0x4000010,0x87000a,0x114457bf,0xc000010,0x84800a,0x114457c8,0x3802500,0x126246a,0x114457c8,0x7c00d00,0x2530c0a, -+0x114a3dbf,0x24000000,0x810000,0x114a3dbf,0x24000000,0x1410000,0x114a3dbf,0x24000008,0x810000,0x114a3dbf,0x24000008,0x1410000,0x114a3dbf,0x24000010,0x870000,0x114a3dbf, -+0x2c000010,0x848000,0x114a3dc5,0x4000000,0xe00000,0x114a3dc5,0x24000000,0xe00000,0x114a3dc5,0x24000002,0xe00000,0x114a3dc5,0x24000002,0x1200000,0x114a3dc5,0x24000008, -+0x810000,0x114a3dc5,0x24000008,0x1410000,0x114a3dc8,0x7c00900,0x930c00,0x114a3dc8,0x7c00900,0xe30c00,0x114a3dca,0x7c00300,0xe30000,0x114a3ec8,0x7000400,0x1200c02, -+0x114a3fbf,0x4000004,0x1200000,0x114a3fc8,0x7c00d00,0x2530c00,0x114a42ca,0x4000000,0xe00000,0x114a42ca,0x4000000,0xe0000f,0x114a44ca,0x4000000,0xe00002,0x114a44ca, -+0x4000000,0xe00003,0x114a45ca,0x4000000,0xe00002,0x114a45ca,0x4000000,0xe0000d,0x11505103,0x24000000,0x810000,0x11505103,0x24000000,0x1410000,0x1180090a,0x2802400, -+0x962460,0x11800c27,0x2802100,0x962460,0x11800c27,0x2802500,0x962460,0x11800f32,0x2802400,0x962460,0x11800f3f,0x2802400,0x962460,0x11820700,0x2802400,0x962460, -+0x11820700,0x2802500,0x962460,0x118a3dcb,0x2802400,0x962460,0x118a3ec8,0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460,0x11c00c2c, -+0x6800000,0x1329800,0x11c00c30,0xc000010,0xb48000,0x11c00f78,0x6800000,0x1329800,0x11c0107d,0x6800000,0x1329800,0x11c01181,0x6800000,0x1329800,0x11c01285,0x6800000, -+0x1329800,0x11c01489,0x4000000,0x200000,0x11c01489,0x6800000,0x1329800,0x11c0168d,0x6800000,0x1329800,0x11d05107,0x7c00100,0x230408,0x20000067,0x1000,0, -+0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,0x2802100,0x962461,0x20001b27,0x2802400,0x962460,0x20001b27, -+0x2802500,0x962460,0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,0x400000,0x20001b27,0x4000000, -+0x500000,0x20001b27,0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,0x20001b27,0x4000010,0xb00000, -+0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,0x7c00100,0x230400,0x20001b27, -+0x7c00100,0x230401,0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900000,0x20004c67,0,0x1900000,0x20004d67,0, -+0x1900000,0x20006d67,0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100,0x1f304c1, -+0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,0x7c00100,0x220401,0x30000419, -+0x7c00100,0x250400,0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200400,0x30000600,0x7c00500,0x230400,0x30000605,0x4000400, -+0x200400,0x3000080e,0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,0x30000908,0x7c00100,0x250400, -+0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006,0x400400,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,0x2802100,0x962460,0x30000d22, -+0x2802400,0x962460,0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,0x7c00100,0x230400,0x30000d22,0xc000010, -+0x248000,0x30000d22,0x80000000,0x218960,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,0x30001821,0x2806400,0x962460, -+0x30001821,0x4000000,0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,0x2802100,0x962460,0x30001b27, -+0x2802400,0x962460,0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,0x1862460,0x30001c1c,0x2802400, -+0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,0x30001c1c,0x7c00100,0x1830000, -+0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,0x4000010,0x400000,0x30001f0b, -+0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000000,0x200000,0x30002128,0x7c00100, -+0x230400,0x30002128,0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x445800,0x3000221d,0x7c00100,0x230400, -+0x30002300,0x4000010,0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,0x2806400,0x1862460,0x30002417, -+0x2882000,0x1862460,0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,0x400000,0x30002417,0x4000010, -+0x1200000,0x30002417,0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,0x3000251b,0x80000,0xc18820, -+0x3000251b,0x2802100,0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,0x3000251b,0x4000010,0x400000,0x3000251b, -+0x4000010,0xb70000,0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,0x7c00900,0x230400,0x3000251b,0xc000010, -+0xb48000,0x3000251b,0x12882000,0x962460,0x30002800,0x24000000,0x200000,0x30002800,0x2c000010,0x1248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460, -+0x30002c00,0x4000000,0x200000,0x30002c00,0x7c00100,0x220405,0x30002d19,0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100, -+0x24000000,0x200000,0x30003600,0x24000000,0x200000,0x30003700,0x24000000,0x200000,0x3000392e,0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0, -+0x918820,0x30020600,0x4000400,0x500400,0x30020701,0x2802400,0x962460,0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002, -+0x300a3b11,0x4020000,0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611, -+0x7c40300,0xe30000,0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929,0x4000000,0xe00000,0x3040259a,0x4000010,0x400000,0x3040259a,0x4000010, -+0xb70000,0x3040259a,0xc000010,0xb48000,0x304028ba,0x4000001,0xc41c0b,0x304a3dca,0x4000000,0xe00000,0x30800c27,0x2802100,0x962460,0x30c01c92,0x6800000,0x1329800, -+0x3100080e,0x7c00120,0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000,0x3100581e,0x7c00100,0x230400,0x3100590d, -+0x7c00100,0x230400,0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00,0x80000,0x918820,0x31005c00,0x2802000, -+0x962460,0x31005c00,0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000,0x962540,0x31005c00,0x6800400,0x962540, -+0x31005c01,0x2802400,0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405,0x31005d00,0x7c00120,0x250405,0x31006000, -+0x82000,0x962460,0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419,0x7c00100,0x250400,0x3200080e,0x4000020, -+0x200000,0x3200080e,0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100,0x250400,0x32000c02,0x7c00100,0x230400, -+0x32000e25,0x7c00100,0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820,0x32002800,0x4000001,0x445802,0x32002800, -+0x24000000,0x200000,0x32002800,0x24000000,0x1500002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919,0x7c00100,0x22040f,0x32002a00,0x4000000, -+0x1600000,0x32002b01,0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000,0x200000,0x32002c00,0x4000020,0x200000, -+0x32002c00,0x4000020,0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000,0x32002f00,0x24000020,0x200000,0x32003000, -+0x24000000,0x200000,0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000, -+0x200000,0x32003800,0x24000000,0x810000,0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400, -+0x32006108,0x7c00100,0x250400,0x3200622a,0x2802100,0x962460,0x3200622a,0x2806400,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b, -+0x6804000,0x962540,0x3200632b,0x7c00100,0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100, -+0x230400,0x32006600,0x24000020,0x200000,0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000, -+0x32006900,0x24000020,0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300, -+0x4000000,0x100000,0x32026c01,0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020, -+0x1410000,0x32086900,0x24000020,0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,0xe30010, -+0x320a3e14,0x7c00100,0x2530000,0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,0x320a6b16, -+0x7c00100,0x2530c00,0x32406396,0xc000010,0x448000,0x324a3dcd,0x4000000,0xe00000,0x324a3dcd,0x7c00100,0x1230400,0x324a3fc8,0x4000002,0x1200c00,0x324a53c5,0x24000000, -+0xe00000,0x32820701,0x2802000,0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200400,0x4000080e,0x7c00100,0x220400, -+0x4000080e,0x7c00100,0x250400,0x4000080e,0x7c00100,0x250402,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02, -+0x4000000,0x200000,0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000c02,0x80000000,0x218960,0x40000d22,0x7c00100,0x230400,0x40000f0a,0x7c00100, -+0x230400,0x40001004,0x7c00100,0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,0x1600000, -+0x4000120f,0x7c00100,0x230400,0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,0x40001615, -+0x7c00100,0x230400,0x40002417,0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,0x4000000, -+0x200002,0x40003000,0x24000000,0x200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40005a09,0x7c00100,0x220400,0x40005a09,0x7c00100,0x250400, -+0x40005d00,0x7c00120,0x220405,0x40006f30,0x2802100,0x962460,0x40006f30,0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,0x1329800,0x40006f30, -+0x6800100,0x962540,0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010,0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,0x40007208,0x7c00100, -+0x220400,0x4000720e,0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e,0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,0x7c00500,0x220400, -+0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007400,0x4000000,0x200000,0x40007531,0x7c00100,0x230400,0x40007631, -+0x7c00100,0x230400,0x40007835,0x4000010,0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,0x40007a32,0x6800000,0x1329800,0x40007a32,0x7c00100, -+0x230400,0x40007b2f,0x7c00100,0x230400,0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,0x2802400,0xc62460,0x40023300,0x4000000,0x200000, -+0x40027d01,0x12882000,0x962460,0x400a3700,0x24000000,0x200000,0x400a3700,0x24000000,0xe00000,0x400a4400,0x4000000,0xe0000d,0x400a4412,0x4000000,0xe00002,0x400a4412, -+0x4000000,0xe00003,0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,0x4000000,0x1410010,0x40507709,0x4000000,0x200000,0x4050770c,0x4000000, -+0x400000,0x4050770f,0x4000000,0x200000,0x4050770f,0x4000000,0x400000,0x40c01489,0x4000000,0x200000,0x40d05107,0x4000000,0x200000,0x41000419,0x7c00100,0x220400, -+0x41000419,0x7c00100,0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13, -+0x2802000,0x962460,0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0x1500000,0x41000c02,0xc000010, -+0xb48000,0x41000f0a,0x7c00100,0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x22040f, -+0x41001d0c,0x7c00100,0x230400,0x41001f0b,0x2802400,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800, -+0x24000000,0x400000,0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120, -+0x220405,0x41003000,0x24000000,0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0xe00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000, -+0x41006600,0x24000020,0x810000,0x41006600,0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e, -+0x2802000,0x962460,0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100, -+0x962460,0x41008137,0x4000000,0x200000,0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000, -+0x41008407,0x4000000,0x400000,0x41008407,0x4000000,0xb00000,0x41008407,0x7c00100,0x220400,0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b, -+0x4000000,0x200000,0x4100860b,0x7c00100,0x230400,0x4100870c,0x7c00100,0x220400,0x41008838,0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000, -+0x962460,0x41008939,0x2802100,0x962460,0x41008939,0x2806000,0x962460,0x41008939,0x4000000,0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400, -+0x41008939,0xc000010,0x448000,0x41008a00,0x4000400,0x200400,0x41008b3b,0x4000000,0x1800000,0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b, -+0x7e00100,0x1830000,0x41008c3d,0x4000010,0x400000,0x41008c3d,0x7c00100,0x230400,0x41008d0e,0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100, -+0x22040f,0x41008e00,0x24000000,0x200000,0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802100,0x962460, -+0x41008f3a,0x2806000,0x962460,0x41008f3a,0x4000000,0x200000,0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,0x7c00100,0x230400,0x4100903c, -+0x7c00100,0x23040f,0x41020701,0x2802000,0x962460,0x41020701,0x2802000,0xc62460,0x410a3700,0x24000000,0x200000,0x410a3700,0x24000000,0xe00000,0x410a4412,0x4000000, -+0xe00003,0x410a4711,0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,0x4000000,0x800010,0x410a9100,0x4000000,0x810010,0x410a9100,0x4000000,0x870010, -+0x410a9100,0x4000000,0xb00010,0x410a9100,0x4000000,0xf00010,0x410a9100,0x4000000,0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100, -+0x4000000,0x1410010,0x41408ad0,0x4000400,0x200000,0x414a82ca,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,0x41c01489,0x6800000,0x1329800,0x50000419,0x7c00100, -+0x220400,0x50000419,0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,0x7c00100,0x250400,0x50000b13,0x2802500,0x962460, -+0x50000f0a,0x7c00100,0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,0x962460,0x50002c00,0x4000000,0x200000,0x50002c19, -+0x7c00100,0x220400,0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,0x50003700,0x24000000,0x200000,0x50005d00,0x7c00120, -+0x220405,0x50005d00,0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,0x24000020,0x200000,0x50007300,0x24000000,0x200000, -+0x50008301,0x2802400,0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,0x200000,0x50009257,0x4000010,0x1071400,0x50009257, -+0x6800000,0x1329800,0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100, -+0x962460,0x5000933e,0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,0x4000010,0x400000,0x5000933e,0x6800000,0x1329800, -+0x5000933e,0x6800100,0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e, -+0xc000010,0x448000,0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200400,0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100, -+0x230400,0x5000965a,0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,0x7c00100,0x230400,0x50009865,0x7c00100,0x230400, -+0x50009965,0x4000010,0x400000,0x50009965,0x7c00100,0x230400,0x50409aca,0x4000000,0x200000,0x5100080e,0x7c00100,0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02, -+0x2802100,0x962460,0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500, -+0x230400,0x51001110,0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,0x2802100,0x962460,0x51001524,0x4000000,0x200000, -+0x51001524,0x7c00100,0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,0x1500000,0x5100171a,0x7c00100,0x230400,0x51001b27, -+0x4000000,0x200000,0x51001b27,0x4000000,0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,0x7c00100,0x230400,0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802500, -+0x1862460,0x51001c1c,0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,0x6800100,0x1862400,0x51001c1c,0x6800100,0x1862540, -+0x51001c1c,0x6800500,0x1862400,0x51001c1c,0x7c00100,0x1830000,0x5100251b,0x7c00100,0x230400,0x51002619,0x7c00100,0x220400,0x51002619,0x7c00100,0x250400,0x51002800, -+0x80020,0x218820,0x51002c00,0x4000000,0x200000,0x51002d19,0x7c00100,0x230400,0x51003700,0x24000000,0x200000,0x51003700,0x24000000,0xe00000,0x51005201,0x2802400, -+0x962460,0x51005c00,0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,0x7c00100,0x250400,0x51006600,0x24000020,0x200000,0x51006600,0x24000020,0x810000, -+0x51006600,0x24000020,0x1410000,0x51007300,0x24000000,0x200000,0x51007300,0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301,0x2802000,0x962460,0x51008301, -+0x2802400,0x962460,0x51008301,0x2802400,0xc62460,0x51008a00,0x7c00500,0x230400,0x51008e00,0x24000000,0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000, -+0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00,0x24000000,0x1410000,0x51008e00,0x24000000,0x1710000,0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400, -+0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100,0x220400,0x51009419,0x7c00100,0x22040e,0x51009419,0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500, -+0x4000400,0x200400,0x51009500,0x7c00500,0x230400,0x51009519,0x7c00100,0x220400,0x51009519,0x7c00100,0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100, -+0x250400,0x51009b71,0x2802100,0x962460,0x51009b71,0x6800000,0x1329800,0x51009b71,0x6800100,0x962540,0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400, -+0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400,0x962460,0x51009c52,0x2802d00,0x962460,0x51009c52,0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52, -+0x6800100,0x962540,0x51009c52,0x7c00100,0x230400,0x51009c52,0xc000010,0x448000,0x51009d6d,0x6800000,0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500, -+0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d,0xc000010,0x448000,0x51009e08,0x2802100,0x962460,0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800, -+0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900,0x230400,0x51009f63,0xc000010,0x448000,0x51009f63,0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008, -+0x2802400,0x962460,0x5100a008,0x4000000,0x200000,0x5100a008,0x7c00100,0x220400,0x5100a008,0x7c00100,0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500, -+0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f,0x6800000,0x1329800,0x5100a16f,0x6800100,0x962540,0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000, -+0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400,0x962460,0x5100a24f,0x6800000,0x1329800,0x5100a24f,0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e, -+0x2802100,0x962460,0x5100a36e,0x4000000,0x200000,0x5100a36e,0x6800100,0x962540,0x5100a36e,0x6804400,0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100, -+0x962460,0x5100a442,0x4000000,0x200000,0x5100a442,0x6800000,0x1329800,0x5100a442,0x6800100,0x962540,0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000, -+0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000,0x200000,0x5100a601,0x2802000,0x962460,0x5100a76b,0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c, -+0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000,0xe00000,0x5100ab00,0x4000000,0xe00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020, -+0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000,0x510a7300,0x24000000,0x200000,0x510aaa00,0x4000000,0xe00000,0x5140a2fe,0x4000400,0x400000, -+0x514a82ca,0x4000000,0xe00000,0x51802bbc,0x2802000,0x962460,0x51c00908,0x2802400,0x962460,0x51c0a008,0x2802400,0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a, -+0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400,0x52001004,0x4000000,0x1600000,0x52001b00,0x4000000,0x200000,0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100, -+0x1862400,0x52001c1c,0x6800500,0x1862400,0x52001e12,0x7c00100,0x2230500,0x52001e12,0x7c00100,0x2330520,0x52002128,0x4000002,0x400000,0x52002128,0x7c00100,0x230400, -+0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000,0x1600000,0x52002d00,0x4000000,0x200006,0x52003000,0x24000000,0x200000,0x52006108,0x7c00100,0x220400,0x52006108, -+0x7c00100,0x250400,0x52008301,0x2802400,0x962460,0x52008407,0x2802400,0x962460,0x52008407,0x7c00100,0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000, -+0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00,0x24000000,0x400000,0x52009419,0x7c00100,0x250400,0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460, -+0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400,0x962460,0x5200ac7e,0x4000010,0x200000,0x5200ac7e,0x7c00100,0x230400,0x5200ac7e,0xc000010,0x248000,0x5200ad28, -+0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460,0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000,0x1862460,0x5200ae6a,0x4000000, -+0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a,0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000,0x5200ae6a,0x7c00900,0x1830000, -+0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010,0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182,0x2802400,0x962460,0x5200b182, -+0x4000000,0x200000,0x5200b182,0x4000010,0x400000,0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400,0x962460,0x5200b30a,0x4000000, -+0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e,0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000,0x5200b54e,0x4000010,0x400000, -+0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100,0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e,0xc000010,0x448000,0x5200b61c, -+0x4000000,0x1800000,0x5200b61c,0x6800500,0x1862400,0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100,0x1862460,0x5200b77f,0x2802400, -+0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f,0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000,0x5200b77f,0x7c00900,0x1830000, -+0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100,0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873,0x6800100,0x962540,0x5200b873, -+0x6800400,0x962540,0x5200b873,0x7c00100,0x230400,0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100,0x2330520,0x5200ba74,0x4000000, -+0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74,0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400,0x5200bc75,0x4000000,0x400000, -+0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100,0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a,0x4000000,0x200000,0x5200be7a, -+0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400,0x5200c002,0x4000000,0x200000,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400, -+0x962460,0x5200c178,0x4000000,0x200000,0x5200c178,0x6800100,0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,0x5200c178,0xc000010,0x448000, -+0x5200c178,0x80000000,0x218960,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00, -+0x4000000,0x100006,0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,0x24000000,0x2800000,0x52024400,0x4000000,0x100000,0x52027300,0x24000000, -+0x100000,0x5202c300,0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400, -+0x5202c300,0x4000100,0x15040d,0x520a1e12,0x7c00100,0x2130480,0x520a3700,0x24000000,0xe00000,0x520a3800,0x24000000,0x100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11, -+0x7c00300,0xe30001,0x520a7300,0x24000000,0x100000,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac414,0x4000000, -+0xe0000d,0x520ac511,0x7c40300,0xe30000,0x5240af9c,0x7c00100,0x230400,0x5240afa1,0x4000400,0x200000,0x5240afa3,0x6800400,0x962540,0x5240afa3,0x7c00100,0x230400, -+0x5240afad,0x7c00100,0x230400,0x5240afaf,0x7c00100,0x230400,0x5240b2d2,0x4000000,0x200000,0x5240b2d2,0x4000000,0x1500000,0x5240b2dd,0x4000000,0x200000,0x5240b2eb, -+0x4000000,0x200000,0x524a44ca,0x4000000,0xe00003,0x5250b501,0x7c00900,0x230400,0x5280af9c,0x2802400,0x962460,0x5280af9d,0x2802400,0x962460,0x5280afa3,0x2802400, -+0x962460,0x5280afa5,0x2802400,0x962460,0x5280afa7,0x2802400,0x962460,0x52c0b3f8,0x2802400,0x962460,0x52c0b3fc,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460, -+0x60000c02,0x7c00100,0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,0x6000171a, -+0x7c00100,0x230400,0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802400, -+0x962460,0x60002919,0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x200000,0x60003000,0x24000000,0xe00000,0x60003700,0x24000000,0x200000, -+0x60003800,0x24000000,0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301, -+0x2802400,0xc62460,0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100, -+0x220400,0x6000a008,0x7c00100,0x250400,0x6000c300,0x4000000,0x2703580,0x6000c654,0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400, -+0x6000c73f,0x2802000,0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f, -+0x7c00100,0x230400,0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806400,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010, -+0x200000,0x6000c941,0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400, -+0x6000cc00,0x4000000,0xe00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300, -+0x4000100,0x15040d,0x600a3000,0x24000000,0x200000,0x600a3000,0x24000000,0xe00000,0x600a3700,0x24000000,0x200000,0x600a3800,0x24000000,0x200000,0x600a3800,0x24000000, -+0x2800000,0x600a4305,0x7c00100,0xe30400,0x600ac300,0x4000000,0x100000,0x600ac400,0x4000000,0xe0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00, -+0x600acc00,0x4000000,0xe00000,0x600acd00,0x4000000,0x200000,0x600acd00,0x4000000,0xe00000,0x600acd00,0x4000000,0x2800000,0x600ace00,0x4000000,0xe00000,0x600ace00, -+0x4000000,0x2800000,0x600acf00,0x4000000,0xe00000,0x600acf00,0x4000000,0x2800000,0x600ad111,0x7c40300,0xe30000,0x604ac4ca,0x4000000,0xe00003,0x61000a03,0x4000000, -+0x1600000,0x61000c02,0x80000000,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,0x61001d0c,0x7c00100,0x230400,0x61001d0c,0x7c00100,0x250400, -+0x61006600,0x24000020,0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,0x7c00100,0x220400,0x61008e00,0x24000000,0x200000,0x61008e00, -+0x24000000,0x400000,0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,0x220400,0x61009519,0x7c00100,0x250400,0x61009519,0x7c00500, -+0x22040f,0x61009b71,0x2802100,0x962460,0x61009b71,0x2806400,0x962460,0x61009b71,0x7c00100,0x230400,0x6100a008,0x2802100,0x962460,0x6100c300,0x4000000,0x20000f, -+0x6100cd00,0x4000000,0x200000,0x6100d202,0x2802400,0x962460,0x6100d202,0x2802500,0x962460,0x6100d202,0x7c00100,0x230400,0x6100d302,0x4000020,0x200000,0x6100d302, -+0x7c00120,0x230405,0x6100d476,0x2802100,0x962460,0x6100d476,0x2802100,0x962461,0x6100d476,0x2806400,0x962460,0x6100d476,0x4000000,0x400000,0x6100d476,0x6800000, -+0x1329800,0x6100d476,0x6800100,0x962540,0x6100d476,0x7c00100,0x230400,0x6100d476,0xc000010,0x448000,0x6100d573,0x2802100,0x962460,0x6100d573,0x2806400,0x962460, -+0x6100d573,0x6800100,0x962540,0x6100d573,0x7c00100,0x230400,0x6100d573,0x7c00900,0x230400,0x6100d573,0xc000010,0x448000,0x6100d68d,0x7c00100,0x230400,0x6100d756, -+0x7c00100,0x230400,0x6100d85c,0x2802500,0x962460,0x6100d85c,0x6800100,0x962540,0x6100d85c,0x7c00100,0x230400,0x6100d85c,0x7c00500,0x230400,0x6100d997,0x2802100, -+0x962460,0x6100d997,0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800,0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540, -+0x6100d997,0x7c00100,0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71, -+0x4000000,0x200000,0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400, -+0x962540,0x6100dc99,0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x610ace00,0x4000000,0xe00000,0x6140afa1,0x7c00100,0x230400, -+0x6140afa3,0x7c00100,0x230400,0x6180af9e,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63002800,0x80000,0x918820,0x63c00c15,0x80000,0x918820,0x7000080e, -+0x7c00100,0x250400,0x70000a03,0x4000000,0x200000,0x70000c00,0x80000000,0x218960,0x70000f0a,0x7c00100,0x230400,0x70001004,0x7c00100,0x230400,0x70001524,0x2802100, -+0x962460,0x70001524,0x7c00100,0x230400,0x70001615,0x2802100,0x962460,0x7000171a,0x2802100,0x962460,0x70001821,0x6800000,0x1329800,0x70002320,0x7c00100,0x230400, -+0x70002a00,0x4000000,0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,0x70003800,0x24000000,0xe00000,0x70005201,0x2802400,0x962460,0x7000581e, -+0x7c00100,0x230400,0x70006108,0x7c00100,0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400,0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000, -+0x200000,0x70008301,0x2802100,0x962460,0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000,0x70008e00,0x24000000,0x400000,0x70008e00,0x24000002,0x400000, -+0x70008e00,0x24000008,0x1410000,0x70008e00,0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100,0x220400,0x70009519,0x7c00100,0x230400,0x70009519, -+0x7c00100,0x250400,0x70009865,0x7c00100,0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100,0x230400,0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100, -+0x250400,0x7000a008,0x7c00500,0x22040f,0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802500,0x1862460,0x7000b61c,0x6800500,0x1862400,0x7000b61c,0x7c00100,0x1830000, -+0x7000c300,0x4000000,0x100000,0x7000c941,0x2806000,0x962460,0x7000cc00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00, -+0x4000000,0x2800000,0x7000cf00,0x4000000,0xe00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,0x230400,0x7000d997,0x7c00100,0x230400,0x7000d997,0xc000010, -+0x248000,0x7000dd86,0x2802400,0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,0x7000de9f,0x4000000,0x200000,0x7000de9f,0x7c00100,0x230400, -+0x7000e001,0x2400,0x962460,0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,0x2802100,0x962460,0x7000e187,0x4000000,0x200000,0x7000e187, -+0x7c00100,0x230400,0x7000e187,0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,0x200000,0x7000e489,0x2802100,0x962460,0x7000e489,0x2802400, -+0x962460,0x7000e489,0x6800100,0x962540,0x7000e489,0x6800100,0x962541,0x7000e489,0x6804400,0x962540,0x7000e489,0x7c00100,0x230400,0x7000e489,0x7c00900,0x230400, -+0x7000e59d,0x2802100,0x962460,0x7000e59d,0x2802400,0x962460,0x7000e59d,0x4000000,0x200000,0x7000e59d,0x4000010,0x200000,0x7000e59d,0x6800100,0x962540,0x7000e59d, -+0x6804400,0x962540,0x7000e59d,0x7c00100,0x230400,0x7000e59d,0xc000010,0x448000,0x7000e691,0x2802100,0x962460,0x7000e691,0x2802400,0x962460,0x7000e691,0x2806400, -+0x962460,0x7000e691,0x6800000,0x1329800,0x7000e691,0x6800100,0x962540,0x7000e691,0x7c00100,0x230400,0x7000e700,0x4000400,0x200400,0x7000e70e,0x7c00100,0x220400, -+0x7000e719,0x7c00100,0x220400,0x7000e719,0x7c00500,0x22040f,0x7000e853,0x7c00100,0x230400,0x7000e9a0,0x2802400,0x962460,0x7000e9a0,0x4000000,0x200000,0x7000e9a0, -+0x4000000,0x500000,0x7000e9a0,0x7c00100,0x230400,0x7000ea79,0x2802400,0x962460,0x7000ea79,0x4000000,0x200000,0x7000ea79,0x4000000,0xf00000,0x7000ea79,0x4000010, -+0x400000,0x7000ea79,0x7c00100,0x230400,0x7000eb8c,0x2802400,0x962460,0x7000eb8c,0x4000000,0x200000,0x7000eb8c,0x7c00100,0x230400,0x7000eca3,0x2802100,0x962460, -+0x7000eca3,0x2806400,0x962460,0x7000eca3,0x4000000,0x200000,0x7000eca3,0x6800000,0x1329800,0x7000eca3,0x6800100,0x962540,0x7000eca3,0x7c00100,0x230400,0x7000eca3, -+0xc000010,0x448000,0x7000ed95,0x6800000,0x1329800,0x7000ed95,0x7c00100,0x230400,0x7000ed95,0xc000010,0x448000,0x7000ee1c,0x2802500,0x1862460,0x7000ee1c,0x6800000, -+0x1329800,0x7000ee1c,0x7c00100,0x1830000,0x7000ee1c,0x7c00900,0x1830000,0x7000ef8f,0x4000000,0x200000,0x7000ef8f,0x7c00100,0x230400,0x7000f08e,0x4000000,0x200000, -+0x7000f08e,0x7c00100,0x230400,0x7000f159,0x2802100,0x962460,0x7000f159,0x7c00100,0x230400,0x7000f200,0x4000000,0x200000,0x7000f200,0x4000000,0x1200000,0x7000f200, -+0x4000000,0x1710000,0x7000f34b,0x2802400,0x962460,0x7000f34b,0x4000000,0x200000,0x7000f34b,0x4000010,0x400000,0x7000f34b,0x6800000,0x1329800,0x7000f34b,0x7c00100, -+0x230400,0x7000f34b,0x7c00900,0x230400,0x7000f34b,0xc000010,0x448000,0x7000f490,0x4000000,0x200000,0x7000f490,0x7c00100,0x230400,0x7000f5a5,0x7c00100,0x230400, -+0x7000f67b,0x4000000,0x200000,0x7000f67b,0x4000010,0x200000,0x7000f67b,0x7c00100,0x230400,0x7000f8a6,0x2802100,0x962460,0x7000f8a6,0x2802400,0x962460,0x7000f8a6, -+0x2806400,0x962460,0x7000f8a6,0x4000000,0x500000,0x7000f8a6,0x4000010,0xb00000,0x7000f8a6,0x4000800,0x200000,0x7000f8a6,0x6800100,0x962540,0x7000f8a6,0x6800100, -+0x962541,0x7000f8a6,0x7c00100,0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,0x4000000,0x200000,0x7000fa00,0x4000000,0x200000,0x7000fb9e,0x2802100,0x962460, -+0x7000fb9e,0x2802400,0x962460,0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,0x6800000,0x1329800,0x7000fb9e,0x6800100,0x962540,0x7000fb9e, -+0x6800100,0x962541,0x7000fb9e,0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100, -+0x230400,0x7000fc92,0x7c00100,0x250400,0x700acd00,0x4000000,0xe00000,0x700acd00,0x4000000,0x2800000,0x700ace00,0x4000000,0xe00000,0x700acf00,0x4000000,0xe00000, -+0x700acf00,0x4000000,0x2800000,0x7050df11,0x4000000,0x200000,0x7050f719,0x80000,0x918820,0x7080afa1,0x2802400,0x962460,0x7090df11,0x2802400,0x962460,0x70d0e417, -+0x2802100,0x962460,0x70d0e417,0x2802400,0x962460,0x70d0e417,0x6800100,0x962540,0x70d0ea15,0x4000010,0x400000,0x8000120f,0x7c00100,0x230400,0x80001524,0x7c00100, -+0x230400,0x8000171a,0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,0x4000000,0x200000, -+0x80005208,0x2802400,0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,0x230400,0x80009519, -+0x7c00100,0x250400,0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,0x8000cd00,0x4000000, -+0xe00000,0x8000d202,0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802000,0x962460,0x8000d997,0x2802400,0x962460, -+0x8000d997,0x4000000,0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,0x962460,0x8000e489, -+0x7c00100,0x230400,0x8000e719,0x7c00100,0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,0x8000fda1,0x2802100, -+0x1862460,0x8000fda1,0x2806400,0x1862460,0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862400,0x8000fda1,0x6800100,0x1862540, -+0x8000fda1,0x7c00100,0x1830000,0x8000fda1,0xc000010,0x448000,0x8000fe9c,0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06, -+0x7c00100,0x220400,0x80010165,0x7c00100,0x230400,0x800102a2,0x4000000,0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010, -+0x448000,0x8001044c,0x4000000,0x200000,0x8001044c,0x7c00100,0x220400,0x8001044c,0x7c00100,0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000, -+0x80010670,0x4000010,0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0xe00000,0x800acd00,0x4000000,0x2902460,0x800ace00, -+0x4000000,0xe00000,0x800acf00,0x4000000,0xe00000,0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0xe00000,0x800b0500,0x4000000,0x2800000,0x90001615,0x7c00100, -+0x230400,0x9000171a,0x4000000,0x200000,0x9000171a,0x7c00100,0x230400,0x90003000,0x24000000,0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802400,0x962460, -+0x90008e00,0x24000000,0x400000,0x90009519,0x7c00100,0x250400,0x9000a16f,0x2802100,0x962460,0x9000d200,0x80000000,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202, -+0x2802100,0x962460,0x9000d202,0x7c00100,0x230400,0x9000e59d,0x2802100,0x962460,0x90010500,0x4000000,0xe00000,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400, -+0x962460,0x900107a7,0x2802c00,0x962460,0x900107a7,0x4000000,0x1400000,0x900107a7,0x6800000,0x1329800,0x900107a7,0x7c00100,0x220400,0x900107a7,0x7c00100,0x250400, -+0x900108a8,0x2802100,0x962460,0x900108a8,0x2806400,0x962460,0x900108a8,0x4000000,0x200000,0x900108a8,0x4000000,0x400000,0x900108a8,0x4000010,0x400000,0x900108a8, -+0x6800000,0x1329800,0x900108a8,0x6800100,0x962540,0x900108a8,0x7c00100,0x230400,0x900108a8,0xc000010,0x448000,0x90010908,0x7c00100,0x220400,0x90010a38,0x2802100, -+0x962460,0x90010ca9,0x2802100,0x962460,0x90010ca9,0x4000000,0x500000,0x90010ca9,0x4000010,0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400, -+0x90010d1b,0x4000000,0x500000,0x90010eaa,0x2802100,0x962460,0x90010eaa,0x2802400,0x962460,0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa, -+0x4000000,0x400000,0x90010eaa,0x4000010,0x400000,0x90010eaa,0x6800000,0x1329800,0x90010eaa,0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010, -+0x448000,0x90010fab,0x7c00100,0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300,0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0xe00000, -+0x900acd00,0x4000000,0x2800000,0x900acf00,0x4000000,0xe00000,0x900b0500,0x4000000,0xe00000,0x900b0500,0x4000000,0x2800000,0x900b0b9a,0x7c00900,0x1230400,0x900b109a, -+0x7c00300,0xe30000,0x900b119a,0x7c00300,0xe30000,0x90408e06,0x24000000,0x400000,0xa0001004,0x4000000,0x200000,0xa0001004,0x7c00100,0x230400,0xa000120f,0x2802100, -+0x962460,0xa000120f,0x2802400,0x962460,0xa000171a,0x2802100,0x962460,0xa000171a,0x2806400,0x962460,0xa0002a00,0x4000000,0x1600000,0xa0003000,0x24000000,0x200000, -+0xa000581e,0x7c00100,0x230400,0xa0007300,0x24000000,0x200000,0xa0008301,0x2802400,0x962460,0xa0008e00,0x24000000,0x400000,0xa000cf00,0x4000000,0xe00000,0xa0010500, -+0x4000000,0x200000,0xa00114af,0x2802100,0x962460,0xa00114af,0x2802400,0x962460,0xa00114af,0x2806400,0x962460,0xa00114af,0x6800000,0x1329800,0xa00114af,0x7c00100, -+0x230400,0xa00114af,0x7c00100,0x230560,0xa00116b0,0x2802100,0x962460,0xa00116b0,0x2802800,0x962460,0xa00116b0,0x2806400,0x962460,0xa00116b0,0x4000000,0x400000, -+0xa00116b0,0x4000000,0x500000,0xa00116b0,0x4000010,0x400000,0xa00116b0,0x6800100,0x962540,0xa00116b0,0x7c00100,0x230400,0xa00116b0,0x7c00100,0x230560,0xa00116b0, -+0xc000010,0x448000,0xa0011722,0x7c00100,0x230400,0xa00118b1,0x2802000,0x962460,0xa00118b1,0x2802100,0x962460,0xa00118b1,0x2806400,0x962460,0xa00118b1,0x4000000, -+0x200000,0xa00118b1,0x4000000,0x400000,0xa00118b1,0x4000000,0x500000,0xa00118b1,0x6800100,0x962540,0xa00118b1,0x7c00100,0x230400,0xa00118b1,0x7c00100,0x230560, -+0xa00118b1,0xc000010,0x448000,0xa00a4005,0x7c00100,0xe30400,0xa00a4711,0x7c40300,0xe30000,0xa00ac400,0x4000000,0xe00000,0xa00acb14,0x7c00100,0xe30000,0xa00acf00, -+0x4000000,0xe00000,0xa00b0500,0x4000000,0xe00000,0xa00b0500,0x4000000,0x2800000,0xa00b0b96,0x7c00900,0x1230400,0xa00b1211,0x7c40300,0xe30000,0xa00b1314,0x7c00100, -+0xe30000,0xa00b1596,0x7c00300,0xe30000,0xa040afb7,0x6800400,0x962540,0xa08083b8,0x2802400,0x962460,0xb0000a03,0x7c00100,0x220400,0xb0000b13,0x7c00100,0x2633800, -+0xb0001004,0x2802000,0x962460,0xb0001110,0x4000000,0x200000,0xb0001524,0x2802100,0x962460,0xb0001615,0x4000000,0x500000,0xb000251b,0x7c00100,0x230400,0xb0007300, -+0x24000000,0x200000,0xb0008939,0x4000000,0x200000,0xb0008939,0x7c00100,0x230400,0xb0008e00,0x24000000,0x200000,0xb0008e00,0x24000000,0x400000,0xb0008e00,0x24000010, -+0x400000,0xb0009257,0x2802000,0x962460,0xb0009257,0x4000000,0x1600000,0xb0009519,0x7c00100,0x220400,0xb0009519,0x7c00100,0x250400,0xb0009a00,0x4000000,0x200000, -+0xb000b30a,0x2802100,0x962460,0xb000b30a,0x7c00100,0x230400,0xb000c178,0x80000000,0x218960,0xb000c300,0x4000000,0x200000,0xb000d202,0x2802000,0x962460,0xb000d476, -+0x6800100,0x962540,0xb000d476,0x7c00100,0x230400,0xb000e300,0x4000000,0xe00000,0xb000fda1,0x7c00100,0x1830000,0xb0010eaa,0x2802000,0x962460,0xb00116b0,0x7c00100, -+0x230400,0xb0011900,0x4000000,0xe00000,0xb0011ab2,0x2802100,0x962460,0xb0011ab2,0x2802400,0x962460,0xb0011ab2,0x2806400,0x962460,0xb0011ab2,0x4000000,0x200000, -+0xb0011ab2,0x6800100,0x962540,0xb0011ab2,0x7c00100,0x230400,0xb0011b0c,0x7c00100,0x230400,0xb0011cb3,0x2802100,0x962460,0xb0011cb3,0x2806400,0x962460,0xb0011cb3, -+0x6800000,0x1329800,0xb0011cb3,0x6800100,0x962540,0xb0011cb3,0x7c00100,0x230400,0xb0011db6,0x2802500,0x962460,0xb0011db6,0x6800000,0x1329800,0xb0011db6,0x7c00100, -+0x230400,0xb0011db6,0x7c00500,0x230400,0xb0011e00,0x4000000,0x200000,0xb0011e00,0x4000000,0x1500000,0xb0011fb4,0x2802100,0x962460,0xb0011fb4,0x6800100,0x962540, -+0xb0011fb4,0x7c00100,0x230400,0xb0011fb4,0xc000010,0x248000,0xb0012000,0x4000000,0x200000,0xb00121b5,0x4000000,0x200000,0xb00121b5,0x4000010,0x400000,0xb00121b5, -+0x7c00100,0x220400,0xb00121b5,0x7c00100,0x250400,0xb00121b5,0xc000010,0x448000,0xb00122b8,0x4000000,0x200000,0xb00122b8,0x7c00100,0x230400,0xb00123b7,0x2802400, -+0x962460,0xb00123b7,0x4000000,0x200000,0xb00123b7,0x7c00100,0x230400,0xb00123b7,0xc000010,0x248000,0xb00a4005,0x7c00100,0xe30400,0xb00a4711,0x7c40300,0xe30000, -+0xb00acf00,0x4000000,0xe00000,0xb00b0500,0x4000000,0xe00000,0xb00b0500,0x4000000,0x2800000,0xb00b109a,0x7c00300,0xe30000,0xb080e487,0x2802000,0x962460,0xc0001524, -+0x4000000,0x500000,0xc0001a18,0x2806400,0x1862460,0xc0001a18,0x7c00100,0x1830000,0xc0007300,0x24000000,0x200000,0xc0008e00,0x24000010,0x400000,0xc0009519,0x7c00100, -+0x220400,0xc0009519,0x7c00100,0x250400,0xc000c300,0x4000000,0x20000f,0xc000d85c,0x2802100,0x962460,0xc000d85c,0x6800100,0x962540,0xc000d85c,0x7c00100,0x230400, -+0xc000dc99,0x7c00100,0x230400,0xc000e719,0x7c00100,0x220400,0xc00107a7,0x7c00100,0x230400,0xc0010eaa,0x7c00100,0x230400,0xc00116b0,0x7c00100,0x230560,0xc0011900, -+0x4000000,0x200000,0xc0012447,0,0x818820,0xc0012447,0,0xc18820,0xc0012447,0,0x1418820,0xc00125b9,0x7c00100,0x230400,0xc00126bb,0x2802100, -+0x962460,0xc00126bb,0x2806400,0x962460,0xc00126bb,0x4000000,0x500000,0xc00126bb,0x6800100,0x962540,0xc00126bb,0x7c00100,0x230400,0xc00127ba,0x2802400,0x962460, -+0xc00127ba,0x4000000,0x200000,0xc00127ba,0x6800000,0x1329800,0xc00127ba,0x7c00100,0x230400,0xc00127ba,0x7c00900,0x230400,0xc0012800,0x4000000,0x200000,0xc0012b23, -+0x4000000,0x200000,0xc0012b23,0x4000000,0x400000,0xc0012b23,0x4000000,0x1500000,0xc0012cbc,0x2802400,0x962460,0xc0012cbc,0x4000000,0x1600000,0xc0012cbc,0x6800000, -+0x1329800,0xc0012cbc,0x7c00100,0x230400,0xc00acf00,0x4000000,0xe00000,0xc00ae300,0x4000000,0xe00000,0xc00b0500,0x4000000,0xe00000,0xc00b0500,0x4000000,0x2800000, -+0xc00b0b11,0x4000000,0x1200000,0xc00b0b11,0x7c00900,0x1230400,0xc00b109a,0x7c00300,0xe30000,0xc00b2914,0x7c00100,0x2530000,0xc00b2916,0x7c00100,0x2530c00,0xc00b2a00, -+0x4000000,0xe00000,0xc040af5e,0x7c00100,0x230400,0xc0c12b89,0x4000000,0x200000,0xc14a44ca,0x4000000,0xe0000d,0xd000131f,0x2802c00,0x962460,0xd000171a,0x7c00100, -+0x230400,0xd0001821,0x2802100,0x962460,0xd0007300,0x24000000,0x200000,0xd0008e00,0x24000000,0x200000,0xd0008f3a,0x2806000,0x962460,0xd0009519,0x7c00100,0x220400, -+0xd0009519,0x7c00100,0x250400,0xd000a500,0x4000000,0x200000,0xd000c300,0x4000000,0xe00000,0xd000d202,0x7c00100,0x230400,0xd000d476,0x7c00100,0x230400,0xd000d997, -+0x2802100,0x962460,0xd000d997,0x6800100,0x962540,0xd000e001,0x2802100,0x962460,0xd000e700,0x4000400,0x200000,0xd000e719,0x7c00100,0x220400,0xd000e719,0x7c00500, -+0x22040f,0xd000fa00,0x4000000,0xe00000,0xd0010eaa,0x4000010,0x400000,0xd0010eaa,0x7c00100,0x230400,0xd0012dbd,0x4000000,0x200000,0xd0012dbd,0x7c00100,0x230400, -+0xd0012fbe,0x2802100,0x962460,0xd0012fbe,0x2802400,0x962460,0xd0012fbe,0x2806400,0x962460,0xd0012fbe,0x4000000,0x400000,0xd0012fbe,0x6800000,0x1329800,0xd0012fbe, -+0x6800100,0x962540,0xd0012fbe,0x6800100,0x962541,0xd0012fbe,0x6804400,0x962540,0xd0012fbe,0x7c00100,0x230400,0xd0012fbe,0x7c00100,0x230560,0xd0012fbe,0xc000010, -+0x448000,0xd0013183,0x7c00100,0x230400,0xd0013200,0x4000000,0x200000,0xd0013200,0x6800000,0x1329805,0xd00134c0,0x2802100,0x962460,0xd00134c0,0x4000002,0x400000, -+0xd00134c0,0x7c00100,0x230400,0xd00a4305,0x7c00100,0xe30400,0xd00a4611,0x7c40300,0xe30000,0xd00a4711,0x7c40300,0xe30000,0xd00a5e11,0x7c40300,0xe30000,0xd00acf00, -+0x4000000,0xe00000,0xd00b0500,0x4000000,0xe00000,0xd00b0500,0x4000000,0x2800000,0xd00b0b11,0x6800500,0x962540,0xd00b0bbf,0x2802200,0xc62460,0xd00b119a,0x7c00300, -+0xe30000,0xd00b2a00,0x4000000,0xe00000,0xd00b2e11,0x7c40300,0xe30000,0xd00b30bf,0x7c00300,0x230000,0xd00b339a,0x7c00300,0xe30000,0xe0000c02,0xc000010,0xb48000, -+0xe0001524,0x2802400,0x962460,0xe0001524,0x7c00100,0x230400,0xe0001615,0x7c00100,0x230400,0xe000251b,0x12882000,0x962460,0xe0002a00,0x4000000,0x1500000,0xe0005102, -+0x4000000,0x200000,0xe0005c00,0x4000000,0x200000,0xe000622a,0x6804400,0x962540,0xe000622a,0x7c00100,0x230400,0xe0008838,0x7c00100,0x220400,0xe0008838,0x7c00100, -+0x250400,0xe0008e00,0x24000000,0x810000,0xe0008e00,0x24000000,0x1410000,0xe0008e00,0x24000002,0x400000,0xe0008e00,0x2c000010,0xb48000,0xe000933e,0x7c00100,0x230400, -+0xe000933e,0xc000010,0x448000,0xe0009519,0x7c00100,0x220400,0xe0009519,0x7c00100,0x22040f,0xe0009519,0x7c00100,0x250400,0xe000c178,0x2802100,0x962460,0xe000c941, -+0x2802100,0x962460,0xe000c941,0x2806400,0x962460,0xe000c941,0x7c00100,0x230400,0xe000d202,0x2802400,0x962460,0xe000d202,0x7c00100,0x230400,0xe000d202,0x7c00500, -+0x230400,0xe000dc99,0x4000000,0x200000,0xe000e001,0x2802100,0x962460,0xe000e001,0x2802400,0x962460,0xe000fda1,0x7c00100,0x1830000,0xe0013502,0x2802400,0x962460, -+0xe0013502,0x4000000,0x200000,0xe0013502,0x7c00100,0x230400,0xe0013502,0x80000000,0x218960,0xe00136c1,0x4000000,0x200000,0xe00136c1,0x7c00100,0x230400,0xe001370b, -+0x7c00100,0x230400,0xe0013919,0x7c00500,0x220400,0xe0013919,0x7c00500,0x22040f,0xe0013919,0x7c00d00,0x23040f,0xe0013a19,0x7c00100,0x220400,0xe0013a19,0x7c00100, -+0x230400,0xe0013bc2,0x2802400,0x962460,0xe0013bc2,0x7c00100,0x230400,0xe0013bc2,0xc000010,0x248000,0xe0013cc3,0x6800000,0x1329800,0xe0013cc3,0x7c00100,0x230400, -+0xe0013dc4,0x2802400,0x962460,0xe0013dc4,0x7c00100,0x230400,0xe0013e28,0x7c00100,0x230400,0xe0013fc5,0x7c00100,0x220400,0xe0013fc5,0x7c00100,0x250400,0xe0014000, -+0x4000000,0x200000,0xe0014001,0x2802400,0x962460,0xe00a4711,0x7c40300,0xe30000,0xe00a5e11,0x7c40300,0xe30000,0xe00ac511,0x7c40300,0xe30000,0xe00acf00,0x4000000, -+0xe00000,0xe00ae300,0x4000000,0xe00000,0xe00b0500,0x4000000,0xe00000,0xe00b1314,0x7c00100,0xe30000,0xe00b1316,0x7c00100,0xe30c00,0xe00b2a00,0x4000000,0xe00000, -+0xe00b2a00,0x4000000,0x2800000,0xe00b3816,0x7c00500,0x230c00,0xe0808328,0x2802400,0x962460,0xf0001615,0x6800100,0x962540,0xf0001a18,0x2802000,0x1862460,0xf000c247, -+0x7c00100,0x230400,0xf000d000,0x4000000,0xe00000,0xf000e300,0x4000000,0xe00000,0xf000e59d,0x2802100,0x962460,0xf000e59d,0x7c00100,0x230400,0xf0012447,0, -+0x818820,0xf0012447,0,0xc18820,0xf0012447,0,0x1418820,0xf0012447,0x2802000,0x962460,0xf0012447,0x2802400,0x962460,0xf0012447,0x7c00100,0x230400, -+0xf0013a19,0x7c00100,0x220400,0xf0014102,0x2802400,0x962460,0xf0014308,0x2802100,0x962460,0xf0014308,0x7c00500,0x22040e,0xf0014308,0x7c00500,0x22040f,0xf001440a, -+0x4000000,0x500000,0xf0014500,0x4000000,0x200000,0xf00146c6,0x2802100,0x962460,0xf00146c6,0x2806000,0x962460,0xf00146c6,0x4000000,0xe00000,0xf00146c6,0x6800000, -+0x1329800,0xf00146c6,0x6800100,0x962540,0xf00146c6,0x6804000,0x962540,0xf00146c6,0x7c00100,0x230400,0xf00146c6,0x7c00100,0x230560,0xf00146c6,0xc000010,0x448000, -+0xf00147c7,0x2802000,0x962460,0xf00147c7,0x6800000,0x1329800,0xf00147c7,0x7c00100,0x230400,0xf00ac511,0x7c40300,0xe30000,0xf00acf00,0x4000000,0xe00000,0xf00b2914, -+0x7c00100,0x2530000,0xf00b2916,0x7c00100,0x2530c00,0xf00b2a00,0x4000000,0xe00000,0xf00b2a00,0x4000000,0x2800000,0xf00b4211,0x7c40300,0xe30000}; - --static const int32_t countPropsVectors=7095; -+static const int32_t countPropsVectors=7230; - static const int32_t propsVectorsColumns=3; - static const uint16_t scriptExtensions[282]={ - 0x800e,0x8019,8,0x8059,8,2,8,0x8038,8,6,8,0x8019,2,0x22,0x25,0x57, -@@ -3937,6 +4006,6 @@ static const uint16_t scriptExtensions[282]={ - 0x804f,0x37,0x804e,2,0x8057,2,0x8025,2,0x105,0x2f,0x31,0x8053,0x2f,0x31,0x80c1,0x2f, - 0x8031,2,0x8007,0x79,0x80c2,0x79,0x113,0x89,0x87,0x8087}; - --static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2c64,0x2c64,0x2c64,0x2c64,0x6b06,3,0x86bd,0x874a,0x874a,0x874a,0xb40c5,0x2a75a31,0,0,0,0}; -+static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2d08,0x2d08,0x2d08,0x2d08,0x6ce6,3,0x8924,0x89b1,0x89b1,0x89b1,0xb47c7,0x2a75a31,0,0,0,0}; - - #endif // INCLUDED_FROM_UCHAR_C -diff --git a/deps/icu-small/source/common/ucharstrie.cpp b/deps/icu-small/source/common/ucharstrie.cpp -index e0b33af519..24ab425777 100644 ---- a/deps/icu-small/source/common/ucharstrie.cpp -+++ b/deps/icu-small/source/common/ucharstrie.cpp -@@ -308,13 +308,13 @@ UCharsTrie::findUniqueValueFromBranch(const UChar *pos, int32_t length, - } - } else { - uniqueValue=value; -- haveUniqueValue=TRUE; -+ haveUniqueValue=true; - } - } else { - if(!findUniqueValue(pos+value, haveUniqueValue, uniqueValue)) { - return NULL; - } -- haveUniqueValue=TRUE; -+ haveUniqueValue=true; - } - } while(--length>1); - return pos+1; // ignore the last comparison unit -@@ -330,9 +330,9 @@ UCharsTrie::findUniqueValue(const UChar *pos, UBool haveUniqueValue, int32_t &un - } - pos=findUniqueValueFromBranch(pos, node+1, haveUniqueValue, uniqueValue); - if(pos==NULL) { -- return FALSE; -+ return false; - } -- haveUniqueValue=TRUE; -+ haveUniqueValue=true; - node=*pos++; - } else if(nodeucharsCapacity) { - int32_t newCapacity=ucharsCapacity; -@@ -335,7 +335,7 @@ UCharsTrieBuilder::ensureCapacity(int32_t length) { - uprv_free(uchars); - uchars=NULL; - ucharsCapacity=0; -- return FALSE; -+ return false; - } - u_memcpy(newUChars+(newCapacity-ucharsLength), - uchars+(ucharsCapacity-ucharsLength), ucharsLength); -@@ -343,7 +343,7 @@ UCharsTrieBuilder::ensureCapacity(int32_t length) { - uchars=newUChars; - ucharsCapacity=newCapacity; - } -- return TRUE; -+ return true; - } - - int32_t -diff --git a/deps/icu-small/source/common/ucharstrieiterator.cpp b/deps/icu-small/source/common/ucharstrieiterator.cpp -index b3132241fe..2ba43692dd 100644 ---- a/deps/icu-small/source/common/ucharstrieiterator.cpp -+++ b/deps/icu-small/source/common/ucharstrieiterator.cpp -@@ -26,7 +26,7 @@ UCharsTrie::Iterator::Iterator(ConstChar16Ptr trieUChars, int32_t maxStringLengt - : uchars_(trieUChars), - pos_(uchars_), initialPos_(uchars_), - remainingMatchLength_(-1), initialRemainingMatchLength_(-1), -- skipValue_(FALSE), -+ skipValue_(false), - maxLength_(maxStringLength), value_(0), stack_(NULL) { - if(U_FAILURE(errorCode)) { - return; -@@ -48,7 +48,7 @@ UCharsTrie::Iterator::Iterator(const UCharsTrie &trie, int32_t maxStringLength, - : uchars_(trie.uchars_), pos_(trie.pos_), initialPos_(trie.pos_), - remainingMatchLength_(trie.remainingMatchLength_), - initialRemainingMatchLength_(trie.remainingMatchLength_), -- skipValue_(FALSE), -+ skipValue_(false), - maxLength_(maxStringLength), value_(0), stack_(NULL) { - if(U_FAILURE(errorCode)) { - return; -@@ -82,7 +82,7 @@ UCharsTrie::Iterator & - UCharsTrie::Iterator::reset() { - pos_=initialPos_; - remainingMatchLength_=initialRemainingMatchLength_; -- skipValue_=FALSE; -+ skipValue_=false; - int32_t length=remainingMatchLength_+1; // Remaining match length. - if(maxLength_>0 && length>maxLength_) { - length=maxLength_; -@@ -100,12 +100,12 @@ UCharsTrie::Iterator::hasNext() const { return pos_!=NULL || !stack_->isEmpty(); - UBool - UCharsTrie::Iterator::next(UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - const UChar *pos=pos_; - if(pos==NULL) { - if(stack_->isEmpty()) { -- return FALSE; -+ return false; - } - // Pop the state off the stack and continue with the next outbound edge of - // the branch node. -@@ -118,7 +118,7 @@ UCharsTrie::Iterator::next(UErrorCode &errorCode) { - if(length>1) { - pos=branchNext(pos, length, errorCode); - if(pos==NULL) { -- return TRUE; // Reached a final value. -+ return true; // Reached a final value. - } - } else { - str_.append(*pos++); -@@ -135,7 +135,7 @@ UCharsTrie::Iterator::next(UErrorCode &errorCode) { - if(skipValue_) { - pos=skipNodeValue(pos, node); - node&=kNodeTypeMask; -- skipValue_=FALSE; -+ skipValue_=false; - } else { - // Deliver value for the string so far. - UBool isFinal=(UBool)(node>>15); -@@ -152,9 +152,9 @@ UCharsTrie::Iterator::next(UErrorCode &errorCode) { - // next time. - // Instead, keep pos_ on the node lead unit itself. - pos_=pos-1; -- skipValue_=TRUE; -+ skipValue_=true; - } -- return TRUE; -+ return true; - } - } - if(maxLength_>0 && str_.length()==maxLength_) { -@@ -166,7 +166,7 @@ UCharsTrie::Iterator::next(UErrorCode &errorCode) { - } - pos=branchNext(pos, node+1, errorCode); - if(pos==NULL) { -- return TRUE; // Reached a final value. -+ return true; // Reached a final value. - } - } else { - // Linear-match node, append length units to str_. -diff --git a/deps/icu-small/source/common/uchriter.cpp b/deps/icu-small/source/common/uchriter.cpp -index 2967375a6a..f2a9953841 100644 ---- a/deps/icu-small/source/common/uchriter.cpp -+++ b/deps/icu-small/source/common/uchriter.cpp -@@ -171,7 +171,7 @@ UCharCharacterIterator::nextPostInc() { - - UBool - UCharCharacterIterator::hasNext() { -- return (UBool)(pos < end ? TRUE : FALSE); -+ return (UBool)(pos < end ? true : false); - } - - UChar -@@ -185,7 +185,7 @@ UCharCharacterIterator::previous() { - - UBool - UCharCharacterIterator::hasPrevious() { -- return (UBool)(pos > begin ? TRUE : FALSE); -+ return (UBool)(pos > begin ? true : false); - } - - UChar32 -diff --git a/deps/icu-small/source/common/ucln_cmn.cpp b/deps/icu-small/source/common/ucln_cmn.cpp -index f3e07c6b89..ea797d1344 100644 ---- a/deps/icu-small/source/common/ucln_cmn.cpp -+++ b/deps/icu-small/source/common/ucln_cmn.cpp -@@ -120,5 +120,5 @@ U_CFUNC UBool ucln_lib_cleanup(void) { - #if !UCLN_NO_AUTO_CLEANUP && (defined(UCLN_AUTO_ATEXIT) || defined(UCLN_AUTO_LOCAL)) - ucln_unRegisterAutomaticCleanup(); - #endif -- return TRUE; -+ return true; - } -diff --git a/deps/icu-small/source/common/ucnv.cpp b/deps/icu-small/source/common/ucnv.cpp -index 019bcb6a79..26baa550c3 100644 ---- a/deps/icu-small/source/common/ucnv.cpp -+++ b/deps/icu-small/source/common/ucnv.cpp -@@ -163,7 +163,7 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U - UErrorCode cbErr; - UConverterToUnicodeArgs toUArgs = { - sizeof(UConverterToUnicodeArgs), -- TRUE, -+ true, - NULL, - NULL, - NULL, -@@ -173,7 +173,7 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U - }; - UConverterFromUnicodeArgs fromUArgs = { - sizeof(UConverterFromUnicodeArgs), -- TRUE, -+ true, - NULL, - NULL, - NULL, -@@ -269,7 +269,7 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U - - /* Copy initial state */ - uprv_memcpy(localConverter, cnv, sizeof(UConverter)); -- localConverter->isCopyLocal = localConverter->isExtraLocal = FALSE; -+ localConverter->isCopyLocal = localConverter->isExtraLocal = false; - - /* copy the substitution string */ - if (cnv->subChars == (uint8_t *)cnv->subUChars) { -@@ -306,7 +306,7 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U - - if(localConverter == (UConverter*)stackBuffer) { - /* we're using user provided data - set to not destroy */ -- localConverter->isCopyLocal = TRUE; -+ localConverter->isCopyLocal = true; - } - - /* allow callback functions to handle any memory allocation */ -@@ -352,7 +352,7 @@ ucnv_close (UConverter * converter) - if (converter->fromCharErrorBehaviour != UCNV_TO_U_DEFAULT_CALLBACK) { - UConverterToUnicodeArgs toUArgs = { - sizeof(UConverterToUnicodeArgs), -- TRUE, -+ true, - NULL, - NULL, - NULL, -@@ -368,7 +368,7 @@ ucnv_close (UConverter * converter) - if (converter->fromUCharErrorBehaviour != UCNV_FROM_U_DEFAULT_CALLBACK) { - UConverterFromUnicodeArgs fromUArgs = { - sizeof(UConverterFromUnicodeArgs), -- TRUE, -+ true, - NULL, - NULL, - NULL, -@@ -580,7 +580,7 @@ static void _reset(UConverter *converter, UConverterResetChoice choice, - if(choice<=UCNV_RESET_TO_UNICODE && converter->fromCharErrorBehaviour != UCNV_TO_U_DEFAULT_CALLBACK) { - UConverterToUnicodeArgs toUArgs = { - sizeof(UConverterToUnicodeArgs), -- TRUE, -+ true, - NULL, - NULL, - NULL, -@@ -595,7 +595,7 @@ static void _reset(UConverter *converter, UConverterResetChoice choice, - if(choice!=UCNV_RESET_TO_UNICODE && converter->fromUCharErrorBehaviour != UCNV_FROM_U_DEFAULT_CALLBACK) { - UConverterFromUnicodeArgs fromUArgs = { - sizeof(UConverterFromUnicodeArgs), -- TRUE, -+ true, - NULL, - NULL, - NULL, -@@ -634,19 +634,19 @@ static void _reset(UConverter *converter, UConverterResetChoice choice, - U_CAPI void U_EXPORT2 - ucnv_reset(UConverter *converter) - { -- _reset(converter, UCNV_RESET_BOTH, TRUE); -+ _reset(converter, UCNV_RESET_BOTH, true); - } - - U_CAPI void U_EXPORT2 - ucnv_resetToUnicode(UConverter *converter) - { -- _reset(converter, UCNV_RESET_TO_UNICODE, TRUE); -+ _reset(converter, UCNV_RESET_TO_UNICODE, true); - } - - U_CAPI void U_EXPORT2 - ucnv_resetFromUnicode(UConverter *converter) - { -- _reset(converter, UCNV_RESET_FROM_UNICODE, TRUE); -+ _reset(converter, UCNV_RESET_FROM_UNICODE, true); - } - - U_CAPI int8_t U_EXPORT2 -@@ -871,7 +871,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - - /* avoid compiler warnings - not otherwise necessary, and the values do not matter */ - realSourceLimit=NULL; -- realFlush=FALSE; -+ realFlush=false; - realSourceIndex=0; - } else { - /* -@@ -887,7 +887,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - uprv_memcpy(replay, cnv->preFromU, -cnv->preFromULength*U_SIZEOF_UCHAR); - pArgs->source=replay; - pArgs->sourceLimit=replay-cnv->preFromULength; -- pArgs->flush=FALSE; -+ pArgs->flush=false; - sourceIndex=-1; - - cnv->preFromULength=0; -@@ -923,11 +923,11 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - cnv->fromUChar32==0); - } else { - /* handle error from ucnv_convertEx() */ -- converterSawEndOfInput=FALSE; -+ converterSawEndOfInput=false; - } - - /* no callback called yet for this iteration */ -- calledCallback=FALSE; -+ calledCallback=false; - - /* no sourceIndex adjustment for conversion, only for callback output */ - errorInputLength=0; -@@ -976,7 +976,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - uprv_memcpy(replay, cnv->preFromU, -cnv->preFromULength*U_SIZEOF_UCHAR); - pArgs->source=replay; - pArgs->sourceLimit=replay-cnv->preFromULength; -- pArgs->flush=FALSE; -+ pArgs->flush=false; - if((sourceIndex+=cnv->preFromULength)<0) { - sourceIndex=-1; - } -@@ -1017,7 +1017,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - - /* inject an error and continue with callback handling */ - *err=U_TRUNCATED_CHAR_FOUND; -- calledCallback=FALSE; /* new error condition */ -+ calledCallback=false; /* new error condition */ - } else { - /* input consumed */ - if(pArgs->flush) { -@@ -1033,7 +1033,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - } - - /* reset the converter without calling the callback function */ -- _reset(cnv, UCNV_RESET_FROM_UNICODE, FALSE); -+ _reset(cnv, UCNV_RESET_FROM_UNICODE, false); - } - - /* done successfully */ -@@ -1110,7 +1110,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - * that a callback was called; - * if the callback did not resolve the error, then we return - */ -- calledCallback=TRUE; -+ calledCallback=true; - } - } - } -@@ -1118,7 +1118,7 @@ _fromUnicodeWithCallback(UConverterFromUnicodeArgs *pArgs, UErrorCode *err) { - /* - * Output the fromUnicode overflow buffer. - * Call this function if(cnv->charErrorBufferLength>0). -- * @return TRUE if overflow -+ * @return true if overflow - */ - static UBool - ucnv_outputOverflowFromUnicode(UConverter *cnv, -@@ -1154,7 +1154,7 @@ ucnv_outputOverflowFromUnicode(UConverter *cnv, - *pOffsets=offsets; - } - *err=U_BUFFER_OVERFLOW_ERROR; -- return TRUE; -+ return true; - } - - /* copy the overflow contents to the target */ -@@ -1170,7 +1170,7 @@ ucnv_outputOverflowFromUnicode(UConverter *cnv, - if(offsets!=NULL) { - *pOffsets=offsets; - } -- return FALSE; -+ return false; - } - - U_CAPI void U_EXPORT2 -@@ -1316,7 +1316,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - - /* avoid compiler warnings - not otherwise necessary, and the values do not matter */ - realSourceLimit=NULL; -- realFlush=FALSE; -+ realFlush=false; - realSourceIndex=0; - } else { - /* -@@ -1332,7 +1332,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - uprv_memcpy(replay, cnv->preToU, -cnv->preToULength); - pArgs->source=replay; - pArgs->sourceLimit=replay-cnv->preToULength; -- pArgs->flush=FALSE; -+ pArgs->flush=false; - sourceIndex=-1; - - cnv->preToULength=0; -@@ -1368,11 +1368,11 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - cnv->toULength==0); - } else { - /* handle error from getNextUChar() or ucnv_convertEx() */ -- converterSawEndOfInput=FALSE; -+ converterSawEndOfInput=false; - } - - /* no callback called yet for this iteration */ -- calledCallback=FALSE; -+ calledCallback=false; - - /* no sourceIndex adjustment for conversion, only for callback output */ - errorInputLength=0; -@@ -1421,7 +1421,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - uprv_memcpy(replay, cnv->preToU, -cnv->preToULength); - pArgs->source=replay; - pArgs->sourceLimit=replay-cnv->preToULength; -- pArgs->flush=FALSE; -+ pArgs->flush=false; - if((sourceIndex+=cnv->preToULength)<0) { - sourceIndex=-1; - } -@@ -1462,7 +1462,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - - /* inject an error and continue with callback handling */ - *err=U_TRUNCATED_CHAR_FOUND; -- calledCallback=FALSE; /* new error condition */ -+ calledCallback=false; /* new error condition */ - } else { - /* input consumed */ - if(pArgs->flush) { -@@ -1478,7 +1478,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - } - - /* reset the converter without calling the callback function */ -- _reset(cnv, UCNV_RESET_TO_UNICODE, FALSE); -+ _reset(cnv, UCNV_RESET_TO_UNICODE, false); - } - - /* done successfully */ -@@ -1556,7 +1556,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - * that a callback was called; - * if the callback did not resolve the error, then we return - */ -- calledCallback=TRUE; -+ calledCallback=true; - } - } - } -@@ -1564,7 +1564,7 @@ _toUnicodeWithCallback(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { - /* - * Output the toUnicode overflow buffer. - * Call this function if(cnv->UCharErrorBufferLength>0). -- * @return TRUE if overflow -+ * @return true if overflow - */ - static UBool - ucnv_outputOverflowToUnicode(UConverter *cnv, -@@ -1600,7 +1600,7 @@ ucnv_outputOverflowToUnicode(UConverter *cnv, - *pOffsets=offsets; - } - *err=U_BUFFER_OVERFLOW_ERROR; -- return TRUE; -+ return true; - } - - /* copy the overflow contents to the target */ -@@ -1616,7 +1616,7 @@ ucnv_outputOverflowToUnicode(UConverter *cnv, - if(offsets!=NULL) { - *pOffsets=offsets; - } -- return FALSE; -+ return false; - } - - U_CAPI void U_EXPORT2 -@@ -1754,7 +1754,7 @@ ucnv_fromUChars(UConverter *cnv, - destLimit=dest+destCapacity; - - /* perform the conversion */ -- ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode); -+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, true, pErrorCode); - destLength=(int32_t)(dest-originalDest); - - /* if an overflow occurs, then get the preflighting length */ -@@ -1765,7 +1765,7 @@ ucnv_fromUChars(UConverter *cnv, - do { - dest=buffer; - *pErrorCode=U_ZERO_ERROR; -- ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode); -+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, true, pErrorCode); - destLength+=(int32_t)(dest-buffer); - } while(*pErrorCode==U_BUFFER_OVERFLOW_ERROR); - } -@@ -1810,7 +1810,7 @@ ucnv_toUChars(UConverter *cnv, - destLimit=dest+destCapacity; - - /* perform the conversion */ -- ucnv_toUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode); -+ ucnv_toUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, true, pErrorCode); - destLength=(int32_t)(dest-originalDest); - - /* if an overflow occurs, then get the preflighting length */ -@@ -1822,7 +1822,7 @@ ucnv_toUChars(UConverter *cnv, - do { - dest=buffer; - *pErrorCode=U_ZERO_ERROR; -- ucnv_toUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode); -+ ucnv_toUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, true, pErrorCode); - destLength+=(int32_t)(dest-buffer); - } - while(*pErrorCode==U_BUFFER_OVERFLOW_ERROR); -@@ -1907,15 +1907,15 @@ ucnv_getNextUChar(UConverter *cnv, - } - - /* -- * flush==TRUE is implied for ucnv_getNextUChar() -+ * flush==true is implied for ucnv_getNextUChar() - * - * do not simply return even if s==sourceLimit because the converter may -- * not have seen flush==TRUE before -+ * not have seen flush==true before - */ - - /* prepare the converter arguments */ - args.converter=cnv; -- args.flush=TRUE; -+ args.flush=true; - args.offsets=NULL; - args.source=s; - args.sourceLimit=sourceLimit; -@@ -1937,7 +1937,7 @@ ucnv_getNextUChar(UConverter *cnv, - *source=s=args.source; - if(*err==U_INDEX_OUTOFBOUNDS_ERROR) { - /* reset the converter without calling the callback function */ -- _reset(cnv, UCNV_RESET_TO_UNICODE, FALSE); -+ _reset(cnv, UCNV_RESET_TO_UNICODE, false); - return 0xffff; /* no output */ - } else if(U_SUCCESS(*err) && c>=0) { - return c; -@@ -2176,7 +2176,7 @@ ucnv_convertEx(UConverter *targetCnv, UConverter *sourceCnv, - - /* prepare the converter arguments */ - fromUArgs.converter=targetCnv; -- fromUArgs.flush=FALSE; -+ fromUArgs.flush=false; - fromUArgs.offsets=NULL; - fromUArgs.target=*target; - fromUArgs.targetLimit=targetLimit; -@@ -2331,8 +2331,8 @@ ucnv_convertEx(UConverter *targetCnv, UConverter *sourceCnv, - /* input consumed */ - if(flush) { - /* reset the converters without calling the callback functions */ -- _reset(sourceCnv, UCNV_RESET_TO_UNICODE, FALSE); -- _reset(targetCnv, UCNV_RESET_FROM_UNICODE, FALSE); -+ _reset(sourceCnv, UCNV_RESET_TO_UNICODE, false); -+ _reset(targetCnv, UCNV_RESET_FROM_UNICODE, false); - } - - /* done successfully */ -@@ -2372,7 +2372,7 @@ ucnv_convertEx(UConverter *targetCnv, UConverter *sourceCnv, - sourceCnv->preToULength>=0 && - sourceCnv->UCharErrorBufferLength==0 - ) { -- fromUArgs.flush=TRUE; -+ fromUArgs.flush=true; - } - } - -@@ -2436,8 +2436,8 @@ ucnv_internalConvert(UConverter *outConverter, UConverter *inConverter, - &myTarget, targetLimit, - &source, sourceLimit, - pivotBuffer, &pivot, &pivot2, pivotBuffer+CHUNK_SIZE, -- FALSE, -- TRUE, -+ false, -+ true, - pErrorCode); - targetLength=(int32_t)(myTarget-target); - } -@@ -2459,8 +2459,8 @@ ucnv_internalConvert(UConverter *outConverter, UConverter *inConverter, - &myTarget, targetLimit, - &source, sourceLimit, - pivotBuffer, &pivot, &pivot2, pivotBuffer+CHUNK_SIZE, -- FALSE, -- TRUE, -+ false, -+ true, - pErrorCode); - targetLength+=(int32_t)(myTarget-targetBuffer); - } while(*pErrorCode==U_BUFFER_OVERFLOW_ERROR); -@@ -2585,7 +2585,7 @@ ucnv_toAlgorithmic(UConverterType algorithmicType, - char *target, int32_t targetCapacity, - const char *source, int32_t sourceLength, - UErrorCode *pErrorCode) { -- return ucnv_convertAlgorithmic(TRUE, algorithmicType, cnv, -+ return ucnv_convertAlgorithmic(true, algorithmicType, cnv, - target, targetCapacity, - source, sourceLength, - pErrorCode); -@@ -2597,7 +2597,7 @@ ucnv_fromAlgorithmic(UConverter *cnv, - char *target, int32_t targetCapacity, - const char *source, int32_t sourceLength, - UErrorCode *pErrorCode) { -- return ucnv_convertAlgorithmic(FALSE, algorithmicType, cnv, -+ return ucnv_convertAlgorithmic(false, algorithmicType, cnv, - target, targetCapacity, - source, sourceLength, - pErrorCode); -@@ -2885,12 +2885,12 @@ ucnv_toUCountPending(const UConverter* cnv, UErrorCode* status){ - U_CAPI UBool U_EXPORT2 - ucnv_isFixedWidth(UConverter *cnv, UErrorCode *status){ - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - if (cnv == NULL) { - *status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - - switch (ucnv_getType(cnv)) { -@@ -2900,9 +2900,9 @@ ucnv_isFixedWidth(UConverter *cnv, UErrorCode *status){ - case UCNV_UTF32_LittleEndian: - case UCNV_UTF32: - case UCNV_US_ASCII: -- return TRUE; -+ return true; - default: -- return FALSE; -+ return false; - } - } - #endif -diff --git a/deps/icu-small/source/common/ucnv2022.cpp b/deps/icu-small/source/common/ucnv2022.cpp -index aa1e169c99..ec096780e9 100644 ---- a/deps/icu-small/source/common/ucnv2022.cpp -+++ b/deps/icu-small/source/common/ucnv2022.cpp -@@ -491,7 +491,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ - - uprv_memset(myConverterData, 0, sizeof(UConverterDataISO2022)); - myConverterData->currentType = ASCII1; -- cnv->fromUnicodeStatus =FALSE; -+ cnv->fromUnicodeStatus =false; - if(pArgs->locale){ - uprv_strncpy(myLocale, pArgs->locale, sizeof(myLocale)-1); - } -@@ -623,7 +623,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ - #endif // !UCONFIG_ONLY_HTML_CONVERSION - else{ - #ifdef U_ENABLE_GENERIC_ISO_2022 -- myConverterData->isFirstBuffer = TRUE; -+ myConverterData->isFirstBuffer = true; - - /* append the UTF-8 escape sequence */ - cnv->charErrorBufferLength = 3; -@@ -682,7 +682,7 @@ _ISO2022Reset(UConverter *converter, UConverterResetChoice choice) { - if(choice<=UCNV_RESET_TO_UNICODE) { - uprv_memset(&myConverterData->toU2022State, 0, sizeof(ISO2022State)); - myConverterData->key = 0; -- myConverterData->isEmptySegment = FALSE; -+ myConverterData->isEmptySegment = false; - } - if(choice!=UCNV_RESET_TO_UNICODE) { - uprv_memset(&myConverterData->fromU2022State, 0, sizeof(ISO2022State)); -@@ -690,7 +690,7 @@ _ISO2022Reset(UConverter *converter, UConverterResetChoice choice) { - #ifdef U_ENABLE_GENERIC_ISO_2022 - if(myConverterData->locale[0] == 0){ - if(choice<=UCNV_RESET_TO_UNICODE) { -- myConverterData->isFirstBuffer = TRUE; -+ myConverterData->isFirstBuffer = true; - myConverterData->key = 0; - if (converter->mode == UCNV_SO){ - ucnv_close (myConverterData->currentConverter); -@@ -1285,7 +1285,7 @@ T_UConverter_toUnicode_ISO_2022_OFFSETS_LOGIC(UConverterToUnicodeArgs* args, - } - - /* convert to before the ESC or until the end of the buffer */ -- myData->isFirstBuffer=FALSE; -+ myData->isFirstBuffer=false; - sourceStart = args->source; - myTargetStart = args->target; - args->converter = myData->currentConverter; -@@ -1848,7 +1848,7 @@ getTrail: - len = 1; - cs = cs0; - g = 0; -- useFallback = FALSE; -+ useFallback = false; - } - break; - case JISX208: -@@ -1864,7 +1864,7 @@ getTrail: - len = len2; - cs = cs0; - g = 0; -- useFallback = FALSE; -+ useFallback = false; - } - } else if(len == 0 && useFallback && - (uint32_t)(sourceChar - HWKANA_START) <= (HWKANA_END - HWKANA_START)) { -@@ -1872,7 +1872,7 @@ getTrail: - len = -2; - cs = cs0; - g = 0; -- useFallback = FALSE; -+ useFallback = false; - } - break; - case ISO8859_7: -@@ -1886,7 +1886,7 @@ getTrail: - len = len2; - cs = cs0; - g = 2; -- useFallback = FALSE; -+ useFallback = false; - } - break; - default: -@@ -1911,7 +1911,7 @@ getTrail: - len = len2; - cs = cs0; - g = 0; -- useFallback = FALSE; -+ useFallback = false; - } - break; - } -@@ -2121,7 +2121,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - continue; - } else { - /* only JIS7 uses SI/SO, not ISO-2022-JP-x */ -- myData->isEmptySegment = FALSE; /* reset this, we have a different error */ -+ myData->isEmptySegment = false; /* reset this, we have a different error */ - break; - } - -@@ -2133,7 +2133,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - continue; - } else { - /* only JIS7 uses SI/SO, not ISO-2022-JP-x */ -- myData->isEmptySegment = FALSE; /* reset this, we have a different error */ -+ myData->isEmptySegment = false; /* reset this, we have a different error */ - break; - } - -@@ -2159,12 +2159,12 @@ escape: - if(U_FAILURE(*err)){ - args->target = myTarget; - args->source = mySource; -- myData->isEmptySegment = FALSE; /* Reset to avoid future spurious errors */ -+ myData->isEmptySegment = false; /* Reset to avoid future spurious errors */ - return; - } - /* If we successfully completed an escape sequence, we begin a new segment, empty so far */ - if(myData->key==0) { -- myData->isEmptySegment = TRUE; -+ myData->isEmptySegment = true; - } - continue; - -@@ -2181,7 +2181,7 @@ escape: - U_FALLTHROUGH; - default: - /* convert one or two bytes */ -- myData->isEmptySegment = FALSE; -+ myData->isEmptySegment = false; - cs = (StateEnum)pToU2022State->cs[pToU2022State->g]; - if( (uint8_t)(mySourceChar - 0xa1) <= (0xdf - 0xa1) && myData->version==4 && - !IS_JP_DBCS(cs) -@@ -2262,7 +2262,7 @@ getTrailByte: - tempBuf[0] = (char)(tmpSourceChar >> 8); - tempBuf[1] = (char)(tmpSourceChar); - } -- targetUniChar = ucnv_MBCSSimpleGetNextUChar(myData->myConverterArray[cs], tempBuf, 2, FALSE); -+ targetUniChar = ucnv_MBCSSimpleGetNextUChar(myData->myConverterArray[cs], tempBuf, 2, false); - } else if (!(trailIsOk || IS_2022_CONTROL(trailByte))) { - /* report a pair of illegal bytes if the second byte is not a DBCS starter */ - ++mySource; -@@ -2534,7 +2534,7 @@ getTrail: - int32_t sourceIndex; - - /* we are switching to ASCII */ -- isTargetByteDBCS=FALSE; -+ isTargetByteDBCS=false; - - /* get the source index of the last input character */ - /* -@@ -2712,7 +2712,7 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - if(mySourceChar==UCNV_SI){ - myData->toU2022State.g = 0; - if (myData->isEmptySegment) { -- myData->isEmptySegment = FALSE; /* we are handling it, reset to avoid future spurious errors */ -+ myData->isEmptySegment = false; /* we are handling it, reset to avoid future spurious errors */ - *err = U_ILLEGAL_ESCAPE_SEQUENCE; - args->converter->toUCallbackReason = UCNV_IRREGULAR; - args->converter->toUBytes[0] = (uint8_t)mySourceChar; -@@ -2725,13 +2725,13 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - continue; - }else if(mySourceChar==UCNV_SO){ - myData->toU2022State.g = 1; -- myData->isEmptySegment = TRUE; /* Begin a new segment, empty so far */ -+ myData->isEmptySegment = true; /* Begin a new segment, empty so far */ - /*consume the source */ - continue; - }else if(mySourceChar==ESC_2022){ - mySource--; - escape: -- myData->isEmptySegment = FALSE; /* Any invalid ESC sequences will be detected separately, so just reset this */ -+ myData->isEmptySegment = false; /* Any invalid ESC sequences will be detected separately, so just reset this */ - changeState_2022(args->converter,&(mySource), - mySourceLimit, ISO_2022_KR, err); - if(U_FAILURE(*err)){ -@@ -2742,7 +2742,7 @@ escape: - continue; - } - -- myData->isEmptySegment = FALSE; /* Any invalid char errors will be detected separately, so just reset this */ -+ myData->isEmptySegment = false; /* Any invalid char errors will be detected separately, so just reset this */ - if(myData->toU2022State.g == 1) { - if(mySource < mySourceLimit) { - int leadIsOk, trailIsOk; -@@ -3092,7 +3092,7 @@ getTrail: - len = 2; - } else { - len = -2; -- useFallback = FALSE; -+ useFallback = false; - } - if(cs == CNS_11643_1) { - g = 1; -@@ -3119,7 +3119,7 @@ getTrail: - len = len2; - cs = cs0; - g = 1; -- useFallback = FALSE; -+ useFallback = false; - } - } - } -@@ -3301,7 +3301,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - case UCNV_SI: - pToU2022State->g=0; - if (myData->isEmptySegment) { -- myData->isEmptySegment = FALSE; /* we are handling it, reset to avoid future spurious errors */ -+ myData->isEmptySegment = false; /* we are handling it, reset to avoid future spurious errors */ - *err = U_ILLEGAL_ESCAPE_SEQUENCE; - args->converter->toUCallbackReason = UCNV_IRREGULAR; - args->converter->toUBytes[0] = static_cast(mySourceChar); -@@ -3315,11 +3315,11 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - case UCNV_SO: - if(pToU2022State->cs[1] != 0) { - pToU2022State->g=1; -- myData->isEmptySegment = TRUE; /* Begin a new segment, empty so far */ -+ myData->isEmptySegment = true; /* Begin a new segment, empty so far */ - continue; - } else { - /* illegal to have SO before a matching designator */ -- myData->isEmptySegment = FALSE; /* Handling a different error, reset this to avoid future spurious errs */ -+ myData->isEmptySegment = false; /* Handling a different error, reset this to avoid future spurious errs */ - break; - } - -@@ -3345,7 +3345,7 @@ escape: - if(U_FAILURE(*err)){ - args->target = myTarget; - args->source = mySource; -- myData->isEmptySegment = FALSE; /* Reset to avoid future spurious errors */ -+ myData->isEmptySegment = false; /* Reset to avoid future spurious errors */ - return; - } - continue; -@@ -3358,7 +3358,7 @@ escape: - U_FALLTHROUGH; - default: - /* convert one or two bytes */ -- myData->isEmptySegment = FALSE; -+ myData->isEmptySegment = false; - if(pToU2022State->g != 0) { - if(mySource < mySourceLimit) { - UConverterSharedData *cnv; -@@ -3397,7 +3397,7 @@ getTrailByte: - tempBuf[1] = (char) trailByte; - tempBufLen = 2; - } -- targetUniChar = ucnv_MBCSSimpleGetNextUChar(cnv, tempBuf, tempBufLen, FALSE); -+ targetUniChar = ucnv_MBCSSimpleGetNextUChar(cnv, tempBuf, tempBufLen, false); - mySourceChar = (mySourceChar << 8) | trailByte; - } else if (!(trailIsOk || IS_2022_CONTROL(trailByte))) { - /* report a pair of illegal bytes if the second byte is not a DBCS starter */ -@@ -3609,7 +3609,7 @@ _ISO_2022_SafeClone( - - uprv_memcpy(&localClone->mydata, cnvData, sizeof(UConverterDataISO2022)); - localClone->cnv.extraInfo = &localClone->mydata; /* set pointer to extra data */ -- localClone->cnv.isExtraLocal = TRUE; -+ localClone->cnv.isExtraLocal = true; - - /* share the subconverters */ - -@@ -3808,8 +3808,8 @@ static const UConverterStaticData _ISO2022StaticData={ - 3, /* max 3 bytes per UChar from UTF-8 (4 bytes from surrogate _pair_) */ - { 0x1a, 0, 0, 0 }, - 1, -- FALSE, -- FALSE, -+ false, -+ false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -3853,8 +3853,8 @@ static const UConverterStaticData _ISO2022JPStaticData={ - 6, /* max 6 bytes per UChar: 4-byte escape sequence + DBCS */ - { 0x1a, 0, 0, 0 }, - 1, -- FALSE, -- FALSE, -+ false, -+ false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -3904,8 +3904,8 @@ static const UConverterStaticData _ISO2022KRStaticData={ - 8, /* max 8 bytes per UChar */ - { 0x1a, 0, 0, 0 }, - 1, -- FALSE, -- FALSE, -+ false, -+ false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -3955,8 +3955,8 @@ static const UConverterStaticData _ISO2022CNStaticData={ - 8, /* max 8 bytes per UChar: 4-byte CNS designator + 2 bytes for SS2/SS3 + DBCS */ - { 0x1a, 0, 0, 0 }, - 1, -- FALSE, -- FALSE, -+ false, -+ false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnv_bld.cpp b/deps/icu-small/source/common/ucnv_bld.cpp -index d08eec7369..a0fbfe2d7f 100644 ---- a/deps/icu-small/source/common/ucnv_bld.cpp -+++ b/deps/icu-small/source/common/ucnv_bld.cpp -@@ -200,7 +200,7 @@ static icu::UMutex cnvCacheMutex; - - static const char **gAvailableConverters = NULL; - static uint16_t gAvailableConverterCount = 0; --static icu::UInitOnce gAvailableConvertersInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gAvailableConvertersInitOnce {}; - - #if !U_CHARSET_IS_UTF8 - -@@ -254,7 +254,7 @@ static UBool U_CALLCONV ucnv_cleanup(void) { - #if !U_CHARSET_IS_UTF8 - gDefaultConverterName = NULL; - gDefaultConverterNameBuffer[0] = 0; -- gDefaultConverterContainsOption = FALSE; -+ gDefaultConverterContainsOption = false; - gDefaultAlgorithmicSharedData = NULL; - #endif - -@@ -318,7 +318,7 @@ ucnv_data_unFlattenClone(UConverterLoadArgs *pArgs, UDataMemory *pData, UErrorCo - - data->staticData = source; - -- data->sharedDataCached = FALSE; -+ data->sharedDataCached = false; - - /* fill in fields from the loaded data */ - data->dataMemory = (void*)pData; /* for future use */ -@@ -462,7 +462,7 @@ ucnv_shareConverterData(UConverterSharedData * data) - */ - - /* Mark it shared */ -- data->sharedDataCached = TRUE; -+ data->sharedDataCached = true; - - uhash_put(SHARED_DATA_HASHTABLE, - (void*) data->staticData->name, /* Okay to cast away const as long as -@@ -502,11 +502,11 @@ ucnv_getSharedConverterData(const char *name) - */ - /* Deletes (frees) the Shared data it's passed. first it checks the referenceCounter to - * see if anyone is using it, if not it frees all the memory stemming from sharedConverterData and -- * returns TRUE, -- * otherwise returns FALSE -+ * returns true, -+ * otherwise returns false - * @param sharedConverterData The shared data - * @return if not it frees all the memory stemming from sharedConverterData and -- * returns TRUE, otherwise returns FALSE -+ * returns true, otherwise returns false - */ - static UBool - ucnv_deleteSharedConverterData(UConverterSharedData * deadSharedData) -@@ -515,8 +515,8 @@ ucnv_deleteSharedConverterData(UConverterSharedData * deadSharedData) - UTRACE_DATA2(UTRACE_OPEN_CLOSE, "unload converter %s shared data %p", deadSharedData->staticData->name, deadSharedData); - - if (deadSharedData->referenceCounter > 0) { -- UTRACE_EXIT_VALUE((int32_t)FALSE); -- return FALSE; -+ UTRACE_EXIT_VALUE((int32_t)false); -+ return false; - } - - if (deadSharedData->impl->unload != NULL) { -@@ -531,8 +531,8 @@ ucnv_deleteSharedConverterData(UConverterSharedData * deadSharedData) - - uprv_free(deadSharedData); - -- UTRACE_EXIT_VALUE((int32_t)TRUE); -- return TRUE; -+ UTRACE_EXIT_VALUE((int32_t)true); -+ return true; - } - - /** -@@ -589,7 +589,7 @@ ucnv_unload(UConverterSharedData *sharedData) { - sharedData->referenceCounter--; - } - -- if((sharedData->referenceCounter <= 0)&&(sharedData->sharedDataCached == FALSE)) { -+ if((sharedData->referenceCounter <= 0)&&(sharedData->sharedDataCached == false)) { - ucnv_deleteSharedConverterData(sharedData); - } - } -@@ -703,10 +703,10 @@ parseConverterOptions(const char *inName, - - /*Logic determines if the converter is Algorithmic AND/OR cached - *depending on that: -- * -we either go to get data from disk and cache it (Data=TRUE, Cached=False) -- * -Get it from a Hashtable (Data=X, Cached=TRUE) -- * -Call dataConverter initializer (Data=TRUE, Cached=TRUE) -- * -Call AlgorithmicConverter initializer (Data=FALSE, Cached=TRUE) -+ * -we either go to get data from disk and cache it (Data=true, Cached=false) -+ * -Get it from a Hashtable (Data=X, Cached=true) -+ * -Call dataConverter initializer (Data=true, Cached=true) -+ * -Call AlgorithmicConverter initializer (Data=false, Cached=true) - */ - U_CFUNC UConverterSharedData * - ucnv_loadSharedData(const char *converterName, -@@ -717,8 +717,8 @@ ucnv_loadSharedData(const char *converterName, - UConverterLoadArgs stackArgs; - UConverterSharedData *mySharedConverterData = NULL; - UErrorCode internalErrorCode = U_ZERO_ERROR; -- UBool mayContainOption = TRUE; -- UBool checkForAlgorithmic = TRUE; -+ UBool mayContainOption = true; -+ UBool checkForAlgorithmic = true; - - if (U_FAILURE (*err)) { - return NULL; -@@ -762,7 +762,7 @@ ucnv_loadSharedData(const char *converterName, - return NULL; - } - mySharedConverterData = (UConverterSharedData *)gDefaultAlgorithmicSharedData; -- checkForAlgorithmic = FALSE; -+ checkForAlgorithmic = false; - mayContainOption = gDefaultConverterContainsOption; - /* the default converter name is already canonical */ - #endif -@@ -866,7 +866,7 @@ ucnv_canCreateConverter(const char *converterName, UErrorCode *err) { - if(U_SUCCESS(*err)) { - UTRACE_DATA1(UTRACE_OPEN_CLOSE, "test if can open converter %s", converterName); - -- stackArgs.onlyTestIsLoadable=TRUE; -+ stackArgs.onlyTestIsLoadable=true; - mySharedConverterData = ucnv_loadSharedData(converterName, &stackPieces, &stackArgs, err); - ucnv_createConverterFromSharedData( - &myUConverter, mySharedConverterData, -@@ -989,15 +989,15 @@ ucnv_createConverterFromSharedData(UConverter *myUConverter, - ucnv_unloadSharedDataIfReady(mySharedConverterData); - return NULL; - } -- isCopyLocal = FALSE; -+ isCopyLocal = false; - } else { -- isCopyLocal = TRUE; -+ isCopyLocal = true; - } - - /* initialize the converter */ - uprv_memset(myUConverter, 0, sizeof(UConverter)); - myUConverter->isCopyLocal = isCopyLocal; -- /*myUConverter->isExtraLocal = FALSE;*/ /* Set by the memset call */ -+ /*myUConverter->isExtraLocal = false;*/ /* Set by the memset call */ - myUConverter->sharedData = mySharedConverterData; - myUConverter->options = pArgs->options; - if(!pArgs->onlyTestIsLoadable) { -@@ -1083,7 +1083,7 @@ ucnv_flushCache () - UCNV_DEBUG_LOG("del",mySharedData->staticData->name,mySharedData); - - uhash_removeElement(SHARED_DATA_HASHTABLE, e); -- mySharedData->sharedDataCached = FALSE; -+ mySharedData->sharedDataCached = false; - ucnv_deleteSharedConverterData (mySharedData); - } else { - ++remaining; -@@ -1342,7 +1342,7 @@ ucnv_swap(const UDataSwapper *ds, - _MBCSHeader *outMBCSHeader; - _MBCSHeader mbcsHeader; - uint32_t mbcsHeaderLength; -- UBool noFromU=FALSE; -+ UBool noFromU=false; - - uint8_t outputType; - -diff --git a/deps/icu-small/source/common/ucnv_cb.cpp b/deps/icu-small/source/common/ucnv_cb.cpp -index 1bb0012014..7bfde82870 100644 ---- a/deps/icu-small/source/common/ucnv_cb.cpp -+++ b/deps/icu-small/source/common/ucnv_cb.cpp -@@ -86,7 +86,7 @@ ucnv_cbFromUWriteUChars(UConverterFromUnicodeArgs *args, - source, - sourceLimit, - NULL, /* no offsets */ -- FALSE, /* no flush */ -+ false, /* no flush */ - err); - - if(args->offsets) -@@ -141,7 +141,7 @@ ucnv_cbFromUWriteUChars(UConverterFromUnicodeArgs *args, - source, - sourceLimit, - NULL, -- FALSE, -+ false, - &err2); - - /* We can go ahead and overwrite the length here. We know just how -diff --git a/deps/icu-small/source/common/ucnv_ct.cpp b/deps/icu-small/source/common/ucnv_ct.cpp -index b40e1b2c97..c12e982b88 100644 ---- a/deps/icu-small/source/common/ucnv_ct.cpp -+++ b/deps/icu-small/source/common/ucnv_ct.cpp -@@ -225,23 +225,23 @@ static COMPOUND_TEXT_CONVERTERS getState(int codepoint) { - - static COMPOUND_TEXT_CONVERTERS findStateFromEscSeq(const char* source, const char* sourceLimit, const uint8_t* toUBytesBuffer, int32_t toUBytesBufferLength, UErrorCode *err) { - COMPOUND_TEXT_CONVERTERS state = INVALID; -- UBool matchFound = FALSE; -+ UBool matchFound = false; - int32_t i, n, offset = toUBytesBufferLength; - - for (i = 0; i < NUM_OF_CONVERTERS; i++) { -- matchFound = TRUE; -+ matchFound = true; - for (n = 0; escSeqCompoundText[i][n] != 0; n++) { - if (n < toUBytesBufferLength) { - if (toUBytesBuffer[n] != escSeqCompoundText[i][n]) { -- matchFound = FALSE; -+ matchFound = false; - break; - } - } else if ((source + (n - offset)) >= sourceLimit) { - *err = U_TRUNCATED_CHAR_FOUND; -- matchFound = FALSE; -+ matchFound = false; - break; - } else if (*(source + (n - offset)) != escSeqCompoundText[i][n]) { -- matchFound = FALSE; -+ matchFound = false; - break; - } - } -@@ -634,8 +634,8 @@ static const UConverterStaticData _CompoundTextStaticData = { - 6, - { 0xef, 0, 0, 0 }, - 1, -- FALSE, -- FALSE, -+ false, -+ false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnv_ext.cpp b/deps/icu-small/source/common/ucnv_ext.cpp -index 7dea4eef41..ffc3c93033 100644 ---- a/deps/icu-small/source/common/ucnv_ext.cpp -+++ b/deps/icu-small/source/common/ucnv_ext.cpp -@@ -108,7 +108,7 @@ ucnv_extFindToU(const uint32_t *toUSection, int32_t length, uint8_t byte) { - } - - /* -- * TRUE if not an SI/SO stateful converter, -+ * true if not an SI/SO stateful converter, - * or if the match length fits with the current converter state - */ - #define UCNV_EXT_TO_U_VERIFY_SISO_MATCH(sisoState, match) \ -@@ -154,7 +154,7 @@ ucnv_extMatchToU(const int32_t *cx, int8_t sisoState, - srcLength=1; - } - } -- flush=TRUE; -+ flush=true; - } - - /* we must not remember fallback matches when not using fallbacks */ -@@ -302,7 +302,7 @@ ucnv_extInitialMatchToU(UConverter *cnv, const int32_t *cx, - target, targetLimit, - offsets, srcIndex, - pErrorCode); -- return TRUE; -+ return true; - } else if(match<0) { - /* save state for partial match */ - const char *s; -@@ -323,9 +323,9 @@ ucnv_extInitialMatchToU(UConverter *cnv, const int32_t *cx, - } - *src=s; /* same as *src=srcLimit; because we reached the end of input */ - cnv->preToULength=(int8_t)match; -- return TRUE; -+ return true; - } else /* match==0 no match */ { -- return FALSE; -+ return false; - } - } - -@@ -345,7 +345,7 @@ ucnv_extSimpleMatchToU(const int32_t *cx, - source, length, - NULL, 0, - &value, -- useFallback, TRUE); -+ useFallback, true); - if(match==length) { - /* write result for simple, single-character conversion */ - if(UCNV_EXT_TO_U_IS_CODE_POINT(value)) { -@@ -358,7 +358,7 @@ ucnv_extSimpleMatchToU(const int32_t *cx, - * - match>0 && value points to string: simple conversion cannot handle multiple code points - * - match>0 && match!=length: not all input consumed, forbidden for this function - * - match==0: no match found in the first place -- * - match<0: partial match, not supported for simple conversion (and flush==TRUE) -+ * - match<0: partial match, not supported for simple conversion (and flush==true) - */ - return 0xfffe; - } -@@ -516,13 +516,13 @@ ucnv_extFindFromU(const UChar *fromUSection, int32_t length, UChar u) { - * @param srcLength length of src, >=0 - * @param pMatchValue [out] output result value for the match from the data structure - * @param useFallback "use fallback" flag, usually from cnv->useFallback -- * @param flush TRUE if the end of the input stream is reached -+ * @param flush true if the end of the input stream is reached - * @return >1: matched, return value=total match length (number of input units matched) - * 1: matched, no mapping but request for - * (only for the first code point) - * 0: no match - * <0: partial match, return value=negative total match length -- * (partial matches are never returned for flush==TRUE) -+ * (partial matches are never returned for flush==true) - * (partial matches are never returned as being longer than UCNV_EXT_MAX_UCHARS) - * the matchLength is 2 if only firstCP matched, and >2 if firstCP and - * further code units matched -@@ -778,7 +778,7 @@ ucnv_extInitialMatchFromU(UConverter *cnv, const int32_t *cx, - target, targetLimit, - offsets, srcIndex, - pErrorCode); -- return TRUE; -+ return true; - } else if(match<0) { - /* save state for partial match */ - const UChar *s; -@@ -795,13 +795,13 @@ ucnv_extInitialMatchFromU(UConverter *cnv, const int32_t *cx, - } - *src=s; /* same as *src=srcLimit; because we reached the end of input */ - cnv->preFromULength=(int8_t)match; -- return TRUE; -+ return true; - } else if(match==1) { - /* matched, no mapping but request for */ -- cnv->useSubChar1=TRUE; -- return FALSE; -+ cnv->useSubChar1=true; -+ return false; - } else /* match==0 no match */ { -- return FALSE; -+ return false; - } - } - -@@ -822,7 +822,7 @@ ucnv_extSimpleMatchFromU(const int32_t *cx, - NULL, 0, - NULL, 0, - &value, -- useFallback, TRUE); -+ useFallback, true); - if(match>=2) { - /* write result for simple, single-character conversion */ - int32_t length; -@@ -854,7 +854,7 @@ ucnv_extSimpleMatchFromU(const int32_t *cx, - * - match>1 && resultLength>4: result too long for simple conversion - * - match==1: no match found, preferred - * - match==0: no match found in the first place -- * - match<0: partial match, not supported for simple conversion (and flush==TRUE) -+ * - match<0: partial match, not supported for simple conversion (and flush==true) - */ - return 0; - } -@@ -934,7 +934,7 @@ ucnv_extContinueMatchFromU(UConverter *cnv, - - if(match==1) { - /* matched, no mapping but request for */ -- cnv->useSubChar1=TRUE; -+ cnv->useSubChar1=true; - } - - /* move the first code point to the error field */ -@@ -961,12 +961,12 @@ extSetUseMapping(UConverterUnicodeSet which, int32_t minLength, uint32_t value) - // Do not add entries with reserved bits set. - if(((value&(UCNV_EXT_FROM_U_ROUNDTRIP_FLAG|UCNV_EXT_FROM_U_RESERVED_MASK))!= - UCNV_EXT_FROM_U_ROUNDTRIP_FLAG)) { -- return FALSE; -+ return false; - } - } else /* UCNV_ROUNDTRIP_AND_FALLBACK_SET */ { - // Do not add entries with reserved bits set. - if((value&UCNV_EXT_FROM_U_RESERVED_MASK)!=0) { -- return FALSE; -+ return false; - } - } - // Do not add entries or other (future?) pseudo-entries -diff --git a/deps/icu-small/source/common/ucnv_io.cpp b/deps/icu-small/source/common/ucnv_io.cpp -index 7a95a3f1e6..c9d20cb941 100644 ---- a/deps/icu-small/source/common/ucnv_io.cpp -+++ b/deps/icu-small/source/common/ucnv_io.cpp -@@ -175,7 +175,7 @@ static const char DATA_NAME[] = "cnvalias"; - static const char DATA_TYPE[] = "icu"; - - static UDataMemory *gAliasData=NULL; --static icu::UInitOnce gAliasDataInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gAliasDataInitOnce {}; - - enum { - tocLengthIndex=0, -@@ -226,7 +226,7 @@ static UBool U_CALLCONV ucnv_io_cleanup(void) - - uprv_memset(&gMainTable, 0, sizeof(gMainTable)); - -- return TRUE; /* Everything was cleaned up */ -+ return true; /* Everything was cleaned up */ - } - - static void U_CALLCONV initAliasData(UErrorCode &errCode) { -@@ -319,7 +319,7 @@ static inline UBool - isAlias(const char *alias, UErrorCode *pErrorCode) { - if(alias==NULL) { - *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - return (UBool)(*alias!=0); - } -@@ -388,13 +388,13 @@ ucnv_io_stripASCIIForCompare(char *dst, const char *name) { - char *dstItr = dst; - uint8_t type, nextType; - char c1; -- UBool afterDigit = FALSE; -+ UBool afterDigit = false; - - while ((c1 = *name++) != 0) { - type = GET_ASCII_TYPE(c1); - switch (type) { - case UIGNORE: -- afterDigit = FALSE; -+ afterDigit = false; - continue; /* ignore all but letters and digits */ - case ZERO: - if (!afterDigit) { -@@ -405,11 +405,11 @@ ucnv_io_stripASCIIForCompare(char *dst, const char *name) { - } - break; - case NONZERO: -- afterDigit = TRUE; -+ afterDigit = true; - break; - default: - c1 = (char)type; /* lowercased letter */ -- afterDigit = FALSE; -+ afterDigit = false; - break; - } - *dstItr++ = c1; -@@ -423,13 +423,13 @@ ucnv_io_stripEBCDICForCompare(char *dst, const char *name) { - char *dstItr = dst; - uint8_t type, nextType; - char c1; -- UBool afterDigit = FALSE; -+ UBool afterDigit = false; - - while ((c1 = *name++) != 0) { - type = GET_EBCDIC_TYPE(c1); - switch (type) { - case UIGNORE: -- afterDigit = FALSE; -+ afterDigit = false; - continue; /* ignore all but letters and digits */ - case ZERO: - if (!afterDigit) { -@@ -440,11 +440,11 @@ ucnv_io_stripEBCDICForCompare(char *dst, const char *name) { - } - break; - case NONZERO: -- afterDigit = TRUE; -+ afterDigit = true; - break; - default: - c1 = (char)type; /* lowercased letter */ -- afterDigit = FALSE; -+ afterDigit = false; - break; - } - *dstItr++ = c1; -@@ -479,14 +479,14 @@ ucnv_compareNames(const char *name1, const char *name2) { - int rc; - uint8_t type, nextType; - char c1, c2; -- UBool afterDigit1 = FALSE, afterDigit2 = FALSE; -+ UBool afterDigit1 = false, afterDigit2 = false; - - for (;;) { - while ((c1 = *name1++) != 0) { - type = GET_CHAR_TYPE(c1); - switch (type) { - case UIGNORE: -- afterDigit1 = FALSE; -+ afterDigit1 = false; - continue; /* ignore all but letters and digits */ - case ZERO: - if (!afterDigit1) { -@@ -497,11 +497,11 @@ ucnv_compareNames(const char *name1, const char *name2) { - } - break; - case NONZERO: -- afterDigit1 = TRUE; -+ afterDigit1 = true; - break; - default: - c1 = (char)type; /* lowercased letter */ -- afterDigit1 = FALSE; -+ afterDigit1 = false; - break; - } - break; /* deliver c1 */ -@@ -510,7 +510,7 @@ ucnv_compareNames(const char *name1, const char *name2) { - type = GET_CHAR_TYPE(c2); - switch (type) { - case UIGNORE: -- afterDigit2 = FALSE; -+ afterDigit2 = false; - continue; /* ignore all but letters and digits */ - case ZERO: - if (!afterDigit2) { -@@ -521,11 +521,11 @@ ucnv_compareNames(const char *name1, const char *name2) { - } - break; - case NONZERO: -- afterDigit2 = TRUE; -+ afterDigit2 = true; - break; - default: - c2 = (char)type; /* lowercased letter */ -- afterDigit2 = FALSE; -+ afterDigit2 = false; - break; - } - break; /* deliver c2 */ -@@ -628,11 +628,11 @@ isAliasInList(const char *alias, uint32_t listOffset) { - if (currList[currAlias] - && ucnv_compareNames(alias, GET_STRING(currList[currAlias]))==0) - { -- return TRUE; -+ return true; - } - } - } -- return FALSE; -+ return false; - } - - /* -@@ -1288,7 +1288,7 @@ ucnv_swapAliases(const UDataSwapper *ds, - - uprv_sortArray(tempTable.rows, (int32_t)count, sizeof(TempRow), - io_compareRows, &tempTable, -- FALSE, pErrorCode); -+ false, pErrorCode); - - if(U_SUCCESS(*pErrorCode)) { - /* copy/swap/permutate items */ -diff --git a/deps/icu-small/source/common/ucnv_lmb.cpp b/deps/icu-small/source/common/ucnv_lmb.cpp -index 6969727927..78b8e40700 100644 ---- a/deps/icu-small/source/common/ucnv_lmb.cpp -+++ b/deps/icu-small/source/common/ucnv_lmb.cpp -@@ -610,7 +610,7 @@ static const UConverterStaticData _LMBCSStaticData##n={\ - sizeof(UConverterStaticData),\ - "LMBCS-" #n,\ - 0, UCNV_IBM, UCNV_LMBCS_##n, 1, 3,\ -- { 0x3f, 0, 0, 0 },1,FALSE,FALSE,0,0,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} \ -+ { 0x3f, 0, 0, 0 },1,false,false,0,0,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} \ - };\ - const UConverterSharedData _LMBCSData##n= \ - UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_LMBCSStaticData##n, &_LMBCSImpl##n); -@@ -721,7 +721,7 @@ _LMBCSSafeClone(const UConverter *cnv, - } - - newLMBCS->cnv.extraInfo = &newLMBCS->lmbcs; -- newLMBCS->cnv.isExtraLocal = TRUE; -+ newLMBCS->cnv.isExtraLocal = true; - return &newLMBCS->cnv; - } - -@@ -763,14 +763,14 @@ LMBCSConversionWorker ( - U_ASSERT(xcnv); - U_ASSERT(group 0) { - firstByte = (ulmbcs_byte_t)(value >> ((bytesConverted - 1) * 8)); - } else { - /* most common failure mode is an unassigned character */ -- groups_tried[group] = TRUE; -+ groups_tried[group] = true; - return 0; - } - -@@ -1191,11 +1191,11 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args, - if (*args->source == group) { - /* single byte */ - ++args->source; -- uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source, 1, FALSE); -+ uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source, 1, false); - ++args->source; - } else { - /* double byte */ -- uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source, 2, FALSE); -+ uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source, 2, false); - args->source += 2; - } - } -@@ -1220,7 +1220,7 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args, - /* Lookup value must include opt group */ - bytes[0] = group; - bytes[1] = CurByte; -- uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, bytes, 2, FALSE); -+ uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, bytes, 2, false); - } - } - } -@@ -1236,13 +1236,13 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args, - CHECK_SOURCE_LIMIT(0); - - /* let the MBCS conversion consume CurByte again */ -- uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source - 1, 1, FALSE); -+ uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source - 1, 1, false); - } - else - { - CHECK_SOURCE_LIMIT(1); - /* let the MBCS conversion consume CurByte again */ -- uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source - 1, 2, FALSE); -+ uniChar = ucnv_MBCSSimpleGetNextUChar(cnv, args->source - 1, 2, false); - ++args->source; - } - } -diff --git a/deps/icu-small/source/common/ucnv_u16.cpp b/deps/icu-small/source/common/ucnv_u16.cpp -index a5e8367400..bebdede4c4 100644 ---- a/deps/icu-small/source/common/ucnv_u16.cpp -+++ b/deps/icu-small/source/common/ucnv_u16.cpp -@@ -637,7 +637,7 @@ static const UConverterStaticData _UTF16BEStaticData={ - sizeof(UConverterStaticData), - "UTF-16BE", - 1200, UCNV_IBM, UCNV_UTF16_BigEndian, 2, 2, -- { 0xff, 0xfd, 0, 0 },2,FALSE,FALSE, -+ { 0xff, 0xfd, 0, 0 },2,false,false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -1239,7 +1239,7 @@ static const UConverterStaticData _UTF16LEStaticData={ - sizeof(UConverterStaticData), - "UTF-16LE", - 1202, UCNV_IBM, UCNV_UTF16_LittleEndian, 2, 2, -- { 0xfd, 0xff, 0, 0 },2,FALSE,FALSE, -+ { 0xfd, 0xff, 0, 0 },2,false,false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -1526,7 +1526,7 @@ static const UConverterStaticData _UTF16StaticData = { - #else - { 0xfd, 0xff, 0, 0 }, 2, - #endif -- FALSE, FALSE, -+ false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -1567,7 +1567,7 @@ static const UConverterStaticData _UTF16v2StaticData = { - 1204, /* CCSID for BOM sensitive UTF-16 */ - UCNV_IBM, UCNV_UTF16, 2, 2, - { 0xff, 0xfd, 0, 0 }, 2, -- FALSE, FALSE, -+ false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnv_u32.cpp b/deps/icu-small/source/common/ucnv_u32.cpp -index bf6bd11dba..bc160b71dd 100644 ---- a/deps/icu-small/source/common/ucnv_u32.cpp -+++ b/deps/icu-small/source/common/ucnv_u32.cpp -@@ -494,7 +494,7 @@ static const UConverterStaticData _UTF32BEStaticData = { - "UTF-32BE", - 1232, - UCNV_IBM, UCNV_UTF32_BigEndian, 4, 4, -- { 0, 0, 0xff, 0xfd }, 4, FALSE, FALSE, -+ { 0, 0, 0xff, 0xfd }, 4, false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -989,7 +989,7 @@ static const UConverterStaticData _UTF32LEStaticData = { - "UTF-32LE", - 1234, - UCNV_IBM, UCNV_UTF32_LittleEndian, 4, 4, -- { 0xfd, 0xff, 0, 0 }, 4, FALSE, FALSE, -+ { 0xfd, 0xff, 0, 0 }, 4, false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -1110,7 +1110,7 @@ _UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, - /* some of the bytes are from a previous buffer, replay those first */ - pArgs->source=utf32BOM+(state&4); /* select the correct BOM */ - pArgs->sourceLimit=pArgs->source+((state&3)-count); /* replay previous bytes */ -- pArgs->flush=FALSE; /* this sourceLimit is not the real source stream limit */ -+ pArgs->flush=false; /* this sourceLimit is not the real source stream limit */ - - /* no offsets: bytes from previous buffer, and not enough for output */ - T_UConverter_toUnicode_UTF32_BE(pArgs, pErrorCode); -@@ -1241,7 +1241,7 @@ static const UConverterStaticData _UTF32StaticData = { - #else - { 0xfd, 0xff, 0, 0 }, 4, - #endif -- FALSE, FALSE, -+ false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnv_u7.cpp b/deps/icu-small/source/common/ucnv_u7.cpp -index de9f3f42ec..8964ca01de 100644 ---- a/deps/icu-small/source/common/ucnv_u7.cpp -+++ b/deps/icu-small/source/common/ucnv_u7.cpp -@@ -184,12 +184,12 @@ static void U_CALLCONV - _UTF7Reset(UConverter *cnv, UConverterResetChoice choice) { - if(choice<=UCNV_RESET_TO_UNICODE) { - /* reset toUnicode */ -- cnv->toUnicodeStatus=0x1000000; /* inDirectMode=TRUE */ -+ cnv->toUnicodeStatus=0x1000000; /* inDirectMode=true */ - cnv->toULength=0; - } - if(choice!=UCNV_RESET_TO_UNICODE) { - /* reset fromUnicode */ -- cnv->fromUnicodeStatus=(cnv->fromUnicodeStatus&0xf0000000)|0x1000000; /* keep version, inDirectMode=TRUE */ -+ cnv->fromUnicodeStatus=(cnv->fromUnicodeStatus&0xf0000000)|0x1000000; /* keep version, inDirectMode=true */ - } - } - -@@ -286,7 +286,7 @@ directMode: - } else /* PLUS */ { - /* switch to Unicode mode */ - nextSourceIndex=++sourceIndex; -- inDirectMode=FALSE; -+ inDirectMode=false; - byteIndex=0; - bits=0; - base64Counter=-1; -@@ -329,7 +329,7 @@ unicodeMode: - * It may be for example, a plus which we need to deal with in direct mode. - * 2.2.2. Else if the current char is illegal, we might as well deal with it here. - */ -- inDirectMode=TRUE; -+ inDirectMode=true; - if(base64Counter==-1) { - /* illegal: + immediately followed by something other than base64 or minus sign */ - /* include the plus sign in the reported sequence, but not the subsequent char */ -@@ -411,7 +411,7 @@ unicodeMode: - } - } else /*base64Value==-2*/ { - /* minus sign terminates the base64 sequence */ -- inDirectMode=TRUE; -+ inDirectMode=true; - if(base64Counter==-1) { - /* +- i.e. a minus immediately following a plus */ - *target++=PLUS; -@@ -541,7 +541,7 @@ directMode: - if(offsets!=NULL) { - *offsets++=sourceIndex; - } -- inDirectMode=FALSE; -+ inDirectMode=false; - base64Counter=0; - goto unicodeMode; - } -@@ -558,7 +558,7 @@ unicodeMode: - c=*source++; - if(c<=127 && encodeDirectly[c]) { - /* encode directly */ -- inDirectMode=TRUE; -+ inDirectMode=true; - - /* trick: back out this character to make this easier */ - --source; -@@ -719,7 +719,7 @@ unicodeMode: - } - } - /* reset the state for the next conversion */ -- cnv->fromUnicodeStatus=(cnv->fromUnicodeStatus&0xf0000000)|0x1000000; /* keep version, inDirectMode=TRUE */ -+ cnv->fromUnicodeStatus=(cnv->fromUnicodeStatus&0xf0000000)|0x1000000; /* keep version, inDirectMode=true */ - } else { - /* set the converter state back into UConverter */ - cnv->fromUnicodeStatus= -@@ -778,7 +778,7 @@ static const UConverterStaticData _UTF7StaticData={ - UCNV_IBM, UCNV_UTF7, - 1, 4, - { 0x3f, 0, 0, 0 }, 1, /* the subchar is not used */ -- FALSE, FALSE, -+ false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -971,7 +971,7 @@ directMode: - } else /* AMPERSAND */ { - /* switch to Unicode mode */ - nextSourceIndex=++sourceIndex; -- inDirectMode=FALSE; -+ inDirectMode=false; - byteIndex=0; - bits=0; - base64Counter=-1; -@@ -1002,7 +1002,7 @@ unicodeMode: - ++nextSourceIndex; - if(b>0x7e) { - /* illegal - test other illegal US-ASCII values by base64Value==-3 */ -- inDirectMode=TRUE; -+ inDirectMode=true; - *pErrorCode=U_ILLEGAL_CHAR_FOUND; - break; - } else if((base64Value=FROM_BASE64_IMAP(b))>=0) { -@@ -1024,7 +1024,7 @@ unicodeMode: - c=(UChar)((bits<<4)|(base64Value>>2)); - if(isLegalIMAP(c)) { - /* illegal */ -- inDirectMode=TRUE; -+ inDirectMode=true; - *pErrorCode=U_ILLEGAL_CHAR_FOUND; - goto endloop; - } -@@ -1042,7 +1042,7 @@ unicodeMode: - c=(UChar)((bits<<2)|(base64Value>>4)); - if(isLegalIMAP(c)) { - /* illegal */ -- inDirectMode=TRUE; -+ inDirectMode=true; - *pErrorCode=U_ILLEGAL_CHAR_FOUND; - goto endloop; - } -@@ -1060,7 +1060,7 @@ unicodeMode: - c=(UChar)((bits<<6)|base64Value); - if(isLegalIMAP(c)) { - /* illegal */ -- inDirectMode=TRUE; -+ inDirectMode=true; - *pErrorCode=U_ILLEGAL_CHAR_FOUND; - goto endloop; - } -@@ -1079,7 +1079,7 @@ unicodeMode: - } - } else if(base64Value==-2) { - /* minus sign terminates the base64 sequence */ -- inDirectMode=TRUE; -+ inDirectMode=true; - if(base64Counter==-1) { - /* &- i.e. a minus immediately following an ampersand */ - *target++=AMPERSAND; -@@ -1109,7 +1109,7 @@ unicodeMode: - /* base64Value==-1 for characters that are illegal only in Unicode mode */ - /* base64Value==-3 for illegal characters */ - /* illegal */ -- inDirectMode=TRUE; -+ inDirectMode=true; - *pErrorCode=U_ILLEGAL_CHAR_FOUND; - break; - } -@@ -1144,7 +1144,7 @@ endloop: - } - /* else if(base64Counter!=-1) byteIndex remains 0 because there is no particular byte sequence */ - -- inDirectMode=TRUE; /* avoid looping */ -+ inDirectMode=true; /* avoid looping */ - *pErrorCode=U_TRUNCATED_CHAR_FOUND; - } - -@@ -1240,7 +1240,7 @@ directMode: - if(offsets!=NULL) { - *offsets++=sourceIndex; - } -- inDirectMode=FALSE; -+ inDirectMode=false; - base64Counter=0; - goto unicodeMode; - } -@@ -1257,7 +1257,7 @@ unicodeMode: - c=*source++; - if(isLegalIMAP(c)) { - /* encode directly */ -- inDirectMode=TRUE; -+ inDirectMode=true; - - /* trick: back out this character to make this easier */ - --source; -@@ -1431,7 +1431,7 @@ unicodeMode: - } - } - /* reset the state for the next conversion */ -- cnv->fromUnicodeStatus=(cnv->fromUnicodeStatus&0xf0000000)|0x1000000; /* keep version, inDirectMode=TRUE */ -+ cnv->fromUnicodeStatus=(cnv->fromUnicodeStatus&0xf0000000)|0x1000000; /* keep version, inDirectMode=true */ - } else { - /* set the converter state back into UConverter */ - cnv->fromUnicodeStatus= -@@ -1479,7 +1479,7 @@ static const UConverterStaticData _IMAPStaticData={ - UCNV_IBM, UCNV_IMAP_MAILBOX, - 1, 4, - { 0x3f, 0, 0, 0 }, 1, /* the subchar is not used */ -- FALSE, FALSE, -+ false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnv_u8.cpp b/deps/icu-small/source/common/ucnv_u8.cpp -index 1ef7fa2f02..3c27f2e46e 100644 ---- a/deps/icu-small/source/common/ucnv_u8.cpp -+++ b/deps/icu-small/source/common/ucnv_u8.cpp -@@ -56,7 +56,7 @@ static const uint32_t offsetsFromUTF8[5] = {0, - static UBool hasCESU8Data(const UConverter *cnv) - { - #if UCONFIG_ONLY_HTML_CONVERSION -- return FALSE; -+ return false; - #else - return (UBool)(cnv->sharedData == &_CESU8Data); - #endif -@@ -888,7 +888,7 @@ static const UConverterStaticData _UTF8StaticData={ - "UTF-8", - 1208, UCNV_IBM, UCNV_UTF8, - 1, 3, /* max 3 bytes per UChar from UTF-8 (4 bytes from surrogate _pair_) */ -- { 0xef, 0xbf, 0xbd, 0 },3,FALSE,FALSE, -+ { 0xef, 0xbf, 0xbd, 0 },3,false,false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -931,7 +931,7 @@ static const UConverterStaticData _CESU8StaticData={ - "CESU-8", - 9400, /* CCSID for CESU-8 */ - UCNV_UNKNOWN, UCNV_CESU8, 1, 3, -- { 0xef, 0xbf, 0xbd, 0 },3,FALSE,FALSE, -+ { 0xef, 0xbf, 0xbd, 0 },3,false,false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnvbocu.cpp b/deps/icu-small/source/common/ucnvbocu.cpp -index 7c2aab5655..edb49d36a9 100644 ---- a/deps/icu-small/source/common/ucnvbocu.cpp -+++ b/deps/icu-small/source/common/ucnvbocu.cpp -@@ -195,7 +195,7 @@ bocu1TrailToByte[BOCU1_TRAIL_CONTROLS_COUNT]={ - * what we need here. - * This macro adjust the results so that the modulo-value m is always >=0. - * -- * For positive n, the if() condition is always FALSE. -+ * For positive n, the if() condition is always false. - * - * @param n Number to be split into quotient and rest. - * Will be modified to contain the quotient. -@@ -1401,7 +1401,7 @@ static const UConverterStaticData _Bocu1StaticData={ - UCNV_IBM, UCNV_BOCU1, - 1, 4, /* one UChar generates at least 1 byte and at most 4 bytes */ - { 0x1a, 0, 0, 0 }, 1, /* BOCU-1 never needs to write a subchar */ -- FALSE, FALSE, -+ false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnvhz.cpp b/deps/icu-small/source/common/ucnvhz.cpp -index 6b2f5faaf0..e0d2f0775d 100644 ---- a/deps/icu-small/source/common/ucnvhz.cpp -+++ b/deps/icu-small/source/common/ucnvhz.cpp -@@ -111,18 +111,18 @@ _HZReset(UConverter *cnv, UConverterResetChoice choice){ - cnv->toUnicodeStatus = 0; - cnv->mode=0; - if(cnv->extraInfo != NULL){ -- ((UConverterDataHZ*)cnv->extraInfo)->isStateDBCS = FALSE; -- ((UConverterDataHZ*)cnv->extraInfo)->isEmptySegment = FALSE; -+ ((UConverterDataHZ*)cnv->extraInfo)->isStateDBCS = false; -+ ((UConverterDataHZ*)cnv->extraInfo)->isEmptySegment = false; - } - } - if(choice!=UCNV_RESET_TO_UNICODE) { - cnv->fromUnicodeStatus= 0; - cnv->fromUChar32=0x0000; - if(cnv->extraInfo != NULL){ -- ((UConverterDataHZ*)cnv->extraInfo)->isEscapeAppended = FALSE; -+ ((UConverterDataHZ*)cnv->extraInfo)->isEscapeAppended = false; - ((UConverterDataHZ*)cnv->extraInfo)->targetIndex = 0; - ((UConverterDataHZ*)cnv->extraInfo)->sourceIndex = 0; -- ((UConverterDataHZ*)cnv->extraInfo)->isTargetUCharDBCS = FALSE; -+ ((UConverterDataHZ*)cnv->extraInfo)->isTargetUCharDBCS = false; - } - } - } -@@ -189,13 +189,13 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - args->offsets[myTarget - args->target]=(int32_t)(mySource - args->source - 2); - } - *(myTarget++)=(UChar)mySourceChar; -- myData->isEmptySegment = FALSE; -+ myData->isEmptySegment = false; - continue; - case UCNV_OPEN_BRACE: - case UCNV_CLOSE_BRACE: - myData->isStateDBCS = (mySourceChar == UCNV_OPEN_BRACE); - if (myData->isEmptySegment) { -- myData->isEmptySegment = FALSE; /* we are handling it, reset to avoid future spurious errors */ -+ myData->isEmptySegment = false; /* we are handling it, reset to avoid future spurious errors */ - *err = U_ILLEGAL_ESCAPE_SEQUENCE; - args->converter->toUCallbackReason = UCNV_IRREGULAR; - args->converter->toUBytes[0] = UCNV_TILDE; -@@ -205,7 +205,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - args->source = mySource; - return; - } -- myData->isEmptySegment = TRUE; -+ myData->isEmptySegment = true; - continue; - default: - /* if the first byte is equal to TILDE and the trail byte -@@ -217,7 +217,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - * - If any of the non-initial bytes could be the start of a character, - * we stop the illegal sequence before the first one of those. - */ -- myData->isEmptySegment = FALSE; /* different error here, reset this to avoid spurious future error */ -+ myData->isEmptySegment = false; /* different error here, reset this to avoid spurious future error */ - *err = U_ILLEGAL_ESCAPE_SEQUENCE; - args->converter->toUBytes[0] = UCNV_TILDE; - if( myData->isStateDBCS ? -@@ -244,7 +244,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - } else { - /* add another bit to distinguish a 0 byte from not having seen a lead byte */ - args->converter->toUnicodeStatus = (uint32_t) (mySourceChar | 0x100); -- myData->isEmptySegment = FALSE; /* the segment has something, either valid or will produce a different error, so reset this */ -+ myData->isEmptySegment = false; /* the segment has something, either valid or will produce a different error, so reset this */ - } - continue; - } -@@ -289,10 +289,10 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, - continue; - } else if(mySourceChar <= 0x7f) { - targetUniChar = (UChar)mySourceChar; /* ASCII */ -- myData->isEmptySegment = FALSE; /* the segment has something valid */ -+ myData->isEmptySegment = false; /* the segment has something valid */ - } else { - targetUniChar = 0xffff; -- myData->isEmptySegment = FALSE; /* different error here, reset this to avoid spurious future error */ -+ myData->isEmptySegment = false; /* different error here, reset this to avoid spurious future error */ - } - } - if(targetUniChar < 0xfffe){ -@@ -396,13 +396,13 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, - len =ESC_LEN; - escSeq = SB_ESCAPE; - CONCAT_ESCAPE_MACRO(args, myTargetIndex, targetLength, escSeq,err,len,mySourceIndex); -- myConverterData->isEscapeAppended = TRUE; -+ myConverterData->isEscapeAppended = true; - } - else{ /* Shifting from a single byte to double byte mode*/ - len =ESC_LEN; - escSeq = DB_ESCAPE; - CONCAT_ESCAPE_MACRO(args, myTargetIndex, targetLength, escSeq,err,len,mySourceIndex); -- myConverterData->isEscapeAppended = TRUE; -+ myConverterData->isEscapeAppended = true; - - } - } -@@ -507,7 +507,7 @@ _HZ_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode *e - if( convData->isTargetUCharDBCS){ - *p++= UCNV_TILDE; - *p++= UCNV_CLOSE_BRACE; -- convData->isTargetUCharDBCS=FALSE; -+ convData->isTargetUCharDBCS=false; - } - *p++= (char)cnv->subChars[0]; - -@@ -550,7 +550,7 @@ _HZ_SafeClone(const UConverter *cnv, - - uprv_memcpy(&localClone->mydata, cnv->extraInfo, sizeof(UConverterDataHZ)); - localClone->cnv.extraInfo = &localClone->mydata; -- localClone->cnv.isExtraLocal = TRUE; -+ localClone->cnv.isExtraLocal = true; - - /* deep-clone the sub-converter */ - size = (int32_t)sizeof(UConverter); -@@ -611,8 +611,8 @@ static const UConverterStaticData _HZStaticData={ - 4, - { 0x1a, 0, 0, 0 }, - 1, -- FALSE, -- FALSE, -+ false, -+ false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, /* reserved */ -diff --git a/deps/icu-small/source/common/ucnvisci.cpp b/deps/icu-small/source/common/ucnvisci.cpp -index f303e7e24f..4d747e1ff8 100644 ---- a/deps/icu-small/source/common/ucnvisci.cpp -+++ b/deps/icu-small/source/common/ucnvisci.cpp -@@ -172,7 +172,7 @@ static const uint8_t pnjMap[80] = { - static UBool - isPNJConsonant(UChar32 c) { - if (c < 0xa00 || 0xa50 <= c) { -- return FALSE; -+ return false; - } else { - return (UBool)(pnjMap[c - 0xa00] & 1); - } -@@ -181,7 +181,7 @@ isPNJConsonant(UChar32 c) { - static UBool - isPNJBindiTippi(UChar32 c) { - if (c < 0xa00 || 0xa50 <= c) { -- return FALSE; -+ return false; - } else { - return (UBool)(pnjMap[c - 0xa00] >> 1); - } -@@ -202,7 +202,7 @@ _ISCIIOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode) { - converterData->contextCharToUnicode=NO_CHAR_MARKER; - cnv->toUnicodeStatus = missingCharMarker; - converterData->contextCharFromUnicode=0x0000; -- converterData->resetToDefaultToUnicode=FALSE; -+ converterData->resetToDefaultToUnicode=false; - /* check if the version requested is supported */ - if ((pArgs->options & UCNV_OPTIONS_VERSION_MASK) < 9) { - /* initialize state variables */ -@@ -214,7 +214,7 @@ _ISCIIOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode) { - = converterData->currentMaskToUnicode - = converterData->defMaskToUnicode = lookupInitialData[pArgs->options & UCNV_OPTIONS_VERSION_MASK].maskEnum; - -- converterData->isFirstBuffer=TRUE; -+ converterData->isFirstBuffer=true; - (void)uprv_strcpy(converterData->name, ISCII_CNV_PREFIX); - len = (int32_t)uprv_strlen(converterData->name); - converterData->name[len]= (char)((pArgs->options & UCNV_OPTIONS_VERSION_MASK) + '0'); -@@ -267,8 +267,8 @@ _ISCIIReset(UConverter *cnv, UConverterResetChoice choice) { - data->contextCharFromUnicode=0x00; - data->currentMaskFromUnicode=data->defMaskToUnicode; - data->currentDeltaFromUnicode=data->defDeltaToUnicode; -- data->isFirstBuffer=TRUE; -- data->resetToDefaultToUnicode=FALSE; -+ data->isFirstBuffer=true; -+ data->resetToDefaultToUnicode=false; - } - } - -@@ -906,7 +906,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( - UConverterDataISCII *converterData; - uint16_t newDelta=0; - uint16_t range = 0; -- UBool deltaChanged = FALSE; -+ UBool deltaChanged = false; - - if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)) { - *err = U_ILLEGAL_ARGUMENT_ERROR; -@@ -986,8 +986,8 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( - if (newDelta!= converterData->currentDeltaFromUnicode || converterData->isFirstBuffer) { - converterData->currentDeltaFromUnicode = newDelta; - converterData->currentMaskFromUnicode = lookupInitialData[range].maskEnum; -- deltaChanged =TRUE; -- converterData->isFirstBuffer=FALSE; -+ deltaChanged =true; -+ converterData->isFirstBuffer=false; - } - - if (converterData->currentDeltaFromUnicode == PNJ_DELTA) { -@@ -1024,7 +1024,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( - temp =(uint16_t)(ATR<<8); - temp += (uint16_t)((uint8_t) lookupInitialData[range].isciiLang); - /* reset */ -- deltaChanged=FALSE; -+ deltaChanged=false; - /* now append ATR and language code */ - WRITE_TO_TARGET_FROM_U(args,offsets,source,target,targetLimit,temp,err); - if (U_FAILURE(*err)) { -@@ -1330,7 +1330,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo - break; - case 0x0A: - case 0x0D: -- data->resetToDefaultToUnicode = TRUE; -+ data->resetToDefaultToUnicode = true; - GET_MAPPING(sourceChar,targetUniChar,data) - ; - *contextCharToUnicode = sourceChar; -@@ -1338,12 +1338,12 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo - - case ISCII_VOWEL_SIGN_E: - i=1; -- found=FALSE; -+ found=false; - for (; i + ISCII_NUKTA special mappings */ - i=1; -- found =FALSE; -+ found =false; - for (; iresetToDefaultToUnicode==TRUE) { -+ if (data->resetToDefaultToUnicode==true) { - data->currentDeltaToUnicode = data->defDeltaToUnicode; - data->currentMaskToUnicode = data->defMaskToUnicode; -- data->resetToDefaultToUnicode=FALSE; -+ data->resetToDefaultToUnicode=false; - } - } else { - -@@ -1550,7 +1550,7 @@ _ISCII_SafeClone(const UConverter *cnv, - - uprv_memcpy(&localClone->mydata, cnv->extraInfo, sizeof(UConverterDataISCII)); - localClone->cnv.extraInfo = &localClone->mydata; -- localClone->cnv.isExtraLocal = TRUE; -+ localClone->cnv.isExtraLocal = true; - - return &localClone->cnv; - } -@@ -1621,8 +1621,8 @@ static const UConverterStaticData _ISCIIStaticData={ - 4, - { 0x1a, 0, 0, 0 }, - 0x1, -- FALSE, -- FALSE, -+ false, -+ false, - 0x0, - 0x0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, /* reserved */ -diff --git a/deps/icu-small/source/common/ucnvlat1.cpp b/deps/icu-small/source/common/ucnvlat1.cpp -index 358bc0caa2..05aad6a0e0 100644 ---- a/deps/icu-small/source/common/ucnvlat1.cpp -+++ b/deps/icu-small/source/common/ucnvlat1.cpp -@@ -465,7 +465,7 @@ static const UConverterStaticData _Latin1StaticData={ - sizeof(UConverterStaticData), - "ISO-8859-1", - 819, UCNV_IBM, UCNV_LATIN_1, 1, 1, -- { 0x1a, 0, 0, 0 }, 1, FALSE, FALSE, -+ { 0x1a, 0, 0, 0 }, 1, false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -@@ -744,7 +744,7 @@ static const UConverterStaticData _ASCIIStaticData={ - sizeof(UConverterStaticData), - "US-ASCII", - 367, UCNV_IBM, UCNV_US_ASCII, 1, 1, -- { 0x1a, 0, 0, 0 }, 1, FALSE, FALSE, -+ { 0x1a, 0, 0, 0 }, 1, false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnvmbcs.cpp b/deps/icu-small/source/common/ucnvmbcs.cpp -index 420aa02af5..0e753c8ffb 100644 ---- a/deps/icu-small/source/common/ucnvmbcs.cpp -+++ b/deps/icu-small/source/common/ucnvmbcs.cpp -@@ -373,7 +373,7 @@ - * @param value contains 1..4 bytes of the first byte sequence, right-aligned - * @param codePoints resulting Unicode code points, or negative if a byte sequence does - * not map to anything -- * @return TRUE to continue enumeration, FALSE to stop -+ * @return true to continue enumeration, false to stop - */ - typedef UBool U_CALLCONV - UConverterEnumToUCallback(const void *context, uint32_t value, UChar32 codePoints[32]); -@@ -514,7 +514,7 @@ static const UConverterImpl _MBCSImpl={ - - const UConverterSharedData _MBCSData={ - sizeof(UConverterSharedData), 1, -- NULL, NULL, FALSE, TRUE, &_MBCSImpl, -+ NULL, NULL, false, true, &_MBCSImpl, - 0, UCNV_MBCS_TABLE_INITIALIZER - }; - -@@ -668,7 +668,7 @@ enumToU(UConverterMBCSTable *mbcsTable, int8_t stateProps[], - value|(uint32_t)b, - callback, context, - pErrorCode)) { -- return FALSE; -+ return false; - } - } - codePoints[b&0x1f]=U_SENTINEL; -@@ -719,13 +719,13 @@ enumToU(UConverterMBCSTable *mbcsTable, int8_t stateProps[], - if(((++b)&0x1f)==0) { - if(anyCodePoints>=0) { - if(!callback(context, value|(uint32_t)(b-0x20), codePoints)) { -- return FALSE; -+ return false; - } - anyCodePoints=-1; - } - } - } -- return TRUE; -+ return true; - } - - /* -@@ -1111,7 +1111,7 @@ _extFromU(UConverter *cnv, const UConverterSharedData *sharedData, - UErrorCode *pErrorCode) { - const int32_t *cx; - -- cnv->useSubChar1=FALSE; -+ cnv->useSubChar1=false; - - if( (cx=sharedData->mbcs.extIndexes)!=NULL && - ucnv_extInitialMatchFromU( -@@ -1286,7 +1286,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { - mbcsTable->stateTable[0][EBCDIC_LF]==MBCS_ENTRY_FINAL(0, MBCS_STATE_VALID_DIRECT_16, U_LF) && - mbcsTable->stateTable[0][EBCDIC_NL]==MBCS_ENTRY_FINAL(0, MBCS_STATE_VALID_DIRECT_16, U_NL) - )) { -- return FALSE; -+ return false; - } - - if(mbcsTable->outputType==MBCS_OUTPUT_1) { -@@ -1294,7 +1294,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { - EBCDIC_RT_LF==MBCS_SINGLE_RESULT_FROM_U(table, results, U_LF) && - EBCDIC_RT_NL==MBCS_SINGLE_RESULT_FROM_U(table, results, U_NL) - )) { -- return FALSE; -+ return false; - } - } else /* MBCS_OUTPUT_2_SISO */ { - stage2Entry=MBCS_STAGE_2_FROM_U(table, U_LF); -@@ -1302,7 +1302,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { - MBCS_FROM_U_IS_ROUNDTRIP(stage2Entry, U_LF)!=0 && - EBCDIC_LF==MBCS_VALUE_2_FROM_STAGE_2(bytes, stage2Entry, U_LF) - )) { -- return FALSE; -+ return false; - } - - stage2Entry=MBCS_STAGE_2_FROM_U(table, U_NL); -@@ -1310,7 +1310,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { - MBCS_FROM_U_IS_ROUNDTRIP(stage2Entry, U_NL)!=0 && - EBCDIC_NL==MBCS_VALUE_2_FROM_STAGE_2(bytes, stage2Entry, U_NL) - )) { -- return FALSE; -+ return false; - } - } - -@@ -1334,7 +1334,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { - * ucnv_MBCSSizeofFromUBytes() function. - */ - *pErrorCode=U_INVALID_FORMAT_ERROR; -- return FALSE; -+ return false; - } - - /* -@@ -1351,7 +1351,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { - p=(uint8_t *)uprv_malloc(size); - if(p==NULL) { - *pErrorCode=U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - - /* copy and modify the to-Unicode state table */ -@@ -1397,7 +1397,7 @@ _EBCDICSwapLFNL(UConverterSharedData *sharedData, UErrorCode *pErrorCode) { - if(newStateTable!=NULL) { - uprv_free(newStateTable); - } -- return TRUE; -+ return true; - } - - /* reconstitute omitted fromUnicode data ------------------------------------ */ -@@ -1477,7 +1477,7 @@ writeStage3Roundtrip(const void *context, uint32_t value, UChar32 codePoints[32] - /* set the roundtrip flag */ - *stage2|=(1UL<<(16+(c&0xf))); - } -- return TRUE; -+ return true; - } - - static void -@@ -1561,7 +1561,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, - _MBCSHeader *header=(_MBCSHeader *)raw; - uint32_t offset; - uint32_t headerLength; -- UBool noFromU=FALSE; -+ UBool noFromU=false; - - if(header->version[0]==4) { - headerLength=MBCS_HEADER_V4_LENGTH; -@@ -1726,7 +1726,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, - } - mbcsTable->stateTable=(const int32_t (*)[256])newStateTable; - mbcsTable->countStates=(uint8_t)(count+1); -- mbcsTable->stateTableOwned=TRUE; -+ mbcsTable->stateTableOwned=true; - - mbcsTable->outputType=MBCS_OUTPUT_DBCS_ONLY; - } -@@ -1805,7 +1805,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData, - (header->version[2]>=(MBCS_FAST_MAX>>8)) - ) - ) { -- mbcsTable->utf8Friendly=TRUE; -+ mbcsTable->utf8Friendly=true; - - if(mbcsTable->countStates==1) { - /* -@@ -2411,13 +2411,13 @@ hasValidTrailBytes(const int32_t (*stateTable)[256], uint8_t state) { - if( !MBCS_ENTRY_IS_TRANSITION(entry) && - MBCS_ENTRY_FINAL_ACTION(entry)!=MBCS_STATE_ILLEGAL - ) { -- return TRUE; -+ return true; - } - entry=row[0x41]; - if( !MBCS_ENTRY_IS_TRANSITION(entry) && - MBCS_ENTRY_FINAL_ACTION(entry)!=MBCS_STATE_ILLEGAL - ) { -- return TRUE; -+ return true; - } - /* Then test for final entries in this state. */ - for(b=0; b<=0xff; ++b) { -@@ -2425,7 +2425,7 @@ hasValidTrailBytes(const int32_t (*stateTable)[256], uint8_t state) { - if( !MBCS_ENTRY_IS_TRANSITION(entry) && - MBCS_ENTRY_FINAL_ACTION(entry)!=MBCS_STATE_ILLEGAL - ) { -- return TRUE; -+ return true; - } - } - /* Then recurse for transition entries. */ -@@ -2434,10 +2434,10 @@ hasValidTrailBytes(const int32_t (*stateTable)[256], uint8_t state) { - if( MBCS_ENTRY_IS_TRANSITION(entry) && - hasValidTrailBytes(stateTable, (uint8_t)MBCS_ENTRY_TRANSITION_STATE(entry)) - ) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - /* -@@ -2454,7 +2454,7 @@ isSingleOrLead(const int32_t (*stateTable)[256], uint8_t state, UBool isDBCSOnly - } else { - uint8_t action=(uint8_t)(MBCS_ENTRY_FINAL_ACTION(entry)); - if(action==MBCS_STATE_CHANGE_ONLY && isDBCSOnly) { -- return FALSE; /* SI/SO are illegal for DBCS-only conversion */ -+ return false; /* SI/SO are illegal for DBCS-only conversion */ - } else { - return action!=MBCS_STATE_ILLEGAL; - } -@@ -5672,7 +5672,7 @@ ucnv_MBCSWriteSub(UConverterFromUnicodeArgs *pArgs, - } - - /* reset the selector for the next code point */ -- cnv->useSubChar1=FALSE; -+ cnv->useSubChar1=false; - - if (cnv->sharedData->mbcs.outputType == MBCS_OUTPUT_2_SISO) { - p=buffer; -diff --git a/deps/icu-small/source/common/ucnvscsu.cpp b/deps/icu-small/source/common/ucnvscsu.cpp -index 7b580291e1..86e850a998 100644 ---- a/deps/icu-small/source/common/ucnvscsu.cpp -+++ b/deps/icu-small/source/common/ucnvscsu.cpp -@@ -163,7 +163,7 @@ _SCSUReset(UConverter *cnv, UConverterResetChoice choice) { - /* reset toUnicode */ - uprv_memcpy(scsu->toUDynamicOffsets, initialDynamicOffsets, 32); - -- scsu->toUIsSingleByteMode=TRUE; -+ scsu->toUIsSingleByteMode=true; - scsu->toUState=readCommand; - scsu->toUQuoteWindow=scsu->toUDynamicWindow=0; - scsu->toUByteOne=0; -@@ -174,7 +174,7 @@ _SCSUReset(UConverter *cnv, UConverterResetChoice choice) { - /* reset fromUnicode */ - uprv_memcpy(scsu->fromUDynamicOffsets, initialDynamicOffsets, 32); - -- scsu->fromUIsSingleByteMode=TRUE; -+ scsu->fromUIsSingleByteMode=true; - scsu->fromUDynamicWindow=0; - - scsu->nextWindowUseIndex=0; -@@ -371,7 +371,7 @@ singleByteMode: - state=quotePairOne; - } else if(b==SCU) { - sourceIndex=nextSourceIndex; -- isSingleByteMode=FALSE; -+ isSingleByteMode=false; - goto fastUnicode; - } else /* Srs */ { - /* callback(illegal) */ -@@ -508,17 +508,17 @@ fastUnicode: - } else if(/* UC0<=b && */ b<=UC7) { - dynamicWindow=(int8_t)(b-UC0); - sourceIndex=nextSourceIndex; -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - goto fastSingle; - } else if(/* UD0<=b && */ b<=UD7) { - dynamicWindow=(int8_t)(b-UD0); -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - cnv->toUBytes[0]=b; - cnv->toULength=1; - state=defineOne; - goto singleByteMode; - } else if(b==UDX) { -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - cnv->toUBytes[0]=b; - cnv->toULength=1; - state=definePairOne; -@@ -695,7 +695,7 @@ singleByteMode: - } else if(b==SQU) { - state=quotePairOne; - } else if(b==SCU) { -- isSingleByteMode=FALSE; -+ isSingleByteMode=false; - goto fastUnicode; - } else /* Srs */ { - /* callback(illegal) */ -@@ -805,17 +805,17 @@ fastUnicode: - state=quotePairTwo; - } else if(/* UC0<=b && */ b<=UC7) { - dynamicWindow=(int8_t)(b-UC0); -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - goto fastSingle; - } else if(/* UD0<=b && */ b<=UD7) { - dynamicWindow=(int8_t)(b-UD0); -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - cnv->toUBytes[0]=b; - cnv->toULength=1; - state=defineOne; - goto singleByteMode; - } else if(b==UDX) { -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - cnv->toUBytes[0]=b; - cnv->toULength=1; - state=definePairOne; -@@ -1159,7 +1159,7 @@ getTrailSingle: - goto outputBytes; - } else { - /* change to Unicode mode and output this (lead, trail) pair */ -- isSingleByteMode=FALSE; -+ isSingleByteMode=false; - *target++=(uint8_t)SCU; - if(offsets!=NULL) { - *offsets++=sourceIndex; -@@ -1218,7 +1218,7 @@ getTrailSingle: - * switch to Unicode mode if this is the last character in the block - * or there is at least one more ideograph following immediately - */ -- isSingleByteMode=FALSE; -+ isSingleByteMode=false; - c|=SCU<<16; - length=3; - goto outputBytes; -@@ -1269,13 +1269,13 @@ getTrailSingle: - if(!(sourcefromUDynamicOffsets, c))>=0) { - /* there is a dynamic window that contains this character, change to it */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - dynamicWindow=window; - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]; - useDynamicWindow(scsu, dynamicWindow); -@@ -1284,7 +1284,7 @@ getTrailSingle: - goto outputBytes; - } else if((code=getDynamicOffset(c, &offset))>=0) { - /* define a dynamic window with this character */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - dynamicWindow=getNextDynamicWindow(scsu); - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]=offset; - useDynamicWindow(scsu, dynamicWindow); -@@ -1337,7 +1337,7 @@ getTrailUnicode: - * the following character is not uncompressible, - * change to the window - */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - dynamicWindow=window; - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]; - useDynamicWindow(scsu, dynamicWindow); -@@ -1348,7 +1348,7 @@ getTrailUnicode: - (code=getDynamicOffset(c, &offset))>=0 - ) { - /* two supplementary characters in (probably) the same window - define an extended one */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - code-=0x200; - dynamicWindow=getNextDynamicWindow(scsu); - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]=offset; -@@ -1645,7 +1645,7 @@ getTrailSingle: - goto outputBytes; - } else { - /* change to Unicode mode and output this (lead, trail) pair */ -- isSingleByteMode=FALSE; -+ isSingleByteMode=false; - *target++=(uint8_t)SCU; - --targetCapacity; - c=((uint32_t)lead<<16)|trail; -@@ -1701,7 +1701,7 @@ getTrailSingle: - * switch to Unicode mode if this is the last character in the block - * or there is at least one more ideograph following immediately - */ -- isSingleByteMode=FALSE; -+ isSingleByteMode=false; - c|=SCU<<16; - length=3; - goto outputBytes; -@@ -1746,13 +1746,13 @@ getTrailSingle: - if(!(sourcefromUDynamicOffsets, c))>=0) { - /* there is a dynamic window that contains this character, change to it */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - dynamicWindow=window; - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]; - useDynamicWindow(scsu, dynamicWindow); -@@ -1761,7 +1761,7 @@ getTrailSingle: - goto outputBytes; - } else if((code=getDynamicOffset(c, &offset))>=0) { - /* define a dynamic window with this character */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - dynamicWindow=getNextDynamicWindow(scsu); - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]=offset; - useDynamicWindow(scsu, dynamicWindow); -@@ -1813,7 +1813,7 @@ getTrailUnicode: - * the following character is not uncompressible, - * change to the window - */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - dynamicWindow=window; - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]; - useDynamicWindow(scsu, dynamicWindow); -@@ -1824,7 +1824,7 @@ getTrailUnicode: - (code=getDynamicOffset(c, &offset))>=0 - ) { - /* two supplementary characters in (probably) the same window - define an extended one */ -- isSingleByteMode=TRUE; -+ isSingleByteMode=true; - code-=0x200; - dynamicWindow=getNextDynamicWindow(scsu); - currentOffset=scsu->fromUDynamicOffsets[dynamicWindow]=offset; -@@ -1991,7 +1991,7 @@ _SCSUSafeClone(const UConverter *cnv, - - uprv_memcpy(&localClone->mydata, cnv->extraInfo, sizeof(SCSUData)); - localClone->cnv.extraInfo = &localClone->mydata; -- localClone->cnv.isExtraLocal = TRUE; -+ localClone->cnv.isExtraLocal = true; - - return &localClone->cnv; - } -@@ -2033,7 +2033,7 @@ static const UConverterStaticData _SCSUStaticData={ - * substitution string. - */ - { 0x0e, 0xff, 0xfd, 0 }, 3, -- FALSE, FALSE, -+ false, false, - 0, - 0, - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ -diff --git a/deps/icu-small/source/common/ucnvsel.cpp b/deps/icu-small/source/common/ucnvsel.cpp -index 2dff5ac1bc..15ee596a23 100644 ---- a/deps/icu-small/source/common/ucnvsel.cpp -+++ b/deps/icu-small/source/common/ucnvsel.cpp -@@ -142,7 +142,7 @@ static void generateSelectorData(UConverterSelector* result, - result->trie = upvec_compactToUTrie2WithRowIndexes(upvec, status); - result->pv = upvec_cloneArray(upvec, &result->pvCount, NULL, status); - result->pvCount *= columns; // number of uint32_t = rows * columns -- result->ownPv = TRUE; -+ result->ownPv = true; - } - - /* open a selector. If converterListSize is 0, build for all converters. -@@ -212,7 +212,7 @@ ucnvsel_open(const char* const* converterList, int32_t converterListSize, - --encodingStrPadding; - } - -- newSelector->ownEncodingStrings = TRUE; -+ newSelector->ownEncodingStrings = true; - newSelector->encodingsCount = converterListSize; - UPropsVectors *upvec = upvec_open((converterListSize+31)/32, status); - generateSelectorData(newSelector.getAlias(), upvec, excludedCodePoints, whichSet, status); -diff --git a/deps/icu-small/source/common/ucol_swp.cpp b/deps/icu-small/source/common/ucol_swp.cpp -index 1af19863fa..59704ff8f6 100644 ---- a/deps/icu-small/source/common/ucol_swp.cpp -+++ b/deps/icu-small/source/common/ucol_swp.cpp -@@ -34,7 +34,7 @@ U_CAPI UBool U_EXPORT2 - ucol_looksLikeCollationBinary(const UDataSwapper *ds, - const void *inData, int32_t length) { - if(ds==NULL || inData==NULL || length<-1) { -- return FALSE; -+ return false; - } - - // First check for format version 4+ which has a standard data header. -@@ -46,7 +46,7 @@ ucol_looksLikeCollationBinary(const UDataSwapper *ds, - info.dataFormat[1]==0x43 && - info.dataFormat[2]==0x6f && - info.dataFormat[3]==0x6c) { -- return TRUE; -+ return true; - } - } - -@@ -64,7 +64,7 @@ ucol_looksLikeCollationBinary(const UDataSwapper *ds, - if(length<0) { - header.size=udata_readInt32(ds, inHeader->size); - } else if((length<(42*4) || length<(header.size=udata_readInt32(ds, inHeader->size)))) { -- return FALSE; -+ return false; - } - - header.magic=ds->readUInt32(inHeader->magic); -@@ -73,14 +73,14 @@ ucol_looksLikeCollationBinary(const UDataSwapper *ds, - inHeader->formatVersion[0]==3 /*&& - inHeader->formatVersion[1]>=0*/ - )) { -- return FALSE; -+ return false; - } - - if(inHeader->isBigEndian!=ds->inIsBigEndian || inHeader->charSetFamily!=ds->inCharset) { -- return FALSE; -+ return false; - } - -- return TRUE; -+ return true; - } - - namespace { -diff --git a/deps/icu-small/source/common/ucptrie_impl.h b/deps/icu-small/source/common/ucptrie_impl.h -index 048353c80d..a7a80a8f08 100644 ---- a/deps/icu-small/source/common/ucptrie_impl.h -+++ b/deps/icu-small/source/common/ucptrie_impl.h -@@ -54,80 +54,76 @@ struct UCPTrieHeader { - uint16_t shiftedHighStart; - }; - -+// Constants for use with UCPTrieHeader.options. -+constexpr uint16_t UCPTRIE_OPTIONS_DATA_LENGTH_MASK = 0xf000; -+constexpr uint16_t UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK = 0xf00; -+constexpr uint16_t UCPTRIE_OPTIONS_RESERVED_MASK = 0x38; -+constexpr uint16_t UCPTRIE_OPTIONS_VALUE_BITS_MASK = 7; -+ - /** -- * Constants for use with UCPTrieHeader.options. -- * @internal -+ * Value for index3NullOffset which indicates that there is no index-3 null block. -+ * Bit 15 is unused for this value because this bit is used if the index-3 contains -+ * 18-bit indexes. - */ --enum { -- UCPTRIE_OPTIONS_DATA_LENGTH_MASK = 0xf000, -- UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK = 0xf00, -- UCPTRIE_OPTIONS_RESERVED_MASK = 0x38, -- UCPTRIE_OPTIONS_VALUE_BITS_MASK = 7, -- /** -- * Value for index3NullOffset which indicates that there is no index-3 null block. -- * Bit 15 is unused for this value because this bit is used if the index-3 contains -- * 18-bit indexes. -- */ -- UCPTRIE_NO_INDEX3_NULL_OFFSET = 0x7fff, -- UCPTRIE_NO_DATA_NULL_OFFSET = 0xfffff --}; -+constexpr int32_t UCPTRIE_NO_INDEX3_NULL_OFFSET = 0x7fff; -+constexpr int32_t UCPTRIE_NO_DATA_NULL_OFFSET = 0xfffff; - - // Internal constants. --enum { -- /** The length of the BMP index table. 1024=0x400 */ -- UCPTRIE_BMP_INDEX_LENGTH = 0x10000 >> UCPTRIE_FAST_SHIFT, - -- UCPTRIE_SMALL_LIMIT = 0x1000, -- UCPTRIE_SMALL_INDEX_LENGTH = UCPTRIE_SMALL_LIMIT >> UCPTRIE_FAST_SHIFT, -+/** The length of the BMP index table. 1024=0x400 */ -+constexpr int32_t UCPTRIE_BMP_INDEX_LENGTH = 0x10000 >> UCPTRIE_FAST_SHIFT; - -- /** Shift size for getting the index-3 table offset. */ -- UCPTRIE_SHIFT_3 = 4, -+constexpr int32_t UCPTRIE_SMALL_LIMIT = 0x1000; -+constexpr int32_t UCPTRIE_SMALL_INDEX_LENGTH = UCPTRIE_SMALL_LIMIT >> UCPTRIE_FAST_SHIFT; - -- /** Shift size for getting the index-2 table offset. */ -- UCPTRIE_SHIFT_2 = 5 + UCPTRIE_SHIFT_3, -+/** Shift size for getting the index-3 table offset. */ -+constexpr int32_t UCPTRIE_SHIFT_3 = 4; - -- /** Shift size for getting the index-1 table offset. */ -- UCPTRIE_SHIFT_1 = 5 + UCPTRIE_SHIFT_2, -+/** Shift size for getting the index-2 table offset. */ -+constexpr int32_t UCPTRIE_SHIFT_2 = 5 + UCPTRIE_SHIFT_3; - -- /** -- * Difference between two shift sizes, -- * for getting an index-2 offset from an index-3 offset. 5=9-4 -- */ -- UCPTRIE_SHIFT_2_3 = UCPTRIE_SHIFT_2 - UCPTRIE_SHIFT_3, -+/** Shift size for getting the index-1 table offset. */ -+constexpr int32_t UCPTRIE_SHIFT_1 = 5 + UCPTRIE_SHIFT_2; - -- /** -- * Difference between two shift sizes, -- * for getting an index-1 offset from an index-2 offset. 5=14-9 -- */ -- UCPTRIE_SHIFT_1_2 = UCPTRIE_SHIFT_1 - UCPTRIE_SHIFT_2, -+/** -+ * Difference between two shift sizes, -+ * for getting an index-2 offset from an index-3 offset. 5=9-4 -+ */ -+constexpr int32_t UCPTRIE_SHIFT_2_3 = UCPTRIE_SHIFT_2 - UCPTRIE_SHIFT_3; - -- /** -- * Number of index-1 entries for the BMP. (4) -- * This part of the index-1 table is omitted from the serialized form. -- */ -- UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UCPTRIE_SHIFT_1, -+/** -+ * Difference between two shift sizes, -+ * for getting an index-1 offset from an index-2 offset. 5=14-9 -+ */ -+constexpr int32_t UCPTRIE_SHIFT_1_2 = UCPTRIE_SHIFT_1 - UCPTRIE_SHIFT_2; - -- /** Number of entries in an index-2 block. 32=0x20 */ -- UCPTRIE_INDEX_2_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_1_2, -+/** -+ * Number of index-1 entries for the BMP. (4) -+ * This part of the index-1 table is omitted from the serialized form. -+ */ -+constexpr int32_t UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UCPTRIE_SHIFT_1; - -- /** Mask for getting the lower bits for the in-index-2-block offset. */ -- UCPTRIE_INDEX_2_MASK = UCPTRIE_INDEX_2_BLOCK_LENGTH - 1, -+/** Number of entries in an index-2 block. 32=0x20 */ -+constexpr int32_t UCPTRIE_INDEX_2_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_1_2; - -- /** Number of code points per index-2 table entry. 512=0x200 */ -- UCPTRIE_CP_PER_INDEX_2_ENTRY = 1 << UCPTRIE_SHIFT_2, -+/** Mask for getting the lower bits for the in-index-2-block offset. */ -+constexpr int32_t UCPTRIE_INDEX_2_MASK = UCPTRIE_INDEX_2_BLOCK_LENGTH - 1; - -- /** Number of entries in an index-3 block. 32=0x20 */ -- UCPTRIE_INDEX_3_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_2_3, -+/** Number of code points per index-2 table entry. 512=0x200 */ -+constexpr int32_t UCPTRIE_CP_PER_INDEX_2_ENTRY = 1 << UCPTRIE_SHIFT_2; - -- /** Mask for getting the lower bits for the in-index-3-block offset. */ -- UCPTRIE_INDEX_3_MASK = UCPTRIE_INDEX_3_BLOCK_LENGTH - 1, -+/** Number of entries in an index-3 block. 32=0x20 */ -+constexpr int32_t UCPTRIE_INDEX_3_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_2_3; - -- /** Number of entries in a small data block. 16=0x10 */ -- UCPTRIE_SMALL_DATA_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_3, -+/** Mask for getting the lower bits for the in-index-3-block offset. */ -+constexpr int32_t UCPTRIE_INDEX_3_MASK = UCPTRIE_INDEX_3_BLOCK_LENGTH - 1; -+ -+/** Number of entries in a small data block. 16=0x10 */ -+constexpr int32_t UCPTRIE_SMALL_DATA_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_3; -+ -+/** Mask for getting the lower bits for the in-small-data-block offset. */ -+constexpr int32_t UCPTRIE_SMALL_DATA_MASK = UCPTRIE_SMALL_DATA_BLOCK_LENGTH - 1; - -- /** Mask for getting the lower bits for the in-small-data-block offset. */ -- UCPTRIE_SMALL_DATA_MASK = UCPTRIE_SMALL_DATA_BLOCK_LENGTH - 1 --}; - - typedef UChar32 - UCPTrieGetRange(const void *trie, UChar32 start, -diff --git a/deps/icu-small/source/common/ucurr.cpp b/deps/icu-small/source/common/ucurr.cpp -index 6e489e0563..928d049fb5 100644 ---- a/deps/icu-small/source/common/ucurr.cpp -+++ b/deps/icu-small/source/common/ucurr.cpp -@@ -97,11 +97,11 @@ static const char CURRENCYPLURALS[] = "CurrencyPlurals"; - - // ISO codes mapping table - static const UHashtable* gIsoCodes = NULL; --static icu::UInitOnce gIsoCodesInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gIsoCodesInitOnce {}; - - // Currency symbol equivalances - static const icu::Hashtable* gCurrSymbolsEquiv = NULL; --static icu::UInitOnce gCurrSymbolsEquivInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCurrSymbolsEquivInitOnce {}; - - U_NAMESPACE_BEGIN - -@@ -238,7 +238,7 @@ isoCodes_cleanup(void) - gIsoCodes = NULL; - } - gIsoCodesInitOnce.reset(); -- return TRUE; -+ return true; - } - - /** -@@ -250,7 +250,7 @@ currSymbolsEquiv_cleanup(void) - delete const_cast(gCurrSymbolsEquiv); - gCurrSymbolsEquiv = NULL; - gCurrSymbolsEquivInitOnce.reset(); -- return TRUE; -+ return true; - } - - /** -@@ -349,7 +349,7 @@ _findMetaData(const UChar* currency, UErrorCode& ec) { - static void - idForLocale(const char* locale, char* countryAndVariant, int capacity, UErrorCode* ec) - { -- ulocimp_getRegionForSupplementalData(locale, FALSE, countryAndVariant, capacity, ec); -+ ulocimp_getRegionForSupplementalData(locale, false, countryAndVariant, capacity, ec); - } - - // ------------------------------------------ -@@ -409,7 +409,7 @@ struct CReg : public icu::UMemory { - } - - static UBool unreg(UCurrRegistryKey key) { -- UBool found = FALSE; -+ UBool found = false; - umtx_lock(&gCRegLock); - - CReg** p = &gCRegHead; -@@ -417,7 +417,7 @@ struct CReg : public icu::UMemory { - if (*p == key) { - *p = ((CReg*)key)->next; - delete (CReg*)key; -- found = TRUE; -+ found = true; - break; - } - p = &((*p)->next); -@@ -476,7 +476,7 @@ ucurr_unregister(UCurrRegistryKey key, UErrorCode* status) - if (status && U_SUCCESS(*status)) { - return CReg::unreg(key); - } -- return FALSE; -+ return false; - } - #endif /* UCONFIG_NO_SERVICE */ - -@@ -503,7 +503,7 @@ static UBool U_CALLCONV currency_cleanup(void) { - isoCodes_cleanup(); - currSymbolsEquiv_cleanup(); - -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -566,9 +566,32 @@ ucurr_forLocale(const char* locale, - UResourceBundle *rb = ures_openDirect(U_ICUDATA_CURR, CURRENCY_DATA, &localStatus); - UResourceBundle *cm = ures_getByKey(rb, CURRENCY_MAP, rb, &localStatus); - UResourceBundle *countryArray = ures_getByKey(rb, id, cm, &localStatus); -- UResourceBundle *currencyReq = ures_getByIndex(countryArray, 0, NULL, &localStatus); -- s = ures_getStringByKey(currencyReq, "id", &resLen, &localStatus); -- ures_close(currencyReq); -+ // https://unicode-org.atlassian.net/browse/ICU-21997 -+ // Prefer to use currencies that are legal tender. -+ if (U_SUCCESS(localStatus)) { -+ int32_t arrayLength = ures_getSize(countryArray); -+ for (int32_t i = 0; i < arrayLength; ++i) { -+ LocalUResourceBundlePointer currencyReq( -+ ures_getByIndex(countryArray, i, nullptr, &localStatus)); -+ // The currency is legal tender if it is *not* marked with tender{"false"}. -+ UErrorCode tenderStatus = localStatus; -+ const UChar *tender = -+ ures_getStringByKey(currencyReq.getAlias(), "tender", nullptr, &tenderStatus); -+ bool isTender = U_FAILURE(tenderStatus) || u_strcmp(tender, u"false") != 0; -+ if (!isTender && s != nullptr) { -+ // We already have a non-tender currency. Ignore all following non-tender ones. -+ continue; -+ } -+ // Fetch the currency code. -+ s = ures_getStringByKey(currencyReq.getAlias(), "id", &resLen, &localStatus); -+ if (isTender) { -+ break; -+ } -+ } -+ if (U_SUCCESS(localStatus) && s == nullptr) { -+ localStatus = U_MISSING_RESOURCE_ERROR; -+ } -+ } - ures_close(countryArray); - } - -@@ -598,12 +621,12 @@ ucurr_forLocale(const char* locale, - * Modify the given locale name by removing the rightmost _-delimited - * element. If there is none, empty the string ("" == root). - * NOTE: The string "root" is not recognized; do not use it. -- * @return TRUE if the fallback happened; FALSE if locale is already -+ * @return true if the fallback happened; false if locale is already - * root (""). - */ - static UBool fallback(char *loc) { - if (!*loc) { -- return FALSE; -+ return false; - } - UErrorCode status = U_ZERO_ERROR; - if (uprv_strcmp(loc, "en_GB") == 0) { -@@ -623,7 +646,7 @@ static UBool fallback(char *loc) { - } - *i = 0; - */ -- return TRUE; -+ return true; - } - - -@@ -729,7 +752,7 @@ ucurr_getName(const UChar* currency, - // We no longer support choice format data in names. Data should not contain - // choice patterns. - if (isChoiceFormat != NULL) { -- *isChoiceFormat = FALSE; -+ *isChoiceFormat = false; - } - if (U_SUCCESS(ec2)) { - U_ASSERT(s != NULL); -@@ -896,7 +919,7 @@ getCurrencyNameCount(const char* loc, int32_t* total_currency_name_count, int32_ - s = ures_getStringByIndex(names, UCURR_SYMBOL_NAME, &len, &ec2); - ++(*total_currency_symbol_count); // currency symbol - if (currencySymbolsEquiv != NULL) { -- *total_currency_symbol_count += countEquivalent(*currencySymbolsEquiv, UnicodeString(TRUE, s, len)); -+ *total_currency_symbol_count += countEquivalent(*currencySymbolsEquiv, UnicodeString(true, s, len)); - } - ++(*total_currency_symbol_count); // iso code - ++(*total_currency_name_count); // long name -@@ -1017,7 +1040,7 @@ collectCurrencyNames(const char* locale, - (*currencySymbols)[(*total_currency_symbol_count)++].currencyNameLen = len; - // Add equivalent symbols - if (currencySymbolsEquiv != NULL) { -- UnicodeString str(TRUE, s, len); -+ UnicodeString str(true, s, len); - icu::EquivIterator iter(*currencySymbolsEquiv, str); - const UnicodeString *symbol; - while ((symbol = iter.next()) != NULL) { -@@ -1401,7 +1424,7 @@ currency_cache_cleanup(void) { - currCache[i] = 0; - } - } -- return TRUE; -+ return true; - } - - -@@ -1928,6 +1951,7 @@ static const struct CurrencyList { - {"SHP", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"SIT", UCURR_COMMON|UCURR_DEPRECATED}, - {"SKK", UCURR_COMMON|UCURR_DEPRECATED}, -+ {"SLE", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"SLL", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"SOS", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"SRD", UCURR_COMMON|UCURR_NON_DEPRECATED}, -@@ -1965,6 +1989,7 @@ static const struct CurrencyList { - {"UYW", UCURR_UNCOMMON|UCURR_NON_DEPRECATED}, - {"UZS", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"VEB", UCURR_COMMON|UCURR_DEPRECATED}, -+ {"VED", UCURR_UNCOMMON|UCURR_NON_DEPRECATED}, - {"VEF", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"VES", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"VND", UCURR_COMMON|UCURR_NON_DEPRECATED}, -@@ -2220,19 +2245,19 @@ U_CAPI UBool U_EXPORT2 - ucurr_isAvailable(const UChar* isoCode, UDate from, UDate to, UErrorCode* eErrorCode) { - umtx_initOnce(gIsoCodesInitOnce, &initIsoCodes, *eErrorCode); - if (U_FAILURE(*eErrorCode)) { -- return FALSE; -+ return false; - } - - IsoCodeEntry* result = (IsoCodeEntry *) uhash_get(gIsoCodes, isoCode); - if (result == NULL) { -- return FALSE; -+ return false; - } else if (from > to) { - *eErrorCode = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } else if ((from > result->to) || (to < result->from)) { -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - static const icu::Hashtable* getCurrSymbolsEquiv() { -@@ -2537,7 +2562,7 @@ static const UEnumeration defaultKeywordValues = { - U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, const char *locale, UBool commonlyUsed, UErrorCode* status) { - // Resolve region - char prefRegion[ULOC_COUNTRY_CAPACITY]; -- ulocimp_getRegionForSupplementalData(locale, TRUE, prefRegion, sizeof(prefRegion), status); -+ ulocimp_getRegionForSupplementalData(locale, true, prefRegion, sizeof(prefRegion), status); - - // Read value from supplementalData - UList *values = ulist_createEmptyList(status); -@@ -2570,7 +2595,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, - break; - } - const char *region = ures_getKey(&bundlekey); -- UBool isPrefRegion = uprv_strcmp(region, prefRegion) == 0 ? TRUE : FALSE; -+ UBool isPrefRegion = uprv_strcmp(region, prefRegion) == 0 ? true : false; - if (!isPrefRegion && commonlyUsed) { - // With commonlyUsed=true, we do not put - // currencies for other regions in the -@@ -2595,7 +2620,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, - } - - #if U_CHARSET_FAMILY==U_ASCII_FAMILY -- ures_getUTF8StringByKey(&curbndl, "id", curID, &curIDLength, TRUE, status); -+ ures_getUTF8StringByKey(&curbndl, "id", curID, &curIDLength, true, status); - /* optimize - use the utf-8 string */ - #else - { -@@ -2613,19 +2638,19 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, - if (U_FAILURE(*status)) { - break; - } -- UBool hasTo = FALSE; -+ UBool hasTo = false; - ures_getByKey(&curbndl, "to", &to, status); - if (U_FAILURE(*status)) { - // Do nothing here... - *status = U_ZERO_ERROR; - } else { -- hasTo = TRUE; -+ hasTo = true; - } - if (isPrefRegion && !hasTo && !ulist_containsString(values, curID, (int32_t)uprv_strlen(curID))) { - // Currently active currency for the target country -- ulist_addItemEndList(values, curID, TRUE, status); -+ ulist_addItemEndList(values, curID, true, status); - } else if (!ulist_containsString(otherValues, curID, (int32_t)uprv_strlen(curID)) && !commonlyUsed) { -- ulist_addItemEndList(otherValues, curID, TRUE, status); -+ ulist_addItemEndList(otherValues, curID, true, status); - } else { - uprv_free(curID); - } -@@ -2638,7 +2663,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, - // This could happen if no valid region is supplied in the input - // locale. In this case, we use the CLDR's default. - uenum_close(en); -- en = ucurr_getKeywordValuesForLocale(key, "und", TRUE, status); -+ en = ucurr_getKeywordValuesForLocale(key, "und", true, status); - } - } else { - // Consolidate the list -@@ -2648,7 +2673,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, - if (!ulist_containsString(values, value, (int32_t)uprv_strlen(value))) { - char *tmpValue = (char *)uprv_malloc(sizeof(char) * ULOC_KEYWORDS_CAPACITY); - uprv_memcpy(tmpValue, value, uprv_strlen(value) + 1); -- ulist_addItemEndList(values, tmpValue, TRUE, status); -+ ulist_addItemEndList(values, tmpValue, true, status); - if (U_FAILURE(*status)) { - break; - } -diff --git a/deps/icu-small/source/common/udata.cpp b/deps/icu-small/source/common/udata.cpp -index ec9c999cea..2bc74c9789 100644 ---- a/deps/icu-small/source/common/udata.cpp -+++ b/deps/icu-small/source/common/udata.cpp -@@ -106,10 +106,10 @@ static UDataMemory *udata_findCachedData(const char *path, UErrorCode &err); - */ - static UDataMemory *gCommonICUDataArray[10] = { NULL }; // Access protected by icu global mutex. - --static u_atomic_int32_t gHaveTriedToLoadCommonData = ATOMIC_INT32_T_INITIALIZER(0); // See extendICUData(). -+static u_atomic_int32_t gHaveTriedToLoadCommonData {0}; // See extendICUData(). - - static UHashtable *gCommonDataCache = NULL; /* Global hash table of opened ICU data files. */ --static icu::UInitOnce gCommonDataCacheInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCommonDataCacheInitOnce {}; - - #if !defined(ICU_DATA_DIR_WINDOWS) - static UDataFileAccess gDataFileAccess = UDATA_DEFAULT_ACCESS; // Access not synchronized. -@@ -136,25 +136,25 @@ udata_cleanup(void) - } - gHaveTriedToLoadCommonData = 0; - -- return TRUE; /* Everything was cleaned up */ -+ return true; /* Everything was cleaned up */ - } - - static UBool U_CALLCONV - findCommonICUDataByName(const char *inBasename, UErrorCode &err) - { -- UBool found = FALSE; -+ UBool found = false; - int32_t i; - - UDataMemory *pData = udata_findCachedData(inBasename, err); - if (U_FAILURE(err) || pData == NULL) -- return FALSE; -+ return false; - - { - Mutex lock; - for (i = 0; i < UPRV_LENGTHOF(gCommonICUDataArray); ++i) { - if ((gCommonICUDataArray[i] != NULL) && (gCommonICUDataArray[i]->pHeader == pData->pHeader)) { - /* The data pointer is already in the array. */ -- found = TRUE; -+ found = true; - break; - } - } -@@ -174,9 +174,9 @@ setCommonICUData(UDataMemory *pData, /* The new common data. Belongs to ca - { - UDataMemory *newCommonData = UDataMemory_createNewInstance(pErr); - int32_t i; -- UBool didUpdate = FALSE; -+ UBool didUpdate = false; - if (U_FAILURE(*pErr)) { -- return FALSE; -+ return false; - } - - /* For the assignment, other threads must cleanly see either the old */ -@@ -188,7 +188,7 @@ setCommonICUData(UDataMemory *pData, /* The new common data. Belongs to ca - for (i = 0; i < UPRV_LENGTHOF(gCommonICUDataArray); ++i) { - if (gCommonICUDataArray[i] == NULL) { - gCommonICUDataArray[i] = newCommonData; -- didUpdate = TRUE; -+ didUpdate = true; - break; - } else if (gCommonICUDataArray[i]->pHeader == pData->pHeader) { - /* The same data pointer is already in the array. */ -@@ -216,7 +216,7 @@ setCommonICUDataPointer(const void *pData, UBool /*warn*/, UErrorCode *pErrorCod - UDataMemory_init(&tData); - UDataMemory_setData(&tData, pData); - udata_checkCommonData(&tData, pErrorCode); -- return setCommonICUData(&tData, FALSE, pErrorCode); -+ return setCommonICUData(&tData, false, pErrorCode); - } - - #endif -@@ -429,7 +429,7 @@ private: - CharString pathBuffer; /* output path for this it'ion */ - CharString packageStub; /* example: "/icudt28b". Will ignore that leaf in set paths. */ - -- UBool checkLastFour; /* if TRUE then allow paths such as '/foo/myapp.dat' -+ UBool checkLastFour; /* if true then allow paths such as '/foo/myapp.dat' - * to match, checks last 4 chars of suffix with - * last 4 of path, then previous chars. */ - }; -@@ -501,7 +501,7 @@ UDataPathIterator::UDataPathIterator(const char *inPath, const char *pkg, - suffix.data(), - itemPath.data(), - nextPath, -- checkLastFour?"TRUE":"false"); -+ checkLastFour?"true":"false"); - #endif - } - -@@ -568,7 +568,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode) - /* check for .dat files */ - pathBasename = findBasename(pathBuffer.data()); - -- if(checkLastFour == TRUE && -+ if(checkLastFour == true && - (pathLen>=4) && - uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */ - uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0 && /* base matches */ -@@ -711,15 +711,15 @@ openCommonData(const char *path, /* Path from OpenChoice? */ - */ - /* - if (uprv_getICUData_collation) { -- setCommonICUDataPointer(uprv_getICUData_collation(), FALSE, pErrorCode); -+ setCommonICUDataPointer(uprv_getICUData_collation(), false, pErrorCode); - } - if (uprv_getICUData_conversion) { -- setCommonICUDataPointer(uprv_getICUData_conversion(), FALSE, pErrorCode); -+ setCommonICUDataPointer(uprv_getICUData_conversion(), false, pErrorCode); - } - */ - #if !defined(ICU_DATA_DIR_WINDOWS) - // When using the Windows system data, we expect only a single data file. -- setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT, FALSE, pErrorCode); -+ setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT, false, pErrorCode); - { - Mutex lock; - return gCommonICUDataArray[commonDataIndex]; -@@ -761,9 +761,9 @@ openCommonData(const char *path, /* Path from OpenChoice? */ - * Hunt it down, trying all the path locations - */ - -- UDataPathIterator iter(u_getDataDirectory(), inBasename, path, ".dat", TRUE, pErrorCode); -+ UDataPathIterator iter(u_getDataDirectory(), inBasename, path, ".dat", true, pErrorCode); - -- while ((UDataMemory_isLoaded(&tData)==FALSE) && (pathBuffer = iter.next(pErrorCode)) != NULL) -+ while ((UDataMemory_isLoaded(&tData)==false) && (pathBuffer = iter.next(pErrorCode)) != NULL) - { - #ifdef UDATA_DEBUG - fprintf(stderr, "ocd: trying path %s - ", pathBuffer); -@@ -822,7 +822,7 @@ static UBool extendICUData(UErrorCode *pErr) - { - UDataMemory *pData; - UDataMemory copyPData; -- UBool didUpdate = FALSE; -+ UBool didUpdate = false; - - /* - * There is a chance for a race condition here. -@@ -859,7 +859,7 @@ static UBool extendICUData(UErrorCode *pErr) - - didUpdate = /* no longer using this result */ - setCommonICUData(©PData,/* The new common data. */ -- FALSE, /* No warnings if write didn't happen */ -+ false, /* No warnings if write didn't happen */ - pErr); /* setCommonICUData honors errors; NOP if error set */ - } - -@@ -906,7 +906,7 @@ udata_setCommonData(const void *data, UErrorCode *pErrorCode) { - - /* we have good data */ - /* Set it up as the ICU Common Data. */ -- setCommonICUData(&dataMemory, TRUE, pErrorCode); -+ setCommonICUData(&dataMemory, true, pErrorCode); - } - - /*--------------------------------------------------------------------------- -@@ -999,7 +999,7 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName, - - /* look in ind. files: package\nam.typ ========================= */ - /* init path iterator for individual files */ -- UDataPathIterator iter(dataPath, pkgName, path, tocEntryPathSuffix, FALSE, pErrorCode); -+ UDataPathIterator iter(dataPath, pkgName, path, tocEntryPathSuffix, false, pErrorCode); - - while ((pathBuffer = iter.next(pErrorCode)) != NULL) - { -@@ -1055,7 +1055,7 @@ static UDataMemory *doLoadFromCommonData(UBool isICUData, const char * /*pkgName - const DataHeader *pHeader; - UDataMemory *pCommonData; - int32_t commonDataIndex; -- UBool checkedExtendedICUData = FALSE; -+ UBool checkedExtendedICUData = false; - /* try to get common data. The loop is for platforms such as the 390 that do - * not initially load the full set of ICU data. If the lookup of an ICU data item - * fails, the full (but slower to load) set is loaded, the and the loop repeats, -@@ -1104,7 +1104,7 @@ static UDataMemory *doLoadFromCommonData(UBool isICUData, const char * /*pkgName - } else if (pCommonData != NULL) { - ++commonDataIndex; /* try the next data package */ - } else if ((!checkedExtendedICUData) && extendICUData(subErrorCode)) { -- checkedExtendedICUData = TRUE; -+ checkedExtendedICUData = true; - /* try this data package slot again: it changed from NULL to non-NULL */ - } else { - return NULL; -@@ -1169,7 +1169,7 @@ doOpenChoice(const char *path, const char *type, const char *name, - UErrorCode subErrorCode=U_ZERO_ERROR; - const char *treeChar; - -- UBool isICUData = FALSE; -+ UBool isICUData = false; - - - FileTracer::traceOpen(path, type, name); -@@ -1182,7 +1182,7 @@ doOpenChoice(const char *path, const char *type, const char *name, - uprv_strlen(U_ICUDATA_NAME U_TREE_SEPARATOR_STRING)) || - !uprv_strncmp(path, U_ICUDATA_ALIAS U_TREE_SEPARATOR_STRING, /* "ICUDATA-" */ - uprv_strlen(U_ICUDATA_ALIAS U_TREE_SEPARATOR_STRING))) { -- isICUData = TRUE; -+ isICUData = true; - } - - #if (U_FILE_SEP_CHAR != U_FILE_ALT_SEP_CHAR) /* Windows: try "foo\bar" and "foo/bar" */ -diff --git a/deps/icu-small/source/common/udatamem.cpp b/deps/icu-small/source/common/udatamem.cpp -index 6bf7c01235..0f80de28eb 100644 ---- a/deps/icu-small/source/common/udatamem.cpp -+++ b/deps/icu-small/source/common/udatamem.cpp -@@ -49,7 +49,7 @@ U_CFUNC UDataMemory *UDataMemory_createNewInstance(UErrorCode *pErr) { - *pErr = U_MEMORY_ALLOCATION_ERROR; } - else { - UDataMemory_init(This); -- This->heapAllocated = TRUE; -+ This->heapAllocated = true; - } - return This; - } -diff --git a/deps/icu-small/source/common/udatamem.h b/deps/icu-small/source/common/udatamem.h -index a05dd69756..3db2af43aa 100644 ---- a/deps/icu-small/source/common/udatamem.h -+++ b/deps/icu-small/source/common/udatamem.h -@@ -44,7 +44,7 @@ struct UDataMemory { - int32_t length; /* Length of the data in bytes; -1 if unknown. */ - }; - --U_CFUNC UDataMemory *UDataMemory_createNewInstance(UErrorCode *pErr); -+U_CAPI UDataMemory* U_EXPORT2 UDataMemory_createNewInstance(UErrorCode *pErr); - U_CFUNC void UDatamemory_assign (UDataMemory *dest, UDataMemory *source); - U_CFUNC void UDataMemory_init (UDataMemory *This); - U_CFUNC UBool UDataMemory_isLoaded(const UDataMemory *This); -diff --git a/deps/icu-small/source/common/uhash.cpp b/deps/icu-small/source/common/uhash.cpp -index 2e331b7172..a04f9606c5 100644 ---- a/deps/icu-small/source/common/uhash.cpp -+++ b/deps/icu-small/source/common/uhash.cpp -@@ -265,7 +265,7 @@ _uhash_init(UHashtable *result, - result->valueComparator = valueComp; - result->keyDeleter = NULL; - result->valueDeleter = NULL; -- result->allocated = FALSE; -+ result->allocated = false; - _uhash_internalSetResizePolicy(result, U_GROW); - - _uhash_allocate(result, primeIndex, status); -@@ -294,7 +294,7 @@ _uhash_create(UHashFunction *keyHash, - } - - _uhash_init(result, keyHash, keyComp, valueComp, primeIndex, status); -- result->allocated = TRUE; -+ result->allocated = true; - - if (U_FAILURE(*status)) { - uprv_free(result); -@@ -949,7 +949,7 @@ uhash_equals(const UHashtable* hash1, const UHashtable* hash2){ - int32_t count1, count2, pos, i; - - if(hash1==hash2){ -- return TRUE; -+ return true; - } - - /* -@@ -967,15 +967,15 @@ uhash_equals(const UHashtable* hash1, const UHashtable* hash2){ - { - /* - Normally we would return an error here about incompatible hash tables, -- but we return FALSE instead. -+ but we return false instead. - */ -- return FALSE; -+ return false; - } - - count1 = uhash_count(hash1); - count2 = uhash_count(hash2); - if(count1!=count2){ -- return FALSE; -+ return false; - } - - pos=UHASH_FIRST; -@@ -989,11 +989,11 @@ uhash_equals(const UHashtable* hash1, const UHashtable* hash2){ - */ - const UHashElement* elem2 = _uhash_find(hash2, key1, hash2->keyHasher(key1)); - const UHashTok val2 = elem2->value; -- if(hash1->valueComparator(val1, val2)==FALSE){ -- return FALSE; -+ if(hash1->valueComparator(val1, val2)==false){ -+ return false; - } - } -- return TRUE; -+ return true; - } - - /******************************************************************** -@@ -1005,10 +1005,10 @@ uhash_compareUChars(const UHashTok key1, const UHashTok key2) { - const UChar *p1 = (const UChar*) key1.pointer; - const UChar *p2 = (const UChar*) key2.pointer; - if (p1 == p2) { -- return TRUE; -+ return true; - } - if (p1 == NULL || p2 == NULL) { -- return FALSE; -+ return false; - } - while (*p1 != 0 && *p1 == *p2) { - ++p1; -@@ -1022,10 +1022,10 @@ uhash_compareChars(const UHashTok key1, const UHashTok key2) { - const char *p1 = (const char*) key1.pointer; - const char *p2 = (const char*) key2.pointer; - if (p1 == p2) { -- return TRUE; -+ return true; - } - if (p1 == NULL || p2 == NULL) { -- return FALSE; -+ return false; - } - while (*p1 != 0 && *p1 == *p2) { - ++p1; -@@ -1039,10 +1039,10 @@ uhash_compareIChars(const UHashTok key1, const UHashTok key2) { - const char *p1 = (const char*) key1.pointer; - const char *p2 = (const char*) key2.pointer; - if (p1 == p2) { -- return TRUE; -+ return true; - } - if (p1 == NULL || p2 == NULL) { -- return FALSE; -+ return false; - } - while (*p1 != 0 && uprv_tolower(*p1) == uprv_tolower(*p2)) { - ++p1; -diff --git a/deps/icu-small/source/common/uidna.cpp b/deps/icu-small/source/common/uidna.cpp -index ac2f9c3c8c..1cbdeec327 100644 ---- a/deps/icu-small/source/common/uidna.cpp -+++ b/deps/icu-small/source/common/uidna.cpp -@@ -58,15 +58,15 @@ toASCIILower(UChar ch){ - inline static UBool - startsWithPrefix(const UChar* src , int32_t srcLength){ - if(srcLength < ACE_PREFIX_LENGTH){ -- return FALSE; -+ return false; - } - - for(int8_t i=0; i< ACE_PREFIX_LENGTH; i++){ - if(toASCIILower(src[i]) != ACE_PREFIX[i]){ -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - -@@ -132,9 +132,9 @@ static inline UBool isLabelSeparator(UChar ch){ - case 0x3002: - case 0xFF0E: - case 0xFF61: -- return TRUE; -+ return true; - default: -- return FALSE; -+ return false; - } - } - -@@ -149,7 +149,7 @@ getNextSeparator(UChar *src, int32_t srcLength, - for(i=0 ; ;i++){ - if(src[i] == 0){ - *limit = src + i; // point to null -- *done = TRUE; -+ *done = true; - return i; - } - if(isLabelSeparator(src[i])){ -@@ -169,7 +169,7 @@ getNextSeparator(UChar *src, int32_t srcLength, - // we have not found the delimiter - // if(i==srcLength) - *limit = src+srcLength; -- *done = TRUE; -+ *done = true; - - return i; - } -@@ -177,7 +177,7 @@ getNextSeparator(UChar *src, int32_t srcLength, - static inline UBool isLDHChar(UChar ch){ - // high runner case - if(ch>0x007A){ -- return FALSE; -+ return false; - } - //[\\u002D \\u0030-\\u0039 \\u0041-\\u005A \\u0061-\\u007A] - if( (ch==0x002D) || -@@ -185,9 +185,9 @@ static inline UBool isLDHChar(UChar ch){ - (0x0041 <= ch && ch <= 0x005A) || - (0x0061 <= ch && ch <= 0x007A) - ){ -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - static int32_t -@@ -212,9 +212,9 @@ _internal_toASCII(const UChar* src, int32_t srcLength, - UBool* caseFlags = NULL; - - // the source contains all ascii codepoints -- UBool srcIsASCII = TRUE; -+ UBool srcIsASCII = true; - // assume the source contains all LDH codepoints -- UBool srcIsLDH = TRUE; -+ UBool srcIsLDH = true; - - int32_t j=0; - -@@ -239,13 +239,13 @@ _internal_toASCII(const UChar* src, int32_t srcLength, - // step 1 - for( j=0;j 0x7F){ -- srcIsASCII = FALSE; -+ srcIsASCII = false; - } - b1[b1Len++] = src[j]; - } - - // step 2 is performed only if the source contains non ASCII -- if(srcIsASCII == FALSE){ -+ if(srcIsASCII == false){ - - // step 2 - b1Len = usprep_prepare(nameprep, src, srcLength, b1, b1Capacity, namePrepOptions, parseError, status); -@@ -277,29 +277,29 @@ _internal_toASCII(const UChar* src, int32_t srcLength, - } - - // for step 3 & 4 -- srcIsASCII = TRUE; -+ srcIsASCII = true; - for( j=0;j 0x7F){ -- srcIsASCII = FALSE; -- }else if(isLDHChar(b1[j])==FALSE){ // if the char is in ASCII range verify that it is an LDH character -- srcIsLDH = FALSE; -+ srcIsASCII = false; -+ }else if(isLDHChar(b1[j])==false){ // if the char is in ASCII range verify that it is an LDH character -+ srcIsLDH = false; - failPos = j; - } - } -- if(useSTD3ASCIIRules == TRUE){ -+ if(useSTD3ASCIIRules == true){ - // verify 3a and 3b - // 3(a) Verify the absence of non-LDH ASCII code points; that is, the - // absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F. - // 3(b) Verify the absence of leading and trailing hyphen-minus; that - // is, the absence of U+002D at the beginning and end of the - // sequence. -- if( srcIsLDH == FALSE /* source at this point should not contain anyLDH characters */ -+ if( srcIsLDH == false /* source at this point should not contain anyLDH characters */ - || b1[0] == HYPHEN || b1[b1Len-1] == HYPHEN){ - *status = U_IDNA_STD3_ASCII_RULES_ERROR; - - /* populate the parseError struct */ -- if(srcIsLDH==FALSE){ -+ if(srcIsLDH==false){ - // failPos is always set the index of failure - uprv_syntaxError(b1,failPos, b1Len,parseError); - }else if(b1[0] == HYPHEN){ -@@ -331,7 +331,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength, - // do not preserve the case flags for now! - // TODO: Preserve the case while implementing the RFE - // caseFlags = (UBool*) uprv_malloc(b1Len * sizeof(UBool)); -- // uprv_memset(caseFlags,TRUE,b1Len); -+ // uprv_memset(caseFlags,true,b1Len); - - b2Len = u_strToPunycode(b1,b1Len,b2,b2Capacity,caseFlags, status); - -@@ -416,8 +416,8 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, - - UBool* caseFlags = NULL; - -- UBool srcIsASCII = TRUE; -- /*UBool srcIsLDH = TRUE; -+ UBool srcIsASCII = true; -+ /*UBool srcIsLDH = true; - int32_t failPos =0;*/ - - // step 1: find out if all the codepoints in src are ASCII -@@ -425,12 +425,12 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, - srcLength = 0; - for(;src[srcLength]!=0;){ - if(src[srcLength]> 0x7f){ -- srcIsASCII = FALSE; -- }/*else if(isLDHChar(src[srcLength])==FALSE){ -+ srcIsASCII = false; -+ }/*else if(isLDHChar(src[srcLength])==false){ - // here we do not assemble surrogates - // since we know that LDH code points - // are in the ASCII range only -- srcIsLDH = FALSE; -+ srcIsLDH = false; - failPos = srcLength; - }*/ - srcLength++; -@@ -438,13 +438,13 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, - }else if(srcLength > 0){ - for(int32_t j=0; j 0x7f){ -- srcIsASCII = FALSE; -+ srcIsASCII = false; - break; -- }/*else if(isLDHChar(src[j])==FALSE){ -+ }/*else if(isLDHChar(src[j])==false){ - // here we do not assemble surrogates - // since we know that LDH code points - // are in the ASCII range only -- srcIsLDH = FALSE; -+ srcIsLDH = false; - failPos = j; - }*/ - } -@@ -452,7 +452,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, - return 0; - } - -- if(srcIsASCII == FALSE){ -+ if(srcIsASCII == false){ - // step 2: process the string - b1Len = usprep_prepare(nameprep, src, srcLength, b1, b1Capacity, namePrepOptions, parseError, status); - if(*status == U_BUFFER_OVERFLOW_ERROR){ -@@ -548,13 +548,13 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, - else{ - // See the start of this if statement for why this is commented out. - // verify that STD3 ASCII rules are satisfied -- /*if(useSTD3ASCIIRules == TRUE){ -- if( srcIsLDH == FALSE // source contains some non-LDH characters -+ /*if(useSTD3ASCIIRules == true){ -+ if( srcIsLDH == false // source contains some non-LDH characters - || src[0] == HYPHEN || src[srcLength-1] == HYPHEN){ - *status = U_IDNA_STD3_ASCII_RULES_ERROR; - - // populate the parseError struct -- if(srcIsLDH==FALSE){ -+ if(srcIsLDH==false){ - // failPos is always set the index of failure - uprv_syntaxError(src,failPos, srcLength,parseError); - }else if(src[0] == HYPHEN){ -@@ -695,7 +695,7 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength, - int32_t remainingLen = srcLength; - int32_t remainingDestCapacity = destCapacity; - int32_t labelLen = 0, labelReqLength = 0; -- UBool done = FALSE; -+ UBool done = false; - - - for(;;){ -@@ -731,7 +731,7 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength, - remainingDestCapacity = 0; - } - -- if(done == TRUE){ -+ if(done == true){ - break; - } - -@@ -788,7 +788,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, - int32_t remainingLen = srcLength; - int32_t remainingDestCapacity = destCapacity; - int32_t labelLen = 0, labelReqLength = 0; -- UBool done = FALSE; -+ UBool done = false; - - for(;;){ - -@@ -800,7 +800,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, - // is returned immediately in that step. - // - // _internal_toUnicode will copy the label. -- /*if(labelLen==0 && done==FALSE){ -+ /*if(labelLen==0 && done==false){ - *status = U_IDNA_ZERO_LENGTH_LABEL_ERROR; - break; - }*/ -@@ -829,7 +829,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, - remainingDestCapacity = 0; - } - -- if(done == TRUE){ -+ if(done == true){ - break; - } - -diff --git a/deps/icu-small/source/common/uinit.cpp b/deps/icu-small/source/common/uinit.cpp -index 624431be02..dc3867b17e 100644 ---- a/deps/icu-small/source/common/uinit.cpp -+++ b/deps/icu-small/source/common/uinit.cpp -@@ -26,11 +26,11 @@ - - U_NAMESPACE_BEGIN - --static UInitOnce gICUInitOnce = U_INITONCE_INITIALIZER; -+static UInitOnce gICUInitOnce {}; - - static UBool U_CALLCONV uinit_cleanup() { - gICUInitOnce.reset(); -- return TRUE; -+ return true; - } - - static void U_CALLCONV -diff --git a/deps/icu-small/source/common/uinvchar.cpp b/deps/icu-small/source/common/uinvchar.cpp -index 52b8906568..ffce3ec158 100644 ---- a/deps/icu-small/source/common/uinvchar.cpp -+++ b/deps/icu-small/source/common/uinvchar.cpp -@@ -207,7 +207,7 @@ u_UCharsToChars(const UChar *us, char *cs, int32_t length) { - while(length>0) { - u=*us++; - if(!UCHAR_IS_INVARIANT(u)) { -- U_ASSERT(FALSE); /* Variant characters were used. These are not portable in ICU. */ -+ U_ASSERT(false); /* Variant characters were used. These are not portable in ICU. */ - u=0; - } - *cs++=(char)UCHAR_TO_CHAR(u); -@@ -245,18 +245,18 @@ uprv_isInvariantString(const char *s, int32_t length) { - */ - #if U_CHARSET_FAMILY==U_ASCII_FAMILY - if(!UCHAR_IS_INVARIANT(c)) { -- return FALSE; /* found a variant char */ -+ return false; /* found a variant char */ - } - #elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY - c=CHAR_TO_UCHAR(c); - if(c==0 || !UCHAR_IS_INVARIANT(c)) { -- return FALSE; /* found a variant char */ -+ return false; /* found a variant char */ - } - #else - # error U_CHARSET_FAMILY is not valid - #endif - } -- return TRUE; -+ return true; - } - - U_CAPI UBool U_EXPORT2 -@@ -284,10 +284,10 @@ uprv_isInvariantUString(const UChar *s, int32_t length) { - * for strings with variant characters - */ - if(!UCHAR_IS_INVARIANT(c)) { -- return FALSE; /* found a variant char */ -+ return false; /* found a variant char */ - } - } -- return TRUE; -+ return true; - } - - /* UDataSwapFn implementations used in udataswp.c ------- */ -diff --git a/deps/icu-small/source/common/uiter.cpp b/deps/icu-small/source/common/uiter.cpp -index b9252d81c2..c4ab7d6d56 100644 ---- a/deps/icu-small/source/common/uiter.cpp -+++ b/deps/icu-small/source/common/uiter.cpp -@@ -47,7 +47,7 @@ noopMove(UCharIterator * /*iter*/, int32_t /*delta*/, UCharIteratorOrigin /*orig - - static UBool U_CALLCONV - noopHasNext(UCharIterator * /*iter*/) { -- return FALSE; -+ return false; - } - - static UChar32 U_CALLCONV -@@ -678,24 +678,24 @@ utf8IteratorMove(UCharIterator *iter, int32_t delta, UCharIteratorOrigin origin) - case UITER_ZERO: - case UITER_START: - pos=delta; -- havePos=TRUE; -+ havePos=true; - /* iter->index<0 (unknown) is possible */ - break; - case UITER_CURRENT: - if(iter->index>=0) { - pos=iter->index+delta; -- havePos=TRUE; -+ havePos=true; - } else { - /* the current UTF-16 index is unknown after setState(), use only delta */ - pos=0; -- havePos=FALSE; -+ havePos=false; - } - break; - case UITER_LIMIT: - case UITER_LENGTH: - if(iter->length>=0) { - pos=iter->length+delta; -- havePos=TRUE; -+ havePos=true; - } else { - /* pin to the end, avoid counting the length */ - iter->index=-1; -@@ -706,7 +706,7 @@ utf8IteratorMove(UCharIterator *iter, int32_t delta, UCharIteratorOrigin origin) - } else { - /* the current UTF-16 index is unknown, use only delta */ - pos=0; -- havePos=FALSE; -+ havePos=false; - } - } - break; -diff --git a/deps/icu-small/source/common/ulist.cpp b/deps/icu-small/source/common/ulist.cpp -index c5180431c3..57344715de 100644 ---- a/deps/icu-small/source/common/ulist.cpp -+++ b/deps/icu-small/source/common/ulist.cpp -@@ -160,12 +160,12 @@ U_CAPI UBool U_EXPORT2 ulist_containsString(const UList *list, const char *data, - for (pointer = list->head; pointer != NULL; pointer = pointer->next) { - if (length == (int32_t)uprv_strlen((const char *)pointer->data)) { - if (uprv_memcmp(data, pointer->data, length) == 0) { -- return TRUE; -+ return true; - } - } - } - } -- return FALSE; -+ return false; - } - - U_CAPI UBool U_EXPORT2 ulist_removeString(UList *list, const char *data) { -@@ -175,11 +175,11 @@ U_CAPI UBool U_EXPORT2 ulist_removeString(UList *list, const char *data) { - if (uprv_strcmp(data, (const char *)pointer->data) == 0) { - ulist_removeItem(list, pointer); - // Remove only the first occurrence, like Java LinkedList.remove(Object). -- return TRUE; -+ return true; - } - } - } -- return FALSE; -+ return false; - } - - U_CAPI void *U_EXPORT2 ulist_getNext(UList *list) { -diff --git a/deps/icu-small/source/common/uloc.cpp b/deps/icu-small/source/common/uloc.cpp -index 99c6a0af39..1da2abc361 100644 ---- a/deps/icu-small/source/common/uloc.cpp -+++ b/deps/icu-small/source/common/uloc.cpp -@@ -102,7 +102,7 @@ static const char * const LANGUAGES[] = { - "asa", "ase", "ast", "av", "avk", "awa", "ay", "az", - "ba", "bal", "ban", "bar", "bas", "bax", "bbc", "bbj", - "be", "bej", "bem", "bew", "bez", "bfd", "bfq", "bg", -- "bgn", "bho", "bi", "bik", "bin", "bjn", "bkm", "bla", -+ "bgc", "bgn", "bho", "bi", "bik", "bin", "bjn", "bkm", "bla", - "bm", "bn", "bo", "bpy", "bqi", "br", "bra", "brh", - "brx", "bs", "bss", "bua", "bug", "bum", "byn", "byv", - "ca", "cad", "car", "cay", "cch", "ccp", "ce", "ceb", "cgg", -@@ -219,7 +219,7 @@ static const char * const LANGUAGES_3[] = { - "asa", "ase", "ast", "ava", "avk", "awa", "aym", "aze", - "bak", "bal", "ban", "bar", "bas", "bax", "bbc", "bbj", - "bel", "bej", "bem", "bew", "bez", "bfd", "bfq", "bul", -- "bgn", "bho", "bis", "bik", "bin", "bjn", "bkm", "bla", -+ "bgc", "bgn", "bho", "bis", "bik", "bin", "bjn", "bkm", "bla", - "bam", "ben", "bod", "bpy", "bqi", "bre", "bra", "brh", - "brx", "bos", "bss", "bua", "bug", "bum", "byn", "byv", - "cat", "cad", "car", "cay", "cch", "ccp", "che", "ceb", "cgg", -@@ -502,20 +502,20 @@ static int32_t getShortestSubtagLength(const char *localeID) { - int32_t length = localeIDLength; - int32_t tmpLength = 0; - int32_t i; -- UBool reset = TRUE; -+ UBool reset = true; - - for (i = 0; i < localeIDLength; i++) { - if (localeID[i] != '_' && localeID[i] != '-') { - if (reset) { - tmpLength = 0; -- reset = FALSE; -+ reset = false; - } - tmpLength++; - } else { - if (tmpLength != 0 && tmpLength < length) { - length = tmpLength; - } -- reset = TRUE; -+ reset = true; - } - } - -@@ -620,7 +620,7 @@ ulocimp_getKeywords(const char *localeID, - if(prev == '@') { /* start of keyword definition */ - /* we will grab pairs, trim spaces, lowercase keywords, sort and return */ - do { -- UBool duplicate = FALSE; -+ UBool duplicate = false; - /* skip leading spaces */ - while(*pos == ' ') { - pos++; -@@ -693,7 +693,7 @@ ulocimp_getKeywords(const char *localeID, - /* If this is a duplicate keyword, then ignore it */ - for (j=0; j 0 && !handledInputKeyAndValue) { -@@ -1030,7 +1030,7 @@ uloc_setKeywordValue(const char* keywordName, - updatedKeysAndValues.append(keywordNameBuffer, keywordNameLen, *status); - updatedKeysAndValues.append('=', *status); - updatedKeysAndValues.append(keywordValueBuffer, keywordValueLen, *status); -- handledInputKeyAndValue = TRUE; -+ handledInputKeyAndValue = true; - } - /* copy the current entry */ - updatedKeysAndValues.append(keyValuePrefix, *status); -@@ -1046,7 +1046,7 @@ uloc_setKeywordValue(const char* keywordName, - updatedKeysAndValues.append(keywordNameBuffer, keywordNameLen, *status); - updatedKeysAndValues.append('=', *status); - updatedKeysAndValues.append(keywordValueBuffer, keywordValueLen, *status); -- handledInputKeyAndValue = TRUE; -+ handledInputKeyAndValue = true; - } - keywordStart = nextSeparator; - } /* end loop searching */ -@@ -1089,7 +1089,7 @@ uloc_setKeywordValue(const char* keywordName, - - #define _isPrefixLetter(a) ((a=='x')||(a=='X')||(a=='i')||(a=='I')) - --/*returns TRUE if one of the special prefixes is here (s=string) -+/*returns true if one of the special prefixes is here (s=string) - 'x-' or 'i-' */ - #define _isIDPrefix(s) (_isPrefixLetter(s[0])&&_isIDSeparator(s[1])) - -@@ -1270,7 +1270,7 @@ _getVariant(const char *localeID, - char prev, - ByteSink& sink, - UBool needSeparator) { -- UBool hasVariant = FALSE; -+ UBool hasVariant = false; - - /* get one or more variant tags and separate them with '_' */ - if(_isIDSeparator(prev)) { -@@ -1278,12 +1278,12 @@ _getVariant(const char *localeID, - while(!_isTerminator(*localeID)) { - if (needSeparator) { - sink.Append("_", 1); -- needSeparator = FALSE; -+ needSeparator = false; - } - char c = (char)uprv_toupper(*localeID); - if (c == '-') c = '_'; - sink.Append(&c, 1); -- hasVariant = TRUE; -+ hasVariant = true; - localeID++; - } - } -@@ -1300,7 +1300,7 @@ _getVariant(const char *localeID, - while(!_isTerminator(*localeID)) { - if (needSeparator) { - sink.Append("_", 1); -- needSeparator = FALSE; -+ needSeparator = false; - } - char c = (char)uprv_toupper(*localeID); - if (c == '-' || c == ',') c = '_'; -@@ -1453,7 +1453,7 @@ uloc_openKeywords(const char* localeID, - if((tmpLocaleID = locale_getKeywordsStart(tmpLocaleID)) != NULL) { - CharString keywords; - CharStringByteSink sink(&keywords); -- ulocimp_getKeywords(tmpLocaleID+1, '@', sink, FALSE, status); -+ ulocimp_getKeywords(tmpLocaleID+1, '@', sink, false, status); - if (U_FAILURE(*status)) { - return NULL; - } -@@ -1573,7 +1573,7 @@ _canonicalize(const char* localeID, - variantSize = -tag.length(); - { - CharStringByteSink s(&tag); -- _getVariant(tmpLocaleID+1, *tmpLocaleID, s, FALSE); -+ _getVariant(tmpLocaleID+1, *tmpLocaleID, s, false); - } - variantSize += tag.length(); - if (variantSize > 0) { -@@ -1585,13 +1585,13 @@ _canonicalize(const char* localeID, - - /* Copy POSIX-style charset specifier, if any [mr.utf8] */ - if (!OPTION_SET(options, _ULOC_CANONICALIZE) && *tmpLocaleID == '.') { -- UBool done = FALSE; -+ UBool done = false; - do { - char c = *tmpLocaleID; - switch (c) { - case 0: - case '@': -- done = TRUE; -+ done = true; - break; - default: - tag.append(c, *err); -@@ -1664,7 +1664,7 @@ _canonicalize(const char* localeID, - (!separatorIndicator || separatorIndicator > keywordAssign)) { - sink.Append("@", 1); - ++fieldCount; -- ulocimp_getKeywords(tmpLocaleID+1, '@', sink, TRUE, err); -+ ulocimp_getKeywords(tmpLocaleID+1, '@', sink, true, err); - } - } - } -@@ -1847,7 +1847,7 @@ uloc_getVariant(const char* localeID, - } - - CheckedArrayByteSink sink(variant, variantCapacity); -- _getVariant(tmpLocaleID+1, *tmpLocaleID, sink, FALSE); -+ _getVariant(tmpLocaleID+1, *tmpLocaleID, sink, false); - - i = sink.NumberOfBytesAppended(); - -@@ -2158,11 +2158,11 @@ isWellFormedLegacyKey(const char* legacyKey) - const char* p = legacyKey; - while (*p) { - if (!UPRV_ISALPHANUM(*p)) { -- return FALSE; -+ return false; - } - p++; - } -- return TRUE; -+ return true; - } - - static UBool -@@ -2173,13 +2173,13 @@ isWellFormedLegacyType(const char* legacyType) - while (*p) { - if (*p == '_' || *p == '/' || *p == '-') { - if (alphaNumLen == 0) { -- return FALSE; -+ return false; - } - alphaNumLen = 0; - } else if (UPRV_ISALPHANUM(*p)) { - alphaNumLen++; - } else { -- return FALSE; -+ return false; - } - p++; - } -diff --git a/deps/icu-small/source/common/uloc_keytype.cpp b/deps/icu-small/source/common/uloc_keytype.cpp -index 580244124e..12dc300492 100644 ---- a/deps/icu-small/source/common/uloc_keytype.cpp -+++ b/deps/icu-small/source/common/uloc_keytype.cpp -@@ -24,7 +24,7 @@ - #include "udataswp.h" /* for InvChar functions */ - - static UHashtable* gLocExtKeyMap = NULL; --static icu::UInitOnce gLocExtKeyMapInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gLocExtKeyMapInitOnce {}; - - // bit flags for special types - typedef enum { -@@ -69,7 +69,7 @@ uloc_key_type_cleanup(void) { - gKeyTypeStringPool = NULL; - - gLocExtKeyMapInitOnce.reset(); -- return TRUE; -+ return true; - } - - U_CDECL_END -@@ -356,9 +356,9 @@ init() { - UErrorCode sts = U_ZERO_ERROR; - umtx_initOnce(gLocExtKeyMapInitOnce, &initFromResourceBundle, sts); - if (U_FAILURE(sts)) { -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - static UBool -@@ -368,7 +368,7 @@ isSpecialTypeCodepoints(const char* val) { - while (*p) { - if (*p == '-') { - if (subtagLen < 4 || subtagLen > 6) { -- return FALSE; -+ return false; - } - subtagLen = 0; - } else if ((*p >= '0' && *p <= '9') || -@@ -376,7 +376,7 @@ isSpecialTypeCodepoints(const char* val) { - (*p >= 'a' && *p <= 'f')) { // also in EBCDIC - subtagLen++; - } else { -- return FALSE; -+ return false; - } - p++; - } -@@ -390,13 +390,13 @@ isSpecialTypeReorderCode(const char* val) { - while (*p) { - if (*p == '-') { - if (subtagLen < 3 || subtagLen > 8) { -- return FALSE; -+ return false; - } - subtagLen = 0; - } else if (uprv_isASCIILetter(*p)) { - subtagLen++; - } else { -- return FALSE; -+ return false; - } - p++; - } -@@ -412,7 +412,7 @@ isSpecialTypeRgKeyValue(const char* val) { - (subtagLen >= 2 && (*p == 'Z' || *p == 'z')) ) { - subtagLen++; - } else { -- return FALSE; -+ return false; - } - p++; - } -@@ -448,10 +448,10 @@ ulocimp_toLegacyKey(const char* key) { - U_CFUNC const char* - ulocimp_toBcpType(const char* key, const char* type, UBool* isKnownKey, UBool* isSpecialType) { - if (isKnownKey != NULL) { -- *isKnownKey = FALSE; -+ *isKnownKey = false; - } - if (isSpecialType != NULL) { -- *isSpecialType = FALSE; -+ *isSpecialType = false; - } - - if (!init()) { -@@ -461,14 +461,14 @@ ulocimp_toBcpType(const char* key, const char* type, UBool* isKnownKey, UBool* i - LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key); - if (keyData != NULL) { - if (isKnownKey != NULL) { -- *isKnownKey = TRUE; -+ *isKnownKey = true; - } - LocExtType* t = (LocExtType*)uhash_get(keyData->typeMap.getAlias(), type); - if (t != NULL) { - return t->bcpId; - } - if (keyData->specialTypes != SPECIALTYPE_NONE) { -- UBool matched = FALSE; -+ UBool matched = false; - if (keyData->specialTypes & SPECIALTYPE_CODEPOINTS) { - matched = isSpecialTypeCodepoints(type); - } -@@ -480,7 +480,7 @@ ulocimp_toBcpType(const char* key, const char* type, UBool* isKnownKey, UBool* i - } - if (matched) { - if (isSpecialType != NULL) { -- *isSpecialType = TRUE; -+ *isSpecialType = true; - } - return type; - } -@@ -493,10 +493,10 @@ ulocimp_toBcpType(const char* key, const char* type, UBool* isKnownKey, UBool* i - U_CFUNC const char* - ulocimp_toLegacyType(const char* key, const char* type, UBool* isKnownKey, UBool* isSpecialType) { - if (isKnownKey != NULL) { -- *isKnownKey = FALSE; -+ *isKnownKey = false; - } - if (isSpecialType != NULL) { -- *isSpecialType = FALSE; -+ *isSpecialType = false; - } - - if (!init()) { -@@ -506,14 +506,14 @@ ulocimp_toLegacyType(const char* key, const char* type, UBool* isKnownKey, UBool - LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key); - if (keyData != NULL) { - if (isKnownKey != NULL) { -- *isKnownKey = TRUE; -+ *isKnownKey = true; - } - LocExtType* t = (LocExtType*)uhash_get(keyData->typeMap.getAlias(), type); - if (t != NULL) { - return t->legacyId; - } - if (keyData->specialTypes != SPECIALTYPE_NONE) { -- UBool matched = FALSE; -+ UBool matched = false; - if (keyData->specialTypes & SPECIALTYPE_CODEPOINTS) { - matched = isSpecialTypeCodepoints(type); - } -@@ -525,7 +525,7 @@ ulocimp_toLegacyType(const char* key, const char* type, UBool* isKnownKey, UBool - } - if (matched) { - if (isSpecialType != NULL) { -- *isSpecialType = TRUE; -+ *isSpecialType = true; - } - return type; - } -diff --git a/deps/icu-small/source/common/uloc_tag.cpp b/deps/icu-small/source/common/uloc_tag.cpp -index 0150e94cef..01a0e0028f 100644 ---- a/deps/icu-small/source/common/uloc_tag.cpp -+++ b/deps/icu-small/source/common/uloc_tag.cpp -@@ -378,10 +378,10 @@ _isAlphaString(const char* s, int32_t len) { - int32_t i; - for (i = 0; i < len; i++) { - if (!ISALPHA(*(s + i))) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - static UBool -@@ -389,10 +389,10 @@ _isNumericString(const char* s, int32_t len) { - int32_t i; - for (i = 0; i < len; i++) { - if (!ISNUMERIC(*(s + i))) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - static UBool -@@ -400,10 +400,10 @@ _isAlphaNumericString(const char* s, int32_t len) { - int32_t i; - for (i = 0; i < len; i++) { - if (!ISALPHA(*(s + i)) && !ISNUMERIC(*(s + i))) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - static UBool -@@ -412,9 +412,9 @@ _isAlphaNumericStringLimitedLength(const char* s, int32_t len, int32_t min, int3 - len = (int32_t)uprv_strlen(s); - } - if (len >= min && len <= max && _isAlphaNumericString(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CFUNC UBool -@@ -428,9 +428,9 @@ ultag_isLanguageSubtag(const char* s, int32_t len) { - len = (int32_t)uprv_strlen(s); - } - if (len >= 2 && len <= 8 && _isAlphaString(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - static UBool -@@ -443,9 +443,9 @@ _isExtlangSubtag(const char* s, int32_t len) { - len = (int32_t)uprv_strlen(s); - } - if (len == 3 && _isAlphaString(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CFUNC UBool -@@ -457,9 +457,9 @@ ultag_isScriptSubtag(const char* s, int32_t len) { - len = (int32_t)uprv_strlen(s); - } - if (len == 4 && _isAlphaString(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CFUNC UBool -@@ -472,12 +472,12 @@ ultag_isRegionSubtag(const char* s, int32_t len) { - len = (int32_t)uprv_strlen(s); - } - if (len == 2 && _isAlphaString(s, len)) { -- return TRUE; -+ return true; - } - if (len == 3 && _isNumericString(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - static UBool -@@ -490,12 +490,12 @@ _isVariantSubtag(const char* s, int32_t len) { - len = (int32_t)uprv_strlen(s); - } - if (_isAlphaNumericStringLimitedLength(s, len, 5, 8)) { -- return TRUE; -+ return true; - } - if (len == 4 && ISNUMERIC(*s) && _isAlphaNumericString(s + 1, 3)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - static UBool -@@ -510,10 +510,10 @@ _isSepListOf(UBool (*test)(const char*, int32_t), const char* s, int32_t len) { - while ((p - s) < len) { - if (*p == SEP) { - if (pSubtag == NULL) { -- return FALSE; -+ return false; - } - if (!test(pSubtag, (int32_t)(p - pSubtag))) { -- return FALSE; -+ return false; - } - pSubtag = NULL; - } else if (pSubtag == NULL) { -@@ -522,7 +522,7 @@ _isSepListOf(UBool (*test)(const char*, int32_t), const char* s, int32_t len) { - p++; - } - if (pSubtag == NULL) { -- return FALSE; -+ return false; - } - return test(pSubtag, (int32_t)(p - pSubtag)); - } -@@ -557,9 +557,9 @@ _isExtensionSingleton(const char* s, int32_t len) { - len = (int32_t)uprv_strlen(s); - } - if (len == 1 && (ISALPHA(*s) || ISNUMERIC(*s)) && (uprv_tolower(*s) != PRIVATEUSE)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - static UBool -@@ -610,9 +610,9 @@ ultag_isUnicodeLocaleKey(const char* s, int32_t len) { - len = (int32_t)uprv_strlen(s); - } - if (len == 2 && (ISALPHA(*s) || ISNUMERIC(*s)) && ISALPHA(s[1])) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CFUNC UBool -@@ -641,9 +641,9 @@ _isTKey(const char* s, int32_t len) - len = (int32_t)uprv_strlen(s); - } - if (len == 2 && ISALPHA(*s) && ISNUMERIC(*(s + 1))) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CAPI const char * U_EXPORT2 -@@ -694,23 +694,23 @@ _isTransformedExtensionSubtag(int32_t& state, const char* s, int32_t len) - case kStart: - if (ultag_isLanguageSubtag(s, len) && len != 4) { - state = kGotLanguage; -- return TRUE; -+ return true; - } - if (_isTKey(s, len)) { - state = kGotTKey; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - case kGotLanguage: - if (ultag_isScriptSubtag(s, len)) { - state = kGotScript; -- return TRUE; -+ return true; - } - U_FALLTHROUGH; - case kGotScript: - if (ultag_isRegionSubtag(s, len)) { - state = kGotRegion; -- return TRUE; -+ return true; - } - U_FALLTHROUGH; - case kGotRegion: -@@ -718,30 +718,30 @@ _isTransformedExtensionSubtag(int32_t& state, const char* s, int32_t len) - case kGotVariant: - if (_isVariantSubtag(s, len)) { - state = kGotVariant; -- return TRUE; -+ return true; - } - if (_isTKey(s, len)) { - state = kGotTKey; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - case kGotTKey: - if (_isTValue(s, len)) { - state = kGotTValue; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - case kGotTValue: - if (_isTKey(s, len)) { - state = kGotTKey; -- return TRUE; -+ return true; - } - if (_isTValue(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } -- return FALSE; -+ return false; - } - - static UBool -@@ -755,32 +755,32 @@ _isUnicodeExtensionSubtag(int32_t& state, const char* s, int32_t len) - case kStart: - if (ultag_isUnicodeLocaleKey(s, len)) { - state = kGotKey; -- return TRUE; -+ return true; - } - if (ultag_isUnicodeLocaleAttribute(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - case kGotKey: - if (ultag_isUnicodeLocaleKey(s, len)) { -- return TRUE; -+ return true; - } - if (_isUnicodeLocaleTypeSubtag(s, len)) { - state = kGotType; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - case kGotType: - if (ultag_isUnicodeLocaleKey(s, len)) { - state = kGotKey; -- return TRUE; -+ return true; - } - if (_isUnicodeLocaleTypeSubtag(s, len)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } -- return FALSE; -+ return false; - } - - static UBool -@@ -798,7 +798,7 @@ _isStatefulSepListOf(UBool (*test)(int32_t&, const char*, int32_t), const char* - for (p = s; len > 0; p++, len--) { - if (*p == SEP) { - if (!test(state, start, subtagLen)) { -- return FALSE; -+ return false; - } - subtagLen = 0; - start = p + 1; -@@ -808,9 +808,9 @@ _isStatefulSepListOf(UBool (*test)(int32_t&, const char*, int32_t), const char* - } - - if (test(state, start, subtagLen) && state >= 0) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CFUNC UBool -@@ -835,7 +835,7 @@ ultag_isUnicodeExtensionSubtags(const char* s, int32_t len) { - - static UBool - _addVariantToList(VariantListEntry **first, VariantListEntry *var) { -- UBool bAdded = TRUE; -+ UBool bAdded = true; - - if (*first == NULL) { - var->next = NULL; -@@ -847,7 +847,7 @@ _addVariantToList(VariantListEntry **first, VariantListEntry *var) { - /* variants order should be preserved */ - prev = NULL; - cur = *first; -- while (TRUE) { -+ while (true) { - if (cur == NULL) { - prev->next = var; - var->next = NULL; -@@ -858,7 +858,7 @@ _addVariantToList(VariantListEntry **first, VariantListEntry *var) { - cmp = uprv_compareInvCharsAsAscii(var->variant, cur->variant); - if (cmp == 0) { - /* duplicated variant */ -- bAdded = FALSE; -+ bAdded = false; - break; - } - prev = cur; -@@ -871,7 +871,7 @@ _addVariantToList(VariantListEntry **first, VariantListEntry *var) { - - static UBool - _addAttributeToList(AttributeListEntry **first, AttributeListEntry *attr) { -- UBool bAdded = TRUE; -+ UBool bAdded = true; - - if (*first == NULL) { - attr->next = NULL; -@@ -883,7 +883,7 @@ _addAttributeToList(AttributeListEntry **first, AttributeListEntry *attr) { - /* reorder variants in alphabetical order */ - prev = NULL; - cur = *first; -- while (TRUE) { -+ while (true) { - if (cur == NULL) { - prev->next = attr; - attr->next = NULL; -@@ -901,7 +901,7 @@ _addAttributeToList(AttributeListEntry **first, AttributeListEntry *attr) { - } - if (cmp == 0) { - /* duplicated variant */ -- bAdded = FALSE; -+ bAdded = false; - break; - } - prev = cur; -@@ -915,7 +915,7 @@ _addAttributeToList(AttributeListEntry **first, AttributeListEntry *attr) { - - static UBool - _addExtensionToList(ExtensionListEntry **first, ExtensionListEntry *ext, UBool localeToBCP) { -- UBool bAdded = TRUE; -+ UBool bAdded = true; - - if (*first == NULL) { - ext->next = NULL; -@@ -927,7 +927,7 @@ _addExtensionToList(ExtensionListEntry **first, ExtensionListEntry *ext, UBool l - /* reorder variants in alphabetical order */ - prev = NULL; - cur = *first; -- while (TRUE) { -+ while (true) { - if (cur == NULL) { - prev->next = ext; - ext->next = NULL; -@@ -979,7 +979,7 @@ _addExtensionToList(ExtensionListEntry **first, ExtensionListEntry *ext, UBool l - } - if (cmp == 0) { - /* duplicated extension key */ -- bAdded = FALSE; -+ bAdded = false; - break; - } - prev = cur; -@@ -1164,7 +1164,7 @@ _appendVariantsToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool st - - if (len > 0) { - char *p, *pVar; -- UBool bNext = TRUE; -+ UBool bNext = true; - VariantListEntry *var; - VariantListEntry *varFirst = NULL; - -@@ -1173,7 +1173,7 @@ _appendVariantsToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool st - while (bNext) { - if (*p == SEP || *p == LOCALE_SEP || *p == 0) { - if (*p == 0) { -- bNext = FALSE; -+ bNext = false; - } else { - *p = 0; /* terminate */ - } -@@ -1211,7 +1211,7 @@ _appendVariantsToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool st - } else { - /* Special handling for POSIX variant, need to remember that we had it and then */ - /* treat it like an extension later. */ -- *hadPosix = TRUE; -+ *hadPosix = true; - } - } else if (strict) { - *status = U_ILLEGAL_ARGUMENT_ERROR; -@@ -1288,7 +1288,7 @@ _appendKeywordsToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool st - int32_t keylen; - UBool isBcpUExt; - -- while (TRUE) { -+ while (true) { - key = uenum_next(keywordEnum.getAlias(), NULL, status); - if (key == NULL) { - break; -@@ -1322,7 +1322,7 @@ _appendKeywordsToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool st - if (uprv_strcmp(key, LOCALE_ATTRIBUTE_KEY) == 0) { - if (len > 0) { - int32_t i = 0; -- while (TRUE) { -+ while (true) { - attrBufLength = 0; - for (; i < len; i++) { - if (buf[i] != '-') { -@@ -1448,7 +1448,7 @@ _appendKeywordsToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool st - ext->key = bcpKey; - ext->value = bcpValue; - -- if (!_addExtensionToList(&firstExt, ext, TRUE)) { -+ if (!_addExtensionToList(&firstExt, ext, true)) { - if (strict) { - *status = U_ILLEGAL_ARGUMENT_ERROR; - break; -@@ -1467,18 +1467,18 @@ _appendKeywordsToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool st - ext->key = POSIX_KEY; - ext->value = POSIX_VALUE; - -- if (!_addExtensionToList(&firstExt, ext, TRUE)) { -+ if (!_addExtensionToList(&firstExt, ext, true)) { - // Silently ignore errors. - } - } - - if (U_SUCCESS(*status) && (firstExt != NULL || firstAttr != NULL)) { -- UBool startLDMLExtension = FALSE; -+ UBool startLDMLExtension = false; - for (ext = firstExt; ext; ext = ext->next) { - if (!startLDMLExtension && uprv_strlen(ext->key) > 1) { - /* first LDML u singlton extension */ - sink.Append("-u", 2); -- startLDMLExtension = TRUE; -+ startLDMLExtension = true; - } - - /* write out the sorted BCP47 attributes, extensions and private use */ -@@ -1520,7 +1520,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - int32_t len; - - /* Reset the posixVariant value */ -- *posixVariant = FALSE; -+ *posixVariant = false; - - pTag = ldmlext; - pKwds = NULL; -@@ -1604,7 +1604,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - kwd->key = LOCALE_ATTRIBUTE_KEY; - kwd->value = value->data(); - -- if (!_addExtensionToList(&kwdFirst, kwd, FALSE)) { -+ if (!_addExtensionToList(&kwdFirst, kwd, false)) { - *status = U_ILLEGAL_ARGUMENT_ERROR; - return; - } -@@ -1616,14 +1616,14 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - const char *pBcpType = NULL; /* beginning of u extension type subtag(s) */ - int32_t bcpKeyLen = 0; - int32_t bcpTypeLen = 0; -- UBool isDone = FALSE; -+ UBool isDone = false; - - pTag = pKwds; - /* BCP47 representation of LDML key/type pairs */ - while (!isDone) { - const char *pNextBcpKey = NULL; - int32_t nextBcpKeyLen = 0; -- UBool emitKeyword = FALSE; -+ UBool emitKeyword = false; - - if (*pTag) { - /* locate next separator char */ -@@ -1631,7 +1631,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - - if (ultag_isUnicodeLocaleKey(pTag, len)) { - if (pBcpKey) { -- emitKeyword = TRUE; -+ emitKeyword = true; - pNextBcpKey = pTag; - nextBcpKeyLen = len; - } else { -@@ -1657,8 +1657,8 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - } - } else { - /* processing last one */ -- emitKeyword = TRUE; -- isDone = TRUE; -+ emitKeyword = true; -+ isDone = true; - } - - if (emitKeyword) { -@@ -1744,7 +1744,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - /* Special handling for u-va-posix, since we want to treat this as a variant, - not as a keyword */ - if (!variantExists && !uprv_strcmp(pKey, POSIX_KEY) && !uprv_strcmp(pType, POSIX_VALUE) ) { -- *posixVariant = TRUE; -+ *posixVariant = true; - } else { - /* create an ExtensionListEntry for this keyword */ - kwd = extPool.create(); -@@ -1756,7 +1756,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - kwd->key = pKey; - kwd->value = pType; - -- if (!_addExtensionToList(&kwdFirst, kwd, FALSE)) { -+ if (!_addExtensionToList(&kwdFirst, kwd, false)) { - // duplicate keyword is allowed, Only the first - // is honored. - } -@@ -1773,7 +1773,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT - kwd = kwdFirst; - while (kwd != NULL) { - nextKwd = kwd->next; -- _addExtensionToList(appendTo, kwd, FALSE); -+ _addExtensionToList(appendTo, kwd, false); - kwd = nextKwd; - } - } -@@ -1788,7 +1788,7 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode* status) - const char *key, *type; - icu::MemoryPool extPool; - icu::MemoryPool kwdBuf; -- UBool posixVariant = FALSE; -+ UBool posixVariant = false; - - if (U_FAILURE(*status)) { - return; -@@ -1803,7 +1803,7 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode* status) - if (*key == LDMLEXT) { - /* Determine if variants already exists */ - if (ultag_getVariantsSize(langtag)) { -- posixVariant = TRUE; -+ posixVariant = true; - } - - _appendLDMLExtensionAsKeywords(type, &kwdFirst, extPool, kwdBuf, &posixVariant, status); -@@ -1818,7 +1818,7 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode* status) - } - kwd->key = key; - kwd->value = type; -- if (!_addExtensionToList(&kwdFirst, kwd, FALSE)) { -+ if (!_addExtensionToList(&kwdFirst, kwd, false)) { - *status = U_ILLEGAL_ARGUMENT_ERROR; - break; - } -@@ -1835,7 +1835,7 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode* status) - } else { - kwd->key = PRIVATEUSE_KEY; - kwd->value = type; -- if (!_addExtensionToList(&kwdFirst, kwd, FALSE)) { -+ if (!_addExtensionToList(&kwdFirst, kwd, false)) { - *status = U_ILLEGAL_ARGUMENT_ERROR; - } - } -@@ -1851,12 +1851,12 @@ _appendKeywords(ULanguageTag* langtag, icu::ByteSink& sink, UErrorCode* status) - - if (U_SUCCESS(*status) && kwdFirst != NULL) { - /* write out the sorted keywords */ -- UBool firstValue = TRUE; -+ UBool firstValue = true; - kwd = kwdFirst; - do { - if (firstValue) { - sink.Append("@", 1); -- firstValue = FALSE; -+ firstValue = false; - } else { - sink.Append(";", 1); - } -@@ -1899,17 +1899,17 @@ _appendPrivateuseToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool - - if (len > 0) { - char *p, *pPriv; -- UBool bNext = TRUE; -- UBool firstValue = TRUE; -+ UBool bNext = true; -+ UBool firstValue = true; - UBool writeValue; - - pPriv = NULL; - p = buf; - while (bNext) { -- writeValue = FALSE; -+ writeValue = false; - if (*p == SEP || *p == LOCALE_SEP || *p == 0) { - if (*p == 0) { -- bNext = FALSE; -+ bNext = false; - } else { - *p = 0; /* terminate */ - } -@@ -1923,10 +1923,10 @@ _appendPrivateuseToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool - if (_isPrivateuseValueSubtag(pPriv, -1)) { - if (firstValue) { - if (!_isVariantSubtag(pPriv, -1)) { -- writeValue = TRUE; -+ writeValue = true; - } - } else { -- writeValue = TRUE; -+ writeValue = true; - } - } else if (strict) { - *status = U_ILLEGAL_ARGUMENT_ERROR; -@@ -1959,7 +1959,7 @@ _appendPrivateuseToLanguageTag(const char* localeID, icu::ByteSink& sink, UBool - tmpAppend[reslen++] = SEP; - } - -- firstValue = FALSE; -+ firstValue = false; - } - - len = (int32_t)uprv_strlen(pPriv); -@@ -2026,7 +2026,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta - ExtensionListEntry *pExtension; - char *pExtValueSubtag, *pExtValueSubtagEnd; - int32_t i; -- UBool privateuseVar = FALSE; -+ UBool privateuseVar = false; - int32_t legacyLen = 0; - - if (parsedLen != NULL) { -@@ -2124,7 +2124,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta - if (*redundantTagEnd == '\0' || *redundantTagEnd == SEP) { - const char* preferredTag = REDUNDANT[i + 1]; - size_t preferredTagLen = uprv_strlen(preferredTag); -- uprv_strncpy(t->buf, preferredTag, preferredTagLen); -+ uprv_memcpy(t->buf, preferredTag, preferredTagLen); - if (*redundantTagEnd == SEP) { - uprv_memmove(tagBuf + preferredTagLen, - redundantTagEnd, -@@ -2276,7 +2276,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta - pExtension->value = T_CString_toLowerCase(pExtValueSubtag); - - /* insert the extension to the list */ -- if (_addExtensionToList(&(t->extensions), pExtension, FALSE)) { -+ if (_addExtensionToList(&(t->extensions), pExtension, false)) { - pLastGoodPosition = pExtValueSubtagEnd; - } else { - /* stop parsing here */ -@@ -2339,7 +2339,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta - pExtension->value = T_CString_toLowerCase(pExtValueSubtag); - - /* insert the extension to the list */ -- if (_addExtensionToList(&(t->extensions), pExtension, FALSE)) { -+ if (_addExtensionToList(&(t->extensions), pExtension, false)) { - pLastGoodPosition = pExtValueSubtagEnd; - pExtension = NULL; - } else { -@@ -2380,7 +2380,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta - if (uprv_strncmp(pSubtag, PRIVUSE_VARIANT_PREFIX, uprv_strlen(PRIVUSE_VARIANT_PREFIX)) == 0) { - *pSep = 0; - next = VART; -- privateuseVar = TRUE; -+ privateuseVar = true; - break; - } else if (_isPrivateuseValueSubtag(pSubtag, subtagLen)) { - pLastGoodPosition = pSep; -@@ -2417,7 +2417,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta - *pExtValueSubtagEnd = 0; - pExtension->value = T_CString_toLowerCase(pExtValueSubtag); - /* insert the extension to the list */ -- if (_addExtensionToList(&(t->extensions), pExtension, FALSE)) { -+ if (_addExtensionToList(&(t->extensions), pExtension, false)) { - pLastGoodPosition = pExtValueSubtagEnd; - } else { - uprv_free(pExtension); -@@ -2535,7 +2535,7 @@ static int32_t - ultag_getVariantsSize(const ULanguageTag* langtag) { - int32_t size = 0; - VariantListEntry *cur = langtag->variants; -- while (TRUE) { -+ while (true) { - if (cur == NULL) { - break; - } -@@ -2581,7 +2581,7 @@ static int32_t - ultag_getExtensionsSize(const ULanguageTag* langtag) { - int32_t size = 0; - ExtensionListEntry *cur = langtag->extensions; -- while (TRUE) { -+ while (true) { - if (cur == NULL) { - break; - } -@@ -2648,7 +2648,7 @@ ulocimp_toLanguageTag(const char* localeID, - icu::CharString canonical; - int32_t reslen; - UErrorCode tmpStatus = U_ZERO_ERROR; -- UBool hadPosix = FALSE; -+ UBool hadPosix = false; - const char* pKeywordStart; - - /* Note: uloc_canonicalize returns "en_US_POSIX" for input locale ID "". See #6835 */ -@@ -2699,7 +2699,7 @@ ulocimp_toLanguageTag(const char* localeID, - pKeywordStart = locale_getKeywordsStart(canonical.data()); - if (pKeywordStart == canonical.data()) { - int kwdCnt = 0; -- UBool done = FALSE; -+ UBool done = false; - - icu::LocalUEnumerationPointer kwdEnum(uloc_openKeywords(canonical.data(), &tmpStatus)); - if (U_SUCCESS(tmpStatus)) { -@@ -2720,15 +2720,15 @@ ulocimp_toLanguageTag(const char* localeID, - /* return private use only tag */ - sink.Append("und-x-", 6); - sink.Append(buf.data(), buf.length()); -- done = TRUE; -+ done = true; - } else if (strict) { - *status = U_ILLEGAL_ARGUMENT_ERROR; -- done = TRUE; -+ done = true; - } - /* if not strict mode, then "und" will be returned */ - } else { - *status = U_ILLEGAL_ARGUMENT_ERROR; -- done = TRUE; -+ done = true; - } - } - } -@@ -2782,11 +2782,11 @@ ulocimp_forLanguageTag(const char* langtag, - icu::ByteSink& sink, - int32_t* parsedLength, - UErrorCode* status) { -- UBool isEmpty = TRUE; -+ UBool isEmpty = true; - const char *subtag, *p; - int32_t len; - int32_t i, n; -- UBool noRegion = TRUE; -+ UBool noRegion = true; - - icu::LocalULanguageTagPointer lt(ultag_parse(langtag, tagLen, parsedLength, status)); - if (U_FAILURE(*status)) { -@@ -2799,7 +2799,7 @@ ulocimp_forLanguageTag(const char* langtag, - len = (int32_t)uprv_strlen(subtag); - if (len > 0) { - sink.Append(subtag, len); -- isEmpty = FALSE; -+ isEmpty = false; - } - } - -@@ -2808,7 +2808,7 @@ ulocimp_forLanguageTag(const char* langtag, - len = (int32_t)uprv_strlen(subtag); - if (len > 0) { - sink.Append("_", 1); -- isEmpty = FALSE; -+ isEmpty = false; - - /* write out the script in title case */ - char c = uprv_toupper(*subtag); -@@ -2821,7 +2821,7 @@ ulocimp_forLanguageTag(const char* langtag, - len = (int32_t)uprv_strlen(subtag); - if (len > 0) { - sink.Append("_", 1); -- isEmpty = FALSE; -+ isEmpty = false; - - /* write out the region in upper case */ - p = subtag; -@@ -2830,7 +2830,7 @@ ulocimp_forLanguageTag(const char* langtag, - sink.Append(&c, 1); - p++; - } -- noRegion = FALSE; -+ noRegion = false; - } - - /* variants */ -@@ -2839,7 +2839,7 @@ ulocimp_forLanguageTag(const char* langtag, - if (n > 0) { - if (noRegion) { - sink.Append("_", 1); -- isEmpty = FALSE; -+ isEmpty = false; - } - - for (i = 0; i < n; i++) { -diff --git a/deps/icu-small/source/common/umapfile.cpp b/deps/icu-small/source/common/umapfile.cpp -index 3e714876a4..145582ea97 100644 ---- a/deps/icu-small/source/common/umapfile.cpp -+++ b/deps/icu-small/source/common/umapfile.cpp -@@ -107,10 +107,10 @@ typedef HANDLE MemoryMap; - U_CFUNC UBool - uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) { - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - UDataMemory_init(pData); /* Clear the output struct. */ -- return FALSE; /* no file access */ -+ return false; /* no file access */ - } - - U_CFUNC void uprv_unmapFile(UDataMemory *pData) { -@@ -126,7 +126,7 @@ typedef HANDLE MemoryMap; - ) - { - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - HANDLE map = nullptr; -@@ -150,12 +150,12 @@ typedef HANDLE MemoryMap; - u_strFromUTF8(reinterpret_cast(utf16Path), static_cast(UPRV_LENGTHOF(utf16Path)), &pathUtf16Len, path, -1, status); - - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - if (*status == U_STRING_NOT_TERMINATED_WARNING) { - // Report back an error instead of a warning. - *status = U_BUFFER_OVERFLOW_ERROR; -- return FALSE; -+ return false; - } - - file = CreateFileW(utf16Path, GENERIC_READ, FILE_SHARE_READ, nullptr, -@@ -168,7 +168,7 @@ typedef HANDLE MemoryMap; - if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) { - *status = U_MEMORY_ALLOCATION_ERROR; - } -- return FALSE; -+ return false; - } - - // Note: We use NULL/nullptr for lpAttributes parameter below. -@@ -183,17 +183,17 @@ typedef HANDLE MemoryMap; - if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) { - *status = U_MEMORY_ALLOCATION_ERROR; - } -- return FALSE; -+ return false; - } - - /* map a view of the file into our address space */ - pData->pHeader = reinterpret_cast(MapViewOfFile(map, FILE_MAP_READ, 0, 0, 0)); - if (pData->pHeader == nullptr) { - CloseHandle(map); -- return FALSE; -+ return false; - } - pData->map = map; -- return TRUE; -+ return true; - } - - U_CFUNC void -@@ -217,21 +217,21 @@ typedef HANDLE MemoryMap; - void *data; - - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - UDataMemory_init(pData); /* Clear the output struct. */ - - /* determine the length of the file */ - if(stat(path, &mystat)!=0 || mystat.st_size<=0) { -- return FALSE; -+ return false; - } - length=mystat.st_size; - - /* open the file */ - fd=open(path, O_RDONLY); - if(fd==-1) { -- return FALSE; -+ return false; - } - - /* get a view of the mapping */ -@@ -243,7 +243,7 @@ typedef HANDLE MemoryMap; - close(fd); /* no longer needed */ - if(data==MAP_FAILED) { - // Possibly check the errno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR? -- return FALSE; -+ return false; - } - - pData->map = (char *)data + length; -@@ -252,7 +252,7 @@ typedef HANDLE MemoryMap; - #if U_PLATFORM == U_PF_IPHONE - posix_madvise(data, length, POSIX_MADV_RANDOM); - #endif -- return TRUE; -+ return true; - } - - U_CFUNC void -@@ -291,21 +291,21 @@ typedef HANDLE MemoryMap; - void *p; - - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - UDataMemory_init(pData); /* Clear the output struct. */ - /* open the input file */ - file=fopen(path, "rb"); - if(file==nullptr) { -- return FALSE; -+ return false; - } - - /* get the file length */ - fileLength=umap_fsize(file); - if(ferror(file) || fileLength<=20) { - fclose(file); -- return FALSE; -+ return false; - } - - /* allocate the memory to hold the file data */ -@@ -313,21 +313,21 @@ typedef HANDLE MemoryMap; - if(p==nullptr) { - fclose(file); - *status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - - /* read the file */ - if(fileLength!=fread(p, 1, fileLength, file)) { - uprv_free(p); - fclose(file); -- return FALSE; -+ return false; - } - - fclose(file); - pData->map=p; - pData->pHeader=(const DataHeader *)p; - pData->mapAddr=p; -- return TRUE; -+ return true; - } - - U_CFUNC void -@@ -427,7 +427,7 @@ typedef HANDLE MemoryMap; - void *val=0; - - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - inBasename=uprv_strrchr(path, U_FILE_SEP_CHAR); -@@ -447,14 +447,14 @@ typedef HANDLE MemoryMap; - - /* determine the length of the file */ - if(stat(path, &mystat)!=0 || mystat.st_size<=0) { -- return FALSE; -+ return false; - } - length=mystat.st_size; - - /* open the file */ - fd=open(path, O_RDONLY); - if(fd==-1) { -- return FALSE; -+ return false; - } - - /* get a view of the mapping */ -@@ -462,12 +462,12 @@ typedef HANDLE MemoryMap; - close(fd); /* no longer needed */ - if(data==MAP_FAILED) { - // Possibly check the errorno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR? -- return FALSE; -+ return false; - } - pData->map = (char *)data + length; - pData->pHeader=(const DataHeader *)data; - pData->mapAddr = data; -- return TRUE; -+ return true; - } - - # ifdef OS390BATCH -@@ -503,16 +503,16 @@ typedef HANDLE MemoryMap; - val=dllqueryvar((dllhandle*)handle, U_ICUDATA_ENTRY_NAME); - if(val == 0) { - /* failed... so keep looking */ -- return FALSE; -+ return false; - } - # ifdef UDATA_DEBUG - fprintf(stderr, "dllqueryvar(%08X, %s) -> %08X\n", handle, U_ICUDATA_ENTRY_NAME, val); - # endif - - pData->pHeader=(const DataHeader *)val; -- return TRUE; -+ return true; - } else { -- return FALSE; /* no handle */ -+ return false; /* no handle */ - } - } - -diff --git a/deps/icu-small/source/common/umapfile.h b/deps/icu-small/source/common/umapfile.h -index adc265203d..042e71374c 100644 ---- a/deps/icu-small/source/common/umapfile.h -+++ b/deps/icu-small/source/common/umapfile.h -@@ -29,7 +29,7 @@ - #include "unicode/udata.h" - #include "putilimp.h" - --U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path, UErrorCode *status); -+U_CAPI UBool U_EXPORT2 uprv_mapFile(UDataMemory *pdm, const char *path, UErrorCode *status); - U_CFUNC void uprv_unmapFile(UDataMemory *pData); - - /* MAP_NONE: no memory mapping, no file access at all */ -diff --git a/deps/icu-small/source/common/umutex.h b/deps/icu-small/source/common/umutex.h -index 8d76b3f3e6..1b8332409c 100644 ---- a/deps/icu-small/source/common/umutex.h -+++ b/deps/icu-small/source/common/umutex.h -@@ -71,7 +71,6 @@ U_NAMESPACE_BEGIN - ****************************************************************************/ - - typedef std::atomic u_atomic_int32_t; --#define ATOMIC_INT32_T_INITIALIZER(val) ATOMIC_VAR_INIT(val) - - inline int32_t umtx_loadAcquire(u_atomic_int32_t &var) { - return var.load(std::memory_order_acquire); -@@ -96,18 +95,15 @@ inline int32_t umtx_atomic_dec(u_atomic_int32_t *var) { - * - *************************************************************************************************/ - --struct UInitOnce { -- u_atomic_int32_t fState; -- UErrorCode fErrCode; -+struct U_COMMON_API UInitOnce { -+ u_atomic_int32_t fState {0}; -+ UErrorCode fErrCode {U_ZERO_ERROR}; - void reset() {fState = 0;} - UBool isReset() {return umtx_loadAcquire(fState) == 0;} - // Note: isReset() is used by service registration code. - // Thread safety of this usage needs review. - }; - --#define U_INITONCE_INITIALIZER {ATOMIC_INT32_T_INITIALIZER(0), U_ZERO_ERROR} -- -- - U_COMMON_API UBool U_EXPORT2 umtx_initImplPreInit(UInitOnce &); - U_COMMON_API void U_EXPORT2 umtx_initImplPostInit(UInitOnce &); - -diff --git a/deps/icu-small/source/common/unames.cpp b/deps/icu-small/source/common/unames.cpp -index 5776058f95..b0ac991e1b 100644 ---- a/deps/icu-small/source/common/unames.cpp -+++ b/deps/icu-small/source/common/unames.cpp -@@ -105,7 +105,7 @@ typedef struct { - - static UDataMemory *uCharNamesData=NULL; - static UCharNames *uCharNames=NULL; --static icu::UInitOnce gCharNamesInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCharNamesInitOnce {}; - - /* - * Maximum length of character names (regular & 1.0). -@@ -173,7 +173,7 @@ static UBool U_CALLCONV unames_cleanup(void) - } - gCharNamesInitOnce.reset(); - gMaxNameLength=0; -- return TRUE; -+ return true; - } - - static UBool U_CALLCONV -@@ -371,7 +371,7 @@ compareName(UCharNames *names, - if(c!=';') { - /* implicit letter */ - if((char)c!=*otherName++) { -- return FALSE; -+ return false; - } - } else { - /* finished */ -@@ -388,7 +388,7 @@ compareName(UCharNames *names, - if(c!=';') { - /* explicit letter */ - if((char)c!=*otherName++) { -- return FALSE; -+ return false; - } - } else { - /* stop, but skip the semicolon if we are seeking -@@ -407,7 +407,7 @@ compareName(UCharNames *names, - uint8_t *tokenString=tokenStrings+token; - while((c=*tokenString++)!=0) { - if((char)c!=*otherName++) { -- return FALSE; -+ return false; - } - } - } -@@ -616,7 +616,7 @@ enumGroupNames(UCharNames *names, const uint16_t *group, - /* here, we assume that the buffer is large enough */ - if(length>0) { - if(!fn(context, start, nameChoice, buffer, length)) { -- return FALSE; -+ return false; - } - } - ++start; -@@ -626,12 +626,12 @@ enumGroupNames(UCharNames *names, const uint16_t *group, - while(start<=end) { - if(compareName(names, s+offsets[start&GROUP_MASK], lengths[start&GROUP_MASK], nameChoice, otherName)) { - ((FindName *)context)->code=start; -- return FALSE; -+ return false; - } - ++start; - } - } -- return TRUE; -+ return true; - } - - /* -@@ -653,14 +653,14 @@ enumExtNames(UChar32 start, UChar32 end, - /* here, we assume that the buffer is large enough */ - if(length>0) { - if(!fn(context, start, U_EXTENDED_CHAR_NAME, buffer, length)) { -- return FALSE; -+ return false; - } - } - ++start; - } - } - -- return TRUE; -+ return true; - } - - static UBool -@@ -684,7 +684,7 @@ enumNames(UCharNames *names, - extLimit=limit; - } - if(!enumExtNames(start, extLimit-1, fn, context)) { -- return FALSE; -+ return false; - } - start=extLimit; - } -@@ -705,7 +705,7 @@ enumNames(UCharNames *names, - if(!enumGroupNames(names, group, - start, ((UChar32)startGroupMSB< group[GROUP_MSB] + 1 && nameChoice == U_EXTENDED_CHAR_NAME) { -@@ -738,7 +738,7 @@ enumNames(UCharNames *names, - end = limit; - } - if (!enumExtNames((group[GROUP_MSB] + 1) << GROUP_SHIFT, end - 1, fn, context)) { -- return FALSE; -+ return false; - } - } - group=nextGroup; -@@ -753,7 +753,7 @@ enumNames(UCharNames *names, - start = next; - } - } else { -- return TRUE; -+ return true; - } - } - -@@ -766,7 +766,7 @@ enumNames(UCharNames *names, - return enumExtNames(start, limit - 1, fn, context); - } - -- return TRUE; -+ return true; - } - - static uint16_t -@@ -941,7 +941,7 @@ enumAlgNames(AlgorithmicRange *range, - uint16_t length; - - if(nameChoice!=U_UNICODE_CHAR_NAME && nameChoice!=U_EXTENDED_CHAR_NAME) { -- return TRUE; -+ return true; - } - - switch(range->type) { -@@ -952,12 +952,12 @@ enumAlgNames(AlgorithmicRange *range, - /* get the full name of the start character */ - length=getAlgName(range, (uint32_t)start, nameChoice, buffer, sizeof(buffer)); - if(length<=0) { -- return TRUE; -+ return true; - } - - /* call the enumerator function with this first character */ - if(!fn(context, start, nameChoice, buffer, length)) { -- return FALSE; -+ return false; - } - - /* go to the end of the name; all these names have the same length */ -@@ -984,7 +984,7 @@ enumAlgNames(AlgorithmicRange *range, - } - - if(!fn(context, start, nameChoice, buffer, length)) { -- return FALSE; -+ return false; - } - } - break; -@@ -1018,7 +1018,7 @@ enumAlgNames(AlgorithmicRange *range, - - /* call the enumerator function with this first character */ - if(!fn(context, start, nameChoice, buffer, length)) { -- return FALSE; -+ return false; - } - - /* enumerate the rest of the names */ -@@ -1056,7 +1056,7 @@ enumAlgNames(AlgorithmicRange *range, - *t=0; - - if(!fn(context, start, nameChoice, buffer, length)) { -- return FALSE; -+ return false; - } - } - break; -@@ -1066,7 +1066,7 @@ enumAlgNames(AlgorithmicRange *range, - break; - } - -- return TRUE; -+ return true; - } - - /* -@@ -1416,11 +1416,11 @@ calcNameSetsLengths(UErrorCode *pErrorCode) { - int32_t i, maxNameLength; - - if(gMaxNameLength!=0) { -- return TRUE; -+ return true; - } - - if(!isDataLoaded(pErrorCode)) { -- return FALSE; -+ return false; - } - - /* set hex digits, used in various names, and <>-, used in extended names */ -@@ -1437,7 +1437,7 @@ calcNameSetsLengths(UErrorCode *pErrorCode) { - /* set sets and lengths from group names, set global maximum values */ - calcGroupNameSetsLengths(maxNameLength); - -- return TRUE; -+ return true; - } - - U_NAMESPACE_END -@@ -1809,7 +1809,7 @@ makeTokenMap(const UDataSwapper *ds, - - /* enter the converted character into the map and mark it used */ - map[c1]=c2; -- usedOutChar[c2]=TRUE; -+ usedOutChar[c2]=true; - } - } - -diff --git a/deps/icu-small/source/common/unicode/bytestrie.h b/deps/icu-small/source/common/unicode/bytestrie.h -index 271a81d1b4..8fe66780f5 100644 ---- a/deps/icu-small/source/common/unicode/bytestrie.h -+++ b/deps/icu-small/source/common/unicode/bytestrie.h -@@ -394,7 +394,7 @@ private: - pos_(bytes_), remainingMatchLength_(-1) {} - - // No assignment operator. -- BytesTrie &operator=(const BytesTrie &other); -+ BytesTrie &operator=(const BytesTrie &other) = delete; - - inline void stop() { - pos_=NULL; -diff --git a/deps/icu-small/source/common/unicode/bytestriebuilder.h b/deps/icu-small/source/common/unicode/bytestriebuilder.h -index 382f5e0095..ec9c625473 100644 ---- a/deps/icu-small/source/common/unicode/bytestriebuilder.h -+++ b/deps/icu-small/source/common/unicode/bytestriebuilder.h -@@ -129,8 +129,8 @@ public: - private: - friend class ::BytesTrieTest; - -- BytesTrieBuilder(const BytesTrieBuilder &other); // no copy constructor -- BytesTrieBuilder &operator=(const BytesTrieBuilder &other); // no assignment operator -+ BytesTrieBuilder(const BytesTrieBuilder &other) = delete; // no copy constructor -+ BytesTrieBuilder &operator=(const BytesTrieBuilder &other) = delete; // no assignment operator - - void buildBytes(UStringTrieBuildOption buildOption, UErrorCode &errorCode); - -diff --git a/deps/icu-small/source/common/unicode/caniter.h b/deps/icu-small/source/common/unicode/caniter.h -index 6e57ef5e3b..db400a531b 100644 ---- a/deps/icu-small/source/common/unicode/caniter.h -+++ b/deps/icu-small/source/common/unicode/caniter.h -@@ -150,20 +150,20 @@ public: - private: - // ===================== PRIVATES ============================== - // private default constructor -- CanonicalIterator(); -+ CanonicalIterator() = delete; - - - /** - * Copy constructor. Private for now. - * @internal (private) - */ -- CanonicalIterator(const CanonicalIterator& other); -+ CanonicalIterator(const CanonicalIterator& other) = delete; - - /** - * Assignment operator. Private for now. - * @internal (private) - */ -- CanonicalIterator& operator=(const CanonicalIterator& other); -+ CanonicalIterator& operator=(const CanonicalIterator& other) = delete; - - // fields - UnicodeString source; -diff --git a/deps/icu-small/source/common/unicode/dtintrv.h b/deps/icu-small/source/common/unicode/dtintrv.h -index 46a94ce349..8c172eb7a5 100644 ---- a/deps/icu-small/source/common/unicode/dtintrv.h -+++ b/deps/icu-small/source/common/unicode/dtintrv.h -@@ -131,7 +131,7 @@ private: - /** - * Default constructor, not implemented. - */ -- DateInterval(); -+ DateInterval() = delete; - - UDate fromDate; - UDate toDate; -diff --git a/deps/icu-small/source/common/unicode/idna.h b/deps/icu-small/source/common/unicode/idna.h -index 1305dc6048..1c57205bae 100644 ---- a/deps/icu-small/source/common/unicode/idna.h -+++ b/deps/icu-small/source/common/unicode/idna.h -@@ -305,8 +305,8 @@ public: - private: - friend class UTS46; - -- IDNAInfo(const IDNAInfo &other); // no copying -- IDNAInfo &operator=(const IDNAInfo &other); // no copying -+ IDNAInfo(const IDNAInfo &other) = delete; // no copying -+ IDNAInfo &operator=(const IDNAInfo &other) = delete; // no copying - - void reset() { - errors=labelErrors=0; -diff --git a/deps/icu-small/source/common/unicode/normlzr.h b/deps/icu-small/source/common/unicode/normlzr.h -index 93661990fe..14b2469885 100644 ---- a/deps/icu-small/source/common/unicode/normlzr.h -+++ b/deps/icu-small/source/common/unicode/normlzr.h -@@ -740,8 +740,8 @@ private: - // Private functions - //------------------------------------------------------------------------- - -- Normalizer(); // default constructor not implemented -- Normalizer &operator=(const Normalizer &that); // assignment operator not implemented -+ Normalizer() = delete; // default constructor not implemented -+ Normalizer &operator=(const Normalizer &that) = delete; // assignment operator not implemented - - // Private utility methods for iteration - // For documentation, see the source code -diff --git a/deps/icu-small/source/common/unicode/platform.h b/deps/icu-small/source/common/unicode/platform.h -index b7e514442c..1605226a79 100644 ---- a/deps/icu-small/source/common/unicode/platform.h -+++ b/deps/icu-small/source/common/unicode/platform.h -@@ -168,7 +168,7 @@ - # define U_PLATFORM U_PF_LINUX - #elif defined(__APPLE__) && defined(__MACH__) - # include --# if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE /* variant of TARGET_OS_MAC */ -+# if (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && (defined(TARGET_OS_MACCATALYST) && !TARGET_OS_MACCATALYST) /* variant of TARGET_OS_MAC */ - # define U_PLATFORM U_PF_IPHONE - # else - # define U_PLATFORM U_PF_DARWIN -@@ -847,6 +847,21 @@ namespace std { - # define U_IMPORT - #endif - -+/** -+ * \def U_HIDDEN -+ * This is used to mark internal structs declared within external classes, -+ * to prevent the internal structs from having the same visibility as the -+ * class within which they are declared. -+ * @internal -+ */ -+#ifdef U_HIDDEN -+ /* Use the predefined value. */ -+#elif defined(__GNUC__) -+# define U_HIDDEN __attribute__((visibility("hidden"))) -+#else -+# define U_HIDDEN -+#endif -+ - /** - * \def U_CALLCONV - * Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary -diff --git a/deps/icu-small/source/common/unicode/rbbi.h b/deps/icu-small/source/common/unicode/rbbi.h -index 0bad0d3897..d878243e3f 100644 ---- a/deps/icu-small/source/common/unicode/rbbi.h -+++ b/deps/icu-small/source/common/unicode/rbbi.h -@@ -648,13 +648,6 @@ private: - //======================================================================= - // implementation - //======================================================================= -- /** -- * Dumps caches and performs other actions associated with a complete change -- * in text or iteration position. -- * @internal (private) -- */ -- void reset(void); -- - /** - * Common initialization function, used by constructors and bufferClone. - * @internal (private) -diff --git a/deps/icu-small/source/common/unicode/resbund.h b/deps/icu-small/source/common/unicode/resbund.h -index 7441592a0f..6e26a40591 100644 ---- a/deps/icu-small/source/common/unicode/resbund.h -+++ b/deps/icu-small/source/common/unicode/resbund.h -@@ -484,7 +484,7 @@ public: - static UClassID U_EXPORT2 getStaticClassID(); - - private: -- ResourceBundle(); // default constructor not implemented -+ ResourceBundle() = delete; // default constructor not implemented - - UResourceBundle *fResource; - void constructForLocale(const UnicodeString& path, const Locale& locale, UErrorCode& error); -diff --git a/deps/icu-small/source/common/unicode/schriter.h b/deps/icu-small/source/common/unicode/schriter.h -index 9dac099967..a2ab17982d 100644 ---- a/deps/icu-small/source/common/unicode/schriter.h -+++ b/deps/icu-small/source/common/unicode/schriter.h -@@ -172,14 +172,6 @@ protected: - */ - StringCharacterIterator(); - -- /** -- * Sets the iterator to iterate over the provided string. -- * @param newText The string to be iterated over -- * @param newTextLength The length of the String -- * @stable ICU 2.0 -- */ -- void setText(const char16_t* newText, int32_t newTextLength); -- - /** - * Copy of the iterated string object. - * @stable ICU 2.0 -diff --git a/deps/icu-small/source/common/unicode/ubiditransform.h b/deps/icu-small/source/common/unicode/ubiditransform.h -index 2dd7564010..24433aa8ac 100644 ---- a/deps/icu-small/source/common/unicode/ubiditransform.h -+++ b/deps/icu-small/source/common/unicode/ubiditransform.h -@@ -28,7 +28,7 @@ - - /** - * \file -- * \brief Bidi Transformations -+ * \brief C API: Bidi Transformations - */ - - /** -diff --git a/deps/icu-small/source/common/unicode/uchar.h b/deps/icu-small/source/common/unicode/uchar.h -index 253e6db173..6bb68e62a9 100644 ---- a/deps/icu-small/source/common/unicode/uchar.h -+++ b/deps/icu-small/source/common/unicode/uchar.h -@@ -60,7 +60,7 @@ U_CDECL_BEGIN - * @see u_getUnicodeVersion - * @stable ICU 2.0 - */ --#define U_UNICODE_VERSION "14.0" -+#define U_UNICODE_VERSION "15.0" - - /** - * \file -@@ -483,57 +483,55 @@ typedef enum UProperty { - * @stable ICU 62 - */ - UCHAR_EXTENDED_PICTOGRAPHIC=64, --#ifndef U_HIDE_DRAFT_API - /** - * Binary property of strings Basic_Emoji. - * See https://www.unicode.org/reports/tr51/#Emoji_Sets - * -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UCHAR_BASIC_EMOJI=65, - /** - * Binary property of strings Emoji_Keycap_Sequence. - * See https://www.unicode.org/reports/tr51/#Emoji_Sets - * -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UCHAR_EMOJI_KEYCAP_SEQUENCE=66, - /** - * Binary property of strings RGI_Emoji_Modifier_Sequence. - * See https://www.unicode.org/reports/tr51/#Emoji_Sets - * -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE=67, - /** - * Binary property of strings RGI_Emoji_Flag_Sequence. - * See https://www.unicode.org/reports/tr51/#Emoji_Sets - * -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UCHAR_RGI_EMOJI_FLAG_SEQUENCE=68, - /** - * Binary property of strings RGI_Emoji_Tag_Sequence. - * See https://www.unicode.org/reports/tr51/#Emoji_Sets - * -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UCHAR_RGI_EMOJI_TAG_SEQUENCE=69, - /** - * Binary property of strings RGI_Emoji_ZWJ_Sequence. - * See https://www.unicode.org/reports/tr51/#Emoji_Sets - * -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UCHAR_RGI_EMOJI_ZWJ_SEQUENCE=70, - /** - * Binary property of strings RGI_Emoji. - * See https://www.unicode.org/reports/tr51/#Emoji_Sets - * -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UCHAR_RGI_EMOJI=71, --#endif // U_HIDE_DRAFT_API - #ifndef U_HIDE_DEPRECATED_API - /** - * One more than the last constant for binary Unicode properties. -@@ -1885,6 +1883,23 @@ enum UBlockCode { - /** @stable ICU 70 */ - UBLOCK_ZNAMENNY_MUSICAL_NOTATION = 320, /*[1CF00]*/ - -+ // New blocks in Unicode 15.0 -+ -+ /** @stable ICU 72 */ -+ UBLOCK_ARABIC_EXTENDED_C = 321, /*[10EC0]*/ -+ /** @stable ICU 72 */ -+ UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H = 322, /*[31350]*/ -+ /** @stable ICU 72 */ -+ UBLOCK_CYRILLIC_EXTENDED_D = 323, /*[1E030]*/ -+ /** @stable ICU 72 */ -+ UBLOCK_DEVANAGARI_EXTENDED_A = 324, /*[11B00]*/ -+ /** @stable ICU 72 */ -+ UBLOCK_KAKTOVIK_NUMERALS = 325, /*[1D2C0]*/ -+ /** @stable ICU 72 */ -+ UBLOCK_KAWI = 326, /*[11F00]*/ -+ /** @stable ICU 72 */ -+ UBLOCK_NAG_MUNDARI = 327, /*[1E4D0]*/ -+ - #ifndef U_HIDE_DEPRECATED_API - /** - * One more than the highest normal UBlockCode value. -@@ -1892,7 +1907,7 @@ enum UBlockCode { - * - * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. - */ -- UBLOCK_COUNT = 321, -+ UBLOCK_COUNT = 328, - #endif // U_HIDE_DEPRECATED_API - - /** @stable ICU 2.0 */ -@@ -2680,8 +2695,6 @@ typedef enum UVerticalOrientation { - U_CAPI UBool U_EXPORT2 - u_hasBinaryProperty(UChar32 c, UProperty which); - --#ifndef U_HIDE_DRAFT_API -- - /** - * Returns true if the property is true for the string. - * Same as u_hasBinaryProperty(single code point, which) -@@ -2704,13 +2717,11 @@ u_hasBinaryProperty(UChar32 c, UProperty which); - * @see u_getBinaryPropertySet - * @see u_getIntPropertyValue - * @see u_getUnicodeVersion -- * @draft ICU 70 -+ * @stable ICU 70 - */ - U_CAPI UBool U_EXPORT2 - u_stringHasBinaryProperty(const UChar *s, int32_t length, UProperty which); - --#endif // U_HIDE_DRAFT_API -- - /** - * Returns a frozen USet for a binary property. - * The library retains ownership over the returned object. -diff --git a/deps/icu-small/source/common/unicode/ucharstrie.h b/deps/icu-small/source/common/unicode/ucharstrie.h -index b6f9e3e075..064244a74c 100644 ---- a/deps/icu-small/source/common/unicode/ucharstrie.h -+++ b/deps/icu-small/source/common/unicode/ucharstrie.h -@@ -409,7 +409,7 @@ private: - pos_(uchars_), remainingMatchLength_(-1) {} - - // No assignment operator. -- UCharsTrie &operator=(const UCharsTrie &other); -+ UCharsTrie &operator=(const UCharsTrie &other) = delete; - - inline void stop() { - pos_=NULL; -diff --git a/deps/icu-small/source/common/unicode/ucharstriebuilder.h b/deps/icu-small/source/common/unicode/ucharstriebuilder.h -index e0cb0acdc5..5c8aa33ffb 100644 ---- a/deps/icu-small/source/common/unicode/ucharstriebuilder.h -+++ b/deps/icu-small/source/common/unicode/ucharstriebuilder.h -@@ -133,8 +133,8 @@ public: - } - - private: -- UCharsTrieBuilder(const UCharsTrieBuilder &other); // no copy constructor -- UCharsTrieBuilder &operator=(const UCharsTrieBuilder &other); // no assignment operator -+ UCharsTrieBuilder(const UCharsTrieBuilder &other) = delete; // no copy constructor -+ UCharsTrieBuilder &operator=(const UCharsTrieBuilder &other) = delete; // no assignment operator - - void buildUChars(UStringTrieBuildOption buildOption, UErrorCode &errorCode); - -diff --git a/deps/icu-small/source/common/unicode/ucnv_cb.h b/deps/icu-small/source/common/unicode/ucnv_cb.h -index 41845d1bca..b4ef99208b 100644 ---- a/deps/icu-small/source/common/unicode/ucnv_cb.h -+++ b/deps/icu-small/source/common/unicode/ucnv_cb.h -@@ -15,8 +15,8 @@ - */ - - /** -- * \file -- * \brief C UConverter functions to aid the writers of callbacks -+ * \file -+ * \brief C API: UConverter functions to aid the writers of callbacks - * - *

Callback API for UConverter

- * -diff --git a/deps/icu-small/source/common/unicode/ucnv_err.h b/deps/icu-small/source/common/unicode/ucnv_err.h -index a13d01db09..c743e5614f 100644 ---- a/deps/icu-small/source/common/unicode/ucnv_err.h -+++ b/deps/icu-small/source/common/unicode/ucnv_err.h -@@ -12,7 +12,7 @@ - - /** - * \file -- * \brief C UConverter predefined error callbacks -+ * \brief C API: UConverter predefined error callbacks - * - *

Error Behaviour Functions

- * Defines some error behaviour functions called by ucnv_{from,to}Unicode -diff --git a/deps/icu-small/source/common/unicode/ucnvsel.h b/deps/icu-small/source/common/unicode/ucnvsel.h -index 3d7d3327f7..9373ec951b 100644 ---- a/deps/icu-small/source/common/unicode/ucnvsel.h -+++ b/deps/icu-small/source/common/unicode/ucnvsel.h -@@ -36,6 +36,7 @@ - - /** - * \file -+ * \brief C API: Encoding/charset encoding selector - * - * A converter selector is built with a set of encoding/charset names - * and given an input string returns the set of names of the -diff --git a/deps/icu-small/source/common/unicode/ucpmap.h b/deps/icu-small/source/common/unicode/ucpmap.h -index 31e1365cac..a740bd160f 100644 ---- a/deps/icu-small/source/common/unicode/ucpmap.h -+++ b/deps/icu-small/source/common/unicode/ucpmap.h -@@ -13,8 +13,7 @@ U_CDECL_BEGIN - - /** - * \file -- * -- * This file defines an abstract map from Unicode code points to integer values. -+ * \brief C API: This file defines an abstract map from Unicode code points to integer values. - * - * @see UCPMap - * @see UCPTrie -diff --git a/deps/icu-small/source/common/unicode/ucptrie.h b/deps/icu-small/source/common/unicode/ucptrie.h -index e2547ae2ee..dadef79c51 100644 ---- a/deps/icu-small/source/common/unicode/ucptrie.h -+++ b/deps/icu-small/source/common/unicode/ucptrie.h -@@ -19,8 +19,7 @@ U_CDECL_BEGIN - - /** - * \file -- * -- * This file defines an immutable Unicode code point trie. -+ * \brief C API: This file defines an immutable Unicode code point trie. - * - * @see UCPTrie - * @see UMutableCPTrie -diff --git a/deps/icu-small/source/common/unicode/uloc.h b/deps/icu-small/source/common/unicode/uloc.h -index b0bdbe1b87..21179c1b62 100644 ---- a/deps/icu-small/source/common/unicode/uloc.h -+++ b/deps/icu-small/source/common/unicode/uloc.h -@@ -26,9 +26,9 @@ - #include "unicode/utypes.h" - #include "unicode/uenum.h" - --/** -+/** - * \file -- * \brief C API: Locale -+ * \brief C API: Locale ID functionality similar to C++ class Locale - * - *

ULoc C API for Locale

- * A Locale represents a specific geographical, political, -diff --git a/deps/icu-small/source/common/unicode/umachine.h b/deps/icu-small/source/common/unicode/umachine.h -index 09c887c80e..6640606272 100644 ---- a/deps/icu-small/source/common/unicode/umachine.h -+++ b/deps/icu-small/source/common/unicode/umachine.h -@@ -282,14 +282,8 @@ typedef int8_t UBool; - */ - #ifdef U_DEFINE_FALSE_AND_TRUE - // Use the predefined value. --#elif defined(U_COMBINED_IMPLEMENTATION) || \ -- defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || \ -- defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || \ -- defined(U_TOOLUTIL_IMPLEMENTATION) -- // Inside ICU: Keep FALSE & TRUE available. --# define U_DEFINE_FALSE_AND_TRUE 1 - #else -- // Outside ICU: Avoid collision with non-macro definitions of FALSE & TRUE. -+ // Default to avoiding collision with non-macro definitions of FALSE & TRUE. - # define U_DEFINE_FALSE_AND_TRUE 0 - #endif - -diff --git a/deps/icu-small/source/common/unicode/umisc.h b/deps/icu-small/source/common/unicode/umisc.h -index 213290b9af..4e9dda7450 100644 ---- a/deps/icu-small/source/common/unicode/umisc.h -+++ b/deps/icu-small/source/common/unicode/umisc.h -@@ -21,9 +21,9 @@ - - /** - * \file -- * \brief C API:misc definitions -+ * \brief C API: Miscellaneous definitions - * -- * This file contains miscellaneous definitions for the C APIs. -+ * This file contains miscellaneous definitions for the C APIs. - */ - - U_CDECL_BEGIN -diff --git a/deps/icu-small/source/common/unicode/umutablecptrie.h b/deps/icu-small/source/common/unicode/umutablecptrie.h -index 3b950055da..d60fd61819 100644 ---- a/deps/icu-small/source/common/unicode/umutablecptrie.h -+++ b/deps/icu-small/source/common/unicode/umutablecptrie.h -@@ -21,8 +21,7 @@ U_CDECL_BEGIN - - /** - * \file -- * -- * This file defines a mutable Unicode code point trie. -+ * \brief C API: This file defines a mutable Unicode code point trie. - * - * @see UCPTrie - * @see UMutableCPTrie -diff --git a/deps/icu-small/source/common/unicode/uniset.h b/deps/icu-small/source/common/unicode/uniset.h -index 310c7c8d20..33e35c4def 100644 ---- a/deps/icu-small/source/common/unicode/uniset.h -+++ b/deps/icu-small/source/common/unicode/uniset.h -@@ -794,13 +794,11 @@ public: - */ - virtual UBool isEmpty(void) const; - --#ifndef U_HIDE_DRAFT_API - /** - * @return true if this set contains multi-character strings or the empty string. -- * @draft ICU 70 -+ * @stable ICU 70 - */ - UBool hasStrings() const; --#endif // U_HIDE_DRAFT_API - - /** - * Returns true if this set contains the given character. -@@ -1678,8 +1676,6 @@ private: - UnicodeString& rebuiltPat, - UErrorCode& ec); - -- static const UnicodeSet* getInclusions(int32_t src, UErrorCode &status); -- - /** - * A filter that returns true if the given code point should be - * included in the UnicodeSet being constructed. -@@ -1700,11 +1696,6 @@ private: - const UnicodeSet* inclusions, - UErrorCode &status); - -- // UCPMap is now stable ICU 63 -- void applyIntPropertyValue(const UCPMap *map, -- UCPMapValueFilter *filter, const void *context, -- UErrorCode &errorCode); -- - /** - * Set the new pattern to cache. - */ -diff --git a/deps/icu-small/source/common/unicode/urename.h b/deps/icu-small/source/common/unicode/urename.h -index d9f9b8f336..d3e23b8fa7 100644 ---- a/deps/icu-small/source/common/unicode/urename.h -+++ b/deps/icu-small/source/common/unicode/urename.h -@@ -925,6 +925,12 @@ - #define udatpg_setDateTimeFormatForStyle U_ICU_ENTRY_POINT_RENAME(udatpg_setDateTimeFormatForStyle) - #define udatpg_setDecimal U_ICU_ENTRY_POINT_RENAME(udatpg_setDecimal) - #define udict_swap U_ICU_ENTRY_POINT_RENAME(udict_swap) -+#define udispopt_fromGrammaticalCaseIdentifier U_ICU_ENTRY_POINT_RENAME(udispopt_fromGrammaticalCaseIdentifier) -+#define udispopt_fromNounClassIdentifier U_ICU_ENTRY_POINT_RENAME(udispopt_fromNounClassIdentifier) -+#define udispopt_fromPluralCategoryIdentifier U_ICU_ENTRY_POINT_RENAME(udispopt_fromPluralCategoryIdentifier) -+#define udispopt_getGrammaticalCaseIdentifier U_ICU_ENTRY_POINT_RENAME(udispopt_getGrammaticalCaseIdentifier) -+#define udispopt_getNounClassIdentifier U_ICU_ENTRY_POINT_RENAME(udispopt_getNounClassIdentifier) -+#define udispopt_getPluralCategoryIdentifier U_ICU_ENTRY_POINT_RENAME(udispopt_getPluralCategoryIdentifier) - #define udtitvfmt_close U_ICU_ENTRY_POINT_RENAME(udtitvfmt_close) - #define udtitvfmt_closeResult U_ICU_ENTRY_POINT_RENAME(udtitvfmt_closeResult) - #define udtitvfmt_format U_ICU_ENTRY_POINT_RENAME(udtitvfmt_format) -@@ -1247,6 +1253,7 @@ - #define unum_getLocaleByType U_ICU_ENTRY_POINT_RENAME(unum_getLocaleByType) - #define unum_getSymbol U_ICU_ENTRY_POINT_RENAME(unum_getSymbol) - #define unum_getTextAttribute U_ICU_ENTRY_POINT_RENAME(unum_getTextAttribute) -+#define unum_hasAttribute U_ICU_ENTRY_POINT_RENAME(unum_hasAttribute) - #define unum_open U_ICU_ENTRY_POINT_RENAME(unum_open) - #define unum_parse U_ICU_ENTRY_POINT_RENAME(unum_parse) - #define unum_parseDecimal U_ICU_ENTRY_POINT_RENAME(unum_parseDecimal) -diff --git a/deps/icu-small/source/common/unicode/uscript.h b/deps/icu-small/source/common/unicode/uscript.h -index 6cb1532808..dc97ab2ba5 100644 ---- a/deps/icu-small/source/common/unicode/uscript.h -+++ b/deps/icu-small/source/common/unicode/uscript.h -@@ -495,6 +495,11 @@ typedef enum UScriptCode { - /** @stable ICU 70 */ - USCRIPT_VITHKUQI = 197,/* Vith */ - -+ /** @stable ICU 72 */ -+ USCRIPT_KAWI = 198,/* Kawi */ -+ /** @stable ICU 72 */ -+ USCRIPT_NAG_MUNDARI = 199,/* Nagm */ -+ - #ifndef U_HIDE_DEPRECATED_API - /** - * One more than the highest normal UScriptCode value. -@@ -502,7 +507,7 @@ typedef enum UScriptCode { - * - * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. - */ -- USCRIPT_CODE_LIMIT = 198 -+ USCRIPT_CODE_LIMIT = 200 - #endif // U_HIDE_DEPRECATED_API - } UScriptCode; - -diff --git a/deps/icu-small/source/common/unicode/uset.h b/deps/icu-small/source/common/unicode/uset.h -index 33332f2d36..5dd890e148 100644 ---- a/deps/icu-small/source/common/unicode/uset.h -+++ b/deps/icu-small/source/common/unicode/uset.h -@@ -850,15 +850,13 @@ uset_removeAllStrings(USet* set); - U_CAPI UBool U_EXPORT2 - uset_isEmpty(const USet* set); - --#ifndef U_HIDE_DRAFT_API - /** - * @param set the set - * @return true if this set contains multi-character strings or the empty string. -- * @draft ICU 70 -+ * @stable ICU 70 - */ - U_CAPI UBool U_EXPORT2 - uset_hasStrings(const USet *set); --#endif // U_HIDE_DRAFT_API - - /** - * Returns true if the given USet contains the given character. -@@ -941,18 +939,16 @@ uset_charAt(const USet* set, int32_t charIndex); - U_CAPI int32_t U_EXPORT2 - uset_size(const USet* set); - --#ifndef U_HIDE_DRAFT_API - /** - * @param set the set - * @return the number of ranges in this set. -- * @draft ICU 70 -+ * @stable ICU 70 - * @see uset_getItemCount - * @see uset_getItem - * @see uset_size - */ - U_CAPI int32_t U_EXPORT2 - uset_getRangeCount(const USet *set); --#endif // U_HIDE_DRAFT_API - - /** - * Returns the number of items in this set. An item is either a range -diff --git a/deps/icu-small/source/common/unicode/usetiter.h b/deps/icu-small/source/common/unicode/usetiter.h -index 5834c308e4..34992d94b7 100644 ---- a/deps/icu-small/source/common/unicode/usetiter.h -+++ b/deps/icu-small/source/common/unicode/usetiter.h -@@ -164,14 +164,13 @@ class U_COMMON_API UnicodeSetIterator U_FINAL : public UObject { - */ - const UnicodeString& getString(); - --#ifndef U_HIDE_DRAFT_API - /** - * Skips over the remaining code points/ranges, if any. - * A following call to next() or nextRange() will yield a string, if there is one. - * No-op if next() would return false, or if it would yield a string anyway. - * - * @return *this -- * @draft ICU 70 -+ * @stable ICU 70 - * @see UnicodeSet#strings() - */ - inline UnicodeSetIterator &skipToStrings() { -@@ -181,7 +180,6 @@ class U_COMMON_API UnicodeSetIterator U_FINAL : public UObject { - nextElement = 0; - return *this; - } --#endif // U_HIDE_DRAFT_API - - /** - * Advances the iteration position to the next element in the set, -diff --git a/deps/icu-small/source/common/unicode/utf_old.h b/deps/icu-small/source/common/unicode/utf_old.h -index 160f5ad0a9..6b868c7280 100644 ---- a/deps/icu-small/source/common/unicode/utf_old.h -+++ b/deps/icu-small/source/common/unicode/utf_old.h -@@ -293,10 +293,10 @@ typedef int32_t UTextOffset; - #ifdef U_UTF8_IMPL - // No forward declaration if compiling utf_impl.cpp, which defines utf8_countTrailBytes. - #elif defined(U_STATIC_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) --U_CFUNC const uint8_t utf8_countTrailBytes[]; -+U_CAPI const uint8_t utf8_countTrailBytes[]; - #else --U_CFUNC U_IMPORT const uint8_t utf8_countTrailBytes[]; /* U_IMPORT2? */ /*U_IMPORT*/ --#endif -+U_CFUNC U_IMPORT const uint8_t utf8_countTrailBytes[]; -+#endif - - /** - * Count the trail bytes for a UTF-8 lead byte. -diff --git a/deps/icu-small/source/common/unicode/uvernum.h b/deps/icu-small/source/common/unicode/uvernum.h -index 2706e0b060..a93f3509ef 100644 ---- a/deps/icu-small/source/common/unicode/uvernum.h -+++ b/deps/icu-small/source/common/unicode/uvernum.h -@@ -31,19 +31,12 @@ - * renaming macro, and copyright - * - * The following files need to be updated as well, which can be done -- * by running the UNIX makefile target 'update-windows-makefiles' in icu/source. -+ * by running the UNIX makefile target 'update-windows-makefiles' in icu4c/source. - * -- * -- * source/common/common_uwp.vcxproj -- * source/common/common.vcxproj - update 'Output file name' on the link tab so -- * that it contains the new major/minor combination -- * source/i18n/i18n.vcxproj - same as for the common.vcxproj -- * source/i18n/i18n_uwp.vcxproj - same as for the common_uwp.vcxproj -- * source/layoutex/layoutex.vcproj - same -- * source/stubdata/stubdata.vcproj - same as for the common.vcxproj -- * source/io/io.vcproj - same as for the common.vcxproj -+ * source/allinone/Build.Windows.IcuVersion.props - Update the IcuMajorVersion - * source/data/makedata.mak - change U_ICUDATA_NAME so that it contains -- * the new major/minor combination and the Unicode version. -+ * the new major/minor combination, and UNICODE_VERSION -+ * for the Unicode version. - */ - - #ifndef UVERNUM_H -@@ -60,7 +53,7 @@ - * This value will change in the subsequent releases of ICU - * @stable ICU 2.4 - */ --#define U_ICU_VERSION_MAJOR_NUM 71 -+#define U_ICU_VERSION_MAJOR_NUM 72 - - /** The current ICU minor version as an integer. - * This value will change in the subsequent releases of ICU -@@ -86,7 +79,7 @@ - * This value will change in the subsequent releases of ICU - * @stable ICU 2.6 - */ --#define U_ICU_VERSION_SUFFIX _71 -+#define U_ICU_VERSION_SUFFIX _72 - - /** - * \def U_DEF2_ICU_ENTRY_POINT_RENAME -@@ -139,7 +132,7 @@ - * This value will change in the subsequent releases of ICU - * @stable ICU 2.4 - */ --#define U_ICU_VERSION "71.1" -+#define U_ICU_VERSION "72.1" - - /** - * The current ICU library major version number as a string, for library name suffixes. -@@ -152,13 +145,13 @@ - * - * @stable ICU 2.6 - */ --#define U_ICU_VERSION_SHORT "71" -+#define U_ICU_VERSION_SHORT "72" - - #ifndef U_HIDE_INTERNAL_API - /** Data version in ICU4C. - * @internal ICU 4.4 Internal Use Only - **/ --#define U_ICU_DATA_VERSION "71.1" -+#define U_ICU_DATA_VERSION "72.1" - #endif /* U_HIDE_INTERNAL_API */ - - /*=========================================================================== -diff --git a/deps/icu-small/source/common/unifiedcache.cpp b/deps/icu-small/source/common/unifiedcache.cpp -index 493ab79f6d..cfb000b2c8 100644 ---- a/deps/icu-small/source/common/unifiedcache.cpp -+++ b/deps/icu-small/source/common/unifiedcache.cpp -@@ -22,7 +22,7 @@ - static icu::UnifiedCache *gCache = NULL; - static std::mutex *gCacheMutex = nullptr; - static std::condition_variable *gInProgressValueAddedCond; --static icu::UInitOnce gCacheInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCacheInitOnce {}; - - static const int32_t MAX_EVICT_ITERATIONS = 10; - static const int32_t DEFAULT_MAX_UNUSED = 1000; -@@ -38,27 +38,27 @@ static UBool U_CALLCONV unifiedcache_cleanup() { - gCacheMutex = nullptr; - gInProgressValueAddedCond->~condition_variable(); - gInProgressValueAddedCond = nullptr; -- return TRUE; -+ return true; - } - U_CDECL_END - - - U_NAMESPACE_BEGIN - --U_CAPI int32_t U_EXPORT2 -+int32_t U_EXPORT2 - ucache_hashKeys(const UHashTok key) { - const CacheKeyBase *ckey = (const CacheKeyBase *) key.pointer; - return ckey->hashCode(); - } - --U_CAPI UBool U_EXPORT2 -+UBool U_EXPORT2 - ucache_compareKeys(const UHashTok key1, const UHashTok key2) { - const CacheKeyBase *p1 = (const CacheKeyBase *) key1.pointer; - const CacheKeyBase *p2 = (const CacheKeyBase *) key2.pointer; - return *p1 == *p2; - } - --U_CAPI void U_EXPORT2 -+void U_EXPORT2 - ucache_deleteKey(void *obj) { - CacheKeyBase *p = (CacheKeyBase *) obj; - delete p; -@@ -161,7 +161,7 @@ void UnifiedCache::flush() const { - // Use a loop in case cache items that are flushed held hard references to - // other cache items making those additional cache items eligible for - // flushing. -- while (_flush(FALSE)); -+ while (_flush(false)); - } - - void UnifiedCache::handleUnreferencedObject() const { -@@ -225,7 +225,7 @@ UnifiedCache::~UnifiedCache() { - // each other and entries with hard references from outside the cache. - // Nothing we can do about these so proceed to wipe out the cache. - std::lock_guard lock(*gCacheMutex); -- _flush(TRUE); -+ _flush(true); - } - uhash_close(fHashtable); - fHashtable = nullptr; -@@ -244,7 +244,7 @@ UnifiedCache::_nextElement() const { - } - - UBool UnifiedCache::_flush(UBool all) const { -- UBool result = FALSE; -+ UBool result = false; - int32_t origSize = uhash_count(fHashtable); - for (int32_t i = 0; i < origSize; ++i) { - const UHashElement *element = _nextElement(); -@@ -257,7 +257,7 @@ UBool UnifiedCache::_flush(UBool all) const { - U_ASSERT(sharedObject->cachePtr == this); - uhash_removeElement(fHashtable, element); - removeSoftRef(sharedObject); // Deletes the sharedObject when softRefCount goes to zero. -- result = TRUE; -+ result = true; - } - } - return result; -@@ -365,14 +365,14 @@ UBool UnifiedCache::_poll( - // fetch out the contents and return them. - if (element != NULL) { - _fetch(element, value, status); -- return TRUE; -+ return true; - } - - // The hash table contained nothing for this key. - // Insert an inProgress place holder value. - // Our caller will create the final value and update the hash table. - _putNew(key, fNoValue, U_ZERO_ERROR, status); -- return FALSE; -+ return false; - } - - void UnifiedCache::_get( -@@ -471,7 +471,7 @@ UBool UnifiedCache::_isEvictable(const UHashElement *element) const - - // Entries that are under construction are never evictable - if (_inProgress(theValue, theKey->fCreationStatus)) { -- return FALSE; -+ return false; - } - - // We can evict entries that are either not a primary or have just -diff --git a/deps/icu-small/source/common/unifiedcache.h b/deps/icu-small/source/common/unifiedcache.h -index 07a734b8bd..4b9222124a 100644 ---- a/deps/icu-small/source/common/unifiedcache.h -+++ b/deps/icu-small/source/common/unifiedcache.h -@@ -354,8 +354,8 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { - mutable int64_t fAutoEvictedCount; - SharedObject *fNoValue; - -- UnifiedCache(const UnifiedCache &other); -- UnifiedCache &operator=(const UnifiedCache &other); -+ UnifiedCache(const UnifiedCache &other) = delete; -+ UnifiedCache &operator=(const UnifiedCache &other) = delete; - - /** - * Flushes the contents of the cache. If cache values hold references to other -diff --git a/deps/icu-small/source/common/uniset.cpp b/deps/icu-small/source/common/uniset.cpp -index 92a81a1a02..4faace525c 100644 ---- a/deps/icu-small/source/common/uniset.cpp -+++ b/deps/icu-small/source/common/uniset.cpp -@@ -82,7 +82,7 @@ static int32_t _dbgCount = 0; - - static inline void _dbgct(UnicodeSet* set) { - UnicodeString str; -- set->toPattern(str, TRUE); -+ set->toPattern(str, true); - char buf[40]; - str.extract(0, 39, buf, ""); - printf("DEBUG UnicodeSet: ct 0x%08X; %d %s\n", set, ++_dbgCount, buf); -@@ -90,7 +90,7 @@ static inline void _dbgct(UnicodeSet* set) { - - static inline void _dbgdt(UnicodeSet* set) { - UnicodeString str; -- set->toPattern(str, TRUE); -+ set->toPattern(str, true); - char buf[40]; - str.extract(0, 39, buf, ""); - printf("DEBUG UnicodeSet: dt 0x%08X; %d %s\n", set, --_dbgCount, buf); -@@ -204,7 +204,7 @@ UnicodeSet::~UnicodeSet() { - * Assigns this object to be a copy of another. - */ - UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) { -- return copyFrom(o, FALSE); -+ return copyFrom(o, false); - } - - UnicodeSet& UnicodeSet::copyFrom(const UnicodeSet& o, UBool asThawed) { -@@ -265,7 +265,7 @@ UnicodeSet* UnicodeSet::clone() const { - } - - UnicodeSet *UnicodeSet::cloneAsThawed() const { -- return new UnicodeSet(*this, TRUE); -+ return new UnicodeSet(*this, true); - } - - /** -@@ -352,7 +352,7 @@ UBool UnicodeSet::contains(UChar32 c) const { - return stringSpan->contains(c); - } - if (c >= UNICODESET_HIGH) { // Don't need to check LOW bound -- return FALSE; -+ return false; - } - int32_t i = findCodePoint(c); - return (UBool)(i & 1); // return true if odd -@@ -447,7 +447,7 @@ UBool UnicodeSet::containsAll(const UnicodeSet& c) const { - int32_t n = c.getRangeCount(); - for (int i=0; icontainsAll(*c.strings)); -@@ -493,7 +493,7 @@ UBool UnicodeSet::containsNone(const UnicodeSet& c) const { - int32_t n = c.getRangeCount(); - for (int32_t i=0; icontainsNone(*c.strings); -@@ -531,10 +531,10 @@ UBool UnicodeSet::matchesIndexValue(uint8_t v) const { - UChar32 high = getRangeEnd(i); - if ((low & ~0xFF) == (high & ~0xFF)) { - if ((low & 0xFF) <= v && v <= (high & 0xFF)) { -- return TRUE; -+ return true; - } - } else if ((low & 0xFF) <= v || v <= (high & 0xFF)) { -- return TRUE; -+ return true; - } - } - if (hasStrings()) { -@@ -545,11 +545,11 @@ UBool UnicodeSet::matchesIndexValue(uint8_t v) const { - } - UChar32 c = s.char32At(0); - if ((c & 0xFF) == v) { -- return TRUE; -+ return true; - } - } - } -- return FALSE; -+ return false; - } - - /** -@@ -1603,24 +1603,24 @@ int32_t UnicodeSet::serialize(uint16_t *dest, int32_t destCapacity, UErrorCode& - //---------------------------------------------------------------- - - /** -- * Allocate our strings vector and return TRUE if successful. -+ * Allocate our strings vector and return true if successful. - */ - UBool UnicodeSet::allocateStrings(UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - strings = new UVector(uprv_deleteUObject, - uhash_compareUnicodeString, 1, status); - if (strings == NULL) { // Check for memory allocation error. - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - if (U_FAILURE(status)) { - delete strings; - strings = NULL; -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - int32_t UnicodeSet::nextCapacity(int32_t minCapacity) { -diff --git a/deps/icu-small/source/common/uniset_closure.cpp b/deps/icu-small/source/common/uniset_closure.cpp -index 882231ba1a..d7dab2a17b 100644 ---- a/deps/icu-small/source/common/uniset_closure.cpp -+++ b/deps/icu-small/source/common/uniset_closure.cpp -@@ -74,7 +74,7 @@ UnicodeSet& UnicodeSet::applyPattern(const UnicodeString& pattern, - - if (options & USET_IGNORE_SPACE) { - // Skip over trailing whitespace -- ICU_Utility::skipWhitespace(pattern, i, TRUE); -+ ICU_Utility::skipWhitespace(pattern, i, true); - } - - if (i != pattern.length()) { -@@ -141,7 +141,7 @@ addCaseMapping(UnicodeSet &set, int32_t result, const UChar *full, UnicodeString - set.add(result); - } else { - // add a string case mapping from full with length result -- str.setTo((UBool)FALSE, full, result); -+ str.setTo((UBool)false, full, result); - set.add(str); - } - } -diff --git a/deps/icu-small/source/common/uniset_props.cpp b/deps/icu-small/source/common/uniset_props.cpp -index 49d6caabc7..48c0a26a71 100644 ---- a/deps/icu-small/source/common/uniset_props.cpp -+++ b/deps/icu-small/source/common/uniset_props.cpp -@@ -62,7 +62,7 @@ U_CDECL_BEGIN - static UBool U_CALLCONV uset_cleanup(); - - static UnicodeSet *uni32Singleton; --static icu::UInitOnce uni32InitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce uni32InitOnce {}; - - /** - * Cleanup function for UnicodeSet -@@ -71,7 +71,7 @@ static UBool U_CALLCONV uset_cleanup(void) { - delete uni32Singleton; - uni32Singleton = NULL; - uni32InitOnce.reset(); -- return TRUE; -+ return true; - } - - U_CDECL_END -@@ -170,7 +170,7 @@ UnicodeSet& UnicodeSet::applyPattern(const UnicodeString& pattern, - - int32_t i = pos.getIndex(); - // Skip over trailing whitespace -- ICU_Utility::skipWhitespace(pattern, i, TRUE); -+ ICU_Utility::skipWhitespace(pattern, i, true); - if (i != pattern.length()) { - status = U_ILLEGAL_ARGUMENT_ERROR; - } -@@ -279,7 +279,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - } - - UnicodeString patLocal, buf; -- UBool usePat = FALSE; -+ UBool usePat = false; - UnicodeSetPointer scratch; - RuleCharacterIterator::Pos backup; - -@@ -289,7 +289,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - UChar32 lastChar = 0; - UChar op = 0; - -- UBool invert = FALSE; -+ UBool invert = false; - - clear(); - -@@ -299,7 +299,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - (lastItem == 2 && (op == 0 || op == u'-' || op == u'&'))); - - UChar32 c = 0; -- UBool literal = FALSE; -+ UBool literal = false; - UnicodeSet* nested = 0; // alias - do not delete - - // -------- Check for property pattern -@@ -336,7 +336,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - c = chars.next(opts, literal, ec); - if (U_FAILURE(ec)) return; - if (c == u'^' && !literal) { -- invert = TRUE; -+ invert = true; - patLocal.append(u'^'); - chars.getPos(backup); // prepare to backup - c = chars.next(opts, literal, ec); -@@ -345,7 +345,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - // Fall through to handle special leading '-'; - // otherwise restart loop for nested [], \p{}, etc. - if (c == u'-') { -- literal = TRUE; -+ literal = true; - // Fall through to handle literal '-' below - } else { - chars.setPos(backup); // backup -@@ -381,7 +381,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - return; - } - add(lastChar, lastChar); -- _appendToPat(patLocal, lastChar, FALSE); -+ _appendToPat(patLocal, lastChar, false); - lastItem = 0; - op = 0; - } -@@ -408,11 +408,11 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - if (U_FAILURE(ec)) return; - break; - case 3: // `nested' already parsed -- nested->_toPattern(patLocal, FALSE); -+ nested->_toPattern(patLocal, false); - break; - } - -- usePat = TRUE; -+ usePat = true; - - if (mode == 0) { - // Entire pattern is a category; leave parse loop -@@ -454,7 +454,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - case u']': - if (lastItem == 1) { - add(lastChar, lastChar); -- _appendToPat(patLocal, lastChar, FALSE); -+ _appendToPat(patLocal, lastChar, false); - } - // Treat final trailing '-' as a literal - if (op == u'-') { -@@ -508,17 +508,17 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - } - if (lastItem == 1) { - add(lastChar, lastChar); -- _appendToPat(patLocal, lastChar, FALSE); -+ _appendToPat(patLocal, lastChar, false); - } - lastItem = 0; - buf.truncate(0); - { -- UBool ok = FALSE; -+ UBool ok = false; - while (!chars.atEnd()) { - c = chars.next(opts, literal, ec); - if (U_FAILURE(ec)) return; - if (c == u'}' && !literal) { -- ok = TRUE; -+ ok = true; - break; - } - buf.append(c); -@@ -534,7 +534,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - // processing - add(buf); - patLocal.append(u'{'); -- _appendToPat(patLocal, buf, FALSE); -+ _appendToPat(patLocal, buf, false); - patLocal.append(u'}'); - continue; - case SymbolTable::SYMBOL_REF: -@@ -557,10 +557,10 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - if (anchor && op == 0) { - if (lastItem == 1) { - add(lastChar, lastChar); -- _appendToPat(patLocal, lastChar, FALSE); -+ _appendToPat(patLocal, lastChar, false); - } - add(U_ETHER); -- usePat = TRUE; -+ usePat = true; - patLocal.append((UChar) SymbolTable::SYMBOL_REF); - patLocal.append(u']'); - mode = 2; -@@ -594,14 +594,14 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - return; - } - add(lastChar, c); -- _appendToPat(patLocal, lastChar, FALSE); -+ _appendToPat(patLocal, lastChar, false); - patLocal.append(op); -- _appendToPat(patLocal, c, FALSE); -+ _appendToPat(patLocal, c, false); - lastItem = 0; - op = 0; - } else { - add(lastChar, lastChar); -- _appendToPat(patLocal, lastChar, FALSE); -+ _appendToPat(patLocal, lastChar, false); - lastChar = c; - } - break; -@@ -646,7 +646,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, - if (usePat) { - rebuiltPat.append(patLocal); - } else { -- _generatePattern(rebuiltPat, FALSE); -+ _generatePattern(rebuiltPat, false); - } - if (isBogus() && U_SUCCESS(ec)) { - // We likely ran out of memory. AHHH! -@@ -756,12 +756,12 @@ static UBool mungeCharName(char* dst, const char* src, int32_t dstCapacity) { - if (ch == ' ' && (j==0 || (j>0 && dst[j-1]==' '))) { - continue; - } -- if (j >= dstCapacity) return FALSE; -+ if (j >= dstCapacity) return false; - dst[j++] = ch; - } - if (j > 0 && dst[j-1] == ' ') --j; - dst[j] = 0; -- return TRUE; -+ return true; - } - - } // namespace -@@ -789,7 +789,7 @@ UnicodeSet::applyIntPropertyValue(UProperty prop, int32_t value, UErrorCode& ec) - if (value == 0 || value == 1) { - const USet *set = u_getBinaryPropertySet(prop, &ec); - if (U_FAILURE(ec)) { return *this; } -- copyFrom(*UnicodeSet::fromUSet(set), TRUE); -+ copyFrom(*UnicodeSet::fromUSet(set), true); - if (value == 0) { - complement().removeAllStrings(); // code point complement - } -@@ -830,7 +830,7 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop, - - UProperty p; - int32_t v; -- UBool invert = FALSE; -+ UBool invert = false; - - if (value.length() > 0) { - p = u_getPropertyEnum(pname.data()); -@@ -948,7 +948,7 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop, - // [:Assigned:]=[:^Cn:] - p = UCHAR_GENERAL_CATEGORY_MASK; - v = U_GC_CN_MASK; -- invert = TRUE; -+ invert = true; - } else { - FAIL(ec); - } -@@ -980,7 +980,7 @@ UBool UnicodeSet::resemblesPropertyPattern(const UnicodeString& pattern, - int32_t pos) { - // Patterns are at least 5 characters long - if ((pos+5) > pattern.length()) { -- return FALSE; -+ return false; - } - - // Look for an opening [:, [:^, \p, or \P -@@ -997,8 +997,8 @@ UBool UnicodeSet::resemblesPropertyPattern(const UnicodeString& pattern, - */ - UBool UnicodeSet::resemblesPropertyPattern(RuleCharacterIterator& chars, - int32_t iterOpts) { -- // NOTE: literal will always be FALSE, because we don't parse escapes. -- UBool result = FALSE, literal; -+ // NOTE: literal will always be false, because we don't parse escapes. -+ UBool result = false, literal; - UErrorCode ec = U_ZERO_ERROR; - iterOpts &= ~RuleCharacterIterator::PARSE_ESCAPES; - RuleCharacterIterator::Pos pos; -@@ -1022,9 +1022,9 @@ UnicodeSet& UnicodeSet::applyPropertyPattern(const UnicodeString& pattern, - UErrorCode &ec) { - int32_t pos = ppos.getIndex(); - -- UBool posix = FALSE; // true for [:pat:], false for \p{pat} \P{pat} \N{pat} -- UBool isName = FALSE; // true for \N{pat}, o/w false -- UBool invert = FALSE; -+ UBool posix = false; // true for [:pat:], false for \p{pat} \P{pat} \N{pat} -+ UBool isName = false; // true for \N{pat}, o/w false -+ UBool invert = false; - - if (U_FAILURE(ec)) return *this; - -@@ -1036,12 +1036,12 @@ UnicodeSet& UnicodeSet::applyPropertyPattern(const UnicodeString& pattern, - // On entry, ppos should point to one of the following locations: - // Look for an opening [:, [:^, \p, or \P - if (isPOSIXOpen(pattern, pos)) { -- posix = TRUE; -+ posix = true; - pos += 2; - pos = ICU_Utility::skipWhitespace(pattern, pos); - if (pos < pattern.length() && pattern.charAt(pos) == u'^') { - ++pos; -- invert = TRUE; -+ invert = true; - } - } else if (isPerlOpen(pattern, pos) || isNameOpen(pattern, pos)) { - UChar c = pattern.charAt(pos+1); -diff --git a/deps/icu-small/source/common/unisetspan.cpp b/deps/icu-small/source/common/unisetspan.cpp -index fe0d74f5b2..e4277c5be6 100644 ---- a/deps/icu-small/source/common/unisetspan.cpp -+++ b/deps/icu-small/source/common/unisetspan.cpp -@@ -98,7 +98,7 @@ public: - i-=capacity; - } - if(list[i]) { -- list[i]=FALSE; -+ list[i]=false; - --length; - } - start=i; -@@ -111,7 +111,7 @@ public: - if(i>=capacity) { - i-=capacity; - } -- list[i]=TRUE; -+ list[i]=true; - ++length; - } - -@@ -132,7 +132,7 @@ public: - int32_t i=start, result; - while(++imaxLength16) { - maxLength16=length16; -@@ -284,7 +284,7 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSet &set, - } else { - utf8Lengths=(int32_t *)uprv_malloc(allocSize); - if(utf8Lengths==NULL) { -- maxLength16=maxLength8=0; // Prevent usage by making needsStringSpanUTF16/8() return FALSE. -+ maxLength16=maxLength8=0; // Prevent usage by making needsStringSpanUTF16/8() return false. - return; // Out of memory. - } - } -@@ -399,7 +399,7 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSetStringSpan &otherStri - utf8Lengths(NULL), spanLengths(NULL), utf8(NULL), - utf8Length(otherStringSpan.utf8Length), - maxLength16(otherStringSpan.maxLength16), maxLength8(otherStringSpan.maxLength8), -- all(TRUE) { -+ all(true) { - if(otherStringSpan.pSpanNotSet==&otherStringSpan.spanSet) { - pSpanNotSet=&spanSet; - } else { -@@ -415,7 +415,7 @@ UnicodeSetStringSpan::UnicodeSetStringSpan(const UnicodeSetStringSpan &otherStri - } else { - utf8Lengths=(int32_t *)uprv_malloc(allocSize); - if(utf8Lengths==NULL) { -- maxLength16=maxLength8=0; // Prevent usage by making needsStringSpanUTF16/8() return FALSE. -+ maxLength16=maxLength8=0; // Prevent usage by making needsStringSpanUTF16/8() return false. - return; // Out of memory. - } - } -@@ -454,20 +454,20 @@ static inline UBool - matches16(const UChar *s, const UChar *t, int32_t length) { - do { - if(*s++!=*t++) { -- return FALSE; -+ return false; - } - } while(--length>0); -- return TRUE; -+ return true; - } - - static inline UBool - matches8(const uint8_t *s, const uint8_t *t, int32_t length) { - do { - if(*s++!=*t++) { -- return FALSE; -+ return false; - } - } while(--length>0); -- return TRUE; -+ return true; - } - - // Compare 16-bit Unicode strings (which may be malformed UTF-16) -diff --git a/deps/icu-small/source/common/unistr.cpp b/deps/icu-small/source/common/unistr.cpp -index c18665928d..4125d19472 100644 ---- a/deps/icu-small/source/common/unistr.cpp -+++ b/deps/icu-small/source/common/unistr.cpp -@@ -197,7 +197,7 @@ UnicodeString::UnicodeString(UChar ch) { - UnicodeString::UnicodeString(UChar32 ch) { - fUnion.fFields.fLengthAndFlags = kShortString; - int32_t i = 0; -- UBool isError = FALSE; -+ UBool isError = false; - U16_APPEND(fUnion.fStackFields.fBuffer, i, US_STACKBUF_SIZE, ch, isError); - // We test isError so that the compiler does not complain that we don't. - // If isError then i==0 which is what we want anyway. -@@ -270,7 +270,7 @@ UnicodeString::UnicodeString(const char *src, int32_t length, EInvariant) { - if(length<0) { - length=(int32_t)uprv_strlen(src); - } -- if(cloneArrayIfNeeded(length, length, FALSE)) { -+ if(cloneArrayIfNeeded(length, length, false)) { - u_charsToUChars(src, getArrayStart(), length); - setLength(length); - } else { -@@ -309,7 +309,7 @@ UnicodeString::UnicodeString(const UnicodeString& that) { - } - - UnicodeString::UnicodeString(UnicodeString &&src) U_NOEXCEPT { -- copyFieldsFrom(src, TRUE); -+ copyFieldsFrom(src, true); - } - - UnicodeString::UnicodeString(const UnicodeString& that, -@@ -370,7 +370,7 @@ UBool - UnicodeString::allocate(int32_t capacity) { - if(capacity <= US_STACKBUF_SIZE) { - fUnion.fFields.fLengthAndFlags = kShortString; -- return TRUE; -+ return true; - } - if(capacity <= kMaxCapacity) { - ++capacity; // for the NUL -@@ -389,13 +389,13 @@ UnicodeString::allocate(int32_t capacity) { - fUnion.fFields.fArray = (UChar *)array; - fUnion.fFields.fCapacity = (int32_t)(numBytes / U_SIZEOF_UCHAR); - fUnion.fFields.fLengthAndFlags = kLongString; -- return TRUE; -+ return true; - } - } - fUnion.fFields.fLengthAndFlags = kIsBogus; - fUnion.fFields.fArray = 0; - fUnion.fFields.fCapacity = 0; -- return FALSE; -+ return false; - } - - //======================================== -@@ -476,7 +476,7 @@ UnicodeString UnicodeString::fromUTF32(const UChar32 *utf32, int32_t length) { - result.setToBogus(); - } - break; -- } while(TRUE); -+ } while(true); - return result; - } - -@@ -491,7 +491,7 @@ UnicodeString::operator=(const UnicodeString &src) { - - UnicodeString & - UnicodeString::fastCopyFrom(const UnicodeString &src) { -- return copyFrom(src, TRUE); -+ return copyFrom(src, true); - } - - UnicodeString & -@@ -576,7 +576,7 @@ UnicodeString &UnicodeString::operator=(UnicodeString &&src) U_NOEXCEPT { - // No explicit check for self move assignment, consistent with standard library. - // Self move assignment causes no crash nor leak but might make the object bogus. - releaseArray(); -- copyFieldsFrom(src, TRUE); -+ copyFieldsFrom(src, true); - return *this; - } - -@@ -610,9 +610,9 @@ void UnicodeString::copyFieldsFrom(UnicodeString &src, UBool setSrcToBogus) U_NO - void UnicodeString::swap(UnicodeString &other) U_NOEXCEPT { - UnicodeString temp; // Empty short string: Known not to need releaseArray(). - // Copy fields without resetting source values in between. -- temp.copyFieldsFrom(*this, FALSE); -- this->copyFieldsFrom(other, FALSE); -- other.copyFieldsFrom(temp, FALSE); -+ temp.copyFieldsFrom(*this, false); -+ this->copyFieldsFrom(other, false); -+ other.copyFieldsFrom(temp, false); - // Set temp to an empty string so that other's memory is not released twice. - temp.fUnion.fFields.fLengthAndFlags = kShortString; - } -@@ -761,7 +761,7 @@ UnicodeString::doCompareCodePointOrder(int32_t start, - srcStart = srcLength = 0; - } - -- int32_t diff = uprv_strCompare(getArrayStart() + start, length, (srcChars!=NULL)?(srcChars + srcStart):NULL, srcLength, FALSE, TRUE); -+ int32_t diff = uprv_strCompare(getArrayStart() + start, length, (srcChars!=NULL)?(srcChars + srcStart):NULL, srcLength, false, true); - /* translate the 32-bit result into an 8-bit one */ - if(diff!=0) { - return (int8_t)(diff >> 15 | 1); -@@ -921,7 +921,7 @@ UnicodeString::tempSubString(int32_t start, int32_t len) const { - array=fUnion.fStackFields.fBuffer; // anything not NULL because that would make an empty string - len=-2; // bogus result string - } -- return UnicodeString(FALSE, array + start, len); -+ return UnicodeString(false, array + start, len); - } - - int32_t -@@ -972,7 +972,7 @@ UnicodeString::toUTF8(ByteSink &sink) const { - if(length16 != 0) { - char stackBuffer[1024]; - int32_t capacity = (int32_t)sizeof(stackBuffer); -- UBool utf8IsOwned = FALSE; -+ UBool utf8IsOwned = false; - char *utf8 = sink.GetAppendBuffer(length16 < capacity ? length16 : capacity, - 3*length16, - stackBuffer, capacity, -@@ -987,7 +987,7 @@ UnicodeString::toUTF8(ByteSink &sink) const { - if(errorCode == U_BUFFER_OVERFLOW_ERROR) { - utf8 = (char *)uprv_malloc(length8); - if(utf8 != NULL) { -- utf8IsOwned = TRUE; -+ utf8IsOwned = true; - errorCode = U_ZERO_ERROR; - u_strToUTF8WithSub(utf8, length8, &length8, - getBuffer(), length16, -@@ -1225,7 +1225,7 @@ UnicodeString::getTerminatedBuffer() { - if(len < getCapacity()) { - if(fUnion.fFields.fLengthAndFlags & kBufferIsReadonly) { - // If len US_STACKBUF_SIZE)) { -@@ -1497,7 +1497,7 @@ UnicodeString::doReplace(int32_t start, - // clone our array and allocate a bigger array if needed - int32_t *bufferToDelete = 0; - if(!cloneArrayIfNeeded(newLength, getGrowCapacity(newLength), -- FALSE, &bufferToDelete) -+ false, &bufferToDelete) - ) { - return *this; - } -@@ -1637,14 +1637,14 @@ UnicodeString::copy(int32_t start, int32_t limit, int32_t dest) { - * so we implement this function here. - */ - UBool Replaceable::hasMetaData() const { -- return TRUE; -+ return true; - } - - /** - * Replaceable API - */ - UBool UnicodeString::hasMetaData() const { -- return FALSE; -+ return false; - } - - UnicodeString& -@@ -1662,7 +1662,7 @@ UnicodeString::doReverse(int32_t start, int32_t length) { - UChar *left = getArrayStart() + start; - UChar *right = left + length - 1; // -1 for inclusive boundary (length>=2) - UChar swap; -- UBool hasSupplementary = FALSE; -+ UBool hasSupplementary = false; - - // Before the loop we know left=2. - do { -@@ -1699,7 +1699,7 @@ UnicodeString::padLeading(int32_t targetLength, - { - int32_t oldLength = length(); - if(oldLength >= targetLength || !cloneArrayIfNeeded(targetLength)) { -- return FALSE; -+ return false; - } else { - // move contents up by padding width - UChar *array = getArrayStart(); -@@ -1711,7 +1711,7 @@ UnicodeString::padLeading(int32_t targetLength, - array[start] = padChar; - } - setLength(targetLength); -- return TRUE; -+ return true; - } - } - -@@ -1721,7 +1721,7 @@ UnicodeString::padTrailing(int32_t targetLength, - { - int32_t oldLength = length(); - if(oldLength >= targetLength || !cloneArrayIfNeeded(targetLength)) { -- return FALSE; -+ return false; - } else { - // fill in padding character - UChar *array = getArrayStart(); -@@ -1730,7 +1730,7 @@ UnicodeString::padTrailing(int32_t targetLength, - array[length] = padChar; - } - setLength(targetLength); -- return TRUE; -+ return true; - } - } - -@@ -1800,10 +1800,10 @@ UnicodeString::cloneArrayIfNeeded(int32_t newCapacity, - } - - // while a getBuffer(minCapacity) is "open", -- // prevent any modifications of the string by returning FALSE here -+ // prevent any modifications of the string by returning false here - // if the string is bogus, then only an assignment or similar can revive it - if(!isWritable()) { -- return FALSE; -+ return false; - } - - /* -@@ -1811,7 +1811,7 @@ UnicodeString::cloneArrayIfNeeded(int32_t newCapacity, - * the buffer is read-only, or - * the buffer is refCounted (shared), and refCount>1, or - * the buffer is too small. -- * Return FALSE if memory could not be allocated. -+ * Return false if memory could not be allocated. - */ - if(forceClone || - fUnion.fFields.fLengthAndFlags & kBufferIsReadonly || -@@ -1890,10 +1890,10 @@ UnicodeString::cloneArrayIfNeeded(int32_t newCapacity, - } - fUnion.fFields.fLengthAndFlags = flags; - setToBogus(); -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - // UnicodeStringAppendable ------------------------------------------------- *** -@@ -1909,7 +1909,7 @@ UBool - UnicodeStringAppendable::appendCodePoint(UChar32 c) { - UChar buffer[U16_MAX_LENGTH]; - int32_t cLength = 0; -- UBool isError = FALSE; -+ UBool isError = false; - U16_APPEND(buffer, cLength, U16_MAX_LENGTH, c, isError); - return !isError && str.doAppend(buffer, 0, cLength).isWritable(); - } -@@ -1961,10 +1961,10 @@ uhash_compareUnicodeString(const UElement key1, const UElement key2) { - const UnicodeString *str1 = (const UnicodeString*) key1.pointer; - const UnicodeString *str2 = (const UnicodeString*) key2.pointer; - if (str1 == str2) { -- return TRUE; -+ return true; - } - if (str1 == NULL || str2 == NULL) { -- return FALSE; -+ return false; - } - return *str1 == *str2; - } -diff --git a/deps/icu-small/source/common/unistr_case.cpp b/deps/icu-small/source/common/unistr_case.cpp -index 2138d60c01..f4c43b4889 100644 ---- a/deps/icu-small/source/common/unistr_case.cpp -+++ b/deps/icu-small/source/common/unistr_case.cpp -@@ -123,7 +123,7 @@ UnicodeString::caseMap(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITER - capacity = getCapacity(); - } else { - // Switch from the read-only alias or shared heap buffer to the stack buffer. -- if (!cloneArrayIfNeeded(US_STACKBUF_SIZE, US_STACKBUF_SIZE, /* doCopyArray= */ FALSE)) { -+ if (!cloneArrayIfNeeded(US_STACKBUF_SIZE, US_STACKBUF_SIZE, /* doCopyArray= */ false)) { - return *this; - } - U_ASSERT(fUnion.fFields.fLengthAndFlags & kUsingStackBuffer); -@@ -132,7 +132,7 @@ UnicodeString::caseMap(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITER - } - #if !UCONFIG_NO_BREAK_ITERATION - if (iter != nullptr) { -- oldString.setTo(FALSE, oldArray, oldLength); -+ oldString.setTo(false, oldArray, oldLength); - iter->setText(oldString); - } - #endif -@@ -158,7 +158,7 @@ UnicodeString::caseMap(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITER - UChar replacementChars[200]; - #if !UCONFIG_NO_BREAK_ITERATION - if (iter != nullptr) { -- oldString.setTo(FALSE, oldArray, oldLength); -+ oldString.setTo(false, oldArray, oldLength); - iter->setText(oldString); - } - #endif -@@ -194,7 +194,7 @@ UnicodeString::caseMap(int32_t caseLocale, uint32_t options, UCASEMAP_BREAK_ITER - // and deletes the old array itself after it is done. - // In addition, we are forcing cloneArrayIfNeeded() to always allocate a new array. - int32_t *bufferToDelete = 0; -- if (!cloneArrayIfNeeded(newLength, newLength, FALSE, &bufferToDelete, TRUE)) { -+ if (!cloneArrayIfNeeded(newLength, newLength, false, &bufferToDelete, true)) { - return *this; - } - errorCode = U_ZERO_ERROR; -@@ -241,10 +241,10 @@ uhash_compareCaselessUnicodeString(const UElement key1, const UElement key2) { - const UnicodeString *str1 = (const UnicodeString*) key1.pointer; - const UnicodeString *str2 = (const UnicodeString*) key2.pointer; - if (str1 == str2) { -- return TRUE; -+ return true; - } - if (str1 == NULL || str2 == NULL) { -- return FALSE; -+ return false; - } - return str1->caseCompare(*str2, U_FOLD_CASE_DEFAULT) == 0; - } -diff --git a/deps/icu-small/source/common/unistr_cnv.cpp b/deps/icu-small/source/common/unistr_cnv.cpp -index 64d3c16801..e1f60d4487 100644 ---- a/deps/icu-small/source/common/unistr_cnv.cpp -+++ b/deps/icu-small/source/common/unistr_cnv.cpp -@@ -225,13 +225,13 @@ UnicodeString::extract(char *dest, int32_t destCapacity, - // get the converter - UBool isDefaultConverter; - if(cnv==0) { -- isDefaultConverter=TRUE; -+ isDefaultConverter=true; - cnv=u_getDefaultConverter(&errorCode); - if(U_FAILURE(errorCode)) { - return 0; - } - } else { -- isDefaultConverter=FALSE; -+ isDefaultConverter=false; - ucnv_resetFromUnicode(cnv); - } - -@@ -275,7 +275,7 @@ UnicodeString::doExtract(int32_t start, int32_t length, - } - - // perform the conversion -- ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &errorCode); -+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, true, &errorCode); - length=(int32_t)(dest-originalDest); - - // if an overflow occurs, then get the preflighting length -@@ -286,7 +286,7 @@ UnicodeString::doExtract(int32_t start, int32_t length, - do { - dest=buffer; - errorCode=U_ZERO_ERROR; -- ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &errorCode); -+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, true, &errorCode); - length+=(int32_t)(dest-buffer); - } while(errorCode==U_BUFFER_OVERFLOW_ERROR); - } -@@ -322,7 +322,7 @@ UnicodeString::doCodepageCreate(const char *codepageData, - converter = u_getDefaultConverter(&status); - } else if(*codepage == 0) { - // use the "invariant characters" conversion -- if(cloneArrayIfNeeded(dataLength, dataLength, FALSE)) { -+ if(cloneArrayIfNeeded(dataLength, dataLength, false)) { - u_charsToUChars(codepageData, getArrayStart(), dataLength); - setLength(dataLength); - } else { -@@ -379,7 +379,7 @@ UnicodeString::doCodepageCreate(const char *codepageData, - } - - // we do not care about the current contents -- UBool doCopyArray = FALSE; -+ UBool doCopyArray = false; - for(;;) { - if(!cloneArrayIfNeeded(arraySize, arraySize, doCopyArray)) { - setToBogus(); -@@ -390,7 +390,7 @@ UnicodeString::doCodepageCreate(const char *codepageData, - array = getArrayStart(); - myTarget = array + length(); - ucnv_toUnicode(converter, &myTarget, array + getCapacity(), -- &mySource, mySourceEnd, 0, TRUE, &status); -+ &mySource, mySourceEnd, 0, true, &status); - - // update the conversion parameters - setLength((int32_t)(myTarget - array)); -@@ -401,7 +401,7 @@ UnicodeString::doCodepageCreate(const char *codepageData, - status = U_ZERO_ERROR; - - // keep the previous conversion results -- doCopyArray = TRUE; -+ doCopyArray = true; - - // estimate the new size needed, larger than before - // try 2 UChar's per remaining source byte -diff --git a/deps/icu-small/source/common/unorm.cpp b/deps/icu-small/source/common/unorm.cpp -index 2d9f46052f..cf3915c27f 100644 ---- a/deps/icu-small/source/common/unorm.cpp -+++ b/deps/icu-small/source/common/unorm.cpp -@@ -128,7 +128,7 @@ _iterate(UCharIterator *src, UBool forward, - } - - if(pNeededToNormalize!=NULL) { -- *pNeededToNormalize=FALSE; -+ *pNeededToNormalize=false; - } - if(!(forward ? src->hasNext(src) : src->hasPrevious(src))) { - return u_terminateUChars(dest, destCapacity, 0, pErrorCode); -@@ -199,7 +199,7 @@ unorm_previous(UCharIterator *src, - UNormalizationMode mode, int32_t options, - UBool doNormalize, UBool *pNeededToNormalize, - UErrorCode *pErrorCode) { -- return unorm_iterate(src, FALSE, -+ return unorm_iterate(src, false, - dest, destCapacity, - mode, options, - doNormalize, pNeededToNormalize, -@@ -212,7 +212,7 @@ unorm_next(UCharIterator *src, - UNormalizationMode mode, int32_t options, - UBool doNormalize, UBool *pNeededToNormalize, - UErrorCode *pErrorCode) { -- return unorm_iterate(src, TRUE, -+ return unorm_iterate(src, true, - dest, destCapacity, - mode, options, - doNormalize, pNeededToNormalize, -diff --git a/deps/icu-small/source/common/unormcmp.cpp b/deps/icu-small/source/common/unormcmp.cpp -index 689b0b53b2..e224190972 100644 ---- a/deps/icu-small/source/common/unormcmp.cpp -+++ b/deps/icu-small/source/common/unormcmp.cpp -@@ -536,7 +536,7 @@ UBool _normalize(const Normalizer2 *n2, const UChar *s, int32_t length, - // check if s fulfill the conditions - int32_t spanQCYes=n2->spanQuickCheckYes(str, *pErrorCode); - if (U_FAILURE(*pErrorCode)) { -- return FALSE; -+ return false; - } - /* - * ICU 2.4 had a further optimization: -@@ -548,13 +548,13 @@ UBool _normalize(const Normalizer2 *n2, const UChar *s, int32_t length, - */ - if(spanQCYesnormalizeSecondAndAppend(normalized, unnormalized, *pErrorCode); - if (U_SUCCESS(*pErrorCode)) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - U_CAPI int32_t U_EXPORT2 -diff --git a/deps/icu-small/source/common/uprops.cpp b/deps/icu-small/source/common/uprops.cpp -index 5186a0c75c..26e950b876 100644 ---- a/deps/icu-small/source/common/uprops.cpp -+++ b/deps/icu-small/source/common/uprops.cpp -@@ -49,7 +49,7 @@ U_NAMESPACE_USE - - namespace { - --icu::UInitOnce gLayoutInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce gLayoutInitOnce {}; - UDataMemory *gLayoutMemory = nullptr; - - UCPTrie *gInpcTrie = nullptr; // Indic_Positional_Category -@@ -76,7 +76,7 @@ UBool U_CALLCONV uprops_cleanup() { - gMaxVoValue = 0; - - gLayoutInitOnce.reset(); -- return TRUE; -+ return true; - } - - UBool U_CALLCONV -@@ -141,7 +141,7 @@ void U_CALLCONV ulayout_load(UErrorCode &errorCode) { - } - - UBool ulayout_ensureData(UErrorCode &errorCode) { -- if (U_FAILURE(errorCode)) { return FALSE; } -+ if (U_FAILURE(errorCode)) { return false; } - umtx_initOnce(gLayoutInitOnce, &ulayout_load, errorCode); - return U_SUCCESS(errorCode); - } -@@ -188,7 +188,7 @@ static UBool isJoinControl(const BinaryProperty &/*prop*/, UChar32 c, UProperty - - #if UCONFIG_NO_NORMALIZATION - static UBool hasFullCompositionExclusion(const BinaryProperty &, UChar32, UProperty) { -- return FALSE; -+ return false; - } - #else - static UBool hasFullCompositionExclusion(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) { -@@ -202,7 +202,7 @@ static UBool hasFullCompositionExclusion(const BinaryProperty &/*prop*/, UChar32 - // UCHAR_NF*_INERT properties - #if UCONFIG_NO_NORMALIZATION - static UBool isNormInert(const BinaryProperty &, UChar32, UProperty) { -- return FALSE; -+ return false; - } - #else - static UBool isNormInert(const BinaryProperty &/*prop*/, UChar32 c, UProperty which) { -@@ -215,7 +215,7 @@ static UBool isNormInert(const BinaryProperty &/*prop*/, UChar32 c, UProperty wh - - #if UCONFIG_NO_NORMALIZATION - static UBool changesWhenCasefolded(const BinaryProperty &, UChar32, UProperty) { -- return FALSE; -+ return false; - } - #else - static UBool changesWhenCasefolded(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) { -@@ -223,7 +223,7 @@ static UBool changesWhenCasefolded(const BinaryProperty &/*prop*/, UChar32 c, UP - UErrorCode errorCode=U_ZERO_ERROR; - const Normalizer2 *nfcNorm2=Normalizer2::getNFCInstance(errorCode); - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - if(nfcNorm2->getDecomposition(c, nfd)) { - /* c has a decomposition */ -@@ -237,7 +237,7 @@ static UBool changesWhenCasefolded(const BinaryProperty &/*prop*/, UChar32 c, UP - c=U_SENTINEL; - } - } else if(c<0) { -- return FALSE; /* protect against bad input */ -+ return false; /* protect against bad input */ - } - if(c>=0) { - /* single code point */ -@@ -252,21 +252,21 @@ static UBool changesWhenCasefolded(const BinaryProperty &/*prop*/, UChar32 c, UP - U_FOLD_CASE_DEFAULT, &errorCode); - return (UBool)(U_SUCCESS(errorCode) && - 0!=u_strCompare(nfd.getBuffer(), nfd.length(), -- dest, destLength, FALSE)); -+ dest, destLength, false)); - } - } - #endif - - #if UCONFIG_NO_NORMALIZATION - static UBool changesWhenNFKC_Casefolded(const BinaryProperty &, UChar32, UProperty) { -- return FALSE; -+ return false; - } - #else - static UBool changesWhenNFKC_Casefolded(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) { - UErrorCode errorCode=U_ZERO_ERROR; - const Normalizer2Impl *kcf=Normalizer2Factory::getNFKC_CFImpl(errorCode); - if(U_FAILURE(errorCode)) { -- return FALSE; -+ return false; - } - UnicodeString src(c); - UnicodeString dest; -@@ -277,8 +277,8 @@ static UBool changesWhenNFKC_Casefolded(const BinaryProperty &/*prop*/, UChar32 - // Small destCapacity for NFKC_CF(c). - if(buffer.init(5, errorCode)) { - const UChar *srcArray=src.getBuffer(); -- kcf->compose(srcArray, srcArray+src.length(), FALSE, -- TRUE, buffer, errorCode); -+ kcf->compose(srcArray, srcArray+src.length(), false, -+ true, buffer, errorCode); - } - } - return U_SUCCESS(errorCode) && dest!=src; -@@ -287,7 +287,7 @@ static UBool changesWhenNFKC_Casefolded(const BinaryProperty &/*prop*/, UChar32 - - #if UCONFIG_NO_NORMALIZATION - static UBool isCanonSegmentStarter(const BinaryProperty &, UChar32, UProperty) { -- return FALSE; -+ return false; - } - #else - static UBool isCanonSegmentStarter(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) { -@@ -416,7 +416,7 @@ u_hasBinaryProperty(UChar32 c, UProperty which) { - /* c is range-checked in the functions that are called from here */ - if(whichUCASE_MAX_STRING_LENGTH) { - folded1String.setTo(folded1Length); - } else { -- folded1String.setTo(FALSE, folded1, folded1Length); -+ folded1String.setTo(false, folded1, folded1Length); - } - } - UnicodeString kc1=nfkc->normalize(folded1String, *pErrorCode); -diff --git a/deps/icu-small/source/common/uresbund.cpp b/deps/icu-small/source/common/uresbund.cpp -index a9c6459418..17c0177a05 100644 ---- a/deps/icu-small/source/common/uresbund.cpp -+++ b/deps/icu-small/source/common/uresbund.cpp -@@ -49,7 +49,7 @@ TODO: This cache should probably be removed when the deprecated code is - completely removed. - */ - static UHashtable *cache = NULL; --static icu::UInitOnce gCacheInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCacheInitOnce {}; - - static UMutex resbMutex; - -@@ -85,10 +85,206 @@ static UBool chopLocale(char *name) { - - if(i != NULL) { - *i = '\0'; -- return TRUE; -+ return true; - } - -- return FALSE; -+ return false; -+} -+ -+static UBool hasVariant(const char* localeID) { -+ UErrorCode err = U_ZERO_ERROR; -+ int32_t variantLength = uloc_getVariant(localeID, NULL, 0, &err); -+ return variantLength != 0; -+} -+ -+// This file contains the tables for doing locale fallback, which are generated -+// by the CLDR-to-ICU process directly from the CLDR data. This file should only -+// ever be included from here. -+#define INCLUDED_FROM_URESBUND_CPP -+#include "localefallback_data.h" -+ -+static const char* performFallbackLookup(const char* key, -+ const char* keyStrs, -+ const char* valueStrs, -+ const int32_t* lookupTable, -+ int32_t lookupTableLength) { -+ const int32_t* bottom = lookupTable; -+ const int32_t* top = lookupTable + lookupTableLength; -+ -+ while (bottom < top) { -+ // Effectively, divide by 2 and round down to an even index -+ const int32_t* middle = bottom + (((top - bottom) / 4) * 2); -+ const char* entryKey = &(keyStrs[*middle]); -+ int32_t strcmpResult = uprv_strcmp(key, entryKey); -+ if (strcmpResult == 0) { -+ return &(valueStrs[middle[1]]); -+ } else if (strcmpResult < 0) { -+ top = middle; -+ } else { -+ bottom = middle + 2; -+ } -+ } -+ return nullptr; -+} -+ -+static CharString getDefaultScript(const CharString& language, const CharString& region) { -+ const char* defaultScript = nullptr; -+ UErrorCode err = U_ZERO_ERROR; -+ -+ // the default script will be "Latn" if we don't find the locale ID in the tables -+ CharString result("Latn", err); -+ -+ // if we were passed both language and region, make them into a locale ID and look that up in the default -+ // script table -+ if (!region.isEmpty()) { -+ CharString localeID; -+ localeID.append(language, err).append("_", err).append(region, err); -+ if (U_FAILURE(err)) { -+ return result; -+ } -+ defaultScript = performFallbackLookup(localeID.data(), dsLocaleIDChars, scriptCodeChars, defaultScriptTable, UPRV_LENGTHOF(defaultScriptTable)); -+ } -+ -+ // if we didn't find anything, look up just the language in the default script table -+ if (defaultScript == nullptr) { -+ defaultScript = performFallbackLookup(language.data(), dsLocaleIDChars, scriptCodeChars, defaultScriptTable, UPRV_LENGTHOF(defaultScriptTable)); -+ } -+ -+ // if either lookup above succeeded, copy the result from "defaultScript" into "result"; otherwise, return "Latn" -+ if (defaultScript != nullptr) { -+ result.clear(); -+ result.append(defaultScript, err); -+ } -+ return result; -+} -+ -+enum UResOpenType { -+ /** -+ * Open a resource bundle for the locale; -+ * if there is not even a base language bundle, then fall back to the default locale; -+ * if there is no bundle for that either, then load the root bundle. -+ * -+ * This is the default bundle loading behavior. -+ */ -+ URES_OPEN_LOCALE_DEFAULT_ROOT, -+ // TODO: ICU ticket #11271 "consistent default locale across locale trees" -+ // Add an option to look at the main locale tree for whether to -+ // fall back to root directly (if the locale has main data) or -+ // fall back to the default locale first (if the locale does not even have main data). -+ /** -+ * Open a resource bundle for the locale; -+ * if there is not even a base language bundle, then load the root bundle; -+ * never fall back to the default locale. -+ * -+ * This is used for algorithms that have good pan-Unicode default behavior, -+ * such as case mappings, collation, and segmentation (BreakIterator). -+ */ -+ URES_OPEN_LOCALE_ROOT, -+ /** -+ * Open a resource bundle for the exact bundle name as requested; -+ * no fallbacks, do not load parent bundles. -+ * -+ * This is used for supplemental (non-locale) data. -+ */ -+ URES_OPEN_DIRECT -+}; -+typedef enum UResOpenType UResOpenType; -+ -+/** -+ * Internal function, determines the search path for resource bundle files. -+ * Currently, this function is used only by findFirstExisting() to help search for resource bundle files when a bundle for the specified -+ * locale doesn't exist. The code that supports inheritance of resources between existing resource bundle files continues to -+ * use chopLocale() below. -+ * @param name In-out parameter: On input, the locale ID to get a parent locale ID for (this is a locale's base name, without keywords); on output, the -+ * requested parent locale ID. -+ * @param origName The original locale ID the caller of findFirstExisting() requested. This is the same as `name` on the first call to this function, -+ * but as findFirstExisting() ascends the resource bundle's parent tree, this parameter will continue to be the original locale ID requested. -+ */ -+static bool getParentLocaleID(char *name, const char *origName, UResOpenType openType) { -+ // early out if the locale ID has a variant code or ends with _ -+ if (name[uprv_strlen(name) - 1] == '_' || hasVariant(name)) { -+ return chopLocale(name); -+ } -+ -+ UErrorCode err = U_ZERO_ERROR; -+ const char* tempNamePtr = name; -+ CharString language = ulocimp_getLanguage(tempNamePtr, &tempNamePtr, err); -+ if (*tempNamePtr == '_') { -+ ++tempNamePtr; -+ } -+ CharString script = ulocimp_getScript(tempNamePtr, &tempNamePtr, err); -+ if (*tempNamePtr == '_') { -+ ++tempNamePtr; -+ } -+ CharString region = ulocimp_getCountry(tempNamePtr, &tempNamePtr, err); -+ CharString workingLocale; -+ if (U_FAILURE(err)) { -+ // hopefully this never happens... -+ return chopLocale(name); -+ } -+ -+ // if the open type is URES_OPEN_LOCALE_DEFAULT_ROOT, first look the locale ID up in the parent locale table; -+ // if that table specifies a parent for it, return that (we don't do this for the other open types-- if we're not -+ // falling back through the system default locale, we also want to do straight truncation fallback instead -+ // of looking things up in the parent locale table-- see https://www.unicode.org/reports/tr35/tr35.html#Parent_Locales: -+ // "Collation data, however, is an exception...") -+ if (openType == URES_OPEN_LOCALE_DEFAULT_ROOT) { -+ const char* parentID = performFallbackLookup(name, parentLocaleChars, parentLocaleChars, parentLocaleTable, UPRV_LENGTHOF(parentLocaleTable)); -+ if (parentID != NULL) { -+ uprv_strcpy(name, parentID); -+ return true; -+ } -+ } -+ -+ // if it's not in the parent locale table, figure out the fallback script algorithmically -+ // (see CLDR-15265 for an explanation of the algorithm) -+ if (!script.isEmpty() && !region.isEmpty()) { -+ // if "name" has both script and region, is the script the default script? -+ // - if so, remove it and keep the region -+ // - if not, remove the region and keep the script -+ if (getDefaultScript(language, region) == script.toStringPiece()) { -+ workingLocale.append(language, err).append("_", err).append(region, err); -+ } else { -+ workingLocale.append(language, err).append("_", err).append(script, err); -+ } -+ } else if (!region.isEmpty()) { -+ // if "name" has region but not script, did the original locale ID specify a script? -+ // - if yes, replace the region with the script from the original locale ID -+ // - if no, replace the region with the default script for that language and region -+ UErrorCode err = U_ZERO_ERROR; -+ tempNamePtr = origName; -+ CharString origNameLanguage = ulocimp_getLanguage(tempNamePtr, &tempNamePtr, err); -+ if (*tempNamePtr == '_') { -+ ++tempNamePtr; -+ } -+ CharString origNameScript = ulocimp_getScript(origName, nullptr, err); -+ if (!origNameScript.isEmpty()) { -+ workingLocale.append(language, err).append("_", err).append(origNameScript, err); -+ } else { -+ workingLocale.append(language, err).append("_", err).append(getDefaultScript(language, region), err); -+ } -+ } else if (!script.isEmpty()) { -+ // if "name" has script but not region (and our open type if URES_OPEN_LOCALE_DEFAULT_ROOT), is the script -+ // the default script for the language? -+ // - if so, remove it from the locale ID -+ // - if not, return false to continue up the chain -+ // (we don't do this for other open types for the same reason we don't look things up in the parent -+ // locale table for other open types-- see the reference to UTS #35 above) -+ if (openType != URES_OPEN_LOCALE_DEFAULT_ROOT || getDefaultScript(language, CharString()) == script.toStringPiece()) { -+ workingLocale.append(language, err); -+ } else { -+ return false; -+ } -+ } else { -+ // if "name" just contains a language code, return false so the calling code falls back to "root" -+ return false; -+ } -+ if (U_SUCCESS(err) && !workingLocale.isEmpty()) { -+ uprv_strcpy(name, workingLocale.data()); -+ return true; -+ } else { -+ return false; -+ } - } - - /** -@@ -199,7 +395,7 @@ static int32_t ures_flushCache() - } - - do { -- deletedMore = FALSE; -+ deletedMore = false; - /*creates an enumeration to iterate through every element in the table */ - pos = UHASH_FIRST; - while ((e = uhash_nextElement(cache, &pos)) != NULL) -@@ -216,7 +412,7 @@ static int32_t ures_flushCache() - - if (resB->fCountExisting == 0) { - rbDeletedNum++; -- deletedMore = TRUE; -+ deletedMore = true; - uhash_removeElement(cache, e); - free_entry(resB); - } -@@ -234,7 +430,7 @@ static int32_t ures_flushCache() - #include - - U_CAPI UBool U_EXPORT2 ures_dumpCacheContents(void) { -- UBool cacheNotEmpty = FALSE; -+ UBool cacheNotEmpty = false; - int32_t pos = UHASH_FIRST; - const UHashElement *e; - UResourceDataEntry *resB; -@@ -242,11 +438,11 @@ U_CAPI UBool U_EXPORT2 ures_dumpCacheContents(void) { - Mutex lock(&resbMutex); - if (cache == NULL) { - fprintf(stderr,"%s:%d: RB Cache is NULL.\n", __FILE__, __LINE__); -- return FALSE; -+ return false; - } - - while ((e = uhash_nextElement(cache, &pos)) != NULL) { -- cacheNotEmpty=TRUE; -+ cacheNotEmpty=true; - resB = (UResourceDataEntry *) e->value.pointer; - fprintf(stderr,"%s:%d: RB Cache: Entry @0x%p, refcount %d, name %s:%s. Pool 0x%p, alias 0x%p, parent 0x%p\n", - __FILE__, __LINE__, -@@ -272,7 +468,7 @@ static UBool U_CALLCONV ures_cleanup(void) - cache = NULL; - } - gCacheInitOnce.reset(); -- return TRUE; -+ return true; - } - - /** INTERNAL: Initializes the cache for resources */ -@@ -320,7 +516,7 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE - const char *name; - char aliasName[100] = { 0 }; - int32_t aliasLen = 0; -- /*UBool isAlias = FALSE;*/ -+ /*UBool isAlias = false;*/ - /*UHashTok hashkey; */ - - if(U_FAILURE(*status)) { -@@ -463,13 +659,15 @@ getPoolEntry(const char *path, UErrorCode *status) { - /* INTERNAL: */ - /* CAUTION: resbMutex must be locked when calling this function! */ - static UResourceDataEntry * --findFirstExisting(const char* path, char* name, const char* defaultLocale, -- UBool *isRoot, UBool *hasChopped, UBool *isDefault, UErrorCode* status) { -+findFirstExisting(const char* path, char* name, const char* defaultLocale, UResOpenType openType, -+ UBool *isRoot, UBool *foundParent, UBool *isDefault, UErrorCode* status) { - UResourceDataEntry *r = NULL; -- UBool hasRealData = FALSE; -- *hasChopped = TRUE; /* we're starting with a fresh name */ -+ UBool hasRealData = false; -+ *foundParent = true; /* we're starting with a fresh name */ -+ char origName[ULOC_FULLNAME_CAPACITY]; - -- while(*hasChopped && !hasRealData) { -+ uprv_strcpy(origName, name); -+ while(*foundParent && !hasRealData) { - r = init_entry(name, path, status); - /* Null pointer test */ - if (U_FAILURE(*status)) { -@@ -494,8 +692,14 @@ findFirstExisting(const char* path, char* name, const char* defaultLocale, - *isRoot = (UBool)(uprv_strcmp(name, kRootLocaleName) == 0); - - /*Fallback data stuff*/ -- *hasChopped = chopLocale(name); -- if (*hasChopped && *name == '\0') { -+ if (!hasRealData) { -+ *foundParent = getParentLocaleID(name, origName, openType); -+ } else { -+ // we've already found a real resource file; what we return to the caller is the parent -+ // locale ID for inheritance, which should come from chopLocale(), not getParentLocaleID() -+ *foundParent = chopLocale(name); -+ } -+ if (*foundParent && *name == '\0') { - uprv_strcpy(name, "und"); - } - } -@@ -513,13 +717,13 @@ static void ures_setIsStackObject( UResourceBundle* resB, UBool state) { - } - - static UBool ures_isStackObject(const UResourceBundle* resB) { -- return((resB->fMagic1 == MAGIC1 && resB->fMagic2 == MAGIC2)?FALSE:TRUE); -+ return((resB->fMagic1 == MAGIC1 && resB->fMagic2 == MAGIC2)?false:true); - } - - - U_CFUNC void ures_initStackObject(UResourceBundle* resB) { - uprv_memset(resB, 0, sizeof(UResourceBundle)); -- ures_setIsStackObject(resB, TRUE); -+ ures_setIsStackObject(resB, true); - } - - U_NAMESPACE_BEGIN -@@ -538,8 +742,8 @@ static UBool // returns U_SUCCESS(*status) - loadParentsExceptRoot(UResourceDataEntry *&t1, - char name[], int32_t nameCapacity, - UBool usingUSRData, char usrDataPath[], UErrorCode *status) { -- if (U_FAILURE(*status)) { return FALSE; } -- UBool checkParent = TRUE; -+ if (U_FAILURE(*status)) { return false; } -+ UBool checkParent = true; - while (checkParent && t1->fParent == NULL && !t1->fData.noFallback && - res_getResource(&t1->fData,"%%ParentIsRoot") == RES_BOGUS) { - Resource parentRes = res_getResource(&t1->fData, "%%Parent"); -@@ -550,7 +754,7 @@ loadParentsExceptRoot(UResourceDataEntry *&t1, - if(parentLocaleName != NULL && 0 < parentLocaleLen && parentLocaleLen < nameCapacity) { - u_UCharsToChars(parentLocaleName, name, parentLocaleLen + 1); - if (uprv_strcmp(name, kRootLocaleName) == 0) { -- return TRUE; -+ return true; - } - } - } -@@ -559,7 +763,7 @@ loadParentsExceptRoot(UResourceDataEntry *&t1, - UResourceDataEntry *t2 = init_entry(name, t1->fPath, &parentStatus); - if (U_FAILURE(parentStatus)) { - *status = parentStatus; -- return FALSE; -+ return false; - } - UResourceDataEntry *u2 = NULL; - UErrorCode usrStatus = U_ZERO_ERROR; -@@ -568,7 +772,7 @@ loadParentsExceptRoot(UResourceDataEntry *&t1, - // If we failed due to out-of-memory, report that to the caller and exit early. - if (usrStatus == U_MEMORY_ALLOCATION_ERROR) { - *status = usrStatus; -- return FALSE; -+ return false; - } - } - -@@ -585,65 +789,33 @@ loadParentsExceptRoot(UResourceDataEntry *&t1, - t1 = t2; - checkParent = chopLocale(name) || mayHaveParent(name); - } -- return TRUE; -+ return true; - } - - static UBool // returns U_SUCCESS(*status) - insertRootBundle(UResourceDataEntry *&t1, UErrorCode *status) { -- if (U_FAILURE(*status)) { return FALSE; } -+ if (U_FAILURE(*status)) { return false; } - UErrorCode parentStatus = U_ZERO_ERROR; - UResourceDataEntry *t2 = init_entry(kRootLocaleName, t1->fPath, &parentStatus); - if (U_FAILURE(parentStatus)) { - *status = parentStatus; -- return FALSE; -+ return false; - } - t1->fParent = t2; - t1 = t2; -- return TRUE; -+ return true; - } - --enum UResOpenType { -- /** -- * Open a resource bundle for the locale; -- * if there is not even a base language bundle, then fall back to the default locale; -- * if there is no bundle for that either, then load the root bundle. -- * -- * This is the default bundle loading behavior. -- */ -- URES_OPEN_LOCALE_DEFAULT_ROOT, -- // TODO: ICU ticket #11271 "consistent default locale across locale trees" -- // Add an option to look at the main locale tree for whether to -- // fall back to root directly (if the locale has main data) or -- // fall back to the default locale first (if the locale does not even have main data). -- /** -- * Open a resource bundle for the locale; -- * if there is not even a base language bundle, then load the root bundle; -- * never fall back to the default locale. -- * -- * This is used for algorithms that have good pan-Unicode default behavior, -- * such as case mappings, collation, and segmentation (BreakIterator). -- */ -- URES_OPEN_LOCALE_ROOT, -- /** -- * Open a resource bundle for the exact bundle name as requested; -- * no fallbacks, do not load parent bundles. -- * -- * This is used for supplemental (non-locale) data. -- */ -- URES_OPEN_DIRECT --}; --typedef enum UResOpenType UResOpenType; -- - static UResourceDataEntry *entryOpen(const char* path, const char* localeID, - UResOpenType openType, UErrorCode* status) { - U_ASSERT(openType != URES_OPEN_DIRECT); - UErrorCode intStatus = U_ZERO_ERROR; - UResourceDataEntry *r = NULL; - UResourceDataEntry *t1 = NULL; -- UBool isDefault = FALSE; -- UBool isRoot = FALSE; -- UBool hasRealData = FALSE; -- UBool hasChopped = TRUE; -+ UBool isDefault = false; -+ UBool isRoot = false; -+ UBool hasRealData = false; -+ UBool hasChopped = true; - UBool usingUSRData = U_USE_USRDATA && ( path == NULL || uprv_strncmp(path,U_ICUDATA_NAME,8) == 0); - - char name[ULOC_FULLNAME_CAPACITY]; -@@ -676,7 +848,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, - Mutex lock(&resbMutex); // Lock resbMutex until the end of this function. - - /* We're going to skip all the locales that do not have any data */ -- r = findFirstExisting(path, name, defaultLocale, &isRoot, &hasChopped, &isDefault, &intStatus); -+ r = findFirstExisting(path, name, defaultLocale, openType, &isRoot, &hasChopped, &isDefault, &intStatus); - - // If we failed due to out-of-memory, report the failure and exit early. - if (intStatus == U_MEMORY_ALLOCATION_ERROR) { -@@ -686,7 +858,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, - - if(r != NULL) { /* if there is one real locale, we can look for parents. */ - t1 = r; -- hasRealData = TRUE; -+ hasRealData = true; - if ( usingUSRData ) { /* This code inserts user override data into the inheritance chain */ - UErrorCode usrStatus = U_ZERO_ERROR; - UResourceDataEntry *u1 = init_entry(t1->fName, usrDataPath, &usrStatus); -@@ -717,7 +889,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, - if(r==NULL && openType == URES_OPEN_LOCALE_DEFAULT_ROOT && !isDefault && !isRoot) { - /* insert default locale */ - uprv_strcpy(name, defaultLocale); -- r = findFirstExisting(path, name, defaultLocale, &isRoot, &hasChopped, &isDefault, &intStatus); -+ r = findFirstExisting(path, name, defaultLocale, openType, &isRoot, &hasChopped, &isDefault, &intStatus); - // If we failed due to out-of-memory, report the failure and exit early. - if (intStatus == U_MEMORY_ALLOCATION_ERROR) { - *status = intStatus; -@@ -726,8 +898,8 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, - intStatus = U_USING_DEFAULT_WARNING; - if(r != NULL) { /* the default locale exists */ - t1 = r; -- hasRealData = TRUE; -- isDefault = TRUE; -+ hasRealData = true; -+ isDefault = true; - // TODO: Why not if (usingUSRData) { ... } like in the non-default-locale code path? - if ((hasChopped || mayHaveParent(name)) && !isRoot) { - if (!loadParentsExceptRoot(t1, name, UPRV_LENGTHOF(name), usingUSRData, usrDataPath, status)) { -@@ -741,7 +913,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, - /* present */ - if(r == NULL) { - uprv_strcpy(name, kRootLocaleName); -- r = findFirstExisting(path, name, defaultLocale, &isRoot, &hasChopped, &isDefault, &intStatus); -+ r = findFirstExisting(path, name, defaultLocale, openType, &isRoot, &hasChopped, &isDefault, &intStatus); - // If we failed due to out-of-memory, report the failure and exit early. - if (intStatus == U_MEMORY_ALLOCATION_ERROR) { - *status = intStatus; -@@ -750,7 +922,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, - if(r != NULL) { - t1 = r; - intStatus = U_USING_DEFAULT_WARNING; -- hasRealData = TRUE; -+ hasRealData = true; - } else { /* we don't even have the root locale */ - *status = U_MISSING_RESOURCE_ERROR; - goto finish; -@@ -826,7 +998,7 @@ entryOpenDirect(const char* path, const char* localeID, UErrorCode* status) { - char name[ULOC_FULLNAME_CAPACITY]; - uprv_strcpy(name, localeID); - if(!chopLocale(name) || uprv_strcmp(name, kRootLocaleName) == 0 || -- loadParentsExceptRoot(t1, name, UPRV_LENGTHOF(name), FALSE, NULL, status)) { -+ loadParentsExceptRoot(t1, name, UPRV_LENGTHOF(name), false, NULL, status)) { - if(uprv_strcmp(t1->fName, kRootLocaleName) != 0 && t1->fParent == NULL) { - insertRootBundle(t1, status); - } -@@ -956,7 +1128,7 @@ ures_closeBundle(UResourceBundle* resB, UBool freeBundleObj) - } - ures_freeResPath(resB); - -- if(ures_isStackObject(resB) == FALSE && freeBundleObj) { -+ if(ures_isStackObject(resB) == false && freeBundleObj) { - uprv_free(resB); - } - #if 0 /*U_DEBUG*/ -@@ -971,7 +1143,7 @@ ures_closeBundle(UResourceBundle* resB, UBool freeBundleObj) - U_CAPI void U_EXPORT2 - ures_close(UResourceBundle* resB) - { -- ures_closeBundle(resB, TRUE); -+ ures_closeBundle(resB, true); - } - - namespace { -@@ -1237,7 +1409,7 @@ UResourceBundle *init_resb_result( - *status = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } -- ures_setIsStackObject(resB, FALSE); -+ ures_setIsStackObject(resB, false); - resB->fResPath = NULL; - resB->fResPathLen = 0; - } else { -@@ -1254,7 +1426,7 @@ UResourceBundle *init_resb_result( - treated the same - */ - /* -- if(ures_isStackObject(resB) != FALSE) { -+ if(ures_isStackObject(resB) != false) { - ures_initStackObject(resB); - } - */ -@@ -1264,8 +1436,8 @@ UResourceBundle *init_resb_result( - } - resB->fData = dataEntry; - entryIncrease(resB->fData); -- resB->fHasFallback = FALSE; -- resB->fIsTopLevel = FALSE; -+ resB->fHasFallback = false; -+ resB->fIsTopLevel = false; - resB->fIndex = -1; - resB->fKey = key; - resB->fValidLocaleDataEntry = validLocaleDataEntry; -@@ -1318,7 +1490,7 @@ UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *origin - } - if(original != NULL) { - if(r == NULL) { -- isStackObject = FALSE; -+ isStackObject = false; - r = (UResourceBundle *)uprv_malloc(sizeof(UResourceBundle)); - /* test for NULL */ - if (r == NULL) { -@@ -1327,7 +1499,7 @@ UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *origin - } - } else { - isStackObject = ures_isStackObject(r); -- ures_closeBundle(r, FALSE); -+ ures_closeBundle(r, false); - } - uprv_memcpy(r, original, sizeof(UResourceBundle)); - r->fResPath = NULL; -@@ -1409,7 +1581,7 @@ ures_toUTF8String(const UChar *s16, int32_t length16, - * may store UTF-8 natively. - * (In which case dest would not be used at all.) - * -- * We do not do this if forceCopy=TRUE because then the caller -+ * We do not do this if forceCopy=true because then the caller - * expects the string to start exactly at dest. - * - * The test above for <= 0x2aaaaaaa prevents overflows. -@@ -1553,7 +1725,7 @@ U_CAPI void U_EXPORT2 ures_resetIterator(UResourceBundle *resB){ - - U_CAPI UBool U_EXPORT2 ures_hasNext(const UResourceBundle *resB) { - if(resB == NULL) { -- return FALSE; -+ return false; - } - return (UBool)(resB->fIndex < resB->fSize-1); - } -@@ -2133,7 +2305,7 @@ void getAllItemsWithFallback( - parentRef.fData = parentEntry; - parentRef.fValidLocaleDataEntry = bundle->fValidLocaleDataEntry; - parentRef.fHasFallback = !parentRef.getResData().noFallback; -- parentRef.fIsTopLevel = TRUE; -+ parentRef.fIsTopLevel = true; - parentRef.fRes = parentRef.getResData().rootRes; - parentRef.fSize = res_countArrayItems(&parentRef.getResData(), parentRef.fRes); - parentRef.fIndex = -1; -@@ -2276,7 +2448,7 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con - res = res_getTableItemByKey(&resB->getResData(), resB->fRes, &t, &key); - if(res == RES_BOGUS) { - key = inKey; -- if(resB->fHasFallback == TRUE) { -+ if(resB->fHasFallback == true) { - dataEntry = getFallbackData(resB, &key, &res, status); - if(U_SUCCESS(*status)) { - /* check if resB->fResPath gives the right name here */ -@@ -2294,7 +2466,7 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con - #if 0 - /* this is a kind of TODO item. If we have an array with an index table, we could do this. */ - /* not currently */ -- else if(RES_GET_TYPE(resB->fRes) == URES_ARRAY && resB->fHasFallback == TRUE) { -+ else if(RES_GET_TYPE(resB->fRes) == URES_ARRAY && resB->fHasFallback == true) { - /* here should go a first attempt to locate the key using index table */ - dataEntry = getFallbackData(resB, &key, &res, status); - if(U_SUCCESS(*status)) { -@@ -2331,7 +2503,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c - - if(res == RES_BOGUS) { - key = inKey; -- if(resB->fHasFallback == TRUE) { -+ if(resB->fHasFallback == true) { - dataEntry = getFallbackData(resB, &key, &res, status); - if(U_SUCCESS(*status)) { - switch (RES_GET_TYPE(res)) { -@@ -2376,7 +2548,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c - #if 0 - /* this is a kind of TODO item. If we have an array with an index table, we could do this. */ - /* not currently */ -- else if(RES_GET_TYPE(resB->fRes) == URES_ARRAY && resB->fHasFallback == TRUE) { -+ else if(RES_GET_TYPE(resB->fRes) == URES_ARRAY && resB->fHasFallback == true) { - /* here should go a first attempt to locate the key using index table */ - dataEntry = getFallbackData(resB, &key, &res, status); - if(U_SUCCESS(*status)) { -@@ -2510,17 +2682,17 @@ ures_openWithType(UResourceBundle *r, const char* path, const char* localeID, - *status = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } -- isStackObject = FALSE; -+ isStackObject = false; - } else { // fill-in - isStackObject = ures_isStackObject(r); -- ures_closeBundle(r, FALSE); -+ ures_closeBundle(r, false); - } - uprv_memset(r, 0, sizeof(UResourceBundle)); - ures_setIsStackObject(r, isStackObject); - - r->fValidLocaleDataEntry = r->fData = entry; - r->fHasFallback = openType != URES_OPEN_DIRECT && !r->getResData().noFallback; -- r->fIsTopLevel = TRUE; -+ r->fIsTopLevel = true; - r->fRes = r->getResData().rootRes; - r->fSize = res_countArrayItems(&r->getResData(), r->fRes); - r->fIndex = -1; -@@ -2795,10 +2967,10 @@ static UBool isLocaleInList(UEnumeration *locEnum, const char *locToSearch, UErr - const char *loc; - while ((loc = uenum_next(locEnum, NULL, status)) != NULL) { - if (uprv_strcmp(loc, locToSearch) == 0) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - U_CAPI int32_t U_EXPORT2 -@@ -2836,7 +3008,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, - - if(isAvailable) { - UEnumeration *locEnum = ures_openAvailableLocales(path, &subStatus); -- *isAvailable = TRUE; -+ *isAvailable = true; - if (U_SUCCESS(subStatus)) { - *isAvailable = isLocaleInList(locEnum, parent, &subStatus); - } -@@ -2854,7 +3026,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, - if(((subStatus == U_USING_FALLBACK_WARNING) || - (subStatus == U_USING_DEFAULT_WARNING)) && isAvailable) - { -- *isAvailable = FALSE; -+ *isAvailable = false; - } - isAvailable = NULL; /* only want to set this the first time around */ - -@@ -2910,7 +3082,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, - subStatus = U_ZERO_ERROR; - res = ures_open(path, parent, &subStatus); - if((subStatus == U_USING_FALLBACK_WARNING) && isAvailable) { -- *isAvailable = FALSE; -+ *isAvailable = false; - } - isAvailable = NULL; /* only want to set this the first time around */ - -@@ -2991,7 +3163,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, - subStatus = U_ZERO_ERROR; - res = ures_open(path, parent, &subStatus); - if((subStatus == U_USING_FALLBACK_WARNING) && isAvailable) { -- *isAvailable = FALSE; -+ *isAvailable = false; - } - isAvailable = NULL; /* only want to set this the first time around */ - -@@ -3224,32 +3396,32 @@ ures_equal(const UResourceBundle* res1, const UResourceBundle* res2){ - return (res1->fKey==res2->fKey); - }else{ - if(uprv_strcmp(res1->fKey, res2->fKey)!=0){ -- return FALSE; -+ return false; - } - } - if(uprv_strcmp(res1->fData->fName, res2->fData->fName)!=0){ -- return FALSE; -+ return false; - } - if(res1->fData->fPath == NULL|| res2->fData->fPath==NULL){ - return (res1->fData->fPath == res2->fData->fPath); - }else{ - if(uprv_strcmp(res1->fData->fPath, res2->fData->fPath)!=0){ -- return FALSE; -+ return false; - } - } - if(uprv_strcmp(res1->fData->fParent->fName, res2->fData->fParent->fName)!=0){ -- return FALSE; -+ return false; - } - if(uprv_strcmp(res1->fData->fParent->fPath, res2->fData->fParent->fPath)!=0){ -- return FALSE; -+ return false; - } - if(uprv_strncmp(res1->fResPath, res2->fResPath, res1->fResPathLen)!=0){ -- return FALSE; -+ return false; - } - if(res1->fRes != res2->fRes){ -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - U_CAPI UResourceBundle* U_EXPORT2 - ures_clone(const UResourceBundle* res, UErrorCode* status){ -diff --git a/deps/icu-small/source/common/uresdata.cpp b/deps/icu-small/source/common/uresdata.cpp -index 9af081be40..a1222d415c 100644 ---- a/deps/icu-small/source/common/uresdata.cpp -+++ b/deps/icu-small/source/common/uresdata.cpp -@@ -234,7 +234,7 @@ res_init(ResourceData *pResData, - * formatVersion 1: compare key strings in native-charset order - * formatVersion 2 and up: compare key strings in ASCII order - */ -- pResData->useNativeStrcmp=TRUE; -+ pResData->useNativeStrcmp=true; - } - } - -@@ -377,10 +377,10 @@ UBool isNoInheritanceMarker(const ResourceData *pResData, Resource res) { - return p[1] == 0x2205 && p[2] == 0x2205 && p[3] == 0x2205; - } else { - // Assume that the string has not been stored with more length units than necessary. -- return FALSE; -+ return false; - } - } -- return FALSE; -+ return false; - } - - int32_t getStringArray(const ResourceData *pResData, const icu::ResourceArray &array, -@@ -409,7 +409,7 @@ int32_t getStringArray(const ResourceData *pResData, const icu::ResourceArray &a - errorCode = U_RESOURCE_TYPE_MISMATCH; - return 0; - } -- dest[i].setTo(TRUE, s, sLength); -+ dest[i].setTo(true, s, sLength); - } - return length; - } -@@ -660,7 +660,7 @@ int32_t ResourceDataValue::getStringArrayOrStringAsArray(UnicodeString *dest, in - int32_t sLength; - const UChar *s = res_getString(fTraceInfo, &getData(), res, &sLength); - if(s != NULL) { -- dest[0].setTo(TRUE, s, sLength); -+ dest[0].setTo(true, s, sLength); - return 1; - } - errorCode = U_RESOURCE_TYPE_MISMATCH; -@@ -675,7 +675,7 @@ UnicodeString ResourceDataValue::getStringOrFirstOfArray(UErrorCode &errorCode) - int32_t sLength; - const UChar *s = res_getString(fTraceInfo, &getData(), res, &sLength); - if(s != NULL) { -- us.setTo(TRUE, s, sLength); -+ us.setTo(true, s, sLength); - return us; - } - ResourceArray array = getArray(errorCode); -@@ -686,7 +686,7 @@ UnicodeString ResourceDataValue::getStringOrFirstOfArray(UErrorCode &errorCode) - // Tracing is already performed above (unimportant for trace that this is an array) - s = res_getStringNoTrace(&getData(), array.internalGetResource(&getData(), 0), &sLength); - if(s != NULL) { -- us.setTo(TRUE, s, sLength); -+ us.setTo(true, s, sLength); - return us; - } - } -@@ -837,9 +837,9 @@ UBool icu::ResourceTable::getKeyAndValue(int32_t i, - // alive for the duration that fields are being read from it - // (including nested fields). - rdValue.setResource(res, ResourceTracer(fTraceInfo, key)); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UBool icu::ResourceTable::findValue(const char *key, ResourceValue &value) const { -@@ -860,9 +860,9 @@ UBool icu::ResourceTable::findValue(const char *key, ResourceValue &value) const - } - // Same note about lifetime as in getKeyAndValue(). - rdValue.setResource(res, ResourceTracer(fTraceInfo, key)); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CAPI Resource U_EXPORT2 -@@ -912,9 +912,9 @@ UBool icu::ResourceArray::getValue(int32_t i, icu::ResourceValue &value) const { - rdValue.setResource( - internalGetResource(&rdValue.getData(), i), - ResourceTracer(fTraceInfo, i)); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CFUNC Resource -@@ -1222,7 +1222,7 @@ ures_swapResource(const UDataSwapper *ds, - } - uprv_sortArray(pTempTable->rows, count, sizeof(Row), - ures_compareRows, pTempTable->keyChars, -- FALSE, pErrorCode); -+ false, pErrorCode); - if(U_FAILURE(*pErrorCode)) { - udata_printError(ds, "ures_swapResource(table res=%08x).uprv_sortArray(%d items) failed\n", - res, count); -diff --git a/deps/icu-small/source/common/usc_impl.cpp b/deps/icu-small/source/common/usc_impl.cpp -index 111029b974..a4e2fc6069 100644 ---- a/deps/icu-small/source/common/usc_impl.cpp -+++ b/deps/icu-small/source/common/usc_impl.cpp -@@ -261,7 +261,7 @@ uscript_nextRun(UScriptRun *scriptRun, int32_t *pRunStart, int32_t *pRunLimit, U - - /* if we've fallen off the end of the text, we're done */ - if (scriptRun == NULL || scriptRun->scriptLimit >= scriptRun->textLength) { -- return FALSE; -+ return false; - } - - SYNC_FIXUP(scriptRun); -@@ -357,5 +357,5 @@ uscript_nextRun(UScriptRun *scriptRun, int32_t *pRunStart, int32_t *pRunLimit, U - *pRunScript = scriptRun->scriptCode; - } - -- return TRUE; -+ return true; - } -diff --git a/deps/icu-small/source/common/uscript.cpp b/deps/icu-small/source/common/uscript.cpp -index f8bd7e7fdd..1ededbb268 100644 ---- a/deps/icu-small/source/common/uscript.cpp -+++ b/deps/icu-small/source/common/uscript.cpp -@@ -113,14 +113,14 @@ uscript_getCode(const char* nameOrAbbrOrLocale, - return 0; - } - -- triedCode = FALSE; -+ triedCode = false; - if(uprv_strchr(nameOrAbbrOrLocale, '-')==NULL && uprv_strchr(nameOrAbbrOrLocale, '_')==NULL ){ - /* try long and abbreviated script names first */ - UScriptCode code = (UScriptCode) u_getPropertyValueEnum(UCHAR_SCRIPT, nameOrAbbrOrLocale); - if(code!=USCRIPT_INVALID_CODE) { - return setOneCode(code, fillIn, capacity, err); - } -- triedCode = TRUE; -+ triedCode = true; - } - internalErrorCode = U_ZERO_ERROR; - length = getCodesFromLocale(nameOrAbbrOrLocale, fillIn, capacity, err); -diff --git a/deps/icu-small/source/common/uscript_props.cpp b/deps/icu-small/source/common/uscript_props.cpp -index 07bae251ea..886acfafa8 100644 ---- a/deps/icu-small/source/common/uscript_props.cpp -+++ b/deps/icu-small/source/common/uscript_props.cpp -@@ -242,6 +242,8 @@ const int32_t SCRIPT_PROPS[] = { - 0x16ABC | EXCLUSION, // Tnsa - 0x1E290 | EXCLUSION, // Toto - 0x10582 | EXCLUSION | CASED, // Vith -+ 0x11F1B | EXCLUSION | LB_LETTERS, // Kawi -+ 0x1E4E6 | EXCLUSION, // Nagm - // End copy-paste from parsescriptmetadata.py - }; - -diff --git a/deps/icu-small/source/common/uset.cpp b/deps/icu-small/source/common/uset.cpp -index 871a5d8986..2152693560 100644 ---- a/deps/icu-small/source/common/uset.cpp -+++ b/deps/icu-small/source/common/uset.cpp -@@ -344,12 +344,12 @@ uset_getItem(const USet* uset, int32_t itemIndex, - //uset_getRange(const USet* set, int32_t rangeIndex, - // UChar32* pStart, UChar32* pEnd) { - // if ((uint32_t) rangeIndex >= (uint32_t) uset_getRangeCount(set)) { --// return FALSE; -+// return false; - // } - // const UnicodeSet* us = (const UnicodeSet*) set; - // *pStart = us->getRangeStart(rangeIndex); - // *pEnd = us->getRangeEnd(rangeIndex); --// return TRUE; -+// return true; - //} - - /* -@@ -384,11 +384,11 @@ uset_getSerializedSet(USerializedSet* fillSet, const uint16_t* src, int32_t srcL - int32_t length; - - if(fillSet==NULL) { -- return FALSE; -+ return false; - } - if(src==NULL || srcLength<=0) { - fillSet->length=fillSet->bmpLength=0; -- return FALSE; -+ return false; - } - - length=*src++; -@@ -397,20 +397,20 @@ uset_getSerializedSet(USerializedSet* fillSet, const uint16_t* src, int32_t srcL - length&=0x7fff; - if(srcLength<(2+length)) { - fillSet->length=fillSet->bmpLength=0; -- return FALSE; -+ return false; - } - fillSet->bmpLength=*src++; - } else { - /* only BMP values */ - if(srcLength<(1+length)) { - fillSet->length=fillSet->bmpLength=0; -- return FALSE; -+ return false; - } - fillSet->bmpLength=length; - } - fillSet->array=src; - fillSet->length=length; -- return TRUE; -+ return true; - } - - U_CAPI void U_EXPORT2 -@@ -451,7 +451,7 @@ uset_serializedContains(const USerializedSet* set, UChar32 c) { - const uint16_t* array; - - if(set==NULL || (uint32_t)c>0x10ffff) { -- return FALSE; -+ return false; - } - - array=set->array; -@@ -520,7 +520,7 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - int32_t bmpLength, length; - - if(set==NULL || rangeIndex<0 || pStart==NULL || pEnd==NULL) { -- return FALSE; -+ return false; - } - - array=set->array; -@@ -537,7 +537,7 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - } else { - *pEnd=0x10ffff; - } -- return TRUE; -+ return true; - } else { - rangeIndex-=bmpLength; - rangeIndex*=2; /* address pairs of pairs of units */ -@@ -551,9 +551,9 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - } else { - *pEnd=0x10ffff; - } -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - } -@@ -591,14 +591,14 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - // int32_t i, length, more; - // - // if(set==NULL || (uint32_t)c>0x10ffff) { --// return FALSE; -+// return false; - // } - // - // length=set->length; - // i=findChar(set->array, length, c); - // if((i&1)^doRemove) { - // /* c is already in the set */ --// return TRUE; -+// return true; - // } - // - // /* how many more array items do we need? */ -@@ -615,7 +615,7 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - // } - // } - // } --// return TRUE; -+// return true; - // } else if(i>0 && c==set->array[i-1]) { - // /* c is just after the previous range, extend that in-place by one */ - // if(++c<=0x10ffff) { -@@ -632,7 +632,7 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - // /* extend the previous range (had limit 0x10ffff) to the end of Unicode */ - // set->length=i-1; - // } --// return TRUE; -+// return true; - // } else if(i==length && c==0x10ffff) { - // /* insert one range limit c */ - // more=1; -@@ -647,7 +647,7 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - // int32_t newCapacity=set->capacity+set->capacity/2+USET_GROW_DELTA; - // UChar32* newArray=(UChar32* )uprv_malloc(newCapacity*4); - // if(newArray==NULL) { --// return FALSE; -+// return false; - // } - // set->capacity=newCapacity; - // uprv_memcpy(newArray, set->array, length*4); -@@ -667,7 +667,7 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, - // } - // set->length+=more; - // --// return TRUE; -+// return true; - // } - // - // U_CAPI UBool U_EXPORT2 -diff --git a/deps/icu-small/source/common/usetiter.cpp b/deps/icu-small/source/common/usetiter.cpp -index 7915169049..3cdece5500 100644 ---- a/deps/icu-small/source/common/usetiter.cpp -+++ b/deps/icu-small/source/common/usetiter.cpp -@@ -50,19 +50,19 @@ UBool UnicodeSetIterator::next() { - if (nextElement <= endElement) { - codepoint = codepointEnd = nextElement++; - string = NULL; -- return TRUE; -+ return true; - } - if (range < endRange) { - loadRange(++range); - codepoint = codepointEnd = nextElement++; - string = NULL; -- return TRUE; -+ return true; - } - -- if (nextString >= stringCount) return FALSE; -+ if (nextString >= stringCount) return false; - codepoint = (UChar32)IS_STRING; // signal that value is actually a string - string = (const UnicodeString*) set->strings->elementAt(nextString++); -- return TRUE; -+ return true; - } - - /** -@@ -82,20 +82,20 @@ UBool UnicodeSetIterator::nextRange() { - codepointEnd = endElement; - codepoint = nextElement; - nextElement = endElement+1; -- return TRUE; -+ return true; - } - if (range < endRange) { - loadRange(++range); - codepointEnd = endElement; - codepoint = nextElement; - nextElement = endElement+1; -- return TRUE; -+ return true; - } - -- if (nextString >= stringCount) return FALSE; -+ if (nextString >= stringCount) return false; - codepoint = (UChar32)IS_STRING; // signal that value is actually a string - string = (const UnicodeString*) set->strings->elementAt(nextString++); -- return TRUE; -+ return true; - } - - /** -diff --git a/deps/icu-small/source/common/ushape.cpp b/deps/icu-small/source/common/ushape.cpp -index ae13b5c118..babbbe52a8 100644 ---- a/deps/icu-small/source/common/ushape.cpp -+++ b/deps/icu-small/source/common/ushape.cpp -@@ -354,10 +354,10 @@ _shapeToArabicDigitsWithContext(UChar *s, int32_t length, - switch(ubidi_getClass(c)) { - case U_LEFT_TO_RIGHT: /* L */ - case U_RIGHT_TO_LEFT: /* R */ -- lastStrongWasAL=FALSE; -+ lastStrongWasAL=false; - break; - case U_RIGHT_TO_LEFT_ARABIC: /* AL */ -- lastStrongWasAL=TRUE; -+ lastStrongWasAL=true; - break; - case U_EUROPEAN_NUMBER: /* EN */ - if(lastStrongWasAL && (uint32_t)(c-0x30)<10) { -@@ -374,10 +374,10 @@ _shapeToArabicDigitsWithContext(UChar *s, int32_t length, - switch(ubidi_getClass(c)) { - case U_LEFT_TO_RIGHT: /* L */ - case U_RIGHT_TO_LEFT: /* R */ -- lastStrongWasAL=FALSE; -+ lastStrongWasAL=false; - break; - case U_RIGHT_TO_LEFT_ARABIC: /* AL */ -- lastStrongWasAL=TRUE; -+ lastStrongWasAL=true; - break; - case U_EUROPEAN_NUMBER: /* EN */ - if(lastStrongWasAL && (uint32_t)(c-0x30)<10) { -@@ -1710,13 +1710,13 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, - _shapeToArabicDigitsWithContext(dest, destLength, - digitBase, - (UBool)((options&U_SHAPE_TEXT_DIRECTION_MASK)==U_SHAPE_TEXT_DIRECTION_LOGICAL), -- FALSE); -+ false); - break; - case U_SHAPE_DIGITS_ALEN2AN_INIT_AL: - _shapeToArabicDigitsWithContext(dest, destLength, - digitBase, - (UBool)((options&U_SHAPE_TEXT_DIRECTION_MASK)==U_SHAPE_TEXT_DIRECTION_LOGICAL), -- TRUE); -+ true); - break; - default: - /* will never occur because of validity checks above */ -diff --git a/deps/icu-small/source/common/usprep.cpp b/deps/icu-small/source/common/usprep.cpp -index 41a1f56c77..50d16081d1 100644 ---- a/deps/icu-small/source/common/usprep.cpp -+++ b/deps/icu-small/source/common/usprep.cpp -@@ -45,7 +45,7 @@ U_CDECL_BEGIN - Static cache for already opened StringPrep profiles - */ - static UHashtable *SHARED_DATA_HASHTABLE = NULL; --static icu::UInitOnce gSharedDataInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSharedDataInitOnce {}; - - static UMutex usprepMutex; - /* format version of spp file */ -@@ -91,9 +91,9 @@ isSPrepAcceptable(void * /* context */, - ) { - //uprv_memcpy(formatVersion, pInfo->formatVersion, 4); - uprv_memcpy(dataVersion, pInfo->dataVersion, 4); -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -@@ -159,8 +159,8 @@ usprep_internal_flushCache(UBool noRefCount){ - profile = (UStringPrepProfile *) e->value.pointer; - key = (UStringPrepKey *) e->key.pointer; - -- if ((noRefCount== FALSE && profile->refCount == 0) || -- noRefCount== TRUE) { -+ if ((noRefCount== false && profile->refCount == 0) || -+ noRefCount== true) { - deletedNum++; - uhash_removeElement(SHARED_DATA_HASHTABLE, e); - -@@ -188,13 +188,13 @@ usprep_internal_flushCache(UBool noRefCount){ - /* Works just like ucnv_flushCache() - static int32_t - usprep_flushCache(){ -- return usprep_internal_flushCache(FALSE); -+ return usprep_internal_flushCache(false); - } - */ - - static UBool U_CALLCONV usprep_cleanup(void){ - if (SHARED_DATA_HASHTABLE != NULL) { -- usprep_internal_flushCache(TRUE); -+ usprep_internal_flushCache(true); - if (SHARED_DATA_HASHTABLE != NULL && uhash_count(SHARED_DATA_HASHTABLE) == 0) { - uhash_close(SHARED_DATA_HASHTABLE); - SHARED_DATA_HASHTABLE = NULL; -@@ -243,7 +243,7 @@ loadData(UStringPrepProfile* profile, - //TODO: change the path - dataMemory=udata_openChoice(path, type, name, isSPrepAcceptable, NULL, errorCode); - if(U_FAILURE(*errorCode)) { -- return FALSE; -+ return false; - } - - p=(const int32_t *)udata_getMemory(dataMemory); -@@ -254,7 +254,7 @@ loadData(UStringPrepProfile* profile, - - if(U_FAILURE(*errorCode)) { - udata_close(dataMemory); -- return FALSE; -+ return false; - } - - /* in the mutex block, set the data for this process */ -@@ -280,7 +280,7 @@ loadData(UStringPrepProfile* profile, - - if(U_FAILURE(*errorCode)){ - udata_close(dataMemory); -- return FALSE; -+ return false; - } - if( normUniVer < sprepUniVer && /* the Unicode version of SPREP file must be less than the Unicode Version of the normalization data */ - normUniVer < normCorrVer && /* the Unicode version of the NormalizationCorrections.txt file should be less than the Unicode Version of the normalization data */ -@@ -288,9 +288,9 @@ loadData(UStringPrepProfile* profile, - ){ - *errorCode = U_INVALID_FORMAT_ERROR; - udata_close(dataMemory); -- return FALSE; -+ return false; - } -- profile->isDataLoaded = TRUE; -+ profile->isDataLoaded = true; - - /* if a different thread set it first, then close the extra data */ - if(dataMemory!=NULL) { -@@ -474,28 +474,28 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){ - * the source codepoint is copied to the destination - */ - type = USPREP_TYPE_LIMIT; -- isIndex =FALSE; -+ isIndex =false; - value = 0; - }else if(trieWord >= _SPREP_TYPE_THRESHOLD){ - type = (UStringPrepType) (trieWord - _SPREP_TYPE_THRESHOLD); -- isIndex =FALSE; -+ isIndex =false; - value = 0; - }else{ - /* get the type */ - type = USPREP_MAP; - /* ascertain if the value is index or delta */ - if(trieWord & 0x02){ -- isIndex = TRUE; -+ isIndex = true; - value = trieWord >> 2; //mask off the lower 2 bits and shift - }else{ -- isIndex = FALSE; -+ isIndex = false; - value = (int16_t)trieWord; - value = (value >> 2); - } - - if((trieWord>>2) == _SPREP_MAX_INDEX_VALUE){ - type = USPREP_DELETE; -- isIndex =FALSE; -+ isIndex =false; - value = 0; - } - } -@@ -535,7 +535,7 @@ usprep_map( const UStringPrepProfile* profile, - type = getValues(result, value, isIndex); - - // check if the source codepoint is unassigned -- if(type == USPREP_UNASSIGNED && allowUnassigned == FALSE){ -+ if(type == USPREP_UNASSIGNED && allowUnassigned == false){ - - uprv_syntaxError(src,srcIndex-U16_LENGTH(ch), srcLength,parseError); - *status = U_STRINGPREP_UNASSIGNED_ERROR; -@@ -709,7 +709,7 @@ usprep_prepare( const UStringPrepProfile* profile, - const UChar *b2 = s2.getBuffer(); - int32_t b2Len = s2.length(); - UCharDirection direction=U_CHAR_DIRECTION_COUNT, firstCharDir=U_CHAR_DIRECTION_COUNT; -- UBool leftToRight=FALSE, rightToLeft=FALSE; -+ UBool leftToRight=false, rightToLeft=false; - int32_t rtlPos =-1, ltrPos =-1; - - for(int32_t b2Index=0; b2IndexcheckBiDi == TRUE){ -+ if(profile->checkBiDi == true){ - // satisfy 2 -- if( leftToRight == TRUE && rightToLeft == TRUE){ -+ if( leftToRight == true && rightToLeft == true){ - *status = U_STRINGPREP_CHECK_BIDI_ERROR; - uprv_syntaxError(b2,(rtlPos>ltrPos) ? rtlPos : ltrPos, b2Len, parseError); - return 0; - } - - //satisfy 3 -- if( rightToLeft == TRUE && -+ if( rightToLeft == true && - !((firstCharDir == U_RIGHT_TO_LEFT || firstCharDir == U_RIGHT_TO_LEFT_ARABIC) && - (direction == U_RIGHT_TO_LEFT || direction == U_RIGHT_TO_LEFT_ARABIC)) - ){ - *status = U_STRINGPREP_CHECK_BIDI_ERROR; - uprv_syntaxError(b2, rtlPos, b2Len, parseError); -- return FALSE; -+ return false; - } - } - return s2.extract(dest, destCapacity, *status); -diff --git a/deps/icu-small/source/common/ustr_cnv.cpp b/deps/icu-small/source/common/ustr_cnv.cpp -index 9a25a9905a..97fbc527a3 100644 ---- a/deps/icu-small/source/common/ustr_cnv.cpp -+++ b/deps/icu-small/source/common/ustr_cnv.cpp -@@ -144,7 +144,7 @@ u_uastrncpy(UChar *ucs1, - &s2, - s2+u_astrnlen(s2, n), - NULL, -- TRUE, -+ true, - &err); - ucnv_reset(cnv); /* be good citizens */ - u_releaseDefaultConverter(cnv); -@@ -216,7 +216,7 @@ u_austrncpy(char *s1, - &ucs2, - ucs2+u_ustrnlen(ucs2, n), - NULL, -- TRUE, -+ true, - &err); - ucnv_reset(cnv); /* be good citizens */ - u_releaseDefaultConverter(cnv); -diff --git a/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp b/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp -index 3002d64e34..85dfa0decb 100644 ---- a/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp -+++ b/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp -@@ -110,7 +110,7 @@ int32_t WholeStringBreakIterator::next() { return length; } - int32_t WholeStringBreakIterator::current() const { return 0; } - int32_t WholeStringBreakIterator::following(int32_t /*offset*/) { return length; } - int32_t WholeStringBreakIterator::preceding(int32_t /*offset*/) { return 0; } --UBool WholeStringBreakIterator::isBoundary(int32_t /*offset*/) { return FALSE; } -+UBool WholeStringBreakIterator::isBoundary(int32_t /*offset*/) { return false; } - int32_t WholeStringBreakIterator::next(int32_t /*n*/) { return length; } - - WholeStringBreakIterator *WholeStringBreakIterator::createBufferClone( -diff --git a/deps/icu-small/source/common/ustrcase.cpp b/deps/icu-small/source/common/ustrcase.cpp -index 43910ea520..8037c09b4f 100644 ---- a/deps/icu-small/source/common/ustrcase.cpp -+++ b/deps/icu-small/source/common/ustrcase.cpp -@@ -107,7 +107,7 @@ appendResult(UChar *dest, int32_t destIndex, int32_t destCapacity, - /* append the result */ - if(c>=0) { - /* code point */ -- UBool isError=FALSE; -+ UBool isError=false; - U16_APPEND(dest, destIndex, destCapacity, c, isError); - if(isError) { - /* overflow, nothing written */ -@@ -1087,12 +1087,12 @@ UBool isFollowedByCasedLetter(const UChar *s, int32_t i, int32_t length) { - if ((type & UCASE_IGNORABLE) != 0) { - // Case-ignorable, continue with the loop. - } else if (type != UCASE_NONE) { -- return TRUE; // Followed by cased letter. -+ return true; // Followed by cased letter. - } else { -- return FALSE; // Uncased and not case-ignorable. -+ return false; // Uncased and not case-ignorable. - } - } -- return FALSE; // Not followed by cased letter. -+ return false; // Not followed by cased letter. - } - - /** -@@ -1155,7 +1155,7 @@ int32_t toUpper(uint32_t options, - nextState |= AFTER_VOWEL_WITH_ACCENT; - } - // Map according to Greek rules. -- UBool addTonos = FALSE; -+ UBool addTonos = false; - if (upper == 0x397 && - (data & HAS_ACCENT) != 0 && - numYpogegrammeni == 0 && -@@ -1166,7 +1166,7 @@ int32_t toUpper(uint32_t options, - if (i == nextIndex) { - upper = 0x389; // Preserve the precomposed form. - } else { -- addTonos = TRUE; -+ addTonos = true; - } - } else if ((data & HAS_DIALYTIKA) != 0) { - // Preserve a vowel with dialytika in precomposed form if it exists. -@@ -1181,7 +1181,7 @@ int32_t toUpper(uint32_t options, - - UBool change; - if (edits == nullptr && (options & U_OMIT_UNCHANGED_TEXT) == 0) { -- change = TRUE; // common, simple usage -+ change = true; // common, simple usage - } else { - // Find out first whether we are changing the text. - change = src[i] != upper || numYpogegrammeni > 0; -diff --git a/deps/icu-small/source/common/ustring.cpp b/deps/icu-small/source/common/ustring.cpp -index 8477256389..5804976ef9 100644 ---- a/deps/icu-small/source/common/ustring.cpp -+++ b/deps/icu-small/source/common/ustring.cpp -@@ -43,13 +43,13 @@ static inline UBool - isMatchAtCPBoundary(const UChar *start, const UChar *match, const UChar *matchLimit, const UChar *limit) { - if(U16_IS_TRAIL(*match) && start!=match && U16_IS_LEAD(*(match-1))) { - /* the leading edge of the match is in the middle of a surrogate pair */ -- return FALSE; -+ return false; - } - if(U16_IS_LEAD(*(matchLimit-1)) && matchLimit!=limit && U16_IS_TRAIL(*matchLimit)) { - /* the trailing edge of the match is in the middle of a surrogate pair */ -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - U_CAPI UChar * U_EXPORT2 -@@ -461,7 +461,7 @@ u_memrchr32(const UChar *s, UChar32 c, int32_t count) { - /* - * Match each code point in a string against each code point in the matchSet. - * Return the index of the first string code point that -- * is (polarity==TRUE) or is not (FALSE) contained in the matchSet. -+ * is (polarity==true) or is not (false) contained in the matchSet. - * Return -(string length)-1 if there is no such code point. - */ - static int32_t -@@ -540,7 +540,7 @@ endloop: - U_CAPI UChar * U_EXPORT2 - u_strpbrk(const UChar *string, const UChar *matchSet) - { -- int32_t idx = _matchFromSet(string, matchSet, TRUE); -+ int32_t idx = _matchFromSet(string, matchSet, true); - if(idx >= 0) { - return (UChar *)string + idx; - } else { -@@ -552,7 +552,7 @@ u_strpbrk(const UChar *string, const UChar *matchSet) - U_CAPI int32_t U_EXPORT2 - u_strcspn(const UChar *string, const UChar *matchSet) - { -- int32_t idx = _matchFromSet(string, matchSet, TRUE); -+ int32_t idx = _matchFromSet(string, matchSet, true); - if(idx >= 0) { - return idx; - } else { -@@ -564,7 +564,7 @@ u_strcspn(const UChar *string, const UChar *matchSet) - U_CAPI int32_t U_EXPORT2 - u_strspn(const UChar *string, const UChar *matchSet) - { -- int32_t idx = _matchFromSet(string, matchSet, FALSE); -+ int32_t idx = _matchFromSet(string, matchSet, false); - if(idx >= 0) { - return idx; - } else { -@@ -929,13 +929,13 @@ u_strCompare(const UChar *s1, int32_t length1, - if(s1==NULL || length1<-1 || s2==NULL || length2<-1) { - return 0; - } -- return uprv_strCompare(s1, length1, s2, length2, FALSE, codePointOrder); -+ return uprv_strCompare(s1, length1, s2, length2, false, codePointOrder); - } - - /* String compare in code point order - u_strcmp() compares in code unit order. */ - U_CAPI int32_t U_EXPORT2 - u_strcmpCodePointOrder(const UChar *s1, const UChar *s2) { -- return uprv_strCompare(s1, -1, s2, -1, FALSE, TRUE); -+ return uprv_strCompare(s1, -1, s2, -1, false, true); - } - - U_CAPI int32_t U_EXPORT2 -@@ -960,7 +960,7 @@ u_strncmp(const UChar *s1, - - U_CAPI int32_t U_EXPORT2 - u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n) { -- return uprv_strCompare(s1, n, s2, n, TRUE, TRUE); -+ return uprv_strCompare(s1, n, s2, n, true, true); - } - - U_CAPI UChar* U_EXPORT2 -@@ -1049,10 +1049,10 @@ U_CAPI UBool U_EXPORT2 - u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number) { - - if(number<0) { -- return TRUE; -+ return true; - } - if(s==NULL || length<-1) { -- return FALSE; -+ return false; - } - - if(length==-1) { -@@ -1062,10 +1062,10 @@ u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number) { - /* count code points until they exceed */ - for(;;) { - if((c=*s++)==0) { -- return FALSE; -+ return false; - } - if(number==0) { -- return TRUE; -+ return true; - } - if(U16_IS_LEAD(c) && U16_IS_TRAIL(*s)) { - ++s; -@@ -1079,13 +1079,13 @@ u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number) { - - /* s contains at least (length+1)/2 code points: <=2 UChars per cp */ - if(((length+1)/2)>number) { -- return TRUE; -+ return true; - } - - /* check if s does not even contain enough UChars */ - maxSupplementary=length-number; - if(maxSupplementary<=0) { -- return FALSE; -+ return false; - } - /* there are maxSupplementary=length-number more UChars than asked-for code points */ - -@@ -1096,16 +1096,16 @@ u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number) { - limit=s+length; - for(;;) { - if(s==limit) { -- return FALSE; -+ return false; - } - if(number==0) { -- return TRUE; -+ return true; - } - if(U16_IS_LEAD(*s++) && s!=limit && U16_IS_TRAIL(*s)) { - ++s; - if(--maxSupplementary<=0) { - /* too many pairs - too few code points */ -- return FALSE; -+ return false; - } - } - --number; -@@ -1162,7 +1162,7 @@ u_memcmp(const UChar *buf1, const UChar *buf2, int32_t count) { - - U_CAPI int32_t U_EXPORT2 - u_memcmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t count) { -- return uprv_strCompare(s1, count, s2, count, FALSE, TRUE); -+ return uprv_strCompare(s1, count, s2, count, false, true); - } - - /* u_unescape & support fns ------------------------------------------------- */ -@@ -1223,7 +1223,7 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, - int8_t maxDig = 0; - int8_t bitsPerDigit = 4; - int32_t dig; -- UBool braces = FALSE; -+ UBool braces = false; - - /* Check that offset is in range */ - if (*offset < 0 || *offset >= length) { -@@ -1245,7 +1245,7 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, - minDig = 1; - if (*offset < length && charAt(*offset, context) == u'{') { - ++(*offset); -- braces = TRUE; -+ braces = true; - maxDig = 8; - } else { - maxDig = 2; -diff --git a/deps/icu-small/source/common/ustrtrns.cpp b/deps/icu-small/source/common/ustrtrns.cpp -index 5dc032c02f..dcb9dc5878 100644 ---- a/deps/icu-small/source/common/ustrtrns.cpp -+++ b/deps/icu-small/source/common/ustrtrns.cpp -@@ -119,7 +119,7 @@ u_strFromUTF32WithSub(UChar *dest, - } else { - ++numSubstitutions; - } -- } while(TRUE); -+ } while(true); - } - - reqLength += (int32_t)(pDest - dest); -diff --git a/deps/icu-small/source/common/utext.cpp b/deps/icu-small/source/common/utext.cpp -index ec79700ca8..548e6a60f3 100644 ---- a/deps/icu-small/source/common/utext.cpp -+++ b/deps/icu-small/source/common/utext.cpp -@@ -49,14 +49,14 @@ utext_moveIndex32(UText *ut, int32_t delta) { - UChar32 c; - if (delta > 0) { - do { -- if(ut->chunkOffset>=ut->chunkLength && !utext_access(ut, ut->chunkNativeLimit, TRUE)) { -- return FALSE; -+ if(ut->chunkOffset>=ut->chunkLength && !utext_access(ut, ut->chunkNativeLimit, true)) { -+ return false; - } - c = ut->chunkContents[ut->chunkOffset]; - if (U16_IS_SURROGATE(c)) { - c = utext_next32(ut); - if (c == U_SENTINEL) { -- return FALSE; -+ return false; - } - } else { - ut->chunkOffset++; -@@ -65,14 +65,14 @@ utext_moveIndex32(UText *ut, int32_t delta) { - - } else if (delta<0) { - do { -- if(ut->chunkOffset<=0 && !utext_access(ut, ut->chunkNativeStart, FALSE)) { -- return FALSE; -+ if(ut->chunkOffset<=0 && !utext_access(ut, ut->chunkNativeStart, false)) { -+ return false; - } - c = ut->chunkContents[ut->chunkOffset-1]; - if (U16_IS_SURROGATE(c)) { - c = utext_previous32(ut); - if (c == U_SENTINEL) { -- return FALSE; -+ return false; - } - } else { - ut->chunkOffset--; -@@ -80,7 +80,7 @@ utext_moveIndex32(UText *ut, int32_t delta) { - } while(++delta<0); - } - -- return TRUE; -+ return true; - } - - -@@ -114,7 +114,7 @@ utext_setNativeIndex(UText *ut, int64_t index) { - // Access the new position. Assume a forward iteration from here, - // which will also be optimimum for a single random access. - // Reverse iterations may suffer slightly. -- ut->pFuncs->access(ut, index, TRUE); -+ ut->pFuncs->access(ut, index, true); - } else if((int32_t)(index - ut->chunkNativeStart) <= ut->nativeIndexingLimit) { - // utf-16 indexing. - ut->chunkOffset=(int32_t)(index-ut->chunkNativeStart); -@@ -127,7 +127,7 @@ utext_setNativeIndex(UText *ut, int64_t index) { - UChar c= ut->chunkContents[ut->chunkOffset]; - if (U16_IS_TRAIL(c)) { - if (ut->chunkOffset==0) { -- ut->pFuncs->access(ut, ut->chunkNativeStart, FALSE); -+ ut->pFuncs->access(ut, ut->chunkNativeStart, false); - } - if (ut->chunkOffset>0) { - UChar lead = ut->chunkContents[ut->chunkOffset-1]; -@@ -152,7 +152,7 @@ utext_getPreviousNativeIndex(UText *ut) { - int64_t result; - if (i >= 0) { - UChar c = ut->chunkContents[i]; -- if (U16_IS_TRAIL(c) == FALSE) { -+ if (U16_IS_TRAIL(c) == false) { - if (i <= ut->nativeIndexingLimit) { - result = ut->chunkNativeStart + i; - } else { -@@ -189,14 +189,14 @@ utext_current32(UText *ut) { - UChar32 c; - if (ut->chunkOffset==ut->chunkLength) { - // Current position is just off the end of the chunk. -- if (ut->pFuncs->access(ut, ut->chunkNativeLimit, TRUE) == FALSE) { -+ if (ut->pFuncs->access(ut, ut->chunkNativeLimit, true) == false) { - // Off the end of the text. - return U_SENTINEL; - } - } - - c = ut->chunkContents[ut->chunkOffset]; -- if (U16_IS_LEAD(c) == FALSE) { -+ if (U16_IS_LEAD(c) == false) { - // Normal, non-supplementary case. - return c; - } -@@ -219,11 +219,11 @@ utext_current32(UText *ut) { - // the original position before the unpaired lead still needs to be restored. - int64_t nativePosition = ut->chunkNativeLimit; - int32_t originalOffset = ut->chunkOffset; -- if (ut->pFuncs->access(ut, nativePosition, TRUE)) { -+ if (ut->pFuncs->access(ut, nativePosition, true)) { - trail = ut->chunkContents[ut->chunkOffset]; - } -- UBool r = ut->pFuncs->access(ut, nativePosition, FALSE); // reverse iteration flag loads preceding chunk -- U_ASSERT(r==TRUE); -+ UBool r = ut->pFuncs->access(ut, nativePosition, false); // reverse iteration flag loads preceding chunk -+ U_ASSERT(r==true); - ut->chunkOffset = originalOffset; - if(!r) { - return U_SENTINEL; -@@ -246,7 +246,7 @@ utext_char32At(UText *ut, int64_t nativeIndex) { - if (nativeIndex>=ut->chunkNativeStart && nativeIndex < ut->chunkNativeStart + ut->nativeIndexingLimit) { - ut->chunkOffset = (int32_t)(nativeIndex - ut->chunkNativeStart); - c = ut->chunkContents[ut->chunkOffset]; -- if (U16_IS_SURROGATE(c) == FALSE) { -+ if (U16_IS_SURROGATE(c) == false) { - return c; - } - } -@@ -270,13 +270,13 @@ utext_next32(UText *ut) { - UChar32 c; - - if (ut->chunkOffset >= ut->chunkLength) { -- if (ut->pFuncs->access(ut, ut->chunkNativeLimit, TRUE) == FALSE) { -+ if (ut->pFuncs->access(ut, ut->chunkNativeLimit, true) == false) { - return U_SENTINEL; - } - } - - c = ut->chunkContents[ut->chunkOffset++]; -- if (U16_IS_LEAD(c) == FALSE) { -+ if (U16_IS_LEAD(c) == false) { - // Normal case, not supplementary. - // (A trail surrogate seen here is just returned as is, as a surrogate value. - // It cannot be part of a pair.) -@@ -284,14 +284,14 @@ utext_next32(UText *ut) { - } - - if (ut->chunkOffset >= ut->chunkLength) { -- if (ut->pFuncs->access(ut, ut->chunkNativeLimit, TRUE) == FALSE) { -+ if (ut->pFuncs->access(ut, ut->chunkNativeLimit, true) == false) { - // c is an unpaired lead surrogate at the end of the text. - // return it as it is. - return c; - } - } - UChar32 trail = ut->chunkContents[ut->chunkOffset]; -- if (U16_IS_TRAIL(trail) == FALSE) { -+ if (U16_IS_TRAIL(trail) == false) { - // c was an unpaired lead surrogate, not at the end of the text. - // return it as it is (unpaired). Iteration position is on the - // following character, possibly in the next chunk, where the -@@ -310,13 +310,13 @@ utext_previous32(UText *ut) { - UChar32 c; - - if (ut->chunkOffset <= 0) { -- if (ut->pFuncs->access(ut, ut->chunkNativeStart, FALSE) == FALSE) { -+ if (ut->pFuncs->access(ut, ut->chunkNativeStart, false) == false) { - return U_SENTINEL; - } - } - ut->chunkOffset--; - c = ut->chunkContents[ut->chunkOffset]; -- if (U16_IS_TRAIL(c) == FALSE) { -+ if (U16_IS_TRAIL(c) == false) { - // Normal case, not supplementary. - // (A lead surrogate seen here is just returned as is, as a surrogate value. - // It cannot be part of a pair.) -@@ -324,7 +324,7 @@ utext_previous32(UText *ut) { - } - - if (ut->chunkOffset <= 0) { -- if (ut->pFuncs->access(ut, ut->chunkNativeStart, FALSE) == FALSE) { -+ if (ut->pFuncs->access(ut, ut->chunkNativeStart, false) == false) { - // c is an unpaired trail surrogate at the start of the text. - // return it as it is. - return c; -@@ -332,7 +332,7 @@ utext_previous32(UText *ut) { - } - - UChar32 lead = ut->chunkContents[ut->chunkOffset-1]; -- if (U16_IS_LEAD(lead) == FALSE) { -+ if (U16_IS_LEAD(lead) == false) { - // c was an unpaired trail surrogate, not at the end of the text. - // return it as it is (unpaired). Iteration position is at c - return c; -@@ -351,7 +351,7 @@ utext_next32From(UText *ut, int64_t index) { - - if(indexchunkNativeStart || index>=ut->chunkNativeLimit) { - // Desired position is outside of the current chunk. -- if(!ut->pFuncs->access(ut, index, TRUE)) { -+ if(!ut->pFuncs->access(ut, index, true)) { - // no chunk available here - return U_SENTINEL; - } -@@ -391,7 +391,7 @@ utext_previous32From(UText *ut, int64_t index) { - // - if(index<=ut->chunkNativeStart || index>ut->chunkNativeLimit) { - // Requested native index is outside of the current chunk. -- if(!ut->pFuncs->access(ut, index, FALSE)) { -+ if(!ut->pFuncs->access(ut, index, false)) { - // no chunk available here - return U_SENTINEL; - } -@@ -400,7 +400,7 @@ utext_previous32From(UText *ut, int64_t index) { - ut->chunkOffset = (int32_t)(index - ut->chunkNativeStart); - } else { - ut->chunkOffset=ut->pFuncs->mapNativeIndexToUTF16(ut, index); -- if (ut->chunkOffset==0 && !ut->pFuncs->access(ut, index, FALSE)) { -+ if (ut->chunkOffset==0 && !ut->pFuncs->access(ut, index, false)) { - // no chunk available here - return U_SENTINEL; - } -@@ -438,24 +438,24 @@ utext_equals(const UText *a, const UText *b) { - a->magic != UTEXT_MAGIC || - b->magic != UTEXT_MAGIC) { - // Null or invalid arguments don't compare equal to anything. -- return FALSE; -+ return false; - } - - if (a->pFuncs != b->pFuncs) { - // Different types of text providers. -- return FALSE; -+ return false; - } - - if (a->context != b->context) { - // Different sources (different strings) -- return FALSE; -+ return false; - } - if (utext_getNativeIndex(a) != utext_getNativeIndex(b)) { - // Different current position in the string. -- return FALSE; -+ return false; - } - -- return TRUE; -+ return true; - } - - U_CAPI UBool U_EXPORT2 -@@ -987,7 +987,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { - // Don't swap buffers, but do set the - // current buffer position. - ut->chunkOffset = ut->chunkLength; -- return FALSE; -+ return false; - } else { - // End of current buffer. - // check whether other buffer already has what we need. -@@ -1016,7 +1016,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { - // Current buffer extends up to the end of the string. - // Leave it as the current buffer. - ut->chunkOffset = ut->chunkLength; -- return FALSE; -+ return false; - } - if (ix == u8b->bufNativeLimit) { - // Alternate buffer extends to the end of string. -@@ -1038,7 +1038,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { - mapIndex = ix - u8b->toUCharsMapStart; - U_ASSERT(mapIndex < (int32_t)sizeof(UTF8Buf::mapToUChars)); - ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx; -- return TRUE; -+ return true; - - } - } -@@ -1055,7 +1055,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { - // Don't swap buffers, but do set the - // current buffer position. - ut->chunkOffset = 0; -- return FALSE; -+ return false; - } else { - // Start of current buffer. - // check whether other buffer already has what we need. -@@ -1108,9 +1108,9 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { - // one of the trailing bytes. Because there is no preceding , - // character, this access fails. We can't pick up on the - // situation sooner because the requested index is not zero. -- return FALSE; -+ return false; - } else { -- return TRUE; -+ return true; - } - - -@@ -1139,7 +1139,7 @@ swapBuffers: - U_ASSERT(mapIndex<(int32_t)sizeof(u8b->mapToUChars)); - ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx; - -- return TRUE; -+ return true; - } - - -@@ -1170,7 +1170,7 @@ swapBuffers: - ut->chunkOffset = 0; - U_ASSERT(ix == u8b->bufNativeStart); - } -- return FALSE; -+ return false; - - makeStubBuffer: - // The user has done a seek/access past the start or end -@@ -1203,10 +1203,10 @@ fillForward: - ut->p = u8b_swap; - - int32_t strLen = ut->b; -- UBool nulTerminated = FALSE; -+ UBool nulTerminated = false; - if (strLen < 0) { - strLen = 0x7fffffff; -- nulTerminated = TRUE; -+ nulTerminated = true; - } - - UChar *buf = u8b_swap->buf; -@@ -1214,7 +1214,7 @@ fillForward: - uint8_t *mapToUChars = u8b_swap->mapToUChars; - int32_t destIx = 0; - int32_t srcIx = ix; -- UBool seenNonAscii = FALSE; -+ UBool seenNonAscii = false; - UChar32 c = 0; - - // Fill the chunk buffer and mapping arrays. -@@ -1230,8 +1230,8 @@ fillForward: - destIx++; - } else { - // General case, handle everything. -- if (seenNonAscii == FALSE) { -- seenNonAscii = TRUE; -+ if (seenNonAscii == false) { -+ seenNonAscii = true; - u8b_swap->bufNILimit = destIx; - } - -@@ -1269,7 +1269,7 @@ fillForward: - u8b_swap->bufNativeLimit = srcIx; - u8b_swap->bufStartIdx = 0; - u8b_swap->bufLimitIdx = destIx; -- if (seenNonAscii == FALSE) { -+ if (seenNonAscii == false) { - u8b_swap->bufNILimit = destIx; - } - u8b_swap->toUCharsMapStart = u8b_swap->bufNativeStart; -@@ -1293,7 +1293,7 @@ fillForward: - ut->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE); - } - } -- return TRUE; -+ return true; - } - - -@@ -1402,7 +1402,7 @@ fillReverse: - ut->chunkNativeStart = u8b_swap->bufNativeStart; - ut->chunkNativeLimit = u8b_swap->bufNativeLimit; - ut->nativeIndexingLimit = u8b_swap->bufNILimit; -- return TRUE; -+ return true; - } - - } -@@ -1526,7 +1526,7 @@ utf8TextExtract(UText *ut, - utext_strFromUTF8(dest, destCapacity, &destLength, - (const char *)ut->context+start32, limit32-start32, - pErrorCode); -- utf8TextAccess(ut, limit32, TRUE); -+ utf8TextAccess(ut, limit32, true); - return destLength; - } - -@@ -1760,13 +1760,13 @@ repTextAccess(UText *ut, int64_t index, UBool forward) { - if (index32>=ut->chunkNativeStart && index32chunkNativeLimit) { - // Buffer already contains the requested position. - ut->chunkOffset = (int32_t)(index - ut->chunkNativeStart); -- return TRUE; -+ return true; - } - if (index32>=length && ut->chunkNativeLimit==length) { - // Request for end of string, and buffer already extends up to it. - // Can't get the data, but don't change the buffer. - ut->chunkOffset = length - (int32_t)ut->chunkNativeStart; -- return FALSE; -+ return false; - } - - ut->chunkNativeLimit = index + REP_TEXT_CHUNK_SIZE - 1; -@@ -1787,13 +1787,13 @@ repTextAccess(UText *ut, int64_t index, UBool forward) { - if (index32>ut->chunkNativeStart && index32<=ut->chunkNativeLimit) { - // Requested position already in buffer. - ut->chunkOffset = index32 - (int32_t)ut->chunkNativeStart; -- return TRUE; -+ return true; - } - if (index32==0 && ut->chunkNativeStart==0) { - // Request for start, buffer already begins at start. - // No data, but keep the buffer as is. - ut->chunkOffset = 0; -- return FALSE; -+ return false; - } - - // Figure out the bounds of the chunk to extract for reverse iteration. -@@ -1849,7 +1849,7 @@ repTextAccess(UText *ut, int64_t index, UBool forward) { - // Use fast indexing for get/setNativeIndex() - ut->nativeIndexingLimit = ut->chunkLength; - -- return TRUE; -+ return true; - } - - -@@ -1892,7 +1892,7 @@ repTextExtract(UText *ut, - } - UnicodeString buffer(dest, 0, destCapacity); // writable alias - rep->extractBetween(start32, limit32, buffer); -- repTextAccess(ut, limit32, TRUE); -+ repTextAccess(ut, limit32, true); - - return u_terminateUChars(dest, destCapacity, length, status); - } -@@ -1948,7 +1948,7 @@ repTextReplace(UText *ut, - - // set the iteration position to the end of the newly inserted replacement text. - int32_t newIndexPos = limit32 + lengthDelta; -- repTextAccess(ut, newIndexPos, TRUE); -+ repTextAccess(ut, newIndexPos, true); - - return lengthDelta; - } -@@ -2012,7 +2012,7 @@ repTextCopy(UText *ut, - } - - // Set position, reload chunk if needed. -- repTextAccess(ut, nativeIterIndex, TRUE); -+ repTextAccess(ut, nativeIterIndex, true); - } - - static const struct UTextFuncs repFuncs = -@@ -2254,7 +2254,7 @@ unistrTextCopy(UText *ut, - - // update chunk description, set iteration position. - ut->chunkContents = us->getBuffer(); -- if (move==FALSE) { -+ if (move==false) { - // copy operation, string length grows - ut->chunkLength += limit32-start32; - ut->chunkNativeLimit = ut->chunkLength; -@@ -2525,7 +2525,7 @@ ucstrTextExtract(UText *ut, - // Access the start. Does two things we need: - // Pins 'start' to the length of the string, if it came in out-of-bounds. - // Snaps 'start' to the beginning of a code point. -- ucstrTextAccess(ut, start, TRUE); -+ ucstrTextAccess(ut, start, true); - const UChar *s=ut->chunkContents; - start32 = ut->chunkOffset; - -@@ -2579,7 +2579,7 @@ ucstrTextExtract(UText *ut, - if (si <= ut->chunkNativeLimit) { - ut->chunkOffset = si; - } else { -- ucstrTextAccess(ut, si, TRUE); -+ ucstrTextAccess(ut, si, true); - } - - // Add a terminating NUL if space in the buffer permits, -@@ -2698,11 +2698,11 @@ charIterTextAccess(UText *ut, int64_t index, UBool forward) { - neededIndex -= neededIndex % CIBufSize; - - UChar *buf = NULL; -- UBool needChunkSetup = TRUE; -+ UBool needChunkSetup = true; - int i; - if (ut->chunkNativeStart == neededIndex) { - // The buffer we want is already the current chunk. -- needChunkSetup = FALSE; -+ needChunkSetup = false; - } else if (ut->b == neededIndex) { - // The first buffer (buffer p) has what we need. - buf = (UChar *)ut->p; -@@ -2809,7 +2809,7 @@ charIterTextExtract(UText *ut, - srci += len; - } - -- charIterTextAccess(ut, copyLimit, TRUE); -+ charIterTextAccess(ut, copyLimit, true); - - u_terminateUChars(dest, destCapacity, desti, status); - return desti; -diff --git a/deps/icu-small/source/common/utf_impl.cpp b/deps/icu-small/source/common/utf_impl.cpp -index 9dd241a12b..a1f9c6529a 100644 ---- a/deps/icu-small/source/common/utf_impl.cpp -+++ b/deps/icu-small/source/common/utf_impl.cpp -@@ -55,7 +55,7 @@ - * -finish: - * (BSR: Bit Scan Reverse, scans for a 1-bit, starting from the MSB) - */ --extern "C" U_EXPORT const uint8_t -+U_CAPI const uint8_t - utf8_countTrailBytes[256]={ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -@@ -117,11 +117,11 @@ errorValue(int32_t count, int8_t strict) { - * Unicode 16-bit strings that are not well-formed UTF-16, that is, they - * contain unpaired surrogates. - * -3: All illegal byte sequences yield U+FFFD. -- * 0 Obsolete "safe" behavior of UTF8_NEXT_CHAR_SAFE(..., FALSE): -+ * 0 Obsolete "safe" behavior of UTF8_NEXT_CHAR_SAFE(..., false): - * All illegal byte sequences yield a positive code point such that this - * result code point would be encoded with the same number of bytes as - * the illegal sequence. -- * >0 Obsolete "strict" behavior of UTF8_NEXT_CHAR_SAFE(..., TRUE): -+ * >0 Obsolete "strict" behavior of UTF8_NEXT_CHAR_SAFE(..., true): - * Same as the obsolete "safe" behavior, but non-characters are also treated - * like illegal sequences. - * -@@ -214,7 +214,7 @@ utf8_appendCharSafeBody(uint8_t *s, int32_t i, int32_t length, UChar32 c, UBool - } - /* c>0x10ffff or not enough space, write an error value */ - if(pIsError!=NULL) { -- *pIsError=TRUE; -+ *pIsError=true; - } else { - length-=i; - if(length>0) { -diff --git a/deps/icu-small/source/common/util.cpp b/deps/icu-small/source/common/util.cpp -index f342172259..3dcc05578b 100644 ---- a/deps/icu-small/source/common/util.cpp -+++ b/deps/icu-small/source/common/util.cpp -@@ -214,14 +214,14 @@ int32_t ICU_Utility::skipWhitespace(const UnicodeString& str, int32_t& pos, - */ - UBool ICU_Utility::parseChar(const UnicodeString& id, int32_t& pos, UChar ch) { - int32_t start = pos; -- skipWhitespace(id, pos, TRUE); -+ skipWhitespace(id, pos, true); - if (pos == id.length() || - id.charAt(pos) != ch) { - pos = start; -- return FALSE; -+ return false; - } - ++pos; -- return TRUE; -+ return true; - } - - /** -@@ -302,7 +302,7 @@ int32_t ICU_Utility::parseAsciiInteger(const UnicodeString& str, int32_t& pos) { - - /** - * Append a character to a rule that is being built up. To flush -- * the quoteBuf to rule, make one final call with isLiteral == TRUE. -+ * the quoteBuf to rule, make one final call with isLiteral == true. - * If there is no final character, pass in (UChar32)-1 as c. - * @param rule the string to append the character to - * @param c the character to append, or (UChar32)-1 if none. -@@ -428,7 +428,7 @@ void ICU_Utility::appendToRule(UnicodeString& rule, - if (matcher != NULL) { - UnicodeString pat; - appendToRule(rule, matcher->toPattern(pat, escapeUnprintable), -- TRUE, escapeUnprintable, quoteBuf); -+ true, escapeUnprintable, quoteBuf); - } - } - -diff --git a/deps/icu-small/source/common/util.h b/deps/icu-small/source/common/util.h -index 7e6d356899..4a9ae831de 100644 ---- a/deps/icu-small/source/common/util.h -+++ b/deps/icu-small/source/common/util.h -@@ -258,7 +258,7 @@ class U_COMMON_API ICU_Utility /* not : public UObject because all methods are s - - private: - // do not instantiate -- ICU_Utility(); -+ ICU_Utility() = delete; - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/common/utrace.cpp b/deps/icu-small/source/common/utrace.cpp -index dfd2062f31..f7b8ade674 100644 ---- a/deps/icu-small/source/common/utrace.cpp -+++ b/deps/icu-small/source/common/utrace.cpp -@@ -436,7 +436,7 @@ utrace_cleanup() { - pTraceDataFunc = NULL; - utrace_level = UTRACE_OFF; - gTraceContext = NULL; -- return TRUE; -+ return true; - } - - -diff --git a/deps/icu-small/source/common/utrie.cpp b/deps/icu-small/source/common/utrie.cpp -index ecf9b1cba7..96f2397ca1 100644 ---- a/deps/icu-small/source/common/utrie.cpp -+++ b/deps/icu-small/source/common/utrie.cpp -@@ -72,14 +72,14 @@ utrie_open(UNewTrie *fillIn, - - if(aliasData!=NULL) { - trie->data=aliasData; -- trie->isDataAllocated=FALSE; -+ trie->isDataAllocated=false; - } else { - trie->data=(uint32_t *)uprv_malloc(maxDataLength*4); - if(trie->data==NULL) { - uprv_free(trie); - return NULL; - } -- trie->isDataAllocated=TRUE; -+ trie->isDataAllocated=true; - } - - /* preallocate and reset the first data block (block index 0) */ -@@ -108,7 +108,7 @@ utrie_open(UNewTrie *fillIn, - trie->indexLength=UTRIE_MAX_INDEX_LENGTH; - trie->dataCapacity=maxDataLength; - trie->isLatin1Linear=latin1Linear; -- trie->isCompacted=FALSE; -+ trie->isCompacted=false; - return trie; - } - -@@ -124,14 +124,14 @@ utrie_clone(UNewTrie *fillIn, const UNewTrie *other, uint32_t *aliasData, int32_ - - /* clone data */ - if(aliasData!=NULL && aliasDataCapacity>=other->dataCapacity) { -- isDataAllocated=FALSE; -+ isDataAllocated=false; - } else { - aliasDataCapacity=other->dataCapacity; - aliasData=(uint32_t *)uprv_malloc(other->dataCapacity*4); - if(aliasData==NULL) { - return NULL; - } -- isDataAllocated=TRUE; -+ isDataAllocated=true; - } - - trie=utrie_open(fillIn, aliasData, aliasDataCapacity, -@@ -216,7 +216,7 @@ utrie_getDataBlock(UNewTrie *trie, UChar32 c) { - } - - /** -- * @return TRUE if the value was successfully set -+ * @return true if the value was successfully set - */ - U_CAPI UBool U_EXPORT2 - utrie_set32(UNewTrie *trie, UChar32 c, uint32_t value) { -@@ -224,16 +224,16 @@ utrie_set32(UNewTrie *trie, UChar32 c, uint32_t value) { - - /* valid, uncompacted trie and valid c? */ - if(trie==NULL || trie->isCompacted || (uint32_t)c>0x10ffff) { -- return FALSE; -+ return false; - } - - block=utrie_getDataBlock(trie, c); - if(block<0) { -- return FALSE; -+ return false; - } - - trie->data[block+(c&UTRIE_MASK)]=value; -- return TRUE; -+ return true; - } - - U_CAPI uint32_t U_EXPORT2 -@@ -243,7 +243,7 @@ utrie_get32(UNewTrie *trie, UChar32 c, UBool *pInBlockZero) { - /* valid, uncompacted trie and valid c? */ - if(trie==NULL || trie->isCompacted || (uint32_t)c>0x10ffff) { - if(pInBlockZero!=NULL) { -- *pInBlockZero=TRUE; -+ *pInBlockZero=true; - } - return 0; - } -@@ -294,10 +294,10 @@ utrie_setRange32(UNewTrie *trie, UChar32 start, UChar32 limit, uint32_t value, U - if( trie==NULL || trie->isCompacted || - (uint32_t)start>0x10ffff || (uint32_t)limit>0x110000 || start>limit - ) { -- return FALSE; -+ return false; - } - if(start==limit) { -- return TRUE; /* nothing to do */ -+ return true; /* nothing to do */ - } - - initialValue=trie->data[0]; -@@ -307,7 +307,7 @@ utrie_setRange32(UNewTrie *trie, UChar32 start, UChar32 limit, uint32_t value, U - /* set partial block at [start..following block boundary[ */ - block=utrie_getDataBlock(trie, start); - if(block<0) { -- return FALSE; -+ return false; - } - - nextStart=(start+UTRIE_DATA_BLOCK_LENGTH)&~UTRIE_MASK; -@@ -318,7 +318,7 @@ utrie_setRange32(UNewTrie *trie, UChar32 start, UChar32 limit, uint32_t value, U - } else { - utrie_fillBlock(trie->data+block, start&UTRIE_MASK, limit&UTRIE_MASK, - value, initialValue, overwrite); -- return TRUE; -+ return true; - } - } - -@@ -348,12 +348,12 @@ utrie_setRange32(UNewTrie *trie, UChar32 start, UChar32 limit, uint32_t value, U - /* create and set and fill the repeatBlock */ - repeatBlock=utrie_getDataBlock(trie, start); - if(repeatBlock<0) { -- return FALSE; -+ return false; - } - - /* set the negative block number to indicate that it is a repeat block */ - trie->index[start>>UTRIE_SHIFT]=-repeatBlock; -- utrie_fillBlock(trie->data+repeatBlock, 0, UTRIE_DATA_BLOCK_LENGTH, value, initialValue, TRUE); -+ utrie_fillBlock(trie->data+repeatBlock, 0, UTRIE_DATA_BLOCK_LENGTH, value, initialValue, true); - } - } - -@@ -364,13 +364,13 @@ utrie_setRange32(UNewTrie *trie, UChar32 start, UChar32 limit, uint32_t value, U - /* set partial block at [last block boundary..limit[ */ - block=utrie_getDataBlock(trie, start); - if(block<0) { -- return FALSE; -+ return false; - } - - utrie_fillBlock(trie->data+block, 0, rest, value, initialValue, overwrite); - } - -- return TRUE; -+ return true; - } - - static int32_t -@@ -437,7 +437,7 @@ utrie_fold(UNewTrie *trie, UNewTrieGetFoldedValue *getFoldedValue, UErrorCode *p - *pErrorCode=U_MEMORY_ALLOCATION_ERROR; - return; - } -- utrie_fillBlock(trie->data+block, 0, UTRIE_DATA_BLOCK_LENGTH, trie->leadUnitValue, trie->data[0], TRUE); -+ utrie_fillBlock(trie->data+block, 0, UTRIE_DATA_BLOCK_LENGTH, trie->leadUnitValue, trie->data[0], true); - block=-block; /* negative block number to indicate that it is a repeat block */ - } - for(c=(0xd800>>UTRIE_SHIFT); c<(0xdc00>>UTRIE_SHIFT); ++c) { -@@ -579,7 +579,7 @@ _findSameDataBlock(const uint32_t *data, int32_t dataLength, - * - * The compaction - * - removes blocks that are identical with earlier ones -- * - overlaps adjacent blocks as much as possible (if overlap==TRUE) -+ * - overlaps adjacent blocks as much as possible (if overlap==true) - * - moves blocks in steps of the data granularity - * - moves and overlaps blocks that overlap with multiple values in the overlap region - * -@@ -766,15 +766,15 @@ utrie_serialize(UNewTrie *trie, void *dt, int32_t capacity, - /* fold and compact if necessary, also checks that indexLength is within limits */ - if(!trie->isCompacted) { - /* compact once without overlap to improve folding */ -- utrie_compact(trie, FALSE, pErrorCode); -+ utrie_compact(trie, false, pErrorCode); - - /* fold the supplementary part of the index array */ - utrie_fold(trie, getFoldedValue, pErrorCode); - - /* compact again with overlap for minimum data array length */ -- utrie_compact(trie, TRUE, pErrorCode); -+ utrie_compact(trie, true, pErrorCode); - -- trie->isCompacted=TRUE; -+ trie->isCompacted=true; - if(U_FAILURE(*pErrorCode)) { - return 0; - } -@@ -966,7 +966,7 @@ utrie_unserializeDummy(UTrie *trie, - return actualLength; - } - -- trie->isLatin1Linear=TRUE; -+ trie->isLatin1Linear=true; - trie->initialValue=initialValue; - - /* fill the index and data arrays */ -diff --git a/deps/icu-small/source/common/utrie2.cpp b/deps/icu-small/source/common/utrie2.cpp -index 24ef5782c9..0fb74ba1c3 100644 ---- a/deps/icu-small/source/common/utrie2.cpp -+++ b/deps/icu-small/source/common/utrie2.cpp -@@ -66,7 +66,7 @@ utrie2_get32(const UTrie2 *trie, UChar32 c) { - } else if((uint32_t)c>0x10ffff) { - return trie->errorValue; - } else { -- return get32(trie->newTrie, c, TRUE); -+ return get32(trie->newTrie, c, true); - } - } - -@@ -80,7 +80,7 @@ utrie2_get32FromLeadSurrogateCodeUnit(const UTrie2 *trie, UChar32 c) { - } else if(trie->data32!=NULL) { - return UTRIE2_GET32_FROM_U16_SINGLE_LEAD(trie, c); - } else { -- return get32(trie->newTrie, c, FALSE); -+ return get32(trie->newTrie, c, false); - } - } - -@@ -200,7 +200,7 @@ utrie2_openFromSerialized(UTrie2ValueBits valueBits, - uprv_memcpy(trie, &tempTrie, sizeof(tempTrie)); - trie->memory=(uint32_t *)data; - trie->length=actualLength; -- trie->isMemoryOwned=FALSE; -+ trie->isMemoryOwned=false; - #ifdef UTRIE2_DEBUG - trie->name="fromSerialized"; - #endif -@@ -279,7 +279,7 @@ utrie2_openDummy(UTrie2ValueBits valueBits, - return 0; - } - trie->length=length; -- trie->isMemoryOwned=TRUE; -+ trie->isMemoryOwned=true; - - /* set the UTrie2 fields */ - if(valueBits==UTRIE2_16_VALUE_BITS) { -diff --git a/deps/icu-small/source/common/utrie2.h b/deps/icu-small/source/common/utrie2.h -index d1e1e15a6e..ace52cce37 100644 ---- a/deps/icu-small/source/common/utrie2.h -+++ b/deps/icu-small/source/common/utrie2.h -@@ -591,8 +591,8 @@ U_CDECL_END - - #ifdef __cplusplus - -+#include "unicode/uobject.h" - #include "unicode/utf.h" --#include "mutex.h" - - U_NAMESPACE_BEGIN - -diff --git a/deps/icu-small/source/common/utrie2_builder.cpp b/deps/icu-small/source/common/utrie2_builder.cpp -index 8de824cc3d..2513332b80 100644 ---- a/deps/icu-small/source/common/utrie2_builder.cpp -+++ b/deps/icu-small/source/common/utrie2_builder.cpp -@@ -152,7 +152,7 @@ utrie2_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode) - newTrie->errorValue=errorValue; - newTrie->highStart=0x110000; - newTrie->firstFreeBlock=0; /* no free block in the list */ -- newTrie->isCompacted=FALSE; -+ newTrie->isCompacted=false; - - /* - * preallocate and reset -@@ -317,7 +317,7 @@ utrie2_clone(const UTrie2 *other, UErrorCode *pErrorCode) { - if(other->memory!=NULL) { - trie->memory=uprv_malloc(other->length); - if(trie->memory!=NULL) { -- trie->isMemoryOwned=TRUE; -+ trie->isMemoryOwned=true; - uprv_memcpy(trie->memory, other->memory, other->length); - - /* make the clone's pointers point to its own memory */ -@@ -357,11 +357,11 @@ copyEnumRange(const void *context, UChar32 start, UChar32 end, uint32_t value) { - if(start==end) { - utrie2_set32(nt->trie, start, value, &nt->errorCode); - } else { -- utrie2_setRange32(nt->trie, start, end, value, TRUE, &nt->errorCode); -+ utrie2_setRange32(nt->trie, start, end, value, true, &nt->errorCode); - } - return U_SUCCESS(nt->errorCode); - } else { -- return TRUE; -+ return true; - } - } - -@@ -422,7 +422,7 @@ utrie2_cloneAsThawed(const UTrie2 *other, UErrorCode *pErrorCode) { - if(U_FAILURE(*pErrorCode)) { - return NULL; - } -- context.exclusiveLimit=FALSE; -+ context.exclusiveLimit=false; - context.errorCode=*pErrorCode; - utrie2_enum(other, NULL, copyEnumRange, &context); - *pErrorCode=context.errorCode; -@@ -461,7 +461,7 @@ utrie2_fromUTrie(const UTrie *trie1, uint32_t errorValue, UErrorCode *pErrorCode - if(U_FAILURE(*pErrorCode)) { - return NULL; - } -- context.exclusiveLimit=TRUE; -+ context.exclusiveLimit=true; - context.errorCode=*pErrorCode; - utrie_enum(trie1, NULL, copyEnumRange, &context); - *pErrorCode=context.errorCode; -@@ -649,7 +649,7 @@ getDataBlock(UNewTrie2 *trie, UChar32 c, UBool forLSCP) { - } - - /** -- * @return TRUE if the value was successfully set -+ * @return true if the value was successfully set - */ - static void - set32(UNewTrie2 *trie, -@@ -683,7 +683,7 @@ utrie2_set32(UTrie2 *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode) { - *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; - return; - } -- set32(trie->newTrie, c, TRUE, value, pErrorCode); -+ set32(trie->newTrie, c, true, value, pErrorCode); - } - - U_CAPI void U_EXPORT2 -@@ -697,7 +697,7 @@ utrie2_set32ForLeadSurrogateCodeUnit(UTrie2 *trie, - *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; - return; - } -- set32(trie->newTrie, c, FALSE, value, pErrorCode); -+ set32(trie->newTrie, c, false, value, pErrorCode); - } - - static void -@@ -709,7 +709,7 @@ writeBlock(uint32_t *block, uint32_t value) { - } - - /** -- * initialValue is ignored if overwrite=TRUE -+ * initialValue is ignored if overwrite=true - * @internal - */ - static void -@@ -771,7 +771,7 @@ utrie2_setRange32(UTrie2 *trie, - UChar32 nextStart; - - /* set partial block at [start..following block boundary[ */ -- block=getDataBlock(newTrie, start, TRUE); -+ block=getDataBlock(newTrie, start, true); - if(block<0) { - *pErrorCode=U_MEMORY_ALLOCATION_ERROR; - return; -@@ -804,15 +804,15 @@ utrie2_setRange32(UTrie2 *trie, - - while(startinitialValue && isInNullBlock(newTrie, start, TRUE)) { -+ if(value==newTrie->initialValue && isInNullBlock(newTrie, start, true)) { - start+=UTRIE2_DATA_BLOCK_LENGTH; /* nothing to do */ - continue; - } - - /* get index value */ -- i2=getIndex2Block(newTrie, start, TRUE); -+ i2=getIndex2Block(newTrie, start, true); - if(i2<0) { - *pErrorCode=U_INTERNAL_PROGRAM_ERROR; - return; -@@ -827,7 +827,7 @@ utrie2_setRange32(UTrie2 *trie, - * protected (ASCII-linear or 2-byte UTF-8) block: - * replace with the repeatBlock. - */ -- setRepeatBlock=TRUE; -+ setRepeatBlock=true; - } else { - /* !overwrite, or protected block: just write the values into this block */ - fillBlock(newTrie->data+block, -@@ -851,14 +851,14 @@ utrie2_setRange32(UTrie2 *trie, - * and if we overwrite any data or if the data is all initial values - * (which is the same as the block being the null block, see above). - */ -- setRepeatBlock=TRUE; -+ setRepeatBlock=true; - } - if(setRepeatBlock) { - if(repeatBlock>=0) { - setIndex2Entry(newTrie, i2, repeatBlock); - } else { - /* create and set and fill the repeatBlock */ -- repeatBlock=getDataBlock(newTrie, start, TRUE); -+ repeatBlock=getDataBlock(newTrie, start, true); - if(repeatBlock<0) { - *pErrorCode=U_MEMORY_ALLOCATION_ERROR; - return; -@@ -872,7 +872,7 @@ utrie2_setRange32(UTrie2 *trie, - - if(rest>0) { - /* set partial block at [last block boundary..limit[ */ -- block=getDataBlock(newTrie, start, TRUE); -+ block=getDataBlock(newTrie, start, true); - if(block<0) { - *pErrorCode=U_MEMORY_ALLOCATION_ERROR; - return; -@@ -1019,7 +1019,7 @@ findHighStart(UNewTrie2 *trie, uint32_t highValue) { - * - * The compaction - * - removes blocks that are identical with earlier ones -- * - overlaps adjacent blocks as much as possible (if overlap==TRUE) -+ * - overlaps adjacent blocks as much as possible (if overlap==true) - * - moves blocks in steps of the data granularity - * - moves and overlaps blocks that overlap with multiple values in the overlap region - * -@@ -1255,7 +1255,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) { - if(highStart<0x110000) { - /* Blank out [highStart..10ffff] to release associated data blocks. */ - suppHighStart= highStart<=0x10000 ? 0x10000 : highStart; -- utrie2_setRange32(trie, suppHighStart, 0x10ffff, trie->initialValue, TRUE, pErrorCode); -+ utrie2_setRange32(trie, suppHighStart, 0x10ffff, trie->initialValue, true, pErrorCode); - if(U_FAILURE(*pErrorCode)) { - return; - } -@@ -1281,7 +1281,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) { - newTrie->data[newTrie->dataLength++]=trie->initialValue; - } - -- newTrie->isCompacted=TRUE; -+ newTrie->isCompacted=true; - } - - /* serialization ------------------------------------------------------------ */ -@@ -1382,7 +1382,7 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) { - return; - } - trie->length=length; -- trie->isMemoryOwned=TRUE; -+ trie->isMemoryOwned=true; - - trie->indexLength=allIndexesLength; - trie->dataLength=newTrie->dataLength; -diff --git a/deps/icu-small/source/common/utrie_swap.cpp b/deps/icu-small/source/common/utrie_swap.cpp -index 6e8b138394..b01b94601e 100644 ---- a/deps/icu-small/source/common/utrie_swap.cpp -+++ b/deps/icu-small/source/common/utrie_swap.cpp -@@ -294,8 +294,8 @@ namespace { - * @param data a pointer to 32-bit-aligned memory containing the serialized form of a trie - * @param length the number of bytes available at data; - * can be more than necessary (see return value) -- * @param anyEndianOk If FALSE, only platform-endian serialized forms are recognized. -- * If TRUE, opposite-endian serialized forms are recognized as well. -+ * @param anyEndianOk If false, only platform-endian serialized forms are recognized. -+ * If true, opposite-endian serialized forms are recognized as well. - * @return the trie version of the serialized form, or 0 if it is not - * recognized as a serialized trie - */ -@@ -334,7 +334,7 @@ utrie_swapAnyVersion(const UDataSwapper *ds, - const void *inData, int32_t length, void *outData, - UErrorCode *pErrorCode) { - if(U_FAILURE(*pErrorCode)) { return 0; } -- switch(getVersion(inData, length, TRUE)) { -+ switch(getVersion(inData, length, true)) { - case 1: - return utrie_swap(ds, inData, length, outData, pErrorCode); - case 2: -diff --git a/deps/icu-small/source/common/uts46.cpp b/deps/icu-small/source/common/uts46.cpp -index 6f93070339..10a4f56597 100644 ---- a/deps/icu-small/source/common/uts46.cpp -+++ b/deps/icu-small/source/common/uts46.cpp -@@ -53,10 +53,10 @@ isASCIIString(const UnicodeString &dest) { - const UChar *limit=s+dest.length(); - while(s0x7f) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - static UBool -@@ -224,19 +224,19 @@ UTS46::~UTS46() {} - UnicodeString & - UTS46::labelToASCII(const UnicodeString &label, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- return process(label, TRUE, TRUE, dest, info, errorCode); -+ return process(label, true, true, dest, info, errorCode); - } - - UnicodeString & - UTS46::labelToUnicode(const UnicodeString &label, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- return process(label, TRUE, FALSE, dest, info, errorCode); -+ return process(label, true, false, dest, info, errorCode); - } - - UnicodeString & - UTS46::nameToASCII(const UnicodeString &name, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- process(name, FALSE, TRUE, dest, info, errorCode); -+ process(name, false, true, dest, info, errorCode); - if( dest.length()>=254 && (info.errors&UIDNA_ERROR_DOMAIN_NAME_TOO_LONG)==0 && - isASCIIString(dest) && - (dest.length()>254 || dest[253]!=0x2e) -@@ -249,31 +249,31 @@ UTS46::nameToASCII(const UnicodeString &name, UnicodeString &dest, - UnicodeString & - UTS46::nameToUnicode(const UnicodeString &name, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- return process(name, FALSE, FALSE, dest, info, errorCode); -+ return process(name, false, false, dest, info, errorCode); - } - - void - UTS46::labelToASCII_UTF8(StringPiece label, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- processUTF8(label, TRUE, TRUE, dest, info, errorCode); -+ processUTF8(label, true, true, dest, info, errorCode); - } - - void - UTS46::labelToUnicodeUTF8(StringPiece label, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- processUTF8(label, TRUE, FALSE, dest, info, errorCode); -+ processUTF8(label, true, false, dest, info, errorCode); - } - - void - UTS46::nameToASCII_UTF8(StringPiece name, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- processUTF8(name, FALSE, TRUE, dest, info, errorCode); -+ processUTF8(name, false, true, dest, info, errorCode); - } - - void - UTS46::nameToUnicodeUTF8(StringPiece name, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const { -- processUTF8(name, FALSE, FALSE, dest, info, errorCode); -+ processUTF8(name, false, false, dest, info, errorCode); - } - - // UTS #46 data for ASCII characters. -@@ -561,7 +561,7 @@ UTS46::processUnicode(const UnicodeString &src, - } else if(c<0xdf) { - // pass - } else if(c<=0x200d && (c==0xdf || c==0x3c2 || c>=0x200c)) { -- info.isTransDiff=TRUE; -+ info.isTransDiff=true; - if(doMapDevChars) { - destLength=mapDevChars(dest, labelStart, labelLimit, errorCode); - if(U_FAILURE(errorCode)) { -@@ -569,7 +569,7 @@ UTS46::processUnicode(const UnicodeString &src, - } - destArray=dest.getBuffer(); - // All deviation characters have been mapped, no need to check for them again. -- doMapDevChars=FALSE; -+ doMapDevChars=false; - // Do not increment labelLimit in case c was removed. - continue; - } -@@ -610,14 +610,14 @@ UTS46::mapDevChars(UnicodeString &dest, int32_t labelStart, int32_t mappingStart - return length; - } - int32_t capacity=dest.getCapacity(); -- UBool didMapDevChars=FALSE; -+ UBool didMapDevChars=false; - int32_t readIndex=mappingStart, writeIndex=mappingStart; - do { - UChar c=s[readIndex++]; - switch(c) { - case 0xdf: - // Map sharp s to ss. -- didMapDevChars=TRUE; -+ didMapDevChars=true; - s[writeIndex++]=0x73; // Replace sharp s with first s. - // Insert second s and account for possible buffer reallocation. - if(writeIndex==readIndex) { -@@ -637,12 +637,12 @@ UTS46::mapDevChars(UnicodeString &dest, int32_t labelStart, int32_t mappingStart - ++length; - break; - case 0x3c2: // Map final sigma to nonfinal sigma. -- didMapDevChars=TRUE; -+ didMapDevChars=true; - s[writeIndex++]=0x3c3; - break; - case 0x200c: // Ignore/remove ZWNJ. - case 0x200d: // Ignore/remove ZWJ. -- didMapDevChars=TRUE; -+ didMapDevChars=true; - --length; - break; - default: -@@ -724,7 +724,7 @@ UTS46::processLabel(UnicodeString &dest, - info.labelErrors|=UIDNA_ERROR_INVALID_ACE_LABEL; - return markBadACELabel(dest, labelStart, labelLength, toASCII, info, errorCode); - } -- wasPunycode=TRUE; -+ wasPunycode=true; - UChar *unicodeBuffer=fromPunycode.getBuffer(-1); // capacity==-1: most labels should fit - if(unicodeBuffer==NULL) { - // Should never occur if we used capacity==-1 which uses the internal buffer. -@@ -772,7 +772,7 @@ UTS46::processLabel(UnicodeString &dest, - labelStart=0; - labelLength=fromPunycode.length(); - } else { -- wasPunycode=FALSE; -+ wasPunycode=false; - labelString=&dest; - } - // Validity check -@@ -932,8 +932,8 @@ UTS46::markBadACELabel(UnicodeString &dest, - return 0; - } - UBool disallowNonLDHDot=(options&UIDNA_USE_STD3_RULES)!=0; -- UBool isASCII=TRUE; -- UBool onlyLDH=TRUE; -+ UBool isASCII=true; -+ UBool onlyLDH=true; - const UChar *label=dest.getBuffer()+labelStart; - const UChar *limit=label+labelLength; - // Start after the initial "xn--". -@@ -944,16 +944,16 @@ UTS46::markBadACELabel(UnicodeString &dest, - if(c==0x2e) { - info.labelErrors|=UIDNA_ERROR_LABEL_HAS_DOT; - *s=0xfffd; -- isASCII=onlyLDH=FALSE; -+ isASCII=onlyLDH=false; - } else if(asciiData[c]<0) { -- onlyLDH=FALSE; -+ onlyLDH=false; - if(disallowNonLDHDot) { - *s=0xfffd; -- isASCII=FALSE; -+ isASCII=false; - } - } - } else { -- isASCII=onlyLDH=FALSE; -+ isASCII=onlyLDH=false; - } - } - if(onlyLDH) { -@@ -1008,7 +1008,7 @@ UTS46::checkLabelBiDi(const UChar *label, int32_t labelLength, IDNAInfo &info) c - // or AL. If it has the R or AL property, it is an RTL label; if it - // has the L property, it is an LTR label. - if((firstMask&~L_R_AL_MASK)!=0) { -- info.isOkBiDi=FALSE; -+ info.isOkBiDi=false; - } - // Get the directionality of the last non-NSM character. - uint32_t lastMask; -@@ -1034,7 +1034,7 @@ UTS46::checkLabelBiDi(const UChar *label, int32_t labelLength, IDNAInfo &info) c - (lastMask&~L_EN_MASK)!=0 : - (lastMask&~R_AL_EN_AN_MASK)!=0 - ) { -- info.isOkBiDi=FALSE; -+ info.isOkBiDi=false; - } - // Add the directionalities of the intervening characters. - uint32_t mask=firstMask|lastMask; -@@ -1046,18 +1046,18 @@ UTS46::checkLabelBiDi(const UChar *label, int32_t labelLength, IDNAInfo &info) c - // 5. In an LTR label, only characters with the BIDI properties L, EN, - // ES, CS, ET, ON, BN and NSM are allowed. - if((mask&~L_EN_ES_CS_ET_ON_BN_NSM_MASK)!=0) { -- info.isOkBiDi=FALSE; -+ info.isOkBiDi=false; - } - } else { - // 2. In an RTL label, only characters with the BIDI properties R, AL, - // AN, EN, ES, CS, ET, ON, BN and NSM are allowed. - if((mask&~R_AL_AN_EN_ES_CS_ET_ON_BN_NSM_MASK)!=0) { -- info.isOkBiDi=FALSE; -+ info.isOkBiDi=false; - } - // 4. In an RTL label, if an EN is present, no AN may be present, and - // vice versa. - if((mask&EN_AN_MASK)==EN_AN_MASK) { -- info.isOkBiDi=FALSE; -+ info.isOkBiDi=false; - } - } - // An RTL label is a label that contains at least one character of type -@@ -1067,7 +1067,7 @@ UTS46::checkLabelBiDi(const UChar *label, int32_t labelLength, IDNAInfo &info) c - // The following rule, consisting of six conditions, applies to labels - // in BIDI domain names. - if((mask&R_AL_AN_MASK)!=0) { -- info.isBiDi=TRUE; -+ info.isBiDi=true; - } - } - -@@ -1094,23 +1094,23 @@ isASCIIOkBiDi(const UChar *s, int32_t length) { - c=s[i-1]; - if(!(0x61<=c && c<=0x7a) && !(0x30<=c && c<=0x39)) { - // Last character in the label is not an L or EN. -- return FALSE; -+ return false; - } - } - labelStart=i+1; - } else if(i==labelStart) { - if(!(0x61<=c && c<=0x7a)) { - // First character in the label is not an L. -- return FALSE; -+ return false; - } - } else { - if(c<=0x20 && (c>=0x1c || (9<=c && c<=0xd))) { - // Intermediate character in the label is a B, S or WS. -- return FALSE; -+ return false; - } - } - } -- return TRUE; -+ return true; - } - - // UTF-8 version, called for source ASCII prefix. -@@ -1126,23 +1126,23 @@ isASCIIOkBiDi(const char *s, int32_t length) { - c=s[i-1]; - if(!(0x61<=c && c<=0x7a) && !(0x41<=c && c<=0x5a) && !(0x30<=c && c<=0x39)) { - // Last character in the label is not an L or EN. -- return FALSE; -+ return false; - } - } - labelStart=i+1; - } else if(i==labelStart) { - if(!(0x61<=c && c<=0x7a) && !(0x41<=c && c<=0x5a)) { - // First character in the label is not an L. -- return FALSE; -+ return false; - } - } else { - if(c<=0x20 && (c>=0x1c || (9<=c && c<=0xd))) { - // Intermediate character in the label is a B, S or WS. -- return FALSE; -+ return false; - } - } - } -- return TRUE; -+ return true; - } - - UBool -@@ -1158,7 +1158,7 @@ UTS46::isLabelOkContextJ(const UChar *label, int32_t labelLength) const { - // If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C - // (Joining_Type:T)*(Joining_Type:{R,D})) Then True; - if(i==0) { -- return FALSE; -+ return false; - } - UChar32 c; - int32_t j=i; -@@ -1171,19 +1171,19 @@ UTS46::isLabelOkContextJ(const UChar *label, int32_t labelLength) const { - UJoiningType type=ubidi_getJoiningType(c); - if(type==U_JT_TRANSPARENT) { - if(j==0) { -- return FALSE; -+ return false; - } - U16_PREV_UNSAFE(label, j, c); - } else if(type==U_JT_LEFT_JOINING || type==U_JT_DUAL_JOINING) { - break; // precontext fulfilled - } else { -- return FALSE; -+ return false; - } - } - // check postcontext (Joining_Type:T)*(Joining_Type:{R,D}) - for(j=i+1;;) { - if(j==labelLength) { -- return FALSE; -+ return false; - } - U16_NEXT_UNSAFE(label, j, c); - UJoiningType type=ubidi_getJoiningType(c); -@@ -1192,7 +1192,7 @@ UTS46::isLabelOkContextJ(const UChar *label, int32_t labelLength) const { - } else if(type==U_JT_RIGHT_JOINING || type==U_JT_DUAL_JOINING) { - break; // postcontext fulfilled - } else { -- return FALSE; -+ return false; - } - } - } else if(label[i]==0x200d) { -@@ -1201,17 +1201,17 @@ UTS46::isLabelOkContextJ(const UChar *label, int32_t labelLength) const { - // False; - // If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True; - if(i==0) { -- return FALSE; -+ return false; - } - UChar32 c; - int32_t j=i; - U16_PREV_UNSAFE(label, j, c); - if(uts46Norm2.getCombiningClass(c)!=9) { -- return FALSE; -+ return false; - } - } - } -- return TRUE; -+ return true; - } - - void -@@ -1338,23 +1338,23 @@ checkArgs(const void *label, int32_t length, - void *dest, int32_t capacity, - UIDNAInfo *pInfo, UErrorCode *pErrorCode) { - if(U_FAILURE(*pErrorCode)) { -- return FALSE; -+ return false; - } - // sizeof(UIDNAInfo)=16 in the first API version. - if(pInfo==NULL || pInfo->size<16) { - *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - if( (label==NULL ? length!=0 : length<-1) || - (dest==NULL ? capacity!=0 : capacity<0) || - (dest==label && label!=NULL) - ) { - *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - // Set all *pInfo bytes to 0 except for the size field itself. - uprv_memset(&pInfo->size+1, 0, pInfo->size-sizeof(pInfo->size)); -- return TRUE; -+ return true; - } - - static void -diff --git a/deps/icu-small/source/common/uvector.cpp b/deps/icu-small/source/common/uvector.cpp -index 844463921e..729314ae95 100644 ---- a/deps/icu-small/source/common/uvector.cpp -+++ b/deps/icu-small/source/common/uvector.cpp -@@ -193,40 +193,40 @@ int32_t UVector::elementAti(int32_t index) const { - UBool UVector::containsAll(const UVector& other) const { - for (int32_t i=0; i= 0) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - UBool UVector::removeAll(const UVector& other) { -- UBool changed = FALSE; -+ UBool changed = false; - for (int32_t i=0; i= 0) { - removeElementAt(j); -- changed = TRUE; -+ changed = true; - } - } - return changed; - } - - UBool UVector::retainAll(const UVector& other) { -- UBool changed = FALSE; -+ UBool changed = false; - for (int32_t j=size()-1; j>=0; --j) { - int32_t i = other.indexOf(elements[j]); - if (i < 0) { - removeElementAt(j); -- changed = TRUE; -+ changed = true; - } - } - return changed; -@@ -243,9 +243,9 @@ UBool UVector::removeElement(void* obj) { - int32_t i = indexOf(obj); - if (i >= 0) { - removeElementAt(i); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - void UVector::removeAllElements(void) { -@@ -263,12 +263,12 @@ UBool UVector::equals(const UVector &other) const { - int i; - - if (this->count != other.count) { -- return FALSE; -+ return false; - } - if (comparer == nullptr) { - for (i=0; i= 0) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - UBool UVector32::removeAll(const UVector32& other) { -- UBool changed = FALSE; -+ UBool changed = false; - for (int32_t i=0; i= 0) { - removeElementAt(j); -- changed = TRUE; -+ changed = true; - } - } - return changed; - } - - UBool UVector32::retainAll(const UVector32& other) { -- UBool changed = FALSE; -+ UBool changed = false; - for (int32_t j=size()-1; j>=0; --j) { - int32_t i = other.indexOf(elements[j]); - if (i < 0) { - removeElementAt(j); -- changed = TRUE; -+ changed = true; - } - } - return changed; -@@ -173,14 +173,14 @@ UBool UVector32::equals(const UVector32 &other) const { - int i; - - if (this->count != other.count) { -- return FALSE; -+ return false; - } - for (i=0; i= minimumCapacity) { -- return TRUE; -+ return true; - } - if (maxCapacity>0 && minimumCapacity>maxCapacity) { - status = U_BUFFER_OVERFLOW_ERROR; -- return FALSE; -+ return false; - } - if (capacity > (INT32_MAX - 1) / 2) { // integer overflow check - status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - int32_t newCap = capacity * 2; - if (newCap < minimumCapacity) { -@@ -226,17 +226,17 @@ UBool UVector32::expandCapacity(int32_t minimumCapacity, UErrorCode &status) { - if (newCap > (int32_t)(INT32_MAX / sizeof(int32_t))) { // integer overflow check - // We keep the original memory contents on bad minimumCapacity/maxCapacity. - status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - int32_t* newElems = (int32_t *)uprv_realloc(elements, sizeof(int32_t)*newCap); - if (newElems == NULL) { - // We keep the original contents on the memory failure on realloc. - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - elements = newElems; - capacity = newCap; -- return TRUE; -+ return true; - } - - void UVector32::setMaxCapacity(int32_t limit) { -diff --git a/deps/icu-small/source/common/uvectr32.h b/deps/icu-small/source/common/uvectr32.h -index ecefb7af3e..a7fada3833 100644 ---- a/deps/icu-small/source/common/uvectr32.h -+++ b/deps/icu-small/source/common/uvectr32.h -@@ -187,10 +187,10 @@ private: - void _init(int32_t initialCapacity, UErrorCode &status); - - // Disallow -- UVector32(const UVector32&); -+ UVector32(const UVector32&) = delete; - - // Disallow -- UVector32& operator=(const UVector32&); -+ UVector32& operator=(const UVector32&) = delete; - - - // API Functions for Stack operations. -diff --git a/deps/icu-small/source/common/uvectr64.cpp b/deps/icu-small/source/common/uvectr64.cpp -index 57315c00ff..8bd5cd7839 100644 ---- a/deps/icu-small/source/common/uvectr64.cpp -+++ b/deps/icu-small/source/common/uvectr64.cpp -@@ -117,22 +117,22 @@ void UVector64::removeAllElements(void) { - - UBool UVector64::expandCapacity(int32_t minimumCapacity, UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (minimumCapacity < 0) { - status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - if (capacity >= minimumCapacity) { -- return TRUE; -+ return true; - } - if (maxCapacity>0 && minimumCapacity>maxCapacity) { - status = U_BUFFER_OVERFLOW_ERROR; -- return FALSE; -+ return false; - } - if (capacity > (INT32_MAX - 1) / 2) { // integer overflow check - status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - int32_t newCap = capacity * 2; - if (newCap < minimumCapacity) { -@@ -144,17 +144,17 @@ UBool UVector64::expandCapacity(int32_t minimumCapacity, UErrorCode &status) { - if (newCap > (int32_t)(INT32_MAX / sizeof(int64_t))) { // integer overflow check - // We keep the original memory contents on bad minimumCapacity/maxCapacity. - status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - int64_t* newElems = (int64_t *)uprv_realloc(elements, sizeof(int64_t)*newCap); - if (newElems == NULL) { - // We keep the original contents on the memory failure on realloc. - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - elements = newElems; - capacity = newCap; -- return TRUE; -+ return true; - } - - void UVector64::setMaxCapacity(int32_t limit) { -diff --git a/deps/icu-small/source/common/uvectr64.h b/deps/icu-small/source/common/uvectr64.h -index ba3eca268d..070e2dd67d 100644 ---- a/deps/icu-small/source/common/uvectr64.h -+++ b/deps/icu-small/source/common/uvectr64.h -@@ -176,10 +176,10 @@ private: - void _init(int32_t initialCapacity, UErrorCode &status); - - // Disallow -- UVector64(const UVector64&); -+ UVector64(const UVector64&) = delete; - - // Disallow -- UVector64& operator=(const UVector64&); -+ UVector64& operator=(const UVector64&) = delete; - - - // API Functions for Stack operations. -diff --git a/deps/icu-small/source/common/wintz.cpp b/deps/icu-small/source/common/wintz.cpp -index 84a29b8d36..1bc08ae654 100644 ---- a/deps/icu-small/source/common/wintz.cpp -+++ b/deps/icu-small/source/common/wintz.cpp -@@ -274,7 +274,7 @@ uprv_detectWindowsTimeZone() - - CharString winTZ; - UErrorCode status = U_ZERO_ERROR; -- winTZ.appendInvariantChars(UnicodeString(TRUE, windowsTimeZoneName, -1), status); -+ winTZ.appendInvariantChars(UnicodeString(true, windowsTimeZoneName, -1), status); - - // Map Windows Timezone name (non-localized) to ICU timezone ID (~ Olson timezone id). - StackUResourceBundle winTZBundle; -diff --git a/deps/icu-small/source/data/in/icudt71l.dat.bz2 b/deps/icu-small/source/data/in/icudt72l.dat.bz2 -similarity index 56% -rename from deps/icu-small/source/data/in/icudt71l.dat.bz2 -rename to deps/icu-small/source/data/in/icudt72l.dat.bz2 -index 80cea637d2..9f6ed16011 100644 -Binary files a/deps/icu-small/source/data/in/icudt71l.dat.bz2 and b/deps/icu-small/source/data/in/icudt72l.dat.bz2 differ -diff --git a/deps/icu-small/source/i18n/alphaindex.cpp b/deps/icu-small/source/i18n/alphaindex.cpp -index 88d63675a7..16b9d99395 100644 ---- a/deps/icu-small/source/i18n/alphaindex.cpp -+++ b/deps/icu-small/source/i18n/alphaindex.cpp -@@ -312,7 +312,7 @@ void AlphabeticIndex::initLabels(UVector &indexCharacters, UErrorCode &errorCode - UBool checkDistinct; - int32_t itemLength = item->length(); - if (!item->hasMoreChar32Than(0, itemLength, 1)) { -- checkDistinct = FALSE; -+ checkDistinct = false; - } else if(item->charAt(itemLength - 1) == 0x2a && // '*' - item->charAt(itemLength - 2) != 0x2a) { - // Use a label if it is marked with one trailing star, -@@ -323,9 +323,9 @@ void AlphabeticIndex::initLabels(UVector &indexCharacters, UErrorCode &errorCode - errorCode = U_MEMORY_ALLOCATION_ERROR; - return; - } -- checkDistinct = FALSE; -+ checkDistinct = false; - } else { -- checkDistinct = TRUE; -+ checkDistinct = true; - } - if (collatorPrimaryOnly_->compare(*item, firstScriptBoundary, errorCode) < 0) { - // Ignore a primary-ignorable or non-alphabetic index character. -@@ -398,20 +398,20 @@ UBool hasMultiplePrimaryWeights( - const UnicodeString &s, UVector64 &ces, UErrorCode &errorCode) { - ces.removeAllElements(); - coll.internalGetCEs(s, ces, errorCode); -- if (U_FAILURE(errorCode)) { return FALSE; } -- UBool seenPrimary = FALSE; -+ if (U_FAILURE(errorCode)) { return false; } -+ UBool seenPrimary = false; - for (int32_t i = 0; i < ces.size(); ++i) { - int64_t ce = ces.elementAti(i); - uint32_t p = (uint32_t)(ce >> 32); - if (p > variableTop) { - // not primary ignorable - if (seenPrimary) { -- return TRUE; -+ return true; - } -- seenPrimary = TRUE; -+ seenPrimary = true; - } - } -- return FALSE; -+ return false; - } - - } // namespace -@@ -431,7 +431,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { - } else { - variableTop = 0; - } -- UBool hasInvisibleBuckets = FALSE; -+ UBool hasInvisibleBuckets = false; - - // Helper arrays for Chinese Pinyin collation. - Bucket *asciiBuckets[26] = { -@@ -442,7 +442,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL - }; -- UBool hasPinyin = FALSE; -+ UBool hasPinyin = false; - - LocalPointer bucketList(new UVector(errorCode), errorCode); - if (U_FAILURE(errorCode)) { -@@ -469,13 +469,13 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { - if (collatorPrimaryOnly_->compare(current, *scriptUpperBoundary, errorCode) >= 0) { - // We crossed the script boundary into a new script. - const UnicodeString &inflowBoundary = *scriptUpperBoundary; -- UBool skippedScript = FALSE; -+ UBool skippedScript = false; - for (;;) { - scriptUpperBoundary = getString(*firstCharsInScripts_, ++scriptIndex); - if (collatorPrimaryOnly_->compare(current, *scriptUpperBoundary, errorCode) < 0) { - break; - } -- skippedScript = TRUE; -+ skippedScript = true; - } - if (skippedScript && bucketList->size() > 1) { - // We are skipping one or more scripts, -@@ -498,7 +498,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { - } else if (current.length() == BASE_LENGTH + 1 && current.startsWith(BASE, BASE_LENGTH) && - 0x41 <= (c = current.charAt(BASE_LENGTH)) && c <= 0x5A) { - pinyinBuckets[c - 0x41] = (Bucket *)bucketList->lastElement(); -- hasPinyin = TRUE; -+ hasPinyin = true; - } - // Check for multiple primary weights. - if (!current.startsWith(BASE, BASE_LENGTH) && -@@ -531,7 +531,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { - bucket->displayBucket_ = singleBucket; - bucketList->adoptElement(bucket.orphan(), errorCode); - if (U_FAILURE(errorCode)) { return nullptr; } -- hasInvisibleBuckets = TRUE; -+ hasInvisibleBuckets = true; - break; - } - } -@@ -563,7 +563,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { - } - if (pinyinBuckets[i] != NULL && asciiBucket != NULL) { - pinyinBuckets[i]->displayBucket_ = asciiBucket; -- hasInvisibleBuckets = TRUE; -+ hasInvisibleBuckets = true; - } - } - } -@@ -754,7 +754,7 @@ void AlphabeticIndex::addIndexExemplars(const Locale &locale, UErrorCode &status - UBool AlphabeticIndex::addChineseIndexCharacters(UErrorCode &errorCode) { - UnicodeSet contractions; - collatorPrimaryOnly_->internalAddContractions(BASE[0], contractions, errorCode); -- if (U_FAILURE(errorCode) || contractions.isEmpty()) { return FALSE; } -+ if (U_FAILURE(errorCode) || contractions.isEmpty()) { return false; } - initialLabels_->addAll(contractions); - UnicodeSetIterator iter(contractions); - while (iter.next()) { -@@ -767,7 +767,7 @@ UBool AlphabeticIndex::addChineseIndexCharacters(UErrorCode &errorCode) { - break; - } - } -- return TRUE; -+ return true; - } - - -@@ -1028,7 +1028,7 @@ UBool isOneLabelBetterThanOther(const Normalizer2 &nfkdNormalizer, - UErrorCode status = U_ZERO_ERROR; - UnicodeString n1 = nfkdNormalizer.normalize(one, status); - UnicodeString n2 = nfkdNormalizer.normalize(other, status); -- if (U_FAILURE(status)) { return FALSE; } -+ if (U_FAILURE(status)) { return false; } - int32_t result = n1.countChar32() - n2.countChar32(); - if (result != 0) { - return result < 0; -@@ -1105,24 +1105,24 @@ int32_t AlphabeticIndex::getBucketIndex() const { - - UBool AlphabeticIndex::nextBucket(UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (buckets_ == NULL && currentBucket_ != NULL) { - status = U_ENUM_OUT_OF_SYNC_ERROR; -- return FALSE; -+ return false; - } - initBuckets(status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - ++labelsIterIndex_; - if (labelsIterIndex_ >= buckets_->getBucketCount()) { - labelsIterIndex_ = buckets_->getBucketCount(); -- return FALSE; -+ return false; - } - currentBucket_ = getBucket(*buckets_->immutableVisibleList_, labelsIterIndex_); - resetRecordIterator(); -- return TRUE; -+ return true; - } - - const UnicodeString &AlphabeticIndex::getBucketLabel() const { -@@ -1163,27 +1163,27 @@ AlphabeticIndex &AlphabeticIndex::resetBucketIterator(UErrorCode &status) { - - UBool AlphabeticIndex::nextRecord(UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (currentBucket_ == NULL) { - // We are trying to iterate over the items in a bucket, but there is no - // current bucket from the enumeration of buckets. - status = U_INVALID_STATE_ERROR; -- return FALSE; -+ return false; - } - if (buckets_ == NULL) { - status = U_ENUM_OUT_OF_SYNC_ERROR; -- return FALSE; -+ return false; - } - if (currentBucket_->records_ == NULL) { -- return FALSE; -+ return false; - } - ++itemsIterIndex_; - if (itemsIterIndex_ >= currentBucket_->records_->size()) { - itemsIterIndex_ = currentBucket_->records_->size(); -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - -diff --git a/deps/icu-small/source/i18n/anytrans.cpp b/deps/icu-small/source/i18n/anytrans.cpp -index 167b018528..e10ff479dd 100644 ---- a/deps/icu-small/source/i18n/anytrans.cpp -+++ b/deps/icu-small/source/i18n/anytrans.cpp -@@ -101,7 +101,7 @@ public: - ScriptRunIterator(const Replaceable& text, int32_t start, int32_t limit); - - /** -- * Returns TRUE if there are any more runs. TRUE is always -+ * Returns true if there are any more runs. true is always - * returned at least once. Upon return, the caller should - * examine scriptCode, start, and limit. - */ -@@ -137,7 +137,7 @@ UBool ScriptRunIterator::next() { - - // Are we done? - if (start == textLimit) { -- return FALSE; -+ return false; - } - - // Move start back to include adjacent COMMON or INHERITED -@@ -167,9 +167,9 @@ UBool ScriptRunIterator::next() { - ++limit; - } - -- // Return TRUE even if the entire text is COMMON / INHERITED, in -+ // Return true even if the entire text is COMMON / INHERITED, in - // which case scriptCode will be USCRIPT_INVALID_CODE. -- return TRUE; -+ return true; - } - - void ScriptRunIterator::adjustLimit(int32_t delta) { -@@ -358,7 +358,7 @@ static UScriptCode scriptNameToCode(const UnicodeString& name) { - void AnyTransliterator::registerIDs() { - - UErrorCode ec = U_ZERO_ERROR; -- Hashtable seen(TRUE, ec); -+ Hashtable seen(true, ec); - - int32_t sourceCount = Transliterator::_countAvailableSources(); - for (int32_t s=0; sgetOffset(localMillis, TRUE, rawOffset, dstOffset, status); -+ tz->getOffset(localMillis, true, rawOffset, dstOffset, status); - delete tz; - return localMillis - rawOffset; - }*/ -diff --git a/deps/icu-small/source/i18n/basictz.cpp b/deps/icu-small/source/i18n/basictz.cpp -index 7b5449f416..dfc3aea6cb 100644 ---- a/deps/icu-small/source/i18n/basictz.cpp -+++ b/deps/icu-small/source/i18n/basictz.cpp -@@ -39,59 +39,59 @@ UBool - BasicTimeZone::hasEquivalentTransitions(const BasicTimeZone& tz, UDate start, UDate end, - UBool ignoreDstAmount, UErrorCode& status) const { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (hasSameRules(tz)) { -- return TRUE; -+ return true; - } - // Check the offsets at the start time - int32_t raw1, raw2, dst1, dst2; -- getOffset(start, FALSE, raw1, dst1, status); -+ getOffset(start, false, raw1, dst1, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } -- tz.getOffset(start, FALSE, raw2, dst2, status); -+ tz.getOffset(start, false, raw2, dst2, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (ignoreDstAmount) { - if ((raw1 + dst1 != raw2 + dst2) - || (dst1 != 0 && dst2 == 0) - || (dst1 == 0 && dst2 != 0)) { -- return FALSE; -+ return false; - } - } else { - if (raw1 != raw2 || dst1 != dst2) { -- return FALSE; -+ return false; - } - } - // Check transitions in the range - UDate time = start; - TimeZoneTransition tr1, tr2; -- while (TRUE) { -- UBool avail1 = getNextTransition(time, FALSE, tr1); -- UBool avail2 = tz.getNextTransition(time, FALSE, tr2); -+ while (true) { -+ UBool avail1 = getNextTransition(time, false, tr1); -+ UBool avail2 = tz.getNextTransition(time, false, tr2); - - if (ignoreDstAmount) { - // Skip a transition which only differ the amount of DST savings -- while (TRUE) { -+ while (true) { - if (avail1 - && tr1.getTime() <= end - && (tr1.getFrom()->getRawOffset() + tr1.getFrom()->getDSTSavings() - == tr1.getTo()->getRawOffset() + tr1.getTo()->getDSTSavings()) - && (tr1.getFrom()->getDSTSavings() != 0 && tr1.getTo()->getDSTSavings() != 0)) { -- getNextTransition(tr1.getTime(), FALSE, tr1); -+ getNextTransition(tr1.getTime(), false, tr1); - } else { - break; - } - } -- while (TRUE) { -+ while (true) { - if (avail2 - && tr2.getTime() <= end - && (tr2.getFrom()->getRawOffset() + tr2.getFrom()->getDSTSavings() - == tr2.getTo()->getRawOffset() + tr2.getTo()->getDSTSavings()) - && (tr2.getFrom()->getDSTSavings() != 0 && tr2.getTo()->getDSTSavings() != 0)) { -- tz.getNextTransition(tr2.getTime(), FALSE, tr2); -+ tz.getNextTransition(tr2.getTime(), false, tr2); - } else { - break; - } -@@ -105,27 +105,27 @@ BasicTimeZone::hasEquivalentTransitions(const BasicTimeZone& tz, UDate start, UD - break; - } - if (!inRange1 || !inRange2) { -- return FALSE; -+ return false; - } - if (tr1.getTime() != tr2.getTime()) { -- return FALSE; -+ return false; - } - if (ignoreDstAmount) { - if (tr1.getTo()->getRawOffset() + tr1.getTo()->getDSTSavings() - != tr2.getTo()->getRawOffset() + tr2.getTo()->getDSTSavings() - || (tr1.getTo()->getDSTSavings() != 0 && tr2.getTo()->getDSTSavings() == 0) - || (tr1.getTo()->getDSTSavings() == 0 && tr2.getTo()->getDSTSavings() != 0)) { -- return FALSE; -+ return false; - } - } else { - if (tr1.getTo()->getRawOffset() != tr2.getTo()->getRawOffset() || - tr1.getTo()->getDSTSavings() != tr2.getTo()->getDSTSavings()) { -- return FALSE; -+ return false; - } - } - time = tr1.getTime(); - } -- return TRUE; -+ return true; - } - - void -@@ -147,7 +147,7 @@ BasicTimeZone::getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial, - UBool avail; - TimeZoneTransition tr; - // Get the next transition -- avail = getNextTransition(date, FALSE, tr); -+ avail = getNextTransition(date, false, tr); - if (avail) { - tr.getFrom()->getName(initialName); - initialRaw = tr.getFrom()->getRawOffset(); -@@ -182,7 +182,7 @@ BasicTimeZone::getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial, - - if (tr.getTo()->getRawOffset() == initialRaw) { - // Get the next next transition -- avail = getNextTransition(nextTransitionTime, FALSE, tr); -+ avail = getNextTransition(nextTransitionTime, false, tr); - if (avail) { - // Check if the next next transition is either DST->STD or STD->DST - // and within roughly 1 year from the next transition -@@ -201,7 +201,7 @@ BasicTimeZone::getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial, - dtr, year - 1, AnnualTimeZoneRule::MAX_YEAR); - - // Make sure this rule can be applied to the specified date -- avail = ar2->getPreviousStart(date, tr.getFrom()->getRawOffset(), tr.getFrom()->getDSTSavings(), TRUE, d); -+ avail = ar2->getPreviousStart(date, tr.getFrom()->getRawOffset(), tr.getFrom()->getDSTSavings(), true, d); - if (!avail || d > date - || initialRaw != tr.getTo()->getRawOffset() - || initialDst != tr.getTo()->getDSTSavings()) { -@@ -214,7 +214,7 @@ BasicTimeZone::getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial, - } - if (ar2 == NULL) { - // Try previous transition -- avail = getPreviousTransition(date, TRUE, tr); -+ avail = getPreviousTransition(date, true, tr); - if (avail) { - // Check if the previous transition is either DST->STD or STD->DST. - // The actual transition time does not matter here. -@@ -234,7 +234,7 @@ BasicTimeZone::getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial, - dtr, ar1->getStartYear() - 1, AnnualTimeZoneRule::MAX_YEAR); - - // Check if this rule start after the first rule after the specified date -- avail = ar2->getNextStart(date, tr.getFrom()->getRawOffset(), tr.getFrom()->getDSTSavings(), FALSE, d); -+ avail = ar2->getNextStart(date, tr.getFrom()->getRawOffset(), tr.getFrom()->getDSTSavings(), false, d); - if (!avail || d <= nextTransitionTime) { - // We cannot use this rule as the second transition rule - delete ar2; -@@ -257,14 +257,14 @@ BasicTimeZone::getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial, - } - else { - // Try the previous one -- avail = getPreviousTransition(date, TRUE, tr); -+ avail = getPreviousTransition(date, true, tr); - if (avail) { - tr.getTo()->getName(initialName); - initialRaw = tr.getTo()->getRawOffset(); - initialDst = tr.getTo()->getDSTSavings(); - } else { - // No transitions in the past. Just use the current offsets -- getOffset(date, FALSE, initialRaw, initialDst, status); -+ getOffset(date, false, initialRaw, initialDst, status); - if (U_FAILURE(status)) { - return; - } -@@ -334,7 +334,7 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, - } - } - -- avail = getPreviousTransition(start, TRUE, tzt); -+ avail = getPreviousTransition(start, true, tzt); - if (!avail) { - // No need to filter out rules only applicable to time before the start - initial = orgini->clone(); -@@ -368,13 +368,13 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, - // Mark rules which does not need to be processed - for (i = 0; i < ruleCount; i++) { - r = (TimeZoneRule*)orgRules->elementAt(i); -- avail = r->getNextStart(start, res_initial->getRawOffset(), res_initial->getDSTSavings(), FALSE, time); -+ avail = r->getNextStart(start, res_initial->getRawOffset(), res_initial->getDSTSavings(), false, time); - done[i] = !avail; - } - - time = start; - while (!bFinalStd || !bFinalDst) { -- avail = getNextTransition(time, FALSE, tzt); -+ avail = getNextTransition(time, false, tzt); - if (!avail) { - break; - } -@@ -409,8 +409,8 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, - // Get the previous raw offset and DST savings before the very first start time - TimeZoneTransition tzt0; - t = start; -- while (TRUE) { -- avail = getNextTransition(t, FALSE, tzt0); -+ while (true) { -+ avail = getNextTransition(t, false, tzt0); - if (!avail) { - break; - } -@@ -499,9 +499,9 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, - // After bot final standard and dst rules are processed, - // exit this while loop. - if (ar->getDSTSavings() == 0) { -- bFinalStd = TRUE; -+ bFinalStd = true; - } else { -- bFinalDst = TRUE; -+ bFinalDst = true; - } - } - } -diff --git a/deps/icu-small/source/i18n/buddhcal.cpp b/deps/icu-small/source/i18n/buddhcal.cpp -index 6083349ecd..de304129cb 100644 ---- a/deps/icu-small/source/i18n/buddhcal.cpp -+++ b/deps/icu-small/source/i18n/buddhcal.cpp -@@ -133,12 +133,12 @@ void BuddhistCalendar::timeToFields(UDate theTime, UBool quick, UErrorCode& stat - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gBCInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gBCInitOnce {}; - - - UBool BuddhistCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - static void U_CALLCONV -diff --git a/deps/icu-small/source/i18n/calendar.cpp b/deps/icu-small/source/i18n/calendar.cpp -index 8405d08d3c..7b8b929990 100644 ---- a/deps/icu-small/source/i18n/calendar.cpp -+++ b/deps/icu-small/source/i18n/calendar.cpp -@@ -22,7 +22,7 @@ - * 07/28/98 stephen Sync up with JDK 1.2 - * 09/02/98 stephen Sync with JDK 1.2 8/31 build (getActualMin/Max) - * 03/17/99 stephen Changed adoptTimeZone() - now fAreFieldsSet is --* set to FALSE to force update of time. -+* set to false to force update of time. - ******************************************************************************* - */ - -@@ -65,7 +65,7 @@ - - #if !UCONFIG_NO_SERVICE - static icu::ICULocaleService* gService = NULL; --static icu::UInitOnce gServiceInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gServiceInitOnce {}; - - // INTERNAL - for cleanup - U_CDECL_BEGIN -@@ -77,7 +77,7 @@ static UBool calendar_cleanup(void) { - } - gServiceInitOnce.reset(); - #endif -- return TRUE; -+ return true; - } - U_CDECL_END - #endif -@@ -210,15 +210,18 @@ SharedCalendar::~SharedCalendar() { - template<> U_I18N_API - const SharedCalendar *LocaleCacheKey::createObject( - const void * /*unusedCreationContext*/, UErrorCode &status) const { -+ if (U_FAILURE(status)) { -+ return nullptr; -+ } - Calendar *calendar = Calendar::makeInstance(fLoc, status); - if (U_FAILURE(status)) { -- return NULL; -+ return nullptr; - } - SharedCalendar *shared = new SharedCalendar(calendar); -- if (shared == NULL) { -+ if (shared == nullptr) { - delete calendar; - status = U_MEMORY_ALLOCATION_ERROR; -- return NULL; -+ return nullptr; - } - shared->addRef(); - return shared; -@@ -237,7 +240,7 @@ static ECalType getCalendarType(const char *s) { - // Only used with service registration. - static UBool isStandardSupportedKeyword(const char *keyword, UErrorCode& status) { - if(U_FAILURE(status)) { -- return FALSE; -+ return false; - } - ECalType calType = getCalendarType(keyword); - return (calType != CALTYPE_UNKNOWN); -@@ -292,7 +295,7 @@ static ECalType getCalendarTypeForLocale(const char *locid) { - // when calendar keyword is not available or not supported, read supplementalData - // to get the default calendar type for the locale's region - char region[ULOC_COUNTRY_CAPACITY]; -- (void)ulocimp_getRegionForSupplementalData(canonicalName, TRUE, region, sizeof(region), &status); -+ (void)ulocimp_getRegionForSupplementalData(canonicalName, true, region, sizeof(region), &status); - if (U_FAILURE(status)) { - return CALTYPE_GREGORIAN; - } -@@ -420,7 +423,7 @@ public: - protected: - //virtual UBool isSupportedID( const UnicodeString& id, UErrorCode& status) const { - // if(U_FAILURE(status)) { -- // return FALSE; -+ // return false; - // } - // char keyword[ULOC_FULLNAME_CAPACITY]; - // getCalendarKeyword(id, keyword, (int32_t)sizeof(keyword)); -@@ -440,6 +443,9 @@ protected: - } - - virtual UObject* create(const ICUServiceKey& key, const ICUService* /*service*/, UErrorCode& status) const override { -+ if (U_FAILURE(status)) { -+ return nullptr; -+ } - #ifdef U_DEBUG_CALSVC - if(dynamic_cast(&key) == NULL) { - fprintf(stderr, "::create - not a LocaleKey!\n"); -@@ -486,13 +492,16 @@ public: - virtual ~DefaultCalendarFactory(); - protected: - virtual UObject* create(const ICUServiceKey& key, const ICUService* /*service*/, UErrorCode& status) const override { -+ if (U_FAILURE(status)) { -+ return nullptr; -+ } - - LocaleKey &lkey = (LocaleKey&)key; - Locale loc; - lkey.currentLocale(loc); - - UnicodeString *ret = new UnicodeString(); -- if (ret == NULL) { -+ if (ret == nullptr) { - status = U_MEMORY_ALLOCATION_ERROR; - } else { - ret->append((UChar)0x40); // '@' is a variant character -@@ -531,6 +540,9 @@ public: - } - - virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /*actualID*/, UErrorCode& status) const override { -+ if (U_FAILURE(status)) { -+ return nullptr; -+ } - LocaleKey& lkey = (LocaleKey&)key; - //int32_t kind = lkey.kind(); - -@@ -577,6 +589,9 @@ initCalendarService(UErrorCode &status) - #ifdef U_DEBUG_CALSVC - fprintf(stderr, "Spinning up Calendar Service\n"); - #endif -+ if (U_FAILURE(status)) { -+ return; -+ } - ucln_i18n_registerCleanup(UCLN_I18N_CALENDAR, calendar_cleanup); - gService = new CalendarService(); - if (gService == NULL) { -@@ -639,8 +654,8 @@ static const int32_t kCalendarLimits[UCAL_FIELD_COUNT][4] = { - { 0, 0, 59, 59 }, // MINUTE - { 0, 0, 59, 59 }, // SECOND - { 0, 0, 999, 999 }, // MILLISECOND -- {-12*kOneHour, -12*kOneHour, 12*kOneHour, 15*kOneHour }, // ZONE_OFFSET -- { 0, 0, 1*kOneHour, 1*kOneHour }, // DST_OFFSET -+ {-16*kOneHour, -16*kOneHour, 12*kOneHour, 30*kOneHour }, // ZONE_OFFSET -+ { -1*kOneHour, -1*kOneHour, 2*kOneHour, 2*kOneHour }, // DST_OFFSET - {/*N/A*/-1, /*N/A*/-1, /*N/A*/-1, /*N/A*/-1}, // YEAR_WOY - { 1, 1, 7, 7 }, // DOW_LOCAL - {/*N/A*/-1, /*N/A*/-1, /*N/A*/-1, /*N/A*/-1}, // EXTENDED_YEAR -@@ -708,13 +723,13 @@ static const char gGregorian[] = "gregorian"; - - Calendar::Calendar(UErrorCode& success) - : UObject(), --fIsTimeSet(FALSE), --fAreFieldsSet(FALSE), --fAreAllFieldsSet(FALSE), --fAreFieldsVirtuallySet(FALSE), -+fIsTimeSet(false), -+fAreFieldsSet(false), -+fAreAllFieldsSet(false), -+fAreFieldsVirtuallySet(false), - fNextStamp((int32_t)kMinimumUserStamp), - fTime(0), --fLenient(TRUE), -+fLenient(true), - fZone(NULL), - fRepeatedWallTime(UCAL_WALLTIME_LAST), - fSkippedWallTime(UCAL_WALLTIME_LAST) -@@ -736,13 +751,13 @@ fSkippedWallTime(UCAL_WALLTIME_LAST) - - Calendar::Calendar(TimeZone* zone, const Locale& aLocale, UErrorCode& success) - : UObject(), --fIsTimeSet(FALSE), --fAreFieldsSet(FALSE), --fAreAllFieldsSet(FALSE), --fAreFieldsVirtuallySet(FALSE), -+fIsTimeSet(false), -+fAreFieldsSet(false), -+fAreAllFieldsSet(false), -+fAreFieldsVirtuallySet(false), - fNextStamp((int32_t)kMinimumUserStamp), - fTime(0), --fLenient(TRUE), -+fLenient(true), - fZone(NULL), - fRepeatedWallTime(UCAL_WALLTIME_LAST), - fSkippedWallTime(UCAL_WALLTIME_LAST) -@@ -771,13 +786,13 @@ fSkippedWallTime(UCAL_WALLTIME_LAST) - - Calendar::Calendar(const TimeZone& zone, const Locale& aLocale, UErrorCode& success) - : UObject(), --fIsTimeSet(FALSE), --fAreFieldsSet(FALSE), --fAreAllFieldsSet(FALSE), --fAreFieldsVirtuallySet(FALSE), -+fIsTimeSet(false), -+fAreFieldsSet(false), -+fAreAllFieldsSet(false), -+fAreFieldsVirtuallySet(false), - fNextStamp((int32_t)kMinimumUserStamp), - fTime(0), --fLenient(TRUE), -+fLenient(true), - fZone(NULL), - fRepeatedWallTime(UCAL_WALLTIME_LAST), - fSkippedWallTime(UCAL_WALLTIME_LAST) -@@ -1173,13 +1188,13 @@ Calendar::setTimeInMillis( double millis, UErrorCode& status ) { - } - - fTime = millis; -- fAreFieldsSet = fAreAllFieldsSet = FALSE; -- fIsTimeSet = fAreFieldsVirtuallySet = TRUE; -+ fAreFieldsSet = fAreAllFieldsSet = false; -+ fIsTimeSet = fAreFieldsVirtuallySet = true; - - for (int32_t i=0; i>= 1; - } -@@ -1537,7 +1561,8 @@ void Calendar::computeFields(UErrorCode &ec) - // JULIAN_DAY field and also removes some inelegant code. - Liu - // 11/6/00 - -- int32_t days = (int32_t)ClockMath::floorDivide(localMillis, (double)kOneDay); -+ int32_t millisInDay; -+ int32_t days = ClockMath::floorDivide(localMillis, kOneDay, &millisInDay); - - internalSet(UCAL_JULIAN_DAY,days + kEpochStartAsJulianDay); - -@@ -1561,19 +1586,50 @@ void Calendar::computeFields(UErrorCode &ec) - // Compute time-related fields. These are independent of the date and - // of the subclass algorithm. They depend only on the local zone - // wall milliseconds in day. -- int32_t millisInDay = (int32_t) (localMillis - (days * kOneDay)); -+ if (U_FAILURE(ec)) { -+ return; -+ } -+ - fFields[UCAL_MILLISECONDS_IN_DAY] = millisInDay; -+ U_ASSERT(getMinimum(UCAL_MILLISECONDS_IN_DAY) <= -+ fFields[UCAL_MILLISECONDS_IN_DAY]); -+ U_ASSERT(fFields[UCAL_MILLISECONDS_IN_DAY] <= -+ getMaximum(UCAL_MILLISECONDS_IN_DAY)); -+ - fFields[UCAL_MILLISECOND] = millisInDay % 1000; -+ U_ASSERT(getMinimum(UCAL_MILLISECOND) <= fFields[UCAL_MILLISECOND]); -+ U_ASSERT(fFields[UCAL_MILLISECOND] <= getMaximum(UCAL_MILLISECOND)); -+ - millisInDay /= 1000; - fFields[UCAL_SECOND] = millisInDay % 60; -+ U_ASSERT(getMinimum(UCAL_SECOND) <= fFields[UCAL_SECOND]); -+ U_ASSERT(fFields[UCAL_SECOND] <= getMaximum(UCAL_SECOND)); -+ - millisInDay /= 60; - fFields[UCAL_MINUTE] = millisInDay % 60; -+ U_ASSERT(getMinimum(UCAL_MINUTE) <= fFields[UCAL_MINUTE]); -+ U_ASSERT(fFields[UCAL_MINUTE] <= getMaximum(UCAL_MINUTE)); -+ - millisInDay /= 60; - fFields[UCAL_HOUR_OF_DAY] = millisInDay; -+ U_ASSERT(getMinimum(UCAL_HOUR_OF_DAY) <= fFields[UCAL_HOUR_OF_DAY]); -+ U_ASSERT(fFields[UCAL_HOUR_OF_DAY] <= getMaximum(UCAL_HOUR_OF_DAY)); -+ - fFields[UCAL_AM_PM] = millisInDay / 12; // Assume AM == 0 -+ U_ASSERT(getMinimum(UCAL_AM_PM) <= fFields[UCAL_AM_PM]); -+ U_ASSERT(fFields[UCAL_AM_PM] <= getMaximum(UCAL_AM_PM)); -+ - fFields[UCAL_HOUR] = millisInDay % 12; -+ U_ASSERT(getMinimum(UCAL_HOUR) <= fFields[UCAL_HOUR]); -+ U_ASSERT(fFields[UCAL_HOUR] <= getMaximum(UCAL_HOUR)); -+ - fFields[UCAL_ZONE_OFFSET] = rawOffset; -+ U_ASSERT(getMinimum(UCAL_ZONE_OFFSET) <= fFields[UCAL_ZONE_OFFSET]); -+ U_ASSERT(fFields[UCAL_ZONE_OFFSET] <= getMaximum(UCAL_ZONE_OFFSET)); -+ - fFields[UCAL_DST_OFFSET] = dstOffset; -+ U_ASSERT(getMinimum(UCAL_DST_OFFSET) <= fFields[UCAL_DST_OFFSET]); -+ U_ASSERT(fFields[UCAL_DST_OFFSET] <= getMaximum(UCAL_DST_OFFSET)); - } - - uint8_t Calendar::julianDayToDayOfWeek(double julian) -@@ -1595,6 +1651,9 @@ uint8_t Calendar::julianDayToDayOfWeek(double julian) - void Calendar::computeGregorianAndDOWFields(int32_t julianDay, UErrorCode &ec) - { - computeGregorianFields(julianDay, ec); -+ if (U_FAILURE(ec)) { -+ return; -+ } - - // Compute day of week: JD 0 = Monday - int32_t dow = julianDayToDayOfWeek(julianDay); -@@ -1616,7 +1675,10 @@ void Calendar::computeGregorianAndDOWFields(int32_t julianDay, UErrorCode &ec) - * subclasses that are Gregorian derivatives. Subclasses may call this - * method to perform a Gregorian calendar millis->fields computation. - */ --void Calendar::computeGregorianFields(int32_t julianDay, UErrorCode & /* ec */) { -+void Calendar::computeGregorianFields(int32_t julianDay, UErrorCode& ec) { -+ if (U_FAILURE(ec)) { -+ return; -+ } - int32_t gregorianDayOfWeekUnused; - Grego::dayToFields(julianDay - kEpochStartAsJulianDay, fGregorianYear, fGregorianMonth, fGregorianDayOfMonth, gregorianDayOfWeekUnused, fGregorianDayOfYear); - } -@@ -1699,11 +1761,20 @@ void Calendar::computeWeekFields(UErrorCode &ec) { - } - fFields[UCAL_WEEK_OF_YEAR] = woy; - fFields[UCAL_YEAR_WOY] = yearOfWeekOfYear; -+ // min/max of years are not constrains for caller, so not assert here. - // WEEK_OF_YEAR end - - int32_t dayOfMonth = fFields[UCAL_DAY_OF_MONTH]; - fFields[UCAL_WEEK_OF_MONTH] = weekNumber(dayOfMonth, dayOfWeek); -+ U_ASSERT(getMinimum(UCAL_WEEK_OF_MONTH) <= fFields[UCAL_WEEK_OF_MONTH]); -+ U_ASSERT(fFields[UCAL_WEEK_OF_MONTH] <= getMaximum(UCAL_WEEK_OF_MONTH)); -+ - fFields[UCAL_DAY_OF_WEEK_IN_MONTH] = (dayOfMonth-1) / 7 + 1; -+ U_ASSERT(getMinimum(UCAL_DAY_OF_WEEK_IN_MONTH) <= -+ fFields[UCAL_DAY_OF_WEEK_IN_MONTH]); -+ U_ASSERT(fFields[UCAL_DAY_OF_WEEK_IN_MONTH] <= -+ getMaximum(UCAL_DAY_OF_WEEK_IN_MONTH)); -+ - #if defined (U_DEBUG_CAL) - if(fFields[UCAL_DAY_OF_WEEK_IN_MONTH]==0) fprintf(stderr, "%s:%d: DOWIM %d on %g\n", - __FILE__, __LINE__,fFields[UCAL_DAY_OF_WEEK_IN_MONTH], fTime); -@@ -1732,8 +1803,11 @@ int32_t Calendar::weekNumber(int32_t desiredDay, int32_t dayOfPeriod, int32_t da - return weekNo; - } - --void Calendar::handleComputeFields(int32_t /* julianDay */, UErrorCode &/* status */) -+void Calendar::handleComputeFields(int32_t /* julianDay */, UErrorCode& status) - { -+ if (U_FAILURE(status)) { -+ return; -+ } - internalSet(UCAL_MONTH, getGregorianMonth()); - internalSet(UCAL_DAY_OF_MONTH, getGregorianDayOfMonth()); - internalSet(UCAL_DAY_OF_YEAR, getGregorianDayOfYear()); -@@ -1842,13 +1916,13 @@ void Calendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& statu - // * If era==0 and years go backwards in time, change sign of amount. - // * Until we have new API per #9393, we temporarily hardcode knowledge of - // which calendars have era 0 years that go backwards. -- UBool era0WithYearsThatGoBackwards = FALSE; -+ UBool era0WithYearsThatGoBackwards = false; - int32_t era = get(UCAL_ERA, status); - if (era == 0) { - const char * calType = getType(); - if ( uprv_strcmp(calType,"gregorian")==0 || uprv_strcmp(calType,"roc")==0 || uprv_strcmp(calType,"coptic")==0 ) { - amount = -amount; -- era0WithYearsThatGoBackwards = TRUE; -+ era0WithYearsThatGoBackwards = true; - } - } - int32_t newYear = internalGet(field) + amount; -@@ -2103,6 +2177,9 @@ void Calendar::add(EDateFields field, int32_t amount, UErrorCode& status) - // ------------------------------------- - void Calendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& status) - { -+ if (U_FAILURE(status)) { -+ return; -+ } - if (amount == 0) { - return; // Do nothing! - } -@@ -2114,7 +2191,7 @@ void Calendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& status - // we don't want the wall time to shift due to changes in DST. If the - // result of the add operation is to move from DST to Standard, or - // vice versa, we need to adjust by an hour forward or back, -- // respectively. For such fields we set keepWallTimeInvariant to TRUE. -+ // respectively. For such fields we set keepWallTimeInvariant to true. - - // We only adjust the DST for fields larger than an hour. For - // fields smaller than an hour, we cannot adjust for DST without -@@ -2129,7 +2206,7 @@ void Calendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& status - // , rather than => . - - double delta = amount; // delta in ms -- UBool keepWallTimeInvariant = TRUE; -+ UBool keepWallTimeInvariant = true; - - switch (field) { - case UCAL_ERA: -@@ -2161,10 +2238,10 @@ void Calendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& status - case UCAL_MONTH: - { - UBool oldLenient = isLenient(); -- setLenient(TRUE); -+ setLenient(true); - set(field, get(field, status) + amount); - pinField(UCAL_DAY_OF_MONTH, status); -- if(oldLenient==FALSE) { -+ if(oldLenient==false) { - complete(status); /* force recalculate */ - setLenient(oldLenient); - } -@@ -2192,22 +2269,22 @@ void Calendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& status - case UCAL_HOUR_OF_DAY: - case UCAL_HOUR: - delta *= kOneHour; -- keepWallTimeInvariant = FALSE; -+ keepWallTimeInvariant = false; - break; - - case UCAL_MINUTE: - delta *= kOneMinute; -- keepWallTimeInvariant = FALSE; -+ keepWallTimeInvariant = false; - break; - - case UCAL_SECOND: - delta *= kOneSecond; -- keepWallTimeInvariant = FALSE; -+ keepWallTimeInvariant = false; - break; - - case UCAL_MILLISECOND: - case UCAL_MILLISECONDS_IN_DAY: -- keepWallTimeInvariant = FALSE; -+ keepWallTimeInvariant = false; - break; - - default: -@@ -2400,7 +2477,7 @@ Calendar::adoptTimeZone(TimeZone* zone) - fZone = zone; - - // if the zone changes, we need to recompute the time fields -- fAreFieldsSet = FALSE; -+ fAreFieldsSet = false; - } - - // ------------------------------------- -@@ -2493,7 +2570,7 @@ Calendar::setFirstDayOfWeek(UCalendarDaysOfWeek value) - if (fFirstDayOfWeek != value && - value >= UCAL_SUNDAY && value <= UCAL_SATURDAY) { - fFirstDayOfWeek = value; -- fAreFieldsSet = FALSE; -+ fAreFieldsSet = false; - } - } - -@@ -2525,7 +2602,7 @@ Calendar::setMinimalDaysInFirstWeek(uint8_t value) - } - if (fMinimalDaysInFirstWeek != value) { - fMinimalDaysInFirstWeek = value; -- fAreFieldsSet = FALSE; -+ fAreFieldsSet = false; - } - } - -@@ -2592,15 +2669,15 @@ UBool - Calendar::isWeekend(UDate date, UErrorCode &status) const - { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - // clone the calendar so we don't mess with the real one. - Calendar *work = this->clone(); - if (work == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } -- UBool result = FALSE; -+ UBool result = false; - work->setTime(date, status); - if (U_SUCCESS(status)) { - result = work->isWeekend(); -@@ -2618,9 +2695,9 @@ Calendar::isWeekend(void) const - if (U_SUCCESS(status)) { - switch (dayType) { - case UCAL_WEEKDAY: -- return FALSE; -+ return false; - case UCAL_WEEKEND: -- return TRUE; -+ return true; - case UCAL_WEEKEND_ONSET: - case UCAL_WEEKEND_CEASE: - // Use internalGet() because the above call to get() populated all fields. -@@ -2632,14 +2709,14 @@ Calendar::isWeekend(void) const - (millisInDay >= transitionMillis): - (millisInDay < transitionMillis); - } -- // else fall through, return FALSE -+ // else fall through, return false - U_FALLTHROUGH; - } - default: - break; - } - } -- return FALSE; -+ return false; - } - - // ------------------------------------- limits -@@ -2745,6 +2822,9 @@ int32_t Calendar::getLimit(UCalendarDateFields field, ELimitType limitType) cons - int32_t - Calendar::getActualMinimum(UCalendarDateFields field, UErrorCode& status) const - { -+ if (U_FAILURE(status)) { -+ return 0; -+ } - int32_t fieldValue = getGreatestMinimum(field); - int32_t endValue = getMinimum(field); - -@@ -2760,7 +2840,7 @@ Calendar::getActualMinimum(UCalendarDateFields field, UErrorCode& status) const - status = U_MEMORY_ALLOCATION_ERROR; - return 0; - } -- work->setLenient(TRUE); -+ work->setLenient(true); - - // now try each value from getLeastMaximum() to getMaximum() one by one until - // we get a value that normalizes to another value. The last value that -@@ -2799,6 +2879,9 @@ Calendar::getActualMinimum(UCalendarDateFields field, UErrorCode& status) const - * @see #validateField(int) - */ - void Calendar::validateFields(UErrorCode &status) { -+ if (U_FAILURE(status)) { -+ return; -+ } - for (int32_t field = 0; U_SUCCESS(status) && (field < UCAL_FIELD_COUNT); field++) { - if (fStamp[field] >= kMinimumUserStamp) { - validateField((UCalendarDateFields)field, status); -@@ -2814,6 +2897,9 @@ void Calendar::validateFields(UErrorCode &status) { - * @see #validateField(int, int, int) - */ - void Calendar::validateField(UCalendarDateFields field, UErrorCode &status) { -+ if (U_FAILURE(status)) { -+ return; -+ } - int32_t y; - switch (field) { - case UCAL_DAY_OF_MONTH: -@@ -2850,6 +2936,9 @@ void Calendar::validateField(UCalendarDateFields field, UErrorCode &status) { - */ - void Calendar::validateField(UCalendarDateFields field, int32_t min, int32_t max, UErrorCode& status) - { -+ if (U_FAILURE(status)) { -+ return; -+ } - int32_t value = fFields[field]; - if (value < min || value > max) { - #if defined (U_DEBUG_CAL) -@@ -2972,6 +3061,9 @@ const UFieldResolutionTable Calendar::kYearPrecedence[] = - - - void Calendar::computeTime(UErrorCode& status) { -+ if (U_FAILURE(status)) { -+ return; -+ } - if (!isLenient()) { - validateFields(status); - if (U_FAILURE(status)) { -@@ -3050,7 +3142,7 @@ void Calendar::computeTime(UErrorCode& status) { - UDate tmpTime = millis + millisInDay - zoneOffset; - - int32_t raw, dst; -- fZone->getOffset(tmpTime, FALSE, raw, dst, status); -+ fZone->getOffset(tmpTime, false, raw, dst, status); - - if (U_SUCCESS(status)) { - // zoneOffset != (raw + dst) only when the given wall time fall into -@@ -3086,13 +3178,16 @@ void Calendar::computeTime(UErrorCode& status) { - * Find the previous zone transition near the given time. - */ - UBool Calendar::getImmediatePreviousZoneTransition(UDate base, UDate *transitionTime, UErrorCode& status) const { -+ if (U_FAILURE(status)) { -+ return false; -+ } - BasicTimeZone *btz = getBasicTimeZone(); - if (btz) { - TimeZoneTransition trans; -- UBool hasTransition = btz->getPreviousTransition(base, TRUE, trans); -+ UBool hasTransition = btz->getPreviousTransition(base, true, trans); - if (hasTransition) { - *transitionTime = trans.getTime(); -- return TRUE; -+ return true; - } else { - // Could not find any transitions. - // Note: This should never happen. -@@ -3103,7 +3198,7 @@ UBool Calendar::getImmediatePreviousZoneTransition(UDate base, UDate *transition - // TODO: We may support non-BasicTimeZone in future. - status = U_UNSUPPORTED_ERROR; - } -- return FALSE; -+ return false; - } - - /** -@@ -3159,6 +3254,9 @@ double Calendar::computeMillisInDay() { - * @stable ICU 2.0 - */ - int32_t Calendar::computeZoneOffset(double millis, double millisInDay, UErrorCode &ec) { -+ if (U_FAILURE(ec)) { -+ return 0; -+ } - int32_t rawOffset, dstOffset; - UDate wall = millis + millisInDay; - BasicTimeZone* btz = getBasicTimeZone(); -@@ -3169,9 +3267,9 @@ int32_t Calendar::computeZoneOffset(double millis, double millisInDay, UErrorCod - } else { - const TimeZone& tz = getTimeZone(); - // By default, TimeZone::getOffset behaves UCAL_WALLTIME_LAST for both. -- tz.getOffset(wall, TRUE, rawOffset, dstOffset, ec); -+ tz.getOffset(wall, true, rawOffset, dstOffset, ec); - -- UBool sawRecentNegativeShift = FALSE; -+ UBool sawRecentNegativeShift = false; - if (fRepeatedWallTime == UCAL_WALLTIME_FIRST) { - // Check if the given wall time falls into repeated time range - UDate tgmt = wall - (rawOffset + dstOffset); -@@ -3180,16 +3278,16 @@ int32_t Calendar::computeZoneOffset(double millis, double millisInDay, UErrorCod - // Note: The maximum historic negative zone transition is -3 hours in the tz database. - // 6 hour window would be sufficient for this purpose. - int32_t tmpRaw, tmpDst; -- tz.getOffset(tgmt - 6*60*60*1000, FALSE, tmpRaw, tmpDst, ec); -+ tz.getOffset(tgmt - 6*60*60*1000, false, tmpRaw, tmpDst, ec); - int32_t offsetDelta = (rawOffset + dstOffset) - (tmpRaw + tmpDst); - - U_ASSERT(offsetDelta < -6*60*60*1000); - if (offsetDelta < 0) { -- sawRecentNegativeShift = TRUE; -+ sawRecentNegativeShift = true; - // Negative shift within last 6 hours. When UCAL_WALLTIME_FIRST is used and the given wall time falls - // into the repeated time range, use offsets before the transition. - // Note: If it does not fall into the repeated time range, offsets remain unchanged below. -- tz.getOffset(wall + offsetDelta, TRUE, rawOffset, dstOffset, ec); -+ tz.getOffset(wall + offsetDelta, true, rawOffset, dstOffset, ec); - } - } - if (!sawRecentNegativeShift && fSkippedWallTime == UCAL_WALLTIME_FIRST) { -@@ -3199,7 +3297,7 @@ int32_t Calendar::computeZoneOffset(double millis, double millisInDay, UErrorCod - // the offsets will be based on the zone offsets AFTER - // the transition (which means, earliest possible interpretation). - UDate tgmt = wall - (rawOffset + dstOffset); -- tz.getOffset(tgmt, FALSE, rawOffset, dstOffset, ec); -+ tz.getOffset(tgmt, false, rawOffset, dstOffset, ec); - } - } - return rawOffset + dstOffset; -@@ -3343,7 +3441,7 @@ int32_t Calendar::handleComputeJulianDay(UCalendarDateFields bestField) { - // need to be sure to stay in 'real' year. - int32_t woy = internalGet(bestField); - -- int32_t nextJulianDay = handleComputeMonthStart(year+1, 0, FALSE); // jd of day before jan 1 -+ int32_t nextJulianDay = handleComputeMonthStart(year+1, 0, false); // jd of day before jan 1 - int32_t nextFirst = julianDayToDayOfWeek(nextJulianDay + 1) - firstDayOfWeek; - - if (nextFirst < 0) { // 0..6 ldow of Jan 1 -@@ -3394,7 +3492,7 @@ int32_t Calendar::handleComputeJulianDay(UCalendarDateFields bestField) { - #endif - if(julianDay+testDate > nextJulianDay) { // is it past Dec 31? (nextJulianDay is day BEFORE year+1's Jan 1) - // Fire up the calculating engines.. retry YWOY = (year-1) -- julianDay = handleComputeMonthStart(year-1, 0, FALSE); // jd before Jan 1 of previous year -+ julianDay = handleComputeMonthStart(year-1, 0, false); // jd before Jan 1 of previous year - first = julianDayToDayOfWeek(julianDay + 1) - firstDayOfWeek; // 0 based local dow of first week - - if(first < 0) { // 0..6 -@@ -3474,8 +3572,8 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w - // Now, a local DOW - int32_t dowLocal = getLocalDOW(); // 0..6 - int32_t firstDayOfWeek = getFirstDayOfWeek(); // Localized fdw -- int32_t jan1Start = handleComputeMonthStart(yearWoy, 0, FALSE); -- int32_t nextJan1Start = handleComputeMonthStart(yearWoy+1, 0, FALSE); // next year's Jan1 start -+ int32_t jan1Start = handleComputeMonthStart(yearWoy, 0, false); -+ int32_t nextJan1Start = handleComputeMonthStart(yearWoy+1, 0, false); // next year's Jan1 start - - // At this point julianDay is the 0-based day BEFORE the first day of - // January 1, year 1 of the given calendar. If julianDay == 0, it -@@ -3501,21 +3599,21 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w - //} - - int32_t minDays = getMinimalDaysInFirstWeek(); -- UBool jan1InPrevYear = FALSE; // January 1st in the year of WOY is the 1st week? (i.e. first week is < minimal ) -- //UBool nextJan1InPrevYear = FALSE; // January 1st of Year of WOY + 1 is in the first week? -+ UBool jan1InPrevYear = false; // January 1st in the year of WOY is the 1st week? (i.e. first week is < minimal ) -+ //UBool nextJan1InPrevYear = false; // January 1st of Year of WOY + 1 is in the first week? - - if((7 - first) < minDays) { -- jan1InPrevYear = TRUE; -+ jan1InPrevYear = true; - } - - // if((7 - nextFirst) < minDays) { -- // nextJan1InPrevYear = TRUE; -+ // nextJan1InPrevYear = true; - // } - - switch(bestField) { - case UCAL_WEEK_OF_YEAR: - if(woy == 1) { -- if(jan1InPrevYear == TRUE) { -+ if(jan1InPrevYear == true) { - // the first week of January is in the previous year - // therefore WOY1 is always solidly within yearWoy - return yearWoy; -@@ -3534,7 +3632,7 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w - (7-first) + // days in the first week (Jan 1.. ) - (woy-1)*7 + // add the weeks of the year - dowLocal; // the local dow (0..6) of last week -- if(jan1InPrevYear==FALSE) { -+ if(jan1InPrevYear==false) { - jd -= 7; // woy already includes Jan 1's week. - } - -@@ -3576,18 +3674,21 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w - - int32_t Calendar::handleGetMonthLength(int32_t extendedYear, int32_t month) const - { -- return handleComputeMonthStart(extendedYear, month+1, TRUE) - -- handleComputeMonthStart(extendedYear, month, TRUE); -+ return handleComputeMonthStart(extendedYear, month+1, true) - -+ handleComputeMonthStart(extendedYear, month, true); - } - - int32_t Calendar::handleGetYearLength(int32_t eyear) const { -- return handleComputeMonthStart(eyear+1, 0, FALSE) - -- handleComputeMonthStart(eyear, 0, FALSE); -+ return handleComputeMonthStart(eyear+1, 0, false) - -+ handleComputeMonthStart(eyear, 0, false); - } - - int32_t - Calendar::getActualMaximum(UCalendarDateFields field, UErrorCode& status) const - { -+ if (U_FAILURE(status)) { -+ return 0; -+ } - int32_t result; - switch (field) { - case UCAL_DATE: -@@ -3595,8 +3696,8 @@ Calendar::getActualMaximum(UCalendarDateFields field, UErrorCode& status) const - if(U_FAILURE(status)) return 0; - Calendar *cal = clone(); - if(!cal) { status = U_MEMORY_ALLOCATION_ERROR; return 0; } -- cal->setLenient(TRUE); -- cal->prepareGetActual(field,FALSE,status); -+ cal->setLenient(true); -+ cal->prepareGetActual(field,false,status); - result = handleGetMonthLength(cal->get(UCAL_EXTENDED_YEAR, status), cal->get(UCAL_MONTH, status)); - delete cal; - } -@@ -3607,8 +3708,8 @@ Calendar::getActualMaximum(UCalendarDateFields field, UErrorCode& status) const - if(U_FAILURE(status)) return 0; - Calendar *cal = clone(); - if(!cal) { status = U_MEMORY_ALLOCATION_ERROR; return 0; } -- cal->setLenient(TRUE); -- cal->prepareGetActual(field,FALSE,status); -+ cal->setLenient(true); -+ cal->prepareGetActual(field,false,status); - result = handleGetYearLength(cal->get(UCAL_EXTENDED_YEAR, status)); - delete cal; - } -@@ -3662,6 +3763,9 @@ Calendar::getActualMaximum(UCalendarDateFields field, UErrorCode& status) const - */ - void Calendar::prepareGetActual(UCalendarDateFields field, UBool isMinimum, UErrorCode &status) - { -+ if (U_FAILURE(status)) { -+ return; -+ } - set(UCAL_MILLISECONDS_IN_DAY, 0); - - switch (field) { -@@ -3717,6 +3821,9 @@ int32_t Calendar::getActualHelper(UCalendarDateFields field, int32_t startValue, - #if defined (U_DEBUG_CAL) - fprintf(stderr, "getActualHelper(%d,%d .. %d, %s)\n", field, startValue, endValue, u_errorName(status)); - #endif -+ if (U_FAILURE(status)) { -+ return 0; -+ } - if (startValue == endValue) { - // if we know that the maximum value is always the same, just return it - return startValue; -@@ -3734,7 +3841,7 @@ int32_t Calendar::getActualHelper(UCalendarDateFields field, int32_t startValue, - // may cause conflict with fields previously set (but not yet resolved). - work->complete(status); - -- work->setLenient(TRUE); -+ work->setLenient(true); - work->prepareGetActual(field, delta < 0, status); - - // now try each value from the start to the end one by one until -@@ -3850,7 +3957,7 @@ Calendar::setWeekData(const Locale& desiredLocale, const char *type, UErrorCode& - } - - char region[ULOC_COUNTRY_CAPACITY]; -- (void)ulocimp_getRegionForSupplementalData(desiredLocale.getName(), TRUE, region, sizeof(region), &status); -+ (void)ulocimp_getRegionForSupplementalData(desiredLocale.getName(), true, region, sizeof(region), &status); - - // Read week data values from supplementalData week data - UResourceBundle *rb = ures_openDirect(NULL, "supplementalData", &status); -@@ -3901,10 +4008,10 @@ Calendar::updateTime(UErrorCode& status) - // the values. Also, if we haven't set all the fields yet (i.e., - // in a newly-created object), we need to fill in the fields. [LIU] - if (isLenient() || ! fAreAllFieldsSet) -- fAreFieldsSet = FALSE; -+ fAreFieldsSet = false; - -- fIsTimeSet = TRUE; -- fAreFieldsVirtuallySet = FALSE; -+ fIsTimeSet = true; -+ fAreFieldsVirtuallySet = false; - } - - Locale -diff --git a/deps/icu-small/source/i18n/casetrn.cpp b/deps/icu-small/source/i18n/casetrn.cpp -index bb650f8fa2..a065330cac 100644 ---- a/deps/icu-small/source/i18n/casetrn.cpp -+++ b/deps/icu-small/source/i18n/casetrn.cpp -@@ -71,13 +71,13 @@ utrans_rep_caseContextIterator(void *context, int8_t dir) - c=rep->char32At(csc->index); - if(c<0) { - csc->limit=csc->index; -- csc->b1=TRUE; -+ csc->b1=true; - } else { - csc->index+=U16_LENGTH(c); - return c; - } - } else { -- csc->b1=TRUE; -+ csc->b1=true; - } - } - return U_SENTINEL; -@@ -170,7 +170,7 @@ void CaseMapTransliterator::handleTransliterate(Replaceable& text, - // see UCASE_MAX_STRING_LENGTH - if(result<=UCASE_MAX_STRING_LENGTH) { - // string s[result] -- tmp.setTo(FALSE, s, result); -+ tmp.setTo(false, s, result); - delta=result-U16_LENGTH(c); - } else { - // single code point -diff --git a/deps/icu-small/source/i18n/cecal.cpp b/deps/icu-small/source/i18n/cecal.cpp -index cb97c40a3c..60e3d4b265 100644 ---- a/deps/icu-small/source/i18n/cecal.cpp -+++ b/deps/icu-small/source/i18n/cecal.cpp -@@ -90,19 +90,19 @@ UBool - CECalendar::inDaylightTime(UErrorCode& status) const - { - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) { -- return FALSE; -+ return false; - } - - // Force an update of the state of the Calendar. - ((CECalendar*)this)->complete(status); // cast away const - -- return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE); -+ return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : false); - } - - UBool - CECalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - //------------------------------------------------------------------------- -@@ -135,7 +135,7 @@ CECalendar::jdToCE(int32_t julianDay, int32_t jdEpochOffset, int32_t& year, int3 - int32_t c4; // number of 4 year cycle (1461 days) - int32_t r4; // remainder of 4 year cycle, always positive - -- c4 = ClockMath::floorDivide(julianDay - jdEpochOffset, 1461, r4); -+ c4 = ClockMath::floorDivide(julianDay - jdEpochOffset, 1461, &r4); - - year = 4 * c4 + (r4/365 - r4/1460); // 4 * + - -diff --git a/deps/icu-small/source/i18n/chnsecal.cpp b/deps/icu-small/source/i18n/chnsecal.cpp -index f8fb4a40f1..e48c90eb5a 100644 ---- a/deps/icu-small/source/i18n/chnsecal.cpp -+++ b/deps/icu-small/source/i18n/chnsecal.cpp -@@ -59,7 +59,7 @@ static icu::CalendarCache *gChineseCalendarWinterSolsticeCache = NULL; - static icu::CalendarCache *gChineseCalendarNewYearCache = NULL; - - static icu::TimeZone *gChineseCalendarZoneAstroCalc = NULL; --static icu::UInitOnce gChineseCalendarZoneAstroCalcInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gChineseCalendarZoneAstroCalcInitOnce {}; - - /** - * The start year of the Chinese calendar, the 61st year of the reign -@@ -103,7 +103,7 @@ static UBool calendar_chinese_cleanup(void) { - gChineseCalendarZoneAstroCalc = NULL; - } - gChineseCalendarZoneAstroCalcInitOnce.reset(); -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -124,7 +124,7 @@ ChineseCalendar* ChineseCalendar::clone() const { - - ChineseCalendar::ChineseCalendar(const Locale& aLocale, UErrorCode& success) - : Calendar(TimeZone::forLocaleOrDefault(aLocale), aLocale, success), -- isLeapYear(FALSE), -+ isLeapYear(false), - fEpochYear(CHINESE_EPOCH_YEAR), - fZoneAstroCalc(getChineseCalZoneAstroCalc()) - { -@@ -134,7 +134,7 @@ ChineseCalendar::ChineseCalendar(const Locale& aLocale, UErrorCode& success) - ChineseCalendar::ChineseCalendar(const Locale& aLocale, int32_t epochYear, - const TimeZone* zoneAstroCalc, UErrorCode &success) - : Calendar(TimeZone::forLocaleOrDefault(aLocale), aLocale, success), -- isLeapYear(FALSE), -+ isLeapYear(false), - fEpochYear(epochYear), - fZoneAstroCalc(zoneAstroCalc) - { -@@ -239,9 +239,9 @@ int32_t ChineseCalendar::handleGetExtendedYear() { - * @stable ICU 2.8 - */ - int32_t ChineseCalendar::handleGetMonthLength(int32_t extendedYear, int32_t month) const { -- int32_t thisStart = handleComputeMonthStart(extendedYear, month, TRUE) - -+ int32_t thisStart = handleComputeMonthStart(extendedYear, month, true) - - kEpochStartAsJulianDay + 1; // Julian day -> local days -- int32_t nextStart = newMoonNear(thisStart + SYNODIC_GAP, TRUE); -+ int32_t nextStart = newMoonNear(thisStart + SYNODIC_GAP, true); - return nextStart - thisStart; - } - -@@ -267,7 +267,7 @@ void ChineseCalendar::handleComputeFields(int32_t julianDay, UErrorCode &/*statu - - computeChineseFields(julianDay - kEpochStartAsJulianDay, // local days - getGregorianYear(), getGregorianMonth(), -- TRUE); // set all fields -+ true); // set all fields - } - - /** -@@ -328,13 +328,13 @@ int32_t ChineseCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, U - // modify the extended year value accordingly. - if (month < 0 || month > 11) { - double m = month; -- eyear += (int32_t)ClockMath::floorDivide(m, 12.0, m); -+ eyear += (int32_t)ClockMath::floorDivide(m, 12.0, &m); - month = (int32_t)m; - } - - int32_t gyear = eyear + fEpochYear - 1; // Gregorian year - int32_t theNewYear = newYear(gyear); -- int32_t newMoon = newMoonNear(theNewYear + month * 29, TRUE); -+ int32_t newMoon = newMoonNear(theNewYear + month * 29, true); - - int32_t julianDay = newMoon + kEpochStartAsJulianDay; - -@@ -352,11 +352,11 @@ int32_t ChineseCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, U - - // This will modify the MONTH and IS_LEAP_MONTH fields (only) - nonConstThis->computeChineseFields(newMoon, getGregorianYear(), -- getGregorianMonth(), FALSE); -+ getGregorianMonth(), false); - - if (month != internalGet(UCAL_MONTH) || - isLeapMonth != internalGet(UCAL_IS_LEAP_MONTH)) { -- newMoon = newMoonNear(newMoon + SYNODIC_GAP, TRUE); -+ newMoon = newMoonNear(newMoon + SYNODIC_GAP, true); - julianDay = newMoon + kEpochStartAsJulianDay; - } - -@@ -432,7 +432,7 @@ void ChineseCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode - // otherwise it will be the start of month 1. - int moon1 = moon - - (int) (CalendarAstronomer::SYNODIC_MONTH * (m - 0.5)); -- moon1 = newMoonNear(moon1, TRUE); -+ moon1 = newMoonNear(moon1, true); - if (isLeapMonthBetween(moon1, moon)) { - ++m; - } -@@ -485,7 +485,7 @@ double ChineseCalendar::daysToMillis(double days) const { - if (fZoneAstroCalc != NULL) { - int32_t rawOffset, dstOffset; - UErrorCode status = U_ZERO_ERROR; -- fZoneAstroCalc->getOffset(millis, FALSE, rawOffset, dstOffset, status); -+ fZoneAstroCalc->getOffset(millis, false, rawOffset, dstOffset, status); - if (U_SUCCESS(status)) { - return millis - (double)(rawOffset + dstOffset); - } -@@ -502,7 +502,7 @@ double ChineseCalendar::millisToDays(double millis) const { - if (fZoneAstroCalc != NULL) { - int32_t rawOffset, dstOffset; - UErrorCode status = U_ZERO_ERROR; -- fZoneAstroCalc->getOffset(millis, FALSE, rawOffset, dstOffset, status); -+ fZoneAstroCalc->getOffset(millis, false, rawOffset, dstOffset, status); - if (U_SUCCESS(status)) { - return ClockMath::floorDivide(millis + (double)(rawOffset + dstOffset), kOneDay); - } -@@ -541,7 +541,7 @@ int32_t ChineseCalendar::winterSolstice(int32_t gyear) const { - ucln_i18n_registerCleanup(UCLN_I18N_CHINESE_CALENDAR, calendar_chinese_cleanup); - } - gChineseCalendarAstro->setTime(ms); -- UDate solarLong = gChineseCalendarAstro->getSunTime(CalendarAstronomer::WINTER_SOLSTICE(), TRUE); -+ UDate solarLong = gChineseCalendarAstro->getSunTime(CalendarAstronomer::WINTER_SOLSTICE(), true); - umtx_unlock(&astroLock); - - // Winter solstice is 270 degrees solar longitude aka Dongzhi -@@ -621,7 +621,7 @@ int32_t ChineseCalendar::majorSolarTerm(int32_t days) const { - */ - UBool ChineseCalendar::hasNoMajorSolarTerm(int32_t newMoon) const { - return majorSolarTerm(newMoon) == -- majorSolarTerm(newMoonNear(newMoon + SYNODIC_GAP, TRUE)); -+ majorSolarTerm(newMoonNear(newMoon + SYNODIC_GAP, true)); - } - - -@@ -650,7 +650,7 @@ UBool ChineseCalendar::isLeapMonthBetween(int32_t newMoon1, int32_t newMoon2) co - #endif - - return (newMoon2 >= newMoon1) && -- (isLeapMonthBetween(newMoon1, newMoonNear(newMoon2 - SYNODIC_GAP, FALSE)) || -+ (isLeapMonthBetween(newMoon1, newMoonNear(newMoon2 - SYNODIC_GAP, false)) || - hasNoMajorSolarTerm(newMoon2)); - } - -@@ -689,9 +689,9 @@ void ChineseCalendar::computeChineseFields(int32_t days, int32_t gyear, int32_t - // Find the start of the month after month 11. This will be either - // the prior month 12 or leap month 11 (very rare). Also find the - // start of the following month 11. -- int32_t firstMoon = newMoonNear(solsticeBefore + 1, TRUE); -- int32_t lastMoon = newMoonNear(solsticeAfter + 1, FALSE); -- int32_t thisMoon = newMoonNear(days + 1, FALSE); // Start of this month -+ int32_t firstMoon = newMoonNear(solsticeBefore + 1, true); -+ int32_t lastMoon = newMoonNear(solsticeAfter + 1, false); -+ int32_t thisMoon = newMoonNear(days + 1, false); // Start of this month - // Note: isLeapYear is a member variable - isLeapYear = synodicMonthsBetween(firstMoon, lastMoon) == 12; - -@@ -705,7 +705,7 @@ void ChineseCalendar::computeChineseFields(int32_t days, int32_t gyear, int32_t - - UBool isLeapMonth = isLeapYear && - hasNoMajorSolarTerm(thisMoon) && -- !isLeapMonthBetween(firstMoon, newMoonNear(thisMoon - SYNODIC_GAP, FALSE)); -+ !isLeapMonthBetween(firstMoon, newMoonNear(thisMoon - SYNODIC_GAP, false)); - - internalSet(UCAL_MONTH, month-1); // Convert from 1-based to 0-based - internalSet(UCAL_IS_LEAP_MONTH, isLeapMonth?1:0); -@@ -727,7 +727,7 @@ void ChineseCalendar::computeChineseFields(int32_t days, int32_t gyear, int32_t - - // 0->0,60 1->1,1 60->1,60 61->2,1 etc. - int32_t yearOfCycle; -- int32_t cycle = ClockMath::floorDivide(cycle_year - 1, 60, yearOfCycle); -+ int32_t cycle = ClockMath::floorDivide(cycle_year - 1, 60, &yearOfCycle); - internalSet(UCAL_ERA, cycle + 1); - internalSet(UCAL_YEAR, yearOfCycle + 1); - -@@ -764,13 +764,13 @@ int32_t ChineseCalendar::newYear(int32_t gyear) const { - - int32_t solsticeBefore= winterSolstice(gyear - 1); - int32_t solsticeAfter = winterSolstice(gyear); -- int32_t newMoon1 = newMoonNear(solsticeBefore + 1, TRUE); -- int32_t newMoon2 = newMoonNear(newMoon1 + SYNODIC_GAP, TRUE); -- int32_t newMoon11 = newMoonNear(solsticeAfter + 1, FALSE); -+ int32_t newMoon1 = newMoonNear(solsticeBefore + 1, true); -+ int32_t newMoon2 = newMoonNear(newMoon1 + SYNODIC_GAP, true); -+ int32_t newMoon11 = newMoonNear(solsticeAfter + 1, false); - - if (synodicMonthsBetween(newMoon1, newMoon11) == 12 && - (hasNoMajorSolarTerm(newMoon1) || hasNoMajorSolarTerm(newMoon2))) { -- cacheValue = newMoonNear(newMoon2 + SYNODIC_GAP, TRUE); -+ cacheValue = newMoonNear(newMoon2 + SYNODIC_GAP, true); - } else { - cacheValue = newMoon2; - } -@@ -801,7 +801,7 @@ void ChineseCalendar::offsetMonth(int32_t newMoon, int32_t dom, int32_t delta) { - newMoon += (int32_t) (CalendarAstronomer::SYNODIC_MONTH * (delta - 0.5)); - - // Search forward to the target month's new moon -- newMoon = newMoonNear(newMoon, TRUE); -+ newMoon = newMoonNear(newMoon, true); - - // Find the target dom - int32_t jd = newMoon + kEpochStartAsJulianDay - 1 + dom; -@@ -831,24 +831,24 @@ ChineseCalendar::inDaylightTime(UErrorCode& status) const - { - // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) -- return FALSE; -+ return false; - - // Force an update of the state of the Calendar. - ((ChineseCalendar*)this)->complete(status); // cast away const - -- return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE); -+ return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : false); - } - - // default century - - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInitOnce {}; - - - UBool ChineseCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - UDate ChineseCalendar::defaultCenturyStart() const -diff --git a/deps/icu-small/source/i18n/chnsecal.h b/deps/icu-small/source/i18n/chnsecal.h -index 61ef2d3cad..488fe169d9 100644 ---- a/deps/icu-small/source/i18n/chnsecal.h -+++ b/deps/icu-small/source/i18n/chnsecal.h -@@ -274,7 +274,7 @@ class U_I18N_API ChineseCalendar : public Calendar { - */ - int32_t internalGetDefaultCenturyStartYear(void) const; - -- ChineseCalendar(); // default constructor not implemented -+ ChineseCalendar() = delete; // default constructor not implemented - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/coleitr.cpp b/deps/icu-small/source/i18n/coleitr.cpp -index 48c1da9015..0503950273 100644 ---- a/deps/icu-small/source/i18n/coleitr.cpp -+++ b/deps/icu-small/source/i18n/coleitr.cpp -@@ -440,7 +440,7 @@ CollationElementIterator::computeMaxExpansions(const CollationData *data, UError - uhash_compareLong, &errorCode); - if (U_FAILURE(errorCode)) { return NULL; } - MaxExpSink sink(maxExpansions, errorCode); -- ContractionsAndExpansions(NULL, NULL, &sink, TRUE).forData(data, errorCode); -+ ContractionsAndExpansions(NULL, NULL, &sink, true).forData(data, errorCode); - if (U_FAILURE(errorCode)) { - uhash_close(maxExpansions); - return NULL; -diff --git a/deps/icu-small/source/i18n/coll.cpp b/deps/icu-small/source/i18n/coll.cpp -index fe73118da0..b22a9d5876 100644 ---- a/deps/icu-small/source/i18n/coll.cpp -+++ b/deps/icu-small/source/i18n/coll.cpp -@@ -65,9 +65,9 @@ static icu::Locale* availableLocaleList = NULL; - static int32_t availableLocaleListCount; - #if !UCONFIG_NO_SERVICE - static icu::ICULocaleService* gService = NULL; --static icu::UInitOnce gServiceInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gServiceInitOnce {}; - #endif --static icu::UInitOnce gAvailableLocaleListInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gAvailableLocaleListInitOnce {}; - - /** - * Release all static memory held by collator. -@@ -87,7 +87,7 @@ static UBool U_CALLCONV collator_cleanup(void) { - } - availableLocaleListCount = 0; - gAvailableLocaleListInitOnce.reset(); -- return TRUE; -+ return true; - } - - U_CDECL_END -@@ -109,7 +109,7 @@ CollatorFactory::~CollatorFactory() {} - - UBool - CollatorFactory::visible(void) const { -- return TRUE; -+ return true; - } - - //------------------------------------------- -@@ -372,7 +372,7 @@ void setAttributesFromKeywords(const Locale &loc, Collator &coll, UErrorCode &er - return; - } - if (length != 0) { -- int32_t codes[USCRIPT_CODE_LIMIT + UCOL_REORDER_CODE_LIMIT - UCOL_REORDER_CODE_FIRST]; -+ int32_t codes[USCRIPT_CODE_LIMIT + (UCOL_REORDER_CODE_LIMIT - UCOL_REORDER_CODE_FIRST)]; - int32_t codesLength = 0; - char *scriptName = value; - for (;;) { -@@ -794,7 +794,7 @@ Collator::unregister(URegistryKey key, UErrorCode& status) - } - status = U_ILLEGAL_ARGUMENT_ERROR; - } -- return FALSE; -+ return false; - } - #endif /* UCONFIG_NO_SERVICE */ - -diff --git a/deps/icu-small/source/i18n/collation.cpp b/deps/icu-small/source/i18n/collation.cpp -index 14cb86576b..705ee12e23 100644 ---- a/deps/icu-small/source/i18n/collation.cpp -+++ b/deps/icu-small/source/i18n/collation.cpp -@@ -20,15 +20,6 @@ - - U_NAMESPACE_BEGIN - --// Some compilers don't care if constants are defined in the .cpp file. --// MS Visual C++ does not like it, but gcc requires it. clang does not care. --#ifndef _MSC_VER --const uint8_t Collation::LEVEL_SEPARATOR_BYTE; --const uint8_t Collation::MERGE_SEPARATOR_BYTE; --const uint32_t Collation::ONLY_TERTIARY_MASK; --const uint32_t Collation::CASE_AND_TERTIARY_MASK; --#endif -- - uint32_t - Collation::incTwoBytePrimaryByOffset(uint32_t basePrimary, UBool isCompressible, int32_t offset) { - // Extract the second byte, minus the minimum byte value, -diff --git a/deps/icu-small/source/i18n/collation.h b/deps/icu-small/source/i18n/collation.h -index 6a449a3eb6..2062ef2946 100644 ---- a/deps/icu-small/source/i18n/collation.h -+++ b/deps/icu-small/source/i18n/collation.h -@@ -221,7 +221,8 @@ public: - /** - * Points to contraction data. - * Bits 31..13: Index into prefix/contraction data. -- * Bits 12..11: Unused, 0. -+ * Bit 12: Unused, 0. -+ * Bit 11: CONTRACT_HAS_STARTER flag. (Used by ICU4X only.) - * Bit 10: CONTRACT_TRAILING_CCC flag. - * Bit 9: CONTRACT_NEXT_CCC flag. - * Bit 8: CONTRACT_SINGLE_CP_NO_MATCH flag. -@@ -298,6 +299,8 @@ public: - static const uint32_t CONTRACT_NEXT_CCC = 0x200; - /** Set if any contraction suffix ends with lccc!=0. */ - static const uint32_t CONTRACT_TRAILING_CCC = 0x400; -+ /** Set if any contraction suffix contains a starter. (Used by ICU4X only.) */ -+ static const uint32_t CONTRACT_HAS_STARTER = 0x800; - - /** For HANGUL_TAG: None of its Jamo CE32s isSpecialCE32(). */ - static const uint32_t HANGUL_NO_SPECIAL_JAMO = 0x100; -@@ -491,7 +494,7 @@ public: - } - - private: -- Collation(); // No instantiation. -+ Collation() = delete; // No instantiation. - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/collationbuilder.cpp b/deps/icu-small/source/i18n/collationbuilder.cpp -index 5d4611b851..fbf09a313d 100644 ---- a/deps/icu-small/source/i18n/collationbuilder.cpp -+++ b/deps/icu-small/source/i18n/collationbuilder.cpp -@@ -89,7 +89,7 @@ RuleBasedCollator::RuleBasedCollator() - cacheEntry(NULL), - validLocale(""), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - } - - RuleBasedCollator::RuleBasedCollator(const UnicodeString &rules, UErrorCode &errorCode) -@@ -99,7 +99,7 @@ RuleBasedCollator::RuleBasedCollator(const UnicodeString &rules, UErrorCode &err - cacheEntry(NULL), - validLocale(""), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - internalBuildTailoring(rules, UCOL_DEFAULT, UCOL_DEFAULT, NULL, NULL, errorCode); - } - -@@ -111,7 +111,7 @@ RuleBasedCollator::RuleBasedCollator(const UnicodeString &rules, ECollationStren - cacheEntry(NULL), - validLocale(""), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - internalBuildTailoring(rules, strength, UCOL_DEFAULT, NULL, NULL, errorCode); - } - -@@ -124,7 +124,7 @@ RuleBasedCollator::RuleBasedCollator(const UnicodeString &rules, - cacheEntry(NULL), - validLocale(""), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - internalBuildTailoring(rules, UCOL_DEFAULT, decompositionMode, NULL, NULL, errorCode); - } - -@@ -138,7 +138,7 @@ RuleBasedCollator::RuleBasedCollator(const UnicodeString &rules, - cacheEntry(NULL), - validLocale(""), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - internalBuildTailoring(rules, strength, decompositionMode, NULL, NULL, errorCode); - } - -@@ -151,7 +151,7 @@ RuleBasedCollator::RuleBasedCollator(const UnicodeString &rules, - cacheEntry(NULL), - validLocale(""), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - internalBuildTailoring(rules, UCOL_DEFAULT, UCOL_DEFAULT, &parseError, &reason, errorCode); - } - -@@ -191,14 +191,7 @@ RuleBasedCollator::internalBuildTailoring(const UnicodeString &rules, - - // CollationBuilder implementation ----------------------------------------- *** - --// Some compilers don't care if constants are defined in the .cpp file. --// MS Visual C++ does not like it, but gcc requires it. clang does not care. --#ifndef _MSC_VER --const int32_t CollationBuilder::HAS_BEFORE2; --const int32_t CollationBuilder::HAS_BEFORE3; --#endif -- --CollationBuilder::CollationBuilder(const CollationTailoring *b, UErrorCode &errorCode) -+CollationBuilder::CollationBuilder(const CollationTailoring *b, UBool icu4xMode, UErrorCode &errorCode) - : nfd(*Normalizer2::getNFDInstance(errorCode)), - fcd(*Normalizer2Factory::getFCDInstance(errorCode)), - nfcImpl(*Normalizer2Factory::getNFCImpl(errorCode)), -@@ -206,7 +199,8 @@ CollationBuilder::CollationBuilder(const CollationTailoring *b, UErrorCode &erro - baseData(b->data), - rootElements(b->data->rootElements, b->data->rootElementsLength), - variableTop(0), -- dataBuilder(new CollationDataBuilder(errorCode)), fastLatinEnabled(TRUE), -+ dataBuilder(new CollationDataBuilder(icu4xMode, errorCode)), fastLatinEnabled(true), -+ icu4xMode(icu4xMode), - errorReason(NULL), - cesLength(0), - rootPrimaryIndexes(errorCode), nodes(errorCode) { -@@ -225,6 +219,10 @@ CollationBuilder::CollationBuilder(const CollationTailoring *b, UErrorCode &erro - } - } - -+CollationBuilder::CollationBuilder(const CollationTailoring *b, UErrorCode &errorCode) -+ : CollationBuilder(b, false, errorCode) -+{} -+ - CollationBuilder::~CollationBuilder() { - delete dataBuilder; - } -@@ -262,15 +260,19 @@ CollationBuilder::parseAndBuild(const UnicodeString &ruleString, - if(U_FAILURE(errorCode)) { return NULL; } - if(dataBuilder->hasMappings()) { - makeTailoredCEs(errorCode); -- closeOverComposites(errorCode); -+ if (!icu4xMode) { -+ closeOverComposites(errorCode); -+ } - finalizeCEs(errorCode); -- // Copy all of ASCII, and Latin-1 letters, into each tailoring. -- optimizeSet.add(0, 0x7f); -- optimizeSet.add(0xc0, 0xff); -- // Hangul is decomposed on the fly during collation, -- // and the tailoring data is always built with HANGUL_TAG specials. -- optimizeSet.remove(Hangul::HANGUL_BASE, Hangul::HANGUL_END); -- dataBuilder->optimize(optimizeSet, errorCode); -+ if (!icu4xMode) { -+ // Copy all of ASCII, and Latin-1 letters, into each tailoring. -+ optimizeSet.add(0, 0x7f); -+ optimizeSet.add(0xc0, 0xff); -+ // Hangul is decomposed on the fly during collation, -+ // and the tailoring data is always built with HANGUL_TAG specials. -+ optimizeSet.remove(Hangul::HANGUL_BASE, Hangul::HANGUL_END); -+ dataBuilder->optimize(optimizeSet, errorCode); -+ } - tailoring->ensureOwnedData(errorCode); - if(U_FAILURE(errorCode)) { return NULL; } - if(fastLatinEnabled) { dataBuilder->enableFastLatin(); } -@@ -484,7 +486,7 @@ CollationBuilder::getSpecialResetPosition(const UnicodeString &str, - U_ASSERT(str.length() == 2); - int64_t ce; - int32_t strength = UCOL_PRIMARY; -- UBool isBoundary = FALSE; -+ UBool isBoundary = false; - UChar32 pos = str.charAt(1) - CollationRuleParser::POS_BASE; - U_ASSERT(0 <= pos && pos <= CollationRuleParser::LAST_TRAILING); - switch(pos) { -@@ -544,14 +546,14 @@ CollationBuilder::getSpecialResetPosition(const UnicodeString &str, - break; - case CollationRuleParser::FIRST_VARIABLE: - ce = rootElements.getFirstPrimaryCE(); -- isBoundary = TRUE; // FractionalUCA.txt: FDD1 00A0, SPACE first primary -+ isBoundary = true; // FractionalUCA.txt: FDD1 00A0, SPACE first primary - break; - case CollationRuleParser::LAST_VARIABLE: - ce = rootElements.lastCEWithPrimaryBefore(variableTop + 1); - break; - case CollationRuleParser::FIRST_REGULAR: - ce = rootElements.firstCEWithPrimaryAtLeast(variableTop + 1); -- isBoundary = TRUE; // FractionalUCA.txt: FDD1 263A, SYMBOL first primary -+ isBoundary = true; // FractionalUCA.txt: FDD1 263A, SYMBOL first primary - break; - case CollationRuleParser::LAST_REGULAR: - // Use the Hani-first-primary rather than the actual last "regular" CE before it, -@@ -570,7 +572,7 @@ CollationBuilder::getSpecialResetPosition(const UnicodeString &str, - return 0; - case CollationRuleParser::FIRST_TRAILING: - ce = Collation::makeCE(Collation::FIRST_TRAILING_PRIMARY); -- isBoundary = TRUE; // trailing first primary (there is no mapping for it) -+ isBoundary = true; // trailing first primary (there is no mapping for it) - break; - case CollationRuleParser::LAST_TRAILING: - errorCode = U_ILLEGAL_ARGUMENT_ERROR; -@@ -743,14 +745,18 @@ CollationBuilder::addRelation(int32_t strength, const UnicodeString &prefix, - } - } - uint32_t ce32 = Collation::UNASSIGNED_CE32; -- if((prefix != nfdPrefix || str != nfdString) && -+ if(!icu4xMode && (prefix != nfdPrefix || str != nfdString) && - !ignorePrefix(prefix, errorCode) && !ignoreString(str, errorCode)) { - // Map from the original input to the CEs. - // We do this in case the canonical closure is incomplete, - // so that it is possible to explicitly provide the missing mappings. - ce32 = addIfDifferent(prefix, str, ces, cesLength, ce32, errorCode); - } -- addWithClosure(nfdPrefix, nfdString, ces, cesLength, ce32, errorCode); -+ if (!icu4xMode) { -+ addWithClosure(nfdPrefix, nfdString, ces, cesLength, ce32, errorCode); -+ } else { -+ addIfDifferent(nfdPrefix, nfdString, ces, cesLength, ce32, errorCode); -+ } - if(U_FAILURE(errorCode)) { - parserErrorReason = "writing collation elements"; - return; -@@ -1025,7 +1031,7 @@ CollationBuilder::setCaseBits(const UnicodeString &nfdString, - int64_t cases = 0; - if(numTailoredPrimaries > 0) { - const UChar *s = nfdString.getBuffer(); -- UTF16CollationIterator baseCEs(baseData, FALSE, s, s, s + nfdString.length()); -+ UTF16CollationIterator baseCEs(baseData, false, s, s, s + nfdString.length()); - int32_t baseCEsLength = baseCEs.fetchCEs(errorCode) - 1; - if(U_FAILURE(errorCode)) { - parserErrorReason = "fetching root CEs for tailored string"; -@@ -1217,18 +1223,18 @@ CollationBuilder::mergeCompositeIntoString(const UnicodeString &nfdString, - UChar32 composite, const UnicodeString &decomp, - UnicodeString &newNFDString, UnicodeString &newString, - UErrorCode &errorCode) const { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - U_ASSERT(nfdString.char32At(indexAfterLastStarter - 1) == decomp.char32At(0)); - int32_t lastStarterLength = decomp.moveIndex32(0, 1); - if(lastStarterLength == decomp.length()) { - // Singleton decompositions should be found by addWithClosure() - // and the CanonicalIterator, so we can ignore them here. -- return FALSE; -+ return false; - } - if(nfdString.compare(indexAfterLastStarter, 0x7fffffff, - decomp, lastStarterLength, 0x7fffffff) == 0) { - // same strings, nothing new to be found here -- return FALSE; -+ return false; - } - - // Make new FCD strings that combine a composite, or its decomposition, -@@ -1238,7 +1244,7 @@ CollationBuilder::mergeCompositeIntoString(const UnicodeString &nfdString, - newString.setTo(nfdString, 0, indexAfterLastStarter - lastStarterLength).append(composite); - - // The following is related to discontiguous contraction matching, -- // but builds only FCD strings (or else returns FALSE). -+ // but builds only FCD strings (or else returns false). - int32_t sourceIndex = indexAfterLastStarter; - int32_t decompIndex = lastStarterLength; - // Small optimization: We keep the source character across loop iterations -@@ -1265,16 +1271,16 @@ CollationBuilder::mergeCompositeIntoString(const UnicodeString &nfdString, - // Unable to merge because the source contains a non-zero combining mark - // but the composite's decomposition contains another starter. - // The strings would not be equivalent. -- return FALSE; -+ return false; - } else if(sourceCC < decompCC) { - // Composite + sourceChar would not be FCD. -- return FALSE; -+ return false; - } else if(decompCC < sourceCC) { - newNFDString.append(decompChar); - decompIndex += U16_LENGTH(decompChar); - } else if(decompChar != sourceChar) { - // Blocked because same combining class. -- return FALSE; -+ return false; - } else { // match: decompChar == sourceChar - newNFDString.append(decompChar); - decompIndex += U16_LENGTH(decompChar); -@@ -1286,7 +1292,7 @@ CollationBuilder::mergeCompositeIntoString(const UnicodeString &nfdString, - if(sourceChar >= 0) { // more characters from nfdString but not from decomp - if(sourceCC < decompCC) { - // Appending the next source character to the composite would not be FCD. -- return FALSE; -+ return false; - } - newNFDString.append(nfdString, sourceIndex, 0x7fffffff); - newString.append(nfdString, sourceIndex, 0x7fffffff); -@@ -1296,7 +1302,7 @@ CollationBuilder::mergeCompositeIntoString(const UnicodeString &nfdString, - U_ASSERT(nfd.isNormalized(newNFDString, errorCode)); - U_ASSERT(fcd.isNormalized(newString, errorCode)); - U_ASSERT(nfd.normalize(newString, errorCode) == newNFDString); // canonically equivalent -- return TRUE; -+ return true; - } - - UBool -@@ -1361,13 +1367,13 @@ UBool - CollationBuilder::sameCEs(const int64_t ces1[], int32_t ces1Length, - const int64_t ces2[], int32_t ces2Length) { - if(ces1Length != ces2Length) { -- return FALSE; -+ return false; - } - U_ASSERT(ces1Length <= Collation::MAX_EXPANSION_LENGTH); - for(int32_t i = 0; i < ces1Length; ++i) { -- if(ces1[i] != ces2[i]) { return FALSE; } -+ if(ces1[i] != ces2[i]) { return false; } - } -- return TRUE; -+ return true; - } - - #ifdef DEBUG_COLLATION_BUILDER -@@ -1399,9 +1405,9 @@ CollationBuilder::makeTailoredCEs(UErrorCode &errorCode) { - uint32_t s = p == 0 ? 0 : Collation::COMMON_WEIGHT16; - uint32_t t = s; - uint32_t q = 0; -- UBool pIsTailored = FALSE; -- UBool sIsTailored = FALSE; -- UBool tIsTailored = FALSE; -+ UBool pIsTailored = false; -+ UBool sIsTailored = false; -+ UBool tIsTailored = false; - #ifdef DEBUG_COLLATION_BUILDER - printf("\nprimary %lx\n", (long)alignWeightRight(p)); - #endif -@@ -1455,13 +1461,13 @@ CollationBuilder::makeTailoredCEs(UErrorCode &errorCode) { - errorReason = "tertiary tailoring gap too small"; - return; - } -- tIsTailored = TRUE; -+ tIsTailored = true; - } - t = tertiaries.nextWeight(); - U_ASSERT(t != 0xffffffff); - } else { - t = weight16FromNode(node); -- tIsTailored = FALSE; -+ tIsTailored = false; - #ifdef DEBUG_COLLATION_BUILDER - printf(" ter %lx\n", (long)alignWeightRight(t)); - #endif -@@ -1507,13 +1513,13 @@ CollationBuilder::makeTailoredCEs(UErrorCode &errorCode) { - #endif - return; - } -- sIsTailored = TRUE; -+ sIsTailored = true; - } - s = secondaries.nextWeight(); - U_ASSERT(s != 0xffffffff); - } else { - s = weight16FromNode(node); -- sIsTailored = FALSE; -+ sIsTailored = false; - #ifdef DEBUG_COLLATION_BUILDER - printf(" sec %lx\n", (long)alignWeightRight(s)); - #endif -@@ -1536,15 +1542,15 @@ CollationBuilder::makeTailoredCEs(UErrorCode &errorCode) { - errorReason = "primary tailoring gap too small"; - return; - } -- pIsTailored = TRUE; -+ pIsTailored = true; - } - p = primaries.nextWeight(); - U_ASSERT(p != 0xffffffff); - s = Collation::COMMON_WEIGHT16; -- sIsTailored = FALSE; -+ sIsTailored = false; - } - t = s == 0 ? 0 : Collation::COMMON_WEIGHT16; -- tIsTailored = FALSE; -+ tIsTailored = false; - } - q = 0; - } -@@ -1608,7 +1614,7 @@ CEFinalizer::~CEFinalizer() {} - void - CollationBuilder::finalizeCEs(UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { return; } -- LocalPointer newBuilder(new CollationDataBuilder(errorCode), errorCode); -+ LocalPointer newBuilder(new CollationDataBuilder(icu4xMode, errorCode), errorCode); - if(U_FAILURE(errorCode)) { - return; - } -@@ -1690,7 +1696,7 @@ ucol_getUnsafeSet( const UCollator *coll, - USet *contractions = uset_open(0,0); - - int32_t i = 0, j = 0; -- ucol_getContractionsAndExpansions(coll, contractions, NULL, FALSE, status); -+ ucol_getContractionsAndExpansions(coll, contractions, NULL, false, status); - int32_t contsSize = uset_size(contractions); - UChar32 c = 0; - // Contraction set consists only of strings -diff --git a/deps/icu-small/source/i18n/collationbuilder.h b/deps/icu-small/source/i18n/collationbuilder.h -index 59d3c5d24b..22e24ddb81 100644 ---- a/deps/icu-small/source/i18n/collationbuilder.h -+++ b/deps/icu-small/source/i18n/collationbuilder.h -@@ -39,6 +39,7 @@ class Normalizer2Impl; - - class U_I18N_API CollationBuilder : public CollationRuleParser::Sink { - public: -+ CollationBuilder(const CollationTailoring *b, UBool icu4xMode, UErrorCode &errorCode); - CollationBuilder(const CollationTailoring *base, UErrorCode &errorCode); - virtual ~CollationBuilder(); - -@@ -302,6 +303,7 @@ private: - - CollationDataBuilder *dataBuilder; - UBool fastLatinEnabled; -+ UBool icu4xMode; - UnicodeSet optimizeSet; - const char *errorReason; - -diff --git a/deps/icu-small/source/i18n/collationcompare.cpp b/deps/icu-small/source/i18n/collationcompare.cpp -index cbf32c9fe6..d9048afc27 100644 ---- a/deps/icu-small/source/i18n/collationcompare.cpp -+++ b/deps/icu-small/source/i18n/collationcompare.cpp -@@ -39,7 +39,7 @@ CollationCompare::compareUpToQuaternary(CollationIterator &left, CollationIterat - // +1 so that we can use "<" and primary ignorables test out early. - variableTop = settings.variableTop + 1; - } -- UBool anyVariable = FALSE; -+ UBool anyVariable = false; - - // Fetch CEs, compare primaries, store secondary & tertiary weights. - for(;;) { -@@ -51,7 +51,7 @@ CollationCompare::compareUpToQuaternary(CollationIterator &left, CollationIterat - if(leftPrimary < variableTop && leftPrimary > Collation::MERGE_SEPARATOR_PRIMARY) { - // Variable CE, shift it to quaternary level. - // Ignore all following primary ignorables, and shift further variable CEs. -- anyVariable = TRUE; -+ anyVariable = true; - do { - // Store only the primary of the variable CE. - left.setCurrentCE(ce & INT64_C(0xffffffff00000000)); -@@ -76,7 +76,7 @@ CollationCompare::compareUpToQuaternary(CollationIterator &left, CollationIterat - if(rightPrimary < variableTop && rightPrimary > Collation::MERGE_SEPARATOR_PRIMARY) { - // Variable CE, shift it to quaternary level. - // Ignore all following primary ignorables, and shift further variable CEs. -- anyVariable = TRUE; -+ anyVariable = true; - do { - // Store only the primary of the variable CE. - right.setCurrentCE(ce & INT64_C(0xffffffff00000000)); -diff --git a/deps/icu-small/source/i18n/collationdata.cpp b/deps/icu-small/source/i18n/collationdata.cpp -index 688770f8f6..1b8b6a76de 100644 ---- a/deps/icu-small/source/i18n/collationdata.cpp -+++ b/deps/icu-small/source/i18n/collationdata.cpp -@@ -205,7 +205,7 @@ CollationData::getEquivalentScripts(int32_t script, - void - CollationData::makeReorderRanges(const int32_t *reorder, int32_t length, - UVector32 &ranges, UErrorCode &errorCode) const { -- makeReorderRanges(reorder, length, FALSE, ranges, errorCode); -+ makeReorderRanges(reorder, length, false, ranges, errorCode); - } - - void -@@ -277,12 +277,12 @@ CollationData::makeReorderRanges(const int32_t *reorder, int32_t length, - - // Reorder according to the input scripts, continuing from the bottom of the primary range. - int32_t originalLength = length; // length will be decremented if "others" is in the list. -- UBool hasReorderToEnd = FALSE; -+ UBool hasReorderToEnd = false; - for(int32_t i = 0; i < length;) { - int32_t script = reorder[i++]; - if(script == USCRIPT_UNKNOWN) { - // Put the remaining scripts at the top. -- hasReorderToEnd = TRUE; -+ hasReorderToEnd = true; - while(i < length) { - script = reorder[--length]; - if(script == USCRIPT_UNKNOWN || // Must occur at most once. -@@ -329,7 +329,7 @@ CollationData::makeReorderRanges(const int32_t *reorder, int32_t length, - if(lowStart > highLimit) { - if((lowStart - (skippedReserved & 0xff00)) <= highLimit) { - // Try not skipping the before-Latin reserved range. -- makeReorderRanges(reorder, originalLength, TRUE, ranges, errorCode); -+ makeReorderRanges(reorder, originalLength, true, ranges, errorCode); - return; - } - // We need more primary lead bytes than available, despite the reserved ranges. -diff --git a/deps/icu-small/source/i18n/collationdata.h b/deps/icu-small/source/i18n/collationdata.h -index ab9b4c47ec..71bf17abd0 100644 ---- a/deps/icu-small/source/i18n/collationdata.h -+++ b/deps/icu-small/source/i18n/collationdata.h -@@ -41,16 +41,12 @@ struct U_I18N_API CollationData : public UMemory { - // Note: The ucadata.icu loader could discover the reserved ranges by setting an array - // parallel with the ranges, and resetting ranges that are indexed. - // The reordering builder code could clone the resulting template array. -- enum { -- REORDER_RESERVED_BEFORE_LATIN = UCOL_REORDER_CODE_FIRST + 14, -- REORDER_RESERVED_AFTER_LATIN -- }; -- -- enum { -- MAX_NUM_SPECIAL_REORDER_CODES = 8, -- /** C++ only, data reader check scriptStartsLength. */ -- MAX_NUM_SCRIPT_RANGES = 256 -- }; -+ static constexpr int32_t REORDER_RESERVED_BEFORE_LATIN = UCOL_REORDER_CODE_FIRST + 14; -+ static constexpr int32_t REORDER_RESERVED_AFTER_LATIN = REORDER_RESERVED_BEFORE_LATIN + 1; -+ -+ static constexpr int32_t MAX_NUM_SPECIAL_REORDER_CODES = 8; -+ /** C++ only, data reader check scriptStartsLength. */ -+ static constexpr int32_t MAX_NUM_SCRIPT_RANGES = 256; - - CollationData(const Normalizer2Impl &nfc) - : trie(NULL), -diff --git a/deps/icu-small/source/i18n/collationdatabuilder.cpp b/deps/icu-small/source/i18n/collationdatabuilder.cpp -index b10de993c2..e7c3da1ea5 100644 ---- a/deps/icu-small/source/i18n/collationdatabuilder.cpp -+++ b/deps/icu-small/source/i18n/collationdatabuilder.cpp -@@ -86,18 +86,30 @@ struct ConditionalCE32 : public UMemory { - * When fetching CEs from the builder, the contexts are built into their runtime form - * so that the normal collation implementation can process them. - * The result is cached in the list head. It is reset when the contexts are modified. -+ * All of these builtCE32 are invalidated by clearContexts(), -+ * via incrementing the contextsEra. - */ - uint32_t builtCE32; -+ /** -+ * The "era" of building intermediate contexts when the above builtCE32 was set. -+ * When the array of cached, temporary contexts overflows, then clearContexts() -+ * removes them all and invalidates the builtCE32 that used to point to built tries. -+ */ -+ int32_t era = -1; - /** - * Index of the next ConditionalCE32. - * Negative for the end of the list. - */ - int32_t next; -+ // Note: We could create a separate class for all of the contextual mappings for -+ // a code point, with the builtCE32, the era, and a list of the actual mappings. -+ // The class that represents one mapping would then not need to -+ // store those fields in each element. - }; - - U_CDECL_BEGIN - --U_CAPI void U_CALLCONV -+void U_CALLCONV - uprv_deleteConditionalCE32(void *obj) { - delete static_cast(obj); - } -@@ -152,7 +164,7 @@ protected: - }; - - DataBuilderCollationIterator::DataBuilderCollationIterator(CollationDataBuilder &b) -- : CollationIterator(&builderData, /*numeric=*/ FALSE), -+ : CollationIterator(&builderData, /*numeric=*/ false), - builder(b), builderData(b.nfcImpl), - s(NULL), pos(0) { - builderData.base = builder.base; -@@ -192,7 +204,7 @@ DataBuilderCollationIterator::fetchCEs(const UnicodeString &str, int32_t start, - } else { - d = &builderData; - } -- appendCEsFromCE32(d, c, ce32, /*forward=*/ TRUE, errorCode); -+ appendCEsFromCE32(d, c, ce32, /*forward=*/ true, errorCode); - U_ASSERT(U_SUCCESS(errorCode)); - for(int32_t i = 0; i < getCEsLength(); ++i) { - int64_t ce = getCE(i); -@@ -267,7 +279,7 @@ DataBuilderCollationIterator::getCE32FromBuilderData(uint32_t ce32, UErrorCode & - // TODO: ICU-21531 figure out why this happens. - return 0; - } -- if(cond->builtCE32 == Collation::NO_CE32) { -+ if(cond->builtCE32 == Collation::NO_CE32 || cond->era != builder.contextsEra) { - // Build the context-sensitive mappings into their runtime form and cache the result. - cond->builtCE32 = builder.buildContext(cond, errorCode); - if(errorCode == U_BUFFER_OVERFLOW_ERROR) { -@@ -275,6 +287,7 @@ DataBuilderCollationIterator::getCE32FromBuilderData(uint32_t ce32, UErrorCode & - builder.clearContexts(); - cond->builtCE32 = builder.buildContext(cond, errorCode); - } -+ cond->era = builder.contextsEra; - builderData.contexts = builder.contexts.getBuffer(); - } - return cond->builtCE32; -@@ -283,16 +296,19 @@ DataBuilderCollationIterator::getCE32FromBuilderData(uint32_t ce32, UErrorCode & - - // ------------------------------------------------------------------------- *** - --CollationDataBuilder::CollationDataBuilder(UErrorCode &errorCode) -+CollationDataBuilder::CollationDataBuilder(UBool icu4xMode, UErrorCode &errorCode) - : nfcImpl(*Normalizer2Factory::getNFCImpl(errorCode)), - base(NULL), baseSettings(NULL), - trie(NULL), - ce32s(errorCode), ce64s(errorCode), conditionalCE32s(errorCode), -- modified(FALSE), -- fastLatinEnabled(FALSE), fastLatinBuilder(NULL), -+ modified(false), -+ icu4xMode(icu4xMode), -+ fastLatinEnabled(false), fastLatinBuilder(NULL), - collIter(NULL) { - // Reserve the first CE32 for U+0000. -- ce32s.addElement(0, errorCode); -+ if (!icu4xMode) { -+ ce32s.addElement(0, errorCode); -+ } - conditionalCE32s.setDeleter(uprv_deleteConditionalCE32); - } - -@@ -316,27 +332,31 @@ CollationDataBuilder::initForTailoring(const CollationData *b, UErrorCode &error - base = b; - - // For a tailoring, the default is to fall back to the base. -- trie = utrie2_open(Collation::FALLBACK_CE32, Collation::FFFD_CE32, &errorCode); -- -- // Set the Latin-1 letters block so that it is allocated first in the data array, -- // to try to improve locality of reference when sorting Latin-1 text. -- // Do not use utrie2_setRange32() since that will not actually allocate blocks -- // that are filled with the default value. -- // ASCII (0..7F) is already preallocated anyway. -- for(UChar32 c = 0xc0; c <= 0xff; ++c) { -- utrie2_set32(trie, c, Collation::FALLBACK_CE32, &errorCode); -- } -+ // For ICU4X, use the same value for fallback as for the default -+ // to avoid having to have different blocks for the two. -+ trie = utrie2_open(Collation::FALLBACK_CE32, icu4xMode ? Collation::FALLBACK_CE32 : Collation::FFFD_CE32, &errorCode); -+ -+ if (!icu4xMode) { -+ // Set the Latin-1 letters block so that it is allocated first in the data array, -+ // to try to improve locality of reference when sorting Latin-1 text. -+ // Do not use utrie2_setRange32() since that will not actually allocate blocks -+ // that are filled with the default value. -+ // ASCII (0..7F) is already preallocated anyway. -+ for(UChar32 c = 0xc0; c <= 0xff; ++c) { -+ utrie2_set32(trie, c, Collation::FALLBACK_CE32, &errorCode); -+ } - -- // Hangul syllables are not tailorable (except via tailoring Jamos). -- // Always set the Hangul tag to help performance. -- // Do this here, rather than in buildMappings(), -- // so that we see the HANGUL_TAG in various assertions. -- uint32_t hangulCE32 = Collation::makeCE32FromTagAndIndex(Collation::HANGUL_TAG, 0); -- utrie2_setRange32(trie, Hangul::HANGUL_BASE, Hangul::HANGUL_END, hangulCE32, TRUE, &errorCode); -+ // Hangul syllables are not tailorable (except via tailoring Jamos). -+ // Always set the Hangul tag to help performance. -+ // Do this here, rather than in buildMappings(), -+ // so that we see the HANGUL_TAG in various assertions. -+ uint32_t hangulCE32 = Collation::makeCE32FromTagAndIndex(Collation::HANGUL_TAG, 0); -+ utrie2_setRange32(trie, Hangul::HANGUL_BASE, Hangul::HANGUL_END, hangulCE32, true, &errorCode); - -- // Copy the set contents but don't copy/clone the set as a whole because -- // that would copy the isFrozen state too. -- unsafeBackwardSet.addAll(*b->unsafeBackwardSet); -+ // Copy the set contents but don't copy/clone the set as a whole because -+ // that would copy the isFrozen state too. -+ unsafeBackwardSet.addAll(*b->unsafeBackwardSet); -+ } - - if(U_FAILURE(errorCode)) { return; } - } -@@ -345,7 +365,7 @@ UBool - CollationDataBuilder::maybeSetPrimaryRange(UChar32 start, UChar32 end, - uint32_t primary, int32_t step, - UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - U_ASSERT(start <= end); - // TODO: Do we need to check what values are currently set for start..end? - // An offset range is worth it only if we can achieve an overlap between -@@ -370,11 +390,11 @@ CollationDataBuilder::maybeSetPrimaryRange(UChar32 start, UChar32 end, - return 0; - } - uint32_t offsetCE32 = Collation::makeCE32FromTagAndIndex(Collation::OFFSET_TAG, index); -- utrie2_setRange32(trie, start, end, offsetCE32, TRUE, &errorCode); -- modified = TRUE; -- return TRUE; -+ utrie2_setRange32(trie, start, end, offsetCE32, true, &errorCode); -+ modified = true; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -@@ -395,7 +415,7 @@ CollationDataBuilder::setPrimaryRangeAndReturnNext(UChar32 start, UChar32 end, - primary = Collation::incThreeBytePrimaryByOffset(primary, isCompressible, step); - if(start > end) { return primary; } - } -- modified = TRUE; -+ modified = true; - } - } - -@@ -431,10 +451,10 @@ int64_t - CollationDataBuilder::getSingleCE(UChar32 c, UErrorCode &errorCode) const { - if(U_FAILURE(errorCode)) { return 0; } - // Keep parallel with CollationData::getSingleCE(). -- UBool fromBase = FALSE; -+ UBool fromBase = false; - uint32_t ce32 = utrie2_get32(trie, c); - if(ce32 == Collation::FALLBACK_CE32) { -- fromBase = TRUE; -+ fromBase = true; - ce32 = base->getCE32(c); - } - while(Collation::isSpecialCE32(ce32)) { -@@ -554,6 +574,98 @@ CollationDataBuilder::addCE32(const UnicodeString &prefix, const UnicodeString & - int32_t cLength = U16_LENGTH(c); - uint32_t oldCE32 = utrie2_get32(trie, c); - UBool hasContext = !prefix.isEmpty() || s.length() > cLength; -+ -+ if (icu4xMode) { -+ if (base && c >= 0x1100 && c < 0x1200) { -+ // Omit jamo tailorings. -+ // TODO(https://github.com/unicode-org/icu4x/issues/1941). -+ } -+ const Normalizer2* nfdNormalizer = Normalizer2::getNFDInstance(errorCode); -+ UnicodeString sInNfd; -+ nfdNormalizer->normalize(s, sInNfd, errorCode); -+ if (s != sInNfd) { -+ // s is not in NFD, so it cannot match in ICU4X, since ICU4X only -+ // does NFD lookups. -+ // Now check that we're only rejecting known cases. -+ if (s.length() == 2) { -+ char16_t second = s.charAt(1); -+ if (second == 0x0F73 || second == 0x0F75 || second == 0x0F81) { -+ // Second is a special decomposing Tibetan vowel sign. -+ // These also get added in the decomposed form, so ignoring -+ // this instance is OK. -+ return; -+ } -+ if (c == 0xFDD1 && second == 0xAC00) { -+ // This strange contraction exists in the root and -+ // doesn't have a decomposed counterpart there. -+ // This won't match in ICU4X anyway and is very strange: -+ // Unassigned Arabic presentation form contracting with -+ // the very first Hangul syllable. Let's ignore this -+ // explicitly. -+ return; -+ } -+ } -+ // Unknown case worth investigating if ever found. -+ errorCode = U_UNSUPPORTED_ERROR; -+ return; -+ } -+ -+ if (!prefix.isEmpty()) { -+ UnicodeString prefixInNfd; -+ nfdNormalizer->normalize(prefix, prefixInNfd, errorCode); -+ if (prefix != prefixInNfd) { -+ errorCode = U_UNSUPPORTED_ERROR; -+ return; -+ } -+ -+ int32_t count = prefix.countChar32(); -+ if (count > 2) { -+ // Prefix too long for ICU4X. -+ errorCode = U_UNSUPPORTED_ERROR; -+ return; -+ } -+ UChar32 utf32[4]; -+ int32_t len = prefix.toUTF32(utf32, 4, errorCode); -+ if (len != count) { -+ errorCode = U_INVALID_STATE_ERROR; -+ return; -+ } -+ UChar32 c = utf32[0]; -+ if (u_getCombiningClass(c)) { -+ // Prefix must start with as starter for ICU4X. -+ errorCode = U_UNSUPPORTED_ERROR; -+ return; -+ } -+ // XXX: Korean searchjl has jamo in prefix, so commenting out this -+ // check for now. ICU4X currently ignores non-root jamo tables anyway. -+ // searchjl was added in -+ // https://unicode-org.atlassian.net/browse/CLDR-3560 -+ // Contractions were changed to prefixes in -+ // https://unicode-org.atlassian.net/browse/CLDR-6546 -+ // -+ // if ((c >= 0x1100 && c < 0x1200) || (c >= 0xAC00 && c < 0xD7A4)) { -+ // errorCode = U_UNSUPPORTED_ERROR; -+ // return; -+ // } -+ if ((len > 1) && !(utf32[1] == 0x3099 || utf32[1] == 0x309A)) { -+ // Second character in prefix, if present, must be a kana voicing mark for ICU4X. -+ errorCode = U_UNSUPPORTED_ERROR; -+ return; -+ } -+ } -+ -+ if (s.length() > cLength) { -+ // Check that there's no modern Hangul in contractions. -+ for (int32_t i = 0; i < s.length(); ++i) { -+ UChar c = s.charAt(i); -+ if ((c >= 0x1100 && c < 0x1100 + 19) || (c >= 0x1161 && c < 0x1161 + 21) || (c >= 0x11A7 && c < 0x11A7 + 28) || (c >= 0xAC00 && c < 0xD7A4)) { -+ errorCode = U_UNSUPPORTED_ERROR; -+ return; -+ } -+ } -+ } -+ } -+ - if(oldCE32 == Collation::FALLBACK_CE32) { - // First tailoring for c. - // If c has contextual base mappings or if we add a contextual mapping, -@@ -561,7 +673,7 @@ CollationDataBuilder::addCE32(const UnicodeString &prefix, const UnicodeString & - // Otherwise we just override the base mapping. - uint32_t baseCE32 = base->getFinalCE32(base->getCE32(c)); - if(hasContext || Collation::ce32HasContext(baseCE32)) { -- oldCE32 = copyFromBaseCE32(c, baseCE32, TRUE, errorCode); -+ oldCE32 = copyFromBaseCE32(c, baseCE32, true, errorCode); - utrie2_set32(trie, c, oldCE32, &errorCode); - if(U_FAILURE(errorCode)) { return; } - } -@@ -621,7 +733,7 @@ CollationDataBuilder::addCE32(const UnicodeString &prefix, const UnicodeString & - cond = nextCond; - } - } -- modified = TRUE; -+ modified = true; - } - - uint32_t -@@ -675,8 +787,11 @@ CollationDataBuilder::encodeCEs(const int64_t ces[], int32_t cesLength, - return encodeOneCEAsCE32(0); - } else if(cesLength == 1) { - return encodeOneCE(ces[0], errorCode); -- } else if(cesLength == 2) { -+ } else if(cesLength == 2 && !icu4xMode) { - // Try to encode two CEs as one CE32. -+ // Turn this off for ICU4X, because without the canonical closure -+ // these are so rare that it doesn't make sense to spend a branch -+ // on checking this tag when using the data. - int64_t ce0 = ces[0]; - int64_t ce1 = ces[1]; - uint32_t p0 = (uint32_t)(ce0 >> 32); -@@ -802,7 +917,7 @@ CollationDataBuilder::copyFromBaseCE32(UChar32 c, uint32_t ce32, UBool withConte - const UChar *p = base->contexts + Collation::indexFromCE32(ce32); - ce32 = CollationData::readCE32(p); // Default if no prefix match. - if(!withContext) { -- return copyFromBaseCE32(c, ce32, FALSE, errorCode); -+ return copyFromBaseCE32(c, ce32, false, errorCode); - } - ConditionalCE32 head; - UnicodeString context((UChar)0); -@@ -810,7 +925,7 @@ CollationDataBuilder::copyFromBaseCE32(UChar32 c, uint32_t ce32, UBool withConte - if(Collation::isContractionCE32(ce32)) { - index = copyContractionsFromBaseCE32(context, c, ce32, &head, errorCode); - } else { -- ce32 = copyFromBaseCE32(c, ce32, TRUE, errorCode); -+ ce32 = copyFromBaseCE32(c, ce32, true, errorCode); - head.next = index = addConditionalCE32(context, ce32, errorCode); - } - if(U_FAILURE(errorCode)) { return 0; } -@@ -824,7 +939,7 @@ CollationDataBuilder::copyFromBaseCE32(UChar32 c, uint32_t ce32, UBool withConte - if(Collation::isContractionCE32(ce32)) { - index = copyContractionsFromBaseCE32(context, c, ce32, cond, errorCode); - } else { -- ce32 = copyFromBaseCE32(c, ce32, TRUE, errorCode); -+ ce32 = copyFromBaseCE32(c, ce32, true, errorCode); - cond->next = index = addConditionalCE32(context, ce32, errorCode); - } - if(U_FAILURE(errorCode)) { return 0; } -@@ -838,7 +953,7 @@ CollationDataBuilder::copyFromBaseCE32(UChar32 c, uint32_t ce32, UBool withConte - if(!withContext) { - const UChar *p = base->contexts + Collation::indexFromCE32(ce32); - ce32 = CollationData::readCE32(p); // Default if no suffix match. -- return copyFromBaseCE32(c, ce32, FALSE, errorCode); -+ return copyFromBaseCE32(c, ce32, false, errorCode); - } - ConditionalCE32 head; - UnicodeString context((UChar)0); -@@ -851,7 +966,7 @@ CollationDataBuilder::copyFromBaseCE32(UChar32 c, uint32_t ce32, UBool withConte - errorCode = U_UNSUPPORTED_ERROR; // We forbid tailoring of Hangul syllables. - break; - case Collation::OFFSET_TAG: -- ce32 = getCE32FromOffsetCE32(TRUE, c, ce32); -+ ce32 = getCE32FromOffsetCE32(true, c, ce32); - break; - case Collation::IMPLICIT_TAG: - ce32 = encodeOneCE(Collation::unassignedCEFromCodePoint(c), errorCode); -@@ -877,7 +992,7 @@ CollationDataBuilder::copyContractionsFromBaseCE32(UnicodeString &context, UChar - } else { - ce32 = CollationData::readCE32(p); // Default if no suffix match. - U_ASSERT(!Collation::isContractionCE32(ce32)); -- ce32 = copyFromBaseCE32(c, ce32, TRUE, errorCode); -+ ce32 = copyFromBaseCE32(c, ce32, true, errorCode); - cond->next = index = addConditionalCE32(context, ce32, errorCode); - if(U_FAILURE(errorCode)) { return 0; } - cond = getConditionalCE32(index); -@@ -887,7 +1002,7 @@ CollationDataBuilder::copyContractionsFromBaseCE32(UnicodeString &context, UChar - UCharsTrie::Iterator suffixes(p + 2, 0, errorCode); - while(suffixes.next(errorCode)) { - context.append(suffixes.getString()); -- ce32 = copyFromBaseCE32(c, (uint32_t)suffixes.getValue(), TRUE, errorCode); -+ ce32 = copyFromBaseCE32(c, (uint32_t)suffixes.getValue(), true, errorCode); - cond->next = index = addConditionalCE32(context, ce32, errorCode); - if(U_FAILURE(errorCode)) { return 0; } - // No need to update the unsafeBackwardSet because the tailoring set -@@ -908,7 +1023,7 @@ public: - - UBool copyRangeCE32(UChar32 start, UChar32 end, uint32_t ce32) { - ce32 = copyCE32(ce32); -- utrie2_setRange32(dest.trie, start, end, ce32, TRUE, &errorCode); -+ utrie2_setRange32(dest.trie, start, end, ce32, true, &errorCode); - if(CollationDataBuilder::isBuilderContextCE32(ce32)) { - dest.contextChars.add(start, end); - } -@@ -929,7 +1044,7 @@ public: - int32_t length = Collation::lengthFromCE32(ce32); - // Inspect the source CE32s. Just copy them if none are modified. - // Otherwise copy to modifiedCEs, with modifications. -- UBool isModified = FALSE; -+ UBool isModified = false; - for(int32_t i = 0; i < length; ++i) { - ce32 = srcCE32s[i]; - int64_t ce; -@@ -943,7 +1058,7 @@ public: - for(int32_t j = 0; j < i; ++j) { - modifiedCEs[j] = Collation::ceFromCE32(srcCE32s[j]); - } -- isModified = TRUE; -+ isModified = true; - } - modifiedCEs[i] = ce; - } -@@ -960,7 +1075,7 @@ public: - int32_t length = Collation::lengthFromCE32(ce32); - // Inspect the source CEs. Just copy them if none are modified. - // Otherwise copy to modifiedCEs, with modifications. -- UBool isModified = FALSE; -+ UBool isModified = false; - for(int32_t i = 0; i < length; ++i) { - int64_t srcCE = srcCEs[i]; - int64_t ce = modifier.modifyCE(srcCE); -@@ -973,7 +1088,7 @@ public: - for(int32_t j = 0; j < i; ++j) { - modifiedCEs[j] = srcCEs[j]; - } -- isModified = TRUE; -+ isModified = true; - } - modifiedCEs[i] = ce; - } -@@ -1055,11 +1170,11 @@ CollationDataBuilder::optimize(const UnicodeSet &set, UErrorCode &errorCode) { - uint32_t ce32 = utrie2_get32(trie, c); - if(ce32 == Collation::FALLBACK_CE32) { - ce32 = base->getFinalCE32(base->getCE32(c)); -- ce32 = copyFromBaseCE32(c, ce32, TRUE, errorCode); -+ ce32 = copyFromBaseCE32(c, ce32, true, errorCode); - utrie2_set32(trie, c, ce32, &errorCode); - } - } -- modified = TRUE; -+ modified = true; - } - - void -@@ -1072,7 +1187,7 @@ CollationDataBuilder::suppressContractions(const UnicodeSet &set, UErrorCode &er - if(ce32 == Collation::FALLBACK_CE32) { - ce32 = base->getFinalCE32(base->getCE32(c)); - if(Collation::ce32HasContext(ce32)) { -- ce32 = copyFromBaseCE32(c, ce32, FALSE /* without context */, errorCode); -+ ce32 = copyFromBaseCE32(c, ce32, false /* without context */, errorCode); - utrie2_set32(trie, c, ce32, &errorCode); - } - } else if(isBuilderContextCE32(ce32)) { -@@ -1084,23 +1199,23 @@ CollationDataBuilder::suppressContractions(const UnicodeSet &set, UErrorCode &er - contextChars.remove(c); - } - } -- modified = TRUE; -+ modified = true; - } - - UBool - CollationDataBuilder::getJamoCE32s(uint32_t jamoCE32s[], UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - UBool anyJamoAssigned = base == NULL; // always set jamoCE32s in the base data -- UBool needToCopyFromBase = FALSE; -+ UBool needToCopyFromBase = false; - for(int32_t j = 0; j < CollationData::JAMO_CE32S_LENGTH; ++j) { // Count across Jamo types. - UChar32 jamo = jamoCpFromIndex(j); -- UBool fromBase = FALSE; -+ UBool fromBase = false; - uint32_t ce32 = utrie2_get32(trie, jamo); - anyJamoAssigned |= Collation::isAssignedCE32(ce32); - // TODO: Try to prevent [optimize [Jamo]] from counting as anyJamoAssigned. - // (As of CLDR 24 [2013] the Korean tailoring does not optimize conjoining Jamo.) - if(ce32 == Collation::FALLBACK_CE32) { -- fromBase = TRUE; -+ fromBase = true; - ce32 = base->getCE32(jamo); - } - if(Collation::isSpecialCE32(ce32)) { -@@ -1117,14 +1232,14 @@ CollationDataBuilder::getJamoCE32s(uint32_t jamoCE32s[], UErrorCode &errorCode) - if(fromBase) { - // Defer copying until we know if anyJamoAssigned. - ce32 = Collation::FALLBACK_CE32; -- needToCopyFromBase = TRUE; -+ needToCopyFromBase = true; - } - break; - case Collation::IMPLICIT_TAG: - // An unassigned Jamo should only occur in tests with incomplete bases. - U_ASSERT(fromBase); - ce32 = Collation::FALLBACK_CE32; -- needToCopyFromBase = TRUE; -+ needToCopyFromBase = true; - break; - case Collation::OFFSET_TAG: - ce32 = getCE32FromOffsetCE32(fromBase, jamo, ce32); -@@ -1137,7 +1252,7 @@ CollationDataBuilder::getJamoCE32s(uint32_t jamoCE32s[], UErrorCode &errorCode) - case Collation::HANGUL_TAG: - case Collation::LEAD_SURROGATE_TAG: - errorCode = U_INTERNAL_PROGRAM_ERROR; -- return FALSE; -+ return false; - } - } - jamoCE32s[j] = ce32; -@@ -1147,7 +1262,7 @@ CollationDataBuilder::getJamoCE32s(uint32_t jamoCE32s[], UErrorCode &errorCode) - if(jamoCE32s[j] == Collation::FALLBACK_CE32) { - UChar32 jamo = jamoCpFromIndex(j); - jamoCE32s[j] = copyFromBaseCE32(jamo, base->getCE32(jamo), -- /*withContext=*/ TRUE, errorCode); -+ /*withContext=*/ true, errorCode); - } - } - } -@@ -1188,15 +1303,15 @@ enumRangeLeadValue(const void *context, UChar32 /*start*/, UChar32 /*end*/, uint - value = Collation::LEAD_ALL_FALLBACK; - } else { - *pValue = Collation::LEAD_MIXED; -- return FALSE; -+ return false; - } - if(*pValue < 0) { - *pValue = (int32_t)value; - } else if(*pValue != (int32_t)value) { - *pValue = Collation::LEAD_MIXED; -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - U_CDECL_END -@@ -1251,10 +1366,10 @@ CollationDataBuilder::buildMappings(CollationData &data, UErrorCode &errorCode) - // In order to still have good trie compression and keep this code simple, - // we only set this flag if a whole block of 588 Hangul syllables starting with - // a common leading consonant (Jamo L) has this property. -- UBool isAnyJamoVTSpecial = FALSE; -+ UBool isAnyJamoVTSpecial = false; - for(int32_t i = Hangul::JAMO_L_COUNT; i < CollationData::JAMO_CE32S_LENGTH; ++i) { - if(Collation::isSpecialCE32(jamoCE32s[i])) { -- isAnyJamoVTSpecial = TRUE; -+ isAnyJamoVTSpecial = true; - break; - } - } -@@ -1266,7 +1381,7 @@ CollationDataBuilder::buildMappings(CollationData &data, UErrorCode &errorCode) - ce32 |= Collation::HANGUL_NO_SPECIAL_JAMO; - } - UChar32 limit = c + Hangul::JAMO_VT_COUNT; -- utrie2_setRange32(trie, c, limit - 1, ce32, TRUE, &errorCode); -+ utrie2_setRange32(trie, c, limit - 1, ce32, true, &errorCode); - c = limit; - } - } else { -@@ -1276,7 +1391,7 @@ CollationDataBuilder::buildMappings(CollationData &data, UErrorCode &errorCode) - uint32_t ce32 = base->getCE32(c); - U_ASSERT(Collation::hasCE32Tag(ce32, Collation::HANGUL_TAG)); - UChar32 limit = c + Hangul::JAMO_VT_COUNT; -- utrie2_setRange32(trie, c, limit - 1, ce32, TRUE, &errorCode); -+ utrie2_setRange32(trie, c, limit - 1, ce32, true, &errorCode); - c = limit; - } - } -@@ -1284,9 +1399,11 @@ CollationDataBuilder::buildMappings(CollationData &data, UErrorCode &errorCode) - setDigitTags(errorCode); - setLeadSurrogates(errorCode); - -- // For U+0000, move its normal ce32 into CE32s[0] and set U0000_TAG. -- ce32s.setElementAt((int32_t)utrie2_get32(trie, 0), 0); -- utrie2_set32(trie, 0, Collation::makeCE32FromTagAndIndex(Collation::U0000_TAG, 0), &errorCode); -+ if (!icu4xMode) { -+ // For U+0000, move its normal ce32 into CE32s[0] and set U0000_TAG. -+ ce32s.setElementAt((int32_t)utrie2_get32(trie, 0), 0); -+ utrie2_set32(trie, 0, Collation::makeCE32FromTagAndIndex(Collation::U0000_TAG, 0), &errorCode); -+ } - - utrie2_freeze(trie, UTRIE2_32_VALUE_BITS, &errorCode); - if(U_FAILURE(errorCode)) { return; } -@@ -1322,13 +1439,10 @@ CollationDataBuilder::buildMappings(CollationData &data, UErrorCode &errorCode) - void - CollationDataBuilder::clearContexts() { - contexts.remove(); -- UnicodeSetIterator iter(contextChars); -- while(iter.next()) { -- U_ASSERT(!iter.isString()); -- uint32_t ce32 = utrie2_get32(trie, iter.getCodepoint()); -- U_ASSERT(isBuilderContextCE32(ce32)); -- getConditionalCE32ForCE32(ce32)->builtCE32 = Collation::NO_CE32; -- } -+ // Incrementing the contexts build "era" invalidates all of the builtCE32 -+ // from before this clearContexts() call. -+ // Simpler than finding and resetting all of those fields. -+ ++contextsEra; - } - - void -@@ -1336,7 +1450,7 @@ CollationDataBuilder::buildContexts(UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { return; } - // Ignore abandoned lists and the cached builtCE32, - // and build all contexts from scratch. -- contexts.remove(); -+ clearContexts(); - UnicodeSetIterator iter(contextChars); - while(U_SUCCESS(errorCode) && iter.next()) { - U_ASSERT(!iter.isString()); -@@ -1362,18 +1476,34 @@ CollationDataBuilder::buildContext(ConditionalCE32 *head, UErrorCode &errorCode) - U_ASSERT(head->next >= 0); - UCharsTrieBuilder prefixBuilder(errorCode); - UCharsTrieBuilder contractionBuilder(errorCode); -+ // This outer loop goes from each prefix to the next. -+ // For each prefix it finds the one or more same-prefix entries (firstCond..lastCond). -+ // If there are multiple suffixes for the same prefix, -+ // then an inner loop builds a contraction trie for them. - for(ConditionalCE32 *cond = head;; cond = getConditionalCE32(cond->next)) { -+ if(U_FAILURE(errorCode)) { return 0; } // early out for memory allocation errors - // After the list head, the prefix or suffix can be empty, but not both. - U_ASSERT(cond == head || cond->hasContext()); - int32_t prefixLength = cond->prefixLength(); - UnicodeString prefix(cond->context, 0, prefixLength + 1); - // Collect all contraction suffixes for one prefix. - ConditionalCE32 *firstCond = cond; -- ConditionalCE32 *lastCond = cond; -- while(cond->next >= 0 && -- (cond = getConditionalCE32(cond->next))->context.startsWith(prefix)) { -+ ConditionalCE32 *lastCond; -+ do { - lastCond = cond; -- } -+ // Clear the defaultCE32 fields as we go. -+ // They are left over from building a previous version of this list of contexts. -+ // -+ // One of the code paths below may copy a preceding defaultCE32 -+ // into its emptySuffixCE32. -+ // If a new suffix has been inserted before what used to be -+ // the firstCond for its prefix, then that previous firstCond could still -+ // contain an outdated defaultCE32 from an earlier buildContext() and -+ // result in an incorrect emptySuffixCE32. -+ // So we reset all defaultCE32 before reading and setting new values. -+ cond->defaultCE32 = Collation::NO_CE32; -+ } while(cond->next >= 0 && -+ (cond = getConditionalCE32(cond->next))->context.startsWith(prefix)); - uint32_t ce32; - int32_t suffixStart = prefixLength + 1; // == prefix.length() - if(lastCond->context.length() == suffixStart) { -@@ -1428,6 +1558,20 @@ CollationDataBuilder::buildContext(ConditionalCE32 *head, UErrorCode &errorCode) - // The last suffix character has lccc!=0, allowing for discontiguous contractions. - flags |= Collation::CONTRACT_TRAILING_CCC; - } -+ if (icu4xMode && (flags & Collation::CONTRACT_HAS_STARTER) == 0) { -+ for (int32_t i = 0; i < suffix.length();) { -+ UChar32 c = suffix.char32At(i); -+ if (!u_getCombiningClass(c)) { -+ flags |= Collation::CONTRACT_HAS_STARTER; -+ break; -+ } -+ if (c > 0xFFFF) { -+ i += 2; -+ } else { -+ ++i; -+ } -+ } -+ } - contractionBuilder.add(suffix, (int32_t)cond->ce32, errorCode); - if(cond == lastCond) { break; } - cond = getConditionalCE32(cond->next); -diff --git a/deps/icu-small/source/i18n/collationdatabuilder.h b/deps/icu-small/source/i18n/collationdatabuilder.h -index 6ae77772fd..cbbd8f264b 100644 ---- a/deps/icu-small/source/i18n/collationdatabuilder.h -+++ b/deps/icu-small/source/i18n/collationdatabuilder.h -@@ -60,7 +60,7 @@ public: - virtual int64_t modifyCE(int64_t ce) const = 0; - }; - -- CollationDataBuilder(UErrorCode &errorCode); -+ CollationDataBuilder(UBool icu4xMode, UErrorCode &errorCode); - - virtual ~CollationDataBuilder(); - -@@ -244,8 +244,18 @@ protected: - UnicodeSet contextChars; - // Serialized UCharsTrie structures for finalized contexts. - UnicodeString contexts; -+private: -+ /** -+ * The "era" of building intermediate contexts. -+ * When the array of cached, temporary contexts overflows, then clearContexts() -+ * removes them all and invalidates the builtCE32 that used to point to built tries. -+ * See ConditionalCE32::era. -+ */ -+ int32_t contextsEra = 0; -+protected: - UnicodeSet unsafeBackwardSet; - UBool modified; -+ UBool icu4xMode; - - UBool fastLatinEnabled; - CollationFastLatinBuilder *fastLatinBuilder; -diff --git a/deps/icu-small/source/i18n/collationdatareader.cpp b/deps/icu-small/source/i18n/collationdatareader.cpp -index 0eb1861343..a96982cd94 100644 ---- a/deps/icu-small/source/i18n/collationdatareader.cpp -+++ b/deps/icu-small/source/i18n/collationdatareader.cpp -@@ -436,7 +436,7 @@ CollationDataReader::read(const CollationTailoring *base, const uint8_t *inBytes - settings->options = options; - // Set variableTop from options and scripts data. - settings->variableTop = tailoring.data->getLastPrimaryForGroup( -- UCOL_REORDER_CODE_FIRST + settings->getMaxVariable()); -+ UCOL_REORDER_CODE_FIRST + int32_t{settings->getMaxVariable()}); - if(settings->variableTop == 0) { - errorCode = U_INVALID_FORMAT_ERROR; - return; -@@ -471,9 +471,9 @@ CollationDataReader::isAcceptable(void *context, - if(version != NULL) { - uprv_memcpy(version, pInfo->dataVersion, 4); - } -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -diff --git a/deps/icu-small/source/i18n/collationdatareader.h b/deps/icu-small/source/i18n/collationdatareader.h -index 44e69399e3..083b57ea58 100644 ---- a/deps/icu-small/source/i18n/collationdatareader.h -+++ b/deps/icu-small/source/i18n/collationdatareader.h -@@ -106,7 +106,7 @@ struct U_I18N_API CollationDataReader /* all static */ { - isAcceptable(void *context, const char *type, const char *name, const UDataInfo *pInfo); - - private: -- CollationDataReader(); // no constructor -+ CollationDataReader() = delete; // no constructor - }; - - /* -diff --git a/deps/icu-small/source/i18n/collationdatawriter.cpp b/deps/icu-small/source/i18n/collationdatawriter.cpp -index 823c8eb011..b4be7df887 100644 ---- a/deps/icu-small/source/i18n/collationdatawriter.cpp -+++ b/deps/icu-small/source/i18n/collationdatawriter.cpp -@@ -79,7 +79,7 @@ CollationDataWriter::writeBase(const CollationData &data, const CollationSetting - const void *rootElements, int32_t rootElementsLength, - int32_t indexes[], uint8_t *dest, int32_t capacity, - UErrorCode &errorCode) { -- return write(TRUE, NULL, -+ return write(true, NULL, - data, settings, - rootElements, rootElementsLength, - indexes, dest, capacity, errorCode); -@@ -89,7 +89,7 @@ int32_t - CollationDataWriter::writeTailoring(const CollationTailoring &t, const CollationSettings &settings, - int32_t indexes[], uint8_t *dest, int32_t capacity, - UErrorCode &errorCode) { -- return write(FALSE, t.version, -+ return write(false, t.version, - *t.data, settings, - NULL, 0, - indexes, dest, capacity, errorCode); -@@ -129,11 +129,11 @@ CollationDataWriter::write(UBool isBase, const UVersionInfo dataVersion, - // so that we start with an 8-aligned offset. - indexesLength = CollationDataReader::IX_TOTAL_SIZE + 1; - U_ASSERT(settings.reorderCodesLength == 0); -- hasMappings = TRUE; -+ hasMappings = true; - unsafeBackwardSet = *data.unsafeBackwardSet; - fastLatinTableLength = data.fastLatinTableLength; - } else if(baseData == NULL) { -- hasMappings = FALSE; -+ hasMappings = false; - if(settings.reorderCodesLength == 0) { - // only options - indexesLength = CollationDataReader::IX_OPTIONS + 1; // no limit offset here -@@ -142,7 +142,7 @@ CollationDataWriter::write(UBool isBase, const UVersionInfo dataVersion, - indexesLength = CollationDataReader::IX_REORDER_TABLE_OFFSET + 2; - } - } else { -- hasMappings = TRUE; -+ hasMappings = true; - // Tailored mappings, and what else? - // Check in ascending order of optional tailoring data items. - indexesLength = CollationDataReader::IX_CE32S_OFFSET + 2; -diff --git a/deps/icu-small/source/i18n/collationdatawriter.h b/deps/icu-small/source/i18n/collationdatawriter.h -index 197cd5309f..6ba9a9c2c7 100644 ---- a/deps/icu-small/source/i18n/collationdatawriter.h -+++ b/deps/icu-small/source/i18n/collationdatawriter.h -@@ -39,7 +39,7 @@ public: - UErrorCode &errorCode); - - private: -- CollationDataWriter(); // no constructor -+ CollationDataWriter() = delete; // no constructor - - static int32_t write(UBool isBase, const UVersionInfo dataVersion, - const CollationData &data, const CollationSettings &settings, -diff --git a/deps/icu-small/source/i18n/collationfastlatin.cpp b/deps/icu-small/source/i18n/collationfastlatin.cpp -index b98b8457f4..35cf60e815 100644 ---- a/deps/icu-small/source/i18n/collationfastlatin.cpp -+++ b/deps/icu-small/source/i18n/collationfastlatin.cpp -@@ -45,7 +45,7 @@ CollationFastLatin::getOptions(const CollationData *data, const CollationSetting - miniVarTop = table[i]; - } - -- UBool digitsAreReordered = FALSE; -+ UBool digitsAreReordered = false; - if(settings.hasReordering()) { - uint32_t prevStart = 0; - uint32_t beforeDigitStart = 0; -@@ -80,7 +80,7 @@ CollationFastLatin::getOptions(const CollationData *data, const CollationSetting - afterDigitStart = latinStart; - } - if(!(beforeDigitStart < digitStart && digitStart < afterDigitStart)) { -- digitsAreReordered = TRUE; -+ digitsAreReordered = true; - } - } - -diff --git a/deps/icu-small/source/i18n/collationfastlatin.h b/deps/icu-small/source/i18n/collationfastlatin.h -index 4bac797409..7013f71ce6 100644 ---- a/deps/icu-small/source/i18n/collationfastlatin.h -+++ b/deps/icu-small/source/i18n/collationfastlatin.h -@@ -249,7 +249,7 @@ private: - static uint32_t getQuaternaries(uint32_t variableTop, uint32_t pair); - - private: -- CollationFastLatin(); // no constructor -+ CollationFastLatin() = delete; // no constructor - }; - - /* -diff --git a/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp b/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp -index e5ba2f0e21..fc50e9df8e 100644 ---- a/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp -+++ b/deps/icu-small/source/i18n/collationfastlatinbuilder.cpp -@@ -91,7 +91,7 @@ CollationFastLatinBuilder::CollationFastLatinBuilder(UErrorCode &errorCode) - contractionCEs(errorCode), uniqueCEs(errorCode), - miniCEs(NULL), - firstDigitPrimary(0), firstLatinPrimary(0), lastLatinPrimary(0), -- firstShortPrimary(0), shortPrimaryOverflow(FALSE), -+ firstShortPrimary(0), shortPrimaryOverflow(false), - headerLength(0) { - } - -@@ -101,24 +101,24 @@ CollationFastLatinBuilder::~CollationFastLatinBuilder() { - - UBool - CollationFastLatinBuilder::forData(const CollationData &data, UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - if(!result.isEmpty()) { // This builder is not reusable. - errorCode = U_INVALID_STATE_ERROR; -- return FALSE; -+ return false; - } -- if(!loadGroups(data, errorCode)) { return FALSE; } -+ if(!loadGroups(data, errorCode)) { return false; } - - // Fast handling of digits. - firstShortPrimary = firstDigitPrimary; - getCEs(data, errorCode); -- if(!encodeUniqueCEs(errorCode)) { return FALSE; } -+ if(!encodeUniqueCEs(errorCode)) { return false; } - if(shortPrimaryOverflow) { - // Give digits long mini primaries, - // so that there are more short primaries for letters. - firstShortPrimary = firstLatinPrimary; - resetCEs(); - getCEs(data, errorCode); -- if(!encodeUniqueCEs(errorCode)) { return FALSE; } -+ if(!encodeUniqueCEs(errorCode)) { return false; } - } - // Note: If we still have a short-primary overflow but not a long-primary overflow, - // then we could calculate how many more long primaries would fit, -@@ -126,7 +126,7 @@ CollationFastLatinBuilder::forData(const CollationData &data, UErrorCode &errorC - // and try again. - // However, this might only benefit the en_US_POSIX tailoring, - // and it is simpler to suppress building fast Latin data for it in genrb, -- // or by returning FALSE here if shortPrimaryOverflow. -+ // or by returning false here if shortPrimaryOverflow. - - UBool ok = !shortPrimaryOverflow && - encodeCharCEs(errorCode) && encodeContractions(errorCode); -@@ -137,7 +137,7 @@ CollationFastLatinBuilder::forData(const CollationData &data, UErrorCode &errorC - - UBool - CollationFastLatinBuilder::loadGroups(const CollationData &data, UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - headerLength = 1 + NUM_SPECIAL_GROUPS; - uint32_t r0 = (CollationFastLatin::VERSION << 8) | headerLength; - result.append((UChar)r0); -@@ -147,7 +147,7 @@ CollationFastLatinBuilder::loadGroups(const CollationData &data, UErrorCode &err - lastSpecialPrimaries[i] = data.getLastPrimaryForGroup(UCOL_REORDER_CODE_FIRST + i); - if(lastSpecialPrimaries[i] == 0) { - // missing data -- return FALSE; -+ return false; - } - result.append((UChar)0); // reserve a slot for this group - } -@@ -157,9 +157,9 @@ CollationFastLatinBuilder::loadGroups(const CollationData &data, UErrorCode &err - lastLatinPrimary = data.getLastPrimaryForGroup(USCRIPT_LATIN); - if(firstDigitPrimary == 0 || firstLatinPrimary == 0) { - // missing data -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - UBool -@@ -169,7 +169,7 @@ CollationFastLatinBuilder::inSameGroup(uint32_t p, uint32_t q) const { - if(p >= firstShortPrimary) { - return q >= firstShortPrimary; - } else if(q >= firstShortPrimary) { -- return FALSE; -+ return false; - } - // Both or neither must be potentially-variable, - // so that we can test only one and determine if both are variable. -@@ -177,7 +177,7 @@ CollationFastLatinBuilder::inSameGroup(uint32_t p, uint32_t q) const { - if(p > lastVariablePrimary) { - return q > lastVariablePrimary; - } else if(q > lastVariablePrimary) { -- return FALSE; -+ return false; - } - // Both will be encoded with long mini primaries. - // They must be in the same special reordering group, -@@ -188,7 +188,7 @@ CollationFastLatinBuilder::inSameGroup(uint32_t p, uint32_t q) const { - if(p <= lastPrimary) { - return q <= lastPrimary; - } else if(q <= lastPrimary) { -- return FALSE; -+ return false; - } - } - } -@@ -197,7 +197,7 @@ void - CollationFastLatinBuilder::resetCEs() { - contractionCEs.removeAllElements(); - uniqueCEs.removeAllElements(); -- shortPrimaryOverflow = FALSE; -+ shortPrimaryOverflow = false; - result.truncate(headerLength); - } - -@@ -245,7 +245,7 @@ CollationFastLatinBuilder::getCEs(const CollationData &data, UErrorCode &errorCo - UBool - CollationFastLatinBuilder::getCEsFromCE32(const CollationData &data, UChar32 c, uint32_t ce32, - UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - ce32 = data.getFinalCE32(ce32); - ce1 = 0; - if(Collation::isSimpleOrLongCE32(ce32)) { -@@ -266,7 +266,7 @@ CollationFastLatinBuilder::getCEsFromCE32(const CollationData &data, UChar32 c, - } - break; - } else { -- return FALSE; -+ return false; - } - } - case Collation::EXPANSION_TAG: { -@@ -279,7 +279,7 @@ CollationFastLatinBuilder::getCEsFromCE32(const CollationData &data, UChar32 c, - } - break; - } else { -- return FALSE; -+ return false; - } - } - // Note: We could support PREFIX_TAG (assert c>=0) -@@ -295,24 +295,24 @@ CollationFastLatinBuilder::getCEsFromCE32(const CollationData &data, UChar32 c, - ce0 = data.getCEFromOffsetCE32(c, ce32); - break; - default: -- return FALSE; -+ return false; - } - } - // A mapping can be completely ignorable. - if(ce0 == 0) { return ce1 == 0; } - // We do not support an ignorable ce0 unless it is completely ignorable. - uint32_t p0 = (uint32_t)(ce0 >> 32); -- if(p0 == 0) { return FALSE; } -+ if(p0 == 0) { return false; } - // We only support primaries up to the Latin script. -- if(p0 > lastLatinPrimary) { return FALSE; } -+ if(p0 > lastLatinPrimary) { return false; } - // We support non-common secondary and case weights only together with short primaries. - uint32_t lower32_0 = (uint32_t)ce0; - if(p0 < firstShortPrimary) { - uint32_t sc0 = lower32_0 & Collation::SECONDARY_AND_CASE_MASK; -- if(sc0 != Collation::COMMON_SECONDARY_CE) { return FALSE; } -+ if(sc0 != Collation::COMMON_SECONDARY_CE) { return false; } - } - // No below-common tertiary weights. -- if((lower32_0 & Collation::ONLY_TERTIARY_MASK) < Collation::COMMON_WEIGHT16) { return FALSE; } -+ if((lower32_0 & Collation::ONLY_TERTIARY_MASK) < Collation::COMMON_WEIGHT16) { return false; } - if(ce1 != 0) { - // Both primaries must be in the same group, - // or both must get short mini primaries, -@@ -320,28 +320,28 @@ CollationFastLatinBuilder::getCEsFromCE32(const CollationData &data, UChar32 c, - // This is so that we can test the first primary and use the same mask for both, - // and determine for both whether they are variable. - uint32_t p1 = (uint32_t)(ce1 >> 32); -- if(p1 == 0 ? p0 < firstShortPrimary : !inSameGroup(p0, p1)) { return FALSE; } -+ if(p1 == 0 ? p0 < firstShortPrimary : !inSameGroup(p0, p1)) { return false; } - uint32_t lower32_1 = (uint32_t)ce1; - // No tertiary CEs. -- if((lower32_1 >> 16) == 0) { return FALSE; } -+ if((lower32_1 >> 16) == 0) { return false; } - // We support non-common secondary and case weights - // only for secondary CEs or together with short primaries. - if(p1 != 0 && p1 < firstShortPrimary) { - uint32_t sc1 = lower32_1 & Collation::SECONDARY_AND_CASE_MASK; -- if(sc1 != Collation::COMMON_SECONDARY_CE) { return FALSE; } -+ if(sc1 != Collation::COMMON_SECONDARY_CE) { return false; } - } - // No below-common tertiary weights. -- if((lower32_1 & Collation::ONLY_TERTIARY_MASK) < Collation::COMMON_WEIGHT16) { return FALSE; } -+ if((lower32_1 & Collation::ONLY_TERTIARY_MASK) < Collation::COMMON_WEIGHT16) { return false; } - } - // No quaternary weights. -- if(((ce0 | ce1) & Collation::QUATERNARY_MASK) != 0) { return FALSE; } -- return TRUE; -+ if(((ce0 | ce1) & Collation::QUATERNARY_MASK) != 0) { return false; } -+ return true; - } - - UBool - CollationFastLatinBuilder::getCEsFromContractionCE32(const CollationData &data, uint32_t ce32, - UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - const UChar *p = data.contexts + Collation::indexFromCE32(ce32); - ce32 = CollationData::readCE32(p); // Default if no suffix match. - // Since the original ce32 is not a prefix mapping, -@@ -357,7 +357,7 @@ CollationFastLatinBuilder::getCEsFromContractionCE32(const CollationData &data, - // Handle an encodable contraction unless the next contraction is too long - // and starts with the same character. - int32_t prevX = -1; -- UBool addContraction = FALSE; -+ UBool addContraction = false; - UCharsTrie::Iterator suffixes(p + 2, 0, errorCode); - while(suffixes.next(errorCode)) { - const UnicodeString &suffix = suffixes.getString(); -@@ -367,7 +367,7 @@ CollationFastLatinBuilder::getCEsFromContractionCE32(const CollationData &data, - if(addContraction) { - // Bail out for all contractions starting with this character. - addContractionEntry(x, Collation::NO_CE, 0, errorCode); -- addContraction = FALSE; -+ addContraction = false; - } - continue; - } -@@ -376,17 +376,17 @@ CollationFastLatinBuilder::getCEsFromContractionCE32(const CollationData &data, - } - ce32 = (uint32_t)suffixes.getValue(); - if(suffix.length() == 1 && getCEsFromCE32(data, U_SENTINEL, ce32, errorCode)) { -- addContraction = TRUE; -+ addContraction = true; - } else { - addContractionEntry(x, Collation::NO_CE, 0, errorCode); -- addContraction = FALSE; -+ addContraction = false; - } - prevX = x; - } - if(addContraction) { - addContractionEntry(prevX, ce0, ce1, errorCode); - } -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - // Note: There might not be any fast Latin contractions, but - // we need to enter contraction handling anyway so that we can bail out - // when there is a non-fast-Latin character following. -@@ -394,7 +394,7 @@ CollationFastLatinBuilder::getCEsFromContractionCE32(const CollationData &data, - // following umlaut and bail out, rather than return the difference of Y vs. u. - ce0 = ((int64_t)Collation::NO_CE_PRIMARY << 32) | CONTRACTION_FLAG | contractionIndex; - ce1 = 0; -- return TRUE; -+ return true; - } - - void -@@ -428,12 +428,12 @@ CollationFastLatinBuilder::getMiniCE(int64_t ce) const { - - UBool - CollationFastLatinBuilder::encodeUniqueCEs(UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - uprv_free(miniCEs); - miniCEs = (uint16_t *)uprv_malloc(uniqueCEs.size() * 2); - if(miniCEs == NULL) { - errorCode = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - int32_t group = 0; - uint32_t lastGroupPrimary = lastSpecialPrimaries[group]; -@@ -484,7 +484,7 @@ CollationFastLatinBuilder::encodeUniqueCEs(UErrorCode &errorCode) { - #if DEBUG_COLLATION_FAST_LATIN_BUILDER - printf("short-primary overflow for %08x\n", p); - #endif -- shortPrimaryOverflow = TRUE; -+ shortPrimaryOverflow = true; - miniCEs[i] = CollationFastLatin::BAIL_OUT; - continue; - } -@@ -563,7 +563,7 @@ CollationFastLatinBuilder::encodeUniqueCEs(UErrorCode &errorCode) { - - UBool - CollationFastLatinBuilder::encodeCharCEs(UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - int32_t miniCEsStart = result.length(); - for(int32_t i = 0; i < CollationFastLatin::NUM_FAST_CHARS; ++i) { - result.append((UChar)0); // initialize to completely ignorable -@@ -594,7 +594,7 @@ UBool - CollationFastLatinBuilder::encodeContractions(UErrorCode &errorCode) { - // We encode all contraction lists so that the first word of a list - // terminates the previous list, and we only need one additional terminator at the end. -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - int32_t indexBase = headerLength + CollationFastLatin::NUM_FAST_CHARS; - int32_t firstContractionIndex = result.length(); - for(int32_t i = 0; i < CollationFastLatin::NUM_FAST_CHARS; ++i) { -@@ -605,7 +605,7 @@ CollationFastLatinBuilder::encodeContractions(UErrorCode &errorCode) { - result.setCharAt(headerLength + i, CollationFastLatin::BAIL_OUT); - continue; - } -- UBool firstTriple = TRUE; -+ UBool firstTriple = true; - for(int32_t index = (int32_t)ce & 0x7fffffff;; index += 3) { - int32_t x = static_cast(contractionCEs.elementAti(index)); - if((uint32_t)x == CollationFastLatin::CONTR_CHAR_MASK && !firstTriple) { break; } -@@ -621,7 +621,7 @@ CollationFastLatinBuilder::encodeContractions(UErrorCode &errorCode) { - result.append((UChar)(x | (3 << CollationFastLatin::CONTR_LENGTH_SHIFT))); - result.append((UChar)(miniCE >> 16)).append((UChar)miniCE); - } -- firstTriple = FALSE; -+ firstTriple = false; - } - // Note: There is a chance that this new contraction list is the same as a previous one, - // and if so, then we could truncate the result and reuse the other list. -@@ -635,7 +635,7 @@ CollationFastLatinBuilder::encodeContractions(UErrorCode &errorCode) { - } - if(result.isBogus()) { - errorCode = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - #if DEBUG_COLLATION_FAST_LATIN_BUILDER - printf("** fast Latin %d * 2 = %d bytes\n", result.length(), result.length() * 2); -@@ -663,7 +663,7 @@ CollationFastLatinBuilder::encodeContractions(UErrorCode &errorCode) { - } - puts(""); - #endif -- return TRUE; -+ return true; - } - - uint32_t -diff --git a/deps/icu-small/source/i18n/collationfcd.cpp b/deps/icu-small/source/i18n/collationfcd.cpp -index 0be4150b09..e1f1d0330c 100644 ---- a/deps/icu-small/source/i18n/collationfcd.cpp -+++ b/deps/icu-small/source/i18n/collationfcd.cpp -@@ -151,7 +151,7 @@ const uint32_t CollationFCD::lcccBits[73]={ - 0x200ff800,0xfbc00000,0x3eef,0xe000000,0xff000000,0xfffffc00,0xfffffffb,0x10000000,0x1e2000,0x2000,0x40000000,0x602000,0x18000000,0x400,0x7000000,0xf00, - 0x3000000,0x2a00000,0x3c3e0000,0xdf,0x40,0x6800000,0xe0000000,0x300000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0xbfff0000,0x7fff,0x10, - 0xff800,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0x1fff0000,0x1ffe2,0x38000,0x80000000,0xfc00,0x6000000,0x3ff08000,0xc0000000,0x30000,0x1000, --0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000,0xc0000fd,0x5108000 -+0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000,0xc0000fd,0x7108000 - }; - - const uint8_t CollationFCD::tcccIndex[2048]={ -@@ -293,7 +293,7 @@ const uint32_t CollationFCD::tcccBits[123]={ - 0xe0000000,0x300000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0xbfff0000,0x7fff,0x10,0xff800,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd, - 0xbffffff,0x3ffffff,0x3f3fffff,0xaaff3f3f,0x3fffffff,0x1fdfffff,0xefcfffde,0x1fdc7fff,0x1fff0000,0x1ffe2,0x800,0xc000000,0x4000,0xe000,0x1210,0x50, - 0x292,0x333e005,0x333,0xf000,0x3c0f,0x38000,0x80000000,0xfc00,0x55555000,0x36db02a5,0x46100000,0x47900000,0x3ff08000,0xc0000000,0x30000,0x1000, --0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000,0xc0000fd,0x5108000,0x5f7ffc00,0x7fdb -+0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000,0xc0000fd,0x7108000,0x5f7ffc00,0x7fdb - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/collationfcd.h b/deps/icu-small/source/i18n/collationfcd.h -index 3a5738efb2..9620452b97 100644 ---- a/deps/icu-small/source/i18n/collationfcd.h -+++ b/deps/icu-small/source/i18n/collationfcd.h -@@ -123,7 +123,7 @@ public: - } - - private: -- CollationFCD(); // No instantiation. -+ CollationFCD() = delete; // No instantiation. - - static const uint8_t lcccIndex[2048]; - static const uint8_t tcccIndex[2048]; -diff --git a/deps/icu-small/source/i18n/collationiterator.cpp b/deps/icu-small/source/i18n/collationiterator.cpp -index 6bfdfbe7c7..a47b3d86be 100644 ---- a/deps/icu-small/source/i18n/collationiterator.cpp -+++ b/deps/icu-small/source/i18n/collationiterator.cpp -@@ -36,8 +36,8 @@ CollationIterator::CEBuffer::~CEBuffer() {} - UBool - CollationIterator::CEBuffer::ensureAppendCapacity(int32_t appCap, UErrorCode &errorCode) { - int32_t capacity = buffer.getCapacity(); -- if((length + appCap) <= capacity) { return TRUE; } -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if((length + appCap) <= capacity) { return true; } -+ if(U_FAILURE(errorCode)) { return false; } - do { - if(capacity < 1000) { - capacity *= 4; -@@ -48,9 +48,9 @@ CollationIterator::CEBuffer::ensureAppendCapacity(int32_t appCap, UErrorCode &er - int64_t *p = buffer.resize(capacity, length); - if(p == NULL) { - errorCode = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - // State of combining marks skipped in discontiguous contraction. -@@ -216,12 +216,12 @@ CollationIterator::handleGetTrailSurrogate() { - - UBool - CollationIterator::foundNULTerminator() { -- return FALSE; -+ return false; - } - - UBool - CollationIterator::forbidSurrogateCodePoints() const { -- return FALSE; -+ return false; - } - - uint32_t -@@ -239,7 +239,7 @@ int64_t - CollationIterator::nextCEFromCE32(const CollationData *d, UChar32 c, uint32_t ce32, - UErrorCode &errorCode) { - --ceBuffer.length; // Undo ceBuffer.incLength(). -- appendCEsFromCE32(d, c, ce32, TRUE, errorCode); -+ appendCEsFromCE32(d, c, ce32, true, errorCode); - if(U_SUCCESS(errorCode)) { - return ceBuffer.get(cesIndex++); - } else { -@@ -661,7 +661,7 @@ CollationIterator::nextCE32FromDiscontiguousContraction( - // and then from the combining marks that we skipped before the match. - c = U_SENTINEL; - for(;;) { -- appendCEsFromCE32(d, c, ce32, TRUE, errorCode); -+ appendCEsFromCE32(d, c, ce32, true, errorCode); - // Fetch CE32s for skipped combining marks from the normal data, with fallback, - // rather than from the CollationData where we found the contraction. - if(!skipped->hasNext()) { break; } -@@ -864,7 +864,7 @@ CollationIterator::previousCE(UVector32 &offsets, UErrorCode &errorCode) { - if(Collation::isSimpleOrLongCE32(ce32)) { - return Collation::ceFromCE32(ce32); - } -- appendCEsFromCE32(d, c, ce32, FALSE, errorCode); -+ appendCEsFromCE32(d, c, ce32, false, errorCode); - if(U_SUCCESS(errorCode)) { - if(ceBuffer.length > 1) { - offsets.addElement(getOffset(), errorCode); -diff --git a/deps/icu-small/source/i18n/collationiterator.h b/deps/icu-small/source/i18n/collationiterator.h -index 73cb93b934..93c119c6b8 100644 ---- a/deps/icu-small/source/i18n/collationiterator.h -+++ b/deps/icu-small/source/i18n/collationiterator.h -@@ -92,8 +92,8 @@ private: - int32_t length; - - private: -- CEBuffer(const CEBuffer &); -- void operator=(const CEBuffer &); -+ CEBuffer(const CEBuffer &) = delete; -+ void operator=(const CEBuffer &) = delete; - - MaybeStackArray buffer; - }; -diff --git a/deps/icu-small/source/i18n/collationkeys.cpp b/deps/icu-small/source/i18n/collationkeys.cpp -index b5c322fb44..c7e0de618d 100644 ---- a/deps/icu-small/source/i18n/collationkeys.cpp -+++ b/deps/icu-small/source/i18n/collationkeys.cpp -@@ -90,10 +90,10 @@ namespace { - */ - class SortKeyLevel : public UMemory { - public: -- SortKeyLevel() : len(0), ok(TRUE) {} -+ SortKeyLevel() : len(0), ok(true) {} - ~SortKeyLevel() {} - -- /** @return FALSE if memory allocation failed */ -+ /** @return false if memory allocation failed */ - UBool isOk() const { return ok; } - UBool isEmpty() const { return len == 0; } - int32_t length() const { return len; } -@@ -182,7 +182,7 @@ SortKeyLevel::appendReverseWeight16(uint32_t w) { - - UBool SortKeyLevel::ensureCapacity(int32_t appendCapacity) { - if(!ok) { -- return FALSE; -+ return false; - } - int32_t newCapacity = 2 * buffer.getCapacity(); - int32_t altCapacity = len + 2 * appendCapacity; -@@ -193,9 +193,9 @@ UBool SortKeyLevel::ensureCapacity(int32_t appendCapacity) { - newCapacity = 200; - } - if(buffer.resize(newCapacity, len)==NULL) { -- return ok = FALSE; -+ return ok = false; - } -- return TRUE; -+ return true; - } - - } // namespace -@@ -203,7 +203,7 @@ UBool SortKeyLevel::ensureCapacity(int32_t appendCapacity) { - CollationKeys::LevelCallback::~LevelCallback() {} - - UBool --CollationKeys::LevelCallback::needToWrite(Collation::Level /*level*/) { return TRUE; } -+CollationKeys::LevelCallback::needToWrite(Collation::Level /*level*/) { return true; } - - /** - * Map from collation strength (UColAttributeValue) -@@ -619,7 +619,7 @@ CollationKeys::writeSortKeyUpToQuaternary(CollationIterator &iter, - if(U_FAILURE(errorCode)) { return; } - - // Append the beyond-primary levels. -- UBool ok = TRUE; -+ UBool ok = true; - if((levels & Collation::SECONDARY_LEVEL_FLAG) != 0) { - if(!callback.needToWrite(Collation::SECONDARY_LEVEL)) { return; } - ok &= secondaries.isOk(); -diff --git a/deps/icu-small/source/i18n/collationkeys.h b/deps/icu-small/source/i18n/collationkeys.h -index 5b41d14c0b..8dad286dc6 100644 ---- a/deps/icu-small/source/i18n/collationkeys.h -+++ b/deps/icu-small/source/i18n/collationkeys.h -@@ -116,7 +116,7 @@ public: - private: - friend struct CollationDataReader; - -- CollationKeys(); // no instantiation -+ CollationKeys() = delete; // no instantiation - - // Secondary level: Compress up to 33 common weights as 05..25 or 25..45. - static const uint32_t SEC_COMMON_LOW = Collation::COMMON_BYTE; -diff --git a/deps/icu-small/source/i18n/collationroot.cpp b/deps/icu-small/source/i18n/collationroot.cpp -index 71753bd6f4..dc88c35a68 100644 ---- a/deps/icu-small/source/i18n/collationroot.cpp -+++ b/deps/icu-small/source/i18n/collationroot.cpp -@@ -27,13 +27,14 @@ - #include "ucln_in.h" - #include "udatamem.h" - #include "umutex.h" -+#include "umapfile.h" - - U_NAMESPACE_BEGIN - - namespace { - - static const CollationCacheEntry *rootSingleton = NULL; --static UInitOnce initOnce = U_INITONCE_INITIALIZER; -+static UInitOnce initOnce {}; - - } // namespace - -@@ -42,22 +43,51 @@ U_CDECL_BEGIN - static UBool U_CALLCONV uprv_collation_root_cleanup() { - SharedObject::clearPtr(rootSingleton); - initOnce.reset(); -- return TRUE; -+ return true; - } - - U_CDECL_END - -+UDataMemory* -+CollationRoot::loadFromFile(const char* ucadataPath, UErrorCode &errorCode) { -+ UDataMemory dataMemory; -+ UDataMemory *rDataMem = NULL; -+ if (U_FAILURE(errorCode)) { -+ return NULL; -+ } -+ if (uprv_mapFile(&dataMemory, ucadataPath, &errorCode)) { -+ if (dataMemory.pHeader->dataHeader.magic1 == 0xda && -+ dataMemory.pHeader->dataHeader.magic2 == 0x27 && -+ CollationDataReader::isAcceptable(NULL, "icu", "ucadata", &dataMemory.pHeader->info)) { -+ rDataMem = UDataMemory_createNewInstance(&errorCode); -+ if (U_FAILURE(errorCode)) { -+ return NULL; -+ } -+ rDataMem->pHeader = dataMemory.pHeader; -+ rDataMem->mapAddr = dataMemory.mapAddr; -+ rDataMem->map = dataMemory.map; -+ return rDataMem; -+ } -+ errorCode = U_INVALID_FORMAT_ERROR; -+ return NULL; -+ } -+ errorCode = U_MISSING_RESOURCE_ERROR; -+ return NULL; -+} -+ - void U_CALLCONV --CollationRoot::load(UErrorCode &errorCode) { -+CollationRoot::load(const char* ucadataPath, UErrorCode &errorCode) { - if(U_FAILURE(errorCode)) { return; } - LocalPointer t(new CollationTailoring(NULL)); - if(t.isNull() || t->isBogus()) { - errorCode = U_MEMORY_ALLOCATION_ERROR; - return; - } -- t->memory = udata_openChoice(U_ICUDATA_NAME U_TREE_SEPARATOR_STRING "coll", -- "icu", "ucadata", -- CollationDataReader::isAcceptable, t->version, &errorCode); -+ t->memory = ucadataPath ? CollationRoot::loadFromFile(ucadataPath, errorCode) : -+ udata_openChoice(U_ICUDATA_NAME U_TREE_SEPARATOR_STRING "coll", -+ "icu", "ucadata", -+ CollationDataReader::isAcceptable, -+ t->version, &errorCode); - if(U_FAILURE(errorCode)) { return; } - const uint8_t *inBytes = static_cast(udata_getMemory(t->memory)); - CollationDataReader::read(NULL, inBytes, udata_getLength(t->memory), *t, errorCode); -@@ -73,14 +103,14 @@ CollationRoot::load(UErrorCode &errorCode) { - - const CollationCacheEntry * - CollationRoot::getRootCacheEntry(UErrorCode &errorCode) { -- umtx_initOnce(initOnce, CollationRoot::load, errorCode); -+ umtx_initOnce(initOnce, CollationRoot::load, static_cast(NULL), errorCode); - if(U_FAILURE(errorCode)) { return NULL; } - return rootSingleton; - } - - const CollationTailoring * - CollationRoot::getRoot(UErrorCode &errorCode) { -- umtx_initOnce(initOnce, CollationRoot::load, errorCode); -+ umtx_initOnce(initOnce, CollationRoot::load, static_cast(NULL), errorCode); - if(U_FAILURE(errorCode)) { return NULL; } - return rootSingleton->tailoring; - } -@@ -99,6 +129,12 @@ CollationRoot::getSettings(UErrorCode &errorCode) { - return root->settings; - } - -+void -+CollationRoot::forceLoadFromFile(const char* ucadataPath, UErrorCode &errorCode) { -+ umtx_initOnce(initOnce, CollationRoot::load, ucadataPath, errorCode); -+} -+ -+ - U_NAMESPACE_END - - #endif // !UCONFIG_NO_COLLATION -diff --git a/deps/icu-small/source/i18n/collationroot.h b/deps/icu-small/source/i18n/collationroot.h -index 8cd3046cdf..b203f612b3 100644 ---- a/deps/icu-small/source/i18n/collationroot.h -+++ b/deps/icu-small/source/i18n/collationroot.h -@@ -15,6 +15,7 @@ - #define __COLLATIONROOT_H__ - - #include "unicode/utypes.h" -+#include "unicode/udata.h" - - #if !UCONFIG_NO_COLLATION - -@@ -34,9 +35,11 @@ public: - static const CollationTailoring *getRoot(UErrorCode &errorCode); - static const CollationData *getData(UErrorCode &errorCode); - static const CollationSettings *getSettings(UErrorCode &errorCode); -+ static void U_EXPORT2 forceLoadFromFile(const char* ucadataPath, UErrorCode &errorCode); - - private: -- static void U_CALLCONV load(UErrorCode &errorCode); -+ static void U_CALLCONV load(const char* ucadataPath, UErrorCode &errorCode); -+ static UDataMemory* loadFromFile(const char* ucadataPath, UErrorCode &errorCode); - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/collationruleparser.cpp b/deps/icu-small/source/i18n/collationruleparser.cpp -index ade6ecb552..7fb95c0b2b 100644 ---- a/deps/icu-small/source/i18n/collationruleparser.cpp -+++ b/deps/icu-small/source/i18n/collationruleparser.cpp -@@ -128,7 +128,7 @@ CollationRuleParser::parse(const UnicodeString &ruleString, UErrorCode &errorCod - void - CollationRuleParser::parseRuleChain(UErrorCode &errorCode) { - int32_t resetStrength = parseResetAndPosition(errorCode); -- UBool isFirstRelation = TRUE; -+ UBool isFirstRelation = true; - for(;;) { - int32_t result = parseRelationOperator(errorCode); - if(U_FAILURE(errorCode)) { return; } -@@ -165,7 +165,7 @@ CollationRuleParser::parseRuleChain(UErrorCode &errorCode) { - parseStarredCharacters(strength, i, errorCode); - } - if(U_FAILURE(errorCode)) { return; } -- isFirstRelation = FALSE; -+ isFirstRelation = false; - } - } - -diff --git a/deps/icu-small/source/i18n/collationsets.cpp b/deps/icu-small/source/i18n/collationsets.cpp -index 09581416a8..b23c5e318d 100644 ---- a/deps/icu-small/source/i18n/collationsets.cpp -+++ b/deps/icu-small/source/i18n/collationsets.cpp -@@ -34,7 +34,7 @@ U_CDECL_BEGIN - static UBool U_CALLCONV - enumTailoredRange(const void *context, UChar32 start, UChar32 end, uint32_t ce32) { - if(ce32 == Collation::FALLBACK_CE32) { -- return TRUE; // fallback to base, not tailored -+ return true; // fallback to base, not tailored - } - TailoredSet *ts = (TailoredSet *)context; - return ts->handleCE32(start, end, ce32); -@@ -365,14 +365,14 @@ enumCnERange(const void *context, UChar32 start, UChar32 end, uint32_t ce32) { - } else if(cne->checkTailored < 0) { - // Collect the set of code points with mappings in the tailoring data. - if(ce32 == Collation::FALLBACK_CE32) { -- return TRUE; // fallback to base, not tailored -+ return true; // fallback to base, not tailored - } else { - cne->tailored.add(start, end); - } - // checkTailored > 0: Exclude tailored ranges from the base data enumeration. - } else if(start == end) { - if(cne->tailored.contains(start)) { -- return TRUE; -+ return true; - } - } else if(cne->tailored.containsSome(start, end)) { - cne->ranges.set(start, end).removeAll(cne->tailored); -@@ -509,7 +509,7 @@ ContractionsAndExpansions::handleCE32(UChar32 start, UChar32 end, uint32_t ce32) - if(sink != NULL) { - // TODO: This should be optimized, - // especially if [start..end] is the complete Hangul range. (assert that) -- UTF16CollationIterator iter(data, FALSE, NULL, NULL, NULL); -+ UTF16CollationIterator iter(data, false, NULL, NULL, NULL); - UChar hangul[1] = { 0 }; - for(UChar32 c = start; c <= end; ++c) { - hangul[0] = (UChar)c; -diff --git a/deps/icu-small/source/i18n/collationsettings.cpp b/deps/icu-small/source/i18n/collationsettings.cpp -index 9eeab48331..fe051880b8 100644 ---- a/deps/icu-small/source/i18n/collationsettings.cpp -+++ b/deps/icu-small/source/i18n/collationsettings.cpp -@@ -248,10 +248,10 @@ CollationSettings::reorderTableHasSplitBytes(const uint8_t table[256]) { - U_ASSERT(table[0] == 0); - for(int32_t i = 1; i < 256; ++i) { - if(table[i] == 0) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - uint32_t -diff --git a/deps/icu-small/source/i18n/collationtailoring.cpp b/deps/icu-small/source/i18n/collationtailoring.cpp -index 78a11fbb26..440414c433 100644 ---- a/deps/icu-small/source/i18n/collationtailoring.cpp -+++ b/deps/icu-small/source/i18n/collationtailoring.cpp -@@ -68,18 +68,18 @@ CollationTailoring::~CollationTailoring() { - - UBool - CollationTailoring::ensureOwnedData(UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - if(ownedData == NULL) { - const Normalizer2Impl *nfcImpl = Normalizer2Factory::getNFCImpl(errorCode); -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - ownedData = new CollationData(*nfcImpl); - if(ownedData == NULL) { - errorCode = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - } - data = ownedData; -- return TRUE; -+ return true; - } - - void -diff --git a/deps/icu-small/source/i18n/collationtailoring.h b/deps/icu-small/source/i18n/collationtailoring.h -index 5fc2bac2d3..a6143c1c26 100644 ---- a/deps/icu-small/source/i18n/collationtailoring.h -+++ b/deps/icu-small/source/i18n/collationtailoring.h -@@ -24,6 +24,8 @@ - #include "collationsettings.h" - #include "uhash.h" - #include "umutex.h" -+#include "unifiedcache.h" -+ - - struct UDataMemory; - struct UResourceBundle; -@@ -89,7 +91,7 @@ private: - * No copy constructor: A CollationTailoring cannot be copied. - * It is immutable, and the data trie cannot be copied either. - */ -- CollationTailoring(const CollationTailoring &other); -+ CollationTailoring(const CollationTailoring &other) = delete; - }; - - struct U_I18N_API CollationCacheEntry : public SharedObject { -@@ -105,6 +107,10 @@ struct U_I18N_API CollationCacheEntry : public SharedObject { - const CollationTailoring *tailoring; - }; - -+template<> U_I18N_API -+const CollationCacheEntry * -+LocaleCacheKey::createObject(const void *creationContext, -+ UErrorCode &errorCode) const; - U_NAMESPACE_END - - #endif // !UCONFIG_NO_COLLATION -diff --git a/deps/icu-small/source/i18n/collationweights.cpp b/deps/icu-small/source/i18n/collationweights.cpp -index 05458962c6..02d0268f53 100644 ---- a/deps/icu-small/source/i18n/collationweights.cpp -+++ b/deps/icu-small/source/i18n/collationweights.cpp -@@ -227,7 +227,7 @@ CollationWeights::getWeightRanges(uint32_t lowerLimit, uint32_t upperLimit) { - #ifdef UCOL_DEBUG - printf("error: no space between lower & upper limits\n"); - #endif -- return FALSE; -+ return false; - } - - /* check that neither is a prefix of the other */ -@@ -236,7 +236,7 @@ CollationWeights::getWeightRanges(uint32_t lowerLimit, uint32_t upperLimit) { - #ifdef UCOL_DEBUG - printf("error: lower limit 0x%08lx is a prefix of upper limit 0x%08lx\n", lowerLimit, upperLimit); - #endif -- return FALSE; -+ return false; - } - } - /* if the upper limit is a prefix of the lower limit then the earlier test lowerLimit>=upperLimit has caught it */ -@@ -307,7 +307,7 @@ CollationWeights::getWeightRanges(uint32_t lowerLimit, uint32_t upperLimit) { - // maxByte (for lowerEnd) or minByte (for upperStart). - const uint32_t lowerEnd=lower[length].end; - const uint32_t upperStart=upper[length].start; -- UBool merged=FALSE; -+ UBool merged=false; - - if(lowerEnd>upperStart) { - // These two lower and upper ranges collide. -@@ -326,7 +326,7 @@ CollationWeights::getWeightRanges(uint32_t lowerLimit, uint32_t upperLimit) { - (int32_t)getWeightTrail(lower[length].start, length)+1; - // count might be <=0 in which case there is no room, - // and the range-collecting code below will ignore this range. -- merged=TRUE; -+ merged=true; - } else if(lowerEnd==upperStart) { - // Not possible, unless minByte==maxByte which is not allowed. - U_ASSERT(minBytes[length]countBytes -- merged=TRUE; -+ merged=true; - } - } - if(merged) { -@@ -409,14 +409,14 @@ CollationWeights::allocWeightsInShortRanges(int32_t n, int32_t minLength) { - /* sort the ranges by weight values */ - UErrorCode errorCode=U_ZERO_ERROR; - uprv_sortArray(ranges, rangeCount, sizeof(WeightRange), -- compareRanges, NULL, FALSE, &errorCode); -+ compareRanges, NULL, false, &errorCode); - /* ignore error code: we know that the internal sort function will not fail here */ - } -- return TRUE; -+ return true; - } - n -= ranges[i].count; // still >0 - } -- return FALSE; -+ return false; - } - - UBool -@@ -433,7 +433,7 @@ CollationWeights::allocWeightsInMinLengthRanges(int32_t n, int32_t minLength) { - } - - int32_t nextCountBytes = countBytes(minLength + 1); -- if(n > count * nextCountBytes) { return FALSE; } -+ if(n > count * nextCountBytes) { return false; } - - // Use the minLength ranges. Merge them, and then split again as necessary. - uint32_t start = ranges[0].start; -@@ -485,7 +485,7 @@ CollationWeights::allocWeightsInMinLengthRanges(int32_t n, int32_t minLength) { - lengthenRange(ranges[1]); - rangeCount = 2; - } -- return TRUE; -+ return true; - } - - /* -@@ -503,7 +503,7 @@ CollationWeights::allocWeights(uint32_t lowerLimit, uint32_t upperLimit, int32_t - #ifdef UCOL_DEBUG - printf("error: unable to get Weight ranges\n"); - #endif -- return FALSE; -+ return false; - } - - /* try until we find suitably large ranges */ -@@ -518,7 +518,7 @@ CollationWeights::allocWeights(uint32_t lowerLimit, uint32_t upperLimit, int32_t - printf("error: the maximum number of %ld weights is insufficient for n=%ld\n", - minLengthCount, n); - #endif -- return FALSE; -+ return false; - } - - if(allocWeightsInMinLengthRanges(n, minLength)) { break; } -@@ -541,7 +541,7 @@ CollationWeights::allocWeights(uint32_t lowerLimit, uint32_t upperLimit, int32_t - #endif - - rangeIndex = 0; -- return TRUE; -+ return true; - } - - uint32_t -diff --git a/deps/icu-small/source/i18n/coptccal.cpp b/deps/icu-small/source/i18n/coptccal.cpp -index 9c2b1ebbb7..0be700ca01 100644 ---- a/deps/icu-small/source/i18n/coptccal.cpp -+++ b/deps/icu-small/source/i18n/coptccal.cpp -@@ -103,7 +103,7 @@ CopticCalendar::handleComputeFields(int32_t julianDay, UErrorCode &/*status*/) - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - - static void U_CALLCONV initializeSystemDefaultCentury() { -diff --git a/deps/icu-small/source/i18n/cpdtrans.cpp b/deps/icu-small/source/i18n/cpdtrans.cpp -index dc0217ba61..f2b1c36a33 100644 ---- a/deps/icu-small/source/i18n/cpdtrans.cpp -+++ b/deps/icu-small/source/i18n/cpdtrans.cpp -@@ -73,7 +73,7 @@ CompoundTransliterator::CompoundTransliterator(const UnicodeString& id, - trans(0), numAnonymousRBTs(0) { - // TODO add code for parseError...currently unused, but - // later may be used by parsing code... -- init(id, direction, TRUE, status); -+ init(id, direction, true, status); - } - - CompoundTransliterator::CompoundTransliterator(const UnicodeString& id, -@@ -83,7 +83,7 @@ CompoundTransliterator::CompoundTransliterator(const UnicodeString& id, - trans(0), numAnonymousRBTs(0) { - // TODO add code for parseError...currently unused, but - // later may be used by parsing code... -- init(id, UTRANS_FORWARD, TRUE, status); -+ init(id, UTRANS_FORWARD, true, status); - } - - -@@ -99,7 +99,7 @@ CompoundTransliterator::CompoundTransliterator(const UnicodeString& newID, - Transliterator(newID, adoptedFilter), - trans(0), numAnonymousRBTs(anonymousRBTs) - { -- init(list, UTRANS_FORWARD, FALSE, status); -+ init(list, UTRANS_FORWARD, false, status); - } - - /** -@@ -115,7 +115,7 @@ CompoundTransliterator::CompoundTransliterator(UVector& list, - { - // TODO add code for parseError...currently unused, but - // later may be used by parsing code... -- init(list, UTRANS_FORWARD, FALSE, status); -+ init(list, UTRANS_FORWARD, false, status); - // assume caller will fixup ID - } - -@@ -126,7 +126,7 @@ CompoundTransliterator::CompoundTransliterator(UVector& list, - Transliterator(UnicodeString(), NULL), - trans(0), numAnonymousRBTs(anonymousRBTs) - { -- init(list, UTRANS_FORWARD, FALSE, status); -+ init(list, UTRANS_FORWARD, false, status); - } - - /** -@@ -140,7 +140,7 @@ CompoundTransliterator::CompoundTransliterator(UVector& list, - * @param adoptedSplitTransliterator a transliterator to be inserted - * before the entry at offset idSplitPoint in the id string. May be - * NULL to insert no entry. -- * @param fixReverseID if TRUE, then reconstruct the ID of reverse -+ * @param fixReverseID if true, then reconstruct the ID of reverse - * entries by calling getID() of component entries. Some constructors - * do not require this because they apply a facade ID anyway. - * @param status the error code indicating success or failure -@@ -182,7 +182,7 @@ void CompoundTransliterator::init(const UnicodeString& id, - * is, it should be in the FORWARD order; if direction is REVERSE then - * the list order will be reversed. - * @param direction either FORWARD or REVERSE -- * @param fixReverseID if TRUE, then reconstruct the ID of reverse -+ * @param fixReverseID if true, then reconstruct the ID of reverse - * entries by calling getID() of component entries. Some constructors - * do not require this because they apply a facade ID anyway. - * @param status the error code indicating success or failure -@@ -285,7 +285,7 @@ CompoundTransliterator& CompoundTransliterator::operator=( - if (this == &t) { return *this; } // self-assignment: no-op - Transliterator::operator=(t); - int32_t i = 0; -- UBool failed = FALSE; -+ UBool failed = false; - if (trans != NULL) { - for (i=0; iclone(); - if (trans[i] == NULL) { -- failed = TRUE; -+ failed = true; - break; - } - } -@@ -352,11 +352,11 @@ void CompoundTransliterator::setTransliterators(Transliterator* const transliter - return; - } - int32_t i = 0; -- UBool failed = FALSE; -+ UBool failed = false; - for (i=0; iclone(); - if (a[i] == NULL) { -- failed = TRUE; -+ failed = true; - break; - } - } -diff --git a/deps/icu-small/source/i18n/csdetect.cpp b/deps/icu-small/source/i18n/csdetect.cpp -index d866eb6628..0b22d4dc2a 100644 ---- a/deps/icu-small/source/i18n/csdetect.cpp -+++ b/deps/icu-small/source/i18n/csdetect.cpp -@@ -47,7 +47,7 @@ struct CSRecognizerInfo : public UMemory { - U_NAMESPACE_END - - static icu::CSRecognizerInfo **fCSRecognizers = NULL; --static icu::UInitOnce gCSRecognizersInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCSRecognizersInitOnce {}; - static int32_t fCSRecognizers_size = 0; - - U_CDECL_BEGIN -@@ -66,7 +66,7 @@ static UBool U_CALLCONV csdet_cleanup(void) - } - gCSRecognizersInitOnce.reset(); - -- return TRUE; -+ return true; - } - - static int32_t U_CALLCONV -@@ -85,39 +85,39 @@ static void U_CALLCONV initRecognizers(UErrorCode &status) { - U_NAMESPACE_USE - ucln_i18n_registerCleanup(UCLN_I18N_CSDET, csdet_cleanup); - CSRecognizerInfo *tempArray[] = { -- new CSRecognizerInfo(new CharsetRecog_UTF8(), TRUE), -- -- new CSRecognizerInfo(new CharsetRecog_UTF_16_BE(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_UTF_16_LE(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_UTF_32_BE(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_UTF_32_LE(), TRUE), -- -- new CSRecognizerInfo(new CharsetRecog_8859_1(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_8859_2(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_8859_5_ru(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_8859_6_ar(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_8859_7_el(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_8859_8_I_he(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_8859_8_he(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_windows_1251(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_windows_1256(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_KOI8_R(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_8859_9_tr(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_sjis(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_gb_18030(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_euc_jp(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_euc_kr(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_big5(), TRUE), -- -- new CSRecognizerInfo(new CharsetRecog_2022JP(), TRUE), -+ new CSRecognizerInfo(new CharsetRecog_UTF8(), true), -+ -+ new CSRecognizerInfo(new CharsetRecog_UTF_16_BE(), true), -+ new CSRecognizerInfo(new CharsetRecog_UTF_16_LE(), true), -+ new CSRecognizerInfo(new CharsetRecog_UTF_32_BE(), true), -+ new CSRecognizerInfo(new CharsetRecog_UTF_32_LE(), true), -+ -+ new CSRecognizerInfo(new CharsetRecog_8859_1(), true), -+ new CSRecognizerInfo(new CharsetRecog_8859_2(), true), -+ new CSRecognizerInfo(new CharsetRecog_8859_5_ru(), true), -+ new CSRecognizerInfo(new CharsetRecog_8859_6_ar(), true), -+ new CSRecognizerInfo(new CharsetRecog_8859_7_el(), true), -+ new CSRecognizerInfo(new CharsetRecog_8859_8_I_he(), true), -+ new CSRecognizerInfo(new CharsetRecog_8859_8_he(), true), -+ new CSRecognizerInfo(new CharsetRecog_windows_1251(), true), -+ new CSRecognizerInfo(new CharsetRecog_windows_1256(), true), -+ new CSRecognizerInfo(new CharsetRecog_KOI8_R(), true), -+ new CSRecognizerInfo(new CharsetRecog_8859_9_tr(), true), -+ new CSRecognizerInfo(new CharsetRecog_sjis(), true), -+ new CSRecognizerInfo(new CharsetRecog_gb_18030(), true), -+ new CSRecognizerInfo(new CharsetRecog_euc_jp(), true), -+ new CSRecognizerInfo(new CharsetRecog_euc_kr(), true), -+ new CSRecognizerInfo(new CharsetRecog_big5(), true), -+ -+ new CSRecognizerInfo(new CharsetRecog_2022JP(), true), - #if !UCONFIG_ONLY_HTML_CONVERSION -- new CSRecognizerInfo(new CharsetRecog_2022KR(), TRUE), -- new CSRecognizerInfo(new CharsetRecog_2022CN(), TRUE), -+ new CSRecognizerInfo(new CharsetRecog_2022KR(), true), -+ new CSRecognizerInfo(new CharsetRecog_2022CN(), true), - -- new CSRecognizerInfo(new CharsetRecog_IBM424_he_rtl(), FALSE), -- new CSRecognizerInfo(new CharsetRecog_IBM424_he_ltr(), FALSE), -- new CSRecognizerInfo(new CharsetRecog_IBM420_ar_rtl(), FALSE), -- new CSRecognizerInfo(new CharsetRecog_IBM420_ar_ltr(), FALSE) -+ new CSRecognizerInfo(new CharsetRecog_IBM424_he_rtl(), false), -+ new CSRecognizerInfo(new CharsetRecog_IBM424_he_ltr(), false), -+ new CSRecognizerInfo(new CharsetRecog_IBM420_ar_rtl(), false), -+ new CSRecognizerInfo(new CharsetRecog_IBM420_ar_ltr(), false) - #endif - }; - int32_t rCount = UPRV_LENGTHOF(tempArray); -@@ -149,7 +149,7 @@ void CharsetDetector::setRecognizers(UErrorCode &status) - - CharsetDetector::CharsetDetector(UErrorCode &status) - : textIn(new InputText(status)), resultArray(NULL), -- resultCount(0), fStripTags(FALSE), fFreshTextSet(FALSE), -+ resultCount(0), fStripTags(false), fFreshTextSet(false), - fEnabledRecognizers(NULL) - { - if (U_FAILURE(status)) { -@@ -197,14 +197,14 @@ CharsetDetector::~CharsetDetector() - void CharsetDetector::setText(const char *in, int32_t len) - { - textIn->setText(in, len); -- fFreshTextSet = TRUE; -+ fFreshTextSet = true; - } - - UBool CharsetDetector::setStripTagsFlag(UBool flag) - { - UBool temp = fStripTags; - fStripTags = flag; -- fFreshTextSet = TRUE; -+ fFreshTextSet = true; - return temp; - } - -@@ -263,9 +263,9 @@ const CharsetMatch * const *CharsetDetector::detectAll(int32_t &maxMatchesFound, - } - - if (resultCount > 1) { -- uprv_sortArray(resultArray, resultCount, sizeof resultArray[0], charsetMatchComparator, NULL, TRUE, &status); -+ uprv_sortArray(resultArray, resultCount, sizeof resultArray[0], charsetMatchComparator, NULL, true, &status); - } -- fFreshTextSet = FALSE; -+ fFreshTextSet = false; - } - - maxMatchesFound = resultCount; -@@ -285,7 +285,7 @@ void CharsetDetector::setDetectableCharset(const char *encoding, UBool enabled, - } - - int32_t modIdx = -1; -- UBool isDefaultVal = FALSE; -+ UBool isDefaultVal = false; - for (int32_t i = 0; i < fCSRecognizers_size; i++) { - CSRecognizerInfo *csrinfo = fCSRecognizers[i]; - if (uprv_strcmp(csrinfo->recognizer->getName(), encoding) == 0) { -@@ -459,7 +459,7 @@ UEnumeration * CharsetDetector::getAllDetectableCharsets(UErrorCode &status) - return 0; - } - uprv_memset(en->context, 0, sizeof(Context)); -- ((Context*)en->context)->all = TRUE; -+ ((Context*)en->context)->all = true; - return en; - } - -@@ -482,7 +482,7 @@ UEnumeration * CharsetDetector::getDetectableCharsets(UErrorCode &status) const - return 0; - } - uprv_memset(en->context, 0, sizeof(Context)); -- ((Context*)en->context)->all = FALSE; -+ ((Context*)en->context)->all = false; - ((Context*)en->context)->enabledRecognizers = fEnabledRecognizers; - return en; - } -diff --git a/deps/icu-small/source/i18n/csrmbcs.cpp b/deps/icu-small/source/i18n/csrmbcs.cpp -index 4c5bdfa560..ec346b5fb3 100644 ---- a/deps/icu-small/source/i18n/csrmbcs.cpp -+++ b/deps/icu-small/source/i18n/csrmbcs.cpp -@@ -115,7 +115,7 @@ static int32_t binarySearch(const uint16_t *array, int32_t len, uint16_t value) - } - - IteratedChar::IteratedChar() : --charValue(0), index(-1), nextIndex(0), error(FALSE), done(FALSE) -+charValue(0), index(-1), nextIndex(0), error(false), done(false) - { - // nothing else to do. - } -@@ -125,14 +125,14 @@ charValue(0), index(-1), nextIndex(0), error(FALSE), done(FALSE) - charValue = 0; - index = -1; - nextIndex = 0; -- error = FALSE; -- done = FALSE; -+ error = false; -+ done = false; - }*/ - - int32_t IteratedChar::nextByte(InputText *det) - { - if (nextIndex >= det->fRawLength) { -- done = TRUE; -+ done = true; - - return -1; - } -@@ -146,7 +146,6 @@ CharsetRecog_mbcs::~CharsetRecog_mbcs() - } - - int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const uint16_t commonChars[], int32_t commonCharsLen) const { -- int32_t singleByteCharCount = 0; - int32_t doubleByteCharCount = 0; - int32_t commonCharCount = 0; - int32_t badCharCount = 0; -@@ -160,9 +159,7 @@ int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const uint16_t commonChars - if (iter.error) { - badCharCount++; - } else { -- if (iter.charValue <= 0xFF) { -- singleByteCharCount++; -- } else { -+ if (iter.charValue > 0xFF) { - doubleByteCharCount++; - - if (commonChars != 0) { -@@ -243,16 +240,16 @@ CharsetRecog_sjis::~CharsetRecog_sjis() - - UBool CharsetRecog_sjis::nextChar(IteratedChar* it, InputText* det) const { - it->index = it->nextIndex; -- it->error = FALSE; -+ it->error = false; - - int32_t firstByte = it->charValue = it->nextByte(det); - - if (firstByte < 0) { -- return FALSE; -+ return false; - } - - if (firstByte <= 0x7F || (firstByte > 0xA0 && firstByte <= 0xDF)) { -- return TRUE; -+ return true; - } - - int32_t secondByte = it->nextByte(det); -@@ -263,10 +260,10 @@ UBool CharsetRecog_sjis::nextChar(IteratedChar* it, InputText* det) const { - - if (! ((secondByte >= 0x40 && secondByte <= 0x7F) || (secondByte >= 0x80 && secondByte <= 0xFE))) { - // Illegal second byte value. -- it->error = TRUE; -+ it->error = true; - } - -- return TRUE; -+ return true; - } - - UBool CharsetRecog_sjis::match(InputText* det, CharsetMatch *results) const { -@@ -296,17 +293,17 @@ UBool CharsetRecog_euc::nextChar(IteratedChar* it, InputText* det) const { - int32_t thirdByte = 0; - - it->index = it->nextIndex; -- it->error = FALSE; -+ it->error = false; - firstByte = it->charValue = it->nextByte(det); - - if (firstByte < 0) { - // Ran off the end of the input data -- return FALSE; -+ return false; - } - - if (firstByte <= 0x8D) { - // single byte char -- return TRUE; -+ return true; - } - - secondByte = it->nextByte(det); -@@ -318,10 +315,10 @@ UBool CharsetRecog_euc::nextChar(IteratedChar* it, InputText* det) const { - if (firstByte >= 0xA1 && firstByte <= 0xFE) { - // Two byte Char - if (secondByte < 0xA1) { -- it->error = TRUE; -+ it->error = true; - } - -- return TRUE; -+ return true; - } - - if (firstByte == 0x8E) { -@@ -332,10 +329,10 @@ UBool CharsetRecog_euc::nextChar(IteratedChar* it, InputText* det) const { - // Treat it like EUC-JP. If the data really was EUC-TW, the following two - // bytes will look like a well formed 2 byte char. - if (secondByte < 0xA1) { -- it->error = TRUE; -+ it->error = true; - } - -- return TRUE; -+ return true; - } - - if (firstByte == 0x8F) { -@@ -346,11 +343,11 @@ UBool CharsetRecog_euc::nextChar(IteratedChar* it, InputText* det) const { - - if (thirdByte < 0xa1) { - // Bad second byte or ran off the end of the input data with a non-ASCII first byte. -- it->error = TRUE; -+ it->error = true; - } - } - -- return TRUE; -+ return true; - - } - -@@ -408,16 +405,16 @@ UBool CharsetRecog_big5::nextChar(IteratedChar* it, InputText* det) const - int32_t firstByte; - - it->index = it->nextIndex; -- it->error = FALSE; -+ it->error = false; - firstByte = it->charValue = it->nextByte(det); - - if (firstByte < 0) { -- return FALSE; -+ return false; - } - - if (firstByte <= 0x7F || firstByte == 0xFF) { - // single byte character. -- return TRUE; -+ return true; - } - - int32_t secondByte = it->nextByte(det); -@@ -427,10 +424,10 @@ UBool CharsetRecog_big5::nextChar(IteratedChar* it, InputText* det) const - // else we'll handle the error later. - - if (secondByte < 0x40 || secondByte == 0x7F || secondByte == 0xFF) { -- it->error = TRUE; -+ it->error = true; - } - -- return TRUE; -+ return true; - } - - const char *CharsetRecog_big5::getName() const -@@ -462,17 +459,17 @@ UBool CharsetRecog_gb_18030::nextChar(IteratedChar* it, InputText* det) const { - int32_t fourthByte = 0; - - it->index = it->nextIndex; -- it->error = FALSE; -+ it->error = false; - firstByte = it->charValue = it->nextByte(det); - - if (firstByte < 0) { - // Ran off the end of the input data -- return FALSE; -+ return false; - } - - if (firstByte <= 0x80) { - // single byte char -- return TRUE; -+ return true; - } - - secondByte = it->nextByte(det); -@@ -484,7 +481,7 @@ UBool CharsetRecog_gb_18030::nextChar(IteratedChar* it, InputText* det) const { - if (firstByte >= 0x81 && firstByte <= 0xFE) { - // Two byte Char - if ((secondByte >= 0x40 && secondByte <= 0x7E) || (secondByte >=80 && secondByte <= 0xFE)) { -- return TRUE; -+ return true; - } - - // Four byte char -@@ -497,16 +494,16 @@ UBool CharsetRecog_gb_18030::nextChar(IteratedChar* it, InputText* det) const { - if (fourthByte >= 0x30 && fourthByte <= 0x39) { - it->charValue = (it->charValue << 16) | (thirdByte << 8) | fourthByte; - -- return TRUE; -+ return true; - } - } - } - - // Something wasn't valid, or we ran out of data (-1). -- it->error = TRUE; -+ it->error = true; - } - -- return TRUE; -+ return true; - } - - const char *CharsetRecog_gb_18030::getName() const -diff --git a/deps/icu-small/source/i18n/csrsbcs.cpp b/deps/icu-small/source/i18n/csrsbcs.cpp -index 0b0d8967e7..92af9b5291 100644 ---- a/deps/icu-small/source/i18n/csrsbcs.cpp -+++ b/deps/icu-small/source/i18n/csrsbcs.cpp -@@ -104,7 +104,7 @@ int32_t NGramParser::nextByte(InputText *det) - void NGramParser::parseCharacters(InputText *det) - { - int32_t b; -- bool ignoreSpace = FALSE; -+ bool ignoreSpace = false; - - while ((b = nextByte(det)) >= 0) { - uint8_t mb = charMap[b]; -@@ -211,7 +211,7 @@ int32_t NGramParser_IBM420::nextByte(InputText *det) - void NGramParser_IBM420::parseCharacters(InputText *det) - { - int32_t b; -- bool ignoreSpace = FALSE; -+ bool ignoreSpace = false; - - while ((b = nextByte(det)) >= 0) { - uint8_t mb = charMap[b]; -diff --git a/deps/icu-small/source/i18n/csrucode.cpp b/deps/icu-small/source/i18n/csrucode.cpp -index 480dae1400..e0a64aa949 100644 ---- a/deps/icu-small/source/i18n/csrucode.cpp -+++ b/deps/icu-small/source/i18n/csrucode.cpp -@@ -126,11 +126,11 @@ UBool CharsetRecog_UTF_32::match(InputText* textIn, CharsetMatch *results) const - int32_t limit = (textIn->fRawLength / 4) * 4; - int32_t numValid = 0; - int32_t numInvalid = 0; -- bool hasBOM = FALSE; -+ bool hasBOM = false; - int32_t confidence = 0; - - if (limit > 0 && getChar(input, 0) == 0x0000FEFFUL) { -- hasBOM = TRUE; -+ hasBOM = true; - } - - for(int32_t i = 0; i < limit; i += 4) { -diff --git a/deps/icu-small/source/i18n/csrutf8.cpp b/deps/icu-small/source/i18n/csrutf8.cpp -index 3f16224ea6..f114f09722 100644 ---- a/deps/icu-small/source/i18n/csrutf8.cpp -+++ b/deps/icu-small/source/i18n/csrutf8.cpp -@@ -27,7 +27,7 @@ const char *CharsetRecog_UTF8::getName() const - } - - UBool CharsetRecog_UTF8::match(InputText* input, CharsetMatch *results) const { -- bool hasBOM = FALSE; -+ bool hasBOM = false; - int32_t numValid = 0; - int32_t numInvalid = 0; - const uint8_t *inputBytes = input->fRawInput; -@@ -37,7 +37,7 @@ UBool CharsetRecog_UTF8::match(InputText* input, CharsetMatch *results) const { - - if (input->fRawLength >= 3 && - inputBytes[0] == 0xEF && inputBytes[1] == 0xBB && inputBytes[2] == 0xBF) { -- hasBOM = TRUE; -+ hasBOM = true; - } - - // Scan for multi-byte sequences -diff --git a/deps/icu-small/source/i18n/currpinf.cpp b/deps/icu-small/source/i18n/currpinf.cpp -index a2676ab5a1..1a1c580271 100644 ---- a/deps/icu-small/source/i18n/currpinf.cpp -+++ b/deps/icu-small/source/i18n/currpinf.cpp -@@ -190,7 +190,7 @@ CurrencyPluralInfo::getCurrencyPluralPattern(const UnicodeString& pluralCount, - // fall back to "other" - if (pluralCount.compare(gPluralCountOther, 5)) { - currencyPluralPattern = -- (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(UnicodeString(TRUE, gPluralCountOther, 5)); -+ (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(UnicodeString(true, gPluralCountOther, 5)); - } - if (currencyPluralPattern == nullptr) { - // no currencyUnitPatterns defined, -@@ -351,15 +351,15 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st - pattern->extract(0, pattern->length(), result_1, "UTF-8"); - std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n"; - #endif -- pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3), -+ pattern->findAndReplace(UnicodeString(true, gPart0, 3), - UnicodeString(numberStylePattern, numberStylePatternLen)); -- pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3)); -+ pattern->findAndReplace(UnicodeString(true, gPart1, 3), UnicodeString(true, gTripleCurrencySign, 3)); - - if (hasSeparator) { - UnicodeString negPattern(patternChars, ptnLength); -- negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3), -+ negPattern.findAndReplace(UnicodeString(true, gPart0, 3), - UnicodeString(negNumberStylePattern, negNumberStylePatternLen)); -- negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3)); -+ negPattern.findAndReplace(UnicodeString(true, gPart1, 3), UnicodeString(true, gTripleCurrencySign, 3)); - pattern->append(gNumberPatternSeparator); - pattern->append(negPattern); - } -@@ -400,7 +400,7 @@ CurrencyPluralInfo::initHash(UErrorCode& status) { - if (U_FAILURE(status)) { - return nullptr; - } -- LocalPointer hTable(new Hashtable(TRUE, status), status); -+ LocalPointer hTable(new Hashtable(true, status), status); - if (U_FAILURE(status)) { - return nullptr; - } -diff --git a/deps/icu-small/source/i18n/dangical.cpp b/deps/icu-small/source/i18n/dangical.cpp -index 57fe80220b..59cdc661da 100644 ---- a/deps/icu-small/source/i18n/dangical.cpp -+++ b/deps/icu-small/source/i18n/dangical.cpp -@@ -24,7 +24,7 @@ - - // --- The cache -- - static icu::TimeZone *gDangiCalendarZoneAstroCalc = NULL; --static icu::UInitOnce gDangiCalendarInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gDangiCalendarInitOnce {}; - - /** - * The start year of the Korean traditional calendar (Dan-gi) is the inaugural -@@ -39,7 +39,7 @@ static UBool calendar_dangi_cleanup(void) { - gDangiCalendarZoneAstroCalc = NULL; - } - gDangiCalendarInitOnce.reset(); -- return TRUE; -+ return true; - } - U_CDECL_END - -diff --git a/deps/icu-small/source/i18n/datefmt.cpp b/deps/icu-small/source/i18n/datefmt.cpp -index fed8f79aa0..2638cbf14d 100644 ---- a/deps/icu-small/source/i18n/datefmt.cpp -+++ b/deps/icu-small/source/i18n/datefmt.cpp -@@ -46,7 +46,7 @@ - - U_NAMESPACE_BEGIN - --class U_I18N_API DateFmtBestPattern : public SharedObject { -+class DateFmtBestPattern : public SharedObject { - public: - UnicodeString fPattern; - -@@ -58,14 +58,14 @@ public: - DateFmtBestPattern::~DateFmtBestPattern() { - } - --template<> U_I18N_API -+template<> - const DateFmtBestPattern *LocaleCacheKey::createObject( - const void * /*creationContext*/, UErrorCode &status) const { - status = U_UNSUPPORTED_ERROR; - return NULL; - } - --class U_I18N_API DateFmtBestPatternKey : public LocaleCacheKey { -+class DateFmtBestPatternKey : public LocaleCacheKey { - private: - UnicodeString fSkeleton; - protected: -@@ -588,8 +588,8 @@ DateFormat::adoptNumberFormat(NumberFormat* newNumberFormat) - { - delete fNumberFormat; - fNumberFormat = newNumberFormat; -- newNumberFormat->setParseIntegerOnly(TRUE); -- newNumberFormat->setGroupingUsed(FALSE); -+ newNumberFormat->setParseIntegerOnly(true); -+ newNumberFormat->setGroupingUsed(false); - } - //---------------------------------------------------------------------- - -@@ -660,7 +660,7 @@ DateFormat::setLenient(UBool lenient) - UBool - DateFormat::isLenient() const - { -- UBool lenient = TRUE; -+ UBool lenient = true; - if (fCalendar != NULL) { - lenient = fCalendar->isLenient(); - } -@@ -687,7 +687,7 @@ DateFormat::isCalendarLenient() const - return fCalendar->isLenient(); - } - // fCalendar is rarely null -- return FALSE; -+ return false; - } - - -diff --git a/deps/icu-small/source/i18n/dayperiodrules.cpp b/deps/icu-small/source/i18n/dayperiodrules.cpp -index efe92dd794..3ef822842d 100644 ---- a/deps/icu-small/source/i18n/dayperiodrules.cpp -+++ b/deps/icu-small/source/i18n/dayperiodrules.cpp -@@ -196,9 +196,9 @@ struct DayPeriodRulesDataSink : public ResourceSink { - // AT cutoffs must be either midnight or noon. - if (cutoffs[startHour] & (1 << CUTOFF_TYPE_AT)) { - if (startHour == 0 && period == DayPeriodRules::DAYPERIOD_MIDNIGHT) { -- rule.fHasMidnight = TRUE; -+ rule.fHasMidnight = true; - } else if (startHour == 12 && period == DayPeriodRules::DAYPERIOD_NOON) { -- rule.fHasNoon = TRUE; -+ rule.fHasNoon = true; - } else { - errorCode = U_INVALID_FORMAT_ERROR; // Bad data. - return; -@@ -301,14 +301,14 @@ DayPeriodRulesCountSink::~DayPeriodRulesCountSink() {} - - namespace { - --UInitOnce initOnce = U_INITONCE_INITIALIZER; -+UInitOnce initOnce {}; - - U_CFUNC UBool U_CALLCONV dayPeriodRulesCleanup() { - delete[] data->rules; - uhash_close(data->localeToRuleSetNumMap); - delete data; - data = NULL; -- return TRUE; -+ return true; - } - - } // namespace -@@ -381,7 +381,7 @@ const DayPeriodRules *DayPeriodRules::getInstance(const Locale &locale, UErrorCo - } - } - --DayPeriodRules::DayPeriodRules() : fHasMidnight(FALSE), fHasNoon(FALSE) { -+DayPeriodRules::DayPeriodRules() : fHasMidnight(false), fHasNoon(false) { - for (int32_t i = 0; i < 24; ++i) { - fDayPeriodForHour[i] = DayPeriodRules::DAYPERIOD_UNKNOWN; - } -@@ -504,10 +504,10 @@ void DayPeriodRules::add(int32_t startHour, int32_t limitHour, DayPeriod period) - - UBool DayPeriodRules::allHoursAreSet() { - for (int32_t i = 0; i < 24; ++i) { -- if (fDayPeriodForHour[i] == DAYPERIOD_UNKNOWN) { return FALSE; } -+ if (fDayPeriodForHour[i] == DAYPERIOD_UNKNOWN) { return false; } - } - -- return TRUE; -+ return true; - } - - -diff --git a/deps/icu-small/source/i18n/dcfmtsym.cpp b/deps/icu-small/source/i18n/dcfmtsym.cpp -index 4f5bae4e11..5d06c189fb 100644 ---- a/deps/icu-small/source/i18n/dcfmtsym.cpp -+++ b/deps/icu-small/source/i18n/dcfmtsym.cpp -@@ -100,7 +100,7 @@ static const char *gNumberElementKeys[DecimalFormatSymbols::kFormatSymbolCount] - - DecimalFormatSymbols::DecimalFormatSymbols(UErrorCode& status) - : UObject(), locale(), currPattern(NULL) { -- initialize(locale, status, TRUE); -+ initialize(locale, status, true); - } - - // ------------------------------------- -@@ -113,7 +113,7 @@ DecimalFormatSymbols::DecimalFormatSymbols(const Locale& loc, UErrorCode& status - - DecimalFormatSymbols::DecimalFormatSymbols(const Locale& loc, const NumberingSystem& ns, UErrorCode& status) - : UObject(), locale(loc), currPattern(NULL) { -- initialize(locale, status, FALSE, &ns); -+ initialize(locale, status, false, &ns); - } - - DecimalFormatSymbols::DecimalFormatSymbols() -@@ -227,7 +227,7 @@ struct DecFmtSymDataSink : public ResourceSink { - - // Constructor/Destructor - DecFmtSymDataSink(DecimalFormatSymbols& _dfs) : dfs(_dfs) { -- uprv_memset(seenSymbol, FALSE, sizeof(seenSymbol)); -+ uprv_memset(seenSymbol, false, sizeof(seenSymbol)); - } - virtual ~DecFmtSymDataSink(); - -@@ -239,7 +239,7 @@ struct DecFmtSymDataSink : public ResourceSink { - for (int32_t i=0; i= 0 && grammaticalCase < UPRV_LENGTHOF(grammaticalCaseIds)) { -+ return grammaticalCaseIds[grammaticalCase]; -+ } -+ -+ return grammaticalCaseIds[0]; -+} -+ -+U_CAPI UDisplayOptionsGrammaticalCase U_EXPORT2 -+udispopt_fromGrammaticalCaseIdentifier(const char *identifier) { -+ for (int32_t i = 0; i < UPRV_LENGTHOF(grammaticalCaseIds); i++) { -+ if (uprv_strcmp(identifier, grammaticalCaseIds[i]) == 0) { -+ return static_cast(i); -+ } -+ } -+ -+ return UDISPOPT_GRAMMATICAL_CASE_UNDEFINED; -+} -+ -+namespace { -+ -+const char *pluralCategoryIds[] = { -+ "undefined", // 0 -+ "zero", // 1 -+ "one", // 2 -+ "two", // 3 -+ "few", // 4 -+ "many", // 5 -+ "other", // 6 -+}; -+ -+} // namespace -+ -+U_CAPI const char * U_EXPORT2 -+udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory pluralCategory) { -+ if (pluralCategory >= 0 && pluralCategory < UPRV_LENGTHOF(pluralCategoryIds)) { -+ return pluralCategoryIds[pluralCategory]; -+ } -+ -+ return pluralCategoryIds[0]; -+} -+ -+U_CAPI UDisplayOptionsPluralCategory U_EXPORT2 -+udispopt_fromPluralCategoryIdentifier(const char *identifier) { -+ for (int32_t i = 0; i < UPRV_LENGTHOF(pluralCategoryIds); i++) { -+ if (uprv_strcmp(identifier, pluralCategoryIds[i]) == 0) { -+ return static_cast(i); -+ } -+ } -+ -+ return UDISPOPT_PLURAL_CATEGORY_UNDEFINED; -+} -+ -+namespace { -+ -+const char *nounClassIds[] = { -+ "undefined", // 0 -+ "other", // 1 -+ "neuter", // 2 -+ "feminine", // 3 -+ "masculine", // 4 -+ "animate", // 5 -+ "inanimate", // 6 -+ "personal", // 7 -+ "common", // 8 -+}; -+ -+} // namespace -+ -+U_CAPI const char * U_EXPORT2 -+udispopt_getNounClassIdentifier(UDisplayOptionsNounClass nounClass) { -+ if (nounClass >= 0 && nounClass < UPRV_LENGTHOF(nounClassIds)) { -+ return nounClassIds[nounClass]; -+ } -+ -+ return nounClassIds[0]; -+} -+ -+U_CAPI UDisplayOptionsNounClass U_EXPORT2 -+udispopt_fromNounClassIdentifier(const char *identifier) { -+ for (int32_t i = 0; i < UPRV_LENGTHOF(nounClassIds); i++) { -+ if (uprv_strcmp(identifier, nounClassIds[i]) == 0) { -+ return static_cast(i); -+ } -+ } -+ -+ return UDISPOPT_NOUN_CLASS_UNDEFINED; -+} -+ -+#endif /* #if !UCONFIG_NO_FORMATTING */ -diff --git a/deps/icu-small/source/i18n/double-conversion-bignum.cpp b/deps/icu-small/source/i18n/double-conversion-bignum.cpp -index 996d75c9f6..d2b701a21d 100644 ---- a/deps/icu-small/source/i18n/double-conversion-bignum.cpp -+++ b/deps/icu-small/source/i18n/double-conversion-bignum.cpp -@@ -150,7 +150,7 @@ void Bignum::AssignHexString(Vector value) { - DOUBLE_CONVERSION_ASSERT(sizeof(uint64_t) * 8 >= kBigitSize + 4); // TODO: static_assert - // Accumulates converted hex digits until at least kBigitSize bits. - // Works with non-factor-of-four kBigitSizes. -- uint64_t tmp = 0; // Accumulates converted hex digits until at least -+ uint64_t tmp = 0; - for (int cnt = 0; !value.is_empty(); value.pop_back()) { - tmp |= (HexCharValue(value.last()) << cnt); - if ((cnt += 4) >= kBigitSize) { -@@ -160,7 +160,8 @@ void Bignum::AssignHexString(Vector value) { - } - } - if (tmp > 0) { -- RawBigit(used_bigits_++) = tmp; -+ DOUBLE_CONVERSION_ASSERT(tmp <= kBigitMask); -+ RawBigit(used_bigits_++) = static_cast(tmp & kBigitMask); - } - Clamp(); - } -@@ -217,7 +218,7 @@ void Bignum::AddBignum(const Bignum& other) { - carry = sum >> kBigitSize; - ++bigit_pos; - } -- used_bigits_ = (std::max)(bigit_pos, static_cast(used_bigits_)); -+ used_bigits_ = static_cast(std::max(bigit_pos, static_cast(used_bigits_))); - DOUBLE_CONVERSION_ASSERT(IsClamped()); - } - -@@ -253,7 +254,7 @@ void Bignum::ShiftLeft(const int shift_amount) { - if (used_bigits_ == 0) { - return; - } -- exponent_ += (shift_amount / kBigitSize); -+ exponent_ += static_cast(shift_amount / kBigitSize); - const int local_shift = shift_amount % kBigitSize; - EnsureCapacity(used_bigits_ + 1); - BigitsShiftLeft(local_shift); -@@ -431,7 +432,7 @@ void Bignum::Square() { - DOUBLE_CONVERSION_ASSERT(accumulator == 0); - - // Don't forget to update the used_digits and the exponent. -- used_bigits_ = product_length; -+ used_bigits_ = static_cast(product_length); - exponent_ *= 2; - Clamp(); - } -@@ -752,8 +753,8 @@ void Bignum::Align(const Bignum& other) { - for (int i = 0; i < zero_bigits; ++i) { - RawBigit(i) = 0; - } -- used_bigits_ += zero_bigits; -- exponent_ -= zero_bigits; -+ used_bigits_ += static_cast(zero_bigits); -+ exponent_ -= static_cast(zero_bigits); - - DOUBLE_CONVERSION_ASSERT(used_bigits_ >= 0); - DOUBLE_CONVERSION_ASSERT(exponent_ >= 0); -diff --git a/deps/icu-small/source/i18n/double-conversion-double-to-string.cpp b/deps/icu-small/source/i18n/double-conversion-double-to-string.cpp -index 90ba436060..5ee6d2b8e8 100644 ---- a/deps/icu-small/source/i18n/double-conversion-double-to-string.cpp -+++ b/deps/icu-small/source/i18n/double-conversion-double-to-string.cpp -@@ -71,7 +71,7 @@ bool DoubleToStringConverter::HandleSpecialValues( - StringBuilder* result_builder) const { - Double double_inspect(value); - if (double_inspect.IsInfinite()) { -- if (infinity_symbol_ == NULL) return false; -+ if (infinity_symbol_ == DOUBLE_CONVERSION_NULLPTR) return false; - if (value < 0) { - result_builder->AddCharacter('-'); - } -@@ -79,7 +79,7 @@ bool DoubleToStringConverter::HandleSpecialValues( - return true; - } - if (double_inspect.IsNan()) { -- if (nan_symbol_ == NULL) return false; -+ if (nan_symbol_ == DOUBLE_CONVERSION_NULLPTR) return false; - result_builder->AddString(nan_symbol_); - return true; - } -diff --git a/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp b/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp -index c72bb26277..727fff24e1 100644 ---- a/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp -+++ b/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp -@@ -495,7 +495,7 @@ double StringToDoubleConverter::StringToIeee( - current = next_non_space; - } - -- if (infinity_symbol_ != NULL) { -+ if (infinity_symbol_ != DOUBLE_CONVERSION_NULLPTR) { - if (ConsumeFirstCharacter(*current, infinity_symbol_, allow_case_insensitivity)) { - if (!ConsumeSubString(¤t, end, infinity_symbol_, allow_case_insensitivity)) { - return junk_string_value_; -@@ -513,7 +513,7 @@ double StringToDoubleConverter::StringToIeee( - } - } - -- if (nan_symbol_ != NULL) { -+ if (nan_symbol_ != DOUBLE_CONVERSION_NULLPTR) { - if (ConsumeFirstCharacter(*current, nan_symbol_, allow_case_insensitivity)) { - if (!ConsumeSubString(¤t, end, nan_symbol_, allow_case_insensitivity)) { - return junk_string_value_; -diff --git a/deps/icu-small/source/i18n/double-conversion-utils.h b/deps/icu-small/source/i18n/double-conversion-utils.h -index 11c92717c1..303668f931 100644 ---- a/deps/icu-small/source/i18n/double-conversion-utils.h -+++ b/deps/icu-small/source/i18n/double-conversion-utils.h -@@ -43,6 +43,13 @@ - #include - #include - -+// For pre-C++11 compatibility -+#if __cplusplus >= 201103L -+#define DOUBLE_CONVERSION_NULLPTR nullptr -+#else -+#define DOUBLE_CONVERSION_NULLPTR NULL -+#endif -+ - // ICU PATCH: Use U_ASSERT instead of - #include "uassert.h" - #ifndef DOUBLE_CONVERSION_ASSERT -@@ -254,9 +261,9 @@ inline int StrLength(const char* string) { - template - class Vector { - public: -- Vector() : start_(NULL), length_(0) {} -+ Vector() : start_(DOUBLE_CONVERSION_NULLPTR), length_(0) {} - Vector(T* data, int len) : start_(data), length_(len) { -- DOUBLE_CONVERSION_ASSERT(len == 0 || (len > 0 && data != NULL)); -+ DOUBLE_CONVERSION_ASSERT(len == 0 || (len > 0 && data != DOUBLE_CONVERSION_NULLPTR)); - } - - // Returns a vector using the same backing storage as this one, -@@ -339,7 +346,7 @@ class StringBuilder { - void AddSubstring(const char* s, int n) { - DOUBLE_CONVERSION_ASSERT(!is_finalized() && position_ + n < buffer_.length()); - DOUBLE_CONVERSION_ASSERT(static_cast(n) <= strlen(s)); -- memmove(&buffer_[position_], s, n); -+ memmove(&buffer_[position_], s, static_cast(n)); - position_ += n; - } - -diff --git a/deps/icu-small/source/i18n/dtfmtsym.cpp b/deps/icu-small/source/i18n/dtfmtsym.cpp -index 134b919f06..4c44976124 100644 ---- a/deps/icu-small/source/i18n/dtfmtsym.cpp -+++ b/deps/icu-small/source/i18n/dtfmtsym.cpp -@@ -272,7 +272,7 @@ DateFormatSymbols::DateFormatSymbols(const Locale& locale, - DateFormatSymbols::DateFormatSymbols(UErrorCode& status) - : UObject() - { -- initializeData(Locale::getDefault(), NULL, status, TRUE); -+ initializeData(Locale::getDefault(), NULL, status, true); - } - - -@@ -287,7 +287,7 @@ DateFormatSymbols::DateFormatSymbols(const Locale& locale, - DateFormatSymbols::DateFormatSymbols(const char *type, UErrorCode& status) - : UObject() - { -- initializeData(Locale::getDefault(), type, status, TRUE); -+ initializeData(Locale::getDefault(), type, status, true); - } - - DateFormatSymbols::DateFormatSymbols(const DateFormatSymbols& other) -@@ -333,7 +333,7 @@ void - DateFormatSymbols::createZoneStrings(const UnicodeString *const * otherStrings) - { - int32_t row, col; -- UBool failed = FALSE; -+ UBool failed = false; - - fZoneStrings = (UnicodeString **)uprv_malloc(fZoneStringsRowCount * sizeof(UnicodeString *)); - if (fZoneStrings != NULL) { -@@ -341,7 +341,7 @@ DateFormatSymbols::createZoneStrings(const UnicodeString *const * otherStrings) - { - fZoneStrings[row] = newUnicodeStringArray(fZoneStringsColCount); - if (fZoneStrings[row] == NULL) { -- failed = TRUE; -+ failed = true; - break; - } - for (col=0; col0) - { - --count; -- if (array1[count] != array2[count]) return FALSE; -+ if (array1[count] != array2[count]) return false; - } -- return TRUE; -+ return true; - } - - bool -@@ -1334,7 +1334,7 @@ DateFormatSymbols::initZoneStringsArray(void) { - i++; - } - -- } while (FALSE); -+ } while (false); - - if (U_FAILURE(status)) { - if (zarray) { -@@ -1422,7 +1422,7 @@ static const uint64_t kNumericFieldsForCount12 = - UBool U_EXPORT2 - DateFormatSymbols::isNumericField(UDateFormatField f, int32_t count) { - if (f == UDAT_FIELD_COUNT) { -- return FALSE; -+ return false; - } - uint64_t flag = ((uint64_t)1 << f); - return ((kNumericFieldsAlways & flag) != 0 || ((kNumericFieldsForCount12 & flag) != 0 && count < 3)); -@@ -1524,7 +1524,7 @@ struct CalendarDataSink : public ResourceSink { - - // Initializes CalendarDataSink with default values - CalendarDataSink(UErrorCode& status) -- : arrays(FALSE, status), arraySizes(FALSE, status), maps(FALSE, status), -+ : arrays(false, status), arraySizes(false, status), maps(false, status), - mapRefs(), - aliasPathPairs(uprv_deleteUObject, uhash_compareUnicodeString, status), - currentCalendarType(), nextCalendarType(), -@@ -1690,7 +1690,7 @@ struct CalendarDataSink : public ResourceSink { - // We are on a leaf, store the map elements into the stringMap - if (i == 0) { - // mapRefs will keep ownership of 'stringMap': -- stringMap = mapRefs.create(FALSE, errorCode); -+ stringMap = mapRefs.create(false, errorCode); - if (stringMap == NULL) { - errorCode = U_MEMORY_ALLOCATION_ERROR; - return; -@@ -1703,7 +1703,7 @@ struct CalendarDataSink : public ResourceSink { - int32_t valueStringSize; - const UChar *valueString = value.getString(valueStringSize, errorCode); - if (U_FAILURE(errorCode)) { return; } -- LocalPointer valueUString(new UnicodeString(TRUE, valueString, valueStringSize), errorCode); -+ LocalPointer valueUString(new UnicodeString(true, valueString, valueStringSize), errorCode); - stringMap->put(keyUString, valueUString.orphan(), errorCode); - if (U_FAILURE(errorCode)) { return; } - continue; -@@ -1717,7 +1717,7 @@ struct CalendarDataSink : public ResourceSink { - // In cyclicNameSets ignore everything but years/format/abbreviated - // and zodiacs/format/abbreviated - if (path.startsWith(kCyclicNameSetsTagUChar, UPRV_LENGTHOF(kCyclicNameSetsTagUChar))) { -- UBool skip = TRUE; -+ UBool skip = true; - int32_t startIndex = UPRV_LENGTHOF(kCyclicNameSetsTagUChar); - int32_t length = 0; - if (startIndex == path.length() -@@ -1732,7 +1732,7 @@ struct CalendarDataSink : public ResourceSink { - length = 0; - if (startIndex == path.length() - || path.compare(startIndex, (length = UPRV_LENGTHOF(kAbbrTagUChar)), kAbbrTagUChar, 0, UPRV_LENGTHOF(kAbbrTagUChar)) == 0) { -- skip = FALSE; -+ skip = false; - } - } - } -@@ -1854,7 +1854,7 @@ initField(UnicodeString **field, int32_t& length, const UChar *data, LastResortS - for(int32_t i = 0; isetTo(TRUE, data+(i*((int32_t)strLen)), -1); -+ (*(field)+i)->setTo(true, data+(i*((int32_t)strLen)), -1); - } - } - else { -@@ -1911,7 +1911,7 @@ initLeapMonthPattern(UnicodeString *field, int32_t index, CalendarDataSink &sink - UnicodeString pathUString(path.data(), -1, US_INV); - Hashtable *leapMonthTable = static_cast(sink.maps.get(pathUString)); - if (leapMonthTable != NULL) { -- UnicodeString leapLabel(FALSE, kLeapTagUChar, UPRV_LENGTHOF(kLeapTagUChar)); -+ UnicodeString leapLabel(false, kLeapTagUChar, UPRV_LENGTHOF(kLeapTagUChar)); - UnicodeString *leapMonthPattern = static_cast(leapMonthTable->get(leapLabel)); - if (leapMonthPattern != NULL) { - field[index].fastCopyFrom(*leapMonthPattern); -@@ -2122,7 +2122,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError - if (status == U_MISSING_RESOURCE_ERROR) { - ures_close(ctb); - if (uprv_strcmp(calendarTypeCArray, gGregorianTag) != 0) { -- calendarType.setTo(FALSE, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); -+ calendarType.setTo(false, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); - calendarSink.visitAllResources(); - status = oldStatus; - continue; -@@ -2145,7 +2145,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError - - // Gregorian is always the last fallback - if (calendarType.isBogus()) { -- calendarType.setTo(FALSE, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); -+ calendarType.setTo(false, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); - calendarSink.visitAllResources(); - } - } -@@ -2386,14 +2386,14 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError - /* - // fastCopyFrom()/setTo() - see assignArray comments - resStr = ures_getStringByKey(fResourceBundle, gLocalPatternCharsTag, &len, &status); -- fLocalPatternChars.setTo(TRUE, resStr, len); -+ fLocalPatternChars.setTo(true, resStr, len); - // If the locale data does not include new pattern chars, use the defaults - // TODO: Consider making this an error, since this may add conflicting characters. - if (len < PATTERN_CHARS_LEN) { -- fLocalPatternChars.append(UnicodeString(TRUE, &gPatternChars[len], PATTERN_CHARS_LEN-len)); -+ fLocalPatternChars.append(UnicodeString(true, &gPatternChars[len], PATTERN_CHARS_LEN-len)); - } - */ -- fLocalPatternChars.setTo(TRUE, gPatternChars, PATTERN_CHARS_LEN); -+ fLocalPatternChars.setTo(true, gPatternChars, PATTERN_CHARS_LEN); - - // Format wide weekdays -> fWeekdays - // {sfb} fixed to handle 1-based weekdays -@@ -2494,7 +2494,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError - initField(&fStandaloneQuarters, fStandaloneQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); - initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); - initField(&fStandaloneNarrowQuarters, fStandaloneNarrowQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); -- fLocalPatternChars.setTo(TRUE, gPatternChars, PATTERN_CHARS_LEN); -+ fLocalPatternChars.setTo(true, gPatternChars, PATTERN_CHARS_LEN); - } - } - -diff --git a/deps/icu-small/source/i18n/dtitvfmt.cpp b/deps/icu-small/source/i18n/dtitvfmt.cpp -index d51ddcd5c7..eb5be7846e 100644 ---- a/deps/icu-small/source/i18n/dtitvfmt.cpp -+++ b/deps/icu-small/source/i18n/dtitvfmt.cpp -@@ -298,7 +298,7 @@ DateIntervalFormat::format(const DateInterval* dtInterval, - } - - FieldPositionOnlyHandler handler(fieldPosition); -- handler.setAcceptFirstOnly(TRUE); -+ handler.setAcceptFirstOnly(true); - int8_t ignore; - - Mutex lock(&gFormatterMutex); -@@ -351,7 +351,7 @@ DateIntervalFormat::format(Calendar& fromCalendar, - FieldPosition& pos, - UErrorCode& status) const { - FieldPositionOnlyHandler handler(pos); -- handler.setAcceptFirstOnly(TRUE); -+ handler.setAcceptFirstOnly(true); - int8_t ignore; - - Mutex lock(&gFormatterMutex); -@@ -966,23 +966,26 @@ DateIntervalFormat::normalizeHourMetacharacters(const UnicodeString& skeleton) c - - UChar hourMetachar = u'\0'; - UChar dayPeriodChar = u'\0'; -- int32_t metacharStart = 0; -- int32_t metacharCount = 0; -+ int32_t hourFieldStart = 0; -+ int32_t hourFieldLength = 0; -+ int32_t dayPeriodStart = 0; -+ int32_t dayPeriodLength = 0; - for (int32_t i = 0; i < result.length(); i++) { - UChar c = result[i]; - if (c == LOW_J || c == CAP_J || c == CAP_C || c == LOW_H || c == CAP_H || c == LOW_K || c == CAP_K) { - if (hourMetachar == u'\0') { - hourMetachar = c; -- metacharStart = i; -+ hourFieldStart = i; - } -- ++metacharCount; -+ ++hourFieldLength; - } else if (c == LOW_A || c == LOW_B || c == CAP_B) { - if (dayPeriodChar == u'\0') { - dayPeriodChar = c; -+ dayPeriodStart = i; - } -- ++metacharCount; -+ ++dayPeriodLength; - } else { -- if (hourMetachar != u'\0') { -+ if (hourMetachar != u'\0' && dayPeriodChar != u'\0') { - break; - } - } -@@ -1022,31 +1025,27 @@ DateIntervalFormat::normalizeHourMetacharacters(const UnicodeString& skeleton) c - } - } - -- if (hourChar == CAP_H || hourChar == LOW_K) { -- result.replace(metacharStart, metacharCount, hourChar); -- } else { -- UnicodeString hourAndDayPeriod(hourChar); -- switch (metacharCount) { -- case 1: -- case 2: -- default: -- hourAndDayPeriod.append(UnicodeString(dayPeriodChar)); -- break; -- case 3: -- case 4: -- for (int32_t i = 0; i < 4; i++) { -- hourAndDayPeriod.append(dayPeriodChar); -- } -- break; -- case 5: -- case 6: -- for (int32_t i = 0; i < 5; i++) { -- hourAndDayPeriod.append(dayPeriodChar); -- } -- break; -+ UnicodeString hourAndDayPeriod(hourChar); -+ if (hourChar != CAP_H && hourChar != LOW_K) { -+ int32_t newDayPeriodLength = 0; -+ if (dayPeriodLength >= 5 || hourFieldLength >= 5) { -+ newDayPeriodLength = 5; -+ } else if (dayPeriodLength >= 3 || hourFieldLength >= 3) { -+ newDayPeriodLength = 3; -+ } else { -+ newDayPeriodLength = 1; - } -- result.replace(metacharStart, metacharCount, hourAndDayPeriod); -+ for (int32_t i = 0; i < newDayPeriodLength; i++) { -+ hourAndDayPeriod.append(dayPeriodChar); -+ } -+ } -+ result.replace(hourFieldStart, hourFieldLength, hourAndDayPeriod); -+ if (dayPeriodStart > hourFieldStart) { -+ // before deleting the original day period field, adjust its position in case -+ // we just changed the size of the hour field (and new day period field) -+ dayPeriodStart += hourAndDayPeriod.length() - hourFieldLength; - } -+ result.remove(dayPeriodStart, dayPeriodLength); - } - return result; - } -@@ -1208,8 +1207,8 @@ DateIntervalFormat::getDateTimeSkeleton(const UnicodeString& skeleton, - * @param dateSkeleton normalized date skeleton - * @param timeSkeleton normalized time skeleton - * @return whether the resource is found for the skeleton. -- * TRUE if interval pattern found for the skeleton, -- * FALSE otherwise. -+ * true if interval pattern found for the skeleton, -+ * false otherwise. - * @stable ICU 4.0 - */ - UBool -@@ -1421,8 +1420,8 @@ DateIntervalFormat::setIntervalPattern(UCalendarDateFields field, - * @param extendedBestSkeleton extended best match skeleton - * @return whether the interval pattern is found - * through extending skeleton or not. -- * TRUE if interval pattern is found by -- * extending skeleton, FALSE otherwise. -+ * true if interval pattern is found by -+ * extending skeleton, false otherwise. - * @stable ICU 4.0 - */ - UBool -@@ -1496,10 +1495,10 @@ DateIntervalFormat::setIntervalPattern(UCalendarDateFields field, - setIntervalPattern(field, pattern); - } - if ( extendedSkeleton && !extendedSkeleton->isEmpty() ) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - -@@ -1540,8 +1539,8 @@ DateIntervalFormat::splitPatternInto2Part(const UnicodeString& intervalPattern) - if (ch != prevCh && count > 0) { - // check the repeativeness of pattern letter - UBool repeated = patternRepeated[(int)(prevCh - PATTERN_CHAR_BASE)]; -- if ( repeated == FALSE ) { -- patternRepeated[prevCh - PATTERN_CHAR_BASE] = TRUE; -+ if ( repeated == false ) { -+ patternRepeated[prevCh - PATTERN_CHAR_BASE] = true; - } else { - foundRepetition = true; - break; -@@ -1569,8 +1568,8 @@ DateIntervalFormat::splitPatternInto2Part(const UnicodeString& intervalPattern) - // "dd MM" ( no repetition ), - // "d-d"(last char repeated ), and - // "d-d MM" ( repetition found ) -- if ( count > 0 && foundRepetition == FALSE ) { -- if ( patternRepeated[(int)(prevCh - PATTERN_CHAR_BASE)] == FALSE ) { -+ if ( count > 0 && foundRepetition == false ) { -+ if ( patternRepeated[(int)(prevCh - PATTERN_CHAR_BASE)] == false ) { - count = 0; - } - } -@@ -1684,7 +1683,7 @@ DateIntervalFormat::fieldExistsInSkeleton(UCalendarDateFields field, - const UnicodeString& skeleton) - { - const UChar fieldChar = fgCalendarFieldToPatternLetter[field]; -- return ( (skeleton.indexOf(fieldChar) == -1)?FALSE:TRUE ) ; -+ return ( (skeleton.indexOf(fieldChar) == -1)?false:true ) ; - } - - -@@ -1726,7 +1725,13 @@ DateIntervalFormat::adjustFieldWidth(const UnicodeString& inputSkeleton, - DateIntervalInfo::parseSkeleton(inputSkeleton, inputSkeletonFieldWidth); - DateIntervalInfo::parseSkeleton(bestMatchSkeleton, bestMatchSkeletonFieldWidth); - if (suppressDayPeriodField) { -+ // remove the 'a' and any NBSP/NNBSP on one side of it -+ findReplaceInPattern(adjustedPtn, UnicodeString(u"\u00A0a",-1), UnicodeString()); -+ findReplaceInPattern(adjustedPtn, UnicodeString(u"\u202Fa",-1), UnicodeString()); -+ findReplaceInPattern(adjustedPtn, UnicodeString(u"a\u00A0",-1), UnicodeString()); -+ findReplaceInPattern(adjustedPtn, UnicodeString(u"a\u202F",-1), UnicodeString()); - findReplaceInPattern(adjustedPtn, UnicodeString(LOW_A), UnicodeString()); -+ // adjust interior double spaces, remove exterior whitespace - findReplaceInPattern(adjustedPtn, UnicodeString(" "), UnicodeString(" ")); - adjustedPtn.trim(); - } -diff --git a/deps/icu-small/source/i18n/dtitvinf.cpp b/deps/icu-small/source/i18n/dtitvinf.cpp -index 6052894b58..f5fb86ce58 100644 ---- a/deps/icu-small/source/i18n/dtitvinf.cpp -+++ b/deps/icu-small/source/i18n/dtitvinf.cpp -@@ -401,7 +401,7 @@ DateIntervalInfo::initializeData(const Locale& locale, UErrorCode& status) - char localeWithCalendarKey[ULOC_LOCALE_IDENTIFIER_CAPACITY]; - // obtain a locale that always has the calendar key value that should be used - (void)ures_getFunctionalEquivalent(localeWithCalendarKey, ULOC_LOCALE_IDENTIFIER_CAPACITY, nullptr, -- "calendar", "calendar", locName, nullptr, FALSE, &status); -+ "calendar", "calendar", locName, nullptr, false, &status); - localeWithCalendarKey[ULOC_LOCALE_IDENTIFIER_CAPACITY-1] = 0; // ensure null termination - // now get the calendar key value from that locale - int32_t calendarTypeLen = uloc_getKeywordValue(localeWithCalendarKey, "calendar", calendarType, -@@ -437,7 +437,7 @@ DateIntervalInfo::initializeData(const Locale& locale, UErrorCode& status) - } - - if ( U_SUCCESS(status) && (resStr != nullptr)) { -- UnicodeString pattern = UnicodeString(TRUE, resStr, resStrLen); -+ UnicodeString pattern = UnicodeString(true, resStr, resStrLen); - setFallbackIntervalPattern(pattern, status); - } - ures_close(itvDtPtnResource); -@@ -449,7 +449,7 @@ DateIntervalInfo::initializeData(const Locale& locale, UErrorCode& status) - const UnicodeString &calendarTypeToUseUString = sink.getNextCalendarType(); - - // Already loaded calendar types -- Hashtable loadedCalendarTypes(FALSE, status); -+ Hashtable loadedCalendarTypes(false, status); - - if (U_SUCCESS(status)) { - while (!calendarTypeToUseUString.isBogus()) { -@@ -504,7 +504,7 @@ DateIntervalInfo::setIntervalPatternInternally(const UnicodeString& skeleton, - } - - patternsOfOneSkeleton[index] = intervalPattern; -- if ( emptyHash == TRUE ) { -+ if ( emptyHash == true ) { - fIntervalPatterns->put(skeleton, patternsOfOneSkeleton, status); - } - } -@@ -738,7 +738,7 @@ U_CDECL_BEGIN - * - * @param val1 one value in comparison - * @param val2 the other value in comparison -- * @return TRUE if 2 values are the same, FALSE otherwise -+ * @return true if 2 values are the same, false otherwise - */ - static UBool U_CALLCONV dtitvinfHashTableValueComparator(UHashTok val1, UHashTok val2); - -@@ -746,9 +746,9 @@ static UBool - U_CALLCONV dtitvinfHashTableValueComparator(UHashTok val1, UHashTok val2) { - const UnicodeString* pattern1 = (UnicodeString*)val1.pointer; - const UnicodeString* pattern2 = (UnicodeString*)val2.pointer; -- UBool ret = TRUE; -+ UBool ret = true; - int8_t i; -- for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret == TRUE; ++i ) { -+ for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret == true; ++i ) { - ret = (pattern1[i] == pattern2[i]); - } - return ret; -@@ -763,7 +763,7 @@ DateIntervalInfo::initHash(UErrorCode& status) { - return nullptr; - } - Hashtable* hTable; -- if ( (hTable = new Hashtable(FALSE, status)) == nullptr ) { -+ if ( (hTable = new Hashtable(false, status)) == nullptr ) { - status = U_MEMORY_ALLOCATION_ERROR; - return nullptr; - } -diff --git a/deps/icu-small/source/i18n/dtptngen.cpp b/deps/icu-small/source/i18n/dtptngen.cpp -index e781c6e26f..f4e28de91b 100644 ---- a/deps/icu-small/source/i18n/dtptngen.cpp -+++ b/deps/icu-small/source/i18n/dtptngen.cpp -@@ -100,7 +100,7 @@ static void ures_a_open(UResourceBundleAIterator *aiter, UResourceBundle *bund, - aiter->entries[i].key = (UChar*)uprv_malloc(len*sizeof(UChar)); - u_charsToUChars(akey, aiter->entries[i].key, len); - } -- uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, nullptr, TRUE, status); -+ uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, nullptr, true, status); - #endif - } - -@@ -283,6 +283,7 @@ static const UChar UDATPG_ItemFormat[]= {0x7B, 0x30, 0x7D, 0x20, 0x251C, 0x7B, 0 - //static const UChar repeatedPatterns[6]={CAP_G, CAP_E, LOW_Z, LOW_V, CAP_Q, 0}; // "GEzvQ" - - static const char DT_DateTimePatternsTag[]="DateTimePatterns"; -+static const char DT_DateAtTimePatternsTag[]="DateTimePatterns%atTime"; - static const char DT_DateTimeCalendarTag[]="calendar"; - static const char DT_DateTimeGregorianTag[]="gregorian"; - static const char DT_DateTimeAppendItemsTag[]="appendItems"; -@@ -473,7 +474,7 @@ DateTimePatternGenerator::~DateTimePatternGenerator() { - - namespace { - --UInitOnce initOnce = U_INITONCE_INITIALIZER; -+UInitOnce initOnce {}; - UHashtable *localeToAllowedHourFormatsMap = nullptr; - - // Value deleter for hashmap. -@@ -484,7 +485,7 @@ U_CFUNC void U_CALLCONV deleteAllowedHourFormats(void *ptr) { - // Close hashmap at cleanup. - U_CFUNC UBool U_CALLCONV allowedHourFormatsCleanup() { - uhash_close(localeToAllowedHourFormatsMap); -- return TRUE; -+ return true; - } - - enum AllowedHourFormat{ -@@ -655,6 +656,17 @@ void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErro - - const char *language = locale.getLanguage(); - const char *country = locale.getCountry(); -+ -+ char regionOverride[8]; -+ int32_t regionOverrideLength = locale.getKeywordValue("rg", regionOverride, sizeof(regionOverride), status); -+ if (U_SUCCESS(status) && regionOverrideLength > 0) { -+ country = regionOverride; -+ if (regionOverrideLength > 2) { -+ // chop off any subdivision codes that may have been included -+ regionOverride[2] = '\0'; -+ } -+ } -+ - Locale maxLocale; // must be here for correct lifetime - if (*language == '\0' || *country == '\0') { - maxLocale = locale; -@@ -808,7 +820,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu - SimpleDateFormat* sdf; - if (df != nullptr && (sdf = dynamic_cast(df)) != nullptr) { - sdf->toPattern(dfPattern); -- addPattern(dfPattern, FALSE, conflictingString, status); -+ addPattern(dfPattern, false, conflictingString, status); - } - // TODO Maybe we should return an error when the date format isn't simple. - delete df; -@@ -817,7 +829,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu - df = DateFormat::createTimeInstance(style, locale); - if (df != nullptr && (sdf = dynamic_cast(df)) != nullptr) { - sdf->toPattern(dfPattern); -- addPattern(dfPattern, FALSE, conflictingString, status); -+ addPattern(dfPattern, false, conflictingString, status); - - // TODO: C++ and Java are inconsistent (see #12568). - // C++ uses MEDIUM, but Java uses SHORT. -@@ -837,7 +849,7 @@ DateTimePatternGenerator::hackTimes(const UnicodeString& hackPattern, UErrorCode - - fp->set(hackPattern); - UnicodeString mmss; -- UBool gotMm=FALSE; -+ UBool gotMm=false; - for (int32_t i=0; iitemNumber; ++i) { - UnicodeString field = fp->items[i]; - if ( fp->isQuoteLiteral(field) ) { -@@ -854,7 +866,7 @@ DateTimePatternGenerator::hackTimes(const UnicodeString& hackPattern, UErrorCode - else { - UChar ch=field.charAt(0); - if (ch==LOW_M) { -- gotMm=TRUE; -+ gotMm=true; - mmss+=field; - } - else { -@@ -863,7 +875,7 @@ DateTimePatternGenerator::hackTimes(const UnicodeString& hackPattern, UErrorCode - break; - } - mmss+= field; -- addPattern(mmss, FALSE, conflictingString, status); -+ addPattern(mmss, false, conflictingString, status); - break; - } - else { -@@ -894,7 +906,7 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString& - "calendar", - locale.getName(), - nullptr, -- FALSE, -+ false, - &localStatus); - localeWithCalendarKey[ULOC_LOCALE_IDENTIFIER_CAPACITY-1] = 0; // ensure null termination - // now get the calendar key value from that locale -@@ -949,7 +961,7 @@ struct DateTimePatternGenerator::AppendItemFormatsSink : public ResourceSink { - } - - void fillInMissing() { -- UnicodeString defaultItemFormat(TRUE, UDATPG_ItemFormat, UPRV_LENGTHOF(UDATPG_ItemFormat)-1); // Read-only alias. -+ UnicodeString defaultItemFormat(true, UDATPG_ItemFormat, UPRV_LENGTHOF(UDATPG_ItemFormat)-1); // Read-only alias. - for (int32_t i = 0; i < UDATPG_FIELD_COUNT; i++) { - UDateTimePatternField field = (UDateTimePatternField)i; - if (dtpg.getAppendItemFormat(field).isEmpty()) { -@@ -1093,7 +1105,7 @@ DateTimePatternGenerator::initHashtable(UErrorCode& err) { - if (fAvailableFormatKeyHash!=nullptr) { - return; - } -- LocalPointer hash(new Hashtable(FALSE, err), err); -+ LocalPointer hash(new Hashtable(false, err), err); - if (U_SUCCESS(err)) { - fAvailableFormatKeyHash = hash.orphan(); - } -@@ -1235,7 +1247,7 @@ UnicodeString - DateTimePatternGenerator::mapSkeletonMetacharacters(const UnicodeString& patternForm, int32_t* flags, UErrorCode& status) { - UnicodeString patternFormMapped; - patternFormMapped.remove(); -- UBool inQuoted = FALSE; -+ UBool inQuoted = false; - int32_t patPos, patLen = patternForm.length(); - for (patPos = 0; patPos < patLen; patPos++) { - UChar patChr = patternForm.charAt(patPos); -@@ -1347,7 +1359,7 @@ DateTimePatternGenerator::addCanonicalItems(UErrorCode& status) { - - for (int32_t i=0; i 0) { -- addPattern(UnicodeString(Canonical_Items[i]), FALSE, conflictingPattern, status); -+ addPattern(UnicodeString(Canonical_Items[i]), false, conflictingPattern, status); - } - if (U_FAILURE(status)) { return; } - } -@@ -1396,6 +1408,8 @@ DateTimePatternGenerator::getDateTimeFormat(UDateFormatStyle style, UErrorCode& - return dateTimeFormat[style]; - } - -+static const int32_t cTypeBufMax = 32; -+ - void - DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCode& status) { - if (U_FAILURE(status)) { return; } -@@ -1403,40 +1417,68 @@ DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCo - const UChar *resStr; - int32_t resStrLen = 0; - -- LocalPointer fCalendar(Calendar::createInstance(locale, status), status); -- if (U_FAILURE(status)) { return; } -- - LocalUResourceBundlePointer calData(ures_open(nullptr, locale.getBaseName(), &status)); - if (U_FAILURE(status)) { return; } - ures_getByKey(calData.getAlias(), DT_DateTimeCalendarTag, calData.getAlias(), &status); - if (U_FAILURE(status)) { return; } - -- LocalUResourceBundlePointer dateTimePatterns; -- if (fCalendar->getType() != nullptr && *fCalendar->getType() != '\0' -- && uprv_strcmp(fCalendar->getType(), DT_DateTimeGregorianTag) != 0) { -- dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), fCalendar->getType(), -- nullptr, &status)); -- ures_getByKeyWithFallback(dateTimePatterns.getAlias(), DT_DateTimePatternsTag, -- dateTimePatterns.getAlias(), &status); -+ char cType[cTypeBufMax + 1]; -+ Calendar::getCalendarTypeFromLocale(locale, cType, cTypeBufMax, status); -+ cType[cTypeBufMax] = 0; -+ if (U_FAILURE(status) || cType[0] == 0) { -+ status = U_ZERO_ERROR; -+ uprv_strcpy(cType, DT_DateTimeGregorianTag); - } -+ UBool cTypeIsGregorian = (uprv_strcmp(cType, DT_DateTimeGregorianTag) == 0); - -+ // Currently, for compatibility with pre-CLDR-42 data, we default to the "atTime" -+ // combining patterns. Depending on guidance in CLDR 42 spec and on DisplayOptions, -+ // we may change this. -+ LocalUResourceBundlePointer specificCalBundle; -+ LocalUResourceBundlePointer dateTimePatterns; -+ int32_t dateTimeOffset = 0; // initially for DateTimePatterns%atTime -+ if (!cTypeIsGregorian) { -+ specificCalBundle.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), cType, -+ nullptr, &status)); -+ dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(specificCalBundle.getAlias(), DT_DateAtTimePatternsTag, // the %atTime variant, 4 entries -+ nullptr, &status)); -+ } - if (dateTimePatterns.isNull() || status == U_MISSING_RESOURCE_ERROR) { - status = U_ZERO_ERROR; -- dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), DT_DateTimeGregorianTag, -- dateTimePatterns.orphan(), &status)); -- ures_getByKeyWithFallback(dateTimePatterns.getAlias(), DT_DateTimePatternsTag, -- dateTimePatterns.getAlias(), &status); -+ specificCalBundle.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), DT_DateTimeGregorianTag, -+ nullptr, &status)); -+ dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(specificCalBundle.getAlias(), DT_DateAtTimePatternsTag, // the %atTime variant, 4 entries -+ nullptr, &status)); - } -- if (U_FAILURE(status)) { return; } -- -- if (ures_getSize(dateTimePatterns.getAlias()) <= DateFormat::kDateTimeOffset + DateFormat::kShort) -- { -+ if (U_SUCCESS(status) && (ures_getSize(dateTimePatterns.getAlias()) < 4)) { - status = U_INVALID_FORMAT_ERROR; -- return; - } -+ if (status == U_MISSING_RESOURCE_ERROR) { -+ // Try again with standard variant -+ status = U_ZERO_ERROR; -+ dateTimePatterns.orphan(); -+ dateTimeOffset = (int32_t)DateFormat::kDateTimeOffset; -+ if (!cTypeIsGregorian) { -+ specificCalBundle.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), cType, -+ nullptr, &status)); -+ dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(specificCalBundle.getAlias(), DT_DateTimePatternsTag, // the standard variant, 13 entries -+ nullptr, &status)); -+ } -+ if (dateTimePatterns.isNull() || status == U_MISSING_RESOURCE_ERROR) { -+ status = U_ZERO_ERROR; -+ specificCalBundle.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), DT_DateTimeGregorianTag, -+ nullptr, &status)); -+ dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(specificCalBundle.getAlias(), DT_DateTimePatternsTag, // the standard variant, 13 entries -+ nullptr, &status)); -+ } -+ if (U_SUCCESS(status) && (ures_getSize(dateTimePatterns.getAlias()) <= DateFormat::kDateTimeOffset + DateFormat::kShort)) { -+ status = U_INVALID_FORMAT_ERROR; -+ } -+ } -+ if (U_FAILURE(status)) { return; } - for (int32_t style = UDAT_FULL; style <= UDAT_SHORT; style++) { -- resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), (int32_t)DateFormat::kDateTimeOffset + style, &resStrLen, &status); -- setDateTimeFormat((UDateFormatStyle)style, UnicodeString(TRUE, resStr, resStrLen), status); -+ resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), dateTimeOffset + style, &resStrLen, &status); -+ setDateTimeFormat((UDateFormatStyle)style, UnicodeString(true, resStr, resStrLen), status); - } - } - -@@ -1944,14 +1986,14 @@ DateTimePatternGenerator::getRedundants(UErrorCode& status) { - UBool - DateTimePatternGenerator::isCanonicalItem(const UnicodeString& item) const { - if ( item.length() != 1 ) { -- return FALSE; -+ return false; - } - for (int32_t i=0; ibasePattern != otherElem->basePattern) || - (myElem->pattern != otherElem->pattern) ) { -- return FALSE; -+ return false; - } - if ((myElem->skeleton.getAlias() != otherElem->skeleton.getAlias()) && - !myElem->skeleton->equals(*(otherElem->skeleton))) { -- return FALSE; -+ return false; - } - myElem = myElem->next.getAlias(); - otherElem = otherElem->next.getAlias(); - } - } -- return TRUE; -+ return true; - } - - // find any key existing in the mapping table already. --// return TRUE if there is an existing key, otherwise return FALSE. -+// return true if there is an existing key, otherwise return false. - PtnElem* - PatternMap::getDuplicateElem( - const UnicodeString &basePattern, -@@ -2226,10 +2268,10 @@ PatternMap::getDuplicateElem( - } - do { - if ( basePattern.compare(curElem->basePattern)==0 ) { -- UBool isEqual = TRUE; -+ UBool isEqual = true; - for (int32_t i = 0; i < UDATPG_FIELD_COUNT; ++i) { - if (curElem->skeleton->type[i] != skeleton.type[i] ) { -- isEqual = FALSE; -+ isEqual = false; - break; - } - } -@@ -2274,7 +2316,7 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton - } - skeletonResult.original.clear(); - skeletonResult.baseOriginal.clear(); -- skeletonResult.addedDefaultDayPeriod = FALSE; -+ skeletonResult.addedDefaultDayPeriod = false; - - fp->set(pattern); - for (i=0; i < fp->itemNumber; i++) { -@@ -2342,7 +2384,7 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton - skeletonResult.original.populate(UDATPG_DAYPERIOD_FIELD, dtTypes[i].patternChar, dtTypes[i].minLen); - skeletonResult.baseOriginal.populate(UDATPG_DAYPERIOD_FIELD, dtTypes[i].patternChar, dtTypes[i].minLen); - skeletonResult.type[UDATPG_DAYPERIOD_FIELD] = dtTypes[i].type; -- skeletonResult.addedDefaultDayPeriod = TRUE; -+ skeletonResult.addedDefaultDayPeriod = true; - break; - } - } -@@ -2410,7 +2452,7 @@ DateTimeMatcher::copyFrom() { - - UBool - DateTimeMatcher::equals(const DateTimeMatcher* other) const { -- if (other==nullptr) { return FALSE; } -+ if (other==nullptr) { return false; } - return skeleton.original == other->skeleton.original; - } - -@@ -2569,10 +2611,10 @@ FormatParser::isPatternSeparator(const UnicodeString& field) const { - continue; - } - else { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - DistanceInfo::~DistanceInfo() {} -@@ -2614,12 +2656,12 @@ PatternMapIterator::hasNext() const { - PtnElem *curPtr = nodePtr; - - if (patternMap==nullptr) { -- return FALSE; -+ return false; - } - while ( headIndex < MAX_PATTERN_ENTRIES ) { - if ( curPtr != nullptr ) { - if ( curPtr->next != nullptr ) { -- return TRUE; -+ return true; - } - else { - headIndex++; -@@ -2629,7 +2671,7 @@ PatternMapIterator::hasNext() const { - } - else { - if ( patternMap->boot[headIndex] != nullptr ) { -- return TRUE; -+ return true; - } - else { - headIndex++; -@@ -2637,7 +2679,7 @@ PatternMapIterator::hasNext() const { - } - } - } -- return FALSE; -+ return false; - } - - DateTimeMatcher& -@@ -2744,7 +2786,7 @@ UChar SkeletonFields::getFirstChar() const { - - - PtnSkeleton::PtnSkeleton() -- : addedDefaultDayPeriod(FALSE) { -+ : addedDefaultDayPeriod(false) { - } - - PtnSkeleton::PtnSkeleton(const PtnSkeleton& other) { -@@ -2882,14 +2924,14 @@ DTSkeletonEnumeration::count(UErrorCode& /*status*/) const { - UBool - DTSkeletonEnumeration::isCanonicalItem(const UnicodeString& item) { - if ( item.length() != 1 ) { -- return FALSE; -+ return false; - } - for (int32_t i=0; igetOffset(localMillis, FALSE, rawOffset, dstOffset, ec); -+ zone->getOffset(localMillis, false, rawOffset, dstOffset, ec); - delete zone; - localMillis += (rawOffset + dstOffset); - } -diff --git a/deps/icu-small/source/i18n/esctrn.cpp b/deps/icu-small/source/i18n/esctrn.cpp -index ba0e4c2c7b..00c1304d24 100644 ---- a/deps/icu-small/source/i18n/esctrn.cpp -+++ b/deps/icu-small/source/i18n/esctrn.cpp -@@ -36,28 +36,28 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(EscapeTransliterator) - */ - static Transliterator* _createEscUnicode(const UnicodeString& ID, Transliterator::Token /*context*/) { - // Unicode: "U+10FFFF" hex, min=4, max=6 -- return new EscapeTransliterator(ID, UnicodeString(TRUE, UNIPRE, 2), UnicodeString(), 16, 4, TRUE, NULL); -+ return new EscapeTransliterator(ID, UnicodeString(true, UNIPRE, 2), UnicodeString(), 16, 4, true, NULL); - } - static Transliterator* _createEscJava(const UnicodeString& ID, Transliterator::Token /*context*/) { - // Java: "\\uFFFF" hex, min=4, max=4 -- return new EscapeTransliterator(ID, UnicodeString(TRUE, BS_u, 2), UnicodeString(), 16, 4, FALSE, NULL); -+ return new EscapeTransliterator(ID, UnicodeString(true, BS_u, 2), UnicodeString(), 16, 4, false, NULL); - } - static Transliterator* _createEscC(const UnicodeString& ID, Transliterator::Token /*context*/) { - // C: "\\uFFFF" hex, min=4, max=4; \\U0010FFFF hex, min=8, max=8 -- return new EscapeTransliterator(ID, UnicodeString(TRUE, BS_u, 2), UnicodeString(), 16, 4, TRUE, -- new EscapeTransliterator(UnicodeString(), UnicodeString(TRUE, BS_U, 2), UnicodeString(), 16, 8, TRUE, NULL)); -+ return new EscapeTransliterator(ID, UnicodeString(true, BS_u, 2), UnicodeString(), 16, 4, true, -+ new EscapeTransliterator(UnicodeString(), UnicodeString(true, BS_U, 2), UnicodeString(), 16, 8, true, NULL)); - } - static Transliterator* _createEscXML(const UnicodeString& ID, Transliterator::Token /*context*/) { - // XML: "􏿿" hex, min=1, max=6 -- return new EscapeTransliterator(ID, UnicodeString(TRUE, XMLPRE, 3), UnicodeString(SEMI[0]), 16, 1, TRUE, NULL); -+ return new EscapeTransliterator(ID, UnicodeString(true, XMLPRE, 3), UnicodeString(SEMI[0]), 16, 1, true, NULL); - } - static Transliterator* _createEscXML10(const UnicodeString& ID, Transliterator::Token /*context*/) { - // XML10: "&1114111;" dec, min=1, max=7 (not really "Any-Hex") -- return new EscapeTransliterator(ID, UnicodeString(TRUE, XML10PRE, 2), UnicodeString(SEMI[0]), 10, 1, TRUE, NULL); -+ return new EscapeTransliterator(ID, UnicodeString(true, XML10PRE, 2), UnicodeString(SEMI[0]), 10, 1, true, NULL); - } - static Transliterator* _createEscPerl(const UnicodeString& ID, Transliterator::Token /*context*/) { - // Perl: "\\x{263A}" hex, min=1, max=6 -- return new EscapeTransliterator(ID, UnicodeString(TRUE, PERLPRE, 3), UnicodeString(RBRACE[0]), 16, 1, TRUE, NULL); -+ return new EscapeTransliterator(ID, UnicodeString(true, PERLPRE, 3), UnicodeString(RBRACE[0]), 16, 1, true, NULL); - } - - /** -@@ -139,7 +139,7 @@ void EscapeTransliterator::handleTransliterate(Replaceable& text, - - UnicodeString buf(prefix); - int32_t prefixLen = prefix.length(); -- UBool redoPrefix = FALSE; -+ UBool redoPrefix = false; - - while (start < limit) { - int32_t c = grokSupplementals ? text.char32At(start) : text.charAt(start); -@@ -151,12 +151,12 @@ void EscapeTransliterator::handleTransliterate(Replaceable& text, - ICU_Utility::appendNumber(buf, c, supplementalHandler->radix, - supplementalHandler->minDigits); - buf.append(supplementalHandler->suffix); -- redoPrefix = TRUE; -+ redoPrefix = true; - } else { - if (redoPrefix) { - buf.truncate(0); - buf.append(prefix); -- redoPrefix = FALSE; -+ redoPrefix = false; - } else { - buf.truncate(prefixLen); - } -diff --git a/deps/icu-small/source/i18n/ethpccal.cpp b/deps/icu-small/source/i18n/ethpccal.cpp -index 7c7c0ba37b..0793787224 100644 ---- a/deps/icu-small/source/i18n/ethpccal.cpp -+++ b/deps/icu-small/source/i18n/ethpccal.cpp -@@ -143,7 +143,7 @@ EthiopicCalendar::handleGetLimit(UCalendarDateFields field, ELimitType limitType - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - static void U_CALLCONV initializeSystemDefaultCentury() - { -diff --git a/deps/icu-small/source/i18n/fmtable.cpp b/deps/icu-small/source/i18n/fmtable.cpp -index 7a9a81ded5..c3ede98328 100644 ---- a/deps/icu-small/source/i18n/fmtable.cpp -+++ b/deps/icu-small/source/i18n/fmtable.cpp -@@ -53,7 +53,7 @@ using number::impl::DecimalQuantity; - // NOTE: These inlines assume that all fObjects are in fact instances - // of the Measure class, which is true as of 3.0. [alan] - --// Return TRUE if *a == *b. -+// Return true if *a == *b. - static inline UBool objectEquals(const UObject* a, const UObject* b) { - // LATER: return *a == *b; - return *((const Measure*) a) == *((const Measure*) b); -@@ -65,7 +65,7 @@ static inline UObject* objectClone(const UObject* a) { - return ((const Measure*) a)->clone(); - } - --// Return TRUE if *a is an instance of Measure. -+// Return true if *a is an instance of Measure. - static inline UBool instanceOfMeasure(const UObject* a) { - return dynamic_cast(a) != NULL; - } -@@ -382,9 +382,9 @@ Formattable::isNumeric() const { - case kDouble: - case kLong: - case kInt64: -- return TRUE; -+ return true; - default: -- return FALSE; -+ return false; - } - } - -diff --git a/deps/icu-small/source/i18n/formatted_string_builder.cpp b/deps/icu-small/source/i18n/formatted_string_builder.cpp -index 734078644b..8dbf954af9 100644 ---- a/deps/icu-small/source/i18n/formatted_string_builder.cpp -+++ b/deps/icu-small/source/i18n/formatted_string_builder.cpp -@@ -6,6 +6,7 @@ - #if !UCONFIG_NO_FORMATTING - - #include "formatted_string_builder.h" -+#include "putilimp.h" - #include "unicode/ustring.h" - #include "unicode/utf16.h" - #include "unicode/unum.h" // for UNumberFormatFields literals -@@ -197,6 +198,9 @@ FormattedStringBuilder::splice(int32_t startThis, int32_t endThis, const Unicod - int32_t thisLength = endThis - startThis; - int32_t otherLength = endOther - startOther; - int32_t count = otherLength - thisLength; -+ if (U_FAILURE(status)) { -+ return count; -+ } - int32_t position; - if (count > 0) { - // Overall, chars need to be added. -@@ -221,6 +225,9 @@ int32_t FormattedStringBuilder::append(const FormattedStringBuilder &other, UErr - - int32_t - FormattedStringBuilder::insert(int32_t index, const FormattedStringBuilder &other, UErrorCode &status) { -+ if (U_FAILURE(status)) { -+ return 0; -+ } - if (this == &other) { - status = U_ILLEGAL_ARGUMENT_ERROR; - return 0; -@@ -255,12 +262,18 @@ int32_t FormattedStringBuilder::prepareForInsert(int32_t index, int32_t count, U - U_ASSERT(index >= 0); - U_ASSERT(index <= fLength); - U_ASSERT(count >= 0); -+ U_ASSERT(fZero >= 0); -+ U_ASSERT(fLength >= 0); -+ U_ASSERT(getCapacity() - fZero >= fLength); -+ if (U_FAILURE(status)) { -+ return count; -+ } - if (index == 0 && fZero - count >= 0) { - // Append to start - fZero -= count; - fLength += count; - return fZero; -- } else if (index == fLength && fZero + fLength + count < getCapacity()) { -+ } else if (index == fLength && count <= getCapacity() - fZero - fLength) { - // Append to end - fLength += count; - return fZero + fLength - count; -@@ -275,18 +288,26 @@ int32_t FormattedStringBuilder::prepareForInsertHelper(int32_t index, int32_t co - int32_t oldZero = fZero; - char16_t *oldChars = getCharPtr(); - Field *oldFields = getFieldPtr(); -- if (fLength + count > oldCapacity) { -- if ((fLength + count) > INT32_MAX / 2) { -- // If we continue, then newCapacity will overflow int32_t in the next line. -+ int32_t newLength; -+ if (uprv_add32_overflow(fLength, count, &newLength)) { -+ status = U_INPUT_TOO_LONG_ERROR; -+ return -1; -+ } -+ int32_t newZero; -+ if (newLength > oldCapacity) { -+ if (newLength > INT32_MAX / 2) { -+ // We do not support more than 1G char16_t in this code because -+ // dealing with >2G *bytes* can cause subtle bugs. - status = U_INPUT_TOO_LONG_ERROR; - return -1; - } -- int32_t newCapacity = (fLength + count) * 2; -- int32_t newZero = newCapacity / 2 - (fLength + count) / 2; -+ // Keep newCapacity also to at most 1G char16_t. -+ int32_t newCapacity = newLength * 2; -+ newZero = (newCapacity - newLength) / 2; - - // C++ note: malloc appears in two places: here and in the assignment operator. -- auto newChars = static_cast (uprv_malloc(sizeof(char16_t) * newCapacity)); -- auto newFields = static_cast(uprv_malloc(sizeof(Field) * newCapacity)); -+ auto newChars = static_cast (uprv_malloc(sizeof(char16_t) * static_cast(newCapacity))); -+ auto newFields = static_cast(uprv_malloc(sizeof(Field) * static_cast(newCapacity))); - if (newChars == nullptr || newFields == nullptr) { - uprv_free(newChars); - uprv_free(newFields); -@@ -315,10 +336,8 @@ int32_t FormattedStringBuilder::prepareForInsertHelper(int32_t index, int32_t co - fChars.heap.capacity = newCapacity; - fFields.heap.ptr = newFields; - fFields.heap.capacity = newCapacity; -- fZero = newZero; -- fLength += count; - } else { -- int32_t newZero = oldCapacity / 2 - (fLength + count) / 2; -+ newZero = (oldCapacity - newLength) / 2; - - // C++ note: memmove is required because src and dest may overlap. - // First copy the entire string to the location of the prefix, and then move the suffix -@@ -331,18 +350,20 @@ int32_t FormattedStringBuilder::prepareForInsertHelper(int32_t index, int32_t co - uprv_memmove2(oldFields + newZero + index + count, - oldFields + newZero + index, - sizeof(Field) * (fLength - index)); -- -- fZero = newZero; -- fLength += count; - } -- U_ASSERT((fZero + index) >= 0); -+ fZero = newZero; -+ fLength = newLength; - return fZero + index; - } - - int32_t FormattedStringBuilder::remove(int32_t index, int32_t count) { -- // TODO: Reset the heap here? (If the string after removal can fit on stack?) -+ U_ASSERT(0 <= index); -+ U_ASSERT(index <= fLength); -+ U_ASSERT(count <= (fLength - index)); -+ U_ASSERT(index <= getCapacity() - fZero); -+ - int32_t position = index + fZero; -- U_ASSERT(position >= 0); -+ // TODO: Reset the heap here? (If the string after removal can fit on stack?) - uprv_memmove2(getCharPtr() + position, - getCharPtr() + position + count, - sizeof(char16_t) * (fLength - index - count)); -@@ -359,7 +380,7 @@ UnicodeString FormattedStringBuilder::toUnicodeString() const { - - const UnicodeString FormattedStringBuilder::toTempUnicodeString() const { - // Readonly-alias constructor: -- return UnicodeString(FALSE, getCharPtr() + fZero, fLength); -+ return UnicodeString(false, getCharPtr() + fZero, fLength); - } - - UnicodeString FormattedStringBuilder::toDebugString() const { -diff --git a/deps/icu-small/source/i18n/formatted_string_builder.h b/deps/icu-small/source/i18n/formatted_string_builder.h -index 92bcf07d78..32e0900ae2 100644 ---- a/deps/icu-small/source/i18n/formatted_string_builder.h -+++ b/deps/icu-small/source/i18n/formatted_string_builder.h -@@ -218,7 +218,9 @@ class U_I18N_API FormattedStringBuilder : public UMemory { - }; - - static_assert( -- std::is_pod::value, -+ // std::is_pod<> is deprecated. -+ std::is_standard_layout::value && -+ std::is_trivial::value, - "Field should be a POD type for efficient initialization"); - - constexpr FormattedStringBuilder::Field::Field(uint8_t category, uint8_t field) -diff --git a/deps/icu-small/source/i18n/formattedval_iterimpl.cpp b/deps/icu-small/source/i18n/formattedval_iterimpl.cpp -index 75328fae88..ec770e2191 100644 ---- a/deps/icu-small/source/i18n/formattedval_iterimpl.cpp -+++ b/deps/icu-small/source/i18n/formattedval_iterimpl.cpp -@@ -32,7 +32,7 @@ UnicodeString FormattedValueFieldPositionIteratorImpl::toTempString( - UErrorCode&) const { - // The alias must point to memory owned by this object; - // fastCopyFrom doesn't do this when using a stack buffer. -- return UnicodeString(TRUE, fString.getBuffer(), fString.length()); -+ return UnicodeString(true, fString.getBuffer(), fString.length()); - } - - Appendable& FormattedValueFieldPositionIteratorImpl::appendTo( -diff --git a/deps/icu-small/source/i18n/formattedvalue.cpp b/deps/icu-small/source/i18n/formattedvalue.cpp -index 1030661f22..f103c015b8 100644 ---- a/deps/icu-small/source/i18n/formattedvalue.cpp -+++ b/deps/icu-small/source/i18n/formattedvalue.cpp -@@ -43,7 +43,7 @@ void ConstrainedFieldPosition::setInt64IterationContext(int64_t context) { - UBool ConstrainedFieldPosition::matchesField(int32_t category, int32_t field) const { - switch (fConstraint) { - case UCFPOS_CONSTRAINT_NONE: -- return TRUE; -+ return true; - case UCFPOS_CONSTRAINT_CATEGORY: - return fCategory == category; - case UCFPOS_CONSTRAINT_FIELD: -@@ -223,7 +223,7 @@ ufmtval_nextPosition( - const auto* fmtval = UFormattedValueApiHelper::validate(ufmtval, *ec); - auto* cfpos = UConstrainedFieldPositionImpl::validate(ucfpos, *ec); - if (U_FAILURE(*ec)) { -- return FALSE; -+ return false; - } - return fmtval->fFormattedValue->nextPosition(cfpos->fImpl, *ec); - } -diff --git a/deps/icu-small/source/i18n/fphdlimp.cpp b/deps/icu-small/source/i18n/fphdlimp.cpp -index f51bf4bae7..4f6a98c212 100644 ---- a/deps/icu-small/source/i18n/fphdlimp.cpp -+++ b/deps/icu-small/source/i18n/fphdlimp.cpp -@@ -39,7 +39,7 @@ FieldPositionOnlyHandler::~FieldPositionOnlyHandler() { - void - FieldPositionOnlyHandler::addAttribute(int32_t id, int32_t start, int32_t limit) { - if (pos.getField() == id && (!acceptFirstOnly || !seenFirst)) { -- seenFirst = TRUE; -+ seenFirst = true; - pos.setBeginIndex(start + fShift); - pos.setEndIndex(limit + fShift); - } -diff --git a/deps/icu-small/source/i18n/fpositer.cpp b/deps/icu-small/source/i18n/fpositer.cpp -index 096896d7b3..64bec990e3 100644 ---- a/deps/icu-small/source/i18n/fpositer.cpp -+++ b/deps/icu-small/source/i18n/fpositer.cpp -@@ -92,7 +92,7 @@ void FieldPositionIterator::setData(UVector32 *adopt, UErrorCode& status) { - - UBool FieldPositionIterator::next(FieldPosition& fp) { - if (pos == -1) { -- return FALSE; -+ return false; - } - - // Ignore the first element of the tetrad: used for field category -@@ -105,7 +105,7 @@ UBool FieldPositionIterator::next(FieldPosition& fp) { - pos = -1; - } - -- return TRUE; -+ return true; - } - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/gender.cpp b/deps/icu-small/source/i18n/gender.cpp -index dc5def6ad3..ef64d17846 100644 ---- a/deps/icu-small/source/i18n/gender.cpp -+++ b/deps/icu-small/source/i18n/gender.cpp -@@ -37,7 +37,7 @@ static const char* gNeutralStr = "neutral"; - static const char* gMailTaintsStr = "maleTaints"; - static const char* gMixedNeutralStr = "mixedNeutral"; - static icu::GenderInfo* gObjs = NULL; --static icu::UInitOnce gGenderInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gGenderInitOnce {}; - - enum GenderStyle { - NEUTRAL, -@@ -55,7 +55,7 @@ static UBool U_CALLCONV gender_cleanup(void) { - delete [] gObjs; - } - gGenderInitOnce.reset(); -- return TRUE; -+ return true; - } - - U_CDECL_END -@@ -184,8 +184,8 @@ UGender GenderInfo::getListGender(const UGender* genders, int32_t length, UError - if (length == 1) { - return genders[0]; - } -- UBool has_female = FALSE; -- UBool has_male = FALSE; -+ UBool has_female = false; -+ UBool has_male = false; - switch (_style) { - case NEUTRAL: - return UGENDER_OTHER; -@@ -199,13 +199,13 @@ UGender GenderInfo::getListGender(const UGender* genders, int32_t length, UError - if (has_male) { - return UGENDER_OTHER; - } -- has_female = TRUE; -+ has_female = true; - break; - case UGENDER_MALE: - if (has_female) { - return UGENDER_OTHER; - } -- has_male = TRUE; -+ has_male = true; - break; - default: - break; -diff --git a/deps/icu-small/source/i18n/gregocal.cpp b/deps/icu-small/source/i18n/gregocal.cpp -index 31d36300ae..63a6c2d452 100644 ---- a/deps/icu-small/source/i18n/gregocal.cpp -+++ b/deps/icu-small/source/i18n/gregocal.cpp -@@ -155,7 +155,7 @@ GregorianCalendar::GregorianCalendar(UErrorCode& status) - : Calendar(status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), --fIsGregorian(TRUE), fInvertGregorian(FALSE) -+fIsGregorian(true), fInvertGregorian(false) - { - setTimeInMillis(getNow(), status); - } -@@ -166,7 +166,7 @@ GregorianCalendar::GregorianCalendar(TimeZone* zone, UErrorCode& status) - : Calendar(zone, Locale::getDefault(), status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), --fIsGregorian(TRUE), fInvertGregorian(FALSE) -+fIsGregorian(true), fInvertGregorian(false) - { - setTimeInMillis(getNow(), status); - } -@@ -177,7 +177,7 @@ GregorianCalendar::GregorianCalendar(const TimeZone& zone, UErrorCode& status) - : Calendar(zone, Locale::getDefault(), status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), --fIsGregorian(TRUE), fInvertGregorian(FALSE) -+fIsGregorian(true), fInvertGregorian(false) - { - setTimeInMillis(getNow(), status); - } -@@ -188,7 +188,7 @@ GregorianCalendar::GregorianCalendar(const Locale& aLocale, UErrorCode& status) - : Calendar(TimeZone::forLocaleOrDefault(aLocale), aLocale, status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), --fIsGregorian(TRUE), fInvertGregorian(FALSE) -+fIsGregorian(true), fInvertGregorian(false) - { - setTimeInMillis(getNow(), status); - } -@@ -200,7 +200,7 @@ GregorianCalendar::GregorianCalendar(TimeZone* zone, const Locale& aLocale, - : Calendar(zone, aLocale, status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), -- fIsGregorian(TRUE), fInvertGregorian(FALSE) -+ fIsGregorian(true), fInvertGregorian(false) - { - setTimeInMillis(getNow(), status); - } -@@ -212,7 +212,7 @@ GregorianCalendar::GregorianCalendar(const TimeZone& zone, const Locale& aLocale - : Calendar(zone, aLocale, status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), -- fIsGregorian(TRUE), fInvertGregorian(FALSE) -+ fIsGregorian(true), fInvertGregorian(false) - { - setTimeInMillis(getNow(), status); - } -@@ -224,7 +224,7 @@ GregorianCalendar::GregorianCalendar(int32_t year, int32_t month, int32_t date, - : Calendar(TimeZone::createDefault(), Locale::getDefault(), status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), -- fIsGregorian(TRUE), fInvertGregorian(FALSE) -+ fIsGregorian(true), fInvertGregorian(false) - { - set(UCAL_ERA, AD); - set(UCAL_YEAR, year); -@@ -239,7 +239,7 @@ GregorianCalendar::GregorianCalendar(int32_t year, int32_t month, int32_t date, - : Calendar(TimeZone::createDefault(), Locale::getDefault(), status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), -- fIsGregorian(TRUE), fInvertGregorian(FALSE) -+ fIsGregorian(true), fInvertGregorian(false) - { - set(UCAL_ERA, AD); - set(UCAL_YEAR, year); -@@ -257,7 +257,7 @@ GregorianCalendar::GregorianCalendar(int32_t year, int32_t month, int32_t date, - : Calendar(TimeZone::createDefault(), Locale::getDefault(), status), - fGregorianCutover(kPapalCutover), - fCutoverJulianDay(kCutoverJulianDay), fNormalizedGregorianCutover(fGregorianCutover), fGregorianCutoverYear(1582), -- fIsGregorian(TRUE), fInvertGregorian(FALSE) -+ fIsGregorian(true), fInvertGregorian(false) - { - set(UCAL_ERA, AD); - set(UCAL_YEAR, year); -@@ -388,7 +388,7 @@ void GregorianCalendar::handleComputeFields(int32_t julianDay, UErrorCode& statu - // The Julian epoch day (not the same as Julian Day) - // is zero on Saturday December 30, 0 (Gregorian). - int32_t julianEpochDay = julianDay - (kJan1_1JulianDay - 2); -- eyear = (int32_t) ClockMath::floorDivide((4.0*julianEpochDay) + 1464.0, (int32_t) 1461, unusedRemainder); -+ eyear = (int32_t) ClockMath::floorDivide((4.0*julianEpochDay) + 1464.0, (int32_t) 1461, &unusedRemainder); - - // Compute the Julian calendar day number for January 1, eyear - int32_t january1 = 365*(eyear-1) + ClockMath::floorDivide(eyear-1, (int32_t)4); -@@ -472,27 +472,27 @@ GregorianCalendar::isLeapYear(int32_t year) const - - int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField) - { -- fInvertGregorian = FALSE; -+ fInvertGregorian = false; - - int32_t jd = Calendar::handleComputeJulianDay(bestField); - - if((bestField == UCAL_WEEK_OF_YEAR) && // if we are doing WOY calculations, we are counting relative to Jan 1 *julian* - (internalGet(UCAL_EXTENDED_YEAR)==fGregorianCutoverYear) && - jd >= fCutoverJulianDay) { -- fInvertGregorian = TRUE; // So that the Julian Jan 1 will be used in handleComputeMonthStart -+ fInvertGregorian = true; // So that the Julian Jan 1 will be used in handleComputeMonthStart - return Calendar::handleComputeJulianDay(bestField); - } - - - // The following check handles portions of the cutover year BEFORE the - // cutover itself happens. -- //if ((fIsGregorian==TRUE) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */ -- if ((fIsGregorian==TRUE) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */ -+ //if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */ -+ if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */ - #if defined (U_DEBUG_CAL) - fprintf(stderr, "%s:%d: jd [invert] %d\n", - __FILE__, __LINE__, jd); - #endif -- fInvertGregorian = TRUE; -+ fInvertGregorian = true; - jd = Calendar::handleComputeJulianDay(bestField); - #if defined (U_DEBUG_CAL) - fprintf(stderr, "%s:%d: fIsGregorian %s, fInvertGregorian %s - ", -@@ -537,7 +537,7 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, - // If the month is out of range, adjust it into range, and - // modify the extended year value accordingly. - if (month < 0 || month > 11) { -- eyear += ClockMath::floorDivide(month, 12, month); -+ eyear += ClockMath::floorDivide(month, 12, &month); - } - - UBool isLeap = eyear%4 == 0; -@@ -580,7 +580,7 @@ int32_t GregorianCalendar::handleGetMonthLength(int32_t extendedYear, int32_t mo - // If the month is out of range, adjust it into range, and - // modify the extended year value accordingly. - if (month < 0 || month > 11) { -- extendedYear += ClockMath::floorDivide(month, 12, month); -+ extendedYear += ClockMath::floorDivide(month, 12, &month); - } - - return isLeapYear(extendedYear) ? kLeapMonthLength[month] : kMonthLength[month]; -@@ -651,7 +651,7 @@ GregorianCalendar::validateFields() const - field != UCAL_DAY_OF_YEAR && - isSet((UCalendarDateFields)field) && - ! boundsCheck(internalGet((UCalendarDateFields)field), (UCalendarDateFields)field)) -- return FALSE; -+ return false; - } - - // Values differ in Least-Maximum and Maximum should be handled -@@ -660,14 +660,14 @@ GregorianCalendar::validateFields() const - int32_t date = internalGet(UCAL_DATE); - if (date < getMinimum(UCAL_DATE) || - date > monthLength(internalGet(UCAL_MONTH))) { -- return FALSE; -+ return false; - } - } - - if (isSet(UCAL_DAY_OF_YEAR)) { - int32_t days = internalGet(UCAL_DAY_OF_YEAR); - if (days < 1 || days > yearLength()) { -- return FALSE; -+ return false; - } - } - -@@ -675,10 +675,10 @@ GregorianCalendar::validateFields() const - // We've checked against minimum and maximum above already. - if (isSet(UCAL_DAY_OF_WEEK_IN_MONTH) && - 0 == internalGet(UCAL_DAY_OF_WEEK_IN_MONTH)) { -- return FALSE; -+ return false; - } - -- return TRUE; -+ return true; - } - - // ------------------------------------- -@@ -828,7 +828,7 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s - } - - // J81 processing. (gregorian cutover) -- UBool inCutoverMonth = FALSE; -+ UBool inCutoverMonth = false; - int32_t cMonthLen=0; // 'c' for cutover; in days - int32_t cDayOfMonth=0; // no discontinuity: [0, cMonthLen) - double cMonthStart=0.0; // in ms -@@ -849,7 +849,7 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s - // A month containing the cutover is 10 days shorter. - if ((cMonthStart < fGregorianCutover) && - (cMonthStart + (cMonthLen=(max-10))*kOneDay >= fGregorianCutover)) { -- inCutoverMonth = TRUE; -+ inCutoverMonth = true; - } - } - break; -@@ -1145,7 +1145,7 @@ int32_t GregorianCalendar::getActualMaximum(UCalendarDateFields field, UErrorCod - return 0; - } - -- cal->setLenient(TRUE); -+ cal->setLenient(true); - - int32_t era = cal->get(UCAL_ERA, status); - UDate d = cal->getTime(status); -@@ -1241,12 +1241,12 @@ UBool - GregorianCalendar::inDaylightTime(UErrorCode& status) const - { - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) -- return FALSE; -+ return false; - - // Force an update of the state of the Calendar. - ((GregorianCalendar*)this)->complete(status); // cast away const - -- return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE); -+ return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : false); - } - - // ------------------------------------- -@@ -1274,12 +1274,12 @@ GregorianCalendar::getType() const { - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - - UBool GregorianCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - static void U_CALLCONV -diff --git a/deps/icu-small/source/i18n/gregoimp.cpp b/deps/icu-small/source/i18n/gregoimp.cpp -index 537aa19d8a..f862cd1d83 100644 ---- a/deps/icu-small/source/i18n/gregoimp.cpp -+++ b/deps/icu-small/source/i18n/gregoimp.cpp -@@ -33,28 +33,33 @@ int64_t ClockMath::floorDivide(int64_t numerator, int64_t denominator) { - } - - int32_t ClockMath::floorDivide(double numerator, int32_t denominator, -- int32_t& remainder) { -- double quotient; -- quotient = uprv_floor(numerator / denominator); -- remainder = (int32_t) (numerator - (quotient * denominator)); -+ int32_t* remainder) { -+ // For an integer n and representable ⌊x/n⌋, ⌊RN(x/n)⌋=⌊x/n⌋, where RN is -+ // rounding to nearest. -+ double quotient = uprv_floor(numerator / denominator); -+ // For doubles x and n, where n is an integer and ⌊x+n⌋ < 2³¹, the -+ // expression `(int32_t) (x + n)` evaluated with rounding to nearest -+ // differs from ⌊x+n⌋ if 0 < ⌈x⌉−x ≪ x+n, as `x + n` is rounded up to -+ // n+⌈x⌉ = ⌊x+n⌋ + 1. Rewriting it as ⌊x⌋+n makes the addition exact. -+ *remainder = (int32_t) (uprv_floor(numerator) - (quotient * denominator)); - return (int32_t) quotient; - } - - double ClockMath::floorDivide(double dividend, double divisor, -- double& remainder) { -+ double* remainder) { - // Only designed to work for positive divisors - U_ASSERT(divisor > 0); - double quotient = floorDivide(dividend, divisor); -- remainder = dividend - (quotient * divisor); -+ *remainder = dividend - (quotient * divisor); - // N.B. For certain large dividends, on certain platforms, there - // is a bug such that the quotient is off by one. If you doubt - // this to be true, set a breakpoint below and run cintltst. -- if (remainder < 0 || remainder >= divisor) { -+ if (*remainder < 0 || *remainder >= divisor) { - // E.g. 6.7317038241449352e+022 / 86400000.0 is wrong on my - // machine (too high by one). 4.1792057231752762e+024 / - // 86400000.0 is wrong the other way (too low). - double q = quotient; -- quotient += (remainder < 0) ? -1 : +1; -+ quotient += (*remainder < 0) ? -1 : +1; - if (q == quotient) { - // For quotients > ~2^53, we won't be able to add or - // subtract one, since the LSB of the mantissa will be > -@@ -65,12 +70,12 @@ double ClockMath::floorDivide(double dividend, double divisor, - // values give back an approximate answer rather than - // crashing. For example, UDate values above a ~10^25 - // might all have a time of midnight. -- remainder = 0; -+ *remainder = 0; - } else { -- remainder = dividend - (quotient * divisor); -+ *remainder = dividend - (quotient * divisor); - } - } -- U_ASSERT(0 <= remainder && remainder < divisor); -+ U_ASSERT(0 <= *remainder && *remainder < divisor); - return quotient; - } - -@@ -106,10 +111,10 @@ void Grego::dayToFields(double day, int32_t& year, int32_t& month, - // representation. We use 400-year, 100-year, and 4-year cycles. - // For example, the 4-year cycle has 4 years + 1 leap day; giving - // 1461 == 365*4 + 1 days. -- int32_t n400 = ClockMath::floorDivide(day, 146097, doy); // 400-year cycle length -- int32_t n100 = ClockMath::floorDivide(doy, 36524, doy); // 100-year cycle length -- int32_t n4 = ClockMath::floorDivide(doy, 1461, doy); // 4-year cycle length -- int32_t n1 = ClockMath::floorDivide(doy, 365, doy); -+ int32_t n400 = ClockMath::floorDivide(day, 146097, &doy); // 400-year cycle length -+ int32_t n100 = ClockMath::floorDivide(doy, 36524, &doy); // 100-year cycle length -+ int32_t n4 = ClockMath::floorDivide(doy, 1461, &doy); // 4-year cycle length -+ int32_t n1 = ClockMath::floorDivide(doy, 365, &doy); - year = 400*n400 + 100*n100 + 4*n4 + n1; - if (n100 == 4 || n1 == 4) { - doy = 365; // Dec 31 at end of 4- or 400-year cycle -@@ -137,14 +142,14 @@ void Grego::dayToFields(double day, int32_t& year, int32_t& month, - void Grego::timeToFields(UDate time, int32_t& year, int32_t& month, - int32_t& dom, int32_t& dow, int32_t& doy, int32_t& mid) { - double millisInDay; -- double day = ClockMath::floorDivide((double)time, (double)U_MILLIS_PER_DAY, millisInDay); -+ double day = ClockMath::floorDivide((double)time, (double)U_MILLIS_PER_DAY, &millisInDay); - mid = (int32_t)millisInDay; - dayToFields(day, year, month, dom, dow, doy); - } - - int32_t Grego::dayOfWeek(double day) { - int32_t dow; -- ClockMath::floorDivide(day + UCAL_THURSDAY, 7, dow); -+ ClockMath::floorDivide(day + int{UCAL_THURSDAY}, 7, &dow); - return (dow == 0) ? UCAL_SATURDAY : dow; - } - -diff --git a/deps/icu-small/source/i18n/gregoimp.h b/deps/icu-small/source/i18n/gregoimp.h -index b1a5bc22c2..d65d6a4f88 100644 ---- a/deps/icu-small/source/i18n/gregoimp.h -+++ b/deps/icu-small/source/i18n/gregoimp.h -@@ -78,7 +78,7 @@ class ClockMath { - * @return the floor of the quotient - */ - static int32_t floorDivide(double numerator, int32_t denominator, -- int32_t& remainder); -+ int32_t* remainder); - - /** - * For a positive divisor, return the quotient and remainder -@@ -91,7 +91,7 @@ class ClockMath { - * Calling with a divisor <= 0 is disallowed. - */ - static double floorDivide(double dividend, double divisor, -- double& remainder); -+ double* remainder); - }; - - // Useful millisecond constants -diff --git a/deps/icu-small/source/i18n/hebrwcal.cpp b/deps/icu-small/source/i18n/hebrwcal.cpp -index 4d8e59cef9..b3e6bcb65c 100644 ---- a/deps/icu-small/source/i18n/hebrwcal.cpp -+++ b/deps/icu-small/source/i18n/hebrwcal.cpp -@@ -140,7 +140,7 @@ U_CDECL_BEGIN - static UBool calendar_hebrew_cleanup(void) { - delete gCache; - gCache = NULL; -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -239,7 +239,7 @@ void HebrewCalendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& - } - month -= ELUL+1; - ++year; -- acrossAdar1 = TRUE; -+ acrossAdar1 = true; - } - } else { - acrossAdar1 = (month > ADAR_1); // started after ADAR_1? -@@ -253,7 +253,7 @@ void HebrewCalendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& - } - month += ELUL+1; - --year; -- acrossAdar1 = TRUE; -+ acrossAdar1 = true; - } - } - set(UCAL_MONTH, month); -@@ -671,12 +671,12 @@ HebrewCalendar::inDaylightTime(UErrorCode& status) const - { - // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) -- return FALSE; -+ return false; - - // Force an update of the state of the Calendar. - ((HebrewCalendar*)this)->complete(status); // cast away const - -- return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE); -+ return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : false); - } - - /** -@@ -686,11 +686,11 @@ HebrewCalendar::inDaylightTime(UErrorCode& status) const - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - UBool HebrewCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - static void U_CALLCONV initializeSystemDefaultCentury() -diff --git a/deps/icu-small/source/i18n/hebrwcal.h b/deps/icu-small/source/i18n/hebrwcal.h -index ae4401832d..d75651d47a 100644 ---- a/deps/icu-small/source/i18n/hebrwcal.h -+++ b/deps/icu-small/source/i18n/hebrwcal.h -@@ -88,7 +88,7 @@ public: - * Useful constants for HebrewCalendar. - * @internal - */ -- enum EEras { -+ enum Month { - /** - * Constant for Tishri, the 1st month of the Hebrew year. - */ -@@ -180,13 +180,6 @@ public: - */ - HebrewCalendar(const HebrewCalendar& source); - -- /** -- * Default assignment operator -- * @param right the object to be copied. -- * @internal -- */ -- HebrewCalendar& operator=(const HebrewCalendar& right); -- - /** - * Create and return a polymorphic copy of this calendar. - * @return return a polymorphic copy of this calendar. -diff --git a/deps/icu-small/source/i18n/indiancal.cpp b/deps/icu-small/source/i18n/indiancal.cpp -index 7bba7f5092..935290a575 100644 ---- a/deps/icu-small/source/i18n/indiancal.cpp -+++ b/deps/icu-small/source/i18n/indiancal.cpp -@@ -110,7 +110,7 @@ static UBool isGregorianLeap(int32_t year) - */ - int32_t IndianCalendar::handleGetMonthLength(int32_t eyear, int32_t month) const { - if (month < 0 || month > 11) { -- eyear += ClockMath::floorDivide(month, 12, month); -+ eyear += ClockMath::floorDivide(month, 12, &month); - } - - if (isGregorianLeap(eyear + INDIAN_ERA_START) && month == 0) { -@@ -210,7 +210,7 @@ int32_t IndianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, UB - - // If the month is out of range, adjust it into range, and adjust the extended year accordingly - if (month < 0 || month > 11) { -- eyear += (int32_t)ClockMath::floorDivide(month, 12, month); -+ eyear += (int32_t)ClockMath::floorDivide(month, 12, &month); - } - - if(month == 12){ -@@ -303,13 +303,13 @@ IndianCalendar::inDaylightTime(UErrorCode& status) const - { - // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) { -- return FALSE; -+ return false; - } - - // Force an update of the state of the Calendar. - ((IndianCalendar*)this)->complete(status); // cast away const - -- return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE); -+ return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : false); - } - - -@@ -320,12 +320,12 @@ IndianCalendar::inDaylightTime(UErrorCode& status) const - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - - UBool IndianCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - static void U_CALLCONV -diff --git a/deps/icu-small/source/i18n/indiancal.h b/deps/icu-small/source/i18n/indiancal.h -index 029515cf54..bfbea00329 100644 ---- a/deps/icu-small/source/i18n/indiancal.h -+++ b/deps/icu-small/source/i18n/indiancal.h -@@ -285,7 +285,7 @@ public: - virtual const char * getType() const override; - - private: -- IndianCalendar(); // default constructor not implemented -+ IndianCalendar() = delete; // default constructor not implemented - - // Default century. - protected: -diff --git a/deps/icu-small/source/i18n/inputext.cpp b/deps/icu-small/source/i18n/inputext.cpp -index fa4939e8f4..7c78ad249a 100644 ---- a/deps/icu-small/source/i18n/inputext.cpp -+++ b/deps/icu-small/source/i18n/inputext.cpp -@@ -49,7 +49,7 @@ InputText::~InputText() - void InputText::setText(const char *in, int32_t len) - { - fInputLen = 0; -- fC1Bytes = FALSE; -+ fC1Bytes = false; - fRawInput = (const uint8_t *) in; - fRawLength = len == -1? (int32_t)uprv_strlen(in) : len; - } -@@ -83,7 +83,7 @@ void InputText::MungeInput(UBool fStripTags) { - int srci = 0; - int dsti = 0; - uint8_t b; -- bool inMarkup = FALSE; -+ bool inMarkup = false; - int32_t openTags = 0; - int32_t badTags = 0; - -@@ -103,7 +103,7 @@ void InputText::MungeInput(UBool fStripTags) { - badTags += 1; - } - -- inMarkup = TRUE; -+ inMarkup = true; - openTags += 1; - } - -@@ -112,7 +112,7 @@ void InputText::MungeInput(UBool fStripTags) { - } - - if (b == (uint8_t)0x3E) { /* Check for the ASCII '>' */ -- inMarkup = FALSE; -+ inMarkup = false; - } - } - -@@ -153,7 +153,7 @@ void InputText::MungeInput(UBool fStripTags) { - - for (int32_t i = 0x80; i <= 0x9F; i += 1) { - if (fByteStats[i] != 0) { -- fC1Bytes = TRUE; -+ fC1Bytes = true; - break; - } - } -diff --git a/deps/icu-small/source/i18n/islamcal.cpp b/deps/icu-small/source/i18n/islamcal.cpp -index de37e6b939..916b4da2b6 100644 ---- a/deps/icu-small/source/i18n/islamcal.cpp -+++ b/deps/icu-small/source/i18n/islamcal.cpp -@@ -67,7 +67,7 @@ static UBool calendar_islamic_cleanup(void) { - delete gIslamicCalendarAstro; - gIslamicCalendarAstro = NULL; - } -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -697,12 +697,12 @@ IslamicCalendar::inDaylightTime(UErrorCode& status) const - { - // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) -- return FALSE; -+ return false; - - // Force an update of the state of the Calendar. - ((IslamicCalendar*)this)->complete(status); // cast away const - -- return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE); -+ return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : false); - } - - /** -@@ -712,12 +712,12 @@ IslamicCalendar::inDaylightTime(UErrorCode& status) const - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - - UBool IslamicCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - UDate IslamicCalendar::defaultCenturyStart() const -diff --git a/deps/icu-small/source/i18n/islamcal.h b/deps/icu-small/source/i18n/islamcal.h -index a29b7daa08..7d9941d470 100644 ---- a/deps/icu-small/source/i18n/islamcal.h -+++ b/deps/icu-small/source/i18n/islamcal.h -@@ -377,7 +377,7 @@ class U_I18N_API IslamicCalendar : public Calendar { - virtual const char * getType() const override; - - private: -- IslamicCalendar(); // default constructor not implemented -+ IslamicCalendar() = delete; // default constructor not implemented - - // Default century. - protected: -diff --git a/deps/icu-small/source/i18n/japancal.cpp b/deps/icu-small/source/i18n/japancal.cpp -index 75a248f406..ca9b0704a0 100644 ---- a/deps/icu-small/source/i18n/japancal.cpp -+++ b/deps/icu-small/source/i18n/japancal.cpp -@@ -39,7 +39,7 @@ - #include "cstring.h" - - static icu::EraRules * gJapaneseEraRules = nullptr; --static icu::UInitOnce gJapaneseEraRulesInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gJapaneseEraRulesInitOnce {}; - static int32_t gCurrentEra = 0; - - U_CDECL_BEGIN -@@ -50,7 +50,7 @@ static UBool japanese_calendar_cleanup(void) { - } - gCurrentEra = 0; - gJapaneseEraRulesInitOnce.reset(); -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -71,7 +71,7 @@ UBool JapaneseCalendar::enableTentativeEra() { - - // 1. Environment variable ICU_ENABLE_TENTATIVE_ERA=true or false - -- UBool includeTentativeEra = FALSE; -+ UBool includeTentativeEra = false; - - #if U_PLATFORM_HAS_WINUWP_API == 1 - // UWP doesn't allow access to getenv(), but we can call GetEnvironmentVariableW to do the same thing. -@@ -80,12 +80,12 @@ UBool JapaneseCalendar::enableTentativeEra() { - WCHAR varValue[5] = {}; - DWORD ret = GetEnvironmentVariableW(reinterpret_cast(varName), varValue, UPRV_LENGTHOF(varValue)); - if ((ret == 4) && (_wcsicmp(varValue, L"true") == 0)) { -- includeTentativeEra = TRUE; -+ includeTentativeEra = true; - } - #else - char *envVarVal = getenv(TENTATIVE_ERA_VAR_NAME); - if (envVarVal != NULL && uprv_stricmp(envVarVal, "true") == 0) { -- includeTentativeEra = TRUE; -+ includeTentativeEra = true; - } - #endif - return includeTentativeEra; -@@ -230,7 +230,7 @@ Disable pivoting - */ - UBool JapaneseCalendar::haveDefaultCentury() const - { -- return FALSE; -+ return false; - } - - UDate JapaneseCalendar::defaultCenturyStart() const -diff --git a/deps/icu-small/source/i18n/measfmt.cpp b/deps/icu-small/source/i18n/measfmt.cpp -index a9a56a3b58..d2b4e7018d 100644 ---- a/deps/icu-small/source/i18n/measfmt.cpp -+++ b/deps/icu-small/source/i18n/measfmt.cpp -@@ -183,10 +183,10 @@ static UBool getString( - int32_t len = 0; - const UChar *resStr = ures_getString(resource, &len, &status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } -- result.setTo(TRUE, resStr, len); -- return TRUE; -+ result.setTo(true, resStr, len); -+ return true; - } - - static UnicodeString loadNumericDateFormatterPattern( -@@ -239,7 +239,7 @@ static NumericDateFormatters *loadNumericDateFormatters( - return result; - } - --template<> U_I18N_API -+template<> - const MeasureFormatCacheData *LocaleCacheKey::createObject( - const void * /*unused*/, UErrorCode &status) const { - const char *localeId = fLoc.getName(); -@@ -645,7 +645,7 @@ void MeasureFormat::adoptNumberFormat( - - UBool MeasureFormat::setMeasureFormatLocale(const Locale &locale, UErrorCode &status) { - if (U_FAILURE(status) || locale == getLocale(status)) { -- return FALSE; -+ return false; - } - initMeasureFormat(locale, fWidth, NULL, status); - return U_SUCCESS(status); -@@ -769,7 +769,7 @@ UnicodeString &MeasureFormat::formatNumeric( - - FormattedStringBuilder fsb; - -- UBool protect = FALSE; -+ UBool protect = false; - const int32_t patternLength = pattern.length(); - for (int32_t i = 0; i < patternLength; i++) { - char16_t c = pattern[i]; -diff --git a/deps/icu-small/source/i18n/measunit.cpp b/deps/icu-small/source/i18n/measunit.cpp -index 5ad3991974..f53137c48c 100644 ---- a/deps/icu-small/source/i18n/measunit.cpp -+++ b/deps/icu-small/source/i18n/measunit.cpp -@@ -43,24 +43,24 @@ static const int32_t gOffsets[] = { - 17, - 27, - 31, -- 330, -- 341, -- 357, -- 361, -- 370, -+ 332, -+ 343, -+ 360, -+ 364, - 373, -- 377, -- 385, -- 407, -- 411, -- 426, -- 427, -- 433, -- 443, -- 447, -- 451, -- 453, -- 487 -+ 376, -+ 380, -+ 388, -+ 410, -+ 414, -+ 429, -+ 430, -+ 436, -+ 446, -+ 450, -+ 454, -+ 456, -+ 490 - }; - - static const int32_t kCurrencyOffset = 5; -@@ -345,6 +345,7 @@ static const char * const gSubTypes[] = { - "SHP", - "SIT", - "SKK", -+ "SLE", - "SLL", - "SOS", - "SRD", -@@ -384,6 +385,7 @@ static const char * const gSubTypes[] = { - "UYW", - "UZS", - "VEB", -+ "VED", - "VEF", - "VES", - "VNC", -@@ -446,6 +448,7 @@ static const char * const gSubTypes[] = { - "month", - "month-person", - "nanosecond", -+ "quarter", - "second", - "week", - "week-person", -@@ -511,7 +514,6 @@ static const char * const gSubTypes[] = { - "grain", - "gram", - "kilogram", -- "metric-ton", - "microgram", - "milligram", - "ounce", -@@ -520,6 +522,7 @@ static const char * const gSubTypes[] = { - "solar-mass", - "stone", - "ton", -+ "tonne", - "", - "gigawatt", - "horsepower", -@@ -1011,46 +1014,54 @@ MeasureUnit MeasureUnit::getNanosecond() { - return MeasureUnit(7, 10); - } - --MeasureUnit *MeasureUnit::createSecond(UErrorCode &status) { -+MeasureUnit *MeasureUnit::createQuarter(UErrorCode &status) { - return MeasureUnit::create(7, 11, status); - } - --MeasureUnit MeasureUnit::getSecond() { -+MeasureUnit MeasureUnit::getQuarter() { - return MeasureUnit(7, 11); - } - --MeasureUnit *MeasureUnit::createWeek(UErrorCode &status) { -+MeasureUnit *MeasureUnit::createSecond(UErrorCode &status) { - return MeasureUnit::create(7, 12, status); - } - --MeasureUnit MeasureUnit::getWeek() { -+MeasureUnit MeasureUnit::getSecond() { - return MeasureUnit(7, 12); - } - --MeasureUnit *MeasureUnit::createWeekPerson(UErrorCode &status) { -+MeasureUnit *MeasureUnit::createWeek(UErrorCode &status) { - return MeasureUnit::create(7, 13, status); - } - --MeasureUnit MeasureUnit::getWeekPerson() { -+MeasureUnit MeasureUnit::getWeek() { - return MeasureUnit(7, 13); - } - --MeasureUnit *MeasureUnit::createYear(UErrorCode &status) { -+MeasureUnit *MeasureUnit::createWeekPerson(UErrorCode &status) { - return MeasureUnit::create(7, 14, status); - } - --MeasureUnit MeasureUnit::getYear() { -+MeasureUnit MeasureUnit::getWeekPerson() { - return MeasureUnit(7, 14); - } - --MeasureUnit *MeasureUnit::createYearPerson(UErrorCode &status) { -+MeasureUnit *MeasureUnit::createYear(UErrorCode &status) { - return MeasureUnit::create(7, 15, status); - } - --MeasureUnit MeasureUnit::getYearPerson() { -+MeasureUnit MeasureUnit::getYear() { - return MeasureUnit(7, 15); - } - -+MeasureUnit *MeasureUnit::createYearPerson(UErrorCode &status) { -+ return MeasureUnit::create(7, 16, status); -+} -+ -+MeasureUnit MeasureUnit::getYearPerson() { -+ return MeasureUnit(7, 16); -+} -+ - MeasureUnit *MeasureUnit::createAmpere(UErrorCode &status) { - return MeasureUnit::create(8, 0, status); - } -@@ -1532,74 +1543,82 @@ MeasureUnit MeasureUnit::getKilogram() { - } - - MeasureUnit *MeasureUnit::createMetricTon(UErrorCode &status) { -- return MeasureUnit::create(15, 6, status); -+ return MeasureUnit::create(15, 14, status); - } - - MeasureUnit MeasureUnit::getMetricTon() { -- return MeasureUnit(15, 6); -+ return MeasureUnit(15, 14); - } - - MeasureUnit *MeasureUnit::createMicrogram(UErrorCode &status) { -- return MeasureUnit::create(15, 7, status); -+ return MeasureUnit::create(15, 6, status); - } - - MeasureUnit MeasureUnit::getMicrogram() { -- return MeasureUnit(15, 7); -+ return MeasureUnit(15, 6); - } - - MeasureUnit *MeasureUnit::createMilligram(UErrorCode &status) { -- return MeasureUnit::create(15, 8, status); -+ return MeasureUnit::create(15, 7, status); - } - - MeasureUnit MeasureUnit::getMilligram() { -- return MeasureUnit(15, 8); -+ return MeasureUnit(15, 7); - } - - MeasureUnit *MeasureUnit::createOunce(UErrorCode &status) { -- return MeasureUnit::create(15, 9, status); -+ return MeasureUnit::create(15, 8, status); - } - - MeasureUnit MeasureUnit::getOunce() { -- return MeasureUnit(15, 9); -+ return MeasureUnit(15, 8); - } - - MeasureUnit *MeasureUnit::createOunceTroy(UErrorCode &status) { -- return MeasureUnit::create(15, 10, status); -+ return MeasureUnit::create(15, 9, status); - } - - MeasureUnit MeasureUnit::getOunceTroy() { -- return MeasureUnit(15, 10); -+ return MeasureUnit(15, 9); - } - - MeasureUnit *MeasureUnit::createPound(UErrorCode &status) { -- return MeasureUnit::create(15, 11, status); -+ return MeasureUnit::create(15, 10, status); - } - - MeasureUnit MeasureUnit::getPound() { -- return MeasureUnit(15, 11); -+ return MeasureUnit(15, 10); - } - - MeasureUnit *MeasureUnit::createSolarMass(UErrorCode &status) { -- return MeasureUnit::create(15, 12, status); -+ return MeasureUnit::create(15, 11, status); - } - - MeasureUnit MeasureUnit::getSolarMass() { -- return MeasureUnit(15, 12); -+ return MeasureUnit(15, 11); - } - - MeasureUnit *MeasureUnit::createStone(UErrorCode &status) { -- return MeasureUnit::create(15, 13, status); -+ return MeasureUnit::create(15, 12, status); - } - - MeasureUnit MeasureUnit::getStone() { -- return MeasureUnit(15, 13); -+ return MeasureUnit(15, 12); - } - - MeasureUnit *MeasureUnit::createTon(UErrorCode &status) { -- return MeasureUnit::create(15, 14, status); -+ return MeasureUnit::create(15, 13, status); - } - - MeasureUnit MeasureUnit::getTon() { -+ return MeasureUnit(15, 13); -+} -+ -+MeasureUnit *MeasureUnit::createTonne(UErrorCode &status) { -+ return MeasureUnit::create(15, 14, status); -+} -+ -+MeasureUnit MeasureUnit::getTonne() { - return MeasureUnit(15, 14); - } - -diff --git a/deps/icu-small/source/i18n/measunit_extra.cpp b/deps/icu-small/source/i18n/measunit_extra.cpp -index 2df9edee96..3d49d1d610 100644 ---- a/deps/icu-small/source/i18n/measunit_extra.cpp -+++ b/deps/icu-small/source/i18n/measunit_extra.cpp -@@ -312,7 +312,7 @@ class CategoriesSink : public icu::ResourceSink { - int32_t outIndex; - }; - --icu::UInitOnce gUnitExtrasInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce gUnitExtrasInitOnce {}; - - // Array of simple unit IDs. - // -@@ -349,7 +349,7 @@ UBool U_CALLCONV cleanupUnitExtras() { - uprv_free(gSimpleUnits); - gSimpleUnits = nullptr; - gUnitExtrasInitOnce.reset(); -- return TRUE; -+ return true; - } - - void U_CALLCONV initUnitExtras(UErrorCode& status) { -@@ -718,7 +718,7 @@ private: - case COMPOUND_PART_PER: - if (sawAnd) { - // Mixed compound units not yet supported, -- // TODO(CLDR-13700). -+ // TODO(CLDR-13701). - status = kUnitIdentifierSyntaxError; - return result; - } -@@ -735,7 +735,7 @@ private: - case COMPOUND_PART_AND: - if (fAfterPer) { - // Can't start with "-and-", and mixed compound units -- // not yet supported, TODO(CLDR-13700). -+ // not yet supported, TODO(CLDR-13701). - status = kUnitIdentifierSyntaxError; - return result; - } -diff --git a/deps/icu-small/source/i18n/msgfmt.cpp b/deps/icu-small/source/i18n/msgfmt.cpp -index 13a5a08951..29476f328f 100644 ---- a/deps/icu-small/source/i18n/msgfmt.cpp -+++ b/deps/icu-small/source/i18n/msgfmt.cpp -@@ -239,7 +239,7 @@ MessageFormat::MessageFormat(const UnicodeString& pattern, - argTypes(NULL), - argTypeCount(0), - argTypeCapacity(0), -- hasArgTypeConflicts(FALSE), -+ hasArgTypeConflicts(false), - defaultNumberFormat(NULL), - defaultDateFormat(NULL), - cachedFormatters(NULL), -@@ -261,7 +261,7 @@ MessageFormat::MessageFormat(const UnicodeString& pattern, - argTypes(NULL), - argTypeCount(0), - argTypeCapacity(0), -- hasArgTypeConflicts(FALSE), -+ hasArgTypeConflicts(false), - defaultNumberFormat(NULL), - defaultDateFormat(NULL), - cachedFormatters(NULL), -@@ -284,7 +284,7 @@ MessageFormat::MessageFormat(const UnicodeString& pattern, - argTypes(NULL), - argTypeCount(0), - argTypeCapacity(0), -- hasArgTypeConflicts(FALSE), -+ hasArgTypeConflicts(false), - defaultNumberFormat(NULL), - defaultDateFormat(NULL), - cachedFormatters(NULL), -@@ -338,17 +338,17 @@ MessageFormat::~MessageFormat() - - /** - * Allocate argTypes[] to at least the given capacity and return -- * TRUE if successful. If not, leave argTypes[] unchanged. -+ * true if successful. If not, leave argTypes[] unchanged. - * - * If argTypes is NULL, allocate it. If it is not NULL, enlarge it - * if necessary to be at least as large as specified. - */ - UBool MessageFormat::allocateArgTypes(int32_t capacity, UErrorCode& status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (argTypeCapacity >= capacity) { -- return TRUE; -+ return true; - } - if (capacity < DEFAULT_INITIAL_CAPACITY) { - capacity = DEFAULT_INITIAL_CAPACITY; -@@ -359,11 +359,11 @@ UBool MessageFormat::allocateArgTypes(int32_t capacity, UErrorCode& status) { - uprv_realloc(argTypes, sizeof(*argTypes) * capacity); - if (a == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - argTypes = a; - argTypeCapacity = capacity; -- return TRUE; -+ return true; - } - - // ------------------------------------- -@@ -504,7 +504,7 @@ void MessageFormat::resetPattern() { - uhash_close(customFormatArgStarts); - customFormatArgStarts = NULL; - argTypeCount = 0; -- hasArgTypeConflicts = FALSE; -+ hasArgTypeConflicts = false; - } - - void -@@ -973,7 +973,7 @@ public: - PluralSelectorContext(int32_t start, const UnicodeString &name, - const Formattable &num, double off, UErrorCode &errorCode) - : startIndex(start), argName(name), offset(off), -- numberArgIndex(-1), formatter(NULL), forReplaceNumber(FALSE) { -+ numberArgIndex(-1), formatter(NULL), forReplaceNumber(false) { - // number needs to be set even when select() is not called. - // Keep it as a Number/Formattable: - // For format() methods, and to preserve information (e.g., BigDecimal). -@@ -996,7 +996,7 @@ public: - const Format *formatter; - /** formatted argument number - plural offset */ - UnicodeString numberString; -- /** TRUE if number-offset was formatted with the stock number formatter */ -+ /** true if number-offset was formatted with the stock number formatter */ - UBool forReplaceNumber; - }; - -@@ -1048,7 +1048,7 @@ void MessageFormat::format(int32_t msgStart, const void *plNumber, - UMessagePatternArgType argType = part->getArgType(); - part = &msgPattern.getPart(++i); - const Formattable* arg; -- UBool noArg = FALSE; -+ UBool noArg = false; - UnicodeString argName = msgPattern.getSubstring(*part); - if (argumentNames == NULL) { - int32_t argNumber = part->getValue(); // ARG_NUMBER -@@ -1056,12 +1056,12 @@ void MessageFormat::format(int32_t msgStart, const void *plNumber, - arg = arguments + argNumber; - } else { - arg = NULL; -- noArg = TRUE; -+ noArg = true; - } - } else { - arg = getArgFromListByName(arguments, argumentNames, cnt, argName); - if (arg == NULL) { -- noArg = TRUE; -+ noArg = true; - } - } - ++i; -@@ -1268,7 +1268,7 @@ MessageFormat::findOtherSubMessage(int32_t partIndex) const { - } - // Iterate over (ARG_SELECTOR [ARG_INT|ARG_DOUBLE] message) tuples - // until ARG_LIMIT or end of plural-only pattern. -- UnicodeString other(FALSE, OTHER_STRING, 5); -+ UnicodeString other(false, OTHER_STRING, 5); - do { - part=&msgPattern.getPart(partIndex++); - UMessagePatternPartType type=part->getType(); -@@ -1393,7 +1393,7 @@ MessageFormat::parse(int32_t msgStart, - ParsePosition tempStatus(0); - - for(int32_t i=msgStart+1; ; ++i) { -- UBool haveArgResult = FALSE; -+ UBool haveArgResult = false; - const MessagePattern::Part* part=&msgPattern.getPart(i); - const UMessagePatternPartType type=part->getType(); - int32_t index=part->getIndex(); -@@ -1437,7 +1437,7 @@ MessageFormat::parse(int32_t msgStart, - return NULL; // leave index as is to signal error - } - sourceOffset = tempStatus.getIndex(); -- haveArgResult = TRUE; -+ haveArgResult = true; - } else if( - argType==UMSGPAT_ARG_TYPE_NONE || (cachedFormatters && uhash_iget(cachedFormatters, i -2))) { - // We arrive here if getCachedFormatter returned NULL, but there was actually an element in the hash table. -@@ -1466,7 +1466,7 @@ MessageFormat::parse(int32_t msgStart, - compValue.append(RIGHT_CURLY_BRACE); - if (0 != strValue.compare(compValue)) { - argResult.setString(strValue); -- haveArgResult = TRUE; -+ haveArgResult = true; - } - sourceOffset = next; - } -@@ -1478,7 +1478,7 @@ MessageFormat::parse(int32_t msgStart, - return NULL; // leave index as is to signal error - } - argResult.setDouble(choiceResult); -- haveArgResult = TRUE; -+ haveArgResult = true; - sourceOffset = tempStatus.getIndex(); - } else if(UMSGPAT_ARG_TYPE_HAS_PLURAL_STYLE(argType) || argType==UMSGPAT_ARG_TYPE_SELECT) { - // Parsing not supported. -@@ -1622,7 +1622,7 @@ void MessageFormat::cacheExplicitFormats(UErrorCode& status) { - for (int32_t i = 0; i < argTypeCount; ++i) { - argTypes[i] = Formattable::kObject; - } -- hasArgTypeConflicts = FALSE; -+ hasArgTypeConflicts = false; - - // This loop starts at part index 1 because we do need to examine - // ARG_START parts. (But we can ignore the MSG_START.) -@@ -1673,7 +1673,7 @@ void MessageFormat::cacheExplicitFormats(UErrorCode& status) { - } - if (argNumber != -1) { - if (argTypes[argNumber] != Formattable::kObject && argTypes[argNumber] != formattableType) { -- hasArgTypeConflicts = TRUE; -+ hasArgTypeConflicts = true; - } - argTypes[argNumber] = formattableType; - } -@@ -1789,7 +1789,7 @@ int32_t MessageFormat::findKeyword(const UnicodeString& s, - - int32_t length = s.length(); - const UChar *ps = PatternProps::trimWhiteSpace(s.getBuffer(), length); -- UnicodeString buffer(FALSE, ps, length); -+ UnicodeString buffer(false, ps, length); - // Trims the space characters and turns all characters - // in s to lower case. - buffer.toLower(""); -@@ -1810,8 +1810,8 @@ MessageFormat::createIntegerFormat(const Locale& locale, UErrorCode& status) con - DecimalFormat *temp2; - if (temp != NULL && (temp2 = dynamic_cast(temp)) != NULL) { - temp2->setMaximumFractionDigits(0); -- temp2->setDecimalSeparatorAlwaysShown(FALSE); -- temp2->setParseIntegerOnly(TRUE); -+ temp2->setDecimalSeparatorAlwaysShown(false); -+ temp2->setParseIntegerOnly(true); - } - - return temp; -@@ -1951,13 +1951,13 @@ MessageFormat::PluralSelectorProvider::~PluralSelectorProvider() { - UnicodeString MessageFormat::PluralSelectorProvider::select(void *ctx, double number, - UErrorCode& ec) const { - if (U_FAILURE(ec)) { -- return UnicodeString(FALSE, OTHER_STRING, 5); -+ return UnicodeString(false, OTHER_STRING, 5); - } - MessageFormat::PluralSelectorProvider* t = const_cast(this); - if(rules == NULL) { - t->rules = PluralRules::forLocale(msgFormat.fLocale, type, ec); - if (U_FAILURE(ec)) { -- return UnicodeString(FALSE, OTHER_STRING, 5); -+ return UnicodeString(false, OTHER_STRING, 5); - } - } - // Select a sub-message according to how the number is formatted, -@@ -1975,11 +1975,11 @@ UnicodeString MessageFormat::PluralSelectorProvider::select(void *ctx, double nu - } - if(context.formatter == NULL) { - context.formatter = msgFormat.getDefaultNumberFormat(ec); -- context.forReplaceNumber = TRUE; -+ context.forReplaceNumber = true; - } - if (context.number.getDouble(ec) != number) { - ec = U_INTERNAL_PROGRAM_ERROR; -- return UnicodeString(FALSE, OTHER_STRING, 5); -+ return UnicodeString(false, OTHER_STRING, 5); - } - context.formatter->format(context.number, context.numberString, ec); - auto* decFmt = dynamic_cast(context.formatter); -@@ -1987,7 +1987,7 @@ UnicodeString MessageFormat::PluralSelectorProvider::select(void *ctx, double nu - number::impl::DecimalQuantity dq; - decFmt->formatToDecimalQuantity(context.number, dq, ec); - if (U_FAILURE(ec)) { -- return UnicodeString(FALSE, OTHER_STRING, 5); -+ return UnicodeString(false, OTHER_STRING, 5); - } - return rules->select(dq); - } else { -diff --git a/deps/icu-small/source/i18n/name2uni.cpp b/deps/icu-small/source/i18n/name2uni.cpp -index ffbbf152d3..b22c68b022 100644 ---- a/deps/icu-small/source/i18n/name2uni.cpp -+++ b/deps/icu-small/source/i18n/name2uni.cpp -@@ -127,7 +127,7 @@ void NameUnicodeTransliterator::handleTransliterate(Replaceable& text, UTransPos - return; - } - -- UnicodeString openPat(TRUE, OPEN, -1); -+ UnicodeString openPat(true, OPEN, -1); - UnicodeString str, name; - - int32_t cursor = offsets.start; -@@ -222,7 +222,7 @@ void NameUnicodeTransliterator::handleTransliterate(Replaceable& text, UTransPos - } - - // Check if c is a legal char. We assume here that -- // legal.contains(OPEN_DELIM) is FALSE, so when we abort a -+ // legal.contains(OPEN_DELIM) is false, so when we abort a - // name, we don't have to go back to openPos+1. - if (legal.contains(c)) { - name.append(c); -diff --git a/deps/icu-small/source/i18n/nfrs.cpp b/deps/icu-small/source/i18n/nfrs.cpp -index df04e33e04..17fab13911 100644 ---- a/deps/icu-small/source/i18n/nfrs.cpp -+++ b/deps/icu-small/source/i18n/nfrs.cpp -@@ -138,9 +138,9 @@ NFRuleSet::NFRuleSet(RuleBasedNumberFormat *_owner, UnicodeString* descriptions, - , rules(0) - , owner(_owner) - , fractionRules() -- , fIsFractionRuleSet(FALSE) -- , fIsPublic(FALSE) -- , fIsParseable(TRUE) -+ , fIsFractionRuleSet(false) -+ , fIsPublic(false) -+ , fIsParseable(true) - { - for (int32_t i = 0; i < NON_NUMERICAL_RULE_LENGTH; ++i) { - nonNumericalRules[i] = NULL; -@@ -185,7 +185,7 @@ NFRuleSet::NFRuleSet(RuleBasedNumberFormat *_owner, UnicodeString* descriptions, - fIsPublic = name.indexOf(gPercentPercent, 2, 0) != 0; - - if ( name.endsWith(gNoparse,8) ) { -- fIsParseable = FALSE; -+ fIsParseable = false; - name.truncate(name.length()-8); // remove the @noparse from the name - } - -@@ -273,13 +273,13 @@ void NFRuleSet::setNonNumericalRule(NFRule *rule) { - nonNumericalRules[NEGATIVE_RULE_INDEX] = rule; - } - else if (baseValue == NFRule::kImproperFractionRule) { -- setBestFractionRule(IMPROPER_FRACTION_RULE_INDEX, rule, TRUE); -+ setBestFractionRule(IMPROPER_FRACTION_RULE_INDEX, rule, true); - } - else if (baseValue == NFRule::kProperFractionRule) { -- setBestFractionRule(PROPER_FRACTION_RULE_INDEX, rule, TRUE); -+ setBestFractionRule(PROPER_FRACTION_RULE_INDEX, rule, true); - } - else if (baseValue == NFRule::kDefaultRule) { -- setBestFractionRule(DEFAULT_RULE_INDEX, rule, TRUE); -+ setBestFractionRule(DEFAULT_RULE_INDEX, rule, true); - } - else if (baseValue == NFRule::kInfinityRule) { - delete nonNumericalRules[INFINITY_RULE_INDEX]; -@@ -339,9 +339,9 @@ util_equalRules(const NFRule* rule1, const NFRule* rule2) - return *rule1 == *rule2; - } - } else if (!rule2) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - bool -@@ -380,7 +380,7 @@ NFRuleSet::setDecimalFormatSymbols(const DecimalFormatSymbols &newSymbols, UErro - for (uint32_t fIdx = 0; fIdx < fractionRules.size(); fIdx++) { - NFRule *fractionRule = fractionRules[fIdx]; - if (nonNumericalRules[nonNumericalIdx]->getBaseValue() == fractionRule->getBaseValue()) { -- setBestFractionRule(nonNumericalIdx, fractionRule, FALSE); -+ setBestFractionRule(nonNumericalIdx, fractionRule, false); - } - } - } -diff --git a/deps/icu-small/source/i18n/nfrule.cpp b/deps/icu-small/source/i18n/nfrule.cpp -index 4bb0785127..2f8383c764 100644 ---- a/deps/icu-small/source/i18n/nfrule.cpp -+++ b/deps/icu-small/source/i18n/nfrule.cpp -@@ -621,9 +621,9 @@ util_equalSubstitutions(const NFSubstitution* sub1, const NFSubstitution* sub2) - return *sub1 == *sub2; - } - } else if (!sub2) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - /** -@@ -856,7 +856,7 @@ NFRule::shouldRollBack(int64_t number) const - int64_t re = util64_pow(radix, exponent); - return (number % re) == 0 && (baseValue % re) != 0; - } -- return FALSE; -+ return false; - } - - //----------------------------------------------------------------------- -@@ -943,19 +943,19 @@ NFRule::doParse(const UnicodeString& text, - // restored for ICU4C port - parsePosition.setErrorIndex(pp.getErrorIndex()); - resVal.setLong(0); -- return TRUE; -+ return true; - } - if (baseValue == kInfinityRule) { - // If you match this, don't try to perform any calculations on it. - parsePosition.setIndex(pp.getIndex()); - resVal.setDouble(uprv_getInfinity()); -- return TRUE; -+ return true; - } - if (baseValue == kNaNRule) { - // If you match this, don't try to perform any calculations on it. - parsePosition.setIndex(pp.getIndex()); - resVal.setDouble(uprv_getNaN()); -- return TRUE; -+ return true; - } - - // this is the fun part. The basic guts of the rule-matching -@@ -1083,7 +1083,7 @@ NFRule::doParse(const UnicodeString& text, - } - - resVal.setDouble(result); -- return TRUE; // ??? do we need to worry if it is a long or a double? -+ return true; // ??? do we need to worry if it is a long or a double? - } - - /** -@@ -1191,7 +1191,7 @@ NFRule::matchToDelimiter(const UnicodeString& text, - if (subText.length() > 0) { - UBool success = sub->doParse(subText, tempPP, _baseValue, upperBound, - #if UCONFIG_NO_COLLATION -- FALSE, -+ false, - #else - formatter->isLenient(), - #endif -@@ -1245,7 +1245,7 @@ NFRule::matchToDelimiter(const UnicodeString& text, - // try to match the whole string against the substitution - UBool success = sub->doParse(text, tempPP, _baseValue, upperBound, - #if UCONFIG_NO_COLLATION -- FALSE, -+ false, - #else - formatter->isLenient(), - #endif -@@ -1579,7 +1579,7 @@ NFRule::allIgnorable(const UnicodeString& str, UErrorCode& status) const - { - // if the string is empty, we can just return true - if (str.length() == 0) { -- return TRUE; -+ return true; - } - - #if !UCONFIG_NO_COLLATION -@@ -1590,14 +1590,14 @@ NFRule::allIgnorable(const UnicodeString& str, UErrorCode& status) const - const RuleBasedCollator* collator = formatter->getCollator(); - if (collator == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - LocalPointer iter(collator->createCollationElementIterator(str)); - - // Memory allocation error check. - if (iter.isNull()) { - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - - UErrorCode err = U_ZERO_ERROR; -@@ -1613,7 +1613,7 @@ NFRule::allIgnorable(const UnicodeString& str, UErrorCode& status) const - - // if lenient parsing is turned off, there is no such thing as - // an ignorable character: return true only if the string is empty -- return FALSE; -+ return false; - } - - void -diff --git a/deps/icu-small/source/i18n/nfsubs.cpp b/deps/icu-small/source/i18n/nfsubs.cpp -index 70ac18be46..9dba77b1e3 100644 ---- a/deps/icu-small/source/i18n/nfsubs.cpp -+++ b/deps/icu-small/source/i18n/nfsubs.cpp -@@ -167,7 +167,7 @@ public: - - virtual double calcUpperBound(double /*oldUpperBound*/) const override { return static_cast(divisor); } - -- virtual UBool isModulusSubstitution() const override { return TRUE; } -+ virtual UBool isModulusSubstitution() const override { return true; } - - virtual UChar tokenChar() const override { return (UChar)0x003e; } // '>' - -@@ -763,11 +763,11 @@ NFSubstitution::doParse(const UnicodeString& text, - // the result. - tempResult = composeRuleValue(tempResult, baseValue); - result.setDouble(tempResult); -- return TRUE; -+ return true; - // if the parse was UNsuccessful, return 0 - } else { - result.setLong(0); -- return FALSE; -+ return false; - } - } - -@@ -779,7 +779,7 @@ NFSubstitution::doParse(const UnicodeString& text, - */ - UBool - NFSubstitution::isModulusSubstitution() const { -- return FALSE; -+ return false; - } - - //=================================================================== -@@ -950,7 +950,7 @@ ModulusSubstitution::doParse(const UnicodeString& text, - // use the specific rule's doParse() method, and then we have to - // do some of the other work of NFRuleSet.parse() - } else { -- ruleToUse->doParse(text, parsePosition, FALSE, upperBound, nonNumericalExecutedRuleMask, result); -+ ruleToUse->doParse(text, parsePosition, false, upperBound, nonNumericalExecutedRuleMask, result); - - if (parsePosition.getIndex() != 0) { - UErrorCode status = U_ZERO_ERROR; -@@ -959,7 +959,7 @@ ModulusSubstitution::doParse(const UnicodeString& text, - result.setDouble(tempResult); - } - -- return TRUE; -+ return true; - } - } - /** -@@ -1007,17 +1007,17 @@ FractionalPartSubstitution::FractionalPartSubstitution(int32_t _pos, - const UnicodeString& description, - UErrorCode& status) - : NFSubstitution(_pos, _ruleSet, description, status) -- , byDigits(FALSE) -- , useSpaces(TRUE) -+ , byDigits(false) -+ , useSpaces(true) - - { - // akk, ruleSet can change in superclass constructor - if (0 == description.compare(gGreaterGreaterThan, 2) || - 0 == description.compare(gGreaterGreaterGreaterThan, 3) || - _ruleSet == getRuleSet()) { -- byDigits = TRUE; -+ byDigits = true; - if (0 == description.compare(gGreaterGreaterGreaterThan, 3)) { -- useSpaces = FALSE; -+ useSpaces = false; - } - } else { - // cast away const -@@ -1059,14 +1059,14 @@ FractionalPartSubstitution::doSubstitution(double number, UnicodeString& toInser - // // this flag keeps us from formatting trailing zeros. It starts - // // out false because we're pulling from the right, and switches - // // to true the first time we encounter a non-zero digit -- // UBool doZeros = FALSE; -+ // UBool doZeros = false; - // for (int32_t i = 0; i < kMaxDecimalDigits; i++) { - // int64_t digit = numberToFormat % 10; - // if (digit != 0 || doZeros) { - // if (doZeros && useSpaces) { - // toInsertInto.insert(_pos + getPos(), gSpace); - // } -- // doZeros = TRUE; -+ // doZeros = true; - // getRuleSet()->format(digit, toInsertInto, _pos + getPos()); - // } - // numberToFormat /= 10; -@@ -1076,7 +1076,7 @@ FractionalPartSubstitution::doSubstitution(double number, UnicodeString& toInser - dl.setToDouble(number); - dl.roundToMagnitude(-20, UNUM_ROUND_HALFEVEN, status); // round to 20 fraction digits. - -- UBool pad = FALSE; -+ UBool pad = false; - for (int32_t didx = dl.getLowerDisplayMagnitude(); didx<0; didx++) { - // Loop iterates over fraction digits, starting with the LSD. - // include both real digits from the number, and zeros -@@ -1084,7 +1084,7 @@ FractionalPartSubstitution::doSubstitution(double number, UnicodeString& toInser - if (pad && useSpaces) { - toInsertInto.insert(_pos + getPos(), gSpace); - } else { -- pad = TRUE; -+ pad = true; - } - int64_t digit = dl.getDigit(didx); - getRuleSet()->format(digit, toInsertInto, _pos + getPos(), recursionCount, status); -@@ -1191,7 +1191,7 @@ FractionalPartSubstitution::doParse(const UnicodeString& text, - result = dl.toDouble(); - result = composeRuleValue(result, baseValue); - resVal.setDouble(result); -- return TRUE; -+ return true; - } - } - -@@ -1301,7 +1301,7 @@ NumeratorSubstitution::doParse(const UnicodeString& text, - } - - // we've parsed off the zeros, now let's parse the rest from our current position -- NFSubstitution::doParse(workText, parsePosition, withZeros ? 1 : baseValue, upperBound, FALSE, nonNumericalExecutedRuleMask, result); -+ NFSubstitution::doParse(workText, parsePosition, withZeros ? 1 : baseValue, upperBound, false, nonNumericalExecutedRuleMask, result); - - if (withZeros) { - // any base value will do in this case. is there a way to -@@ -1310,10 +1310,8 @@ NumeratorSubstitution::doParse(const UnicodeString& text, - // compute the 'effective' base and prescale the value down - int64_t n = result.getLong(status); // force conversion! - int64_t d = 1; -- int32_t pow = 0; - while (d <= n) { - d *= 10; -- ++pow; - } - // now add the zeros - while (zeroCount > 0) { -@@ -1324,7 +1322,7 @@ NumeratorSubstitution::doParse(const UnicodeString& text, - result.setDouble((double)n/(double)d); - } - -- return TRUE; -+ return true; - } - - bool -diff --git a/deps/icu-small/source/i18n/nfsubs.h b/deps/icu-small/source/i18n/nfsubs.h -index 0abd98be09..a38a3722a5 100644 ---- a/deps/icu-small/source/i18n/nfsubs.h -+++ b/deps/icu-small/source/i18n/nfsubs.h -@@ -245,8 +245,8 @@ public: - virtual UBool isModulusSubstitution() const; - - private: -- NFSubstitution(const NFSubstitution &other); // forbid copying of this class -- NFSubstitution &operator=(const NFSubstitution &other); // forbid copying of this class -+ NFSubstitution(const NFSubstitution &other) = delete; // forbid copying of this class -+ NFSubstitution &operator=(const NFSubstitution &other) = delete; // forbid copying of this class - - public: - static UClassID getStaticClassID(void); -diff --git a/deps/icu-small/source/i18n/nortrans.cpp b/deps/icu-small/source/i18n/nortrans.cpp -index 6a8d2c7419..b1809daebd 100644 ---- a/deps/icu-small/source/i18n/nortrans.cpp -+++ b/deps/icu-small/source/i18n/nortrans.cpp -@@ -45,13 +45,13 @@ void NormalizationTransliterator::registerIDs() { - Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-FCC"), - _create, cstrToken("nfc\0\3")); - Transliterator::_registerSpecialInverse(UNICODE_STRING_SIMPLE("NFC"), -- UNICODE_STRING_SIMPLE("NFD"), TRUE); -+ UNICODE_STRING_SIMPLE("NFD"), true); - Transliterator::_registerSpecialInverse(UNICODE_STRING_SIMPLE("NFKC"), -- UNICODE_STRING_SIMPLE("NFKD"), TRUE); -+ UNICODE_STRING_SIMPLE("NFKD"), true); - Transliterator::_registerSpecialInverse(UNICODE_STRING_SIMPLE("FCC"), -- UNICODE_STRING_SIMPLE("NFD"), FALSE); -+ UNICODE_STRING_SIMPLE("NFD"), false); - Transliterator::_registerSpecialInverse(UNICODE_STRING_SIMPLE("FCD"), -- UNICODE_STRING_SIMPLE("FCD"), FALSE); -+ UNICODE_STRING_SIMPLE("FCD"), false); - } - - /** -diff --git a/deps/icu-small/source/i18n/number_capi.cpp b/deps/icu-small/source/i18n/number_capi.cpp -index b87dbd93e5..42bb05c066 100644 ---- a/deps/icu-small/source/i18n/number_capi.cpp -+++ b/deps/icu-small/source/i18n/number_capi.cpp -@@ -166,11 +166,11 @@ unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t buf - U_CAPI UBool U_EXPORT2 - unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* ufpos, UErrorCode* ec) { - const auto* result = UFormattedNumberApiHelper::validate(uresult, *ec); -- if (U_FAILURE(*ec)) { return FALSE; } -+ if (U_FAILURE(*ec)) { return false; } - - if (ufpos == nullptr) { - *ec = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - - FieldPosition fp; -@@ -181,7 +181,7 @@ unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* u - ufpos->beginIndex = fp.getBeginIndex(); - ufpos->endIndex = fp.getEndIndex(); - // NOTE: MSVC sometimes complains when implicitly converting between bool and UBool -- return retval ? TRUE : FALSE; -+ return retval ? true : false; - } - - U_CAPI void U_EXPORT2 -diff --git a/deps/icu-small/source/i18n/number_compact.cpp b/deps/icu-small/source/i18n/number_compact.cpp -index 60cd7bedf6..4dc96e7ea1 100644 ---- a/deps/icu-small/source/i18n/number_compact.cpp -+++ b/deps/icu-small/source/i18n/number_compact.cpp -@@ -173,10 +173,14 @@ void CompactData::CompactDataSink::put(const char *key, ResourceValue &value, UB - for (int i3 = 0; powersOfTenTable.getKeyAndValue(i3, key, value); ++i3) { - - // Assumes that the keys are always of the form "10000" where the magnitude is the -- // length of the key minus one. We expect magnitudes to be less than MAX_DIGITS. -+ // length of the key minus one. We only support magnitudes less than COMPACT_MAX_DIGITS; -+ // ignore entries that have greater magnitude. - auto magnitude = static_cast (strlen(key) - 1); -+ U_ASSERT(magnitude < COMPACT_MAX_DIGITS); // debug assert -+ if (magnitude >= COMPACT_MAX_DIGITS) { // skip in production -+ continue; -+ } - int8_t multiplier = data.multipliers[magnitude]; -- U_ASSERT(magnitude < COMPACT_MAX_DIGITS); - - // Iterate over the plural variants ("one", "other", etc) - ResourceTable pluralVariantsTable = value.getTable(status); -diff --git a/deps/icu-small/source/i18n/number_compact.h b/deps/icu-small/source/i18n/number_compact.h -index 9802b9fb10..fa29744c10 100644 ---- a/deps/icu-small/source/i18n/number_compact.h -+++ b/deps/icu-small/source/i18n/number_compact.h -@@ -17,7 +17,7 @@ - U_NAMESPACE_BEGIN namespace number { - namespace impl { - --static const int32_t COMPACT_MAX_DIGITS = 15; -+static const int32_t COMPACT_MAX_DIGITS = 20; - - class CompactData : public MultiplierProducer { - public: -diff --git a/deps/icu-small/source/i18n/number_currencysymbols.cpp b/deps/icu-small/source/i18n/number_currencysymbols.cpp -index da1812f49f..8d5127556b 100644 ---- a/deps/icu-small/source/i18n/number_currencysymbols.cpp -+++ b/deps/icu-small/source/i18n/number_currencysymbols.cpp -@@ -108,6 +108,10 @@ UnicodeString CurrencySymbols::getPluralName(StandardPlural::Form plural, UError - } - } - -+bool CurrencySymbols::hasEmptyCurrencySymbol() const { -+ return !fCurrencySymbol.isBogus() && fCurrencySymbol.isEmpty(); -+} -+ - - CurrencyUnit - icu::number::impl::resolveCurrency(const DecimalFormatProperties& properties, const Locale& locale, -diff --git a/deps/icu-small/source/i18n/number_currencysymbols.h b/deps/icu-small/source/i18n/number_currencysymbols.h -index 7e38fdf828..c2223bd0f0 100644 ---- a/deps/icu-small/source/i18n/number_currencysymbols.h -+++ b/deps/icu-small/source/i18n/number_currencysymbols.h -@@ -41,6 +41,8 @@ class U_I18N_API CurrencySymbols : public UMemory { - - UnicodeString getPluralName(StandardPlural::Form plural, UErrorCode& status) const; - -+ bool hasEmptyCurrencySymbol() const; -+ - protected: - // Required fields: - CurrencyUnit fCurrency; -diff --git a/deps/icu-small/source/i18n/number_decimfmtprops.cpp b/deps/icu-small/source/i18n/number_decimfmtprops.cpp -index 7fa58bbc7a..6dbfc69ec8 100644 ---- a/deps/icu-small/source/i18n/number_decimfmtprops.cpp -+++ b/deps/icu-small/source/i18n/number_decimfmtprops.cpp -@@ -18,7 +18,7 @@ namespace { - alignas(DecimalFormatProperties) - char kRawDefaultProperties[sizeof(DecimalFormatProperties)]; - --icu::UInitOnce gDefaultPropertiesInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce gDefaultPropertiesInitOnce {}; - - void U_CALLCONV initDefaultProperties(UErrorCode&) { - // can't fail, uses placement new into statically allocated space. -diff --git a/deps/icu-small/source/i18n/number_fluent.cpp b/deps/icu-small/source/i18n/number_fluent.cpp -index fd486afb51..8a968d922c 100644 ---- a/deps/icu-small/source/i18n/number_fluent.cpp -+++ b/deps/icu-small/source/i18n/number_fluent.cpp -@@ -288,6 +288,34 @@ Derived NumberFormatterSettings::usage(const StringPiece usage)&& { - return move; - } - -+template -+Derived NumberFormatterSettings::displayOptions(const DisplayOptions &displayOptions) const & { -+ Derived copy(*this); -+ // `displayCase` does not recognise the `undefined` -+ if (displayOptions.getGrammaticalCase() == UDISPOPT_GRAMMATICAL_CASE_UNDEFINED) { -+ copy.fMacros.unitDisplayCase.set(nullptr); -+ return copy; -+ } -+ -+ copy.fMacros.unitDisplayCase.set( -+ udispopt_getGrammaticalCaseIdentifier(displayOptions.getGrammaticalCase())); -+ return copy; -+} -+ -+template -+Derived NumberFormatterSettings::displayOptions(const DisplayOptions &displayOptions) && { -+ Derived move(std::move(*this)); -+ // `displayCase` does not recognise the `undefined` -+ if (displayOptions.getGrammaticalCase() == UDISPOPT_GRAMMATICAL_CASE_UNDEFINED) { -+ move.fMacros.unitDisplayCase.set(nullptr); -+ return move; -+ } -+ -+ move.fMacros.unitDisplayCase.set( -+ udispopt_getGrammaticalCaseIdentifier(displayOptions.getGrammaticalCase())); -+ return move; -+} -+ - template - Derived NumberFormatterSettings::unitDisplayCase(const StringPiece unitDisplayCase) const& { - Derived copy(*this); -diff --git a/deps/icu-small/source/i18n/number_formatimpl.cpp b/deps/icu-small/source/i18n/number_formatimpl.cpp -index 96e3e9e7c6..4fb190b744 100644 ---- a/deps/icu-small/source/i18n/number_formatimpl.cpp -+++ b/deps/icu-small/source/i18n/number_formatimpl.cpp -@@ -353,7 +353,9 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps& macros, bool safe, - } - fPatternModifier.adoptInstead(patternModifier); - const AffixPatternProvider* affixProvider = -- macros.affixProvider != nullptr -+ macros.affixProvider != nullptr && ( -+ // For more information on this condition, see ICU-22073 -+ !isCompactNotation || isCurrency == macros.affixProvider->hasCurrencySign()) - ? macros.affixProvider - : static_cast(fPatternInfo.getAlias()); - patternModifier->setPatternInfo(affixProvider, kUndefinedField); -diff --git a/deps/icu-small/source/i18n/number_longnames.cpp b/deps/icu-small/source/i18n/number_longnames.cpp -index b4e96504de..be0320cecf 100644 ---- a/deps/icu-small/source/i18n/number_longnames.cpp -+++ b/deps/icu-small/source/i18n/number_longnames.cpp -@@ -1569,7 +1569,7 @@ void MixedUnitLongNameHandler::forMeasureUnit(const Locale &loc, - for (int32_t i = 0; i < fillIn->fMixedUnitCount; i++) { - // Grab data for each of the components. - UnicodeString *unitData = &fillIn->fMixedUnitData[i * ARRAY_LENGTH]; -- // TODO(CLDR-14502): check from the CLDR-14502 ticket whether this -+ // TODO(CLDR-14582): check from the CLDR-14582 ticket whether this - // propagation of unitDisplayCase is correct: - getMeasureData(loc, impl.singleUnits[i]->build(status), width, unitDisplayCase, unitData, - status); -diff --git a/deps/icu-small/source/i18n/number_mapper.cpp b/deps/icu-small/source/i18n/number_mapper.cpp -index 350c431dfd..2f398d4a93 100644 ---- a/deps/icu-small/source/i18n/number_mapper.cpp -+++ b/deps/icu-small/source/i18n/number_mapper.cpp -@@ -256,8 +256,6 @@ MacroProps NumberPropertyMapper::oldToNew(const DecimalFormatProperties& propert - } else { - macros.notation = Notation::compactShort(); - } -- // Do not forward the affix provider. -- macros.affixProvider = nullptr; - } - - ///////////////// -diff --git a/deps/icu-small/source/i18n/number_modifiers.cpp b/deps/icu-small/source/i18n/number_modifiers.cpp -index b74bfd06fc..092b66ff57 100644 ---- a/deps/icu-small/source/i18n/number_modifiers.cpp -+++ b/deps/icu-small/source/i18n/number_modifiers.cpp -@@ -22,7 +22,7 @@ const int32_t ARG_NUM_LIMIT = 0x100; - // These are the default currency spacing UnicodeSets in CLDR. - // Pre-compute them for performance. - // The Java unit test testCurrencySpacingPatternStability() will start failing if these change in CLDR. --icu::UInitOnce gDefaultCurrencySpacingInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce gDefaultCurrencySpacingInitOnce {}; - - UnicodeSet *UNISET_DIGIT = nullptr; - UnicodeSet *UNISET_NOTSZ = nullptr; -@@ -33,7 +33,7 @@ UBool U_CALLCONV cleanupDefaultCurrencySpacing() { - delete UNISET_NOTSZ; - UNISET_NOTSZ = nullptr; - gDefaultCurrencySpacingInitOnce.reset(); -- return TRUE; -+ return true; - } - - void U_CALLCONV initDefaultCurrencySpacing(UErrorCode &status) { -diff --git a/deps/icu-small/source/i18n/number_output.cpp b/deps/icu-small/source/i18n/number_output.cpp -index 78006da8c4..729a2cd5e6 100644 ---- a/deps/icu-small/source/i18n/number_output.cpp -+++ b/deps/icu-small/source/i18n/number_output.cpp -@@ -39,52 +39,10 @@ MeasureUnit FormattedNumber::getOutputUnit(UErrorCode& status) const { - return fData->outputUnit; - } - --NounClass FormattedNumber::getNounClass(UErrorCode &status) const { -- UPRV_FORMATTED_VALUE_METHOD_GUARD(NounClass::OTHER); -+UDisplayOptionsNounClass FormattedNumber::getNounClass(UErrorCode &status) const { -+ UPRV_FORMATTED_VALUE_METHOD_GUARD(UDISPOPT_NOUN_CLASS_UNDEFINED); - const char *nounClass = fData->gender; -- -- // if it is not exist, return `OTHER` -- if (uprv_strcmp(nounClass, "") == 0) { -- return NounClass::OTHER; -- } -- -- if (uprv_strcmp(nounClass, "neuter") == 0) { -- return NounClass::NEUTER; -- } -- -- if (uprv_strcmp(nounClass, "feminine") == 0) { -- return NounClass::FEMININE; -- } -- -- if (uprv_strcmp(nounClass, "masculine") == 0) { -- return NounClass::MASCULINE; -- } -- -- if (uprv_strcmp(nounClass, "animate") == 0) { -- return NounClass::ANIMATE; -- } -- -- if (uprv_strcmp(nounClass, "inanimate") == 0) { -- return NounClass::INANIMATE; -- } -- -- if (uprv_strcmp(nounClass, "personal") == 0) { -- return NounClass::PERSONAL; -- } -- -- if (uprv_strcmp(nounClass, "common") == 0) { -- return NounClass::COMMON; -- } -- -- // In case there is no matching, this means there are noun classes -- // that are not supported yet. -- status = U_INTERNAL_PROGRAM_ERROR; -- return NounClass::OTHER; --} -- --const char *FormattedNumber::getGender(UErrorCode &status) const { -- UPRV_FORMATTED_VALUE_METHOD_GUARD("") -- return fData->gender; -+ return udispopt_fromNounClassIdentifier(nounClass); - } - - void FormattedNumber::getDecimalQuantity(impl::DecimalQuantity& output, UErrorCode& status) const { -diff --git a/deps/icu-small/source/i18n/number_patternmodifier.cpp b/deps/icu-small/source/i18n/number_patternmodifier.cpp -index b6543b262b..088a30ecd7 100644 ---- a/deps/icu-small/source/i18n/number_patternmodifier.cpp -+++ b/deps/icu-small/source/i18n/number_patternmodifier.cpp -@@ -284,6 +284,7 @@ void MutablePatternModifier::prepareAffix(bool isPrefix) { - fApproximately, - fPlural, - fPerMilleReplacesPercent, -+ false, // dropCurrencySymbols - currentAffix); - } - -diff --git a/deps/icu-small/source/i18n/number_patternstring.cpp b/deps/icu-small/source/i18n/number_patternstring.cpp -index 2738895d8a..557a732085 100644 ---- a/deps/icu-small/source/i18n/number_patternstring.cpp -+++ b/deps/icu-small/source/i18n/number_patternstring.cpp -@@ -1056,7 +1056,9 @@ void PatternStringUtils::patternInfoToStringBuilder(const AffixPatternProvider& - PatternSignType patternSignType, - bool approximately, - StandardPlural::Form plural, -- bool perMilleReplacesPercent, UnicodeString& output) { -+ bool perMilleReplacesPercent, -+ bool dropCurrencySymbols, -+ UnicodeString& output) { - - // Should the output render '+' where '-' would normally appear in the pattern? - bool plusReplacesMinusSign = (patternSignType == PATTERN_SIGN_TYPE_POS_SIGN) -@@ -1130,6 +1132,9 @@ void PatternStringUtils::patternInfoToStringBuilder(const AffixPatternProvider& - if (perMilleReplacesPercent && candidate == u'%') { - candidate = u'‰'; - } -+ if (dropCurrencySymbols && candidate == u'\u00A4') { -+ continue; -+ } - output.append(candidate); - } - } -diff --git a/deps/icu-small/source/i18n/number_patternstring.h b/deps/icu-small/source/i18n/number_patternstring.h -index 94afda3722..0869669784 100644 ---- a/deps/icu-small/source/i18n/number_patternstring.h -+++ b/deps/icu-small/source/i18n/number_patternstring.h -@@ -317,7 +317,9 @@ class U_I18N_API PatternStringUtils { - static void patternInfoToStringBuilder(const AffixPatternProvider& patternInfo, bool isPrefix, - PatternSignType patternSignType, - bool approximately, -- StandardPlural::Form plural, bool perMilleReplacesPercent, -+ StandardPlural::Form plural, -+ bool perMilleReplacesPercent, -+ bool dropCurrencySymbols, - UnicodeString& output); - - static PatternSignType resolveSignDisplay(UNumberSignDisplay signDisplay, Signum signum); -diff --git a/deps/icu-small/source/i18n/number_skeletons.cpp b/deps/icu-small/source/i18n/number_skeletons.cpp -index c51831b682..3db50369cb 100644 ---- a/deps/icu-small/source/i18n/number_skeletons.cpp -+++ b/deps/icu-small/source/i18n/number_skeletons.cpp -@@ -33,7 +33,7 @@ using namespace icu::number::impl::skeleton; - - namespace { - --icu::UInitOnce gNumberSkeletonsInitOnce = U_INITONCE_INITIALIZER; -+icu::UInitOnce gNumberSkeletonsInitOnce {}; - - char16_t* kSerializedStemTrie = nullptr; - -@@ -41,7 +41,7 @@ UBool U_CALLCONV cleanupNumberSkeletons() { - uprv_free(kSerializedStemTrie); - kSerializedStemTrie = nullptr; - gNumberSkeletonsInitOnce.reset(); -- return TRUE; -+ return true; - } - - void U_CALLCONV initNumberSkeletons(UErrorCode& status) { -diff --git a/deps/icu-small/source/i18n/number_usageprefs.cpp b/deps/icu-small/source/i18n/number_usageprefs.cpp -index 5d93d12cce..26fdfafeea 100644 ---- a/deps/icu-small/source/i18n/number_usageprefs.cpp -+++ b/deps/icu-small/source/i18n/number_usageprefs.cpp -@@ -153,7 +153,7 @@ UsagePrefsHandler::UsagePrefsHandler(const Locale &locale, - const StringPiece usage, - const MicroPropsGenerator *parent, - UErrorCode &status) -- : fUnitsRouter(inputUnit, StringPiece(locale.getCountry()), usage, status), -+ : fUnitsRouter(inputUnit, locale, usage, status), - fParent(parent) { - } - -diff --git a/deps/icu-small/source/i18n/numfmt.cpp b/deps/icu-small/source/i18n/numfmt.cpp -index b8ce1c930f..9e841da74a 100644 ---- a/deps/icu-small/source/i18n/numfmt.cpp -+++ b/deps/icu-small/source/i18n/numfmt.cpp -@@ -117,7 +117,7 @@ static const UChar * const gLastResortNumberPatterns[UNUM_FORMAT_STYLE_COUNT] = - NULL, // UNUM_SPELLOUT - NULL, // UNUM_ORDINAL - NULL, // UNUM_DURATION -- NULL, // UNUM_NUMBERING_SYSTEM -+ gLastResortDecimalPat, // UNUM_NUMBERING_SYSTEM - NULL, // UNUM_PATTERN_RULEBASED - gLastResortIsoCurrencyPat, // UNUM_CURRENCY_ISO - gLastResortPluralCurrencyPat, // UNUM_CURRENCY_PLURAL -@@ -156,11 +156,11 @@ static const icu::number::impl::CldrPatternStyle gFormatCldrStyles[UNUM_FORMAT_S - - // Static hashtable cache of NumberingSystem objects used by NumberFormat - static UHashtable * NumberingSystem_cache = NULL; --static icu::UInitOnce gNSCacheInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gNSCacheInitOnce {}; - - #if !UCONFIG_NO_SERVICE - static icu::ICULocaleService* gService = NULL; --static icu::UInitOnce gServiceInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gServiceInitOnce {}; - #endif - - /** -@@ -186,7 +186,7 @@ static UBool U_CALLCONV numfmt_cleanup(void) { - uhash_close(NumberingSystem_cache); - NumberingSystem_cache = NULL; - } -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -229,13 +229,13 @@ SimpleNumberFormatFactory::getSupportedIDs(int32_t &count, UErrorCode& status) c - // ------------------------------------- - // default constructor - NumberFormat::NumberFormat() --: fGroupingUsed(TRUE), -+: fGroupingUsed(true), - fMaxIntegerDigits(gDefaultMaxIntegerDigits), - fMinIntegerDigits(1), - fMaxFractionDigits(3), // invariant, >= minFractionDigits - fMinFractionDigits(0), -- fParseIntegerOnly(FALSE), -- fLenient(FALSE), -+ fParseIntegerOnly(false), -+ fLenient(false), - fCapitalizationContext(UDISPCTX_CAPITALIZATION_NONE) - { - fCurrency[0] = 0; -@@ -294,39 +294,39 @@ NumberFormat::operator==(const Format& that) const - #ifdef FMT_DEBUG - // This code makes it easy to determine why two format objects that should - // be equal aren't. -- UBool first = TRUE; -+ UBool first = true; - if (!Format::operator==(that)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("Format::!="); - } - if (!(fMaxIntegerDigits == other->fMaxIntegerDigits && - fMinIntegerDigits == other->fMinIntegerDigits)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("Integer digits !="); - } - if (!(fMaxFractionDigits == other->fMaxFractionDigits && - fMinFractionDigits == other->fMinFractionDigits)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("Fraction digits !="); - } - if (!(fGroupingUsed == other->fGroupingUsed)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("fGroupingUsed != "); - } - if (!(fParseIntegerOnly == other->fParseIntegerOnly)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("fParseIntegerOnly != "); - } - if (!(u_strcmp(fCurrency, other->fCurrency) == 0)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("fCurrency !="); - } - if (!(fLenient == other->fLenient)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("fLenient != "); - } - if (!(fCapitalizationContext == other->fCapitalizationContext)) { -- if (first) { printf("[ "); first = FALSE; } else { printf(", "); } -+ if (first) { printf("[ "); first = false; } else { printf(", "); } - debug("fCapitalizationContext != "); - } - if (!first) { printf(" ]"); } -@@ -502,7 +502,7 @@ ArgExtractor::iso(void) const { - } - - ArgExtractor::ArgExtractor(const NumberFormat& /*nf*/, const Formattable& obj, UErrorCode& /*status*/) -- : num(&obj), fWasCurrency(FALSE) { -+ : num(&obj), fWasCurrency(false) { - - const UObject* o = obj.getObject(); // most commonly o==NULL - const CurrencyAmount* amt; -@@ -512,7 +512,7 @@ ArgExtractor::ArgExtractor(const NumberFormat& /*nf*/, const Formattable& obj, U - //const UChar* curr = amt->getISOCurrency(); - u_strcpy(save, amt->getISOCurrency()); - num = &amt->getNumber(); -- fWasCurrency=TRUE; -+ fWasCurrency=true; - } else { - save[0]=0; - } -@@ -1007,13 +1007,13 @@ UBool U_EXPORT2 - NumberFormat::unregister(URegistryKey key, UErrorCode& status) - { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (haveService()) { - return gService->unregister(key, status); - } else { - status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - } - -@@ -1310,6 +1310,14 @@ NumberFormat::makeInstance(const Locale& desiredLocale, - status = U_ILLEGAL_ARGUMENT_ERROR; - return NULL; - } -+ -+ // For the purposes of general number formatting, UNUM_NUMBERING_SYSTEM should behave the same -+ // was as UNUM_DECIMAL. In both cases, you get either a DecimalFormat or a RuleBasedNumberFormat -+ // depending on the locale's numbering system (either the default one for the locale or a specific -+ // one specified by using the "@numbers=" or "-u-nu-" parameter in the locale ID. -+ if (style == UNUM_NUMBERING_SYSTEM) { -+ style = UNUM_DECIMAL; -+ } - - // Some styles are not supported. This is a result of merging - // the @draft ICU 4.2 NumberFormat::EStyles into the long-existing UNumberFormatStyle. -@@ -1329,11 +1337,11 @@ NumberFormat::makeInstance(const Locale& desiredLocale, - - // if the locale has "@compat=host", create a host-specific NumberFormat - if (U_SUCCESS(status) && count > 0 && uprv_strcmp(buffer, "host") == 0) { -- UBool curr = TRUE; -+ UBool curr = true; - - switch (style) { - case UNUM_DECIMAL: -- curr = FALSE; -+ curr = false; - // fall-through - U_FALLTHROUGH; - -@@ -1407,7 +1415,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale, - ns->getName(), - gFormatCldrStyles[style], - status); -- pattern = UnicodeString(TRUE, patternPtr, -1); -+ pattern = UnicodeString(true, patternPtr, -1); - } - if (U_FAILURE(status)) { - return NULL; -@@ -1460,8 +1468,8 @@ NumberFormat::makeInstance(const Locale& desiredLocale, - // replace single currency sign in the pattern with double currency sign - // if the style is UNUM_CURRENCY_ISO - if (style == UNUM_CURRENCY_ISO) { -- pattern.findAndReplace(UnicodeString(TRUE, gSingleCurrencySign, 1), -- UnicodeString(TRUE, gDoubleCurrencySign, 2)); -+ pattern.findAndReplace(UnicodeString(true, gSingleCurrencySign, 1), -+ UnicodeString(true, gDoubleCurrencySign, 2)); - } - - // "new DecimalFormat()" does not adopt the symbols argument if its memory allocation fails. -diff --git a/deps/icu-small/source/i18n/numparse_affixes.cpp b/deps/icu-small/source/i18n/numparse_affixes.cpp -index 1414006598..ad3d48b473 100644 ---- a/deps/icu-small/source/i18n/numparse_affixes.cpp -+++ b/deps/icu-small/source/i18n/numparse_affixes.cpp -@@ -169,6 +169,10 @@ NumberParseMatcher* AffixTokenMatcherWarehouse::nextCodePointMatcher(UChar32 cp, - return result; - } - -+bool AffixTokenMatcherWarehouse::hasEmptyCurrencySymbol() const { -+ return fSetupData->currencySymbols.hasEmptyCurrencySymbol(); -+} -+ - - CodePointMatcher::CodePointMatcher(UChar32 cp) - : fCp(cp) {} -@@ -280,8 +284,16 @@ void AffixMatcherWarehouse::createAffixMatchers(const AffixPatternProvider& patt - AffixPatternMatcher* posSuffix = nullptr; - - // Pre-process the affix strings to resolve LDML rules like sign display. -- for (int8_t typeInt = 0; typeInt < PATTERN_SIGN_TYPE_COUNT; typeInt++) { -- auto type = static_cast(typeInt); -+ for (int8_t typeInt = 0; typeInt < PATTERN_SIGN_TYPE_COUNT * 2; typeInt++) { -+ auto type = static_cast(typeInt / 2); -+ bool dropCurrencySymbols = (typeInt % 2) == 1; -+ -+ if (dropCurrencySymbols && !patternInfo.hasCurrencySign()) { -+ continue; -+ } -+ if (dropCurrencySymbols && !fTokenWarehouse->hasEmptyCurrencySymbol()) { -+ continue; -+ } - - // Skip affixes in some cases - if (type == PATTERN_SIGN_TYPE_POS -@@ -297,7 +309,7 @@ void AffixMatcherWarehouse::createAffixMatchers(const AffixPatternProvider& patt - // TODO: Handle approximately sign? - bool hasPrefix = false; - PatternStringUtils::patternInfoToStringBuilder( -- patternInfo, true, type, false, StandardPlural::OTHER, false, sb); -+ patternInfo, true, type, false, StandardPlural::OTHER, false, dropCurrencySymbols, sb); - fAffixPatternMatchers[numAffixPatternMatchers] = AffixPatternMatcher::fromAffixPattern( - sb, *fTokenWarehouse, parseFlags, &hasPrefix, status); - AffixPatternMatcher* prefix = hasPrefix ? &fAffixPatternMatchers[numAffixPatternMatchers++] -@@ -307,7 +319,7 @@ void AffixMatcherWarehouse::createAffixMatchers(const AffixPatternProvider& patt - // TODO: Handle approximately sign? - bool hasSuffix = false; - PatternStringUtils::patternInfoToStringBuilder( -- patternInfo, false, type, false, StandardPlural::OTHER, false, sb); -+ patternInfo, false, type, false, StandardPlural::OTHER, false, dropCurrencySymbols, sb); - fAffixPatternMatchers[numAffixPatternMatchers] = AffixPatternMatcher::fromAffixPattern( - sb, *fTokenWarehouse, parseFlags, &hasSuffix, status); - AffixPatternMatcher* suffix = hasSuffix ? &fAffixPatternMatchers[numAffixPatternMatchers++] -diff --git a/deps/icu-small/source/i18n/numparse_affixes.h b/deps/icu-small/source/i18n/numparse_affixes.h -index a82b731ab5..ad731ed5d8 100644 ---- a/deps/icu-small/source/i18n/numparse_affixes.h -+++ b/deps/icu-small/source/i18n/numparse_affixes.h -@@ -101,6 +101,8 @@ class U_I18N_API AffixTokenMatcherWarehouse : public UMemory { - - NumberParseMatcher* nextCodePointMatcher(UChar32 cp, UErrorCode& status); - -+ bool hasEmptyCurrencySymbol() const; -+ - private: - // NOTE: The following field may be unsafe to access after construction is done! - const AffixTokenMatcherSetupData* fSetupData; -@@ -204,10 +206,12 @@ class AffixMatcherWarehouse { - UErrorCode& status); - - private: -- // 9 is the limit: positive, zero, and negative, each with prefix, suffix, and prefix+suffix -- AffixMatcher fAffixMatchers[9]; -- // 6 is the limit: positive, zero, and negative, a prefix and a suffix for each -- AffixPatternMatcher fAffixPatternMatchers[6]; -+ // 18 is the limit: positive, zero, and negative, each with prefix, suffix, and prefix+suffix, -+ // and doubled since there may be an empty currency symbol -+ AffixMatcher fAffixMatchers[18]; -+ // 6 is the limit: positive, zero, and negative, a prefix and a suffix for each, -+ // and doubled since there may be an empty currency symbol -+ AffixPatternMatcher fAffixPatternMatchers[12]; - // Reference to the warehouse for tokens used by the AffixPatternMatchers - AffixTokenMatcherWarehouse* fTokenWarehouse; - -diff --git a/deps/icu-small/source/i18n/numrange_fluent.cpp b/deps/icu-small/source/i18n/numrange_fluent.cpp -index f1060b3c21..c36defa369 100644 ---- a/deps/icu-small/source/i18n/numrange_fluent.cpp -+++ b/deps/icu-small/source/i18n/numrange_fluent.cpp -@@ -354,6 +354,7 @@ LocalizedNumberRangeFormatter::getFormatter(UErrorCode& status) const { - // Try computing the formatter on our own - auto* temp = new NumberRangeFormatterImpl(fMacros, status); - if (U_FAILURE(status)) { -+ delete temp; - return nullptr; - } - if (temp == nullptr) { -diff --git a/deps/icu-small/source/i18n/numrange_impl.cpp b/deps/icu-small/source/i18n/numrange_impl.cpp -index 3c440c193c..06efc7b281 100644 ---- a/deps/icu-small/source/i18n/numrange_impl.cpp -+++ b/deps/icu-small/source/i18n/numrange_impl.cpp -@@ -130,7 +130,7 @@ NumberRangeFormatterImpl::NumberRangeFormatterImpl(const RangeMacroProps& macros - fApproximatelyFormatter(status) { - - const char* nsName = formatterImpl1.getRawMicroProps().nsName; -- if (uprv_strcmp(nsName, formatterImpl2.getRawMicroProps().nsName) != 0) { -+ if (!fSameFormatters && uprv_strcmp(nsName, formatterImpl2.getRawMicroProps().nsName) != 0) { - status = U_ILLEGAL_ARGUMENT_ERROR; - return; - } -diff --git a/deps/icu-small/source/i18n/numsys.cpp b/deps/icu-small/source/i18n/numsys.cpp -index 934149039c..015d2a4cb6 100644 ---- a/deps/icu-small/source/i18n/numsys.cpp -+++ b/deps/icu-small/source/i18n/numsys.cpp -@@ -61,7 +61,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(NumsysNameEnumeration) - - NumberingSystem::NumberingSystem() { - radix = 10; -- algorithmic = FALSE; -+ algorithmic = false; - UnicodeString defaultDigits = DEFAULT_DIGITS; - desc.setTo(defaultDigits); - uprv_strcpy(name,gLatn); -@@ -116,8 +116,8 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) { - return nullptr; - } - -- UBool nsResolved = TRUE; -- UBool usingFallback = FALSE; -+ UBool nsResolved = true; -+ UBool usingFallback = false; - char buffer[ULOC_KEYWORDS_CAPACITY] = ""; - int32_t count = inLocale.getKeywordValue("numbers", buffer, sizeof(buffer), status); - if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) { -@@ -130,11 +130,11 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) { - buffer[count] = '\0'; // Make sure it is null terminated. - if ( !uprv_strcmp(buffer,gDefault) || !uprv_strcmp(buffer,gNative) || - !uprv_strcmp(buffer,gTraditional) || !uprv_strcmp(buffer,gFinance)) { -- nsResolved = FALSE; -+ nsResolved = false; - } - } else { - uprv_strcpy(buffer, gDefault); -- nsResolved = FALSE; -+ nsResolved = false; - } - - if (!nsResolved) { // Resolve the numbering system ( default, native, traditional or finance ) into a "real" numbering system -@@ -158,7 +158,7 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) { - if ( count > 0 && count < ULOC_KEYWORDS_CAPACITY ) { // numbering system found - u_UCharsToChars(nsName, buffer, count); - buffer[count] = '\0'; // Make sure it is null terminated. -- nsResolved = TRUE; -+ nsResolved = true; - } - - if (!nsResolved) { // Fallback behavior per TR35 - traditional falls back to native, finance and native fall back to default -@@ -167,8 +167,8 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) { - } else if (!uprv_strcmp(buffer,gTraditional)) { - uprv_strcpy(buffer,gNative); - } else { // If we get here we couldn't find even the default numbering system -- usingFallback = TRUE; -- nsResolved = TRUE; -+ usingFallback = true; -+ nsResolved = true; - } - } - } -@@ -271,7 +271,7 @@ UBool NumberingSystem::isAlgorithmic() const { - namespace { - - UVector* gNumsysNames = nullptr; --UInitOnce gNumSysInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce gNumSysInitOnce {}; - - U_CFUNC UBool U_CALLCONV numSysCleanup() { - delete gNumsysNames; -diff --git a/deps/icu-small/source/i18n/olsontz.cpp b/deps/icu-small/source/i18n/olsontz.cpp -index cae471a5a2..e5c60f8cbe 100644 ---- a/deps/icu-small/source/i18n/olsontz.cpp -+++ b/deps/icu-small/source/i18n/olsontz.cpp -@@ -53,13 +53,13 @@ static void debug_tz_msg(const char *pat, ...) - - static UBool arrayEqual(const void *a1, const void *a2, int32_t size) { - if (a1 == NULL && a2 == NULL) { -- return TRUE; -+ return true; - } - if ((a1 != NULL && a2 == NULL) || (a1 == NULL && a2 != NULL)) { -- return FALSE; -+ return false; - } - if (a1 == a2) { -- return TRUE; -+ return true; - } - - return (uprv_memcmp(a1, a2, size) == 0); -@@ -87,7 +87,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(OlsonTimeZone) - * Default constructor. Creates a time zone with an empty ID and - * a fixed GMT offset of zero. - */ --/*OlsonTimeZone::OlsonTimeZone() : finalYear(INT32_MAX), finalMillis(DBL_MAX), finalZone(0), transitionRulesInitialized(FALSE) { -+/*OlsonTimeZone::OlsonTimeZone() : finalYear(INT32_MAX), finalMillis(DBL_MAX), finalZone(0), transitionRulesInitialized(false) { - clearTransitionRules(); - constructEmpty(); - }*/ -@@ -204,7 +204,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top, - ures_getByKey(res, kFINALYEAR, r.getAlias(), &ec); - int32_t ruleYear = ures_getInt(r.getAlias(), &ec); - if (U_SUCCESS(ec)) { -- UnicodeString ruleID(TRUE, ruleIdUStr, len); -+ UnicodeString ruleID(true, ruleIdUStr, len); - UResourceBundle *rule = TimeZone::loadRule(top, ruleID, NULL, ec); - const int32_t *ruleData = ures_getIntVector(rule, &len, &ec); - if (U_SUCCESS(ec) && len == 11) { -@@ -381,7 +381,7 @@ int32_t OlsonTimeZone::getOffset(uint8_t era, int32_t year, int32_t month, - // Compute local epoch millis from input fields - UDate date = (UDate)(Grego::fieldsToDay(year, month, dom) * U_MILLIS_PER_DAY + millis); - int32_t rawoff, dstoff; -- getHistoricalOffset(date, TRUE, kDaylight, kStandard, rawoff, dstoff); -+ getHistoricalOffset(date, true, kDaylight, kStandard, rawoff, dstoff); - return rawoff + dstoff; - } - -@@ -409,7 +409,7 @@ void OlsonTimeZone::getOffsetFromLocal(UDate date, UTimeZoneLocalOption nonExist - if (finalZone != NULL && date >= finalStartMillis) { - finalZone->getOffsetFromLocal(date, nonExistingTimeOpt, duplicatedTimeOpt, rawoff, dstoff, ec); - } else { -- getHistoricalOffset(date, TRUE, nonExistingTimeOpt, duplicatedTimeOpt, rawoff, dstoff); -+ getHistoricalOffset(date, true, nonExistingTimeOpt, duplicatedTimeOpt, rawoff, dstoff); - } - } - -@@ -430,8 +430,7 @@ void OlsonTimeZone::setRawOffset(int32_t /*offsetMillis*/) { - int32_t OlsonTimeZone::getRawOffset() const { - UErrorCode ec = U_ZERO_ERROR; - int32_t raw, dst; -- getOffset((double) uprv_getUTCtime() * U_MILLIS_PER_SECOND, -- FALSE, raw, dst, ec); -+ getOffset(uprv_getUTCtime(), false, raw, dst, ec); - return raw; - } - -@@ -560,9 +559,9 @@ OlsonTimeZone::getHistoricalOffset(UDate date, UBool local, - UBool OlsonTimeZone::useDaylightTime() const { - // If DST was observed in 1942 (for example) but has never been - // observed from 1943 to the present, most clients will expect -- // this method to return FALSE. This method determines whether -+ // this method to return false. This method determines whether - // DST is in use in the current year (at any point in the year) -- // and returns TRUE if so. -+ // and returns true if so. - - UDate current = uprv_getUTCtime(); - if (finalZone != NULL && current >= finalStartMillis) { -@@ -576,7 +575,7 @@ UBool OlsonTimeZone::useDaylightTime() const { - double start = Grego::fieldsToDay(year, 0, 1) * SECONDS_PER_DAY; - double limit = Grego::fieldsToDay(year+1, 0, 1) * SECONDS_PER_DAY; - -- // Return TRUE if DST is observed at any time during the current -+ // Return true if DST is observed at any time during the current - // year. - for (int16_t i = 0; i < transitionCount(); ++i) { - double transition = (double)transitionTimeInSeconds(i); -@@ -585,10 +584,10 @@ UBool OlsonTimeZone::useDaylightTime() const { - } - if ((transition >= start && dstOffsetAt(i) != 0) - || (transition > start && dstOffsetAt(i - 1) != 0)) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - int32_t - OlsonTimeZone::getDSTSavings() const{ -@@ -602,25 +601,25 @@ OlsonTimeZone::getDSTSavings() const{ - */ - UBool OlsonTimeZone::inDaylightTime(UDate date, UErrorCode& ec) const { - int32_t raw, dst; -- getOffset(date, FALSE, raw, dst, ec); -+ getOffset(date, false, raw, dst, ec); - return dst != 0; - } - - UBool - OlsonTimeZone::hasSameRules(const TimeZone &other) const { - if (this == &other) { -- return TRUE; -+ return true; - } - const OlsonTimeZone* z = dynamic_cast(&other); - if (z == NULL) { -- return FALSE; -+ return false; - } - - // [sic] pointer comparison: typeMapData points into - // memory-mapped or DLL space, so if two zones have the same - // pointer, they are equal. - if (typeMapData == z->typeMapData) { -- return TRUE; -+ return true; - } - - // If the pointers are not equal, the zones may still -@@ -628,19 +627,19 @@ OlsonTimeZone::hasSameRules(const TimeZone &other) const { - if ((finalZone == NULL && z->finalZone != NULL) - || (finalZone != NULL && z->finalZone == NULL) - || (finalZone != NULL && z->finalZone != NULL && *finalZone != *z->finalZone)) { -- return FALSE; -+ return false; - } - - if (finalZone != NULL) { - if (finalStartYear != z->finalStartYear || finalStartMillis != z->finalStartMillis) { -- return FALSE; -+ return false; - } - } - if (typeCount != z->typeCount - || transitionCountPre32 != z->transitionCountPre32 - || transitionCount32 != z->transitionCount32 - || transitionCountPost32 != z->transitionCountPost32) { -- return FALSE; -+ return false; - } - - return -@@ -882,20 +881,20 @@ OlsonTimeZone::getNextTransition(UDate base, UBool inclusive, TimeZoneTransition - UErrorCode status = U_ZERO_ERROR; - checkTransitionRules(status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - - if (finalZone != NULL) { - if (inclusive && base == firstFinalTZTransition->getTime()) { - result = *firstFinalTZTransition; -- return TRUE; -+ return true; - } else if (base >= firstFinalTZTransition->getTime()) { - if (finalZone->useDaylightTime()) { - //return finalZone->getNextTransition(base, inclusive, result); - return finalZoneWithStartYear->getNextTransition(base, inclusive, result); - } else { - // No more transitions -- return FALSE; -+ return false; - } - } - } -@@ -912,13 +911,13 @@ OlsonTimeZone::getNextTransition(UDate base, UBool inclusive, TimeZoneTransition - if (ttidx == transCount - 1) { - if (firstFinalTZTransition != NULL) { - result = *firstFinalTZTransition; -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } else if (ttidx < firstTZTransitionIdx) { - result = *firstTZTransition; -- return TRUE; -+ return true; - } else { - // Create a TimeZoneTransition - TimeZoneRule *to = historicRules[typeMapData[ttidx + 1]]; -@@ -936,10 +935,10 @@ OlsonTimeZone::getNextTransition(UDate base, UBool inclusive, TimeZoneTransition - result.setTime(startTime); - result.adoptFrom(from->clone()); - result.adoptTo(to->clone()); -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - UBool -@@ -947,20 +946,20 @@ OlsonTimeZone::getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransi - UErrorCode status = U_ZERO_ERROR; - checkTransitionRules(status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - - if (finalZone != NULL) { - if (inclusive && base == firstFinalTZTransition->getTime()) { - result = *firstFinalTZTransition; -- return TRUE; -+ return true; - } else if (base > firstFinalTZTransition->getTime()) { - if (finalZone->useDaylightTime()) { - //return finalZone->getPreviousTransition(base, inclusive, result); - return finalZoneWithStartYear->getPreviousTransition(base, inclusive, result); - } else { - result = *firstFinalTZTransition; -- return TRUE; -+ return true; - } - } - } -@@ -976,10 +975,10 @@ OlsonTimeZone::getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransi - } - if (ttidx < firstTZTransitionIdx) { - // No more transitions -- return FALSE; -+ return false; - } else if (ttidx == firstTZTransitionIdx) { - result = *firstTZTransition; -- return TRUE; -+ return true; - } else { - // Create a TimeZoneTransition - TimeZoneRule *to = historicRules[typeMapData[ttidx]]; -@@ -997,10 +996,10 @@ OlsonTimeZone::getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransi - result.setTime(startTime); - result.adoptFrom(from->clone()); - result.adoptTo(to->clone()); -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - int32_t -diff --git a/deps/icu-small/source/i18n/olsontz.h b/deps/icu-small/source/i18n/olsontz.h -index 75d86781ed..525bbd2b12 100644 ---- a/deps/icu-small/source/i18n/olsontz.h -+++ b/deps/icu-small/source/i18n/olsontz.h -@@ -400,7 +400,7 @@ private: - TimeArrayTimeZoneRule **historicRules; - int16_t historicRuleCount; - SimpleTimeZone *finalZoneWithStartYear; // hack -- UInitOnce transitionRulesInitOnce = U_INITONCE_INITIALIZER; -+ UInitOnce transitionRulesInitOnce {}; - }; - - inline int16_t -diff --git a/deps/icu-small/source/i18n/persncal.cpp b/deps/icu-small/source/i18n/persncal.cpp -index d30577f337..9db47c9891 100644 ---- a/deps/icu-small/source/i18n/persncal.cpp -+++ b/deps/icu-small/source/i18n/persncal.cpp -@@ -110,7 +110,7 @@ int32_t PersianCalendar::handleGetLimit(UCalendarDateFields field, ELimitType li - UBool PersianCalendar::isLeapYear(int32_t year) - { - int32_t remainder; -- ClockMath::floorDivide(25 * year + 11, 33, remainder); -+ ClockMath::floorDivide(25 * year + 11, 33, &remainder); - return (remainder < 8); - } - -@@ -119,7 +119,7 @@ UBool PersianCalendar::isLeapYear(int32_t year) - * from the Persian epoch, origin 0. - */ - int32_t PersianCalendar::yearStart(int32_t year) { -- return handleComputeMonthStart(year,0,FALSE); -+ return handleComputeMonthStart(year,0,false); - } - - /** -@@ -130,7 +130,7 @@ int32_t PersianCalendar::yearStart(int32_t year) { - * @param year The Persian month, 0-based - */ - int32_t PersianCalendar::monthStart(int32_t year, int32_t month) const { -- return handleComputeMonthStart(year,month,TRUE); -+ return handleComputeMonthStart(year,month,true); - } - - //---------------------------------------------------------------------- -@@ -147,7 +147,7 @@ int32_t PersianCalendar::handleGetMonthLength(int32_t extendedYear, int32_t mont - // If the month is out of range, adjust it into range, and - // modify the extended year value accordingly. - if (month < 0 || month > 11) { -- extendedYear += ClockMath::floorDivide(month, 12, month); -+ extendedYear += ClockMath::floorDivide(month, 12, &month); - } - - return isLeapYear(extendedYear) ? kPersianLeapMonthLength[month] : kPersianMonthLength[month]; -@@ -169,7 +169,7 @@ int32_t PersianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, U - // If the month is out of range, adjust it into range, and - // modify the extended year value accordingly. - if (month < 0 || month > 11) { -- eyear += ClockMath::floorDivide(month, 12, month); -+ eyear += ClockMath::floorDivide(month, 12, &month); - } - - int32_t julianDay = PERSIAN_EPOCH - 1 + 365 * (eyear - 1) + ClockMath::floorDivide(8 * eyear + 21, 33); -@@ -238,23 +238,23 @@ PersianCalendar::inDaylightTime(UErrorCode& status) const - { - // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) -- return FALSE; -+ return false; - - // Force an update of the state of the Calendar. - ((PersianCalendar*)this)->complete(status); // cast away const - -- return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE); -+ return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : false); - } - - // default century - - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - UBool PersianCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - static void U_CALLCONV initializeSystemDefaultCentury() { -diff --git a/deps/icu-small/source/i18n/plurfmt.cpp b/deps/icu-small/source/i18n/plurfmt.cpp -index 65e275eeeb..3b8f3a660e 100644 ---- a/deps/icu-small/source/i18n/plurfmt.cpp -+++ b/deps/icu-small/source/i18n/plurfmt.cpp -@@ -434,11 +434,11 @@ int32_t PluralFormat::findSubMessage(const MessagePattern& pattern, int32_t part - // (In other words, we never call the selector if we match against an explicit value, - // or if the only non-explicit keyword is "other".) - UnicodeString keyword; -- UnicodeString other(FALSE, OTHER_STRING, 5); -+ UnicodeString other(false, OTHER_STRING, 5); - // When we find a match, we set msgStart>0 and also set this boolean to true - // to avoid matching the keyword again (duplicates are allowed) - // while we continue to look for an explicit-value match. -- UBool haveKeywordMatch=FALSE; -+ UBool haveKeywordMatch=false; - // msgStart is 0 until we find any appropriate sub-message. - // We remember the first "other" sub-message if we have not seen any - // appropriate sub-message before. -@@ -477,7 +477,7 @@ int32_t PluralFormat::findSubMessage(const MessagePattern& pattern, int32_t part - // This is the first "other" sub-message, - // and the selected keyword is also "other". - // Do not match "other" again. -- haveKeywordMatch=TRUE; -+ haveKeywordMatch=true; - } - } - } else { -@@ -486,7 +486,7 @@ int32_t PluralFormat::findSubMessage(const MessagePattern& pattern, int32_t part - if(msgStart!=0 && (0 == keyword.compare(other))) { - // We have already seen an "other" sub-message. - // Do not match "other" again. -- haveKeywordMatch=TRUE; -+ haveKeywordMatch=true; - // Skip keyword matching but do getLimitPartIndex(). - } - } -@@ -494,7 +494,7 @@ int32_t PluralFormat::findSubMessage(const MessagePattern& pattern, int32_t part - // keyword matches - msgStart=partIndex; - // Do not match this keyword again. -- haveKeywordMatch=TRUE; -+ haveKeywordMatch=true; - } - } - } -diff --git a/deps/icu-small/source/i18n/plurrule.cpp b/deps/icu-small/source/i18n/plurrule.cpp -index 7d1037f8bd..431a3ce04b 100644 ---- a/deps/icu-small/source/i18n/plurrule.cpp -+++ b/deps/icu-small/source/i18n/plurrule.cpp -@@ -26,6 +26,7 @@ - #include "hash.h" - #include "locutil.h" - #include "mutex.h" -+#include "number_decnum.h" - #include "patternprops.h" - #include "plurrule_impl.h" - #include "putilimp.h" -@@ -45,7 +46,9 @@ - U_NAMESPACE_BEGIN - - using namespace icu::pluralimpl; -+using icu::number::impl::DecNum; - using icu::number::impl::DecimalQuantity; -+using icu::number::impl::RoundingMode; - - static const UChar PLURAL_KEYWORD_OTHER[]={LOW_O,LOW_T,LOW_H,LOW_E,LOW_R,0}; - static const UChar PLURAL_DEFAULT_RULE[]={LOW_O,LOW_T,LOW_H,LOW_E,LOW_R,COLON,SPACE,LOW_N,0}; -@@ -176,7 +179,7 @@ PluralRules::createRules(const UnicodeString& description, UErrorCode& status) { - - PluralRules* U_EXPORT2 - PluralRules::createDefaultRules(UErrorCode& status) { -- return createRules(UnicodeString(TRUE, PLURAL_DEFAULT_RULE, -1), status); -+ return createRules(UnicodeString(true, PLURAL_DEFAULT_RULE, -1), status); - } - - /******************************************************************************/ -@@ -304,7 +307,7 @@ PluralRules::select(const number::FormattedNumber& number, UErrorCode& status) c - UnicodeString - PluralRules::select(const IFixedDecimal &number) const { - if (mRules == nullptr) { -- return UnicodeString(TRUE, PLURAL_DEFAULT_RULE, -1); -+ return UnicodeString(true, PLURAL_DEFAULT_RULE, -1); - } - else { - return mRules->select(number); -@@ -369,36 +372,18 @@ PluralRules::getAllKeywordValues(const UnicodeString & /* keyword */, double * / - return 0; - } - -- --static double scaleForInt(double d) { -- double scale = 1.0; -- while (d != floor(d)) { -- d = d * 10.0; -- scale = scale * 10.0; -- } -- return scale; --} -- --static const double powers10[7] = {1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0}; // powers of 10 for 0..6 --static double applyExponent(double source, int32_t exponent) { -- if (exponent >= 0 && exponent <= 6) { -- return source * powers10[exponent]; -- } -- return source * pow(10.0, exponent); --} -- - /** -- * Helper method for the overrides of getSamples() for double and FixedDecimal -- * return value types. Provide only one of an allocated array of doubles or -- * FixedDecimals, and a nullptr for the other. -+ * Helper method for the overrides of getSamples() for double and DecimalQuantity -+ * return value types. Provide only one of an allocated array of double or -+ * DecimalQuantity, and a nullptr for the other. - */ - static int32_t - getSamplesFromString(const UnicodeString &samples, double *destDbl, -- FixedDecimal* destFd, int32_t destCapacity, -+ DecimalQuantity* destDq, int32_t destCapacity, - UErrorCode& status) { - -- if ((destDbl == nullptr && destFd == nullptr) -- || (destDbl != nullptr && destFd != nullptr)) { -+ if ((destDbl == nullptr && destDq == nullptr) -+ || (destDbl != nullptr && destDq != nullptr)) { - status = U_INTERNAL_PROGRAM_ERROR; - return 0; - } -@@ -420,58 +405,75 @@ getSamplesFromString(const UnicodeString &samples, double *destDbl, - // std::cout << "PluralRules::getSamples(), samplesRange = \"" << sampleRange.toUTF8String(ss) << "\"\n"; - int32_t tildeIndex = sampleRange.indexOf(TILDE); - if (tildeIndex < 0) { -- FixedDecimal fixed(sampleRange, status); -+ DecimalQuantity dq = DecimalQuantity::fromExponentString(sampleRange, status); - if (isDouble) { -- double sampleValue = fixed.source; -- if (fixed.visibleDecimalDigitCount == 0 || sampleValue != floor(sampleValue)) { -- destDbl[sampleCount++] = applyExponent(sampleValue, fixed.exponent); -+ // See warning note below about lack of precision for floating point samples for numbers with -+ // trailing zeroes in the decimal fraction representation. -+ double dblValue = dq.toDouble(); -+ if (!(dblValue == floor(dblValue) && dq.fractionCount() > 0)) { -+ destDbl[sampleCount++] = dblValue; - } - } else { -- destFd[sampleCount++] = fixed; -+ destDq[sampleCount++] = dq; - } - } else { -- FixedDecimal fixedLo(sampleRange.tempSubStringBetween(0, tildeIndex), status); -- FixedDecimal fixedHi(sampleRange.tempSubStringBetween(tildeIndex+1), status); -- double rangeLo = fixedLo.source; -- double rangeHi = fixedHi.source; -+ DecimalQuantity rangeLo = -+ DecimalQuantity::fromExponentString(sampleRange.tempSubStringBetween(0, tildeIndex), status); -+ DecimalQuantity rangeHi = DecimalQuantity::fromExponentString(sampleRange.tempSubStringBetween(tildeIndex+1), status); - if (U_FAILURE(status)) { - break; - } -- if (rangeHi < rangeLo) { -+ if (rangeHi.toDouble() < rangeLo.toDouble()) { - status = U_INVALID_FORMAT_ERROR; - break; - } - -- // For ranges of samples with fraction decimal digits, scale the number up so that we -- // are adding one in the units place. Avoids roundoffs from repetitive adds of tenths. -+ DecimalQuantity incrementDq; -+ incrementDq.setToInt(1); -+ int32_t lowerDispMag = rangeLo.getLowerDisplayMagnitude(); -+ int32_t exponent = rangeLo.getExponent(); -+ int32_t incrementScale = lowerDispMag + exponent; -+ incrementDq.adjustMagnitude(incrementScale); -+ double incrementVal = incrementDq.toDouble(); // 10 ^ incrementScale -+ - -- double scale = scaleForInt(rangeLo); -- double t = scaleForInt(rangeHi); -- if (t > scale) { -- scale = t; -- } -- rangeLo *= scale; -- rangeHi *= scale; -- for (double n=rangeLo; n<=rangeHi; n+=1) { -- double sampleValue = n/scale; -+ DecimalQuantity dq(rangeLo); -+ double dblValue = dq.toDouble(); -+ double end = rangeHi.toDouble(); -+ -+ while (dblValue <= end) { - if (isDouble) { - // Hack Alert: don't return any decimal samples with integer values that - // originated from a format with trailing decimals. - // This API is returning doubles, which can't distinguish having displayed - // zeros to the right of the decimal. - // This results in test failures with values mapping back to a different keyword. -- if (!(sampleValue == floor(sampleValue) && fixedLo.visibleDecimalDigitCount > 0)) { -- destDbl[sampleCount++] = sampleValue; -+ if (!(dblValue == floor(dblValue) && dq.fractionCount() > 0)) { -+ destDbl[sampleCount++] = dblValue; - } - } else { -- int32_t v = (int32_t) fixedLo.getPluralOperand(PluralOperand::PLURAL_OPERAND_V); -- int32_t e = (int32_t) fixedLo.getPluralOperand(PluralOperand::PLURAL_OPERAND_E); -- FixedDecimal newSample = FixedDecimal::createWithExponent(sampleValue, v, e); -- destFd[sampleCount++] = newSample; -+ destDq[sampleCount++] = dq; - } - if (sampleCount >= destCapacity) { - break; - } -+ -+ // Increment dq for next iteration -+ -+ // Because DecNum and DecimalQuantity do not support -+ // add operations, we need to convert to/from double, -+ // despite precision lossiness for decimal fractions like 0.1. -+ dblValue += incrementVal; -+ DecNum newDqDecNum; -+ newDqDecNum.setTo(dblValue, status); -+ DecimalQuantity newDq; -+ newDq.setToDecNum(newDqDecNum, status); -+ newDq.setMinFraction(-lowerDispMag); -+ newDq.roundToMagnitude(lowerDispMag, RoundingMode::UNUM_ROUND_HALFEVEN, status); -+ newDq.adjustMagnitude(-exponent); -+ newDq.adjustExponent(exponent); -+ dblValue = newDq.toDouble(); -+ dq = newDq; - } - } - sampleStartIdx = sampleEndIdx + 1; -@@ -505,7 +507,7 @@ PluralRules::getSamples(const UnicodeString &keyword, double *dest, - } - - int32_t --PluralRules::getSamples(const UnicodeString &keyword, FixedDecimal *dest, -+PluralRules::getSamples(const UnicodeString &keyword, DecimalQuantity *dest, - int32_t destCapacity, UErrorCode& status) { - if (U_FAILURE(status)) { - return 0; -@@ -552,7 +554,7 @@ PluralRules::isKeyword(const UnicodeString& keyword) const { - - UnicodeString - PluralRules::getKeywordOther() const { -- return UnicodeString(TRUE, PLURAL_KEYWORD_OTHER, 5); -+ return UnicodeString(true, PLURAL_KEYWORD_OTHER, 5); - } - - bool -@@ -639,11 +641,11 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr - break; - case tNot: - U_ASSERT(curAndConstraint != nullptr); -- curAndConstraint->negated=TRUE; -+ curAndConstraint->negated=true; - break; - - case tNotEqual: -- curAndConstraint->negated=TRUE; -+ curAndConstraint->negated=true; - U_FALLTHROUGH; - case tIn: - case tWithin: -@@ -759,7 +761,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr - break; - } - if (type == tEllipsis) { -- currentChain->fIntegerSamplesUnbounded = TRUE; -+ currentChain->fIntegerSamplesUnbounded = true; - continue; - } - currentChain->fIntegerSamples.append(token); -@@ -773,7 +775,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr - break; - } - if (type == tEllipsis) { -- currentChain->fDecimalSamplesUnbounded = TRUE; -+ currentChain->fDecimalSamplesUnbounded = true; - continue; - } - currentChain->fDecimalSamples.append(token); -@@ -917,10 +919,10 @@ AndConstraint::~AndConstraint() { - - UBool - AndConstraint::isFulfilled(const IFixedDecimal &number) { -- UBool result = TRUE; -+ UBool result = true; - if (digitsType == none) { - // An empty AndConstraint, created by a rule with a keyword but no following expression. -- return TRUE; -+ return true; - } - - PluralOperand operand = tokenTypeToPluralOperand(digitsType); -@@ -929,7 +931,7 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) { - // May be non-integer (n option only) - do { - if (integerOnly && n != uprv_floor(n)) { -- result = FALSE; -+ result = false; - break; - } - -@@ -941,14 +943,14 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) { - n == value; // 'is' rule - break; - } -- result = FALSE; // 'in' or 'within' rule -+ result = false; // 'in' or 'within' rule - for (int32_t r=0; rsize(); r+=2) { - if (rangeList->elementAti(r) <= n && n <= rangeList->elementAti(r+1)) { -- result = TRUE; -+ result = true; - break; - } - } -- } while (FALSE); -+ } while (false); - - if (negated) { - result = !result; -@@ -1024,10 +1026,10 @@ OrConstraint::add(UErrorCode& status) { - UBool - OrConstraint::isFulfilled(const IFixedDecimal &number) { - OrConstraint* orRule=this; -- UBool result=FALSE; -+ UBool result=false; - - while (orRule!=nullptr && !result) { -- result=TRUE; -+ result=true; - AndConstraint* andRule = orRule->childNode; - while (andRule!=nullptr && result) { - result = andRule->isFulfilled(number); -@@ -1084,7 +1086,7 @@ RuleChain::select(const IFixedDecimal &number) const { - } - } - } -- return UnicodeString(TRUE, PLURAL_KEYWORD_OTHER, 5); -+ return UnicodeString(true, PLURAL_KEYWORD_OTHER, 5); - } - - static UnicodeString tokenString(tokenType tok) { -@@ -1223,14 +1225,14 @@ RuleChain::getKeywords(int32_t capacityOfKeywords, UnicodeString* keywords, int3 - UBool - RuleChain::isKeyword(const UnicodeString& keywordParam) const { - if ( fKeyword == keywordParam ) { -- return TRUE; -+ return true; - } - - if ( fNext != nullptr ) { - return fNext->isKeyword(keywordParam); - } - else { -- return FALSE; -+ return false; - } - } - -@@ -1545,7 +1547,7 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode - return; - } - fKeywordNames.setDeleter(uprv_deleteUObject); -- UBool addKeywordOther = TRUE; -+ UBool addKeywordOther = true; - RuleChain *node = header; - while (node != nullptr) { - LocalPointer newElem(node->fKeyword.clone(), status); -@@ -1554,7 +1556,7 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode - return; - } - if (0 == node->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5)) { -- addKeywordOther = FALSE; -+ addKeywordOther = false; - } - node = node->fNext; - } -@@ -1751,7 +1753,7 @@ void FixedDecimal::init(double n, int32_t v, int64_t f, int32_t e, int32_t c) { - v = 0; - f = 0; - intValue = 0; -- _hasIntegerValue = FALSE; -+ _hasIntegerValue = false; - } else { - intValue = (int64_t)source; - _hasIntegerValue = (source == intValue); -@@ -1777,13 +1779,13 @@ void FixedDecimal::init(double n, int32_t v, int64_t f, int32_t e, int32_t c) { - // A single multiply of the original number works more reliably. - static int32_t p10[] = {1, 10, 100, 1000, 10000}; - UBool FixedDecimal::quickInit(double n) { -- UBool success = FALSE; -+ UBool success = false; - n = fabs(n); - int32_t numFractionDigits; - for (numFractionDigits = 0; numFractionDigits <= 3; numFractionDigits++) { - double scaledN = n * p10[numFractionDigits]; - if (scaledN == floor(scaledN)) { -- success = TRUE; -+ success = true; - break; - } - } -diff --git a/deps/icu-small/source/i18n/plurrule_impl.h b/deps/icu-small/source/i18n/plurrule_impl.h -index 7274da58f0..c27b655fcd 100644 ---- a/deps/icu-small/source/i18n/plurrule_impl.h -+++ b/deps/icu-small/source/i18n/plurrule_impl.h -@@ -34,7 +34,7 @@ - * A FixedDecimal version of UPLRULES_NO_UNIQUE_VALUE used in PluralRulesTest - * for parsing of samples. - */ --#define UPLRULES_NO_UNIQUE_VALUE_DECIMAL (FixedDecimal((double)-0.00123456777)) -+#define UPLRULES_NO_UNIQUE_VALUE_DECIMAL(ERROR_CODE) (DecimalQuantity::fromExponentString(u"-0.00123456777", ERROR_CODE)) - - class PluralRulesTest; - -diff --git a/deps/icu-small/source/i18n/quantityformatter.cpp b/deps/icu-small/source/i18n/quantityformatter.cpp -index 9c9aa99b67..7b4d51e803 100644 ---- a/deps/icu-small/source/i18n/quantityformatter.cpp -+++ b/deps/icu-small/source/i18n/quantityformatter.cpp -@@ -81,22 +81,22 @@ UBool QuantityFormatter::addIfAbsent( - UErrorCode &status) { - int32_t pluralIndex = StandardPlural::indexFromString(variant, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (formatters[pluralIndex] != NULL) { -- return TRUE; -+ return true; - } - SimpleFormatter *newFmt = new SimpleFormatter(rawPattern, 0, 1, status); - if (newFmt == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - if (U_FAILURE(status)) { - delete newFmt; -- return FALSE; -+ return false; - } - formatters[pluralIndex] = newFmt; -- return TRUE; -+ return true; - } - - UBool QuantityFormatter::isValid() const { -diff --git a/deps/icu-small/source/i18n/rbnf.cpp b/deps/icu-small/source/i18n/rbnf.cpp -index 7f54fd7a33..3d0da00bdb 100644 ---- a/deps/icu-small/source/i18n/rbnf.cpp -+++ b/deps/icu-small/source/i18n/rbnf.cpp -@@ -119,16 +119,16 @@ LocalizationInfo::~LocalizationInfo() {} - - //UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION(LocalizationInfo) - --// if both strings are NULL, this returns TRUE -+// if both strings are NULL, this returns true - static UBool - streq(const UChar* lhs, const UChar* rhs) { - if (rhs == lhs) { -- return TRUE; -+ return true; - } - if (lhs && rhs) { - return u_strcmp(lhs, rhs) == 0; - } -- return FALSE; -+ return false; - } - - bool -@@ -325,9 +325,9 @@ private: - inline UBool checkInc(UChar c) { - if (p < e && (ch == c || *p == c)) { - inc(); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - inline UBool check(UChar c) { - return p < e && (ch == c || *p == c); -@@ -339,7 +339,7 @@ private: - } - inline UBool inList(UChar c, const UChar* list) const { - if (*list == SPACE && PatternProps::isWhiteSpace(c)) { -- return TRUE; -+ return true; - } - while (*list && *list != c) { - ++list; -@@ -425,10 +425,10 @@ LocDataParser::doParse(void) { - ERROR("Missing open angle"); - } else { - VArray array(DeleteFn); -- UBool mightHaveNext = TRUE; -+ UBool mightHaveNext = true; - int32_t requiredLength = -1; - while (mightHaveNext) { -- mightHaveNext = FALSE; -+ mightHaveNext = false; - UChar** elem = nextArray(requiredLength); - skipWhitespace(); - UBool haveComma = check(COMMA); -@@ -436,7 +436,7 @@ LocDataParser::doParse(void) { - array.add(elem, ec); - if (haveComma) { - inc(); -- mightHaveNext = TRUE; -+ mightHaveNext = true; - } - } else if (haveComma) { - ERROR("Unexpected character"); -@@ -481,9 +481,9 @@ LocDataParser::nextArray(int32_t& requiredLength) { - } - - VArray array; -- UBool mightHaveNext = TRUE; -+ UBool mightHaveNext = true; - while (mightHaveNext) { -- mightHaveNext = FALSE; -+ mightHaveNext = false; - UChar* elem = nextString(); - skipWhitespace(); - UBool haveComma = check(COMMA); -@@ -491,7 +491,7 @@ LocDataParser::nextArray(int32_t& requiredLength) { - array.add(elem, ec); - if (haveComma) { - inc(); -- mightHaveNext = TRUE; -+ mightHaveNext = true; - } - } else if (haveComma) { - ERROR("Unexpected comma"); -@@ -696,12 +696,12 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, - , defaultInfinityRule(NULL) - , defaultNaNRule(NULL) - , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary) -- , lenient(FALSE) -+ , lenient(false) - , lenientParseRules(NULL) - , localizations(NULL) -- , capitalizationInfoSet(FALSE) -- , capitalizationForUIListMenu(FALSE) -- , capitalizationForStandAlone(FALSE) -+ , capitalizationInfoSet(false) -+ , capitalizationForUIListMenu(false) -+ , capitalizationForStandAlone(false) - , capitalizationBrkIter(NULL) - { - LocalizationInfo* locinfo = StringLocalizationInfo::create(locs, perror, status); -@@ -721,12 +721,12 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, - , defaultInfinityRule(NULL) - , defaultNaNRule(NULL) - , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary) -- , lenient(FALSE) -+ , lenient(false) - , lenientParseRules(NULL) - , localizations(NULL) -- , capitalizationInfoSet(FALSE) -- , capitalizationForUIListMenu(FALSE) -- , capitalizationForStandAlone(FALSE) -+ , capitalizationInfoSet(false) -+ , capitalizationForUIListMenu(false) -+ , capitalizationForStandAlone(false) - , capitalizationBrkIter(NULL) - { - LocalizationInfo* locinfo = StringLocalizationInfo::create(locs, perror, status); -@@ -746,12 +746,12 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, - , defaultInfinityRule(NULL) - , defaultNaNRule(NULL) - , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary) -- , lenient(FALSE) -+ , lenient(false) - , lenientParseRules(NULL) - , localizations(NULL) -- , capitalizationInfoSet(FALSE) -- , capitalizationForUIListMenu(FALSE) -- , capitalizationForStandAlone(FALSE) -+ , capitalizationInfoSet(false) -+ , capitalizationForUIListMenu(false) -+ , capitalizationForStandAlone(false) - , capitalizationBrkIter(NULL) - { - init(description, info, perror, status); -@@ -770,12 +770,12 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, - , defaultInfinityRule(NULL) - , defaultNaNRule(NULL) - , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary) -- , lenient(FALSE) -+ , lenient(false) - , lenientParseRules(NULL) - , localizations(NULL) -- , capitalizationInfoSet(FALSE) -- , capitalizationForUIListMenu(FALSE) -- , capitalizationForStandAlone(FALSE) -+ , capitalizationInfoSet(false) -+ , capitalizationForUIListMenu(false) -+ , capitalizationForStandAlone(false) - , capitalizationBrkIter(NULL) - { - init(description, NULL, perror, status); -@@ -795,12 +795,12 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, - , defaultInfinityRule(NULL) - , defaultNaNRule(NULL) - , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary) -- , lenient(FALSE) -+ , lenient(false) - , lenientParseRules(NULL) - , localizations(NULL) -- , capitalizationInfoSet(FALSE) -- , capitalizationForUIListMenu(FALSE) -- , capitalizationForStandAlone(FALSE) -+ , capitalizationInfoSet(false) -+ , capitalizationForUIListMenu(false) -+ , capitalizationForStandAlone(false) - , capitalizationBrkIter(NULL) - { - init(description, NULL, perror, status); -@@ -817,12 +817,12 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale& - , defaultInfinityRule(NULL) - , defaultNaNRule(NULL) - , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary) -- , lenient(FALSE) -+ , lenient(false) - , lenientParseRules(NULL) - , localizations(NULL) -- , capitalizationInfoSet(FALSE) -- , capitalizationForUIListMenu(FALSE) -- , capitalizationForStandAlone(FALSE) -+ , capitalizationInfoSet(false) -+ , capitalizationForUIListMenu(false) -+ , capitalizationForStandAlone(false) - , capitalizationBrkIter(NULL) - { - if (U_FAILURE(status)) { -@@ -884,12 +884,12 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs) - , defaultInfinityRule(NULL) - , defaultNaNRule(NULL) - , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary) -- , lenient(FALSE) -+ , lenient(false) - , lenientParseRules(NULL) - , localizations(NULL) -- , capitalizationInfoSet(FALSE) -- , capitalizationForUIListMenu(FALSE) -- , capitalizationForStandAlone(FALSE) -+ , capitalizationInfoSet(false) -+ , capitalizationForUIListMenu(false) -+ , capitalizationForStandAlone(false) - , capitalizationBrkIter(NULL) - { - this->operator=(rhs); -@@ -990,7 +990,7 @@ UnicodeString - RuleBasedNumberFormat::getRuleSetName(int32_t index) const - { - if (localizations) { -- UnicodeString string(TRUE, localizations->getRuleSetName(index), (int32_t)-1); -+ UnicodeString string(true, localizations->getRuleSetName(index), (int32_t)-1); - return string; - } - else if (fRuleSets) { -@@ -1040,7 +1040,7 @@ RuleBasedNumberFormat::getRuleSetDisplayNameLocale(int32_t index, UErrorCode& st - return Locale(""); - } - if (localizations && index >= 0 && index < localizations->getNumberOfDisplayLocales()) { -- UnicodeString name(TRUE, localizations->getLocaleName(index), -1); -+ UnicodeString name(true, localizations->getLocaleName(index), -1); - char buffer[64]; - int32_t cap = name.length() + 1; - char* bp = buffer; -@@ -1073,7 +1073,7 @@ RuleBasedNumberFormat::getRuleSetDisplayName(int32_t index, const Locale& locale - localeStr[len] = 0; - int32_t ix = localizations->indexForLocale(localeStr); - if (ix >= 0) { -- UnicodeString name(TRUE, localizations->getDisplayName(ix, index), -1); -+ UnicodeString name(true, localizations->getDisplayName(ix, index), -1); - return name; - } - -@@ -1081,7 +1081,7 @@ RuleBasedNumberFormat::getRuleSetDisplayName(int32_t index, const Locale& locale - do { --len;} while (len > 0 && localeStr[len] != 0x005f); // underscore - while (len > 0 && localeStr[len-1] == 0x005F) --len; - } -- UnicodeString name(TRUE, localizations->getRuleSetName(index), -1); -+ UnicodeString name(true, localizations->getRuleSetName(index), -1); - return name; - } - UnicodeString bogus; -@@ -1413,7 +1413,7 @@ RuleBasedNumberFormat::setDefaultRuleSet(const UnicodeString& ruleSetName, UErro - if (U_SUCCESS(status)) { - if (ruleSetName.isEmpty()) { - if (localizations) { -- UnicodeString name(TRUE, localizations->getRuleSetName(0), -1); -+ UnicodeString name(true, localizations->getRuleSetName(0), -1); - defaultRuleSet = findRuleSet(name, status); - } else { - initDefaultRuleSet(); -@@ -1636,7 +1636,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali - // confirm the names, if any aren't in the rules, that's an error - // it is ok if the rules contain public rule sets that are not in this list - for (int32_t i = 0; i < localizationInfos->getNumberOfRuleSets(); ++i) { -- UnicodeString name(TRUE, localizationInfos->getRuleSetName(i), -1); -+ UnicodeString name(true, localizationInfos->getRuleSetName(i), -1); - NFRuleSet* rs = findRuleSet(name, status); - if (rs == NULL) { - break; // error -@@ -1661,7 +1661,7 @@ RuleBasedNumberFormat::setContext(UDisplayContext value, UErrorCode& status) - if (!capitalizationInfoSet && - (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE)) { - initCapitalizationContextInfo(locale); -- capitalizationInfoSet = TRUE; -+ capitalizationInfoSet = true; - } - #if !UCONFIG_NO_BREAK_ITERATION - if ( capitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE || -diff --git a/deps/icu-small/source/i18n/rbt.cpp b/deps/icu-small/source/i18n/rbt.cpp -index 1de53e6071..86d6cbd8bd 100644 ---- a/deps/icu-small/source/i18n/rbt.cpp -+++ b/deps/icu-small/source/i18n/rbt.cpp -@@ -34,7 +34,7 @@ void RuleBasedTransliterator::_construct(const UnicodeString& rules, - UParseError& parseError, - UErrorCode& status) { - fData = 0; -- isDataOwned = TRUE; -+ isDataOwned = true; - if (U_FAILURE(status)) { - return; - } -@@ -143,7 +143,7 @@ RuleBasedTransliterator::RuleBasedTransliterator(const UnicodeString& id, - UnicodeFilter* adoptedFilter) : - Transliterator(id, adoptedFilter), - fData((TransliterationRuleData*)theData), // cast away const -- isDataOwned(FALSE) { -+ isDataOwned(false) { - setMaximumContextLength(fData->ruleSet.getMaximumContextLength()); - } - -@@ -241,7 +241,7 @@ RuleBasedTransliterator::handleTransliterate(Replaceable& text, UTransPosition& - // Double-locking must be prevented in these cases. - // - -- UBool lockedMutexAtThisLevel = FALSE; -+ UBool lockedMutexAtThisLevel = false; - - // Test whether this request is operating on the same text string as - // some other transliteration that is still in progress and holding the -@@ -263,7 +263,7 @@ RuleBasedTransliterator::handleTransliterate(Replaceable& text, UTransPosition& - umtx_lock(&transliteratorDataMutex); // Contention, longish waits possible here. - Mutex m; - gLockedText = &text; -- lockedMutexAtThisLevel = TRUE; -+ lockedMutexAtThisLevel = true; - } - - // Check to make sure we don't dereference a null pointer. -@@ -292,14 +292,14 @@ UnicodeString& RuleBasedTransliterator::toRules(UnicodeString& rulesSource, - * Implement Transliterator framework - */ - void RuleBasedTransliterator::handleGetSourceSet(UnicodeSet& result) const { -- fData->ruleSet.getSourceTargetSet(result, FALSE); -+ fData->ruleSet.getSourceTargetSet(result, false); - } - - /** - * Override Transliterator framework - */ - UnicodeSet& RuleBasedTransliterator::getTargetSet(UnicodeSet& result) const { -- return fData->ruleSet.getSourceTargetSet(result, TRUE); -+ return fData->ruleSet.getSourceTargetSet(result, true); - } - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/rbt_data.cpp b/deps/icu-small/source/i18n/rbt_data.cpp -index f3985fc768..866f0c2bfa 100644 ---- a/deps/icu-small/source/i18n/rbt_data.cpp -+++ b/deps/icu-small/source/i18n/rbt_data.cpp -@@ -25,7 +25,7 @@ U_NAMESPACE_BEGIN - - TransliterationRuleData::TransliterationRuleData(UErrorCode& status) - : UMemory(), ruleSet(status), variableNames(status), -- variables(0), variablesAreOwned(TRUE) -+ variables(0), variablesAreOwned(true) - { - if (U_FAILURE(status)) { - return; -@@ -37,7 +37,7 @@ TransliterationRuleData::TransliterationRuleData(UErrorCode& status) - - TransliterationRuleData::TransliterationRuleData(const TransliterationRuleData& other) : - UMemory(other), ruleSet(other.ruleSet), -- variablesAreOwned(TRUE), -+ variablesAreOwned(true), - variablesBase(other.variablesBase), - variablesLength(other.variablesLength) - { -diff --git a/deps/icu-small/source/i18n/rbt_pars.cpp b/deps/icu-small/source/i18n/rbt_pars.cpp -index 2f207a8deb..f13bf1c227 100644 ---- a/deps/icu-small/source/i18n/rbt_pars.cpp -+++ b/deps/icu-small/source/i18n/rbt_pars.cpp -@@ -233,7 +233,7 @@ UBool ParseData::isMatcher(UChar32 ch) { - UnicodeFunctor *f = (UnicodeFunctor*) variablesVector->elementAt(i); - return f != NULL && f->toMatcher() != NULL; - } -- return TRUE; -+ return true; - } - - /** -@@ -248,7 +248,7 @@ UBool ParseData::isReplacer(UChar32 ch) { - UnicodeFunctor *f = (UnicodeFunctor*) variablesVector->elementAt(i); - return f != NULL && f->toReplacer() != NULL; - } -- return TRUE; -+ return true; - } - - //---------------------------------------------------------------------- -@@ -348,7 +348,7 @@ RuleHalf::RuleHalf(TransliteratorParser& p) : - post = -1; - cursorOffset = 0; - cursorOffsetPos = 0; -- anchorStart = anchorEnd = FALSE; -+ anchorStart = anchorEnd = false; - nextSegmentNumber = 1; - } - -@@ -364,7 +364,7 @@ RuleHalf::~RuleHalf() { - int32_t RuleHalf::parse(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status) { - int32_t start = pos; - text.truncate(0); -- pos = parseSection(rule, pos, limit, text, UnicodeString(TRUE, ILLEGAL_TOP, -1), FALSE, status); -+ pos = parseSection(rule, pos, limit, text, UnicodeString(true, ILLEGAL_TOP, -1), false, status); - - if (cursorOffset > 0 && cursor != cursorOffsetPos) { - return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start, status); -@@ -403,7 +403,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l - int32_t start = pos; - ParsePosition pp; - UnicodeString scratch; -- UBool done = FALSE; -+ UBool done = false; - int32_t quoteStart = -1; // Most recent 'single quoted string' - int32_t quoteLimit = -1; - int32_t varStart = -1; // Most recent $variableReference -@@ -511,7 +511,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l - //------------------------------------------------------ - case ANCHOR_START: - if (buf.length() == 0 && !anchorStart) { -- anchorStart = TRUE; -+ anchorStart = true; - } else { - return syntaxError(U_MISPLACED_ANCHOR_START, - rule, start, status); -@@ -529,7 +529,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l - int32_t segmentNumber = nextSegmentNumber++; // 1-based - - // Parse the segment -- pos = parseSection(rule, pos, limit, buf, UnicodeString(TRUE, ILLEGAL_SEG, -1), TRUE, status); -+ pos = parseSection(rule, pos, limit, buf, UnicodeString(true, ILLEGAL_SEG, -1), true, status); - - // After parsing a segment, the relevant characters are - // in buf, starting at offset bufSegStart. Extract them -@@ -571,7 +571,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l - int32_t bufSegStart = buf.length(); - - // Parse the segment -- pos = parseSection(rule, iref, limit, buf, UnicodeString(TRUE, ILLEGAL_FUNC, -1), TRUE, status); -+ pos = parseSection(rule, iref, limit, buf, UnicodeString(true, ILLEGAL_FUNC, -1), true, status); - - // After parsing a segment, the relevant characters are - // in buf, starting at offset bufSegStart. -@@ -598,7 +598,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l - if (pos == limit) { - // A variable ref character at the end acts as - // an anchor to the context limit, as in perl. -- anchorEnd = TRUE; -+ anchorEnd = true; - break; - } - // Parse "$1" "$2" .. "$9" .. (no upper limit) -@@ -621,7 +621,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l - // end anchor then. If this also doesn't work - // (if we see a following character) then signal - // an error. -- anchorEnd = TRUE; -+ anchorEnd = true; - break; - } - pos = pp.getIndex(); -@@ -704,7 +704,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l - case SEGMENT_CLOSE: - // assert(isSegment); - // We're done parsing a segment. -- done = TRUE; -+ done = true; - break; - - //------------------------------------------------------ -@@ -786,7 +786,7 @@ void RuleHalf::removeContext() { - text.removeBetween(0, ante); - } - ante = post = -1; -- anchorStart = anchorEnd = FALSE; -+ anchorStart = anchorEnd = false; - } - - /** -@@ -798,10 +798,10 @@ UBool RuleHalf::isValidOutput(TransliteratorParser& transParser) { - UChar32 c = text.char32At(i); - i += U16_LENGTH(c); - if (!transParser.parseData->isReplacer(c)) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - /** -@@ -813,10 +813,10 @@ UBool RuleHalf::isValidInput(TransliteratorParser& transParser) { - UChar32 c = text.char32At(i); - i += U16_LENGTH(c); - if (!transParser.parseData->isMatcher(c)) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - //---------------------------------------------------------------------- -@@ -891,7 +891,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, - uprv_memset(&parseError, 0, sizeof(parseError)); - parseError.line = parseError.offset = -1; - -- UBool parsingIDs = TRUE; -+ UBool parsingIDs = true; - int32_t ruleCount = 0; - - while (!dataVector.isEmpty()) { -@@ -985,7 +985,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, - } - curData = NULL; - } -- parsingIDs = TRUE; -+ parsingIDs = true; - } - - TransliteratorIDParser::SingleID* id = -@@ -1044,7 +1044,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, - return; - } - idBlockResult.remove(); -- parsingIDs = FALSE; -+ parsingIDs = false; - curData = new TransliterationRuleData(status); - // NULL pointer check - if (curData == NULL) { -@@ -1177,7 +1177,7 @@ void TransliteratorParser::setVariableRange(int32_t start, int32_t end, UErrorCo - - /** - * Assert that the given character is NOT within the variable range. -- * If it is, return FALSE. This is necessary to ensure that the -+ * If it is, return false. This is necessary to ensure that the - * variable range does not overlap characters used in a rule. - */ - UBool TransliteratorParser::checkVariableRange(UChar32 ch) const { -@@ -1218,7 +1218,7 @@ static const UChar PRAGMA_NFC_RULES[] = {0x7E,0x6E,0x66,0x63,0x20,0x72,0x75,0x6C - */ - UBool TransliteratorParser::resemblesPragma(const UnicodeString& rule, int32_t pos, int32_t limit) { - // Must start with /use\s/i -- return ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_USE, 4), NULL) >= 0; -+ return ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(true, PRAGMA_USE, 4), NULL) >= 0; - } - - /** -@@ -1243,25 +1243,25 @@ int32_t TransliteratorParser::parsePragma(const UnicodeString& rule, int32_t pos - // use maximum backup 16; - // use nfd rules; - // use nfc rules; -- int p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_VARIABLE_RANGE, -1), array); -+ int p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(true, PRAGMA_VARIABLE_RANGE, -1), array); - if (p >= 0) { - setVariableRange(array[0], array[1], status); - return p; - } - -- p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_MAXIMUM_BACKUP, -1), array); -+ p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(true, PRAGMA_MAXIMUM_BACKUP, -1), array); - if (p >= 0) { - pragmaMaximumBackup(array[0]); - return p; - } - -- p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_NFD_RULES, -1), NULL); -+ p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(true, PRAGMA_NFD_RULES, -1), NULL); - if (p >= 0) { - pragmaNormalizeRules(UNORM_NFD); - return p; - } - -- p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_NFC_RULES, -1), NULL); -+ p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(true, PRAGMA_NFC_RULES, -1), NULL); - if (p >= 0) { - pragmaNormalizeRules(UNORM_NFC); - return p; -@@ -1620,7 +1620,7 @@ void TransliteratorParser::setSegmentObject(int32_t seg, StringMatcher* adopted, - */ - UChar TransliteratorParser::getDotStandIn(UErrorCode& status) { - if (dotStandIn == (UChar) -1) { -- UnicodeSet* tempus = new UnicodeSet(UnicodeString(TRUE, DOT_SET, -1), status); -+ UnicodeSet* tempus = new UnicodeSet(UnicodeString(true, DOT_SET, -1), status); - // Null pointer check. - if (tempus == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -@@ -1681,7 +1681,7 @@ utrans_stripRules(const UChar *source, int32_t sourceLen, UChar *target, UErrorC - const UChar *sourceLimit = source+sourceLen; - UChar *targetLimit = target+sourceLen; - UChar32 c = 0; -- UBool quoted = FALSE; -+ UBool quoted = false; - int32_t index; - - uprv_memset(target, 0, sourceLen*U_SIZEOF_UCHAR); -@@ -1748,7 +1748,7 @@ utrans_stripRules(const UChar *source, int32_t sourceLen, UChar *target, UErrorC - /* ignore spaces carriage returns, and all leading spaces on the next line. - * and line feed unless in the form \uXXXX - */ -- quoted = FALSE; -+ quoted = false; - while (source < sourceLimit) { - c = *(source); - if (c != CR && c != LF && c != 0x0020) { -diff --git a/deps/icu-small/source/i18n/rbt_rule.cpp b/deps/icu-small/source/i18n/rbt_rule.cpp -index 6cc5325c46..ee0d938ca9 100644 ---- a/deps/icu-small/source/i18n/rbt_rule.cpp -+++ b/deps/icu-small/source/i18n/rbt_rule.cpp -@@ -50,9 +50,9 @@ U_NAMESPACE_BEGIN - * segments, or null if there are none. The array itself is adopted, - * but the pointers within it are not. - * @param segsCount number of elements in segs[] -- * @param anchorStart TRUE if the the rule is anchored on the left to -+ * @param anchorStart true if the the rule is anchored on the left to - * the context start -- * @param anchorEnd TRUE if the rule is anchored on the right to the -+ * @param anchorEnd true if the rule is anchored on the right to the - * context limit - */ - TransliterationRule::TransliterationRule(const UnicodeString& input, -@@ -119,7 +119,7 @@ TransliterationRule::TransliterationRule(const UnicodeString& input, - anteContext = NULL; - if (anteContextLength > 0) { - anteContext = new StringMatcher(pattern, 0, anteContextLength, -- FALSE, *data); -+ false, *data); - /* test for NULL */ - if (anteContext == 0) { - status = U_MEMORY_ALLOCATION_ERROR; -@@ -130,7 +130,7 @@ TransliterationRule::TransliterationRule(const UnicodeString& input, - key = NULL; - if (keyLength > 0) { - key = new StringMatcher(pattern, anteContextLength, anteContextLength + keyLength, -- FALSE, *data); -+ false, *data); - /* test for NULL */ - if (key == 0) { - status = U_MEMORY_ALLOCATION_ERROR; -@@ -142,7 +142,7 @@ TransliterationRule::TransliterationRule(const UnicodeString& input, - postContext = NULL; - if (postContextLength > 0) { - postContext = new StringMatcher(pattern, anteContextLength + keyLength, pattern.length(), -- FALSE, *data); -+ false, *data); - /* test for NULL */ - if (postContext == 0) { - status = U_MEMORY_ALLOCATION_ERROR; -@@ -242,7 +242,7 @@ UBool TransliterationRule::matchesIndexValue(uint8_t v) const { - // Delegate to the key, or if there is none, to the postContext. - // If there is neither then we match any key; return true. - UnicodeMatcher *m = (key != NULL) ? key : postContext; -- return (m != NULL) ? m->matchesIndexValue(v) : TRUE; -+ return (m != NULL) ? m->matchesIndexValue(v) : true; - } - - /** -@@ -343,11 +343,11 @@ static inline int32_t posAfter(const Replaceable& str, int32_t pos) { - * - * @param text the text - * @param pos the position indices -- * @param incremental if TRUE, test for partial matches that may -+ * @param incremental if true, test for partial matches that may - * be completed by additional text inserted at pos.limit. - * @return one of U_MISMATCH, - * U_PARTIAL_MATCH, or U_MATCH. If -- * incremental is FALSE then U_PARTIAL_MATCH will not be returned. -+ * incremental is false then U_PARTIAL_MATCH will not be returned. - */ - UMatchDegree TransliterationRule::matchAndReplace(Replaceable& text, - UTransPosition& pos, -@@ -392,7 +392,7 @@ UMatchDegree TransliterationRule::matchAndReplace(Replaceable& text, - oText = posBefore(text, pos.start); - - if (anteContext != NULL) { -- match = anteContext->matches(text, oText, anteLimit, FALSE); -+ match = anteContext->matches(text, oText, anteLimit, false); - if (match != U_MATCH) { - return U_MISMATCH; - } -@@ -488,13 +488,13 @@ UnicodeString& TransliterationRule::toRule(UnicodeString& rule, - ICU_Utility::appendToRule(rule, anteContext, escapeUnprintable, quoteBuf); - - if (emitBraces) { -- ICU_Utility::appendToRule(rule, (UChar) 0x007B /*{*/, TRUE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, (UChar) 0x007B /*{*/, true, escapeUnprintable, quoteBuf); - } - - ICU_Utility::appendToRule(rule, key, escapeUnprintable, quoteBuf); - - if (emitBraces) { -- ICU_Utility::appendToRule(rule, (UChar) 0x007D /*}*/, TRUE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, (UChar) 0x007D /*}*/, true, escapeUnprintable, quoteBuf); - } - - ICU_Utility::appendToRule(rule, postContext, escapeUnprintable, quoteBuf); -@@ -504,14 +504,14 @@ UnicodeString& TransliterationRule::toRule(UnicodeString& rule, - rule.append((UChar)36/*$*/); - } - -- ICU_Utility::appendToRule(rule, UnicodeString(TRUE, FORWARD_OP, 3), TRUE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, UnicodeString(true, FORWARD_OP, 3), true, escapeUnprintable, quoteBuf); - - // Emit the output pattern - - ICU_Utility::appendToRule(rule, output->toReplacer()->toReplacerPattern(str, escapeUnprintable), -- TRUE, escapeUnprintable, quoteBuf); -+ true, escapeUnprintable, quoteBuf); - -- ICU_Utility::appendToRule(rule, (UChar) 0x003B /*;*/, TRUE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, (UChar) 0x003B /*;*/, true, escapeUnprintable, quoteBuf); - - return rule; - } -diff --git a/deps/icu-small/source/i18n/rbt_set.cpp b/deps/icu-small/source/i18n/rbt_set.cpp -index 6835c03a69..c517467436 100644 ---- a/deps/icu-small/source/i18n/rbt_set.cpp -+++ b/deps/icu-small/source/i18n/rbt_set.cpp -@@ -114,7 +114,7 @@ inline void _debugOut(const char* msg, TransliterationRule* rule, - UnicodeString buf(msg, ""); - if (rule) { - UnicodeString r; -- rule->toRule(r, TRUE); -+ rule->toRule(r, true); - buf.append((UChar)32).append(r); - } - buf.append(UnicodeString(" => ", "")); -@@ -145,14 +145,14 @@ static void maskingError(const icu::TransliterationRule& rule1, - parseError.line = parseError.offset = -1; - - // for pre-context -- rule1.toRule(r, FALSE); -+ rule1.toRule(r, false); - len = uprv_min(r.length(), U_PARSE_CONTEXT_LEN-1); - r.extract(0, len, parseError.preContext); - parseError.preContext[len] = 0; - - //for post-context - r.truncate(0); -- rule2.toRule(r, FALSE); -+ rule2.toRule(r, false); - len = uprv_min(r.length(), U_PARSE_CONTEXT_LEN-1); - r.extract(0, len, parseError.postContext); - parseError.postContext[len] = 0; -@@ -387,14 +387,14 @@ void TransliterationRuleSet::freeze(UParseError& parseError,UErrorCode& status) - - /** - * Transliterate the given text with the given UTransPosition -- * indices. Return TRUE if the transliteration should continue -- * or FALSE if it should halt (because of a U_PARTIAL_MATCH match). -- * Note that FALSE is only ever returned if isIncremental is TRUE. -+ * indices. Return true if the transliteration should continue -+ * or false if it should halt (because of a U_PARTIAL_MATCH match). -+ * Note that false is only ever returned if isIncremental is true. - * @param text the text to be transliterated - * @param pos the position indices, which will be updated -- * @param incremental if TRUE, assume new text may be inserted -- * at index.limit, and return FALSE if there is a partial match. -- * @return TRUE unless a U_PARTIAL_MATCH has been obtained, -+ * @param incremental if true, assume new text may be inserted -+ * at index.limit, and return false if there is a partial match. -+ * @return true unless a U_PARTIAL_MATCH has been obtained, - * indicating that transliteration should stop until more text - * arrives. - */ -@@ -407,10 +407,10 @@ UBool TransliterationRuleSet::transliterate(Replaceable& text, - switch (m) { - case U_MATCH: - _debugOut("match", rules[i], text, pos); -- return TRUE; -+ return true; - case U_PARTIAL_MATCH: - _debugOut("partial match", rules[i], text, pos); -- return FALSE; -+ return false; - default: /* Ram: added default to make GCC happy */ - break; - } -@@ -418,7 +418,7 @@ UBool TransliterationRuleSet::transliterate(Replaceable& text, - // No match or partial match from any rule - pos.start += U16_LENGTH(text.char32At(pos.start)); - _debugOut("no match", NULL, text, pos); -- return TRUE; -+ return true; - } - - /** -diff --git a/deps/icu-small/source/i18n/rbtz.cpp b/deps/icu-small/source/i18n/rbtz.cpp -index 495d8310d0..0e174bab38 100644 ---- a/deps/icu-small/source/i18n/rbtz.cpp -+++ b/deps/icu-small/source/i18n/rbtz.cpp -@@ -40,34 +40,34 @@ U_CDECL_END - - static UBool compareRules(UVector* rules1, UVector* rules2) { - if (rules1 == NULL && rules2 == NULL) { -- return TRUE; -+ return true; - } else if (rules1 == NULL || rules2 == NULL) { -- return FALSE; -+ return false; - } - int32_t size = rules1->size(); - if (size != rules2->size()) { -- return FALSE; -+ return false; - } - for (int32_t i = 0; i < size; i++) { - TimeZoneRule *r1 = (TimeZoneRule*)rules1->elementAt(i); - TimeZoneRule *r2 = (TimeZoneRule*)rules2->elementAt(i); - if (*r1 != *r2) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RuleBasedTimeZone) - - RuleBasedTimeZone::RuleBasedTimeZone(const UnicodeString& id, InitialTimeZoneRule* initialRule) - : BasicTimeZone(id), fInitialRule(initialRule), fHistoricRules(NULL), fFinalRules(NULL), -- fHistoricTransitions(NULL), fUpToDate(FALSE) { -+ fHistoricTransitions(NULL), fUpToDate(false) { - } - - RuleBasedTimeZone::RuleBasedTimeZone(const RuleBasedTimeZone& source) - : BasicTimeZone(source), fInitialRule(source.fInitialRule->clone()), -- fHistoricTransitions(NULL), fUpToDate(FALSE) { -+ fHistoricTransitions(NULL), fUpToDate(false) { - fHistoricRules = copyRules(source.fHistoricRules); - fFinalRules = copyRules(source.fFinalRules); - if (source.fUpToDate) { -@@ -90,7 +90,7 @@ RuleBasedTimeZone::operator=(const RuleBasedTimeZone& right) { - fHistoricRules = copyRules(right.fHistoricRules); - fFinalRules = copyRules(right.fFinalRules); - deleteTransitions(); -- fUpToDate = FALSE; -+ fUpToDate = false; - } - return *this; - } -@@ -152,7 +152,7 @@ RuleBasedTimeZone::addTransitionRule(TimeZoneRule* rule, UErrorCode& status) { - fHistoricRules->adoptElement(lpRule.orphan(), status); - } - // Mark dirty, so transitions are recalculated at next complete() call -- fUpToDate = FALSE; -+ fUpToDate = false; - } - - -@@ -203,7 +203,7 @@ RuleBasedTimeZone::complete(UErrorCode& status) { - for (i = 0; i < historicCount; i++) { - done[i] = false; - } -- while (TRUE) { -+ while (true) { - int32_t curStdOffset = curRule->getRawOffset(); - int32_t curDstSavings = curRule->getDSTSavings(); - UDate nextTransitionTime = MAX_MILLIS; -@@ -239,10 +239,10 @@ RuleBasedTimeZone::complete(UErrorCode& status) { - - if (nextRule == NULL) { - // Check if all historic rules are done -- UBool bDoneAll = TRUE; -+ UBool bDoneAll = true; - for (int32_t j = 0; j < historicCount; j++) { - if (!done[j]) { -- bDoneAll = FALSE; -+ bDoneAll = false; - break; - } - } -@@ -344,12 +344,12 @@ RuleBasedTimeZone::complete(UErrorCode& status) { - } - } - } -- fUpToDate = TRUE; -+ fUpToDate = true; - return; - - cleanup: - deleteTransitions(); -- fUpToDate = FALSE; -+ fUpToDate = false; - } - - RuleBasedTimeZone* -@@ -386,7 +386,7 @@ RuleBasedTimeZone::getOffset(uint8_t era, int32_t year, int32_t month, int32_t d - } - int32_t rawOffset, dstOffset; - UDate time = (UDate)Grego::fieldsToDay(year, month, day) * U_MILLIS_PER_DAY + millis; -- getOffsetInternal(time, TRUE, kDaylight, kStandard, rawOffset, dstOffset, status); -+ getOffsetInternal(time, true, kDaylight, kStandard, rawOffset, dstOffset, status); - if (U_FAILURE(status)) { - return 0; - } -@@ -402,7 +402,7 @@ RuleBasedTimeZone::getOffset(UDate date, UBool local, int32_t& rawOffset, - void RuleBasedTimeZone::getOffsetFromLocal(UDate date, UTimeZoneLocalOption nonExistingTimeOpt, - UTimeZoneLocalOption duplicatedTimeOpt, - int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const { -- getOffsetInternal(date, TRUE, nonExistingTimeOpt, duplicatedTimeOpt, rawOffset, dstOffset, status); -+ getOffsetInternal(date, true, nonExistingTimeOpt, duplicatedTimeOpt, rawOffset, dstOffset, status); - } - - -@@ -479,8 +479,7 @@ RuleBasedTimeZone::getRawOffset(void) const { - // as of current time. - UErrorCode status = U_ZERO_ERROR; - int32_t raw, dst; -- getOffset(uprv_getUTCtime() * U_MILLIS_PER_SECOND, -- FALSE, raw, dst, status); -+ getOffset(uprv_getUTCtime(), false, raw, dst, status); - return raw; - } - -@@ -490,52 +489,52 @@ RuleBasedTimeZone::useDaylightTime(void) const { - // daylight saving time is used as of now or - // after the next transition. - UErrorCode status = U_ZERO_ERROR; -- UDate now = uprv_getUTCtime() * U_MILLIS_PER_SECOND; -+ UDate now = uprv_getUTCtime(); - int32_t raw, dst; -- getOffset(now, FALSE, raw, dst, status); -+ getOffset(now, false, raw, dst, status); - if (dst != 0) { -- return TRUE; -+ return true; - } - // If DST is not used now, check if DST is used after the next transition - UDate time; - TimeZoneRule *from, *to; -- UBool avail = findNext(now, FALSE, time, from, to); -+ UBool avail = findNext(now, false, time, from, to); - if (avail && to->getDSTSavings() != 0) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UBool - RuleBasedTimeZone::inDaylightTime(UDate date, UErrorCode& status) const { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - int32_t raw, dst; -- getOffset(date, FALSE, raw, dst, status); -+ getOffset(date, false, raw, dst, status); - if (dst != 0) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UBool - RuleBasedTimeZone::hasSameRules(const TimeZone& other) const { - if (this == &other) { -- return TRUE; -+ return true; - } - if (typeid(*this) != typeid(other)) { -- return FALSE; -+ return false; - } - const RuleBasedTimeZone& that = (const RuleBasedTimeZone&)other; - if (*fInitialRule != *(that.fInitialRule)) { -- return FALSE; -+ return false; - } - if (compareRules(fHistoricRules, that.fHistoricRules) - && compareRules(fFinalRules, that.fFinalRules)) { -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UBool -@@ -543,7 +542,7 @@ RuleBasedTimeZone::getNextTransition(UDate base, UBool inclusive, TimeZoneTransi - UErrorCode status = U_ZERO_ERROR; - completeConst(status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - UDate transitionTime; - TimeZoneRule *fromRule, *toRule; -@@ -552,9 +551,9 @@ RuleBasedTimeZone::getNextTransition(UDate base, UBool inclusive, TimeZoneTransi - result.setTime(transitionTime); - result.setFrom((const TimeZoneRule&)*fromRule); - result.setTo((const TimeZoneRule&)*toRule); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UBool -@@ -562,7 +561,7 @@ RuleBasedTimeZone::getPreviousTransition(UDate base, UBool inclusive, TimeZoneTr - UErrorCode status = U_ZERO_ERROR; - completeConst(status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - UDate transitionTime; - TimeZoneRule *fromRule, *toRule; -@@ -571,9 +570,9 @@ RuleBasedTimeZone::getPreviousTransition(UDate base, UBool inclusive, TimeZoneTr - result.setTime(transitionTime); - result.setFrom((const TimeZoneRule&)*fromRule); - result.setTo((const TimeZoneRule&)*toRule); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - int32_t -@@ -688,7 +687,7 @@ RuleBasedTimeZone::findRuleInFinal(UDate date, UBool local, - NonExistingTimeOpt, DuplicatedTimeOpt); - base -= localDelta; - } -- UBool avail0 = fr0->getPreviousStart(base, fr1->getRawOffset(), fr1->getDSTSavings(), TRUE, start0); -+ UBool avail0 = fr0->getPreviousStart(base, fr1->getRawOffset(), fr1->getDSTSavings(), true, start0); - - base = date; - if (local) { -@@ -697,7 +696,7 @@ RuleBasedTimeZone::findRuleInFinal(UDate date, UBool local, - NonExistingTimeOpt, DuplicatedTimeOpt); - base -= localDelta; - } -- UBool avail1 = fr1->getPreviousStart(base, fr0->getRawOffset(), fr0->getDSTSavings(), TRUE, start1); -+ UBool avail1 = fr1->getPreviousStart(base, fr0->getRawOffset(), fr0->getDSTSavings(), true, start1); - - if (!avail0 || !avail1) { - if (avail0) { -@@ -716,23 +715,23 @@ UBool - RuleBasedTimeZone::findNext(UDate base, UBool inclusive, UDate& transitionTime, - TimeZoneRule*& fromRule, TimeZoneRule*& toRule) const { - if (fHistoricTransitions == NULL) { -- return FALSE; -+ return false; - } -- UBool isFinal = FALSE; -- UBool found = FALSE; -+ UBool isFinal = false; -+ UBool found = false; - Transition result; - Transition *tzt = (Transition*)fHistoricTransitions->elementAt(0); - UDate tt = tzt->time; - if (tt > base || (inclusive && tt == base)) { - result = *tzt; -- found = TRUE; -+ found = true; - } else { - int32_t idx = fHistoricTransitions->size() - 1; - tzt = (Transition*)fHistoricTransitions->elementAt(idx); - tt = tzt->time; - if (inclusive && tt == base) { - result = *tzt; -- found = TRUE; -+ found = true; - } else if (tt <= base) { - if (fFinalRules != NULL) { - // Find a transion time with finalRules -@@ -741,9 +740,9 @@ RuleBasedTimeZone::findNext(UDate base, UBool inclusive, UDate& transitionTime, - UDate start0, start1; - UBool avail0 = r0->getNextStart(base, r1->getRawOffset(), r1->getDSTSavings(), inclusive, start0); - UBool avail1 = r1->getNextStart(base, r0->getRawOffset(), r0->getDSTSavings(), inclusive, start1); -- // avail0/avail1 should be always TRUE -+ // avail0/avail1 should be always true - if (!avail0 && !avail1) { -- return FALSE; -+ return false; - } - if (!avail1 || start0 < start1) { - result.time = start0; -@@ -754,8 +753,8 @@ RuleBasedTimeZone::findNext(UDate base, UBool inclusive, UDate& transitionTime, - result.from = r0; - result.to = r1; - } -- isFinal = TRUE; -- found = TRUE; -+ isFinal = true; -+ found = true; - } - } else { - // Find a transition within the historic transitions -@@ -773,7 +772,7 @@ RuleBasedTimeZone::findNext(UDate base, UBool inclusive, UDate& transitionTime, - result.time = prev->time; - result.from = prev->from; - result.to = prev->to; -- found = TRUE; -+ found = true; - } - } - if (found) { -@@ -781,41 +780,41 @@ RuleBasedTimeZone::findNext(UDate base, UBool inclusive, UDate& transitionTime, - if (result.from->getRawOffset() == result.to->getRawOffset() - && result.from->getDSTSavings() == result.to->getDSTSavings()) { - if (isFinal) { -- return FALSE; -+ return false; - } else { - // No offset changes. Try next one if not final -- return findNext(result.time, FALSE /* always exclusive */, -+ return findNext(result.time, false /* always exclusive */, - transitionTime, fromRule, toRule); - } - } - transitionTime = result.time; - fromRule = result.from; - toRule = result.to; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UBool - RuleBasedTimeZone::findPrev(UDate base, UBool inclusive, UDate& transitionTime, - TimeZoneRule*& fromRule, TimeZoneRule*& toRule) const { - if (fHistoricTransitions == NULL) { -- return FALSE; -+ return false; - } -- UBool found = FALSE; -+ UBool found = false; - Transition result; - Transition *tzt = (Transition*)fHistoricTransitions->elementAt(0); - UDate tt = tzt->time; - if (inclusive && tt == base) { - result = *tzt; -- found = TRUE; -+ found = true; - } else if (tt < base) { - int32_t idx = fHistoricTransitions->size() - 1; - tzt = (Transition*)fHistoricTransitions->elementAt(idx); - tt = tzt->time; - if (inclusive && tt == base) { - result = *tzt; -- found = TRUE; -+ found = true; - } else if (tt < base) { - if (fFinalRules != NULL) { - // Find a transion time with finalRules -@@ -824,9 +823,9 @@ RuleBasedTimeZone::findPrev(UDate base, UBool inclusive, UDate& transitionTime, - UDate start0, start1; - UBool avail0 = r0->getPreviousStart(base, r1->getRawOffset(), r1->getDSTSavings(), inclusive, start0); - UBool avail1 = r1->getPreviousStart(base, r0->getRawOffset(), r0->getDSTSavings(), inclusive, start1); -- // avail0/avail1 should be always TRUE -+ // avail0/avail1 should be always true - if (!avail0 && !avail1) { -- return FALSE; -+ return false; - } - if (!avail1 || start0 > start1) { - result.time = start0; -@@ -840,7 +839,7 @@ RuleBasedTimeZone::findPrev(UDate base, UBool inclusive, UDate& transitionTime, - } else { - result = *tzt; - } -- found = TRUE; -+ found = true; - } else { - // Find a transition within the historic transitions - idx--; -@@ -853,7 +852,7 @@ RuleBasedTimeZone::findPrev(UDate base, UBool inclusive, UDate& transitionTime, - idx--; - } - result = *tzt; -- found = TRUE; -+ found = true; - } - } - if (found) { -@@ -861,15 +860,15 @@ RuleBasedTimeZone::findPrev(UDate base, UBool inclusive, UDate& transitionTime, - if (result.from->getRawOffset() == result.to->getRawOffset() - && result.from->getDSTSavings() == result.to->getDSTSavings()) { - // No offset changes. Try next one if not final -- return findPrev(result.time, FALSE /* always exclusive */, -+ return findPrev(result.time, false /* always exclusive */, - transitionTime, fromRule, toRule); - } - transitionTime = result.time; - fromRule = result.from; - toRule = result.to; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UDate -diff --git a/deps/icu-small/source/i18n/regexcmp.cpp b/deps/icu-small/source/i18n/regexcmp.cpp -index 89cb658425..4b507002d6 100644 ---- a/deps/icu-small/source/i18n/regexcmp.cpp -+++ b/deps/icu-small/source/i18n/regexcmp.cpp -@@ -66,10 +66,10 @@ RegexCompile::RegexCompile(RegexPattern *rxp, UErrorCode &status) : - fPeekChar = -1; - fLineNum = 1; - fCharNum = 0; -- fQuoteMode = FALSE; -- fInBackslashQuote = FALSE; -+ fQuoteMode = false; -+ fInBackslashQuote = false; - fModeFlags = fRXPat->fFlags | 0x80000000; -- fEOLComments = TRUE; -+ fEOLComments = true; - - fMatchOpenParen = -1; - fMatchCloseParen = -1; -@@ -144,7 +144,7 @@ void RegexCompile::compile( - U_ASSERT(fRXPat->fPattern == NULL || utext_nativeLength(fRXPat->fPattern) == 0); - - // Prepare the RegexPattern object to receive the compiled pattern. -- fRXPat->fPattern = utext_clone(fRXPat->fPattern, pat, FALSE, TRUE, fStatus); -+ fRXPat->fPattern = utext_clone(fRXPat->fPattern, pat, false, true, fStatus); - if (U_FAILURE(*fStatus)) { - return; - } -@@ -156,7 +156,7 @@ void RegexCompile::compile( - - // UREGEX_LITERAL force entire pattern to be treated as a literal string. - if (fModeFlags & UREGEX_LITERAL) { -- fQuoteMode = TRUE; -+ fQuoteMode = true; - } - - nextChar(fC); // Fetch the first char from the pattern string. -@@ -193,7 +193,7 @@ void RegexCompile::compile( - for (;;) { // loop through table rows belonging to this state, looking for one - // that matches the current input char. - REGEX_SCAN_DEBUG_PRINTF((".")); -- if (tableEl->fCharClass < 127 && fC.fQuoted == FALSE && tableEl->fCharClass == fC.fChar) { -+ if (tableEl->fCharClass < 127 && fC.fQuoted == false && tableEl->fCharClass == fC.fChar) { - // Table row specified an individual character, not a set, and - // the input character is not quoted, and - // the input character matched it. -@@ -213,7 +213,7 @@ void RegexCompile::compile( - } - - if (tableEl->fCharClass >= 128 && tableEl->fCharClass < 240 && // Table specs a char class && -- fC.fQuoted == FALSE && // char is not escaped && -+ fC.fQuoted == false && // char is not escaped && - fC.fChar != (UChar32)-1) { // char is not EOF - U_ASSERT(tableEl->fCharClass <= 137); - if (RegexStaticSets::gStaticSets->fRuleSets[tableEl->fCharClass-128].contains(fC.fChar)) { -@@ -232,7 +232,7 @@ void RegexCompile::compile( - // We've found the row of the state table that matches the current input - // character from the rules string. - // Perform any action specified by this row in the state table. -- if (doParseActions(tableEl->fAction) == FALSE) { -+ if (doParseActions(tableEl->fAction) == false) { - // Break out of the state machine loop if the - // the action signalled some kind of error, or - // the action was to exit, occurs on normal end-of-rules-input. -@@ -345,7 +345,7 @@ void RegexCompile::compile( - //------------------------------------------------------------------------------ - UBool RegexCompile::doParseActions(int32_t action) - { -- UBool returnVal = TRUE; -+ UBool returnVal = true; - - switch ((Regex_PatternParseAction)action) { - -@@ -386,7 +386,7 @@ UBool RegexCompile::doParseActions(int32_t action) - appendOp(URX_END, 0); - - // Terminate the pattern compilation state machine. -- returnVal = FALSE; -+ returnVal = false; - break; - - -@@ -395,7 +395,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // Scanning a '|', as in (A|B) - { - // Generate code for any pending literals preceding the '|' -- fixLiterals(FALSE); -+ fixLiterals(false); - - // Insert a SAVE operation at the start of the pattern section preceding - // this OR at this level. This SAVE will branch the match forward -@@ -788,7 +788,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // 2. LOOP_SR_I set number (assuming repeated item is a set ref) - // 3. LOOP_C stack location - { -- int32_t topLoc = blockTopLoc(FALSE); // location of item #1 -+ int32_t topLoc = blockTopLoc(false); // location of item #1 - int32_t frameLoc; - - // Check for simple constructs, which may get special optimized code. -@@ -850,7 +850,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // 2. state-save 1 - // 3. ... - { -- int32_t topLoc = blockTopLoc(FALSE); -+ int32_t topLoc = blockTopLoc(false); - appendOp(URX_STATE_SAVE, topLoc); - } - break; -@@ -864,7 +864,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // 3. ... - // Insert the state save into the compiled pattern, and we're done. - { -- int32_t saveStateLoc = blockTopLoc(TRUE); -+ int32_t saveStateLoc = blockTopLoc(true); - int32_t saveStateOp = buildOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size()); - fRXPat->fCompiledPat->setElementAt(saveStateOp, saveStateLoc); - } -@@ -881,7 +881,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // This code is less than ideal, with two jmps instead of one, because we can only - // insert one instruction at the top of the block being iterated. - { -- int32_t jmp1_loc = blockTopLoc(TRUE); -+ int32_t jmp1_loc = blockTopLoc(true); - int32_t jmp2_loc = fRXPat->fCompiledPat->size(); - - int32_t jmp1_op = buildOp(URX_JMP, jmp2_loc+1); -@@ -919,7 +919,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // 5. ... - { - // location of item #1, the STATE_SAVE -- int32_t topLoc = blockTopLoc(FALSE); -+ int32_t topLoc = blockTopLoc(false); - int32_t dataLoc = -1; - - // Check for simple *, where the construct being repeated -@@ -958,7 +958,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // Emit general case code for this * - // The optimizations did not apply. - -- int32_t saveStateLoc = blockTopLoc(TRUE); -+ int32_t saveStateLoc = blockTopLoc(true); - int32_t jmpOp = buildOp(URX_JMP_SAV, saveStateLoc+1); - - // Check for minimum match length of zero, which requires -@@ -993,7 +993,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // 3. STATE_SAVE 2 - // 4 ... - { -- int32_t jmpLoc = blockTopLoc(TRUE); // loc 1. -+ int32_t jmpLoc = blockTopLoc(true); // loc 1. - int32_t saveLoc = fRXPat->fCompiledPat->size(); // loc 3. - int32_t jmpOp = buildOp(URX_JMP, saveLoc); - fRXPat->fCompiledPat->setElementAt(jmpOp, jmpLoc); -@@ -1048,7 +1048,7 @@ UBool RegexCompile::doParseActions(int32_t action) - - case doInterval: - // Finished scanning a normal {lower,upper} interval. Generate the code for it. -- if (compileInlineInterval() == FALSE) { -+ if (compileInlineInterval() == false) { - compileInterval(URX_CTR_INIT, URX_CTR_LOOP); - } - break; -@@ -1060,7 +1060,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // (Can not reserve a slot in the compiled pattern at this time, because - // compileInterval needs to reserve also, and blockTopLoc can only reserve - // once per block.) -- int32_t topLoc = blockTopLoc(FALSE); -+ int32_t topLoc = blockTopLoc(false); - - // Produce normal looping code. - compileInterval(URX_CTR_INIT, URX_CTR_LOOP); -@@ -1116,7 +1116,7 @@ UBool RegexCompile::doParseActions(int32_t action) - case doDotAny: - // scanned a ".", match any single character. - { -- fixLiterals(FALSE); -+ fixLiterals(false); - if (fModeFlags & UREGEX_DOTALL) { - appendOp(URX_DOTANY_ALL, 0); - } else if (fModeFlags & UREGEX_UNIX_LINES) { -@@ -1129,7 +1129,7 @@ UBool RegexCompile::doParseActions(int32_t action) - - case doCaret: - { -- fixLiterals(FALSE); -+ fixLiterals(false); - if ( (fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) { - appendOp(URX_CARET, 0); - } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) { -@@ -1144,7 +1144,7 @@ UBool RegexCompile::doParseActions(int32_t action) - - case doDollar: - { -- fixLiterals(FALSE); -+ fixLiterals(false); - if ( (fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) { - appendOp(URX_DOLLAR, 0); - } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) { -@@ -1158,7 +1158,7 @@ UBool RegexCompile::doParseActions(int32_t action) - break; - - case doBackslashA: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_CARET, 0); - break; - -@@ -1169,7 +1169,7 @@ UBool RegexCompile::doParseActions(int32_t action) - error(U_UNSUPPORTED_ERROR); - } - #endif -- fixLiterals(FALSE); -+ fixLiterals(false); - int32_t op = (fModeFlags & UREGEX_UWORD)? URX_BACKSLASH_BU : URX_BACKSLASH_B; - appendOp(op, 1); - } -@@ -1182,69 +1182,69 @@ UBool RegexCompile::doParseActions(int32_t action) - error(U_UNSUPPORTED_ERROR); - } - #endif -- fixLiterals(FALSE); -+ fixLiterals(false); - int32_t op = (fModeFlags & UREGEX_UWORD)? URX_BACKSLASH_BU : URX_BACKSLASH_B; - appendOp(op, 0); - } - break; - - case doBackslashD: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_D, 1); - break; - - case doBackslashd: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_D, 0); - break; - - case doBackslashG: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_G, 0); - break; - - case doBackslashH: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_H, 1); - break; - - case doBackslashh: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_H, 0); - break; - - case doBackslashR: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_R, 0); - break; - - case doBackslashS: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_STAT_SETREF_N, URX_ISSPACE_SET); - break; - - case doBackslashs: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_STATIC_SETREF, URX_ISSPACE_SET); - break; - - case doBackslashV: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_V, 1); - break; - - case doBackslashv: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_V, 0); - break; - - case doBackslashW: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_STAT_SETREF_N, URX_ISWORD_SET); - break; - - case doBackslashw: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_STATIC_SETREF, URX_ISWORD_SET); - break; - -@@ -1253,17 +1253,17 @@ UBool RegexCompile::doParseActions(int32_t action) - // Grapheme Cluster Boundary requires ICU break iteration. - error(U_UNSUPPORTED_ERROR); - #endif -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_X, 0); - break; - - case doBackslashZ: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_DOLLAR, 0); - break; - - case doBackslashz: -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_BACKSLASH_Z, 0); - break; - -@@ -1272,13 +1272,13 @@ UBool RegexCompile::doParseActions(int32_t action) - break; - - case doExit: -- fixLiterals(FALSE); -- returnVal = FALSE; -+ fixLiterals(false); -+ returnVal = false; - break; - - case doProperty: - { -- fixLiterals(FALSE); -+ fixLiterals(false); - UnicodeSet *theSet = scanProp(); - compileSet(theSet); - } -@@ -1310,7 +1310,7 @@ UBool RegexCompile::doParseActions(int32_t action) - break; - } - c = peekCharLL(); -- if (RegexStaticSets::gStaticSets->fRuleDigitsAlias->contains(c) == FALSE) { -+ if (RegexStaticSets::gStaticSets->fRuleDigitsAlias->contains(c) == false) { - break; - } - nextCharLL(); -@@ -1323,7 +1323,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // of compilation, it will be changed to the variable's location. - U_ASSERT(groupNum > 0); // Shouldn't happen. '\0' begins an octal escape sequence, - // and shouldn't enter this code path at all. -- fixLiterals(FALSE); -+ fixLiterals(false); - if (fModeFlags & UREGEX_CASE_INSENSITIVE) { - appendOp(URX_BACKREF_I, groupNum); - } else { -@@ -1356,7 +1356,7 @@ UBool RegexCompile::doParseActions(int32_t action) - } else { - // Given the number, handle identically to a \n numbered back reference. - // See comments above, under doBackRef -- fixLiterals(FALSE); -+ fixLiterals(false); - if (fModeFlags & UREGEX_CASE_INSENSITIVE) { - appendOp(URX_BACKREF_I, groupNumber); - } else { -@@ -1383,7 +1383,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // - { - // Emit the STO_SP -- int32_t topLoc = blockTopLoc(TRUE); -+ int32_t topLoc = blockTopLoc(true); - int32_t stoLoc = allocateData(1); // Reserve the data location for storing save stack ptr. - int32_t op = buildOp(URX_STO_SP, stoLoc); - fRXPat->fCompiledPat->setElementAt(op, topLoc); -@@ -1411,7 +1411,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // TODO: do something to cut back the state stack each time through the loop. - { - // Reserve two slots at the top of the block. -- int32_t topLoc = blockTopLoc(TRUE); -+ int32_t topLoc = blockTopLoc(true); - insertOp(topLoc); - - // emit STO_SP loc -@@ -1443,7 +1443,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // - { - // Reserve two slots at the top of the block. -- int32_t topLoc = blockTopLoc(TRUE); -+ int32_t topLoc = blockTopLoc(true); - insertOp(topLoc); - - // Emit the STO_SP -@@ -1464,7 +1464,7 @@ UBool RegexCompile::doParseActions(int32_t action) - - case doBeginMatchMode: - fNewModeFlags = fModeFlags; -- fSetModeFlag = TRUE; -+ fSetModeFlag = true; - break; - - case doMatchMode: // (?i) and similar -@@ -1478,7 +1478,7 @@ UBool RegexCompile::doParseActions(int32_t action) - case 0x75: /* 'u' */ bit = 0; /* Unicode casing */ break; - case 0x77: /* 'w' */ bit = UREGEX_UWORD; break; - case 0x78: /* 'x' */ bit = UREGEX_COMMENTS; break; -- case 0x2d: /* '-' */ fSetModeFlag = FALSE; break; -+ case 0x2d: /* '-' */ fSetModeFlag = false; break; - default: - UPRV_UNREACHABLE_EXIT; // Should never happen. Other chars are filtered out - // by the scanner. -@@ -1513,7 +1513,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // - NOP, which may later be replaced by a save-state if there - // is an '|' alternation within the parens. - { -- fixLiterals(FALSE); -+ fixLiterals(false); - appendOp(URX_NOP, 0); - appendOp(URX_NOP, 0); - -@@ -1539,7 +1539,7 @@ UBool RegexCompile::doParseActions(int32_t action) - // We have just scanned a '(?'. We now need to prevent the character scanner from - // treating a '#' as a to-the-end-of-line comment. - // (This Perl compatibility just gets uglier and uglier to do...) -- fEOLComments = FALSE; -+ fEOLComments = false; - break; - - -@@ -1652,7 +1652,7 @@ UBool RegexCompile::doParseActions(int32_t action) - - case doSetBegin: - { -- fixLiterals(FALSE); -+ fixLiterals(false); - LocalPointer lpSet(new UnicodeSet(), *fStatus); - fSetStack.push(lpSet.orphan(), *fStatus); - fSetOpStack.push(setStart, *fStatus); -@@ -1862,7 +1862,7 @@ UBool RegexCompile::doParseActions(int32_t action) - } - - if (U_FAILURE(*fStatus)) { -- returnVal = FALSE; -+ returnVal = false; - } - - return returnVal; -@@ -1913,12 +1913,12 @@ void RegexCompile::fixLiterals(UBool split) { - - if (split) { - fLiteralChars.truncate(indexOfLastCodePoint); -- fixLiterals(FALSE); // Recursive call, emit code to match the first part of the string. -+ fixLiterals(false); // Recursive call, emit code to match the first part of the string. - // Note that the truncated literal string may be empty, in which case - // nothing will be emitted. - - literalChar(lastCodePoint); // Re-add the last code point as if it were a new literal. -- fixLiterals(FALSE); // Second recursive call, code for the final code point. -+ fixLiterals(false); // Second recursive call, code for the final code point. - return; - } - -@@ -2130,15 +2130,15 @@ int32_t RegexCompile::allocateStackData(int32_t size) { - // is reserved for this purpose. .* or similar don't - // and a slot needs to be added. - // --// parameter reserveLoc : TRUE - ensure that there is space to add an opcode -+// parameter reserveLoc : true - ensure that there is space to add an opcode - // at the returned location. --// FALSE - just return the address, -+// false - just return the address, - // do not reserve a location there. - // - //------------------------------------------------------------------------------ - int32_t RegexCompile::blockTopLoc(UBool reserveLoc) { - int32_t theLoc; -- fixLiterals(TRUE); // Emit code for any pending literals. -+ fixLiterals(true); // Emit code for any pending literals. - // If last item was a string, emit separate op for the its last char. - if (fRXPat->fCompiledPat->size() == fMatchCloseParen) - { -@@ -2189,7 +2189,7 @@ void RegexCompile::handleCloseParen() { - } - - // Emit code for any pending literals. -- fixLiterals(FALSE); -+ fixLiterals(false); - - // Fixup any operations within the just-closed parenthesized group - // that need to reference the end of the (block). -@@ -2459,7 +2459,7 @@ void RegexCompile::compileInterval(int32_t InitOp, int32_t LoopOp) - { - // The CTR_INIT op at the top of the block with the {n,m} quantifier takes - // four slots in the compiled code. Reserve them. -- int32_t topOfBlock = blockTopLoc(TRUE); -+ int32_t topOfBlock = blockTopLoc(true); - insertOp(topOfBlock); - insertOp(topOfBlock); - insertOp(topOfBlock); -@@ -2507,10 +2507,10 @@ UBool RegexCompile::compileInlineInterval() { - if (fIntervalUpper > 10 || fIntervalUpper < fIntervalLow) { - // Too big to inline. Fail, which will cause looping code to be generated. - // (Upper < Lower picks up unbounded upper and errors, both.) -- return FALSE; -+ return false; - } - -- int32_t topOfBlock = blockTopLoc(FALSE); -+ int32_t topOfBlock = blockTopLoc(false); - if (fIntervalUpper == 0) { - // Pathological case. Attempt no matches, as if the block doesn't exist. - // Discard the generated code for the block. -@@ -2522,7 +2522,7 @@ UBool RegexCompile::compileInlineInterval() { - if (fMatchCloseParen >= topOfBlock) { - fMatchCloseParen = -1; - } -- return TRUE; -+ return true; - } - - if (topOfBlock != fRXPat->fCompiledPat->size()-1 && fIntervalUpper != 1) { -@@ -2530,7 +2530,7 @@ UBool RegexCompile::compileInlineInterval() { - // more complex block. Do it as a loop, not inlines. - // Note that things "repeated" a max of once are handled as inline, because - // the one copy of the code already generated is just fine. -- return FALSE; -+ return false; - } - - // Pick up the opcode that is to be repeated -@@ -2560,7 +2560,7 @@ UBool RegexCompile::compileInlineInterval() { - } - appendOp(op); - } -- return TRUE; -+ return true; - } - - -@@ -2701,7 +2701,7 @@ void RegexCompile::matchStartType() { - int32_t currentLen = 0; // Minimum length of a match to this point (loc) in the pattern - int32_t numInitialStrings = 0; // Number of strings encountered that could match at start. - -- UBool atStart = TRUE; // True if no part of the pattern yet encountered -+ UBool atStart = true; // True if no part of the pattern yet encountered - // could have advanced the position in a match. - // (Maximum match length so far == 0) - -@@ -2777,7 +2777,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2790,7 +2790,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - case URX_LOOP_SR_I: -@@ -2803,7 +2803,7 @@ void RegexCompile::matchStartType() { - fRXPat->fInitialChars->addAll(*s); - numInitialStrings += 2; - } -- atStart = FALSE; -+ atStart = false; - break; - - case URX_LOOP_DOT_I: -@@ -2814,7 +2814,7 @@ void RegexCompile::matchStartType() { - fRXPat->fInitialChars->complement(); - numInitialStrings += 2; - } -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2827,7 +2827,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2841,7 +2841,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2858,7 +2858,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2875,7 +2875,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2894,7 +2894,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2918,7 +2918,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2934,7 +2934,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; - } - currentLen = safeIncrement(currentLen, 1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2957,21 +2957,21 @@ void RegexCompile::matchStartType() { - } - } - } -- atStart = FALSE; -+ atStart = false; - break; - - case URX_JMP_SAV: - case URX_JMP_SAV_X: - // Combo of state save to the next loc, + jmp backwards. - // Net effect on min. length computation is nothing. -- atStart = FALSE; -+ atStart = false; - break; - - case URX_BACKTRACK: - // Fails are kind of like a branch, except that the min length was - // propagated already, by the state save. - currentLen = forwardedLength.elementAti(loc+1); -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -2986,7 +2986,7 @@ void RegexCompile::matchStartType() { - } - } - } -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -3014,7 +3014,7 @@ void RegexCompile::matchStartType() { - } - - currentLen = safeIncrement(currentLen, stringLen); -- atStart = FALSE; -+ atStart = false; - } - break; - -@@ -3039,7 +3039,7 @@ void RegexCompile::matchStartType() { - numInitialStrings += 2; // Matching on an initial string not possible. - } - currentLen = safeIncrement(currentLen, stringLen); -- atStart = FALSE; -+ atStart = false; - } - break; - -@@ -3067,7 +3067,7 @@ void RegexCompile::matchStartType() { - } - loc+=3; // Skips over operands of CTR_INIT - } -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -3075,13 +3075,13 @@ void RegexCompile::matchStartType() { - case URX_CTR_LOOP_NG: - // Loop ops. - // The jump is conditional, backwards only. -- atStart = FALSE; -+ atStart = false; - break; - - case URX_LOOP_C: - // More loop ops. These state-save to themselves. - // don't change the minimum match -- atStart = FALSE; -+ atStart = false; - break; - - -@@ -3177,7 +3177,7 @@ void RegexCompile::matchStartType() { - fRXPat->fStartType = START_CHAR; - fRXPat->fInitialChar = fRXPat->fInitialChars->charAt(0); - U_ASSERT(fRXPat->fInitialChar != (UChar32)-1); -- } else if (fRXPat->fInitialChars->contains((UChar32)0, (UChar32)0x10ffff) == FALSE && -+ } else if (fRXPat->fInitialChars->contains((UChar32)0, (UChar32)0x10ffff) == false && - fRXPat->fMinMatchLen > 0) { - // Matches start with a set of character smaller than the set of all chars. - fRXPat->fStartType = START_SET; -@@ -3834,7 +3834,7 @@ void RegexCompile::stripNOPs() { - fRXPat->fCompiledPat->setElementAt(op, dst); - dst++; - -- fRXPat->fNeedsAltInput = TRUE; -+ fRXPat->fNeedsAltInput = true; - break; - } - case URX_RESERVED_OP: -@@ -4032,13 +4032,13 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - tailRecursion: - fScanIndex = UTEXT_GETNATIVEINDEX(fRXPat->fPattern); - c.fChar = nextCharLL(); -- c.fQuoted = FALSE; -+ c.fQuoted = false; - - if (fQuoteMode) { -- c.fQuoted = TRUE; -+ c.fQuoted = true; - if ((c.fChar==chBackSlash && peekCharLL()==chE && ((fModeFlags & UREGEX_LITERAL) == 0)) || - c.fChar == (UChar32)-1) { -- fQuoteMode = FALSE; // Exit quote mode, -+ fQuoteMode = false; // Exit quote mode, - nextCharLL(); // discard the E - // nextChar(c); // recurse to get the real next char - goto tailRecursion; // Note: fuzz testing produced testcases that -@@ -4050,7 +4050,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - // Don't check for any further escapes, just return it as-is. - // Don't set c.fQuoted, because that would prevent the state machine from - // dispatching on the character. -- fInBackslashQuote = FALSE; -+ fInBackslashQuote = false; - } - else - { -@@ -4065,7 +4065,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - if (c.fChar == (UChar32)-1) { - break; // End of Input - } -- if (c.fChar == chPound && fEOLComments == TRUE) { -+ if (c.fChar == chPound && fEOLComments == true) { - // Start of a comment. Consume the rest of it, until EOF or a new line - for (;;) { - c.fChar = nextCharLL(); -@@ -4079,7 +4079,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - } - } - // TODO: check what Java & Perl do with non-ASCII white spaces. Ticket 6061. -- if (PatternProps::isWhiteSpace(c.fChar) == FALSE) { -+ if (PatternProps::isWhiteSpace(c.fChar) == false) { - break; - } - c.fChar = nextCharLL(); -@@ -4098,7 +4098,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - // Return the single equivalent character. - // - nextCharLL(); // get & discard the peeked char. -- c.fQuoted = TRUE; -+ c.fQuoted = true; - - if (UTEXT_FULL_TEXT_IN_CHUNK(fRXPat->fPattern, fPatternLength)) { - int32_t endIndex = (int32_t)pos; -@@ -4155,11 +4155,11 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - c.fChar >>= 3; - } - } -- c.fQuoted = TRUE; -+ c.fQuoted = true; - } - else if (peekCharLL() == chQ) { - // "\Q" enter quote mode, which will continue until "\E" -- fQuoteMode = TRUE; -+ fQuoteMode = true; - nextCharLL(); // discard the 'Q'. - // nextChar(c); // recurse to get the real next char. - goto tailRecursion; // Note: fuzz testing produced test cases that -@@ -4170,7 +4170,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - // We are in a '\' escape that will be handled by the state table scanner. - // Just return the backslash, but remember that the following char is to - // be taken literally. -- fInBackslashQuote = TRUE; -+ fInBackslashQuote = true; - } - } - } -@@ -4178,7 +4178,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) { - // re-enable # to end-of-line comments, in case they were disabled. - // They are disabled by the parser upon seeing '(?', but this lasts for - // the fetching of the next character only. -- fEOLComments = TRUE; -+ fEOLComments = true; - - // putc(c.fChar, stdout); - } -@@ -4331,17 +4331,17 @@ UnicodeSet *RegexCompile::scanPosixProp() { - // ending on the second closing ]. - - UnicodeString propName; -- UBool negated = FALSE; -+ UBool negated = false; - - // Check for and consume the '^' in a negated POSIX property, e.g. [:^Letter:] - nextChar(fC); - if (fC.fChar == chUp) { -- negated = TRUE; -+ negated = true; - nextChar(fC); - } - - // Scan for the closing ":]", collecting the property name along the way. -- UBool sawPropSetTerminator = FALSE; -+ UBool sawPropSetTerminator = false; - for (;;) { - propName.append(fC.fChar); - nextChar(fC); -@@ -4352,7 +4352,7 @@ UnicodeSet *RegexCompile::scanPosixProp() { - if (fC.fChar == chColon) { - nextChar(fC); - if (fC.fChar == chRBracket) { -- sawPropSetTerminator = TRUE; -+ sawPropSetTerminator = true; - } - break; - } -@@ -4613,13 +4613,13 @@ void RegexCompile::setEval(int32_t nextOp) { - UnicodeSet *rightOperand = NULL; - UnicodeSet *leftOperand = NULL; - for (;;) { -- U_ASSERT(fSetOpStack.empty()==FALSE); -+ U_ASSERT(fSetOpStack.empty()==false); - int32_t pendingSetOperation = fSetOpStack.peeki(); - if ((pendingSetOperation&0xffff0000) < (nextOp&0xffff0000)) { - break; - } - fSetOpStack.popi(); -- U_ASSERT(fSetStack.empty() == FALSE); -+ U_ASSERT(fSetStack.empty() == false); - rightOperand = (UnicodeSet *)fSetStack.peek(); - // ICU 70 adds emoji properties of strings, but createSetForProperty() removes all strings - // (see comments there). -diff --git a/deps/icu-small/source/i18n/regexcmp.h b/deps/icu-small/source/i18n/regexcmp.h -index 9e1aa170f0..81ac9e5178 100644 ---- a/deps/icu-small/source/i18n/regexcmp.h -+++ b/deps/icu-small/source/i18n/regexcmp.h -@@ -37,7 +37,6 @@ U_NAMESPACE_BEGIN - // class RegexCompile Contains the regular expression compiler. - // - //-------------------------------------------------------------------------------- --struct RegexTableEl; - class RegexPattern; - - -@@ -65,9 +64,6 @@ public: - - void nextChar(RegexPatternChar &c); // Get the next char from the input stream. - -- static void cleanup(); // Memory cleanup -- -- - - // Categories of parentheses in pattern. - // The category is saved in the compile-time parentheses stack frame, and -@@ -154,12 +150,6 @@ private: - RegexPatternChar fC; // Current char for parse state machine - // processing. - -- // -- // Data for the state machine that parses the regular expression. -- // -- RegexTableEl **fStateTable; // State Transition Table for regex Rule -- // parsing. index by p[state][char-class] -- - uint16_t fStack[kStackSize]; // State stack, holds state pushes - int32_t fStackPtr; // and pops as specified in the state - // transition rules. -@@ -211,10 +201,6 @@ private: - // -1 for the upper interval value means none - // was specified (unlimited occurrences.) - -- int64_t fNameStartPos; // Starting position of a \N{NAME} name in a -- // pattern, valid while remainder of name is -- // scanned. -- - UStack fSetStack; // Stack of UnicodeSets, used while evaluating - // (at compile time) set expressions within - // the pattern. -diff --git a/deps/icu-small/source/i18n/regexcst.h b/deps/icu-small/source/i18n/regexcst.h -index d44c2aec2b..a475b6b363 100644 ---- a/deps/icu-small/source/i18n/regexcst.h -+++ b/deps/icu-small/source/i18n/regexcst.h -@@ -149,213 +149,213 @@ struct RegexTableEl { - }; - - static const struct RegexTableEl gRuleParseStateTable[] = { -- {doNOP, 0, 0, 0, TRUE} -- , {doPatStart, 255, 2,0, FALSE} // 1 start -- , {doLiteralChar, 254, 14,0, TRUE} // 2 term -- , {doLiteralChar, 130, 14,0, TRUE} // 3 -- , {doSetBegin, 91 /* [ */, 123, 205, TRUE} // 4 -- , {doNOP, 40 /* ( */, 27,0, TRUE} // 5 -- , {doDotAny, 46 /* . */, 14,0, TRUE} // 6 -- , {doCaret, 94 /* ^ */, 14,0, TRUE} // 7 -- , {doDollar, 36 /* $ */, 14,0, TRUE} // 8 -- , {doNOP, 92 /* \ */, 89,0, TRUE} // 9 -- , {doOrOperator, 124 /* | */, 2,0, TRUE} // 10 -- , {doCloseParen, 41 /* ) */, 255,0, TRUE} // 11 -- , {doPatFinish, 253, 2,0, FALSE} // 12 -- , {doRuleError, 255, 206,0, FALSE} // 13 -- , {doNOP, 42 /* * */, 68,0, TRUE} // 14 expr-quant -- , {doNOP, 43 /* + */, 71,0, TRUE} // 15 -- , {doNOP, 63 /* ? */, 74,0, TRUE} // 16 -- , {doIntervalInit, 123 /* { */, 77,0, TRUE} // 17 -- , {doNOP, 40 /* ( */, 23,0, TRUE} // 18 -- , {doNOP, 255, 20,0, FALSE} // 19 -- , {doOrOperator, 124 /* | */, 2,0, TRUE} // 20 expr-cont -- , {doCloseParen, 41 /* ) */, 255,0, TRUE} // 21 -- , {doNOP, 255, 2,0, FALSE} // 22 -- , {doSuppressComments, 63 /* ? */, 25,0, TRUE} // 23 open-paren-quant -- , {doNOP, 255, 27,0, FALSE} // 24 -- , {doNOP, 35 /* # */, 50, 14, TRUE} // 25 open-paren-quant2 -- , {doNOP, 255, 29,0, FALSE} // 26 -- , {doSuppressComments, 63 /* ? */, 29,0, TRUE} // 27 open-paren -- , {doOpenCaptureParen, 255, 2, 14, FALSE} // 28 -- , {doOpenNonCaptureParen, 58 /* : */, 2, 14, TRUE} // 29 open-paren-extended -- , {doOpenAtomicParen, 62 /* > */, 2, 14, TRUE} // 30 -- , {doOpenLookAhead, 61 /* = */, 2, 20, TRUE} // 31 -- , {doOpenLookAheadNeg, 33 /* ! */, 2, 20, TRUE} // 32 -- , {doNOP, 60 /* < */, 46,0, TRUE} // 33 -- , {doNOP, 35 /* # */, 50, 2, TRUE} // 34 -- , {doBeginMatchMode, 105 /* i */, 53,0, FALSE} // 35 -- , {doBeginMatchMode, 100 /* d */, 53,0, FALSE} // 36 -- , {doBeginMatchMode, 109 /* m */, 53,0, FALSE} // 37 -- , {doBeginMatchMode, 115 /* s */, 53,0, FALSE} // 38 -- , {doBeginMatchMode, 117 /* u */, 53,0, FALSE} // 39 -- , {doBeginMatchMode, 119 /* w */, 53,0, FALSE} // 40 -- , {doBeginMatchMode, 120 /* x */, 53,0, FALSE} // 41 -- , {doBeginMatchMode, 45 /* - */, 53,0, FALSE} // 42 -- , {doConditionalExpr, 40 /* ( */, 206,0, TRUE} // 43 -- , {doPerlInline, 123 /* { */, 206,0, TRUE} // 44 -- , {doBadOpenParenType, 255, 206,0, FALSE} // 45 -- , {doOpenLookBehind, 61 /* = */, 2, 20, TRUE} // 46 open-paren-lookbehind -- , {doOpenLookBehindNeg, 33 /* ! */, 2, 20, TRUE} // 47 -- , {doBeginNamedCapture, 129, 64,0, FALSE} // 48 -- , {doBadOpenParenType, 255, 206,0, FALSE} // 49 -- , {doNOP, 41 /* ) */, 255,0, TRUE} // 50 paren-comment -- , {doMismatchedParenErr, 253, 206,0, FALSE} // 51 -- , {doNOP, 255, 50,0, TRUE} // 52 -- , {doMatchMode, 105 /* i */, 53,0, TRUE} // 53 paren-flag -- , {doMatchMode, 100 /* d */, 53,0, TRUE} // 54 -- , {doMatchMode, 109 /* m */, 53,0, TRUE} // 55 -- , {doMatchMode, 115 /* s */, 53,0, TRUE} // 56 -- , {doMatchMode, 117 /* u */, 53,0, TRUE} // 57 -- , {doMatchMode, 119 /* w */, 53,0, TRUE} // 58 -- , {doMatchMode, 120 /* x */, 53,0, TRUE} // 59 -- , {doMatchMode, 45 /* - */, 53,0, TRUE} // 60 -- , {doSetMatchMode, 41 /* ) */, 2,0, TRUE} // 61 -- , {doMatchModeParen, 58 /* : */, 2, 14, TRUE} // 62 -- , {doBadModeFlag, 255, 206,0, FALSE} // 63 -- , {doContinueNamedCapture, 129, 64,0, TRUE} // 64 named-capture -- , {doContinueNamedCapture, 128, 64,0, TRUE} // 65 -- , {doOpenCaptureParen, 62 /* > */, 2, 14, TRUE} // 66 -- , {doBadNamedCapture, 255, 206,0, FALSE} // 67 -- , {doNGStar, 63 /* ? */, 20,0, TRUE} // 68 quant-star -- , {doPossessiveStar, 43 /* + */, 20,0, TRUE} // 69 -- , {doStar, 255, 20,0, FALSE} // 70 -- , {doNGPlus, 63 /* ? */, 20,0, TRUE} // 71 quant-plus -- , {doPossessivePlus, 43 /* + */, 20,0, TRUE} // 72 -- , {doPlus, 255, 20,0, FALSE} // 73 -- , {doNGOpt, 63 /* ? */, 20,0, TRUE} // 74 quant-opt -- , {doPossessiveOpt, 43 /* + */, 20,0, TRUE} // 75 -- , {doOpt, 255, 20,0, FALSE} // 76 -- , {doNOP, 128, 79,0, FALSE} // 77 interval-open -- , {doIntervalError, 255, 206,0, FALSE} // 78 -- , {doIntevalLowerDigit, 128, 79,0, TRUE} // 79 interval-lower -- , {doNOP, 44 /* , */, 83,0, TRUE} // 80 -- , {doIntervalSame, 125 /* } */, 86,0, TRUE} // 81 -- , {doIntervalError, 255, 206,0, FALSE} // 82 -- , {doIntervalUpperDigit, 128, 83,0, TRUE} // 83 interval-upper -- , {doNOP, 125 /* } */, 86,0, TRUE} // 84 -- , {doIntervalError, 255, 206,0, FALSE} // 85 -- , {doNGInterval, 63 /* ? */, 20,0, TRUE} // 86 interval-type -- , {doPossessiveInterval, 43 /* + */, 20,0, TRUE} // 87 -- , {doInterval, 255, 20,0, FALSE} // 88 -- , {doBackslashA, 65 /* A */, 2,0, TRUE} // 89 backslash -- , {doBackslashB, 66 /* B */, 2,0, TRUE} // 90 -- , {doBackslashb, 98 /* b */, 2,0, TRUE} // 91 -- , {doBackslashd, 100 /* d */, 14,0, TRUE} // 92 -- , {doBackslashD, 68 /* D */, 14,0, TRUE} // 93 -- , {doBackslashG, 71 /* G */, 2,0, TRUE} // 94 -- , {doBackslashh, 104 /* h */, 14,0, TRUE} // 95 -- , {doBackslashH, 72 /* H */, 14,0, TRUE} // 96 -- , {doNOP, 107 /* k */, 115,0, TRUE} // 97 -- , {doNamedChar, 78 /* N */, 14,0, FALSE} // 98 -- , {doProperty, 112 /* p */, 14,0, FALSE} // 99 -- , {doProperty, 80 /* P */, 14,0, FALSE} // 100 -- , {doBackslashR, 82 /* R */, 14,0, TRUE} // 101 -- , {doEnterQuoteMode, 81 /* Q */, 2,0, TRUE} // 102 -- , {doBackslashS, 83 /* S */, 14,0, TRUE} // 103 -- , {doBackslashs, 115 /* s */, 14,0, TRUE} // 104 -- , {doBackslashv, 118 /* v */, 14,0, TRUE} // 105 -- , {doBackslashV, 86 /* V */, 14,0, TRUE} // 106 -- , {doBackslashW, 87 /* W */, 14,0, TRUE} // 107 -- , {doBackslashw, 119 /* w */, 14,0, TRUE} // 108 -- , {doBackslashX, 88 /* X */, 14,0, TRUE} // 109 -- , {doBackslashZ, 90 /* Z */, 2,0, TRUE} // 110 -- , {doBackslashz, 122 /* z */, 2,0, TRUE} // 111 -- , {doBackRef, 128, 14,0, TRUE} // 112 -- , {doEscapeError, 253, 206,0, FALSE} // 113 -- , {doEscapedLiteralChar, 255, 14,0, TRUE} // 114 -- , {doBeginNamedBackRef, 60 /* < */, 117,0, TRUE} // 115 named-backref -- , {doBadNamedCapture, 255, 206,0, FALSE} // 116 -- , {doContinueNamedBackRef, 129, 119,0, TRUE} // 117 named-backref-2 -- , {doBadNamedCapture, 255, 206,0, FALSE} // 118 -- , {doContinueNamedBackRef, 129, 119,0, TRUE} // 119 named-backref-3 -- , {doContinueNamedBackRef, 128, 119,0, TRUE} // 120 -- , {doCompleteNamedBackRef, 62 /* > */, 14,0, TRUE} // 121 -- , {doBadNamedCapture, 255, 206,0, FALSE} // 122 -- , {doSetNegate, 94 /* ^ */, 126,0, TRUE} // 123 set-open -- , {doSetPosixProp, 58 /* : */, 128,0, FALSE} // 124 -- , {doNOP, 255, 126,0, FALSE} // 125 -- , {doSetLiteral, 93 /* ] */, 141,0, TRUE} // 126 set-open2 -- , {doNOP, 255, 131,0, FALSE} // 127 -- , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 128 set-posix -- , {doNOP, 58 /* : */, 131,0, FALSE} // 129 -- , {doRuleError, 255, 206,0, FALSE} // 130 -- , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 131 set-start -- , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 132 -- , {doNOP, 92 /* \ */, 191,0, TRUE} // 133 -- , {doNOP, 45 /* - */, 137,0, TRUE} // 134 -- , {doNOP, 38 /* & */, 139,0, TRUE} // 135 -- , {doSetLiteral, 255, 141,0, TRUE} // 136 -- , {doRuleError, 45 /* - */, 206,0, FALSE} // 137 set-start-dash -- , {doSetAddDash, 255, 141,0, FALSE} // 138 -- , {doRuleError, 38 /* & */, 206,0, FALSE} // 139 set-start-amp -- , {doSetAddAmp, 255, 141,0, FALSE} // 140 -- , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 141 set-after-lit -- , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 142 -- , {doNOP, 45 /* - */, 178,0, TRUE} // 143 -- , {doNOP, 38 /* & */, 169,0, TRUE} // 144 -- , {doNOP, 92 /* \ */, 191,0, TRUE} // 145 -- , {doSetNoCloseError, 253, 206,0, FALSE} // 146 -- , {doSetLiteral, 255, 141,0, TRUE} // 147 -- , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 148 set-after-set -- , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 149 -- , {doNOP, 45 /* - */, 171,0, TRUE} // 150 -- , {doNOP, 38 /* & */, 166,0, TRUE} // 151 -- , {doNOP, 92 /* \ */, 191,0, TRUE} // 152 -- , {doSetNoCloseError, 253, 206,0, FALSE} // 153 -- , {doSetLiteral, 255, 141,0, TRUE} // 154 -- , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 155 set-after-range -- , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 156 -- , {doNOP, 45 /* - */, 174,0, TRUE} // 157 -- , {doNOP, 38 /* & */, 176,0, TRUE} // 158 -- , {doNOP, 92 /* \ */, 191,0, TRUE} // 159 -- , {doSetNoCloseError, 253, 206,0, FALSE} // 160 -- , {doSetLiteral, 255, 141,0, TRUE} // 161 -- , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 162 set-after-op -- , {doSetOpError, 93 /* ] */, 206,0, FALSE} // 163 -- , {doNOP, 92 /* \ */, 191,0, TRUE} // 164 -- , {doSetLiteral, 255, 141,0, TRUE} // 165 -- , {doSetBeginIntersection1, 91 /* [ */, 123, 148, TRUE} // 166 set-set-amp -- , {doSetIntersection2, 38 /* & */, 162,0, TRUE} // 167 -- , {doSetAddAmp, 255, 141,0, FALSE} // 168 -- , {doSetIntersection2, 38 /* & */, 162,0, TRUE} // 169 set-lit-amp -- , {doSetAddAmp, 255, 141,0, FALSE} // 170 -- , {doSetBeginDifference1, 91 /* [ */, 123, 148, TRUE} // 171 set-set-dash -- , {doSetDifference2, 45 /* - */, 162,0, TRUE} // 172 -- , {doSetAddDash, 255, 141,0, FALSE} // 173 -- , {doSetDifference2, 45 /* - */, 162,0, TRUE} // 174 set-range-dash -- , {doSetAddDash, 255, 141,0, FALSE} // 175 -- , {doSetIntersection2, 38 /* & */, 162,0, TRUE} // 176 set-range-amp -- , {doSetAddAmp, 255, 141,0, FALSE} // 177 -- , {doSetDifference2, 45 /* - */, 162,0, TRUE} // 178 set-lit-dash -- , {doSetAddDash, 91 /* [ */, 141,0, FALSE} // 179 -- , {doSetAddDash, 93 /* ] */, 141,0, FALSE} // 180 -- , {doNOP, 92 /* \ */, 183,0, TRUE} // 181 -- , {doSetRange, 255, 155,0, TRUE} // 182 -- , {doSetOpError, 115 /* s */, 206,0, FALSE} // 183 set-lit-dash-escape -- , {doSetOpError, 83 /* S */, 206,0, FALSE} // 184 -- , {doSetOpError, 119 /* w */, 206,0, FALSE} // 185 -- , {doSetOpError, 87 /* W */, 206,0, FALSE} // 186 -- , {doSetOpError, 100 /* d */, 206,0, FALSE} // 187 -- , {doSetOpError, 68 /* D */, 206,0, FALSE} // 188 -- , {doSetNamedRange, 78 /* N */, 155,0, FALSE} // 189 -- , {doSetRange, 255, 155,0, TRUE} // 190 -- , {doSetProp, 112 /* p */, 148,0, FALSE} // 191 set-escape -- , {doSetProp, 80 /* P */, 148,0, FALSE} // 192 -- , {doSetNamedChar, 78 /* N */, 141,0, FALSE} // 193 -- , {doSetBackslash_s, 115 /* s */, 155,0, TRUE} // 194 -- , {doSetBackslash_S, 83 /* S */, 155,0, TRUE} // 195 -- , {doSetBackslash_w, 119 /* w */, 155,0, TRUE} // 196 -- , {doSetBackslash_W, 87 /* W */, 155,0, TRUE} // 197 -- , {doSetBackslash_d, 100 /* d */, 155,0, TRUE} // 198 -- , {doSetBackslash_D, 68 /* D */, 155,0, TRUE} // 199 -- , {doSetBackslash_h, 104 /* h */, 155,0, TRUE} // 200 -- , {doSetBackslash_H, 72 /* H */, 155,0, TRUE} // 201 -- , {doSetBackslash_v, 118 /* v */, 155,0, TRUE} // 202 -- , {doSetBackslash_V, 86 /* V */, 155,0, TRUE} // 203 -- , {doSetLiteralEscaped, 255, 141,0, TRUE} // 204 -- , {doSetFinish, 255, 14,0, FALSE} // 205 set-finish -- , {doExit, 255, 206,0, TRUE} // 206 errorDeath -+ {doNOP, 0, 0, 0, true} -+ , {doPatStart, 255, 2,0, false} // 1 start -+ , {doLiteralChar, 254, 14,0, true} // 2 term -+ , {doLiteralChar, 130, 14,0, true} // 3 -+ , {doSetBegin, 91 /* [ */, 123, 205, true} // 4 -+ , {doNOP, 40 /* ( */, 27,0, true} // 5 -+ , {doDotAny, 46 /* . */, 14,0, true} // 6 -+ , {doCaret, 94 /* ^ */, 14,0, true} // 7 -+ , {doDollar, 36 /* $ */, 14,0, true} // 8 -+ , {doNOP, 92 /* \ */, 89,0, true} // 9 -+ , {doOrOperator, 124 /* | */, 2,0, true} // 10 -+ , {doCloseParen, 41 /* ) */, 255,0, true} // 11 -+ , {doPatFinish, 253, 2,0, false} // 12 -+ , {doRuleError, 255, 206,0, false} // 13 -+ , {doNOP, 42 /* * */, 68,0, true} // 14 expr-quant -+ , {doNOP, 43 /* + */, 71,0, true} // 15 -+ , {doNOP, 63 /* ? */, 74,0, true} // 16 -+ , {doIntervalInit, 123 /* { */, 77,0, true} // 17 -+ , {doNOP, 40 /* ( */, 23,0, true} // 18 -+ , {doNOP, 255, 20,0, false} // 19 -+ , {doOrOperator, 124 /* | */, 2,0, true} // 20 expr-cont -+ , {doCloseParen, 41 /* ) */, 255,0, true} // 21 -+ , {doNOP, 255, 2,0, false} // 22 -+ , {doSuppressComments, 63 /* ? */, 25,0, true} // 23 open-paren-quant -+ , {doNOP, 255, 27,0, false} // 24 -+ , {doNOP, 35 /* # */, 50, 14, true} // 25 open-paren-quant2 -+ , {doNOP, 255, 29,0, false} // 26 -+ , {doSuppressComments, 63 /* ? */, 29,0, true} // 27 open-paren -+ , {doOpenCaptureParen, 255, 2, 14, false} // 28 -+ , {doOpenNonCaptureParen, 58 /* : */, 2, 14, true} // 29 open-paren-extended -+ , {doOpenAtomicParen, 62 /* > */, 2, 14, true} // 30 -+ , {doOpenLookAhead, 61 /* = */, 2, 20, true} // 31 -+ , {doOpenLookAheadNeg, 33 /* ! */, 2, 20, true} // 32 -+ , {doNOP, 60 /* < */, 46,0, true} // 33 -+ , {doNOP, 35 /* # */, 50, 2, true} // 34 -+ , {doBeginMatchMode, 105 /* i */, 53,0, false} // 35 -+ , {doBeginMatchMode, 100 /* d */, 53,0, false} // 36 -+ , {doBeginMatchMode, 109 /* m */, 53,0, false} // 37 -+ , {doBeginMatchMode, 115 /* s */, 53,0, false} // 38 -+ , {doBeginMatchMode, 117 /* u */, 53,0, false} // 39 -+ , {doBeginMatchMode, 119 /* w */, 53,0, false} // 40 -+ , {doBeginMatchMode, 120 /* x */, 53,0, false} // 41 -+ , {doBeginMatchMode, 45 /* - */, 53,0, false} // 42 -+ , {doConditionalExpr, 40 /* ( */, 206,0, true} // 43 -+ , {doPerlInline, 123 /* { */, 206,0, true} // 44 -+ , {doBadOpenParenType, 255, 206,0, false} // 45 -+ , {doOpenLookBehind, 61 /* = */, 2, 20, true} // 46 open-paren-lookbehind -+ , {doOpenLookBehindNeg, 33 /* ! */, 2, 20, true} // 47 -+ , {doBeginNamedCapture, 129, 64,0, false} // 48 -+ , {doBadOpenParenType, 255, 206,0, false} // 49 -+ , {doNOP, 41 /* ) */, 255,0, true} // 50 paren-comment -+ , {doMismatchedParenErr, 253, 206,0, false} // 51 -+ , {doNOP, 255, 50,0, true} // 52 -+ , {doMatchMode, 105 /* i */, 53,0, true} // 53 paren-flag -+ , {doMatchMode, 100 /* d */, 53,0, true} // 54 -+ , {doMatchMode, 109 /* m */, 53,0, true} // 55 -+ , {doMatchMode, 115 /* s */, 53,0, true} // 56 -+ , {doMatchMode, 117 /* u */, 53,0, true} // 57 -+ , {doMatchMode, 119 /* w */, 53,0, true} // 58 -+ , {doMatchMode, 120 /* x */, 53,0, true} // 59 -+ , {doMatchMode, 45 /* - */, 53,0, true} // 60 -+ , {doSetMatchMode, 41 /* ) */, 2,0, true} // 61 -+ , {doMatchModeParen, 58 /* : */, 2, 14, true} // 62 -+ , {doBadModeFlag, 255, 206,0, false} // 63 -+ , {doContinueNamedCapture, 129, 64,0, true} // 64 named-capture -+ , {doContinueNamedCapture, 128, 64,0, true} // 65 -+ , {doOpenCaptureParen, 62 /* > */, 2, 14, true} // 66 -+ , {doBadNamedCapture, 255, 206,0, false} // 67 -+ , {doNGStar, 63 /* ? */, 20,0, true} // 68 quant-star -+ , {doPossessiveStar, 43 /* + */, 20,0, true} // 69 -+ , {doStar, 255, 20,0, false} // 70 -+ , {doNGPlus, 63 /* ? */, 20,0, true} // 71 quant-plus -+ , {doPossessivePlus, 43 /* + */, 20,0, true} // 72 -+ , {doPlus, 255, 20,0, false} // 73 -+ , {doNGOpt, 63 /* ? */, 20,0, true} // 74 quant-opt -+ , {doPossessiveOpt, 43 /* + */, 20,0, true} // 75 -+ , {doOpt, 255, 20,0, false} // 76 -+ , {doNOP, 128, 79,0, false} // 77 interval-open -+ , {doIntervalError, 255, 206,0, false} // 78 -+ , {doIntevalLowerDigit, 128, 79,0, true} // 79 interval-lower -+ , {doNOP, 44 /* , */, 83,0, true} // 80 -+ , {doIntervalSame, 125 /* } */, 86,0, true} // 81 -+ , {doIntervalError, 255, 206,0, false} // 82 -+ , {doIntervalUpperDigit, 128, 83,0, true} // 83 interval-upper -+ , {doNOP, 125 /* } */, 86,0, true} // 84 -+ , {doIntervalError, 255, 206,0, false} // 85 -+ , {doNGInterval, 63 /* ? */, 20,0, true} // 86 interval-type -+ , {doPossessiveInterval, 43 /* + */, 20,0, true} // 87 -+ , {doInterval, 255, 20,0, false} // 88 -+ , {doBackslashA, 65 /* A */, 2,0, true} // 89 backslash -+ , {doBackslashB, 66 /* B */, 2,0, true} // 90 -+ , {doBackslashb, 98 /* b */, 2,0, true} // 91 -+ , {doBackslashd, 100 /* d */, 14,0, true} // 92 -+ , {doBackslashD, 68 /* D */, 14,0, true} // 93 -+ , {doBackslashG, 71 /* G */, 2,0, true} // 94 -+ , {doBackslashh, 104 /* h */, 14,0, true} // 95 -+ , {doBackslashH, 72 /* H */, 14,0, true} // 96 -+ , {doNOP, 107 /* k */, 115,0, true} // 97 -+ , {doNamedChar, 78 /* N */, 14,0, false} // 98 -+ , {doProperty, 112 /* p */, 14,0, false} // 99 -+ , {doProperty, 80 /* P */, 14,0, false} // 100 -+ , {doBackslashR, 82 /* R */, 14,0, true} // 101 -+ , {doEnterQuoteMode, 81 /* Q */, 2,0, true} // 102 -+ , {doBackslashS, 83 /* S */, 14,0, true} // 103 -+ , {doBackslashs, 115 /* s */, 14,0, true} // 104 -+ , {doBackslashv, 118 /* v */, 14,0, true} // 105 -+ , {doBackslashV, 86 /* V */, 14,0, true} // 106 -+ , {doBackslashW, 87 /* W */, 14,0, true} // 107 -+ , {doBackslashw, 119 /* w */, 14,0, true} // 108 -+ , {doBackslashX, 88 /* X */, 14,0, true} // 109 -+ , {doBackslashZ, 90 /* Z */, 2,0, true} // 110 -+ , {doBackslashz, 122 /* z */, 2,0, true} // 111 -+ , {doBackRef, 128, 14,0, true} // 112 -+ , {doEscapeError, 253, 206,0, false} // 113 -+ , {doEscapedLiteralChar, 255, 14,0, true} // 114 -+ , {doBeginNamedBackRef, 60 /* < */, 117,0, true} // 115 named-backref -+ , {doBadNamedCapture, 255, 206,0, false} // 116 -+ , {doContinueNamedBackRef, 129, 119,0, true} // 117 named-backref-2 -+ , {doBadNamedCapture, 255, 206,0, false} // 118 -+ , {doContinueNamedBackRef, 129, 119,0, true} // 119 named-backref-3 -+ , {doContinueNamedBackRef, 128, 119,0, true} // 120 -+ , {doCompleteNamedBackRef, 62 /* > */, 14,0, true} // 121 -+ , {doBadNamedCapture, 255, 206,0, false} // 122 -+ , {doSetNegate, 94 /* ^ */, 126,0, true} // 123 set-open -+ , {doSetPosixProp, 58 /* : */, 128,0, false} // 124 -+ , {doNOP, 255, 126,0, false} // 125 -+ , {doSetLiteral, 93 /* ] */, 141,0, true} // 126 set-open2 -+ , {doNOP, 255, 131,0, false} // 127 -+ , {doSetEnd, 93 /* ] */, 255,0, true} // 128 set-posix -+ , {doNOP, 58 /* : */, 131,0, false} // 129 -+ , {doRuleError, 255, 206,0, false} // 130 -+ , {doSetEnd, 93 /* ] */, 255,0, true} // 131 set-start -+ , {doSetBeginUnion, 91 /* [ */, 123, 148, true} // 132 -+ , {doNOP, 92 /* \ */, 191,0, true} // 133 -+ , {doNOP, 45 /* - */, 137,0, true} // 134 -+ , {doNOP, 38 /* & */, 139,0, true} // 135 -+ , {doSetLiteral, 255, 141,0, true} // 136 -+ , {doRuleError, 45 /* - */, 206,0, false} // 137 set-start-dash -+ , {doSetAddDash, 255, 141,0, false} // 138 -+ , {doRuleError, 38 /* & */, 206,0, false} // 139 set-start-amp -+ , {doSetAddAmp, 255, 141,0, false} // 140 -+ , {doSetEnd, 93 /* ] */, 255,0, true} // 141 set-after-lit -+ , {doSetBeginUnion, 91 /* [ */, 123, 148, true} // 142 -+ , {doNOP, 45 /* - */, 178,0, true} // 143 -+ , {doNOP, 38 /* & */, 169,0, true} // 144 -+ , {doNOP, 92 /* \ */, 191,0, true} // 145 -+ , {doSetNoCloseError, 253, 206,0, false} // 146 -+ , {doSetLiteral, 255, 141,0, true} // 147 -+ , {doSetEnd, 93 /* ] */, 255,0, true} // 148 set-after-set -+ , {doSetBeginUnion, 91 /* [ */, 123, 148, true} // 149 -+ , {doNOP, 45 /* - */, 171,0, true} // 150 -+ , {doNOP, 38 /* & */, 166,0, true} // 151 -+ , {doNOP, 92 /* \ */, 191,0, true} // 152 -+ , {doSetNoCloseError, 253, 206,0, false} // 153 -+ , {doSetLiteral, 255, 141,0, true} // 154 -+ , {doSetEnd, 93 /* ] */, 255,0, true} // 155 set-after-range -+ , {doSetBeginUnion, 91 /* [ */, 123, 148, true} // 156 -+ , {doNOP, 45 /* - */, 174,0, true} // 157 -+ , {doNOP, 38 /* & */, 176,0, true} // 158 -+ , {doNOP, 92 /* \ */, 191,0, true} // 159 -+ , {doSetNoCloseError, 253, 206,0, false} // 160 -+ , {doSetLiteral, 255, 141,0, true} // 161 -+ , {doSetBeginUnion, 91 /* [ */, 123, 148, true} // 162 set-after-op -+ , {doSetOpError, 93 /* ] */, 206,0, false} // 163 -+ , {doNOP, 92 /* \ */, 191,0, true} // 164 -+ , {doSetLiteral, 255, 141,0, true} // 165 -+ , {doSetBeginIntersection1, 91 /* [ */, 123, 148, true} // 166 set-set-amp -+ , {doSetIntersection2, 38 /* & */, 162,0, true} // 167 -+ , {doSetAddAmp, 255, 141,0, false} // 168 -+ , {doSetIntersection2, 38 /* & */, 162,0, true} // 169 set-lit-amp -+ , {doSetAddAmp, 255, 141,0, false} // 170 -+ , {doSetBeginDifference1, 91 /* [ */, 123, 148, true} // 171 set-set-dash -+ , {doSetDifference2, 45 /* - */, 162,0, true} // 172 -+ , {doSetAddDash, 255, 141,0, false} // 173 -+ , {doSetDifference2, 45 /* - */, 162,0, true} // 174 set-range-dash -+ , {doSetAddDash, 255, 141,0, false} // 175 -+ , {doSetIntersection2, 38 /* & */, 162,0, true} // 176 set-range-amp -+ , {doSetAddAmp, 255, 141,0, false} // 177 -+ , {doSetDifference2, 45 /* - */, 162,0, true} // 178 set-lit-dash -+ , {doSetAddDash, 91 /* [ */, 141,0, false} // 179 -+ , {doSetAddDash, 93 /* ] */, 141,0, false} // 180 -+ , {doNOP, 92 /* \ */, 183,0, true} // 181 -+ , {doSetRange, 255, 155,0, true} // 182 -+ , {doSetOpError, 115 /* s */, 206,0, false} // 183 set-lit-dash-escape -+ , {doSetOpError, 83 /* S */, 206,0, false} // 184 -+ , {doSetOpError, 119 /* w */, 206,0, false} // 185 -+ , {doSetOpError, 87 /* W */, 206,0, false} // 186 -+ , {doSetOpError, 100 /* d */, 206,0, false} // 187 -+ , {doSetOpError, 68 /* D */, 206,0, false} // 188 -+ , {doSetNamedRange, 78 /* N */, 155,0, false} // 189 -+ , {doSetRange, 255, 155,0, true} // 190 -+ , {doSetProp, 112 /* p */, 148,0, false} // 191 set-escape -+ , {doSetProp, 80 /* P */, 148,0, false} // 192 -+ , {doSetNamedChar, 78 /* N */, 141,0, false} // 193 -+ , {doSetBackslash_s, 115 /* s */, 155,0, true} // 194 -+ , {doSetBackslash_S, 83 /* S */, 155,0, true} // 195 -+ , {doSetBackslash_w, 119 /* w */, 155,0, true} // 196 -+ , {doSetBackslash_W, 87 /* W */, 155,0, true} // 197 -+ , {doSetBackslash_d, 100 /* d */, 155,0, true} // 198 -+ , {doSetBackslash_D, 68 /* D */, 155,0, true} // 199 -+ , {doSetBackslash_h, 104 /* h */, 155,0, true} // 200 -+ , {doSetBackslash_H, 72 /* H */, 155,0, true} // 201 -+ , {doSetBackslash_v, 118 /* v */, 155,0, true} // 202 -+ , {doSetBackslash_V, 86 /* V */, 155,0, true} // 203 -+ , {doSetLiteralEscaped, 255, 141,0, true} // 204 -+ , {doSetFinish, 255, 14,0, false} // 205 set-finish -+ , {doExit, 255, 206,0, true} // 206 errorDeath - }; - static const char * const RegexStateNames[] = { 0, - "start", -diff --git a/deps/icu-small/source/i18n/regexcst.pl b/deps/icu-small/source/i18n/regexcst.pl -index 7636757331..24596d4122 100755 ---- a/deps/icu-small/source/i18n/regexcst.pl -+++ b/deps/icu-small/source/i18n/regexcst.pl -@@ -110,9 +110,9 @@ line_loop: while (<>) { - # - # do the 'n' flag - # -- $state_flag[$num_states] = "FALSE"; -+ $state_flag[$num_states] = "false"; - if ($fields[0] eq "n") { -- $state_flag[$num_states] = "TRUE"; -+ $state_flag[$num_states] = "true"; - shift @fields; - } - -@@ -282,7 +282,7 @@ print "};\n\n"; - # emit the state transition table - # - print "static const struct RegexTableEl gRuleParseStateTable[] = {\n"; --print " {doNOP, 0, 0, 0, TRUE}\n"; # State 0 is a dummy. Real states start with index = 1. -+print " {doNOP, 0, 0, 0, true}\n"; # State 0 is a dummy. Real states start with index = 1. - for ($state=1; $state < $num_states; $state++) { - print " , {$state_func_name[$state],"; - if ($state_literal_chars[$state] ne "") { -diff --git a/deps/icu-small/source/i18n/regexst.cpp b/deps/icu-small/source/i18n/regexst.cpp -index 97e417ab5a..dc01327a02 100644 ---- a/deps/icu-small/source/i18n/regexst.cpp -+++ b/deps/icu-small/source/i18n/regexst.cpp -@@ -69,7 +69,7 @@ constexpr char16_t const *gGC_LVTPattern = u"[\\p{Hangul_Syllable_Type=LVT}] - - - RegexStaticSets *RegexStaticSets::gStaticSets = nullptr; --UInitOnce gStaticSetsInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce gStaticSetsInitOnce {}; - - - RegexStaticSets::RegexStaticSets(UErrorCode *status) { -@@ -77,13 +77,13 @@ RegexStaticSets::RegexStaticSets(UErrorCode *status) { - fUnescapeCharSet.addAll(UnicodeString(true, gUnescapeChars, -1)).freeze(); - fPropSets[URX_ISWORD_SET].applyPattern(UnicodeString(true, gIsWordPattern, -1), *status).freeze(); - fPropSets[URX_ISSPACE_SET].applyPattern(UnicodeString(true, gIsSpacePattern, -1), *status).freeze(); -- fPropSets[URX_GC_EXTEND].applyPattern(UnicodeString(TRUE, gGC_ExtendPattern, -1), *status).freeze(); -- fPropSets[URX_GC_CONTROL].applyPattern(UnicodeString(TRUE, gGC_ControlPattern, -1), *status).freeze(); -- fPropSets[URX_GC_L].applyPattern(UnicodeString(TRUE, gGC_LPattern, -1), *status).freeze(); -- fPropSets[URX_GC_V].applyPattern(UnicodeString(TRUE, gGC_VPattern, -1), *status).freeze(); -- fPropSets[URX_GC_T].applyPattern(UnicodeString(TRUE, gGC_TPattern, -1), *status).freeze(); -- fPropSets[URX_GC_LV].applyPattern(UnicodeString(TRUE, gGC_LVPattern, -1), *status).freeze(); -- fPropSets[URX_GC_LVT].applyPattern(UnicodeString(TRUE, gGC_LVTPattern, -1), *status).freeze(); -+ fPropSets[URX_GC_EXTEND].applyPattern(UnicodeString(true, gGC_ExtendPattern, -1), *status).freeze(); -+ fPropSets[URX_GC_CONTROL].applyPattern(UnicodeString(true, gGC_ControlPattern, -1), *status).freeze(); -+ fPropSets[URX_GC_L].applyPattern(UnicodeString(true, gGC_LPattern, -1), *status).freeze(); -+ fPropSets[URX_GC_V].applyPattern(UnicodeString(true, gGC_VPattern, -1), *status).freeze(); -+ fPropSets[URX_GC_T].applyPattern(UnicodeString(true, gGC_TPattern, -1), *status).freeze(); -+ fPropSets[URX_GC_LV].applyPattern(UnicodeString(true, gGC_LVPattern, -1), *status).freeze(); -+ fPropSets[URX_GC_LVT].applyPattern(UnicodeString(true, gGC_LVTPattern, -1), *status).freeze(); - - - // -@@ -147,7 +147,7 @@ regex_cleanup(void) { - delete RegexStaticSets::gStaticSets; - RegexStaticSets::gStaticSets = nullptr; - gStaticSetsInitOnce.reset(); -- return TRUE; -+ return true; - } - - static void U_CALLCONV initStaticSets(UErrorCode &status) { -diff --git a/deps/icu-small/source/i18n/region.cpp b/deps/icu-small/source/i18n/region.cpp -index 277a22fd09..6a0c05fc78 100644 ---- a/deps/icu-small/source/i18n/region.cpp -+++ b/deps/icu-small/source/i18n/region.cpp -@@ -46,14 +46,14 @@ static UBool U_CALLCONV region_cleanup(void) - { - icu::Region::cleanupRegionData(); - -- return TRUE; -+ return true; - } - - U_CDECL_END - - U_NAMESPACE_BEGIN - --static UInitOnce gRegionDataInitOnce = U_INITONCE_INITIALIZER; -+static UInitOnce gRegionDataInitOnce {}; - static UVector* availableRegions[URGN_LIMIT]; - - static UHashtable *regionAliases = NULL; -@@ -668,21 +668,21 @@ Region::contains(const Region &other) const { - umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); - - if (!containedRegions) { -- return FALSE; -+ return false; - } - if (containedRegions->contains((void *)&other.idStr)) { -- return TRUE; -+ return true; - } else { - for ( int32_t i = 0 ; i < containedRegions->size() ; i++ ) { - UnicodeString *crStr = (UnicodeString *)containedRegions->elementAt(i); - Region *cr = (Region *) uhash_get(regionIDMap,(void *)crStr); - if ( cr && cr->contains(other) ) { -- return TRUE; -+ return true; - } - } - } - -- return FALSE; -+ return false; - } - - /** -diff --git a/deps/icu-small/source/i18n/reldatefmt.cpp b/deps/icu-small/source/i18n/reldatefmt.cpp -index 6ef5160798..e811eac2c8 100644 ---- a/deps/icu-small/source/i18n/reldatefmt.cpp -+++ b/deps/icu-small/source/i18n/reldatefmt.cpp -@@ -16,6 +16,8 @@ - - #include - #include -+#include "unicode/calendar.h" -+#include "unicode/datefmt.h" - #include "unicode/dtfmtsym.h" - #include "unicode/ucasemap.h" - #include "unicode/ureldatefmt.h" -@@ -184,22 +186,6 @@ const UnicodeString& RelativeDateTimeCacheData::getAbsoluteUnitString( - return nullptr; // No formatter found. - } - --static UBool getStringWithFallback( -- const UResourceBundle *resource, -- const char *key, -- UnicodeString &result, -- UErrorCode &status) { -- int32_t len = 0; -- const UChar *resStr = ures_getStringByKeyWithFallback( -- resource, key, &len, &status); -- if (U_FAILURE(status)) { -- return FALSE; -- } -- result.setTo(TRUE, resStr, len); -- return TRUE; --} -- -- - static UBool getStringByIndex( - const UResourceBundle *resource, - int32_t idx, -@@ -209,10 +195,10 @@ static UBool getStringByIndex( - const UChar *resStr = ures_getStringByIndex( - resource, idx, &len, &status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } -- result.setTo(TRUE, resStr, len); -- return TRUE; -+ result.setTo(true, resStr, len); -+ return true; - } - - namespace { -@@ -661,39 +647,61 @@ static UBool loadUnitData( - return U_SUCCESS(status); - } - -+static const int32_t cTypeBufMax = 32; -+ - static UBool getDateTimePattern( -+ Locale locale, - const UResourceBundle *resource, - UnicodeString &result, - UErrorCode &status) { -- UnicodeString defaultCalendarName; -- if (!getStringWithFallback( -- resource, -- "calendar/default", -- defaultCalendarName, -- status)) { -- return FALSE; -+ if (U_FAILURE(status)) { -+ return false; -+ } -+ char cType[cTypeBufMax + 1]; -+ Calendar::getCalendarTypeFromLocale(locale, cType, cTypeBufMax, status); -+ cType[cTypeBufMax] = 0; -+ if (U_FAILURE(status) || cType[0] == 0) { -+ status = U_ZERO_ERROR; -+ uprv_strcpy(cType, "gregorian"); - } -+ -+ LocalUResourceBundlePointer topLevel; -+ int32_t dateTimeFormatOffset = DateFormat::kMedium; - CharString pathBuffer; -+ // Currently, for compatibility with pre-CLDR-42 data, we default to the "atTime" -+ // combining patterns. Depending on guidance in CLDR 42 spec and on DisplayOptions, -+ // we may change this. - pathBuffer.append("calendar/", status) -- .appendInvariantChars(defaultCalendarName, status) -- .append("/DateTimePatterns", status); -- LocalUResourceBundlePointer topLevel( -+ .append(cType, status) -+ .append("/DateTimePatterns%atTime", status); -+ topLevel.adoptInstead( - ures_getByKeyWithFallback( - resource, pathBuffer.data(), nullptr, &status)); -+ if (U_FAILURE(status) || ures_getSize(topLevel.getAlias()) < 4) { -+ // Fall back to standard combining patterns -+ status = U_ZERO_ERROR; -+ dateTimeFormatOffset = DateFormat::kDateTime; -+ pathBuffer.clear(); -+ pathBuffer.append("calendar/", status) -+ .append(cType, status) -+ .append("/DateTimePatterns", status); -+ topLevel.adoptInstead( -+ ures_getByKeyWithFallback( -+ resource, pathBuffer.data(), nullptr, &status)); -+ } - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } -- int32_t size = ures_getSize(topLevel.getAlias()); -- if (size <= 8) { -+ if (dateTimeFormatOffset == DateFormat::kDateTime && ures_getSize(topLevel.getAlias()) <= DateFormat::kDateTime) { - // Oops, size is too small to access the index that we want, fallback - // to a hard-coded value. - result = UNICODE_STRING_SIMPLE("{1} {0}"); -- return TRUE; -+ return true; - } -- return getStringByIndex(topLevel.getAlias(), 8, result, status); -+ return getStringByIndex(topLevel.getAlias(), dateTimeFormatOffset, result, status); - } - --template<> U_I18N_API -+template<> - const RelativeDateTimeCacheData *LocaleCacheKey::createObject(const void * /*unused*/, UErrorCode &status) const { - const char *localeId = fLoc.getName(); - LocalUResourceBundlePointer topLevel(ures_open(nullptr, localeId, &status)); -@@ -714,7 +722,7 @@ const RelativeDateTimeCacheData *LocaleCacheKey::crea - return nullptr; - } - UnicodeString dateTimePattern; -- if (!getDateTimePattern(topLevel.getAlias(), dateTimePattern, status)) { -+ if (!getDateTimePattern(fLoc, topLevel.getAlias(), dateTimePattern, status)) { - return nullptr; - } - result->adoptCombinedDateAndTime( -@@ -1204,9 +1212,9 @@ UBool RelativeDateTimeFormatter::checkNoAdjustForContext(UErrorCode& status) con - // casing. The code could be written and tested if there is demand. - if (fOptBreakIterator != nullptr) { - status = U_UNSUPPORTED_ERROR; -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - void RelativeDateTimeFormatter::init( -diff --git a/deps/icu-small/source/i18n/reldtfmt.cpp b/deps/icu-small/source/i18n/reldtfmt.cpp -index 5fdef1c0d6..f381bf8981 100644 ---- a/deps/icu-small/source/i18n/reldtfmt.cpp -+++ b/deps/icu-small/source/i18n/reldtfmt.cpp -@@ -71,8 +71,8 @@ RelativeDateFormat::RelativeDateFormat( UDateFormatStyle timeStyle, UDateFormatS - const Locale& locale, UErrorCode& status) : - DateFormat(), fDateTimeFormatter(NULL), fDatePattern(), fTimePattern(), fCombinedFormat(NULL), - fDateStyle(dateStyle), fLocale(locale), fDatesLen(0), fDates(NULL), -- fCombinedHasDateAtStart(FALSE), fCapitalizationInfoSet(FALSE), -- fCapitalizationOfRelativeUnitsForUIListMenu(FALSE), fCapitalizationOfRelativeUnitsForStandAlone(FALSE), -+ fCombinedHasDateAtStart(false), fCapitalizationInfoSet(false), -+ fCapitalizationOfRelativeUnitsForUIListMenu(false), fCapitalizationOfRelativeUnitsForStandAlone(false), - fCapitalizationBrkIter(NULL) - { - if(U_FAILURE(status) ) { -@@ -246,13 +246,13 @@ void RelativeDateFormat::parse( const UnicodeString& text, - } else if (fTimePattern.isEmpty() || fCombinedFormat == NULL) { - // no time pattern or way to combine, try parsing as date - // first check whether text matches a relativeDayString -- UBool matchedRelative = FALSE; -+ UBool matchedRelative = false; - for (int n=0; n < fDatesLen && !matchedRelative; n++) { - if (fDates[n].string != NULL && - text.compare(startIndex, fDates[n].len, fDates[n].string) == 0) { - // it matched, handle the relative day string - UErrorCode status = U_ZERO_ERROR; -- matchedRelative = TRUE; -+ matchedRelative = true; - - // Set the calendar to now+offset - cal.setTime(Calendar::getNow(),status); -@@ -424,7 +424,7 @@ RelativeDateFormat::setContext(UDisplayContext value, UErrorCode& status) - if (!fCapitalizationInfoSet && - (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE)) { - initCapitalizationContextInfo(fLocale); -- fCapitalizationInfoSet = TRUE; -+ fCapitalizationInfoSet = true; - } - #if !UCONFIG_NO_BREAK_ITERATION - if ( fCapitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE || -@@ -536,9 +536,9 @@ void RelativeDateFormat::loadDates(UErrorCode &status) { - - const UChar *resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), glueIndex, &resStrLen, &status); - if (U_SUCCESS(status) && resStrLen >= patItem1Len && u_strncmp(resStr,patItem1,patItem1Len)==0) { -- fCombinedHasDateAtStart = TRUE; -+ fCombinedHasDateAtStart = true; - } -- fCombinedFormat = new SimpleFormatter(UnicodeString(TRUE, resStr, resStrLen), 2, 2, status); -+ fCombinedFormat = new SimpleFormatter(UnicodeString(true, resStr, resStrLen), 2, 2, status); - } - } - -diff --git a/deps/icu-small/source/i18n/rematch.cpp b/deps/icu-small/source/i18n/rematch.cpp -index 7d6eaeed8b..e74ca3a659 100644 ---- a/deps/icu-small/source/i18n/rematch.cpp -+++ b/deps/icu-small/source/i18n/rematch.cpp -@@ -98,7 +98,7 @@ RegexMatcher::RegexMatcher(const UnicodeString ®exp, const UnicodeString &inp - init2(&inputText, status); - utext_close(&inputText); - -- fInputUniStrMaybeMutable = TRUE; -+ fInputUniStrMaybeMutable = true; - } - - -@@ -200,15 +200,15 @@ void RegexMatcher::init(UErrorCode &status) { - fLookLimit = 0; - fActiveStart = 0; - fActiveLimit = 0; -- fTransparentBounds = FALSE; -- fAnchoringBounds = TRUE; -- fMatch = FALSE; -+ fTransparentBounds = false; -+ fAnchoringBounds = true; -+ fMatch = false; - fMatchStart = 0; - fMatchEnd = 0; - fLastMatchEnd = -1; - fAppendPosition = 0; -- fHitEnd = FALSE; -- fRequireEnd = FALSE; -+ fHitEnd = false; -+ fRequireEnd = false; - fStack = NULL; - fFrame = NULL; - fTimeLimit = 0; -@@ -219,7 +219,7 @@ void RegexMatcher::init(UErrorCode &status) { - fCallbackContext = NULL; - fFindProgressCallbackFn = NULL; - fFindProgressCallbackContext = NULL; -- fTraceDebug = FALSE; -+ fTraceDebug = false; - fDeferredStatus = status; - fData = fSmallData; - fWordBreakItr = NULL; -@@ -230,7 +230,7 @@ void RegexMatcher::init(UErrorCode &status) { - fAltInputText = NULL; - fInput = NULL; - fInputLength = 0; -- fInputUniStrMaybeMutable = FALSE; -+ fInputUniStrMaybeMutable = false; - } - - // -@@ -309,7 +309,7 @@ RegexMatcher &RegexMatcher::appendReplacement(UText *dest, - status = fDeferredStatus; - return *this; - } -- if (fMatch == FALSE) { -+ if (fMatch == false) { - status = U_REGEX_INVALID_STATE; - return *this; - } -@@ -449,7 +449,7 @@ RegexMatcher &RegexMatcher::appendReplacement(UText *dest, - if (nextChar == U_SENTINEL) { - break; - } -- if (u_isdigit(nextChar) == FALSE) { -+ if (u_isdigit(nextChar) == false) { - break; - } - int32_t nextDigitVal = u_charDigitValue(nextChar); -@@ -561,7 +561,7 @@ int64_t RegexMatcher::end64(int32_t group, UErrorCode &err) const { - if (U_FAILURE(err)) { - return -1; - } -- if (fMatch == FALSE) { -+ if (fMatch == false) { - err = U_REGEX_INVALID_STATE; - return -1; - } -@@ -594,16 +594,16 @@ int32_t RegexMatcher::end(int32_t group, UErrorCode &err) const { - // string from the find() function, and calls the user progress callback - // function if there is one installed. - // --// Return: TRUE if the find operation is to be terminated. --// FALSE if the find operation is to continue running. -+// Return: true if the find operation is to be terminated. -+// false if the find operation is to continue running. - // - //-------------------------------------------------------------------------------- - UBool RegexMatcher::findProgressInterrupt(int64_t pos, UErrorCode &status) { - if (fFindProgressCallbackFn && !(*fFindProgressCallbackFn)(fFindProgressCallbackContext, pos)) { - status = U_REGEX_STOPPED_BY_CALLER; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - //-------------------------------------------------------------------------------- -@@ -613,7 +613,7 @@ UBool RegexMatcher::findProgressInterrupt(int64_t pos, UErrorCode &status) { - //-------------------------------------------------------------------------------- - UBool RegexMatcher::find() { - if (U_FAILURE(fDeferredStatus)) { -- return FALSE; -+ return false; - } - UErrorCode status = U_ZERO_ERROR; - UBool result = find(status); -@@ -630,11 +630,11 @@ UBool RegexMatcher::find(UErrorCode &status) { - // matcher has been reset.) - // - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (U_FAILURE(fDeferredStatus)) { - status = fDeferredStatus; -- return FALSE; -+ return false; - } - - if (UTEXT_FULL_TEXT_IN_CHUNK(fInputText, fInputLength)) { -@@ -654,9 +654,9 @@ UBool RegexMatcher::find(UErrorCode &status) { - // Previous match had zero length. Move start position up one position - // to avoid sending find() into a loop on zero-length matches. - if (startPos >= fActiveLimit) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - UTEXT_SETNATIVEINDEX(fInputText, startPos); - (void)UTEXT_NEXT32(fInputText); -@@ -667,8 +667,8 @@ UBool RegexMatcher::find(UErrorCode &status) { - // A previous find() failed to match. Don't try again. - // (without this test, a pattern with a zero-length match - // could match again at the end of an input string.) -- fHitEnd = TRUE; -- return FALSE; -+ fHitEnd = true; -+ return false; - } - } - -@@ -681,9 +681,9 @@ UBool RegexMatcher::find(UErrorCode &status) { - if (UTEXT_USES_U16(fInputText)) { - testStartLimit = fActiveLimit - fPattern->fMinMatchLen; - if (startPos > testStartLimit) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - } else { - // We don't know exactly how long the minimum match length is in native characters. -@@ -699,16 +699,16 @@ UBool RegexMatcher::find(UErrorCode &status) { - // No optimization was found. - // Try a match at each input position. - for (;;) { -- MatchAt(startPos, FALSE, status); -+ MatchAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - if (startPos >= testStartLimit) { -- fHitEnd = TRUE; -- return FALSE; -+ fHitEnd = true; -+ return false; - } - UTEXT_SETNATIVEINDEX(fInputText, startPos); - (void)UTEXT_NEXT32(fInputText); -@@ -717,7 +717,7 @@ UBool RegexMatcher::find(UErrorCode &status) { - // match at the end of a string, so we must make sure that the loop - // runs with startPos == testStartLimit the last time through. - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - UPRV_UNREACHABLE_EXIT; - -@@ -725,12 +725,12 @@ UBool RegexMatcher::find(UErrorCode &status) { - // Matches are only possible at the start of the input string - // (pattern begins with ^ or \A) - if (startPos > fActiveStart) { -- fMatch = FALSE; -- return FALSE; -+ fMatch = false; -+ return false; - } -- MatchAt(startPos, FALSE, status); -+ MatchAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - return fMatch; - -@@ -749,22 +749,22 @@ UBool RegexMatcher::find(UErrorCode &status) { - // and handle end of text in the following block. - if (c >= 0 && ((c<256 && fPattern->fInitialChars8->contains(c)) || - (c>=256 && fPattern->fInitialChars->contains(c)))) { -- MatchAt(pos, FALSE, status); -+ MatchAt(pos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - UTEXT_SETNATIVEINDEX(fInputText, pos); - } - if (startPos > testStartLimit) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } - UPRV_UNREACHABLE_EXIT; -@@ -781,22 +781,22 @@ UBool RegexMatcher::find(UErrorCode &status) { - c = UTEXT_NEXT32(fInputText); - startPos = UTEXT_GETNATIVEINDEX(fInputText); - if (c == theChar) { -- MatchAt(pos, FALSE, status); -+ MatchAt(pos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - UTEXT_SETNATIVEINDEX(fInputText, startPos); - } - if (startPos > testStartLimit) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } - UPRV_UNREACHABLE_EXIT; -@@ -805,12 +805,12 @@ UBool RegexMatcher::find(UErrorCode &status) { - { - UChar32 ch; - if (startPos == fAnchorStart) { -- MatchAt(startPos, FALSE, status); -+ MatchAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - UTEXT_SETNATIVEINDEX(fInputText, startPos); - ch = UTEXT_NEXT32(fInputText); -@@ -824,19 +824,19 @@ UBool RegexMatcher::find(UErrorCode &status) { - if (fPattern->fFlags & UREGEX_UNIX_LINES) { - for (;;) { - if (ch == 0x0a) { -- MatchAt(startPos, FALSE, status); -+ MatchAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - UTEXT_SETNATIVEINDEX(fInputText, startPos); - } - if (startPos >= testStartLimit) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - ch = UTEXT_NEXT32(fInputText); - startPos = UTEXT_GETNATIVEINDEX(fInputText); -@@ -844,7 +844,7 @@ UBool RegexMatcher::find(UErrorCode &status) { - // match at the end of a string, so we must make sure that the loop - // runs with startPos == testStartLimit the last time through. - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } else { - for (;;) { -@@ -853,19 +853,19 @@ UBool RegexMatcher::find(UErrorCode &status) { - (void)UTEXT_NEXT32(fInputText); - startPos = UTEXT_GETNATIVEINDEX(fInputText); - } -- MatchAt(startPos, FALSE, status); -+ MatchAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - UTEXT_SETNATIVEINDEX(fInputText, startPos); - } - if (startPos >= testStartLimit) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - ch = UTEXT_NEXT32(fInputText); - startPos = UTEXT_GETNATIVEINDEX(fInputText); -@@ -873,7 +873,7 @@ UBool RegexMatcher::find(UErrorCode &status) { - // match at the end of a string, so we must make sure that the loop - // runs with startPos == testStartLimit the last time through. - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } - } -@@ -884,7 +884,7 @@ UBool RegexMatcher::find(UErrorCode &status) { - // we have reports of this in production code, don't use UPRV_UNREACHABLE_EXIT. - // See ICU-21669. - status = U_INTERNAL_PROGRAM_ERROR; -- return FALSE; -+ return false; - } - - UPRV_UNREACHABLE_EXIT; -@@ -894,23 +894,23 @@ UBool RegexMatcher::find(UErrorCode &status) { - - UBool RegexMatcher::find(int64_t start, UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (U_FAILURE(fDeferredStatus)) { - status = fDeferredStatus; -- return FALSE; -+ return false; - } - this->reset(); // Note: Reset() is specified by Java Matcher documentation. - // This will reset the region to be the full input length. - if (start < 0) { - status = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - - int64_t nativeStart = start; - if (nativeStart < fActiveStart || nativeStart > fActiveLimit) { - status = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - fMatchEnd = nativeStart; - return find(status); -@@ -943,9 +943,9 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - // Previous match had zero length. Move start position up one position - // to avoid sending find() into a loop on zero-length matches. - if (startPos >= fActiveLimit) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - U16_FWD_1(inputBuf, startPos, fInputLength); - } -@@ -954,8 +954,8 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - // A previous find() failed to match. Don't try again. - // (without this test, a pattern with a zero-length match - // could match again at the end of an input string.) -- fHitEnd = TRUE; -- return FALSE; -+ fHitEnd = true; -+ return false; - } - } - -@@ -967,9 +967,9 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - // Note: a match can begin at inputBuf + testLen; it is an inclusive limit. - int32_t testLen = (int32_t)(fActiveLimit - fPattern->fMinMatchLen); - if (startPos > testLen) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - - UChar32 c; -@@ -980,23 +980,23 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - // No optimization was found. - // Try a match at each input position. - for (;;) { -- MatchChunkAt(startPos, FALSE, status); -+ MatchChunkAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - if (startPos >= testLen) { -- fHitEnd = TRUE; -- return FALSE; -+ fHitEnd = true; -+ return false; - } - U16_FWD_1(inputBuf, startPos, fActiveLimit); - // Note that it's perfectly OK for a pattern to have a zero-length - // match at the end of a string, so we must make sure that the loop - // runs with startPos == testLen the last time through. - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - UPRV_UNREACHABLE_EXIT; - -@@ -1004,12 +1004,12 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - // Matches are only possible at the start of the input string - // (pattern begins with ^ or \A) - if (startPos > fActiveStart) { -- fMatch = FALSE; -- return FALSE; -+ fMatch = false; -+ return false; - } -- MatchChunkAt(startPos, FALSE, status); -+ MatchChunkAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - return fMatch; - -@@ -1023,21 +1023,21 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - U16_NEXT(inputBuf, startPos, fActiveLimit, c); // like c = inputBuf[startPos++]; - if ((c<256 && fPattern->fInitialChars8->contains(c)) || - (c>=256 && fPattern->fInitialChars->contains(c))) { -- MatchChunkAt(pos, FALSE, status); -+ MatchChunkAt(pos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - } - if (startPos > testLen) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } - UPRV_UNREACHABLE_EXIT; -@@ -1052,21 +1052,21 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - int32_t pos = startPos; - U16_NEXT(inputBuf, startPos, fActiveLimit, c); // like c = inputBuf[startPos++]; - if (c == theChar) { -- MatchChunkAt(pos, FALSE, status); -+ MatchChunkAt(pos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - } - if (startPos > testLen) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } - UPRV_UNREACHABLE_EXIT; -@@ -1075,12 +1075,12 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - { - UChar32 ch; - if (startPos == fAnchorStart) { -- MatchChunkAt(startPos, FALSE, status); -+ MatchChunkAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - U16_FWD_1(inputBuf, startPos, fActiveLimit); - } -@@ -1089,25 +1089,25 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - for (;;) { - ch = inputBuf[startPos-1]; - if (ch == 0x0a) { -- MatchChunkAt(startPos, FALSE, status); -+ MatchChunkAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - } - if (startPos >= testLen) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - U16_FWD_1(inputBuf, startPos, fActiveLimit); - // Note that it's perfectly OK for a pattern to have a zero-length - // match at the end of a string, so we must make sure that the loop - // runs with startPos == testLen the last time through. - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } else { - for (;;) { -@@ -1116,25 +1116,25 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - if (ch == 0x0d && startPos < fActiveLimit && inputBuf[startPos] == 0x0a) { - startPos++; - } -- MatchChunkAt(startPos, FALSE, status); -+ MatchChunkAt(startPos, false, status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (fMatch) { -- return TRUE; -+ return true; - } - } - if (startPos >= testLen) { -- fMatch = FALSE; -- fHitEnd = TRUE; -- return FALSE; -+ fMatch = false; -+ fHitEnd = true; -+ return false; - } - U16_FWD_1(inputBuf, startPos, fActiveLimit); - // Note that it's perfectly OK for a pattern to have a zero-length - // match at the end of a string, so we must make sure that the loop - // runs with startPos == testLen the last time through. - if (findProgressInterrupt(startPos, status)) -- return FALSE; -+ return false; - } - } - } -@@ -1145,7 +1145,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { - // we have reports of this in production code, don't use UPRV_UNREACHABLE_EXIT. - // See ICU-21669. - status = U_INTERNAL_PROGRAM_ERROR; -- return FALSE; -+ return false; - } - - UPRV_UNREACHABLE_EXIT; -@@ -1175,7 +1175,7 @@ UText *RegexMatcher::group(int32_t groupNum, UText *dest, int64_t &group_len, UE - } - if (U_FAILURE(fDeferredStatus)) { - status = fDeferredStatus; -- } else if (fMatch == FALSE) { -+ } else if (fMatch == false) { - status = U_REGEX_INVALID_STATE; - } else if (groupNum < 0 || groupNum > fPattern->fGroupMap->size()) { - status = U_INDEX_OUTOFBOUNDS_ERROR; -@@ -1199,12 +1199,12 @@ UText *RegexMatcher::group(int32_t groupNum, UText *dest, int64_t &group_len, UE - - if (s < 0) { - // A capture group wasn't part of the match -- return utext_clone(dest, fInputText, FALSE, TRUE, &status); -+ return utext_clone(dest, fInputText, false, true, &status); - } - U_ASSERT(s <= e); - group_len = e - s; - -- dest = utext_clone(dest, fInputText, FALSE, TRUE, &status); -+ dest = utext_clone(dest, fInputText, false, true, &status); - if (dest) - UTEXT_SETNATIVEINDEX(dest, s); - return dest; -@@ -1255,7 +1255,7 @@ int64_t RegexMatcher::appendGroup(int32_t groupNum, UText *dest, UErrorCode &sta - } - int64_t destLen = utext_nativeLength(dest); - -- if (fMatch == FALSE) { -+ if (fMatch == false) { - status = U_REGEX_INVALID_STATE; - return utext_replace(dest, destLen, destLen, NULL, 0, &status); - } -@@ -1425,14 +1425,14 @@ UText *RegexMatcher::getInput (UText *dest, UErrorCode &status) const { - } - return dest; - } else { -- return utext_clone(NULL, fInputText, FALSE, TRUE, &status); -+ return utext_clone(NULL, fInputText, false, true, &status); - } - } - - - static UBool compat_SyncMutableUTextContents(UText *ut); - static UBool compat_SyncMutableUTextContents(UText *ut) { -- UBool retVal = FALSE; -+ UBool retVal = false; - - // In the following test, we're really only interested in whether the UText should switch - // between heap and stack allocation. If length hasn't changed, we won't, so the chunkContents -@@ -1450,7 +1450,7 @@ static UBool compat_SyncMutableUTextContents(UText *ut) { - ut->chunkLength = newLength; - ut->chunkNativeLimit = newLength; - ut->nativeIndexingLimit = newLength; -- retVal = TRUE; -+ retVal = true; - } - - return retVal; -@@ -1463,11 +1463,11 @@ static UBool compat_SyncMutableUTextContents(UText *ut) { - //-------------------------------------------------------------------------------- - UBool RegexMatcher::lookingAt(UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (U_FAILURE(fDeferredStatus)) { - status = fDeferredStatus; -- return FALSE; -+ return false; - } - - if (fInputUniStrMaybeMutable) { -@@ -1480,9 +1480,9 @@ UBool RegexMatcher::lookingAt(UErrorCode &status) { - resetPreserveRegion(); - } - if (UTEXT_FULL_TEXT_IN_CHUNK(fInputText, fInputLength)) { -- MatchChunkAt((int32_t)fActiveStart, FALSE, status); -+ MatchChunkAt((int32_t)fActiveStart, false, status); - } else { -- MatchAt(fActiveStart, FALSE, status); -+ MatchAt(fActiveStart, false, status); - } - return fMatch; - } -@@ -1490,17 +1490,17 @@ UBool RegexMatcher::lookingAt(UErrorCode &status) { - - UBool RegexMatcher::lookingAt(int64_t start, UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (U_FAILURE(fDeferredStatus)) { - status = fDeferredStatus; -- return FALSE; -+ return false; - } - reset(); - - if (start < 0) { - status = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - - if (fInputUniStrMaybeMutable) { -@@ -1514,13 +1514,13 @@ UBool RegexMatcher::lookingAt(int64_t start, UErrorCode &status) { - nativeStart = start; - if (nativeStart < fActiveStart || nativeStart > fActiveLimit) { - status = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - - if (UTEXT_FULL_TEXT_IN_CHUNK(fInputText, fInputLength)) { -- MatchChunkAt((int32_t)nativeStart, FALSE, status); -+ MatchChunkAt((int32_t)nativeStart, false, status); - } else { -- MatchAt(nativeStart, FALSE, status); -+ MatchAt(nativeStart, false, status); - } - return fMatch; - } -@@ -1534,11 +1534,11 @@ UBool RegexMatcher::lookingAt(int64_t start, UErrorCode &status) { - //-------------------------------------------------------------------------------- - UBool RegexMatcher::matches(UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (U_FAILURE(fDeferredStatus)) { - status = fDeferredStatus; -- return FALSE; -+ return false; - } - - if (fInputUniStrMaybeMutable) { -@@ -1552,9 +1552,9 @@ UBool RegexMatcher::matches(UErrorCode &status) { - } - - if (UTEXT_FULL_TEXT_IN_CHUNK(fInputText, fInputLength)) { -- MatchChunkAt((int32_t)fActiveStart, TRUE, status); -+ MatchChunkAt((int32_t)fActiveStart, true, status); - } else { -- MatchAt(fActiveStart, TRUE, status); -+ MatchAt(fActiveStart, true, status); - } - return fMatch; - } -@@ -1562,17 +1562,17 @@ UBool RegexMatcher::matches(UErrorCode &status) { - - UBool RegexMatcher::matches(int64_t start, UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (U_FAILURE(fDeferredStatus)) { - status = fDeferredStatus; -- return FALSE; -+ return false; - } - reset(); - - if (start < 0) { - status = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - - if (fInputUniStrMaybeMutable) { -@@ -1586,13 +1586,13 @@ UBool RegexMatcher::matches(int64_t start, UErrorCode &status) { - nativeStart = start; - if (nativeStart < fActiveStart || nativeStart > fActiveLimit) { - status = U_INDEX_OUTOFBOUNDS_ERROR; -- return FALSE; -+ return false; - } - - if (UTEXT_FULL_TEXT_IN_CHUNK(fInputText, fInputLength)) { -- MatchChunkAt((int32_t)nativeStart, TRUE, status); -+ MatchChunkAt((int32_t)nativeStart, true, status); - } else { -- MatchAt(nativeStart, TRUE, status); -+ MatchAt(nativeStart, true, status); - } - return fMatch; - } -@@ -1731,7 +1731,7 @@ UText *RegexMatcher::replaceAll(UText *replacement, UText *dest, UErrorCode &sta - UText empty = UTEXT_INITIALIZER; - - utext_openUnicodeString(&empty, &emptyString, &status); -- dest = utext_clone(NULL, &empty, TRUE, FALSE, &status); -+ dest = utext_clone(NULL, &empty, true, false, &status); - utext_close(&empty); - } - -@@ -1793,7 +1793,7 @@ UText *RegexMatcher::replaceFirst(UText *replacement, UText *dest, UErrorCode &s - UText empty = UTEXT_INITIALIZER; - - utext_openUnicodeString(&empty, &emptyString, &status); -- dest = utext_clone(NULL, &empty, TRUE, FALSE, &status); -+ dest = utext_clone(NULL, &empty, true, false, &status); - utext_close(&empty); - } - -@@ -1839,9 +1839,9 @@ void RegexMatcher::resetPreserveRegion() { - fMatchEnd = 0; - fLastMatchEnd = -1; - fAppendPosition = 0; -- fMatch = FALSE; -- fHitEnd = FALSE; -- fRequireEnd = FALSE; -+ fMatch = false; -+ fHitEnd = false; -+ fRequireEnd = false; - fTime = 0; - fTickCounter = TIMER_INITIAL_VALUE; - //resetStack(); // more expensive than it looks... -@@ -1851,7 +1851,7 @@ void RegexMatcher::resetPreserveRegion() { - RegexMatcher &RegexMatcher::reset(const UnicodeString &input) { - fInputText = utext_openConstUnicodeString(fInputText, &input, &fDeferredStatus); - if (fPattern->fNeedsAltInput) { -- fAltInputText = utext_clone(fAltInputText, fInputText, FALSE, TRUE, &fDeferredStatus); -+ fAltInputText = utext_clone(fAltInputText, fInputText, false, true, &fDeferredStatus); - } - if (U_FAILURE(fDeferredStatus)) { - return *this; -@@ -1864,7 +1864,7 @@ RegexMatcher &RegexMatcher::reset(const UnicodeString &input) { - - // Do the following for any UnicodeString. - // This is for compatibility for those clients who modify the input string "live" during regex operations. -- fInputUniStrMaybeMutable = TRUE; -+ fInputUniStrMaybeMutable = true; - - #if UCONFIG_NO_BREAK_ITERATION==0 - if (fWordBreakItr) { -@@ -1881,8 +1881,8 @@ RegexMatcher &RegexMatcher::reset(const UnicodeString &input) { - - RegexMatcher &RegexMatcher::reset(UText *input) { - if (fInputText != input) { -- fInputText = utext_clone(fInputText, input, FALSE, TRUE, &fDeferredStatus); -- if (fPattern->fNeedsAltInput) fAltInputText = utext_clone(fAltInputText, fInputText, FALSE, TRUE, &fDeferredStatus); -+ fInputText = utext_clone(fInputText, input, false, true, &fDeferredStatus); -+ if (fPattern->fNeedsAltInput) fAltInputText = utext_clone(fAltInputText, fInputText, false, true, &fDeferredStatus); - if (U_FAILURE(fDeferredStatus)) { - return *this; - } -@@ -1901,7 +1901,7 @@ RegexMatcher &RegexMatcher::reset(UText *input) { - #endif - } - reset(); -- fInputUniStrMaybeMutable = FALSE; -+ fInputUniStrMaybeMutable = false; - - return *this; - } -@@ -1945,7 +1945,7 @@ RegexMatcher &RegexMatcher::refreshInputText(UText *input, UErrorCode &status) { - } - int64_t pos = utext_getNativeIndex(fInputText); - // Shallow read-only clone of the new UText into the existing input UText -- fInputText = utext_clone(fInputText, input, FALSE, TRUE, &status); -+ fInputText = utext_clone(fInputText, input, false, true, &status); - if (U_FAILURE(status)) { - return *this; - } -@@ -1953,7 +1953,7 @@ RegexMatcher &RegexMatcher::refreshInputText(UText *input, UErrorCode &status) { - - if (fAltInputText != NULL) { - pos = utext_getNativeIndex(fAltInputText); -- fAltInputText = utext_clone(fAltInputText, input, FALSE, TRUE, &status); -+ fAltInputText = utext_clone(fAltInputText, input, false, true, &status); - if (U_FAILURE(status)) { - return *this; - } -@@ -2126,7 +2126,7 @@ int32_t RegexMatcher::split(UText *input, - UText remainingText = UTEXT_INITIALIZER; - utext_openUChars(&remainingText, input->chunkContents+nextOutputStringStart, - fActiveLimit-nextOutputStringStart, &status); -- dest[i] = utext_clone(NULL, &remainingText, TRUE, FALSE, &status); -+ dest[i] = utext_clone(NULL, &remainingText, true, false, &status); - utext_close(&remainingText); - } - } else { -@@ -2145,7 +2145,7 @@ int32_t RegexMatcher::split(UText *input, - } else { - UText remainingText = UTEXT_INITIALIZER; - utext_openUChars(&remainingText, remainingChars, remaining16Length, &status); -- dest[i] = utext_clone(NULL, &remainingText, TRUE, FALSE, &status); -+ dest[i] = utext_clone(NULL, &remainingText, true, false, &status); - utext_close(&remainingText); - } - -@@ -2166,7 +2166,7 @@ int32_t RegexMatcher::split(UText *input, - UText remainingText = UTEXT_INITIALIZER; - utext_openUChars(&remainingText, input->chunkContents+nextOutputStringStart, - fMatchStart-nextOutputStringStart, &status); -- dest[i] = utext_clone(NULL, &remainingText, TRUE, FALSE, &status); -+ dest[i] = utext_clone(NULL, &remainingText, true, false, &status); - utext_close(&remainingText); - } - } else { -@@ -2183,7 +2183,7 @@ int32_t RegexMatcher::split(UText *input, - } else { - UText remainingText = UTEXT_INITIALIZER; - utext_openUChars(&remainingText, remainingChars, remaining16Length, &status); -- dest[i] = utext_clone(NULL, &remainingText, TRUE, FALSE, &status); -+ dest[i] = utext_clone(NULL, &remainingText, true, false, &status); - utext_close(&remainingText); - } - -@@ -2236,7 +2236,7 @@ int32_t RegexMatcher::split(UText *input, - UText remainingText = UTEXT_INITIALIZER; - utext_openUChars(&remainingText, input->chunkContents+nextOutputStringStart, - fActiveLimit-nextOutputStringStart, &status); -- dest[i] = utext_clone(NULL, &remainingText, TRUE, FALSE, &status); -+ dest[i] = utext_clone(NULL, &remainingText, true, false, &status); - utext_close(&remainingText); - } - } else { -@@ -2254,7 +2254,7 @@ int32_t RegexMatcher::split(UText *input, - } else { - UText remainingText = UTEXT_INITIALIZER; - utext_openUChars(&remainingText, remainingChars, remaining16Length, &status); -- dest[i] = utext_clone(NULL, &remainingText, TRUE, FALSE, &status); -+ dest[i] = utext_clone(NULL, &remainingText, true, false, &status); - utext_close(&remainingText); - } - -@@ -2297,7 +2297,7 @@ int64_t RegexMatcher::start64(int32_t group, UErrorCode &status) const { - status = fDeferredStatus; - return -1; - } -- if (fMatch == FALSE) { -+ if (fMatch == false) { - status = U_REGEX_INVALID_STATE; - return -1; - } -@@ -2534,7 +2534,7 @@ REStackFrame *RegexMatcher::resetStack() { - // in perl, "xab..cd..", \b is true at positions 0,3,5,7 - // For us, - // If the current char is a combining mark, --// \b is FALSE. -+// \b is false. - // Else Scan backwards to the first non-combining char. - // We are at a boundary if the this char and the original chars are - // opposite in membership in \w set -@@ -2545,11 +2545,11 @@ REStackFrame *RegexMatcher::resetStack() { - // - //-------------------------------------------------------------------------------- - UBool RegexMatcher::isWordBoundary(int64_t pos) { -- UBool isBoundary = FALSE; -- UBool cIsWord = FALSE; -+ UBool isBoundary = false; -+ UBool cIsWord = false; - - if (pos >= fLookLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - } else { - // Determine whether char c at current position is a member of the word set of chars. - // If we're off the end of the string, behave as though we're not at a word char. -@@ -2557,14 +2557,14 @@ UBool RegexMatcher::isWordBoundary(int64_t pos) { - UChar32 c = UTEXT_CURRENT32(fInputText); - if (u_hasBinaryProperty(c, UCHAR_GRAPHEME_EXTEND) || u_charType(c) == U_FORMAT_CHAR) { - // Current char is a combining one. Not a boundary. -- return FALSE; -+ return false; - } - cIsWord = RegexStaticSets::gStaticSets->fPropSets[URX_ISWORD_SET].contains(c); - } - - // Back up until we come to a non-combining char, determine whether - // that char is a word char. -- UBool prevCIsWord = FALSE; -+ UBool prevCIsWord = false; - for (;;) { - if (UTEXT_GETNATIVEINDEX(fInputText) <= fLookStart) { - break; -@@ -2581,13 +2581,13 @@ UBool RegexMatcher::isWordBoundary(int64_t pos) { - } - - UBool RegexMatcher::isChunkWordBoundary(int32_t pos) { -- UBool isBoundary = FALSE; -- UBool cIsWord = FALSE; -+ UBool isBoundary = false; -+ UBool cIsWord = false; - - const UChar *inputBuf = fInputText->chunkContents; - - if (pos >= fLookLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - } else { - // Determine whether char c at current position is a member of the word set of chars. - // If we're off the end of the string, behave as though we're not at a word char. -@@ -2595,14 +2595,14 @@ UBool RegexMatcher::isChunkWordBoundary(int32_t pos) { - U16_GET(inputBuf, fLookStart, pos, fLookLimit, c); - if (u_hasBinaryProperty(c, UCHAR_GRAPHEME_EXTEND) || u_charType(c) == U_FORMAT_CHAR) { - // Current char is a combining one. Not a boundary. -- return FALSE; -+ return false; - } - cIsWord = RegexStaticSets::gStaticSets->fPropSets[URX_ISWORD_SET].contains(c); - } - - // Back up until we come to a non-combining char, determine whether - // that char is a word char. -- UBool prevCIsWord = FALSE; -+ UBool prevCIsWord = false; - for (;;) { - if (pos <= fLookStart) { - break; -@@ -2629,7 +2629,7 @@ UBool RegexMatcher::isChunkWordBoundary(int32_t pos) { - // - //-------------------------------------------------------------------------------- - UBool RegexMatcher::isUWordBoundary(int64_t pos, UErrorCode &status) { -- UBool returnVal = FALSE; -+ UBool returnVal = false; - - #if UCONFIG_NO_BREAK_ITERATION==0 - // Note: this point will never be reached if break iteration is configured out. -@@ -2639,7 +2639,7 @@ UBool RegexMatcher::isUWordBoundary(int64_t pos, UErrorCode &status) { - if (fWordBreakItr == nullptr) { - fWordBreakItr = BreakIterator::createWordInstance(Locale::getEnglish(), status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - fWordBreakItr->setText(fInputText, status); - } -@@ -2647,8 +2647,8 @@ UBool RegexMatcher::isUWordBoundary(int64_t pos, UErrorCode &status) { - // Note: zero width boundary tests like \b see through transparent region bounds, - // which is why fLookLimit is used here, rather than fActiveLimit. - if (pos >= fLookLimit) { -- fHitEnd = TRUE; -- returnVal = TRUE; // With Unicode word rules, only positions within the interior of "real" -+ fHitEnd = true; -+ returnVal = true; // With Unicode word rules, only positions within the interior of "real" - // words are not boundaries. All non-word chars stand by themselves, - // with word boundaries on both sides. - } else { -@@ -2697,7 +2697,7 @@ void RegexMatcher::IncrementTime(UErrorCode &status) { - fTickCounter = TIMER_INITIAL_VALUE; - fTime++; - if (fCallbackFn != NULL) { -- if ((*fCallbackFn)(fCallbackContext, fTime) == FALSE) { -+ if ((*fCallbackFn)(fCallbackContext, fTime) == false) { - status = U_REGEX_STOPPED_BY_CALLER; - return; - } -@@ -2787,7 +2787,7 @@ UnicodeString StringFromUText(UText *ut) { - // - //-------------------------------------------------------------------------------- - void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { -- UBool isMatch = FALSE; // True if the we have a match. -+ UBool isMatch = false; // True if the we have a match. - - int64_t backSearchIndex = U_INT64_MAX; // used after greedy single-character matches for searching backwards - -@@ -2872,7 +2872,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - break; - } - } else { -- fHitEnd = TRUE; -+ fHitEnd = true; - } - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; -@@ -2897,17 +2897,17 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - UTEXT_SETNATIVEINDEX(fInputText, fp->fInputIdx); - UChar32 inputChar; - UChar32 patternChar; -- UBool success = TRUE; -+ UBool success = true; - while (patternStringIndex < stringLen) { - if (UTEXT_GETNATIVEINDEX(fInputText) >= fActiveLimit) { -- success = FALSE; -- fHitEnd = TRUE; -+ success = false; -+ fHitEnd = true; - break; - } - inputChar = UTEXT_NEXT32(fInputText); - U16_NEXT(patternString, patternStringIndex, stringLen, patternChar); - if (patternChar != inputChar) { -- success = FALSE; -+ success = false; - break; - } - } -@@ -2934,7 +2934,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -- isMatch = TRUE; -+ isMatch = true; - goto breakFromLoop; - - // Start and End Capture stack frame variables are laid out out like this: -@@ -2962,8 +2962,8 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - { - if (fp->fInputIdx >= fAnchorLimit) { - // We really are at the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - -@@ -2977,8 +2977,8 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // If not in the middle of a CR/LF sequence - if ( !(c==0x0a && fp->fInputIdx>fAnchorStart && ((void)UTEXT_PREVIOUS32(fInputText), UTEXT_PREVIOUS32(fInputText))==0x0d)) { - // At new-line at end of input. Success -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - - break; - } -@@ -2986,8 +2986,8 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - } else { - UChar32 nextC = UTEXT_NEXT32(fInputText); - if (c == 0x0d && nextC == 0x0a && UTEXT_GETNATIVEINDEX(fInputText) >= fAnchorLimit) { -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; // At CR/LF at end of input. Success - } - } -@@ -3000,16 +3000,16 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - case URX_DOLLAR_D: // $, test for End of Line, in UNIX_LINES mode. - if (fp->fInputIdx >= fAnchorLimit) { - // Off the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } else { - UTEXT_SETNATIVEINDEX(fInputText, fp->fInputIdx); - UChar32 c = UTEXT_NEXT32(fInputText); - // Either at the last character of input, or off the end. - if (c == 0x0a && UTEXT_GETNATIVEINDEX(fInputText) == fAnchorLimit) { -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - } -@@ -3023,8 +3023,8 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - { - if (fp->fInputIdx >= fAnchorLimit) { - // We really are at the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - // If we are positioned just before a new-line, succeed. -@@ -3049,8 +3049,8 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - { - if (fp->fInputIdx >= fAnchorLimit) { - // We really are at the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; // Java set requireEnd in this case, even though -+ fHitEnd = true; -+ fRequireEnd = true; // Java set requireEnd in this case, even though - break; // adding a new-line would not lose the match. - } - // If we are not positioned just before a new-line, the test fails; backtrack out. -@@ -3134,7 +3134,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - case URX_BACKSLASH_D: // Test for decimal digit - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3155,7 +3155,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - - - case URX_BACKSLASH_G: // Test for position at end of previous match -- if (!((fMatch && fp->fInputIdx==fMatchEnd) || (fMatch==FALSE && fp->fInputIdx==fActiveStart))) { -+ if (!((fMatch && fp->fInputIdx==fMatchEnd) || (fMatch==false && fp->fInputIdx==fActiveStart))) { - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - } - break; -@@ -3164,7 +3164,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - case URX_BACKSLASH_H: // Test for \h, horizontal white space. - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3185,7 +3185,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - case URX_BACKSLASH_R: // Test for \R, any line break sequence. - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3206,7 +3206,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - case URX_BACKSLASH_V: // \v, any single line ending character. - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3228,14 +3228,14 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - - // Fail if at end of input - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } - - fp->fInputIdx = followingGCBoundary(fp->fInputIdx, status); - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp->fInputIdx = fActiveLimit; - } - break; -@@ -3245,8 +3245,8 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - if (fp->fInputIdx < fAnchorLimit) { - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - } else { -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - } - break; - -@@ -3260,7 +3260,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // 0: success if input char is in set. - // 1: success if input char is not in set. - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3297,7 +3297,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // Test input character for NOT being a member of one of - // the predefined sets (Word Characters, for example) - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3309,13 +3309,13 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - UChar32 c = UTEXT_NEXT32(fInputText); - if (c < 256) { - Regex8BitSet &s8 = RegexStaticSets::gStaticSets->fPropSets8[opValue]; -- if (s8.contains(c) == FALSE) { -+ if (s8.contains(c) == false) { - fp->fInputIdx = UTEXT_GETNATIVEINDEX(fInputText); - break; - } - } else { - const UnicodeSet &s = RegexStaticSets::gStaticSets->fPropSets[opValue]; -- if (s.contains(c) == FALSE) { -+ if (s.contains(c) == false) { - fp->fInputIdx = UTEXT_GETNATIVEINDEX(fInputText); - break; - } -@@ -3328,7 +3328,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - - case URX_SETREF: - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } else { -@@ -3363,7 +3363,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // . matches anything, but stops at end-of-line. - if (fp->fInputIdx >= fActiveLimit) { - // At end of input. Match failed. Backtrack out. -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3387,7 +3387,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // ., in dot-matches-all (including new lines) mode - if (fp->fInputIdx >= fActiveLimit) { - // At end of input. Match failed. Backtrack out. -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3417,7 +3417,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // UNIX_LINES mode, so 0x0a is the only recognized line ending. - if (fp->fInputIdx >= fActiveLimit) { - // At end of input. Match failed. Backtrack out. -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -3441,7 +3441,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - break; - - case URX_FAIL: -- isMatch = FALSE; -+ isMatch = false; - goto breakFromLoop; - - case URX_JMP_SAV: -@@ -3658,21 +3658,21 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // match succeeds. Verified by testing: Perl matches succeed - // in this case, so we do too. - -- UBool success = TRUE; -+ UBool success = true; - for (;;) { - if (utext_getNativeIndex(fAltInputText) >= groupEndIdx) { -- success = TRUE; -+ success = true; - break; - } - if (utext_getNativeIndex(fInputText) >= fActiveLimit) { -- success = FALSE; -- fHitEnd = TRUE; -+ success = false; -+ fHitEnd = true; - break; - } - UChar32 captureGroupChar = utext_next32(fAltInputText); - UChar32 inputChar = utext_next32(fInputText); - if (inputChar != captureGroupChar) { -- success = FALSE; -+ success = false; - break; - } - } -@@ -3707,21 +3707,21 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // match succeeds. Verified by testing: Perl matches succeed - // in this case, so we do too. - -- UBool success = TRUE; -+ UBool success = true; - for (;;) { - if (!captureGroupItr.inExpansion() && utext_getNativeIndex(fAltInputText) >= groupEndIdx) { -- success = TRUE; -+ success = true; - break; - } - if (!inputItr.inExpansion() && utext_getNativeIndex(fInputText) >= fActiveLimit) { -- success = FALSE; -- fHitEnd = TRUE; -+ success = false; -+ fHitEnd = true; - break; - } - UChar32 captureGroupChar = captureGroupItr.next(); - UChar32 inputChar = inputItr.next(); - if (inputChar != captureGroupChar) { -- success = FALSE; -+ success = false; - break; - } - } -@@ -3730,7 +3730,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - // We obtained a match by consuming part of a string obtained from - // case-folding a single code point of the input text. - // This does not count as an overall match. -- success = FALSE; -+ success = false; - } - - if (success) { -@@ -3823,7 +3823,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - break; - } - } else { -- fHitEnd = TRUE; -+ fHitEnd = true; - } - - fp = (REStackFrame *)fStack->popFrame(fFrameSize); -@@ -3849,25 +3849,25 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - - UChar32 cPattern; - UChar32 cText; -- UBool success = TRUE; -+ UBool success = true; - - UTEXT_SETNATIVEINDEX(fInputText, fp->fInputIdx); - CaseFoldingUTextIterator inputIterator(*fInputText); - while (patternStringIdx < patternStringLen) { - if (!inputIterator.inExpansion() && UTEXT_GETNATIVEINDEX(fInputText) >= fActiveLimit) { -- success = FALSE; -- fHitEnd = TRUE; -+ success = false; -+ fHitEnd = true; - break; - } - U16_NEXT(patternString, patternStringIdx, patternStringLen, cPattern); - cText = inputIterator.next(); - if (cText != cPattern) { -- success = FALSE; -+ success = false; - break; - } - } - if (inputIterator.inExpansion()) { -- success = FALSE; -+ success = false; - } - - if (success) { -@@ -4099,16 +4099,16 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - UTEXT_SETNATIVEINDEX(fInputText, ix); - for (;;) { - if (ix >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - break; - } - UChar32 c = UTEXT_NEXT32(fInputText); - if (c<256) { -- if (s8->contains(c) == FALSE) { -+ if (s8->contains(c) == false) { - break; - } - } else { -- if (s->contains(c) == FALSE) { -+ if (s->contains(c) == false) { - break; - } - } -@@ -4152,7 +4152,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - if ((opValue & 1) == 1) { - // Dot-matches-All mode. Jump straight to the end of the string. - ix = fActiveLimit; -- fHitEnd = TRUE; -+ fHitEnd = true; - } else { - // NOT DOT ALL mode. Line endings do not match '.' - // Scan forward until a line ending or end of input. -@@ -4160,7 +4160,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - UTEXT_SETNATIVEINDEX(fInputText, ix); - for (;;) { - if (ix >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - break; - } - UChar32 c = UTEXT_NEXT32(fInputText); -@@ -4252,7 +4252,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { - } - - if (U_FAILURE(status)) { -- isMatch = FALSE; -+ isMatch = false; - break; - } - } -@@ -4295,7 +4295,7 @@ breakFromLoop: - // - //-------------------------------------------------------------------------------- - void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &status) { -- UBool isMatch = FALSE; // True if the we have a match. -+ UBool isMatch = false; // True if the we have a match. - - int32_t backSearchIndex = INT32_MAX; // used after greedy single-character matches for searching backwards - -@@ -4381,7 +4381,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - break; - } - } else { -- fHitEnd = TRUE; -+ fHitEnd = true; - } - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; -@@ -4406,15 +4406,15 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - const UChar * pInpLimit = inputBuf + fActiveLimit; - const UChar * pPat = litText+stringStartIdx; - const UChar * pEnd = pInp + stringLen; -- UBool success = TRUE; -+ UBool success = true; - while (pInp < pEnd) { - if (pInp >= pInpLimit) { -- fHitEnd = TRUE; -- success = FALSE; -+ fHitEnd = true; -+ success = false; - break; - } - if (*pInp++ != *pPat++) { -- success = FALSE; -+ success = false; - break; - } - } -@@ -4441,7 +4441,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -- isMatch = TRUE; -+ isMatch = true; - goto breakFromLoop; - - // Start and End Capture stack frame variables are laid out out like this: -@@ -4474,8 +4474,8 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - } - if (fp->fInputIdx >= fAnchorLimit) { - // We really are at the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - -@@ -4488,15 +4488,15 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - if (isLineTerminator(c)) { - if ( !(c==0x0a && fp->fInputIdx>fAnchorStart && inputBuf[fp->fInputIdx-1]==0x0d)) { - // At new-line at end of input. Success -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - } - } else if (fp->fInputIdx == fAnchorLimit-2 && - inputBuf[fp->fInputIdx]==0x0d && inputBuf[fp->fInputIdx+1]==0x0a) { -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; // At CR/LF at end of input. Success - } - -@@ -4511,14 +4511,14 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - if (fp->fInputIdx == fAnchorLimit-1) { - // At last char of input. Success if it's a new line. - if (inputBuf[fp->fInputIdx] == 0x0a) { -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - } else { - // Off the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - } -@@ -4532,8 +4532,8 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - { - if (fp->fInputIdx >= fAnchorLimit) { - // We really are at the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - break; - } - // If we are positioned just before a new-line, succeed. -@@ -4557,8 +4557,8 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - { - if (fp->fInputIdx >= fAnchorLimit) { - // We really are at the end of input. Success. -- fHitEnd = TRUE; -- fRequireEnd = TRUE; // Java set requireEnd in this case, even though -+ fHitEnd = true; -+ fRequireEnd = true; // Java set requireEnd in this case, even though - break; // adding a new-line would not lose the match. - } - // If we are not positioned just before a new-line, the test fails; backtrack out. -@@ -4640,7 +4640,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - case URX_BACKSLASH_D: // Test for decimal digit - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4658,7 +4658,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - - - case URX_BACKSLASH_G: // Test for position at end of previous match -- if (!((fMatch && fp->fInputIdx==fMatchEnd) || (fMatch==FALSE && fp->fInputIdx==fActiveStart))) { -+ if (!((fMatch && fp->fInputIdx==fMatchEnd) || (fMatch==false && fp->fInputIdx==fActiveStart))) { - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - } - break; -@@ -4667,7 +4667,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - case URX_BACKSLASH_H: // Test for \h, horizontal white space. - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4686,7 +4686,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - case URX_BACKSLASH_R: // Test for \R, any line break sequence. - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4711,7 +4711,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - case URX_BACKSLASH_V: // Any single code point line ending. - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4731,14 +4731,14 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - - // Fail if at end of input - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } - - fp->fInputIdx = followingGCBoundary(fp->fInputIdx, status); - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp->fInputIdx = fActiveLimit; - } - break; -@@ -4748,8 +4748,8 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - if (fp->fInputIdx < fAnchorLimit) { - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - } else { -- fHitEnd = TRUE; -- fRequireEnd = TRUE; -+ fHitEnd = true; -+ fRequireEnd = true; - } - break; - -@@ -4763,7 +4763,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - // 0: success if input char is in set. - // 1: success if input char is not in set. - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4797,7 +4797,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - // Test input character for NOT being a member of one of - // the predefined sets (Word Characters, for example) - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4808,12 +4808,12 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - U16_NEXT(inputBuf, fp->fInputIdx, fActiveLimit, c); - if (c < 256) { - Regex8BitSet &s8 = RegexStaticSets::gStaticSets->fPropSets8[opValue]; -- if (s8.contains(c) == FALSE) { -+ if (s8.contains(c) == false) { - break; - } - } else { - const UnicodeSet &s = RegexStaticSets::gStaticSets->fPropSets[opValue]; -- if (s.contains(c) == FALSE) { -+ if (s.contains(c) == false) { - break; - } - } -@@ -4825,7 +4825,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - case URX_SETREF: - { - if (fp->fInputIdx >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4860,7 +4860,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - // . matches anything, but stops at end-of-line. - if (fp->fInputIdx >= fActiveLimit) { - // At end of input. Match failed. Backtrack out. -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4882,7 +4882,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - // . in dot-matches-all (including new lines) mode - if (fp->fInputIdx >= fActiveLimit) { - // At end of input. Match failed. Backtrack out. -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4907,7 +4907,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - // UNIX_LINES mode, so 0x0a is the only recognized line ending. - if (fp->fInputIdx >= fActiveLimit) { - // At end of input. Match failed. Backtrack out. -- fHitEnd = TRUE; -+ fHitEnd = true; - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; - } -@@ -4928,7 +4928,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - break; - - case URX_FAIL: -- isMatch = FALSE; -+ isMatch = false; - goto breakFromLoop; - - case URX_JMP_SAV: -@@ -5137,15 +5137,15 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - fp = (REStackFrame *)fStack->popFrame(fFrameSize); // FAIL, no match. - break; - } -- UBool success = TRUE; -+ UBool success = true; - for (int64_t groupIndex = groupStartIdx; groupIndex < groupEndIdx; ++groupIndex,++inputIndex) { - if (inputIndex >= fActiveLimit) { -- success = FALSE; -- fHitEnd = TRUE; -+ success = false; -+ fHitEnd = true; - break; - } - if (inputBuf[groupIndex] != inputBuf[inputIndex]) { -- success = FALSE; -+ success = false; - break; - } - } -@@ -5153,7 +5153,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - inputIndex < fActiveLimit && U16_IS_TRAIL(inputBuf[inputIndex])) { - // Capture group ended with an unpaired lead surrogate. - // Back reference is not permitted to match lead only of a surrogatge pair. -- success = FALSE; -+ success = false; - } - if (success) { - fp->fInputIdx = inputIndex; -@@ -5181,21 +5181,21 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - // match succeeds. Verified by testing: Perl matches succeed - // in this case, so we do too. - -- UBool success = TRUE; -+ UBool success = true; - for (;;) { - UChar32 captureGroupChar = captureGroupItr.next(); - if (captureGroupChar == U_SENTINEL) { -- success = TRUE; -+ success = true; - break; - } - UChar32 inputChar = inputItr.next(); - if (inputChar == U_SENTINEL) { -- success = FALSE; -- fHitEnd = TRUE; -+ success = false; -+ fHitEnd = true; - break; - } - if (inputChar != captureGroupChar) { -- success = FALSE; -+ success = false; - break; - } - } -@@ -5204,7 +5204,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - // We obtained a match by consuming part of a string obtained from - // case-folding a single code point of the input text. - // This does not count as an overall match. -- success = FALSE; -+ success = false; - } - - if (success) { -@@ -5291,7 +5291,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - break; - } - } else { -- fHitEnd = TRUE; -+ fHitEnd = true; - } - fp = (REStackFrame *)fStack->popFrame(fFrameSize); - break; -@@ -5313,22 +5313,22 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - - UChar32 cText; - UChar32 cPattern; -- UBool success = TRUE; -+ UBool success = true; - int32_t patternStringIdx = 0; - CaseFoldingUCharIterator inputIterator(inputBuf, fp->fInputIdx, fActiveLimit); - while (patternStringIdx < patternStringLen) { - U16_NEXT(patternString, patternStringIdx, patternStringLen, cPattern); - cText = inputIterator.next(); - if (cText != cPattern) { -- success = FALSE; -+ success = false; - if (cText == U_SENTINEL) { -- fHitEnd = TRUE; -+ fHitEnd = true; - } - break; - } - } - if (inputIterator.inExpansion()) { -- success = FALSE; -+ success = false; - } - - if (success) { -@@ -5540,18 +5540,18 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - int32_t ix = (int32_t)fp->fInputIdx; - for (;;) { - if (ix >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - break; - } - UChar32 c; - U16_NEXT(inputBuf, ix, fActiveLimit, c); - if (c<256) { -- if (s8->contains(c) == FALSE) { -+ if (s8->contains(c) == false) { - U16_BACK_1(inputBuf, 0, ix); - break; - } - } else { -- if (s->contains(c) == FALSE) { -+ if (s->contains(c) == false) { - U16_BACK_1(inputBuf, 0, ix); - break; - } -@@ -5595,14 +5595,14 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - if ((opValue & 1) == 1) { - // Dot-matches-All mode. Jump straight to the end of the string. - ix = (int32_t)fActiveLimit; -- fHitEnd = TRUE; -+ fHitEnd = true; - } else { - // NOT DOT ALL mode. Line endings do not match '.' - // Scan forward until a line ending or end of input. - ix = (int32_t)fp->fInputIdx; - for (;;) { - if (ix >= fActiveLimit) { -- fHitEnd = TRUE; -+ fHitEnd = true; - break; - } - UChar32 c; -@@ -5694,7 +5694,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu - } - - if (U_FAILURE(status)) { -- isMatch = FALSE; -+ isMatch = false; - break; - } - } -diff --git a/deps/icu-small/source/i18n/remtrans.cpp b/deps/icu-small/source/i18n/remtrans.cpp -index 03b878575c..957ac480fb 100644 ---- a/deps/icu-small/source/i18n/remtrans.cpp -+++ b/deps/icu-small/source/i18n/remtrans.cpp -@@ -37,14 +37,14 @@ static Transliterator* RemoveTransliterator_create(const UnicodeString& /*ID*/, - */ - void RemoveTransliterator::registerIDs() { - -- Transliterator::_registerFactory(UnicodeString(TRUE, ::CURR_ID, -1), -+ Transliterator::_registerFactory(UnicodeString(true, ::CURR_ID, -1), - RemoveTransliterator_create, integerToken(0)); - - Transliterator::_registerSpecialInverse(UNICODE_STRING_SIMPLE("Remove"), -- UNICODE_STRING_SIMPLE("Null"), FALSE); -+ UNICODE_STRING_SIMPLE("Null"), false); - } - --RemoveTransliterator::RemoveTransliterator() : Transliterator(UnicodeString(TRUE, ::CURR_ID, -1), 0) {} -+RemoveTransliterator::RemoveTransliterator() : Transliterator(UnicodeString(true, ::CURR_ID, -1), 0) {} - - RemoveTransliterator::~RemoveTransliterator() {} - -diff --git a/deps/icu-small/source/i18n/repattrn.cpp b/deps/icu-small/source/i18n/repattrn.cpp -index 8c94948d29..0ef85bdf6c 100644 ---- a/deps/icu-small/source/i18n/repattrn.cpp -+++ b/deps/icu-small/source/i18n/repattrn.cpp -@@ -79,7 +79,7 @@ RegexPattern &RegexPattern::operator = (const RegexPattern &other) { - - if (other.fPatternString == NULL) { - fPatternString = NULL; -- fPattern = utext_clone(fPattern, other.fPattern, FALSE, TRUE, &fDeferredStatus); -+ fPattern = utext_clone(fPattern, other.fPattern, false, true, &fDeferredStatus); - } else { - fPatternString = new UnicodeString(*(other.fPatternString)); - if (fPatternString == NULL) { -@@ -179,7 +179,7 @@ void RegexPattern::init() { - fInitialChars = NULL; - fInitialChar = 0; - fInitialChars8 = NULL; -- fNeedsAltInput = FALSE; -+ fNeedsAltInput = false; - fNamedCaptureMap = NULL; - - fPattern = NULL; // will be set later -@@ -524,7 +524,7 @@ UBool U_EXPORT2 RegexPattern::matches(const UnicodeString ®ex, - UParseError &pe, - UErrorCode &status) { - -- if (U_FAILURE(status)) {return FALSE;} -+ if (U_FAILURE(status)) {return false;} - - UBool retVal; - RegexPattern *pat = NULL; -@@ -548,9 +548,9 @@ UBool U_EXPORT2 RegexPattern::matches(UText *regex, - UParseError &pe, - UErrorCode &status) { - -- if (U_FAILURE(status)) {return FALSE;} -+ if (U_FAILURE(status)) {return false;} - -- UBool retVal = FALSE; -+ UBool retVal = false; - RegexPattern *pat = NULL; - RegexMatcher *matcher = NULL; - -@@ -788,7 +788,7 @@ void RegexPattern::dumpOp(int32_t index) const { - { - UnicodeString s; - UnicodeSet *set = (UnicodeSet *)fSets->elementAt(val); -- set->toPattern(s, TRUE); -+ set->toPattern(s, true); - printf("%s", CStr(s)()); - } - break; -@@ -802,7 +802,7 @@ void RegexPattern::dumpOp(int32_t index) const { - val &= ~URX_NEG_SET; - } - UnicodeSet &set = RegexStaticSets::gStaticSets->fPropSets[val]; -- set.toPattern(s, TRUE); -+ set.toPattern(s, true); - printf("%s", CStr(s)()); - } - break; -@@ -833,7 +833,7 @@ void RegexPattern::dumpPattern() const { - printf(" Initial match string: \"%s\"\n", CStr(initialString)()); - } else if (fStartType == START_SET) { - UnicodeString s; -- fInitialChars->toPattern(s, TRUE); -+ fInitialChars->toPattern(s, true); - printf(" Match First Chars: %s\n", CStr(s)()); - - } else if (fStartType == START_CHAR) { -diff --git a/deps/icu-small/source/i18n/rulebasedcollator.cpp b/deps/icu-small/source/i18n/rulebasedcollator.cpp -index 5e5cc3db62..a240295b67 100644 ---- a/deps/icu-small/source/i18n/rulebasedcollator.cpp -+++ b/deps/icu-small/source/i18n/rulebasedcollator.cpp -@@ -84,7 +84,7 @@ FixedSortKeyByteSink::AppendBeyondCapacity(const char *bytes, int32_t /*n*/, int - - UBool - FixedSortKeyByteSink::Resize(int32_t /*appendCapacity*/, int32_t /*length*/) { -- return FALSE; -+ return false; - } - - } // namespace -@@ -117,7 +117,7 @@ CollationKeyByteSink::AppendBeyondCapacity(const char *bytes, int32_t n, int32_t - UBool - CollationKeyByteSink::Resize(int32_t appendCapacity, int32_t length) { - if (buffer_ == NULL) { -- return FALSE; // allocation failed before already -+ return false; // allocation failed before already - } - int32_t newCapacity = 2 * capacity_; - int32_t altCapacity = length + 2 * appendCapacity; -@@ -130,11 +130,11 @@ CollationKeyByteSink::Resize(int32_t appendCapacity, int32_t length) { - uint8_t *newBuffer = key_.reallocate(newCapacity, length); - if (newBuffer == NULL) { - SetNotOk(); -- return FALSE; -+ return false; - } - buffer_ = reinterpret_cast(newBuffer); - capacity_ = newCapacity; -- return TRUE; -+ return true; - } - - RuleBasedCollator::RuleBasedCollator(const RuleBasedCollator &other) -@@ -158,7 +158,7 @@ RuleBasedCollator::RuleBasedCollator(const uint8_t *bin, int32_t length, - cacheEntry(NULL), - validLocale(""), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - if(U_FAILURE(errorCode)) { return; } - if(bin == NULL || length == 0 || base == NULL) { - errorCode = U_ILLEGAL_ARGUMENT_ERROR; -@@ -188,7 +188,7 @@ RuleBasedCollator::RuleBasedCollator(const CollationCacheEntry *entry) - cacheEntry(entry), - validLocale(entry->validLocale), - explicitlySetAttributes(0), -- actualLocaleIsSameAsValid(FALSE) { -+ actualLocaleIsSameAsValid(false) { - settings->addRef(); - cacheEntry->addRef(); - } -@@ -217,7 +217,7 @@ RuleBasedCollator::adoptTailoring(CollationTailoring *t, UErrorCode &errorCode) - tailoring = t; - cacheEntry->addRef(); - validLocale = t->actualLocale; -- actualLocaleIsSameAsValid = FALSE; -+ actualLocaleIsSameAsValid = false; - } - - RuleBasedCollator * -@@ -290,10 +290,10 @@ void - RuleBasedCollator::setLocales(const Locale &requested, const Locale &valid, - const Locale &actual) { - if(actual == tailoring->actualLocale) { -- actualLocaleIsSameAsValid = FALSE; -+ actualLocaleIsSameAsValid = false; - } else { - U_ASSERT(actual == valid); -- actualLocaleIsSameAsValid = TRUE; -+ actualLocaleIsSameAsValid = true; - } - // Do not modify tailoring.actualLocale: - // We cannot be sure that that would be thread-safe. -@@ -399,7 +399,7 @@ RuleBasedCollator::internalGetContractionsAndExpansions( - void - RuleBasedCollator::internalAddContractions(UChar32 c, UnicodeSet &set, UErrorCode &errorCode) const { - if(U_FAILURE(errorCode)) { return; } -- ContractionsAndExpansions(&set, NULL, NULL, FALSE).forCodePoint(data, c, errorCode); -+ ContractionsAndExpansions(&set, NULL, NULL, false).forCodePoint(data, c, errorCode); - } - - const CollationSettings & -@@ -538,7 +538,8 @@ RuleBasedCollator::setMaxVariable(UColReorderCode group, UErrorCode &errorCode) - } - - if(group == UCOL_REORDER_CODE_DEFAULT) { -- group = (UColReorderCode)(UCOL_REORDER_CODE_FIRST + defaultSettings.getMaxVariable()); -+ group = (UColReorderCode)( -+ UCOL_REORDER_CODE_FIRST + int32_t{defaultSettings.getMaxVariable()}); - } - uint32_t varTop = data->getLastPrimaryForGroup(group); - U_ASSERT(varTop != 0); -@@ -556,7 +557,7 @@ RuleBasedCollator::setMaxVariable(UColReorderCode group, UErrorCode &errorCode) - - UColReorderCode - RuleBasedCollator::getMaxVariable() const { -- return (UColReorderCode)(UCOL_REORDER_CODE_FIRST + settings->getMaxVariable()); -+ return (UColReorderCode)(UCOL_REORDER_CODE_FIRST + int32_t{settings->getMaxVariable()}); - } - - uint32_t -@@ -897,7 +898,7 @@ protected: - class FCDUTF8NFDIterator : public NFDIterator { - public: - FCDUTF8NFDIterator(const CollationData *data, const uint8_t *text, int32_t textLength) -- : u8ci(data, FALSE, text, 0, textLength) {} -+ : u8ci(data, false, text, 0, textLength) {} - protected: - virtual UChar32 nextRawCodePoint() override { - UErrorCode errorCode = U_ZERO_ERROR; -@@ -921,7 +922,7 @@ private: - class FCDUIterNFDIterator : public NFDIterator { - public: - FCDUIterNFDIterator(const CollationData *data, UCharIterator &it, int32_t startIndex) -- : uici(data, FALSE, it, startIndex) {} -+ : uici(data, false, it, startIndex) {} - protected: - virtual UChar32 nextRawCodePoint() override { - UErrorCode errorCode = U_ZERO_ERROR; -@@ -1121,7 +1122,7 @@ RuleBasedCollator::doCompare(const uint8_t *left, int32_t leftLength, - - UBool numeric = settings->isNumeric(); - if(equalPrefixLength > 0) { -- UBool unsafe = FALSE; -+ UBool unsafe = false; - if(equalPrefixLength != leftLength) { - int32_t i = equalPrefixLength; - UChar32 c; -@@ -1339,12 +1340,12 @@ RuleBasedCollator::writeSortKey(const UChar *s, int32_t length, - UTF16CollationIterator iter(data, numeric, s, s, limit); - CollationKeys::writeSortKeyUpToQuaternary(iter, data->compressibleBytes, *settings, - sink, Collation::PRIMARY_LEVEL, -- callback, TRUE, errorCode); -+ callback, true, errorCode); - } else { - FCDUTF16CollationIterator iter(data, numeric, s, s, limit); - CollationKeys::writeSortKeyUpToQuaternary(iter, data->compressibleBytes, *settings, - sink, Collation::PRIMARY_LEVEL, -- callback, TRUE, errorCode); -+ callback, true, errorCode); - } - if(settings->getStrength() == UCOL_IDENTICAL) { - writeIdenticalLevel(s, limit, sink, errorCode); -@@ -1403,9 +1404,9 @@ public: - // Remember a level that will be at least partially written. - level = l; - levelCapacity = sink.GetRemainingCapacity(); -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - Collation::Level getLevel() const { return level; } -@@ -1440,11 +1441,11 @@ RuleBasedCollator::internalNextSortKeyPart(UCharIterator *iter, uint32_t state[2 - if(settings->dontCheckFCD()) { - UIterCollationIterator ci(data, numeric, *iter); - CollationKeys::writeSortKeyUpToQuaternary(ci, data->compressibleBytes, *settings, -- sink, level, callback, FALSE, errorCode); -+ sink, level, callback, false, errorCode); - } else { - FCDUIterCollationIterator ci(data, numeric, *iter, 0); - CollationKeys::writeSortKeyUpToQuaternary(ci, data->compressibleBytes, *settings, -- sink, level, callback, FALSE, errorCode); -+ sink, level, callback, false, errorCode); - } - if(U_FAILURE(errorCode)) { return 0; } - if(sink.NumberOfBytesAppended() > count) { -diff --git a/deps/icu-small/source/i18n/scientificnumberformatter.cpp b/deps/icu-small/source/i18n/scientificnumberformatter.cpp -index 6c2cb3aeed..99b990708a 100644 ---- a/deps/icu-small/source/i18n/scientificnumberformatter.cpp -+++ b/deps/icu-small/source/i18n/scientificnumberformatter.cpp -@@ -42,19 +42,19 @@ static UBool copyAsSuperscript( - UnicodeString &result, - UErrorCode &status) { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - for (int32_t i = beginIndex; i < endIndex;) { - UChar32 c = s.char32At(i); - int32_t digit = u_charDigitValue(c); - if (digit < 0) { - status = U_INVALID_CHAR_FOUND; -- return FALSE; -+ return false; - } - result.append(kSuperscriptDigits[digit]); - i += U16_LENGTH(c); - } -- return TRUE; -+ return true; - } - - ScientificNumberFormatter *ScientificNumberFormatter::createSuperscriptInstance( -diff --git a/deps/icu-small/source/i18n/scriptset.cpp b/deps/icu-small/source/i18n/scriptset.cpp -index 6a1db8c01c..236bf9d37f 100644 ---- a/deps/icu-small/source/i18n/scriptset.cpp -+++ b/deps/icu-small/source/i18n/scriptset.cpp -@@ -55,11 +55,11 @@ bool ScriptSet::operator == (const ScriptSet &other) const { - - UBool ScriptSet::test(UScriptCode script, UErrorCode &status) const { - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - if (script < 0 || (int32_t)script >= SCRIPT_LIMIT) { - status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - uint32_t index = script / 32; - uint32_t bit = 1 << (script & 31); -@@ -188,19 +188,19 @@ int32_t ScriptSet::nextSetBit(int32_t fromIndex) const { - UBool ScriptSet::isEmpty() const { - for (uint32_t i=0; i= 0; i = nextSetBit(i + 1)) { - if (!firstTime) { - dest.append((UChar)0x20); - } -- firstTime = FALSE; -+ firstTime = false; - const char *scriptName = uscript_getShortName((UScriptCode(i))); - dest.append(UnicodeString(scriptName, -1, US_INV)); - } -@@ -248,7 +248,7 @@ void ScriptSet::setScriptExtensions(UChar32 codePoint, UErrorCode& status) { - UErrorCode internalStatus = U_ZERO_ERROR; - int32_t script_count = -1; - -- while (TRUE) { -+ while (true) { - script_count = uscript_getScriptExtensions( - codePoint, scripts.getAlias(), scripts.getCapacity(), &internalStatus); - if (internalStatus == U_BUFFER_OVERFLOW_ERROR) { -diff --git a/deps/icu-small/source/i18n/scriptset.h b/deps/icu-small/source/i18n/scriptset.h -index 51980ab7b3..df5cfdc748 100644 ---- a/deps/icu-small/source/i18n/scriptset.h -+++ b/deps/icu-small/source/i18n/scriptset.h -@@ -83,4 +83,7 @@ uhash_hashScriptSet(const UElement key); - U_CAPI void U_EXPORT2 - uhash_deleteScriptSet(void *obj); - --#endif // __SCRIPTSET_H__ -+U_CAPI UBool U_EXPORT2 -+uhash_equalsScriptSet(const UElement key1, const UElement key2); -+ -+#endif // __SCRIPTSET_H_ -diff --git a/deps/icu-small/source/i18n/search.cpp b/deps/icu-small/source/i18n/search.cpp -index 9e559bcc71..56d9b74409 100644 ---- a/deps/icu-small/source/i18n/search.cpp -+++ b/deps/icu-small/source/i18n/search.cpp -@@ -55,10 +55,10 @@ void SearchIterator::setAttribute(USearchAttribute attribute, - switch (attribute) - { - case USEARCH_OVERLAP : -- m_search_->isOverlap = (value == USEARCH_ON ? TRUE : FALSE); -+ m_search_->isOverlap = (value == USEARCH_ON ? true : false); - break; - case USEARCH_CANONICAL_MATCH : -- m_search_->isCanonicalMatch = (value == USEARCH_ON ? TRUE : FALSE); -+ m_search_->isCanonicalMatch = (value == USEARCH_ON ? true : false); - break; - case USEARCH_ELEMENT_COMPARISON : - if (value == USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD || value == USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD) { -@@ -81,9 +81,9 @@ USearchAttributeValue SearchIterator::getAttribute( - { - switch (attribute) { - case USEARCH_OVERLAP : -- return (m_search_->isOverlap == TRUE ? USEARCH_ON : USEARCH_OFF); -+ return (m_search_->isOverlap == true ? USEARCH_ON : USEARCH_OFF); - case USEARCH_CANONICAL_MATCH : -- return (m_search_->isCanonicalMatch == TRUE ? USEARCH_ON : -+ return (m_search_->isCanonicalMatch == true ? USEARCH_ON : - USEARCH_OFF); - case USEARCH_ELEMENT_COMPARISON : - { -@@ -241,8 +241,8 @@ int32_t SearchIterator::next(UErrorCode &status) - int32_t offset = getOffset(); - int32_t matchindex = m_search_->matchedIndex; - int32_t matchlength = m_search_->matchedLength; -- m_search_->reset = FALSE; -- if (m_search_->isForwardSearching == TRUE) { -+ m_search_->reset = false; -+ if (m_search_->isForwardSearching == true) { - int32_t textlength = m_search_->textLength; - if (offset == textlength || matchindex == textlength || - (matchindex != USEARCH_DONE && -@@ -258,7 +258,7 @@ int32_t SearchIterator::next(UErrorCode &status) - // setOffset has been called or that previous ran off the text - // string. the iterator would have been set to offset 0 if a - // match is not found. -- m_search_->isForwardSearching = TRUE; -+ m_search_->isForwardSearching = true; - if (m_search_->matchedIndex != USEARCH_DONE) { - // there's no need to set the collation element iterator - // the next call to next will set the offset. -@@ -286,8 +286,8 @@ int32_t SearchIterator::previous(UErrorCode &status) - int32_t offset; - if (m_search_->reset) { - offset = m_search_->textLength; -- m_search_->isForwardSearching = FALSE; -- m_search_->reset = FALSE; -+ m_search_->isForwardSearching = false; -+ m_search_->reset = false; - setOffset(offset, status); - } - else { -@@ -295,13 +295,13 @@ int32_t SearchIterator::previous(UErrorCode &status) - } - - int32_t matchindex = m_search_->matchedIndex; -- if (m_search_->isForwardSearching == TRUE) { -+ if (m_search_->isForwardSearching == true) { - // switching direction. - // if matchedIndex == USEARCH_DONE, it means that either a - // setOffset has been called or that next ran off the text - // string. the iterator would have been set to offset textLength if - // a match is not found. -- m_search_->isForwardSearching = FALSE; -+ m_search_->isForwardSearching = false; - if (matchindex != USEARCH_DONE) { - return matchindex; - } -@@ -333,11 +333,11 @@ void SearchIterator::reset() - UErrorCode status = U_ZERO_ERROR; - setMatchNotFound(); - setOffset(0, status); -- m_search_->isOverlap = FALSE; -- m_search_->isCanonicalMatch = FALSE; -+ m_search_->isOverlap = false; -+ m_search_->isCanonicalMatch = false; - m_search_->elementComparisonType = 0; -- m_search_->isForwardSearching = TRUE; -- m_search_->reset = TRUE; -+ m_search_->isForwardSearching = true; -+ m_search_->reset = true; - } - - // protected constructors and destructors ----------------------------- -@@ -346,11 +346,11 @@ SearchIterator::SearchIterator() - { - m_search_ = (USearch *)uprv_malloc(sizeof(USearch)); - m_search_->breakIter = NULL; -- m_search_->isOverlap = FALSE; -- m_search_->isCanonicalMatch = FALSE; -+ m_search_->isOverlap = false; -+ m_search_->isCanonicalMatch = false; - m_search_->elementComparisonType = 0; -- m_search_->isForwardSearching = TRUE; -- m_search_->reset = TRUE; -+ m_search_->isForwardSearching = true; -+ m_search_->reset = true; - m_search_->matchedIndex = USEARCH_DONE; - m_search_->matchedLength = 0; - m_search_->text = NULL; -@@ -365,11 +365,11 @@ SearchIterator::SearchIterator(const UnicodeString &text, - { - m_search_ = (USearch *)uprv_malloc(sizeof(USearch)); - m_search_->breakIter = NULL; -- m_search_->isOverlap = FALSE; -- m_search_->isCanonicalMatch = FALSE; -+ m_search_->isOverlap = false; -+ m_search_->isCanonicalMatch = false; - m_search_->elementComparisonType = 0; -- m_search_->isForwardSearching = TRUE; -- m_search_->reset = TRUE; -+ m_search_->isForwardSearching = true; -+ m_search_->reset = true; - m_search_->matchedIndex = USEARCH_DONE; - m_search_->matchedLength = 0; - m_search_->text = m_text_.getBuffer(); -@@ -382,11 +382,11 @@ SearchIterator::SearchIterator(CharacterIterator &text, - { - m_search_ = (USearch *)uprv_malloc(sizeof(USearch)); - m_search_->breakIter = NULL; -- m_search_->isOverlap = FALSE; -- m_search_->isCanonicalMatch = FALSE; -+ m_search_->isOverlap = false; -+ m_search_->isCanonicalMatch = false; - m_search_->elementComparisonType = 0; -- m_search_->isForwardSearching = TRUE; -- m_search_->reset = TRUE; -+ m_search_->isForwardSearching = true; -+ m_search_->reset = true; - m_search_->matchedIndex = USEARCH_DONE; - m_search_->matchedLength = 0; - text.getText(m_text_); -diff --git a/deps/icu-small/source/i18n/selfmt.cpp b/deps/icu-small/source/i18n/selfmt.cpp -index bb18e84ef6..9928d284c9 100644 ---- a/deps/icu-small/source/i18n/selfmt.cpp -+++ b/deps/icu-small/source/i18n/selfmt.cpp -@@ -129,7 +129,7 @@ int32_t SelectFormat::findSubMessage(const MessagePattern& pattern, int32_t part - if (U_FAILURE(ec)) { - return 0; - } -- UnicodeString other(FALSE, SELECT_KEYWORD_OTHER, 5); -+ UnicodeString other(false, SELECT_KEYWORD_OTHER, 5); - int32_t count = pattern.countParts(); - int32_t msgStart=0; - // Iterate over (ARG_SELECTOR, message) pairs until ARG_LIMIT or end of select-only pattern. -diff --git a/deps/icu-small/source/i18n/sharedbreakiterator.h b/deps/icu-small/source/i18n/sharedbreakiterator.h -index b6d67bc8e8..76e959fda3 100644 ---- a/deps/icu-small/source/i18n/sharedbreakiterator.h -+++ b/deps/icu-small/source/i18n/sharedbreakiterator.h -@@ -38,8 +38,8 @@ public: - BreakIterator &operator*() const { return *ptr; } - private: - BreakIterator *ptr; -- SharedBreakIterator(const SharedBreakIterator &); -- SharedBreakIterator &operator=(const SharedBreakIterator &); -+ SharedBreakIterator(const SharedBreakIterator &) = delete; -+ SharedBreakIterator &operator=(const SharedBreakIterator &) = delete; - }; - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/sharedcalendar.h b/deps/icu-small/source/i18n/sharedcalendar.h -index 1526f92e88..60d1d5d487 100644 ---- a/deps/icu-small/source/i18n/sharedcalendar.h -+++ b/deps/icu-small/source/i18n/sharedcalendar.h -@@ -13,6 +13,7 @@ - - #include "unicode/utypes.h" - #include "sharedobject.h" -+#include "unifiedcache.h" - - U_NAMESPACE_BEGIN - -@@ -27,10 +28,15 @@ public: - const Calendar &operator*() const { return *ptr; } - private: - Calendar *ptr; -- SharedCalendar(const SharedCalendar &); -- SharedCalendar &operator=(const SharedCalendar &); -+ SharedCalendar(const SharedCalendar &) = delete; -+ SharedCalendar &operator=(const SharedCalendar &) = delete; - }; - -+template<> U_I18N_API -+const SharedCalendar *LocaleCacheKey::createObject( -+ const void * /*unusedCreationContext*/, UErrorCode &status) const; -+ -+ - U_NAMESPACE_END - - #endif -diff --git a/deps/icu-small/source/i18n/shareddateformatsymbols.h b/deps/icu-small/source/i18n/shareddateformatsymbols.h -index 66a06ecae5..b51fad98b0 100644 ---- a/deps/icu-small/source/i18n/shareddateformatsymbols.h -+++ b/deps/icu-small/source/i18n/shareddateformatsymbols.h -@@ -17,6 +17,7 @@ - - #include "sharedobject.h" - #include "unicode/dtfmtsym.h" -+#include "unifiedcache.h" - - U_NAMESPACE_BEGIN - -@@ -30,10 +31,15 @@ public: - const DateFormatSymbols &get() const { return dfs; } - private: - DateFormatSymbols dfs; -- SharedDateFormatSymbols(const SharedDateFormatSymbols &); -- SharedDateFormatSymbols &operator=(const SharedDateFormatSymbols &); -+ SharedDateFormatSymbols(const SharedDateFormatSymbols &) = delete; -+ SharedDateFormatSymbols &operator=(const SharedDateFormatSymbols &) = delete; - }; - -+template<> U_I18N_API -+const SharedDateFormatSymbols * -+ LocaleCacheKey::createObject( -+ const void * /*unusedContext*/, UErrorCode &status) const; -+ - U_NAMESPACE_END - - #endif /* !UCONFIG_NO_FORMATTING */ -diff --git a/deps/icu-small/source/i18n/sharednumberformat.h b/deps/icu-small/source/i18n/sharednumberformat.h -index a7e105b5ac..bd914c0340 100644 ---- a/deps/icu-small/source/i18n/sharednumberformat.h -+++ b/deps/icu-small/source/i18n/sharednumberformat.h -@@ -13,6 +13,7 @@ - - #include "unicode/utypes.h" - #include "sharedobject.h" -+#include "unifiedcache.h" - - U_NAMESPACE_BEGIN - -@@ -27,10 +28,14 @@ public: - const NumberFormat &operator*() const { return *ptr; } - private: - NumberFormat *ptr; -- SharedNumberFormat(const SharedNumberFormat &); -- SharedNumberFormat &operator=(const SharedNumberFormat &); -+ SharedNumberFormat(const SharedNumberFormat &) = delete; -+ SharedNumberFormat &operator=(const SharedNumberFormat &) = delete; - }; - -+template<> U_I18N_API -+const SharedNumberFormat *LocaleCacheKey::createObject( -+ const void * /*unused*/, UErrorCode &status) const; -+ - U_NAMESPACE_END - - #endif -diff --git a/deps/icu-small/source/i18n/sharedpluralrules.h b/deps/icu-small/source/i18n/sharedpluralrules.h -index 28d8b25c14..11c82c5619 100644 ---- a/deps/icu-small/source/i18n/sharedpluralrules.h -+++ b/deps/icu-small/source/i18n/sharedpluralrules.h -@@ -13,6 +13,7 @@ - - #include "unicode/utypes.h" - #include "sharedobject.h" -+#include "unifiedcache.h" - - U_NAMESPACE_BEGIN - -@@ -26,10 +27,14 @@ public: - const PluralRules &operator*() const { return *ptr; } - private: - PluralRules *ptr; -- SharedPluralRules(const SharedPluralRules &); -- SharedPluralRules &operator=(const SharedPluralRules &); -+ SharedPluralRules(const SharedPluralRules &) = delete; -+ SharedPluralRules &operator=(const SharedPluralRules &) =delete; - }; - -+template<> U_I18N_API -+const SharedPluralRules *LocaleCacheKey::createObject( -+ const void * /*unused*/, UErrorCode &status) const; -+ - U_NAMESPACE_END - - #endif -diff --git a/deps/icu-small/source/i18n/simpletz.cpp b/deps/icu-small/source/i18n/simpletz.cpp -index d9b0cd8e1e..77403e4807 100644 ---- a/deps/icu-small/source/i18n/simpletz.cpp -+++ b/deps/icu-small/source/i18n/simpletz.cpp -@@ -76,7 +76,7 @@ SimpleTimeZone::SimpleTimeZone(int32_t rawOffsetGMT, const UnicodeString& ID) - endTime(0), - startYear(0), - rawOffset(rawOffsetGMT), -- useDaylight(FALSE), -+ useDaylight(false), - startMode(DOM_MODE), - endMode(DOM_MODE), - dstSavings(U_MILLIS_PER_HOUR) -@@ -262,7 +262,7 @@ void - SimpleTimeZone::setStartYear(int32_t year) - { - startYear = year; -- transitionRulesInitialized = FALSE; -+ transitionRulesInitialized = false; - } - - // ------------------------------------- -@@ -316,7 +316,7 @@ SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfWeekInMonth, int32_t da - startTime = time; - startTimeMode = mode; - decodeStartRule(status); -- transitionRulesInitialized = FALSE; -+ transitionRulesInitialized = false; - } - - // ------------------------------------- -@@ -368,7 +368,7 @@ SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayO - endTime = time; - endTimeMode = mode; - decodeEndRule(status); -- transitionRulesInitialized = FALSE; -+ transitionRulesInitialized = false; - } - - // ------------------------------------- -@@ -518,9 +518,8 @@ SimpleTimeZone::getOffsetFromLocal(UDate date, UTimeZoneLocalOption nonExistingT - } - - rawOffsetGMT = getRawOffset(); -- int32_t year, month, dom, dow; -- double day = uprv_floor(date / U_MILLIS_PER_DAY); -- int32_t millis = (int32_t) (date - day * U_MILLIS_PER_DAY); -+ int32_t year, month, dom, dow, millis; -+ int32_t day = ClockMath::floorDivide(date, U_MILLIS_PER_DAY, &millis); - - Grego::dayToFields(day, year, month, dom, dow); - -@@ -532,25 +531,24 @@ SimpleTimeZone::getOffsetFromLocal(UDate date, UTimeZoneLocalOption nonExistingT - return; - } - -- UBool recalc = FALSE; -+ UBool recalc = false; - - // Now we need some adjustment - if (savingsDST > 0) { - if ((nonExistingTimeOpt & kStdDstMask) == kStandard - || ((nonExistingTimeOpt & kStdDstMask) != kDaylight && (nonExistingTimeOpt & kFormerLatterMask) != kLatter)) { - date -= getDSTSavings(); -- recalc = TRUE; -+ recalc = true; - } - } else { - if ((duplicatedTimeOpt & kStdDstMask) == kDaylight - || ((duplicatedTimeOpt & kStdDstMask) != kStandard && (duplicatedTimeOpt & kFormerLatterMask) == kFormer)) { - date -= getDSTSavings(); -- recalc = TRUE; -+ recalc = true; - } - } - if (recalc) { -- day = uprv_floor(date / U_MILLIS_PER_DAY); -- millis = (int32_t) (date - day * U_MILLIS_PER_DAY); -+ day = ClockMath::floorDivide(date, U_MILLIS_PER_DAY, &millis); - Grego::dayToFields(day, year, month, dom, dow); - savingsDST = getOffset(GregorianCalendar::AD, year, month, dom, - (uint8_t) dow, millis, -@@ -681,7 +679,7 @@ void - SimpleTimeZone::setRawOffset(int32_t offsetMillis) - { - rawOffset = offsetMillis; -- transitionRulesInitialized = FALSE; -+ transitionRulesInitialized = false; - } - - // ------------------------------------- -@@ -695,7 +693,7 @@ SimpleTimeZone::setDSTSavings(int32_t millisSavedDuringDST, UErrorCode& status) - else { - dstSavings = millisSavedDuringDST; - } -- transitionRulesInitialized = FALSE; -+ transitionRulesInitialized = false; - } - - // ------------------------------------- -@@ -725,12 +723,12 @@ UBool SimpleTimeZone::inDaylightTime(UDate date, UErrorCode& status) const - // This method is wasteful since it creates a new GregorianCalendar and - // deletes it each time it is called. However, this is a deprecated method - // and provided only for Java compatibility as of 8/6/97 [LIU]. -- if (U_FAILURE(status)) return FALSE; -+ if (U_FAILURE(status)) return false; - GregorianCalendar *gc = new GregorianCalendar(*this, status); - /* test for NULL */ - if (gc == 0) { - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - gc->setTime(date, status); - UBool result = gc->inDaylightTime(status); -@@ -748,8 +746,8 @@ UBool SimpleTimeZone::inDaylightTime(UDate date, UErrorCode& status) const - UBool - SimpleTimeZone::hasSameRules(const TimeZone& other) const - { -- if (this == &other) return TRUE; -- if (typeid(*this) != typeid(other)) return FALSE; -+ if (this == &other) return true; -+ if (typeid(*this) != typeid(other)) return false; - SimpleTimeZone *that = (SimpleTimeZone*)&other; - return rawOffset == that->rawOffset && - useDaylight == that->useDaylight && -@@ -872,7 +870,7 @@ SimpleTimeZone::decodeStartRule(UErrorCode& status) - { - if(U_FAILURE(status)) return; - -- useDaylight = (UBool)((startDay != 0) && (endDay != 0) ? TRUE : FALSE); -+ useDaylight = (UBool)((startDay != 0) && (endDay != 0) ? true : false); - if (useDaylight && dstSavings == 0) { - dstSavings = U_MILLIS_PER_HOUR; - } -@@ -927,7 +925,7 @@ SimpleTimeZone::decodeEndRule(UErrorCode& status) - { - if(U_FAILURE(status)) return; - -- useDaylight = (UBool)((startDay != 0) && (endDay != 0) ? TRUE : FALSE); -+ useDaylight = (UBool)((startDay != 0) && (endDay != 0) ? true : false); - if (useDaylight && dstSavings == 0) { - dstSavings = U_MILLIS_PER_HOUR; - } -@@ -975,13 +973,13 @@ SimpleTimeZone::decodeEndRule(UErrorCode& status) - UBool - SimpleTimeZone::getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const { - if (!useDaylight) { -- return FALSE; -+ return false; - } - - UErrorCode status = U_ZERO_ERROR; - checkTransitionRules(status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - - UDate firstTransitionTime = firstTransition->getTime(); -@@ -995,32 +993,32 @@ SimpleTimeZone::getNextTransition(UDate base, UBool inclusive, TimeZoneTransitio - result.setTime(stdDate); - result.setFrom((const TimeZoneRule&)*dstRule); - result.setTo((const TimeZoneRule&)*stdRule); -- return TRUE; -+ return true; - } - if (dstAvail && (!stdAvail || dstDate < stdDate)) { - result.setTime(dstDate); - result.setFrom((const TimeZoneRule&)*stdRule); - result.setTo((const TimeZoneRule&)*dstRule); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UBool - SimpleTimeZone::getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const { - if (!useDaylight) { -- return FALSE; -+ return false; - } - - UErrorCode status = U_ZERO_ERROR; - checkTransitionRules(status); - if (U_FAILURE(status)) { -- return FALSE; -+ return false; - } - - UDate firstTransitionTime = firstTransition->getTime(); - if (base < firstTransitionTime || (!inclusive && base == firstTransitionTime)) { -- return FALSE; -+ return false; - } - UDate stdDate, dstDate; - UBool stdAvail = stdRule->getPreviousStart(base, dstRule->getRawOffset(), dstRule->getDSTSavings(), inclusive, stdDate); -@@ -1029,15 +1027,15 @@ SimpleTimeZone::getPreviousTransition(UDate base, UBool inclusive, TimeZoneTrans - result.setTime(stdDate); - result.setFrom((const TimeZoneRule&)*dstRule); - result.setTo((const TimeZoneRule&)*stdRule); -- return TRUE; -+ return true; - } - if (dstAvail && (!stdAvail || dstDate > stdDate)) { - result.setTime(dstDate); - result.setFrom((const TimeZoneRule&)*stdRule); - result.setTo((const TimeZoneRule&)*dstRule); -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - void -@@ -1046,7 +1044,7 @@ SimpleTimeZone::clearTransitionRules(void) { - firstTransition = NULL; - stdRule = NULL; - dstRule = NULL; -- transitionRulesInitialized = FALSE; -+ transitionRulesInitialized = false; - } - - void -@@ -1224,7 +1222,7 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) { - } - } - -- transitionRulesInitialized = TRUE; -+ transitionRulesInitialized = true; - } - - int32_t -diff --git a/deps/icu-small/source/i18n/smpdtfmt.cpp b/deps/icu-small/source/i18n/smpdtfmt.cpp -index c1e943a094..72ba0c0bfc 100644 ---- a/deps/icu-small/source/i18n/smpdtfmt.cpp -+++ b/deps/icu-small/source/i18n/smpdtfmt.cpp -@@ -161,8 +161,8 @@ static const int8_t kTimeFieldsCount = 10; - // of a resource. - static const UChar gDefaultPattern[] = - { -- 0x79, 0x79, 0x79, 0x79, 0x4D, 0x4D, 0x64, 0x64, 0x20, 0x68, 0x68, 0x3A, 0x6D, 0x6D, 0x20, 0x61, 0 --}; /* "yyyyMMdd hh:mm a" */ -+ 0x79, 0x4D, 0x4D, 0x64, 0x64, 0x20, 0x68, 0x68, 0x3A, 0x6D, 0x6D, 0x20, 0x61, 0 -+}; /* "yMMdd hh:mm a" */ - - // This prefix is designed to NEVER MATCH real text, in order to - // suppress the parsing of negative numbers. Adjust as needed (if -@@ -263,12 +263,12 @@ void SimpleDateFormat::NSOverride::free() { - // to modify it so that it doesn't use thousands separators, doesn't always - // show the decimal point, and recognizes integers only when parsing - static void fixNumberFormatForDates(NumberFormat &nf) { -- nf.setGroupingUsed(FALSE); -+ nf.setGroupingUsed(false); - DecimalFormat* decfmt = dynamic_cast(&nf); - if (decfmt != NULL) { -- decfmt->setDecimalSeparatorAlwaysShown(FALSE); -+ decfmt->setDecimalSeparatorAlwaysShown(false); - } -- nf.setParseIntegerOnly(TRUE); -+ nf.setParseIntegerOnly(true); - nf.setMinimumFractionDigits(0); // To prevent "Jan 1.00, 1997.00" - } - -@@ -701,7 +701,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - LocalUResourceBundlePointer bundle(ures_open(NULL, locale.getBaseName(), &status)); - if (U_FAILURE(status)) return; - -- UBool cTypeIsGregorian = TRUE; -+ UBool cTypeIsGregorian = true; - LocalUResourceBundlePointer dateTimePatterns; - if (cType != NULL && uprv_strcmp(cType, "gregorian") != 0) { - CharString resourcePath("calendar/", status); -@@ -709,7 +709,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - dateTimePatterns.adoptInstead( - ures_getByKeyWithFallback(bundle.getAlias(), resourcePath.data(), - (UResourceBundle*)NULL, &status)); -- cTypeIsGregorian = FALSE; -+ cTypeIsGregorian = false; - } - - // Check for "gregorian" fallback. -@@ -776,7 +776,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - // region preferences anyway. - LocalPointer dtpg(DateTimePatternGenerator::createInstanceNoStdPat(locale, useStatus)); - if (U_SUCCESS(useStatus)) { -- UnicodeString timeSkeleton(TRUE, timeSkeletons[timeStyle], -1); -+ UnicodeString timeSkeleton(true, timeSkeletons[timeStyle], -1); - timePattern = dtpg->getBestPattern(timeSkeleton, useStatus); - } - } -@@ -805,7 +805,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); -- fTimeOverride.setTo(TRUE, ovrStr, ovrStrLen); -+ fTimeOverride.setTo(true, ovrStr, ovrStrLen); - break; - } - default: { -@@ -814,7 +814,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - } - } - -- tempus1.setTo(TRUE, resStr, resStrLen); -+ tempus1.setTo(true, resStr, resStrLen); - } - - currentBundle.adoptInstead( -@@ -831,7 +831,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); -- fDateOverride.setTo(TRUE, ovrStr, ovrStrLen); -+ fDateOverride.setTo(true, ovrStr, ovrStrLen); - break; - } - default: { -@@ -840,17 +840,40 @@ void SimpleDateFormat::construct(EStyle timeStyle, - } - } - -- UnicodeString tempus2(TRUE, resStr, resStrLen); -+ UnicodeString tempus2(true, resStr, resStrLen); - -- int32_t glueIndex = kDateTime; -- int32_t patternsSize = ures_getSize(dateTimePatterns.getAlias()); -- if (patternsSize >= (kDateTimeOffset + kShort + 1)) { -- // Get proper date time format -- glueIndex = (int32_t)(kDateTimeOffset + (dateStyle - kDateOffset)); -+ // Currently, for compatibility with pre-CLDR-42 data, we default to the "atTime" -+ // combining patterns. Depending on guidance in CLDR 42 spec and on DisplayOptions, -+ // we may change this. -+ LocalUResourceBundlePointer dateAtTimePatterns; -+ if (!cTypeIsGregorian) { -+ CharString resourcePath("calendar/", status); -+ resourcePath.append(cType, status).append("/DateTimePatterns%atTime", status); -+ dateAtTimePatterns.adoptInstead( -+ ures_getByKeyWithFallback(bundle.getAlias(), resourcePath.data(), -+ nullptr, &status)); - } -+ if (cTypeIsGregorian || status == U_MISSING_RESOURCE_ERROR) { -+ status = U_ZERO_ERROR; -+ dateAtTimePatterns.adoptInstead( -+ ures_getByKeyWithFallback(bundle.getAlias(), -+ "calendar/gregorian/DateTimePatterns%atTime", -+ nullptr, &status)); -+ } -+ if (U_SUCCESS(status) && ures_getSize(dateAtTimePatterns.getAlias()) >= 4) { -+ resStr = ures_getStringByIndex(dateAtTimePatterns.getAlias(), dateStyle - kDateOffset, &resStrLen, &status); -+ } else { -+ status = U_ZERO_ERROR; -+ int32_t glueIndex = kDateTime; -+ int32_t patternsSize = ures_getSize(dateTimePatterns.getAlias()); -+ if (patternsSize >= (kDateTimeOffset + kShort + 1)) { -+ // Get proper date time format -+ glueIndex = (int32_t)(kDateTimeOffset + (dateStyle - kDateOffset)); -+ } - -- resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), glueIndex, &resStrLen, &status); -- SimpleFormatter(UnicodeString(TRUE, resStr, resStrLen), 2, 2, status). -+ resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), glueIndex, &resStrLen, &status); -+ } -+ SimpleFormatter(UnicodeString(true, resStr, resStrLen), 2, 2, status). - format(tempus1, tempus2, fPattern, status); - } - // if the pattern includes just time data or just date date, load the appropriate -@@ -873,7 +896,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); -- fDateOverride.setTo(TRUE, ovrStr, ovrStrLen); -+ fDateOverride.setTo(true, ovrStr, ovrStrLen); - break; - } - default: { -@@ -881,7 +904,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - return; - } - } -- fPattern.setTo(TRUE, resStr, resStrLen); -+ fPattern.setTo(true, resStr, resStrLen); - } - } - else if (dateStyle != kNone) { -@@ -899,7 +922,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - case URES_ARRAY: { - resStr = ures_getStringByIndex(currentBundle.getAlias(), 0, &resStrLen, &status); - ovrStr = ures_getStringByIndex(currentBundle.getAlias(), 1, &ovrStrLen, &status); -- fDateOverride.setTo(TRUE, ovrStr, ovrStrLen); -+ fDateOverride.setTo(true, ovrStr, ovrStrLen); - break; - } - default: { -@@ -907,7 +930,7 @@ void SimpleDateFormat::construct(EStyle timeStyle, - return; - } - } -- fPattern.setTo(TRUE, resStr, resStrLen); -+ fPattern.setTo(true, resStr, resStrLen); - } - - // and if it includes _neither_, that's an error -@@ -953,7 +976,7 @@ SimpleDateFormat::initialize(const Locale& locale, - if (fNumberFormat != NULL && U_SUCCESS(status)) - { - fixNumberFormatForDates(*fNumberFormat); -- //fNumberFormat->setLenient(TRUE); // Java uses a custom DateNumberFormat to format/parse -+ //fNumberFormat->setLenient(true); // Java uses a custom DateNumberFormat to format/parse - - initNumberFormatters(locale, status); - initFastNumberFormatters(status); -@@ -1010,7 +1033,7 @@ void SimpleDateFormat::parseAmbiguousDatesAsAfter(UDate startDate, UErrorCode& s - - fCalendar->setTime(startDate, status); - if(U_SUCCESS(status)) { -- fHaveDefaultCentury = TRUE; -+ fHaveDefaultCentury = true; - fDefaultCenturyStart = startDate; - fDefaultCenturyStartYear = fCalendar->get(UCAL_YEAR, status); - } -@@ -1063,7 +1086,7 @@ SimpleDateFormat::_format(Calendar& cal, UnicodeString& appendTo, - } - } - -- UBool inQuote = FALSE; -+ UBool inQuote = false; - UChar prevCh = 0; - int32_t count = 0; - int32_t fieldNum = 0; -@@ -1169,45 +1192,45 @@ int32_t SimpleDateFormat::getLevelFromChar(UChar ch) { - UBool SimpleDateFormat::isSyntaxChar(UChar ch) { - static const UBool mapCharToIsSyntax[] = { - // -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - // -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - // -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - // -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - // ! " # $ % & ' -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - // ( ) * + , - . / -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - // 0 1 2 3 4 5 6 7 -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - #if UDAT_HAS_PATTERN_CHAR_FOR_TIME_SEPARATOR - // 8 9 : ; < = > ? -- FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, true, false, false, false, false, false, - #else - // 8 9 : ; < = > ? -- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ false, false, false, false, false, false, false, false, - #endif - // @ A B C D E F G -- FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, -+ false, true, true, true, true, true, true, true, - // H I J K L M N O -- TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, -+ true, true, true, true, true, true, true, true, - // P Q R S T U V W -- TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, -+ true, true, true, true, true, true, true, true, - // X Y Z [ \ ] ^ _ -- TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, -+ true, true, true, false, false, false, false, false, - // ` a b c d e f g -- FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, -+ false, true, true, true, true, true, true, true, - // h i j k l m n o -- TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, -+ true, true, true, true, true, true, true, true, - // p q r s t u v w -- TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, -+ true, true, true, true, true, true, true, true, - // x y z { | } ~ -- TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE -+ true, true, true, false, false, false, false, false - }; - -- return ch < UPRV_LENGTHOF(mapCharToIsSyntax) ? mapCharToIsSyntax[ch] : FALSE; -+ return ch < UPRV_LENGTHOF(mapCharToIsSyntax) ? mapCharToIsSyntax[ch] : false; - } - - // Map index into pattern character string to Calendar field number. -@@ -1376,13 +1399,13 @@ SimpleDateFormat::processOverrideString(const Locale &locale, const UnicodeStrin - int32_t len; - UnicodeString nsName; - UnicodeString ovrField; -- UBool moreToProcess = TRUE; -+ UBool moreToProcess = true; - NSOverride *overrideList = NULL; - - while (moreToProcess) { - int32_t delimiterPosition = str.indexOf((UChar)ULOC_KEYWORD_ITEM_SEPARATOR_UNICODE,start); - if (delimiterPosition == -1) { -- moreToProcess = FALSE; -+ moreToProcess = false; - len = str.length() - start; - } else { - len = delimiterPosition - start; -@@ -1401,11 +1424,11 @@ SimpleDateFormat::processOverrideString(const Locale &locale, const UnicodeStrin - // See if the numbering system is in the override list, if not, then add it. - NSOverride *curr = overrideList; - const SharedNumberFormat *snf = NULL; -- UBool found = FALSE; -+ UBool found = false; - while ( curr && !found ) { - if ( curr->hash == nsNameHash ) { - snf = curr->snf; -- found = TRUE; -+ found = true; - } - curr = curr->next; - } -@@ -2062,10 +2085,10 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo, - // if first field, check to see whether we need to and are able to titlecase it - if (fieldNum == 0 && fCapitalizationBrkIter != NULL && appendTo.length() > beginOffset && - u_islower(appendTo.char32At(beginOffset))) { -- UBool titlecase = FALSE; -+ UBool titlecase = false; - switch (capitalizationContext) { - case UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE: -- titlecase = TRUE; -+ titlecase = true; - break; - case UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU: - titlecase = fSymbols->fCapitalization[capContextUsageType][0]; -@@ -2074,7 +2097,7 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo, - titlecase = fSymbols->fCapitalization[capContextUsageType][1]; - break; - default: -- // titlecase = FALSE; -+ // titlecase = false; - break; - } - if (titlecase) { -@@ -2228,13 +2251,13 @@ UBool - SimpleDateFormat::isAtNumericField(const UnicodeString &pattern, int32_t patternOffset) { - if (patternOffset >= pattern.length()) { - // not at any field -- return FALSE; -+ return false; - } - UChar ch = pattern.charAt(patternOffset); - UDateFormatField f = DateFormatSymbols::getPatternCharIndex(ch); - if (f == UDAT_FIELD_COUNT) { - // not at any field -- return FALSE; -+ return false; - } - int32_t i = patternOffset; - while (pattern.charAt(++i) == ch) {} -@@ -2245,13 +2268,13 @@ UBool - SimpleDateFormat::isAfterNonNumericField(const UnicodeString &pattern, int32_t patternOffset) { - if (patternOffset <= 0) { - // not after any field -- return FALSE; -+ return false; - } - UChar ch = pattern.charAt(--patternOffset); - UDateFormatField f = DateFormatSymbols::getPatternCharIndex(ch); - if (f == UDAT_FIELD_COUNT) { - // not after any field -- return FALSE; -+ return false; - } - int32_t i = patternOffset; - while (pattern.charAt(--i) == ch) {} -@@ -2273,7 +2296,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& - // the hour to interpret time correctly. - int32_t dayPeriodInt = -1; - -- UBool ambiguousYear[] = { FALSE }; -+ UBool ambiguousYear[] = { false }; - int32_t saveHebrewMonth = -1; - int32_t count = 0; - UTimeZoneFormatTimeType tzTimeType = UTZFMT_TIME_TYPE_UNKNOWN; -@@ -2286,7 +2309,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& - int32_t abutPat = -1; // If >=0, we are in a run of abutting numeric fields - int32_t abutStart = 0; - int32_t abutPass = 0; -- UBool inQuote = FALSE; -+ UBool inQuote = false; - - MessageFormat * numericLeapMonthFormatter = NULL; - -@@ -2370,7 +2393,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& - } - - pos = subParse(text, pos, ch, count, -- TRUE, FALSE, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType); -+ true, false, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType); - - // If the parse fails anywhere in the run, back up to the - // start of the run and retry. -@@ -2385,7 +2408,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& - // fields. - else if (ch != 0x6C) { // pattern char 'l' (SMALL LETTER L) just gets ignored - int32_t s = subParse(text, pos, ch, count, -- FALSE, TRUE, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType, &dayPeriodInt); -+ false, true, ambiguousYear, saveHebrewMonth, *workCal, i, numericLeapMonthFormatter, &tzTimeType, &dayPeriodInt); - - if (s == -pos-1) { - // era not present, in special cases allow this to continue -@@ -2594,7 +2617,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& - } else { - // No good way to resolve ambiguous time at transition, - // but following code work in most case. -- tz.getOffset(localMillis, TRUE, raw, dst, status); -+ tz.getOffset(localMillis, true, raw, dst, status); - } - - // Now, compare the results with parsed type, either standard or daylight saving time -@@ -2617,7 +2640,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& - - // Search for DST rule after the given time - while (time < limit) { -- trsAvail = btz->getNextTransition(time, FALSE, trs); -+ trsAvail = btz->getNextTransition(time, false, trs); - if (!trsAvail) { - break; - } -@@ -2634,7 +2657,7 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& - time = baseTime; - limit = baseTime - MAX_DAYLIGHT_DETECTION_RANGE; - while (time > limit) { -- trsAvail = btz->getPreviousTransition(time, TRUE, trs); -+ trsAvail = btz->getPreviousTransition(time, true, trs); - if (!trsAvail) { - break; - } -@@ -2759,7 +2782,7 @@ UBool SimpleDateFormat::matchLiterals(const UnicodeString &pattern, - UBool partialMatchLenient, - UBool oldLeniency) - { -- UBool inQuote = FALSE; -+ UBool inQuote = false; - UnicodeString literal; - int32_t i = patternOffset; - -@@ -2801,10 +2824,10 @@ UBool SimpleDateFormat::matchLiterals(const UnicodeString &pattern, - } - - for (p = 0; p < literal.length() && t < text.length();) { -- UBool needWhitespace = FALSE; -+ UBool needWhitespace = false; - - while (p < literal.length() && PatternProps::isWhiteSpace(literal.charAt(p))) { -- needWhitespace = TRUE; -+ needWhitespace = true; - p += 1; - } - -@@ -2827,7 +2850,7 @@ UBool SimpleDateFormat::matchLiterals(const UnicodeString &pattern, - if (!whitespaceLenient && t == tStart) { - // didn't find matching whitespace: - // an error in strict mode -- return FALSE; -+ return false; - } - - // In strict mode, this run of whitespace -@@ -2861,7 +2884,7 @@ UBool SimpleDateFormat::matchLiterals(const UnicodeString &pattern, - break; - } - -- return FALSE; -+ return false; - } - ++p; - ++t; -@@ -2892,7 +2915,50 @@ UBool SimpleDateFormat::matchLiterals(const UnicodeString &pattern, - patternOffset = i - 1; - textOffset = t; - -- return TRUE; -+ return true; -+} -+ -+//---------------------------------------------------------------------- -+// check both wide and abbrev months. -+// Does not currently handle monthPattern. -+// UCalendarDateFields field = UCAL_MONTH -+ -+int32_t SimpleDateFormat::matchAlphaMonthStrings(const UnicodeString& text, -+ int32_t start, -+ const UnicodeString* wideData, -+ const UnicodeString* shortData, -+ int32_t dataCount, -+ Calendar& cal) const -+{ -+ int32_t i; -+ int32_t bestMatchLength = 0, bestMatch = -1; -+ -+ for (i = 0; i < dataCount; ++i) { -+ int32_t matchLen = 0; -+ if ((matchLen = matchStringWithOptionalDot(text, start, wideData[i])) > bestMatchLength) { -+ bestMatch = i; -+ bestMatchLength = matchLen; -+ } -+ } -+ for (i = 0; i < dataCount; ++i) { -+ int32_t matchLen = 0; -+ if ((matchLen = matchStringWithOptionalDot(text, start, shortData[i])) > bestMatchLength) { -+ bestMatch = i; -+ bestMatchLength = matchLen; -+ } -+ } -+ -+ if (bestMatch >= 0) { -+ // Adjustment for Hebrew Calendar month Adar II -+ if (!strcmp(cal.getType(),"hebrew") && bestMatch==13) { -+ cal.set(UCAL_MONTH,6); -+ } else { -+ cal.set(UCAL_MONTH, bestMatch); -+ } -+ return start + bestMatchLength; -+ } -+ -+ return -start; - } - - //---------------------------------------------------------------------- -@@ -2914,6 +2980,8 @@ int32_t SimpleDateFormat::matchString(const UnicodeString& text, - // the same prefix (e.g., Cerven and Cervenec (June and July) in Czech). - // We keep track of the longest match, and return that. Note that this - // unfortunately requires us to test all array elements. -+ // But this does not really work for cases such as Chuvash in which -+ // May is "ҫу" and August is "ҫурла"/"ҫур.", hence matchAlphaMonthStrings. - int32_t bestMatchLength = 0, bestMatch = -1; - UnicodeString bestMatchName; - int32_t isLeapMonth = 0; -@@ -3011,7 +3079,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC - UDateFormatField patternCharIndex = DateFormatSymbols::getPatternCharIndex(ch); - const NumberFormat *currentNumberFormat; - UnicodeString temp; -- UBool gotNumber = FALSE; -+ UBool gotNumber = false; - - #if defined (U_DEBUG_CAL) - //fprintf(stderr, "%s:%d - [%c] st=%d \n", __FILE__, __LINE__, (char) ch, start); -@@ -3072,12 +3140,12 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC - // but that's going to be difficult. - const UnicodeString* src; - -- UBool parsedNumericLeapMonth = FALSE; -+ UBool parsedNumericLeapMonth = false; - if (numericLeapMonthFormatter != NULL && (patternCharIndex == UDAT_MONTH_FIELD || patternCharIndex == UDAT_STANDALONE_MONTH_FIELD)) { - int32_t argCount; - Formattable * args = numericLeapMonthFormatter->parse(text, pos, argCount); - if (args != NULL && argCount == 1 && pos.getIndex() > parseStart && args[0].isNumeric()) { -- parsedNumericLeapMonth = TRUE; -+ parsedNumericLeapMonth = true; - number.setLong(args[0].getLong()); - cal.set(UCAL_IS_LEAP_MONTH, 1); - delete[] args; -@@ -3106,17 +3174,17 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC - - if (txtLoc > parseStart) { - value = number.getLong(); -- gotNumber = TRUE; -+ gotNumber = true; - - // suffix processing - if (value < 0 ) { -- txtLoc = checkIntSuffix(text, txtLoc, patLoc+1, TRUE); -+ txtLoc = checkIntSuffix(text, txtLoc, patLoc+1, true); - if (txtLoc != pos.getIndex()) { - value *= -1; - } - } - else { -- txtLoc = checkIntSuffix(text, txtLoc, patLoc+1, FALSE); -+ txtLoc = checkIntSuffix(text, txtLoc, patLoc+1, false); - } - - if (!getBooleanAttribute(UDAT_PARSE_ALLOW_WHITESPACE, status)) { -@@ -3304,6 +3372,14 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC - } - int32_t newStart = 0; - if (patternCharIndex==UDAT_MONTH_FIELD) { -+ if(getBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, status) && count>=3 && count <=4 && -+ fSymbols->fLeapMonthPatterns==nullptr && fSymbols->fMonthsCount==fSymbols->fShortMonthsCount) { -+ // single function to check both wide and short, an experiment -+ newStart = matchAlphaMonthStrings(text, start, fSymbols->fMonths, fSymbols->fShortMonths, fSymbols->fMonthsCount, cal); // try MMMM,MMM -+ if (newStart > 0) { -+ return newStart; -+ } -+ } - if(getBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, status) || count == 4) { - newStart = matchString(text, start, UCAL_MONTH, fSymbols->fMonths, fSymbols->fMonthsCount, wideMonthPat, cal); // try MMMM - if (newStart > 0) { -@@ -3314,6 +3390,14 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC - newStart = matchString(text, start, UCAL_MONTH, fSymbols->fShortMonths, fSymbols->fShortMonthsCount, shortMonthPat, cal); // try MMM - } - } else { -+ if(getBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, status) && count>=3 && count <=4 && -+ fSymbols->fLeapMonthPatterns==nullptr && fSymbols->fStandaloneMonthsCount==fSymbols->fStandaloneShortMonthsCount) { -+ // single function to check both wide and short, an experiment -+ newStart = matchAlphaMonthStrings(text, start, fSymbols->fStandaloneMonths, fSymbols->fStandaloneShortMonths, fSymbols->fStandaloneMonthsCount, cal); // try MMMM,MMM -+ if (newStart > 0) { -+ return newStart; -+ } -+ } - if(getBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, status) || count == 4) { - newStart = matchString(text, start, UCAL_MONTH, fSymbols->fStandaloneMonths, fSymbols->fStandaloneMonthsCount, wideMonthPat, cal); // try LLLL - if (newStart > 0) { -@@ -3884,7 +3968,7 @@ void SimpleDateFormat::parseInt(const UnicodeString& text, - // Memory allocation error - return; - } -- df->setNegativePrefix(UnicodeString(TRUE, SUPPRESS_NEGATIVE_PREFIX, -1)); -+ df->setNegativePrefix(UnicodeString(true, SUPPRESS_NEGATIVE_PREFIX, -1)); - fmt = df.getAlias(); - } - int32_t oldPos = pos.getIndex(); -@@ -3939,16 +4023,16 @@ void SimpleDateFormat::translatePattern(const UnicodeString& originalPattern, - } - - translatedPattern.remove(); -- UBool inQuote = FALSE; -+ UBool inQuote = false; - for (int32_t i = 0; i < originalPattern.length(); ++i) { - UChar c = originalPattern[i]; - if (inQuote) { - if (c == QUOTE) { -- inQuote = FALSE; -+ inQuote = false; - } - } else { - if (c == QUOTE) { -- inQuote = TRUE; -+ inQuote = true; - } else if (isSyntaxChar(c)) { - int32_t ci = from.indexOf(c); - if (ci == -1) { -@@ -4157,7 +4241,7 @@ SimpleDateFormat::isFieldUnitIgnored(const UnicodeString& pattern, - int32_t fieldLevel = fgCalendarFieldToLevel[field]; - int32_t level; - UChar ch; -- UBool inQuote = FALSE; -+ UBool inQuote = false; - UChar prevCh = 0; - int32_t count = 0; - -@@ -4167,7 +4251,7 @@ SimpleDateFormat::isFieldUnitIgnored(const UnicodeString& pattern, - level = getLevelFromChar(prevCh); - // the larger the level, the smaller the field unit. - if (fieldLevel <= level) { -- return FALSE; -+ return false; - } - count = 0; - } -@@ -4187,10 +4271,10 @@ SimpleDateFormat::isFieldUnitIgnored(const UnicodeString& pattern, - // last item - level = getLevelFromChar(prevCh); - if (fieldLevel <= level) { -- return FALSE; -+ return false; - } - } -- return TRUE; -+ return true; - } - - //---------------------------------------------------------------------- -@@ -4274,10 +4358,10 @@ SimpleDateFormat::compareSimpleAffix(const UnicodeString& affix, - // U+0020 is UWhiteSpace. So we have to first do a direct - // match of the run of Pattern_White_Space in the pattern, - // then match any extra characters. -- UBool literalMatch = FALSE; -+ UBool literalMatch = false; - while (pos < input.length() && - input.char32At(pos) == c) { -- literalMatch = TRUE; -+ literalMatch = true; - i += len; - pos += len; - if (i == affix.length()) { -@@ -4355,26 +4439,26 @@ SimpleDateFormat::tzFormat(UErrorCode &status) const { - } - - void SimpleDateFormat::parsePattern() { -- fHasMinute = FALSE; -- fHasSecond = FALSE; -- fHasHanYearChar = FALSE; -+ fHasMinute = false; -+ fHasSecond = false; -+ fHasHanYearChar = false; - - int len = fPattern.length(); -- UBool inQuote = FALSE; -+ UBool inQuote = false; - for (int32_t i = 0; i < len; ++i) { - UChar ch = fPattern[i]; - if (ch == QUOTE) { - inQuote = !inQuote; - } - if (ch == 0x5E74) { // don't care whether this is inside quotes -- fHasHanYearChar = TRUE; -+ fHasHanYearChar = true; - } - if (!inQuote) { - if (ch == 0x6D) { // 0x6D == 'm' -- fHasMinute = TRUE; -+ fHasMinute = true; - } - if (ch == 0x73) { // 0x73 == 's' -- fHasSecond = TRUE; -+ fHasSecond = true; - } - } - } -diff --git a/deps/icu-small/source/i18n/smpdtfst.cpp b/deps/icu-small/source/i18n/smpdtfst.cpp -index db59a4b4ab..bbf6e9eddf 100644 ---- a/deps/icu-small/source/i18n/smpdtfst.cpp -+++ b/deps/icu-small/source/i18n/smpdtfst.cpp -@@ -30,7 +30,7 @@ - U_NAMESPACE_BEGIN - - SimpleDateFormatStaticSets *gStaticSets = NULL; --UInitOnce gSimpleDateFormatStaticSetsInitOnce = U_INITONCE_INITIALIZER; -+UInitOnce gSimpleDateFormatStaticSetsInitOnce {}; - - SimpleDateFormatStaticSets::SimpleDateFormatStaticSets(UErrorCode &status) - : fDateIgnorables(NULL), -@@ -81,7 +81,7 @@ SimpleDateFormatStaticSets::cleanup(void) - delete gStaticSets; - gStaticSets = NULL; - gSimpleDateFormatStaticSetsInitOnce.reset(); -- return TRUE; -+ return true; - } - - U_CDECL_BEGIN -diff --git a/deps/icu-small/source/i18n/string_segment.cpp b/deps/icu-small/source/i18n/string_segment.cpp -index 5d19ac57f5..2ddb738f4d 100644 ---- a/deps/icu-small/source/i18n/string_segment.cpp -+++ b/deps/icu-small/source/i18n/string_segment.cpp -@@ -64,7 +64,7 @@ UnicodeString StringSegment::toUnicodeString() const { - - const UnicodeString StringSegment::toTempUnicodeString() const { - // Use the readonly-aliasing constructor for efficiency. -- return UnicodeString(FALSE, fStr.getBuffer() + fStart, fEnd - fStart); -+ return UnicodeString(false, fStr.getBuffer() + fStart, fEnd - fStart); - } - - UChar32 StringSegment::getCodePoint() const { -@@ -131,8 +131,8 @@ bool StringSegment::codePointsEqual(UChar32 cp1, UChar32 cp2, bool foldCase) { - if (!foldCase) { - return false; - } -- cp1 = u_foldCase(cp1, TRUE); -- cp2 = u_foldCase(cp2, TRUE); -+ cp1 = u_foldCase(cp1, true); -+ cp2 = u_foldCase(cp2, true); - return cp1 == cp2; - } - -diff --git a/deps/icu-small/source/i18n/strmatch.cpp b/deps/icu-small/source/i18n/strmatch.cpp -index a20f7873fe..93febc708d 100644 ---- a/deps/icu-small/source/i18n/strmatch.cpp -+++ b/deps/icu-small/source/i18n/strmatch.cpp -@@ -131,7 +131,7 @@ UMatchDegree StringMatcher::matches(const Replaceable& text, - UnicodeMatcher* subm = data->lookupMatcher(keyChar); - if (subm == 0) { - // Don't need the cursor < limit check if -- // incremental is TRUE (because it's done above); do need -+ // incremental is true (because it's done above); do need - // it otherwise. - if (cursor < limit && - keyChar == text.charAt(cursor)) { -@@ -171,10 +171,10 @@ UnicodeString& StringMatcher::toPattern(UnicodeString& result, - UChar keyChar = pattern.charAt(i); - const UnicodeMatcher* m = data->lookupMatcher(keyChar); - if (m == 0) { -- ICU_Utility::appendToRule(result, keyChar, FALSE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(result, keyChar, false, escapeUnprintable, quoteBuf); - } else { - ICU_Utility::appendToRule(result, m->toPattern(str, escapeUnprintable), -- TRUE, escapeUnprintable, quoteBuf); -+ true, escapeUnprintable, quoteBuf); - } - } - if (segmentNumber > 0) { -@@ -182,7 +182,7 @@ UnicodeString& StringMatcher::toPattern(UnicodeString& result, - } - // Flush quoteBuf out to result - ICU_Utility::appendToRule(result, -1, -- TRUE, escapeUnprintable, quoteBuf); -+ true, escapeUnprintable, quoteBuf); - return result; - } - -@@ -191,7 +191,7 @@ UnicodeString& StringMatcher::toPattern(UnicodeString& result, - */ - UBool StringMatcher::matchesIndexValue(uint8_t v) const { - if (pattern.length() == 0) { -- return TRUE; -+ return true; - } - UChar32 c = pattern.char32At(0); - const UnicodeMatcher *m = data->lookupMatcher(c); -diff --git a/deps/icu-small/source/i18n/strrepl.cpp b/deps/icu-small/source/i18n/strrepl.cpp -index 9fafeb2659..23dab55430 100644 ---- a/deps/icu-small/source/i18n/strrepl.cpp -+++ b/deps/icu-small/source/i18n/strrepl.cpp -@@ -41,9 +41,9 @@ StringReplacer::StringReplacer(const UnicodeString& theOutput, - const TransliterationRuleData* theData) { - output = theOutput; - cursorPos = theCursorPos; -- hasCursor = TRUE; -+ hasCursor = true; - data = theData; -- isComplex = TRUE; -+ isComplex = true; - } - - /** -@@ -59,9 +59,9 @@ StringReplacer::StringReplacer(const UnicodeString& theOutput, - const TransliterationRuleData* theData) { - output = theOutput; - cursorPos = 0; -- hasCursor = FALSE; -+ hasCursor = false; - data = theData; -- isComplex = TRUE; -+ isComplex = true; - } - - /** -@@ -131,7 +131,7 @@ int32_t StringReplacer::replace(Replaceable& text, - */ - UnicodeString buf; - int32_t oOutput; // offset into 'output' -- isComplex = FALSE; -+ isComplex = false; - - // The temporary buffer starts at tempStart, and extends - // to destLimit. The start of the buffer has a single -@@ -166,7 +166,7 @@ int32_t StringReplacer::replace(Replaceable& text, - // Accumulate straight (non-segment) text. - buf.append(c); - } else { -- isComplex = TRUE; -+ isComplex = true; - - // Insert any accumulated straight text. - if (buf.length() > 0) { -@@ -249,27 +249,27 @@ UnicodeString& StringReplacer::toReplacerPattern(UnicodeString& rule, - // Handle a cursor preceding the output - if (hasCursor && cursor < 0) { - while (cursor++ < 0) { -- ICU_Utility::appendToRule(rule, (UChar)0x0040 /*@*/, TRUE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, (UChar)0x0040 /*@*/, true, escapeUnprintable, quoteBuf); - } - // Fall through and append '|' below - } - - for (int32_t i=0; ilookupReplacer(c); - if (r == NULL) { -- ICU_Utility::appendToRule(rule, c, FALSE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, c, false, escapeUnprintable, quoteBuf); - } else { - UnicodeString buf; - r->toReplacerPattern(buf, escapeUnprintable); - buf.insert(0, (UChar)0x20); - buf.append((UChar)0x20); - ICU_Utility::appendToRule(rule, buf, -- TRUE, escapeUnprintable, quoteBuf); -+ true, escapeUnprintable, quoteBuf); - } - } - -@@ -279,13 +279,13 @@ UnicodeString& StringReplacer::toReplacerPattern(UnicodeString& rule, - if (hasCursor && cursor > output.length()) { - cursor -= output.length(); - while (cursor-- > 0) { -- ICU_Utility::appendToRule(rule, (UChar)0x0040 /*@*/, TRUE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, (UChar)0x0040 /*@*/, true, escapeUnprintable, quoteBuf); - } -- ICU_Utility::appendToRule(rule, (UChar)0x007C /*|*/, TRUE, escapeUnprintable, quoteBuf); -+ ICU_Utility::appendToRule(rule, (UChar)0x007C /*|*/, true, escapeUnprintable, quoteBuf); - } - // Flush quoteBuf out to result - ICU_Utility::appendToRule(rule, -1, -- TRUE, escapeUnprintable, quoteBuf); -+ true, escapeUnprintable, quoteBuf); - - return rule; - } -diff --git a/deps/icu-small/source/i18n/taiwncal.cpp b/deps/icu-small/source/i18n/taiwncal.cpp -index 27352aa10c..48f0b99e18 100644 ---- a/deps/icu-small/source/i18n/taiwncal.cpp -+++ b/deps/icu-small/source/i18n/taiwncal.cpp -@@ -140,11 +140,11 @@ void TaiwanCalendar::timeToFields(UDate theTime, UBool quick, UErrorCode& status - */ - static UDate gSystemDefaultCenturyStart = DBL_MIN; - static int32_t gSystemDefaultCenturyStartYear = -1; --static icu::UInitOnce gSystemDefaultCenturyInit = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemDefaultCenturyInit {}; - - UBool TaiwanCalendar::haveDefaultCentury() const - { -- return TRUE; -+ return true; - } - - static void U_CALLCONV initializeSystemDefaultCentury() -diff --git a/deps/icu-small/source/i18n/timezone.cpp b/deps/icu-small/source/i18n/timezone.cpp -index 8115a45e0a..00b44bfe90 100644 ---- a/deps/icu-small/source/i18n/timezone.cpp -+++ b/deps/icu-small/source/i18n/timezone.cpp -@@ -113,7 +113,7 @@ static const int32_t GMT_ID_LENGTH = 3; - static const int32_t UNKNOWN_ZONE_ID_LENGTH = 11; - - static icu::TimeZone* DEFAULT_ZONE = NULL; --static icu::UInitOnce gDefaultZoneInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gDefaultZoneInitOnce {}; - - alignas(icu::SimpleTimeZone) - static char gRawGMT[sizeof(icu::SimpleTimeZone)]; -@@ -121,11 +121,11 @@ static char gRawGMT[sizeof(icu::SimpleTimeZone)]; - alignas(icu::SimpleTimeZone) - static char gRawUNKNOWN[sizeof(icu::SimpleTimeZone)]; - --static icu::UInitOnce gStaticZonesInitOnce = U_INITONCE_INITIALIZER; --static UBool gStaticZonesInitialized = FALSE; // Whether the static zones are initialized and ready to use. -+static icu::UInitOnce gStaticZonesInitOnce {}; -+static UBool gStaticZonesInitialized = false; // Whether the static zones are initialized and ready to use. - - static char TZDATA_VERSION[16]; --static icu::UInitOnce gTZDataVersionInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gTZDataVersionInitOnce {}; - - static int32_t* MAP_SYSTEM_ZONES = NULL; - static int32_t* MAP_CANONICAL_SYSTEM_ZONES = NULL; -@@ -135,9 +135,9 @@ static int32_t LEN_SYSTEM_ZONES = 0; - static int32_t LEN_CANONICAL_SYSTEM_ZONES = 0; - static int32_t LEN_CANONICAL_SYSTEM_LOCATION_ZONES = 0; - --static icu::UInitOnce gSystemZonesInitOnce = U_INITONCE_INITIALIZER; --static icu::UInitOnce gCanonicalZonesInitOnce = U_INITONCE_INITIALIZER; --static icu::UInitOnce gCanonicalLocationZonesInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gSystemZonesInitOnce {}; -+static icu::UInitOnce gCanonicalZonesInitOnce {}; -+static icu::UInitOnce gCanonicalLocationZonesInitOnce {}; - - U_CDECL_BEGIN - static UBool U_CALLCONV timeZone_cleanup(void) -@@ -150,7 +150,7 @@ static UBool U_CALLCONV timeZone_cleanup(void) - if (gStaticZonesInitialized) { - reinterpret_cast(gRawGMT)->~SimpleTimeZone(); - reinterpret_cast(gRawUNKNOWN)->~SimpleTimeZone(); -- gStaticZonesInitialized = FALSE; -+ gStaticZonesInitialized = false; - gStaticZonesInitOnce.reset(); - } - -@@ -172,7 +172,7 @@ static UBool U_CALLCONV timeZone_cleanup(void) - MAP_CANONICAL_SYSTEM_LOCATION_ZONES = 0; - gCanonicalLocationZonesInitOnce.reset(); - -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -204,7 +204,7 @@ static int32_t findInStringArray(UResourceBundle* array, const UnicodeString& id - break; - } - U_DEBUG_TZ_MSG(("tz: compare to %s, %d .. [%d] .. %d\n", U_DEBUG_TZ_STR(u), start, mid, limit)); -- copy.setTo(TRUE, u, len); -+ copy.setTo(true, u, len); - int r = id.compare(copy); - if(r==0) { - U_DEBUG_TZ_MSG(("fisa: found at %d\n", mid)); -@@ -312,10 +312,10 @@ void U_CALLCONV initStaticTimeZones() { - ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONE, timeZone_cleanup); - - // new can't fail below, as we use placement new into statically allocated space. -- new(gRawGMT) SimpleTimeZone(0, UnicodeString(TRUE, GMT_ID, GMT_ID_LENGTH)); -- new(gRawUNKNOWN) SimpleTimeZone(0, UnicodeString(TRUE, UNKNOWN_ZONE_ID, UNKNOWN_ZONE_ID_LENGTH)); -+ new(gRawGMT) SimpleTimeZone(0, UnicodeString(true, GMT_ID, GMT_ID_LENGTH)); -+ new(gRawUNKNOWN) SimpleTimeZone(0, UnicodeString(true, UNKNOWN_ZONE_ID, UNKNOWN_ZONE_ID_LENGTH)); - -- gStaticZonesInitialized = TRUE; -+ gStaticZonesInitialized = true; - } - - } // anonymous namespace -@@ -460,7 +460,7 @@ TimeZone::detectHostTimeZone() - // which have platform specific implementations in putil.cpp - int32_t rawOffset = 0; - const char *hostID; -- UBool hostDetectionSucceeded = TRUE; -+ UBool hostDetectionSucceeded = true; - - // First, try to create a system timezone, based - // on the string ID in tzname[0]. -@@ -484,8 +484,8 @@ TimeZone::detectHostTimeZone() - if (hostStrID.length() == 0) { - // The host time zone detection (or remapping) above has failed and - // we have no name at all. Fallback to using the Unknown zone. -- hostStrID = UnicodeString(TRUE, UNKNOWN_ZONE_ID, UNKNOWN_ZONE_ID_LENGTH); -- hostDetectionSucceeded = FALSE; -+ hostStrID = UnicodeString(true, UNKNOWN_ZONE_ID, UNKNOWN_ZONE_ID_LENGTH); -+ hostDetectionSucceeded = false; - } - - hostZone = createSystemTimeZone(hostStrID); -@@ -716,12 +716,12 @@ void TimeZone::getOffset(UDate date, UBool local, int32_t& rawOffset, - date += rawOffset; // now in local standard millis - } - -- // When local == TRUE, date might not be in local standard -+ // When local == true, date might not be in local standard - // millis. getOffset taking 7 parameters used here assume - // the given time in day is local standard time. - // At STD->DST transition, there is a range of time which - // does not exist. When 'date' is in this time range -- // (and local == TRUE), this method interprets the specified -+ // (and local == true), this method interprets the specified - // local time as DST. At DST->STD transition, there is a - // range of time which occurs twice. In this case, this - // method interprets the specified local time as STD. -@@ -729,9 +729,8 @@ void TimeZone::getOffset(UDate date, UBool local, int32_t& rawOffset, - // (with 7 args) twice when local == true and DST is - // detected in the initial call. - for (int32_t pass=0; ; ++pass) { -- int32_t year, month, dom, dow; -- double day = uprv_floor(date / U_MILLIS_PER_DAY); -- int32_t millis = (int32_t) (date - day * U_MILLIS_PER_DAY); -+ int32_t year, month, dom, dow, millis; -+ double day = ClockMath::floorDivide(date, U_MILLIS_PER_DAY, &millis); - - Grego::dayToFields(day, year, month, dom, dow); - -@@ -740,7 +739,7 @@ void TimeZone::getOffset(UDate date, UBool local, int32_t& rawOffset, - Grego::monthLength(year, month), - ec) - rawOffset; - -- // Recompute if local==TRUE, dstOffset!=0. -+ // Recompute if local==true, dstOffset!=0. - if (pass!=0 || !local || dstOffset == 0) { - break; - } -@@ -781,7 +780,7 @@ private: - unistr.truncate(0); - } - else { -- unistr.fastCopyFrom(UnicodeString(TRUE, id, idLen)); -+ unistr.fastCopyFrom(UnicodeString(true, id, idLen)); - } - ures_close(top); - return U_SUCCESS(ec); -@@ -911,9 +910,9 @@ public: - if (U_SUCCESS(ec)) { - // Finally, create a new enumeration instance - if (filteredMap == NULL) { -- result = new TZEnumeration(baseMap, baseLen, FALSE); -+ result = new TZEnumeration(baseMap, baseLen, false); - } else { -- result = new TZEnumeration(filteredMap, numEntries, TRUE); -+ result = new TZEnumeration(filteredMap, numEntries, true); - filteredMap = NULL; - } - if (result == NULL) { -@@ -1075,7 +1074,7 @@ TimeZone::getEquivalentID(const UnicodeString& id, int32_t index) { - if (U_SUCCESS(ec)) { - int32_t idLen = 0; - const UChar* id2 = ures_getStringByIndex(ares, zone, &idLen, &ec); -- result.fastCopyFrom(UnicodeString(TRUE, id2, idLen)); -+ result.fastCopyFrom(UnicodeString(true, id2, idLen)); - U_DEBUG_TZ_MSG(("gei(%d) -> %d, len%d, %s\n", index, zone, result.length(), u_errorName(ec))); - } - ures_close(ares); -@@ -1214,13 +1213,13 @@ TimeZone::getRegion(const UnicodeString& id, char *region, int32_t capacity, UEr - UnicodeString& - TimeZone::getDisplayName(UnicodeString& result) const - { -- return getDisplayName(FALSE,LONG,Locale::getDefault(), result); -+ return getDisplayName(false,LONG,Locale::getDefault(), result); - } - - UnicodeString& - TimeZone::getDisplayName(const Locale& locale, UnicodeString& result) const - { -- return getDisplayName(FALSE, LONG, locale, result); -+ return getDisplayName(false, LONG, locale, result); - } - - UnicodeString& -@@ -1288,7 +1287,7 @@ TimeZone::getDisplayName(UBool inDaylight, EDisplayType style, const Locale& loc - tzfmt->formatOffsetLocalizedGMT(offset, result, status); - break; - case SHORT_GMT: -- tzfmt->formatOffsetISO8601Basic(offset, FALSE, FALSE, FALSE, result, status); -+ tzfmt->formatOffsetISO8601Basic(offset, false, false, false, result, status); - break; - default: - UPRV_UNREACHABLE_EXIT; -@@ -1388,17 +1387,17 @@ TimeZone::parseCustomID(const UnicodeString& id, int32_t& sign, - if (id[pos.getIndex()] == MINUS /*'-'*/) { - sign = -1; - } else if (id[pos.getIndex()] != PLUS /*'+'*/) { -- return FALSE; -+ return false; - } - pos.setIndex(pos.getIndex() + 1); - - UErrorCode success = U_ZERO_ERROR; - numberFormat = NumberFormat::createInstance(success); - if(U_FAILURE(success)){ -- return FALSE; -+ return false; - } -- numberFormat->setParseIntegerOnly(TRUE); -- //numberFormat->setLenient(TRUE); // TODO: May need to set this, depends on latest timezone parsing -+ numberFormat->setParseIntegerOnly(true); -+ //numberFormat->setLenient(true); // TODO: May need to set this, depends on latest timezone parsing - - // Look for either hh:mm, hhmm, or hh - int32_t start = pos.getIndex(); -@@ -1406,7 +1405,7 @@ TimeZone::parseCustomID(const UnicodeString& id, int32_t& sign, - numberFormat->parse(id, n, pos); - if (pos.getIndex() == start) { - delete numberFormat; -- return FALSE; -+ return false; - } - hour = n.getLong(); - -@@ -1414,7 +1413,7 @@ TimeZone::parseCustomID(const UnicodeString& id, int32_t& sign, - if (pos.getIndex() - start > 2 - || id[pos.getIndex()] != COLON) { - delete numberFormat; -- return FALSE; -+ return false; - } - // hh:mm - pos.setIndex(pos.getIndex() + 1); -@@ -1424,13 +1423,13 @@ TimeZone::parseCustomID(const UnicodeString& id, int32_t& sign, - if ((pos.getIndex() - oldPos) != 2) { - // must be 2 digits - delete numberFormat; -- return FALSE; -+ return false; - } - min = n.getLong(); - if (pos.getIndex() < id.length()) { - if (id[pos.getIndex()] != COLON) { - delete numberFormat; -- return FALSE; -+ return false; - } - // [:ss] - pos.setIndex(pos.getIndex() + 1); -@@ -1440,7 +1439,7 @@ TimeZone::parseCustomID(const UnicodeString& id, int32_t& sign, - if (pos.getIndex() != id.length() - || (pos.getIndex() - oldPos) != 2) { - delete numberFormat; -- return FALSE; -+ return false; - } - sec = n.getLong(); - } -@@ -1458,7 +1457,7 @@ TimeZone::parseCustomID(const UnicodeString& id, int32_t& sign, - if (length <= 0 || 6 < length) { - // invalid length - delete numberFormat; -- return FALSE; -+ return false; - } - switch (length) { - case 1: -@@ -1482,11 +1481,11 @@ TimeZone::parseCustomID(const UnicodeString& id, int32_t& sign, - delete numberFormat; - - if (hour > kMAX_CUSTOM_HOUR || min > kMAX_CUSTOM_MIN || sec > kMAX_CUSTOM_SEC) { -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - UnicodeString& -@@ -1562,7 +1561,7 @@ TimeZone::getTZDataVersion(UErrorCode& status) - UnicodeString& - TimeZone::getCanonicalID(const UnicodeString& id, UnicodeString& canonicalID, UErrorCode& status) - { -- UBool isSystemID = FALSE; -+ UBool isSystemID = false; - return getCanonicalID(id, canonicalID, isSystemID, status); - } - -@@ -1571,18 +1570,18 @@ TimeZone::getCanonicalID(const UnicodeString& id, UnicodeString& canonicalID, UB - UErrorCode& status) - { - canonicalID.remove(); -- isSystemID = FALSE; -+ isSystemID = false; - if (U_FAILURE(status)) { - return canonicalID; - } - if (id.compare(UNKNOWN_ZONE_ID, UNKNOWN_ZONE_ID_LENGTH) == 0) { - // special case - Etc/Unknown is a canonical ID, but not system ID - canonicalID.fastCopyFrom(id); -- isSystemID = FALSE; -+ isSystemID = false; - } else { - ZoneMeta::getCanonicalCLDRID(id, canonicalID, status); - if (U_SUCCESS(status)) { -- isSystemID = TRUE; -+ isSystemID = true; - } else { - // Not a system ID - status = U_ZERO_ERROR; -@@ -1601,7 +1600,7 @@ TimeZone::getWindowsID(const UnicodeString& id, UnicodeString& winid, UErrorCode - - // canonicalize the input ID - UnicodeString canonicalID; -- UBool isSystemID = FALSE; -+ UBool isSystemID = false; - - getCanonicalID(id, canonicalID, isSystemID, status); - if (U_FAILURE(status) || !isSystemID) { -@@ -1622,7 +1621,7 @@ TimeZone::getWindowsID(const UnicodeString& id, UnicodeString& winid, UErrorCode - } - - UResourceBundle *winzone = NULL; -- UBool found = FALSE; -+ UBool found = false; - while (ures_hasNext(mapTimezones) && !found) { - winzone = ures_getNextResource(mapTimezones, winzone, &status); - if (U_FAILURE(status)) { -@@ -1647,16 +1646,16 @@ TimeZone::getWindowsID(const UnicodeString& id, UnicodeString& winid, UErrorCode - } - - const UChar *start = tzids; -- UBool hasNext = TRUE; -+ UBool hasNext = true; - while (hasNext) { - const UChar *end = u_strchr(start, (UChar)0x20); - if (end == NULL) { - end = tzids + len; -- hasNext = FALSE; -+ hasNext = false; - } - if (canonicalID.compare(start, static_cast(end - start)) == 0) { - winid = UnicodeString(ures_getKey(winzone), -1 , US_INV); -- found = TRUE; -+ found = true; - break; - } - start = end + 1; -@@ -1705,7 +1704,7 @@ TimeZone::getIDForWindowsID(const UnicodeString& winid, const char* region, Unic - - const UChar *tzid = NULL; - int32_t len = 0; -- UBool gotID = FALSE; -+ UBool gotID = false; - if (region) { - const UChar *tzids = ures_getStringByKey(zones, region, &len, &tmperr); // use tmperr, because - // regional mapping is optional -@@ -1717,7 +1716,7 @@ TimeZone::getIDForWindowsID(const UnicodeString& winid, const char* region, Unic - } else { - id.setTo(tzids, static_cast(end - tzids)); - } -- gotID = TRUE; -+ gotID = true; - } - } - -diff --git a/deps/icu-small/source/i18n/titletrn.cpp b/deps/icu-small/source/i18n/titletrn.cpp -index 9c39b4676a..62e41f920c 100644 ---- a/deps/icu-small/source/i18n/titletrn.cpp -+++ b/deps/icu-small/source/i18n/titletrn.cpp -@@ -87,7 +87,7 @@ void TitlecaseTransliterator::handleTransliterate( - - // Our mode; we are either converting letter toTitle or - // toLower. -- UBool doTitle = TRUE; -+ UBool doTitle = true; - - // Determine if there is a preceding context of cased case-ignorable*, - // in which case we want to start in toLower mode. If the -@@ -99,7 +99,7 @@ void TitlecaseTransliterator::handleTransliterate( - c = text.char32At(start); - type=ucase_getTypeOrIgnorable(c); - if(type>0) { // cased -- doTitle=FALSE; -+ doTitle=false; - break; - } else if(type==0) { // uncased but not ignorable - break; -@@ -146,7 +146,7 @@ void TitlecaseTransliterator::handleTransliterate( - // see UCASE_MAX_STRING_LENGTH - if(result<=UCASE_MAX_STRING_LENGTH) { - // string s[result] -- tmp.setTo(FALSE, s, result); -+ tmp.setTo(false, s, result); - delta=result-U16_LENGTH(c); - } else { - // single code point -diff --git a/deps/icu-small/source/i18n/tmutfmt.cpp b/deps/icu-small/source/i18n/tmutfmt.cpp -index f0335a81f5..37e56b26a1 100644 ---- a/deps/icu-small/source/i18n/tmutfmt.cpp -+++ b/deps/icu-small/source/i18n/tmutfmt.cpp -@@ -358,7 +358,7 @@ struct TimeUnitFormatReadSink : public ResourceSink { - TimeUnitFormatReadSink(TimeUnitFormat *timeUnitFormatObj, - const UVector &pluralCounts, UTimeUnitFormatStyle style) : - timeUnitFormatObj(timeUnitFormatObj), pluralCounts(pluralCounts), -- style(style), beenHere(FALSE){} -+ style(style), beenHere(false){} - - virtual ~TimeUnitFormatReadSink(); - -@@ -367,7 +367,7 @@ struct TimeUnitFormatReadSink : public ResourceSink { - if (beenHere) { - return; - } else { -- beenHere = TRUE; -+ beenHere = true; - } - - ResourceTable units = value.getTable(errorCode); -@@ -573,7 +573,7 @@ TimeUnitFormat::searchInLocaleChain(UTimeUnitFormatStyle style, const char* key, - if (U_SUCCESS(status)) { - //found - LocalPointer messageFormat( -- new MessageFormat(UnicodeString(TRUE, pattern, ptLength), getLocale(err), err), err); -+ new MessageFormat(UnicodeString(true, pattern, ptLength), getLocale(err), err), err); - if (U_FAILURE(err)) { - return; - } -@@ -643,7 +643,7 @@ TimeUnitFormat::searchInLocaleChain(UTimeUnitFormatStyle style, const char* key, - } - if (pattern != NULL) { - messageFormat.adoptInsteadAndCheckErrorCode( -- new MessageFormat(UnicodeString(TRUE, pattern, -1), getLocale(err), err), err); -+ new MessageFormat(UnicodeString(true, pattern, -1), getLocale(err), err), err); - } - if (U_FAILURE(err)) { - return; -@@ -742,7 +742,7 @@ U_CDECL_BEGIN - * - * @param val1 one value in comparison - * @param val2 the other value in comparison -- * @return TRUE if 2 values are the same, FALSE otherwise -+ * @return true if 2 values are the same, false otherwise - */ - static UBool U_CALLCONV tmutfmtHashTableValueComparator(UHashTok val1, UHashTok val2); - -@@ -761,7 +761,7 @@ TimeUnitFormat::initHash(UErrorCode& status) { - return NULL; - } - Hashtable* hTable; -- if ( (hTable = new Hashtable(TRUE, status)) == NULL ) { -+ if ( (hTable = new Hashtable(true, status)) == NULL ) { - status = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } -diff --git a/deps/icu-small/source/i18n/translit.cpp b/deps/icu-small/source/i18n/translit.cpp -index c7d6b51057..4d74d0b612 100644 ---- a/deps/icu-small/source/i18n/translit.cpp -+++ b/deps/icu-small/source/i18n/translit.cpp -@@ -107,7 +107,7 @@ U_NAMESPACE_BEGIN - UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION(Transliterator) - - /** -- * Return TRUE if the given UTransPosition is valid for text of -+ * Return true if the given UTransPosition is valid for text of - * the given length. - */ - static inline UBool positionIsValid(UTransPosition& index, int32_t len) { -@@ -122,7 +122,7 @@ static inline UBool positionIsValid(UTransPosition& index, int32_t len) { - * Default constructor. - * @param theID the string identifier for this transliterator - * @param theFilter the filter. Any character for which -- * filter.contains() returns FALSE will not be -+ * filter.contains() returns false will not be - * altered by this transliterator. If filter is - * null then no filtering is applied. - */ -@@ -202,7 +202,7 @@ int32_t Transliterator::transliterate(Replaceable& text, - offsets.contextLimit = limit; - offsets.start = start; - offsets.limit = limit; -- filteredTransliterate(text, offsets, FALSE, TRUE); -+ filteredTransliterate(text, offsets, false, true); - return offsets.limit; - } - -@@ -341,7 +341,7 @@ void Transliterator::finishTransliteration(Replaceable& text, - return; - } - -- filteredTransliterate(text, index, FALSE, TRUE); -+ filteredTransliterate(text, index, false, true); - } - - /** -@@ -380,7 +380,7 @@ void Transliterator::_transliterate(Replaceable& text, - return; - } - -- filteredTransliterate(text, index, TRUE, TRUE); -+ filteredTransliterate(text, index, true, true); - - #if 0 - // TODO -@@ -440,7 +440,7 @@ void Transliterator::filteredTransliterate(Replaceable& text, - // This method processes text in two groupings: - // - // RUNS -- A run is a contiguous group of characters which are contained -- // in the filter for this transliterator (filter.contains(ch) == TRUE). -+ // in the filter for this transliterator (filter.contains(ch) == true). - // Text outside of runs may appear as context but it is not modified. - // The start and limit Position values are narrowed to each run. - // -@@ -503,10 +503,10 @@ void Transliterator::filteredTransliterate(Replaceable& text, - - // Is this run incremental? If there is additional - // filtered text (if limit < globalLimit) then we pass in -- // an incremental value of FALSE to force the subclass to -+ // an incremental value of false to force the subclass to - // complete the transliteration for this run. - UBool isIncrementalRun = -- (index.limit < globalLimit ? FALSE : incremental); -+ (index.limit < globalLimit ? false : incremental); - - int32_t delta; - -@@ -585,7 +585,7 @@ void Transliterator::filteredTransliterate(Replaceable& text, - // return, start will be updated to point after the - // transliterated text, and limit and contextLimit will be - // adjusted for length changes. -- handleTransliterate(text, index, TRUE); -+ handleTransliterate(text, index, true); - - delta = index.limit - passLimit; // change in length - -@@ -682,7 +682,7 @@ void Transliterator::filteredTransliterate(Replaceable& text, - void Transliterator::filteredTransliterate(Replaceable& text, - UTransPosition& index, - UBool incremental) const { -- filteredTransliterate(text, index, incremental, FALSE); -+ filteredTransliterate(text, index, incremental, false); - } - - /** -@@ -1070,7 +1070,7 @@ Transliterator::createFromRules(const UnicodeString& ID, - t = new NullTransliterator(); - } - else if (parser.idBlockVector.size() == 0 && parser.dataVector.size() == 1) { -- t = new RuleBasedTransliterator(ID, (TransliterationRuleData*)parser.dataVector.orphanElementAt(0), TRUE); -+ t = new RuleBasedTransliterator(ID, (TransliterationRuleData*)parser.dataVector.orphanElementAt(0), true); - } - else if (parser.idBlockVector.size() == 1 && parser.dataVector.size() == 0) { - // idBlock, no data -- this is an alias. The ID has -@@ -1079,7 +1079,7 @@ Transliterator::createFromRules(const UnicodeString& ID, - // direction. - if (parser.compoundFilter != NULL) { - UnicodeString filterPattern; -- parser.compoundFilter->toPattern(filterPattern, FALSE); -+ parser.compoundFilter->toPattern(filterPattern, false); - t = createInstance(filterPattern + UnicodeString(ID_DELIM) - + *((UnicodeString*)parser.idBlockVector.elementAt(0)), UTRANS_FORWARD, parseError, status); - } -@@ -1125,7 +1125,7 @@ Transliterator::createFromRules(const UnicodeString& ID, - TransliterationRuleData* data = (TransliterationRuleData*)parser.dataVector.orphanElementAt(0); - // TODO: Should passNumber be turned into a decimal-string representation (1 -> "1")? - RuleBasedTransliterator* temprbt = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++), -- data, TRUE); -+ data, true); - // Check if NULL before adding it to transliterators to avoid future usage of NULL pointer. - if (temprbt == NULL) { - if (U_SUCCESS(status)) { -@@ -1203,7 +1203,7 @@ UnicodeSet& Transliterator::getSourceSet(UnicodeSet& result) const { - handleGetSourceSet(result); - if (filter != NULL) { - UnicodeSet* filterSet = dynamic_cast(filter); -- UBool deleteFilterSet = FALSE; -+ UBool deleteFilterSet = false; - // Most, but not all filters will be UnicodeSets. Optimize for - // the high-runner case. - if (filterSet == NULL) { -@@ -1212,7 +1212,7 @@ UnicodeSet& Transliterator::getSourceSet(UnicodeSet& result) const { - if (filterSet == NULL) { - return result; - } -- deleteFilterSet = TRUE; -+ deleteFilterSet = true; - filter->addMatchSetTo(*filterSet); - } - result.retainAll(*filterSet); -@@ -1248,7 +1248,7 @@ void Transliterator::_registerFactory(const UnicodeString& id, - Transliterator::Factory factory, - Transliterator::Token context) { - UErrorCode ec = U_ZERO_ERROR; -- registry->put(id, factory, context, TRUE, ec); -+ registry->put(id, factory, context, true, ec); - } - - // To be called only by Transliterator subclasses that are called -@@ -1283,7 +1283,7 @@ void U_EXPORT2 Transliterator::registerInstance(Transliterator* adoptedPrototype - - void Transliterator::_registerInstance(Transliterator* adoptedPrototype) { - UErrorCode ec = U_ZERO_ERROR; -- registry->put(adoptedPrototype, TRUE, ec); -+ registry->put(adoptedPrototype, true, ec); - } - - void U_EXPORT2 Transliterator::registerAlias(const UnicodeString& aliasID, -@@ -1298,7 +1298,7 @@ void U_EXPORT2 Transliterator::registerAlias(const UnicodeString& aliasID, - void Transliterator::_registerAlias(const UnicodeString& aliasID, - const UnicodeString& realID) { - UErrorCode ec = U_ZERO_ERROR; -- registry->put(aliasID, realID, FALSE, TRUE, ec); -+ registry->put(aliasID, realID, false, true, ec); - } - - /** -@@ -1466,9 +1466,9 @@ UChar Transliterator::filteredCharAt(const Replaceable& text, int32_t i) const { - #endif - - /** -- * If the registry is initialized, return TRUE. If not, initialize it -- * and return TRUE. If the registry cannot be initialized, return -- * FALSE (rare). -+ * If the registry is initialized, return true. If not, initialize it -+ * and return true. If the registry cannot be initialized, return -+ * false (rare). - * - * IMPORTANT: Upon entry, registryMutex must be LOCKED. The entire - * initialization is done with the lock held. There is NO REASON to -@@ -1477,14 +1477,14 @@ UChar Transliterator::filteredCharAt(const Replaceable& text, int32_t i) const { - */ - UBool Transliterator::initializeRegistry(UErrorCode &status) { - if (registry != 0) { -- return TRUE; -+ return true; - } - - registry = new TransliteratorRegistry(status); - if (registry == 0 || U_FAILURE(status)) { - delete registry; - registry = 0; -- return FALSE; // can't create registry, no recovery -+ return false; // can't create registry, no recovery - } - - /* The following code parses the index table located in -@@ -1534,7 +1534,7 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { - delete registry; - registry = nullptr; - status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - if (U_SUCCESS(lstatus)) { - maxRows = ures_getSize(transIDs); -@@ -1567,13 +1567,13 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { - (ures_getUnicodeStringByKey(res, "direction", &lstatus).charAt(0) == - 0x0046 /*F*/) ? - UTRANS_FORWARD : UTRANS_REVERSE; -- registry->put(id, UnicodeString(TRUE, resString, len), dir, TRUE, visible, lstatus); -+ registry->put(id, UnicodeString(true, resString, len), dir, true, visible, lstatus); - } - break; - case 0x61: // 'a' - // 'alias'; row[2]=createInstance argument - resString = ures_getString(res, &len, &lstatus); -- registry->put(id, UnicodeString(TRUE, resString, len), TRUE, TRUE, lstatus); -+ registry->put(id, UnicodeString(true, resString, len), true, true, lstatus); - break; - } - } -@@ -1626,14 +1626,14 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { - return 0; - } - -- registry->put(tempNullTranslit, TRUE, status); -- registry->put(tempLowercaseTranslit, TRUE, status); -- registry->put(tempUppercaseTranslit, TRUE, status); -- registry->put(tempTitlecaseTranslit, TRUE, status); -- registry->put(tempUnicodeTranslit, TRUE, status); -- registry->put(tempNameUnicodeTranslit, TRUE, status); -+ registry->put(tempNullTranslit, true, status); -+ registry->put(tempLowercaseTranslit, true, status); -+ registry->put(tempUppercaseTranslit, true, status); -+ registry->put(tempTitlecaseTranslit, true, status); -+ registry->put(tempUnicodeTranslit, true, status); -+ registry->put(tempNameUnicodeTranslit, true, status); - #if !UCONFIG_NO_BREAK_ITERATION -- registry->put(tempBreakTranslit, FALSE, status); // FALSE means invisible. -+ registry->put(tempBreakTranslit, false, status); // false means invisible. - #endif - - RemoveTransliterator::registerIDs(); // Must be within mutex -@@ -1643,15 +1643,15 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { - AnyTransliterator::registerIDs(); - - _registerSpecialInverse(UNICODE_STRING_SIMPLE("Null"), -- UNICODE_STRING_SIMPLE("Null"), FALSE); -+ UNICODE_STRING_SIMPLE("Null"), false); - _registerSpecialInverse(UNICODE_STRING_SIMPLE("Upper"), -- UNICODE_STRING_SIMPLE("Lower"), TRUE); -+ UNICODE_STRING_SIMPLE("Lower"), true); - _registerSpecialInverse(UNICODE_STRING_SIMPLE("Title"), -- UNICODE_STRING_SIMPLE("Lower"), FALSE); -+ UNICODE_STRING_SIMPLE("Lower"), false); - - ucln_i18n_registerCleanup(UCLN_I18N_TRANSLITERATOR, utrans_transliterator_cleanup); - -- return TRUE; -+ return true; - } - - U_NAMESPACE_END -@@ -1670,7 +1670,7 @@ U_CFUNC UBool utrans_transliterator_cleanup(void) { - delete registry; - registry = NULL; - } -- return TRUE; -+ return true; - } - - #endif /* #if !UCONFIG_NO_TRANSLITERATION */ -diff --git a/deps/icu-small/source/i18n/transreg.cpp b/deps/icu-small/source/i18n/transreg.cpp -index 726ad56f0f..32040c63a6 100644 ---- a/deps/icu-small/source/i18n/transreg.cpp -+++ b/deps/icu-small/source/i18n/transreg.cpp -@@ -141,16 +141,10 @@ Transliterator* TransliteratorAlias::create(UParseError& pe, - // to see whether there really are ID blocks at the beginning and end (by looking for U+FFFF, which - // marks the position where an anonymous transliterator goes) and adjust accordingly - int32_t anonymousRBTs = transes->size(); -- int32_t transCount = anonymousRBTs * 2 + 1; -- if (!aliasesOrRules.isEmpty() && aliasesOrRules[0] == (UChar)(0xffff)) -- --transCount; -- if (aliasesOrRules.length() >= 2 && aliasesOrRules[aliasesOrRules.length() - 1] == (UChar)(0xffff)) -- --transCount; - UnicodeString noIDBlock((UChar)(0xffff)); - noIDBlock += ((UChar)(0xffff)); - int32_t pos = aliasesOrRules.indexOf(noIDBlock); - while (pos >= 0) { -- --transCount; - pos = aliasesOrRules.indexOf(noIDBlock, pos + 1); - } - -@@ -187,7 +181,7 @@ Transliterator* TransliteratorAlias::create(UParseError& pe, - } - break; - case RULES: -- UPRV_UNREACHABLE_EXIT; // don't call create() if isRuleBased() returns TRUE! -+ UPRV_UNREACHABLE_EXIT; // don't call create() if isRuleBased() returns true! - } - return t; - } -@@ -248,8 +242,8 @@ class TransliteratorSpec : public UMemory { - UnicodeString spec; - UnicodeString nextSpec; - UnicodeString scriptName; -- UBool isSpecLocale; // TRUE if spec is a locale -- UBool isNextLocale; // TRUE if nextSpec is a locale -+ UBool isSpecLocale; // true if spec is a locale -+ UBool isNextLocale; // true if nextSpec is a locale - ResourceBundle* res; - - TransliteratorSpec(const TransliteratorSpec &other); // forbid copying of this class -@@ -319,7 +313,7 @@ void TransliteratorSpec::reset() { - } - - void TransliteratorSpec::setupNext() { -- isNextLocale = FALSE; -+ isNextLocale = false; - if (isSpecLocale) { - nextSpec = spec; - int32_t i = nextSpec.lastIndexOf(LOCALE_SEP); -@@ -327,7 +321,7 @@ void TransliteratorSpec::setupNext() { - // to the scriptName. - if (i > 0) { - nextSpec.truncate(i); -- isNextLocale = TRUE; -+ isNextLocale = true; - } else { - nextSpec = scriptName; // scriptName may be empty - } -@@ -534,8 +528,8 @@ U_CDECL_END - //---------------------------------------------------------------------- - - TransliteratorRegistry::TransliteratorRegistry(UErrorCode& status) : -- registry(TRUE, status), -- specDAG(TRUE, SPECDAG_INIT_SIZE, status), -+ registry(true, status), -+ specDAG(true, SPECDAG_INIT_SIZE, status), - variantList(VARIANT_LIST_INIT_SIZE, status), - availableIDs(AVAILABLE_IDS_INIT_SIZE, status) - { -@@ -580,7 +574,7 @@ Transliterator* TransliteratorRegistry::reget(const UnicodeString& ID, - - // The usage model for the caller is that they will first call - // reg->get() inside the mutex, they'll get back an alias, they call -- // alias->isRuleBased(), and if they get TRUE, they call alias->parse() -+ // alias->isRuleBased(), and if they get true, they call alias->parse() - // outside the mutex, then reg->reget() inside the mutex again. A real - // mess, but it gets things working for ICU 3.0. [alan]. - -@@ -684,7 +678,7 @@ void TransliteratorRegistry::put(const UnicodeString& ID, - entry->entryType = (dir == UTRANS_FORWARD) ? TransliteratorEntry::RULES_FORWARD - : TransliteratorEntry::RULES_REVERSE; - if (readonlyResourceAlias) { -- entry->stringArg.setTo(TRUE, resourceName.getBuffer(), -1); -+ entry->stringArg.setTo(true, resourceName.getBuffer(), -1); - } - else { - entry->stringArg = resourceName; -@@ -702,7 +696,7 @@ void TransliteratorRegistry::put(const UnicodeString& ID, - if (entry != NULL) { - entry->entryType = TransliteratorEntry::ALIAS; - if (readonlyAliasAlias) { -- entry->stringArg.setTo(TRUE, alias.getBuffer(), -1); -+ entry->stringArg.setTo(true, alias.getBuffer(), -1); - } - else { - entry->stringArg = alias; -@@ -916,7 +910,7 @@ void TransliteratorRegistry::registerEntry(const UnicodeString& source, - UnicodeString ID; - UnicodeString s(source); - if (s.length() == 0) { -- s.setTo(TRUE, ANY, 3); -+ s.setTo(true, ANY, 3); - } - TransliteratorIDParser::STVtoID(source, target, variant, ID); - registerEntry(ID, s, target, variant, adopted, visible); -@@ -984,7 +978,7 @@ void TransliteratorRegistry::registerSTV(const UnicodeString& source, - } else if (source.compare(LAT,3) == 0) { - size = LAT_TARGETS_INIT_SIZE; - } -- targets = new Hashtable(TRUE, size, status); -+ targets = new Hashtable(true, size, status); - if (U_FAILURE(status) || targets == NULL) { - return; - } -@@ -1085,7 +1079,7 @@ TransliteratorEntry* TransliteratorRegistry::findInStaticStore(const Translitera - // If we found an entry, store it in the Hashtable for next - // time. - if (entry != 0) { -- registerEntry(src.getTop(), trg.getTop(), variant, entry, FALSE); -+ registerEntry(src.getTop(), trg.getTop(), variant, entry, false); - } - - return entry; -@@ -1336,7 +1330,7 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID - for (int32_t i = 0; U_SUCCESS(status) && i < entry->u.dataVector->size(); i++) { - // TODO: Should passNumber be turned into a decimal-string representation (1 -> "1")? - Transliterator* tl = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++), -- (TransliterationRuleData*)(entry->u.dataVector->elementAt(i)), FALSE); -+ (TransliterationRuleData*)(entry->u.dataVector->elementAt(i)), false); - if (tl == 0) - status = U_MEMORY_ALLOCATION_ERROR; - else -diff --git a/deps/icu-small/source/i18n/tridpars.cpp b/deps/icu-small/source/i18n/tridpars.cpp -index 0ca168e7a3..a52f928759 100644 ---- a/deps/icu-small/source/i18n/tridpars.cpp -+++ b/deps/icu-small/source/i18n/tridpars.cpp -@@ -45,7 +45,7 @@ static const int32_t FORWARD = UTRANS_FORWARD; - static const int32_t REVERSE = UTRANS_REVERSE; - - static Hashtable* SPECIAL_INVERSES = NULL; --static UInitOnce gSpecialInversesInitOnce = U_INITONCE_INITIALIZER; -+static UInitOnce gSpecialInversesInitOnce {}; - - /** - * The mutex controlling access to SPECIAL_INVERSES -@@ -77,7 +77,7 @@ TransliteratorIDParser::SingleID::SingleID(const UnicodeString& c, const Unicode - Transliterator* TransliteratorIDParser::SingleID::createInstance() { - Transliterator* t; - if (basicID.length() == 0) { -- t = createBasicInstance(UnicodeString(TRUE, ANY_NULL, 8), &canonID); -+ t = createBasicInstance(UnicodeString(true, ANY_NULL, 8), &canonID); - } else { - t = createBasicInstance(basicID, &canonID); - } -@@ -118,22 +118,22 @@ TransliteratorIDParser::parseSingleID(const UnicodeString& id, int32_t& pos, - // A and B are filter IDs. - Specs* specsA = NULL; - Specs* specsB = NULL; -- UBool sawParen = FALSE; -+ UBool sawParen = false; - - // On the first pass, look for (B) or (). If this fails, then - // on the second pass, look for A, A(B), or A(). - for (int32_t pass=1; pass<=2; ++pass) { - if (pass == 2) { -- specsA = parseFilterID(id, pos, TRUE); -+ specsA = parseFilterID(id, pos, true); - if (specsA == NULL) { - pos = start; - return NULL; - } - } - if (ICU_Utility::parseChar(id, pos, OPEN_REV)) { -- sawParen = TRUE; -+ sawParen = true; - if (!ICU_Utility::parseChar(id, pos, CLOSE_REV)) { -- specsB = parseFilterID(id, pos, TRUE); -+ specsB = parseFilterID(id, pos, true); - // Must close with a ')' - if (specsB == NULL || !ICU_Utility::parseChar(id, pos, CLOSE_REV)) { - delete specsA; -@@ -219,7 +219,7 @@ TransliteratorIDParser::parseFilterID(const UnicodeString& id, int32_t& pos) { - - int32_t start = pos; - -- Specs* specs = parseFilterID(id, pos, TRUE); -+ Specs* specs = parseFilterID(id, pos, true); - if (specs == NULL) { - pos = start; - return NULL; -@@ -272,7 +272,7 @@ UnicodeSet* TransliteratorIDParser::parseGlobalFilter(const UnicodeString& id, i - } - } - -- ICU_Utility::skipWhitespace(id, pos, TRUE); -+ ICU_Utility::skipWhitespace(id, pos, true); - - if (UnicodeSet::resemblesPattern(id, pos)) { - ParsePosition ppos(pos); -@@ -352,7 +352,7 @@ U_CDECL_END - * @param globalFilter OUTPUT parameter that receives a pointer to - * a newly created global filter for this ID in this direction, or - * NULL if there is none. -- * @return TRUE if the parse succeeds, that is, if the entire -+ * @return true if the parse succeeds, that is, if the entire - * id is consumed without syntax error. - */ - UBool TransliteratorIDParser::parseCompoundID(const UnicodeString& id, int32_t dir, -@@ -387,7 +387,7 @@ UBool TransliteratorIDParser::parseCompoundID(const UnicodeString& id, int32_t d - filter = NULL; - } - -- UBool sawDelimiter = TRUE; -+ UBool sawDelimiter = true; - for (;;) { - SingleID* single = parseSingleID(id, pos, dir, ec); - if (single == NULL) { -@@ -402,7 +402,7 @@ UBool TransliteratorIDParser::parseCompoundID(const UnicodeString& id, int32_t d - goto FAIL; - } - if (!ICU_Utility::parseChar(id, pos, ID_DELIM)) { -- sawDelimiter = FALSE; -+ sawDelimiter = false; - break; - } - } -@@ -439,20 +439,20 @@ UBool TransliteratorIDParser::parseCompoundID(const UnicodeString& id, int32_t d - } - - // Trailing unparsed text is a syntax error -- ICU_Utility::skipWhitespace(id, pos, TRUE); -+ ICU_Utility::skipWhitespace(id, pos, true); - if (pos != id.length()) { - goto FAIL; - } - - list.setDeleter(save); -- return TRUE; -+ return true; - - FAIL: - list.removeAllElements(); - list.setDeleter(save); - delete globalFilter; - globalFilter = NULL; -- return FALSE; -+ return false; - } - - /** -@@ -505,7 +505,7 @@ void TransliteratorIDParser::instantiateList(UVector& list, - - // An empty list is equivalent to a NULL transliterator. - if (tlist.size() == 0) { -- t = createBasicInstance(UnicodeString(TRUE, ANY_NULL, 8), NULL); -+ t = createBasicInstance(UnicodeString(true, ANY_NULL, 8), NULL); - if (t == NULL) { - // Should never happen - ec = U_INTERNAL_TRANSLITERATOR_ERROR; -@@ -559,7 +559,7 @@ void TransliteratorIDParser::IDtoSTV(const UnicodeString& id, - if (var < 0) { - var = id.length(); - } -- isSourcePresent = FALSE; -+ isSourcePresent = false; - - if (sep < 0) { - // Form: T/V or T (or /V) -@@ -569,7 +569,7 @@ void TransliteratorIDParser::IDtoSTV(const UnicodeString& id, - // Form: S-T/V or S-T (or -T/V or -T) - if (sep > 0) { - id.extractBetween(0, sep, source); -- isSourcePresent = TRUE; -+ isSourcePresent = true; - } - id.extractBetween(++sep, var, target); - id.extractBetween(var, id.length(), variant); -@@ -577,7 +577,7 @@ void TransliteratorIDParser::IDtoSTV(const UnicodeString& id, - // Form: (S/V-T or /V-T) - if (var > 0) { - id.extractBetween(0, var, source); -- isSourcePresent = TRUE; -+ isSourcePresent = true; - } - id.extractBetween(var, sep++, variant); - id.extractBetween(sep, id.length(), target); -@@ -613,7 +613,7 @@ void TransliteratorIDParser::STVtoID(const UnicodeString& source, - - /** - * Register two targets as being inverses of one another. For -- * example, calling registerSpecialInverse("NFC", "NFD", TRUE) causes -+ * example, calling registerSpecialInverse("NFC", "NFD", true) causes - * Transliterator to form the following inverse relationships: - * - *
NFC => NFD
-@@ -640,7 +640,7 @@ void TransliteratorIDParser::STVtoID(const UnicodeString& source,
-  * @param target the target against which to register the inverse
-  * @param inverseTarget the inverse of target, that is
-  * Any-target.getInverse() => Any-inverseTarget
-- * @param bidirectional if TRUE, register the reverse relation
-+ * @param bidirectional if true, register the reverse relation
-  * as well, that is, Any-inverseTarget.getInverse() => Any-target
-  */
- void TransliteratorIDParser::registerSpecialInverse(const UnicodeString& target,
-@@ -652,9 +652,9 @@ void TransliteratorIDParser::registerSpecialInverse(const UnicodeString& target,
-         return;
-     }
- 
--    // If target == inverseTarget then force bidirectional => FALSE
-+    // If target == inverseTarget then force bidirectional => false
-     if (bidirectional && 0==target.caseCompare(inverseTarget, U_FOLD_CASE_DEFAULT)) {
--        bidirectional = FALSE;
-+        bidirectional = false;
-     }
- 
-     Mutex lock(&LOCK);
-@@ -688,12 +688,12 @@ void TransliteratorIDParser::registerSpecialInverse(const UnicodeString& target,
-  * offset of the first character to parse in id.  On output,
-  * pos is the offset after the last parsed character.  If the
-  * parse failed, pos will be unchanged.
-- * @param allowFilter2 if TRUE, a UnicodeSet pattern is allowed
-+ * @param allowFilter2 if true, a UnicodeSet pattern is allowed
-  * at any location between specs or delimiters, and is returned
-  * as the fifth string in the array.
-  * @return a Specs object, or NULL if the parse failed.  If
-  * neither source nor target was seen in the parsed id, then the
-- * parse fails.  If allowFilter is TRUE, then the parsed filter
-+ * parse fails.  If allowFilter is true, then the parsed filter
-  * pattern is returned in the Specs object, otherwise the returned
-  * filter reference is NULL.  If the parse fails for any reason
-  * NULL is returned.
-@@ -714,7 +714,7 @@ TransliteratorIDParser::parseFilterID(const UnicodeString& id, int32_t& pos,
-     // pass: a filter, a delimiter character (either '-' or '/'),
-     // or a spec (source, target, or variant).
-     for (;;) {
--        ICU_Utility::skipWhitespace(id, pos, TRUE);
-+        ICU_Utility::skipWhitespace(id, pos, true);
-         if (pos == id.length()) {
-             break;
-         }
-@@ -792,10 +792,10 @@ TransliteratorIDParser::parseFilterID(const UnicodeString& id, int32_t& pos,
-     }
- 
-     // Empty source or target defaults to ANY
--    UBool sawSource = TRUE;
-+    UBool sawSource = true;
-     if (source.length() == 0) {
-         source.setTo(ANY, 3);
--        sawSource = FALSE;
-+        sawSource = false;
-     }
-     if (target.length() == 0) {
-         target.setTo(ANY, 3);
-@@ -878,7 +878,7 @@ TransliteratorIDParser::specsToSpecialInverse(const Specs& specs, UErrorCode &st
-         }
-         buf.append(*inverseTarget);
- 
--        UnicodeString basicID(TRUE, ANY, 3);
-+        UnicodeString basicID(true, ANY, 3);
-         basicID.append(TARGET_SEP).append(*inverseTarget);
- 
-         if (specs.variant.length() != 0) {
-@@ -906,7 +906,7 @@ void U_CALLCONV TransliteratorIDParser::init(UErrorCode &status) {
-     U_ASSERT(SPECIAL_INVERSES == NULL);
-     ucln_i18n_registerCleanup(UCLN_I18N_TRANSLITERATOR, utrans_transliterator_cleanup);
- 
--    SPECIAL_INVERSES = new Hashtable(TRUE, status);
-+    SPECIAL_INVERSES = new Hashtable(true, status);
-     if (SPECIAL_INVERSES == NULL) {
-     	status = U_MEMORY_ALLOCATION_ERROR;
-     	return;
-diff --git a/deps/icu-small/source/i18n/tzfmt.cpp b/deps/icu-small/source/i18n/tzfmt.cpp
-index 9d046c30c8..2199986f61 100644
---- a/deps/icu-small/source/i18n/tzfmt.cpp
-+++ b/deps/icu-small/source/i18n/tzfmt.cpp
-@@ -145,10 +145,10 @@ static const int32_t ALL_GENERIC_NAME_TYPES = UTZGNM_LOCATION | UTZGNM_LONG | UT
- 
- // Time Zone ID/Short ID trie
- static TextTrieMap *gZoneIdTrie = NULL;
--static icu::UInitOnce gZoneIdTrieInitOnce = U_INITONCE_INITIALIZER;
-+static icu::UInitOnce gZoneIdTrieInitOnce {};
- 
- static TextTrieMap *gShortZoneIdTrie = NULL;
--static icu::UInitOnce gShortZoneIdTrieInitOnce = U_INITONCE_INITIALIZER;
-+static icu::UInitOnce gShortZoneIdTrieInitOnce {};
- 
- static UMutex gLock;
- 
-@@ -170,7 +170,7 @@ static UBool U_CALLCONV tzfmt_cleanup(void)
-     gShortZoneIdTrie = NULL;
-     gShortZoneIdTrieInitOnce.reset();
- 
--    return TRUE;
-+    return true;
- }
- U_CDECL_END
- 
-@@ -365,7 +365,7 @@ TimeZoneFormat::TimeZoneFormat(const Locale& locale, UErrorCode& status)
-         }
-         resStr = ures_getStringByKeyWithFallback(zoneStringsArray, gGmtZeroFormatTag, &len, &status);
-         if (len > 0) {
--            fGMTZeroFormat.setTo(TRUE, resStr, len);
-+            fGMTZeroFormat.setTo(true, resStr, len);
-         }
-         resStr = ures_getStringByKeyWithFallback(zoneStringsArray, gHourFormatTag, &len, &status);
-         if (len > 0) {
-@@ -378,36 +378,36 @@ TimeZoneFormat::TimeZoneFormat(const Locale& locale, UErrorCode& status)
-     if (gmtPattern == NULL) {
-         gmtPattern = DEFAULT_GMT_PATTERN;
-     }
--    initGMTPattern(UnicodeString(TRUE, gmtPattern, -1), status);
-+    initGMTPattern(UnicodeString(true, gmtPattern, -1), status);
- 
--    UBool useDefaultOffsetPatterns = TRUE;
-+    UBool useDefaultOffsetPatterns = true;
-     if (hourFormats) {
-         UChar *sep = u_strchr(hourFormats, (UChar)0x003B /* ';' */);
-         if (sep != NULL) {
-             UErrorCode tmpStatus = U_ZERO_ERROR;
--            fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HM].setTo(FALSE, hourFormats, (int32_t)(sep - hourFormats));
--            fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HM].setTo(TRUE, sep + 1, -1);
-+            fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HM].setTo(false, hourFormats, (int32_t)(sep - hourFormats));
-+            fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HM].setTo(true, sep + 1, -1);
-             expandOffsetPattern(fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HM], fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HMS], tmpStatus);
-             expandOffsetPattern(fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HM], fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HMS], tmpStatus);
-             truncateOffsetPattern(fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HM], fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_H], tmpStatus);
-             truncateOffsetPattern(fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HM], fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_H], tmpStatus);
-             if (U_SUCCESS(tmpStatus)) {
--                useDefaultOffsetPatterns = FALSE;
-+                useDefaultOffsetPatterns = false;
-             }
-         }
-     }
-     if (useDefaultOffsetPatterns) {
--        fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_H].setTo(TRUE, DEFAULT_GMT_POSITIVE_H, -1);
--        fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HM].setTo(TRUE, DEFAULT_GMT_POSITIVE_HM, -1);
--        fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HMS].setTo(TRUE, DEFAULT_GMT_POSITIVE_HMS, -1);
--        fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_H].setTo(TRUE, DEFAULT_GMT_NEGATIVE_H, -1);
--        fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HM].setTo(TRUE, DEFAULT_GMT_NEGATIVE_HM, -1);
--        fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HMS].setTo(TRUE, DEFAULT_GMT_NEGATIVE_HMS, -1);
-+        fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_H].setTo(true, DEFAULT_GMT_POSITIVE_H, -1);
-+        fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HM].setTo(true, DEFAULT_GMT_POSITIVE_HM, -1);
-+        fGMTOffsetPatterns[UTZFMT_PAT_POSITIVE_HMS].setTo(true, DEFAULT_GMT_POSITIVE_HMS, -1);
-+        fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_H].setTo(true, DEFAULT_GMT_NEGATIVE_H, -1);
-+        fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HM].setTo(true, DEFAULT_GMT_NEGATIVE_HM, -1);
-+        fGMTOffsetPatterns[UTZFMT_PAT_NEGATIVE_HMS].setTo(true, DEFAULT_GMT_NEGATIVE_HMS, -1);
-     }
-     initGMTOffsetPatterns(status);
- 
-     NumberingSystem* ns = NumberingSystem::createInstance(locale, status);
--    UBool useDefDigits = TRUE;
-+    UBool useDefDigits = true;
-     if (ns && !ns->isAlgorithmic()) {
-         UnicodeString digits = ns->getDescription();
-         useDefDigits = !toCodePoints(digits, fGMTOffsetDigits, 10);
-@@ -657,7 +657,7 @@ TimeZoneFormat::format(UTimeZoneFormatStyle style, const TimeZone& tz, UDate dat
-         *timeType = UTZFMT_TIME_TYPE_UNKNOWN;
-     }
- 
--    UBool noOffsetFormatFallback = FALSE;
-+    UBool noOffsetFormatFallback = false;
- 
-     switch (style) {
-     case UTZFMT_STYLE_GENERIC_LOCATION:
-@@ -678,7 +678,7 @@ TimeZoneFormat::format(UTimeZoneFormatStyle style, const TimeZone& tz, UDate dat
- 
-     case UTZFMT_STYLE_ZONE_ID:
-         tz.getID(name);
--        noOffsetFormatFallback = TRUE;
-+        noOffsetFormatFallback = true;
-         break;
-     case UTZFMT_STYLE_ZONE_ID_SHORT:
-         {
-@@ -688,12 +688,12 @@ TimeZoneFormat::format(UTimeZoneFormatStyle style, const TimeZone& tz, UDate dat
-             }
-             name.setTo(shortID, -1);
-         }
--        noOffsetFormatFallback = TRUE;
-+        noOffsetFormatFallback = true;
-         break;
- 
-     case UTZFMT_STYLE_EXEMPLAR_LOCATION:
-         formatExemplarLocation(tz, name);
--        noOffsetFormatFallback = TRUE;
-+        noOffsetFormatFallback = true;
-         break;
- 
-     default:
-@@ -704,7 +704,7 @@ TimeZoneFormat::format(UTimeZoneFormatStyle style, const TimeZone& tz, UDate dat
-     if (name.isEmpty() && !noOffsetFormatFallback) {
-         UErrorCode status = U_ZERO_ERROR;
-         int32_t rawOffset, dstOffset;
--        tz.getOffset(date, FALSE, rawOffset, dstOffset, status);
-+        tz.getOffset(date, false, rawOffset, dstOffset, status);
-         int32_t offset = rawOffset + dstOffset;
-         if (U_SUCCESS(status)) {
-             switch (style) {
-@@ -722,43 +722,43 @@ TimeZoneFormat::format(UTimeZoneFormatStyle style, const TimeZone& tz, UDate dat
-                 break;
- 
-             case UTZFMT_STYLE_ISO_BASIC_SHORT:
--                formatOffsetISO8601Basic(offset, TRUE, TRUE, TRUE, name, status);
-+                formatOffsetISO8601Basic(offset, true, true, true, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_BASIC_LOCAL_SHORT:
--                formatOffsetISO8601Basic(offset, FALSE, TRUE, TRUE, name, status);
-+                formatOffsetISO8601Basic(offset, false, true, true, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_BASIC_FIXED:
--                formatOffsetISO8601Basic(offset, TRUE, FALSE, TRUE, name, status);
-+                formatOffsetISO8601Basic(offset, true, false, true, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_BASIC_LOCAL_FIXED:
--                formatOffsetISO8601Basic(offset, FALSE, FALSE, TRUE, name, status);
-+                formatOffsetISO8601Basic(offset, false, false, true, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_EXTENDED_FIXED:
--                formatOffsetISO8601Extended(offset, TRUE, FALSE, TRUE, name, status);
-+                formatOffsetISO8601Extended(offset, true, false, true, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FIXED:
--                formatOffsetISO8601Extended(offset, FALSE, FALSE, TRUE, name, status);
-+                formatOffsetISO8601Extended(offset, false, false, true, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_BASIC_FULL:
--                formatOffsetISO8601Basic(offset, TRUE, FALSE, FALSE, name, status);
-+                formatOffsetISO8601Basic(offset, true, false, false, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_BASIC_LOCAL_FULL:
--                formatOffsetISO8601Basic(offset, FALSE, FALSE, FALSE, name, status);
-+                formatOffsetISO8601Basic(offset, false, false, false, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_EXTENDED_FULL:
--                formatOffsetISO8601Extended(offset, TRUE, FALSE, FALSE, name, status);
-+                formatOffsetISO8601Extended(offset, true, false, false, name, status);
-                 break;
- 
-             case UTZFMT_STYLE_ISO_EXTENDED_LOCAL_FULL:
--                formatOffsetISO8601Extended(offset, FALSE, FALSE, FALSE, name, status);
-+                formatOffsetISO8601Extended(offset, false, false, false, name, status);
-                 break;
- 
-             default:
-@@ -794,7 +794,7 @@ TimeZoneFormat::format(const Formattable& obj, UnicodeString& appendTo,
-         }
-         if (tz != NULL) {
-             int32_t rawOffset, dstOffset;
--            tz->getOffset(date, FALSE, rawOffset, dstOffset, status);
-+            tz->getOffset(date, false, rawOffset, dstOffset, status);
-             UChar buf[ZONE_NAME_U16_MAX];
-             UnicodeString result(buf, 0, UPRV_LENGTHOF(buf));
-             formatOffsetLocalizedGMT(rawOffset + dstOffset, result, status);
-@@ -841,7 +841,7 @@ TimeZoneFormat::parse(UTimeZoneFormatStyle style, const UnicodeString& text, Par
- 
-     // Try localized GMT format first if necessary
-     if (fallbackLocalizedGMT || fallbackShortLocalizedGMT) {
--        UBool hasDigitOffset = FALSE;
-+        UBool hasDigitOffset = false;
-         offset = parseOffsetLocalizedGMT(text, tmpPos, fallbackShortLocalizedGMT, &hasDigitOffset);
-         if (tmpPos.getErrorIndex() == -1) {
-             // Even when the input text was successfully parsed as a localized GMT format text,
-@@ -931,8 +931,8 @@ TimeZoneFormat::parse(UTimeZoneFormatStyle style, const UnicodeString& text, Par
-             tmpPos.setErrorIndex(-1);
- 
-             // Exclude the case of UTC Indicator "Z" here
--            UBool hasDigitOffset = FALSE;
--            offset = parseOffsetISO8601(text, tmpPos, FALSE, &hasDigitOffset);
-+            UBool hasDigitOffset = false;
-+            offset = parseOffsetISO8601(text, tmpPos, false, &hasDigitOffset);
-             if (tmpPos.getErrorIndex() == -1 && hasDigitOffset) {
-                 pos.setIndex(tmpPos.getIndex());
-                 return createTimeZoneForOffset(offset);
-@@ -1125,8 +1125,8 @@ TimeZoneFormat::parse(UTimeZoneFormatStyle style, const UnicodeString& text, Par
-         tmpPos.setIndex(startIdx);
-         tmpPos.setErrorIndex(-1);
- 
--        UBool hasDigitOffset = FALSE;
--        offset = parseOffsetISO8601(text, tmpPos, FALSE, &hasDigitOffset);
-+        UBool hasDigitOffset = false;
-+        offset = parseOffsetISO8601(text, tmpPos, false, &hasDigitOffset);
-         if (tmpPos.getErrorIndex() == -1) {
-             if (tmpPos.getIndex() == maxPos || hasDigitOffset) {
-                 pos.setIndex(tmpPos.getIndex());
-@@ -1151,8 +1151,8 @@ TimeZoneFormat::parse(UTimeZoneFormatStyle style, const UnicodeString& text, Par
-         tmpPos.setIndex(startIdx);
-         tmpPos.setErrorIndex(-1);
- 
--        UBool hasDigitOffset = FALSE;
--        offset = parseOffsetLocalizedGMT(text, tmpPos, FALSE, &hasDigitOffset);
-+        UBool hasDigitOffset = false;
-+        offset = parseOffsetLocalizedGMT(text, tmpPos, false, &hasDigitOffset);
-         if (tmpPos.getErrorIndex() == -1) {
-             if (tmpPos.getIndex() == maxPos || hasDigitOffset) {
-                 pos.setIndex(tmpPos.getIndex());
-@@ -1173,8 +1173,8 @@ TimeZoneFormat::parse(UTimeZoneFormatStyle style, const UnicodeString& text, Par
-         tmpPos.setIndex(startIdx);
-         tmpPos.setErrorIndex(-1);
- 
--        UBool hasDigitOffset = FALSE;
--        offset = parseOffsetLocalizedGMT(text, tmpPos, TRUE, &hasDigitOffset);
-+        UBool hasDigitOffset = false;
-+        offset = parseOffsetLocalizedGMT(text, tmpPos, true, &hasDigitOffset);
-         if (tmpPos.getErrorIndex() == -1) {
-             if (tmpPos.getIndex() == maxPos || hasDigitOffset) {
-                 pos.setIndex(tmpPos.getIndex());
-@@ -1348,7 +1348,7 @@ TimeZoneFormat::formatGeneric(const TimeZone& tz, int32_t genType, UDate date, U
-             name.setToBogus();
-             return name;
-         }
--        return gnames->getGenericLocationName(UnicodeString(TRUE, canonicalID, -1), name);
-+        return gnames->getGenericLocationName(UnicodeString(true, canonicalID, -1), name);
-     }
-     return gnames->getDisplayName(tz, (UTimeZoneGenericNameType)genType, date, name);
- }
-@@ -1371,9 +1371,9 @@ TimeZoneFormat::formatSpecific(const TimeZone& tz, UTimeZoneNameType stdType, UT
-     }
- 
-     if (isDaylight) {
--        fTimeZoneNames->getDisplayName(UnicodeString(TRUE, canonicalID, -1), dstType, date, name);
-+        fTimeZoneNames->getDisplayName(UnicodeString(true, canonicalID, -1), dstType, date, name);
-     } else {
--        fTimeZoneNames->getDisplayName(UnicodeString(TRUE, canonicalID, -1), stdType, date, name);
-+        fTimeZoneNames->getDisplayName(UnicodeString(true, canonicalID, -1), stdType, date, name);
-     }
- 
-     if (timeType && !name.isEmpty()) {
-@@ -1426,13 +1426,13 @@ TimeZoneFormat::formatExemplarLocation(const TimeZone& tz, UnicodeString& name)
-     const UChar* canonicalID = ZoneMeta::getCanonicalCLDRID(tz);
- 
-     if (canonicalID) {
--        fTimeZoneNames->getExemplarLocationName(UnicodeString(TRUE, canonicalID, -1), location);
-+        fTimeZoneNames->getExemplarLocationName(UnicodeString(true, canonicalID, -1), location);
-     }
-     if (location.length() > 0) {
-         name.setTo(location);
-     } else {
-         // Use "unknown" location
--        fTimeZoneNames->getExemplarLocationName(UnicodeString(TRUE, UNKNOWN_ZONE_ID, -1), location);
-+        fTimeZoneNames->getExemplarLocationName(UnicodeString(true, UNKNOWN_ZONE_ID, -1), location);
-         if (location.length() > 0) {
-             name.setTo(location);
-         } else {
-@@ -1450,38 +1450,38 @@ TimeZoneFormat::formatExemplarLocation(const TimeZone& tz, UnicodeString& name)
- UnicodeString&
- TimeZoneFormat::formatOffsetISO8601Basic(int32_t offset, UBool useUtcIndicator, UBool isShort, UBool ignoreSeconds,
-         UnicodeString& result, UErrorCode& status) const {
--    return formatOffsetISO8601(offset, TRUE, useUtcIndicator, isShort, ignoreSeconds, result, status);
-+    return formatOffsetISO8601(offset, true, useUtcIndicator, isShort, ignoreSeconds, result, status);
- }
- 
- UnicodeString&
- TimeZoneFormat::formatOffsetISO8601Extended(int32_t offset, UBool useUtcIndicator, UBool isShort, UBool ignoreSeconds,
-         UnicodeString& result, UErrorCode& status) const {
--    return formatOffsetISO8601(offset, FALSE, useUtcIndicator, isShort, ignoreSeconds, result, status);
-+    return formatOffsetISO8601(offset, false, useUtcIndicator, isShort, ignoreSeconds, result, status);
- }
- 
- UnicodeString&
- TimeZoneFormat::formatOffsetLocalizedGMT(int32_t offset, UnicodeString& result, UErrorCode& status) const {
--    return formatOffsetLocalizedGMT(offset, FALSE, result, status);
-+    return formatOffsetLocalizedGMT(offset, false, result, status);
- }
- 
- UnicodeString&
- TimeZoneFormat::formatOffsetShortLocalizedGMT(int32_t offset, UnicodeString& result, UErrorCode& status) const {
--    return formatOffsetLocalizedGMT(offset, TRUE, result, status);
-+    return formatOffsetLocalizedGMT(offset, true, result, status);
- }
- 
- int32_t
- TimeZoneFormat::parseOffsetISO8601(const UnicodeString& text, ParsePosition& pos) const {
--    return parseOffsetISO8601(text, pos, FALSE);
-+    return parseOffsetISO8601(text, pos, false);
- }
- 
- int32_t
- TimeZoneFormat::parseOffsetLocalizedGMT(const UnicodeString& text, ParsePosition& pos) const {
--    return parseOffsetLocalizedGMT(text, pos, FALSE, NULL);
-+    return parseOffsetLocalizedGMT(text, pos, false, NULL);
- }
- 
- int32_t
- TimeZoneFormat::parseOffsetShortLocalizedGMT(const UnicodeString& text, ParsePosition& pos) const {
--    return parseOffsetLocalizedGMT(text, pos, TRUE, NULL);
-+    return parseOffsetLocalizedGMT(text, pos, true, NULL);
- }
- 
- // ------------------------------------------------------------------
-@@ -1572,10 +1572,10 @@ TimeZoneFormat::formatOffsetLocalizedGMT(int32_t offset, UBool isShort, UnicodeS
-         return result;
-     }
- 
--    UBool positive = TRUE;
-+    UBool positive = true;
-     if (offset < 0) {
-         offset = -offset;
--        positive = FALSE;
-+        positive = false;
-     }
- 
-     int32_t offsetH = offset / MILLIS_PER_HOUR;
-@@ -1640,7 +1640,7 @@ TimeZoneFormat::formatOffsetLocalizedGMT(int32_t offset, UBool isShort, UnicodeS
- int32_t
- TimeZoneFormat::parseOffsetISO8601(const UnicodeString& text, ParsePosition& pos, UBool extendedOnly, UBool* hasDigitOffset /* = NULL */) const {
-     if (hasDigitOffset) {
--        *hasDigitOffset = FALSE;
-+        *hasDigitOffset = false;
-     }
-     int32_t start = pos.getIndex();
-     if (start >= text.length()) {
-@@ -1672,7 +1672,7 @@ TimeZoneFormat::parseOffsetISO8601(const UnicodeString& text, ParsePosition& pos
-         // as basic format. For example, "0230" can be parsed as offset 2:00 (only first digits are valid for
-         // extended format), but it can be parsed as offset 2:30 with basic format. We use longer result.
-         ParsePosition posBasic(start + 1);
--        int32_t tmpOffset = parseAbuttingAsciiOffsetFields(text, posBasic, FIELDS_H, FIELDS_HMS, FALSE);
-+        int32_t tmpOffset = parseAbuttingAsciiOffsetFields(text, posBasic, FIELDS_H, FIELDS_HMS, false);
-         if (posBasic.getErrorIndex() == -1 && posBasic.getIndex() > posOffset.getIndex()) {
-             offset = tmpOffset;
-             posOffset.setIndex(posBasic.getIndex());
-@@ -1686,7 +1686,7 @@ TimeZoneFormat::parseOffsetISO8601(const UnicodeString& text, ParsePosition& pos
- 
-     pos.setIndex(posOffset.getIndex());
-     if (hasDigitOffset) {
--        *hasDigitOffset = TRUE;
-+        *hasDigitOffset = true;
-     }
-     return sign * offset;
- }
-@@ -1698,7 +1698,7 @@ TimeZoneFormat::parseOffsetLocalizedGMT(const UnicodeString& text, ParsePosition
-     int32_t parsedLength = 0;
- 
-     if (hasDigitOffset) {
--        *hasDigitOffset = FALSE;
-+        *hasDigitOffset = false;
-     }
- 
-     offset = parseOffsetLocalizedGMTPattern(text, start, isShort, parsedLength);
-@@ -1715,7 +1715,7 @@ TimeZoneFormat::parseOffsetLocalizedGMT(const UnicodeString& text, ParsePosition
- 
-     if (parsedLength > 0) {
-         if (hasDigitOffset) {
--            *hasDigitOffset = TRUE;
-+            *hasDigitOffset = true;
-         }
-         pos.setIndex(start + parsedLength);
-         return offset;
-@@ -1725,7 +1725,7 @@ TimeZoneFormat::parseOffsetLocalizedGMT(const UnicodeString& text, ParsePosition
-     offset = parseOffsetDefaultLocalizedGMT(text, start, parsedLength);
-     if (parsedLength > 0) {
-         if (hasDigitOffset) {
--            *hasDigitOffset = TRUE;
-+            *hasDigitOffset = true;
-         }
-         pos.setIndex(start + parsedLength);
-         return offset;
-@@ -1756,7 +1756,7 @@ int32_t
- TimeZoneFormat::parseOffsetLocalizedGMTPattern(const UnicodeString& text, int32_t start, UBool /*isShort*/, int32_t& parsedLen) const {
-     int32_t idx = start;
-     int32_t offset = 0;
--    UBool parsed = FALSE;
-+    UBool parsed = false;
- 
-     do {
-         // Prefix part
-@@ -1768,7 +1768,7 @@ TimeZoneFormat::parseOffsetLocalizedGMTPattern(const UnicodeString& text, int32_
-         idx += len;
- 
-         // Offset part
--        offset = parseOffsetFields(text, idx, FALSE, len);
-+        offset = parseOffsetFields(text, idx, false, len);
-         if (len == 0) {
-             // offset field match failed
-             break;
-@@ -1781,8 +1781,8 @@ TimeZoneFormat::parseOffsetLocalizedGMTPattern(const UnicodeString& text, int32_
-             break;
-         }
-         idx += len;
--        parsed = TRUE;
--    } while (FALSE);
-+        parsed = true;
-+    } while (false);
- 
-     parsedLen = parsed ? idx - start : 0;
-     return offset;
-@@ -1804,7 +1804,7 @@ TimeZoneFormat::parseOffsetFields(const UnicodeString& text, int32_t start, UBoo
-         UVector* items = fGMTOffsetPatternItems[gmtPatType];
-         U_ASSERT(items != NULL);
- 
--        outLen = parseOffsetFieldsWithPattern(text, start, items, FALSE, offsetH, offsetM, offsetS);
-+        outLen = parseOffsetFieldsWithPattern(text, start, items, false, offsetH, offsetM, offsetS);
-         if (outLen > 0) {
-             sign = (gmtPatType == UTZFMT_PAT_POSITIVE_H || gmtPatType == UTZFMT_PAT_POSITIVE_HM || gmtPatType == UTZFMT_PAT_POSITIVE_HMS) ?
-                 1 : -1;
-@@ -1829,7 +1829,7 @@ TimeZoneFormat::parseOffsetFields(const UnicodeString& text, int32_t start, UBoo
-             U_ASSERT(items != NULL);
- 
-             // forcing parse to use single hour digit
--            tmpLen = parseOffsetFieldsWithPattern(text, start, items, TRUE, tmpH, tmpM, tmpS);
-+            tmpLen = parseOffsetFieldsWithPattern(text, start, items, true, tmpH, tmpM, tmpS);
-             if (tmpLen > 0) {
-                 tmpSign = (gmtPatType == UTZFMT_PAT_POSITIVE_H || gmtPatType == UTZFMT_PAT_POSITIVE_HM || gmtPatType == UTZFMT_PAT_POSITIVE_HMS) ?
-                     1 : -1;
-@@ -1857,7 +1857,7 @@ TimeZoneFormat::parseOffsetFields(const UnicodeString& text, int32_t start, UBoo
- int32_t
- TimeZoneFormat::parseOffsetFieldsWithPattern(const UnicodeString& text, int32_t start,
-         UVector* patternItems, UBool forceSingleHourDigit, int32_t& hour, int32_t& min, int32_t& sec) const {
--    UBool failed = FALSE;
-+    UBool failed = false;
-     int32_t offsetH, offsetM, offsetS;
-     offsetH = offsetM = offsetS = 0;
-     int32_t idx = start;
-@@ -1891,7 +1891,7 @@ TimeZoneFormat::parseOffsetFieldsWithPattern(const UnicodeString& text, int32_t
-                 }
-             }
-             if (text.caseCompare(idx, len, patStr, 0) != 0) {
--                failed = TRUE;
-+                failed = true;
-                 break;
-             }
-             idx += len;
-@@ -1906,7 +1906,7 @@ TimeZoneFormat::parseOffsetFieldsWithPattern(const UnicodeString& text, int32_t
-             }
- 
-             if (len == 0) {
--                failed = TRUE;
-+                failed = true;
-                 break;
-             }
-             idx += len;
-@@ -2092,7 +2092,7 @@ TimeZoneFormat::parseDefaultOffsetFields(const UnicodeString& text, int32_t star
-                 idx += (1 + len);
-             }
-         }
--    } while (FALSE);
-+    } while (false);
- 
-     if (idx == start) {
-         return 0;
-@@ -2240,7 +2240,7 @@ TimeZoneFormat::parseAbuttingAsciiOffsetFields(const UnicodeString& text, ParseP
-     }
- 
-     int32_t hour = 0, min = 0, sec = 0;
--    UBool bParsed = FALSE;
-+    UBool bParsed = false;
-     while (numDigits >= minDigits) {
-         switch (numDigits) {
-         case 1: //H
-@@ -2409,20 +2409,20 @@ TimeZoneFormat::unquote(const UnicodeString& pattern, UnicodeString& result) {
-         return result;
-     }
-     result.remove();
--    UBool isPrevQuote = FALSE;
--    UBool inQuote = FALSE;
-+    UBool isPrevQuote = false;
-+    UBool inQuote = false;
-     for (int32_t i = 0; i < pattern.length(); i++) {
-         UChar c = pattern.charAt(i);
-         if (c == SINGLEQUOTE) {
-             if (isPrevQuote) {
-                 result.append(c);
--                isPrevQuote = FALSE;
-+                isPrevQuote = false;
-             } else {
--                isPrevQuote = TRUE;
-+                isPrevQuote = true;
-             }
-             inQuote = !inQuote;
-         } else {
--            isPrevQuote = FALSE;
-+            isPrevQuote = false;
-             result.append(c);
-         }
-     }
-@@ -2441,8 +2441,8 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re
-     }
- 
-     int32_t checkBits = 0;
--    UBool isPrevQuote = FALSE;
--    UBool inQuote = FALSE;
-+    UBool isPrevQuote = false;
-+    UBool inQuote = false;
-     UChar textBuf[32];
-     UnicodeString text(textBuf, 0, UPRV_LENGTHOF(textBuf));
-     GMTOffsetField::FieldType itemType = GMTOffsetField::TEXT;
-@@ -2453,9 +2453,9 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re
-         if (ch == SINGLEQUOTE) {
-             if (isPrevQuote) {
-                 text.append(SINGLEQUOTE);
--                isPrevQuote = FALSE;
-+                isPrevQuote = false;
-             } else {
--                isPrevQuote = TRUE;
-+                isPrevQuote = true;
-                 if (itemType != GMTOffsetField::TEXT) {
-                     if (GMTOffsetField::isValid(itemType, itemLength)) {
-                         GMTOffsetField* fld = GMTOffsetField::createTimeField(itemType, static_cast(itemLength), status);
-@@ -2472,7 +2472,7 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re
-             }
-             inQuote = !inQuote;
-         } else {
--            isPrevQuote = FALSE;
-+            isPrevQuote = false;
-             if (inQuote) {
-                 text.append(ch);
-             } else {
-@@ -2647,19 +2647,19 @@ TimeZoneFormat::initGMTOffsetPatterns(UErrorCode& status) {
- 
- void
- TimeZoneFormat::checkAbuttingHoursAndMinutes() {
--    fAbuttingOffsetHoursAndMinutes= FALSE;
-+    fAbuttingOffsetHoursAndMinutes= false;
-     for (int32_t type = 0; type < UTZFMT_PAT_COUNT; type++) {
--        UBool afterH = FALSE;
-+        UBool afterH = false;
-         UVector *items = fGMTOffsetPatternItems[type];
-         for (int32_t i = 0; i < items->size(); i++) {
-             const GMTOffsetField* item = (GMTOffsetField*)items->elementAt(i);
-             GMTOffsetField::FieldType fieldType = item->getType();
-             if (fieldType != GMTOffsetField::TEXT) {
-                 if (afterH) {
--                    fAbuttingOffsetHoursAndMinutes = TRUE;
-+                    fAbuttingOffsetHoursAndMinutes = true;
-                     break;
-                 } else if (fieldType == GMTOffsetField::HOUR) {
--                    afterH = TRUE;
-+                    afterH = true;
-                 }
-             } else if (afterH) {
-                 break;
-@@ -2675,7 +2675,7 @@ UBool
- TimeZoneFormat::toCodePoints(const UnicodeString& str, UChar32* codeArray, int32_t size) {
-     int32_t count = str.countChar32();
-     if (count != size) {
--        return FALSE;
-+        return false;
-     }
- 
-     for (int32_t idx = 0, start = 0; idx < size; idx++) {
-@@ -2683,14 +2683,14 @@ TimeZoneFormat::toCodePoints(const UnicodeString& str, UChar32* codeArray, int32
-         start = str.moveIndex32(start, 1);
-     }
- 
--    return TRUE;
-+    return true;
- }
- 
- TimeZone*
- TimeZoneFormat::createTimeZoneForOffset(int32_t offset) const {
-     if (offset == 0) {
-         // when offset is 0, we should use "Etc/GMT"
--        return TimeZone::createTimeZone(UnicodeString(TRUE, TZID_GMT, -1));
-+        return TimeZone::createTimeZone(UnicodeString(true, TZID_GMT, -1));
-     }
-     return ZoneMeta::createCustomTimeZone(offset);
- }
-@@ -2747,7 +2747,7 @@ ZoneIdMatchHandler::~ZoneIdMatchHandler() {
- UBool
- ZoneIdMatchHandler::handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) {
-     if (U_FAILURE(status)) {
--        return FALSE;
-+        return false;
-     }
-     if (node->hasValues()) {
-         const UChar* id = (const UChar*)node->getValue(0);
-@@ -2758,7 +2758,7 @@ ZoneIdMatchHandler::handleMatch(int32_t matchLength, const CharacterNode *node,
-             }
-         }
-     }
--    return TRUE;
-+    return true;
- }
- 
- const UChar*
-@@ -2775,7 +2775,7 @@ ZoneIdMatchHandler::getMatchLen() {
- static void U_CALLCONV initZoneIdTrie(UErrorCode &status) {
-     U_ASSERT(gZoneIdTrie == NULL);
-     ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONEFORMAT, tzfmt_cleanup);
--    gZoneIdTrie = new TextTrieMap(TRUE, NULL);    // No deleter, because values are pooled by ZoneMeta
-+    gZoneIdTrie = new TextTrieMap(true, NULL);    // No deleter, because values are pooled by ZoneMeta
-     if (gZoneIdTrie == NULL) {
-         status = U_MEMORY_ALLOCATION_ERROR;
-         return;
-@@ -2826,7 +2826,7 @@ static void U_CALLCONV initShortZoneIdTrie(UErrorCode &status) {
-     ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONEFORMAT, tzfmt_cleanup);
-     StringEnumeration *tzenum = TimeZone::createTimeZoneIDEnumeration(UCAL_ZONE_TYPE_CANONICAL, NULL, NULL, status);
-     if (U_SUCCESS(status)) {
--        gShortZoneIdTrie = new TextTrieMap(TRUE, NULL);    // No deleter, because values are pooled by ZoneMeta
-+        gShortZoneIdTrie = new TextTrieMap(true, NULL);    // No deleter, because values are pooled by ZoneMeta
-         if (gShortZoneIdTrie == NULL) {
-             status = U_MEMORY_ALLOCATION_ERROR;
-         } else {
-diff --git a/deps/icu-small/source/i18n/tzgnames.cpp b/deps/icu-small/source/i18n/tzgnames.cpp
-index d5ee45ced7..e96dfd2b2f 100644
---- a/deps/icu-small/source/i18n/tzgnames.cpp
-+++ b/deps/icu-small/source/i18n/tzgnames.cpp
-@@ -87,10 +87,10 @@ comparePartialLocationKey(const UHashTok key1, const UHashTok key2) {
-     PartialLocationKey *p2 = (PartialLocationKey *)key2.pointer;
- 
-     if (p1 == p2) {
--        return TRUE;
-+        return true;
-     }
-     if (p1 == NULL || p2 == NULL) {
--        return FALSE;
-+        return false;
-     }
-     // We just check identity of tzID/mzID
-     return (p1->tzID == p2->tzID && p1->mzID == p2->mzID && p1->isLong == p2->isLong);
-@@ -180,7 +180,7 @@ UnicodeString&
- TimeZoneGenericNameMatchInfo::getTimeZoneID(int32_t index, UnicodeString& tzID) const {
-     GMatchInfo *minfo = (GMatchInfo *)fMatches->elementAt(index);
-     if (minfo != NULL && minfo->gnameInfo->tzID != NULL) {
--        tzID.setTo(TRUE, minfo->gnameInfo->tzID, -1);
-+        tzID.setTo(true, minfo->gnameInfo->tzID, -1);
-     } else {
-         tzID.setToBogus();
-     }
-@@ -217,7 +217,7 @@ GNameSearchHandler::~GNameSearchHandler() {
- UBool
- GNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) {
-     if (U_FAILURE(status)) {
--        return FALSE;
-+        return false;
-     }
-     if (node->hasValues()) {
-         int32_t valuesCount = node->countValues();
-@@ -254,7 +254,7 @@ GNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *node,
-             }
-         }
-     }
--    return TRUE;
-+    return true;
- }
- 
- UVector*
-@@ -338,8 +338,8 @@ TZGNCore::TZGNCore(const Locale& locale, UErrorCode& status)
-   fPartialLocationNamesMap(NULL),
-   fLocaleDisplayNames(NULL),
-   fStringPool(status),
--  fGNamesTrie(TRUE, deleteGNameInfo),
--  fGNamesTrieFullyLoaded(FALSE) {
-+  fGNamesTrie(true, deleteGNameInfo),
-+  fGNamesTrieFullyLoaded(false) {
-     initialize(locale, status);
- }
- 
-@@ -360,8 +360,8 @@ TZGNCore::initialize(const Locale& locale, UErrorCode& status) {
-     }
- 
-     // Initialize format patterns
--    UnicodeString rpat(TRUE, gDefRegionPattern, -1);
--    UnicodeString fpat(TRUE, gDefFallbackPattern, -1);
-+    UnicodeString rpat(true, gDefRegionPattern, -1);
-+    UnicodeString fpat(true, gDefFallbackPattern, -1);
- 
-     UErrorCode tmpsts = U_ZERO_ERROR;   // OK with fallback warning..
-     UResourceBundle *zoneStrings = ures_open(U_ICUDATA_ZONE, locale.getName(), &tmpsts);
-@@ -432,7 +432,7 @@ TZGNCore::initialize(const Locale& locale, UErrorCode& status) {
-     TimeZone *tz = TimeZone::createDefault();
-     const UChar *tzID = ZoneMeta::getCanonicalCLDRID(*tz);
-     if (tzID != NULL) {
--        loadStrings(UnicodeString(TRUE, tzID, -1));
-+        loadStrings(UnicodeString(true, tzID, -1));
-     }
-     delete tz;
- }
-@@ -459,7 +459,7 @@ TZGNCore::getDisplayName(const TimeZone& tz, UTimeZoneGenericNameType type, UDat
-         {
-             const UChar* tzCanonicalID = ZoneMeta::getCanonicalCLDRID(tz);
-             if (tzCanonicalID != NULL) {
--                getGenericLocationName(UnicodeString(TRUE, tzCanonicalID, -1), name);
-+                getGenericLocationName(UnicodeString(true, tzCanonicalID, -1), name);
-             }
-         }
-         break;
-@@ -469,7 +469,7 @@ TZGNCore::getDisplayName(const TimeZone& tz, UTimeZoneGenericNameType type, UDat
-         if (name.isEmpty()) {
-             const UChar* tzCanonicalID = ZoneMeta::getCanonicalCLDRID(tz);
-             if (tzCanonicalID != NULL) {
--                getGenericLocationName(UnicodeString(TRUE, tzCanonicalID, -1), name);
-+                getGenericLocationName(UnicodeString(true, tzCanonicalID, -1), name);
-             }
-         }
-         break;
-@@ -532,7 +532,7 @@ TZGNCore::getGenericLocationName(const UnicodeString& tzCanonicalID) {
-     // Construct location name
-     UnicodeString name;
-     UnicodeString usCountryCode;
--    UBool isPrimary = FALSE;
-+    UBool isPrimary = false;
- 
-     ZoneMeta::getCanonicalCountry(tzCanonicalID, usCountryCode, &isPrimary);
- 
-@@ -600,7 +600,7 @@ TZGNCore::formatGenericNonLocationName(const TimeZone& tz, UTimeZoneGenericNameT
-         return name;
-     }
- 
--    UnicodeString tzID(TRUE, uID, -1);
-+    UnicodeString tzID(true, uID, -1);
- 
-     // Try to get a name from time zone first
-     UTimeZoneNameType nameType = (type == UTZGNM_LONG) ? UTZNM_LONG_GENERIC : UTZNM_SHORT_GENERIC;
-@@ -616,17 +616,17 @@ TZGNCore::formatGenericNonLocationName(const TimeZone& tz, UTimeZoneGenericNameT
-     fTimeZoneNames->getMetaZoneID(tzID, date, mzID);
-     if (!mzID.isEmpty()) {
-         UErrorCode status = U_ZERO_ERROR;
--        UBool useStandard = FALSE;
-+        UBool useStandard = false;
-         int32_t raw, sav;
-         UChar tmpNameBuf[ZONE_NAME_U16_MAX];
- 
--        tz.getOffset(date, FALSE, raw, sav, status);
-+        tz.getOffset(date, false, raw, sav, status);
-         if (U_FAILURE(status)) {
-             return name;
-         }
- 
-         if (sav == 0) {
--            useStandard = TRUE;
-+            useStandard = true;
- 
-             TimeZone *tmptz = tz.clone();
-             // Check if the zone actually uses daylight saving time around the time
-@@ -640,30 +640,30 @@ TZGNCore::formatGenericNonLocationName(const TimeZone& tz, UTimeZoneGenericNameT
- 
-             if (btz != NULL) {
-                 TimeZoneTransition before;
--                UBool beforTrs = btz->getPreviousTransition(date, TRUE, before);
-+                UBool beforTrs = btz->getPreviousTransition(date, true, before);
-                 if (beforTrs
-                         && (date - before.getTime() < kDstCheckRange)
-                         && before.getFrom()->getDSTSavings() != 0) {
--                    useStandard = FALSE;
-+                    useStandard = false;
-                 } else {
-                     TimeZoneTransition after;
--                    UBool afterTrs = btz->getNextTransition(date, FALSE, after);
-+                    UBool afterTrs = btz->getNextTransition(date, false, after);
-                     if (afterTrs
-                             && (after.getTime() - date < kDstCheckRange)
-                             && after.getTo()->getDSTSavings() != 0) {
--                        useStandard = FALSE;
-+                        useStandard = false;
-                     }
-                 }
-             } else {
-                 // If not BasicTimeZone... only if the instance is not an ICU's implementation.
-                 // We may get a wrong answer in edge case, but it should practically work OK.
--                tmptz->getOffset(date - kDstCheckRange, FALSE, raw, sav, status);
-+                tmptz->getOffset(date - kDstCheckRange, false, raw, sav, status);
-                 if (sav != 0) {
--                    useStandard = FALSE;
-+                    useStandard = false;
-                 } else {
--                    tmptz->getOffset(date + kDstCheckRange, FALSE, raw, sav, status);
-+                    tmptz->getOffset(date + kDstCheckRange, false, raw, sav, status);
-                     if (sav != 0){
--                        useStandard = FALSE;
-+                        useStandard = false;
-                     }
-                 }
-                 if (U_FAILURE(status)) {
-@@ -713,7 +713,7 @@ TZGNCore::formatGenericNonLocationName(const TimeZone& tz, UTimeZoneGenericNameT
-                     // With getOffset(date, false, offsets1),
-                     // you may get incorrect results because of time overlap at DST->STD
-                     // transition.
--                    goldenZone->getOffset(date + raw + sav, TRUE, raw1, sav1, status);
-+                    goldenZone->getOffset(date + raw + sav, true, raw1, sav1, status);
-                     delete goldenZone;
-                     if (U_SUCCESS(status)) {
-                         if (raw != raw1 || sav != sav1) {
-@@ -752,7 +752,7 @@ TZGNCore::getPartialLocationName(const UnicodeString& tzCanonicalID,
-     if (uplname == NULL) {
-         name.setToBogus();
-     } else {
--        name.setTo(TRUE, uplname, -1);
-+        name.setTo(true, uplname, -1);
-     }
-     return name;
- }
-@@ -902,8 +902,8 @@ TZGNCore::findBestMatch(const UnicodeString& text, int32_t start, uint32_t types
-     int32_t bestMatchLen = 0;
-     UTimeZoneFormatTimeType bestMatchTimeType = UTZFMT_TIME_TYPE_UNKNOWN;
-     UnicodeString bestMatchTzID;
--    // UBool isLongStandard = FALSE;   // workaround - see the comments below
--    UBool isStandard = FALSE;       // TODO: Temporary hack (on hack) for short standard name/location name conflict (found in zh_Hant), should be removed after CLDR 21m1 integration
-+    // UBool isLongStandard = false;   // workaround - see the comments below
-+    UBool isStandard = false;       // TODO: Temporary hack (on hack) for short standard name/location name conflict (found in zh_Hant), should be removed after CLDR 21m1 integration
- 
-     if (tznamesMatches != NULL) {
-         UnicodeString mzID;
-@@ -923,9 +923,9 @@ TZGNCore::findBestMatch(const UnicodeString& text, int32_t start, uint32_t types
-                 }
-                 switch (nameType) {
-                 case UTZNM_LONG_STANDARD:
--                    // isLongStandard = TRUE;
-+                    // isLongStandard = true;
-                 case UTZNM_SHORT_STANDARD:  // this one is never used for generic, but just in case
--                    isStandard = TRUE;      // TODO: Remove this later, see the comments above.
-+                    isStandard = true;      // TODO: Remove this later, see the comments above.
-                     bestMatchTimeType = UTZFMT_TIME_TYPE_STANDARD;
-                     break;
-                 case UTZNM_LONG_DAYLIGHT:
-@@ -1059,7 +1059,7 @@ TZGNCore::findLocal(const UnicodeString& text, int32_t start, uint32_t types, UE
-             }
- 
-             if (U_SUCCESS(status)) {
--                nonConstThis->fGNamesTrieFullyLoaded = TRUE;
-+                nonConstThis->fGNamesTrieFullyLoaded = true;
-             }
-         }
-     }
-@@ -1117,7 +1117,7 @@ typedef struct TZGNCoreRef {
- // TZGNCore object cache handling
- static UMutex gTZGNLock;
- static UHashtable *gTZGNCoreCache = NULL;
--static UBool gTZGNCoreCacheInitialized = FALSE;
-+static UBool gTZGNCoreCacheInitialized = false;
- 
- // Access count - incremented every time up to SWEEP_INTERVAL,
- // then reset to 0
-@@ -1142,8 +1142,8 @@ static UBool U_CALLCONV tzgnCore_cleanup(void)
-         uhash_close(gTZGNCoreCache);
-         gTZGNCoreCache = NULL;
-     }
--    gTZGNCoreCacheInitialized = FALSE;
--    return TRUE;
-+    gTZGNCoreCacheInitialized = false;
-+    return true;
- }
- 
- /**
-@@ -1211,7 +1211,7 @@ TimeZoneGenericNames::createInstance(const Locale& locale, UErrorCode& status) {
-             if (U_SUCCESS(status)) {
-                 uhash_setKeyDeleter(gTZGNCoreCache, uprv_free);
-                 uhash_setValueDeleter(gTZGNCoreCache, deleteTZGNCoreRef);
--                gTZGNCoreCacheInitialized = TRUE;
-+                gTZGNCoreCacheInitialized = true;
-                 ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONEGENERICNAMES, tzgnCore_cleanup);
-             }
-         }
-diff --git a/deps/icu-small/source/i18n/tznames.cpp b/deps/icu-small/source/i18n/tznames.cpp
-index 781f1cc161..ef4266718e 100644
---- a/deps/icu-small/source/i18n/tznames.cpp
-+++ b/deps/icu-small/source/i18n/tznames.cpp
-@@ -31,7 +31,7 @@ U_NAMESPACE_BEGIN
- // TimeZoneNames object cache handling
- static UMutex gTimeZoneNamesLock;
- static UHashtable *gTimeZoneNamesCache = NULL;
--static UBool gTimeZoneNamesCacheInitialized = FALSE;
-+static UBool gTimeZoneNamesCacheInitialized = false;
- 
- // Access count - incremented every time up to SWEEP_INTERVAL,
- // then reset to 0
-@@ -62,8 +62,8 @@ static UBool U_CALLCONV timeZoneNames_cleanup(void)
-         uhash_close(gTimeZoneNamesCache);
-         gTimeZoneNamesCache = NULL;
-     }
--    gTimeZoneNamesCacheInitialized = FALSE;
--    return TRUE;
-+    gTimeZoneNamesCacheInitialized = false;
-+    return true;
- }
- 
- /**
-@@ -139,7 +139,7 @@ TimeZoneNamesDelegate::TimeZoneNamesDelegate(const Locale& locale, UErrorCode& s
-         if (U_SUCCESS(status)) {
-             uhash_setKeyDeleter(gTimeZoneNamesCache, uprv_free);
-             uhash_setValueDeleter(gTimeZoneNamesCache, deleteTimeZoneNamesCacheEntry);
--            gTimeZoneNamesCacheInitialized = TRUE;
-+            gTimeZoneNamesCacheInitialized = true;
-             ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONENAMES, timeZoneNames_cleanup);
-         }
-     }
-@@ -380,10 +380,10 @@ struct MatchInfo : UMemory {
-         this->matchLength = matchLength;
-         if (tzID != NULL) {
-             this->id.setTo(*tzID);
--            this->isTZID = TRUE;
-+            this->isTZID = true;
-         } else {
-             this->id.setTo(*mzID);
--            this->isTZID = FALSE;
-+            this->isTZID = false;
-         }
-     }
- };
-@@ -468,9 +468,9 @@ TimeZoneNames::MatchInfoCollection::getTimeZoneIDAt(int32_t idx, UnicodeString&
-     const MatchInfo* match = (const MatchInfo*)fMatches->elementAt(idx);
-     if (match && match->isTZID) {
-         tzID.setTo(match->id);
--        return TRUE;
-+        return true;
-     }
--    return FALSE;
-+    return false;
- }
- 
- UBool
-@@ -479,9 +479,9 @@ TimeZoneNames::MatchInfoCollection::getMetaZoneIDAt(int32_t idx, UnicodeString&
-     const MatchInfo* match = (const MatchInfo*)fMatches->elementAt(idx);
-     if (match && !match->isTZID) {
-         mzID.setTo(match->id);
--        return TRUE;
-+        return true;
-     }
--    return FALSE;
-+    return false;
- }
- 
- UVector*
-diff --git a/deps/icu-small/source/i18n/tznames_impl.cpp b/deps/icu-small/source/i18n/tznames_impl.cpp
-index 69991dfef4..2005c07ba8 100644
---- a/deps/icu-small/source/i18n/tznames_impl.cpp
-+++ b/deps/icu-small/source/i18n/tznames_impl.cpp
-@@ -55,10 +55,10 @@ static const int32_t TZDBNAMES_KEYS_SIZE = UPRV_LENGTHOF(TZDBNAMES_KEYS);
- static UMutex gDataMutex;
- 
- static UHashtable* gTZDBNamesMap = NULL;
--static icu::UInitOnce gTZDBNamesMapInitOnce = U_INITONCE_INITIALIZER;
-+static icu::UInitOnce gTZDBNamesMapInitOnce {};
- 
- static TextTrieMap* gTZDBNamesTrie = NULL;
--static icu::UInitOnce gTZDBNamesTrieInitOnce = U_INITONCE_INITIALIZER;
-+static icu::UInitOnce gTZDBNamesTrieInitOnce {};
- 
- // The order in which strings are stored may be different than the order in the public enum.
- enum UTimeZoneNameTypeIndex {
-@@ -88,7 +88,7 @@ static UBool U_CALLCONV tzdbTimeZoneNames_cleanup(void) {
-     }
-     gTZDBNamesTrieInitOnce.reset();
- 
--    return TRUE;
-+    return true;
- }
- U_CDECL_END
- 
-@@ -162,7 +162,7 @@ CharacterNode::addValue(void *value, UObjectDeleter *valueDeleter, UErrorCode &s
-                 values->addElement(fValues, status);
-             }
-             fValues = values.orphan();
--            fHasValuesVector = TRUE;
-+            fHasValuesVector = true;
-         }
-         // Add the new value.
-         UVector *values = (UVector *)fValues;
-@@ -185,7 +185,7 @@ TextTrieMapSearchResultHandler::~TextTrieMapSearchResultHandler(){
- // ---------------------------------------------------
- TextTrieMap::TextTrieMap(UBool ignoreCase, UObjectDeleter *valueDeleter)
- : fIgnoreCase(ignoreCase), fNodes(NULL), fNodesCapacity(0), fNodesCount(0), 
--  fLazyContents(NULL), fIsEmpty(TRUE), fValueDeleter(valueDeleter) {
-+  fLazyContents(NULL), fIsEmpty(true), fValueDeleter(valueDeleter) {
- }
- 
- TextTrieMap::~TextTrieMap() {
-@@ -227,7 +227,7 @@ TextTrieMap::put(const UnicodeString &key, void *value, ZNStringPool &sp, UError
- // resource bundle.
- void
- TextTrieMap::put(const UChar *key, void *value, UErrorCode &status) {
--    fIsEmpty = FALSE;
-+    fIsEmpty = false;
-     if (fLazyContents == NULL) {
-         LocalPointer lpLazyContents(new UVector(status), status);
-         fLazyContents = lpLazyContents.orphan();
-@@ -289,7 +289,7 @@ TextTrieMap::putImpl(const UnicodeString &key, void *value, UErrorCode &status)
- UBool
- TextTrieMap::growNodes() {
-     if (fNodesCapacity == 0xffff) {
--        return FALSE;  // We use 16-bit node indexes.
-+        return false;  // We use 16-bit node indexes.
-     }
-     int32_t newCapacity = fNodesCapacity + 1000;
-     if (newCapacity > 0xffff) {
-@@ -297,13 +297,13 @@ TextTrieMap::growNodes() {
-     }
-     CharacterNode *newNodes = (CharacterNode *)uprv_malloc(newCapacity * sizeof(CharacterNode));
-     if (newNodes == NULL) {
--        return FALSE;
-+        return false;
-     }
-     uprv_memcpy(newNodes, fNodes, fNodesCount * sizeof(CharacterNode));
-     uprv_free(fNodes);
-     fNodes = newNodes;
-     fNodesCapacity = newCapacity;
--    return TRUE;
-+    return true;
- }
- 
- CharacterNode*
-@@ -377,7 +377,7 @@ void TextTrieMap::buildTrie(UErrorCode &status) {
-         for (int32_t i=0; isize(); i+=2) {
-             const UChar *key = (UChar *)fLazyContents->elementAt(i);
-             void  *val = fLazyContents->elementAt(i+1);
--            UnicodeString keyString(TRUE, key, -1);  // Aliasing UnicodeString constructor.
-+            UnicodeString keyString(true, key, -1);  // Aliasing UnicodeString constructor.
-             putImpl(keyString, val, status);
-         }
-         delete fLazyContents;
-@@ -617,13 +617,13 @@ private:
-     UBool fOwnsLocationName;
- 
-     ZNames(const UChar* names[], const UChar* locationName)
--            : fDidAddIntoTrie(FALSE) {
-+            : fDidAddIntoTrie(false) {
-         uprv_memcpy(fNames, names, sizeof(fNames));
-         if (locationName != NULL) {
--            fOwnsLocationName = TRUE;
-+            fOwnsLocationName = true;
-             fNames[UTZNM_INDEX_EXEMPLAR_LOCATION] = locationName;
-         } else {
--            fOwnsLocationName = FALSE;
-+            fOwnsLocationName = false;
-         }
-     }
- 
-@@ -713,7 +713,7 @@ private:
-             UErrorCode& status) {
-         if (U_FAILURE(status)) { return; }
-         if (fDidAddIntoTrie) { return; }
--        fDidAddIntoTrie = TRUE;
-+        fDidAddIntoTrie = true;
- 
-         for (int32_t i = 0; i < UTZNM_INDEX_COUNT; i++) {
-             const UChar* name = fNames[i];
-@@ -948,7 +948,7 @@ ZNameSearchHandler::~ZNameSearchHandler() {
- UBool
- ZNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) {
-     if (U_FAILURE(status)) {
--        return FALSE;
-+        return false;
-     }
-     if (node->hasValues()) {
-         int32_t valuesCount = node->countValues();
-@@ -980,7 +980,7 @@ ZNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *node,
-             }
-         }
-     }
--    return TRUE;
-+    return true;
- }
- 
- TimeZoneNames::MatchInfoCollection*
-@@ -1028,9 +1028,9 @@ TimeZoneNamesImpl::TimeZoneNamesImpl(const Locale& locale, UErrorCode& status)
-   fZoneStrings(NULL),
-   fTZNamesMap(NULL),
-   fMZNamesMap(NULL),
--  fNamesTrieFullyLoaded(FALSE),
--  fNamesFullyLoaded(FALSE),
--  fNamesTrie(TRUE, deleteZNameInfo) {
-+  fNamesTrieFullyLoaded(false),
-+  fNamesFullyLoaded(false),
-+  fNamesTrie(true, deleteZNameInfo) {
-     initialize(locale, status);
- }
- 
-@@ -1224,7 +1224,7 @@ TimeZoneNamesImpl::getMetaZoneDisplayName(const UnicodeString& mzID,
-     if (znames != NULL) {
-         const UChar* s = znames->getName(type);
-         if (s != NULL) {
--            name.setTo(TRUE, s, -1);
-+            name.setTo(true, s, -1);
-         }
-     }
-     return name;
-@@ -1250,7 +1250,7 @@ TimeZoneNamesImpl::getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNa
-     if (tznames != NULL) {
-         const UChar *s = tznames->getName(type);
-         if (s != NULL) {
--            name.setTo(TRUE, s, -1);
-+            name.setTo(true, s, -1);
-         }
-     }
-     return name;
-@@ -1274,7 +1274,7 @@ TimeZoneNamesImpl::getExemplarLocationName(const UnicodeString& tzID, UnicodeStr
-         locName = tznames->getName(UTZNM_EXEMPLAR_LOCATION);
-     }
-     if (locName != NULL) {
--        name.setTo(TRUE, locName, -1);
-+        name.setTo(true, locName, -1);
-     }
- 
-     return name;
-@@ -1385,7 +1385,7 @@ TimeZoneNamesImpl::find(const UnicodeString& text, int32_t start, uint32_t types
-         // Load everything now.
-         nonConstThis->internalLoadAllDisplayNames(status);
-         nonConstThis->addAllNamesIntoTrie(status);
--        nonConstThis->fNamesTrieFullyLoaded = TRUE;
-+        nonConstThis->fNamesTrieFullyLoaded = true;
-         if (U_FAILURE(status)) { return NULL; }
- 
-         // Third try: we must return this one.
-@@ -1639,7 +1639,7 @@ void TimeZoneNamesImpl::getDisplayNames(const UnicodeString& tzID,
-             }
-         }
-         if (name != NULL) {
--            dest[i].setTo(TRUE, name, -1);
-+            dest[i].setTo(true, name, -1);
-         } else {
-             dest[i].setToBogus();
-         }
-@@ -1649,7 +1649,7 @@ void TimeZoneNamesImpl::getDisplayNames(const UnicodeString& tzID,
- // Caller must synchronize.
- void TimeZoneNamesImpl::internalLoadAllDisplayNames(UErrorCode& status) {
-     if (!fNamesFullyLoaded) {
--        fNamesFullyLoaded = TRUE;
-+        fNamesFullyLoaded = true;
- 
-         ZoneStringsLoader loader(*this, status);
-         loader.load(status);
-@@ -1771,7 +1771,7 @@ TZDBNames::createInstance(UResourceBundle* rb, const char* key) {
-     }
- 
-     names = (const UChar **)uprv_malloc(sizeof(const UChar*) * TZDBNAMES_KEYS_SIZE);
--    UBool isEmpty = TRUE;
-+    UBool isEmpty = true;
-     if (names != NULL) {
-         for (int32_t i = 0; i < TZDBNAMES_KEYS_SIZE; i++) {
-             status = U_ZERO_ERROR;
-@@ -1780,7 +1780,7 @@ TZDBNames::createInstance(UResourceBundle* rb, const char* key) {
-                 names[i] = NULL;
-             } else {
-                 names[i] = value;
--                isEmpty = FALSE;
-+                isEmpty = false;
-             }
-         }
-     }
-@@ -1793,7 +1793,7 @@ TZDBNames::createInstance(UResourceBundle* rb, const char* key) {
-     }
- 
-     UResourceBundle *regionsRes = ures_getByKey(rbTable, "parseRegions", NULL, &status);
--    UBool regionError = FALSE;
-+    UBool regionError = false;
-     if (U_SUCCESS(status)) {
-         numRegions = ures_getSize(regionsRes);
-         if (numRegions > 0) {
-@@ -1809,12 +1809,12 @@ TZDBNames::createInstance(UResourceBundle* rb, const char* key) {
-                     status = U_ZERO_ERROR;
-                     const UChar *uregion = ures_getStringByIndex(regionsRes, i, &len, &status);
-                     if (U_FAILURE(status)) {
--                        regionError = TRUE;
-+                        regionError = true;
-                         break;
-                     }
-                     *pRegion = (char*)uprv_malloc(sizeof(char) * (len + 1));
-                     if (*pRegion == NULL) {
--                        regionError = TRUE;
-+                        regionError = true;
-                         break;
-                     }
-                     u_UCharsToChars(uregion, *pRegion, len);
-@@ -1915,7 +1915,7 @@ TZDBNameSearchHandler::~TZDBNameSearchHandler() {
- UBool
- TZDBNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) {
-     if (U_FAILURE(status)) {
--        return FALSE;
-+        return false;
-     }
- 
-     TZDBNameInfo *match = NULL;
-@@ -1943,7 +1943,7 @@ TZDBNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *nod
-                         match = defaultRegionMatch = ninfo;
-                     }
-                 } else {
--                    UBool matchRegion = FALSE;
-+                    UBool matchRegion = false;
-                     // non-default metazone mapping for an abbreviation
-                     // comes with applicable regions. For example, the default
-                     // metazone mapping for "CST" is America_Central,
-@@ -1953,7 +1953,7 @@ TZDBNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *nod
-                         const char *region = ninfo->parseRegions[j];
-                         if (uprv_strcmp(fRegion, region) == 0) {
-                             match = ninfo;
--                            matchRegion = TRUE;
-+                            matchRegion = true;
-                             break;
-                         }
-                     }
-@@ -2004,7 +2004,7 @@ TZDBNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *nod
-             }
-         }
-     }
--    return TRUE;
-+    return true;
- }
- 
- TimeZoneNames::MatchInfoCollection*
-@@ -2055,7 +2055,7 @@ static void U_CALLCONV prepareFind(UErrorCode &status) {
-     if (U_FAILURE(status)) {
-         return;
-     }
--    gTZDBNamesTrie = new TextTrieMap(TRUE, deleteTZDBNameInfo);
-+    gTZDBNamesTrie = new TextTrieMap(true, deleteTZDBNameInfo);
-     if (gTZDBNamesTrie == NULL) {
-         status = U_MEMORY_ALLOCATION_ERROR;
-         return;
-@@ -2131,7 +2131,7 @@ U_CDECL_END
- 
- TZDBTimeZoneNames::TZDBTimeZoneNames(const Locale& locale)
- : fLocale(locale) {
--    UBool useWorld = TRUE;
-+    UBool useWorld = true;
-     const char* region = fLocale.getCountry();
-     int32_t regionLen = static_cast(uprv_strlen(region));
-     if (regionLen == 0) {
-@@ -2143,11 +2143,11 @@ TZDBTimeZoneNames::TZDBTimeZoneNames(const Locale& locale)
-         }
-         regionLen = uloc_getCountry(loc.data(), fRegion, sizeof(fRegion), &status);
-         if (U_SUCCESS(status) && regionLen < (int32_t)sizeof(fRegion)) {
--            useWorld = FALSE;
-+            useWorld = false;
-         }
-     } else if (regionLen < (int32_t)sizeof(fRegion)) {
-         uprv_strcpy(fRegion, region);
--        useWorld = FALSE;
-+        useWorld = false;
-     }
-     if (useWorld) {
-         uprv_strcpy(fRegion, "001");
-@@ -2206,7 +2206,7 @@ TZDBTimeZoneNames::getMetaZoneDisplayName(const UnicodeString& mzID,
-         if (tzdbNames != NULL) {
-             const UChar *s = tzdbNames->getName(type);
-             if (s != NULL) {
--                name.setTo(TRUE, s, -1);
-+                name.setTo(true, s, -1);
-             }
-         }
-     }
-diff --git a/deps/icu-small/source/i18n/tzrule.cpp b/deps/icu-small/source/i18n/tzrule.cpp
-index a60fffbe02..a98ecc8086 100644
---- a/deps/icu-small/source/i18n/tzrule.cpp
-+++ b/deps/icu-small/source/i18n/tzrule.cpp
-@@ -135,26 +135,26 @@ InitialTimeZoneRule::operator!=(const TimeZoneRule& that) const {
- UBool
- InitialTimeZoneRule::isEquivalentTo(const TimeZoneRule& other) const {
-     if (this == &other) {
--        return TRUE;
-+        return true;
-     }
--    if (typeid(*this) != typeid(other) || TimeZoneRule::isEquivalentTo(other) == FALSE) {
--        return FALSE;
-+    if (typeid(*this) != typeid(other) || TimeZoneRule::isEquivalentTo(other) == false) {
-+        return false;
-     }
--    return TRUE;
-+    return true;
- }
- 
- UBool
- InitialTimeZoneRule::getFirstStart(int32_t /*prevRawOffset*/,
-                                   int32_t /*prevDSTSavings*/,
-                                   UDate& /*result*/) const {
--    return FALSE;
-+    return false;
- }
- 
- UBool
- InitialTimeZoneRule::getFinalStart(int32_t /*prevRawOffset*/,
-                                   int32_t /*prevDSTSavings*/,
-                                   UDate& /*result*/) const {
--    return FALSE;
-+    return false;
- }
- 
- UBool
-@@ -163,7 +163,7 @@ InitialTimeZoneRule::getNextStart(UDate /*base*/,
-                                  int32_t /*prevDSTSavings*/,
-                                  UBool /*inclusive*/,
-                                  UDate& /*result*/) const {
--    return FALSE;
-+    return false;
- }
- 
- UBool
-@@ -172,7 +172,7 @@ InitialTimeZoneRule::getPreviousStart(UDate /*base*/,
-                                      int32_t /*prevDSTSavings*/,
-                                      UBool /*inclusive*/,
-                                      UDate& /*result*/) const {
--    return FALSE;
-+    return false;
- }
- 
- 
-@@ -266,14 +266,14 @@ AnnualTimeZoneRule::getStartInYear(int32_t year,
-                                    int32_t prevDSTSavings,
-                                    UDate &result) const {
-     if (year < fStartYear || year > fEndYear) {
--        return FALSE;
-+        return false;
-     }
-     double ruleDay;
-     DateTimeRule::DateRuleType type = fDateTimeRule->getDateRuleType();
-     if (type == DateTimeRule::DOM) {
-         ruleDay = Grego::fieldsToDay(year, fDateTimeRule->getRuleMonth(), fDateTimeRule->getRuleDayOfMonth());
-     } else {
--        UBool after = TRUE;
-+        UBool after = true;
-         if (type == DateTimeRule::DOW) {
-             // Normalize DOW rule into DOW_GEQ_DOM or DOW_LEQ_DOM
-             int32_t weeks = fDateTimeRule->getRuleWeekInMonth();
-@@ -281,7 +281,7 @@ AnnualTimeZoneRule::getStartInYear(int32_t year,
-                 ruleDay = Grego::fieldsToDay(year, fDateTimeRule->getRuleMonth(), 1);
-                 ruleDay += 7 * (weeks - 1);
-             } else {
--                after = FALSE;
-+                after = false;
-                 ruleDay = Grego::fieldsToDay(year, fDateTimeRule->getRuleMonth(),
-                     Grego::monthLength(year, fDateTimeRule->getRuleMonth()));
-                 ruleDay += 7 * (weeks + 1);
-@@ -290,7 +290,7 @@ AnnualTimeZoneRule::getStartInYear(int32_t year,
-             int32_t month = fDateTimeRule->getRuleMonth();
-             int32_t dom = fDateTimeRule->getRuleDayOfMonth();
-             if (type == DateTimeRule::DOW_LEQ_DOM) {
--                after = FALSE;
-+                after = false;
-                 // Handle Feb <=29
-                 if (month == UCAL_FEBRUARY && dom == 29 && !Grego::isLeapYear(year)) {
-                     dom--;
-@@ -315,16 +315,16 @@ AnnualTimeZoneRule::getStartInYear(int32_t year,
-     if (fDateTimeRule->getTimeRuleType() == DateTimeRule::WALL_TIME) {
-         result -= prevDSTSavings;
-     }
--    return TRUE;
-+    return true;
- }
- 
- UBool
- AnnualTimeZoneRule::isEquivalentTo(const TimeZoneRule& other) const {
-     if (this == &other) {
--        return TRUE;
-+        return true;
-     }
--    if (typeid(*this) != typeid(other) || TimeZoneRule::isEquivalentTo(other) == FALSE) {
--        return FALSE;
-+    if (typeid(*this) != typeid(other) || TimeZoneRule::isEquivalentTo(other) == false) {
-+        return false;
-     }
-     AnnualTimeZoneRule* that = (AnnualTimeZoneRule*)&other;
-     return (*fDateTimeRule == *(that->fDateTimeRule) &&
-@@ -344,7 +344,7 @@ AnnualTimeZoneRule::getFinalStart(int32_t prevRawOffset,
-                                   int32_t prevDSTSavings,
-                                   UDate& result) const {
-     if (fEndYear == MAX_YEAR) {
--        return FALSE;
-+        return false;
-     }
-     return getStartInYear(fEndYear, prevRawOffset, prevDSTSavings, result);
- }
-@@ -367,10 +367,10 @@ AnnualTimeZoneRule::getNextStart(UDate base,
-             return getStartInYear(year + 1, prevRawOffset, prevDSTSavings, result);
-         } else {
-             result = tmp;
--            return TRUE;
-+            return true;
-         }
-     }
--    return FALSE;
-+    return false;
- }
- 
- UBool
-@@ -391,10 +391,10 @@ AnnualTimeZoneRule::getPreviousStart(UDate base,
-             return getStartInYear(year - 1, prevRawOffset, prevDSTSavings, result);
-         } else {
-             result = tmp;
--            return TRUE;
-+            return true;
-         }
-     }
--    return FALSE;
-+    return false;
- }
- 
- UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TimeArrayTimeZoneRule)
-@@ -482,10 +482,10 @@ TimeArrayTimeZoneRule::getTimeType(void) const {
- UBool
- TimeArrayTimeZoneRule::getStartTimeAt(int32_t index, UDate& result) const {
-     if (index >= fNumStartTimes || index < 0) {
--        return FALSE;
-+        return false;
-     }
-     result = fStartTimes[index];
--    return TRUE;
-+    return true;
- }
- 
- int32_t
-@@ -496,21 +496,21 @@ TimeArrayTimeZoneRule::countStartTimes(void) const {
- UBool
- TimeArrayTimeZoneRule::isEquivalentTo(const TimeZoneRule& other) const {
-     if (this == &other) {
--        return TRUE;
-+        return true;
-     }
--    if (typeid(*this) != typeid(other) || TimeZoneRule::isEquivalentTo(other) == FALSE) {
--        return FALSE;
-+    if (typeid(*this) != typeid(other) || TimeZoneRule::isEquivalentTo(other) == false) {
-+        return false;
-     }
-     TimeArrayTimeZoneRule* that = (TimeArrayTimeZoneRule*)&other;
-     if (fTimeRuleType != that->fTimeRuleType ||
-         fNumStartTimes != that->fNumStartTimes) {
--        return FALSE;
-+        return false;
-     }
-     // Compare start times
--    UBool res = TRUE;
-+    UBool res = true;
-     for (int32_t i = 0; i < fNumStartTimes; i++) {
-         if (fStartTimes[i] != that->fStartTimes[i]) {
--            res = FALSE;
-+            res = false;
-             break;
-         }
-     }
-@@ -522,10 +522,10 @@ TimeArrayTimeZoneRule::getFirstStart(int32_t prevRawOffset,
-                                              int32_t prevDSTSavings,
-                                              UDate& result) const {
-     if (fNumStartTimes <= 0 || fStartTimes == NULL) {
--        return FALSE;
-+        return false;
-     }
-     result = getUTC(fStartTimes[0], prevRawOffset, prevDSTSavings);
--    return TRUE;
-+    return true;
- }
- 
- UBool
-@@ -533,10 +533,10 @@ TimeArrayTimeZoneRule::getFinalStart(int32_t prevRawOffset,
-                                      int32_t prevDSTSavings,
-                                      UDate& result) const {
-     if (fNumStartTimes <= 0 || fStartTimes == NULL) {
--        return FALSE;
-+        return false;
-     }
-     result = getUTC(fStartTimes[fNumStartTimes - 1], prevRawOffset, prevDSTSavings);
--    return TRUE;
-+    return true;
- }
- 
- UBool
-@@ -554,9 +554,9 @@ TimeArrayTimeZoneRule::getNextStart(UDate base,
-         result = time;
-     }
-     if (i == fNumStartTimes - 1) {
--        return FALSE;
-+        return false;
-     }
--    return TRUE;
-+    return true;
- }
- 
- UBool
-@@ -570,10 +570,10 @@ TimeArrayTimeZoneRule::getPreviousStart(UDate base,
-         UDate time = getUTC(fStartTimes[i], prevRawOffset, prevDSTSavings);
-         if (time < base || (inclusive && time == base)) {
-             result = time;
--            return TRUE;
-+            return true;
-         }
-     }
--    return FALSE;
-+    return false;
- }
- 
- 
-@@ -591,7 +591,7 @@ TimeArrayTimeZoneRule::initStartTimes(const UDate source[], int32_t size, UError
-         if (fStartTimes == NULL) {
-             status = U_MEMORY_ALLOCATION_ERROR;
-             fNumStartTimes = 0;
--            return FALSE;
-+            return false;
-         }
-     } else {
-         fStartTimes = (UDate*)fLocalStartTimes;
-@@ -599,15 +599,15 @@ TimeArrayTimeZoneRule::initStartTimes(const UDate source[], int32_t size, UError
-     uprv_memcpy(fStartTimes, source, sizeof(UDate)*size);
-     fNumStartTimes = size;
-     // Sort dates
--    uprv_sortArray(fStartTimes, fNumStartTimes, (int32_t)sizeof(UDate), compareDates, NULL, TRUE, &status);
-+    uprv_sortArray(fStartTimes, fNumStartTimes, (int32_t)sizeof(UDate), compareDates, NULL, true, &status);
-     if (U_FAILURE(status)) {
-         if (fStartTimes != NULL && fStartTimes != fLocalStartTimes) {
-             uprv_free(fStartTimes);
-         }
-         fNumStartTimes = 0;
--        return FALSE;
-+        return false;
-     }
--    return TRUE;
-+    return true;
- }
- 
- UDate
-diff --git a/deps/icu-small/source/i18n/ucal.cpp b/deps/icu-small/source/i18n/ucal.cpp
-index 33f72589c5..36fe9b8f8a 100644
---- a/deps/icu-small/source/i18n/ucal.cpp
-+++ b/deps/icu-small/source/i18n/ucal.cpp
-@@ -124,7 +124,7 @@ ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec) {
-             UDate d = Calendar::getNow();
-             for (int32_t i=0; i<53; ++i, d+=U_MILLIS_PER_DAY*7.0) {
-                 int32_t raw, dst;
--                zone->getOffset(d, FALSE, raw, dst, *ec);
-+                zone->getOffset(d, false, raw, dst, *ec);
-                 if (U_FAILURE(*ec)) {
-                     break;
-                 } else if (dst != 0) {
-@@ -263,19 +263,19 @@ ucal_getTimeZoneDisplayName(const     UCalendar*                 cal,
- 
-     switch(type) {
-   case UCAL_STANDARD:
--      tz.getDisplayName(FALSE, TimeZone::LONG, Locale(locale), id);
-+      tz.getDisplayName(false, TimeZone::LONG, Locale(locale), id);
-       break;
- 
-   case UCAL_SHORT_STANDARD:
--      tz.getDisplayName(FALSE, TimeZone::SHORT, Locale(locale), id);
-+      tz.getDisplayName(false, TimeZone::SHORT, Locale(locale), id);
-       break;
- 
-   case UCAL_DST:
--      tz.getDisplayName(TRUE, TimeZone::LONG, Locale(locale), id);
-+      tz.getDisplayName(true, TimeZone::LONG, Locale(locale), id);
-       break;
- 
-   case UCAL_SHORT_DST:
--      tz.getDisplayName(TRUE, TimeZone::SHORT, Locale(locale), id);
-+      tz.getDisplayName(true, TimeZone::SHORT, Locale(locale), id);
-       break;
-     }
- 
-@@ -594,7 +594,7 @@ ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len,
-         return 0;
-     }
-     if (isSystemID) {
--        *isSystemID = FALSE;
-+        *isSystemID = false;
-     }
-     if (id == 0 || len == 0 || result == 0 || resultCapacity <= 0) {
-         *status = U_ILLEGAL_ARGUMENT_ERROR;
-@@ -602,7 +602,7 @@ ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len,
-     }
-     int32_t reslen = 0;
-     UnicodeString canonical;
--    UBool systemID = FALSE;
-+    UBool systemID = false;
-     TimeZone::getCanonicalID(UnicodeString(id, len), canonical, systemID, *status);
-     if (U_SUCCESS(*status)) {
-         if (isSystemID) {
-@@ -644,7 +644,7 @@ U_CAPI UBool U_EXPORT2
- ucal_isWeekend(const UCalendar *cal, UDate date, UErrorCode *status)
- {
-     if (U_FAILURE(*status)) {
--        return FALSE;
-+        return false;
-     }
-     return ((Calendar*)cal)->isWeekend(date, *status);
- }
-@@ -697,7 +697,7 @@ U_CAPI UEnumeration* U_EXPORT2
- ucal_getKeywordValuesForLocale(const char * /* key */, const char* locale, UBool commonlyUsed, UErrorCode *status) {
-     // Resolve region
-     char prefRegion[ULOC_COUNTRY_CAPACITY];
--    (void)ulocimp_getRegionForSupplementalData(locale, TRUE, prefRegion, sizeof(prefRegion), status);
-+    (void)ulocimp_getRegionForSupplementalData(locale, true, prefRegion, sizeof(prefRegion), status);
-     
-     // Read preferred calendar values from supplementalData calendarPreference
-     UResourceBundle *rb = ures_openDirect(nullptr, "supplementalData", status);
-@@ -724,7 +724,7 @@ ucal_getKeywordValuesForLocale(const char * /* key */, const char* locale, UBool
-                 u_UCharsToChars(type, caltype, len);
-                 *(caltype + len) = 0;
- 
--                ulist_addItemEndList(values, caltype, TRUE, status);
-+                ulist_addItemEndList(values, caltype, true, status);
-                 if (U_FAILURE(*status)) {
-                     break;
-                 }
-@@ -734,7 +734,7 @@ ucal_getKeywordValuesForLocale(const char * /* key */, const char* locale, UBool
-                 // If not commonlyUsed, add other available values
-                 for (int32_t i = 0; CAL_TYPES[i] != nullptr; i++) {
-                     if (!ulist_containsString(values, CAL_TYPES[i], (int32_t)uprv_strlen(CAL_TYPES[i]))) {
--                        ulist_addItemEndList(values, CAL_TYPES[i], FALSE, status);
-+                        ulist_addItemEndList(values, CAL_TYPES[i], false, status);
-                         if (U_FAILURE(*status)) {
-                             break;
-                         }
-@@ -773,7 +773,7 @@ ucal_getTimeZoneTransitionDate(const UCalendar* cal, UTimeZoneTransitionType typ
-                                UDate* transition, UErrorCode* status)
- {
-     if (U_FAILURE(*status)) {
--        return FALSE;
-+        return false;
-     }
-     UDate base = ((Calendar*)cal)->getTime(*status);
-     const TimeZone& tz = ((Calendar*)cal)->getTimeZone();
-@@ -786,10 +786,10 @@ ucal_getTimeZoneTransitionDate(const UCalendar* cal, UTimeZoneTransitionType typ
-                         btz->getPreviousTransition(base, inclusive, tzt);
-         if (result) {
-             *transition = tzt.getTime();
--            return TRUE;
-+            return true;
-         }
-     }
--    return FALSE;
-+    return false;
- }
- 
- U_CAPI int32_t U_EXPORT2
-diff --git a/deps/icu-small/source/i18n/ucln_in.cpp b/deps/icu-small/source/i18n/ucln_in.cpp
-index f29cbe41dd..cdbd16a65e 100644
---- a/deps/icu-small/source/i18n/ucln_in.cpp
-+++ b/deps/icu-small/source/i18n/ucln_in.cpp
-@@ -45,7 +45,7 @@ static UBool U_CALLCONV i18n_cleanup(void)
- #if !UCLN_NO_AUTO_CLEANUP && (defined(UCLN_AUTO_ATEXIT) || defined(UCLN_AUTO_LOCAL))
-     ucln_unRegisterAutomaticCleanup();
- #endif
--    return TRUE;
-+    return true;
- }
- 
- void ucln_i18n_registerCleanup(ECleanupI18NType type,
-diff --git a/deps/icu-small/source/i18n/ucol_res.cpp b/deps/icu-small/source/i18n/ucol_res.cpp
-index b277cf3b28..8308d99c29 100644
---- a/deps/icu-small/source/i18n/ucol_res.cpp
-+++ b/deps/icu-small/source/i18n/ucol_res.cpp
-@@ -62,7 +62,7 @@ namespace {
- static const UChar *rootRules = NULL;
- static int32_t rootRulesLength = 0;
- static UResourceBundle *rootBundle = NULL;
--static UInitOnce gInitOnceUcolRes = U_INITONCE_INITIALIZER;
-+static UInitOnce gInitOnceUcolRes {};
- 
- }  // namespace
- 
-@@ -75,7 +75,7 @@ ucol_res_cleanup() {
-     ures_close(rootBundle);
-     rootBundle = NULL;
-     gInitOnceUcolRes.reset();
--    return TRUE;
-+    return true;
- }
- 
- void U_CALLCONV
-@@ -168,7 +168,7 @@ CollationLoader::CollationLoader(const CollationCacheEntry *re, const Locale &re
-                                  UErrorCode &errorCode)
-         : cache(UnifiedCache::getInstance(errorCode)), rootEntry(re),
-           validLocale(re->validLocale), locale(requested),
--          typesTried(0), typeFallback(FALSE),
-+          typesTried(0), typeFallback(false),
-           bundle(NULL), collations(NULL), data(NULL) {
-     type[0] = 0;
-     defaultType[0] = 0;
-@@ -321,7 +321,7 @@ CollationLoader::loadFromCollations(UErrorCode &errorCode) {
-     int32_t typeLength = static_cast(uprv_strlen(type));
-     if(errorCode == U_MISSING_RESOURCE_ERROR) {
-         errorCode = U_USING_DEFAULT_WARNING;
--        typeFallback = TRUE;
-+        typeFallback = true;
-         if((typesTried & TRIED_SEARCH) == 0 &&
-                 typeLength > 6 && uprv_strncmp(type, "search", 6) == 0) {
-             // fall back from something like "searchjl" to "search"
-@@ -404,7 +404,7 @@ CollationLoader::loadFromData(UErrorCode &errorCode) {
-         const UChar *s = ures_getStringByKey(data, "Sequence", &len,
-                                              &internalErrorCode);
-         if(U_SUCCESS(internalErrorCode)) {
--            t->rules.setTo(TRUE, s, len);
-+            t->rules.setTo(true, s, len);
-         }
-     }
- 
-@@ -619,7 +619,7 @@ namespace {
- struct KeywordsSink : public ResourceSink {
- public:
-     KeywordsSink(UErrorCode &errorCode) :
--            values(ulist_createEmptyList(&errorCode)), hasDefault(FALSE) {}
-+            values(ulist_createEmptyList(&errorCode)), hasDefault(false) {}
-     virtual ~KeywordsSink();
- 
-     virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/,
-@@ -639,13 +639,13 @@ public:
-                             return;
-                         }
-                         ulist_removeString(values, defcoll.data());
--                        ulist_addItemBeginList(values, ownedDefault, TRUE, &errorCode);
--                        hasDefault = TRUE;
-+                        ulist_addItemBeginList(values, ownedDefault, true, &errorCode);
-+                        hasDefault = true;
-                     }
-                 }
-             } else if (type == URES_TABLE && uprv_strncmp(key, "private-", 8) != 0) {
-                 if (!ulist_containsString(values, key, (int32_t)uprv_strlen(key))) {
--                    ulist_addItemEndList(values, key, FALSE, &errorCode);
-+                    ulist_addItemEndList(values, key, false, &errorCode);
-                 }
-             }
-             if (U_FAILURE(errorCode)) { return; }
-@@ -695,7 +695,7 @@ ucol_getFunctionalEquivalent(char* result, int32_t resultCapacity,
-     // N.B.: Resource name is "collations" but keyword is "collation"
-     return ures_getFunctionalEquivalent(result, resultCapacity, U_ICUDATA_COLL,
-         "collations", keyword, locale,
--        isAvailable, TRUE, status);
-+        isAvailable, true, status);
- }
- 
- #endif /* #if !UCONFIG_NO_COLLATION */
-diff --git a/deps/icu-small/source/i18n/ucol_sit.cpp b/deps/icu-small/source/i18n/ucol_sit.cpp
-index 4dc81aebcc..19281e4352 100644
---- a/deps/icu-small/source/i18n/ucol_sit.cpp
-+++ b/deps/icu-small/source/i18n/ucol_sit.cpp
-@@ -109,7 +109,7 @@ CollatorSpec::CollatorSpec() :
- locale(),
- variableTopValue(0),
- variableTopString(),
--variableTopSet(FALSE)
-+variableTopSet(false)
-  {
-     // set collation options to default
-     for(int32_t i = 0; i < UCOL_ATTRIBUTE_COUNT; i++) {
-@@ -270,7 +270,7 @@ _processVariableTop(CollatorSpec *spec, uint32_t value1, const char* string, UEr
-         spec->variableTopValue = readHexCodeUnit(&string, status);
-     }
-     if(U_SUCCESS(*status)) {
--        spec->variableTopSet = TRUE;
-+        spec->variableTopSet = true;
-     }
-     return string;
- }
-@@ -618,7 +618,7 @@ ucol_getContractions( const UCollator *coll,
-                   USet *contractions,
-                   UErrorCode *status)
- {
--  ucol_getContractionsAndExpansions(coll, contractions, NULL, FALSE, status);
-+  ucol_getContractionsAndExpansions(coll, contractions, NULL, false, status);
-   return uset_getItemCount(contractions);
- }
- 
-diff --git a/deps/icu-small/source/i18n/ucoleitr.cpp b/deps/icu-small/source/i18n/ucoleitr.cpp
-index 596ce03295..53649c01bc 100644
---- a/deps/icu-small/source/i18n/ucoleitr.cpp
-+++ b/deps/icu-small/source/i18n/ucoleitr.cpp
-@@ -205,7 +205,7 @@ void UCollationPCE::init(const Collator &coll)
- 
-     strength    = coll.getAttribute(UCOL_STRENGTH, status);
-     toShift     = coll.getAttribute(UCOL_ALTERNATE_HANDLING, status) == UCOL_SHIFTED;
--    isShifted   = FALSE;
-+    isShifted   = false;
-     variableTop = coll.getVariableTop(status);
- }
- 
-@@ -254,13 +254,13 @@ uint64_t UCollationPCE::processCE(uint32_t ce)
-         }
- 
-         primary = secondary = tertiary = 0;
--        isShifted = TRUE;
-+        isShifted = true;
-     } else {
-         if (strength >= UCOL_QUATERNARY) {
-             quaternary = 0xFFFF;
-         }
- 
--        isShifted = FALSE;
-+        isShifted = false;
-     }
- 
-     return primary << 48 | secondary << 32 | tertiary << 16 | quaternary;
-diff --git a/deps/icu-small/source/i18n/ucsdet.cpp b/deps/icu-small/source/i18n/ucsdet.cpp
-index 63f204d0e1..8de10d101f 100644
---- a/deps/icu-small/source/i18n/ucsdet.cpp
-+++ b/deps/icu-small/source/i18n/ucsdet.cpp
-@@ -148,7 +148,7 @@ ucsdet_isInputFilterEnabled(const UCharsetDetector *ucsd)
- {
-     // todo: could use an error return...
-     if (ucsd == NULL) {
--        return FALSE;
-+        return false;
-     }
- 
-     return ((CharsetDetector *) ucsd)->getStripTagsFlag();
-@@ -159,7 +159,7 @@ ucsdet_enableInputFilter(UCharsetDetector *ucsd, UBool filter)
- {
-     // todo: could use an error return...
-     if (ucsd == NULL) {
--        return FALSE;
-+        return false;
-     }
- 
-     CharsetDetector *csd = (CharsetDetector *) ucsd;
-diff --git a/deps/icu-small/source/i18n/udat.cpp b/deps/icu-small/source/i18n/udat.cpp
-index d9549d04c5..426eb7ebf2 100644
---- a/deps/icu-small/source/i18n/udat.cpp
-+++ b/deps/icu-small/source/i18n/udat.cpp
-@@ -429,9 +429,9 @@ udat_getBooleanAttribute(const UDateFormat* fmt,
-                          UDateFormatBooleanAttribute attr, 
-                          UErrorCode* status)
- {
--    if(U_FAILURE(*status)) return FALSE;
-+    if(U_FAILURE(*status)) return false;
-     return ((DateFormat*)fmt)->getBooleanAttribute(attr, *status);
--    //return FALSE;
-+    //return false;
- }
- 
- U_CAPI void U_EXPORT2
-diff --git a/deps/icu-small/source/i18n/uitercollationiterator.cpp b/deps/icu-small/source/i18n/uitercollationiterator.cpp
-index 103c91cac8..26cd75a6bd 100644
---- a/deps/icu-small/source/i18n/uitercollationiterator.cpp
-+++ b/deps/icu-small/source/i18n/uitercollationiterator.cpp
-@@ -303,7 +303,7 @@ FCDUIterCollationIterator::switchToForward() {
- 
- UBool
- FCDUIterCollationIterator::nextSegment(UErrorCode &errorCode) {
--    if(U_FAILURE(errorCode)) { return FALSE; }
-+    if(U_FAILURE(errorCode)) { return false; }
-     U_ASSERT(state == ITER_CHECK_FWD);
-     // The input text [start..(iter index)[ passes the FCD check.
-     pos = iter.getIndex(&iter, UITER_CURRENT);
-@@ -333,12 +333,12 @@ FCDUIterCollationIterator::nextSegment(UErrorCode &errorCode) {
-                 }
-                 s.append(c);
-             }
--            if(!normalize(s, errorCode)) { return FALSE; }
-+            if(!normalize(s, errorCode)) { return false; }
-             start = pos;
-             limit = pos + s.length();
-             state = IN_NORM_ITER_AT_LIMIT;
-             pos = 0;
--            return TRUE;
-+            return true;
-         }
-         prevCC = (uint8_t)fcd16;
-         if(prevCC == 0) {
-@@ -350,7 +350,7 @@ FCDUIterCollationIterator::nextSegment(UErrorCode &errorCode) {
-     U_ASSERT(pos != limit);
-     iter.move(&iter, -s.length(), UITER_CURRENT);
-     state = ITER_IN_FCD_SEGMENT;
--    return TRUE;
-+    return true;
- }
- 
- void
-@@ -384,7 +384,7 @@ FCDUIterCollationIterator::switchToBackward() {
- 
- UBool
- FCDUIterCollationIterator::previousSegment(UErrorCode &errorCode) {
--    if(U_FAILURE(errorCode)) { return FALSE; }
-+    if(U_FAILURE(errorCode)) { return false; }
-     U_ASSERT(state == ITER_CHECK_BWD);
-     // The input text [(iter index)..limit[ passes the FCD check.
-     pos = iter.getIndex(&iter, UITER_CURRENT);
-@@ -417,12 +417,12 @@ FCDUIterCollationIterator::previousSegment(UErrorCode &errorCode) {
-                 s.append(c);
-             }
-             s.reverse();
--            if(!normalize(s, errorCode)) { return FALSE; }
-+            if(!normalize(s, errorCode)) { return false; }
-             limit = pos;
-             start = pos - s.length();
-             state = IN_NORM_ITER_AT_START;
-             pos = normalized.length();
--            return TRUE;
-+            return true;
-         }
-         nextCC = (uint8_t)(fcd16 >> 8);
-         if(nextCC == 0) {
-@@ -434,7 +434,7 @@ FCDUIterCollationIterator::previousSegment(UErrorCode &errorCode) {
-     U_ASSERT(pos != start);
-     iter.move(&iter, s.length(), UITER_CURRENT);
-     state = ITER_IN_FCD_SEGMENT;
--    return TRUE;
-+    return true;
- }
- 
- UBool
-diff --git a/deps/icu-small/source/i18n/ulistformatter.cpp b/deps/icu-small/source/i18n/ulistformatter.cpp
-index bfb7cf96bd..7e8b385c96 100644
---- a/deps/icu-small/source/i18n/ulistformatter.cpp
-+++ b/deps/icu-small/source/i18n/ulistformatter.cpp
-@@ -88,7 +88,7 @@ static UnicodeString* getUnicodeStrings(
-     }
-     if (stringLengths == NULL) {
-         for (int32_t stringIndex = 0; stringIndex < stringCount; stringIndex++) {
--            ustrings[stringIndex].setTo(TRUE, strings[stringIndex], -1);
-+            ustrings[stringIndex].setTo(true, strings[stringIndex], -1);
-         }
-     } else {
-         for (int32_t stringIndex = 0; stringIndex < stringCount; stringIndex++) {
-diff --git a/deps/icu-small/source/i18n/ulocdata.cpp b/deps/icu-small/source/i18n/ulocdata.cpp
-index 68b9e0cf63..48efe9d55a 100644
---- a/deps/icu-small/source/i18n/ulocdata.cpp
-+++ b/deps/icu-small/source/i18n/ulocdata.cpp
-@@ -66,7 +66,7 @@ ulocdata_open(const char *localeID, UErrorCode *status)
- 
-    uld->langBundle = NULL;
- 
--   uld->noSubstitute = FALSE;
-+   uld->noSubstitute = false;
-    uld->bundle = ures_open(NULL, localeID, status);
-    uld->langBundle = ures_open(U_ICUDATA_LANG, localeID, status);
- 
-@@ -196,7 +196,7 @@ static UResourceBundle * measurementTypeBundleForLocale(const char *localeID, co
-     UResourceBundle *rb;
-     UResourceBundle *measTypeBundle = NULL;
-     
--    ulocimp_getRegionForSupplementalData(localeID, TRUE, region, ULOC_COUNTRY_CAPACITY, status);
-+    ulocimp_getRegionForSupplementalData(localeID, true, region, ULOC_COUNTRY_CAPACITY, status);
-     
-     rb = ures_openDirect(NULL, "supplementalData", status);
-     ures_getByKey(rb, "measurementData", rb, status);
-@@ -230,7 +230,10 @@ ulocdata_getMeasurementSystem(const char *localeID, UErrorCode *status){
-     }
- 
-     measurement = measurementTypeBundleForLocale(localeID, MEASUREMENT_SYSTEM, status);
--    system = (UMeasurementSystem) ures_getInt(measurement, status);
-+    int32_t result = ures_getInt(measurement, status);
-+    if (U_SUCCESS(*status)) {
-+         system = static_cast(result);
-+    }
- 
-     ures_close(measurement);
- 
-diff --git a/deps/icu-small/source/i18n/unesctrn.cpp b/deps/icu-small/source/i18n/unesctrn.cpp
-index 0636fe1d14..fb431ffa2e 100644
---- a/deps/icu-small/source/i18n/unesctrn.cpp
-+++ b/deps/icu-small/source/i18n/unesctrn.cpp
-@@ -175,13 +175,13 @@ void UnescapeTransliterator::handleTransliterate(Replaceable& text, UTransPositi
-                                                  UBool isIncremental) const {
-     int32_t start = pos.start;
-     int32_t limit = pos.limit;
--    int32_t i, j, ipat;
-+    int32_t i, ipat;
- 
-     while (start < limit) {
-         // Loop over the forms in spec[].  Exit this loop when we
-         // match one of the specs.  Exit the outer loop if a
-         // partial match is detected and isIncremental is true.
--        for (j=0, ipat=0; spec[ipat] != END; ++j) {
-+        for (ipat=0; spec[ipat] != END;) {
- 
-             // Read the header
-             int32_t prefixLen = spec[ipat++];
-@@ -193,7 +193,7 @@ void UnescapeTransliterator::handleTransliterate(Replaceable& text, UTransPositi
-             // s is a copy of start that is advanced over the
-             // characters as we parse them.
-             int32_t s = start;
--            UBool match = TRUE;
-+            UBool match = true;
- 
-             for (i=0; i= limit) {
-@@ -205,13 +205,13 @@ void UnescapeTransliterator::handleTransliterate(Replaceable& text, UTransPositi
-                         if (isIncremental) {
-                             goto exit;
-                         }
--                        match = FALSE;
-+                        match = false;
-                         break;
-                     }
-                 }
-                 UChar c = text.charAt(s++);
-                 if (c != spec[ipat + i]) {
--                    match = FALSE;
-+                    match = false;
-                     break;
-                 }
-             }
-@@ -248,12 +248,12 @@ void UnescapeTransliterator::handleTransliterate(Replaceable& text, UTransPositi
-                             if (s > start && isIncremental) {
-                                 goto exit;
-                             }
--                            match = FALSE;
-+                            match = false;
-                             break;
-                         }
-                         UChar c = text.charAt(s++);
-                         if (c != spec[ipat + prefixLen + i]) {
--                            match = FALSE;
-+                            match = false;
-                             break;
-                         }
-                     }
-diff --git a/deps/icu-small/source/i18n/uni2name.cpp b/deps/icu-small/source/i18n/uni2name.cpp
-index 904da0207b..97df92b097 100644
---- a/deps/icu-small/source/i18n/uni2name.cpp
-+++ b/deps/icu-small/source/i18n/uni2name.cpp
-@@ -91,7 +91,7 @@ void UnicodeNameTransliterator::handleTransliterate(Replaceable& text, UTransPos
-     int32_t cursor = offsets.start;
-     int32_t limit = offsets.limit;
- 
--    UnicodeString str(FALSE, OPEN_DELIM, OPEN_DELIM_LEN);
-+    UnicodeString str(false, OPEN_DELIM, OPEN_DELIM_LEN);
-     UErrorCode status;
-     int32_t len;
- 
-diff --git a/deps/icu-small/source/i18n/unicode/alphaindex.h b/deps/icu-small/source/i18n/unicode/alphaindex.h
-index d0cdd817fb..ec50822d58 100644
---- a/deps/icu-small/source/i18n/unicode/alphaindex.h
-+++ b/deps/icu-small/source/i18n/unicode/alphaindex.h
-@@ -649,7 +649,7 @@ private:
-       * No Copy constructor.
-       * @internal (private)
-       */
--     AlphabeticIndex(const AlphabeticIndex &other);
-+     AlphabeticIndex(const AlphabeticIndex &other) = delete;
- 
-      /**
-       *   No assignment.
-diff --git a/deps/icu-small/source/i18n/unicode/basictz.h b/deps/icu-small/source/i18n/unicode/basictz.h
-index d9f85e45ee..a1c94e523a 100644
---- a/deps/icu-small/source/i18n/unicode/basictz.h
-+++ b/deps/icu-small/source/i18n/unicode/basictz.h
-@@ -186,13 +186,15 @@ protected:
- 
- #ifndef U_HIDE_INTERNAL_API
-     /**
--     * The time type option bit masks used by getOffsetFromLocal
-+     * A time type option bit mask used by getOffsetFromLocal.
-      * @internal
-      */
--    enum {
--        kStdDstMask = kDaylight,
--        kFormerLatterMask = kLatter
--    };
-+    static constexpr int32_t kStdDstMask = kDaylight;
-+    /**
-+     * A time type option bit mask used by getOffsetFromLocal.
-+     * @internal
-+     */
-+    static constexpr int32_t kFormerLatterMask = kLatter;
- #endif  /* U_HIDE_INTERNAL_API */
- 
-     /**
-diff --git a/deps/icu-small/source/i18n/unicode/calendar.h b/deps/icu-small/source/i18n/unicode/calendar.h
-index c1bdf92820..3c0e5c3e3e 100644
---- a/deps/icu-small/source/i18n/unicode/calendar.h
-+++ b/deps/icu-small/source/i18n/unicode/calendar.h
-@@ -962,16 +962,6 @@ public:
-      */
-     UCalendarWallTimeOption getSkippedWallTimeOption(void) const;
- 
--#ifndef U_HIDE_DEPRECATED_API
--    /**
--     * Sets what the first day of the week is; e.g., Sunday in US, Monday in France.
--     *
--     * @param value  The given first day of the week.
--     * @deprecated ICU 2.6. Use setFirstDayOfWeek(UCalendarDaysOfWeek value) instead.
--     */
--    void setFirstDayOfWeek(EDaysOfWeek value);
--#endif  /* U_HIDE_DEPRECATED_API */
--
-     /**
-      * Sets what the first day of the week is; e.g., Sunday in US, Monday in France.
-      *
-@@ -1143,26 +1133,6 @@ public:
-      */
-     virtual int32_t getActualMinimum(UCalendarDateFields field, UErrorCode& status) const;
- 
--#ifndef U_HIDE_DEPRECATED_API
--    /**
--     * Return the maximum value that this field could have, given the current date.
--     * For example, with the date "Feb 3, 1997" and the DAY_OF_MONTH field, the actual
--     * maximum would be 28; for "Feb 3, 1996" it s 29.  Similarly for a Hebrew calendar,
--     * for some years the actual maximum for MONTH is 12, and for others 13.
--     *
--     * The version of this function on Calendar uses an iterative algorithm to determine the
--     * actual maximum value for the field.  There is almost always a more efficient way to
--     * accomplish this (in most cases, you can simply return getMaximum()).  GregorianCalendar
--     * overrides this function with a more efficient implementation.
--     *
--     * @param field    the field to determine the maximum of
--     * @param status   Fill-in parameter which receives the status of this operation.
--     * @return         the maximum of the given field for the current date of this Calendar
--     * @deprecated ICU 2.6. Use getActualMaximum(UCalendarDateFields field, UErrorCode& status) instead.
--     */
--    int32_t getActualMaximum(EDateFields field, UErrorCode& status) const;
--#endif  /* U_HIDE_DEPRECATED_API */
--
-     /**
-      * Return the maximum value that this field could have, given the current date.
-      * For example, with the date "Feb 3, 1997" and the DAY_OF_MONTH field, the actual
-@@ -1181,23 +1151,6 @@ public:
-      */
-     virtual int32_t getActualMaximum(UCalendarDateFields field, UErrorCode& status) const;
- 
--#ifndef U_HIDE_DEPRECATED_API
--    /**
--     * Gets the value for a given time field. Recalculate the current time field values
--     * if the time value has been changed by a call to setTime(). Return zero for unset
--     * fields if any fields have been explicitly set by a call to set(). To force a
--     * recomputation of all fields regardless of the previous state, call complete().
--     * This method is semantically const, but may alter the object in memory.
--     *
--     * @param field  The given time field.
--     * @param status Fill-in parameter which receives the status of the operation.
--     * @return       The value for the given time field, or zero if the field is unset,
--     *               and set() has been called for any other field.
--     * @deprecated ICU 2.6. Use get(UCalendarDateFields field, UErrorCode& status) instead.
--     */
--    int32_t get(EDateFields field, UErrorCode& status) const;
--#endif  /* U_HIDE_DEPRECATED_API */
--
-     /**
-      * Gets the value for a given time field. Recalculate the current time field values
-      * if the time value has been changed by a call to setTime(). Return zero for unset
-@@ -1213,18 +1166,6 @@ public:
-      */
-     int32_t get(UCalendarDateFields field, UErrorCode& status) const;
- 
--#ifndef U_HIDE_DEPRECATED_API
--    /**
--     * Determines if the given time field has a value set. This can affect in the
--     * resolving of time in Calendar. Unset fields have a value of zero, by definition.
--     *
--     * @param field  The given time field.
--     * @return   True if the given time field has a value set; false otherwise.
--     * @deprecated ICU 2.6. Use isSet(UCalendarDateFields field) instead.
--     */
--    UBool isSet(EDateFields field) const;
--#endif  /* U_HIDE_DEPRECATED_API */
--
-     /**
-      * Determines if the given time field has a value set. This can affect in the
-      * resolving of time in Calendar. Unset fields have a value of zero, by definition.
-@@ -1235,17 +1176,6 @@ public:
-      */
-     UBool isSet(UCalendarDateFields field) const;
- 
--#ifndef U_HIDE_DEPRECATED_API
--    /**
--     * Sets the given time field with the given value.
--     *
--     * @param field  The given time field.
--     * @param value  The value to be set for the given time field.
--     * @deprecated ICU 2.6. Use set(UCalendarDateFields field, int32_t value) instead.
--     */
--    void set(EDateFields field, int32_t value);
--#endif  /* U_HIDE_DEPRECATED_API */
--
-     /**
-      * Sets the given time field with the given value.
-      *
-@@ -1304,18 +1234,6 @@ public:
-      */
-     void clear(void);
- 
--#ifndef U_HIDE_DEPRECATED_API
--    /**
--     * Clears the value in the given time field, both making it unset and assigning it a
--     * value of zero. This field value will be determined during the next resolving of
--     * time into time fields.
--     *
--     * @param field  The time field to be cleared.
--     * @deprecated ICU 2.6. Use clear(UCalendarDateFields field) instead.
--     */
--    void clear(EDateFields field);
--#endif  /* U_HIDE_DEPRECATED_API */
--
-     /**
-      * Clears the value in the given time field, both making it unset and assigning it a
-      * value of zero. This field value will be determined during the next resolving of
-@@ -1766,16 +1684,22 @@ protected:
-     int32_t newestStamp(UCalendarDateFields start, UCalendarDateFields end, int32_t bestSoFar) const;
- 
-     /**
--     * Values for field resolution tables
-+     * Marker for end of resolve set (row or group). Value for field resolution tables.
-+     *
-      * @see #resolveFields
-      * @internal
-      */
--    enum {
--      /** Marker for end of resolve set (row or group). */
--      kResolveSTOP = -1,
--      /** Value to be bitwised "ORed" against resolve table field values for remapping.  Example: (UCAL_DATE | kResolveRemap) in 1st column will cause 'UCAL_DATE' to be returned, but will not examine the value of UCAL_DATE.  */
--      kResolveRemap = 32
--    };
-+    static constexpr int32_t kResolveSTOP = -1;
-+    /**
-+     * Value to be bitwised "ORed" against resolve table field values for remapping.
-+     * Example: (UCAL_DATE | kResolveRemap) in 1st column will cause 'UCAL_DATE' to be returned,
-+     * but will not examine the value of UCAL_DATE.
-+     * Value for field resolution tables.
-+     *
-+     * @see #resolveFields
-+     * @internal
-+     */
-+    static constexpr int32_t kResolveRemap = 32;
- 
-     /**
-      * Precedence table for Dates
-diff --git a/deps/icu-small/source/i18n/unicode/choicfmt.h b/deps/icu-small/source/i18n/unicode/choicfmt.h
-index 0e7ae186d4..66f437e52f 100644
---- a/deps/icu-small/source/i18n/unicode/choicfmt.h
-+++ b/deps/icu-small/source/i18n/unicode/choicfmt.h
-@@ -478,7 +478,7 @@ private:
-      */
-     static UnicodeString& dtos(double value, UnicodeString& string);
- 
--    ChoiceFormat(); // default constructor not implemented
-+    ChoiceFormat() = delete; // default constructor not implemented
- 
-     /**
-      * Construct a new ChoiceFormat with the limits and the corresponding formats
-diff --git a/deps/icu-small/source/i18n/unicode/coleitr.h b/deps/icu-small/source/i18n/unicode/coleitr.h
-index 4e68c6f174..d3ddd0ee04 100644
---- a/deps/icu-small/source/i18n/unicode/coleitr.h
-+++ b/deps/icu-small/source/i18n/unicode/coleitr.h
-@@ -351,7 +351,7 @@ private:
-     const CollationElementIterator&
-         operator=(const CollationElementIterator& other);
- 
--    CollationElementIterator(); // default constructor not implemented
-+    CollationElementIterator() = delete; // default constructor not implemented
- 
-     /** Normalizes dir_=1 (just after setOffset()) to dir_=0 (just after reset()). */
-     inline int8_t normalizeDir() const { return dir_ == 1 ? 0 : dir_; }
-diff --git a/deps/icu-small/source/i18n/unicode/coll.h b/deps/icu-small/source/i18n/unicode/coll.h
-index 9e0050ba6c..6aa35bb5b7 100644
---- a/deps/icu-small/source/i18n/unicode/coll.h
-+++ b/deps/icu-small/source/i18n/unicode/coll.h
-@@ -1202,7 +1202,7 @@ private:
-     /**
-      * Assignment operator. Private for now.
-      */
--    Collator& operator=(const Collator& other);
-+    Collator& operator=(const Collator& other) = delete;
- 
-     friend class CFactory;
-     friend class SimpleCFactory;
-diff --git a/deps/icu-small/source/i18n/unicode/displayoptions.h b/deps/icu-small/source/i18n/unicode/displayoptions.h
-new file mode 100644
-index 0000000000..7bc763bbac
---- /dev/null
-+++ b/deps/icu-small/source/i18n/unicode/displayoptions.h
-@@ -0,0 +1,274 @@
-+// © 2022 and later: Unicode, Inc. and others.
-+// License & terms of use: http://www.unicode.org/copyright.html
-+
-+#ifndef __DISPLAYOPTIONS_H__
-+#define __DISPLAYOPTIONS_H__
-+
-+#include "unicode/utypes.h"
-+
-+#if U_SHOW_CPLUSPLUS_API
-+
-+#if !UCONFIG_NO_FORMATTING
-+
-+/**
-+ * \file
-+ * \brief C++ API: Display options class
-+ *
-+ * This class is designed as a more modern version of the UDisplayContext mechanism.
-+ */
-+
-+#include "unicode/udisplayoptions.h"
-+#include "unicode/uversion.h"
-+
-+U_NAMESPACE_BEGIN
-+
-+#ifndef U_HIDE_DRAFT_API
-+
-+/**
-+ * Represents all the display options that are supported by CLDR such as grammatical case, noun
-+ * class, ... etc. It currently supports enums, but may be extended in the future to have other
-+ * types of data. It replaces a DisplayContext[] as a method parameter.
-+ *
-+ * NOTE: This class is Immutable, and uses a Builder interface.
-+ *
-+ * For example:
-+ * ```
-+ * DisplayOptions x =
-+ *     DisplayOptions::builder().
-+ *         .setGrammaticalCase(UDISPOPT_GRAMMATICAL_CASE_DATIVE)
-+ *         .setPluralCategory(UDISPOPT_PLURAL_CATEGORY_FEW)
-+ *         .build();
-+ * ```
-+ *
-+ * @draft ICU 72
-+ */
-+class U_I18N_API DisplayOptions {
-+public:
-+    /**
-+     * Responsible for building `DisplayOptions`.
-+     *
-+     * @draft ICU 72
-+     */
-+    class U_I18N_API Builder {
-+    public:
-+        /**
-+         * Sets the grammatical case.
-+         *
-+         * @param grammaticalCase The grammatical case.
-+         * @return Builder
-+         * @draft ICU 72
-+         */
-+        Builder &setGrammaticalCase(UDisplayOptionsGrammaticalCase grammaticalCase) {
-+            this->grammaticalCase = grammaticalCase;
-+            return *this;
-+        }
-+
-+        /**
-+         * Sets the noun class.
-+         *
-+         * @param nounClass The noun class.
-+         * @return Builder
-+         * @draft ICU 72
-+         */
-+        Builder &setNounClass(UDisplayOptionsNounClass nounClass) {
-+            this->nounClass = nounClass;
-+            return *this;
-+        }
-+
-+        /**
-+         * Sets the plural category.
-+         *
-+         * @param pluralCategory The plural category.
-+         * @return Builder
-+         * @draft ICU 72
-+         */
-+        Builder &setPluralCategory(UDisplayOptionsPluralCategory pluralCategory) {
-+            this->pluralCategory = pluralCategory;
-+            return *this;
-+        }
-+
-+        /**
-+         * Sets the capitalization.
-+         *
-+         * @param capitalization The capitalization.
-+         * @return Builder
-+         * @draft ICU 72
-+         */
-+        Builder &setCapitalization(UDisplayOptionsCapitalization capitalization) {
-+            this->capitalization = capitalization;
-+            return *this;
-+        }
-+
-+        /**
-+         * Sets the dialect handling.
-+         *
-+         * @param nameStyle The name style.
-+         * @return Builder
-+         * @draft ICU 72
-+         */
-+        Builder &setNameStyle(UDisplayOptionsNameStyle nameStyle) {
-+            this->nameStyle = nameStyle;
-+            return *this;
-+        }
-+
-+        /**
-+         * Sets the display length.
-+         *
-+         * @param displayLength The display length.
-+         * @return Builder
-+         * @draft ICU 72
-+         */
-+        Builder &setDisplayLength(UDisplayOptionsDisplayLength displayLength) {
-+            this->displayLength = displayLength;
-+            return *this;
-+        }
-+
-+        /**
-+         * Sets the substitute handling.
-+         *
-+         * @param substituteHandling The substitute handling.
-+         * @return Builder
-+         * @draft ICU 72
-+         */
-+        Builder &setSubstituteHandling(UDisplayOptionsSubstituteHandling substituteHandling) {
-+            this->substituteHandling = substituteHandling;
-+            return *this;
-+        }
-+
-+        /**
-+         * Builds the display options.
-+         *
-+         * @return DisplayOptions
-+         * @draft ICU 72
-+         */
-+        DisplayOptions build() { return DisplayOptions(*this); }
-+
-+    private:
-+        friend DisplayOptions;
-+
-+        Builder();
-+        Builder(const DisplayOptions &displayOptions);
-+
-+        UDisplayOptionsGrammaticalCase grammaticalCase;
-+        UDisplayOptionsNounClass nounClass;
-+        UDisplayOptionsPluralCategory pluralCategory;
-+        UDisplayOptionsCapitalization capitalization;
-+        UDisplayOptionsNameStyle nameStyle;
-+        UDisplayOptionsDisplayLength displayLength;
-+        UDisplayOptionsSubstituteHandling substituteHandling;
-+    };
-+
-+    /**
-+     * Creates a builder with the `UNDEFINED` values for all the parameters.
-+     *
-+     * @return Builder
-+     * @draft ICU 72
-+     */
-+    static Builder builder();
-+    /**
-+     * Creates a builder with the same parameters from this object.
-+     *
-+     * @return Builder
-+     * @draft ICU 72
-+     */
-+    Builder copyToBuilder() const;
-+    /**
-+     * Gets the grammatical case.
-+     *
-+     * @return UDisplayOptionsGrammaticalCase
-+     * @draft ICU 72
-+     */
-+    UDisplayOptionsGrammaticalCase getGrammaticalCase() const { return grammaticalCase; }
-+
-+    /**
-+     * Gets the noun class.
-+     *
-+     * @return UDisplayOptionsNounClass
-+     * @draft ICU 72
-+     */
-+    UDisplayOptionsNounClass getNounClass() const { return nounClass; }
-+
-+    /**
-+     * Gets the plural category.
-+     *
-+     * @return UDisplayOptionsPluralCategory
-+     * @draft ICU 72
-+     */
-+    UDisplayOptionsPluralCategory getPluralCategory() const { return pluralCategory; }
-+
-+    /**
-+     * Gets the capitalization.
-+     *
-+     * @return UDisplayOptionsCapitalization
-+     * @draft ICU 72
-+     */
-+    UDisplayOptionsCapitalization getCapitalization() const { return capitalization; }
-+
-+    /**
-+     * Gets the dialect handling.
-+     *
-+     * @return UDisplayOptionsNameStyle
-+     * @draft ICU 72
-+     */
-+    UDisplayOptionsNameStyle getNameStyle() const { return nameStyle; }
-+
-+    /**
-+     * Gets the display length.
-+     *
-+     * @return UDisplayOptionsDisplayLength
-+     * @draft ICU 72
-+     */
-+    UDisplayOptionsDisplayLength getDisplayLength() const { return displayLength; }
-+
-+    /**
-+     * Gets the substitute handling.
-+     *
-+     * @return UDisplayOptionsSubstituteHandling
-+     * @draft ICU 72
-+     */
-+    UDisplayOptionsSubstituteHandling getSubstituteHandling() const { return substituteHandling; }
-+
-+    /**
-+     * Copies the DisplayOptions.
-+     *
-+     * @param other The options to copy.
-+     * @draft ICU 72
-+     */
-+    DisplayOptions &operator=(const DisplayOptions &other) = default;
-+
-+    /**
-+     * Moves the DisplayOptions.
-+     *
-+     * @param other The options to move from.
-+     * @draft ICU 72
-+     */
-+    DisplayOptions &operator=(DisplayOptions &&other) noexcept = default;
-+
-+    /**
-+     * Copies the DisplayOptions.
-+     *
-+     * @param other The options to copy.
-+     * @draft ICU 72
-+     */
-+    DisplayOptions(const DisplayOptions &other) = default;
-+
-+private:
-+    DisplayOptions(const Builder &builder);
-+    UDisplayOptionsGrammaticalCase grammaticalCase;
-+    UDisplayOptionsNounClass nounClass;
-+    UDisplayOptionsPluralCategory pluralCategory;
-+    UDisplayOptionsCapitalization capitalization;
-+    UDisplayOptionsNameStyle nameStyle;
-+    UDisplayOptionsDisplayLength displayLength;
-+    UDisplayOptionsSubstituteHandling substituteHandling;
-+};
-+
-+#endif // U_HIDE_DRAFT_API
-+
-+U_NAMESPACE_END
-+
-+#endif /* #if !UCONFIG_NO_FORMATTING */
-+
-+#endif /* U_SHOW_CPLUSPLUS_API */
-+
-+#endif // __DISPLAYOPTIONS_H__
-diff --git a/deps/icu-small/source/i18n/unicode/dtfmtsym.h b/deps/icu-small/source/i18n/unicode/dtfmtsym.h
-index 200b3a6ef1..9dbd728837 100644
---- a/deps/icu-small/source/i18n/unicode/dtfmtsym.h
-+++ b/deps/icu-small/source/i18n/unicode/dtfmtsym.h
-@@ -920,7 +920,7 @@ private:
-     char validLocale[ULOC_FULLNAME_CAPACITY];
-     char actualLocale[ULOC_FULLNAME_CAPACITY];
- 
--    DateFormatSymbols(); // default constructor not implemented
-+    DateFormatSymbols() = delete; // default constructor not implemented
- 
-     /**
-      * Called by the constructors to actually load data from the resources
-diff --git a/deps/icu-small/source/i18n/unicode/dtitvinf.h b/deps/icu-small/source/i18n/unicode/dtitvinf.h
-index b5afc06467..a1f4f426a1 100644
---- a/deps/icu-small/source/i18n/unicode/dtitvinf.h
-+++ b/deps/icu-small/source/i18n/unicode/dtitvinf.h
-@@ -343,7 +343,7 @@ private:
-     /**
-      * Internal struct used to load resource bundle data.
-      */
--    struct DateIntervalSink;
-+    struct U_HIDDEN DateIntervalSink;
- 
-     /**
-      * Following is for saving the interval patterns.
-diff --git a/deps/icu-small/source/i18n/unicode/dtptngen.h b/deps/icu-small/source/i18n/unicode/dtptngen.h
-index 6be0e2a571..6d2351ffca 100644
---- a/deps/icu-small/source/i18n/unicode/dtptngen.h
-+++ b/deps/icu-small/source/i18n/unicode/dtptngen.h
-@@ -83,13 +83,6 @@ public:
-      */
-     static DateTimePatternGenerator* U_EXPORT2 createInstanceNoStdPat(const Locale& uLocale, UErrorCode& status);
- 
--    /**
--     * For ICU use only
--     *
--     * @internal
--     */
--    static DateTimePatternGenerator* U_EXPORT2 internalMakeInstance(const Locale& uLocale, UErrorCode& status);
--
- #endif /* U_HIDE_INTERNAL_API */
- 
-     /**
-@@ -665,9 +658,9 @@ private:
-     static void U_CALLCONV loadAllowedHourFormatsData(UErrorCode &status);
-     void getAllowedHourFormats(const Locale &locale, UErrorCode &status);
- 
--    struct AppendItemFormatsSink;
--    struct AppendItemNamesSink;
--    struct AvailableFormatsSink;
-+    struct U_HIDDEN AppendItemFormatsSink;
-+    struct U_HIDDEN AppendItemNamesSink;
-+    struct U_HIDDEN AvailableFormatsSink;
- } ;// end class DateTimePatternGenerator
- 
- U_NAMESPACE_END
-diff --git a/deps/icu-small/source/i18n/unicode/gender.h b/deps/icu-small/source/i18n/unicode/gender.h
-index cf7fee963e..c81f7c88cc 100644
---- a/deps/icu-small/source/i18n/unicode/gender.h
-+++ b/deps/icu-small/source/i18n/unicode/gender.h
-@@ -91,12 +91,12 @@ private:
-      * Copy constructor. One object per locale invariant. Clients
-      * must never copy GenderInfo objects.
-      */
--    GenderInfo(const GenderInfo& other);
-+    GenderInfo(const GenderInfo& other) = delete;
- 
-     /**
-       * Assignment operator. Not applicable to immutable objects.
-       */
--    GenderInfo& operator=(const GenderInfo&);
-+    GenderInfo& operator=(const GenderInfo&) = delete;
- 
-     GenderInfo();
- 
-diff --git a/deps/icu-small/source/i18n/unicode/gregocal.h b/deps/icu-small/source/i18n/unicode/gregocal.h
-index 4c2be18251..d97b33b7ac 100644
---- a/deps/icu-small/source/i18n/unicode/gregocal.h
-+++ b/deps/icu-small/source/i18n/unicode/gregocal.h
-@@ -411,19 +411,6 @@ public:
-      */
-     int32_t getActualMinimum(UCalendarDateFields field, UErrorCode &status) const override;
- 
--#ifndef U_HIDE_DEPRECATED_API
--    /**
--     * Return the maximum value that this field could have, given the current date.
--     * For example, with the date "Feb 3, 1997" and the DAY_OF_MONTH field, the actual
--     * maximum would be 28; for "Feb 3, 1996" it s 29.  Similarly for a Hebrew calendar,
--     * for some years the actual maximum for MONTH is 12, and for others 13.
--     * @param field    the time field.
--     * @return         the maximum value that this field could have, given the current date.
--     * @deprecated ICU 2.6. Use getActualMaximum(UCalendarDateFields field) instead.
--     */
--    int32_t getActualMaximum(EDateFields field) const;
--#endif  /* U_HIDE_DEPRECATED_API */
--
-     /**
-      * Return the maximum value that this field could have, given the current date.
-      * For example, with the date "Feb 3, 1997" and the DAY_OF_MONTH field, the actual
-@@ -487,7 +474,7 @@ public:
-     virtual const char * getType() const override;
- 
-  private:
--    GregorianCalendar(); // default constructor not implemented
-+    GregorianCalendar() = delete; // default constructor not implemented
- 
-  protected:
-     /**
-@@ -715,12 +702,6 @@ public:
-      */
-     int32_t fGregorianCutoverYear;// = 1582;
- 
--    /**
--     * The year of the gregorianCutover, with 0 representing
--     * 1 BC, -1 representing 2 BC, etc.
--     */
--    int32_t fGregorianCutoverJulianDay;// = 2299161;
--
-     /**
-      * Converts time as milliseconds to Julian date. The Julian date used here is not a
-      * true Julian date, since it is measured from midnight, not noon.
-diff --git a/deps/icu-small/source/i18n/unicode/listformatter.h b/deps/icu-small/source/i18n/unicode/listformatter.h
-index d7ab1d2086..0277afd167 100644
---- a/deps/icu-small/source/i18n/unicode/listformatter.h
-+++ b/deps/icu-small/source/i18n/unicode/listformatter.h
-@@ -268,14 +268,10 @@ class U_I18N_API ListFormatter : public UObject{
- 
-     static void initializeHash(UErrorCode& errorCode);
-     static const ListFormatInternal* getListFormatInternal(const Locale& locale, const char *style, UErrorCode& errorCode);
--    struct ListPatternsSink;
-+    struct U_HIDDEN ListPatternsSink;
-     static ListFormatInternal* loadListFormatInternal(const Locale& locale, const char* style, UErrorCode& errorCode);
- 
--    UnicodeString& format_(
--        const UnicodeString items[], int32_t n_items, UnicodeString& appendTo,
--        int32_t index, int32_t &offset, FieldPositionHandler* handler, UErrorCode& errorCode) const;
--
--    ListFormatter();
-+    ListFormatter() = delete;
- 
-     ListFormatInternal* owned;
-     const ListFormatInternal* data;
-diff --git a/deps/icu-small/source/i18n/unicode/measunit.h b/deps/icu-small/source/i18n/unicode/measunit.h
-index b7e8e1676a..6a64ae2bb3 100644
---- a/deps/icu-small/source/i18n/unicode/measunit.h
-+++ b/deps/icu-small/source/i18n/unicode/measunit.h
-@@ -950,23 +950,21 @@ class U_I18N_API MeasureUnit: public UObject {
-      */
-     static MeasureUnit getSquareYard();
- 
--#ifndef U_HIDE_DRAFT_API
-     /**
-      * Returns by pointer, unit of concentr: item.
-      * Caller owns returned value and must free it.
-      * Also see {@link #getItem()}.
-      * @param status ICU error code.
--     * @draft ICU 70
-+     * @stable ICU 70
-      */
-     static MeasureUnit *createItem(UErrorCode &status);
- 
-     /**
-      * Returns by value, unit of concentr: item.
-      * Also see {@link #createItem()}.
--     * @draft ICU 70
-+     * @stable ICU 70
-      */
-     static MeasureUnit getItem();
--#endif /* U_HIDE_DRAFT_API */
- 
-     /**
-      * Returns by pointer, unit of concentr: karat.
-@@ -1528,6 +1526,24 @@ class U_I18N_API MeasureUnit: public UObject {
-      */
-     static MeasureUnit getNanosecond();
- 
-+#ifndef U_HIDE_DRAFT_API
-+    /**
-+     * Returns by pointer, unit of duration: quarter.
-+     * Caller owns returned value and must free it.
-+     * Also see {@link #getQuarter()}.
-+     * @param status ICU error code.
-+     * @draft ICU 72
-+     */
-+    static MeasureUnit *createQuarter(UErrorCode &status);
-+
-+    /**
-+     * Returns by value, unit of duration: quarter.
-+     * Also see {@link #createQuarter()}.
-+     * @draft ICU 72
-+     */
-+    static MeasureUnit getQuarter();
-+#endif /* U_HIDE_DRAFT_API */
-+
-     /**
-      * Returns by pointer, unit of duration: second.
-      * Caller owns returned value and must free it.
-@@ -1816,23 +1832,21 @@ class U_I18N_API MeasureUnit: public UObject {
-      */
-     static MeasureUnit getThermUs();
- 
--#ifndef U_HIDE_DRAFT_API
-     /**
-      * Returns by pointer, unit of force: kilowatt-hour-per-100-kilometer.
-      * Caller owns returned value and must free it.
-      * Also see {@link #getKilowattHourPer100Kilometer()}.
-      * @param status ICU error code.
--     * @draft ICU 70
-+     * @stable ICU 70
-      */
-     static MeasureUnit *createKilowattHourPer100Kilometer(UErrorCode &status);
- 
-     /**
-      * Returns by value, unit of force: kilowatt-hour-per-100-kilometer.
-      * Also see {@link #createKilowattHourPer100Kilometer()}.
--     * @draft ICU 70
-+     * @stable ICU 70
-      */
-     static MeasureUnit getKilowattHourPer100Kilometer();
--#endif /* U_HIDE_DRAFT_API */
- 
-     /**
-      * Returns by pointer, unit of force: newton.
-@@ -2571,17 +2585,25 @@ class U_I18N_API MeasureUnit: public UObject {
-     static MeasureUnit getKilogram();
- 
-     /**
--     * Returns by pointer, unit of mass: metric-ton.
-+     * Returns by pointer, unit of mass: metric-ton
-+     * (renamed to tonne in CLDR 42 / ICU 72).
-      * Caller owns returned value and must free it.
--     * Also see {@link #getMetricTon()}.
-+     * Note: In ICU 74 this will be deprecated in favor of
-+     * createTonne(), which is currently draft but will
-+     * become stable in ICU 74, and which uses the preferred naming.
-+     * Also see {@link #getMetricTon()} and {@link #createTonne()}.
-      * @param status ICU error code.
-      * @stable ICU 54
-      */
-     static MeasureUnit *createMetricTon(UErrorCode &status);
- 
-     /**
--     * Returns by value, unit of mass: metric-ton.
--     * Also see {@link #createMetricTon()}.
-+     * Returns by value, unit of mass: metric-ton
-+     * (renamed to tonne in CLDR 42 / ICU 72).
-+     * Note: In ICU 74 this will be deprecated in favor of
-+     * getTonne(), which is currently draft but will
-+     * become stable in ICU 74, and which uses the preferred naming.
-+     * Also see {@link #createMetricTon()} and {@link #getTonne()}.
-      * @stable ICU 64
-      */
-     static MeasureUnit getMetricTon();
-@@ -2714,6 +2736,24 @@ class U_I18N_API MeasureUnit: public UObject {
-      */
-     static MeasureUnit getTon();
- 
-+#ifndef U_HIDE_DRAFT_API
-+    /**
-+     * Returns by pointer, unit of mass: tonne.
-+     * Caller owns returned value and must free it.
-+     * Also see {@link #getTonne()}.
-+     * @param status ICU error code.
-+     * @draft ICU 72
-+     */
-+    static MeasureUnit *createTonne(UErrorCode &status);
-+
-+    /**
-+     * Returns by value, unit of mass: tonne.
-+     * Also see {@link #createTonne()}.
-+     * @draft ICU 72
-+     */
-+    static MeasureUnit getTonne();
-+#endif /* U_HIDE_DRAFT_API */
-+
-     /**
-      * Returns by pointer, unit of power: gigawatt.
-      * Caller owns returned value and must free it.
-diff --git a/deps/icu-small/source/i18n/unicode/msgfmt.h b/deps/icu-small/source/i18n/unicode/msgfmt.h
-index c949132fda..76e1ab788e 100644
---- a/deps/icu-small/source/i18n/unicode/msgfmt.h
-+++ b/deps/icu-small/source/i18n/unicode/msgfmt.h
-@@ -886,7 +886,7 @@ private:
-     Format**            formatAliases; // see getFormats
-     int32_t             formatAliasesCapacity;
- 
--    MessageFormat(); // default constructor not implemented
-+    MessageFormat() = delete; // default constructor not implemented
- 
-      /**
-       * This provider helps defer instantiation of a PluralRules object
-@@ -1011,8 +1011,6 @@ private:
- 
-     void cacheExplicitFormats(UErrorCode& status);
- 
--    int32_t skipLeadingSpaces(UnicodeString& style);
--
-     Format* createAppropriateFormat(UnicodeString& type,
-                                     UnicodeString& style,
-                                     Formattable::Type& formattableType,
-diff --git a/deps/icu-small/source/i18n/unicode/numberformatter.h b/deps/icu-small/source/i18n/unicode/numberformatter.h
-index 711064ece8..be2056be36 100644
---- a/deps/icu-small/source/i18n/unicode/numberformatter.h
-+++ b/deps/icu-small/source/i18n/unicode/numberformatter.h
-@@ -14,6 +14,7 @@
- #include "unicode/bytestream.h"
- #include "unicode/currunit.h"
- #include "unicode/dcfmtsym.h"
-+#include "unicode/displayoptions.h"
- #include "unicode/fieldpos.h"
- #include "unicode/formattedvalue.h"
- #include "unicode/fpositer.h"
-@@ -22,7 +23,7 @@
- #include "unicode/parseerr.h"
- #include "unicode/plurrule.h"
- #include "unicode/ucurr.h"
--#include "unicode/unounclass.h"
-+#include "unicode/udisplayoptions.h"
- #include "unicode/unum.h"
- #include "unicode/unumberformatter.h"
- #include "unicode/uobject.h"
-@@ -2254,23 +2255,50 @@ class U_I18N_API NumberFormatterSettings {
-     Derived usage(StringPiece usage) &&;
- 
- #ifndef U_HIDE_DRAFT_API
-+    /**
-+     * Specifies the DisplayOptions. For example, UDisplayOptionsGrammaticalCase specifies
-+     * the desired case for a unit formatter's output (e.g. accusative, dative, genitive).
-+     *
-+     * @param displayOptions
-+     * @return The fluent chain.
-+     * @draft ICU 72
-+     */
-+    Derived displayOptions(const DisplayOptions &displayOptions) const &;
-+
-+    /**
-+     * Overload of displayOptions() for use on an rvalue reference.
-+     *
-+     * @param displayOptions
-+     * @return The fluent chain.
-+     * @draft ICU 72
-+     */
-+    Derived displayOptions(const DisplayOptions &displayOptions) &&;
-+#endif // U_HIDE_DRAFT_API
-+
- #ifndef U_HIDE_INTERNAL_API
-     /**
-+     * NOTE: Use `displayOptions` instead. This method was part of
-+     * an internal technology preview in ICU 69, but will be removed
-+     * in ICU 73, in favor of `displayOptions`
-+     *
-      * Specifies the desired case for a unit formatter's output (e.g.
-      * accusative, dative, genitive).
-      *
--     * @internal ICU 69 technology preview
-+     * @internal
-      */
-     Derived unitDisplayCase(StringPiece unitDisplayCase) const &;
- 
-     /**
-+     * NOTE: Use `displayOptions` instead. This method was part of
-+     * an internal technology preview in ICU 69, but will be removed
-+     * in ICU 73, in favor of `displayOptions`
-+     *
-      * Overload of unitDisplayCase() for use on an rvalue reference.
-      *
--     * @internal ICU 69 technology preview
-+     * @internal
-      */
-     Derived unitDisplayCase(StringPiece unitDisplayCase) &&;
- #endif // U_HIDE_INTERNAL_API
--#endif // U_HIDE_DRAFT_API
- 
- #ifndef U_HIDE_INTERNAL_API
- 
-@@ -2771,13 +2799,13 @@ class U_I18N_API FormattedNumber : public UMemory, public FormattedValue {
- #ifndef U_HIDE_DRAFT_API
- 
-     /**
--     * Gets the noun class of the formatted output. Returns `OTHER` when the noun class
-+     * Gets the noun class of the formatted output. Returns `UNDEFINED` when the noun class
-      * is not supported yet.
-      *
--     * @return `NounClass`
--     * @draft ICU 71.
-+     * @return UDisplayOptionsNounClass
-+     * @draft ICU 72
-      */
--    NounClass getNounClass(UErrorCode &status) const;
-+    UDisplayOptionsNounClass getNounClass(UErrorCode &status) const;
- 
- #endif // U_HIDE_DRAFT_API
- 
-@@ -2797,18 +2825,6 @@ class U_I18N_API FormattedNumber : public UMemory, public FormattedValue {
- 
- #endif  /* U_HIDE_INTERNAL_API */
- 
--#ifndef U_HIDE_DEPRECATED_API
--
--    /**
--     * Gets the gender of the formatted output. Returns "" when the gender is
--     * unknown, or for ungendered languages.
--     *
--     * @deprecated This API is for ICU internal use only.
--     */
--    const char *getGender(UErrorCode &status) const;
--
--#endif /* U_HIDE_DEPRECATED_API */
--
-   private:
-     // Can't use LocalPointer because UFormattedNumberData is forward-declared
-     const impl::UFormattedNumberData *fData;
-diff --git a/deps/icu-small/source/i18n/unicode/numberrangeformatter.h b/deps/icu-small/source/i18n/unicode/numberrangeformatter.h
-index 363f7d48cf..7f535952d2 100644
---- a/deps/icu-small/source/i18n/unicode/numberrangeformatter.h
-+++ b/deps/icu-small/source/i18n/unicode/numberrangeformatter.h
-@@ -560,8 +560,6 @@ class U_I18N_API LocalizedNumberRangeFormatter
- 
-     LocalizedNumberRangeFormatter(impl::RangeMacroProps &¯os, const Locale &locale);
- 
--    void clear();
--
-     // To give the fluent setters access to this class's constructor:
-     friend class NumberRangeFormatterSettings;
-     friend class NumberRangeFormatterSettings;
-@@ -641,14 +639,12 @@ class U_I18N_API FormattedNumberRange : public UMemory, public FormattedValue {
-      */
-     UNumberRangeIdentityResult getIdentityResult(UErrorCode& status) const;
- 
--#ifndef U_HIDE_DRAFT_API
-     /**
-      * Default constructor; makes an empty FormattedNumberRange.
--     * @draft ICU 70
-+     * @stable ICU 70
-      */
-     FormattedNumberRange()
-         : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {}
--#endif  /* U_HIDE_DRAFT_API */
- 
-     /**
-      * Copying not supported; use move constructor instead.
-@@ -696,8 +692,6 @@ class U_I18N_API FormattedNumberRange : public UMemory, public FormattedValue {
-     explicit FormattedNumberRange(UErrorCode errorCode)
-         : fData(nullptr), fErrorCode(errorCode) {}
- 
--    void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
--
-     void getDecimalNumbers(ByteSink& sink1, ByteSink& sink2, UErrorCode& status) const;
- 
-     const impl::UFormattedNumberRangeData* getData(UErrorCode& status) const;
-diff --git a/deps/icu-small/source/i18n/unicode/numsys.h b/deps/icu-small/source/i18n/unicode/numsys.h
-index 4f839d0f35..358dc533a5 100644
---- a/deps/icu-small/source/i18n/unicode/numsys.h
-+++ b/deps/icu-small/source/i18n/unicode/numsys.h
-@@ -208,10 +208,6 @@ private:
-     void setDesc(const UnicodeString &desc);
- 
-     void setName(const char* name);
--
--    static UBool isValidDigitString(const UnicodeString &str);
--
--    UBool hasContiguousDecimalDigits() const;
- };
- 
- U_NAMESPACE_END
-diff --git a/deps/icu-small/source/i18n/unicode/plurfmt.h b/deps/icu-small/source/i18n/unicode/plurfmt.h
-index db16054605..1bdc369341 100644
---- a/deps/icu-small/source/i18n/unicode/plurfmt.h
-+++ b/deps/icu-small/source/i18n/unicode/plurfmt.h
-@@ -561,7 +561,7 @@ private:
-     double offset;
-     PluralSelectorAdapter pluralRulesWrapper;
- 
--    PluralFormat();   // default constructor not implemented
-+    PluralFormat() = delete;   // default constructor not implemented
-     void init(const PluralRules* rules, UPluralType type, UErrorCode& status);
-     /**
-      * Copies dynamically allocated values (pointer fields).
-diff --git a/deps/icu-small/source/i18n/unicode/plurrule.h b/deps/icu-small/source/i18n/unicode/plurrule.h
-index e90cd66a7f..b4298de63f 100644
---- a/deps/icu-small/source/i18n/unicode/plurrule.h
-+++ b/deps/icu-small/source/i18n/unicode/plurrule.h
-@@ -59,9 +59,15 @@ class FormattedNumber;
- class FormattedNumberRange;
- namespace impl {
- class UFormattedNumberRangeData;
-+class DecimalQuantity;
-+class DecNum;
- }
- }
- 
-+#ifndef U_HIDE_INTERNAL_API
-+using icu::number::impl::DecimalQuantity;
-+#endif  /* U_HIDE_INTERNAL_API */
-+
- /**
-  * Defines rules for mapping non-negative numeric values onto a small set of
-  * keywords. Rules are constructed from a text description, consisting
-@@ -306,14 +312,6 @@ public:
-      */
-     static StringEnumeration* U_EXPORT2 getAvailableLocales(UErrorCode &status);
- 
--    /**
--     * Returns whether or not there are overrides.
--     * @param locale       the locale to check.
--     * @return
--     * @internal
--     */
--    static UBool hasOverride(const Locale &locale);
--
-     /**
-      * For ICU use only.
-      * creates a  SharedPluralRules object
-@@ -476,7 +474,7 @@ public:
- 
- #ifndef U_HIDE_INTERNAL_API
-     /**
--     * Internal-only function that returns FixedDecimals instead of doubles.
-+     * Internal-only function that returns DecimalQuantitys instead of doubles.
-      *
-      * Returns sample values for which select() would return the keyword.  If
-      * the keyword is unknown, returns no values, but this is not an error.
-@@ -496,7 +494,7 @@ public:
-      * @internal
-      */
-     int32_t getSamples(const UnicodeString &keyword,
--                       FixedDecimal *dest, int32_t destCapacity,
-+                       DecimalQuantity *dest, int32_t destCapacity,
-                        UErrorCode& status);
- #endif  /* U_HIDE_INTERNAL_API */
- 
-@@ -569,9 +567,7 @@ private:
-     RuleChain  *mRules;
-     StandardPluralRanges *mStandardPluralRanges;
- 
--    PluralRules();   // default constructor not implemented
--    void            parseDescription(const UnicodeString& ruleData, UErrorCode &status);
--    int32_t         getNumberValue(const UnicodeString& token) const;
-+    PluralRules() = delete;   // default constructor not implemented
-     UnicodeString   getRuleFromResource(const Locale& locale, UPluralType type, UErrorCode& status);
-     RuleChain      *rulesForKeyword(const UnicodeString &keyword) const;
-     PluralRules    *clone(UErrorCode& status) const;
-diff --git a/deps/icu-small/source/i18n/unicode/rbnf.h b/deps/icu-small/source/i18n/unicode/rbnf.h
-index 0a5a378e13..70d92dd549 100644
---- a/deps/icu-small/source/i18n/unicode/rbnf.h
-+++ b/deps/icu-small/source/i18n/unicode/rbnf.h
-@@ -54,9 +54,27 @@ class RuleBasedCollator;
-  * @stable ICU 2.2
-  */
- enum URBNFRuleSetTag {
-+    /**
-+     * Requests predefined ruleset for spelling out numeric values in words.
-+     * @stable ICU 2.2
-+     */
-     URBNF_SPELLOUT,
-+    /**
-+     * Requests predefined ruleset for the ordinal form of a number.
-+     * @stable ICU 2.2
-+     */
-     URBNF_ORDINAL,
-+    /**
-+     * Requests predefined ruleset for formatting a value as a duration in hours, minutes, and seconds.
-+     * @stable ICU 2.2
-+     */
-     URBNF_DURATION,
-+    /**
-+     * Requests predefined ruleset for various non-place-value numbering systems.
-+     * WARNING: The same resource contains rule sets for a variety of different numbering systems.
-+     * You need to call setDefaultRuleSet() on the formatter to choose the actual numbering system.
-+     * @stable ICU 2.2
-+     */
-     URBNF_NUMBERING_SYSTEM,
- #ifndef U_HIDE_DEPRECATED_API
-     /**
-@@ -662,6 +680,9 @@ public:
-    * URBNF_DURATION, which formats a duration in seconds as hours, minutes, and seconds always rounding down,
-    * and URBNF_NUMBERING_SYSTEM, which is used to invoke rules for alternate numbering
-    * systems such as the Hebrew numbering system, or for Roman Numerals, etc.
-+   * NOTE: If you use URBNF_NUMBERING_SYSTEM, you must also call setDefaultRuleSet() to
-+   * specify the exact numbering system you want to use.  If you want the default numbering system
-+   * for the locale, call NumberFormat::createInstance() instead of creating a RuleBasedNumberFormat directly.
-    * @param locale The locale for the formatter.
-    * @param status The status indicating whether the constructor succeeded.
-    * @stable ICU 2.0
-@@ -1040,7 +1061,7 @@ public:
-     virtual void setDecimalFormatSymbols(const DecimalFormatSymbols& symbols);
- 
- private:
--    RuleBasedNumberFormat(); // default constructor not implemented
-+    RuleBasedNumberFormat() = delete; // default constructor not implemented
- 
-     // this will ref the localizations if they are not NULL
-     // caller must deref to get adoption
-diff --git a/deps/icu-small/source/i18n/unicode/regex.h b/deps/icu-small/source/i18n/unicode/regex.h
-index f8e32922f4..39b97441a4 100644
---- a/deps/icu-small/source/i18n/unicode/regex.h
-+++ b/deps/icu-small/source/i18n/unicode/regex.h
-@@ -22,7 +22,7 @@
- 
- /**
-  * \file
-- * \brief  C++ API:  Regular Expressions
-+ * \brief C++ API: Regular Expressions
-  *
-  * The ICU API for processing regular expressions consists of two classes,
-  *  `RegexPattern` and `RegexMatcher`.
-@@ -361,7 +361,7 @@ private:
-      *
-      */
-     RegexMatcher *matcher(const char16_t *input,
--        UErrorCode          &status) const;
-+        UErrorCode          &status) const = delete;
- public:
- 
- 
-@@ -749,7 +749,7 @@ private:
-      * `utext_openUChars(UText *ut, const char16_t *text, int64_t textLength, UErrorCode *status);`
-      */
-     RegexMatcher(const UnicodeString ®exp, const char16_t *input,
--        uint32_t flags, UErrorCode &status);
-+        uint32_t flags, UErrorCode &status) = delete;
- public:
- 
- 
-@@ -1157,7 +1157,7 @@ private:
-      * `utext_openUChars(UText *ut, const char16_t *text, int64_t textLength, UErrorCode *status);`
-      *
-      */
--    RegexMatcher &reset(const char16_t *input);
-+    RegexMatcher &reset(const char16_t *input) = delete;
- public:
- 
-    /**
-@@ -1751,10 +1751,10 @@ public:
- private:
-     // Constructors and other object boilerplate are private.
-     // Instances of RegexMatcher can not be assigned, copied, cloned, etc.
--    RegexMatcher();                  // default constructor not implemented
-+    RegexMatcher() = delete;                  // default constructor not implemented
-     RegexMatcher(const RegexPattern *pat);
--    RegexMatcher(const RegexMatcher &other);
--    RegexMatcher &operator =(const RegexMatcher &rhs);
-+    RegexMatcher(const RegexMatcher &other) = delete;
-+    RegexMatcher &operator =(const RegexMatcher &rhs) = delete;
-     void init(UErrorCode &status);                      // Common initialization
-     void init2(UText *t, UErrorCode &e);  // Common initialization, part 2.
- 
-diff --git a/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h b/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h
-index aa7e80543e..a1dd543638 100644
---- a/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h
-+++ b/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h
-@@ -196,7 +196,7 @@ public:
-             UErrorCode &status);
- 
-     ScientificNumberFormatter(const ScientificNumberFormatter &other);
--    ScientificNumberFormatter &operator=(const ScientificNumberFormatter &);
-+    ScientificNumberFormatter &operator=(const ScientificNumberFormatter &) = delete;
- 
-     static void getPreExponent(
-             const DecimalFormatSymbols &dfs, UnicodeString &preExponent);
-diff --git a/deps/icu-small/source/i18n/unicode/selfmt.h b/deps/icu-small/source/i18n/unicode/selfmt.h
-index bdce00e593..1802380312 100644
---- a/deps/icu-small/source/i18n/unicode/selfmt.h
-+++ b/deps/icu-small/source/i18n/unicode/selfmt.h
-@@ -348,7 +348,7 @@ public:
- private:
-     friend class MessageFormat;
- 
--    SelectFormat();   // default constructor not implemented.
-+    SelectFormat() = delete;   // default constructor not implemented.
- 
-     /**
-      * Finds the SelectFormat sub-message for the given keyword, or the "other" sub-message.
-diff --git a/deps/icu-small/source/i18n/unicode/simpletz.h b/deps/icu-small/source/i18n/unicode/simpletz.h
-index f73d823ee5..cbdba7aff6 100644
---- a/deps/icu-small/source/i18n/unicode/simpletz.h
-+++ b/deps/icu-small/source/i18n/unicode/simpletz.h
-@@ -800,7 +800,7 @@ private:
-         DOW_LE_DOM_MODE
-     };
- 
--    SimpleTimeZone(); // default constructor not implemented
-+    SimpleTimeZone() = delete; // default constructor not implemented
- 
-     /**
-      * Internal construction method.
-diff --git a/deps/icu-small/source/i18n/unicode/smpdtfmt.h b/deps/icu-small/source/i18n/unicode/smpdtfmt.h
-index 733a1cff13..fb83f90da1 100644
---- a/deps/icu-small/source/i18n/unicode/smpdtfmt.h
-+++ b/deps/icu-small/source/i18n/unicode/smpdtfmt.h
-@@ -1226,7 +1226,7 @@ private:
- 
-     void initializeBooleanAttributes(void);
- 
--    SimpleDateFormat(); // default constructor not implemented
-+    SimpleDateFormat() = delete; // default constructor not implemented
- 
-     /**
-      * Used by the DateFormat factory methods to construct a SimpleDateFormat.
-@@ -1359,6 +1359,22 @@ private:
-                         const UnicodeString* stringArray, int32_t stringArrayCount,
-                         const UnicodeString* monthPattern, Calendar& cal) const;
- 
-+    /**
-+     * Private code-size reduction function used by subParse. Only for UCAL_MONTH
-+     * @param text the time text being parsed.
-+     * @param start where to start parsing.
-+     * @param wideStringArray the wide string array to parsed.
-+     * @param shortStringArray the short string array to parsed.
-+     * @param stringArrayCount the size of the string arrays.
-+     * @param cal a Calendar set to the date and time to be formatted
-+     *            into a date/time string.
-+     * @return the new start position if matching succeeded; a negative number
-+     * indicating matching failure, otherwise.
-+     */
-+    int32_t matchAlphaMonthStrings(const UnicodeString& text, int32_t start,
-+                        const UnicodeString* wideStringArray, const UnicodeString* shortStringArray,
-+                        int32_t stringArrayCount, Calendar& cal) const;
-+
-     /**
-      * Private code-size reduction function used by subParse.
-      * @param text the time text being parsed.
-diff --git a/deps/icu-small/source/i18n/unicode/stsearch.h b/deps/icu-small/source/i18n/unicode/stsearch.h
-index c23e651d89..b8a919f614 100644
---- a/deps/icu-small/source/i18n/unicode/stsearch.h
-+++ b/deps/icu-small/source/i18n/unicode/stsearch.h
-@@ -482,7 +482,7 @@ protected:
-     virtual int32_t handlePrev(int32_t position, UErrorCode &status) override;
-     
- private :
--    StringSearch(); // default constructor not implemented
-+    StringSearch() = delete; // default constructor not implemented
- 
-     // private data members ----------------------------------------------
- 
-diff --git a/deps/icu-small/source/i18n/unicode/tzrule.h b/deps/icu-small/source/i18n/unicode/tzrule.h
-index ab0b97b6fd..9ec1e96179 100644
---- a/deps/icu-small/source/i18n/unicode/tzrule.h
-+++ b/deps/icu-small/source/i18n/unicode/tzrule.h
-@@ -258,20 +258,6 @@ public:
-      */
-     virtual bool operator!=(const TimeZoneRule& that) const override;
- 
--    /**
--     * Gets the time when this rule takes effect in the given year.
--     * @param year              The Gregorian year, with 0 == 1 BCE, -1 == 2 BCE, etc.
--     * @param prevRawOffset     The standard time offset from UTC before this rule
--     *                          takes effect in milliseconds.
--     * @param prevDSTSavings    The amount of daylight saving offset from the
--     *                          standard time.
--     * @param result            Receives the start time in the year.
--     * @return  true if this rule takes effect in the year and the result is set to
--     *          "result".
--     * @stable ICU 3.8
--     */
--    UBool getStartInYear(int32_t year, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
--
-     /**
-      * Returns if this rule represents the same rule and offsets as another.
-      * When two TimeZoneRule objects differ only its names, this method
-diff --git a/deps/icu-small/source/i18n/unicode/udat.h b/deps/icu-small/source/i18n/unicode/udat.h
-index 0e6e6b76da..3823dc88c4 100644
---- a/deps/icu-small/source/i18n/unicode/udat.h
-+++ b/deps/icu-small/source/i18n/unicode/udat.h
-@@ -1532,19 +1532,17 @@ typedef enum UDateFormatSymbolType {
-      */
-     UDAT_ZODIAC_NAMES_NARROW,
-     
--#ifndef U_HIDE_DRAFT_API
-     /**
-      * The narrow quarter names, for example 1
--     * @draft ICU 70
-+     * @stable ICU 70
-      */
-     UDAT_NARROW_QUARTERS,
-     
-     /**
-      * The narrow standalone quarter names, for example 1
--     * @draft ICU 70
-+     * @stable ICU 70
-      */
-     UDAT_STANDALONE_NARROW_QUARTERS
--#endif // U_HIDE_DRAFT_API
- } UDateFormatSymbolType;
- 
- struct UDateFormatSymbols;
-diff --git a/deps/icu-small/source/i18n/unicode/udisplayoptions.h b/deps/icu-small/source/i18n/unicode/udisplayoptions.h
-new file mode 100644
-index 0000000000..1ecdf1d8e9
---- /dev/null
-+++ b/deps/icu-small/source/i18n/unicode/udisplayoptions.h
-@@ -0,0 +1,325 @@
-+// © 2022 and later: Unicode, Inc. and others.
-+// License & terms of use: http://www.unicode.org/copyright.html
-+
-+#ifndef __UDISPLAYOPTIONS_H__
-+#define __UDISPLAYOPTIONS_H__
-+
-+#include "unicode/utypes.h"
-+
-+#if !UCONFIG_NO_FORMATTING
-+
-+/**
-+ * \file
-+ * \brief C API: Display options (enum types, values, helper functions)
-+ *
-+ * These display options are designed to be used in class DisplayOptions
-+ * as a more modern version of the UDisplayContext mechanism.
-+ */
-+
-+#include "unicode/uversion.h"
-+
-+#ifndef U_HIDE_DRAFT_API
-+
-+/**
-+ * Represents all the grammatical cases that are supported by CLDR.
-+ *
-+ * @draft ICU 72
-+ */
-+typedef enum UDisplayOptionsGrammaticalCase {
-+    /**
-+     * A possible setting for GrammaticalCase.
-+     * The grammatical case context to be used is unknown (this is the default value).
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_GRAMMATICAL_CASE_UNDEFINED = 0,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_ABLATIVE = 1,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE = 2,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_COMITATIVE = 3,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_DATIVE = 4,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_ERGATIVE = 5,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_GENITIVE = 6,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL = 7,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_LOCATIVE = 8,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE = 9,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE = 10,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_OBLIQUE = 11,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL = 12,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE = 13,
-+    /** @draft ICU 72 */
-+    UDISPOPT_GRAMMATICAL_CASE_VOCATIVE = 14,
-+} UDisplayOptionsGrammaticalCase;
-+
-+/**
-+ * @param grammaticalCase The grammatical case.
-+ * @return the lowercase CLDR keyword string for the grammatical case.
-+ *
-+ * @draft ICU 72
-+ */
-+U_CAPI const char * U_EXPORT2
-+udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase grammaticalCase);
-+
-+/**
-+ * @param identifier in lower case such as "dative" or "nominative"
-+ * @return the plural category corresponding to the identifier, or `UDISPOPT_GRAMMATICAL_CASE_UNDEFINED`
-+ *
-+ * @draft ICU 72
-+ */
-+U_CAPI UDisplayOptionsGrammaticalCase U_EXPORT2
-+udispopt_fromGrammaticalCaseIdentifier(const char *identifier);
-+
-+/**
-+ * Standard CLDR plural form/category constants.
-+ * See https://www.unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules
-+ *
-+ * @draft ICU 72
-+ */
-+typedef enum UDisplayOptionsPluralCategory {
-+
-+    /**
-+     * A possible setting for PluralCategory.
-+     * The plural category case context to be used is unknown (this is the default value).
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_PLURAL_CATEGORY_UNDEFINED = 0,
-+    /** @draft ICU 72 */
-+    UDISPOPT_PLURAL_CATEGORY_ZERO = 1,
-+    /** @draft ICU 72 */
-+    UDISPOPT_PLURAL_CATEGORY_ONE = 2,
-+    /** @draft ICU 72 */
-+    UDISPOPT_PLURAL_CATEGORY_TWO = 3,
-+    /** @draft ICU 72 */
-+    UDISPOPT_PLURAL_CATEGORY_FEW = 4,
-+    /** @draft ICU 72 */
-+    UDISPOPT_PLURAL_CATEGORY_MANY = 5,
-+    /** @draft ICU 72 */
-+    UDISPOPT_PLURAL_CATEGORY_OTHER = 6,
-+} UDisplayOptionsPluralCategory;
-+
-+/**
-+ * @param pluralCategory The plural category.
-+ * @return the lowercase CLDR identifier string for the plural category.
-+ *
-+ * @draft ICU 72
-+ */
-+U_CAPI const char * U_EXPORT2
-+udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory pluralCategory);
-+
-+/**
-+ * @param identifier for example "few" or "other"
-+ * @return the plural category corresponding to the identifier (plural keyword),
-+ *         or `UDISPOPT_PLURAL_CATEGORY_UNDEFINED`
-+ *
-+ * @draft ICU 72
-+ */
-+U_CAPI UDisplayOptionsPluralCategory U_EXPORT2
-+udispopt_fromPluralCategoryIdentifier(const char *identifier);
-+
-+/**
-+ * Represents all the grammatical noun classes that are supported by CLDR.
-+ *
-+ * @draft ICU 72.
-+ */
-+typedef enum UDisplayOptionsNounClass {
-+    /**
-+     * A possible setting for NounClass.
-+     * The noun class case context to be used is unknown (this is the default value).
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_NOUN_CLASS_UNDEFINED = 0,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_OTHER = 1,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_NEUTER = 2,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_FEMININE = 3,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_MASCULINE = 4,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_ANIMATE = 5,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_INANIMATE = 6,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_PERSONAL = 7,
-+    /** ICU 72 */
-+    UDISPOPT_NOUN_CLASS_COMMON = 8,
-+} UDisplayOptionsNounClass;
-+
-+/**
-+ * @param nounClass The noun class.
-+ * @return the lowercase CLDR keyword string for the noun class.
-+ *
-+ * @draft ICU 72
-+ */
-+U_CAPI const char * U_EXPORT2
-+udispopt_getNounClassIdentifier(UDisplayOptionsNounClass nounClass);
-+
-+/**
-+ * @param identifier in lower case such as "feminine" or "masculine"
-+ * @return the plural category corresponding to the identifier, or `UDISPOPT_NOUN_CLASS_UNDEFINED`
-+ *
-+ * @draft ICU 72
-+ */
-+U_CAPI UDisplayOptionsNounClass U_EXPORT2
-+udispopt_fromNounClassIdentifier(const char *identifier);
-+
-+/**
-+ * Represents all the capitalization options.
-+ *
-+ * @draft ICU 72
-+ */
-+typedef enum UDisplayOptionsCapitalization {
-+    /**
-+     * A possible setting for Capitalization.
-+     * The capitalization context to be used is unknown (this is the default value).
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_CAPITALIZATION_UNDEFINED = 0,
-+
-+    /**
-+     * The capitalization context if a date, date symbol or display name is to be
-+     * formatted with capitalization appropriate for the beginning of a sentence.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE = 1,
-+
-+    /**
-+     * The capitalization context if a date, date symbol or display name is to be
-+     * formatted with capitalization appropriate for the middle of a sentence.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE = 2,
-+
-+    /**
-+     * The capitalization context if a date, date symbol or display name is to be
-+     * formatted with capitalization appropriate for stand-alone usage such as an
-+     * isolated name on a calendar page.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_CAPITALIZATION_STANDALONE = 3,
-+
-+    /**
-+     * The capitalization context if a date, date symbol or display name is to be
-+     * formatted with capitalization appropriate for a user-interface list or menu item.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU = 4,
-+} UDisplayOptionsCapitalization;
-+
-+/**
-+ * Represents all the dialect handlings.
-+ *
-+ * @draft ICU 72
-+ */
-+typedef enum UDisplayOptionsNameStyle {
-+    /**
-+     * A possible setting for NameStyle.
-+     * The NameStyle context to be used is unknown (this is the default value).
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_NAME_STYLE_UNDEFINED = 0,
-+
-+    /**
-+     * Use standard names when generating a locale name,
-+     * e.g. en_GB displays as 'English (United Kingdom)'.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_NAME_STYLE_STANDARD_NAMES = 1,
-+
-+    /**
-+     * Use dialect names, when generating a locale name,
-+     * e.g. en_GB displays as 'British English'.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_NAME_STYLE_DIALECT_NAMES = 2,
-+} UDisplayOptionsNameStyle;
-+
-+/**
-+ * Represents all the display lengths.
-+ *
-+ * @draft ICU 72
-+ */
-+typedef enum UDisplayOptionsDisplayLength {
-+    /**
-+     * A possible setting for DisplayLength.
-+     * The DisplayLength context to be used is unknown (this is the default value).
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_DISPLAY_LENGTH_UNDEFINED = 0,
-+
-+    /**
-+     * Uses full names when generating a locale name,
-+     * e.g. "United States" for US.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_DISPLAY_LENGTH_FULL = 1,
-+
-+    /**
-+     * Use short names when generating a locale name,
-+     * e.g. "U.S." for US.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_DISPLAY_LENGTH_SHORT = 2,
-+} UDisplayOptionsDisplayLength;
-+
-+/**
-+ * Represents all the substitute handling.
-+ *
-+ * @draft ICU 72
-+ */
-+typedef enum UDisplayOptionsSubstituteHandling {
-+
-+    /**
-+     * A possible setting for SubstituteHandling.
-+     * The SubstituteHandling context to be used is unknown (this is the default value).
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED = 0,
-+
-+    /**
-+     * Returns a fallback value (e.g., the input code) when no data is available.
-+     * This is the default behaviour.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE = 1,
-+
-+    /**
-+     * Returns a null value when no data is available.
-+     *
-+     * @draft ICU 72
-+     */
-+    UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE = 2,
-+} UDisplayOptionsSubstituteHandling;
-+
-+#endif // U_HIDE_DRAFT_API
-+
-+#endif /* #if !UCONFIG_NO_FORMATTING */
-+
-+#endif // __UDISPLAYOPTIONS_H__
-diff --git a/deps/icu-small/source/i18n/unicode/uformattedvalue.h b/deps/icu-small/source/i18n/unicode/uformattedvalue.h
-index 1a550e8758..af6d18f3bc 100644
---- a/deps/icu-small/source/i18n/unicode/uformattedvalue.h
-+++ b/deps/icu-small/source/i18n/unicode/uformattedvalue.h
-@@ -93,14 +93,12 @@ typedef enum UFieldCategory {
-      */
-     UFIELD_CATEGORY_DATE_INTERVAL_SPAN = 0x1000 + UFIELD_CATEGORY_DATE_INTERVAL,
- 
--#ifndef U_HIDE_DRAFT_API
-     /**
-      * Category for spans in a number range.
-      *
--     * @draft ICU 69
-+     * @stable ICU 69
-      */
-     UFIELD_CATEGORY_NUMBER_RANGE_SPAN = 0x1000 + UFIELD_CATEGORY_NUMBER,
--#endif // U_HIDE_DRAFT_API
- 
- } UFieldCategory;
- 
-diff --git a/deps/icu-small/source/i18n/unicode/unounclass.h b/deps/icu-small/source/i18n/unicode/unounclass.h
-deleted file mode 100644
-index 1721dbd584..0000000000
---- a/deps/icu-small/source/i18n/unicode/unounclass.h
-+++ /dev/null
-@@ -1,43 +0,0 @@
--// © 2022 and later: Unicode, Inc. and others.
--// License & terms of use: http://www.unicode.org/copyright.html
--
--#ifndef __UNOUNCLASS_H__
--#define __UNOUNCLASS_H__
--
--#include "unicode/utypes.h"
--
--#if U_SHOW_CPLUSPLUS_API
--
--#if !UCONFIG_NO_FORMATTING
--
--#include "unicode/uversion.h"
--
--U_NAMESPACE_BEGIN
--
--#ifndef U_HIDE_DRAFT_API
--
--/**
-- * Represents all the grammatical noun classes that are supported by CLDR.
-- *
-- * @draft ICU 71.
-- */
--enum NounClass {
--    OTHER = 0,
--    NEUTER = 1,
--    FEMININE = 2,
--    MASCULINE = 3,
--    ANIMATE = 4,
--    INANIMATE = 5,
--    PERSONAL = 6,
--    COMMON = 7,
--};
--
--#endif // U_HIDE_DRAFT_API
--
--U_NAMESPACE_END
--
--#endif /* #if !UCONFIG_NO_FORMATTING */
--
--#endif /* U_SHOW_CPLUSPLUS_API */
--
--#endif // __UNOUNCLASS_H__
-diff --git a/deps/icu-small/source/i18n/unicode/unum.h b/deps/icu-small/source/i18n/unicode/unum.h
-index 863695591a..a392afaaed 100644
---- a/deps/icu-small/source/i18n/unicode/unum.h
-+++ b/deps/icu-small/source/i18n/unicode/unum.h
-@@ -1161,6 +1161,26 @@ typedef enum UNumberFormatAttribute {
- 
- } UNumberFormatAttribute;
- 
-+#ifndef U_HIDE_DRAFT_API
-+/**
-+* Returns true if the formatter supports the specified attribute and false if not.
-+* @param fmt The formatter to query.
-+* @param attr The attribute to query.  This can be any value of UNumberFormatterAttribute,
-+* regardless of type.
-+* @return True if the requested attribute is supported by the formatter; false if not.
-+* @see unum_getAttribute
-+* @see unum_setAttribute
-+* @see unum_getDoubleAttribute
-+* @see unum_setDoubleAttribute
-+* @see unum_getTextAttribute
-+* @see unum_setTextAttribute
-+* @draft ICU 72
-+*/
-+U_CAPI bool U_EXPORT2
-+unum_hasAttribute(const UNumberFormat*          fmt,
-+          UNumberFormatAttribute  attr);
-+#endif // U_HIDE_DRAFT_API
-+
- /**
- * Get a numeric attribute associated with a UNumberFormat.
- * An example of a numeric attribute is the number of integer digits a formatter will produce.
-@@ -1170,12 +1190,12 @@ typedef enum UNumberFormatAttribute {
- * UNUM_MAX_FRACTION_DIGITS, UNUM_MIN_FRACTION_DIGITS, UNUM_FRACTION_DIGITS, UNUM_MULTIPLIER,
- * UNUM_GROUPING_SIZE, UNUM_ROUNDING_MODE, UNUM_FORMAT_WIDTH, UNUM_PADDING_POSITION, UNUM_SECONDARY_GROUPING_SIZE,
- * UNUM_SCALE, UNUM_MINIMUM_GROUPING_DIGITS.
--* @return The value of attr.
-+* @return The value of attr, or -1 if the formatter doesn't have the requested attribute.  The caller should use unum_hasAttribute() to tell if the attribute
-+* is available, rather than relaying on this function returning -1.
-+* @see unum_hasAttribute
- * @see unum_setAttribute
- * @see unum_getDoubleAttribute
- * @see unum_setDoubleAttribute
--* @see unum_getTextAttribute
--* @see unum_setTextAttribute
- * @stable ICU 2.0
- */
- U_CAPI int32_t U_EXPORT2 
-@@ -1186,7 +1206,7 @@ unum_getAttribute(const UNumberFormat*          fmt,
- * Set a numeric attribute associated with a UNumberFormat.
- * An example of a numeric attribute is the number of integer digits a formatter will produce.  If the
- * formatter does not understand the attribute, the call is ignored.  Rule-based formatters only understand
--* the lenient-parse attribute.
-+* the lenient-parse attribute.  The caller can use unum_hasAttribute() to find out if the formatter supports the attribute.
- * @param fmt The formatter to set.
- * @param attr The attribute to set; one of UNUM_PARSE_INT_ONLY, UNUM_GROUPING_USED,
- * UNUM_DECIMAL_ALWAYS_SHOWN, UNUM_MAX_INTEGER_DIGITS, UNUM_MIN_INTEGER_DIGITS, UNUM_INTEGER_DIGITS,
-@@ -1194,6 +1214,7 @@ unum_getAttribute(const UNumberFormat*          fmt,
- * UNUM_GROUPING_SIZE, UNUM_ROUNDING_MODE, UNUM_FORMAT_WIDTH, UNUM_PADDING_POSITION, UNUM_SECONDARY_GROUPING_SIZE,
- * UNUM_LENIENT_PARSE, UNUM_SCALE, UNUM_MINIMUM_GROUPING_DIGITS.
- * @param newValue The new value of attr.
-+* @see unum_hasAttribute
- * @see unum_getAttribute
- * @see unum_getDoubleAttribute
- * @see unum_setDoubleAttribute
-@@ -1210,10 +1231,12 @@ unum_setAttribute(    UNumberFormat*          fmt,
- /**
- * Get a numeric attribute associated with a UNumberFormat.
- * An example of a numeric attribute is the number of integer digits a formatter will produce.
--* If the formatter does not understand the attribute, -1 is returned.
-+* If the formatter does not understand the attribute, -1 is returned.  The caller should use unum_hasAttribute()
-+* to determine if the attribute is supported, rather than relying on this function returning -1.
- * @param fmt The formatter to query.
- * @param attr The attribute to query; e.g. UNUM_ROUNDING_INCREMENT.
--* @return The value of attr.
-+* @return The value of attr, or -1 if the formatter doesn't understand the attribute.
-+* @see unum_hasAttribute
- * @see unum_getAttribute
- * @see unum_setAttribute
- * @see unum_setDoubleAttribute
-@@ -1228,10 +1251,12 @@ unum_getDoubleAttribute(const UNumberFormat*          fmt,
- /**
- * Set a numeric attribute associated with a UNumberFormat.
- * An example of a numeric attribute is the number of integer digits a formatter will produce.
--* If the formatter does not understand the attribute, this call is ignored.
-+* If the formatter does not understand the attribute, this call is ignored.  The caller can use
-+* unum_hasAttribute() to tell in advance whether the formatter understands the attribute.
- * @param fmt The formatter to set.
- * @param attr The attribute to set; e.g. UNUM_ROUNDING_INCREMENT.
- * @param newValue The new value of attr.
-+* @see unum_hasAttribute
- * @see unum_getAttribute
- * @see unum_setAttribute
- * @see unum_getDoubleAttribute
-diff --git a/deps/icu-small/source/i18n/unicode/unumberformatter.h b/deps/icu-small/source/i18n/unicode/unumberformatter.h
-index 58a75baf07..253b30b534 100644
---- a/deps/icu-small/source/i18n/unicode/unumberformatter.h
-+++ b/deps/icu-small/source/i18n/unicode/unumberformatter.h
-@@ -16,7 +16,7 @@
- 
- /**
-  * \file
-- * \brief C-compatible API for localized number formatting; not recommended for C++.
-+ * \brief C API: Localized number formatting; not recommended for C++.
-  *
-  * This is the C-compatible version of the NumberFormatter API introduced in ICU 60. C++ users should
-  * include unicode/numberformatter.h and use the proper C++ APIs.
-diff --git a/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h b/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h
-index 4e92fe29e2..106942f25a 100644
---- a/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h
-+++ b/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h
-@@ -17,7 +17,7 @@
- 
- /**
-  * \file
-- * \brief C-compatible API for localized number range formatting.
-+ * \brief C API: Localized number range formatting
-  *
-  * This is the C-compatible version of the NumberRangeFormatter API. C++ users
-  * should include unicode/numberrangeformatter.h and use the proper C++ APIs.
-diff --git a/deps/icu-small/source/i18n/unicode/uspoof.h b/deps/icu-small/source/i18n/unicode/uspoof.h
-index b674c91b2c..0aa887b706 100644
---- a/deps/icu-small/source/i18n/unicode/uspoof.h
-+++ b/deps/icu-small/source/i18n/unicode/uspoof.h
-@@ -35,7 +35,7 @@
- 
- /**
-  * \file
-- * \brief Unicode Security and Spoofing Detection, C API.
-+ * \brief C API: Unicode Security and Spoofing Detection
-  *
-  * 

- * This class, based on Unicode Technical Report #36 and -diff --git a/deps/icu-small/source/i18n/unicode/vtzone.h b/deps/icu-small/source/i18n/unicode/vtzone.h -index ecf335bbe3..487810dd5a 100644 ---- a/deps/icu-small/source/i18n/unicode/vtzone.h -+++ b/deps/icu-small/source/i18n/unicode/vtzone.h -@@ -382,7 +382,6 @@ private: - * Default constructor. - */ - VTimeZone(); -- static VTimeZone* createVTimeZone(VTZReader* reader); - void write(VTZWriter& writer, UErrorCode& status) const; - void write(UDate start, VTZWriter& writer, UErrorCode& status) const; - void writeSimple(UDate time, VTZWriter& writer, UErrorCode& status) const; -diff --git a/deps/icu-small/source/i18n/units_complexconverter.cpp b/deps/icu-small/source/i18n/units_complexconverter.cpp -index ecbe3c7879..8c9c334f7e 100644 ---- a/deps/icu-small/source/i18n/units_complexconverter.cpp -+++ b/deps/icu-small/source/i18n/units_complexconverter.cpp -@@ -143,7 +143,7 @@ MaybeStackVector ComplexUnitsConverter::convert(double quantity, - // TODO: return an error for "foot-and-foot"? - MaybeStackVector result; - int sign = 1; -- if (quantity < 0) { -+ if (quantity < 0 && unitsConverters_.length() > 1) { - quantity *= -1; - sign = -1; - } -diff --git a/deps/icu-small/source/i18n/units_converter.cpp b/deps/icu-small/source/i18n/units_converter.cpp -index 82b8eea3d8..b89f495121 100644 ---- a/deps/icu-small/source/i18n/units_converter.cpp -+++ b/deps/icu-small/source/i18n/units_converter.cpp -@@ -389,8 +389,14 @@ void U_I18N_API addSingleFactorConstant(StringPiece baseStr, int32_t power, Sign - factor.constantExponents[CONSTANT_GLUCOSE_MOLAR_MASS] += power * signum; - } else if (baseStr == "item_per_mole") { - factor.constantExponents[CONSTANT_ITEM_PER_MOLE] += power * signum; -+ } else if (baseStr == "meters_per_AU") { -+ factor.constantExponents[CONSTANT_METERS_PER_AU] += power * signum; - } else if (baseStr == "PI") { - factor.constantExponents[CONSTANT_PI] += power * signum; -+ } else if (baseStr == "sec_per_julian_year") { -+ factor.constantExponents[CONSTANT_SEC_PER_JULIAN_YEAR] += power * signum; -+ } else if (baseStr == "speed_of_light_meters_per_second") { -+ factor.constantExponents[CONSTANT_SPEED_OF_LIGHT_METERS_PER_SECOND] += power * signum; - } else { - if (signum == Signum::NEGATIVE) { - factor.factorDen *= std::pow(strToDouble(baseStr, status), power); -diff --git a/deps/icu-small/source/i18n/units_converter.h b/deps/icu-small/source/i18n/units_converter.h -index 5c002f4147..fd1d6ec422 100644 ---- a/deps/icu-small/source/i18n/units_converter.h -+++ b/deps/icu-small/source/i18n/units_converter.h -@@ -30,6 +30,9 @@ enum Constants { - CONSTANT_LB2KG, // Pound to Kilogram - CONSTANT_GLUCOSE_MOLAR_MASS, - CONSTANT_ITEM_PER_MOLE, -+ CONSTANT_METERS_PER_AU, -+ CONSTANT_SEC_PER_JULIAN_YEAR, -+ CONSTANT_SPEED_OF_LIGHT_METERS_PER_SECOND, - - // Must be the last element. - CONSTANTS_COUNT -@@ -49,6 +52,9 @@ static const double constantsValues[CONSTANTS_COUNT] = { - 0.45359237, // CONSTANT_LB2KG - 180.1557, // CONSTANT_GLUCOSE_MOLAR_MASS - 6.02214076E+23, // CONSTANT_ITEM_PER_MOLE -+ 149597870700, // CONSTANT_METERS_PER_AU -+ 31557600, // CONSTANT_SEC_PER_JULIAN_YEAR -+ 299792458, // CONSTANT_SPEED_OF_LIGHT_METERS_PER_SECOND - }; - - typedef enum Signum { -diff --git a/deps/icu-small/source/i18n/units_data.cpp b/deps/icu-small/source/i18n/units_data.cpp -index d1d1fc5bc0..1456af4d05 100644 ---- a/deps/icu-small/source/i18n/units_data.cpp -+++ b/deps/icu-small/source/i18n/units_data.cpp -@@ -5,10 +5,12 @@ - - #if !UCONFIG_NO_FORMATTING - -+#include "bytesinkutil.h" - #include "cstring.h" - #include "number_decimalquantity.h" - #include "resource.h" - #include "uassert.h" -+#include "unicode/locid.h" - #include "unicode/unistr.h" - #include "unicode/ures.h" - #include "units_data.h" -@@ -387,24 +389,97 @@ U_I18N_API UnitPreferences::UnitPreferences(UErrorCode &status) { - ures_getAllItemsWithFallback(unitsBundle.getAlias(), "unitPreferenceData", sink, status); - } - --// TODO: make outPreferences const? --// --// TODO: consider replacing `UnitPreference **&outPreferences` with slice class --// of some kind. --void U_I18N_API UnitPreferences::getPreferencesFor(StringPiece category, StringPiece usage, -- StringPiece region, -- const UnitPreference *const *&outPreferences, -- int32_t &preferenceCount, UErrorCode &status) const { -- int32_t idx = getPreferenceMetadataIndex(&metadata_, category, usage, region, status); -+CharString getKeyWordValue(const Locale &locale, StringPiece kw, UErrorCode &status) { -+ CharString result; -+ if (U_FAILURE(status)) { return result; } -+ { -+ CharStringByteSink sink(&result); -+ locale.getKeywordValue(kw, sink, status); -+ } -+ if (U_SUCCESS(status) && result.isEmpty()) { -+ status = U_MISSING_RESOURCE_ERROR; -+ } -+ return result; -+} -+ -+MaybeStackVector -+ U_I18N_API UnitPreferences::getPreferencesFor(StringPiece category, StringPiece usage, -+ const Locale &locale, UErrorCode &status) const { -+ -+ MaybeStackVector result; -+ -+ // TODO: remove this once all the categories are allowed. -+ UErrorCode internalMuStatus = U_ZERO_ERROR; -+ if (category.compare("temperature") == 0) { -+ CharString localeUnitCharString = getKeyWordValue(locale, "mu", internalMuStatus); -+ if (U_SUCCESS(internalMuStatus)) { -+ // TODO: use the unit category as Java especially when all the categories are allowed.. -+ if (localeUnitCharString == "celsius" // -+ || localeUnitCharString == "fahrenheit" // -+ || localeUnitCharString == "kelvin" // -+ ) { -+ UnitPreference unitPref; -+ unitPref.unit.append(localeUnitCharString, status); -+ result.emplaceBackAndCheckErrorCode(status, unitPref); -+ return result; -+ } -+ } -+ } -+ -+ CharString region(locale.getCountry(), status); -+ -+ // Check the locale system tag, e.g `ms=metric`. -+ UErrorCode internalMeasureTagStatus = U_ZERO_ERROR; -+ CharString localeSystem = getKeyWordValue(locale, "measure", internalMeasureTagStatus); -+ bool isLocaleSystem = false; -+ if (U_SUCCESS(internalMeasureTagStatus)) { -+ if (localeSystem == "metric") { -+ region.clear(); -+ region.append("001", status); -+ isLocaleSystem = true; -+ } else if (localeSystem == "ussystem") { -+ region.clear(); -+ region.append("US", status); -+ isLocaleSystem = true; -+ } else if (localeSystem == "uksystem") { -+ region.clear(); -+ region.append("GB", status); -+ isLocaleSystem = true; -+ } -+ } -+ -+ // Check the region tag, e.g. `rg=uszzz`. -+ if (!isLocaleSystem) { -+ UErrorCode internalRgTagStatus = U_ZERO_ERROR; -+ CharString localeRegion = getKeyWordValue(locale, "rg", internalRgTagStatus); -+ if (U_SUCCESS(internalRgTagStatus) && localeRegion.length() >= 3) { -+ if (localeRegion == "default") { -+ region.clear(); -+ region.append(localeRegion, status); -+ } else if (localeRegion[0] >= '0' && localeRegion[0] <= '9') { -+ region.clear(); -+ region.append(localeRegion.data(), 3, status); -+ } else { -+ // Take the first two character and capitalize them. -+ region.clear(); -+ region.append(uprv_toupper(localeRegion[0]), status); -+ region.append(uprv_toupper(localeRegion[1]), status); -+ } -+ } -+ } -+ -+ int32_t idx = -+ getPreferenceMetadataIndex(&metadata_, category, usage, region.toStringPiece(), status); - if (U_FAILURE(status)) { -- outPreferences = nullptr; -- preferenceCount = 0; -- return; -+ return result; - } -+ - U_ASSERT(idx >= 0); // Failures should have been taken care of by `status`. - const UnitPreferenceMetadata *m = metadata_[idx]; -- outPreferences = unitPrefs_.getAlias() + m->prefsOffset; -- preferenceCount = m->prefsCount; -+ for (int32_t i = 0; i < m->prefsCount; i++) { -+ result.emplaceBackAndCheckErrorCode(status, *(unitPrefs_[i + m->prefsOffset])); -+ } -+ return result; - } - - } // namespace units -diff --git a/deps/icu-small/source/i18n/units_data.h b/deps/icu-small/source/i18n/units_data.h -index 2c19b9434b..118458ecca 100644 ---- a/deps/icu-small/source/i18n/units_data.h -+++ b/deps/icu-small/source/i18n/units_data.h -@@ -99,6 +99,13 @@ struct U_I18N_API UnitPreference : public UMemory { - CharString unit; - double geq; - UnicodeString skeleton; -+ -+ UnitPreference(const UnitPreference &other) { -+ UErrorCode status = U_ZERO_ERROR; -+ this->unit.append(other.unit, status); -+ this->geq = other.geq; -+ this->skeleton = other.skeleton; -+ } - }; - - /** -@@ -189,12 +196,11 @@ class U_I18N_API UnitPreferences { - * @param preferenceCount The number of unit preferences that belong to the - * result set. - * @param status Receives status. -- * -- * TODO(hugovdm): maybe replace `UnitPreference **&outPreferences` with a slice class? - */ -- void getPreferencesFor(StringPiece category, StringPiece usage, StringPiece region, -- const UnitPreference *const *&outPreferences, int32_t &preferenceCount, -- UErrorCode &status) const; -+ MaybeStackVector getPreferencesFor(StringPiece category, StringPiece usage, -+ const Locale &locale, -+ -+ UErrorCode &status) const; - - protected: - // Metadata about the sets of preferences, this is the index for looking up -diff --git a/deps/icu-small/source/i18n/units_router.cpp b/deps/icu-small/source/i18n/units_router.cpp -index 0e6082fae5..03c9b4d1d7 100644 ---- a/deps/icu-small/source/i18n/units_router.cpp -+++ b/deps/icu-small/source/i18n/units_router.cpp -@@ -43,17 +43,17 @@ Precision UnitsRouter::parseSkeletonToPrecision(icu::UnicodeString precisionSkel - return result; - } - --UnitsRouter::UnitsRouter(StringPiece inputUnitIdentifier, StringPiece region, StringPiece usage, -+UnitsRouter::UnitsRouter(StringPiece inputUnitIdentifier, const Locale &locale, StringPiece usage, - UErrorCode &status) { -- this->init(MeasureUnit::forIdentifier(inputUnitIdentifier, status), region, usage, status); -+ this->init(MeasureUnit::forIdentifier(inputUnitIdentifier, status), locale, usage, status); - } - --UnitsRouter::UnitsRouter(const MeasureUnit &inputUnit, StringPiece region, StringPiece usage, -+UnitsRouter::UnitsRouter(const MeasureUnit &inputUnit, const Locale &locale, StringPiece usage, - UErrorCode &status) { -- this->init(std::move(inputUnit), region, usage, status); -+ this->init(std::move(inputUnit), locale, usage, status); - } - --void UnitsRouter::init(const MeasureUnit &inputUnit, StringPiece region, StringPiece usage, -+void UnitsRouter::init(const MeasureUnit &inputUnit, const Locale &locale, StringPiece usage, - UErrorCode &status) { - - if (U_FAILURE(status)) { -@@ -73,22 +73,19 @@ void UnitsRouter::init(const MeasureUnit &inputUnit, StringPiece region, StringP - return; - } - -- const UnitPreference *const *unitPreferences; -- int32_t preferencesCount = 0; -- prefs.getPreferencesFor(category.toStringPiece(), usage, region, unitPreferences, preferencesCount, -- status); -- -- for (int i = 0; i < preferencesCount; ++i) { -- U_ASSERT(unitPreferences[i] != nullptr); -- const auto &preference = *unitPreferences[i]; -+ const MaybeStackVector unitPrefs = -+ prefs.getPreferencesFor(category.toStringPiece(), usage, locale, status); -+ for (int32_t i = 0, n = unitPrefs.length(); i < n; ++i) { -+ U_ASSERT(unitPrefs[i] != nullptr); -+ const auto preference = unitPrefs[i]; - - MeasureUnitImpl complexTargetUnitImpl = -- MeasureUnitImpl::forIdentifier(preference.unit.data(), status); -+ MeasureUnitImpl::forIdentifier(preference->unit.data(), status); - if (U_FAILURE(status)) { - return; - } - -- UnicodeString precision = preference.skeleton; -+ UnicodeString precision = preference->skeleton; - - // For now, we only have "precision-increment" in Units Preferences skeleton. - // Therefore, we check if the skeleton starts with "precision-increment" and force the program to -@@ -103,7 +100,7 @@ void UnitsRouter::init(const MeasureUnit &inputUnit, StringPiece region, StringP - outputUnits_.emplaceBackAndCheckErrorCode(status, - complexTargetUnitImpl.copy(status).build(status)); - converterPreferences_.emplaceBackAndCheckErrorCode(status, inputUnitImpl, complexTargetUnitImpl, -- preference.geq, std::move(precision), -+ preference->geq, std::move(precision), - conversionRates, status); - - if (U_FAILURE(status)) { -diff --git a/deps/icu-small/source/i18n/units_router.h b/deps/icu-small/source/i18n/units_router.h -index d9fcffb2aa..978fdf91fd 100644 ---- a/deps/icu-small/source/i18n/units_router.h -+++ b/deps/icu-small/source/i18n/units_router.h -@@ -11,6 +11,7 @@ - - #include "cmemory.h" - #include "measunit_impl.h" -+#include "unicode/locid.h" - #include "unicode/measunit.h" - #include "unicode/stringpiece.h" - #include "unicode/uobject.h" -@@ -118,9 +119,10 @@ namespace units { - */ - class U_I18N_API UnitsRouter { - public: -- UnitsRouter(StringPiece inputUnitIdentifier, StringPiece locale, StringPiece usage, -+ UnitsRouter(StringPiece inputUnitIdentifier, const Locale &locale, StringPiece usage, -+ UErrorCode &status); -+ UnitsRouter(const MeasureUnit &inputUnit, const Locale &locale, StringPiece usage, - UErrorCode &status); -- UnitsRouter(const MeasureUnit &inputUnit, StringPiece locale, StringPiece usage, UErrorCode &status); - - /** - * Performs locale and usage sensitive unit conversion. -@@ -153,7 +155,7 @@ class U_I18N_API UnitsRouter { - static number::Precision parseSkeletonToPrecision(icu::UnicodeString precisionSkeleton, - UErrorCode &status); - -- void init(const MeasureUnit &inputUnit, StringPiece locale, StringPiece usage, UErrorCode &status); -+ void init(const MeasureUnit &inputUnit, const Locale &locale, StringPiece usage, UErrorCode &status); - }; - - } // namespace units -diff --git a/deps/icu-small/source/i18n/unum.cpp b/deps/icu-small/source/i18n/unum.cpp -index 7043f7adc1..d2ba7ae3a2 100644 ---- a/deps/icu-small/source/i18n/unum.cpp -+++ b/deps/icu-small/source/i18n/unum.cpp -@@ -60,6 +60,7 @@ unum_open( UNumberFormatStyle style, - case UNUM_CURRENCY_ACCOUNTING: - case UNUM_CASH_CURRENCY: - case UNUM_CURRENCY_STANDARD: -+ case UNUM_NUMBERING_SYSTEM: - retVal = NumberFormat::createInstance(Locale(locale), style, *status); - break; - -@@ -112,10 +113,6 @@ unum_open( UNumberFormatStyle style, - case UNUM_DURATION: - retVal = new RuleBasedNumberFormat(URBNF_DURATION, Locale(locale), *status); - break; -- -- case UNUM_NUMBERING_SYSTEM: -- retVal = new RuleBasedNumberFormat(URBNF_NUMBERING_SYSTEM, Locale(locale), *status); -- break; - #endif - - case UNUM_DECIMAL_COMPACT_SHORT: -@@ -508,6 +505,28 @@ unum_countAvailable() - return uloc_countAvailable(); - } - -+U_CAPI bool U_EXPORT2 -+unum_hasAttribute(const UNumberFormat* fmt, -+ UNumberFormatAttribute attr) -+{ -+ const NumberFormat* nf = reinterpret_cast(fmt); -+ bool isDecimalFormat = dynamic_cast(nf) != NULL; -+ -+ switch (attr) { -+ case UNUM_LENIENT_PARSE: -+ case UNUM_MAX_INTEGER_DIGITS: -+ case UNUM_MIN_INTEGER_DIGITS: -+ case UNUM_INTEGER_DIGITS: -+ case UNUM_MAX_FRACTION_DIGITS: -+ case UNUM_MIN_FRACTION_DIGITS: -+ case UNUM_FRACTION_DIGITS: -+ case UNUM_ROUNDING_MODE: -+ return true; -+ default: -+ return isDecimalFormat; -+ } -+} -+ - U_CAPI int32_t U_EXPORT2 - unum_getAttribute(const UNumberFormat* fmt, - UNumberFormatAttribute attr) -diff --git a/deps/icu-small/source/i18n/uregex.cpp b/deps/icu-small/source/i18n/uregex.cpp -index 514159e8b7..dd2ad2a81e 100644 ---- a/deps/icu-small/source/i18n/uregex.cpp -+++ b/deps/icu-small/source/i18n/uregex.cpp -@@ -58,7 +58,7 @@ RegularExpression::RegularExpression() { - fMatcher = NULL; - fText = NULL; - fTextLength = 0; -- fOwnsText = FALSE; -+ fOwnsText = false; - } - - RegularExpression::~RegularExpression() { -@@ -82,22 +82,22 @@ U_NAMESPACE_USE - //---------------------------------------------------------------------------------------- - // - // validateRE Do boilerplate style checks on API function parameters. --// Return TRUE if they look OK. -+// Return true if they look OK. - //---------------------------------------------------------------------------------------- - static UBool validateRE(const RegularExpression *re, UBool requiresText, UErrorCode *status) { - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - if (re == NULL || re->fMagic != REXP_MAGIC) { - *status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - // !!! Not sure how to update this with the new UText backing, which is stored in re->fMatcher anyway - if (requiresText && re->fText == NULL && !re->fOwnsText) { - *status = U_REGEX_INVALID_STATE; -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - //---------------------------------------------------------------------------------------- -@@ -270,7 +270,7 @@ U_CAPI void U_EXPORT2 - uregex_close(URegularExpression *re2) { - RegularExpression *re = (RegularExpression*)re2; - UErrorCode status = U_ZERO_ERROR; -- if (validateRE(re, FALSE, &status) == FALSE) { -+ if (validateRE(re, false, &status) == false) { - return; - } - delete re; -@@ -285,7 +285,7 @@ uregex_close(URegularExpression *re2) { - U_CAPI URegularExpression * U_EXPORT2 - uregex_clone(const URegularExpression *source2, UErrorCode *status) { - RegularExpression *source = (RegularExpression*)source2; -- if (validateRE(source, FALSE, status) == FALSE) { -+ if (validateRE(source, false, status) == false) { - return NULL; - } - -@@ -325,7 +325,7 @@ uregex_pattern(const URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; - -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return NULL; - } - if (patLength != NULL) { -@@ -356,7 +356,7 @@ uregex_patternUText(const URegularExpression *regexp2, - U_CAPI int32_t U_EXPORT2 - uregex_flags(const URegularExpression *regexp2, UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return 0; - } - int32_t flags = regexp->fPat->flags(); -@@ -375,7 +375,7 @@ uregex_setText(URegularExpression *regexp2, - int32_t textLength, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return; - } - if (text == NULL || textLength < -1) { -@@ -389,7 +389,7 @@ uregex_setText(URegularExpression *regexp2, - - regexp->fText = text; - regexp->fTextLength = textLength; -- regexp->fOwnsText = FALSE; -+ regexp->fOwnsText = false; - - UText input = UTEXT_INITIALIZER; - utext_openUChars(&input, text, textLength, status); -@@ -408,7 +408,7 @@ uregex_setUText(URegularExpression *regexp2, - UText *text, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return; - } - if (text == NULL) { -@@ -422,7 +422,7 @@ uregex_setUText(URegularExpression *regexp2, - - regexp->fText = NULL; // only fill it in on request - regexp->fTextLength = -1; -- regexp->fOwnsText = TRUE; -+ regexp->fOwnsText = true; - regexp->fMatcher->reset(text); - } - -@@ -438,7 +438,7 @@ uregex_getText(URegularExpression *regexp2, - int32_t *textLength, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return NULL; - } - -@@ -449,7 +449,7 @@ uregex_getText(URegularExpression *regexp2, - if (UTEXT_FULL_TEXT_IN_CHUNK(inputText, inputNativeLength)) { - regexp->fText = inputText->chunkContents; - regexp->fTextLength = (int32_t)inputNativeLength; -- regexp->fOwnsText = FALSE; // because the UText owns it -+ regexp->fOwnsText = false; // because the UText owns it - } else { - UErrorCode lengthStatus = U_ZERO_ERROR; - regexp->fTextLength = utext_extract(inputText, 0, inputNativeLength, NULL, 0, &lengthStatus); // buffer overflow error -@@ -457,7 +457,7 @@ uregex_getText(URegularExpression *regexp2, - - utext_extract(inputText, 0, inputNativeLength, inputChars, regexp->fTextLength+1, status); - regexp->fText = inputChars; -- regexp->fOwnsText = TRUE; // should already be set but just in case -+ regexp->fOwnsText = true; // should already be set but just in case - } - } - -@@ -478,7 +478,7 @@ uregex_getUText(URegularExpression *regexp2, - UText *dest, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return dest; - } - return regexp->fMatcher->getInput(dest, *status); -@@ -495,7 +495,7 @@ uregex_refreshUText(URegularExpression *regexp2, - UText *text, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return; - } - regexp->fMatcher->refreshInputText(text, *status); -@@ -519,8 +519,8 @@ uregex_matches64(URegularExpression *regexp2, - int64_t startIndex, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- UBool result = FALSE; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ UBool result = false; -+ if (validateRE(regexp, true, status) == false) { - return result; - } - if (startIndex == -1) { -@@ -549,8 +549,8 @@ uregex_lookingAt64(URegularExpression *regexp2, - int64_t startIndex, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- UBool result = FALSE; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ UBool result = false; -+ if (validateRE(regexp, true, status) == false) { - return result; - } - if (startIndex == -1) { -@@ -580,8 +580,8 @@ uregex_find64(URegularExpression *regexp2, - int64_t startIndex, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- UBool result = FALSE; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ UBool result = false; -+ if (validateRE(regexp, true, status) == false) { - return result; - } - if (startIndex == -1) { -@@ -603,8 +603,8 @@ U_CAPI UBool U_EXPORT2 - uregex_findNext(URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -- return FALSE; -+ if (validateRE(regexp, true, status) == false) { -+ return false; - } - UBool result = regexp->fMatcher->find(*status); - return result; -@@ -619,7 +619,7 @@ U_CAPI int32_t U_EXPORT2 - uregex_groupCount(URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return 0; - } - int32_t result = regexp->fMatcher->groupCount(); -@@ -638,7 +638,7 @@ uregex_groupNumberFromName(URegularExpression *regexp2, - int32_t nameLength, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return 0; - } - int32_t result = regexp->fPat->groupNumberFromName(UnicodeString(groupName, nameLength), *status); -@@ -651,7 +651,7 @@ uregex_groupNumberFromCName(URegularExpression *regexp2, - int32_t nameLength, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return 0; - } - return regexp->fPat->groupNumberFromName(groupName, nameLength, *status); -@@ -669,7 +669,7 @@ uregex_group(URegularExpression *regexp2, - int32_t destCapacity, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - if (destCapacity < 0 || (destCapacity > 0 && dest == NULL)) { -@@ -739,7 +739,7 @@ uregex_groupUText(URegularExpression *regexp2, - int64_t *groupLength, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - UErrorCode emptyTextStatus = U_ZERO_ERROR; - return (dest ? dest : utext_openUChars(NULL, NULL, 0, &emptyTextStatus)); - } -@@ -764,7 +764,7 @@ uregex_start64(URegularExpression *regexp2, - int32_t groupNum, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - int64_t result = regexp->fMatcher->start64(groupNum, *status); -@@ -788,7 +788,7 @@ uregex_end64(URegularExpression *regexp2, - int32_t groupNum, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - int64_t result = regexp->fMatcher->end64(groupNum, *status); -@@ -812,7 +812,7 @@ uregex_reset64(URegularExpression *regexp2, - int64_t index, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return; - } - regexp->fMatcher->reset(index, *status); -@@ -838,7 +838,7 @@ uregex_setRegion64(URegularExpression *regexp2, - int64_t regionLimit, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return; - } - regexp->fMatcher->region(regionStart, regionLimit, *status); -@@ -857,7 +857,7 @@ uregex_setRegionAndStart(URegularExpression *regexp2, - int64_t startIndex, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return; - } - regexp->fMatcher->region(regionStart, regionLimit, startIndex, *status); -@@ -878,7 +878,7 @@ U_CAPI int64_t U_EXPORT2 - uregex_regionStart64(const URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - return regexp->fMatcher->regionStart(); -@@ -900,7 +900,7 @@ U_CAPI int64_t U_EXPORT2 - uregex_regionEnd64(const URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - return regexp->fMatcher->regionEnd(); -@@ -916,8 +916,8 @@ U_CAPI UBool U_EXPORT2 - uregex_hasTransparentBounds(const URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -- return FALSE; -+ if (validateRE(regexp, false, status) == false) { -+ return false; - } - return regexp->fMatcher->hasTransparentBounds(); - } -@@ -933,7 +933,7 @@ uregex_useTransparentBounds(URegularExpression *regexp2, - UBool b, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return; - } - regexp->fMatcher->useTransparentBounds(b); -@@ -949,8 +949,8 @@ U_CAPI UBool U_EXPORT2 - uregex_hasAnchoringBounds(const URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -- return FALSE; -+ if (validateRE(regexp, false, status) == false) { -+ return false; - } - return regexp->fMatcher->hasAnchoringBounds(); - } -@@ -966,7 +966,7 @@ uregex_useAnchoringBounds(URegularExpression *regexp2, - UBool b, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status) == FALSE) { -+ if (validateRE(regexp, false, status) == false) { - return; - } - regexp->fMatcher->useAnchoringBounds(b); -@@ -982,8 +982,8 @@ U_CAPI UBool U_EXPORT2 - uregex_hitEnd(const URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -- return FALSE; -+ if (validateRE(regexp, true, status) == false) { -+ return false; - } - return regexp->fMatcher->hitEnd(); - } -@@ -998,8 +998,8 @@ U_CAPI UBool U_EXPORT2 - uregex_requireEnd(const URegularExpression *regexp2, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -- return FALSE; -+ if (validateRE(regexp, true, status) == false) { -+ return false; - } - return regexp->fMatcher->requireEnd(); - } -@@ -1015,7 +1015,7 @@ uregex_setTimeLimit(URegularExpression *regexp2, - int32_t limit, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - regexp->fMatcher->setTimeLimit(limit, *status); - } - } -@@ -1032,7 +1032,7 @@ uregex_getTimeLimit(const URegularExpression *regexp2, - UErrorCode *status) { - int32_t retVal = 0; - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - retVal = regexp->fMatcher->getTimeLimit(); - } - return retVal; -@@ -1050,7 +1050,7 @@ uregex_setStackLimit(URegularExpression *regexp2, - int32_t limit, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - regexp->fMatcher->setStackLimit(limit, *status); - } - } -@@ -1067,7 +1067,7 @@ uregex_getStackLimit(const URegularExpression *regexp2, - UErrorCode *status) { - int32_t retVal = 0; - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - retVal = regexp->fMatcher->getStackLimit(); - } - return retVal; -@@ -1085,7 +1085,7 @@ uregex_setMatchCallback(URegularExpression *regexp2, - const void *context, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - regexp->fMatcher->setMatchCallback(callback, context, *status); - } - } -@@ -1102,7 +1102,7 @@ uregex_getMatchCallback(const URegularExpression *regexp2, - const void **context, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - regexp->fMatcher->getMatchCallback(*callback, *context, *status); - } - } -@@ -1119,7 +1119,7 @@ uregex_setFindProgressCallback(URegularExpression *regexp2, - const void *context, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - regexp->fMatcher->setFindProgressCallback(callback, context, *status); - } - } -@@ -1136,7 +1136,7 @@ uregex_getFindProgressCallback(const URegularExpression *regexp2, - const void **context, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, FALSE, status)) { -+ if (validateRE(regexp, false, status)) { - regexp->fMatcher->getFindProgressCallback(*callback, *context, *status); - } - } -@@ -1155,7 +1155,7 @@ uregex_replaceAll(URegularExpression *regexp2, - int32_t destCapacity, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - if (replacementText == NULL || replacementLength < -1 || -@@ -1203,7 +1203,7 @@ uregex_replaceAllUText(URegularExpression *regexp2, - UText *dest, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - if (replacementText == NULL) { -@@ -1229,7 +1229,7 @@ uregex_replaceFirst(URegularExpression *regexp2, - int32_t destCapacity, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - if (replacementText == NULL || replacementLength < -1 || -@@ -1264,7 +1264,7 @@ uregex_replaceFirstUText(URegularExpression *regexp2, - UText *dest, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - if (replacementText == NULL) { -@@ -1346,16 +1346,16 @@ int32_t RegexCImpl::appendReplacement(RegularExpression *regexp, - // If we come in with a buffer overflow error, don't suppress the operation. - // A series of appendReplacements, appendTail need to correctly preflight - // the buffer size when an overflow happens somewhere in the middle. -- UBool pendingBufferOverflow = FALSE; -+ UBool pendingBufferOverflow = false; - if (*status == U_BUFFER_OVERFLOW_ERROR && destCapacity != NULL && *destCapacity == 0) { -- pendingBufferOverflow = TRUE; -+ pendingBufferOverflow = true; - *status = U_ZERO_ERROR; - } - - // - // Validate all parameters - // -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - if (replacementText == NULL || replacementLength < -1 || -@@ -1367,7 +1367,7 @@ int32_t RegexCImpl::appendReplacement(RegularExpression *regexp, - } - - RegexMatcher *m = regexp->fMatcher; -- if (m->fMatch == FALSE) { -+ if (m->fMatch == false) { - *status = U_REGEX_INVALID_STATE; - return 0; - } -@@ -1477,7 +1477,7 @@ int32_t RegexCImpl::appendReplacement(RegularExpression *regexp, - break; - } - U16_GET(replacementText, 0, replIdx, replacementLength, c32); -- if (u_isdigit(c32) == FALSE) { -+ if (u_isdigit(c32) == false) { - break; - } - -@@ -1623,13 +1623,13 @@ int32_t RegexCImpl::appendTail(RegularExpression *regexp, - // If we come in with a buffer overflow error, don't suppress the operation. - // A series of appendReplacements, appendTail need to correctly preflight - // the buffer size when an overflow happens somewhere in the middle. -- UBool pendingBufferOverflow = FALSE; -+ UBool pendingBufferOverflow = false; - if (*status == U_BUFFER_OVERFLOW_ERROR && destCapacity != NULL && *destCapacity == 0) { -- pendingBufferOverflow = TRUE; -+ pendingBufferOverflow = true; - *status = U_ZERO_ERROR; - } - -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - -@@ -1948,7 +1948,7 @@ uregex_split(URegularExpression *regexp2, - int32_t destFieldsCapacity, - UErrorCode *status) { - RegularExpression *regexp = (RegularExpression*)regexp2; -- if (validateRE(regexp, TRUE, status) == FALSE) { -+ if (validateRE(regexp, true, status) == false) { - return 0; - } - if ((destBuf == NULL && destCapacity > 0) || -diff --git a/deps/icu-small/source/i18n/usearch.cpp b/deps/icu-small/source/i18n/usearch.cpp -index 80b80fa3b4..0fecd709e7 100644 ---- a/deps/icu-small/source/i18n/usearch.cpp -+++ b/deps/icu-small/source/i18n/usearch.cpp -@@ -76,7 +76,7 @@ U_CDECL_BEGIN - static UBool U_CALLCONV - usearch_cleanup(void) { - g_nfcImpl = nullptr; -- return TRUE; -+ return true; - } - U_CDECL_END - -@@ -502,7 +502,7 @@ inline void setMatchNotFound(UStringSearch *strsrch, UErrorCode &status) - * Checks if the offset runs out of the text string - * @param offset - * @param textlength of the text string --* @return TRUE if offset is out of bounds, FALSE otherwise -+* @return true if offset is out of bounds, false otherwise - */ - static - inline UBool isOutOfBounds(int32_t textlength, int32_t offset) -@@ -515,13 +515,13 @@ inline UBool isOutOfBounds(int32_t textlength, int32_t offset) - * @param strsrch string search data - * @param start offset of possible match - * @param end offset of possible match --* @return TRUE if identical match is found -+* @return true if identical match is found - */ - static - inline UBool checkIdentical(const UStringSearch *strsrch, int32_t start, int32_t end) - { - if (strsrch->strength != UCOL_IDENTICAL) { -- return TRUE; -+ return true; - } - - // Note: We could use Normalizer::compare() or similar, but for short strings -@@ -529,10 +529,10 @@ inline UBool checkIdentical(const UStringSearch *strsrch, int32_t start, int32_t - UErrorCode status = U_ZERO_ERROR; - UnicodeString t2, p2; - strsrch->nfd->normalize( -- UnicodeString(FALSE, strsrch->search->text + start, end - start), t2, status); -+ UnicodeString(false, strsrch->search->text + start, end - start), t2, status); - strsrch->nfd->normalize( -- UnicodeString(FALSE, strsrch->pattern.text, strsrch->pattern.textLength), p2, status); -- // return FALSE if NFD failed -+ UnicodeString(false, strsrch->pattern.text, strsrch->pattern.textLength), p2, status); -+ // return false if NFD failed - return U_SUCCESS(status) && t2 == p2; - } - -@@ -570,7 +570,7 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern, - return nullptr; - } - else { -- result->ownCollator = TRUE; -+ result->ownCollator = true; - } - return result; - } -@@ -669,7 +669,7 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( - } - #endif - -- result->ownCollator = FALSE; -+ result->ownCollator = false; - result->search->matchedLength = 0; - result->search->matchedIndex = USEARCH_DONE; - result->utilIter = nullptr; -@@ -681,11 +681,11 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( - return nullptr; - } - -- result->search->isOverlap = FALSE; -- result->search->isCanonicalMatch = FALSE; -+ result->search->isOverlap = false; -+ result->search->isCanonicalMatch = false; - result->search->elementComparisonType = 0; -- result->search->isForwardSearching = TRUE; -- result->search->reset = TRUE; -+ result->search->isForwardSearching = true; -+ result->search->reset = true; - - initialize(result, status); - -@@ -734,17 +734,17 @@ U_CAPI void U_EXPORT2 usearch_close(UStringSearch *strsrch) - namespace { - - UBool initTextProcessedIter(UStringSearch *strsrch, UErrorCode *status) { -- if (U_FAILURE(*status)) { return FALSE; } -+ if (U_FAILURE(*status)) { return false; } - if (strsrch->textProcessedIter == nullptr) { - strsrch->textProcessedIter = new icu::UCollationPCE(strsrch->textIter); - if (strsrch->textProcessedIter == nullptr) { - *status = U_MEMORY_ALLOCATION_ERROR; -- return FALSE; -+ return false; - } - } else { - strsrch->textProcessedIter->init(strsrch->textIter); - } -- return TRUE; -+ return true; - } - - } -@@ -764,7 +764,7 @@ U_CAPI void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch, - } - strsrch->search->matchedIndex = USEARCH_DONE; - strsrch->search->matchedLength = 0; -- strsrch->search->reset = FALSE; -+ strsrch->search->reset = false; - } - } - -@@ -789,11 +789,11 @@ U_CAPI void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch, - switch (attribute) - { - case USEARCH_OVERLAP : -- strsrch->search->isOverlap = (value == USEARCH_ON ? TRUE : FALSE); -+ strsrch->search->isOverlap = (value == USEARCH_ON ? true : false); - break; - case USEARCH_CANONICAL_MATCH : -- strsrch->search->isCanonicalMatch = (value == USEARCH_ON ? TRUE : -- FALSE); -+ strsrch->search->isCanonicalMatch = (value == USEARCH_ON ? true : -+ false); - break; - case USEARCH_ELEMENT_COMPARISON : - if (value == USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD || value == USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD) { -@@ -819,10 +819,10 @@ U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute( - if (strsrch) { - switch (attribute) { - case USEARCH_OVERLAP : -- return (strsrch->search->isOverlap == TRUE ? USEARCH_ON : -+ return (strsrch->search->isOverlap == true ? USEARCH_ON : - USEARCH_OFF); - case USEARCH_CANONICAL_MATCH : -- return (strsrch->search->isCanonicalMatch == TRUE ? USEARCH_ON : -+ return (strsrch->search->isCanonicalMatch == true ? USEARCH_ON : - USEARCH_OFF); - case USEARCH_ELEMENT_COMPARISON : - { -@@ -936,7 +936,7 @@ U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch, - ucol_setText(strsrch->textIter, text, textlength, status); - strsrch->search->matchedIndex = USEARCH_DONE; - strsrch->search->matchedLength = 0; -- strsrch->search->reset = TRUE; -+ strsrch->search->reset = true; - #if !UCONFIG_NO_BREAK_ITERATION - if (strsrch->search->breakIter != nullptr) { - ubrk_setText(strsrch->search->breakIter, text, -@@ -978,7 +978,7 @@ U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch, - strsrch->textIter = strsrch->utilIter = nullptr; - if (strsrch->ownCollator && (strsrch->collator != collator)) { - ucol_close((UCollator *)strsrch->collator); -- strsrch->ownCollator = FALSE; -+ strsrch->ownCollator = false; - } - strsrch->collator = collator; - strsrch->strength = ucol_getStrength(collator); -@@ -1064,7 +1064,7 @@ U_CAPI int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch, - UErrorCode *status) - { - if (strsrch && U_SUCCESS(*status)) { -- strsrch->search->isForwardSearching = TRUE; -+ strsrch->search->isForwardSearching = true; - usearch_setOffset(strsrch, 0, status); - if (U_SUCCESS(*status)) { - return usearch_next(strsrch, status); -@@ -1078,7 +1078,7 @@ U_CAPI int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch, - UErrorCode *status) - { - if (strsrch && U_SUCCESS(*status)) { -- strsrch->search->isForwardSearching = TRUE; -+ strsrch->search->isForwardSearching = true; - // position checked in usearch_setOffset - usearch_setOffset(strsrch, position, status); - if (U_SUCCESS(*status)) { -@@ -1092,7 +1092,7 @@ U_CAPI int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch, - UErrorCode *status) - { - if (strsrch && U_SUCCESS(*status)) { -- strsrch->search->isForwardSearching = FALSE; -+ strsrch->search->isForwardSearching = false; - usearch_setOffset(strsrch, strsrch->search->textLength, status); - if (U_SUCCESS(*status)) { - return usearch_previous(strsrch, status); -@@ -1106,7 +1106,7 @@ U_CAPI int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch, - UErrorCode *status) - { - if (strsrch && U_SUCCESS(*status)) { -- strsrch->search->isForwardSearching = FALSE; -+ strsrch->search->isForwardSearching = false; - // position checked in usearch_setOffset - usearch_setOffset(strsrch, position, status); - if (U_SUCCESS(*status)) { -@@ -1146,7 +1146,7 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, - // or is set by the user - int32_t offset = usearch_getOffset(strsrch); - USearch *search = strsrch->search; -- search->reset = FALSE; -+ search->reset = false; - int32_t textlength = search->textLength; - if (search->isForwardSearching) { - if (offset == textlength || -@@ -1164,7 +1164,7 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, - // setOffset has been called or that previous ran off the text - // string. the iterator would have been set to offset 0 if a - // match is not found. -- search->isForwardSearching = TRUE; -+ search->isForwardSearching = true; - if (search->matchedIndex != USEARCH_DONE) { - // there's no need to set the collation element iterator - // the next call to next will set the offset. -@@ -1240,8 +1240,8 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, - USearch *search = strsrch->search; - if (search->reset) { - offset = search->textLength; -- search->isForwardSearching = FALSE; -- search->reset = FALSE; -+ search->isForwardSearching = false; -+ search->reset = false; - setColEIterOffset(strsrch->textIter, offset, *status); - } - else { -@@ -1249,13 +1249,13 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, - } - - int32_t matchedindex = search->matchedIndex; -- if (search->isForwardSearching == TRUE) { -+ if (search->isForwardSearching == true) { - // switching direction. - // if matchedIndex == USEARCH_DONE, it means that either a - // setOffset has been called or that next ran off the text - // string. the iterator would have been set to offset textLength if - // a match is not found. -- search->isForwardSearching = FALSE; -+ search->isForwardSearching = false; - if (matchedindex != USEARCH_DONE) { - return matchedindex; - } -@@ -1318,7 +1318,7 @@ U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch) - */ - if (strsrch) { - UErrorCode status = U_ZERO_ERROR; -- UBool sameCollAttribute = TRUE; -+ UBool sameCollAttribute = true; - uint32_t ceMask; - UBool shift; - uint32_t varTop; -@@ -1327,14 +1327,14 @@ U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch) - UCollationStrength newStrength = ucol_getStrength(strsrch->collator); - if ((strsrch->strength < UCOL_QUATERNARY && newStrength >= UCOL_QUATERNARY) || - (strsrch->strength >= UCOL_QUATERNARY && newStrength < UCOL_QUATERNARY)) { -- sameCollAttribute = FALSE; -+ sameCollAttribute = false; - } - - strsrch->strength = ucol_getStrength(strsrch->collator); - ceMask = getMask(strsrch->strength); - if (strsrch->ceMask != ceMask) { - strsrch->ceMask = ceMask; -- sameCollAttribute = FALSE; -+ sameCollAttribute = false; - } - - // if status is a failure, ucol_getAttribute returns UCOL_DEFAULT -@@ -1342,14 +1342,14 @@ U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch) - &status) == UCOL_SHIFTED; - if (strsrch->toShift != shift) { - strsrch->toShift = shift; -- sameCollAttribute = FALSE; -+ sameCollAttribute = false; - } - - // if status is a failure, ucol_getVariableTop returns 0 - varTop = ucol_getVariableTop(strsrch->collator, &status); - if (strsrch->variableTop != varTop) { - strsrch->variableTop = varTop; -- sameCollAttribute = FALSE; -+ sameCollAttribute = false; - } - if (!sameCollAttribute) { - initialize(strsrch, &status); -@@ -1359,11 +1359,11 @@ U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch) - &status); - strsrch->search->matchedLength = 0; - strsrch->search->matchedIndex = USEARCH_DONE; -- strsrch->search->isOverlap = FALSE; -- strsrch->search->isCanonicalMatch = FALSE; -+ strsrch->search->isOverlap = false; -+ strsrch->search->isCanonicalMatch = false; - strsrch->search->elementComparisonType = 0; -- strsrch->search->isForwardSearching = TRUE; -- strsrch->search->reset = TRUE; -+ strsrch->search->isForwardSearching = true; -+ strsrch->search->reset = true; - } - } - -@@ -1610,13 +1610,13 @@ static int32_t nextBoundaryAfter(UStringSearch *strsrch, int32_t startIndex, UEr - } - - /* -- * Returns TRUE if index is on a break boundary. If the UStringSearch -+ * Returns true if index is on a break boundary. If the UStringSearch - * has an external break iterator, test using that, otherwise test - * using the internal character break iterator. - */ - static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index, UErrorCode &status) { - if (U_FAILURE(status)) { -- return TRUE; -+ return true; - } - #if 0 - const UChar *text = strsrch->search->text; -@@ -1626,7 +1626,7 @@ static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index, UErrorCode & - U_ASSERT(index<=textLen); - - if (index>=textLen || index<=0) { -- return TRUE; -+ return true; - } - - // If the character at the current index is not a GRAPHEME_EXTEND -@@ -1635,7 +1635,7 @@ static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index, UErrorCode & - U16_GET(text, 0, index, textLen, c); - int32_t gcProperty = u_getIntPropertyValue(c, UCHAR_GRAPHEME_CLUSTER_BREAK); - if (gcProperty != U_GCB_EXTEND && gcProperty != U_GCB_SPACING_MARK) { -- return TRUE; -+ return true; - } - - // We are at a combining mark. If the preceding character is anything -@@ -1647,13 +1647,13 @@ static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index, UErrorCode & - #elif !UCONFIG_NO_BREAK_ITERATION - UBreakIterator *breakiterator = getBreakIterator(strsrch, status); - if (U_FAILURE(status)) { -- return TRUE; -+ return true; - } - - return ubrk_isBoundary(breakiterator, index); - #else - // **** or use the original code? **** -- return TRUE; -+ return true; - #endif - } - -@@ -1661,7 +1661,7 @@ static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index, UErrorCode & - static UBool onBreakBoundaries(const UStringSearch *strsrch, int32_t start, int32_t end, UErrorCode &status) - { - if (U_FAILURE(status)) { -- return TRUE; -+ return true; - } - - #if !UCONFIG_NO_BREAK_ITERATION -@@ -1673,7 +1673,7 @@ static UBool onBreakBoundaries(const UStringSearch *strsrch, int32_t start, int3 - // out-of-range indexes are never boundary positions - if (start < startindex || start > endindex || - end < startindex || end > endindex) { -- return FALSE; -+ return false; - } - - return ubrk_isBoundary(breakiterator, start) && -@@ -1681,7 +1681,7 @@ static UBool onBreakBoundaries(const UStringSearch *strsrch, int32_t start, int3 - } - #endif - -- return TRUE; -+ return true; - } - #endif - -@@ -1773,7 +1773,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - UErrorCode *status) - { - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - // TODO: reject search patterns beginning with a combining char. -@@ -1796,7 +1796,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - startIdx > strsrch->search->textLength || - strsrch->pattern.ces == nullptr) { - *status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - - if (strsrch->pattern.pces == nullptr) { -@@ -1809,7 +1809,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // An out-of-memory (OOM) failure can occur in the initializePatternPCETable function - // or CEIBuffer constructor above, so we need to check the status. - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - int32_t targetIx = 0; -@@ -1840,7 +1840,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // - for(targetIx=0; ; targetIx++) - { -- found = TRUE; -+ found = true; - // Inner loop checks for a match beginning at each - // position from the outer loop. - int32_t targetIxOffset = 0; -@@ -1851,7 +1851,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - const CEI *firstCEI = ceb.get(targetIx); - if (firstCEI == nullptr) { - *status = U_INTERNAL_PROGRAM_ERROR; -- found = FALSE; -+ found = false; - break; - } - -@@ -1863,7 +1863,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // which will fail the compare, below. - UCompareCEsResult ceMatch = compareCE64s(targetCEI->ce, patCE, strsrch->search->elementComparisonType); - if ( ceMatch == U_CE_NO_MATCH ) { -- found = FALSE; -+ found = false; - break; - } else if ( ceMatch > U_CE_NO_MATCH ) { - if ( ceMatch == U_CE_SKIP_TARG ) { -@@ -1912,7 +1912,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - nextCEI = ceb.get(targetIx + targetIxOffset); - maxLimit = nextCEI->lowIndex; - if (nextCEI->lowIndex == nextCEI->highIndex && nextCEI->ce != UCOL_PROCESSED_NULLORDER) { -- found = FALSE; -+ found = false; - } - } else { - for ( ; ; ++targetIxOffset ) { -@@ -1928,7 +1928,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - if ( (((nextCEI->ce) >> 32) & 0xFFFF0000UL) == 0 ) { - UCompareCEsResult ceMatch = compareCE64s(nextCEI->ce, patCE, strsrch->search->elementComparisonType); - if ( ceMatch == U_CE_NO_MATCH || ceMatch == U_CE_SKIP_PATN ) { -- found = FALSE; -+ found = false; - break; - } - // If lowIndex == highIndex, this target CE is part of an expansion of the last matched -@@ -1951,7 +1951,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // This type of match should be rejected for not completely consuming a - // combining sequence. - if (!isBreakBoundary(strsrch, mStart, *status)) { -- found = FALSE; -+ found = false; - } - if (U_FAILURE(*status)) { - break; -@@ -1964,7 +1964,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // _following_ character. - int32_t secondIx = firstCEI->highIndex; - if (mStart == secondIx) { -- found = FALSE; -+ found = false; - } - - // Allow matches to end in the middle of a grapheme cluster if the following -@@ -1978,7 +1978,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // subsequent check for normalization boundary; however they are likely much faster - // tests in any case) - // * the match limit is a normalization boundary -- UBool allowMidclusterMatch = FALSE; -+ UBool allowMidclusterMatch = false; - if (strsrch->search->text != nullptr && strsrch->search->textLength > maxLimit) { - allowMidclusterMatch = - strsrch->search->breakIter == nullptr && -@@ -2032,11 +2032,11 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // If advancing to the end of a combining sequence in character indexing space - // advanced us beyond the end of the match in CE space, reject this match. - if (mLimit > maxLimit) { -- found = FALSE; -+ found = false; - } - - if (!isBreakBoundary(strsrch, mLimit, *status)) { -- found = FALSE; -+ found = false; - } - if (U_FAILURE(*status)) { - break; -@@ -2044,7 +2044,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - } - - if (! checkIdentical(strsrch, mStart, mLimit)) { -- found = FALSE; -+ found = false; - } - - if (found) { -@@ -2067,10 +2067,10 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, - // - - if (U_FAILURE(*status)) { -- found = FALSE; // No match if a failure occured. -+ found = false; // No match if a failure occured. - } - -- if (found==FALSE) { -+ if (found==false) { - mLimit = -1; - mStart = -1; - } -@@ -2093,7 +2093,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - UErrorCode *status) - { - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - // TODO: reject search patterns beginning with a combining char. -@@ -2116,7 +2116,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - startIdx > strsrch->search->textLength || - strsrch->pattern.ces == nullptr) { - *status = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - - if (strsrch->pattern.pces == nullptr) { -@@ -2138,7 +2138,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - if (startIdx < strsrch->search->textLength) { - UBreakIterator *breakiterator = getBreakIterator(strsrch, *status); - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - int32_t next = ubrk_following(breakiterator, startIdx); - -@@ -2155,7 +2155,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - - // An out-of-memory (OOM) failure can occur above, so we need to check the status. - if (U_FAILURE(*status)) { -- return FALSE; -+ return false; - } - - const CEI *targetCEI = nullptr; -@@ -2178,14 +2178,14 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - // and the beginning of the base text. - for(targetIx = limitIx; ; targetIx += 1) - { -- found = TRUE; -+ found = true; - // For targetIx > limitIx, this ceb.getPrevious gets a CE that is as far back in the ring buffer - // (compared to the last CE fetched for the previous targetIx value) as we need to go - // for this targetIx value, so if it is non-nullptr then other ceb.getPrevious calls should be OK. - const CEI *lastCEI = ceb.getPrevious(targetIx); - if (lastCEI == nullptr) { - *status = U_INTERNAL_PROGRAM_ERROR; -- found = FALSE; -+ found = false; - break; - } - // Inner loop checks for a match beginning at each -@@ -2200,7 +2200,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - // which will fail the compare, below. - UCompareCEsResult ceMatch = compareCE64s(targetCEI->ce, patCE, strsrch->search->elementComparisonType); - if ( ceMatch == U_CE_NO_MATCH ) { -- found = FALSE; -+ found = false; - break; - } else if ( ceMatch > U_CE_NO_MATCH ) { - if ( ceMatch == U_CE_SKIP_TARG ) { -@@ -2240,7 +2240,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - // This type of match should be rejected for not completely consuming a - // combining sequence. - if (!isBreakBoundary(strsrch, mStart, *status)) { -- found = FALSE; -+ found = false; - } - if (U_FAILURE(*status)) { - break; -@@ -2249,7 +2249,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - // Look at the high index of the first CE in the match. If it's the same as the - // low index, the first CE in the match is in the middle of an expansion. - if (mStart == firstCEI->highIndex) { -- found = FALSE; -+ found = false; - } - - -@@ -2267,7 +2267,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - const CEI *nextCEI = ceb.getPrevious(targetIx - 1); - - if (nextCEI->lowIndex == nextCEI->highIndex && nextCEI->ce != UCOL_PROCESSED_NULLORDER) { -- found = FALSE; -+ found = false; - } - - mLimit = maxLimit = nextCEI->lowIndex; -@@ -2283,7 +2283,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - // subsequent check for normalization boundary; however they are likely much faster - // tests in any case) - // * the match limit is a normalization boundary -- UBool allowMidclusterMatch = FALSE; -+ UBool allowMidclusterMatch = false; - if (strsrch->search->text != nullptr && strsrch->search->textLength > maxLimit) { - allowMidclusterMatch = - strsrch->search->breakIter == nullptr && -@@ -2316,12 +2316,12 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - // If advancing to the end of a combining sequence in character indexing space - // advanced us beyond the end of the match in CE space, reject this match. - if (mLimit > maxLimit) { -- found = FALSE; -+ found = false; - } - - // Make sure the end of the match is on a break boundary - if (!isBreakBoundary(strsrch, mLimit, *status)) { -- found = FALSE; -+ found = false; - } - if (U_FAILURE(*status)) { - break; -@@ -2345,7 +2345,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - - - if (! checkIdentical(strsrch, mStart, mLimit)) { -- found = FALSE; -+ found = false; - } - - if (found) { -@@ -2368,10 +2368,10 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, - // - - if (U_FAILURE(*status)) { -- found = FALSE; // No match if a failure occured. -+ found = false; // No match if a failure occured. - } - -- if (found==FALSE) { -+ if (found==false) { - mLimit = -1; - mStart = -1; - } -@@ -2393,7 +2393,7 @@ UBool usearch_handleNextExact(UStringSearch *strsrch, UErrorCode *status) - { - if (U_FAILURE(*status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - - int32_t textOffset = ucol_getOffset(strsrch->textIter); -@@ -2403,10 +2403,10 @@ UBool usearch_handleNextExact(UStringSearch *strsrch, UErrorCode *status) - if (usearch_search(strsrch, textOffset, &start, &end, status)) { - strsrch->search->matchedIndex = start; - strsrch->search->matchedLength = end - start; -- return TRUE; -+ return true; - } else { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - } - -@@ -2414,7 +2414,7 @@ UBool usearch_handleNextCanonical(UStringSearch *strsrch, UErrorCode *status) - { - if (U_FAILURE(*status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - - int32_t textOffset = ucol_getOffset(strsrch->textIter); -@@ -2424,10 +2424,10 @@ UBool usearch_handleNextCanonical(UStringSearch *strsrch, UErrorCode *status) - if (usearch_search(strsrch, textOffset, &start, &end, status)) { - strsrch->search->matchedIndex = start; - strsrch->search->matchedLength = end - start; -- return TRUE; -+ return true; - } else { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - } - -@@ -2435,7 +2435,7 @@ UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status) - { - if (U_FAILURE(*status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - - int32_t textOffset; -@@ -2448,7 +2448,7 @@ UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status) - initializePatternPCETable(strsrch, status); - if (!initTextProcessedIter(strsrch, status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - for (int32_t nPCEs = 0; nPCEs < strsrch->pattern.pcesLength - 1; nPCEs++) { - int64_t pce = strsrch->textProcessedIter->nextProcessed(nullptr, nullptr, status); -@@ -2459,7 +2459,7 @@ UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status) - } - if (U_FAILURE(*status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - textOffset = ucol_getOffset(strsrch->textIter); - } -@@ -2473,10 +2473,10 @@ UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status) - if (usearch_searchBackwards(strsrch, textOffset, &start, &end, status)) { - strsrch->search->matchedIndex = start; - strsrch->search->matchedLength = end - start; -- return TRUE; -+ return true; - } else { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - } - -@@ -2485,7 +2485,7 @@ UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, - { - if (U_FAILURE(*status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - - int32_t textOffset; -@@ -2498,7 +2498,7 @@ UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, - initializePatternPCETable(strsrch, status); - if (!initTextProcessedIter(strsrch, status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - for (int32_t nPCEs = 0; nPCEs < strsrch->pattern.pcesLength - 1; nPCEs++) { - int64_t pce = strsrch->textProcessedIter->nextProcessed(nullptr, nullptr, status); -@@ -2509,7 +2509,7 @@ UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, - } - if (U_FAILURE(*status)) { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - textOffset = ucol_getOffset(strsrch->textIter); - } -@@ -2523,10 +2523,10 @@ UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, - if (usearch_searchBackwards(strsrch, textOffset, &start, &end, status)) { - strsrch->search->matchedIndex = start; - strsrch->search->matchedLength = end - start; -- return TRUE; -+ return true; - } else { - setMatchNotFound(strsrch, *status); -- return FALSE; -+ return false; - } - } - -diff --git a/deps/icu-small/source/i18n/uspoof.cpp b/deps/icu-small/source/i18n/uspoof.cpp -index dd4618baa7..f894dc44ca 100644 ---- a/deps/icu-small/source/i18n/uspoof.cpp -+++ b/deps/icu-small/source/i18n/uspoof.cpp -@@ -41,7 +41,7 @@ U_NAMESPACE_USE - static UnicodeSet *gInclusionSet = NULL; - static UnicodeSet *gRecommendedSet = NULL; - static const Normalizer2 *gNfdNormalizer = NULL; --static UInitOnce gSpoofInitStaticsOnce = U_INITONCE_INITIALIZER; -+static UInitOnce gSpoofInitStaticsOnce {}; - - namespace { - -@@ -53,13 +53,13 @@ uspoof_cleanup(void) { - gRecommendedSet = NULL; - gNfdNormalizer = NULL; - gSpoofInitStaticsOnce.reset(); -- return TRUE; -+ return true; - } - - void U_CALLCONV initializeStatics(UErrorCode &status) { - static const char16_t *inclusionPat = -- u"['\\-.\\:\\u00B7\\u0375\\u058A\\u05F3\\u05F4\\u06FD\\u06FE\\u0F0B\\u200C" -- u"\\u200D\\u2010\\u2019\\u2027\\u30A0\\u30FB]"; -+ u"['\\-.\\:\\u00B7\\u0375\\u058A\\u05F3\\u05F4\\u06FD\\u06FE\\u0F0B\\u2010" -+ u"\\u2019\\u2027\\u30A0\\u30FB]"; - gInclusionSet = new UnicodeSet(UnicodeString(inclusionPat), status); - if (gInclusionSet == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -@@ -103,14 +103,14 @@ void U_CALLCONV initializeStatics(UErrorCode &status) { - u"\\u0C56\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C80\\u0C82\\u0C83\\u0C85-" - u"\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-" - u"\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDD\\u0CE0-\\u0CE3" -- u"\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-" -+ u"\\u0CE6-\\u0CEF\\u0CF1-\\u0CF3\\u0D00\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-" - u"\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D43\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-" - u"\\u0D57\\u0D60\\u0D61\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-" - u"\\u0D8E\\u0D91-\\u0D96\\u0D9A-\\u0DA5\\u0DA7-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD" - u"\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDE\\u0DF2\\u0E01-" - u"\\u0E32\\u0E34-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84" - u"\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB2\\u0EB4-\\u0EBD\\u0EC0-" -- u"\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDE\\u0EDF\\u0F00\\u0F20-" -+ u"\\u0EC4\\u0EC6\\u0EC8-\\u0ECE\\u0ED0-\\u0ED9\\u0EDE\\u0EDF\\u0F00\\u0F20-" - u"\\u0F29\\u0F35\\u0F37\\u0F3E-\\u0F42\\u0F44-\\u0F47\\u0F49-\\u0F4C\\u0F4E-" - u"\\u0F51\\u0F53-\\u0F56\\u0F58-\\u0F5B\\u0F5D-\\u0F68\\u0F6A-\\u0F6C\\u0F71" - u"\\u0F72\\u0F74\\u0F7A-\\u0F80\\u0F82-\\u0F84\\u0F86-\\u0F92\\u0F94-\\u0F97" -@@ -131,17 +131,18 @@ void U_CALLCONV initializeStatics(UErrorCode &status) { - u"\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-" - u"\\u3007\\u3041-\\u3096\\u3099\\u309A\\u309D\\u309E\\u30A1-\\u30FA\\u30FC-" - u"\\u30FE\\u3105-\\u312D\\u312F\\u31A0-\\u31BF\\u3400-\\u4DBF\\u4E00-\\u9FFF" -- u"\\uA67F\\uA717-\\uA71F\\uA788\\uA78D\\uA792\\uA793\\uA7AA\\uA7AE\\uA7B8" -- u"\\uA7B9\\uA7C0-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA9E7-\\uA9FE" -- u"\\uAA60-\\uAA76\\uAA7A-\\uAA7F\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16" -- u"\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB66\\uAB67\\uAC00-\\uD7A3\\uFA0E\\uFA0F" -- u"\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\U00011301" -- u"\\U00011303\\U0001133B\\U0001133C\\U00016FF0\\U00016FF1\\U0001B11F-" -- u"\\U0001B122\\U0001B150-\\U0001B152\\U0001B164-\\U0001B167\\U0001DF00-" -- u"\\U0001DF1E\\U0001E7E0-\\U0001E7E6\\U0001E7E8-\\U0001E7EB\\U0001E7ED" -- u"\\U0001E7EE\\U0001E7F0-\\U0001E7FE\\U00020000-\\U0002A6DF\\U0002A700-" -- u"\\U0002B738\\U0002B740-\\U0002B81D\\U0002B820-\\U0002CEA1\\U0002CEB0-" -- u"\\U0002EBE0\\U00030000-\\U0003134A]"; -+ u"\\uA67F\\uA717-\\uA71F\\uA788\\uA78D\\uA792\\uA793\\uA7AA\\uA7C0-\\uA7CA" -+ u"\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA9E7-\\uA9FE\\uAA60-\\uAA76\\uAA7A-" -+ u"\\uAA7F\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-" -+ u"\\uAB2E\\uAB66\\uAB67\\uAC00-\\uD7A3\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14" -+ u"\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\U00011301\\U00011303" -+ u"\\U0001133B\\U0001133C\\U00016FF0\\U00016FF1\\U0001B11F-\\U0001B122" -+ u"\\U0001B132\\U0001B150-\\U0001B152\\U0001B155\\U0001B164-\\U0001B167" -+ u"\\U0001DF00-\\U0001DF1E\\U0001DF25-\\U0001DF2A\\U0001E08F\\U0001E7E0-" -+ u"\\U0001E7E6\\U0001E7E8-\\U0001E7EB\\U0001E7ED\\U0001E7EE\\U0001E7F0-" -+ u"\\U0001E7FE\\U00020000-\\U0002A6DF\\U0002A700-\\U0002B739\\U0002B740-" -+ u"\\U0002B81D\\U0002B820-\\U0002CEA1\\U0002CEB0-\\U0002EBE0\\U00030000-" -+ u"\\U0003134A\\U00031350-\\U000323AF]"; - - gRecommendedSet = new UnicodeSet(UnicodeString(recommendedPat), status); - if (gRecommendedSet == NULL) { -@@ -611,7 +612,7 @@ int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* c - int32_t i; - UChar32 c; - UChar32 firstNonspacingMark = 0; -- UBool haveMultipleMarks = FALSE; -+ UBool haveMultipleMarks = false; - UnicodeSet marksSeenSoFar; // Set of combining marks in a single combining sequence. - - for (i=0; ifSpoofData->fDataOwned == TRUE); -+ U_ASSERT(fSpoofImpl->fSpoofData->fDataOwned == true); - - // The Key Table - // While copying the keys to the runtime array, -diff --git a/deps/icu-small/source/i18n/uspoof_impl.cpp b/deps/icu-small/source/i18n/uspoof_impl.cpp -index f96826f86c..e50344c469 100644 ---- a/deps/icu-small/source/i18n/uspoof_impl.cpp -+++ b/deps/icu-small/source/i18n/uspoof_impl.cpp -@@ -320,10 +320,10 @@ URestrictionLevel SpoofImpl::getRestrictionLevel(const UnicodeString& input, UEr - // Section 5.2 step 2 - // Java use a static UnicodeSet for this test. In C++, avoid the static variable - // and just do a simple for loop. -- UBool allASCII = TRUE; -+ UBool allASCII = true; - for (int32_t i=0, length=input.length(); i 0x7f) { -- allASCII = FALSE; -+ allASCII = false; - break; - } - } -@@ -495,9 +495,9 @@ UBool SpoofData::validateDataVersion(UErrorCode &status) const { - fRawData->fFormatVersion[2] != 0 || - fRawData->fFormatVersion[3] != 0) { - status = U_INVALID_FORMAT_ERROR; -- return FALSE; -+ return false; - } -- return TRUE; -+ return true; - } - - static UBool U_CALLCONV -@@ -518,9 +518,9 @@ spoofDataIsAcceptable(void *context, - if(version != NULL) { - uprv_memcpy(version, pInfo->dataVersion, 4); - } -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -@@ -538,7 +538,7 @@ spoofDataIsAcceptable(void *context, - // uspoof_cleanupDefaultData - Called during cleanup. - // - --static UInitOnce gSpoofInitDefaultOnce = U_INITONCE_INITIALIZER; -+static UInitOnce gSpoofInitDefaultOnce {}; - static SpoofData* gDefaultSpoofData; - - static UBool U_CALLCONV -@@ -549,7 +549,7 @@ uspoof_cleanupDefaultData(void) { - gDefaultSpoofData = nullptr; - gSpoofInitDefaultOnce.reset(); - } -- return TRUE; -+ return true; - } - - static void U_CALLCONV uspoof_loadDefaultData(UErrorCode& status) { -@@ -655,7 +655,7 @@ SpoofData::SpoofData(UErrorCode &status) { - // Called by constructors to put things in a known initial state. - void SpoofData::reset() { - fRawData = NULL; -- fDataOwned = FALSE; -+ fDataOwned = false; - fUDM = NULL; - fMemLimit = 0; - fRefCount = 1; -diff --git a/deps/icu-small/source/i18n/uspoof_impl.h b/deps/icu-small/source/i18n/uspoof_impl.h -index e75ae262bd..68d7bedae1 100644 ---- a/deps/icu-small/source/i18n/uspoof_impl.h -+++ b/deps/icu-small/source/i18n/uspoof_impl.h -@@ -28,6 +28,7 @@ - #ifdef __cplusplus - - #include "capi_helper.h" -+#include "umutex.h" - - U_NAMESPACE_BEGIN - -diff --git a/deps/icu-small/source/i18n/utf16collationiterator.cpp b/deps/icu-small/source/i18n/utf16collationiterator.cpp -index f1bdfabe73..912163a0a3 100644 ---- a/deps/icu-small/source/i18n/utf16collationiterator.cpp -+++ b/deps/icu-small/source/i18n/utf16collationiterator.cpp -@@ -78,9 +78,9 @@ UBool - UTF16CollationIterator::foundNULTerminator() { - if(limit == NULL) { - limit = --pos; -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -@@ -241,9 +241,9 @@ UBool - FCDUTF16CollationIterator::foundNULTerminator() { - if(limit == NULL) { - limit = rawLimit = --pos; -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -@@ -361,7 +361,7 @@ FCDUTF16CollationIterator::switchToForward() { - // Switch to checking forward from it. - pos = start = segmentStart = segmentLimit; - // Note: If this segment is at the end of the input text, -- // then it might help to return FALSE to indicate that, so that -+ // then it might help to return false to indicate that, so that - // we do not have to re-check and normalize when we turn around and go backwards. - // However, that would complicate the call sites for an optimization of an unusual case. - } -@@ -372,7 +372,7 @@ FCDUTF16CollationIterator::switchToForward() { - - UBool - FCDUTF16CollationIterator::nextSegment(UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - U_ASSERT(checkDir > 0 && pos != limit); - // The input text [segmentStart..pos[ passes the FCD check. - const UChar *p = pos; -@@ -392,7 +392,7 @@ FCDUTF16CollationIterator::nextSegment(UErrorCode &errorCode) { - do { - q = p; - } while(p != rawLimit && nfcImpl.nextFCD16(p, rawLimit) > 0xff); -- if(!normalize(pos, q, errorCode)) { return FALSE; } -+ if(!normalize(pos, q, errorCode)) { return false; } - pos = start; - break; - } -@@ -405,7 +405,7 @@ FCDUTF16CollationIterator::nextSegment(UErrorCode &errorCode) { - } - U_ASSERT(pos != limit); - checkDir = 0; -- return TRUE; -+ return true; - } - - void -@@ -436,7 +436,7 @@ FCDUTF16CollationIterator::switchToBackward() { - - UBool - FCDUTF16CollationIterator::previousSegment(UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - U_ASSERT(checkDir < 0 && pos != start); - // The input text [pos..segmentLimit[ passes the FCD check. - const UChar *p = pos; -@@ -458,7 +458,7 @@ FCDUTF16CollationIterator::previousSegment(UErrorCode &errorCode) { - q = p; - } while(fcd16 > 0xff && p != rawStart && - (fcd16 = nfcImpl.previousFCD16(rawStart, p)) != 0); -- if(!normalize(q, pos, errorCode)) { return FALSE; } -+ if(!normalize(q, pos, errorCode)) { return false; } - pos = limit; - break; - } -@@ -471,7 +471,7 @@ FCDUTF16CollationIterator::previousSegment(UErrorCode &errorCode) { - } - U_ASSERT(pos != start); - checkDir = 0; -- return TRUE; -+ return true; - } - - UBool -@@ -479,14 +479,14 @@ FCDUTF16CollationIterator::normalize(const UChar *from, const UChar *to, UErrorC - // NFD without argument checking. - U_ASSERT(U_SUCCESS(errorCode)); - nfcImpl.decompose(from, to, normalized, (int32_t)(to - from), errorCode); -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - // Switch collation processing into the FCD buffer - // with the result of normalizing [segmentStart, segmentLimit[. - segmentStart = from; - segmentLimit = to; - start = normalized.getBuffer(); - limit = start + normalized.length(); -- return TRUE; -+ return true; - } - - U_NAMESPACE_END -diff --git a/deps/icu-small/source/i18n/utf8collationiterator.cpp b/deps/icu-small/source/i18n/utf8collationiterator.cpp -index 345b1994ef..5a6cf7fd1b 100644 ---- a/deps/icu-small/source/i18n/utf8collationiterator.cpp -+++ b/deps/icu-small/source/i18n/utf8collationiterator.cpp -@@ -80,15 +80,15 @@ UBool - UTF8CollationIterator::foundNULTerminator() { - if(length < 0) { - length = --pos; -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - - UBool - UTF8CollationIterator::forbidSurrogateCodePoints() const { -- return TRUE; -+ return true; - } - - UChar32 -@@ -224,7 +224,7 @@ FCDUTF8CollationIterator::nextHasLccc() const { - // The lowest code point with ccc!=0 is U+0300 which is CC 80 in UTF-8. - // CJK U+4000..U+DFFF except U+Axxx are also FCD-inert. (Lead bytes E4..ED except EA.) - UChar32 c = u8[pos]; -- if(c < 0xcc || (0xe4 <= c && c <= 0xed && c != 0xea)) { return FALSE; } -+ if(c < 0xcc || (0xe4 <= c && c <= 0xed && c != 0xea)) { return false; } - int32_t i = pos; - U8_NEXT_OR_FFFD(u8, i, length, c); - if(c > 0xffff) { c = U16_LEAD(c); } -@@ -235,7 +235,7 @@ UBool - FCDUTF8CollationIterator::previousHasTccc() const { - U_ASSERT(state == CHECK_BWD && pos != 0); - UChar32 c = u8[pos - 1]; -- if(U8_IS_SINGLE(c)) { return FALSE; } -+ if(U8_IS_SINGLE(c)) { return false; } - int32_t i = pos; - U8_PREV_OR_FFFD(u8, 0, i, c); - if(c > 0xffff) { c = U16_LEAD(c); } -@@ -255,9 +255,9 @@ UBool - FCDUTF8CollationIterator::foundNULTerminator() { - if(state == CHECK_FWD && length < 0) { - length = --pos; -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -@@ -383,7 +383,7 @@ FCDUTF8CollationIterator::switchToForward() { - - UBool - FCDUTF8CollationIterator::nextSegment(UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - U_ASSERT(state == CHECK_FWD && pos != length); - // The input text [start..pos[ passes the FCD check. - int32_t segmentStart = pos; -@@ -414,12 +414,12 @@ FCDUTF8CollationIterator::nextSegment(UErrorCode &errorCode) { - } - s.append(c); - } -- if(!normalize(s, errorCode)) { return FALSE; } -+ if(!normalize(s, errorCode)) { return false; } - start = segmentStart; - limit = pos; - state = IN_NORMALIZED; - pos = 0; -- return TRUE; -+ return true; - } - prevCC = (uint8_t)fcd16; - if(pos == length || prevCC == 0) { -@@ -431,7 +431,7 @@ FCDUTF8CollationIterator::nextSegment(UErrorCode &errorCode) { - pos = segmentStart; - U_ASSERT(pos != limit); - state = IN_FCD_SEGMENT; -- return TRUE; -+ return true; - } - - void -@@ -462,7 +462,7 @@ FCDUTF8CollationIterator::switchToBackward() { - - UBool - FCDUTF8CollationIterator::previousSegment(UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - U_ASSERT(state == CHECK_BWD && pos != 0); - // The input text [pos..limit[ passes the FCD check. - int32_t segmentLimit = pos; -@@ -496,12 +496,12 @@ FCDUTF8CollationIterator::previousSegment(UErrorCode &errorCode) { - s.append(c); - } - s.reverse(); -- if(!normalize(s, errorCode)) { return FALSE; } -+ if(!normalize(s, errorCode)) { return false; } - limit = segmentLimit; - start = pos; - state = IN_NORMALIZED; - pos = normalized.length(); -- return TRUE; -+ return true; - } - nextCC = (uint8_t)(fcd16 >> 8); - if(pos == 0 || nextCC == 0) { -@@ -513,7 +513,7 @@ FCDUTF8CollationIterator::previousSegment(UErrorCode &errorCode) { - pos = segmentLimit; - U_ASSERT(pos != start); - state = IN_FCD_SEGMENT; -- return TRUE; -+ return true; - } - - UBool -diff --git a/deps/icu-small/source/i18n/vtzone.cpp b/deps/icu-small/source/i18n/vtzone.cpp -index 06f0b84c0f..bd81ee73e6 100644 ---- a/deps/icu-small/source/i18n/vtzone.cpp -+++ b/deps/icu-small/source/i18n/vtzone.cpp -@@ -110,12 +110,12 @@ static int32_t parseAsciiDigits(const UnicodeString& str, int32_t start, int32_t - } - - static UnicodeString& appendAsciiDigits(int32_t number, uint8_t length, UnicodeString& str) { -- UBool negative = FALSE; -+ UBool negative = false; - int32_t digits[10]; // max int32_t is 10 decimal digits - int32_t i; - - if (number < 0) { -- negative = TRUE; -+ negative = true; - number *= -1; - } - -@@ -145,7 +145,7 @@ static UnicodeString& appendAsciiDigits(int32_t number, uint8_t length, UnicodeS - } - - static UnicodeString& appendMillis(UDate date, UnicodeString& str) { -- UBool negative = FALSE; -+ UBool negative = false; - int32_t digits[20]; // max int64_t is 20 decimal digits - int32_t i; - int64_t number; -@@ -158,7 +158,7 @@ static UnicodeString& appendMillis(UDate date, UnicodeString& str) { - number = (int64_t)date; - } - if (number < 0) { -- negative = TRUE; -+ negative = true; - number *= -1; - } - i = 0; -@@ -222,8 +222,8 @@ static UDate parseDateTimeString(const UnicodeString& str, int32_t offset, UErro - } - - int32_t year = 0, month = 0, day = 0, hour = 0, min = 0, sec = 0; -- UBool isUTC = FALSE; -- UBool isValid = FALSE; -+ UBool isUTC = false; -+ UBool isValid = false; - do { - int length = str.length(); - if (length != 15 && length != 16) { -@@ -240,7 +240,7 @@ static UDate parseDateTimeString(const UnicodeString& str, int32_t offset, UErro - // invalid format - break; - } -- isUTC = TRUE; -+ isUTC = true; - } - - year = parseAsciiDigits(str, 0, 4, status); -@@ -261,7 +261,7 @@ static UDate parseDateTimeString(const UnicodeString& str, int32_t offset, UErro - break; - } - -- isValid = TRUE; -+ isValid = true; - } while(false); - - if (!isValid) { -@@ -285,7 +285,7 @@ static int32_t offsetStrToMillis(const UnicodeString& str, UErrorCode& status) { - return 0; - } - -- UBool isValid = FALSE; -+ UBool isValid = false; - int32_t sign = 0, hour = 0, min = 0, sec = 0; - - do { -@@ -383,19 +383,19 @@ static void parseRRULE(const UnicodeString& rrule, int32_t& month, int32_t& dow, - wim = 0; - until = MIN_MILLIS; - -- UBool yearly = FALSE; -- //UBool parseError = FALSE; -+ UBool yearly = false; -+ //UBool parseError = false; - - int32_t prop_start = 0; - int32_t prop_end; - UnicodeString prop, attr, value; -- UBool nextProp = TRUE; -+ UBool nextProp = true; - - while (nextProp) { - prop_end = rrule.indexOf(SEMICOLON, prop_start); - if (prop_end == -1) { - prop.setTo(rrule, prop_start); -- nextProp = FALSE; -+ nextProp = false; - } else { - prop.setTo(rrule, prop_start, prop_end - prop_start); - prop_start = prop_end + 1; -@@ -411,7 +411,7 @@ static void parseRRULE(const UnicodeString& rrule, int32_t& month, int32_t& dow, - if (attr.compare(ICAL_FREQ, -1) == 0) { - // only support YEARLY frequency type - if (value.compare(ICAL_YEARLY, -1) == 0) { -- yearly = TRUE; -+ yearly = true; - } else { - goto rruleParseError; - } -@@ -478,12 +478,12 @@ static void parseRRULE(const UnicodeString& rrule, int32_t& month, int32_t& dow, - int32_t dom_idx = 0; - int32_t dom_start = 0; - int32_t dom_end; -- UBool nextDOM = TRUE; -+ UBool nextDOM = true; - while (nextDOM) { - dom_end = value.indexOf(COMMA, dom_start); - if (dom_end == -1) { - dom_end = value.length(); -- nextDOM = FALSE; -+ nextDOM = false; - } - if (dom_idx < domCount) { - dom[dom_idx] = parseAsciiDigits(value, dom_start, dom_end - dom_start, status); -@@ -563,10 +563,10 @@ static TimeZoneRule* createRuleByRRULE(const UnicodeString& zonename, int rawOff - } - // Make sure days are continuous - for (i = 1; i < 7; i++) { -- UBool found = FALSE; -+ UBool found = false; - for (j = 0; j < 7; j++) { - if (days[j] == firstDay + i) { -- found = TRUE; -+ found = true; - break; - } - } -@@ -703,7 +703,7 @@ static TimeZoneRule* createRuleByRRULE(const UnicodeString& zonename, int rawOff - } else if (dayOfWeek != 0 && nthDayOfWeek == 0 && dayOfMonth != 0) { - // First day of week after day of month rule, for example, - // first Sunday after 15th day in the month -- adtr = new DateTimeRule(month, dayOfMonth, dayOfWeek, TRUE, startMID, DateTimeRule::WALL_TIME); -+ adtr = new DateTimeRule(month, dayOfMonth, dayOfWeek, true, startMID, DateTimeRule::WALL_TIME); - } - if (adtr == nullptr) { - goto unsupportedRRule; -@@ -759,36 +759,36 @@ static TimeZoneRule* createRuleByRDATE(const UnicodeString& zonename, int32_t ra - */ - static UBool isEquivalentDateRule(int32_t month, int32_t weekInMonth, int32_t dayOfWeek, const DateTimeRule *dtrule) { - if (month != dtrule->getRuleMonth() || dayOfWeek != dtrule->getRuleDayOfWeek()) { -- return FALSE; -+ return false; - } - if (dtrule->getTimeRuleType() != DateTimeRule::WALL_TIME) { - // Do not try to do more intelligent comparison for now. -- return FALSE; -+ return false; - } - if (dtrule->getDateRuleType() == DateTimeRule::DOW - && dtrule->getRuleWeekInMonth() == weekInMonth) { -- return TRUE; -+ return true; - } - int32_t ruleDOM = dtrule->getRuleDayOfMonth(); - if (dtrule->getDateRuleType() == DateTimeRule::DOW_GEQ_DOM) { - if (ruleDOM%7 == 1 && (ruleDOM + 6)/7 == weekInMonth) { -- return TRUE; -+ return true; - } - if (month != UCAL_FEBRUARY && (MONTHLENGTH[month] - ruleDOM)%7 == 6 - && weekInMonth == -1*((MONTHLENGTH[month]-ruleDOM+1)/7)) { -- return TRUE; -+ return true; - } - } - if (dtrule->getDateRuleType() == DateTimeRule::DOW_LEQ_DOM) { - if (ruleDOM%7 == 0 && ruleDOM/7 == weekInMonth) { -- return TRUE; -+ return true; - } - if (month != UCAL_FEBRUARY && (MONTHLENGTH[month] - ruleDOM)%7 == 0 - && weekInMonth == -1*((MONTHLENGTH[month] - ruleDOM)/7 + 1)) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - /* -@@ -1139,9 +1139,9 @@ UBool - VTimeZone::getTZURL(UnicodeString& url) const { - if (tzurl.length() > 0) { - url = tzurl; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - void -@@ -1153,9 +1153,9 @@ UBool - VTimeZone::getLastModified(UDate& lastModified) const { - if (lastmod != MAX_MILLIS) { - lastModified = lastmod; -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - void -@@ -1269,12 +1269,12 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { - if (U_FAILURE(status)) { - return; - } -- UBool eol = FALSE; -- UBool start = FALSE; -- UBool success = FALSE; -+ UBool eol = false; -+ UBool start = false; -+ UBool success = false; - UnicodeString line; - -- while (TRUE) { -+ while (true) { - UChar ch = reader.read(); - if (ch == 0xFFFF) { - // end of file -@@ -1284,7 +1284,7 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { - if (U_FAILURE(status)) { - return; - } -- success = TRUE; -+ success = true; - } - break; - } -@@ -1309,11 +1309,11 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { - line.append(ch); - } - } -- eol = FALSE; -+ eol = false; - } else { - if (ch == 0x000A) { - // LF -- eol = TRUE; -+ eol = true; - if (start) { - if (line.startsWith(ICAL_END_VTIMEZONE, -1)) { - LocalPointer element(new UnicodeString(line), status); -@@ -1321,7 +1321,7 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { - if (U_FAILURE(status)) { - return; - } -- success = TRUE; -+ success = true; - break; - } - } else { -@@ -1332,8 +1332,8 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { - return; - } - line.remove(); -- start = TRUE; -- eol = FALSE; -+ start = true; -+ eol = false; - } - } - } else { -@@ -1374,12 +1374,12 @@ VTimeZone::parse(UErrorCode& status) { - - int32_t state = INI; - int32_t n = 0; -- UBool dst = FALSE; // current zone type -+ UBool dst = false; // current zone type - UnicodeString from; // current zone from offset - UnicodeString to; // current zone offset - UnicodeString zonename; // current zone name - UnicodeString dtstart; // current zone starts -- UBool isRRULE = FALSE; // true if the rule is described by RRULE -+ UBool isRRULE = false; // true if the rule is described by RRULE - int32_t initialRawOffset = 0; // initial offset - int32_t initialDSTSavings = 0; // initial offset - UDate firstStart = MAX_MILLIS; // the earliest rule start time -@@ -1438,7 +1438,7 @@ VTimeZone::parse(UErrorCode& status) { - if (dates.size() != 0) { - dates.removeAllElements(); - } -- isRRULE = FALSE; -+ isRRULE = false; - from.remove(); - to.remove(); - zonename.remove(); -@@ -1469,14 +1469,14 @@ VTimeZone::parse(UErrorCode& status) { - } - // RDATE value may contain multiple date delimited - // by comma -- UBool nextDate = TRUE; -+ UBool nextDate = true; - int32_t dstart = 0; - LocalPointer dstr; - while (nextDate) { - int32_t dend = value.indexOf(COMMA, dstart); - if (dend == -1) { - dstr.adoptInsteadAndCheckErrorCode(new UnicodeString(value, dstart), status); -- nextDate = FALSE; -+ nextDate = false; - } else { - dstr.adoptInsteadAndCheckErrorCode(new UnicodeString(value, dstart, dend - dstart), status); - } -@@ -1591,7 +1591,7 @@ VTimeZone::parse(UErrorCode& status) { - } - - // Create a initial rule -- getDefaultTZName(tzid, FALSE, zonename); -+ getDefaultTZName(tzid, false, zonename); - LocalPointer initialRule( - new InitialTimeZoneRule(zonename, initialRawOffset, initialDSTSavings), status); - if (U_FAILURE(status)) { -@@ -1652,7 +1652,7 @@ VTimeZone::parse(UErrorCode& status) { - finalRule->getNextStart(lastStart, - r->getRawOffset(), - r->getDSTSavings(), -- FALSE, -+ false, - start); - } - } -@@ -1898,19 +1898,19 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - AnnualTimeZoneRule *finalStdRule = nullptr; - - int32_t year, month, dom, dow, doy, mid; -- UBool hasTransitions = FALSE; -+ UBool hasTransitions = false; - TimeZoneTransition tzt; - UBool tztAvail; - UnicodeString name; - UBool isDst; - - // Going through all transitions -- while (TRUE) { -- tztAvail = basictz.getNextTransition(t, FALSE, tzt); -+ while (true) { -+ tztAvail = basictz.getNextTransition(t, false, tzt); - if (!tztAvail) { - break; - } -- hasTransitions = TRUE; -+ hasTransitions = true; - t = tzt.getTime(); - tzt.getTo()->getName(name); - isDst = (tzt.getTo()->getDSTSavings() != 0); -@@ -1919,7 +1919,7 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - int32_t toOffset = tzt.getTo()->getRawOffset() + tzt.getTo()->getDSTSavings(); - Grego::timeToFields(tzt.getTime() + fromOffset, year, month, dom, dow, doy, mid); - int32_t weekInMonth = Grego::dayOfWeekInMonth(year, month, dom); -- UBool sameRule = FALSE; -+ UBool sameRule = false; - const AnnualTimeZoneRule *atzrule; - if (isDst) { - if (finalDstRule == nullptr -@@ -1940,14 +1940,14 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - // Update until time - dstUntilTime = t; - dstCount++; -- sameRule = TRUE; -+ sameRule = true; - } - if (!sameRule) { - if (dstCount == 1) { -- writeZonePropsByTime(w, TRUE, dstName, dstFromOffset, dstToOffset, dstStartTime, -- TRUE, status); -+ writeZonePropsByTime(w, true, dstName, dstFromOffset, dstToOffset, dstStartTime, -+ true, status); - } else { -- writeZonePropsByDOW(w, TRUE, dstName, dstFromOffset, dstToOffset, -+ writeZonePropsByDOW(w, true, dstName, dstFromOffset, dstToOffset, - dstMonth, dstWeekInMonth, dstDayOfWeek, dstStartTime, dstUntilTime, status); - } - if (U_FAILURE(status)) { -@@ -1991,14 +1991,14 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - // Update until time - stdUntilTime = t; - stdCount++; -- sameRule = TRUE; -+ sameRule = true; - } - if (!sameRule) { - if (stdCount == 1) { -- writeZonePropsByTime(w, FALSE, stdName, stdFromOffset, stdToOffset, stdStartTime, -- TRUE, status); -+ writeZonePropsByTime(w, false, stdName, stdFromOffset, stdToOffset, stdStartTime, -+ true, status); - } else { -- writeZonePropsByDOW(w, FALSE, stdName, stdFromOffset, stdToOffset, -+ writeZonePropsByDOW(w, false, stdName, stdFromOffset, stdToOffset, - stdMonth, stdWeekInMonth, stdDayOfWeek, stdStartTime, stdUntilTime, status); - } - if (U_FAILURE(status)) { -@@ -2028,7 +2028,7 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - if (!hasTransitions) { - // No transition - put a single non transition RDATE - int32_t raw, dst, offset; -- basictz.getOffset(0.0/*any time*/, FALSE, raw, dst, status); -+ basictz.getOffset(0.0/*any time*/, false, raw, dst, status); - if (U_FAILURE(status)) { - goto cleanupWriteZone; - } -@@ -2038,7 +2038,7 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - basictz.getID(tzid); - getDefaultTZName(tzid, isDst, name); - writeZonePropsByTime(w, isDst, name, -- offset, offset, DEF_TZSTARTTIME - offset, FALSE, status); -+ offset, offset, DEF_TZSTARTTIME - offset, false, status); - if (U_FAILURE(status)) { - goto cleanupWriteZone; - } -@@ -2046,10 +2046,10 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - if (dstCount > 0) { - if (finalDstRule == nullptr) { - if (dstCount == 1) { -- writeZonePropsByTime(w, TRUE, dstName, dstFromOffset, dstToOffset, dstStartTime, -- TRUE, status); -+ writeZonePropsByTime(w, true, dstName, dstFromOffset, dstToOffset, dstStartTime, -+ true, status); - } else { -- writeZonePropsByDOW(w, TRUE, dstName, dstFromOffset, dstToOffset, -+ writeZonePropsByDOW(w, true, dstName, dstFromOffset, dstToOffset, - dstMonth, dstWeekInMonth, dstDayOfWeek, dstStartTime, dstUntilTime, status); - } - if (U_FAILURE(status)) { -@@ -2057,16 +2057,16 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - } - } else { - if (dstCount == 1) { -- writeFinalRule(w, TRUE, finalDstRule, -+ writeFinalRule(w, true, finalDstRule, - dstFromOffset - dstFromDSTSavings, dstFromDSTSavings, dstStartTime, status); - } else { - // Use a single rule if possible - if (isEquivalentDateRule(dstMonth, dstWeekInMonth, dstDayOfWeek, finalDstRule->getRule())) { -- writeZonePropsByDOW(w, TRUE, dstName, dstFromOffset, dstToOffset, -+ writeZonePropsByDOW(w, true, dstName, dstFromOffset, dstToOffset, - dstMonth, dstWeekInMonth, dstDayOfWeek, dstStartTime, MAX_MILLIS, status); - } else { - // Not equivalent rule - write out two different rules -- writeZonePropsByDOW(w, TRUE, dstName, dstFromOffset, dstToOffset, -+ writeZonePropsByDOW(w, true, dstName, dstFromOffset, dstToOffset, - dstMonth, dstWeekInMonth, dstDayOfWeek, dstStartTime, dstUntilTime, status); - if (U_FAILURE(status)) { - goto cleanupWriteZone; -@@ -2075,7 +2075,7 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - UBool nextStartAvail = finalDstRule->getNextStart(dstUntilTime, dstFromOffset - dstFromDSTSavings, dstFromDSTSavings, false, nextStart); - U_ASSERT(nextStartAvail); - if (nextStartAvail) { -- writeFinalRule(w, TRUE, finalDstRule, -+ writeFinalRule(w, true, finalDstRule, - dstFromOffset - dstFromDSTSavings, dstFromDSTSavings, nextStart, status); - } - } -@@ -2088,10 +2088,10 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - if (stdCount > 0) { - if (finalStdRule == nullptr) { - if (stdCount == 1) { -- writeZonePropsByTime(w, FALSE, stdName, stdFromOffset, stdToOffset, stdStartTime, -- TRUE, status); -+ writeZonePropsByTime(w, false, stdName, stdFromOffset, stdToOffset, stdStartTime, -+ true, status); - } else { -- writeZonePropsByDOW(w, FALSE, stdName, stdFromOffset, stdToOffset, -+ writeZonePropsByDOW(w, false, stdName, stdFromOffset, stdToOffset, - stdMonth, stdWeekInMonth, stdDayOfWeek, stdStartTime, stdUntilTime, status); - } - if (U_FAILURE(status)) { -@@ -2099,16 +2099,16 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - } - } else { - if (stdCount == 1) { -- writeFinalRule(w, FALSE, finalStdRule, -+ writeFinalRule(w, false, finalStdRule, - stdFromOffset - stdFromDSTSavings, stdFromDSTSavings, stdStartTime, status); - } else { - // Use a single rule if possible - if (isEquivalentDateRule(stdMonth, stdWeekInMonth, stdDayOfWeek, finalStdRule->getRule())) { -- writeZonePropsByDOW(w, FALSE, stdName, stdFromOffset, stdToOffset, -+ writeZonePropsByDOW(w, false, stdName, stdFromOffset, stdToOffset, - stdMonth, stdWeekInMonth, stdDayOfWeek, stdStartTime, MAX_MILLIS, status); - } else { - // Not equivalent rule - write out two different rules -- writeZonePropsByDOW(w, FALSE, stdName, stdFromOffset, stdToOffset, -+ writeZonePropsByDOW(w, false, stdName, stdFromOffset, stdToOffset, - stdMonth, stdWeekInMonth, stdDayOfWeek, stdStartTime, stdUntilTime, status); - if (U_FAILURE(status)) { - goto cleanupWriteZone; -@@ -2117,7 +2117,7 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, - UBool nextStartAvail = finalStdRule->getNextStart(stdUntilTime, stdFromOffset - stdFromDSTSavings, stdFromDSTSavings, false, nextStart); - U_ASSERT(nextStartAvail); - if (nextStartAvail) { -- writeFinalRule(w, FALSE, finalStdRule, -+ writeFinalRule(w, false, finalStdRule, - stdFromOffset - stdFromDSTSavings, stdFromDSTSavings, nextStart, status); - } - } -@@ -2447,13 +2447,13 @@ VTimeZone::writeFinalRule(VTZWriter& writer, UBool isDst, const AnnualTimeZoneRu - if (U_FAILURE(status)) { - return; - } -- UBool modifiedRule = TRUE; -+ UBool modifiedRule = true; - const DateTimeRule *dtrule = toWallTimeRule(rule->getRule(), fromRawOffset, fromDSTSavings, status); - if (U_FAILURE(status)) { - return; - } - if (dtrule == nullptr) { -- modifiedRule = FALSE; -+ modifiedRule = false; - dtrule = rule->getRule(); - } - -diff --git a/deps/icu-small/source/i18n/vzone.h b/deps/icu-small/source/i18n/vzone.h -index d1b6d8d820..bf9b45ea20 100644 ---- a/deps/icu-small/source/i18n/vzone.h -+++ b/deps/icu-small/source/i18n/vzone.h -@@ -24,14 +24,12 @@ - #include "unicode/uobject.h" - #include "ztrans.h" - --#ifndef UCNV_H - struct VZone; - /** - * A UnicodeSet. Use the vzone_* API to manipulate. Create with - * vzone_open*, and destroy with vzone_close. - */ - typedef struct VZone VZone; --#endif - - /********************************************************************* - * VZone API -diff --git a/deps/icu-small/source/i18n/windtfmt.cpp b/deps/icu-small/source/i18n/windtfmt.cpp -index f6a990ea29..4676fd0aa1 100644 ---- a/deps/icu-small/source/i18n/windtfmt.cpp -+++ b/deps/icu-small/source/i18n/windtfmt.cpp -@@ -84,7 +84,7 @@ UnicodeString* Win32DateFormat::getTimeDateFormat(const Calendar *cal, const Loc - } - const UChar *resStr = ures_getStringByIndex(patBundle, glueIndex, &resStrLen, &status); - -- result = new UnicodeString(TRUE, resStr, resStrLen); -+ result = new UnicodeString(true, resStr, resStrLen); - - ures_close(patBundle); - ures_close(typBundle); -@@ -102,7 +102,7 @@ static UErrorCode GetEquivalentWindowsLocaleName(const Locale& locale, UnicodeSt - char asciiBCP47Tag[LOCALE_NAME_MAX_LENGTH] = {}; - - // Convert from names like "en_CA" and "de_DE@collation=phonebook" to "en-CA" and "de-DE-u-co-phonebk". -- (void)uloc_toLanguageTag(locale.getName(), asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), FALSE, &status); -+ (void)uloc_toLanguageTag(locale.getName(), asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), false, &status); - - if (U_SUCCESS(status)) - { -@@ -380,7 +380,7 @@ UnicodeString Win32DateFormat::setTimeZoneInfo(TIME_ZONE_INFORMATION *tzi, const - - zone.getID(icuid); - if (! uprv_getWindowsTimeZoneInfo(tzi, icuid.getBuffer(), icuid.length())) { -- UBool found = FALSE; -+ UBool found = false; - int32_t ec = TimeZone::countEquivalentIDs(icuid); - - for (int z = 0; z < ec; z += 1) { -diff --git a/deps/icu-small/source/i18n/winnmfmt.cpp b/deps/icu-small/source/i18n/winnmfmt.cpp -index 8b2a9a4f95..377d1af9bd 100644 ---- a/deps/icu-small/source/i18n/winnmfmt.cpp -+++ b/deps/icu-small/source/i18n/winnmfmt.cpp -@@ -147,7 +147,7 @@ static UErrorCode GetEquivalentWindowsLocaleName(const Locale& locale, UnicodeSt - char asciiBCP47Tag[LOCALE_NAME_MAX_LENGTH] = {}; - - // Convert from names like "en_CA" and "de_DE@collation=phonebook" to "en-CA" and "de-DE-u-co-phonebk". -- (void) uloc_toLanguageTag(locale.getName(), asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), FALSE, &status); -+ (void) uloc_toLanguageTag(locale.getName(), asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), false, &status); - - if (U_SUCCESS(status)) - { -@@ -204,7 +204,7 @@ static UErrorCode GetEquivalentWindowsLocaleName(const Locale& locale, UnicodeSt - } - - Win32NumberFormat::Win32NumberFormat(const Locale &locale, UBool currency, UErrorCode &status) -- : NumberFormat(), fCurrency(currency), fFormatInfo(NULL), fFractionDigitsSet(FALSE), fWindowsLocaleName(nullptr) -+ : NumberFormat(), fCurrency(currency), fFormatInfo(NULL), fFractionDigitsSet(false), fWindowsLocaleName(nullptr) - { - if (!U_FAILURE(status)) { - fLCID = locale.getLCID(); -@@ -325,13 +325,13 @@ void Win32NumberFormat::parse(const UnicodeString& text, Formattable& result, Pa - } - void Win32NumberFormat::setMaximumFractionDigits(int32_t newValue) - { -- fFractionDigitsSet = TRUE; -+ fFractionDigitsSet = true; - NumberFormat::setMaximumFractionDigits(newValue); - } - - void Win32NumberFormat::setMinimumFractionDigits(int32_t newValue) - { -- fFractionDigitsSet = TRUE; -+ fFractionDigitsSet = true; - NumberFormat::setMinimumFractionDigits(newValue); - } - -diff --git a/deps/icu-small/source/i18n/wintzimpl.cpp b/deps/icu-small/source/i18n/wintzimpl.cpp -index a6d9330063..5f70d091be 100644 ---- a/deps/icu-small/source/i18n/wintzimpl.cpp -+++ b/deps/icu-small/source/i18n/wintzimpl.cpp -@@ -39,7 +39,7 @@ U_NAMESPACE_USE - - static UBool getSystemTimeInformation(TimeZone *tz, SYSTEMTIME &daylightDate, SYSTEMTIME &standardDate, int32_t &bias, int32_t &daylightBias, int32_t &standardBias) { - UErrorCode status = U_ZERO_ERROR; -- UBool result = TRUE; -+ UBool result = true; - BasicTimeZone *btz = (BasicTimeZone*)tz; // we should check type - InitialTimeZoneRule *initial = NULL; - AnnualTimeZoneRule *std = NULL, *dst = NULL; -@@ -107,7 +107,7 @@ static UBool getSystemTimeInformation(TimeZone *tz, SYSTEMTIME &daylightDate, SY - daylightDate.wMilliseconds = static_cast(mil); - } - } else { -- result = FALSE; -+ result = false; - } - - delete initial; -@@ -118,7 +118,7 @@ static UBool getSystemTimeInformation(TimeZone *tz, SYSTEMTIME &daylightDate, SY - } - - static UBool getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar *icuid, int32_t length) { -- UBool result = FALSE; -+ UBool result = false; - UnicodeString id = UnicodeString(icuid, length); - TimeZone *tz = TimeZone::createTimeZone(id); - -@@ -137,7 +137,7 @@ static UBool getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar - zoneInfo->DaylightDate = daylightDate; - zoneInfo->StandardDate = standardDate; - -- result = TRUE; -+ result = true; - } - } - -@@ -152,9 +152,9 @@ U_CAPI UBool U_EXPORT2 - uprv_getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar *icuid, int32_t length) - { - if (getWindowsTimeZoneInfo(zoneInfo, icuid, length)) { -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - -diff --git a/deps/icu-small/source/i18n/zonemeta.cpp b/deps/icu-small/source/i18n/zonemeta.cpp -index e60215c998..7cf3a5e131 100644 ---- a/deps/icu-small/source/i18n/zonemeta.cpp -+++ b/deps/icu-small/source/i18n/zonemeta.cpp -@@ -34,21 +34,21 @@ static icu::UMutex gZoneMetaLock; - - // CLDR Canonical ID mapping table - static UHashtable *gCanonicalIDCache = NULL; --static icu::UInitOnce gCanonicalIDCacheInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCanonicalIDCacheInitOnce {}; - - // Metazone mapping table - static UHashtable *gOlsonToMeta = NULL; --static icu::UInitOnce gOlsonToMetaInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gOlsonToMetaInitOnce {}; - - // Available metazone IDs vector and table - static icu::UVector *gMetaZoneIDs = NULL; - static UHashtable *gMetaZoneIDTable = NULL; --static icu::UInitOnce gMetaZoneIDsInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gMetaZoneIDsInitOnce {}; - - // Country info vectors - static icu::UVector *gSingleZoneCountries = NULL; - static icu::UVector *gMultiZonesCountries = NULL; --static icu::UInitOnce gCountryInfoVectorsInitOnce = U_INITONCE_INITIALIZER; -+static icu::UInitOnce gCountryInfoVectorsInitOnce {}; - - U_CDECL_BEGIN - -@@ -85,7 +85,7 @@ static UBool U_CALLCONV zoneMeta_cleanup(void) - gMultiZonesCountries = NULL; - gCountryInfoVectorsInitOnce.reset(); - -- return TRUE; -+ return true; - } - - /** -@@ -266,7 +266,7 @@ ZoneMeta::getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status) { - } - - // If not, resolve CLDR canonical ID with resource data -- UBool isInputCanonical = FALSE; -+ UBool isInputCanonical = false; - char id[ZID_KEY_MAX + 1]; - tzid.extract(0, 0x7fffffff, id, UPRV_LENGTHOF(id), US_INV); - -@@ -286,7 +286,7 @@ ZoneMeta::getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status) { - // type entry (canonical) found - // the input is the canonical ID. resolve to const UChar* - canonicalID = TimeZone::findID(tzid); -- isInputCanonical = TRUE; -+ isInputCanonical = true; - } - - if (canonicalID == NULL) { -@@ -328,7 +328,7 @@ ZoneMeta::getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status) { - canonicalID = canonical; - } else { - canonicalID = derefer; -- isInputCanonical = TRUE; -+ isInputCanonical = true; - } - } - } -@@ -373,7 +373,7 @@ ZoneMeta::getCanonicalCLDRID(const UnicodeString &tzid, UnicodeString &systemID, - systemID.setToBogus(); - return systemID; - } -- systemID.setTo(TRUE, canonicalID, -1); -+ systemID.setTo(true, canonicalID, -1); - return systemID; - } - -@@ -414,7 +414,7 @@ static void U_CALLCONV countryInfoVectorsInit(UErrorCode &status) { - UnicodeString& U_EXPORT2 - ZoneMeta::getCanonicalCountry(const UnicodeString &tzid, UnicodeString &country, UBool *isPrimary /* = NULL */) { - if (isPrimary != NULL) { -- *isPrimary = FALSE; -+ *isPrimary = false; - } - - const UChar *region = TimeZone::getRegion(tzid); -@@ -436,8 +436,8 @@ ZoneMeta::getCanonicalCountry(const UnicodeString &tzid, UnicodeString &country, - } - - // Check if it was already cached -- UBool cached = FALSE; -- UBool singleZone = FALSE; -+ UBool cached = false; -+ UBool singleZone = false; - umtx_lock(&gZoneMetaLock); - { - singleZone = cached = gSingleZoneCountries->contains((void*)region); -@@ -459,7 +459,7 @@ ZoneMeta::getCanonicalCountry(const UnicodeString &tzid, UnicodeString &country, - int32_t idsLen = ids->count(status); - if (U_SUCCESS(status) && idsLen == 1) { - // only the single zone is available for the region -- singleZone = TRUE; -+ singleZone = true; - } - delete ids; - -@@ -481,7 +481,7 @@ ZoneMeta::getCanonicalCountry(const UnicodeString &tzid, UnicodeString &country, - } - - if (singleZone) { -- *isPrimary = TRUE; -+ *isPrimary = true; - } else { - // Note: We may cache the primary zone map in future. - -@@ -497,13 +497,13 @@ ZoneMeta::getCanonicalCountry(const UnicodeString &tzid, UnicodeString &country, - const UChar *primaryZone = ures_getStringByKey(rb, regionBuf, &idLen, &status); - if (U_SUCCESS(status)) { - if (tzid.compare(primaryZone, idLen) == 0) { -- *isPrimary = TRUE; -+ *isPrimary = true; - } else { - // The given ID might not be a canonical ID - UnicodeString canonicalID; - TimeZone::getCanonicalID(tzid, canonicalID, status); - if (U_SUCCESS(status) && canonicalID.compare(primaryZone, idLen) == 0) { -- *isPrimary = TRUE; -+ *isPrimary = true; - } - } - } -@@ -516,14 +516,14 @@ ZoneMeta::getCanonicalCountry(const UnicodeString &tzid, UnicodeString &country, - - UnicodeString& U_EXPORT2 - ZoneMeta::getMetazoneID(const UnicodeString &tzid, UDate date, UnicodeString &result) { -- UBool isSet = FALSE; -+ UBool isSet = false; - const UVector *mappings = getMetazoneMappings(tzid); - if (mappings != NULL) { - for (int32_t i = 0; i < mappings->size(); i++) { - OlsonToMetaMappingEntry *mzm = (OlsonToMetaMappingEntry*)mappings->elementAt(i); - if (mzm->from <= date && mzm->to > date) { - result.setTo(mzm->mzid, -1); -- isSet = TRUE; -+ isSet = true; - break; - } - } -@@ -828,10 +828,10 @@ ZoneMeta::findTimeZoneID(const UnicodeString& tzid) { - - TimeZone* - ZoneMeta::createCustomTimeZone(int32_t offset) { -- UBool negative = FALSE; -+ UBool negative = false; - int32_t tmp = offset; - if (offset < 0) { -- negative = TRUE; -+ negative = true; - tmp = -offset; - } - uint8_t hour, min, sec; -diff --git a/deps/icu-small/source/i18n/zonemeta.h b/deps/icu-small/source/i18n/zonemeta.h -index dd4fec957f..97c0e6057d 100644 ---- a/deps/icu-small/source/i18n/zonemeta.h -+++ b/deps/icu-small/source/i18n/zonemeta.h -@@ -113,7 +113,7 @@ public: - static const UChar* U_EXPORT2 getShortID(const UnicodeString& id); - - private: -- ZoneMeta(); // Prevent construction. -+ ZoneMeta() = delete; // Prevent construction. - static UVector* createMetazoneMappings(const UnicodeString &tzid); - static UnicodeString& formatCustomID(uint8_t hour, uint8_t min, uint8_t sec, UBool negative, UnicodeString& id); - static const UChar* getShortIDFromCanonical(const UChar* canonicalID); -diff --git a/deps/icu-small/source/i18n/zrule.h b/deps/icu-small/source/i18n/zrule.h -index f395ad4c3f..2bea64c6d4 100644 ---- a/deps/icu-small/source/i18n/zrule.h -+++ b/deps/icu-small/source/i18n/zrule.h -@@ -20,8 +20,6 @@ - - #include "unicode/uobject.h" - --#ifndef UCNV_H -- - /** - * A TimeZoneRule. Use the zrule_* API to manipulate. Create with - * zrule_open*, and destroy with zrule_close. -@@ -43,8 +41,6 @@ typedef struct IZRule IZRule; - struct AZRule; - typedef struct AZRule AZRule; - --#endif -- - /********************************************************************* - * ZRule API - *********************************************************************/ -diff --git a/deps/icu-small/source/i18n/ztrans.h b/deps/icu-small/source/i18n/ztrans.h -index b23bb4fc70..a1f3910055 100644 ---- a/deps/icu-small/source/i18n/ztrans.h -+++ b/deps/icu-small/source/i18n/ztrans.h -@@ -20,8 +20,6 @@ - - #include "unicode/uobject.h" - --#ifndef UCNV_H -- - /** - * A TimeZoneTransition. Use the ztrans_* API to manipulate. Create with - * ztrans_open*, and destroy with ztrans_close. -@@ -29,8 +27,6 @@ - struct ZTrans; - typedef struct ZTrans ZTrans; - --#endif -- - /** - * Constructs a time zone transition with the time and the rules before/after - * the transition. -diff --git a/deps/icu-small/source/stubdata/BUILD.bazel b/deps/icu-small/source/stubdata/BUILD.bazel -index abb73519ec..20344ef499 100644 ---- a/deps/icu-small/source/stubdata/BUILD.bazel -+++ b/deps/icu-small/source/stubdata/BUILD.bazel -@@ -16,6 +16,7 @@ package( - cc_library( - name = "stubdata", - srcs = ["stubdata.cpp"], -+ hdrs = ["stubdata.h"], - deps = ["//icu4c/source/common:headers"], - local_defines = [ - "U_COMMON_IMPLEMENTATION", -diff --git a/deps/icu-small/source/stubdata/stubdata.cpp b/deps/icu-small/source/stubdata/stubdata.cpp -index 0fcab4faa8..3f33661242 100644 ---- a/deps/icu-small/source/stubdata/stubdata.cpp -+++ b/deps/icu-small/source/stubdata/stubdata.cpp -@@ -19,26 +19,8 @@ - * for running the data building tools. - * - */ --#include "unicode/utypes.h" --#include "unicode/udata.h" --#include "unicode/uversion.h" - -- --typedef struct { -- uint16_t headerSize; -- uint8_t magic1, magic2; -- UDataInfo info; -- char padding[8]; -- uint32_t count, reserved; -- /* -- const struct { -- const char *const name; -- const void *const data; -- } toc[1]; -- */ -- int fakeNameAndData[4]; /* TODO: Change this header type from */ -- /* pointerTOC to OffsetTOC. */ --} ICU_Data_Header; -+#include "stubdata.h" - - extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = { - 32, /* headerSize */ -diff --git a/deps/icu-small/source/stubdata/stubdata.h b/deps/icu-small/source/stubdata/stubdata.h -new file mode 100644 -index 0000000000..9879f40164 ---- /dev/null -+++ b/deps/icu-small/source/stubdata/stubdata.h -@@ -0,0 +1,52 @@ -+// © 2016 and later: Unicode, Inc. and others. -+// License & terms of use: http://www.unicode.org/copyright.html -+/****************************************************************************** -+* -+* Copyright (C) 2001, International Business Machines -+* Corporation and others. All Rights Reserved. -+* -+******************************************************************************* -+* file name: stubdata.h -+* -+* This header file is intended to be internal and only included in the -+* accompanying implementation file. This file declares a single entry -+* point for visibility of tools like TAPI. -+* -+* Define initialized data that will build into a valid, but empty -+* ICU data library. Used to bootstrap the ICU build, which has these -+* dependencies: -+* ICU Common library depends on ICU data -+* ICU data requires data building tools. -+* ICU data building tools require the ICU common library. -+* -+* The stub data library (for which this file is the source) is sufficient -+* for running the data building tools. -+* -+*/ -+ -+#ifndef __STUBDATA_H__ -+#define __STUBDATA_H__ -+ -+#include "unicode/utypes.h" -+#include "unicode/udata.h" -+#include "unicode/uversion.h" -+ -+typedef struct { -+ uint16_t headerSize; -+ uint8_t magic1, magic2; -+ UDataInfo info; -+ char padding[8]; -+ uint32_t count, reserved; -+ /* -+ const struct { -+ const char *const name; -+ const void *const data; -+ } toc[1]; -+ */ -+ int fakeNameAndData[4]; /* TODO: Change this header type from */ -+ /* pointerTOC to OffsetTOC. */ -+} ICU_Data_Header; -+ -+extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT; -+ -+#endif /* __STUBDATA_H__ */ -diff --git a/deps/icu-small/source/tools/genccode/genccode.c b/deps/icu-small/source/tools/genccode/genccode.c -index c5bbdf60d7..219335f183 100644 ---- a/deps/icu-small/source/tools/genccode/genccode.c -+++ b/deps/icu-small/source/tools/genccode/genccode.c -@@ -48,6 +48,7 @@ - # define ICU_ENTRY_OFFSET 0 - #endif - -+#include - #include - #include - #include "unicode/putil.h" -@@ -96,7 +97,7 @@ static UOption options[]={ - #define CALL_WRITEOBJECT 'o' - extern int - main(int argc, char* argv[]) { -- UBool verbose = TRUE; -+ UBool verbose = true; - char writeCode; - - U_MAIN_INIT_ARGS(argc, argv); -@@ -166,7 +167,7 @@ main(int argc, char* argv[]) { - /* TODO: remove writeCode=&writeCCode; */ - } - if (options[kOptQuiet].doesOccur) { -- verbose = FALSE; -+ verbose = false; - } - while(--argc) { - filename=getLongPathname(argv[argc]); -diff --git a/deps/icu-small/source/tools/genrb/derb.cpp b/deps/icu-small/source/tools/genrb/derb.cpp -index 70546e1915..aba5c59529 100644 ---- a/deps/icu-small/source/tools/genrb/derb.cpp -+++ b/deps/icu-small/source/tools/genrb/derb.cpp -@@ -40,7 +40,7 @@ - - static const int32_t indentsize = 4; - static int32_t truncsize = DERB_DEFAULT_TRUNC; --static UBool opt_truncate = FALSE; -+static UBool opt_truncate = false; - - static const char *getEncodingName(const char *encoding); - static void reportError(const char *pname, UErrorCode *status, const char *when); -@@ -66,8 +66,8 @@ static UOption options[]={ - /* 11 */ { "suppressAliases", NULL, NULL, NULL, 'A', UOPT_NO_ARG, 0 }, - }; - --static UBool verbose = FALSE; --static UBool suppressAliases = FALSE; -+static UBool verbose = false; -+static UBool suppressAliases = false; - static UFILE *ustderr = NULL; - - extern int -@@ -140,18 +140,18 @@ main(int argc, char* argv[]) { - } - - if(options[4].doesOccur) { -- opt_truncate = TRUE; -+ opt_truncate = true; - if(options[4].value != NULL) { - truncsize = atoi(options[4].value); /* user defined printable size */ - } else { - truncsize = DERB_DEFAULT_TRUNC; /* we'll use default omitting size */ - } - } else { -- opt_truncate = FALSE; -+ opt_truncate = false; - } - - if(options[5].doesOccur) { -- verbose = TRUE; -+ verbose = true; - } - - if (options[6].doesOccur) { -@@ -171,7 +171,7 @@ main(int argc, char* argv[]) { - } - - if (options[11].doesOccur) { -- suppressAliases = TRUE; -+ suppressAliases = true; - } - - fflush(stderr); // use ustderr now. -@@ -577,7 +577,7 @@ static void printOutBundle(UFILE *out, UResourceBundle *resource, int32_t indent - } - printString(out, cr, UPRV_LENGTHOF(cr)); - -- if(suppressAliases == FALSE) { -+ if(suppressAliases == false) { - while(U_SUCCESS(*status) && ures_hasNext(resource)) { - t = ures_getNextResource(resource, t, status); - if(U_SUCCESS(*status)) { -diff --git a/deps/icu-small/source/tools/genrb/errmsg.c b/deps/icu-small/source/tools/genrb/errmsg.c -index 91dfd3265e..a99d797ec5 100644 ---- a/deps/icu-small/source/tools/genrb/errmsg.c -+++ b/deps/icu-small/source/tools/genrb/errmsg.c -@@ -18,6 +18,7 @@ - */ - - #include -+#include - #include - #include "cstring.h" - #include "errmsg.h" -@@ -34,7 +35,7 @@ U_CFUNC void error(uint32_t linenumber, const char *msg, ...) - va_end(va); - } - --static UBool gShowWarning = TRUE; -+static UBool gShowWarning = true; - - U_CFUNC void setShowWarning(UBool val) - { -@@ -45,14 +46,14 @@ U_CFUNC UBool getShowWarning(){ - return gShowWarning; - } - --static UBool gStrict =FALSE; -+static UBool gStrict =false; - U_CFUNC UBool isStrict(){ - return gStrict; - } - U_CFUNC void setStrict(UBool val){ - gStrict = val; - } --static UBool gVerbose =FALSE; -+static UBool gVerbose =false; - U_CFUNC UBool isVerbose(){ - return gVerbose; - } -diff --git a/deps/icu-small/source/tools/genrb/genrb.cpp b/deps/icu-small/source/tools/genrb/genrb.cpp -index a739b91143..9deca097e9 100644 ---- a/deps/icu-small/source/tools/genrb/genrb.cpp -+++ b/deps/icu-small/source/tools/genrb/genrb.cpp -@@ -33,6 +33,7 @@ - #include "filterrb.h" - #include "reslist.h" - #include "ucmndata.h" /* TODO: for reading the pool bundle */ -+#include "collationroot.h" - - U_NAMESPACE_USE - -@@ -84,7 +85,9 @@ enum - WRITE_POOL_BUNDLE, - USE_POOL_BUNDLE, - INCLUDE_UNIHAN_COLL, -- FILTERDIR -+ FILTERDIR, -+ ICU4X_MODE, -+ UCADATA - }; - - UOption options[]={ -@@ -111,10 +114,12 @@ UOption options[]={ - UOPTION_DEF("usePoolBundle", '\x01', UOPT_OPTIONAL_ARG),/* 20 */ - UOPTION_DEF("includeUnihanColl", '\x01', UOPT_NO_ARG),/* 21 */ /* temporary, don't display in usage info */ - UOPTION_DEF("filterDir", '\x01', UOPT_OPTIONAL_ARG), /* 22 */ -+ UOPTION_DEF("icu4xMode", 'X', UOPT_NO_ARG),/* 23 */ -+ UOPTION_DEF("ucadata", '\x01', UOPT_REQUIRES_ARG),/* 24 */ - }; - --static UBool write_java = FALSE; --static UBool write_xliff = FALSE; -+static UBool write_java = false; -+static UBool write_xliff = false; - static const char* outputEnc =""; - - static ResFile poolBundle; -@@ -133,7 +138,7 @@ main(int argc, - const char *filterDir = NULL; - const char *encoding = ""; - int i; -- UBool illegalArg = FALSE; -+ UBool illegalArg = false; - - U_MAIN_INIT_ARGS(argc, argv); - -@@ -144,24 +149,28 @@ main(int argc, - /* error handling, printing usage message */ - if(argc<0) { - fprintf(stderr, "%s: error in command line argument \"%s\"\n", argv[0], argv[-argc]); -- illegalArg = TRUE; -+ illegalArg = true; - } else if(argc<2) { -- illegalArg = TRUE; -+ illegalArg = true; - } - if(options[WRITE_POOL_BUNDLE].doesOccur && options[USE_POOL_BUNDLE].doesOccur) { - fprintf(stderr, "%s: cannot combine --writePoolBundle and --usePoolBundle\n", argv[0]); -- illegalArg = TRUE; -+ illegalArg = true; -+ } -+ if (options[ICU4X_MODE].doesOccur && !options[UCADATA].doesOccur) { -+ fprintf(stderr, "%s: --icu4xMode requires --ucadata\n", argv[0]); -+ illegalArg = true; - } - if(options[FORMAT_VERSION].doesOccur) { - const char *s = options[FORMAT_VERSION].value; - if(uprv_strlen(s) != 1 || (s[0] < '1' && '3' < s[0])) { - fprintf(stderr, "%s: unsupported --formatVersion %s\n", argv[0], s); -- illegalArg = TRUE; -+ illegalArg = true; - } else if(s[0] == '1' && - (options[WRITE_POOL_BUNDLE].doesOccur || options[USE_POOL_BUNDLE].doesOccur) - ) { - fprintf(stderr, "%s: cannot combine --formatVersion 1 with --writePoolBundle or --usePoolBundle\n", argv[0]); -- illegalArg = TRUE; -+ illegalArg = true; - } else { - setFormatVersion(s[0] - '0'); - } -@@ -173,7 +182,7 @@ main(int argc, - "%s error: command line argument --java-package or --bundle-name " - "without --write-java\n", - argv[0]); -- illegalArg = TRUE; -+ illegalArg = true; - } - - if(options[VERSION].doesOccur) { -@@ -246,17 +255,17 @@ main(int argc, - } - - if(options[VERBOSE].doesOccur) { -- setVerbose(TRUE); -+ setVerbose(true); - } - - if(options[QUIET].doesOccur) { -- setShowWarning(FALSE); -+ setShowWarning(false); - } - if(options[STRICT].doesOccur) { -- setStrict(TRUE); -+ setStrict(true); - } - if(options[COPYRIGHT].doesOccur){ -- setIncludeCopyright(TRUE); -+ setIncludeCopyright(true); - } - - if(options[SOURCEDIR].doesOccur) { -@@ -291,17 +300,26 @@ main(int argc, - } - status = U_ZERO_ERROR; - if(options[WRITE_JAVA].doesOccur) { -- write_java = TRUE; -+ write_java = true; - outputEnc = options[WRITE_JAVA].value; - } - - if(options[WRITE_XLIFF].doesOccur) { -- write_xliff = TRUE; -+ write_xliff = true; - if(options[WRITE_XLIFF].value != NULL){ - xliffOutputFileName = options[WRITE_XLIFF].value; - } - } - -+ if (options[UCADATA].doesOccur) { -+#if !UCONFIG_NO_COLLATION -+ CollationRoot::forceLoadFromFile(options[UCADATA].value, status); -+#else -+ fprintf(stderr, "--ucadata was used with UCONFIG_NO_COLLATION\n"); -+ return status; -+#endif -+ } -+ - initParser(); - - /*added by Jing*/ -@@ -311,7 +329,7 @@ main(int argc, - - LocalPointer newPoolBundle; - if(options[WRITE_POOL_BUNDLE].doesOccur) { -- newPoolBundle.adoptInsteadAndCheckErrorCode(new SRBRoot(NULL, TRUE, status), status); -+ newPoolBundle.adoptInsteadAndCheckErrorCode(new SRBRoot(NULL, true, status), status); - if(U_FAILURE(status)) { - fprintf(stderr, "unable to create an empty bundle for the pool keys: %s\n", u_errorName(status)); - return status; -@@ -494,7 +512,7 @@ main(int argc, - } - - T_FileStream_close(poolFile); -- setUsePoolBundle(TRUE); -+ setUsePoolBundle(true); - if (isVerbose() && poolBundle.fStrings != NULL) { - printf("number of shared strings: %d\n", (int)poolBundle.fStrings->fCount); - int32_t length = poolBundle.fStringIndexLimit + 1; // incl. last NUL -@@ -639,7 +657,7 @@ processFile(const char *filename, const char *cp, - return; - } - -- ucbuf.adoptInstead(ucbuf_open(openFileName.data(), &cp,getShowWarning(),TRUE, &status)); -+ ucbuf.adoptInstead(ucbuf_open(openFileName.data(), &cp,getShowWarning(),true, &status)); - if(status == U_FILE_ACCESS_ERROR) { - - fprintf(stderr, "couldn't open file %s\n", openFileName.data()); -@@ -656,7 +674,7 @@ processFile(const char *filename, const char *cp, - } - /* Parse the data into an SRBRoot */ - data.adoptInstead(parse(ucbuf.getAlias(), inputDir, outputDir, filename, -- !omitBinaryCollation, options[NO_COLLATION_RULES].doesOccur, &status)); -+ !omitBinaryCollation, options[NO_COLLATION_RULES].doesOccur, options[ICU4X_MODE].doesOccur, &status)); - - if (data.isNull() || U_FAILURE(status)) { - fprintf(stderr, "couldn't parse the file %s. Error:%s\n", filename, u_errorName(status)); -@@ -730,11 +748,11 @@ processFile(const char *filename, const char *cp, - filename, u_errorName(status)); - return; - } -- if(write_java== TRUE){ -+ if(write_java== true){ - bundle_write_java(data.getAlias(), outputDir, outputEnc, - outputFileName, sizeof(outputFileName), - options[JAVA_PACKAGE].value, options[BUNDLE_NAME].value, &status); -- }else if(write_xliff ==TRUE){ -+ }else if(write_xliff ==true){ - bundle_write_xml(data.getAlias(), outputDir, outputEnc, - filename, outputFileName, sizeof(outputFileName), - language, xliffOutputFileName, &status); -diff --git a/deps/icu-small/source/tools/genrb/parse.cpp b/deps/icu-small/source/tools/genrb/parse.cpp -index 7d5ffe1fc7..2c5d495243 100644 ---- a/deps/icu-small/source/tools/genrb/parse.cpp -+++ b/deps/icu-small/source/tools/genrb/parse.cpp -@@ -21,6 +21,8 @@ - */ - - // Safer use of UnicodeString. -+#include -+#include "unicode/umachine.h" - #ifndef UNISTR_FROM_CHAR_EXPLICIT - # define UNISTR_FROM_CHAR_EXPLICIT explicit - #endif -@@ -42,6 +44,7 @@ - #include "reslist.h" - #include "rbt_pars.h" - #include "genrb.h" -+#include "unicode/normalizer2.h" - #include "unicode/stringpiece.h" - #include "unicode/unistr.h" - #include "unicode/ustring.h" -@@ -59,6 +62,7 @@ - #include "collationruleparser.h" - #include "collationtailoring.h" - #include -+#include "writesrc.h" - - /* Number of tokens to read ahead of the current stream position */ - #define MAX_LOOKAHEAD 3 -@@ -76,6 +80,9 @@ - #define OPENSQBRACKET 0x005B - #define CLOSESQBRACKET 0x005D - -+#define ICU4X_DIACRITIC_BASE 0x0300 -+#define ICU4X_DIACRITIC_LIMIT 0x034F -+ - using icu::CharString; - using icu::LocalMemory; - using icu::LocalPointer; -@@ -119,6 +126,7 @@ typedef struct { - const char *filename; - UBool makeBinaryCollation; - UBool omitCollationRules; -+ UBool icu4xMode; - } ParseState; - - typedef struct SResource * -@@ -315,7 +323,7 @@ parseUCARules(ParseState* state, char *tag, uint32_t startline, const struct USt - char filename[256] = { '\0' }; - char cs[128] = { '\0' }; - uint32_t line; -- UBool quoted = FALSE; -+ UBool quoted = false; - UCHARBUF *ucbuf=NULL; - UChar32 c = 0; - const char* cp = NULL; -@@ -359,7 +367,7 @@ parseUCARules(ParseState* state, char *tag, uint32_t startline, const struct USt - return res_none(); - } - -- ucbuf = ucbuf_open(filename, &cp, getShowWarning(),FALSE, status); -+ ucbuf = ucbuf_open(filename, &cp, getShowWarning(),false, status); - - if (U_FAILURE(*status)) { - error(line, "An error occurred while opening the input file %s\n", filename); -@@ -497,7 +505,7 @@ parseTransliterator(ParseState* state, char *tag, uint32_t startline, const stru - uprv_strcat(filename, cs); - - -- ucbuf = ucbuf_open(filename, &cp, getShowWarning(),FALSE, status); -+ ucbuf = ucbuf_open(filename, &cp, getShowWarning(),false, status); - - if (U_FAILURE(*status)) { - error(line, "An error occurred while opening the input file %s\n", filename); -@@ -752,7 +760,7 @@ GenrbImporter::getRules( - // printf("GenrbImporter::getRules(%s, %s) reads %s\n", localeID, collationType, openFileName.data()); - const char* cp = ""; - LocalUCHARBUFPointer ucbuf( -- ucbuf_open(openFileName.data(), &cp, getShowWarning(), TRUE, &errorCode)); -+ ucbuf_open(openFileName.data(), &cp, getShowWarning(), true, &errorCode)); - if(errorCode == U_FILE_ACCESS_ERROR) { - fprintf(stderr, "couldn't open file %s\n", openFileName.data()); - return; -@@ -764,7 +772,7 @@ GenrbImporter::getRules( - - /* Parse the data into an SRBRoot */ - LocalPointer data( -- parse(ucbuf.getAlias(), inputDir, outputDir, filename.data(), FALSE, FALSE, &errorCode)); -+ parse(ucbuf.getAlias(), inputDir, outputDir, filename.data(), false, false, false, &errorCode)); - if (U_FAILURE(errorCode)) { - return; - } -@@ -807,6 +815,333 @@ escape(const UChar *s, char *buffer) { - - } // namespace - -+static FILE* -+openTOML(const char* outputdir, const char* name, const char* collationType, const char* structType, UErrorCode *status) { -+ CharString baseName; -+ baseName.append(name, *status); -+ baseName.append("_", *status); -+ baseName.append(collationType, *status); -+ baseName.append("_", *status); -+ baseName.append(structType, *status); -+ -+ CharString outFileName; -+ if (outputdir && *outputdir) { -+ outFileName.append(outputdir, *status).ensureEndsWithFileSeparator(*status); -+ } -+ outFileName.append(baseName, *status); -+ outFileName.append(".toml", *status); -+ if (U_FAILURE(*status)) { -+ return NULL; -+ } -+ -+ FILE* f = fopen(outFileName.data(), "w"); -+ if (!f) { -+ *status = U_FILE_ACCESS_ERROR; -+ return NULL; -+ } -+ usrc_writeFileNameGeneratedBy(f, "#", baseName.data(), "genrb -X"); -+ -+ return f; -+} -+ -+static void -+writeCollationMetadataTOML(const char* outputdir, const char* name, const char* collationType, const uint32_t metadataBits, UErrorCode *status) { -+ FILE* f = openTOML(outputdir, name, collationType, "meta", status); -+ if (!f) { -+ return; -+ } -+ // printf("writeCollationMetadataTOML %s %s\n", name, collationType); -+ fprintf(f, "bits = 0x%X\n", metadataBits); -+ fclose(f); -+} -+ -+static UChar32 -+writeCollationDiacriticsTOML(const char* outputdir, const char* name, const char* collationType, const icu::CollationData* data, UErrorCode *status) { -+ UChar32 limit = ICU4X_DIACRITIC_LIMIT; -+ FILE* f = openTOML(outputdir, name, collationType, "dia", status); -+ if (!f) { -+ return limit; -+ } -+ // printf("writeCollationDiacriticsTOML %s %s\n", name, collationType); -+ uint16_t secondaries[ICU4X_DIACRITIC_LIMIT-ICU4X_DIACRITIC_BASE]; -+ for (UChar32 c = ICU4X_DIACRITIC_BASE; c < ICU4X_DIACRITIC_LIMIT; ++c) { -+ uint16_t secondary = 0; -+ uint32_t ce32 = data->getCE32(c); -+ if (ce32 == icu::Collation::FALLBACK_CE32) { -+ ce32 = data->base->getCE32(c); -+ } -+ if (c == 0x0340 || c == 0x0341 || c == 0x0343 || c == 0x0344) { -+ // These never occur in NFD data -+ } else if (!icu::Collation::isSimpleOrLongCE32(ce32)) { -+ if (uprv_strcmp(name, "root") == 0) { -+ printf("UNSUPPORTED DIACRITIC CE32 in root: TAG: %X CE32: %X char: %X\n", icu::Collation::tagFromCE32(ce32), ce32, c); -+ fclose(f); -+ *status = U_INTERNAL_PROGRAM_ERROR; -+ return limit; -+ } -+ limit = c; -+ break; -+ } else { -+ uint64_t ce = uint64_t(icu::Collation::ceFromCE32(ce32)); -+ if ((ce & 0xFFFFFFFF0000FFFF) != uint64_t(icu::Collation::COMMON_TERTIARY_CE)) { -+ // Not a CE where only the secondary weight differs from the expected -+ // pattern. -+ limit = c; -+ break; -+ } -+ secondary = uint16_t(ce >> 16); -+ } -+ secondaries[c - ICU4X_DIACRITIC_BASE] = secondary; -+ -+ } -+ usrc_writeArray(f, "secondaries = [\n ", secondaries, 16, limit-ICU4X_DIACRITIC_BASE, " ", "\n]\n"); -+ fclose(f); -+ return limit; -+} -+ -+static void -+writeCollationReorderingTOML(const char* outputdir, const char* name, const char* collationType, const icu::CollationSettings* settings, UErrorCode *status) { -+ FILE* f = openTOML(outputdir, name, collationType, "reord", status); -+ if (!f) { -+ return; -+ } -+ // printf("writeCollationReorderingTOML %s %s\n", name, collationType); -+ fprintf(f, "min_high_no_reorder = 0x%X\n", settings->minHighNoReorder); -+ usrc_writeArray(f, "reorder_table = [\n ", settings->reorderTable, 8, 256, " ", "\n]\n"); -+ usrc_writeArray(f, "reorder_ranges = [\n ", settings->reorderRanges, 32, settings->reorderRangesLength, " ", "\n]\n"); -+ fclose(f); -+} -+ -+ -+static void -+writeCollationJamoTOML(const char* outputdir, const char* name, const char* collationType, const icu::CollationData* data, UErrorCode *status) { -+ FILE* f = openTOML(outputdir, name, collationType, "jamo", status); -+ if (!f) { -+ printf("writeCollationJamoTOML FAILED TO OPEN FILE %s %s\n", name, collationType); -+ return; -+ } -+ uint32_t jamo[0x1200-0x1100]; -+ for (UChar32 c = 0x1100; c < 0x1200; ++c) { -+ uint32_t ce32 = data->getCE32(c); -+ if (ce32 == icu::Collation::FALLBACK_CE32) { -+ ce32 = data->base->getCE32(c); -+ } -+ // Can't reject complex CE32s, because search collations have expansions. -+ // These expansions refer to the tailoring, which foils the reuse of the -+ // these jamo tables. -+ // XXX Figure out what to do. Perhaps instead of having Latin mini expansions, -+ // there should be Hangul mini expansions. -+ // XXX in any case, validate that modern jamo are self-contained. -+ jamo[c - 0x1100] = ce32; -+ -+ } -+ usrc_writeArray(f, "ce32s = [\n ", jamo, 32, 0x1200-0x1100, " ", "\n]\n"); -+ fclose(f); -+} -+ -+static UBool -+convertTrie(const void *context, UChar32 start, UChar32 end, uint32_t value) { -+ if (start >= 0x1100 && start < 0x1200 && end >= 0x1100 && end < 0x1200) { -+ // Range entirely in conjoining jamo block. -+ return true; -+ } -+ icu::IcuToolErrorCode status("genrb: convertTrie"); -+ umutablecptrie_setRange((UMutableCPTrie*)context, start, end, value, status); -+ return !U_FAILURE(*status); -+} -+ -+static void -+writeCollationDataTOML(const char* outputdir, const char* name, const char* collationType, const icu::CollationData* data, UBool root, UChar32 diacriticLimit, UErrorCode *status) { -+ FILE* f = openTOML(outputdir, name, collationType, "data", status); -+ if (!f) { -+ return; -+ } -+ // printf("writeCollationDataTOML %s %s\n", name, collationType); -+ -+ icu::UnicodeSet tailoringSet; -+ -+ if (data->base) { -+ tailoringSet.addAll(*(data->unsafeBackwardSet)); -+ tailoringSet.removeAll(*(data->base->unsafeBackwardSet)); -+ } else { -+ tailoringSet.addAll(*(data->unsafeBackwardSet)); -+ } -+ -+ // Use the same value for out-of-range and default in the hope of not having to allocate -+ // different blocks, since ICU4X never does out-of-range queries. -+ uint32_t trieDefault = root ? icu::Collation::UNASSIGNED_CE32 : icu::Collation::FALLBACK_CE32; -+ icu::LocalUMutableCPTriePointer builder(umutablecptrie_open(trieDefault, trieDefault, status)); -+ -+ utrie2_enum(data->trie, NULL, &convertTrie, builder.getAlias()); -+ -+ // If the diacritic table was cut short, copy CE32s between the lowered -+ // limit and the max limit from the root to the tailoring. As of June 2022, -+ // no collation in CLDR needs this. -+ for (UChar32 c = diacriticLimit; c < ICU4X_DIACRITIC_LIMIT; ++c) { -+ if (c == 0x0340 || c == 0x0341 || c == 0x0343 || c == 0x0344) { -+ // These never occur in NFD data. -+ continue; -+ } -+ uint32_t ce32 = data->getCE32(c); -+ if (ce32 == icu::Collation::FALLBACK_CE32) { -+ ce32 = data->base->getCE32(c); -+ umutablecptrie_set(builder.getAlias(), c, ce32, status); -+ } -+ } -+ -+ // Ensure that the range covered by the diacritic table isn't duplicated -+ // in the trie. -+ for (UChar32 c = ICU4X_DIACRITIC_BASE; c < diacriticLimit; ++c) { -+ if (umutablecptrie_get(builder.getAlias(), c) != trieDefault) { -+ umutablecptrie_set(builder.getAlias(), c, trieDefault, status); -+ } -+ } -+ -+ icu::LocalUCPTriePointer utrie(umutablecptrie_buildImmutable( -+ builder.getAlias(), -+ UCPTRIE_TYPE_SMALL, -+ UCPTRIE_VALUE_BITS_32, -+ status)); -+ usrc_writeArray(f, "contexts = [\n ", data->contexts, 16, data->contextsLength, " ", "\n]\n"); -+ usrc_writeArray(f, "ce32s = [\n ", data->ce32s, 32, data->ce32sLength, " ", "\n]\n"); -+ usrc_writeArray(f, "ces = [\n ", data->ces, 64, data->cesLength, " ", "\n]\n"); -+ fprintf(f, "[trie]\n"); -+ usrc_writeUCPTrie(f, "trie", utrie.getAlias(), UPRV_TARGET_SYNTAX_TOML); -+ -+ fclose(f); -+} -+ -+static void -+writeCollationSpecialPrimariesTOML(const char* outputdir, const char* name, const char* collationType, const icu::CollationData* data, UErrorCode *status) { -+ FILE* f = openTOML(outputdir, name, collationType, "prim", status); -+ if (!f) { -+ return; -+ } -+ // printf("writeCollationSpecialPrimariesTOML %s %s\n", name, collationType); -+ -+ uint16_t lastPrimaries[4]; -+ for (int32_t i = 0; i < 4; ++i) { -+ // getLastPrimaryForGroup subtracts one from a 16-bit value, so we add one -+ // back to get a value that fits in 16 bits. -+ lastPrimaries[i] = (uint16_t)((data->getLastPrimaryForGroup(UCOL_REORDER_CODE_FIRST + i) + 1) >> 16); -+ } -+ -+ uint32_t numericPrimary = data->numericPrimary; -+ if (numericPrimary & 0xFFFFFF) { -+ printf("Lower 24 bits set in numeric primary"); -+ *status = U_INTERNAL_PROGRAM_ERROR; -+ return; -+ } -+ -+ usrc_writeArray(f, "last_primaries = [\n ", lastPrimaries, 16, 4, " ", "\n]\n"); -+ fprintf(f, "numeric_primary = 0x%X\n", numericPrimary >> 24); -+ fclose(f); -+} -+ -+static void -+writeCollationTOML(const char* outputdir, const char* name, const char* collationType, const icu::CollationData* data, const icu::CollationSettings* settings, UErrorCode *status) { -+ UBool tailored = false; -+ UBool tailoredDiacritics = false; -+ UBool lithuanianDotAbove = (uprv_strcmp(name, "lt") == 0); -+ UBool reordering = false; -+ UBool isRoot = uprv_strcmp(name, "root") == 0; -+ UChar32 diacriticLimit = ICU4X_DIACRITIC_LIMIT; -+ if (!data->base && isRoot) { -+ diacriticLimit = writeCollationDiacriticsTOML(outputdir, name, collationType, data, status); -+ if (U_FAILURE(*status)) { -+ return; -+ } -+ writeCollationJamoTOML(outputdir, name, collationType, data, status); -+ if (U_FAILURE(*status)) { -+ return; -+ } -+ writeCollationSpecialPrimariesTOML(outputdir, name, collationType, data, status); -+ if (U_FAILURE(*status)) { -+ return; -+ } -+ } else if (data->base && !lithuanianDotAbove) { -+ for (UChar32 c = ICU4X_DIACRITIC_BASE; c < ICU4X_DIACRITIC_LIMIT; ++c) { -+ if (c == 0x0340 || c == 0x0341 || c == 0x0343 || c == 0x0344) { -+ // These never occur in NFD data. -+ continue; -+ } -+ uint32_t ce32 = data->getCE32(c); -+ if ((ce32 != icu::Collation::FALLBACK_CE32) && (ce32 != data->base->getCE32(c))) { -+ tailoredDiacritics = true; -+ diacriticLimit = writeCollationDiacriticsTOML(outputdir, name, collationType, data, status); -+ if (U_FAILURE(*status)) { -+ return; -+ } -+ break; -+ } -+ } -+ } -+ -+ if (settings->hasReordering()) { -+ reordering = true; -+ // Note: There are duplicate reorderings. Expecting the ICU4X provider -+ // to take care of deduplication. -+ writeCollationReorderingTOML(outputdir, name, collationType, settings, status); -+ if (U_FAILURE(*status)) { -+ return; -+ } -+ } -+ -+ // Write collation data if either base is non-null or the name is root. -+ // Languages that only reorder scripts are otherwise root-like and have -+ // null base. -+ if (data->base || isRoot) { -+ tailored = !isRoot; -+ writeCollationDataTOML(outputdir, name, collationType, data, (!data->base && isRoot), diacriticLimit, status); -+ if (U_FAILURE(*status)) { -+ return; -+ } -+ } -+ -+ uint32_t maxVariable = (uint32_t)settings->getMaxVariable(); -+ if (maxVariable >= 4) { -+ printf("Max variable out of range"); -+ *status = U_INTERNAL_PROGRAM_ERROR; -+ return; -+ } -+ -+ uint32_t metadataBits = maxVariable; -+ if (tailored) { -+ metadataBits |= (1 << 3); -+ } -+ if (tailoredDiacritics) { -+ metadataBits |= (1 << 4); -+ } -+ if (reordering) { -+ metadataBits |= (1 << 5); -+ } -+ if (lithuanianDotAbove) { -+ metadataBits |= (1 << 6); -+ } -+ if ((settings->options & icu::CollationSettings::BACKWARD_SECONDARY) != 0) { -+ metadataBits |= (1 << 7); -+ } -+ if (settings->getAlternateHandling() == UCOL_SHIFTED) { -+ metadataBits |= (1 << 8); -+ } -+ switch (settings->getCaseFirst()) { -+ case UCOL_OFF: -+ break; -+ case UCOL_UPPER_FIRST: -+ metadataBits |= (1 << 9); -+ metadataBits |= (1 << 10); -+ break; -+ case UCOL_LOWER_FIRST: -+ metadataBits |= (1 << 9); -+ break; -+ default: -+ *status = U_INTERNAL_PROGRAM_ERROR; -+ return; -+ } -+ -+ writeCollationMetadataTOML(outputdir, name, collationType, metadataBits, status); -+} -+ - #endif // !UCONFIG_NO_COLLATION - - static TableResource * -@@ -820,7 +1155,7 @@ addCollation(ParseState* state, TableResource *result, const char *collationTyp - enum ETokenType token; - char subtag[1024]; - UnicodeString rules; -- UBool haveRules = FALSE; -+ UBool haveRules = false; - UVersionInfo version; - uint32_t line; - -@@ -898,7 +1233,7 @@ addCollation(ParseState* state, TableResource *result, const char *collationTyp - { - StringResource *sr = static_cast(member); - rules = sr->fString; -- haveRules = TRUE; -+ haveRules = true; - // Defer building the collator until we have seen - // all sub-elements of the collation table, including the Version. - /* in order to achieve smaller data files, we can direct genrb */ -@@ -952,9 +1287,9 @@ addCollation(ParseState* state, TableResource *result, const char *collationTyp - res_close(result); - return NULL; // TODO: use LocalUResourceBundlePointer for result - } -- icu::CollationBuilder builder(base, intStatus); -- if(uprv_strncmp(collationType, "search", 6) == 0) { -- builder.disableFastLatin(); // build fast-Latin table unless search collator -+ icu::CollationBuilder builder(base, state->icu4xMode, intStatus); -+ if(state->icu4xMode || (uprv_strncmp(collationType, "search", 6) == 0)) { -+ builder.disableFastLatin(); // build fast-Latin table unless search collator or ICU4X - } - LocalPointer t( - builder.parseAndBuild(rules, version, &importer, &parseError, intStatus)); -@@ -977,6 +1312,19 @@ addCollation(ParseState* state, TableResource *result, const char *collationTyp - return NULL; - } - } -+ if (state->icu4xMode) { -+ char *nameWithoutSuffix = static_cast(uprv_malloc(uprv_strlen(state->filename) + 1)); -+ if (nameWithoutSuffix == NULL) { -+ *status = U_MEMORY_ALLOCATION_ERROR; -+ res_close(result); -+ return NULL; -+ } -+ uprv_strcpy(nameWithoutSuffix, state->filename); -+ *uprv_strrchr(nameWithoutSuffix, '.') = 0; -+ -+ writeCollationTOML(state->outputdir, nameWithoutSuffix, collationType, t->data, t->settings, status); -+ uprv_free(nameWithoutSuffix); -+ } - icu::LocalMemory buffer; - int32_t capacity = 100000; - uint8_t *dest = buffer.allocateInsteadAndCopy(capacity); -@@ -1036,7 +1384,7 @@ addCollation(ParseState* state, TableResource *result, const char *collationTyp - - static UBool - keepCollationType(const char * /*type*/) { -- return TRUE; -+ return true; - } - - static struct SResource * -@@ -1177,7 +1525,7 @@ realParseTable(ParseState* state, TableResource *table, char *tag, uint32_t star - enum ETokenType token; - char subtag[1024]; - uint32_t line; -- UBool readToken = FALSE; -+ UBool readToken = false; - - /* '{' . (name resource)* '}' */ - -@@ -1242,7 +1590,7 @@ realParseTable(ParseState* state, TableResource *table, char *tag, uint32_t star - error(line, "parse error. Stopped parsing table with %s", u_errorName(*status)); - return NULL; - } -- readToken = TRUE; -+ readToken = true; - ustr_deinit(&comment); - } - -@@ -1257,11 +1605,11 @@ parseTable(ParseState* state, char *tag, uint32_t startline, const struct UStrin - { - if (tag != NULL && uprv_strcmp(tag, "CollationElements") == 0) - { -- return parseCollationElements(state, tag, startline, FALSE, status); -+ return parseCollationElements(state, tag, startline, false, status); - } - if (tag != NULL && uprv_strcmp(tag, "collations") == 0) - { -- return parseCollationElements(state, tag, startline, TRUE, status); -+ return parseCollationElements(state, tag, startline, true, status); - } - if(isVerbose()){ - printf(" table %s at line %i \n", (tag == NULL) ? "(null)" : tag, (int)startline); -@@ -1283,7 +1631,7 @@ parseArray(ParseState* state, char *tag, uint32_t startline, const struct UStrin - struct UString *tokenValue; - struct UString memberComments; - enum ETokenType token; -- UBool readToken = FALSE; -+ UBool readToken = false; - - ArrayResource *result = array_open(state->bundle, tag, comment, status); - -@@ -1356,7 +1704,7 @@ parseArray(ParseState* state, char *tag, uint32_t startline, const struct UStrin - res_close(result); - return NULL; - } -- readToken = TRUE; -+ readToken = true; - } - - ustr_deinit(&memberComments); -@@ -1369,7 +1717,7 @@ parseIntVector(ParseState* state, char *tag, uint32_t startline, const struct US - enum ETokenType token; - char *string; - int32_t value; -- UBool readToken = FALSE; -+ UBool readToken = false; - char *stopstring; - struct UString memberComments; - -@@ -1440,7 +1788,7 @@ parseIntVector(ParseState* state, char *tag, uint32_t startline, const struct US - { - getToken(state, NULL, NULL, NULL, status); - } -- readToken = TRUE; -+ readToken = true; - } - - /* not reached */ -@@ -1681,7 +2029,7 @@ parseInclude(ParseState* state, char *tag, uint32_t startline, const struct UStr - uprv_strcpy(fullname,filename); - } - -- ucbuf = ucbuf_open(fullname, &cp,getShowWarning(),FALSE,status); -+ ucbuf = ucbuf_open(fullname, &cp,getShowWarning(),false,status); - - if (U_FAILURE(*status)) { - error(line, "couldn't open input file %s\n", filename); -@@ -1966,7 +2314,7 @@ parseResource(ParseState* state, char *tag, const struct UString *comment, UErro - /* parse the top-level resource */ - struct SRBRoot * - parse(UCHARBUF *buf, const char *inputDir, const char *outputDir, const char *filename, -- UBool makeBinaryCollation, UBool omitCollationRules, UErrorCode *status) -+ UBool makeBinaryCollation, UBool omitCollationRules, UBool icu4xMode, UErrorCode *status) - { - struct UString *tokenValue; - struct UString comment; -@@ -1992,11 +2340,12 @@ parse(UCHARBUF *buf, const char *inputDir, const char *outputDir, const char *fi - state.filename = filename; - state.makeBinaryCollation = makeBinaryCollation; - state.omitCollationRules = omitCollationRules; -+ state.icu4xMode = icu4xMode; - - ustr_init(&comment); - expect(&state, TOK_STRING, &tokenValue, &comment, NULL, status); - -- state.bundle = new SRBRoot(&comment, FALSE, *status); -+ state.bundle = new SRBRoot(&comment, false, *status); - - if (state.bundle == NULL || U_FAILURE(*status)) - { -@@ -2053,7 +2402,7 @@ parse(UCHARBUF *buf, const char *inputDir, const char *outputDir, const char *fi - * This is the same as a regular table, but also sets the - * URES_ATT_NO_FALLBACK flag in indexes[URES_INDEX_ATTRIBUTES] . - */ -- state.bundle->fNoFallback=TRUE; -+ state.bundle->fNoFallback=true; - } - /* top-level tables need not handle special table names like "collations" */ - assert(!state.bundle->fIsPoolBundle); -diff --git a/deps/icu-small/source/tools/genrb/parse.h b/deps/icu-small/source/tools/genrb/parse.h -index bcd8e798f9..fa90ede9d2 100644 ---- a/deps/icu-small/source/tools/genrb/parse.h -+++ b/deps/icu-small/source/tools/genrb/parse.h -@@ -31,7 +31,7 @@ void initParser(); - /* Parse a ResourceBundle text file */ - struct SRBRoot* parse(UCHARBUF *buf, const char* inputDir, const char* outputDir, - const char *filename, -- UBool makeBinaryCollation, UBool omitCollationRules, UErrorCode *status); -+ UBool makeBinaryCollation, UBool omitCollationRules, UBool icu4xMode, UErrorCode *status); - - U_CDECL_END - -diff --git a/deps/icu-small/source/tools/genrb/read.c b/deps/icu-small/source/tools/genrb/read.c -index 7314f6b742..0d4a318a89 100644 ---- a/deps/icu-small/source/tools/genrb/read.c -+++ b/deps/icu-small/source/tools/genrb/read.c -@@ -18,6 +18,8 @@ - ******************************************************************************* - */ - -+#include -+ - #include "read.h" - #include "errmsg.h" - #include "toolutil.h" -@@ -77,7 +79,7 @@ getNextToken(UCHARBUF* buf, - } - - /* Skip whitespace */ -- c = getNextChar(buf, TRUE, comment, status); -+ c = getNextChar(buf, true, comment, status); - - if (U_FAILURE(*status)) { - return TOK_ERROR; -@@ -127,8 +129,8 @@ static enum ETokenType getStringToken(UCHARBUF* buf, - UChar target[3] = { '\0' }; - UChar *pTarget = target; - int len=0; -- UBool isFollowingCharEscaped=FALSE; -- UBool isNLUnescaped = FALSE; -+ UBool isFollowingCharEscaped=false; -+ UBool isNLUnescaped = false; - UChar32 prevC=0; - - /* We are guaranteed on entry that initialChar is not a whitespace -@@ -141,7 +143,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, - } - - /* setup */ -- lastStringWasQuoted = FALSE; -+ lastStringWasQuoted = false; - c = initialChar; - ustr_setlen(token, 0, status); - -@@ -159,7 +161,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, - } - } - -- lastStringWasQuoted = TRUE; -+ lastStringWasQuoted = true; - - for (;;) { - c = ucbuf_getc(buf,status); -@@ -186,23 +188,23 @@ static enum ETokenType getStringToken(UCHARBUF* buf, - return TOK_ERROR; - } - if(c == CR || c == LF){ -- isNLUnescaped = TRUE; -+ isNLUnescaped = true; - } - } - - if(c==ESCAPE && !isFollowingCharEscaped){ -- isFollowingCharEscaped = TRUE; -+ isFollowingCharEscaped = true; - }else{ - U_APPEND_CHAR32(c, pTarget,len); - pTarget = target; - ustr_uscat(token, pTarget,len, status); -- isFollowingCharEscaped = FALSE; -+ isFollowingCharEscaped = false; - len=0; - if(c == CR || c == LF){ -- if(isNLUnescaped == FALSE && prevC!=CR){ -+ if(isNLUnescaped == false && prevC!=CR){ - lineCount++; - } -- isNLUnescaped = FALSE; -+ isNLUnescaped = false; - } - } - -@@ -230,7 +232,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, - - } - -- lastStringWasQuoted = FALSE; -+ lastStringWasQuoted = false; - - /* if we reach here we are mixing - * quoted and unquoted strings -@@ -259,7 +261,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, - - for (;;) { - /* DON'T skip whitespace */ -- c = getNextChar(buf, FALSE, NULL, status); -+ c = getNextChar(buf, false, NULL, status); - - /* EOF reached */ - if (c == U_EOF) { -@@ -304,7 +306,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, - } - - /* DO skip whitespace */ -- c = getNextChar(buf, TRUE, NULL, status); -+ c = getNextChar(buf, true, NULL, status); - - if (U_FAILURE(*status)) { - return TOK_STRING; -@@ -455,10 +457,10 @@ static UBool isWhitespace(UChar32 c) { - case 0x0020: - case 0x0009: - case 0xFEFF: -- return TRUE; -+ return true; - - default: -- return FALSE; -+ return false; - } - } - -@@ -469,9 +471,9 @@ static UBool isNewline(UChar32 c) { - case 0x2029: - lineCount++; - case 0x000D: -- return TRUE; -+ return true; - - default: -- return FALSE; -+ return false; - } - } -diff --git a/deps/icu-small/source/tools/genrb/reslist.cpp b/deps/icu-small/source/tools/genrb/reslist.cpp -index b9e0d7d8c4..4c854bd55b 100644 ---- a/deps/icu-small/source/tools/genrb/reslist.cpp -+++ b/deps/icu-small/source/tools/genrb/reslist.cpp -@@ -71,9 +71,9 @@ - - U_NAMESPACE_USE - --static UBool gIncludeCopyright = FALSE; --static UBool gUsePoolBundle = FALSE; --static UBool gIsDefaultFormatVersion = TRUE; -+static UBool gIncludeCopyright = false; -+static UBool gUsePoolBundle = false; -+static UBool gIsDefaultFormatVersion = true; - static int32_t gFormatVersion = 3; - - /* How do we store string values? */ -@@ -131,7 +131,7 @@ UBool getIncludeCopyright(void){ - } - - void setFormatVersion(int32_t formatVersion) { -- gIsDefaultFormatVersion = FALSE; -+ gIsDefaultFormatVersion = false; - gFormatVersion = formatVersion; - } - -@@ -149,14 +149,14 @@ struct SResource* res_none() { - } - - SResource::SResource() -- : fType(URES_NONE), fWritten(FALSE), fRes(RES_BOGUS), fRes16(-1), fKey(-1), fKey16(-1), -+ : fType(URES_NONE), fWritten(false), fRes(RES_BOGUS), fRes16(-1), fKey(-1), fKey16(-1), - line(0), fNext(NULL) { - ustr_init(&fComment); - } - - SResource::SResource(SRBRoot *bundle, const char *tag, int8_t type, const UString* comment, - UErrorCode &errorCode) -- : fType(type), fWritten(FALSE), fRes(RES_BOGUS), fRes16(-1), -+ : fType(type), fWritten(false), fRes(RES_BOGUS), fRes16(-1), - fKey(bundle != NULL ? bundle->addTag(tag, errorCode) : -1), fKey16(-1), - line(0), fNext(NULL) { - ustr_init(&fComment); -@@ -274,7 +274,7 @@ StringBaseResource::StringBaseResource(SRBRoot *bundle, const char *tag, int8_t - : SResource(bundle, tag, type, comment, errorCode) { - if (len == 0 && gFormatVersion > 1) { - fRes = URES_MAKE_EMPTY_RESOURCE(type); -- fWritten = TRUE; -+ fWritten = true; - return; - } - -@@ -290,7 +290,7 @@ StringBaseResource::StringBaseResource(SRBRoot *bundle, int8_t type, - : SResource(bundle, NULL, type, NULL, errorCode), fString(value) { - if (value.isEmpty() && gFormatVersion > 1) { - fRes = URES_MAKE_EMPTY_RESOURCE(type); -- fWritten = TRUE; -+ fWritten = true; - return; - } - -@@ -303,7 +303,7 @@ StringBaseResource::StringBaseResource(SRBRoot *bundle, int8_t type, - // Pool bundle string, alias the buffer. Guaranteed NUL-terminated and not empty. - StringBaseResource::StringBaseResource(int8_t type, const UChar *value, int32_t len, - UErrorCode &errorCode) -- : SResource(NULL, NULL, type, NULL, errorCode), fString(TRUE, value, len) { -+ : SResource(NULL, NULL, type, NULL, errorCode), fString(true, value, len) { - assert(len > 0); - assert(!fString.isBogus()); - } -@@ -332,7 +332,7 @@ IntResource::IntResource(SRBRoot *bundle, const char *tag, int32_t value, - : SResource(bundle, tag, URES_INT, comment, errorCode) { - fValue = value; - fRes = URES_MAKE_RESOURCE(URES_INT, value & RES_MAX_OFFSET); -- fWritten = TRUE; -+ fWritten = true; - } - - IntResource::~IntResource() {} -@@ -395,7 +395,7 @@ BinaryResource::BinaryResource(SRBRoot *bundle, const char *tag, - } else { - if (gFormatVersion > 1) { - fRes = URES_MAKE_EMPTY_RESOURCE(URES_BINARY); -- fWritten = TRUE; -+ fWritten = true; - } - } - } -@@ -544,14 +544,14 @@ ContainerResource::writeAllRes16(SRBRoot *bundle) { - for (SResource *current = fFirst; current != NULL; current = current->fNext) { - bundle->f16BitUnits.append((UChar)current->fRes16); - } -- fWritten = TRUE; -+ fWritten = true; - } - - void - ArrayResource::handleWrite16(SRBRoot *bundle) { - if (fCount == 0 && gFormatVersion > 1) { - fRes = URES_MAKE_EMPTY_RESOURCE(URES_ARRAY); -- fWritten = TRUE; -+ fWritten = true; - return; - } - -@@ -571,7 +571,7 @@ void - TableResource::handleWrite16(SRBRoot *bundle) { - if (fCount == 0 && gFormatVersion > 1) { - fRes = URES_MAKE_EMPTY_RESOURCE(URES_TABLE); -- fWritten = TRUE; -+ fWritten = true; - return; - } - /* Find the smallest table type that fits the data. */ -@@ -607,7 +607,7 @@ TableResource::handleWrite16(SRBRoot *bundle) { - void - PseudoListResource::handleWrite16(SRBRoot * /*bundle*/) { - fRes = URES_MAKE_EMPTY_RESOURCE(URES_TABLE); -- fWritten = TRUE; -+ fWritten = true; - } - - void -@@ -669,7 +669,7 @@ void - IntVectorResource::handlePreWrite(uint32_t *byteOffset) { - if (fCount == 0 && gFormatVersion > 1) { - fRes = URES_MAKE_EMPTY_RESOURCE(URES_INT_VECTOR); -- fWritten = TRUE; -+ fWritten = true; - } else { - fRes = URES_MAKE_RESOURCE(URES_INT_VECTOR, *byteOffset >> 2); - *byteOffset += (1 + fCount) * 4; -@@ -734,7 +734,7 @@ SResource::preWrite(uint32_t *byteOffset) { - - void - SResource::handlePreWrite(uint32_t * /*byteOffset*/) { -- assert(FALSE); -+ assert(false); - } - - /* -@@ -748,7 +748,7 @@ StringBaseResource::handleWrite(UNewDataMemory *mem, uint32_t *byteOffset) { - udata_write32(mem, len); - udata_writeUString(mem, getBuffer(), len + 1); - *byteOffset += 4 + (len + 1) * U_SIZEOF_UCHAR; -- fWritten = TRUE; -+ fWritten = true; - } - - void -@@ -839,12 +839,12 @@ SResource::write(UNewDataMemory *mem, uint32_t *byteOffset) { - udata_writePadding(mem, paddingSize); - *byteOffset += paddingSize; - } -- fWritten = TRUE; -+ fWritten = true; - } - - void - SResource::handleWrite(UNewDataMemory * /*mem*/, uint32_t * /*byteOffset*/) { -- assert(FALSE); -+ assert(false); - } - - void SRBRoot::write(const char *outputDir, const char *outputPkg, -@@ -996,7 +996,7 @@ void SRBRoot::write(const char *outputDir, const char *outputPkg, - uprv_memcpy(dataInfo.formatVersion, gFormatVersions + formatVersion, sizeof(UVersionInfo)); - - mem = udata_create(outputDir, "res", dataName, -- &dataInfo, (gIncludeCopyright==TRUE)? U_COPYRIGHT_STRING:NULL, &errorCode); -+ &dataInfo, (gIncludeCopyright==true)? U_COPYRIGHT_STRING:NULL, &errorCode); - if(U_FAILURE(errorCode)){ - return; - } -@@ -1133,7 +1133,7 @@ struct SResource *bin_open(struct SRBRoot *bundle, const char *tag, uint32_t len - } - - SRBRoot::SRBRoot(const UString *comment, UBool isPoolBundle, UErrorCode &errorCode) -- : fRoot(NULL), fLocale(NULL), fIndexLength(0), fMaxTableLength(0), fNoFallback(FALSE), -+ : fRoot(NULL), fLocale(NULL), fIndexLength(0), fMaxTableLength(0), fNoFallback(false), - fStringsForm(STRINGS_UTF16_V1), fIsPoolBundle(isPoolBundle), - fKeys(NULL), fKeyMap(NULL), - fKeysBottom(0), fKeysTop(0), fKeysCapacity(0), -@@ -1413,7 +1413,7 @@ SRBRoot::compactKeys(UErrorCode &errorCode) { - } - /* Sort the keys so that each one is immediately followed by all of its suffixes. */ - uprv_sortArray(map, keysCount, (int32_t)sizeof(KeyMapEntry), -- compareKeySuffixes, this, FALSE, &errorCode); -+ compareKeySuffixes, this, false, &errorCode); - /* - * Make suffixes point into earlier, longer strings that contain them - * and mark the old, now unused suffix bytes as deleted. -@@ -1466,7 +1466,7 @@ SRBRoot::compactKeys(UErrorCode &errorCode) { - * to squeeze out unused bytes, and readjust the newpos offsets. - */ - uprv_sortArray(map, keysCount, (int32_t)sizeof(KeyMapEntry), -- compareKeyNewpos, NULL, FALSE, &errorCode); -+ compareKeyNewpos, NULL, false, &errorCode); - if (U_SUCCESS(errorCode)) { - int32_t oldpos, newpos, limit; - oldpos = newpos = fKeysBottom; -@@ -1491,7 +1491,7 @@ SRBRoot::compactKeys(UErrorCode &errorCode) { - fKeysTop = newpos; - /* Re-sort once more, by old offsets for binary searching. */ - uprv_sortArray(map, keysCount, (int32_t)sizeof(KeyMapEntry), -- compareKeyOldpos, NULL, FALSE, &errorCode); -+ compareKeyOldpos, NULL, false, &errorCode); - if (U_SUCCESS(errorCode)) { - /* key size reduction by limit - newpos */ - fKeyMap = map; -@@ -1550,7 +1550,7 @@ void - StringResource::writeUTF16v2(int32_t base, UnicodeString &dest) { - int32_t len = length(); - fRes = URES_MAKE_RESOURCE(URES_STRING_V2, base + dest.length()); -- fWritten = TRUE; -+ fWritten = true; - switch(fNumCharsForLength) { - case 0: - break; -@@ -1591,7 +1591,7 @@ SRBRoot::compactStringsV2(UHashtable *stringSet, UErrorCode &errorCode) { - } - /* Sort the strings so that each one is immediately followed by all of its suffixes. */ - uprv_sortArray(array.getAlias(), count, (int32_t)sizeof(struct SResource **), -- compareStringSuffixes, NULL, FALSE, &errorCode); -+ compareStringSuffixes, NULL, false, &errorCode); - if (U_FAILURE(errorCode)) { - return; - } -@@ -1631,7 +1631,7 @@ SRBRoot::compactStringsV2(UHashtable *stringSet, UErrorCode &errorCode) { - if (poolStringIndex >= fPoolStringIndexLimit) { - fPoolStringIndexLimit = poolStringIndex + 1; - } -- suffixRes->fWritten = TRUE; -+ suffixRes->fWritten = true; - } - res->fNumUnitsSaved += suffixRes->fNumCopies * suffixRes->get16BitStringsLength(); - } else { -@@ -1649,7 +1649,7 @@ SRBRoot::compactStringsV2(UHashtable *stringSet, UErrorCode &errorCode) { - * Keep as many as possible within reach of 16-bit offsets. - */ - uprv_sortArray(array.getAlias(), count, (int32_t)sizeof(struct SResource **), -- compareStringLengths, NULL, FALSE, &errorCode); -+ compareStringLengths, NULL, false, &errorCode); - if (U_FAILURE(errorCode)) { - return; - } -@@ -1672,7 +1672,7 @@ SRBRoot::compactStringsV2(UHashtable *stringSet, UErrorCode &errorCode) { - } else { - numUnitsNotSaved += res->fNumUnitsSaved; - res->fRes = URES_MAKE_EMPTY_RESOURCE(URES_STRING); -- res->fWritten = TRUE; -+ res->fWritten = true; - } - } - if (f16BitUnits.isBogus()) { -@@ -1734,7 +1734,7 @@ SRBRoot::compactStringsV2(UHashtable *stringSet, UErrorCode &errorCode) { - if (localStringIndex >= fLocalStringIndexLimit) { - fLocalStringIndexLimit = localStringIndex + 1; - } -- res->fWritten = TRUE; -+ res->fWritten = true; - } - } - // +1 to account for the initial zero in f16BitUnits -diff --git a/deps/icu-small/source/tools/genrb/wrtjava.cpp b/deps/icu-small/source/tools/genrb/wrtjava.cpp -index 3ad0a94cf3..0d2ddcd25a 100644 ---- a/deps/icu-small/source/tools/genrb/wrtjava.cpp -+++ b/deps/icu-small/source/tools/genrb/wrtjava.cpp -@@ -324,7 +324,7 @@ static void - string_write_java(const StringResource *res,UErrorCode *status) { - (void)res->getKeyString(srBundle); - -- str_write_java(res->getBuffer(), res->length(), TRUE, status); -+ str_write_java(res->getBuffer(), res->length(), true, status); - } - - static void -@@ -333,7 +333,7 @@ array_write_java(const ArrayResource *res, UErrorCode *status) { - uint32_t i = 0; - const char* arr ="new String[] { \n"; - struct SResource *current = NULL; -- UBool allStrings = TRUE; -+ UBool allStrings = true; - - if (U_FAILURE(*status)) { - return; -@@ -345,14 +345,14 @@ array_write_java(const ArrayResource *res, UErrorCode *status) { - i = 0; - while(current != NULL){ - if(!current->isString()){ -- allStrings = FALSE; -+ allStrings = false; - break; - } - current= current->fNext; - } - - current = res->fFirst; -- if(allStrings==FALSE){ -+ if(allStrings==false){ - const char* object = "new Object[]{\n"; - write_tabs(out); - T_FileStream_write(out, object, (int32_t)uprv_strlen(object)); -@@ -506,7 +506,7 @@ bytes_write_java(const BinaryResource *res, UErrorCode * /*status*/) { - - } - --static UBool start = TRUE; -+static UBool start = true; - - static void - table_write_java(const TableResource *res, UErrorCode *status) { -@@ -519,12 +519,12 @@ table_write_java(const TableResource *res, UErrorCode *status) { - } - - if (res->fCount > 0) { -- if(start==FALSE){ -+ if(start==false){ - write_tabs(out); - T_FileStream_write(out, obj, (int32_t)uprv_strlen(obj)); - tabCount++; - } -- start = FALSE; -+ start = false; - current = res->fFirst; - i = 0; - -@@ -624,10 +624,10 @@ bundle_write_java(struct SRBRoot *bundle, const char *outputDir,const char* outp - char fileName[256] = {'\0'}; - char className[256]={'\0'}; - /*char constructor[1000] = { 0 };*/ -- /*UBool j1 =FALSE;*/ -+ /*UBool j1 =false;*/ - /*outDir = outputDir;*/ - -- start = TRUE; /* Reset the start indicator*/ -+ start = true; /* Reset the start indicator*/ - - bName = (bundleName==NULL) ? "LocaleElements" : bundleName; - pName = (packageName==NULL)? "com.ibm.icu.impl.data" : packageName; -diff --git a/deps/icu-small/source/tools/genrb/wrtxml.cpp b/deps/icu-small/source/tools/genrb/wrtxml.cpp -index fa2105d908..069f091656 100644 ---- a/deps/icu-small/source/tools/genrb/wrtxml.cpp -+++ b/deps/icu-small/source/tools/genrb/wrtxml.cpp -@@ -332,7 +332,7 @@ static char* convertAndEscape(char** pDest, int32_t destCap, int32_t* destLength - dest[destLen++]=(char)c; - } - }else{ -- UBool isError = FALSE; -+ UBool isError = false; - U8_APPEND((unsigned char*)dest,destLen,destCap,c,isError); - if(isError){ - *status = U_ILLEGAL_CHAR_FOUND; -@@ -584,7 +584,7 @@ static char *printContainer(SResource *res, const char *container, const char *r - tabCount += 1; - if (res->fComment.fLength > 0) { - /* printComments will print the closing ">\n" */ -- printComments(&res->fComment, resname, TRUE, status); -+ printComments(&res->fComment, resname, true, status); - } else { - write_utf8_file(out, UnicodeString(">\n")); - } -@@ -706,7 +706,7 @@ array_write_xml(ArrayResource *res, const char* id, const char* language, UError - index += 1; - subId = getID(sid, c, subId); - -- res_write_xml(current, subId, language, FALSE, status); -+ res_write_xml(current, subId, language, false, status); - uprv_free(subId); - subId = NULL; - -@@ -940,7 +940,7 @@ table_write_xml(TableResource *res, const char* id, const char* language, UBool - current = res->fFirst; - - while (current != NULL) { -- res_write_xml(current, sid, language, FALSE, status); -+ res_write_xml(current, sid, language, false, status); - - if(U_FAILURE(*status)){ - return; -@@ -1185,7 +1185,7 @@ bundle_write_xml(struct SRBRoot *bundle, const char *outputDir,const char* outpu - write_utf8_file(out, UnicodeString(bodyStart)); - - -- res_write_xml(bundle->fRoot, bundle->fLocale, lang, TRUE, status); -+ res_write_xml(bundle->fRoot, bundle->fLocale, lang, true, status); - - tabCount -= 1; - write_tabs(out); -diff --git a/deps/icu-small/source/tools/icuexportdata/icuexportdata.cpp b/deps/icu-small/source/tools/icuexportdata/icuexportdata.cpp -index 7431ac74ab..cafdfb8847 100644 ---- a/deps/icu-small/source/tools/icuexportdata/icuexportdata.cpp -+++ b/deps/icu-small/source/tools/icuexportdata/icuexportdata.cpp -@@ -1,7 +1,15 @@ - // © 2016 and later: Unicode, Inc. and others. - // License & terms of use: http://www.unicode.org/copyright.html - -+#include -+#include -+#include - #include -+#include -+#include -+#include -+#include -+#include - #include - #include - #include "toolutil.h" -@@ -15,7 +23,10 @@ - #include "unicode/uscript.h" - #include "unicode/putil.h" - #include "unicode/umutablecptrie.h" -+#include "unicode/ucharstriebuilder.h" - #include "ucase.h" -+#include "unicode/normalizer2.h" -+#include "normalizer2impl.h" - #include "writesrc.h" - - U_NAMESPACE_USE -@@ -23,10 +34,10 @@ U_NAMESPACE_USE - /* - * Global - verbosity - */ --UBool VERBOSE = FALSE; --UBool QUIET = FALSE; -+UBool VERBOSE = false; -+UBool QUIET = false; - --UBool haveCopyright = TRUE; -+UBool haveCopyright = true; - UCPTrieType trieType = UCPTRIE_TYPE_SMALL; - const char* destdir = ""; - -@@ -299,6 +310,642 @@ FILE* prepareOutputFile(const char* basename) { - return f; - } - -+#if !UCONFIG_NO_NORMALIZATION -+ -+struct PendingDescriptor { -+ UChar32 scalar; -+ uint32_t descriptor; -+ UBool supplementary; -+}; -+ -+void writeCanonicalCompositions(USet* backwardCombiningStarters) { -+ IcuToolErrorCode status("icuexportdata: computeCanonicalCompositions"); -+ const char* basename = "compositions"; -+ FILE* f = prepareOutputFile(basename); -+ -+ LocalPointer backwardBuilder(new UCharsTrieBuilder(status), status); -+ -+ const int32_t DECOMPOSITION_BUFFER_SIZE = 20; -+ UChar32 utf32[DECOMPOSITION_BUFFER_SIZE]; -+ -+ const Normalizer2* nfc = Normalizer2::getNFCInstance(status); -+ for (UChar32 c = 0; c <= 0x10FFFF; ++c) { -+ if (c >= 0xD800 && c < 0xE000) { -+ // Surrogate -+ continue; -+ } -+ UnicodeString decomposition; -+ if (!nfc->getRawDecomposition(c, decomposition)) { -+ continue; -+ } -+ int32_t len = decomposition.toUTF32(utf32, DECOMPOSITION_BUFFER_SIZE, status); -+ if (len != 2) { -+ continue; -+ } -+ UChar32 starter = utf32[0]; -+ UChar32 second = utf32[1]; -+ UChar32 composite = nfc->composePair(starter, second); -+ if (composite < 0) { -+ continue; -+ } -+ if (c != composite) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ if (!u_getCombiningClass(second)) { -+ uset_add(backwardCombiningStarters, second); -+ } -+ if (composite >= 0xAC00 && composite <= 0xD7A3) { -+ // Hangul syllable -+ continue; -+ } -+ -+ UnicodeString backward; -+ backward.append(second); -+ backward.append(starter); -+ backwardBuilder->add(backward, int32_t(composite), status); -+ } -+ UnicodeString canonicalCompositionTrie; -+ backwardBuilder->buildUnicodeString(USTRINGTRIE_BUILD_SMALL, canonicalCompositionTrie, status); -+ -+ usrc_writeArray(f, "compositions = [\n ", canonicalCompositionTrie.getBuffer(), 16, canonicalCompositionTrie.length(), " ", "\n]\n"); -+ fclose(f); -+ handleError(status, basename); -+} -+ -+void writeDecompositionTables(const char* basename, const uint16_t* ptr16, size_t len16, const uint32_t* ptr32, size_t len32) { -+ FILE* f = prepareOutputFile(basename); -+ usrc_writeArray(f, "scalars16 = [\n ", ptr16, 16, len16, " ", "\n]\n"); -+ usrc_writeArray(f, "scalars32 = [\n ", ptr32, 32, len32, " ", "\n]\n"); -+ fclose(f); -+} -+ -+void writeDecompositionData(const char* basename, uint32_t baseSize16, uint32_t baseSize32, uint32_t supplementSize16, USet* uset, USet* reference, const std::vector& pendingTrieInsertions, char16_t passthroughCap) { -+ IcuToolErrorCode status("icuexportdata: writeDecompositionData"); -+ FILE* f = prepareOutputFile(basename); -+ -+ // Zero is a magic number that means the character decomposes to itself. -+ LocalUMutableCPTriePointer builder(umutablecptrie_open(0, 0, status)); -+ -+ // Iterate backwards to insert lower code points in the trie first in case it matters -+ // for trie block allocation. -+ for (int32_t i = pendingTrieInsertions.size() - 1; i >= 0; --i) { -+ const PendingDescriptor& pending = pendingTrieInsertions[i]; -+ uint32_t additional = 0; -+ if (!(pending.descriptor & 0xFFFE0000)) { -+ uint32_t offset = pending.descriptor & 0xFFF; -+ if (!pending.supplementary) { -+ if (offset >= baseSize16) { -+ // This is a offset to supplementary 16-bit data. We have -+ // 16-bit base data and 32-bit base data before. However, -+ // the 16-bit base data length is already part of offset. -+ additional = baseSize32; -+ } -+ } else { -+ if (offset >= baseSize32) { -+ // This is an offset to supplementary 32-bit data. We have 16-bit -+ // base data, 32-bit base data, and 16-bit supplementary data before. -+ // However, the 32-bit base data length is already part -+ // of offset. -+ additional = baseSize16 + supplementSize16; -+ } else { -+ // This is an offset to 32-bit base data. We have 16-bit -+ // base data before. -+ additional = baseSize16; -+ } -+ } -+ if (offset + additional > 0xFFF) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ } -+ // It turns out it's better to swap the halves compared to the initial -+ // idea in order to put special marker values close to zero so that -+ // an important marker value becomes 1, so it's efficient to compare -+ // "1 or 0". Unfortunately, going through all the code to swap -+ // things is too error prone, so let's do the swapping here in one -+ // place. -+ uint32_t oldTrieValue = pending.descriptor + additional; -+ uint32_t swappedTrieValue = (oldTrieValue >> 16) | (oldTrieValue << 16); -+ umutablecptrie_set(builder.getAlias(), pending.scalar, swappedTrieValue, status); -+ } -+ LocalUCPTriePointer utrie(umutablecptrie_buildImmutable( -+ builder.getAlias(), -+ trieType, -+ UCPTRIE_VALUE_BITS_32, -+ status)); -+ handleError(status, basename); -+ -+ if (reference) { -+ if (uset_contains(reference, 0xFF9E) || uset_contains(reference, 0xFF9F) || !uset_contains(reference, 0x0345)) { -+ // NFD expectations don't hold. The set must not contain the half-width -+ // kana voicing marks and must contain iota subscript. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ -+ USet* halfWidthVoicing = uset_openEmpty(); -+ uset_add(halfWidthVoicing, 0xFF9E); -+ uset_add(halfWidthVoicing, 0xFF9F); -+ -+ USet* iotaSubscript = uset_openEmpty(); -+ uset_add(iotaSubscript, 0x0345); -+ -+ uint8_t flags = 0; -+ -+ USet* halfWidthCheck = uset_cloneAsThawed(uset); -+ uset_removeAll(halfWidthCheck, reference); -+ if (uset_equals(halfWidthCheck, halfWidthVoicing)) { -+ flags |= 1; -+ } else if (!uset_isEmpty(halfWidthCheck)) { -+ // The result was neither empty nor contained exactly -+ // the two half-width voicing marks. The ICU4X -+ // normalizer doesn't know how to deal with this case. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ uset_close(halfWidthCheck); -+ -+ USet* iotaCheck = uset_cloneAsThawed(reference); -+ uset_removeAll(iotaCheck, uset); -+ if (!(uset_equals(iotaCheck, iotaSubscript)) && !uset_isEmpty(iotaCheck)) { -+ // The result was neither empty nor contained exactly -+ // the iota subscript. The ICU4X normalizer doesn't -+ // know how to deal with this case. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ uset_close(halfWidthCheck); -+ -+ uset_close(iotaSubscript); -+ uset_close(halfWidthVoicing); -+ -+ fprintf(f, "flags = 0x%X\n", flags); -+ fprintf(f, "cap = 0x%X\n", passthroughCap); -+ } -+ fprintf(f, "[trie]\n"); -+ usrc_writeUCPTrie(f, "trie", utrie.getAlias(), UPRV_TARGET_SYNTAX_TOML); -+ fclose(f); -+ handleError(status, basename); -+} -+ -+// Special marker for the NFKD form of U+FDFA -+const int32_t FDFA_MARKER = 3; -+ -+// Special marker for characters whose decomposition starts with a non-starter -+// and the decomposition isn't the character itself. -+const int32_t SPECIAL_NON_STARTER_DECOMPOSITION_MARKER = 2; -+ -+// Special marker for starters that decompose to themselves but that may -+// combine backwards under canonical composition -+const int32_t BACKWARD_COMBINING_STARTER_MARKER = 1; -+ -+/// Marker that a complex decomposition isn't round-trippable -+/// under re-composition. -+const uint32_t NON_ROUND_TRIP_MARKER = 1; -+ -+UBool permissibleBmpPair(UBool knownToRoundTrip, UChar32 c, UChar32 second) { -+ if (knownToRoundTrip) { -+ return true; -+ } -+ // Nuktas, Hebrew presentation forms and polytonic Greek with oxia -+ // are special-cased in ICU4X. -+ if (c >= 0xFB1D && c <= 0xFB4E) { -+ // Hebrew presentation forms -+ return true; -+ } -+ if (c >= 0x1F71 && c <= 0x1FFB) { -+ // Polytonic Greek with oxia -+ return true; -+ } -+ if ((second & 0x7F) == 0x3C && second >= 0x0900 && second <= 0x0BFF) { -+ // Nukta -+ return true; -+ } -+ // To avoid more branchiness, 4 characters that decompose to -+ // a BMP starter followed by a BMP non-starter are excluded -+ // from being encoded directly into the trie value and are -+ // handled as complex decompositions instead. These are: -+ // U+0F76 TIBETAN VOWEL SIGN VOCALIC R -+ // U+0F78 TIBETAN VOWEL SIGN VOCALIC L -+ // U+212B ANGSTROM SIGN -+ // U+2ADC FORKING -+ return false; -+} -+ -+// Computes data for canonical decompositions -+void computeDecompositions(const char* basename, -+ const USet* backwardCombiningStarters, -+ std::vector& storage16, -+ std::vector& storage32, -+ USet* decompositionStartsWithNonStarter, -+ USet* decompositionStartsWithBackwardCombiningStarter, -+ std::vector& pendingTrieInsertions, -+ UChar32& decompositionPassthroughBound, -+ UChar32& compositionPassthroughBound) { -+ IcuToolErrorCode status("icuexportdata: computeDecompositions"); -+ const Normalizer2* mainNormalizer; -+ const Normalizer2* nfdNormalizer = Normalizer2::getNFDInstance(status); -+ const Normalizer2* nfcNormalizer = Normalizer2::getNFCInstance(status); -+ FILE* f = NULL; -+ std::vector nonRecursive32; -+ LocalUMutableCPTriePointer nonRecursiveBuilder(umutablecptrie_open(0, 0, status)); -+ -+ if (uprv_strcmp(basename, "nfkd") == 0) { -+ mainNormalizer = Normalizer2::getNFKDInstance(status); -+ } else if (uprv_strcmp(basename, "uts46d") == 0) { -+ mainNormalizer = Normalizer2::getInstance(NULL, "uts46", UNORM2_COMPOSE, status); -+ } else { -+ mainNormalizer = nfdNormalizer; -+ f = prepareOutputFile("decompositionex"); -+ } -+ -+ // Max length as of Unicode 14 is 4 for NFD. For NFKD the max -+ // is 18 (U+FDFA; special-cased), and the next longest is 8 (U+FDFB). -+ const int32_t LONGEST_ENCODABLE_LENGTH_16 = 9; -+ const int32_t LONGEST_ENCODABLE_LENGTH_32 = 8; -+ const int32_t DECOMPOSITION_BUFFER_SIZE = 20; -+ UChar32 utf32[DECOMPOSITION_BUFFER_SIZE]; -+ const int32_t RAW_DECOMPOSITION_BUFFER_SIZE = 2; -+ UChar32 rawUtf32[RAW_DECOMPOSITION_BUFFER_SIZE]; -+ -+ // Iterate over all scalar values excluding Hangul syllables. -+ // -+ // We go backwards in order to better find overlapping decompositions. -+ // -+ // As of Unicode 14: -+ // Iterate forward without overlap search: -+ // nfd: 16 size: 896, 32 size: 173 -+ // nfkd: 16 size: 3854, 32 size: 179 -+ // -+ // Iterate forward with overlap search: -+ // nfd: 16 size: 888, 32 size: 173 -+ // nfkd: 16 size: 3266, 32 size: 179 -+ // -+ // Iterate backward with overlap search: -+ // nfd: 16 size: 776, 32 size: 173 -+ // nfkd: 16 size: 2941, 32 size: 179 -+ // -+ // UChar32 is signed! -+ for (UChar32 c = 0x10FFFF; c >= 0; --c) { -+ if (c >= 0xAC00 && c <= 0xD7A3) { -+ // Hangul syllable -+ continue; -+ } -+ if (c >= 0xD800 && c < 0xE000) { -+ // Surrogate -+ continue; -+ } -+ UnicodeString src; -+ UnicodeString dst; -+ // True if we're building non-NFD or we're building NFD but -+ // the `c` round trips to NFC. -+ // False if we're building NFD and `c` does not round trip to NFC. -+ UBool nonNfdOrRoundTrips = true; -+ src.append(c); -+ if (mainNormalizer != nfdNormalizer) { -+ UnicodeString inter; -+ mainNormalizer->normalize(src, inter, status); -+ nfdNormalizer->normalize(inter, dst, status); -+ } else { -+ nfdNormalizer->normalize(src, dst, status); -+ UnicodeString nfc; -+ nfcNormalizer->normalize(dst, nfc, status); -+ nonNfdOrRoundTrips = (src == nfc); -+ } -+ int32_t len = dst.toUTF32(utf32, DECOMPOSITION_BUFFER_SIZE, status); -+ if (!len || (len == 1 && utf32[0] == 0xFFFD && c != 0xFFFD)) { -+ // Characters that normalize to nothing or to U+FFFD (without the -+ // input being U+FFFD) in ICU4C's UTS 46 normalization normalize -+ // as in NFD in ICU4X's UTF 46 normalization in the interest -+ // of data size and ICU4X's normalizer being unable to handle -+ // normalizing to nothing. -+ // When UTS 46 is implemented on top of ICU4X, a preprocessing -+ // step is supposed to remove these characters before the -+ // normalization step. -+ if (uprv_strcmp(basename, "uts46d") != 0) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ nfdNormalizer->normalize(src, dst, status); -+ len = dst.toUTF32(utf32, DECOMPOSITION_BUFFER_SIZE, status); -+ if (!len || (len == 1 && utf32[0] == 0xFFFD && c != 0xFFFD)) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ } -+ if (len > DECOMPOSITION_BUFFER_SIZE) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ uint8_t firstCombiningClass = u_getCombiningClass(utf32[0]); -+ bool specialNonStarterDecomposition = false; -+ bool startsWithBackwardCombiningStarter = false; -+ if (firstCombiningClass) { -+ decompositionPassthroughBound = c; -+ compositionPassthroughBound = c; -+ uset_add(decompositionStartsWithNonStarter, c); -+ if (src != dst) { -+ if (c == 0x0340 || c == 0x0341 || c == 0x0343 || c == 0x0344 || c == 0x0F73 || c == 0x0F75 || c == 0x0F81 || c == 0xFF9E || c == 0xFF9F) { -+ specialNonStarterDecomposition = true; -+ } else { -+ // A character whose decomposition starts with a non-starter and isn't the same as the character itself and isn't already hard-coded into ICU4X. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ } -+ } else if (uset_contains(backwardCombiningStarters, utf32[0])) { -+ compositionPassthroughBound = c; -+ startsWithBackwardCombiningStarter = true; -+ uset_add(decompositionStartsWithBackwardCombiningStarter, c); -+ } -+ if (c != BACKWARD_COMBINING_STARTER_MARKER && len == 1 && utf32[0] == BACKWARD_COMBINING_STARTER_MARKER) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ if (c != SPECIAL_NON_STARTER_DECOMPOSITION_MARKER && len == 1 && utf32[0] == SPECIAL_NON_STARTER_DECOMPOSITION_MARKER) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ if (c != FDFA_MARKER && len == 1 && utf32[0] == FDFA_MARKER) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ if (mainNormalizer != nfdNormalizer) { -+ UnicodeString nfd; -+ nfdNormalizer->normalize(src, nfd, status); -+ if (dst == nfd) { -+ continue; -+ } -+ decompositionPassthroughBound = c; -+ compositionPassthroughBound = c; -+ } else if (firstCombiningClass) { -+ len = 1; -+ if (specialNonStarterDecomposition) { -+ utf32[0] = SPECIAL_NON_STARTER_DECOMPOSITION_MARKER; // magic value -+ } else { -+ // Use the surrogate range to store the canonical combining class -+ utf32[0] = 0xD800 | UChar32(firstCombiningClass); -+ } -+ } else { -+ if (src == dst) { -+ if (startsWithBackwardCombiningStarter) { -+ pendingTrieInsertions.push_back({c, BACKWARD_COMBINING_STARTER_MARKER << 16, false}); -+ } -+ continue; -+ } -+ decompositionPassthroughBound = c; -+ // ICU4X hard-codes ANGSTROM SIGN -+ if (c != 0x212B) { -+ UnicodeString raw; -+ if (!nfdNormalizer->getRawDecomposition(c, raw)) { -+ // We're always supposed to have a non-recursive decomposition -+ // if we had a recursive one. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ // In addition to actual difference, put the whole range that contains characters -+ // with oxia into the non-recursive trie in order to catch cases where characters -+ // with oxia have singleton decompositions to corresponding characters with tonos. -+ // This way, the run-time decision to fall through can be done on the range -+ // without checking for individual characters inside the range. -+ if (raw != dst || (c >= 0x1F71 && c <= 0x1FFB)) { -+ int32_t rawLen = raw.toUTF32(rawUtf32, RAW_DECOMPOSITION_BUFFER_SIZE, status); -+ if (!rawLen) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ if (rawLen == 1) { -+ if (c >= 0xFFFF) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ umutablecptrie_set(nonRecursiveBuilder.getAlias(), c, uint32_t(rawUtf32[0]), status); -+ } else if (rawUtf32[0] <= 0xFFFF && rawUtf32[1] <= 0xFFFF) { -+ if (!rawUtf32[0] || !rawUtf32[1]) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ // Swapped for consistency with the primary trie -+ uint32_t bmpPair = uint32_t(rawUtf32[1]) << 16 | uint32_t(rawUtf32[0]); -+ umutablecptrie_set(nonRecursiveBuilder.getAlias(), c, bmpPair, status); -+ } else { -+ // Let's add 1 to index to make it always non-zero to distinguish -+ // it from the default zero. -+ uint32_t index = nonRecursive32.size() + 1; -+ nonRecursive32.push_back(uint32_t(rawUtf32[0])); -+ nonRecursive32.push_back(uint32_t(rawUtf32[1])); -+ if (index > 0xFFFF) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ umutablecptrie_set(nonRecursiveBuilder.getAlias(), c, index << 16, status); -+ } -+ } -+ } -+ } -+ if (!nonNfdOrRoundTrips) { -+ compositionPassthroughBound = c; -+ } -+ if (len == 1 && utf32[0] <= 0xFFFF) { -+ if (startsWithBackwardCombiningStarter) { -+ if (mainNormalizer == nfdNormalizer) { -+ // Not supposed to happen in NFD -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } else if (!((utf32[0] >= 0x1161 && utf32[0] <= 0x1175) || (utf32[0] >= 0x11A8 && utf32[0] <= 0x11C2))) { -+ // Other than conjoining jamo vowels and trails -+ // unsupported for non-NFD. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ } -+ pendingTrieInsertions.push_back({c, uint32_t(utf32[0]) << 16, false}); -+ } else if (len == 2 && -+ utf32[0] <= 0xFFFF && -+ utf32[1] <= 0xFFFF && -+ !u_getCombiningClass(utf32[0]) && -+ u_getCombiningClass(utf32[1]) && -+ permissibleBmpPair(nonNfdOrRoundTrips, c, utf32[1])) { -+ for (int32_t i = 0; i < len; ++i) { -+ if (((utf32[i] == 0x0345) && (uprv_strcmp(basename, "uts46d") == 0)) || utf32[i] == 0xFF9E || utf32[i] == 0xFF9F) { -+ // Assert that iota subscript and half-width voicing marks never occur in these -+ // expansions in the normalization forms where they are special. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ } -+ if (startsWithBackwardCombiningStarter) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ pendingTrieInsertions.push_back({c, (uint32_t(utf32[0]) << 16) | uint32_t(utf32[1]), false}); -+ } else { -+ if (startsWithBackwardCombiningStarter) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ -+ UBool supplementary = false; -+ UBool nonInitialStarter = false; -+ for (int32_t i = 0; i < len; ++i) { -+ if (((utf32[i] == 0x0345) && (uprv_strcmp(basename, "uts46d") == 0)) || utf32[i] == 0xFF9E || utf32[i] == 0xFF9F) { -+ // Assert that iota subscript and half-width voicing marks never occur in these -+ // expansions in the normalization forms where they are special. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ -+ if (utf32[i] > 0xFFFF) { -+ supplementary = true; -+ } -+ if (utf32[i] == 0) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ if (i != 0 && !u_getCombiningClass(utf32[i])) { -+ nonInitialStarter = true; -+ } -+ } -+ if (!supplementary) { -+ if (len > LONGEST_ENCODABLE_LENGTH_16 || !len || len == 1) { -+ if (len == 18 && c == 0xFDFA) { -+ // Special marker for the one character whose decomposition -+ // is too long. -+ pendingTrieInsertions.push_back({c, FDFA_MARKER << 16, supplementary}); -+ continue; -+ } else { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ } -+ } else if (len > LONGEST_ENCODABLE_LENGTH_32 || !len) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ // Complex decomposition -+ // Format for 16-bit value: -+ // 15..13: length minus two for 16-bit case and length minus one for -+ // the 32-bit case. Length 8 needs to fit in three bits in -+ // the 16-bit case, and this way the value is future-proofed -+ // up to 9 in the 16-bit case. Zero is unused and length one -+ // in the 16-bit case goes directly into the trie. -+ // 12: 1 if all trailing characters are guaranteed non-starters, -+ // 0 if no guarantees about non-starterness. -+ // Note: The bit choice is this way around to allow for -+ // dynamically falling back to not having this but instead -+ // having one more bit for length by merely choosing -+ // different masks. -+ // 11..0: Start offset in storage. The offset is to the logical -+ // sequence of scalars16, scalars32, supplementary_scalars16, -+ // supplementary_scalars32. -+ uint32_t descriptor = uint32_t(!nonInitialStarter) << 12; -+ if (!supplementary) { -+ descriptor |= (uint32_t(len) - 2) << 13; -+ } else { -+ descriptor |= (uint32_t(len) - 1) << 13; -+ } -+ if (descriptor & 0xFFF) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ size_t index = 0; -+ bool writeToStorage = false; -+ // Sadly, C++ lacks break and continue by label, so using goto in the -+ // inner loops to break or continue the outer loop. -+ if (!supplementary) { -+ outer16: for (;;) { -+ if (index == storage16.size()) { -+ writeToStorage = true; -+ break; -+ } -+ if (storage16[index] == utf32[0]) { -+ for (int32_t i = 1; i < len; ++i) { -+ if (storage16[index + i] != uint32_t(utf32[i])) { -+ ++index; -+ // continue outer -+ goto outer16; -+ } -+ } -+ // break outer -+ goto after; -+ } -+ ++index; -+ } -+ } else { -+ outer32: for (;;) { -+ if (index == storage32.size()) { -+ writeToStorage = true; -+ break; -+ } -+ if (storage32[index] == uint32_t(utf32[0])) { -+ for (int32_t i = 1; i < len; ++i) { -+ if (storage32[index + i] != uint32_t(utf32[i])) { -+ ++index; -+ // continue outer -+ goto outer32; -+ } -+ } -+ // break outer -+ goto after; -+ } -+ ++index; -+ } -+ } -+ after: -+ if (index > 0xFFF) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ descriptor |= uint32_t(index); -+ if (!descriptor || descriptor > 0xFFFF) { -+ // > 0xFFFF should never happen if the code above is correct. -+ // == 0 should not happen due to the nature of the data. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, basename); -+ } -+ if (writeToStorage) { -+ if (!supplementary) { -+ for (int32_t i = 0; i < len; ++i) { -+ storage16.push_back(uint16_t(utf32[i])); -+ } -+ } else { -+ for (int32_t i = 0; i < len; ++i) { -+ storage32.push_back(uint32_t(utf32[i])); -+ } -+ } -+ } -+ -+ uint32_t nonRoundTripMarker = 0; -+ if (!nonNfdOrRoundTrips) { -+ nonRoundTripMarker = (NON_ROUND_TRIP_MARKER << 16); -+ } -+ pendingTrieInsertions.push_back({c, descriptor | nonRoundTripMarker, supplementary}); -+ } -+ } -+ if (storage16.size() + storage32.size() > 0xFFF) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ } -+ if (f) { -+ usrc_writeArray(f, "scalars32 = [\n ", nonRecursive32.data(), 32, nonRecursive32.size(), " ", "\n]\n"); -+ -+ LocalUCPTriePointer utrie(umutablecptrie_buildImmutable( -+ nonRecursiveBuilder.getAlias(), -+ trieType, -+ UCPTRIE_VALUE_BITS_32, -+ status)); -+ handleError(status, basename); -+ -+ fprintf(f, "[trie]\n"); -+ usrc_writeUCPTrie(f, "trie", utrie.getAlias(), UPRV_TARGET_SYNTAX_TOML); -+ -+ fclose(f); -+ } -+ handleError(status, basename); -+} -+ -+#endif // !UCONFIG_NO_NORMALIZATION -+ - enum { - OPT_HELP_H, - OPT_HELP_QUESTION_MARK, -@@ -341,7 +988,7 @@ void printHelp(FILE* stdfile, const char* program) { - "options:\n" - "\t-h or -? or --help this usage text\n" - "\t-V or --version show a version message\n" -- "\t-m or --mode mode: currently only 'uprops' and 'ucase', but more may be added\n" -+ "\t-m or --mode mode: currently only 'uprops', 'ucase', and 'norm', but more may be added\n" - "\t --trie-type set the trie type (small or fast, default small)\n" - "\t-d or --destdir destination directory, followed by the path\n" - "\t --all write out all properties known to icuexportdata\n" -@@ -387,6 +1034,46 @@ int exportUprops(int argc, char* argv[]) { - } - } - -+ if (propNames.empty() -+ || options[OPT_HELP_H].doesOccur -+ || options[OPT_HELP_QUESTION_MARK].doesOccur -+ || !options[OPT_MODE].doesOccur) { -+ FILE *stdfile=argc<0 ? stderr : stdout; -+ fprintf(stdfile, -+ "usage: %s -m uprops [-options] [--all | properties...]\n" -+ "\tdump Unicode property data to .toml files\n" -+ "options:\n" -+ "\t-h or -? or --help this usage text\n" -+ "\t-V or --version show a version message\n" -+ "\t-m or --mode mode: currently only 'uprops', but more may be added\n" -+ "\t --trie-type set the trie type (small or fast, default small)\n" -+ "\t-d or --destdir destination directory, followed by the path\n" -+ "\t --all write out all properties known to icuexportdata\n" -+ "\t --index write an _index.toml summarizing all data exported\n" -+ "\t-c or --copyright include a copyright notice\n" -+ "\t-v or --verbose Turn on verbose output\n" -+ "\t-q or --quiet do not display warnings and progress\n", -+ argv[0]); -+ return argc<0 ? U_ILLEGAL_ARGUMENT_ERROR : U_ZERO_ERROR; -+ } -+ -+ const char* mode = options[OPT_MODE].value; -+ if (uprv_strcmp(mode, "uprops") != 0) { -+ fprintf(stderr, "Invalid option for --mode (must be uprops)\n"); -+ return U_ILLEGAL_ARGUMENT_ERROR; -+ } -+ -+ if (options[OPT_TRIE_TYPE].doesOccur) { -+ if (uprv_strcmp(options[OPT_TRIE_TYPE].value, "fast") == 0) { -+ trieType = UCPTRIE_TYPE_FAST; -+ } else if (uprv_strcmp(options[OPT_TRIE_TYPE].value, "small") == 0) { -+ trieType = UCPTRIE_TYPE_SMALL; -+ } else { -+ fprintf(stderr, "Invalid option for --trie-type (must be small or fast)\n"); -+ return U_ILLEGAL_ARGUMENT_ERROR; -+ } -+ } -+ - for (const char* propName : propNames) { - UProperty propEnum = u_getPropertyEnum(propName); - if (propEnum == UCHAR_INVALID_CODE) { -@@ -443,7 +1130,7 @@ addRangeToUCPTrie(const void* context, UChar32 start, UChar32 end, uint32_t valu - umutablecptrie_setRange(ucptrie, start, end, value, status); - handleError(status, "setRange"); - -- return TRUE; -+ return true; - } - - int exportCase(int argc, char* argv[]) { -@@ -505,6 +1192,126 @@ int exportCase(int argc, char* argv[]) { - return 0; - } - -+#if !UCONFIG_NO_NORMALIZATION -+ -+int exportNorm() { -+ IcuToolErrorCode status("icuexportdata: exportNorm"); -+ USet* backwardCombiningStarters = uset_openEmpty(); -+ writeCanonicalCompositions(backwardCombiningStarters); -+ -+ std::vector storage16; -+ std::vector storage32; -+ -+ // Note: the USets are not exported. They are only used to check that a new -+ // Unicode version doesn't violate expectations that are hard-coded in ICU4X. -+ USet* nfdDecompositionStartsWithNonStarter = uset_openEmpty(); -+ USet* nfdDecompositionStartsWithBackwardCombiningStarter = uset_openEmpty(); -+ std::vector nfdPendingTrieInsertions; -+ UChar32 nfdBound = 0x10FFFF; -+ UChar32 nfcBound = 0x10FFFF; -+ computeDecompositions("nfd", -+ backwardCombiningStarters, -+ storage16, -+ storage32, -+ nfdDecompositionStartsWithNonStarter, -+ nfdDecompositionStartsWithBackwardCombiningStarter, -+ nfdPendingTrieInsertions, -+ nfdBound, -+ nfcBound); -+ if (!(nfdBound == 0xC0 && nfcBound == 0x300)) { -+ // Unexpected bounds for NFD/NFC. -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, "exportNorm"); -+ } -+ -+ uint32_t baseSize16 = storage16.size(); -+ uint32_t baseSize32 = storage32.size(); -+ -+ USet* nfkdDecompositionStartsWithNonStarter = uset_openEmpty(); -+ USet* nfkdDecompositionStartsWithBackwardCombiningStarter = uset_openEmpty(); -+ std::vector nfkdPendingTrieInsertions; -+ UChar32 nfkdBound = 0x10FFFF; -+ UChar32 nfkcBound = 0x10FFFF; -+ computeDecompositions("nfkd", -+ backwardCombiningStarters, -+ storage16, -+ storage32, -+ nfkdDecompositionStartsWithNonStarter, -+ nfkdDecompositionStartsWithBackwardCombiningStarter, -+ nfkdPendingTrieInsertions, -+ nfkdBound, -+ nfkcBound); -+ if (!(nfkdBound <= 0xC0 && nfkcBound <= 0x300)) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, "exportNorm"); -+ } -+ if (nfkcBound > 0xC0) { -+ if (nfkdBound != 0xC0) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, "exportNorm"); -+ } -+ } else { -+ if (nfkdBound != nfkcBound) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, "exportNorm"); -+ } -+ } -+ -+ USet* uts46DecompositionStartsWithNonStarter = uset_openEmpty(); -+ USet* uts46DecompositionStartsWithBackwardCombiningStarter = uset_openEmpty(); -+ std::vector uts46PendingTrieInsertions; -+ UChar32 uts46dBound = 0x10FFFF; -+ UChar32 uts46Bound = 0x10FFFF; -+ computeDecompositions("uts46d", -+ backwardCombiningStarters, -+ storage16, -+ storage32, -+ uts46DecompositionStartsWithNonStarter, -+ uts46DecompositionStartsWithBackwardCombiningStarter, -+ uts46PendingTrieInsertions, -+ uts46dBound, -+ uts46Bound); -+ if (!(uts46dBound <= 0xC0 && uts46Bound <= 0x300)) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, "exportNorm"); -+ } -+ if (uts46Bound > 0xC0) { -+ if (uts46dBound != 0xC0) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, "exportNorm"); -+ } -+ } else { -+ if (uts46dBound != uts46Bound) { -+ status.set(U_INTERNAL_PROGRAM_ERROR); -+ handleError(status, "exportNorm"); -+ } -+ } -+ -+ uint32_t supplementSize16 = storage16.size() - baseSize16; -+ uint32_t supplementSize32 = storage32.size() - baseSize32; -+ -+ writeDecompositionData("nfd", baseSize16, baseSize32, supplementSize16, nfdDecompositionStartsWithNonStarter, nullptr, nfdPendingTrieInsertions, char16_t(nfcBound)); -+ writeDecompositionData("nfkd", baseSize16, baseSize32, supplementSize16, nfkdDecompositionStartsWithNonStarter, nfdDecompositionStartsWithNonStarter, nfkdPendingTrieInsertions, char16_t(nfkcBound)); -+ writeDecompositionData("uts46d", baseSize16, baseSize32, supplementSize16, uts46DecompositionStartsWithNonStarter, nfdDecompositionStartsWithNonStarter, uts46PendingTrieInsertions, char16_t(uts46Bound)); -+ -+ writeDecompositionTables("nfdex", storage16.data(), baseSize16, storage32.data(), baseSize32); -+ writeDecompositionTables("nfkdex", storage16.data() + baseSize16, supplementSize16, storage32.data() + baseSize32, supplementSize32); -+ -+ uset_close(nfdDecompositionStartsWithNonStarter); -+ uset_close(nfkdDecompositionStartsWithNonStarter); -+ uset_close(uts46DecompositionStartsWithNonStarter); -+ -+ uset_close(nfdDecompositionStartsWithBackwardCombiningStarter); -+ uset_close(nfkdDecompositionStartsWithBackwardCombiningStarter); -+ uset_close(uts46DecompositionStartsWithBackwardCombiningStarter); -+ -+ uset_close(backwardCombiningStarters); -+ handleError(status, "exportNorm"); -+ return 0; -+} -+ -+#endif // !UCONFIG_NO_NORMALIZATION -+ - int main(int argc, char* argv[]) { - U_MAIN_INIT_ARGS(argc, argv); - -@@ -553,12 +1360,20 @@ int main(int argc, char* argv[]) { - } - - const char* mode = options[OPT_MODE].value; -+ if (uprv_strcmp(mode, "norm") == 0) { -+#if !UCONFIG_NO_NORMALIZATION -+ return exportNorm(); -+#else -+ fprintf(stderr, "Exporting normalization data not supported when compiling without normalization support.\n"); -+ return U_ILLEGAL_ARGUMENT_ERROR; -+#endif -+ } - if (uprv_strcmp(mode, "uprops") == 0) { - return exportUprops(argc, argv); - } else if (uprv_strcmp(mode, "ucase") == 0) { - return exportCase(argc, argv); - } - -- fprintf(stderr, "Invalid option for --mode (must be uprops or ucase)\n"); -+ fprintf(stderr, "Invalid option for --mode (must be uprops, ucase, or norm)\n"); - return U_ILLEGAL_ARGUMENT_ERROR; - } -diff --git a/deps/icu-small/source/tools/icupkg/icupkg.cpp b/deps/icu-small/source/tools/icupkg/icupkg.cpp -index 39707946b0..a12e956d19 100644 ---- a/deps/icu-small/source/tools/icupkg/icupkg.cpp -+++ b/deps/icu-small/source/tools/icupkg/icupkg.cpp -@@ -278,7 +278,7 @@ main(int argc, char *argv[]) { - argc=u_parseArgs(argc, argv, UPRV_LENGTHOF(options), options); - isHelp=options[OPT_HELP_H].doesOccur || options[OPT_HELP_QUESTION_MARK].doesOccur; - if(isHelp) { -- printUsage(pname, TRUE); -+ printUsage(pname, true); - return U_ZERO_ERROR; - } - -@@ -287,7 +287,7 @@ main(int argc, char *argv[]) { - fprintf(stderr, "icupkg: not enough memory\n"); - return U_MEMORY_ALLOCATION_ERROR; - } -- isModified=FALSE; -+ isModified=false; - - int autoPrefix=0; - if(options[OPT_AUTO_TOC_PREFIX].doesOccur) { -@@ -297,14 +297,14 @@ main(int argc, char *argv[]) { - if(options[OPT_AUTO_TOC_PREFIX_WITH_TYPE].doesOccur) { - if(options[OPT_TOC_PREFIX].doesOccur) { - fprintf(stderr, "icupkg: --auto_toc_prefix_with_type and also --toc_prefix\n"); -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - pkg->setAutoPrefixWithType(); - ++autoPrefix; - } - if(argc<2 || 31) { -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - -@@ -324,27 +324,27 @@ main(int argc, char *argv[]) { - if(0==strcmp(argv[1], "new")) { - if(autoPrefix) { - fprintf(stderr, "icupkg: --auto_toc_prefix[_with_type] but no input package\n"); -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - inFilename=NULL; -- isPackage=TRUE; -+ isPackage=true; - } else { - inFilename=argv[1]; - if(isPackageName(inFilename)) { - pkg->readPackage(inFilename); -- isPackage=TRUE; -+ isPackage=true; - } else { - /* swap a single file (icuswap replacement) rather than work on a package */ - pkg->addFile(sourcePath, inFilename); -- isPackage=FALSE; -+ isPackage=false; - } - } - - if(argc>=3) { - outFilename=argv[2]; - if(0!=strcmp(argv[1], argv[2])) { -- isModified=TRUE; -+ isModified=true; - } - } else if(isPackage) { - outFilename=NULL; -@@ -358,7 +358,7 @@ main(int argc, char *argv[]) { - const char *type=options[OPT_OUT_TYPE].value; - if(type[0]==0 || type[1]!=0) { - /* the type must be exactly one letter */ -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - outType=type[0]; -@@ -368,7 +368,7 @@ main(int argc, char *argv[]) { - case 'e': - break; - default: -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - -@@ -386,7 +386,7 @@ main(int argc, char *argv[]) { - } - - if(options[OPT_WRITEPKG].doesOccur) { -- isModified=TRUE; -+ isModified=true; - } - - if(!isPackage) { -@@ -402,7 +402,7 @@ main(int argc, char *argv[]) { - options[OPT_EXTRACT_LIST].doesOccur || - options[OPT_LIST_ITEMS].doesOccur - ) { -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - if(isModified) { -@@ -427,7 +427,7 @@ main(int argc, char *argv[]) { - if(0==strcmp(options[OPT_MATCHMODE].value, "noslash")) { - pkg->setMatchMode(Package::MATCH_NOSLASH); - } else { -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - } -@@ -439,12 +439,12 @@ main(int argc, char *argv[]) { - fprintf(stderr, "icupkg: not enough memory\n"); - exit(U_MEMORY_ALLOCATION_ERROR); - } -- if(readList(NULL, options[OPT_REMOVE_LIST].value, FALSE, listPkg)) { -+ if(readList(NULL, options[OPT_REMOVE_LIST].value, false, listPkg)) { - pkg->removeItems(*listPkg); - delete listPkg; -- isModified=TRUE; -+ isModified=true; - } else { -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - } -@@ -461,12 +461,12 @@ main(int argc, char *argv[]) { - fprintf(stderr, "icupkg: not enough memory\n"); - exit(U_MEMORY_ALLOCATION_ERROR); - } -- if(readList(sourcePath, options[OPT_ADD_LIST].value, TRUE, addListPkg)) { -+ if(readList(sourcePath, options[OPT_ADD_LIST].value, true, addListPkg)) { - pkg->addItems(*addListPkg); - // delete addListPkg; deferred until after writePackage() -- isModified=TRUE; -+ isModified=true; - } else { -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - } -@@ -478,11 +478,11 @@ main(int argc, char *argv[]) { - fprintf(stderr, "icupkg: not enough memory\n"); - exit(U_MEMORY_ALLOCATION_ERROR); - } -- if(readList(NULL, options[OPT_EXTRACT_LIST].value, FALSE, listPkg)) { -+ if(readList(NULL, options[OPT_EXTRACT_LIST].value, false, listPkg)) { - pkg->extractItems(destPath, *listPkg, outType); - delete listPkg; - } else { -- printUsage(pname, FALSE); -+ printUsage(pname, false); - return U_ILLEGAL_ARGUMENT_ERROR; - } - } -diff --git a/deps/icu-small/source/tools/pkgdata/pkgdata.cpp b/deps/icu-small/source/tools/pkgdata/pkgdata.cpp -index 8de99cb9ce..e1edcd3cac 100644 ---- a/deps/icu-small/source/tools/pkgdata/pkgdata.cpp -+++ b/deps/icu-small/source/tools/pkgdata/pkgdata.cpp -@@ -76,7 +76,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o); - #ifdef WINDOWS_WITH_MSVC - static int32_t pkg_createWindowsDLL(const char mode, const char *gencFilePath, UPKGOptions *o); - #endif --static int32_t pkg_createSymLinks(const char *targetDir, UBool specialHandling=FALSE); -+static int32_t pkg_createSymLinks(const char *targetDir, UBool specialHandling=false); - static int32_t pkg_installLibrary(const char *installDir, const char *dir, UBool noVersion); - static int32_t pkg_installFileMode(const char *installDir, const char *srcDir, const char *fileListName); - static int32_t pkg_installCommonMode(const char *installDir, const char *fileName); -@@ -91,13 +91,13 @@ static void pkg_destroyOptMatchArch(char *optMatchArch); - #endif - - static int32_t pkg_createWithAssemblyCode(const char *targetDir, const char mode, const char *gencFilePath); --static int32_t pkg_generateLibraryFile(const char *targetDir, const char mode, const char *objectFile, char *command = NULL, UBool specialHandling=FALSE); -+static int32_t pkg_generateLibraryFile(const char *targetDir, const char mode, const char *objectFile, char *command = NULL, UBool specialHandling=false); - static int32_t pkg_archiveLibrary(const char *targetDir, const char *version, UBool reverseExt); - static void createFileNames(UPKGOptions *o, const char mode, const char *version_major, const char *version, const char *libName, const UBool reverseExt, UBool noVersion); - static int32_t initializePkgDataFlags(UPKGOptions *o); - - static int32_t pkg_getPkgDataPath(UBool verbose, UOption *option); --static int runCommand(const char* command, UBool specialHandling=FALSE); -+static int runCommand(const char* command, UBool specialHandling=false); - - #define IN_COMMON_MODE(mode) (mode == 'a' || mode == 'c') - #define IN_DLL_MODE(mode) (mode == 'd' || mode == 'l') -@@ -275,7 +275,7 @@ main(int argc, char* argv[]) { - /* FileStream *out; */ - UPKGOptions o; - CharList *tail; -- UBool needsHelp = FALSE; -+ UBool needsHelp = false; - UErrorCode status = U_ZERO_ERROR; - /* char tmp[1024]; */ - uint32_t i; -@@ -295,7 +295,7 @@ main(int argc, char* argv[]) { - many options to just display them all of the time. */ - - if(options[HELP].doesOccur || options[HELP_QUESTION_MARK].doesOccur) { -- needsHelp = TRUE; -+ needsHelp = true; - } - else { - if(!needsHelp && argc<0) { -@@ -399,21 +399,21 @@ main(int argc, char* argv[]) { - } - - if(options[QUIET].doesOccur) { -- o.quiet = TRUE; -+ o.quiet = true; - } else { -- o.quiet = FALSE; -+ o.quiet = false; - } - - if(options[PDS_BUILD].doesOccur) { - #if U_PLATFORM == U_PF_OS390 -- o.pdsbuild = TRUE; -+ o.pdsbuild = true; - #else -- o.pdsbuild = FALSE; -+ o.pdsbuild = false; - fprintf(stdout, "Warning: You are using the -z option which only works on z/OS.\n"); - - #endif - } else { -- o.pdsbuild = FALSE; -+ o.pdsbuild = false; - } - - o.verbose = options[VERBOSE].doesOccur; -@@ -464,13 +464,13 @@ main(int argc, char* argv[]) { - o.entryName = o.cShortName; - } - -- o.withoutAssembly = FALSE; -+ o.withoutAssembly = false; - if (options[WITHOUT_ASSEMBLY].doesOccur) { - #ifndef BUILD_DATA_WITHOUT_ASSEMBLY - fprintf(stdout, "Warning: You are using the option to build without assembly code which is not supported on this platform.\n"); - fprintf(stdout, "Warning: This option will be ignored.\n"); - #else -- o.withoutAssembly = TRUE; -+ o.withoutAssembly = true; - #endif - } - -@@ -594,7 +594,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { - } - return result; - } else /* if (IN_COMMON_MODE(mode) || IN_DLL_MODE(mode) || IN_STATIC_MODE(mode)) */ { -- UBool noVersion = FALSE; -+ UBool noVersion = false; - - uprv_strcpy(targetDir, o->targetDir); - uprv_strcat(targetDir, PKGDATA_FILE_SEP_STRING); -@@ -657,7 +657,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { - } else /* if (IN_STATIC_MODE(mode) || IN_DLL_MODE(mode)) */ { - char gencFilePath[SMALL_BUFFER_MAX_SIZE] = ""; - char version_major[10] = ""; -- UBool reverseExt = FALSE; -+ UBool reverseExt = false; - - #if !defined(WINDOWS_WITH_MSVC) || defined(USING_CYGWIN) - /* Get the version major number. */ -@@ -670,7 +670,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { - version_major[i] = o->version[i]; - } - } else { -- noVersion = TRUE; -+ noVersion = true; - if (IN_DLL_MODE(mode)) { - fprintf(stdout, "Warning: Providing a revision number with the -r option is recommended when packaging data in the current mode.\n"); - } -@@ -678,20 +678,20 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { - - #if U_PLATFORM != U_PF_OS400 - /* Certain platforms have different library extension ordering. (e.g. libicudata.##.so vs libicudata.so.##) -- * reverseExt is FALSE if the suffix should be the version number. -+ * reverseExt is false if the suffix should be the version number. - */ - if (pkgDataFlags[LIB_EXT_ORDER][uprv_strlen(pkgDataFlags[LIB_EXT_ORDER])-1] == pkgDataFlags[SO_EXT][uprv_strlen(pkgDataFlags[SO_EXT])-1]) { -- reverseExt = TRUE; -+ reverseExt = true; - } - #endif - /* Using the base libName and version number, generate the library file names. */ - createFileNames(o, mode, version_major, o->version == NULL ? "" : o->version, o->libName, reverseExt, noVersion); - -- if ((o->version!=NULL || IN_STATIC_MODE(mode)) && o->rebuild == FALSE && o->pdsbuild == FALSE) { -+ if ((o->version!=NULL || IN_STATIC_MODE(mode)) && o->rebuild == false && o->pdsbuild == false) { - /* Check to see if a previous built data library file exists and check if it is the latest. */ - sprintf(checkLibFile, "%s%s", targetDir, libFileNames[LIB_FILE_VERSION]); - if (T_FileStream_file_exists(checkLibFile)) { -- if (isFileModTimeLater(checkLibFile, o->srcDir, TRUE) && isFileModTimeLater(checkLibFile, o->options)) { -+ if (isFileModTimeLater(checkLibFile, o->srcDir, true) && isFileModTimeLater(checkLibFile, o->options)) { - if (o->install != NULL) { - if(o->verbose) { - fprintf(stdout, "# Installing already-built library into %s\n", o->install); -@@ -777,7 +777,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { - NULL, - gencFilePath, - sizeof(gencFilePath), -- TRUE); -+ true); - pkg_destroyOptMatchArch(optMatchArch); - #if U_PLATFORM_IS_LINUX_BASED - result = pkg_generateLibraryFile(targetDir, mode, gencFilePath); -@@ -1196,7 +1196,7 @@ static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, - if (noVersion) { - return result; - } else { -- return pkg_createSymLinks(installDir, TRUE); -+ return pkg_createSymLinks(installDir, true); - } - } - -@@ -1365,7 +1365,7 @@ static int32_t pkg_archiveLibrary(const char *targetDir, const char *version, UB - static int32_t pkg_generateLibraryFile(const char *targetDir, const char mode, const char *objectFile, char *command, UBool specialHandling) { - int32_t result = 0; - char *cmd = NULL; -- UBool freeCmd = FALSE; -+ UBool freeCmd = false; - int32_t length = 0; - - (void)specialHandling; // Suppress unused variable compiler warnings on platforms where all usage -@@ -1387,7 +1387,7 @@ static int32_t pkg_generateLibraryFile(const char *targetDir, const char mode, c - fprintf(stderr, "Unable to allocate memory for command.\n"); - return -1; - } -- freeCmd = TRUE; -+ freeCmd = true; - } - sprintf(cmd, "%s %s %s%s %s", - pkgDataFlags[AR], -@@ -1421,7 +1421,7 @@ static int32_t pkg_generateLibraryFile(const char *targetDir, const char mode, c - fprintf(stderr, "Unable to allocate memory for command.\n"); - return -1; - } -- freeCmd = TRUE; -+ freeCmd = true; - } - #if U_PLATFORM == U_PF_MINGW - sprintf(cmd, "%s%s%s %s -o %s%s %s %s%s %s %s", -@@ -1652,7 +1652,7 @@ static int32_t pkg_createWithoutAssemblyCode(UPKGOptions *o, const char *targetD - - if (i == 0) { - /* The first iteration calls the gencmn function and initializes the buffer. */ -- createCommonDataFile(o->tmpDir, o->shortName, o->entryName, NULL, o->srcDir, o->comment, o->fileListFiles->str, 0, TRUE, o->verbose, gencmnFile); -+ createCommonDataFile(o->tmpDir, o->shortName, o->entryName, NULL, o->srcDir, o->comment, o->fileListFiles->str, 0, true, o->verbose, gencmnFile); - buffer[0] = 0; - #ifdef USE_SINGLE_CCODE_FILE - uprv_strcpy(tempObjectFile, gencmnFile); -@@ -1915,7 +1915,7 @@ static int32_t pkg_createWindowsDLL(const char mode, const char *gencFilePath, U - ); - } - -- result = runCommand(cmd, TRUE); -+ result = runCommand(cmd, true); - if (result != 0) { - fprintf(stderr, "Error creating Windows DLL library. Failed command: %s\n", cmd); - } -@@ -2192,10 +2192,10 @@ static UBool getPkgDataPath(const char *cmd, UBool verbose, char *buf, size_t it - if (p.isNull() || (n = fread(buf, 1, items-1, p.getAlias())) <= 0) { - fprintf(stderr, "%s: Error calling '%s'\n", progname, cmd); - *buf = 0; -- return FALSE; -+ return false; - } - -- return TRUE; -+ return true; - } - #endif - -@@ -2203,7 +2203,7 @@ static UBool getPkgDataPath(const char *cmd, UBool verbose, char *buf, size_t it - static int32_t pkg_getPkgDataPath(UBool verbose, UOption *option) { - #if U_HAVE_POPEN - static char buf[512] = ""; -- UBool pkgconfigIsValid = TRUE; -+ UBool pkgconfigIsValid = true; - const char *pkgconfigCmd = "pkg-config --variable=pkglibdir icu-uc"; - const char *icuconfigCmd = "icu-config --incpkgdatafile"; - const char *pkgdata = "pkgdata.inc"; -@@ -2214,7 +2214,7 @@ static int32_t pkg_getPkgDataPath(UBool verbose, UOption *option) { - return -1; - } - -- pkgconfigIsValid = FALSE; -+ pkgconfigIsValid = false; - } - - for (int32_t length = strlen(buf) - 1; length >= 0; length--) { -@@ -2238,7 +2238,7 @@ static int32_t pkg_getPkgDataPath(UBool verbose, UOption *option) { - buf[strlen(buf)] = 0; - - option->value = buf; -- option->doesOccur = TRUE; -+ option->doesOccur = true; - - return 0; - #else -diff --git a/deps/icu-small/source/tools/toolutil/dbgutil.cpp b/deps/icu-small/source/tools/toolutil/dbgutil.cpp -index 399ec6d16c..7b72d42485 100644 ---- a/deps/icu-small/source/tools/toolutil/dbgutil.cpp -+++ b/deps/icu-small/source/tools/toolutil/dbgutil.cpp -@@ -47,7 +47,7 @@ static void udbg_cleanup(void) { - static UBool tu_cleanup(void) - { - udbg_cleanup(); -- return TRUE; -+ return true; - } - - static void udbg_register_cleanup(void) { -diff --git a/deps/icu-small/source/tools/toolutil/filestrm.cpp b/deps/icu-small/source/tools/toolutil/filestrm.cpp -index a926848985..d4bb448a79 100644 ---- a/deps/icu-small/source/tools/toolutil/filestrm.cpp -+++ b/deps/icu-small/source/tools/toolutil/filestrm.cpp -@@ -84,9 +84,9 @@ T_FileStream_file_exists(const char* filename) - FILE* temp = fopen(filename, "r"); - if (temp) { - fclose(temp); -- return TRUE; -+ return true; - } else -- return FALSE; -+ return false; - } - - /*static const int32_t kEOF; -diff --git a/deps/icu-small/source/tools/toolutil/filetools.cpp b/deps/icu-small/source/tools/toolutil/filetools.cpp -index 0f0e9c5984..08bb9a4aef 100644 ---- a/deps/icu-small/source/tools/toolutil/filetools.cpp -+++ b/deps/icu-small/source/tools/toolutil/filetools.cpp -@@ -39,17 +39,17 @@ static int32_t whichFileModTimeIsLater(const char *file1, const char *file2); - - /* - * Goes through the given directory recursive to compare each file's modification time with that of the file given. -- * Also can be given just one file to check against. Default value for isDir is FALSE. -+ * Also can be given just one file to check against. Default value for isDir is false. - */ - U_CAPI UBool U_EXPORT2 - isFileModTimeLater(const char *filePath, const char *checkAgainst, UBool isDir) { -- UBool isLatest = TRUE; -+ UBool isLatest = true; - - if (filePath == NULL || checkAgainst == NULL) { -- return FALSE; -+ return false; - } - -- if (isDir == TRUE) { -+ if (isDir == true) { - #if U_HAVE_DIRENT_H - DIR *pDir = NULL; - if ((pDir= opendir(checkAgainst)) != NULL) { -@@ -64,7 +64,7 @@ isFileModTimeLater(const char *filePath, const char *checkAgainst, UBool isDir) - newpath.append(dirEntry->d_name, -1, status); - if (U_FAILURE(status)) { - fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, u_errorName(status)); -- return FALSE; -+ return false; - } - - if ((subDirp = opendir(newpath.data())) != NULL) { -@@ -77,7 +77,7 @@ isFileModTimeLater(const char *filePath, const char *checkAgainst, UBool isDir) - } else { - int32_t latest = whichFileModTimeIsLater(filePath, newpath.data()); - if (latest < 0 || latest == 2) { -- isLatest = FALSE; -+ isLatest = false; - break; - } - } -@@ -87,17 +87,17 @@ isFileModTimeLater(const char *filePath, const char *checkAgainst, UBool isDir) - closedir(pDir); - } else { - fprintf(stderr, "Unable to open directory: %s\n", checkAgainst); -- return FALSE; -+ return false; - } - #endif - } else { - if (T_FileStream_file_exists(checkAgainst)) { - int32_t latest = whichFileModTimeIsLater(filePath, checkAgainst); - if (latest < 0 || latest == 2) { -- isLatest = FALSE; -+ isLatest = false; - } - } else { -- isLatest = FALSE; -+ isLatest = false; - } - } - -diff --git a/deps/icu-small/source/tools/toolutil/flagparser.cpp b/deps/icu-small/source/tools/toolutil/flagparser.cpp -index 65513f3611..3fca179db4 100644 ---- a/deps/icu-small/source/tools/toolutil/flagparser.cpp -+++ b/deps/icu-small/source/tools/toolutil/flagparser.cpp -@@ -25,7 +25,7 @@ U_CAPI int32_t U_EXPORT2 - parseFlagsFile(const char *fileName, char **flagBuffer, int32_t flagBufferSize, const char ** flagNames, int32_t numOfFlags, UErrorCode *status) { - char* buffer = NULL; - char* tmpFlagBuffer = NULL; -- UBool allocateMoreSpace = FALSE; -+ UBool allocateMoreSpace = false; - int32_t idx, i; - int32_t result = 0; - -@@ -45,7 +45,7 @@ parseFlagsFile(const char *fileName, char **flagBuffer, int32_t flagBufferSize, - - do { - if (allocateMoreSpace) { -- allocateMoreSpace = FALSE; -+ allocateMoreSpace = false; - currentBufferSize *= 2; - uprv_free(buffer); - buffer = (char *)uprv_malloc(sizeof(char) * currentBufferSize); -@@ -65,7 +65,7 @@ parseFlagsFile(const char *fileName, char **flagBuffer, int32_t flagBufferSize, - - if ((int32_t)uprv_strlen(buffer) == (currentBufferSize - 1) && buffer[currentBufferSize-2] != '\n') { - /* Allocate more space for buffer if it did not read the entire line */ -- allocateMoreSpace = TRUE; -+ allocateMoreSpace = true; - T_FileStream_rewind(f); - break; - } else { -@@ -118,7 +118,7 @@ static int32_t extractFlag(char* buffer, int32_t bufferSize, char* flag, int32_t - int32_t i, idx = -1; - char *pBuffer; - int32_t offset=0; -- UBool bufferWritten = FALSE; -+ UBool bufferWritten = false; - - if (buffer[0] != 0) { - /* Get the offset (i.e. position after the '=') */ -@@ -137,7 +137,7 @@ static int32_t extractFlag(char* buffer, int32_t bufferSize, char* flag, int32_t - - flag[i] = pBuffer[i]; - if (i == 0) { -- bufferWritten = TRUE; -+ bufferWritten = true; - } - } - } -diff --git a/deps/icu-small/source/tools/toolutil/package.cpp b/deps/icu-small/source/tools/toolutil/package.cpp -index f4e428a37e..2e8b5037c0 100644 ---- a/deps/icu-small/source/tools/toolutil/package.cpp -+++ b/deps/icu-small/source/tools/toolutil/package.cpp -@@ -382,7 +382,7 @@ U_CDECL_END - U_NAMESPACE_BEGIN - - Package::Package() -- : doAutoPrefix(FALSE), prefixEndsWithType(FALSE) { -+ : doAutoPrefix(false), prefixEndsWithType(false) { - inPkgName[0]=0; - pkgPrefix[0]=0; - inData=NULL; -@@ -655,7 +655,7 @@ Package::readPackage(const char *filename) { - } - items[i-1].type=makeTypeLetter(typeEnum); - } -- items[i].isDataOwned=FALSE; -+ items[i].isDataOwned=false; - } - // set the last item's length - items[itemCount-1].length=length-ds->readUInt32(inEntries[itemCount-1].dataOffset); -@@ -728,10 +728,10 @@ Package::writePackage(const char *filename, char outType, const char *comment) { - // one type (TYPE_LE) is bogus - errorCode=U_ZERO_ERROR; - i=makeTypeEnum(outType); -- ds[TYPE_B]= i==TYPE_B ? NULL : udata_openSwapper(TRUE, U_ASCII_FAMILY, outIsBigEndian, outCharset, &errorCode); -- ds[TYPE_L]= i==TYPE_L ? NULL : udata_openSwapper(FALSE, U_ASCII_FAMILY, outIsBigEndian, outCharset, &errorCode); -+ ds[TYPE_B]= i==TYPE_B ? NULL : udata_openSwapper(true, U_ASCII_FAMILY, outIsBigEndian, outCharset, &errorCode); -+ ds[TYPE_L]= i==TYPE_L ? NULL : udata_openSwapper(false, U_ASCII_FAMILY, outIsBigEndian, outCharset, &errorCode); - ds[TYPE_LE]=NULL; -- ds[TYPE_E]= i==TYPE_E ? NULL : udata_openSwapper(TRUE, U_EBCDIC_FAMILY, outIsBigEndian, outCharset, &errorCode); -+ ds[TYPE_E]= i==TYPE_E ? NULL : udata_openSwapper(true, U_EBCDIC_FAMILY, outIsBigEndian, outCharset, &errorCode); - if(U_FAILURE(errorCode)) { - fprintf(stderr, "icupkg: udata_openSwapper() failed - %s\n", u_errorName(errorCode)); - exit(errorCode); -@@ -798,7 +798,7 @@ Package::writePackage(const char *filename, char outType, const char *comment) { - // create the output item names in sorted order, with the package name prepended to each - for(i=0; i(strlen(name))); -+ items[idx].name=allocString(true, static_cast(strlen(name))); - strcpy(items[idx].name, name); - pathToTree(items[idx].name); - } else { -@@ -1070,7 +1070,7 @@ Package::addFile(const char *filesPath, const char *name) { - - data=readFile(filesPath, name, length, type); - // readFile() exits the tool if it fails -- addItem(name, data, length, TRUE, type); -+ addItem(name, data, length, true, type); - } - - void -@@ -1079,7 +1079,7 @@ Package::addItems(const Package &listPkg) { - int32_t i; - - for(pItem=listPkg.items, i=0; iname, pItem->data, pItem->length, FALSE, pItem->type); -+ addItem(pItem->name, pItem->data, pItem->length, false, pItem->type); - } - } - -@@ -1224,14 +1224,14 @@ Package::checkDependency(void *context, const char *itemName, const char *target - // check dependency: make sure the target item is in the package - Package *me=(Package *)context; - if(me->findItem(targetName)<0) { -- me->isMissingItems=TRUE; -+ me->isMissingItems=true; - fprintf(stderr, "Item %s depends on missing item %s\n", itemName, targetName); - } - } - - UBool - Package::checkDependencies() { -- isMissingItems=FALSE; -+ isMissingItems=false; - enumDependencies(this, checkDependency); - return (UBool)!isMissingItems; - } -@@ -1274,7 +1274,7 @@ Package::allocString(UBool in, int32_t length) { - void - Package::sortItems() { - UErrorCode errorCode=U_ZERO_ERROR; -- uprv_sortArray(items, itemCount, (int32_t)sizeof(Item), compareItems, NULL, FALSE, &errorCode); -+ uprv_sortArray(items, itemCount, (int32_t)sizeof(Item), compareItems, NULL, false, &errorCode); - if(U_FAILURE(errorCode)) { - fprintf(stderr, "icupkg: sorting item names failed - %s\n", u_errorName(errorCode)); - exit(errorCode); -diff --git a/deps/icu-small/source/tools/toolutil/pkg_genc.cpp b/deps/icu-small/source/tools/toolutil/pkg_genc.cpp -index 17347bac5d..1f81bf94a4 100644 ---- a/deps/icu-small/source/tools/toolutil/pkg_genc.cpp -+++ b/deps/icu-small/source/tools/toolutil/pkg_genc.cpp -@@ -252,11 +252,11 @@ checkAssemblyHeaderName(const char* optAssembly) { - if (uprv_strcmp(optAssembly, assemblyHeader[idx].name) == 0) { - assemblyHeaderIndex = idx; - hexType = assemblyHeader[idx].hexType; /* set the hex type */ -- return TRUE; -+ return true; - } - } - -- return FALSE; -+ return false; - } - - -@@ -778,7 +778,7 @@ getArchitecture(uint16_t *pCPU, uint16_t *pBits, UBool *pIsBigEndian, const char - *pIsBigEndian=(UBool)(U_IS_BIG_ENDIAN ? ELFDATA2MSB : ELFDATA2LSB); - #elif U_PLATFORM_HAS_WIN32_API - // Windows always runs in little-endian mode. -- *pIsBigEndian = FALSE; -+ *pIsBigEndian = false; - - // Note: The various _M_ macros are predefined by the MSVC compiler based - // on the target compilation architecture. -@@ -865,7 +865,7 @@ getArchitecture(uint16_t *pCPU, uint16_t *pBits, UBool *pIsBigEndian, const char - */ - *pBits= *pCPU==IMAGE_FILE_MACHINE_I386 ? 32 : 64; - /* Windows always runs on little-endian CPUs. */ -- *pIsBigEndian=FALSE; -+ *pIsBigEndian=false; - #else - # error "Unknown platform for CAN_GENERATE_OBJECTS." - #endif -diff --git a/deps/icu-small/source/tools/toolutil/pkg_icu.cpp b/deps/icu-small/source/tools/toolutil/pkg_icu.cpp -index ce0bfc215b..06ddbb89b8 100644 ---- a/deps/icu-small/source/tools/toolutil/pkg_icu.cpp -+++ b/deps/icu-small/source/tools/toolutil/pkg_icu.cpp -@@ -42,10 +42,10 @@ isListTextFile(const char *listname) { - suffix=listFileSuffixes[i].suffix; - length=listFileSuffixes[i].length; - if((listNameEnd-listname)>length && 0==memcmp(listNameEnd-length, suffix, length)) { -- return TRUE; -+ return true; - } - } -- return FALSE; -+ return false; - } - - /* -@@ -163,7 +163,7 @@ writePackageDatFile(const char *outFilename, const char *outComment, const char - } - pkg = ownedPkg.getAlias(); - -- addListPkg.adoptInstead(readList(sourcePath, addList, TRUE, NULL)); -+ addListPkg.adoptInstead(readList(sourcePath, addList, true, NULL)); - if(addListPkg.isValid()) { - pkg->addItems(*addListPkg); - } else { -diff --git a/deps/icu-small/source/tools/toolutil/pkgitems.cpp b/deps/icu-small/source/tools/toolutil/pkgitems.cpp -index af45867797..79e076c0c2 100644 ---- a/deps/icu-small/source/tools/toolutil/pkgitems.cpp -+++ b/deps/icu-small/source/tools/toolutil/pkgitems.cpp -@@ -277,44 +277,46 @@ checkAlias(const char *itemName, - * Enumerate one resource item and its children and extract dependencies from - * aliases. - */ --static void -+static UBool - ures_enumDependencies(const char *itemName, - const ResourceData *pResData, - Resource res, const char *inKey, const char *parentKey, int32_t depth, - CheckDependency check, void *context, - Package *pkg, - UErrorCode *pErrorCode) { -+ UBool doCheckParent = true; // always remains true if depth>1 - switch(res_getPublicType(res)) { - case URES_STRING: -- { -- UBool useResSuffix = TRUE; -- // Check for %%ALIAS -- if(depth==1 && inKey!=NULL) { -- if(0!=strcmp(inKey, "%%ALIAS")) { -- break; -- } -- } -- // Check for %%DEPENDENCY -- else if(depth==2 && parentKey!=NULL) { -- if(0!=strcmp(parentKey, "%%DEPENDENCY")) { -- break; -- } -- useResSuffix = FALSE; -- } else { -- // we ignore all other strings -- break; -- } -+ if(depth==1 && inKey!=NULL && -+ (0==strcmp(inKey, "%%ALIAS") || 0==strcmp(inKey, "%%Parent"))) { -+ // Top-level %%ALIAS string: -+ // The alias resource bundle will be used instead of this one. -+ // Top-level %%Parent string: -+ // We use this bundle as well as the explicit parent bundle. -+ // Either way, the truncation parent is ignored. -+ doCheckParent = false; -+ // No tracing: build tool - int32_t length; -+ const UChar *alias=res_getStringNoTrace(pResData, res, &length); -+ checkAlias(itemName, res, alias, length, /*useResSuffix=*/ true, -+ check, context, pErrorCode); -+ // If there is a %%ALIAS, then there should be nothing else in this resource bundle. -+ } else if(depth==2 && parentKey!=NULL && 0==strcmp(parentKey, "%%DEPENDENCY")) { -+ // Second-level %%DEPENDENCY string: -+ // Explicit declaration of a dependency of this item on that one. - // No tracing: build tool -+ int32_t length; - const UChar *alias=res_getStringNoTrace(pResData, res, &length); -- checkAlias(itemName, res, alias, length, useResSuffix, check, context, pErrorCode); -+ checkAlias(itemName, res, alias, length, /*useResSuffix=*/ false, -+ check, context, pErrorCode); - } -+ // we ignore all other strings - break; - case URES_ALIAS: - { - int32_t length; - const UChar *alias=res_getAlias(pResData, res, &length); -- checkAlias(itemName, res, alias, length, TRUE, check, context, pErrorCode); -+ checkAlias(itemName, res, alias, length, true, check, context, pErrorCode); - } - break; - case URES_TABLE: -@@ -324,7 +326,9 @@ ures_enumDependencies(const char *itemName, - for(int32_t i=0; iformatVersion[0]>1 || (pInfo->formatVersion[0]==1 && pInfo->formatVersion[1]>=1)) { -- if(!resData.noFallback) { -- /* this bundle participates in locale fallback */ -- checkParent(itemName, check, context, pErrorCode); -- } -- } -- - icu::NativeItem nativePool; - - if(resData.usesPoolBundle) { -@@ -431,12 +425,26 @@ ures_enumDependencies(const char *itemName, const UDataInfo *pInfo, - } - } - -- ures_enumDependencies( -+ UBool doCheckParent = ures_enumDependencies( - itemName, &resData, - resData.rootRes, NULL, NULL, 0, - check, context, - pkg, - pErrorCode); -+ if(!doCheckParent) { -+ return; -+ } -+ -+ /* -+ * if the bundle attributes are present and the nofallback flag is not set, -+ * then add the parent bundle as a dependency -+ */ -+ if(pInfo->formatVersion[0]>1 || (pInfo->formatVersion[0]==1 && pInfo->formatVersion[1]>=1)) { -+ if(!resData.noFallback) { -+ /* this bundle participates in locale fallback */ -+ checkParent(itemName, check, context, pErrorCode); -+ } -+ } - } - - // get dependencies from conversion tables --------------------------------- *** -diff --git a/deps/icu-small/source/tools/toolutil/ppucd.cpp b/deps/icu-small/source/tools/toolutil/ppucd.cpp -index bf90588407..b31755947d 100644 ---- a/deps/icu-small/source/tools/toolutil/ppucd.cpp -+++ b/deps/icu-small/source/tools/toolutil/ppucd.cpp -@@ -211,7 +211,7 @@ PreparsedUCD::getProps(UnicodeSet &newValues, UErrorCode &errorCode) { - UChar32 start, end; - if(!parseCodePointRange(field, start, end, errorCode)) { return NULL; } - UniProps *props; -- UBool insideBlock=FALSE; // TRUE if cp or unassigned range inside the block range. -+ UBool insideBlock=false; // true if cp or unassigned range inside the block range. - switch(lineType) { - case DEFAULTS_LINE: - // Should occur before any block/cp/unassigned line. -@@ -247,7 +247,7 @@ PreparsedUCD::getProps(UnicodeSet &newValues, UErrorCode &errorCode) { - case CP_LINE: - case UNASSIGNED_LINE: - if(blockProps.start<=start && end<=blockProps.end) { -- insideBlock=TRUE; -+ insideBlock=true; - if(lineType==CP_LINE) { - // Code point range fully inside the last block inherits the block properties. - cpProps=blockProps; -@@ -313,7 +313,7 @@ static const struct { - { "Turkic_Case_Folding", PPUCD_TURKIC_CASE_FOLDING } - }; - --// Returns TRUE for "ok to continue parsing fields". -+// Returns true for "ok to continue parsing fields". - UBool - PreparsedUCD::parseProperty(UniProps &props, const char *field, UnicodeSet &newValues, - UErrorCode &errorCode) { -@@ -328,7 +328,7 @@ PreparsedUCD::parseProperty(UniProps &props, const char *field, UnicodeSet &newV - "enum-property syntax '%s' on line %ld\n", - field, (long)lineNumber); - errorCode=U_PARSE_ERROR; -- return FALSE; -+ return false; - } - binaryValue=0; - ++p; -@@ -346,7 +346,7 @@ PreparsedUCD::parseProperty(UniProps &props, const char *field, UnicodeSet &newV - for(int32_t i=0;; ++i) { - if(i==UPRV_LENGTHOF(ppucdProperties)) { - // Ignore unknown property names. -- return TRUE; -+ return true; - } - if(0==uprv_stricmp(p, ppucdProperties[i].name)) { - prop=ppucdProperties[i].prop; -@@ -498,23 +498,23 @@ PreparsedUCD::parseProperty(UniProps &props, const char *field, UnicodeSet &newV - break; - default: - // Ignore unhandled properties. -- return TRUE; -+ return true; - } - } - if(U_SUCCESS(errorCode)) { - newValues.add((UChar32)prop); -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - - UBool - PreparsedUCD::getRangeForAlgNames(UChar32 &start, UChar32 &end, UErrorCode &errorCode) { -- if(U_FAILURE(errorCode)) { return FALSE; } -+ if(U_FAILURE(errorCode)) { return false; } - if(lineType!=ALG_NAMES_RANGE_LINE) { - errorCode=U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return false; - } - firstField(); - const char *field=nextField(); -@@ -525,7 +525,7 @@ PreparsedUCD::getRangeForAlgNames(UChar32 &start, UChar32 &end, UErrorCode &erro - "(no second field) on line %ld\n", - (long)lineNumber); - errorCode=U_PARSE_ERROR; -- return FALSE; -+ return false; - } - return parseCodePointRange(field, start, end, errorCode); - } -@@ -552,11 +552,11 @@ PreparsedUCD::parseCodePointRange(const char *s, UChar32 &start, UChar32 &end, U - fprintf(stderr, - "error in preparsed UCD: '%s' is not a valid code point range on line %ld\n", - s, (long)lineNumber); -- return FALSE; -+ return false; - } - start=(UChar32)st; - end=(UChar32)e; -- return TRUE; -+ return true; - } - - void -diff --git a/deps/icu-small/source/tools/toolutil/ppucd.h b/deps/icu-small/source/tools/toolutil/ppucd.h -index 7c9c34af6f..bf455d0e14 100644 ---- a/deps/icu-small/source/tools/toolutil/ppucd.h -+++ b/deps/icu-small/source/tools/toolutil/ppucd.h -@@ -120,7 +120,7 @@ public: - /** Returns the Unicode version when or after the UNICODE_VERSION_LINE has been read. */ - const UVersionInfo &getUnicodeVersion() const { return ucdVersion; } - -- /** Returns TRUE if the current line has property values. */ -+ /** Returns true if the current line has property values. */ - UBool lineHasPropertyValues() const { - return DEFAULTS_LINE<=lineType && lineType<=UNASSIGNED_LINE; - } -diff --git a/deps/icu-small/source/tools/toolutil/toolutil.cpp b/deps/icu-small/source/tools/toolutil/toolutil.cpp -index a9dc37377a..070c6034af 100644 ---- a/deps/icu-small/source/tools/toolutil/toolutil.cpp -+++ b/deps/icu-small/source/tools/toolutil/toolutil.cpp -@@ -204,9 +204,9 @@ U_CAPI UBool U_EXPORT2 - uprv_fileExists(const char *file) { - struct stat stat_buf; - if (stat(file, &stat_buf) == 0) { -- return TRUE; -+ return true; - } else { -- return FALSE; -+ return false; - } - } - #endif -@@ -351,7 +351,7 @@ utm_hasCapacity(UToolMemory *mem, int32_t capacity) { - mem->capacity=newCapacity; - } - -- return TRUE; -+ return true; - } - - U_CAPI void * U_EXPORT2 -diff --git a/deps/icu-small/source/tools/toolutil/toolutil.h b/deps/icu-small/source/tools/toolutil/toolutil.h -index 1c9f06758f..98b2155551 100644 ---- a/deps/icu-small/source/tools/toolutil/toolutil.h -+++ b/deps/icu-small/source/tools/toolutil/toolutil.h -@@ -23,13 +23,6 @@ - - #include "unicode/utypes.h" - --#ifndef TRUE --# define TRUE 1 --#endif --#ifndef FALSE --# define FALSE 0 --#endif -- - #ifdef __cplusplus - - #include "unicode/errorcode.h" -@@ -118,9 +111,9 @@ uprv_mkdir(const char *pathname, UErrorCode *status); - - #if !UCONFIG_NO_FILE_IO - /** -- * Return TRUE if the named item exists -+ * Return true if the named item exists - * @param file filename -- * @return TRUE if named item (file, dir, etc) exists, FALSE otherwise -+ * @return true if named item (file, dir, etc) exists, false otherwise - */ - U_CAPI UBool U_EXPORT2 - uprv_fileExists(const char *file); -diff --git a/deps/icu-small/source/tools/toolutil/ucbuf.cpp b/deps/icu-small/source/tools/toolutil/ucbuf.cpp -index c8e906f2d5..f269748205 100644 ---- a/deps/icu-small/source/tools/toolutil/ucbuf.cpp -+++ b/deps/icu-small/source/tools/toolutil/ucbuf.cpp -@@ -73,7 +73,7 @@ ucbuf_autodetect_fs(FileStream* in, const char** cp, UConverter** conv, int32_t* - - if(*cp==NULL){ - *conv =NULL; -- return FALSE; -+ return false; - } - - /* open the converter for the detected Unicode charset */ -@@ -82,7 +82,7 @@ ucbuf_autodetect_fs(FileStream* in, const char** cp, UConverter** conv, int32_t* - /* convert and ignore initial U+FEFF, and the buffer overflow */ - pTarget = target; - pStart = start; -- ucnv_toUnicode(*conv, &pTarget, target+1, &pStart, start+*signatureLength, NULL, FALSE, error); -+ ucnv_toUnicode(*conv, &pTarget, target+1, &pStart, start+*signatureLength, NULL, false, error); - *signatureLength = (int32_t)(pStart - start); - if(*error==U_BUFFER_OVERFLOW_ERROR) { - *error=U_ZERO_ERROR; -@@ -94,40 +94,40 @@ ucbuf_autodetect_fs(FileStream* in, const char** cp, UConverter** conv, int32_t* - } - - -- return TRUE; -+ return true; - } - static UBool ucbuf_isCPKnown(const char* cp){ - if(ucnv_compareNames("UTF-8",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("UTF-16BE",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("UTF-16LE",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("UTF-16",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("UTF-32",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("UTF-32BE",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("UTF-32LE",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("SCSU",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("BOCU-1",cp)==0){ -- return TRUE; -+ return true; - } - if(ucnv_compareNames("UTF-7",cp)==0){ -- return TRUE; -+ return true; - } -- return FALSE; -+ return false; - } - - U_CAPI FileStream * U_EXPORT2 -@@ -234,7 +234,7 @@ ucbuf_fillucbuf( UCHARBUF* buf,UErrorCode* error){ - /* use erro1 to preserve the error code */ - UErrorCode error1 =U_ZERO_ERROR; - -- if( buf->showWarning==TRUE){ -+ if( buf->showWarning==true){ - fprintf(stderr,"\n###WARNING: Encountered abnormal bytes while" - " converting input stream to target encoding: %s\n", - u_errorName(*error)); -@@ -263,7 +263,7 @@ ucbuf_fillucbuf( UCHARBUF* buf,UErrorCode* error){ - /* null terminate the buffer */ - postContext[stop-start] = 0; - -- if(buf->showWarning ==TRUE){ -+ if(buf->showWarning ==true){ - /* print out the context */ - fprintf(stderr,"\tPre-context: %s\n",preContext); - fprintf(stderr,"\tContext: %s\n",context); -@@ -324,7 +324,7 @@ ucbuf_fillucbuf( UCHARBUF* buf,UErrorCode* error){ - U_CAPI int32_t U_EXPORT2 - ucbuf_getc(UCHARBUF* buf,UErrorCode* error){ - if(error==NULL || U_FAILURE(*error)){ -- return FALSE; -+ return false; - } - if(buf->currentPos>=buf->bufLimit){ - if(buf->remaining==0){ -@@ -344,7 +344,7 @@ U_CAPI int32_t U_EXPORT2 - ucbuf_getc32(UCHARBUF* buf,UErrorCode* error){ - int32_t retVal = (int32_t)U_EOF; - if(error==NULL || U_FAILURE(*error)){ -- return FALSE; -+ return false; - } - if(buf->currentPos+1>=buf->bufLimit){ - if(buf->remaining==0){ -@@ -377,7 +377,7 @@ ucbuf_getcx32(UCHARBUF* buf,UErrorCode* error) { - int32_t offset; - UChar32 c32,c1,c2; - if(error==NULL || U_FAILURE(*error)){ -- return FALSE; -+ return false; - } - /* Fill the buffer if it is empty */ - if (buf->currentPos >=buf->bufLimit-2) { -@@ -457,7 +457,7 @@ ucbuf_open(const char* fileName,const char** cp,UBool showWarning, UBool buffere - } - if(cp==NULL || fileName==NULL){ - *error = U_ILLEGAL_ARGUMENT_ERROR; -- return FALSE; -+ return NULL; - } - if (!uprv_strcmp(fileName, "-")) { - in = T_FileStream_stdin(); -@@ -495,7 +495,7 @@ ucbuf_open(const char* fileName,const char** cp,UBool showWarning, UBool buffere - return NULL; - } - -- if((buf->conv==NULL) && (buf->showWarning==TRUE)){ -+ if((buf->conv==NULL) && (buf->showWarning==true)){ - fprintf(stderr,"###WARNING: No converter defined. Using codepage of system.\n"); - } - buf->remaining=fileSize-buf->signatureLength; -@@ -597,7 +597,7 @@ ucbuf_rewind(UCHARBUF* buf,UErrorCode* error){ - /* convert and ignore initial U+FEFF, and the buffer overflow */ - pTarget = target; - pStart = start; -- ucnv_toUnicode(buf->conv, &pTarget, target+1, &pStart, start+numRead, NULL, FALSE, error); -+ ucnv_toUnicode(buf->conv, &pTarget, target+1, &pStart, start+numRead, NULL, false, error); - if(*error==U_BUFFER_OVERFLOW_ERROR) { - *error=U_ZERO_ERROR; - } -@@ -706,9 +706,9 @@ static UBool ucbuf_isCharNewLine(UChar c){ - case 0x0085: /* NEL */ - case 0x2028: /* LS */ - case 0x2029: /* PS */ -- return TRUE; -+ return true; - default: -- return FALSE; -+ return false; - } - } - -diff --git a/deps/icu-small/source/tools/toolutil/ucbuf.h b/deps/icu-small/source/tools/toolutil/ucbuf.h -index 9214d41971..117920b794 100644 ---- a/deps/icu-small/source/tools/toolutil/ucbuf.h -+++ b/deps/icu-small/source/tools/toolutil/ucbuf.h -@@ -52,7 +52,7 @@ struct ULine { - * If *codepage is NULL on input the API will try to autodetect - * popular Unicode encodings - * @param showWarning Flag to print out warnings to STDOUT -- * @param buffered If TRUE performs a buffered read of the input file. If FALSE reads -+ * @param buffered If true performs a buffered read of the input file. If false reads - * the whole file into memory and converts it. - * @param err is a pointer to a valid UErrorCode value. If this value - * indicates a failure on entry, the function will immediately return. -diff --git a/deps/icu-small/source/tools/toolutil/ucm.cpp b/deps/icu-small/source/tools/toolutil/ucm.cpp -index 28c3f3f4f8..f2f3a66e70 100644 ---- a/deps/icu-small/source/tools/toolutil/ucm.cpp -+++ b/deps/icu-small/source/tools/toolutil/ucm.cpp -@@ -182,11 +182,11 @@ compareMappings(UCMTable *lTable, const UCMapping *l, - /* Unicode then bytes */ - result=compareUnicode(lTable, l, rTable, r); - if(result==0) { -- result=compareBytes(lTable, l, rTable, r, FALSE); /* not lexically, like canonucm */ -+ result=compareBytes(lTable, l, rTable, r, false); /* not lexically, like canonucm */ - } - } else { - /* bytes then Unicode */ -- result=compareBytes(lTable, l, rTable, r, TRUE); /* lexically, for builder */ -+ result=compareBytes(lTable, l, rTable, r, true); /* lexically, for builder */ - if(result==0) { - result=compareUnicode(lTable, l, rTable, r); - } -@@ -205,7 +205,7 @@ static int32_t U_CALLCONV - compareMappingsUnicodeFirst(const void *context, const void *left, const void *right) { - return compareMappings( - (UCMTable *)context, (const UCMapping *)left, -- (UCMTable *)context, (const UCMapping *)right, TRUE); -+ (UCMTable *)context, (const UCMapping *)right, true); - } - - /* sorting by bytes first sorts the reverseMap; use indirection to mappings */ -@@ -215,7 +215,7 @@ compareMappingsBytesFirst(const void *context, const void *left, const void *rig - int32_t l=*(const int32_t *)left, r=*(const int32_t *)right; - return compareMappings( - table, table->mappings+l, -- table, table->mappings+r, FALSE); -+ table, table->mappings+r, false); - } - U_CDECL_END - -@@ -233,7 +233,7 @@ ucm_sortTable(UCMTable *t) { - /* 1. sort by Unicode first */ - uprv_sortArray(t->mappings, t->mappingsLength, sizeof(UCMapping), - compareMappingsUnicodeFirst, t, -- FALSE, &errorCode); -+ false, &errorCode); - - /* build the reverseMap */ - if(t->reverseMap==NULL) { -@@ -256,7 +256,7 @@ ucm_sortTable(UCMTable *t) { - /* 2. sort reverseMap by mappings bytes first */ - uprv_sortArray(t->reverseMap, t->mappingsLength, sizeof(int32_t), - compareMappingsBytesFirst, t, -- FALSE, &errorCode); -+ false, &errorCode); - - if(U_FAILURE(errorCode)) { - fprintf(stderr, "ucm error: sortTable()/uprv_sortArray() fails - %s\n", -@@ -264,7 +264,7 @@ ucm_sortTable(UCMTable *t) { - exit(errorCode); - } - -- t->isSorted=TRUE; -+ t->isSorted=true; - } - - /* -@@ -296,7 +296,7 @@ ucm_moveMappings(UCMTable *base, UCMTable *ext) { - } - --mbLimit; - --base->mappingsLength; -- base->isSorted=FALSE; -+ base->isSorted=false; - } else { - ++mb; - } -@@ -469,7 +469,7 @@ checkBaseExtBytes(UCMStates *baseStates, UCMTable *base, UCMTable *ext, - } - - /* compare the base and extension mappings */ -- cmp=compareBytes(base, mb, ext, me, TRUE); -+ cmp=compareBytes(base, mb, ext, me, true); - if(cmp<0) { - if(intersectBase) { - /* mapping in base but not in ext, move it */ -@@ -539,13 +539,13 @@ ucm_checkValidity(UCMTable *table, UCMStates *baseStates) { - - m=table->mappings; - mLimit=m+table->mappingsLength; -- isOK=TRUE; -+ isOK=true; - - while(mbLen); - if(count<1) { - ucm_printMapping(table, m, stderr); -- isOK=FALSE; -+ isOK=false; - } - ++m; - } -@@ -562,11 +562,11 @@ ucm_checkBaseExt(UCMStates *baseStates, - /* if we have an extension table, we must always use precision flags */ - if(base->flagsType&UCM_FLAGS_IMPLICIT) { - fprintf(stderr, "ucm error: the base table contains mappings without precision flags\n"); -- return FALSE; -+ return false; - } - if(ext->flagsType&UCM_FLAGS_IMPLICIT) { - fprintf(stderr, "ucm error: extension table contains mappings without precision flags\n"); -- return FALSE; -+ return false; - } - - /* checking requires both tables to be sorted */ -@@ -579,7 +579,7 @@ ucm_checkBaseExt(UCMStates *baseStates, - checkBaseExtBytes(baseStates, base, ext, (UBool)(moveTarget!=NULL), intersectBase); - - if(result&HAS_ERRORS) { -- return FALSE; -+ return false; - } - - if(result&NEEDS_MOVE) { -@@ -592,7 +592,7 @@ ucm_checkBaseExt(UCMStates *baseStates, - } - } - -- return TRUE; -+ return true; - } - - /* merge tables for rptp2ucm ------------------------------------------------ */ -@@ -616,7 +616,7 @@ ucm_mergeTables(UCMTable *fromUTable, UCMTable *toUTable, - fromUIndex=toUIndex=0; - - while(fromUIndexisSorted=FALSE; -+ fromUTable->isSorted=false; - } - - /* separate extension mappings out of base table for rptp2ucm --------------- */ -@@ -705,15 +705,15 @@ ucm_separateMappings(UCMFile *ucm, UBool isSISO) { - m=table->mappings; - mLimit=m+table->mappingsLength; - -- needsMove=FALSE; -- isOK=TRUE; -+ needsMove=false; -+ isOK=true; - - for(; mbLen==1 && (m->b.bytes[0]==0xe || m->b.bytes[0]==0xf)) { - fprintf(stderr, "warning: removing illegal mapping from an SI/SO-stateful table\n"); - ucm_printMapping(table, m, stderr); - m->moveFlag|=UCM_REMOVE_MAPPING; -- needsMove=TRUE; -+ needsMove=true; - continue; - } - -@@ -723,22 +723,22 @@ ucm_separateMappings(UCMFile *ucm, UBool isSISO) { - if(type<0) { - /* illegal byte sequence */ - printMapping(m, UCM_GET_CODE_POINTS(table, m), UCM_GET_BYTES(table, m), stderr); -- isOK=FALSE; -+ isOK=false; - } else if(type>0) { - m->moveFlag|=UCM_MOVE_TO_EXT; -- needsMove=TRUE; -+ needsMove=true; - } - } - - if(!isOK) { -- return FALSE; -+ return false; - } - if(needsMove) { - ucm_moveMappings(ucm->base, ucm->ext); -- return ucm_checkBaseExt(&ucm->states, ucm->base, ucm->ext, ucm->ext, FALSE); -+ return ucm_checkBaseExt(&ucm->states, ucm->base, ucm->ext, ucm->ext, false); - } else { - ucm_sortTable(ucm->base); -- return TRUE; -+ return true; - } - } - -@@ -810,16 +810,16 @@ ucm_parseMappingLine(UCMapping *m, - *end!='>' - ) { - fprintf(stderr, "ucm error: Unicode code point must be formatted as (1..6 hex digits) - \"%s\"\n", line); -- return FALSE; -+ return false; - } - if((uint32_t)cp>0x10ffff || U_IS_SURROGATE(cp)) { - fprintf(stderr, "ucm error: Unicode code point must be 0..d7ff or e000..10ffff - \"%s\"\n", line); -- return FALSE; -+ return false; - } - - if(uLen==UCNV_EXT_MAX_UCHARS) { - fprintf(stderr, "ucm error: too many code points on \"%s\"\n", line); -- return FALSE; -+ return false; - } - codePoints[uLen++]=cp; - s=end+1; -@@ -827,7 +827,7 @@ ucm_parseMappingLine(UCMapping *m, - - if(uLen==0) { - fprintf(stderr, "ucm error: no Unicode code points on \"%s\"\n", line); -- return FALSE; -+ return false; - } else if(uLen==1) { - m->u=codePoints[0]; - } else { -@@ -837,7 +837,7 @@ ucm_parseMappingLine(UCMapping *m, - u16Length>UCNV_EXT_MAX_UCHARS - ) { - fprintf(stderr, "ucm error: too many UChars on \"%s\"\n", line); -- return FALSE; -+ return false; - } - } - -@@ -847,10 +847,10 @@ ucm_parseMappingLine(UCMapping *m, - bLen=ucm_parseBytes(bytes, line, &s); - - if(bLen<0) { -- return FALSE; -+ return false; - } else if(bLen==0) { - fprintf(stderr, "ucm error: no bytes on \"%s\"\n", line); -- return FALSE; -+ return false; - } else if(bLen<=4) { - uprv_memcpy(m->b.bytes, bytes, bLen); - } -@@ -864,7 +864,7 @@ ucm_parseMappingLine(UCMapping *m, - f=(int8_t)(s[1]-'0'); - if((uint8_t)f>4) { - fprintf(stderr, "ucm error: fallback indicator must be |0..|4 - \"%s\"\n", line); -- return FALSE; -+ return false; - } - break; - } -@@ -874,7 +874,7 @@ ucm_parseMappingLine(UCMapping *m, - m->uLen=uLen; - m->bLen=bLen; - m->f=f; -- return TRUE; -+ return true; - } - - /* general APIs ------------------------------------------------------------- */ -@@ -909,7 +909,7 @@ ucm_resetTable(UCMTable *table) { - table->flagsType=0; - table->unicodeMask=0; - table->bytesLength=table->codePointsLength=0; -- table->isSorted=FALSE; -+ table->isSorted=false; - } - } - -@@ -1008,7 +1008,7 @@ ucm_addMapping(UCMTable *table, - tm=table->mappings+table->mappingsLength++; - uprv_memcpy(tm, m, sizeof(UCMapping)); - -- table->isSorted=FALSE; -+ table->isSorted=false; - } - - U_CAPI UCMFile * U_EXPORT2 -@@ -1099,7 +1099,7 @@ ucm_addMappingAuto(UCMFile *ucm, UBool forBase, UCMStates *baseStates, - if(m->f==2 && m->uLen>1) { - fprintf(stderr, "ucm error: illegal |2 mapping from multiple code points\n"); - printMapping(m, codePoints, bytes, stderr); -- return FALSE; -+ return false; - } - - if(baseStates!=NULL) { -@@ -1108,7 +1108,7 @@ ucm_addMappingAuto(UCMFile *ucm, UBool forBase, UCMStates *baseStates, - if(type<0) { - /* illegal byte sequence */ - printMapping(m, codePoints, bytes, stderr); -- return FALSE; -+ return false; - } - } else { - /* not used - adding a mapping for an extension-only table before its base table is read */ -@@ -1125,7 +1125,7 @@ ucm_addMappingAuto(UCMFile *ucm, UBool forBase, UCMStates *baseStates, - ucm_addMapping(ucm->ext, m, codePoints, bytes); - } - -- return TRUE; -+ return true; - } - - U_CAPI UBool U_EXPORT2 -@@ -1138,7 +1138,7 @@ ucm_addMappingFromLine(UCMFile *ucm, const char *line, UBool forBase, UCMStates - - /* ignore empty and comment lines */ - if(line[0]=='#' || *(s=u_skipWhitespace(line))==0 || *s=='\n' || *s=='\r') { -- return TRUE; -+ return true; - } - - return -@@ -1158,13 +1158,13 @@ ucm_readTable(UCMFile *ucm, FileStream* convFile, - return; - } - -- isOK=TRUE; -+ isOK=true; - - for(;;) { - /* read the next line */ - if(!T_FileStream_readLine(convFile, line, sizeof(line))) { - fprintf(stderr, "incomplete charmap section\n"); -- isOK=FALSE; -+ isOK=false; - break; - } - -diff --git a/deps/icu-small/source/tools/toolutil/ucm.h b/deps/icu-small/source/tools/toolutil/ucm.h -index 04e6b2030d..8ea90604d4 100644 ---- a/deps/icu-small/source/tools/toolutil/ucm.h -+++ b/deps/icu-small/source/tools/toolutil/ucm.h -@@ -207,7 +207,7 @@ ucm_checkValidity(UCMTable *ext, UCMStates *baseStates); - * - * Sort both tables, and then for each mapping direction: - * -- * If intersectBase is TRUE and the base table contains a mapping -+ * If intersectBase is true and the base table contains a mapping - * that does not exist in the extension table, then this mapping is moved - * to moveTarget. - * -@@ -223,7 +223,7 @@ ucm_checkValidity(UCMTable *ext, UCMStates *baseStates); - * - if moveTarget!=NULL: move the base mapping to the moveTarget table - * - else: error - * -- * @return FALSE in case of an irreparable error -+ * @return false in case of an irreparable error - */ - U_CAPI UBool U_EXPORT2 - ucm_checkBaseExt(UCMStates *baseStates, UCMTable *base, UCMTable *ext, -diff --git a/deps/icu-small/source/tools/toolutil/ucmstate.cpp b/deps/icu-small/source/tools/toolutil/ucmstate.cpp -index 1ff2d7d193..d46b73ed30 100644 ---- a/deps/icu-small/source/tools/toolutil/ucmstate.cpp -+++ b/deps/icu-small/source/tools/toolutil/ucmstate.cpp -@@ -226,12 +226,12 @@ ucm_parseHeaderLine(UCMFile *ucm, - /* skip leading white space and ignore empty lines */ - s=(char *)u_skipWhitespace(line); - if(*s==0) { -- return TRUE; -+ return true; - } - - /* stop at the beginning of the mapping section */ - if(uprv_memcmp(s, "CHARMAP", 7)==0) { -- return FALSE; -+ return false; - } - - /* get the key name, bracketed in <> */ -@@ -275,7 +275,7 @@ ucm_parseHeaderLine(UCMFile *ucm, - fprintf(stderr, "ucm error: unknown %s\n", *pValue); - exit(U_INVALID_TABLE_FORMAT); - } -- return TRUE; -+ return true; - } else if(uprv_strcmp(*pKey, "mb_cur_max")==0) { - c=**pValue; - if('1'<=c && c<='4' && (*pValue)[1]==0) { -@@ -285,7 +285,7 @@ ucm_parseHeaderLine(UCMFile *ucm, - fprintf(stderr, "ucm error: illegal %s\n", *pValue); - exit(U_INVALID_TABLE_FORMAT); - } -- return TRUE; -+ return true; - } else if(uprv_strcmp(*pKey, "mb_cur_min")==0) { - c=**pValue; - if('1'<=c && c<='4' && (*pValue)[1]==0) { -@@ -294,7 +294,7 @@ ucm_parseHeaderLine(UCMFile *ucm, - fprintf(stderr, "ucm error: illegal %s\n", *pValue); - exit(U_INVALID_TABLE_FORMAT); - } -- return TRUE; -+ return true; - } else if(uprv_strcmp(*pKey, "icu:state")==0) { - /* if an SBCS/DBCS/EBCDIC_STATEFUL converter has icu:state, then turn it into MBCS */ - switch(states->conversionType) { -@@ -315,17 +315,17 @@ ucm_parseHeaderLine(UCMFile *ucm, - exit(U_INVALID_TABLE_FORMAT); - } - ucm_addState(states, *pValue); -- return TRUE; -+ return true; - } else if(uprv_strcmp(*pKey, "icu:base")==0) { - if(**pValue==0) { - fprintf(stderr, "ucm error: without a base table name\n"); - exit(U_INVALID_TABLE_FORMAT); - } - uprv_strcpy(ucm->baseName, *pValue); -- return TRUE; -+ return true; - } - -- return FALSE; -+ return false; - } - - /* post-processing ---------------------------------------------------------- */ -@@ -343,12 +343,12 @@ sumUpStates(UCMStates *states) { - * the offsets sum of that state needs to be added. - * This is achieved in at most countStates iterations. - */ -- allStatesReady=FALSE; -+ allStatesReady=false; - for(count=states->countStates; !allStatesReady && count>=0; --count) { -- allStatesReady=TRUE; -+ allStatesReady=true; - for(state=states->countStates-1; state>=0; --state) { - if(!(states->stateFlags[state]&MBCS_STATE_FLAG_READY)) { -- allStatesReady=FALSE; -+ allStatesReady=false; - sum=0; - - /* at first, add up only the final delta offsets to keep them <512 */ -@@ -848,7 +848,7 @@ findUnassigned(UCMStates *states, - UBool haveAssigned; - - localSavings=belowSavings=0; -- haveAssigned=FALSE; -+ haveAssigned=false; - for(i=0; i<256; ++i) { - entry=states->stateTable[state][i]; - if(MBCS_ENTRY_IS_TRANSITION(entry)) { -@@ -859,7 +859,7 @@ findUnassigned(UCMStates *states, - offset+MBCS_ENTRY_TRANSITION_OFFSET(entry), - (b<<8)|(uint32_t)i); - if(savings<0) { -- haveAssigned=TRUE; -+ haveAssigned=true; - } else if(savings>0) { - printf(" all-unassigned sequences from prefix 0x%02lx state %ld use %ld bytes\n", - (unsigned long)((b<<8)|i), (long)state, (long)savings); -@@ -872,7 +872,7 @@ findUnassigned(UCMStates *states, - if(unicodeCodeUnits[entry]==0xfffe && ucm_findFallback(toUFallbacks, countToUFallbacks, entry)<0) { - localSavings+=2; - } else { -- haveAssigned=TRUE; -+ haveAssigned=true; - } - break; - case MBCS_STATE_VALID_16_PAIR: -@@ -880,7 +880,7 @@ findUnassigned(UCMStates *states, - if(unicodeCodeUnits[entry]==0xfffe) { - localSavings+=4; - } else { -- haveAssigned=TRUE; -+ haveAssigned=true; - } - break; - default: -@@ -968,7 +968,7 @@ ucm_optimizeStates(UCMStates *states, - errorCode=U_ZERO_ERROR; /* nothing bad will happen... */ - uprv_sortArray(toUFallbacks, countToUFallbacks, - sizeof(_MBCSToUFallback), -- compareFallbacks, NULL, FALSE, &errorCode); -+ compareFallbacks, NULL, false, &errorCode); - } - } - -diff --git a/deps/icu-small/source/tools/toolutil/udbgutil.cpp b/deps/icu-small/source/tools/toolutil/udbgutil.cpp -index 993694546f..dcf71b2887 100644 ---- a/deps/icu-small/source/tools/toolutil/udbgutil.cpp -+++ b/deps/icu-small/source/tools/toolutil/udbgutil.cpp -@@ -239,7 +239,7 @@ static const Field names_UDebugEnumType[] = - - /** - * @param type type of item -- * @param actual TRUE: for the actual enum's type (UCAL_FIELD_COUNT, etc), or FALSE for the string count -+ * @param actual true: for the actual enum's type (UCAL_FIELD_COUNT, etc), or false for the string count - */ - static int32_t _udbg_enumCount(UDebugEnumType type, UBool actual) { - switch(type) { -@@ -288,16 +288,16 @@ static const Field* _udbg_enumFields(UDebugEnumType type) { - // implementation - - int32_t udbg_enumCount(UDebugEnumType type) { -- return _udbg_enumCount(type, FALSE); -+ return _udbg_enumCount(type, false); - } - - int32_t udbg_enumExpectedCount(UDebugEnumType type) { -- return _udbg_enumCount(type, TRUE); -+ return _udbg_enumCount(type, true); - } - - const char * udbg_enumName(UDebugEnumType type, int32_t field) { - if(field<0 || -- field>=_udbg_enumCount(type,FALSE)) { // also will catch unsupported items -+ field>=_udbg_enumCount(type,false)) { // also will catch unsupported items - return NULL; - } else { - const Field *fields = _udbg_enumFields(type); -@@ -311,7 +311,7 @@ const char * udbg_enumName(UDebugEnumType type, int32_t field) { - - int32_t udbg_enumArrayValue(UDebugEnumType type, int32_t field) { - if(field<0 || -- field>=_udbg_enumCount(type,FALSE)) { // also will catch unsupported items -+ field>=_udbg_enumCount(type,false)) { // also will catch unsupported items - return -1; - } else { - const Field *fields = _udbg_enumFields(type); -@@ -324,18 +324,18 @@ int32_t udbg_enumArrayValue(UDebugEnumType type, int32_t field) { - } - - int32_t udbg_enumByName(UDebugEnumType type, const char *value) { -- if(type<0||type>=_udbg_enumCount(UDBG_UDebugEnumType, TRUE)) { -+ if(type<0||type>=_udbg_enumCount(UDBG_UDebugEnumType, true)) { - return -1; // type out of range - } - const Field *fields = _udbg_enumFields(type); - if (fields != NULL) { -- for(int32_t field = 0;field<_udbg_enumCount(type, FALSE);field++) { -+ for(int32_t field = 0;field<_udbg_enumCount(type, false);field++) { - if(!strcmp(value, fields[field].str + fields[field].prefix)) { - return fields[field].num; - } - } - // try with the prefix -- for(int32_t field = 0;field<_udbg_enumCount(type, FALSE);field++) { -+ for(int32_t field = 0;field<_udbg_enumCount(type, false);field++) { - if(!strcmp(value, fields[field].str)) { - return fields[field].num; - } -@@ -490,7 +490,7 @@ U_CAPI int32_t - paramLocaleDefaultBcp47(const USystemParams * /* param */, char *target, int32_t targetCapacity, UErrorCode *status) { - if(U_FAILURE(*status))return 0; - const char *def = uloc_getDefault(); -- return uloc_toLanguageTag(def,target,targetCapacity,FALSE,status); -+ return uloc_toLanguageTag(def,target,targetCapacity,false,status); - } - - -@@ -650,18 +650,18 @@ void KnownIssues::add(const char *ticketStr, const char *where, const UChar *msg - { - const std::string ticket = mapTicketId(ticketStr); - if(fTable.find(ticket) == fTable.end()) { -- if(firstForTicket!=NULL) *firstForTicket = TRUE; -+ if(firstForTicket!=NULL) *firstForTicket = true; - fTable[ticket] = std::map < std::string, std::set < std::string > >(); - } else { -- if(firstForTicket!=NULL) *firstForTicket = FALSE; -+ if(firstForTicket!=NULL) *firstForTicket = false; - } - if(where==NULL) return; - - if(fTable[ticket].find(where) == fTable[ticket].end()) { -- if(firstForWhere!=NULL) *firstForWhere = TRUE; -+ if(firstForWhere!=NULL) *firstForWhere = true; - fTable[ticket][where] = std::set < std::string >(); - } else { -- if(firstForWhere!=NULL) *firstForWhere = FALSE; -+ if(firstForWhere!=NULL) *firstForWhere = false; - } - if(msg==NULL || !*msg) return; - -@@ -674,18 +674,18 @@ void KnownIssues::add(const char *ticketStr, const char *where, const char *msg, - { - const std::string ticket = mapTicketId(ticketStr); - if(fTable.find(ticket) == fTable.end()) { -- if(firstForTicket!=NULL) *firstForTicket = TRUE; -+ if(firstForTicket!=NULL) *firstForTicket = true; - fTable[ticket] = std::map < std::string, std::set < std::string > >(); - } else { -- if(firstForTicket!=NULL) *firstForTicket = FALSE; -+ if(firstForTicket!=NULL) *firstForTicket = false; - } - if(where==NULL) return; - - if(fTable[ticket].find(where) == fTable[ticket].end()) { -- if(firstForWhere!=NULL) *firstForWhere = TRUE; -+ if(firstForWhere!=NULL) *firstForWhere = true; - fTable[ticket][where] = std::set < std::string >(); - } else { -- if(firstForWhere!=NULL) *firstForWhere = FALSE; -+ if(firstForWhere!=NULL) *firstForWhere = false; - } - if(msg==NULL || !*msg) return; - -@@ -696,7 +696,7 @@ void KnownIssues::add(const char *ticketStr, const char *where, const char *msg, - UBool KnownIssues::print() - { - if(fTable.empty()) { -- return FALSE; -+ return false; - } - - std::cout << "KNOWN ISSUES" << std::endl; -@@ -723,7 +723,7 @@ UBool KnownIssues::print() - } - } - } -- return TRUE; -+ return true; - } - - U_CAPI void *udbg_knownIssue_openU(void *ptr, const char *ticket, char *where, const UChar *msg, UBool *firstForTicket, -@@ -753,10 +753,10 @@ U_CAPI void *udbg_knownIssue_open(void *ptr, const char *ticket, char *where, co - U_CAPI UBool udbg_knownIssue_print(void *ptr) { - KnownIssues *t = static_cast(ptr); - if(t==NULL) { -- return FALSE; -+ return false; - } else { - t->print(); -- return TRUE; -+ return true; - } - } - -diff --git a/deps/icu-small/source/tools/toolutil/udbgutil.h b/deps/icu-small/source/tools/toolutil/udbgutil.h -index b9af132da5..e3ed513839 100644 ---- a/deps/icu-small/source/tools/toolutil/udbgutil.h -+++ b/deps/icu-small/source/tools/toolutil/udbgutil.h -@@ -133,7 +133,7 @@ U_CAPI void *udbg_knownIssue_open(void *ptr, const char *ticket, char *where, co - /** - * Print 'known issue' table, to std::cout. - * @param ptr pointer from udbg_knownIssue -- * @return TRUE if there were any issues. -+ * @return true if there were any issues. - */ - U_CAPI UBool udbg_knownIssue_print(void *ptr); - -diff --git a/deps/icu-small/source/tools/toolutil/writesrc.cpp b/deps/icu-small/source/tools/toolutil/writesrc.cpp -index 143254a7f3..0bd8b85bb8 100644 ---- a/deps/icu-small/source/tools/toolutil/writesrc.cpp -+++ b/deps/icu-small/source/tools/toolutil/writesrc.cpp -@@ -19,6 +19,7 @@ - */ - - #include -+#include - #include - #include "unicode/utypes.h" - #include "unicode/putil.h" -@@ -143,12 +144,14 @@ usrc_writeArray(FILE *f, - const uint8_t *p8; - const uint16_t *p16; - const uint32_t *p32; -- uint32_t value; -+ const int64_t *p64; // Signed due to TOML! -+ int64_t value; // Signed due to TOML! - int32_t i, col; - - p8=NULL; - p16=NULL; - p32=NULL; -+ p64=NULL; - switch(width) { - case 8: - p8=(const uint8_t *)p; -@@ -159,6 +162,9 @@ usrc_writeArray(FILE *f, - case 32: - p32=(const uint32_t *)p; - break; -+ case 64: -+ p64=(const int64_t *)p; -+ break; - default: - fprintf(stderr, "usrc_writeArray(width=%ld) unrecognized width\n", (long)width); - return; -@@ -186,11 +192,14 @@ usrc_writeArray(FILE *f, - case 32: - value=p32[i]; - break; -+ case 64: -+ value=p64[i]; -+ break; - default: - value=0; /* unreachable */ - break; - } -- fprintf(f, value<=9 ? "%lu" : "0x%lx", (unsigned long)value); -+ fprintf(f, value<=9 ? "%" PRId64 : "0x%" PRIx64, value); - } - if(postfix!=NULL) { - fputs(postfix, f); -@@ -251,7 +260,7 @@ usrc_writeUTrie2Struct(FILE *f, - " 0x%lx,\n" /* errorValue */ - " 0x%lx,\n" /* highStart */ - " 0x%lx,\n" /* highValueIndex */ -- " NULL, 0, FALSE, FALSE, 0, NULL\n", -+ " NULL, 0, false, false, 0, NULL\n", - (long)pTrie->indexLength, (long)pTrie->dataLength, - (short)pTrie->index2NullOffset, (short)pTrie->dataNullOffset, - (long)pTrie->initialValue, (long)pTrie->errorValue, -diff --git a/deps/icu-small/source/tools/toolutil/writesrc.h b/deps/icu-small/source/tools/toolutil/writesrc.h -index 784a9b9c7a..9c0be5a100 100644 ---- a/deps/icu-small/source/tools/toolutil/writesrc.h -+++ b/deps/icu-small/source/tools/toolutil/writesrc.h -@@ -69,7 +69,7 @@ usrc_writeFileNameGeneratedBy( - const char *generator); - - /** -- * Writes the contents of an array of 8/16/32-bit words. -+ * Writes the contents of an array of 8/16/32/64-bit words. - * The prefix and postfix are optional (can be NULL) and are written first/last. - * The prefix may contain a %ld or similar field for the array length. - * The {} and declaration etc. need to be included in prefix/postfix or -diff --git a/deps/icu-small/source/tools/toolutil/xmlparser.cpp b/deps/icu-small/source/tools/toolutil/xmlparser.cpp -index a6569903bc..104a99c93e 100644 ---- a/deps/icu-small/source/tools/toolutil/xmlparser.cpp -+++ b/deps/icu-small/source/tools/toolutil/xmlparser.cpp -@@ -221,7 +221,7 @@ UXMLParser::parseFile(const char *filename, UErrorCode &errorCode) { - cnv, - &pu, buffer+src.getCapacity(), - &pb, bytes+bytesLength, -- NULL, TRUE, &errorCode); -+ NULL, true, &errorCode); - src.releaseBuffer(U_SUCCESS(errorCode) ? (int32_t)(pu-buffer) : 0); - ucnv_close(cnv); - cnv=NULL; -@@ -272,7 +272,7 @@ UXMLParser::parseFile(const char *filename, UErrorCode &errorCode) { - capacity=fileLength; // estimated capacity - src.getBuffer(capacity); - src.releaseBuffer(0); // zero length -- flush=FALSE; -+ flush=false; - for(;;) { - // convert contents of bytes[bytesLength] - pb=bytes; -@@ -289,7 +289,7 @@ UXMLParser::parseFile(const char *filename, UErrorCode &errorCode) { - ucnv_toUnicode( - cnv, &pu, buffer+src.getCapacity(), - &pb, bytes+bytesLength, -- NULL, FALSE, &errorCode); -+ NULL, false, &errorCode); - src.releaseBuffer(U_SUCCESS(errorCode) ? (int32_t)(pu-buffer) : 0); - if(errorCode==U_BUFFER_OVERFLOW_ERROR) { - errorCode=U_ZERO_ERROR; -@@ -311,7 +311,7 @@ UXMLParser::parseFile(const char *filename, UErrorCode &errorCode) { - bytesLength=T_FileStream_read(f, bytes, (int32_t)sizeof(bytes)); - if(bytesLength==0) { - // reached end of file, convert once more to flush the converter -- flush=TRUE; -+ flush=true; - } - } - -@@ -373,7 +373,7 @@ UXMLParser::parse(const UnicodeString &src, UErrorCode &status) { - root = createElement(mXMLElemEmpty, status); - fPos = mXMLElemEmpty.end(status); - } else { -- if (mXMLElemStart.lookingAt(fPos, status) == FALSE) { -+ if (mXMLElemStart.lookingAt(fPos, status) == false) { - error("Root Element expected", status); - goto errorExit; - } -@@ -403,7 +403,7 @@ UXMLParser::parse(const UnicodeString &src, UErrorCode &status) { - UnicodeString s = scanContent(status); - if (s.length() > 0) { - mXMLSP.reset(s); -- if (mXMLSP.matches(status) == FALSE) { -+ if (mXMLSP.matches(status) == false) { - // This chunk of text contains something other than just - // white space. Make a child node for it. - replaceCharRefs(s, status); -diff --git a/deps/icu-small/source/tools/toolutil/xmlparser.h b/deps/icu-small/source/tools/toolutil/xmlparser.h -index 5a3a24c5ed..7f798f66f7 100644 ---- a/deps/icu-small/source/tools/toolutil/xmlparser.h -+++ b/deps/icu-small/source/tools/toolutil/xmlparser.h -@@ -61,7 +61,7 @@ public: - /** - * Get the text contents of the element. - * Append the contents of all text child nodes. -- * @param recurse If TRUE, also recursively appends the contents of all -+ * @param recurse If true, also recursively appends the contents of all - * text child nodes of element children. - * @return The text contents. - */ -diff --git a/test/parallel/test-icu-env.js b/test/parallel/test-icu-env.js -index 368f829234..9db276e5bb 100644 ---- a/test/parallel/test-icu-env.js -+++ b/test/parallel/test-icu-env.js -@@ -122,17 +122,17 @@ if (isMockable) { - assert.deepStrictEqual( - locales.map((LANG) => runEnvOutside({ LANG, TZ: 'Europe/Zurich' }, 'new Date(333333333333).toLocaleString()')), - [ -- '7/25/1980, 1:35:33 AM', -+ '7/25/1980, 1:35:33 AM', - '1980/7/25 01:35:33', - '25/7/1980, 1:35:33 am', - '25/7/1980, 1:35:33', - '25/07/1980 01:35:33', -- '٢٥‏/٧‏/١٩٨٠, ١:٣٥:٣٣ ص', -- '২৫/৭/১৯৮০ ১:৩৫:৩৩ AM', -+ '٢٥‏/٧‏/١٩٨٠، ١:٣٥:٣٣ ص', -+ '২৫/৭/১৯৮০, ১:৩৫:৩৩ AM', - '25.07.1980, 01:35:33', -- '25/07/1980 01:35:33', -- '25/7/1980 1:35:33 AM', -- '25/7/1980 01.35.33', -+ '25/07/1980, 01:35:33', -+ '25/7/1980، 1:35:33 AM', -+ '25/7/1980, 01.35.33', - '25.7.1980, 01:35:33', - '1980/7/25 1:35:33', - '25/7/1980 01:35:33', -diff --git a/test/parallel/test-intl.js b/test/parallel/test-intl.js -index 7d1742f2c7..2cf3efe11a 100644 ---- a/test/parallel/test-intl.js -+++ b/test/parallel/test-intl.js -@@ -97,7 +97,11 @@ if (!common.hasIntl) { - // Test format - { - const localeString = date0.toLocaleString(['en'], optsGMT); -- assert.strictEqual(localeString, '1/1/1970, 12:00:00 AM'); -+ if (Number(process.versions.cldr) >= 42) { -+ assert.strictEqual(localeString, '1/1/1970, 12:00:00 AM'); -+ } else { -+ assert.strictEqual(localeString, '1/1/1970, 12:00:00 AM'); -+ } - } - // number format - { -diff --git a/tools/icu/current_ver.dep b/tools/icu/current_ver.dep -index 9d2ca52eda..297963af04 100644 ---- a/tools/icu/current_ver.dep -+++ b/tools/icu/current_ver.dep -@@ -1,6 +1,6 @@ - [ - { -- "url": "https://github.com/unicode-org/icu/releases/download/release-71-1/icu4c-71_1-src.tgz", -- "md5": "e06ffc96f59762bd3c929b217445aaec" -+ "url": "https://github.com/unicode-org/icu/releases/download/release-72-1/icu4c-72_1-src.tgz", -+ "md5": "4de6484a6c460d3d1468a6fe50369439" - } - ] diff --git a/new_python3.patch b/new_python3.patch deleted file mode 100644 index 90c4295..0000000 --- a/new_python3.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: node-v18.9.0/configure -=================================================================== ---- node-v18.9.0.orig/configure -+++ node-v18.9.0/configure -@@ -4,6 +4,7 @@ - # Note that the mix of single and double quotes is intentional, - # as is the fact that the ] goes on a new line. - _=[ 'exec' '/bin/sh' '-c' ''' -+command -v python3.11 >/dev/null && exec python3.11 "$0" "$@" - command -v python3.10 >/dev/null && exec python3.10 "$0" "$@" - command -v python3.9 >/dev/null && exec python3.9 "$0" "$@" - command -v python3.8 >/dev/null && exec python3.8 "$0" "$@" -@@ -22,7 +23,7 @@ except ImportError: - from distutils.spawn import find_executable as which - - print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info)) --acceptable_pythons = ((3, 10), (3, 9), (3, 8), (3, 7), (3, 6), (3, 4)) -+acceptable_pythons = ((3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6), (3, 4)) - if sys.version_info[:2] in acceptable_pythons: - import configure - else: diff --git a/node-gyp_7.1.2.tar.xz b/node-gyp_7.1.2.tar.xz index 015b40d..725fc83 100644 --- a/node-gyp_7.1.2.tar.xz +++ b/node-gyp_7.1.2.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f1c7a232727025211e2c80051c3d4a7b6984e19cc90c1f9943f1d03c05811a41 -size 271084 +oid sha256:26d4b1df65e00bb998abc7adc133108259c1ca206617c13f917c080a5571e37d +size 331224 diff --git a/node-v18.12.1.tar.xz b/node-v18.12.1.tar.xz deleted file mode 100644 index 55d424f..0000000 --- a/node-v18.12.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4fa406451bc52659a290e52cfdb2162a760bd549da4b8bbebe6a29f296d938df -size 38454588 diff --git a/node-v18.13.0.tar.xz b/node-v18.13.0.tar.xz new file mode 100644 index 0000000..84e27c2 --- /dev/null +++ b/node-v18.13.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd4ac562e01d172896e3a959bd59552dbf647331c90d726f8d3471683dd3da68 +size 40324048 diff --git a/nodejs18.changes b/nodejs18.changes index dc5a3c8..acc79c7 100644 --- a/nodejs18.changes +++ b/nodejs18.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Mon Jan 16 14:57:58 UTC 2023 - Adam Majer + +- Update to NodejJS 18.13.0 LTS: + * build: disable v8 snapshot compression by default + * crypto: update root certificates + * deps: update ICU to 72.1 + * doc: + + add doc-only deprecation for headers/trailers setters + + add Rafael to the tsc + + deprecate use of invalid ports in url.parse + + deprecate url.parse() + * lib: drop fetch experimental warning + * net: add autoSelectFamily and autoSelectFamilyAttemptTimeout options + * src: + + add uvwasi version + + add initial shadow realm support + * test_runner: + + add t.after() hook + + don't use a symbol for runHook() + * tls: + + add "ca" property to certificate object + * util: + + add fast path for utf8 encoding + + improve textdecoder decode performance + + add MIME utilities + +- new_python3.patch, icu721_fixes.patch: upstreamed, removed + ------------------------------------------------------------------- Thu Nov 10 08:18:42 UTC 2022 - Adam Majer diff --git a/nodejs18.spec b/nodejs18.spec index 76d6de3..1ff04ca 100644 --- a/nodejs18.spec +++ b/nodejs18.spec @@ -31,7 +31,7 @@ %endif Name: nodejs18 -Version: 18.12.1 +Version: 18.13.0 Release: 0 # Double DWZ memory limits @@ -131,7 +131,7 @@ Source3: nodejs.keyring # Python 3.4 compatible node-gyp ### https://github.com/nodejs/node-gyp.git -### git archive v7.1.2 gyp/ | xz > node-gyp_7.1.2.tar.xz +### git archive v7.1.2 | xz > node-gyp_7.1.2.tar.xz Source5: node-gyp_7.1.2.tar.xz # Only required to run unit tests in NodeJS 10+ Source10: update_npm_tarball.sh @@ -170,9 +170,7 @@ Patch133: rsa-pss-revert.patch # Use versioned binaries and paths Patch200: versioned.patch -Patch304: new_python3.patch Patch305: qemu_timeouts_arches.patch -Patch306: icu721_fixes.patch BuildRequires: pkg-config BuildRequires: fdupes @@ -268,7 +266,8 @@ BuildRequires: group(nobody) %if ! 0%{with intree_openssl} -BuildRequires: pkgconfig(openssl) >= %{openssl_req_ver} +BuildRequires: libopenssl-1_1-devel +#BuildRequires: (pkgconfig(openssl) >= %{openssl_req_ver} and pkgconfig(openssl) < 3.0) # require patched openssl library on SLES for nodejs16 %if 0%{?suse_version} && "%{pkg_version openssl-1_1}" != "~~~" @@ -279,11 +278,11 @@ Requires: openssl-has-RSA_get0_pss_params %endif %if 0%{?suse_version} -%if 0%{?suse_version} >= 1500 -BuildRequires: openssl >= %{openssl_req_ver} -%else +#%if 0%{?suse_version} >= 1500 +#iBuildRequires: openssl >= %{openssl_req_ver} +#%else BuildRequires: openssl-1_1 >= %{openssl_req_ver} -%endif +#%endif BuildRequires: libopenssl1_1-hmac # /suse_version @@ -310,13 +309,13 @@ Provides: bundled(libcares2) = 1.18.1 %if ! 0%{with intree_icu} BuildRequires: pkgconfig(icu-i18n) >= 69 %else -Provides: bundled(icu) = 71.1 +Provides: bundled(icu) = 72.1 %endif %if ! 0%{with intree_nghttp2} BuildRequires: libnghttp2-devel >= 1.41.0 %else -Provides: bundled(nghttp2) = 1.47.0 +Provides: bundled(nghttp2) = 1.51.0 %endif %if 0%{with valgrind_tests} @@ -366,8 +365,8 @@ ExclusiveArch: not_buildable %endif Provides: bundled(uvwasi) = 0.0.13 -Provides: bundled(libuv) = 1.43.0 -Provides: bundled(v8) = 10.2.154.15 +Provides: bundled(libuv) = 1.44.2 +Provides: bundled(v8) = 10.2.154.23 %if %{with intree_brotli} Provides: bundled(brotli) = 1.0.9 %else @@ -377,14 +376,16 @@ BuildRequires: pkgconfig(libbrotlidec) Provides: bundled(llhttp) = 6.0.10 Provides: bundled(ngtcp2) = 0.8.1 +Provides: bundled(base64) = 0.5.0 -Provides: bundled(node-acorn) = 8.8.0 + +Provides: bundled(node-acorn) = 8.8.1 Provides: bundled(node-acorn-walk) = 8.2.0 Provides: bundled(node-busboy) = 1.6.0 Provides: bundled(node-cjs-module-lexer) = 1.2.2 -Provides: bundled(node-corepack) = 0.14.2 +Provides: bundled(node-corepack) = 0.15.2 Provides: bundled(node-streamsearch) = 1.1.0 -Provides: bundled(node-undici) = 5.11.0 +Provides: bundled(node-undici) = 5.13.0 %description Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js @@ -413,7 +414,7 @@ Requires: nodejs-common Requires: nodejs18 = %{version} Provides: nodejs-npm = %{version} Obsoletes: nodejs-npm < 4.0.0 -Provides: npm(npm) = 8.19.2 +Provides: npm(npm) = 8.19.3 Provides: npm = %{version} %if 0%{?suse_version} >= 1500 %if %{node_version_number} >= 10 @@ -476,7 +477,7 @@ Provides: bundled(node-graceful-fs) = 4.2.10 Provides: bundled(node-has) = 1.0.3 Provides: bundled(node-has-flag) = 4.0.0 Provides: bundled(node-has-unicode) = 2.0.1 -Provides: bundled(node-hosted-git-info) = 5.1.0 +Provides: bundled(node-hosted-git-info) = 5.2.1 Provides: bundled(node-http-cache-semantics) = 4.1.0 Provides: bundled(node-http-proxy-agent) = 5.0.0 Provides: bundled(node-https-proxy-agent) = 5.0.1 @@ -504,8 +505,8 @@ Provides: bundled(node-just-diff) = 5.1.1 Provides: bundled(node-just-diff-apply) = 5.4.1 Provides: bundled(node-libnpmaccess) = 6.0.4 Provides: bundled(node-libnpmdiff) = 4.0.5 -Provides: bundled(node-libnpmexec) = 4.0.13 -Provides: bundled(node-libnpmfund) = 3.0.4 +Provides: bundled(node-libnpmexec) = 4.0.14 +Provides: bundled(node-libnpmfund) = 3.0.5 Provides: bundled(node-libnpmhook) = 8.0.4 Provides: bundled(node-libnpmorg) = 4.0.4 Provides: bundled(node-libnpmpack) = 4.1.3 @@ -639,17 +640,29 @@ echo "`grep node-v%{version}.tar.xz %{S:1} | head -n1 | cut -c1-64` %{S:0}" | s %if %{node_version_number} <= 10 rm -r deps/npm/* -tar zxf %{SOURCE9} -C deps/npm --strip-components=1 -tar Jxf %{SOURCE90} -C deps/npm +pushd deps/npm +tar zxf %{SOURCE9} --strip-components=1 +tar Jxf %{SOURCE90} %endif %if %{node_version_number} >= 10 tar Jxf %{SOURCE11} %endif +# downgrade node-gyp to last version that supports python 3.4 for SLE12 +%if 0%{?suse_version} && 0%{?suse_version} < 1500 && 0%{node_version_number} >= 16 +rm -r deps/npm/node_modules/node-gyp +mkdir deps/npm/node_modules/node-gyp +pushd deps/npm/node_modules/node-gyp +tar Jxf %{SOURCE5} +popd +%endif + %patch1 -p1 %patch3 -p1 +%if %{node_version_number} <= 12 && 0%{?suse_version} < 1500 %patch5 -p1 +%endif %patch7 -p1 %if 0%{with valgrind_tests} %endif @@ -670,9 +683,7 @@ tar Jxf %{SOURCE11} %endif %patch200 -p1 -%patch304 -p1 %patch305 -p1 -%patch306 -p1 %if %{node_version_number} <= 12 # minimist security update - patch50 @@ -686,12 +697,6 @@ find -name \*~ -print0 -delete # abnormalities from patching find \( -name \*.js.orig -or -name \*.md.orig -or -name \*.1.orig \) -delete -# downgrade node-gyp to last version that supports python 3.4 for SLE12 -%if 0%{?suse_version} && 0%{?suse_version} < 1500 && 0%{node_version_number} >= 16 -rm -r deps/npm/node_modules/node-gyp -mkdir deps/npm/node_modules/node-gyp -tar -C deps/npm/node_modules/node-gyp -Jxf %{SOURCE5} -%endif %build @@ -971,6 +976,7 @@ make test-ci %files %defattr(-, root, root) %license LICENSE +%doc doc/changelogs/CHANGELOG_V%{node_version_number}.md %doc AUTHORS *.md %doc deps/v8/tools/gdbinit %dir %{_libdir}/node_modules diff --git a/versioned.patch b/versioned.patch index 91b0c04..d7ba8c7 100644 --- a/versioned.patch +++ b/versioned.patch @@ -8,10 +8,10 @@ management via update_alternatives. This is also important for generation of binary modules for multiple versions of NodeJS -Index: node-v18.11.0/Makefile +Index: node-v18.13.0/Makefile =================================================================== ---- node-v18.11.0.orig/Makefile -+++ node-v18.11.0/Makefile +--- node-v18.13.0.orig/Makefile ++++ node-v18.13.0/Makefile @@ -76,7 +76,7 @@ BUILDTYPE_LOWER := $(shell echo $(BUILDT EXEEXT := $(shell $(PYTHON) -c \ "import sys; print('.exe' if sys.platform == 'win32' else '')") @@ -21,10 +21,10 @@ Index: node-v18.11.0/Makefile NODE ?= ./$(NODE_EXE) NODE_G_EXE = node_g$(EXEEXT) NPM ?= ./deps/npm/bin/npm-cli.js -Index: node-v18.11.0/tools/install.py +Index: node-v18.13.0/tools/install.py =================================================================== ---- node-v18.11.0.orig/tools/install.py -+++ node-v18.11.0/tools/install.py +--- node-v18.13.0.orig/tools/install.py ++++ node-v18.13.0/tools/install.py @@ -86,7 +86,7 @@ def uninstall(paths, dst): try_remove(path, dst) @@ -122,11 +122,11 @@ Index: node-v18.11.0/tools/install.py if sys.platform == 'zos': zoslibinc = os.environ.get('ZOSLIB_INCLUDES') -Index: node-v18.11.0/doc/node.1 +Index: node-v18.13.0/doc/node.1 =================================================================== ---- node-v18.11.0.orig/doc/node.1 -+++ node-v18.11.0/doc/node.1 -@@ -30,24 +30,24 @@ +--- node-v18.13.0.orig/doc/node.1 ++++ node-v18.13.0/doc/node.1 +@@ -31,24 +31,24 @@ .Dt NODE 1 . .Sh NAME @@ -155,10 +155,10 @@ Index: node-v18.11.0/doc/node.1 .Op Fl -v8-options . .\"====================================================================== -Index: node-v18.11.0/src/node.stp +Index: node-v18.13.0/src/node.stp =================================================================== ---- node-v18.11.0.orig/src/node.stp -+++ node-v18.11.0/src/node.stp +--- node-v18.13.0.orig/src/node.stp ++++ node-v18.13.0/src/node.stp @@ -19,7 +19,7 @@ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -231,19 +231,19 @@ Index: node-v18.11.0/src/node.stp { scavenge = 1 << 0; compact = 1 << 1; -Index: node-v18.11.0/deps/npm/man/man1/npm.1 +Index: node-v18.13.0/deps/npm/man/man1/npm.1 =================================================================== ---- node-v18.11.0.orig/deps/npm/man/man1/npm.1 -+++ node-v18.11.0/deps/npm/man/man1/npm.1 +--- node-v18.13.0.orig/deps/npm/man/man1/npm.1 ++++ node-v18.13.0/deps/npm/man/man1/npm.1 @@ -1,6 +1,6 @@ - .TH "NPM" "1" "September 2022" "" "" + .TH "NPM" "1" "November 2022" "" "" .SH "NAME" -\fBnpm\fR \- javascript package manager +\fBnpm18\fR \- javascript package manager .SS Synopsis - .SS Version .P -@@ -15,7 +15,7 @@ It is extremely configurable to support + .RS 2 +@@ -21,7 +21,7 @@ It is extremely configurable to support commonly, you use it to publish, discover, install, and develop node programs\. .P @@ -252,7 +252,7 @@ Index: node-v18.11.0/deps/npm/man/man1/npm.1 .SS Important .P npm comes preconfigured to use npm's public registry at -@@ -31,14 +31,14 @@ their terms of use\. +@@ -37,14 +37,14 @@ their terms of use\. You probably got npm because you want to install stuff\. .P The very first thing you will most likely want to run in any node @@ -261,7 +261,7 @@ Index: node-v18.11.0/deps/npm/man/man1/npm.1 .P -You can also run \fBnpm install blerg\fP to install the latest version of +You can also run \fBnpm18 install blerg\fP to install the latest version of - "blerg"\. Check out npm help \fBinstall\fP for more + "blerg"\. Check out npm help install for more info\. It can do a lot of stuff\. .P -Use the \fBnpm search\fP command to show everything that's available in the @@ -271,24 +271,14 @@ Index: node-v18.11.0/deps/npm/man/man1/npm.1 .SS Dependencies .P If a package lists a dependency using a git URL, npm will install that -@@ -87,7 +87,7 @@ npm help \fBpackage\.json\fP\|\. - .IP \(bu 2 - link: - Links your current working code into Node's path, so that you don't --have to reinstall every time you make a change\. Use npm help \fBnpm -+have to reinstall every time you make a change\. Use npm help \fBnpm18 - link\fP to do this\. - .IP \(bu 2 - install: -@@ -170,18 +170,18 @@ https://github\.com/npm/rfcs +@@ -175,18 +175,18 @@ https://github\.com/npm/rfcs .SS See Also .RS 0 .IP \(bu 2 -npm help help +npm18 help help .IP \(bu 2 --npm help package\.json -+npm18 help package\.json + package\.json \fI/configuring\-npm/package\-json\fR .IP \(bu 2 -npm help npmrc +npm18 help npmrc @@ -306,10 +296,10 @@ Index: node-v18.11.0/deps/npm/man/man1/npm.1 +npm18 help publish .RE -Index: node-v18.11.0/src/node_main.cc +Index: node-v18.13.0/src/node_main.cc =================================================================== ---- node-v18.11.0.orig/src/node_main.cc -+++ node-v18.11.0/src/node_main.cc +--- node-v18.13.0.orig/src/node_main.cc ++++ node-v18.13.0/src/node_main.cc @@ -90,6 +90,7 @@ int wmain(int argc, wchar_t* wargv[]) { // UNIX @@ -318,11 +308,11 @@ Index: node-v18.11.0/src/node_main.cc return node::Start(argc, argv); } #endif -Index: node-v18.11.0/tools/test.py +Index: node-v18.13.0/tools/test.py =================================================================== ---- node-v18.11.0.orig/tools/test.py -+++ node-v18.11.0/tools/test.py -@@ -948,7 +948,7 @@ class Context(object): +--- node-v18.13.0.orig/tools/test.py ++++ node-v18.13.0/tools/test.py +@@ -949,7 +949,7 @@ class Context(object): if self.vm is not None: return self.vm if arch == 'none': @@ -331,14 +321,14 @@ Index: node-v18.11.0/tools/test.py else: name = 'out/%s.%s/node' % (arch, mode) -Index: node-v18.11.0/node.gyp +Index: node-v18.13.0/node.gyp =================================================================== ---- node-v18.11.0.orig/node.gyp -+++ node-v18.11.0/node.gyp -@@ -24,8 +24,8 @@ - 'node_use_openssl%': 'true', +--- node-v18.13.0.orig/node.gyp ++++ node-v18.13.0/node.gyp +@@ -25,8 +25,8 @@ 'node_shared_openssl%': 'false', 'node_v8_options%': '', + 'node_enable_v8_vtunejit%': 'false', - 'node_core_target_name%': 'node', - 'node_lib_target_name%': 'libnode', + 'node_core_target_name%': 'node18', @@ -346,10 +336,10 @@ Index: node-v18.11.0/node.gyp 'node_intermediate_lib_type%': 'static_library', 'node_builtin_modules_path%': '', # We list the deps/ files out instead of globbing them in js2c.py since we -Index: node-v18.11.0/deps/npm/man/man1/npx.1 +Index: node-v18.13.0/deps/npm/man/man1/npx.1 =================================================================== ---- node-v18.11.0.orig/deps/npm/man/man1/npx.1 -+++ node-v18.11.0/deps/npm/man/man1/npx.1 +--- node-v18.13.0.orig/deps/npm/man/man1/npx.1 ++++ node-v18.13.0/deps/npm/man/man1/npx.1 @@ -5,10 +5,10 @@ .P .RS 2