import java.math.BigInteger; public class MoveConstants { //#region public static final BigInteger[] KNIGHT_ATTACKS = { new BigInteger("132096"), new BigInteger("329728"), new BigInteger("659712"), new BigInteger("1319424"), new BigInteger("2638848"), new BigInteger("5277696"), new BigInteger("10489856"), new BigInteger("4202496"), new BigInteger("33816580"), new BigInteger("84410376"), new BigInteger("168886289"), new BigInteger("337772578"), new BigInteger("675545156"), new BigInteger("1351090312"), new BigInteger("2685403152"), new BigInteger("1075839008"), new BigInteger("8657044482"), new BigInteger("21609056261"), new BigInteger("43234889994"), new BigInteger("86469779988"), new BigInteger("172939559976"), new BigInteger("345879119952"), new BigInteger("687463207072"), new BigInteger("275414786112"), new BigInteger("2216203387392"), new BigInteger("5531918402816"), new BigInteger("11068131838464"), new BigInteger("22136263676928"), new BigInteger("44272527353856"), new BigInteger("88545054707712"), new BigInteger("175990581010432"), new BigInteger("70506185244672"), new BigInteger("567348067172352"), new BigInteger("1416171111120896"), new BigInteger("2833441750646784"), new BigInteger("5666883501293568"), new BigInteger("11333767002587136"), new BigInteger("22667534005174272"), new BigInteger("45053588738670592"), new BigInteger("18049583422636032"), new BigInteger("145241105196122112"), new BigInteger("362539804446949376"), new BigInteger("725361088165576704"), new BigInteger("1450722176331153408"), new BigInteger("2901444352662306816"), new BigInteger("5802888705324613632"), new BigInteger("11533718717099671552"), new BigInteger("4620693356194824192"), new BigInteger("288234782788157440"), new BigInteger("576469569871282176"), new BigInteger("1224997833292120064"), new BigInteger("2449995666584240128"), new BigInteger("4899991333168480256"), new BigInteger("9799982666336960512"), new BigInteger("1152939783987658752"), new BigInteger("2305878468463689728"), new BigInteger("1128098930098176"), new BigInteger("2257297371824128"), new BigInteger("4796069720358912"), new BigInteger("9592139440717824"), new BigInteger("19184278881435648"), new BigInteger("38368557762871296"), new BigInteger("4679521487814656"), new BigInteger("9077567998918656"), }; public static final BigInteger[][] BISHOP_ATTACKS = { { new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("1"), new BigInteger("2"), new BigInteger("4"), new BigInteger("8"), new BigInteger("16"), new BigInteger("32"), new BigInteger("64"), new BigInteger("0"), new BigInteger("256"), new BigInteger("513"), new BigInteger("1026"), new BigInteger("2052"), new BigInteger("4104"), new BigInteger("8208"), new BigInteger("16416"), new BigInteger("0"), new BigInteger("65536"), new BigInteger("131328"), new BigInteger("262657"), new BigInteger("525314"), new BigInteger("1050628"), new BigInteger("2101256"), new BigInteger("4202512"), new BigInteger("0"), new BigInteger("16777216"), new BigInteger("33619968"), new BigInteger("67240192"), new BigInteger("134480385"), new BigInteger("268960770"), new BigInteger("537921540"), new BigInteger("1075843080"), new BigInteger("0"), new BigInteger("4294967296"), new BigInteger("8606711808"), new BigInteger("17213489152"), new BigInteger("34426978560"), new BigInteger("68853957121"), new BigInteger("137707914242"), new BigInteger("275415828484"), new BigInteger("0"), new BigInteger("1099511627776"), new BigInteger("2203318222848"), new BigInteger("4406653222912"), new BigInteger("8813306511360"), new BigInteger("17626613022976"), new BigInteger("35253226045953"), new BigInteger("70506452091906"), new BigInteger("0"), new BigInteger("281474976710656"), new BigInteger("564049465049088"), new BigInteger("1128103225065472"), new BigInteger("2256206466908160"), new BigInteger("4512412933881856"), new BigInteger("9024825867763968"), new BigInteger("18049651735527937"), }, { new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("2"), new BigInteger("4"), new BigInteger("8"), new BigInteger("16"), new BigInteger("32"), new BigInteger("64"), new BigInteger("128"), new BigInteger("0"), new BigInteger("516"), new BigInteger("1032"), new BigInteger("2064"), new BigInteger("4128"), new BigInteger("8256"), new BigInteger("16512"), new BigInteger("32768"), new BigInteger("0"), new BigInteger("132104"), new BigInteger("264208"), new BigInteger("528416"), new BigInteger("1056832"), new BigInteger("2113664"), new BigInteger("4227072"), new BigInteger("8388608"), new BigInteger("0"), new BigInteger("33818640"), new BigInteger("67637280"), new BigInteger("135274560"), new BigInteger("270549120"), new BigInteger("541097984"), new BigInteger("1082130432"), new BigInteger("2147483648"), new BigInteger("0"), new BigInteger("8657571872"), new BigInteger("17315143744"), new BigInteger("34630287488"), new BigInteger("69260574720"), new BigInteger("138521083904"), new BigInteger("277025390592"), new BigInteger("549755813888"), new BigInteger("0"), new BigInteger("2216338399296"), new BigInteger("4432676798592"), new BigInteger("8865353596928"), new BigInteger("17730707128320"), new BigInteger("35461397479424"), new BigInteger("70918499991552"), new BigInteger("140737488355328"), new BigInteger("0"), new BigInteger("567382630219904"), new BigInteger("1134765260439552"), new BigInteger("2269530520813568"), new BigInteger("4539061024849920"), new BigInteger("9078117754732544"), new BigInteger("18155135997837312"), new BigInteger("36028797018963968"), new BigInteger("0"), }, { new BigInteger("0"), new BigInteger("256"), new BigInteger("66048"), new BigInteger("16909312"), new BigInteger("4328785920"), new BigInteger("1108169199616"), new BigInteger("283691315109888"), new BigInteger("72624976668147712"), new BigInteger("0"), new BigInteger("65536"), new BigInteger("16908288"), new BigInteger("4328783872"), new BigInteger("1108169195520"), new BigInteger("283691315101696"), new BigInteger("72624976668131328"), new BigInteger("145249953336262656"), new BigInteger("0"), new BigInteger("16777216"), new BigInteger("4328521728"), new BigInteger("1108168671232"), new BigInteger("283691314053120"), new BigInteger("72624976666034176"), new BigInteger("145249953332068352"), new BigInteger("290499906664136704"), new BigInteger("0"), new BigInteger("4294967296"), new BigInteger("1108101562368"), new BigInteger("283691179835392"), new BigInteger("72624976397598720"), new BigInteger("145249952795197440"), new BigInteger("290499905590394880"), new BigInteger("580999811180789760"), new BigInteger("0"), new BigInteger("1099511627776"), new BigInteger("283673999966208"), new BigInteger("72624942037860352"), new BigInteger("145249884075720704"), new BigInteger("290499768151441408"), new BigInteger("580999536302882816"), new BigInteger("1161999072605765632"), new BigInteger("0"), new BigInteger("281474976710656"), new BigInteger("72620543991349248"), new BigInteger("145241087982698496"), new BigInteger("290482175965396992"), new BigInteger("580964351930793984"), new BigInteger("1161928703861587968"), new BigInteger("2323857407723175936"), new BigInteger("0"), new BigInteger("72057594037927936"), new BigInteger("144115188075855872"), new BigInteger("288230376151711744"), new BigInteger("576460752303423488"), new BigInteger("1152921504606846976"), new BigInteger("2305843009213693952"), new BigInteger("4611686018427387904"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), }, { new BigInteger("9241421688590303744"), new BigInteger("36099303471055872"), new BigInteger("141012904183808"), new BigInteger("550831656960"), new BigInteger("2151686144"), new BigInteger("8404992"), new BigInteger("32768"), new BigInteger("0"), new BigInteger("4620710844295151616"), new BigInteger("9241421688590303232"), new BigInteger("36099303471054848"), new BigInteger("141012904181760"), new BigInteger("550831652864"), new BigInteger("2151677952"), new BigInteger("8388608"), new BigInteger("0"), new BigInteger("2310355422147510272"), new BigInteger("4620710844295020544"), new BigInteger("9241421688590041088"), new BigInteger("36099303470530560"), new BigInteger("141012903133184"), new BigInteger("550829555712"), new BigInteger("2147483648"), new BigInteger("0"), new BigInteger("1155177711056977920"), new BigInteger("2310355422113955840"), new BigInteger("4620710844227911680"), new BigInteger("9241421688455823360"), new BigInteger("36099303202095104"), new BigInteger("141012366262272"), new BigInteger("549755813888"), new BigInteger("0"), new BigInteger("577588851233521664"), new BigInteger("1155177702467043328"), new BigInteger("2310355404934086656"), new BigInteger("4620710809868173312"), new BigInteger("9241421619736346624"), new BigInteger("36099165763141632"), new BigInteger("140737488355328"), new BigInteger("0"), new BigInteger("288793326105133056"), new BigInteger("577586652210266112"), new BigInteger("1155173304420532224"), new BigInteger("2310346608841064448"), new BigInteger("4620693217682128896"), new BigInteger("9241386435364257792"), new BigInteger("36028797018963968"), new BigInteger("0"), new BigInteger("144115188075855872"), new BigInteger("288230376151711744"), new BigInteger("576460752303423488"), new BigInteger("1152921504606846976"), new BigInteger("2305843009213693952"), new BigInteger("4611686018427387904"), new BigInteger("9223372036854775808"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), }, }; public static final BigInteger[][] ROOK_ATTACKS = { { new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("1"), new BigInteger("2"), new BigInteger("4"), new BigInteger("8"), new BigInteger("16"), new BigInteger("32"), new BigInteger("64"), new BigInteger("128"), new BigInteger("257"), new BigInteger("514"), new BigInteger("1028"), new BigInteger("2056"), new BigInteger("4112"), new BigInteger("8224"), new BigInteger("16448"), new BigInteger("32896"), new BigInteger("65793"), new BigInteger("131586"), new BigInteger("263172"), new BigInteger("526344"), new BigInteger("1052688"), new BigInteger("2105376"), new BigInteger("4210752"), new BigInteger("8421504"), new BigInteger("16843009"), new BigInteger("33686018"), new BigInteger("67372036"), new BigInteger("134744072"), new BigInteger("269488144"), new BigInteger("538976288"), new BigInteger("1077952576"), new BigInteger("2155905152"), new BigInteger("4311810305"), new BigInteger("8623620610"), new BigInteger("17247241220"), new BigInteger("34494482440"), new BigInteger("68988964880"), new BigInteger("137977929760"), new BigInteger("275955859520"), new BigInteger("551911719040"), new BigInteger("1103823438081"), new BigInteger("2207646876162"), new BigInteger("4415293752324"), new BigInteger("8830587504648"), new BigInteger("17661175009296"), new BigInteger("35322350018592"), new BigInteger("70644700037184"), new BigInteger("141289400074368"), new BigInteger("282578800148737"), new BigInteger("565157600297474"), new BigInteger("1130315200594948"), new BigInteger("2260630401189896"), new BigInteger("4521260802379792"), new BigInteger("9042521604759584"), new BigInteger("18085043209519168"), new BigInteger("36170086419038336") }, { new BigInteger("254"), new BigInteger("252"), new BigInteger("248"), new BigInteger("240"), new BigInteger("224"), new BigInteger("192"), new BigInteger("128"), new BigInteger("0"), new BigInteger("65024"), new BigInteger("64512"), new BigInteger("63488"), new BigInteger("61440"), new BigInteger("57344"), new BigInteger("49152"), new BigInteger("32768"), new BigInteger("0"), new BigInteger("16646144"), new BigInteger("16515072"), new BigInteger("16252928"), new BigInteger("15728640"), new BigInteger("14680064"), new BigInteger("12582912"), new BigInteger("8388608"), new BigInteger("0"), new BigInteger("4261412864"), new BigInteger("4227858432"), new BigInteger("4160749568"), new BigInteger("4026531840"), new BigInteger("3758096384"), new BigInteger("3221225472"), new BigInteger("2147483648"), new BigInteger("0"), new BigInteger("1090921693184"), new BigInteger("1082331758592"), new BigInteger("1065151889408"), new BigInteger("1030792151040"), new BigInteger("962072674304"), new BigInteger("824633720832"), new BigInteger("549755813888"), new BigInteger("0"), new BigInteger("279275953455104"), new BigInteger("277076930199552"), new BigInteger("272678883688448"), new BigInteger("263882790666240"), new BigInteger("246290604621824"), new BigInteger("211106232532992"), new BigInteger("140737488355328"), new BigInteger("0"), new BigInteger("71494644084506624"), new BigInteger("70931694131085312"), new BigInteger("69805794224242688"), new BigInteger("67553994410557440"), new BigInteger("63050394783186944"), new BigInteger("54043195528445952"), new BigInteger("36028797018963968"), new BigInteger("0"), new BigInteger("18302628885633695744"), new BigInteger("18158513697557839872"), new BigInteger("17870283321406128128"), new BigInteger("17293822569102704640"), new BigInteger("16140901064495857664"), new BigInteger("13835058055282163712"), new BigInteger("9223372036854775808"), new BigInteger("0") }, { new BigInteger("72340172838076672"), new BigInteger("144680345676153344"), new BigInteger("289360691352306688"), new BigInteger("578721382704613376"), new BigInteger("1157442765409226752"), new BigInteger("2314885530818453504"), new BigInteger("4629771061636907008"), new BigInteger("9259542123273814016"), new BigInteger("72340172838076416"), new BigInteger("144680345676152832"), new BigInteger("289360691352305664"), new BigInteger("578721382704611328"), new BigInteger("1157442765409222656"), new BigInteger("2314885530818445312"), new BigInteger("4629771061636890624"), new BigInteger("9259542123273781248"), new BigInteger("72340172838010880"), new BigInteger("144680345676021760"), new BigInteger("289360691352043520"), new BigInteger("578721382704087040"), new BigInteger("1157442765408174080"), new BigInteger("2314885530816348160"), new BigInteger("4629771061632696320"), new BigInteger("9259542123265392640"), new BigInteger("72340172821233664"), new BigInteger("144680345642467328"), new BigInteger("289360691284934656"), new BigInteger("578721382569869312"), new BigInteger("1157442765139738624"), new BigInteger("2314885530279477248"), new BigInteger("4629771060558954496"), new BigInteger("9259542121117908992"), new BigInteger("72340168526266368"), new BigInteger("144680337052532736"), new BigInteger("289360674105065472"), new BigInteger("578721348210130944"), new BigInteger("1157442696420261888"), new BigInteger("2314885392840523776"), new BigInteger("4629770785681047552"), new BigInteger("9259541571362095104"), new BigInteger("72339069014638592"), new BigInteger("144678138029277184"), new BigInteger("289356276058554368"), new BigInteger("578712552117108736"), new BigInteger("1157425104234217472"), new BigInteger("2314850208468434944"), new BigInteger("4629700416936869888"), new BigInteger("9259400833873739776"), new BigInteger("72057594037927936"), new BigInteger("144115188075855872"), new BigInteger("288230376151711744"), new BigInteger("576460752303423488"), new BigInteger("1152921504606846976"), new BigInteger("2305843009213693952"), new BigInteger("4611686018427387904"), new BigInteger("9223372036854775808"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0"), new BigInteger("0") }, { new BigInteger("0"), new BigInteger("1"), new BigInteger("3"), new BigInteger("7"), new BigInteger("15"), new BigInteger("31"), new BigInteger("63"), new BigInteger("127"), new BigInteger("0"), new BigInteger("256"), new BigInteger("768"), new BigInteger("1792"), new BigInteger("3840"), new BigInteger("7936"), new BigInteger("16128"), new BigInteger("32512"), new BigInteger("0"), new BigInteger("65536"), new BigInteger("196608"), new BigInteger("458752"), new BigInteger("983040"), new BigInteger("2031616"), new BigInteger("4128768"), new BigInteger("8323072"), new BigInteger("0"), new BigInteger("16777216"), new BigInteger("50331648"), new BigInteger("117440512"), new BigInteger("251658240"), new BigInteger("520093696"), new BigInteger("1056964608"), new BigInteger("2130706432"), new BigInteger("0"), new BigInteger("4294967296"), new BigInteger("12884901888"), new BigInteger("30064771072"), new BigInteger("64424509440"), new BigInteger("133143986176"), new BigInteger("270582939648"), new BigInteger("545460846592"), new BigInteger("0"), new BigInteger("1099511627776"), new BigInteger("3298534883328"), new BigInteger("7696581394432"), new BigInteger("16492674416640"), new BigInteger("34084860461056"), new BigInteger("69269232549888"), new BigInteger("139637976727552"), new BigInteger("0"), new BigInteger("281474976710656"), new BigInteger("844424930131968"), new BigInteger("1970324836974592"), new BigInteger("4222124650659840"), new BigInteger("8725724278030336"), new BigInteger("17732923532771328"), new BigInteger("35747322042253312"), new BigInteger("0"), new BigInteger("72057594037927936"), new BigInteger("216172782113783808"), new BigInteger("504403158265495552"), new BigInteger("1080863910568919040"), new BigInteger("2233785415175766016"), new BigInteger("4539628424389459968"), new BigInteger("9151314442816847872") } }; public static final BigInteger[] WHITE_PAWN_ATTACKS = { BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(2), BigInteger.valueOf(5), BigInteger.valueOf(10), BigInteger.valueOf(20), BigInteger.valueOf(40), BigInteger.valueOf(80), BigInteger.valueOf(160), BigInteger.valueOf(64), BigInteger.valueOf(512), BigInteger.valueOf(1280), BigInteger.valueOf(2560), BigInteger.valueOf(5120), BigInteger.valueOf(10240), BigInteger.valueOf(20480), BigInteger.valueOf(40960), BigInteger.valueOf(16384), BigInteger.valueOf(131072), BigInteger.valueOf(327680), BigInteger.valueOf(655360), BigInteger.valueOf(1310720), BigInteger.valueOf(2621440), BigInteger.valueOf(5242880), BigInteger.valueOf(10485760), BigInteger.valueOf(4194304), BigInteger.valueOf(33554432), BigInteger.valueOf(83886080), BigInteger.valueOf(167772160L), BigInteger.valueOf(335544320L), BigInteger.valueOf(671088640L), BigInteger.valueOf(1342177280L), BigInteger.valueOf(2684354560L), BigInteger.valueOf(1073741824L), BigInteger.valueOf(8589934592L), BigInteger.valueOf(21474836480L), BigInteger.valueOf(42949672960L), BigInteger.valueOf(85899345920L), BigInteger.valueOf(171798691840L), BigInteger.valueOf(343597383680L), BigInteger.valueOf(687194767360L), BigInteger.valueOf(274877906944L), BigInteger.valueOf(2199023255552L), BigInteger.valueOf(5497558138880L), BigInteger.valueOf(10995116277760L), BigInteger.valueOf(21990232555520L), BigInteger.valueOf(43980465111040L), BigInteger.valueOf(87960930222080L), BigInteger.valueOf(175921860444160L), BigInteger.valueOf(70368744177664L), BigInteger.valueOf(562949953421312L), BigInteger.valueOf(1407374883553280L), BigInteger.valueOf(2814749767106560L), BigInteger.valueOf(5629499534213120L), BigInteger.valueOf(11258999068426240L), BigInteger.valueOf(22517998136852480L), BigInteger.valueOf(45035996273704960L), BigInteger.valueOf(18014398509481984L) }; public static final BigInteger[] BLACK_PAWN_ATTACKS = { BigInteger.valueOf(512), BigInteger.valueOf(1280), BigInteger.valueOf(2560), BigInteger.valueOf(5120), BigInteger.valueOf(10240), BigInteger.valueOf(20480), BigInteger.valueOf(40960), BigInteger.valueOf(16384), BigInteger.valueOf(131072), BigInteger.valueOf(327680), BigInteger.valueOf(655360), BigInteger.valueOf(1310720), BigInteger.valueOf(2621440), BigInteger.valueOf(5242880), BigInteger.valueOf(10485760), BigInteger.valueOf(4194304), BigInteger.valueOf(33554432), BigInteger.valueOf(83886080), BigInteger.valueOf(167772160), BigInteger.valueOf(335544320), BigInteger.valueOf(671088640), BigInteger.valueOf(1342177280), BigInteger.valueOf(2684354560L), BigInteger.valueOf(1073741824), BigInteger.valueOf(8589934592L), BigInteger.valueOf(21474836480L), BigInteger.valueOf(42949672960L), BigInteger.valueOf(85899345920L), BigInteger.valueOf(171798691840L), BigInteger.valueOf(343597383680L), BigInteger.valueOf(687194767360L), BigInteger.valueOf(274877906944L), BigInteger.valueOf(2199023255552L), BigInteger.valueOf(5497558138880L), BigInteger.valueOf(10995116277760L), BigInteger.valueOf(21990232555520L), BigInteger.valueOf(43980465111040L), BigInteger.valueOf(87960930222080L), BigInteger.valueOf(175921860444160L), BigInteger.valueOf(70368744177664L), BigInteger.valueOf(562949953421312L), BigInteger.valueOf(1407374883553280L), BigInteger.valueOf(2814749767106560L), BigInteger.valueOf(5629499534213120L), BigInteger.valueOf(11258999068426240L), BigInteger.valueOf(22517998136852480L), BigInteger.valueOf(45035996273704960L), BigInteger.valueOf(18014398509481984L), BigInteger.valueOf(144115188075855872L), BigInteger.valueOf(360287970189639680L), BigInteger.valueOf(720575940379279360L), BigInteger.valueOf(1441151880758558720L), BigInteger.valueOf(2882303761517117440L), BigInteger.valueOf(5764607523034234880L), new BigInteger("11529215046068469760"), BigInteger.valueOf(4611686018427387904L), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0), BigInteger.valueOf(0) }; public static final BigInteger[] KING_ATTACKS = { new BigInteger("770"), new BigInteger("1797"), new BigInteger("3594"), new BigInteger("7188"), new BigInteger("14376"), new BigInteger("28752"), new BigInteger("57504"), new BigInteger("49216"), new BigInteger("197123"), new BigInteger("460039"), new BigInteger("920078"), new BigInteger("1840156"), new BigInteger("3680312"), new BigInteger("7360624"), new BigInteger("14721248"), new BigInteger("12599488"), new BigInteger("50463488"), new BigInteger("117769984"), new BigInteger("235539968"), new BigInteger("471079936"), new BigInteger("942159872"), new BigInteger("1884319744"), new BigInteger("3768639488"), new BigInteger("3225468928"), new BigInteger("12918652928"), new BigInteger("30149115904"), new BigInteger("60298231808"), new BigInteger("120596463616"), new BigInteger("241192927232"), new BigInteger("482385854464"), new BigInteger("964771708928"), new BigInteger("825720045568"), new BigInteger("3307175149568"), new BigInteger("7718173671424"), new BigInteger("15436347342848"), new BigInteger("30872694685696"), new BigInteger("61745389371392"), new BigInteger("123490778742784"), new BigInteger("246981557485568"), new BigInteger("211384331665408"), new BigInteger("846636838289408"), new BigInteger("1975852459884544"), new BigInteger("3951704919769088"), new BigInteger("7903409839538176"), new BigInteger("15806819679076352"), new BigInteger("31613639358152704"), new BigInteger("63227278716305408"), new BigInteger("54114388906344448"), new BigInteger("216739030602088448"), new BigInteger("505818229730443264"), new BigInteger("1011636459460886528"), new BigInteger("2023272918921773056"), new BigInteger("4046545837843546112"), new BigInteger("8093091675687092224"), new BigInteger("16186183351374184448"), new BigInteger("13853283560024178688"), new BigInteger("144959613005987840"), new BigInteger("362258295026614272"), new BigInteger("724516590053228544"), new BigInteger("1449033180106457088"), new BigInteger("2898066360212914176"), new BigInteger("5796132720425828352"), new BigInteger("11592265440851656704"), new BigInteger("4665729213955833856") }; public static final BigInteger[] SQUARE_BBS = { new BigInteger("1"), new BigInteger("2"), new BigInteger("4"), new BigInteger("8"), new BigInteger("16"), new BigInteger("32"), new BigInteger("64"), new BigInteger("128"), new BigInteger("256"), new BigInteger("512"), new BigInteger("1024"), new BigInteger("2048"), new BigInteger("4096"), new BigInteger("8192"), new BigInteger("16384"), new BigInteger("32768"), new BigInteger("65536"), new BigInteger("131072"), new BigInteger("262144"), new BigInteger("524288"), new BigInteger("1048576"), new BigInteger("2097152"), new BigInteger("4194304"), new BigInteger("8388608"), new BigInteger("16777216"), new BigInteger("33554432"), new BigInteger("67108864"), new BigInteger("134217728"), new BigInteger("268435456"), new BigInteger("536870912"), new BigInteger("1073741824"), new BigInteger("2147483648"), new BigInteger("4294967296"), new BigInteger("8589934592"), new BigInteger("17179869184"), new BigInteger("34359738368"), new BigInteger("68719476736"), new BigInteger("137438953472"), new BigInteger("274877906944"), new BigInteger("549755813888"), new BigInteger("1099511627776"), new BigInteger("2199023255552"), new BigInteger("4398046511104"), new BigInteger("8796093022208"), new BigInteger("17592186044416"), new BigInteger("35184372088832"), new BigInteger("70368744177664"), new BigInteger("140737488355328"), new BigInteger("281474976710656"), new BigInteger("562949953421312"), new BigInteger("1125899906842624"), new BigInteger("2251799813685248"), new BigInteger("4503599627370496"), new BigInteger("9007199254740992"), new BigInteger("18014398509481984"), new BigInteger("36028797018963968"), new BigInteger("72057594037927936"), new BigInteger("144115188075855872"), new BigInteger("288230376151711744"), new BigInteger("576460752303423488"), new BigInteger("1152921504606846976"), new BigInteger("2305843009213693952"), new BigInteger("4611686018427387904"), new BigInteger("9223372036854775808"), }; //#endregion }