From d353a4c2672b6688899a833b022d9f75a7090b60 Mon Sep 17 00:00:00 2001
From: David Tolnay <dtolnay@gmail.com>
Date: Fri, 29 Nov 2019 19:38:59 -0800
Subject: [PATCH 1/3] Make dec2flt_table compatible with rustfmt

---
 src/etc/dec2flt_table.py         |   15 +-
 src/libcore/num/dec2flt/table.rs | 2456 +++++++++++++++---------------
 2 files changed, 1241 insertions(+), 1230 deletions(-)
 mode change 100644 => 100755 src/etc/dec2flt_table.py

diff --git a/src/etc/dec2flt_table.py b/src/etc/dec2flt_table.py
old mode 100644
new mode 100755
index 2ffaf13dc8f6..85395d2ecdfc
--- a/src/etc/dec2flt_table.py
+++ b/src/etc/dec2flt_table.py
@@ -111,14 +111,18 @@ def print_proper_powers():
     print("pub const MIN_E: i16 = {};".format(MIN_E))
     print("pub const MAX_E: i16 = {};".format(MAX_E))
     print()
+    print("#[rustfmt::skip]")
     typ = "([u64; {0}], [i16; {0}])".format(len(powers))
-    print("pub const POWERS: ", typ, " = ([", sep='')
+    print("pub const POWERS: ", typ, " = (", sep='')
+    print("    [")
     for z in powers:
-        print("    0x{:x},".format(z.sig))
-    print("], [")
+        print("        0x{:x},".format(z.sig))
+    print("    ],")
+    print("    [")
     for z in powers:
-        print("    {},".format(z.exp))
-    print("]);")
+        print("        {},".format(z.exp))
+    print("    ],")
+    print(");")
 
 
 def print_short_powers(num_bits, significand_size):
@@ -127,6 +131,7 @@ def print_short_powers(num_bits, significand_size):
     max_e = int(ceil(log(max_sig, 5)))
     e_range = range(max_e)
     typ = "[f{}; {}]".format(num_bits, len(e_range))
+    print("#[rustfmt::skip]")
     print("pub const F", num_bits, "_SHORT_POWERS: ", typ, " = [", sep='')
     for e in e_range:
         print("    1e{},".format(e))
diff --git a/src/libcore/num/dec2flt/table.rs b/src/libcore/num/dec2flt/table.rs
index 345ac830aaa7..1bd94ffa04e0 100644
--- a/src/libcore/num/dec2flt/table.rs
+++ b/src/libcore/num/dec2flt/table.rs
@@ -4,1232 +4,1237 @@
 pub const MIN_E: i16 = -305;
 pub const MAX_E: i16 = 305;
 
-pub const POWERS: ([u64; 611], [i16; 611]) = ([
-    0xe0b62e2929aba83c,
-    0x8c71dcd9ba0b4926,
-    0xaf8e5410288e1b6f,
-    0xdb71e91432b1a24b,
-    0x892731ac9faf056f,
-    0xab70fe17c79ac6ca,
-    0xd64d3d9db981787d,
-    0x85f0468293f0eb4e,
-    0xa76c582338ed2622,
-    0xd1476e2c07286faa,
-    0x82cca4db847945ca,
-    0xa37fce126597973d,
-    0xcc5fc196fefd7d0c,
-    0xff77b1fcbebcdc4f,
-    0x9faacf3df73609b1,
-    0xc795830d75038c1e,
-    0xf97ae3d0d2446f25,
-    0x9becce62836ac577,
-    0xc2e801fb244576d5,
-    0xf3a20279ed56d48a,
-    0x9845418c345644d7,
-    0xbe5691ef416bd60c,
-    0xedec366b11c6cb8f,
-    0x94b3a202eb1c3f39,
-    0xb9e08a83a5e34f08,
-    0xe858ad248f5c22ca,
-    0x91376c36d99995be,
-    0xb58547448ffffb2e,
-    0xe2e69915b3fff9f9,
-    0x8dd01fad907ffc3c,
-    0xb1442798f49ffb4b,
-    0xdd95317f31c7fa1d,
-    0x8a7d3eef7f1cfc52,
-    0xad1c8eab5ee43b67,
-    0xd863b256369d4a41,
-    0x873e4f75e2224e68,
-    0xa90de3535aaae202,
-    0xd3515c2831559a83,
-    0x8412d9991ed58092,
-    0xa5178fff668ae0b6,
-    0xce5d73ff402d98e4,
-    0x80fa687f881c7f8e,
-    0xa139029f6a239f72,
-    0xc987434744ac874f,
-    0xfbe9141915d7a922,
-    0x9d71ac8fada6c9b5,
-    0xc4ce17b399107c23,
-    0xf6019da07f549b2b,
-    0x99c102844f94e0fb,
-    0xc0314325637a193a,
-    0xf03d93eebc589f88,
-    0x96267c7535b763b5,
-    0xbbb01b9283253ca3,
-    0xea9c227723ee8bcb,
-    0x92a1958a7675175f,
-    0xb749faed14125d37,
-    0xe51c79a85916f485,
-    0x8f31cc0937ae58d3,
-    0xb2fe3f0b8599ef08,
-    0xdfbdcece67006ac9,
-    0x8bd6a141006042be,
-    0xaecc49914078536d,
-    0xda7f5bf590966849,
-    0x888f99797a5e012d,
-    0xaab37fd7d8f58179,
-    0xd5605fcdcf32e1d7,
-    0x855c3be0a17fcd26,
-    0xa6b34ad8c9dfc070,
-    0xd0601d8efc57b08c,
-    0x823c12795db6ce57,
-    0xa2cb1717b52481ed,
-    0xcb7ddcdda26da269,
-    0xfe5d54150b090b03,
-    0x9efa548d26e5a6e2,
-    0xc6b8e9b0709f109a,
-    0xf867241c8cc6d4c1,
-    0x9b407691d7fc44f8,
-    0xc21094364dfb5637,
-    0xf294b943e17a2bc4,
-    0x979cf3ca6cec5b5b,
-    0xbd8430bd08277231,
-    0xece53cec4a314ebe,
-    0x940f4613ae5ed137,
-    0xb913179899f68584,
-    0xe757dd7ec07426e5,
-    0x9096ea6f3848984f,
-    0xb4bca50b065abe63,
-    0xe1ebce4dc7f16dfc,
-    0x8d3360f09cf6e4bd,
-    0xb080392cc4349ded,
-    0xdca04777f541c568,
-    0x89e42caaf9491b61,
-    0xac5d37d5b79b6239,
-    0xd77485cb25823ac7,
-    0x86a8d39ef77164bd,
-    0xa8530886b54dbdec,
-    0xd267caa862a12d67,
-    0x8380dea93da4bc60,
-    0xa46116538d0deb78,
-    0xcd795be870516656,
-    0x806bd9714632dff6,
-    0xa086cfcd97bf97f4,
-    0xc8a883c0fdaf7df0,
-    0xfad2a4b13d1b5d6c,
-    0x9cc3a6eec6311a64,
-    0xc3f490aa77bd60fd,
-    0xf4f1b4d515acb93c,
-    0x991711052d8bf3c5,
-    0xbf5cd54678eef0b7,
-    0xef340a98172aace5,
-    0x9580869f0e7aac0f,
-    0xbae0a846d2195713,
-    0xe998d258869facd7,
-    0x91ff83775423cc06,
-    0xb67f6455292cbf08,
-    0xe41f3d6a7377eeca,
-    0x8e938662882af53e,
-    0xb23867fb2a35b28e,
-    0xdec681f9f4c31f31,
-    0x8b3c113c38f9f37f,
-    0xae0b158b4738705f,
-    0xd98ddaee19068c76,
-    0x87f8a8d4cfa417ca,
-    0xa9f6d30a038d1dbc,
-    0xd47487cc8470652b,
-    0x84c8d4dfd2c63f3b,
-    0xa5fb0a17c777cf0a,
-    0xcf79cc9db955c2cc,
-    0x81ac1fe293d599c0,
-    0xa21727db38cb0030,
-    0xca9cf1d206fdc03c,
-    0xfd442e4688bd304b,
-    0x9e4a9cec15763e2f,
-    0xc5dd44271ad3cdba,
-    0xf7549530e188c129,
-    0x9a94dd3e8cf578ba,
-    0xc13a148e3032d6e8,
-    0xf18899b1bc3f8ca2,
-    0x96f5600f15a7b7e5,
-    0xbcb2b812db11a5de,
-    0xebdf661791d60f56,
-    0x936b9fcebb25c996,
-    0xb84687c269ef3bfb,
-    0xe65829b3046b0afa,
-    0x8ff71a0fe2c2e6dc,
-    0xb3f4e093db73a093,
-    0xe0f218b8d25088b8,
-    0x8c974f7383725573,
-    0xafbd2350644eead0,
-    0xdbac6c247d62a584,
-    0x894bc396ce5da772,
-    0xab9eb47c81f5114f,
-    0xd686619ba27255a3,
-    0x8613fd0145877586,
-    0xa798fc4196e952e7,
-    0xd17f3b51fca3a7a1,
-    0x82ef85133de648c5,
-    0xa3ab66580d5fdaf6,
-    0xcc963fee10b7d1b3,
-    0xffbbcfe994e5c620,
-    0x9fd561f1fd0f9bd4,
-    0xc7caba6e7c5382c9,
-    0xf9bd690a1b68637b,
-    0x9c1661a651213e2d,
-    0xc31bfa0fe5698db8,
-    0xf3e2f893dec3f126,
-    0x986ddb5c6b3a76b8,
-    0xbe89523386091466,
-    0xee2ba6c0678b597f,
-    0x94db483840b717f0,
-    0xba121a4650e4ddec,
-    0xe896a0d7e51e1566,
-    0x915e2486ef32cd60,
-    0xb5b5ada8aaff80b8,
-    0xe3231912d5bf60e6,
-    0x8df5efabc5979c90,
-    0xb1736b96b6fd83b4,
-    0xddd0467c64bce4a1,
-    0x8aa22c0dbef60ee4,
-    0xad4ab7112eb3929e,
-    0xd89d64d57a607745,
-    0x87625f056c7c4a8b,
-    0xa93af6c6c79b5d2e,
-    0xd389b47879823479,
-    0x843610cb4bf160cc,
-    0xa54394fe1eedb8ff,
-    0xce947a3da6a9273e,
-    0x811ccc668829b887,
-    0xa163ff802a3426a9,
-    0xc9bcff6034c13053,
-    0xfc2c3f3841f17c68,
-    0x9d9ba7832936edc1,
-    0xc5029163f384a931,
-    0xf64335bcf065d37d,
-    0x99ea0196163fa42e,
-    0xc06481fb9bcf8d3a,
-    0xf07da27a82c37088,
-    0x964e858c91ba2655,
-    0xbbe226efb628afeb,
-    0xeadab0aba3b2dbe5,
-    0x92c8ae6b464fc96f,
-    0xb77ada0617e3bbcb,
-    0xe55990879ddcaabe,
-    0x8f57fa54c2a9eab7,
-    0xb32df8e9f3546564,
-    0xdff9772470297ebd,
-    0x8bfbea76c619ef36,
-    0xaefae51477a06b04,
-    0xdab99e59958885c5,
-    0x88b402f7fd75539b,
-    0xaae103b5fcd2a882,
-    0xd59944a37c0752a2,
-    0x857fcae62d8493a5,
-    0xa6dfbd9fb8e5b88f,
-    0xd097ad07a71f26b2,
-    0x825ecc24c8737830,
-    0xa2f67f2dfa90563b,
-    0xcbb41ef979346bca,
-    0xfea126b7d78186bd,
-    0x9f24b832e6b0f436,
-    0xc6ede63fa05d3144,
-    0xf8a95fcf88747d94,
-    0x9b69dbe1b548ce7d,
-    0xc24452da229b021c,
-    0xf2d56790ab41c2a3,
-    0x97c560ba6b0919a6,
-    0xbdb6b8e905cb600f,
-    0xed246723473e3813,
-    0x9436c0760c86e30c,
-    0xb94470938fa89bcf,
-    0xe7958cb87392c2c3,
-    0x90bd77f3483bb9ba,
-    0xb4ecd5f01a4aa828,
-    0xe2280b6c20dd5232,
-    0x8d590723948a535f,
-    0xb0af48ec79ace837,
-    0xdcdb1b2798182245,
-    0x8a08f0f8bf0f156b,
-    0xac8b2d36eed2dac6,
-    0xd7adf884aa879177,
-    0x86ccbb52ea94baeb,
-    0xa87fea27a539e9a5,
-    0xd29fe4b18e88640f,
-    0x83a3eeeef9153e89,
-    0xa48ceaaab75a8e2b,
-    0xcdb02555653131b6,
-    0x808e17555f3ebf12,
-    0xa0b19d2ab70e6ed6,
-    0xc8de047564d20a8c,
-    0xfb158592be068d2f,
-    0x9ced737bb6c4183d,
-    0xc428d05aa4751e4d,
-    0xf53304714d9265e0,
-    0x993fe2c6d07b7fac,
-    0xbf8fdb78849a5f97,
-    0xef73d256a5c0f77d,
-    0x95a8637627989aae,
-    0xbb127c53b17ec159,
-    0xe9d71b689dde71b0,
-    0x9226712162ab070e,
-    0xb6b00d69bb55c8d1,
-    0xe45c10c42a2b3b06,
-    0x8eb98a7a9a5b04e3,
-    0xb267ed1940f1c61c,
-    0xdf01e85f912e37a3,
-    0x8b61313bbabce2c6,
-    0xae397d8aa96c1b78,
-    0xd9c7dced53c72256,
-    0x881cea14545c7575,
-    0xaa242499697392d3,
-    0xd4ad2dbfc3d07788,
-    0x84ec3c97da624ab5,
-    0xa6274bbdd0fadd62,
-    0xcfb11ead453994ba,
-    0x81ceb32c4b43fcf5,
-    0xa2425ff75e14fc32,
-    0xcad2f7f5359a3b3e,
-    0xfd87b5f28300ca0e,
-    0x9e74d1b791e07e48,
-    0xc612062576589ddb,
-    0xf79687aed3eec551,
-    0x9abe14cd44753b53,
-    0xc16d9a0095928a27,
-    0xf1c90080baf72cb1,
-    0x971da05074da7bef,
-    0xbce5086492111aeb,
-    0xec1e4a7db69561a5,
-    0x9392ee8e921d5d07,
-    0xb877aa3236a4b449,
-    0xe69594bec44de15b,
-    0x901d7cf73ab0acd9,
-    0xb424dc35095cd80f,
-    0xe12e13424bb40e13,
-    0x8cbccc096f5088cc,
-    0xafebff0bcb24aaff,
-    0xdbe6fecebdedd5bf,
-    0x89705f4136b4a597,
-    0xabcc77118461cefd,
-    0xd6bf94d5e57a42bc,
-    0x8637bd05af6c69b6,
-    0xa7c5ac471b478423,
-    0xd1b71758e219652c,
-    0x83126e978d4fdf3b,
-    0xa3d70a3d70a3d70a,
-    0xcccccccccccccccd,
-    0x8000000000000000,
-    0xa000000000000000,
-    0xc800000000000000,
-    0xfa00000000000000,
-    0x9c40000000000000,
-    0xc350000000000000,
-    0xf424000000000000,
-    0x9896800000000000,
-    0xbebc200000000000,
-    0xee6b280000000000,
-    0x9502f90000000000,
-    0xba43b74000000000,
-    0xe8d4a51000000000,
-    0x9184e72a00000000,
-    0xb5e620f480000000,
-    0xe35fa931a0000000,
-    0x8e1bc9bf04000000,
-    0xb1a2bc2ec5000000,
-    0xde0b6b3a76400000,
-    0x8ac7230489e80000,
-    0xad78ebc5ac620000,
-    0xd8d726b7177a8000,
-    0x878678326eac9000,
-    0xa968163f0a57b400,
-    0xd3c21bcecceda100,
-    0x84595161401484a0,
-    0xa56fa5b99019a5c8,
-    0xcecb8f27f4200f3a,
-    0x813f3978f8940984,
-    0xa18f07d736b90be5,
-    0xc9f2c9cd04674edf,
-    0xfc6f7c4045812296,
-    0x9dc5ada82b70b59e,
-    0xc5371912364ce305,
-    0xf684df56c3e01bc7,
-    0x9a130b963a6c115c,
-    0xc097ce7bc90715b3,
-    0xf0bdc21abb48db20,
-    0x96769950b50d88f4,
-    0xbc143fa4e250eb31,
-    0xeb194f8e1ae525fd,
-    0x92efd1b8d0cf37be,
-    0xb7abc627050305ae,
-    0xe596b7b0c643c719,
-    0x8f7e32ce7bea5c70,
-    0xb35dbf821ae4f38c,
-    0xe0352f62a19e306f,
-    0x8c213d9da502de45,
-    0xaf298d050e4395d7,
-    0xdaf3f04651d47b4c,
-    0x88d8762bf324cd10,
-    0xab0e93b6efee0054,
-    0xd5d238a4abe98068,
-    0x85a36366eb71f041,
-    0xa70c3c40a64e6c52,
-    0xd0cf4b50cfe20766,
-    0x82818f1281ed44a0,
-    0xa321f2d7226895c8,
-    0xcbea6f8ceb02bb3a,
-    0xfee50b7025c36a08,
-    0x9f4f2726179a2245,
-    0xc722f0ef9d80aad6,
-    0xf8ebad2b84e0d58c,
-    0x9b934c3b330c8577,
-    0xc2781f49ffcfa6d5,
-    0xf316271c7fc3908b,
-    0x97edd871cfda3a57,
-    0xbde94e8e43d0c8ec,
-    0xed63a231d4c4fb27,
-    0x945e455f24fb1cf9,
-    0xb975d6b6ee39e437,
-    0xe7d34c64a9c85d44,
-    0x90e40fbeea1d3a4b,
-    0xb51d13aea4a488dd,
-    0xe264589a4dcdab15,
-    0x8d7eb76070a08aed,
-    0xb0de65388cc8ada8,
-    0xdd15fe86affad912,
-    0x8a2dbf142dfcc7ab,
-    0xacb92ed9397bf996,
-    0xd7e77a8f87daf7fc,
-    0x86f0ac99b4e8dafd,
-    0xa8acd7c0222311bd,
-    0xd2d80db02aabd62c,
-    0x83c7088e1aab65db,
-    0xa4b8cab1a1563f52,
-    0xcde6fd5e09abcf27,
-    0x80b05e5ac60b6178,
-    0xa0dc75f1778e39d6,
-    0xc913936dd571c84c,
-    0xfb5878494ace3a5f,
-    0x9d174b2dcec0e47b,
-    0xc45d1df942711d9a,
-    0xf5746577930d6501,
-    0x9968bf6abbe85f20,
-    0xbfc2ef456ae276e9,
-    0xefb3ab16c59b14a3,
-    0x95d04aee3b80ece6,
-    0xbb445da9ca61281f,
-    0xea1575143cf97227,
-    0x924d692ca61be758,
-    0xb6e0c377cfa2e12e,
-    0xe498f455c38b997a,
-    0x8edf98b59a373fec,
-    0xb2977ee300c50fe7,
-    0xdf3d5e9bc0f653e1,
-    0x8b865b215899f46d,
-    0xae67f1e9aec07188,
-    0xda01ee641a708dea,
-    0x884134fe908658b2,
-    0xaa51823e34a7eedf,
-    0xd4e5e2cdc1d1ea96,
-    0x850fadc09923329e,
-    0xa6539930bf6bff46,
-    0xcfe87f7cef46ff17,
-    0x81f14fae158c5f6e,
-    0xa26da3999aef774a,
-    0xcb090c8001ab551c,
-    0xfdcb4fa002162a63,
-    0x9e9f11c4014dda7e,
-    0xc646d63501a1511e,
-    0xf7d88bc24209a565,
-    0x9ae757596946075f,
-    0xc1a12d2fc3978937,
-    0xf209787bb47d6b85,
-    0x9745eb4d50ce6333,
-    0xbd176620a501fc00,
-    0xec5d3fa8ce427b00,
-    0x93ba47c980e98ce0,
-    0xb8a8d9bbe123f018,
-    0xe6d3102ad96cec1e,
-    0x9043ea1ac7e41393,
-    0xb454e4a179dd1877,
-    0xe16a1dc9d8545e95,
-    0x8ce2529e2734bb1d,
-    0xb01ae745b101e9e4,
-    0xdc21a1171d42645d,
-    0x899504ae72497eba,
-    0xabfa45da0edbde69,
-    0xd6f8d7509292d603,
-    0x865b86925b9bc5c2,
-    0xa7f26836f282b733,
-    0xd1ef0244af2364ff,
-    0x8335616aed761f1f,
-    0xa402b9c5a8d3a6e7,
-    0xcd036837130890a1,
-    0x802221226be55a65,
-    0xa02aa96b06deb0fe,
-    0xc83553c5c8965d3d,
-    0xfa42a8b73abbf48d,
-    0x9c69a97284b578d8,
-    0xc38413cf25e2d70e,
-    0xf46518c2ef5b8cd1,
-    0x98bf2f79d5993803,
-    0xbeeefb584aff8604,
-    0xeeaaba2e5dbf6785,
-    0x952ab45cfa97a0b3,
-    0xba756174393d88e0,
-    0xe912b9d1478ceb17,
-    0x91abb422ccb812ef,
-    0xb616a12b7fe617aa,
-    0xe39c49765fdf9d95,
-    0x8e41ade9fbebc27d,
-    0xb1d219647ae6b31c,
-    0xde469fbd99a05fe3,
-    0x8aec23d680043bee,
-    0xada72ccc20054aea,
-    0xd910f7ff28069da4,
-    0x87aa9aff79042287,
-    0xa99541bf57452b28,
-    0xd3fa922f2d1675f2,
-    0x847c9b5d7c2e09b7,
-    0xa59bc234db398c25,
-    0xcf02b2c21207ef2f,
-    0x8161afb94b44f57d,
-    0xa1ba1ba79e1632dc,
-    0xca28a291859bbf93,
-    0xfcb2cb35e702af78,
-    0x9defbf01b061adab,
-    0xc56baec21c7a1916,
-    0xf6c69a72a3989f5c,
-    0x9a3c2087a63f6399,
-    0xc0cb28a98fcf3c80,
-    0xf0fdf2d3f3c30b9f,
-    0x969eb7c47859e744,
-    0xbc4665b596706115,
-    0xeb57ff22fc0c795a,
-    0x9316ff75dd87cbd8,
-    0xb7dcbf5354e9bece,
-    0xe5d3ef282a242e82,
-    0x8fa475791a569d11,
-    0xb38d92d760ec4455,
-    0xe070f78d3927556b,
-    0x8c469ab843b89563,
-    0xaf58416654a6babb,
-    0xdb2e51bfe9d0696a,
-    0x88fcf317f22241e2,
-    0xab3c2fddeeaad25b,
-    0xd60b3bd56a5586f2,
-    0x85c7056562757457,
-    0xa738c6bebb12d16d,
-    0xd106f86e69d785c8,
-    0x82a45b450226b39d,
-    0xa34d721642b06084,
-    0xcc20ce9bd35c78a5,
-    0xff290242c83396ce,
-    0x9f79a169bd203e41,
-    0xc75809c42c684dd1,
-    0xf92e0c3537826146,
-    0x9bbcc7a142b17ccc,
-    0xc2abf989935ddbfe,
-    0xf356f7ebf83552fe,
-    0x98165af37b2153df,
-    0xbe1bf1b059e9a8d6,
-    0xeda2ee1c7064130c,
-    0x9485d4d1c63e8be8,
-    0xb9a74a0637ce2ee1,
-    0xe8111c87c5c1ba9a,
-    0x910ab1d4db9914a0,
-    0xb54d5e4a127f59c8,
-    0xe2a0b5dc971f303a,
-    0x8da471a9de737e24,
-    0xb10d8e1456105dad,
-    0xdd50f1996b947519,
-    0x8a5296ffe33cc930,
-    0xace73cbfdc0bfb7b,
-    0xd8210befd30efa5a,
-    0x8714a775e3e95c78,
-    0xa8d9d1535ce3b396,
-    0xd31045a8341ca07c,
-    0x83ea2b892091e44e,
-    0xa4e4b66b68b65d61,
-    0xce1de40642e3f4b9,
-    0x80d2ae83e9ce78f4,
-    0xa1075a24e4421731,
-    0xc94930ae1d529cfd,
-    0xfb9b7cd9a4a7443c,
-    0x9d412e0806e88aa6,
-    0xc491798a08a2ad4f,
-    0xf5b5d7ec8acb58a3,
-    0x9991a6f3d6bf1766,
-    0xbff610b0cc6edd3f,
-    0xeff394dcff8a948f,
-    0x95f83d0a1fb69cd9,
-    0xbb764c4ca7a44410,
-    0xea53df5fd18d5514,
-    0x92746b9be2f8552c,
-    0xb7118682dbb66a77,
-    0xe4d5e82392a40515,
-    0x8f05b1163ba6832d,
-    0xb2c71d5bca9023f8,
-    0xdf78e4b2bd342cf7,
-    0x8bab8eefb6409c1a,
-    0xae9672aba3d0c321,
-    0xda3c0f568cc4f3e9,
-    0x8865899617fb1871,
-    0xaa7eebfb9df9de8e,
-    0xd51ea6fa85785631,
-    0x8533285c936b35df,
-    0xa67ff273b8460357,
-    0xd01fef10a657842c,
-    0x8213f56a67f6b29c,
-    0xa298f2c501f45f43,
-    0xcb3f2f7642717713,
-    0xfe0efb53d30dd4d8,
-    0x9ec95d1463e8a507,
-    0xc67bb4597ce2ce49,
-    0xf81aa16fdc1b81db,
-    0x9b10a4e5e9913129,
-    0xc1d4ce1f63f57d73,
-    0xf24a01a73cf2dcd0,
-    0x976e41088617ca02,
-    0xbd49d14aa79dbc82,
-    0xec9c459d51852ba3,
-    0x93e1ab8252f33b46,
-    0xb8da1662e7b00a17,
-    0xe7109bfba19c0c9d,
-    0x906a617d450187e2,
-    0xb484f9dc9641e9db,
-    0xe1a63853bbd26451,
-    0x8d07e33455637eb3,
-    0xb049dc016abc5e60,
-    0xdc5c5301c56b75f7,
-    0x89b9b3e11b6329bb,
-    0xac2820d9623bf429,
-    0xd732290fbacaf134,
-    0x867f59a9d4bed6c0,
-    0xa81f301449ee8c70,
-    0xd226fc195c6a2f8c,
-    0x83585d8fd9c25db8,
-    0xa42e74f3d032f526,
-    0xcd3a1230c43fb26f,
-    0x80444b5e7aa7cf85,
-    0xa0555e361951c367,
-    0xc86ab5c39fa63441,
-    0xfa856334878fc151,
-    0x9c935e00d4b9d8d2,
-    0xc3b8358109e84f07,
-    0xf4a642e14c6262c9,
-    0x98e7e9cccfbd7dbe,
-    0xbf21e44003acdd2d,
-    0xeeea5d5004981478,
-    0x95527a5202df0ccb,
-    0xbaa718e68396cffe,
-    0xe950df20247c83fd,
-    0x91d28b7416cdd27e,
-], [
-    -1077,
-    -1073,
-    -1070,
-    -1067,
-    -1063,
-    -1060,
-    -1057,
-    -1053,
-    -1050,
-    -1047,
-    -1043,
-    -1040,
-    -1037,
-    -1034,
-    -1030,
-    -1027,
-    -1024,
-    -1020,
-    -1017,
-    -1014,
-    -1010,
-    -1007,
-    -1004,
-    -1000,
-    -997,
-    -994,
-    -990,
-    -987,
-    -984,
-    -980,
-    -977,
-    -974,
-    -970,
-    -967,
-    -964,
-    -960,
-    -957,
-    -954,
-    -950,
-    -947,
-    -944,
-    -940,
-    -937,
-    -934,
-    -931,
-    -927,
-    -924,
-    -921,
-    -917,
-    -914,
-    -911,
-    -907,
-    -904,
-    -901,
-    -897,
-    -894,
-    -891,
-    -887,
-    -884,
-    -881,
-    -877,
-    -874,
-    -871,
-    -867,
-    -864,
-    -861,
-    -857,
-    -854,
-    -851,
-    -847,
-    -844,
-    -841,
-    -838,
-    -834,
-    -831,
-    -828,
-    -824,
-    -821,
-    -818,
-    -814,
-    -811,
-    -808,
-    -804,
-    -801,
-    -798,
-    -794,
-    -791,
-    -788,
-    -784,
-    -781,
-    -778,
-    -774,
-    -771,
-    -768,
-    -764,
-    -761,
-    -758,
-    -754,
-    -751,
-    -748,
-    -744,
-    -741,
-    -738,
-    -735,
-    -731,
-    -728,
-    -725,
-    -721,
-    -718,
-    -715,
-    -711,
-    -708,
-    -705,
-    -701,
-    -698,
-    -695,
-    -691,
-    -688,
-    -685,
-    -681,
-    -678,
-    -675,
-    -671,
-    -668,
-    -665,
-    -661,
-    -658,
-    -655,
-    -651,
-    -648,
-    -645,
-    -642,
-    -638,
-    -635,
-    -632,
-    -628,
-    -625,
-    -622,
-    -618,
-    -615,
-    -612,
-    -608,
-    -605,
-    -602,
-    -598,
-    -595,
-    -592,
-    -588,
-    -585,
-    -582,
-    -578,
-    -575,
-    -572,
-    -568,
-    -565,
-    -562,
-    -558,
-    -555,
-    -552,
-    -549,
-    -545,
-    -542,
-    -539,
-    -535,
-    -532,
-    -529,
-    -525,
-    -522,
-    -519,
-    -515,
-    -512,
-    -509,
-    -505,
-    -502,
-    -499,
-    -495,
-    -492,
-    -489,
-    -485,
-    -482,
-    -479,
-    -475,
-    -472,
-    -469,
-    -465,
-    -462,
-    -459,
-    -455,
-    -452,
-    -449,
-    -446,
-    -442,
-    -439,
-    -436,
-    -432,
-    -429,
-    -426,
-    -422,
-    -419,
-    -416,
-    -412,
-    -409,
-    -406,
-    -402,
-    -399,
-    -396,
-    -392,
-    -389,
-    -386,
-    -382,
-    -379,
-    -376,
-    -372,
-    -369,
-    -366,
-    -362,
-    -359,
-    -356,
-    -353,
-    -349,
-    -346,
-    -343,
-    -339,
-    -336,
-    -333,
-    -329,
-    -326,
-    -323,
-    -319,
-    -316,
-    -313,
-    -309,
-    -306,
-    -303,
-    -299,
-    -296,
-    -293,
-    -289,
-    -286,
-    -283,
-    -279,
-    -276,
-    -273,
-    -269,
-    -266,
-    -263,
-    -259,
-    -256,
-    -253,
-    -250,
-    -246,
-    -243,
-    -240,
-    -236,
-    -233,
-    -230,
-    -226,
-    -223,
-    -220,
-    -216,
-    -213,
-    -210,
-    -206,
-    -203,
-    -200,
-    -196,
-    -193,
-    -190,
-    -186,
-    -183,
-    -180,
-    -176,
-    -173,
-    -170,
-    -166,
-    -163,
-    -160,
-    -157,
-    -153,
-    -150,
-    -147,
-    -143,
-    -140,
-    -137,
-    -133,
-    -130,
-    -127,
-    -123,
-    -120,
-    -117,
-    -113,
-    -110,
-    -107,
-    -103,
-    -100,
-    -97,
-    -93,
-    -90,
-    -87,
-    -83,
-    -80,
-    -77,
-    -73,
-    -70,
-    -67,
-    -63,
-    -60,
-    -57,
-    -54,
-    -50,
-    -47,
-    -44,
-    -40,
-    -37,
-    -34,
-    -30,
-    -27,
-    -24,
-    -20,
-    -17,
-    -14,
-    -10,
-    -7,
-    -4,
-    0,
-    3,
-    6,
-    10,
-    13,
-    16,
-    20,
-    23,
-    26,
-    30,
-    33,
-    36,
-    39,
-    43,
-    46,
-    49,
-    53,
-    56,
-    59,
-    63,
-    66,
-    69,
-    73,
-    76,
-    79,
-    83,
-    86,
-    89,
-    93,
-    96,
-    99,
-    103,
-    106,
-    109,
-    113,
-    116,
-    119,
-    123,
-    126,
-    129,
-    132,
-    136,
-    139,
-    142,
-    146,
-    149,
-    152,
-    156,
-    159,
-    162,
-    166,
-    169,
-    172,
-    176,
-    179,
-    182,
-    186,
-    189,
-    192,
-    196,
-    199,
-    202,
-    206,
-    209,
-    212,
-    216,
-    219,
-    222,
-    226,
-    229,
-    232,
-    235,
-    239,
-    242,
-    245,
-    249,
-    252,
-    255,
-    259,
-    262,
-    265,
-    269,
-    272,
-    275,
-    279,
-    282,
-    285,
-    289,
-    292,
-    295,
-    299,
-    302,
-    305,
-    309,
-    312,
-    315,
-    319,
-    322,
-    325,
-    328,
-    332,
-    335,
-    338,
-    342,
-    345,
-    348,
-    352,
-    355,
-    358,
-    362,
-    365,
-    368,
-    372,
-    375,
-    378,
-    382,
-    385,
-    388,
-    392,
-    395,
-    398,
-    402,
-    405,
-    408,
-    412,
-    415,
-    418,
-    422,
-    425,
-    428,
-    431,
-    435,
-    438,
-    441,
-    445,
-    448,
-    451,
-    455,
-    458,
-    461,
-    465,
-    468,
-    471,
-    475,
-    478,
-    481,
-    485,
-    488,
-    491,
-    495,
-    498,
-    501,
-    505,
-    508,
-    511,
-    515,
-    518,
-    521,
-    524,
-    528,
-    531,
-    534,
-    538,
-    541,
-    544,
-    548,
-    551,
-    554,
-    558,
-    561,
-    564,
-    568,
-    571,
-    574,
-    578,
-    581,
-    584,
-    588,
-    591,
-    594,
-    598,
-    601,
-    604,
-    608,
-    611,
-    614,
-    617,
-    621,
-    624,
-    627,
-    631,
-    634,
-    637,
-    641,
-    644,
-    647,
-    651,
-    654,
-    657,
-    661,
-    664,
-    667,
-    671,
-    674,
-    677,
-    681,
-    684,
-    687,
-    691,
-    694,
-    697,
-    701,
-    704,
-    707,
-    711,
-    714,
-    717,
-    720,
-    724,
-    727,
-    730,
-    734,
-    737,
-    740,
-    744,
-    747,
-    750,
-    754,
-    757,
-    760,
-    764,
-    767,
-    770,
-    774,
-    777,
-    780,
-    784,
-    787,
-    790,
-    794,
-    797,
-    800,
-    804,
-    807,
-    810,
-    813,
-    817,
-    820,
-    823,
-    827,
-    830,
-    833,
-    837,
-    840,
-    843,
-    847,
-    850,
-    853,
-    857,
-    860,
-    863,
-    867,
-    870,
-    873,
-    877,
-    880,
-    883,
-    887,
-    890,
-    893,
-    897,
-    900,
-    903,
-    907,
-    910,
-    913,
-    916,
-    920,
-    923,
-    926,
-    930,
-    933,
-    936,
-    940,
-    943,
-    946,
-    950,
-]);
+#[rustfmt::skip]
+pub const POWERS: ([u64; 611], [i16; 611]) = (
+    [
+        0xe0b62e2929aba83c,
+        0x8c71dcd9ba0b4926,
+        0xaf8e5410288e1b6f,
+        0xdb71e91432b1a24b,
+        0x892731ac9faf056f,
+        0xab70fe17c79ac6ca,
+        0xd64d3d9db981787d,
+        0x85f0468293f0eb4e,
+        0xa76c582338ed2622,
+        0xd1476e2c07286faa,
+        0x82cca4db847945ca,
+        0xa37fce126597973d,
+        0xcc5fc196fefd7d0c,
+        0xff77b1fcbebcdc4f,
+        0x9faacf3df73609b1,
+        0xc795830d75038c1e,
+        0xf97ae3d0d2446f25,
+        0x9becce62836ac577,
+        0xc2e801fb244576d5,
+        0xf3a20279ed56d48a,
+        0x9845418c345644d7,
+        0xbe5691ef416bd60c,
+        0xedec366b11c6cb8f,
+        0x94b3a202eb1c3f39,
+        0xb9e08a83a5e34f08,
+        0xe858ad248f5c22ca,
+        0x91376c36d99995be,
+        0xb58547448ffffb2e,
+        0xe2e69915b3fff9f9,
+        0x8dd01fad907ffc3c,
+        0xb1442798f49ffb4b,
+        0xdd95317f31c7fa1d,
+        0x8a7d3eef7f1cfc52,
+        0xad1c8eab5ee43b67,
+        0xd863b256369d4a41,
+        0x873e4f75e2224e68,
+        0xa90de3535aaae202,
+        0xd3515c2831559a83,
+        0x8412d9991ed58092,
+        0xa5178fff668ae0b6,
+        0xce5d73ff402d98e4,
+        0x80fa687f881c7f8e,
+        0xa139029f6a239f72,
+        0xc987434744ac874f,
+        0xfbe9141915d7a922,
+        0x9d71ac8fada6c9b5,
+        0xc4ce17b399107c23,
+        0xf6019da07f549b2b,
+        0x99c102844f94e0fb,
+        0xc0314325637a193a,
+        0xf03d93eebc589f88,
+        0x96267c7535b763b5,
+        0xbbb01b9283253ca3,
+        0xea9c227723ee8bcb,
+        0x92a1958a7675175f,
+        0xb749faed14125d37,
+        0xe51c79a85916f485,
+        0x8f31cc0937ae58d3,
+        0xb2fe3f0b8599ef08,
+        0xdfbdcece67006ac9,
+        0x8bd6a141006042be,
+        0xaecc49914078536d,
+        0xda7f5bf590966849,
+        0x888f99797a5e012d,
+        0xaab37fd7d8f58179,
+        0xd5605fcdcf32e1d7,
+        0x855c3be0a17fcd26,
+        0xa6b34ad8c9dfc070,
+        0xd0601d8efc57b08c,
+        0x823c12795db6ce57,
+        0xa2cb1717b52481ed,
+        0xcb7ddcdda26da269,
+        0xfe5d54150b090b03,
+        0x9efa548d26e5a6e2,
+        0xc6b8e9b0709f109a,
+        0xf867241c8cc6d4c1,
+        0x9b407691d7fc44f8,
+        0xc21094364dfb5637,
+        0xf294b943e17a2bc4,
+        0x979cf3ca6cec5b5b,
+        0xbd8430bd08277231,
+        0xece53cec4a314ebe,
+        0x940f4613ae5ed137,
+        0xb913179899f68584,
+        0xe757dd7ec07426e5,
+        0x9096ea6f3848984f,
+        0xb4bca50b065abe63,
+        0xe1ebce4dc7f16dfc,
+        0x8d3360f09cf6e4bd,
+        0xb080392cc4349ded,
+        0xdca04777f541c568,
+        0x89e42caaf9491b61,
+        0xac5d37d5b79b6239,
+        0xd77485cb25823ac7,
+        0x86a8d39ef77164bd,
+        0xa8530886b54dbdec,
+        0xd267caa862a12d67,
+        0x8380dea93da4bc60,
+        0xa46116538d0deb78,
+        0xcd795be870516656,
+        0x806bd9714632dff6,
+        0xa086cfcd97bf97f4,
+        0xc8a883c0fdaf7df0,
+        0xfad2a4b13d1b5d6c,
+        0x9cc3a6eec6311a64,
+        0xc3f490aa77bd60fd,
+        0xf4f1b4d515acb93c,
+        0x991711052d8bf3c5,
+        0xbf5cd54678eef0b7,
+        0xef340a98172aace5,
+        0x9580869f0e7aac0f,
+        0xbae0a846d2195713,
+        0xe998d258869facd7,
+        0x91ff83775423cc06,
+        0xb67f6455292cbf08,
+        0xe41f3d6a7377eeca,
+        0x8e938662882af53e,
+        0xb23867fb2a35b28e,
+        0xdec681f9f4c31f31,
+        0x8b3c113c38f9f37f,
+        0xae0b158b4738705f,
+        0xd98ddaee19068c76,
+        0x87f8a8d4cfa417ca,
+        0xa9f6d30a038d1dbc,
+        0xd47487cc8470652b,
+        0x84c8d4dfd2c63f3b,
+        0xa5fb0a17c777cf0a,
+        0xcf79cc9db955c2cc,
+        0x81ac1fe293d599c0,
+        0xa21727db38cb0030,
+        0xca9cf1d206fdc03c,
+        0xfd442e4688bd304b,
+        0x9e4a9cec15763e2f,
+        0xc5dd44271ad3cdba,
+        0xf7549530e188c129,
+        0x9a94dd3e8cf578ba,
+        0xc13a148e3032d6e8,
+        0xf18899b1bc3f8ca2,
+        0x96f5600f15a7b7e5,
+        0xbcb2b812db11a5de,
+        0xebdf661791d60f56,
+        0x936b9fcebb25c996,
+        0xb84687c269ef3bfb,
+        0xe65829b3046b0afa,
+        0x8ff71a0fe2c2e6dc,
+        0xb3f4e093db73a093,
+        0xe0f218b8d25088b8,
+        0x8c974f7383725573,
+        0xafbd2350644eead0,
+        0xdbac6c247d62a584,
+        0x894bc396ce5da772,
+        0xab9eb47c81f5114f,
+        0xd686619ba27255a3,
+        0x8613fd0145877586,
+        0xa798fc4196e952e7,
+        0xd17f3b51fca3a7a1,
+        0x82ef85133de648c5,
+        0xa3ab66580d5fdaf6,
+        0xcc963fee10b7d1b3,
+        0xffbbcfe994e5c620,
+        0x9fd561f1fd0f9bd4,
+        0xc7caba6e7c5382c9,
+        0xf9bd690a1b68637b,
+        0x9c1661a651213e2d,
+        0xc31bfa0fe5698db8,
+        0xf3e2f893dec3f126,
+        0x986ddb5c6b3a76b8,
+        0xbe89523386091466,
+        0xee2ba6c0678b597f,
+        0x94db483840b717f0,
+        0xba121a4650e4ddec,
+        0xe896a0d7e51e1566,
+        0x915e2486ef32cd60,
+        0xb5b5ada8aaff80b8,
+        0xe3231912d5bf60e6,
+        0x8df5efabc5979c90,
+        0xb1736b96b6fd83b4,
+        0xddd0467c64bce4a1,
+        0x8aa22c0dbef60ee4,
+        0xad4ab7112eb3929e,
+        0xd89d64d57a607745,
+        0x87625f056c7c4a8b,
+        0xa93af6c6c79b5d2e,
+        0xd389b47879823479,
+        0x843610cb4bf160cc,
+        0xa54394fe1eedb8ff,
+        0xce947a3da6a9273e,
+        0x811ccc668829b887,
+        0xa163ff802a3426a9,
+        0xc9bcff6034c13053,
+        0xfc2c3f3841f17c68,
+        0x9d9ba7832936edc1,
+        0xc5029163f384a931,
+        0xf64335bcf065d37d,
+        0x99ea0196163fa42e,
+        0xc06481fb9bcf8d3a,
+        0xf07da27a82c37088,
+        0x964e858c91ba2655,
+        0xbbe226efb628afeb,
+        0xeadab0aba3b2dbe5,
+        0x92c8ae6b464fc96f,
+        0xb77ada0617e3bbcb,
+        0xe55990879ddcaabe,
+        0x8f57fa54c2a9eab7,
+        0xb32df8e9f3546564,
+        0xdff9772470297ebd,
+        0x8bfbea76c619ef36,
+        0xaefae51477a06b04,
+        0xdab99e59958885c5,
+        0x88b402f7fd75539b,
+        0xaae103b5fcd2a882,
+        0xd59944a37c0752a2,
+        0x857fcae62d8493a5,
+        0xa6dfbd9fb8e5b88f,
+        0xd097ad07a71f26b2,
+        0x825ecc24c8737830,
+        0xa2f67f2dfa90563b,
+        0xcbb41ef979346bca,
+        0xfea126b7d78186bd,
+        0x9f24b832e6b0f436,
+        0xc6ede63fa05d3144,
+        0xf8a95fcf88747d94,
+        0x9b69dbe1b548ce7d,
+        0xc24452da229b021c,
+        0xf2d56790ab41c2a3,
+        0x97c560ba6b0919a6,
+        0xbdb6b8e905cb600f,
+        0xed246723473e3813,
+        0x9436c0760c86e30c,
+        0xb94470938fa89bcf,
+        0xe7958cb87392c2c3,
+        0x90bd77f3483bb9ba,
+        0xb4ecd5f01a4aa828,
+        0xe2280b6c20dd5232,
+        0x8d590723948a535f,
+        0xb0af48ec79ace837,
+        0xdcdb1b2798182245,
+        0x8a08f0f8bf0f156b,
+        0xac8b2d36eed2dac6,
+        0xd7adf884aa879177,
+        0x86ccbb52ea94baeb,
+        0xa87fea27a539e9a5,
+        0xd29fe4b18e88640f,
+        0x83a3eeeef9153e89,
+        0xa48ceaaab75a8e2b,
+        0xcdb02555653131b6,
+        0x808e17555f3ebf12,
+        0xa0b19d2ab70e6ed6,
+        0xc8de047564d20a8c,
+        0xfb158592be068d2f,
+        0x9ced737bb6c4183d,
+        0xc428d05aa4751e4d,
+        0xf53304714d9265e0,
+        0x993fe2c6d07b7fac,
+        0xbf8fdb78849a5f97,
+        0xef73d256a5c0f77d,
+        0x95a8637627989aae,
+        0xbb127c53b17ec159,
+        0xe9d71b689dde71b0,
+        0x9226712162ab070e,
+        0xb6b00d69bb55c8d1,
+        0xe45c10c42a2b3b06,
+        0x8eb98a7a9a5b04e3,
+        0xb267ed1940f1c61c,
+        0xdf01e85f912e37a3,
+        0x8b61313bbabce2c6,
+        0xae397d8aa96c1b78,
+        0xd9c7dced53c72256,
+        0x881cea14545c7575,
+        0xaa242499697392d3,
+        0xd4ad2dbfc3d07788,
+        0x84ec3c97da624ab5,
+        0xa6274bbdd0fadd62,
+        0xcfb11ead453994ba,
+        0x81ceb32c4b43fcf5,
+        0xa2425ff75e14fc32,
+        0xcad2f7f5359a3b3e,
+        0xfd87b5f28300ca0e,
+        0x9e74d1b791e07e48,
+        0xc612062576589ddb,
+        0xf79687aed3eec551,
+        0x9abe14cd44753b53,
+        0xc16d9a0095928a27,
+        0xf1c90080baf72cb1,
+        0x971da05074da7bef,
+        0xbce5086492111aeb,
+        0xec1e4a7db69561a5,
+        0x9392ee8e921d5d07,
+        0xb877aa3236a4b449,
+        0xe69594bec44de15b,
+        0x901d7cf73ab0acd9,
+        0xb424dc35095cd80f,
+        0xe12e13424bb40e13,
+        0x8cbccc096f5088cc,
+        0xafebff0bcb24aaff,
+        0xdbe6fecebdedd5bf,
+        0x89705f4136b4a597,
+        0xabcc77118461cefd,
+        0xd6bf94d5e57a42bc,
+        0x8637bd05af6c69b6,
+        0xa7c5ac471b478423,
+        0xd1b71758e219652c,
+        0x83126e978d4fdf3b,
+        0xa3d70a3d70a3d70a,
+        0xcccccccccccccccd,
+        0x8000000000000000,
+        0xa000000000000000,
+        0xc800000000000000,
+        0xfa00000000000000,
+        0x9c40000000000000,
+        0xc350000000000000,
+        0xf424000000000000,
+        0x9896800000000000,
+        0xbebc200000000000,
+        0xee6b280000000000,
+        0x9502f90000000000,
+        0xba43b74000000000,
+        0xe8d4a51000000000,
+        0x9184e72a00000000,
+        0xb5e620f480000000,
+        0xe35fa931a0000000,
+        0x8e1bc9bf04000000,
+        0xb1a2bc2ec5000000,
+        0xde0b6b3a76400000,
+        0x8ac7230489e80000,
+        0xad78ebc5ac620000,
+        0xd8d726b7177a8000,
+        0x878678326eac9000,
+        0xa968163f0a57b400,
+        0xd3c21bcecceda100,
+        0x84595161401484a0,
+        0xa56fa5b99019a5c8,
+        0xcecb8f27f4200f3a,
+        0x813f3978f8940984,
+        0xa18f07d736b90be5,
+        0xc9f2c9cd04674edf,
+        0xfc6f7c4045812296,
+        0x9dc5ada82b70b59e,
+        0xc5371912364ce305,
+        0xf684df56c3e01bc7,
+        0x9a130b963a6c115c,
+        0xc097ce7bc90715b3,
+        0xf0bdc21abb48db20,
+        0x96769950b50d88f4,
+        0xbc143fa4e250eb31,
+        0xeb194f8e1ae525fd,
+        0x92efd1b8d0cf37be,
+        0xb7abc627050305ae,
+        0xe596b7b0c643c719,
+        0x8f7e32ce7bea5c70,
+        0xb35dbf821ae4f38c,
+        0xe0352f62a19e306f,
+        0x8c213d9da502de45,
+        0xaf298d050e4395d7,
+        0xdaf3f04651d47b4c,
+        0x88d8762bf324cd10,
+        0xab0e93b6efee0054,
+        0xd5d238a4abe98068,
+        0x85a36366eb71f041,
+        0xa70c3c40a64e6c52,
+        0xd0cf4b50cfe20766,
+        0x82818f1281ed44a0,
+        0xa321f2d7226895c8,
+        0xcbea6f8ceb02bb3a,
+        0xfee50b7025c36a08,
+        0x9f4f2726179a2245,
+        0xc722f0ef9d80aad6,
+        0xf8ebad2b84e0d58c,
+        0x9b934c3b330c8577,
+        0xc2781f49ffcfa6d5,
+        0xf316271c7fc3908b,
+        0x97edd871cfda3a57,
+        0xbde94e8e43d0c8ec,
+        0xed63a231d4c4fb27,
+        0x945e455f24fb1cf9,
+        0xb975d6b6ee39e437,
+        0xe7d34c64a9c85d44,
+        0x90e40fbeea1d3a4b,
+        0xb51d13aea4a488dd,
+        0xe264589a4dcdab15,
+        0x8d7eb76070a08aed,
+        0xb0de65388cc8ada8,
+        0xdd15fe86affad912,
+        0x8a2dbf142dfcc7ab,
+        0xacb92ed9397bf996,
+        0xd7e77a8f87daf7fc,
+        0x86f0ac99b4e8dafd,
+        0xa8acd7c0222311bd,
+        0xd2d80db02aabd62c,
+        0x83c7088e1aab65db,
+        0xa4b8cab1a1563f52,
+        0xcde6fd5e09abcf27,
+        0x80b05e5ac60b6178,
+        0xa0dc75f1778e39d6,
+        0xc913936dd571c84c,
+        0xfb5878494ace3a5f,
+        0x9d174b2dcec0e47b,
+        0xc45d1df942711d9a,
+        0xf5746577930d6501,
+        0x9968bf6abbe85f20,
+        0xbfc2ef456ae276e9,
+        0xefb3ab16c59b14a3,
+        0x95d04aee3b80ece6,
+        0xbb445da9ca61281f,
+        0xea1575143cf97227,
+        0x924d692ca61be758,
+        0xb6e0c377cfa2e12e,
+        0xe498f455c38b997a,
+        0x8edf98b59a373fec,
+        0xb2977ee300c50fe7,
+        0xdf3d5e9bc0f653e1,
+        0x8b865b215899f46d,
+        0xae67f1e9aec07188,
+        0xda01ee641a708dea,
+        0x884134fe908658b2,
+        0xaa51823e34a7eedf,
+        0xd4e5e2cdc1d1ea96,
+        0x850fadc09923329e,
+        0xa6539930bf6bff46,
+        0xcfe87f7cef46ff17,
+        0x81f14fae158c5f6e,
+        0xa26da3999aef774a,
+        0xcb090c8001ab551c,
+        0xfdcb4fa002162a63,
+        0x9e9f11c4014dda7e,
+        0xc646d63501a1511e,
+        0xf7d88bc24209a565,
+        0x9ae757596946075f,
+        0xc1a12d2fc3978937,
+        0xf209787bb47d6b85,
+        0x9745eb4d50ce6333,
+        0xbd176620a501fc00,
+        0xec5d3fa8ce427b00,
+        0x93ba47c980e98ce0,
+        0xb8a8d9bbe123f018,
+        0xe6d3102ad96cec1e,
+        0x9043ea1ac7e41393,
+        0xb454e4a179dd1877,
+        0xe16a1dc9d8545e95,
+        0x8ce2529e2734bb1d,
+        0xb01ae745b101e9e4,
+        0xdc21a1171d42645d,
+        0x899504ae72497eba,
+        0xabfa45da0edbde69,
+        0xd6f8d7509292d603,
+        0x865b86925b9bc5c2,
+        0xa7f26836f282b733,
+        0xd1ef0244af2364ff,
+        0x8335616aed761f1f,
+        0xa402b9c5a8d3a6e7,
+        0xcd036837130890a1,
+        0x802221226be55a65,
+        0xa02aa96b06deb0fe,
+        0xc83553c5c8965d3d,
+        0xfa42a8b73abbf48d,
+        0x9c69a97284b578d8,
+        0xc38413cf25e2d70e,
+        0xf46518c2ef5b8cd1,
+        0x98bf2f79d5993803,
+        0xbeeefb584aff8604,
+        0xeeaaba2e5dbf6785,
+        0x952ab45cfa97a0b3,
+        0xba756174393d88e0,
+        0xe912b9d1478ceb17,
+        0x91abb422ccb812ef,
+        0xb616a12b7fe617aa,
+        0xe39c49765fdf9d95,
+        0x8e41ade9fbebc27d,
+        0xb1d219647ae6b31c,
+        0xde469fbd99a05fe3,
+        0x8aec23d680043bee,
+        0xada72ccc20054aea,
+        0xd910f7ff28069da4,
+        0x87aa9aff79042287,
+        0xa99541bf57452b28,
+        0xd3fa922f2d1675f2,
+        0x847c9b5d7c2e09b7,
+        0xa59bc234db398c25,
+        0xcf02b2c21207ef2f,
+        0x8161afb94b44f57d,
+        0xa1ba1ba79e1632dc,
+        0xca28a291859bbf93,
+        0xfcb2cb35e702af78,
+        0x9defbf01b061adab,
+        0xc56baec21c7a1916,
+        0xf6c69a72a3989f5c,
+        0x9a3c2087a63f6399,
+        0xc0cb28a98fcf3c80,
+        0xf0fdf2d3f3c30b9f,
+        0x969eb7c47859e744,
+        0xbc4665b596706115,
+        0xeb57ff22fc0c795a,
+        0x9316ff75dd87cbd8,
+        0xb7dcbf5354e9bece,
+        0xe5d3ef282a242e82,
+        0x8fa475791a569d11,
+        0xb38d92d760ec4455,
+        0xe070f78d3927556b,
+        0x8c469ab843b89563,
+        0xaf58416654a6babb,
+        0xdb2e51bfe9d0696a,
+        0x88fcf317f22241e2,
+        0xab3c2fddeeaad25b,
+        0xd60b3bd56a5586f2,
+        0x85c7056562757457,
+        0xa738c6bebb12d16d,
+        0xd106f86e69d785c8,
+        0x82a45b450226b39d,
+        0xa34d721642b06084,
+        0xcc20ce9bd35c78a5,
+        0xff290242c83396ce,
+        0x9f79a169bd203e41,
+        0xc75809c42c684dd1,
+        0xf92e0c3537826146,
+        0x9bbcc7a142b17ccc,
+        0xc2abf989935ddbfe,
+        0xf356f7ebf83552fe,
+        0x98165af37b2153df,
+        0xbe1bf1b059e9a8d6,
+        0xeda2ee1c7064130c,
+        0x9485d4d1c63e8be8,
+        0xb9a74a0637ce2ee1,
+        0xe8111c87c5c1ba9a,
+        0x910ab1d4db9914a0,
+        0xb54d5e4a127f59c8,
+        0xe2a0b5dc971f303a,
+        0x8da471a9de737e24,
+        0xb10d8e1456105dad,
+        0xdd50f1996b947519,
+        0x8a5296ffe33cc930,
+        0xace73cbfdc0bfb7b,
+        0xd8210befd30efa5a,
+        0x8714a775e3e95c78,
+        0xa8d9d1535ce3b396,
+        0xd31045a8341ca07c,
+        0x83ea2b892091e44e,
+        0xa4e4b66b68b65d61,
+        0xce1de40642e3f4b9,
+        0x80d2ae83e9ce78f4,
+        0xa1075a24e4421731,
+        0xc94930ae1d529cfd,
+        0xfb9b7cd9a4a7443c,
+        0x9d412e0806e88aa6,
+        0xc491798a08a2ad4f,
+        0xf5b5d7ec8acb58a3,
+        0x9991a6f3d6bf1766,
+        0xbff610b0cc6edd3f,
+        0xeff394dcff8a948f,
+        0x95f83d0a1fb69cd9,
+        0xbb764c4ca7a44410,
+        0xea53df5fd18d5514,
+        0x92746b9be2f8552c,
+        0xb7118682dbb66a77,
+        0xe4d5e82392a40515,
+        0x8f05b1163ba6832d,
+        0xb2c71d5bca9023f8,
+        0xdf78e4b2bd342cf7,
+        0x8bab8eefb6409c1a,
+        0xae9672aba3d0c321,
+        0xda3c0f568cc4f3e9,
+        0x8865899617fb1871,
+        0xaa7eebfb9df9de8e,
+        0xd51ea6fa85785631,
+        0x8533285c936b35df,
+        0xa67ff273b8460357,
+        0xd01fef10a657842c,
+        0x8213f56a67f6b29c,
+        0xa298f2c501f45f43,
+        0xcb3f2f7642717713,
+        0xfe0efb53d30dd4d8,
+        0x9ec95d1463e8a507,
+        0xc67bb4597ce2ce49,
+        0xf81aa16fdc1b81db,
+        0x9b10a4e5e9913129,
+        0xc1d4ce1f63f57d73,
+        0xf24a01a73cf2dcd0,
+        0x976e41088617ca02,
+        0xbd49d14aa79dbc82,
+        0xec9c459d51852ba3,
+        0x93e1ab8252f33b46,
+        0xb8da1662e7b00a17,
+        0xe7109bfba19c0c9d,
+        0x906a617d450187e2,
+        0xb484f9dc9641e9db,
+        0xe1a63853bbd26451,
+        0x8d07e33455637eb3,
+        0xb049dc016abc5e60,
+        0xdc5c5301c56b75f7,
+        0x89b9b3e11b6329bb,
+        0xac2820d9623bf429,
+        0xd732290fbacaf134,
+        0x867f59a9d4bed6c0,
+        0xa81f301449ee8c70,
+        0xd226fc195c6a2f8c,
+        0x83585d8fd9c25db8,
+        0xa42e74f3d032f526,
+        0xcd3a1230c43fb26f,
+        0x80444b5e7aa7cf85,
+        0xa0555e361951c367,
+        0xc86ab5c39fa63441,
+        0xfa856334878fc151,
+        0x9c935e00d4b9d8d2,
+        0xc3b8358109e84f07,
+        0xf4a642e14c6262c9,
+        0x98e7e9cccfbd7dbe,
+        0xbf21e44003acdd2d,
+        0xeeea5d5004981478,
+        0x95527a5202df0ccb,
+        0xbaa718e68396cffe,
+        0xe950df20247c83fd,
+        0x91d28b7416cdd27e,
+    ],
+    [
+        -1077,
+        -1073,
+        -1070,
+        -1067,
+        -1063,
+        -1060,
+        -1057,
+        -1053,
+        -1050,
+        -1047,
+        -1043,
+        -1040,
+        -1037,
+        -1034,
+        -1030,
+        -1027,
+        -1024,
+        -1020,
+        -1017,
+        -1014,
+        -1010,
+        -1007,
+        -1004,
+        -1000,
+        -997,
+        -994,
+        -990,
+        -987,
+        -984,
+        -980,
+        -977,
+        -974,
+        -970,
+        -967,
+        -964,
+        -960,
+        -957,
+        -954,
+        -950,
+        -947,
+        -944,
+        -940,
+        -937,
+        -934,
+        -931,
+        -927,
+        -924,
+        -921,
+        -917,
+        -914,
+        -911,
+        -907,
+        -904,
+        -901,
+        -897,
+        -894,
+        -891,
+        -887,
+        -884,
+        -881,
+        -877,
+        -874,
+        -871,
+        -867,
+        -864,
+        -861,
+        -857,
+        -854,
+        -851,
+        -847,
+        -844,
+        -841,
+        -838,
+        -834,
+        -831,
+        -828,
+        -824,
+        -821,
+        -818,
+        -814,
+        -811,
+        -808,
+        -804,
+        -801,
+        -798,
+        -794,
+        -791,
+        -788,
+        -784,
+        -781,
+        -778,
+        -774,
+        -771,
+        -768,
+        -764,
+        -761,
+        -758,
+        -754,
+        -751,
+        -748,
+        -744,
+        -741,
+        -738,
+        -735,
+        -731,
+        -728,
+        -725,
+        -721,
+        -718,
+        -715,
+        -711,
+        -708,
+        -705,
+        -701,
+        -698,
+        -695,
+        -691,
+        -688,
+        -685,
+        -681,
+        -678,
+        -675,
+        -671,
+        -668,
+        -665,
+        -661,
+        -658,
+        -655,
+        -651,
+        -648,
+        -645,
+        -642,
+        -638,
+        -635,
+        -632,
+        -628,
+        -625,
+        -622,
+        -618,
+        -615,
+        -612,
+        -608,
+        -605,
+        -602,
+        -598,
+        -595,
+        -592,
+        -588,
+        -585,
+        -582,
+        -578,
+        -575,
+        -572,
+        -568,
+        -565,
+        -562,
+        -558,
+        -555,
+        -552,
+        -549,
+        -545,
+        -542,
+        -539,
+        -535,
+        -532,
+        -529,
+        -525,
+        -522,
+        -519,
+        -515,
+        -512,
+        -509,
+        -505,
+        -502,
+        -499,
+        -495,
+        -492,
+        -489,
+        -485,
+        -482,
+        -479,
+        -475,
+        -472,
+        -469,
+        -465,
+        -462,
+        -459,
+        -455,
+        -452,
+        -449,
+        -446,
+        -442,
+        -439,
+        -436,
+        -432,
+        -429,
+        -426,
+        -422,
+        -419,
+        -416,
+        -412,
+        -409,
+        -406,
+        -402,
+        -399,
+        -396,
+        -392,
+        -389,
+        -386,
+        -382,
+        -379,
+        -376,
+        -372,
+        -369,
+        -366,
+        -362,
+        -359,
+        -356,
+        -353,
+        -349,
+        -346,
+        -343,
+        -339,
+        -336,
+        -333,
+        -329,
+        -326,
+        -323,
+        -319,
+        -316,
+        -313,
+        -309,
+        -306,
+        -303,
+        -299,
+        -296,
+        -293,
+        -289,
+        -286,
+        -283,
+        -279,
+        -276,
+        -273,
+        -269,
+        -266,
+        -263,
+        -259,
+        -256,
+        -253,
+        -250,
+        -246,
+        -243,
+        -240,
+        -236,
+        -233,
+        -230,
+        -226,
+        -223,
+        -220,
+        -216,
+        -213,
+        -210,
+        -206,
+        -203,
+        -200,
+        -196,
+        -193,
+        -190,
+        -186,
+        -183,
+        -180,
+        -176,
+        -173,
+        -170,
+        -166,
+        -163,
+        -160,
+        -157,
+        -153,
+        -150,
+        -147,
+        -143,
+        -140,
+        -137,
+        -133,
+        -130,
+        -127,
+        -123,
+        -120,
+        -117,
+        -113,
+        -110,
+        -107,
+        -103,
+        -100,
+        -97,
+        -93,
+        -90,
+        -87,
+        -83,
+        -80,
+        -77,
+        -73,
+        -70,
+        -67,
+        -63,
+        -60,
+        -57,
+        -54,
+        -50,
+        -47,
+        -44,
+        -40,
+        -37,
+        -34,
+        -30,
+        -27,
+        -24,
+        -20,
+        -17,
+        -14,
+        -10,
+        -7,
+        -4,
+        0,
+        3,
+        6,
+        10,
+        13,
+        16,
+        20,
+        23,
+        26,
+        30,
+        33,
+        36,
+        39,
+        43,
+        46,
+        49,
+        53,
+        56,
+        59,
+        63,
+        66,
+        69,
+        73,
+        76,
+        79,
+        83,
+        86,
+        89,
+        93,
+        96,
+        99,
+        103,
+        106,
+        109,
+        113,
+        116,
+        119,
+        123,
+        126,
+        129,
+        132,
+        136,
+        139,
+        142,
+        146,
+        149,
+        152,
+        156,
+        159,
+        162,
+        166,
+        169,
+        172,
+        176,
+        179,
+        182,
+        186,
+        189,
+        192,
+        196,
+        199,
+        202,
+        206,
+        209,
+        212,
+        216,
+        219,
+        222,
+        226,
+        229,
+        232,
+        235,
+        239,
+        242,
+        245,
+        249,
+        252,
+        255,
+        259,
+        262,
+        265,
+        269,
+        272,
+        275,
+        279,
+        282,
+        285,
+        289,
+        292,
+        295,
+        299,
+        302,
+        305,
+        309,
+        312,
+        315,
+        319,
+        322,
+        325,
+        328,
+        332,
+        335,
+        338,
+        342,
+        345,
+        348,
+        352,
+        355,
+        358,
+        362,
+        365,
+        368,
+        372,
+        375,
+        378,
+        382,
+        385,
+        388,
+        392,
+        395,
+        398,
+        402,
+        405,
+        408,
+        412,
+        415,
+        418,
+        422,
+        425,
+        428,
+        431,
+        435,
+        438,
+        441,
+        445,
+        448,
+        451,
+        455,
+        458,
+        461,
+        465,
+        468,
+        471,
+        475,
+        478,
+        481,
+        485,
+        488,
+        491,
+        495,
+        498,
+        501,
+        505,
+        508,
+        511,
+        515,
+        518,
+        521,
+        524,
+        528,
+        531,
+        534,
+        538,
+        541,
+        544,
+        548,
+        551,
+        554,
+        558,
+        561,
+        564,
+        568,
+        571,
+        574,
+        578,
+        581,
+        584,
+        588,
+        591,
+        594,
+        598,
+        601,
+        604,
+        608,
+        611,
+        614,
+        617,
+        621,
+        624,
+        627,
+        631,
+        634,
+        637,
+        641,
+        644,
+        647,
+        651,
+        654,
+        657,
+        661,
+        664,
+        667,
+        671,
+        674,
+        677,
+        681,
+        684,
+        687,
+        691,
+        694,
+        697,
+        701,
+        704,
+        707,
+        711,
+        714,
+        717,
+        720,
+        724,
+        727,
+        730,
+        734,
+        737,
+        740,
+        744,
+        747,
+        750,
+        754,
+        757,
+        760,
+        764,
+        767,
+        770,
+        774,
+        777,
+        780,
+        784,
+        787,
+        790,
+        794,
+        797,
+        800,
+        804,
+        807,
+        810,
+        813,
+        817,
+        820,
+        823,
+        827,
+        830,
+        833,
+        837,
+        840,
+        843,
+        847,
+        850,
+        853,
+        857,
+        860,
+        863,
+        867,
+        870,
+        873,
+        877,
+        880,
+        883,
+        887,
+        890,
+        893,
+        897,
+        900,
+        903,
+        907,
+        910,
+        913,
+        916,
+        920,
+        923,
+        926,
+        930,
+        933,
+        936,
+        940,
+        943,
+        946,
+        950,
+    ],
+);
 
+#[rustfmt::skip]
 pub const F32_SHORT_POWERS: [f32; 11] = [
     1e0,
     1e1,
@@ -1244,6 +1249,7 @@ pub const F32_SHORT_POWERS: [f32; 11] = [
     1e10,
 ];
 
+#[rustfmt::skip]
 pub const F64_SHORT_POWERS: [f64; 23] = [
     1e0,
     1e1,

From f4cff277925d61c15e64cc2a05b37a3446a3a411 Mon Sep 17 00:00:00 2001
From: David Tolnay <dtolnay@gmail.com>
Date: Fri, 29 Nov 2019 19:44:55 -0800
Subject: [PATCH 2/3] Make libcore/unicode/printable.rs compatible with rustfmt

---
 src/libcore/unicode/printable.py | 6 ++++--
 src/libcore/unicode/printable.rs | 9 +++++++--
 2 files changed, 11 insertions(+), 4 deletions(-)
 mode change 100644 => 100755 src/libcore/unicode/printable.py

diff --git a/src/libcore/unicode/printable.py b/src/libcore/unicode/printable.py
old mode 100644
new mode 100755
index 4e8b4ecad020..91db6381c9b6
--- a/src/libcore/unicode/printable.py
+++ b/src/libcore/unicode/printable.py
@@ -111,16 +111,19 @@ def compress_normal(normal):
     return compressed
 
 def print_singletons(uppers, lowers, uppersname, lowersname):
+    print("#[rustfmt::skip]")
     print("const {}: &[(u8, u8)] = &[".format(uppersname))
     for u, c in uppers:
         print("    ({:#04x}, {}),".format(u, c))
     print("];")
+    print("#[rustfmt::skip]")
     print("const {}: &[u8] = &[".format(lowersname))
     for i in range(0, len(lowers), 8):
         print("    {}".format(" ".join("{:#04x},".format(l) for l in lowers[i:i+8])))
     print("];")
 
 def print_normal(normal, normalname):
+    print("#[rustfmt::skip]")
     print("const {}: &[u8] = &[".format(normalname))
     for v in normal:
         print("    {}".format(" ".join("{:#04x},".format(i) for i in v)))
@@ -170,8 +173,7 @@ def main():
 // NOTE: The following code was generated by "src/libcore/unicode/printable.py",
 //       do not edit directly!
 
-fn check(x: u16, singletonuppers: &[(u8, u8)], singletonlowers: &[u8],
-         normal: &[u8]) -> bool {
+fn check(x: u16, singletonuppers: &[(u8, u8)], singletonlowers: &[u8], normal: &[u8]) -> bool {
     let xupper = (x >> 8) as u8;
     let mut lowerstart = 0;
     for &(upper, lowercount) in singletonuppers {
diff --git a/src/libcore/unicode/printable.rs b/src/libcore/unicode/printable.rs
index d411dda7dc18..eee9ea52ef0d 100644
--- a/src/libcore/unicode/printable.rs
+++ b/src/libcore/unicode/printable.rs
@@ -1,8 +1,7 @@
 // NOTE: The following code was generated by "src/libcore/unicode/printable.py",
 //       do not edit directly!
 
-fn check(x: u16, singletonuppers: &[(u8, u8)], singletonlowers: &[u8],
-         normal: &[u8]) -> bool {
+fn check(x: u16, singletonuppers: &[(u8, u8)], singletonlowers: &[u8], normal: &[u8]) -> bool {
     let xupper = (x >> 8) as u8;
     let mut lowerstart = 0;
     for &(upper, lowercount) in singletonuppers {
@@ -70,6 +69,7 @@ pub(crate) fn is_printable(x: char) -> bool {
     }
 }
 
+#[rustfmt::skip]
 const SINGLETONS0U: &[(u8, u8)] = &[
     (0x00, 1),
     (0x03, 5),
@@ -113,6 +113,7 @@ const SINGLETONS0U: &[(u8, u8)] = &[
     (0xfe, 3),
     (0xff, 9),
 ];
+#[rustfmt::skip]
 const SINGLETONS0L: &[u8] = &[
     0xad, 0x78, 0x79, 0x8b, 0x8d, 0xa2, 0x30, 0x57,
     0x58, 0x8b, 0x8c, 0x90, 0x1c, 0x1d, 0xdd, 0x0e,
@@ -152,6 +153,7 @@ const SINGLETONS0L: &[u8] = &[
     0xff, 0x53, 0x67, 0x75, 0xc8, 0xc9, 0xd0, 0xd1,
     0xd8, 0xd9, 0xe7, 0xfe, 0xff,
 ];
+#[rustfmt::skip]
 const SINGLETONS1U: &[(u8, u8)] = &[
     (0x00, 6),
     (0x01, 1),
@@ -189,6 +191,7 @@ const SINGLETONS1U: &[(u8, u8)] = &[
     (0xf9, 6),
     (0xfa, 2),
 ];
+#[rustfmt::skip]
 const SINGLETONS1L: &[u8] = &[
     0x0c, 0x27, 0x3b, 0x3e, 0x4e, 0x4f, 0x8f, 0x9e,
     0x9e, 0x9f, 0x06, 0x07, 0x09, 0x36, 0x3d, 0x3e,
@@ -212,6 +215,7 @@ const SINGLETONS1L: &[u8] = &[
     0xa4, 0xaa, 0xaf, 0xb0, 0xc0, 0xd0, 0x0c, 0x72,
     0xa3, 0xa4, 0xcb, 0xcc, 0x6e, 0x6f,
 ];
+#[rustfmt::skip]
 const NORMAL0: &[u8] = &[
     0x00, 0x20,
     0x5f, 0x22,
@@ -355,6 +359,7 @@ const NORMAL0: &[u8] = &[
     0x1b, 0x03,
     0x0f, 0x0d,
 ];
+#[rustfmt::skip]
 const NORMAL1: &[u8] = &[
     0x5e, 0x22,
     0x7b, 0x05,

From 28eb31f8dcfa495e2d0090a7e649d90a2cbef237 Mon Sep 17 00:00:00 2001
From: David Tolnay <dtolnay@gmail.com>
Date: Fri, 29 Nov 2019 19:50:24 -0800
Subject: [PATCH 3/3] Make libcore/unicode/tables.rs compatible with rustfmt

---
 src/libcore/unicode/tables.rs  | 29 +++++++++++++++------------
 src/libcore/unicode/unicode.py | 36 +++++++++++++++++++---------------
 2 files changed, 36 insertions(+), 29 deletions(-)

diff --git a/src/libcore/unicode/tables.rs b/src/libcore/unicode/tables.rs
index 5b5be4854312..3fa125e8fea1 100644
--- a/src/libcore/unicode/tables.rs
+++ b/src/libcore/unicode/tables.rs
@@ -2,19 +2,16 @@
 
 #![allow(missing_docs, non_upper_case_globals, non_snake_case, clippy::unreadable_literal)]
 
-use crate::unicode::version::UnicodeVersion;
 use crate::unicode::bool_trie::{BoolTrie, SmallBoolTrie};
+use crate::unicode::version::UnicodeVersion;
 
 /// The version of [Unicode](http://www.unicode.org/) that the Unicode parts of
 /// `char` and `str` methods are based on.
 #[unstable(feature = "unicode_version", issue = "49726")]
-pub const UNICODE_VERSION: UnicodeVersion = UnicodeVersion {
-    major: 12,
-    minor: 1,
-    micro: 0,
-    _priv: (),
-};
+pub const UNICODE_VERSION: UnicodeVersion =
+    UnicodeVersion { major: 12, minor: 1, micro: 0, _priv: () };
 pub(crate) mod general_category {
+    #[rustfmt::skip]
     const Cc_table: &super::SmallBoolTrie = &super::SmallBoolTrie {
         r1: &[
             0, 1, 0
@@ -28,6 +25,7 @@ pub(crate) mod general_category {
         Cc_table.lookup(c)
     }
 
+    #[rustfmt::skip]
     const N_table: &super::BoolTrie = &super::BoolTrie {
         r1: [
             0x03ff000000000000, 0x0000000000000000, 0x720c000000000000, 0x0000000000000000,
@@ -138,10 +136,10 @@ pub(crate) mod general_category {
     pub fn N(c: char) -> bool {
         N_table.lookup(c)
     }
-
 }
 
 pub(crate) mod derived_property {
+    #[rustfmt::skip]
     const Alphabetic_table: &super::BoolTrie = &super::BoolTrie {
         r1: [
             0x0000000000000000, 0x07fffffe07fffffe, 0x0420040000000000, 0xff7fffffff7fffff,
@@ -327,6 +325,7 @@ pub(crate) mod derived_property {
         Alphabetic_table.lookup(c)
     }
 
+    #[rustfmt::skip]
     const Case_Ignorable_table: &super::BoolTrie = &super::BoolTrie {
         r1: [
             0x0400408000000000, 0x0000000140000000, 0x0190a10000000000, 0x0000000000000000,
@@ -464,6 +463,7 @@ pub(crate) mod derived_property {
         Case_Ignorable_table.lookup(c)
     }
 
+    #[rustfmt::skip]
     const Cased_table: &super::BoolTrie = &super::BoolTrie {
         r1: [
             0x0000000000000000, 0x07fffffe07fffffe, 0x0420040000000000, 0xff7fffffff7fffff,
@@ -565,6 +565,7 @@ pub(crate) mod derived_property {
         Cased_table.lookup(c)
     }
 
+    #[rustfmt::skip]
     const Grapheme_Extend_table: &super::BoolTrie = &super::BoolTrie {
         r1: [
             0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
@@ -689,6 +690,7 @@ pub(crate) mod derived_property {
         Grapheme_Extend_table.lookup(c)
     }
 
+    #[rustfmt::skip]
     const Lowercase_table: &super::BoolTrie = &super::BoolTrie {
         r1: [
             0x0000000000000000, 0x07fffffe00000000, 0x0420040000000000, 0xff7fffff80000000,
@@ -789,6 +791,7 @@ pub(crate) mod derived_property {
         Lowercase_table.lookup(c)
     }
 
+    #[rustfmt::skip]
     const Uppercase_table: &super::BoolTrie = &super::BoolTrie {
         r1: [
             0x0000000000000000, 0x0000000007fffffe, 0x0000000000000000, 0x000000007f7fffff,
@@ -889,10 +892,10 @@ pub(crate) mod derived_property {
     pub fn Uppercase(c: char) -> bool {
         Uppercase_table.lookup(c)
     }
-
 }
 
 pub(crate) mod property {
+    #[rustfmt::skip]
     const White_Space_table: &super::SmallBoolTrie = &super::SmallBoolTrie {
         r1: &[
             0, 1, 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,
@@ -912,20 +915,19 @@ pub(crate) mod property {
     pub fn White_Space(c: char) -> bool {
         White_Space_table.lookup(c)
     }
-
 }
 
 pub(crate) mod conversions {
     pub fn to_lower(c: char) -> [char; 3] {
         match bsearch_case_table(c, to_lowercase_table) {
-            None        => [c, '\0', '\0'],
+            None => [c, '\0', '\0'],
             Some(index) => to_lowercase_table[index].1,
         }
     }
 
     pub fn to_upper(c: char) -> [char; 3] {
         match bsearch_case_table(c, to_uppercase_table) {
-            None        => [c, '\0', '\0'],
+            None => [c, '\0', '\0'],
             Some(index) => to_uppercase_table[index].1,
         }
     }
@@ -934,6 +936,7 @@ pub(crate) mod conversions {
         table.binary_search_by(|&(key, _)| key.cmp(&c)).ok()
     }
 
+    #[rustfmt::skip]
     const to_lowercase_table: &[(char, [char; 3])] = &[
         ('\u{41}', ['\u{61}', '\0', '\0']), ('\u{42}', ['\u{62}', '\0', '\0']), ('\u{43}',
         ['\u{63}', '\0', '\0']), ('\u{44}', ['\u{64}', '\0', '\0']), ('\u{45}', ['\u{65}', '\0',
@@ -1558,6 +1561,7 @@ pub(crate) mod conversions {
         ('\u{1e920}', ['\u{1e942}', '\0', '\0']), ('\u{1e921}', ['\u{1e943}', '\0', '\0'])
     ];
 
+    #[rustfmt::skip]
     const to_uppercase_table: &[(char, [char; 3])] = &[
         ('\u{61}', ['\u{41}', '\0', '\0']), ('\u{62}', ['\u{42}', '\0', '\0']), ('\u{63}',
         ['\u{43}', '\0', '\0']), ('\u{64}', ['\u{44}', '\0', '\0']), ('\u{65}', ['\u{45}', '\0',
@@ -2228,5 +2232,4 @@ pub(crate) mod conversions {
         ('\u{1e940}', ['\u{1e91e}', '\0', '\0']), ('\u{1e941}', ['\u{1e91f}', '\0', '\0']),
         ('\u{1e942}', ['\u{1e920}', '\0', '\0']), ('\u{1e943}', ['\u{1e921}', '\0', '\0'])
     ];
-
 }
diff --git a/src/libcore/unicode/unicode.py b/src/libcore/unicode/unicode.py
index 89894f7932d7..97df92a56da6 100755
--- a/src/libcore/unicode/unicode.py
+++ b/src/libcore/unicode/unicode.py
@@ -81,8 +81,8 @@ class UnicodeFiles(object):
 
 #![allow(missing_docs, non_upper_case_globals, non_snake_case, clippy::unreadable_literal)]
 
-use crate::unicode::version::UnicodeVersion;
 use crate::unicode::bool_trie::{{BoolTrie, SmallBoolTrie}};
+use crate::unicode::version::UnicodeVersion;
 """.format(year=datetime.datetime.now().year)
 
 # Mapping taken from Table 12 from:
@@ -555,6 +555,8 @@ def generate_table(
     if is_pub:
         pub_string = "pub "
 
+    yield "\n"
+    yield "    #[rustfmt::skip]\n"
     yield "    %sconst %s: %s = &[\n" % (pub_string, name, decl_type)
 
     data = []
@@ -568,7 +570,7 @@ def generate_table(
     for table_line in generate_table_lines("".join(data).split(","), 8):
         yield table_line
 
-    yield "\n    ];\n\n"
+    yield "\n    ];\n"
 
 
 def compute_trie(raw_data, chunk_size):
@@ -634,6 +636,9 @@ def generate_bool_trie(name, codepoint_ranges, is_pub=False):
     pub_string = ""
     if is_pub:
         pub_string = "pub "
+
+    yield "\n"
+    yield "    #[rustfmt::skip]\n"
     yield "    %sconst %s: &super::BoolTrie = &super::BoolTrie {\n" % (pub_string, name)
     yield "        r1: [\n"
     data = ("0x%016x" % chunk for chunk in chunks[:0x800 // chunk_size])
@@ -678,7 +683,7 @@ def generate_bool_trie(name, codepoint_ranges, is_pub=False):
         yield fragment
     yield "\n        ],\n"
 
-    yield "    };\n\n"
+    yield "    };\n"
 
 
 def generate_small_bool_trie(name, codepoint_ranges, is_pub=False):
@@ -700,6 +705,8 @@ def generate_small_bool_trie(name, codepoint_ranges, is_pub=False):
     if is_pub:
         pub_string = "pub "
 
+    yield "\n"
+    yield "    #[rustfmt::skip]\n"
     yield ("    %sconst %s: &super::SmallBoolTrie = &super::SmallBoolTrie {\n"
            % (pub_string, name))
 
@@ -717,7 +724,7 @@ def generate_small_bool_trie(name, codepoint_ranges, is_pub=False):
         yield fragment
     yield "\n        ],\n"
 
-    yield "    };\n\n"
+    yield "    };\n"
 
 
 def generate_property_module(mod, grouped_categories, category_subset):
@@ -726,7 +733,7 @@ def generate_property_module(mod, grouped_categories, category_subset):
     Generate Rust code for module defining properties.
     """
 
-    yield "pub(crate) mod %s {\n" % mod
+    yield "pub(crate) mod %s {" % mod
     for cat in sorted(category_subset):
         if cat in ("Cc", "White_Space"):
             generator = generate_small_bool_trie("%s_table" % cat, grouped_categories[cat])
@@ -736,9 +743,10 @@ def generate_property_module(mod, grouped_categories, category_subset):
         for fragment in generator:
             yield fragment
 
+        yield "\n"
         yield "    pub fn %s(c: char) -> bool {\n" % cat
         yield "        %s_table.lookup(c)\n" % cat
-        yield "    }\n\n"
+        yield "    }\n"
 
     yield "}\n\n"
 
@@ -753,21 +761,21 @@ def generate_conversions_module(unicode_data):
     yield """
     pub fn to_lower(c: char) -> [char; 3] {
         match bsearch_case_table(c, to_lowercase_table) {
-            None        => [c, '\\0', '\\0'],
+            None => [c, '\\0', '\\0'],
             Some(index) => to_lowercase_table[index].1,
         }
     }
 
     pub fn to_upper(c: char) -> [char; 3] {
         match bsearch_case_table(c, to_uppercase_table) {
-            None        => [c, '\\0', '\\0'],
+            None => [c, '\\0', '\\0'],
             Some(index) => to_uppercase_table[index].1,
         }
     }
 
     fn bsearch_case_table(c: char, table: &[(char, [char; 3])]) -> Option<usize> {
         table.binary_search_by(|&(key, _)| key.cmp(&c)).ok()
-    }\n\n"""
+    }\n"""
 
     decl_type = "&[(char, [char; 3])]"
     format_conversion = lambda x: "({},[{},{},{}])".format(*(
@@ -827,13 +835,9 @@ def main():
     /// The version of [Unicode](http://www.unicode.org/) that the Unicode parts of
     /// `char` and `str` methods are based on.
     #[unstable(feature = "unicode_version", issue = "49726")]
-    pub const UNICODE_VERSION: UnicodeVersion = UnicodeVersion {{
-        major: {version.major},
-        minor: {version.minor},
-        micro: {version.micro},
-        _priv: (),
-    }};
-    """).format(version=unicode_version)
+    pub const UNICODE_VERSION: UnicodeVersion =
+        UnicodeVersion {{ major: {v.major}, minor: {v.minor}, micro: {v.micro}, _priv: () }};
+    """).format(v=unicode_version)
     buf.write(unicode_version_notice)
 
     get_path = lambda f: get_unicode_file_path(unicode_version, f)