diff --git a/research/complex-571-cold14-k492-repacking-audit/ASSEMBLY-CONTROLS.json b/research/complex-571-cold14-k492-repacking-audit/ASSEMBLY-CONTROLS.json new file mode 100644 index 0000000000..63d82c9dcf --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/ASSEMBLY-CONTROLS.json @@ -0,0 +1,147 @@ +{ + "status": "PASS_EXACT_MIXED_048_ALLCOLD_NATIVE_ASSEMBLY_ADMISSION_NEGATIVE_CONTROLS", + "valid_receipt_kappa": "408856367695223/250000000000000000", + "input_sha256": { + "owner_audit": "bfb2f606c6870f43187f0288d5923a84a6672c4901e8f2d083b89ad1e49570fe", + "fresh_invoice": "5da03191ab1ddede31b48d46f183aa611f7297eafa0e93bbb711d9c42eb0c540", + "inputs/PR543-EXPECTED.json": "06eccee9f6b77e140833df83407e7996dc948c17d49b0779ab171fbe463fd28d", + "engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c" + }, + "assembler_sha256": "1b1a9024ac910dc9b9d9e30150684e1fa9cb228a4c1c275b75ab04b57fdef1dd", + "rejected_controls": [ + "empty_certification_maps", + "failed_invoice_status", + "nonboolean_precision_check", + "wrong_owner_role_count", + "understated_physical_stock", + "changed_profile_same_rank_mass", + "insufficient_finite_C0", + "missing_finite_check", + "wrong_reflected_orientation_selfconsistent_totals", + "missing_selected_call", + "wrong_selected_primitive_sum", + "wrong_selected_coefficient_work_sum", + "unpaid_wrapper_factors", + "wrong_global_compiler", + "wrong_global_adapter_maximum", + "understated_exact_prefix_and_global_sum", + "wrong_global_prefix_sum", + "wrong_row_prefix_reserve", + "wrong_parent_geometry_charge", + "wrong_rebased_geometry_charge", + "wrong_complete_pervertex_envelope", + "wrong_prior_added_complete_invoice", + "wrong_finite_router_bits", + "wrong_finite_literal_bits", + "wrong_finite_physical_stock_bits", + "wrong_finite_row_coefficient", + "reordered_complete_calls", + "understated_explicit_idle_remainders", + "understated_actual_chart_types", + "wrong_cross_replica_role_count", + "old_no_cold_wrapper_counts_selfconsistent", + "ck:missing_provider", + "ck:missing_backward_orientation", + "ck:unpaid_scalar_primitive", + "ck:wrong_local_artifact_binding", + "ck:false_dirty_restoration", + "ck:wrong_declared_provider_count", + "ck:wrong_local_compiler", + "ck:wrong_local_adapter_charge", + "ck:wrong_local_primitive_bound", + "ck:forged_provider_and_call_program_hash", + "ck:provider_at_wrong_call", + "ck:stale_partner_program_consistent_call_hashes", + "ck:stale_partner_profile_consistent_child_total", + "ck:relocated_against_partner_same_counts", + "ck:compensating_false_profiles_with_jp8", + "ck:synchronized_forged_source_recipe_hash", + "ck:synchronized_forged_phase_review_semantics", + "ck:width_order_swap_4_5", + "ck:width_inventory_shift_4_5", + "ck:width_order_swap_4_7", + "ck:width_inventory_shift_4_7", + "ck:width_order_swap_4_8", + "ck:width_inventory_shift_4_8", + "ck:width_order_swap_4_9", + "ck:width_inventory_shift_4_9", + "ck:width_order_swap_5_7", + "ck:width_inventory_shift_5_7", + "ck:width_order_swap_5_8", + "ck:width_inventory_shift_5_8", + "ck:width_order_swap_5_9", + "ck:width_inventory_shift_5_9", + "ck:width_order_swap_7_8", + "ck:width_inventory_shift_7_8", + "ck:width_order_swap_7_9", + "ck:width_inventory_shift_7_9", + "ck:width_order_swap_8_9", + "ck:width_inventory_shift_8_9", + "ck:cold_helper_width_swap_264", + "ck:cold_helper_width_swap_276", + "ck:cold_helper_width_swap_288", + "ck:cold_helper_width_swap_300", + "jp8:missing_provider", + "jp8:missing_backward_orientation", + "jp8:unpaid_scalar_primitive", + "jp8:wrong_local_artifact_binding", + "jp8:false_dirty_restoration", + "jp8:wrong_declared_provider_count", + "jp8:wrong_local_compiler", + "jp8:wrong_local_adapter_charge", + "jp8:wrong_local_primitive_bound", + "jp8:forged_provider_and_call_program_hash", + "jp8:provider_at_wrong_call", + "jp8:stale_partner_program_consistent_call_hashes", + "jp8:stale_partner_profile_consistent_child_total", + "jp8:relocated_against_partner_same_counts", + "jp8:compensating_false_profiles_with_ck", + "jp8:synchronized_forged_source_recipe_hash", + "jp8:synchronized_forged_phase_review_semantics", + "jp8:width_order_swap_4_5", + "jp8:width_inventory_shift_4_5", + "jp8:width_order_swap_4_7", + "jp8:width_inventory_shift_4_7", + "jp8:width_order_swap_4_8", + "jp8:width_inventory_shift_4_8", + "jp8:width_order_swap_4_9", + "jp8:width_inventory_shift_4_9", + "jp8:width_order_swap_5_7", + "jp8:width_inventory_shift_5_7", + "jp8:width_order_swap_5_8", + "jp8:width_inventory_shift_5_8", + "jp8:width_order_swap_5_9", + "jp8:width_inventory_shift_5_9", + "jp8:width_order_swap_7_8", + "jp8:width_inventory_shift_7_8", + "jp8:width_order_swap_7_9", + "jp8:width_inventory_shift_7_9", + "jp8:width_order_swap_8_9", + "jp8:width_inventory_shift_8_9", + "jp8:cold_helper_width_swap_264", + "jp8:cold_helper_width_swap_276", + "jp8:cold_helper_width_swap_288", + "jp8:cold_helper_width_swap_300", + "wrong_owner_receipt_hash" + ], + "discovery_accepted_controls": [], + "exact_outer_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ], + "conservative_outer_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ], + "recurrence_model_controls": [ + "native_complex_endpoint_rejected_with_old_surcharge", + "omitting_bit_surcharge_would_fail_next_endpoint_rejection" + ], + "scope": "Complete receipt schema; ordered widths and both reflected providers; exact program, work and paid-profile binding; independently recounted compiler, conservative envelope and finite inequalities. Does not replace fresh physical replay." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/ASSEMBLY.json b/research/complex-571-cold14-k492-repacking-audit/ASSEMBLY.json new file mode 100644 index 0000000000..205035edba --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/ASSEMBLY.json @@ -0,0 +1,330 @@ +{ + "status": "PASS_FRESH_MIXED_048_ALLCOLD_NATIVE_EXACT_ASSEMBLY", + "kappa": "408856367695223/250000000000000000", + "kappa_decimal": "0.001635425470780892", + "complex_lower": "1638104468552563164027/1000000000000000000000000", + "complex_decimal": "0.001638104468552563164027", + "bit_lower": "413456747036699736067/250000000000000000000000", + "bit_decimal": "0.001653826988146798944268", + "binding": "complex", + "gain_over_pinned569_percent": "2.133650822827629799445091160862710673246229653679670138305326203714113", + "complex_profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "surcharge_model": { + "complex": false, + "bit": true + }, + "conservative_complex_lower": "327620893135027892143/200000000000000000000000", + "conservative_complex_decimal": "0.001638104465675139460715", + "conservative_kappa": "204428183489109/125000000000000000", + "conservative_kappa_decimal": "0.001635425467912872", + "conservative_moments": [ + { + "side": "conservative_complex", + "surcharge": true, + "endpoint": "327620893135027892143/200000000000000000000000", + "accept": true, + "mercator": [ + "-58831952072102241365036920282900973190800675/26959946667150639794667015087019630673637144422540572481103610249216", + "-58831952072102241365036920282900973190800673/26959946667150639794667015087019630673637144422540572481103610249216" + ], + "base_two": [ + "-5455496480037890868411/2500000000000000000000000000000000000000000000", + "-21821975920151563473501/10000000000000000000000000000000000000000000000" + ] + }, + { + "side": "conservative_complex", + "surcharge": true, + "endpoint": "409526116418784865179/250000000000000000000000", + "accept": false, + "mercator": [ + "10964207118402378854844291009776415802124307/13479973333575319897333507543509815336818572211270286240551805124608", + "2741051779600594713711072752444103950531077/3369993333393829974333376885877453834204643052817571560137951281152" + ], + "base_two": [ + "2033423520054563381133/2500000000000000000000000000000000000000000000", + "4066852040109126762337/5000000000000000000000000000000000000000000000" + ] + } + ], + "conservative_bootstrap": [ + { + "exponent": "65419363230744561834219873711567598486910239863048046585356409660374916972780945418358867551/40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "104815396261016594380020764253774507511331536951953414643590339625083027219054581641132449/40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "5242909030154" + }, + { + "exponent": "13104801385687378349600219035681252549167372461896027546681675812855083248966793354431803432711057939408377385589783143556925777255949448207/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "34339713737336119759859483022049716941818103972453318324187144916751033206645568196567288942060591622614410216856443074222744050551793/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "1953840617907021315" + }, + { + "exponent": "2620967133829815452516749619406246644852590661257366461497499384947035149838760046361920725208885926316155927537725964277759998853756419915271482641538619479270404342192626551444839262399/1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "11250407684627246159626608274924272194742633538502500615052964850161239953638079274791114073683844072462274035722240001146243580084728517358461380520729595657807373448555160737601/1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "728125004311181063196753" + }, + { + "exponent": "524193429012358758815028396212218673788129669709092788855177336830589234387271530633303342132553805254788171341055012008572784812047953884209176689527152273478484439258326761394949193196287823384250002909009683013206500955816152568943/320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "3685868613770759594352310167242901490907211144822663169410765612728469366696657867446194745211828658944987991427215187952046115790823310472847726521515560741673238605050806803712176615749997090990316986793499044183847431057/320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "271345583178160132531628966103" + }, + { + "exponent": "104838685803207717918192609217888973264354617045072527935404387752051180594319693909871019813186520557916100265843869368159759254889612809697116956468762296643753937227505559563614837197216594055593387661454015236589577297459909394087080384763574919212576231101680416284532224485151/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "1207567567221943425223526719897194927472064595612247948819405680306090128980186813479442083899734156130631840240745110387190302883043531237703356246062772494440436385162802783405944406612338545984763410422702540090605912919615236425080787423768898319583715467775514849/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "101120583793094143370791318659766542" + }, + { + "exponent": "20967737160641784701527601338116901968775512439868116600797390062258324857715916443849749782084095071714979027976785796875508207006757058718372163057304986871597619890614067156813300940391473591882967233986125365311579029065665313437841183689151552682228357329718296690522348443819962162888154969913288906745006133168167066931407/12800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "395624364894145937389439390408131883399202609937741675142284083556150250217915904928285020972023214203124491792993242941281627836942695013128402380109385932843186699059608526408117032766013874634688420970934334686562158816310848447317771642670281703309477651556180037837111845030086711093254993866831832933068593/12800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "37683946600090398418209714191957846329060" + }, + { + "exponent": "4193547432128357019300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "129614807772598266551919626361129903668829505449767401803276720246403795002733240476921968895188610180040545087248516283486357411764657953836383453599873518056179099974541899499745244680102714094091320777660757254752185058528292367479624634544941020881683382388354837134941310169405593856129769995244135301845849104833774148653065179844488681069686375235201/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "14043429913974118214073567404335243058156031731" + } + ], + "conservative_outer": { + "bit_positive": "4193547432128357019300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_above_bit": "129621561320030394908939056761129903668829505449767401803276720246403795002733240476921968895188610180040545087248516283486357411764657953836383453599873518056179099974541899499745244680102714094091320777660757254752185058528292367479624634544941020881683382388354837134941310169405593856129769995244135301845849104833774148653065179844488681069686375235201/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "5922379106864972107857/200000000000000000000000", + "beta_positive": "1/1000000000000000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "leaf_saving_above_bit": "129617367772598266551919626361129903668829505449767401803276720246403795002733240476921968895188610180040545087248516283486357411764657953836383453599873518056179099974541899499745244680102714094091320777660757254752185058528292367479624634544941020881683382388354837134941310169405593856129769995244135301845849104833774148653065179844488681069686375235201/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_positive": "2096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_internal": "4193547432128357019300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/1280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "64812877433731261632979113959003631804019843785826939771734691293696447733964816961740738043799302356779795621655362953132998665337241728401908240442524994370135713603817349876354566160951382505146160643585698524661998437943368522982557565087411982148474211569542873626449773401320408573227750056311898245329068422646891830191230744073139506760694534552420655511318930313624764799/1280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "2096773716064178509650705025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "1277903226283935821490349294974207447325811488829159003631804019843785826939771734691293696447733964816961740738043799302356779795621655362953132998665337241728401908240442524994370135713603817349876354566160951382505146160643585698524661998437943368522982557565087411982148474211569542873626449773401320408573227750056311898245329068422646891830191230744073139506760694534552420655511318930313624764799/1280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "lambda_above_tau": "4193547432128357019300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "129625754867462523265958357539568583638434596510710640673373051416898345235331437200201722491393607446800068165279621094876177371219570705320099967242461753398225263591088299626227188501002739552191821032416077152038090967207514706722369882359882492589315902763720292193920428486023205501292635053933965896251992975063778904517763333995383847295537722170021155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_internal": "4193547432128357019300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "4193547432128357019300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_leaf": "64812877433731261632979113959003631804019843785826939771734691293696447733964816961740738043799302356779795621655362953132998665337241728401908240442524994370135713603817349876354566160951382505146160643585698524661998437943368522982557565087411982148474211569542873626449773401320408573227750056311898245329068422646891830191230744073139506760694534552420655511318930313624764799/1280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "lambda_prime_below_one": "2096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "epsilon_positive": "1279999999999999999999998720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201", + "epsilon_below_one": "2096773716064178509651665025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201", + "guard_width": "2096773716064178509651665025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201", + "K_geometry": "962096773716064178509650705025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201000000000000000000000000", + "K_dominates_log": "2096773716064178509650702929018836610010001520135970575643305967703002219231897112726147338092974954772950555652648431608037166119082680846169358114458379926961044892556140342871592688304423092648639803974762221312203715710980462426720506708217275062715967096911025961220048770988022213785532375072891160969645876393461503075079504805103164481707014584995283140131135656678323417628187830380909787621655511318930313624764799/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201000000000000000000000000", + "record_suffix": "2096773716064178509651665025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201", + "phase_local": "16774189728513428077212038109566705329329579716342945153015167061202213640829754273670272203955221236040765389346053315110578596767495140174238367457097687828147687209458465382280642693077701643514157840848102543776180591205880572754086517642613695401838064141299142086180729290001222098400383961263648300957051625999278215357776025846574921670368399376483306592806273914811378829048955318185536434028655511318930313624764799/10256774189728513428077203080206340421393508089366727970945567841249713384481826122469650428418128281464306074095649605581145761635026757096374936010677302066172784734076459800045038914291169461200989163470712388939958830714851314411802704012496453051816139539479300704142812206307443657010988401812789436731414177999549504814037367452618824865358470154047414883945914443723580634755909448557491001881608000000000000000000000000", + "phase_boundary": "3354837945702685615441381944494368214523108222960568396560894061431506055368856297949929469452596064595906112826368850193969288746089463074289558915256034889919899948290625346249511260142132682722827064278191391809116019324829043311923307645451253948926432557858578771930964244046296489609662511032098915825709226359674364127882063751515029383592276138551399436074718935946871024321396472192734928742255511318930313624764799/2051354837945702685615440616041268084278701617873345594189113568249942676896365224493930085683625656292861214819129921116229152327005351419274987202135460413234556946815291960009007782858233892240197832694142477787991766142970262882360540802499290610363227907895860140828562441261488731402197680362557887346282835599909900962807473490523764973071694030809482976789182888744716126951181889711498200376321600000000000000000000000", + "gamma_sublinear": "1/2000000000000000000000000", + "cell_above_band": "2559999999999999999999996157903226283935821490349614974207447325811488829159003631804019843785826939771734691293696447733964816961740738043799302356779795621655362953132998665337241728401908240442524994370135713603817349876354566160951382505146160643585698524661998437943368522982557565087411982148474211569542873626449773401320408573227750056311898245329068422646891830191230744073139506760694534552420655511318930313624764799/5128387094864256714038601540103170210696754044683363985472783920624856692240913061234825214209064140732153037047824802790572880817513378548187468005338651033086392367038229900022519457145584730600494581735356194469979415357425657205901352006248226525908069769739650352071406103153721828505494200906394718365707088999774752407018683726309412432679235077023707441972957221861790317377954724278745500940804000000000000000000000000", + "prime_interval_packing": "2096773716064178509651665025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201", + "alpha_positive": "4193547432128357019302047954811389284198512691296966943839286123917175279460162421432450890359010137811209817608849129251257370497427317893036359449121138198559136652113615348501456974700605742772285237813810838807057555067394763902058508270273906539733409531823613979071574559418479340159082601671570752396418126337149604829750436382456272651515783840922143633370441122125902762116868900067285022822655511318930313624764799/2564193547432128357019300770051585105348377022341681992736391960312428346120456530617412607104532070366076518523912401395286440408756689274093734002669325516543196183519114950011259728572792365300247290867678097234989707678712828602950676003124113262954034884869825176035703051576860914252747100453197359182853544499887376203509341863154706216339617538511853720986478610930895158688977362139372750470402000000000000000000000000", + "alpha_below_one": "2559999999999999999999998722096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201/2564193547432128357019300770051585105348377022341681992736391960312428346120456530617412607104532070366076518523912401395286440408756689274093734002669325516543196183519114950011259728572792365300247290867678097234989707678712828602950676003124113262954034884869825176035703051576860914252747100453197359182853544499887376203509341863154706216339617538511853720986478610930895158688977362139372750470402000000000000000000000000", + "alpha_below_one_fourth": "636854839425903732235523144558084887052895742894123531240258703954189911250653970232920700885774007453707919813369251219570352731691745000630397141218210240937239909227665122154313475168497485582289537479105713469940369364610812386835610492510754409198775311685632680029854188334796749223027692511627769043316967998634694446047585029406220281433388600787041286613249211610597886910127471634775902594777844488681069686375235201/2564193547432128357019300770051585105348377022341681992736391960312428346120456530617412607104532070366076518523912401395286440408756689274093734002669325516543196183519114950011259728572792365300247290867678097234989707678712828602950676003124113262954034884869825176035703051576860914252747100453197359182853544499887376203509341863154706216339617538511853720986478610930895158688977362139372750470402000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "short_record_fallback": "3271423466366842947846731050624456149724782197772233847177975383602428723169389668573034082909010266990917169972468710172804909158706135569805622789034728529537226078048442126160411283368592102536725564692689944968390062225809066682662093809433495364417461536783332410019350869583885406586728091377019407994996145193054231644407896092798777298931836975337505308645172235431589243469234144780815891523709882939433077254750558593111954746473653068696393735004514585550060632024289645773048175942808779083205410604032761345670879184617157723333663010785242504774101728976317537585866451864672299767981500634828214111609166895326122766027506636001459169755186850575728632397974289670261439755233991879487594434068365267046528227258989974490635855838375852793705605413183235228069510401/3282167740713124296984704985666028934845922588597352950702581709199908283034184359190288137093801050068577943710607873785966643723208562270839979523416736661175291114904467136014412452573174227584316532310627964460786825828752420611776865283998864976581164652633376225325699906018381970243516288580092619754052536959855841540491957584838023956914710449295172762862692621991545803121891023538397120602114560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000", + "artificial_boundary": "71814193517828107424617638727941044519340600243884978844942200752563240588377598084345143895987545432399244518884107501447271642194991842639601581015079029664416189013212682404348586129123630968280338324655291970708218596089746816811567484584533142483772020741848410319312392081511876560825671268056892859142684803117046718308337713901267348753932066496392113803626640059214952845827857068177844411395602033466043209059125705603/10256774189728513428077203080206340421393508089366727970945567841249713384481826122469650428418128281464306074095649605581145761635026757096374936010677302066172784734076459800045038914291169461200989163470712388939958830714851314411802704012496453051816139539479300704142812206307443657010988401812789436731414177999549504814037367452618824865358470154047414883945914443723580634755909448557491001881608000000000000000000000000", + "literal_scalar_guard": "1", + "row_product_gap": "23971789/25", + "balanced_prefix_above_kappa": "84886852217761319314425867378371074650044778747422880745312757391774671993700542175350554535781779800121843854291619548201215801892825985029202734884504547697141838810830389650736899827168685787669034011707067291552857656185706595441105217065382704701847226103560277318097636399618128701811490520238067045559975732613102737556700672093450575174261388657371476216677043381490050908021623428625303074091/160262096714508022313706298128224069084273563896355124546024497519526771632528533163588287944033254397879782407744525087205402525547293079630858375166832844783949761469944684375703733035799522831265455679229881077186856729919551787684417250195257078934627180304364073502231440723553807140796693778324834948928346531242961012719333866447169138521226096156990857561654913183180947418061085133710796904400125000000000000000", + "coordinate_movement_above_kappa": "6858234271404699300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "679093535645316838451228429376583571407805555790871875121505690938217219735431277174539127579950686134939567796073694429409028771922403501888984832209035046914376438888551357648420192987485199905169621970011104493374243754631813407114540261185060075558146331811039783632193073345419241184034797788354309765800214434132571956765503622076673024040982939450202553806555853812614941816593642940321354906352764799/1282096773716064178509650385025792552674188511170840996368195980156214173060228265308706303552266035183038259261956200697643220204378344637046867001334662758271598091759557475005629864286396182650123645433839048617494853839356414301475338001562056631477017442434912588017851525788430457126373550226598679591426772249943688101754670931577353108169808769255926860493239305465447579344488681069686375235201000000000000000000000000", + "bulk_exposure_above_kappa": "6858234271404699300778438679969605091060943238870096331170494550232598196723279753596204997266759523078031104811389819959454912751483716513642588235342046163616546400126481943820900025458100500254755319897285905908679222339242745247814941471707632520375365455058979118316617611645162865058689830594406143870230004755864698154150895166225851346934820155511318930313624764799/2560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "Gaussian_arithmetic_above_kappa": "1086550426290571171160472592792764729728020493778501702699006926418735645305193879616221789351703229175524418296673468260774864621007968230029157959654656875860657265180537227971957312157894891685980985226205027492827960504323205065231845303098897058127013017108129114759061728063586258952729952285497031584488097950675465097037666848125235784877437605005585639646605662043767186175097435397722809661989564799/2051354837945702685615440616041268084278701617873345594189113568249942676896365224493930085683625656292861214819129921116229152327005351419274987202135460413234556946815291960009007782858233892240197832694142477787991766142970262882360540802499290610363227907895860140828562441261488731402197680362557887346282835599909900962807473490523764973071694030809482976789182888744716126951181889711498200376321600000000000000000000000", + "scalar_work_above_kappa": "5432757259839950720059077002565363751810313165646553196859020104877598851382661638994170181583730354941762823636404389128677113677920658663524337985741289717954319412295053178089686583308931604014635526625606872820334272501031382751816432416846491538861590993610415313445660711724034448485478266921686064317158855460466325259940741259309905233799620704263005221940470283176057792665804554943338327055448764799/10256774189728513428077203080206340421393508089366727970945567841249713384481826122469650428418128281464306074095649605581145761635026757096374936010677302066172784734076459800045038914291169461200989163470712388939958830714851314411802704012496453051816139539479300704142812206307443657010988401812789436731414177999549504814037367452618824865358470154047414883945914443723580634755909448557491001881608000000000000000000000000", + "dimension_above_kappa": "159737903285491977771180234089537250230152303482015950104020281227896109112784224228186384049667287777470772128037254712916441328744326468570357426725993140245252973414559863321438105775030866819471444147938804710482177281787515503868440405990449516506478036761018631199615785380006470177300942621293293752883143988995106032840641866165933599035474575936459717612606475474190528798615958247779254003621498428625303074091/160262096714508022313706298128224069084273563896355124546024497519526771632528533163588287944033254397879782407744525087205402525547293079630858375166832844783949761469944684375703733035799522831265455679229881077186856729919551787684417250195257078934627180304364073502231440723553807140796693778324834948928346531242961012719333866447169138521226096156990857561654913183180947418061085133710796904400125000000000000000" + }, + "conservative_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ], + "model_controls": [ + "native_complex_endpoint_rejected_with_old_surcharge", + "omitting_bit_surcharge_would_fail_next_endpoint_rejection" + ], + "native_correction_gain": "2.86802E-12", + "template_sha256": "37d2a1bda1fd2acaf54374557e0b13477dbd6bd3787a16a62a8a181ad379ad53", + "input_sha256": { + "owner_audit": "bfb2f606c6870f43187f0288d5923a84a6672c4901e8f2d083b89ad1e49570fe", + "fresh_invoice": "5da03191ab1ddede31b48d46f183aa611f7297eafa0e93bbb711d9c42eb0c540", + "inputs/PR543-EXPECTED.json": "06eccee9f6b77e140833df83407e7996dc948c17d49b0779ab171fbe463fd28d", + "engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c" + }, + "bit_supplier": { + "pr": 543, + "repository": "eumemic/integer-mult-bounds", + "commit": "2065fe4f72a914d907f1046603f5a36f17018535", + "path": "research/e8-bit-r420/EXPECTED.json", + "git_blob_sha1": "b61d859826246e0c3dabbe096e57ad7015eadfd5", + "replay_scope": "Cited unchanged supplier; this assembly reprices its full profile and does not rebuild its bit circuit." + }, + "moments": [ + { + "side": "bit", + "surcharge": true, + "endpoint": "413456747036699736067/250000000000000000000000", + "accept": true, + "mercator": [ + "-6043813583626134311169770662156174867615397/13479973333575319897333507543509815336818572211270286240551805124608", + "-12087627167252268622339541324312349735230793/26959946667150639794667015087019630673637144422540572481103610249216" + ], + "base_two": [ + "-1120888283015460284783/2500000000000000000000000000000000000000000000", + "-4483543132061841139029/10000000000000000000000000000000000000000000000" + ] + }, + { + "side": "bit", + "surcharge": true, + "endpoint": "1653826988146798944269/1000000000000000000000000", + "accept": false, + "mercator": [ + "70925594433828721229860776023154018035852861/26959946667150639794667015087019630673637144422540572481103610249216", + "70925594433828721229860776023154018035852863/26959946667150639794667015087019630673637144422540572481103610249216" + ], + "base_two": [ + "13153878434097279887307/5000000000000000000000000000000000000000000000", + "6576941717048639943679/2500000000000000000000000000000000000000000000" + ] + }, + { + "side": "complex", + "surcharge": false, + "endpoint": "1638104468552563164027/1000000000000000000000000", + "accept": true, + "mercator": [ + "-28535132739763736015501186915672079859893211/26959946667150639794667015087019630673637144422540572481103610249216", + "-28535132739763736015501186915672079859893209/26959946667150639794667015087019630673637144422540572481103610249216" + ], + "base_two": [ + "-1058427/1000000000000000000000000000000", + "-529213/500000000000000000000000000000" + ] + }, + { + "side": "complex", + "surcharge": false, + "endpoint": "409526117138140791007/250000000000000000000000", + "accept": false, + "mercator": [ + "408009637257790305320032118763407285642293/210624583337114373395836055367340864637790190801098222508621955072", + "26112616784498579540482055600858066281106753/13479973333575319897333507543509815336818572211270286240551805124608" + ], + "base_two": [ + "1937141/1000000000000000000000000000000", + "968571/500000000000000000000000000000" + ] + } + ], + "bootstrap": [ + { + "exponent": "1635484083636721373351034515258840120968771648011865414127871616711729950982804488470693143271/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "2620384915841790675962846636691326468064324988134585872128383288270049017195511529306856729/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "5242908992873" + }, + { + "exponent": "1638100176088323195857529880259194670300389482398666281340029549897178925474354966495211347615882833685896814299482182260507319464362215687683/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "4292464239968169467481636336777136446490601333718659970450102821074525645033504788652384117166314103185700517817739492680535637784312317/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "1953840597149796941" + }, + { + "exponent": "1638104461521058311433057157523130065461159940098826630452200716060531224062513157251591544234365852944611359151250372931966480418166775717073796179439386730918635855523316364381665867420559/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "7031504852593940204372401381975676032901173369547799283939468775937486842748408455765634147055388640848749627068033519581833224282926203820560613269081364144476683635618334132579441/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "728124994017736046773276" + }, + { + "exponent": "1638104468541044824507314196487803690309401758572869178043986010398396087791649419821073168061851713061311539472260377003121961555529476587474917850101656819770466243578841400615753283869380783048143749898706514792887929911374421890968907/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "11518339519683165407727757127434214427130821956013989601603912208350580178926831938148286938688460527739622996878038444470523412525082149898343180229533756421158599384246716130619216951856250101293485207112070088625578109031093/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "271345578388901403552954225365" + }, + { + "exponent": "1638104468552544295783559863318203332221222226280157622425808193533715530251581015423598223637687617107941265300841960727764394495458029977460848953549630394540941318270981108999558609088637438333890258813963133128669418897652496739263800430682553136564856348359653337871772331402091511/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "18868243437498577328115215613746719842377574191806466284469748418984576401776362312382892058734699158039272235605504541970022539151046450369605459058681729018891000441390911362561666109741186036866871330581102347503260736199569317446863435143651640346662128227668597908489/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "101120581653064304848571047188028156" + }, + { + "exponent": "1638104468552563133118843473191536889151956327000990924495726141248479617360348168775177237826789512741611193086228857083736904430930642711294499166783972139599933035884453210710023924836166479624915083440524528658898085902045006568615522824538139222822772772398799914825567483425073284241967713929499979000864494436294757516442725203/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "30908153888703994558284879645999009075504273858751520382639651831224822762173210487258388806913771142916263095569069357288705500833216027860400066964115546789289976075163833520375084916559475471341101914097954993431384477175461860777177227227601200085174432516574926715758032286070500020999135505563705242483557274797/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "37683945670191485255158600775389562113373" + }, + { + "exponent": "1638104468552563163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gap": "50630784999796295522349769473574029953492123872453137632620398598843545881958762961751426145808212039286395492872082404216704591735149371047517295093172653380161768024420111694558541836809387836609873053559372026931171537993692905630201877307477353568536959777606744747421858847071884500038962009525988827383067696730499405978188207234424823808839719896175872481/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "14043429518098605988795426804181697979220878902" + } + ], + "outer": { + "bit_positive": "1638104468552563163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_above_bit": "50633423104264848085513796473574029953492123872453137632620398598843545881958762961751426145808212039286395492872082404216704591735149371047517295093172653380161768024420111694558541836809387836609873053559372026931171537993692905630201877307477353568536959777606744747421858847071884500038962009525988827383067696730499405978188207234424823808839719896175872481/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "29611895531447436835973/1000000000000000000000000", + "beta_positive": "1/1000000000000000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "leaf_saving_above_bit": "50631784999796295522349769473574029953492123872453137632620398598843545881958762961751426145808212039286395492872082404216704591735149371047517295093172653380161768024420111694558541836809387836609873053559372026931171537993692905630201877307477353568536959777606744747421858847071884500038962009525988827383067696730499405978188207234424823808839719896175872481/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_positive": "819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_internal": "1638104468552563163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "25317530604366700324338861103363910711897976422430095242280245807297900487841748860477114229358224060880235995009895393896313009472081813441354430841994591540709836494914962674625890756636669498193241968237849204077749159123792893443074007482200683091362849686926064896357360886576164643274733582904147341807033809403240177000266720549515681405013881759880701815676191160280103824127519/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "819052234276281581988306650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "499180947765723718418011693349656600976605920874603363910711897976422430095242280245807297900487841748860477114229358224060880235995009895393896313009472081813441354430841994591540709836494914962674625890756636669498193241968237849204077749159123792893443074007482200683091362849686926064896357360886576164643274733582904147341807033809403240177000266720549515681405013881759880701815676191160280103824127519/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "lambda_above_tau": "1638104468552563163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "50635061208733400648677772840150925688644038358656664058590445106719673428821130341352827302262330080523433741445936596004665305339656498965113078388580918230790720507125018521905161675041363416498178495017535217543334928120639346258174946135939359875631329575729437270068290310112106893294214587667141755498567657768489879989360824166728093309433741707968638056176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_internal": "1638104468552563163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "1638104468552563163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_leaf": "25317530604366700324338861103363910711897976422430095242280245807297900487841748860477114229358224060880235995009895393896313009472081813441354430841994591540709836494914962674625890756636669498193241968237849204077749159123792893443074007482200683091362849686926064896357360886576164643274733582904147341807033809403240177000266720549515681405013881759880701815676191160280103824127519/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "lambda_prime_below_one": "819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "epsilon_positive": "499999999999999999999999500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481", + "epsilon_below_one": "819052234276281581988681650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481", + "guard_width": "819052234276281581988681650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481", + "K_geometry": "375819052234276281581988306650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481000000000000000000000000", + "K_dominates_log": "819052234276281581988305831291164747112497137089985745889078629498444508121630466090678521942253493419768693068542263780868624482104333964327747870763913196454039465471014880541103604859515879319965649953199825416769432657652907432591749034118175344406130070266958440701530593387081417304325730476273522282790162774456739234357609465330342727147075086484293721835163118506839847700005213853601656056574296676191160280103824127519/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481000000000000000000000000", + "record_suffix": "819052234276281581988681650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481", + "phase_local": "6552417874210252655908952383694957910871051014991438370905792794541433841425668745439593218527361251396428893463034695354706972517035066207053556804459340502364558449577052739756134749395111140597584414656743138929416738879987963004047504920251625090304612017891553659061990645578598963029824204270240369779867027694127707841708372799507661488145208042637683952000065946187674934990271875731640929287681663676191160280103824127519/4006552417874210252655905453202747192187152633003173088714304816188620559238061758033541616796097266009116183086165134207512958112039920836848829495924223345492469164553264043267674321308040680298602992873946906644014454064254097206367378006727009656852455407940142394535269097202504591480829141112907390682853802131336766821265543729524774078583997866235603874548759888945920954385474590470717759169406979848000000000000000000000000", + "phase_boundary": "1310483574842050531181389821497204161148944612452967399461939843644986450976262318606299781649548444103482424530927329344340482885098396727989960065080664108389226806965818125616677702962566901715190115499217823717853487476710197910145099538643899608340285665777638030846712883574925778366511313944327823496825322624714250829273389179688398620946915054154584312992154789450911426610599499157433593762097785276191160280103824127519/801310483574842050531181090640549438437430526600634617742860963237724111847612351606708323359219453201823236617233026841502591622407984167369765899184844669098493832910652808653534864261608136059720598574789381328802890812850819441273475601345401931370491081588028478907053819440500918296165828222581478136570760426267353364253108745904954815716799573247120774909751977789184190877094918094143551833881395969600000000000000000000000", + "gamma_sublinear": "1/2000000000000000000000000", + "cell_above_band": "999999999999999999999998499180947765723718418011818349656600976605920874603363910711897976422430095242280245807297900487841748860477114229358224060880235995009895393896313009472081813441354430841994591540709836494914962674625890756636669498193241968237849204077749159123792893443074007482200683091362849686926064896357360886576164643274733582904147341807033809403240177000266720549515681405013881759880701815676191160280103824127519/2003276208937105126327952726601373596093576316501586544357152408094310279619030879016770808398048633004558091543082567103756479056019960418424414747962111672746234582276632021633837160654020340149301496436973453322007227032127048603183689003363504828426227703970071197267634548601252295740414570556453695341426901065668383410632771864762387039291998933117801937274379944472960477192737295235358879584703489924000000000000000000000000", + "prime_interval_packing": "819052234276281581988681650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481", + "alpha_positive": "1638104468552563163976862481634563770506576262611621835177180653076014412879350220283380621454411744559291578839184039719988388487094438570431434861291831383012685034629020289000393768364600916645339759196563155918576190689415058228513999874994382450963056062784757757610167743700155352407968369589697357639515429191552591892550575655927102550146808365934778040430149236746959145884329022693321552232446777676191160280103824127519/1001638104468552563163976363300686798046788158250793272178576204047155139809515439508385404199024316502279045771541283551878239528009980209212207373981055836373117291138316010816918580327010170074650748218486726661003613516063524301591844501681752414213113851985035598633817274300626147870207285278226847670713450532834191705316385932381193519645999466558900968637189972236480238596368647617679439792351744962000000000000000000000000", + "alpha_below_one": "999999999999999999999999500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481/1001638104468552563163976363300686798046788158250793272178576204047155139809515439508385404199024316502279045771541283551878239528009980209212207373981055836373117291138316010816918580327010170074650748218486726661003613516063524301591844501681752414213113851985035598633817274300626147870207285278226847670713450532834191705316385932381193519645999466558900968637189972236480238596368647617679439792351744962000000000000000000000000", + "alpha_below_one_fourth": "248771421648585577627017228343537135741190463300086696209466870358712770539499509656812970428301667381010469864046136848249571493515400613732620408633972127710266637749949982415229251313387941602017347295425118509332327188326466017169447125545443721102315406933474141900844150831456381615143852949967014560038847204016995334436545907439371277361353058273790464118867343822373100503207832881726538395855489462823808839719896175872481/1001638104468552563163976363300686798046788158250793272178576204047155139809515439508385404199024316502279045771541283551878239528009980209212207373981055836373117291138316010816918580327010170074650748218486726661003613516063524301591844501681752414213113851985035598633817274300626147870207285278226847670713450532834191705316385932381193519645999466558900968637189972236480238596368647617679439792351744962000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "short_record_fallback": "499179606072598772480311402148474408118123182883479005839706434084956755806451031257215652087982540096205225952702801764245443943515902894377850872865992791294569418971958821879997066938658635630393252138108130101803694408368690930942805176228211541008907868916559035047531240059649263789292720572133671447987172886358442793799230276226027414847982511063094179748958200982545898161644202236622868139176802731955415502189973283597421996552305275755051139901996168637456950505327128361418796144736691384582352033243833838448795589894299055437315450938177891322243391470954963391683366139666685945165351980385475749693705235826717234912744884450534866634421005884013590848886938931511093583812327405774508612148422192836704694171801992912802800408866621855935429395634554773354940095081573095361/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000", + "artificial_boundary": "28052419342993682021247249128079134240326065809989929660744635599691201850094402332132639005101487842346088727267427372196578418314888024006715963784753078778910067134737173317725149130140262149862840168369445743667370744490155105381029015559236351350106095651287891678910774097290814709400031079629170576402052222361622051910395855906373991879959540904463729568180358580566567473435249679550700428075613733336971426519159688527617443/4006552417874210252655905453202747192187152633003173088714304816188620559238061758033541616796097266009116183086165134207512958112039920836848829495924223345492469164553264043267674321308040680298602992873946906644014454064254097206367378006727009656852455407940142394535269097202504591480829141112907390682853802131336766821265543729524774078583997866235603874548759888945920954385474590470717759169406979848000000000000000000000000", + "literal_scalar_guard": "1", + "row_product_gap": "23971789/25", + "balanced_prefix_above_kappa": "38183819452689079719809886841249397714384742459352804060462344492352376787479050636358261601309638930873796921593964825867794878992649157915017216005364240901526026788438536441191614119720715271410931201725194165755658920002562994980508558572156219306856316738527571074008649684480077192522433807903741353637645352848734961846432804834717590615304115908931884174902097469422254563530567059248983984879141737/125204763058569070395497045412585849755848519781349159022322025505894392476189429938548175524878039562784880721442660443984779941001247526151525921747631979546639661392289501352114822540876271259331343527310840832625451689507940537698980562710219051776639231498129449829227159287578268483775910659778355958839181316604273963164548241547649189955749933319862621079648746529560029824546080952209929974043968120250000000000000000", + "coordinate_movement_above_kappa": "2678997771671163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "152734776991704084602957965376815940514139946443332090845213288681307483572346297787713292212536456211336936546852973532829403576850832626669964257917769973078185920595108576606761048019592697580558687481526667419659305178203493948159883438366374036351218160397184291778235281829283158457015800127972326301126746054669673430289878561145904171864456640635994257249124071282702900014002970052672127099796670772127519/500819052234276281581988181650343399023394079125396636089288102023577569904757719754192702099512158251139522885770641775939119764004990104606103686990527918186558645569158005408459290163505085037325374109243363330501806758031762150795922250840876207106556925992517799316908637150313073935103642639113423835356725266417095852658192966190596759822999733279450484318594986118240119298184323808839719896175872481000000000000000000000000", + "bulk_exposure_above_kappa": "2678997771671163976366576895735151914486203526425970046507876127546862367379601401156454118041237038248573854191787960713604507127917595783295408264850628952482704906827346619838231975579888305441458163190612163390126946440627973068828462006307094369798122692522646431463040222393255252578141152928115499961037990474011172616932303269500594021811792765575176191160280103824127519/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "Gaussian_arithmetic_above_kappa": "244375943678157875930501693795814495028663328345778820590322915462953187862296019314973120055679589645434049158678489114912111286433190605666005576330644151241848384887361064065620921906922414231944922365667133417472886586209645136113103978939548962687673320569650462355856041072035343719069641266941305549857094901506637338721317292749226389341186518817430779268889105209316310966476330994869688663506610940927519/801310483574842050531181090640549438437430526600634617742860963237724111847612351606708323359219453201823236617233026841502591622407984167369765899184844669098493832910652808653534864261608136059720598574789381328802890812850819441273475601345401931370491081588028478907053819440500918296165828222581478136570760426267353364253108745904954815716799573247120774909751977789184190877094918094143551833881395969600000000000000000000000", + "scalar_work_above_kappa": "1221881721666998316757634796931799076516912735305210604538158934467174033621759715605744617049206346275803250351483988657127660188645009048290446306067968718320914670671387596960126243371772725180064761129832104060817754938275257807614123078386748176943195029075956281850477472994725319847643946749277084202980815934434252361989997096517996709092971886086087014146382800426526027792858847711643678676412639408127519/4006552417874210252655905453202747192187152633003173088714304816188620559238061758033541616796097266009116183086165134207512958112039920836848829495924223345492469164553264043267674321308040680298602992873946906644014454064254097206367378006727009656852455407940142394535269097202504591480829141112907390682853802131336766821265543729524774078583997866235603874548759888945920954385474590470717759169406979848000000000000000000000000", + "dimension_above_kappa": "124795236941430929642686524040103229963961367059900238692062716953458411584272914553804201262601011073573380879866978486889016980592717299716268957245017178368377554613074739549411204247562265181860270592409874438785479512217253628056678357292343943203869327074026769477629157450949302590232739024701721233683252491299467390473097111301085771890682871514854969535655369379371854350356016517212324589486598938998983984879141737/125204763058569070395497045412585849755848519781349159022322025505894392476189429938548175524878039562784880721442660443984779941001247526151525921747631979546639661392289501352114822540876271259331343527310840832625451689507940537698980562710219051776639231498129449829227159287578268483775910659778355958839181316604273963164548241547649189955749933319862621079648746529560029824546080952209929974043968120250000000000000000" + }, + "controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ], + "scope": "Conditional native exact-complex witness after complete conservative admission, moment and outer checks; PR559 exact-cover recurrence correction only, bit bad-residue surcharge and H1-H5 retained. The frozen PR582 plain-joint-prefix, added-kernel and entrance-promoted provider dispatch with the new frame coalescences composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/EXPORT-CONTROLS.json b/research/complex-571-cold14-k492-repacking-audit/EXPORT-CONTROLS.json new file mode 100644 index 0000000000..0541d7e5a3 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/EXPORT-CONTROLS.json @@ -0,0 +1,11 @@ +{ + "exact_plan_bytes": true, + "exact_decompressed_owners": true, + "rejections": { + "duplicate": "REJECTED_BEFORE_OUTPUT", + "wrong_width": "REJECTED_BEFORE_OUTPUT", + "outside_port": "REJECTED_BEFORE_OUTPUT", + "wrong_source_hash": "REJECTED_BEFORE_OUTPUT", + "optimized_mode": "REJECTED_BEFORE_OUTPUT" + } +} diff --git a/research/complex-571-cold14-k492-repacking-audit/GENERATED-IDENTITY-CONTROLS.json b/research/complex-571-cold14-k492-repacking-audit/GENERATED-IDENTITY-CONTROLS.json new file mode 100644 index 0000000000..03e620b3e8 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/GENERATED-IDENTITY-CONTROLS.json @@ -0,0 +1,300 @@ +{ + "status": "PASS_GENERATED_ARTIFACT_RECOMPRESSION_AND_REBOUND_MUTATIONS", + "kappa": "408856367695223/250000000000000000", + "source_owner_sha256": "bfb2f606c6870f43187f0288d5923a84a6672c4901e8f2d083b89ad1e49570fe", + "source_invoice_sha256": "5da03191ab1ddede31b48d46f183aa611f7297eafa0e93bbb711d9c42eb0c540", + "source_providers": { + "ck": { + "raw": { + "CANONICAL-WORD.json.gz": "ae3018c0646be06f47d345bb8baf0e6ea9220096a949fa30a8f7656aa4ad6f45", + "LOCAL-PROGRAMS.json.gz": "b5da54e049cc127a1065190a647cb71cac0c6ba03d9ccdb71719f4fcbfa886f3", + "LOCAL-CHECKS.json": "059c4e59142bdf5c19dc7c0afebcddfec28e6e60cbc7299b8bdcc624afbc0cbe", + "INDEPENDENT-LOCAL-REPLAY.json": "ecefb9e661301d8081522be68bbe6640e175c011eb1177f643383d193c6fb2f0", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "64d2ebc80317196f8fa1628a5abee8152b6d102a5d86049bebd563b6989c8da4", + "RESIDUAL-ADAPTERS.json": "4697965c1b466fd3eaf37fa1fbbd45bb06c78cb0fe0b3a253744efb4013581b9" + }, + "semantic": { + "CANONICAL-WORD.json.gz": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "LOCAL-PROGRAMS.json.gz": "854f17274092263dc25e60367f4cd0d29f60a8446becd17cc1883ebed7a97900", + "LOCAL-CHECKS.json": "9e7be4f5eb567ffe886871b3fa434cc71f352e91cc9da07cb4e72c5742f24db4", + "INDEPENDENT-LOCAL-REPLAY.json": "ad854d9d15515cbcf7a2bee221d9c3cf0c7215770521866b12ce98aa777e310b", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "RESIDUAL-ADAPTERS.json": "8283dfa442fc7e7626f3356385bda8607b8d15eecfdc9515a6271c29da6caa7a" + } + }, + "jp8": { + "raw": { + "CANONICAL-WORD.json.gz": "7a3fec1022d3b2b1bd986302a327735ec521d17b043f4a5acb96253a56f6193c", + "LOCAL-PROGRAMS.json.gz": "fa0c196f65bd6ec1424fdf7d789f6972075c7bb02bf43f573ea85eafab31be98", + "LOCAL-CHECKS.json": "0fad744aa863eedb288a9f87b1c23225a36b316b6275cc3b1bcedd42afe28a67", + "INDEPENDENT-LOCAL-REPLAY.json": "cb2f99ed351925dd35434b73de16f4085884fe81a35a69e1c7ce2d5e96cb975b", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "9c95c74f4bd2343a1a788dd38b42644e18b2be7cc5c69342ad2f48f846f75475", + "RESIDUAL-ADAPTERS.json": "bdb44cf523636f307ebb3617da548f2e3a8af74321eabe24aef40186e280a917" + }, + "semantic": { + "CANONICAL-WORD.json.gz": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "LOCAL-PROGRAMS.json.gz": "efe45ce7fb025a6f53cc9eb54e951ac2211a5ed927e689a049e4f68ca680654b", + "LOCAL-CHECKS.json": "e29bdcebdc2966979a9f5911f56b68c6f4942f6fdbeb6737e9db44e147d0193a", + "INDEPENDENT-LOCAL-REPLAY.json": "f31a73829f5de91fe98c3986bb2ad9b31e7b33881720029347051ab2b686af3c", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "RESIDUAL-ADAPTERS.json": "99e1873464e8e718ea25fd80df5aaed0e5508b83e9bf2bdd094ea5c95fdf87c9" + } + } + }, + "recompression_changed_raw_hashes": { + "ck": { + "CANONICAL-WORD.json.gz": [ + "ae3018c0646be06f47d345bb8baf0e6ea9220096a949fa30a8f7656aa4ad6f45", + "596294d68a0f4bc1b6ec661f733fde4159a024014bf7ff2e708aa8f4c2374a2f" + ], + "LOCAL-PROGRAMS.json.gz": [ + "b5da54e049cc127a1065190a647cb71cac0c6ba03d9ccdb71719f4fcbfa886f3", + "2ddc2bd33320eed9de29a791d20e7d9622f01a9f2d368d95a83c151078a59cff" + ] + }, + "jp8": { + "CANONICAL-WORD.json.gz": [ + "7a3fec1022d3b2b1bd986302a327735ec521d17b043f4a5acb96253a56f6193c", + "1b22aeed987168c7a39d0bd62c050ad4a3000097cc52fdaaa26721dd5a5fd61f" + ], + "LOCAL-PROGRAMS.json.gz": [ + "fa0c196f65bd6ec1424fdf7d789f6972075c7bb02bf43f573ea85eafab31be98", + "3913c10ea6c5bd27aa61022891c5e627bb01c28ab89bafb6792f9a1f657f909e" + ] + } + }, + "accepted": [ + { + "provider": "ck", + "case": "recompressed_same_payloads", + "changed_raw_artifacts": [ + "CANONICAL-WORD.json.gz", + "LOCAL-PROGRAMS.json.gz" + ], + "all_seven_identities_unchanged": true, + "all_raw_links_rebound": true + }, + { + "provider": "jp8", + "case": "recompressed_same_payloads", + "changed_raw_artifacts": [ + "CANONICAL-WORD.json.gz", + "LOCAL-PROGRAMS.json.gz" + ], + "all_seven_identities_unchanged": true, + "all_raw_links_rebound": true + } + ], + "semantic_mutations_rejected": [ + { + "provider": "ck", + "case": "changed_actual_scalar", + "changed_identity": "LOCAL-PROGRAMS.json.gz", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "changed_actual_start_frame_same_rank", + "changed_identity": "CANONICAL-WORD.json.gz", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "native_false_restoration", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "native_wrong_column_count", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "native_changed_profile", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "phase_false_global_equality", + "changed_identity": "CLIFFORD-REVIEW.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "local_event_hash_is_not_a_container_reference", + "changed_identity": "LOCAL-CHECKS.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "unrelated_native_root_seconds_retained", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "ck", + "case": "nested_phase_seconds_retained", + "changed_identity": "CLIFFORD-REVIEW.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "changed_actual_scalar", + "changed_identity": "LOCAL-PROGRAMS.json.gz", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "changed_actual_start_frame_same_rank", + "changed_identity": "CANONICAL-WORD.json.gz", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "native_false_restoration", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "native_wrong_column_count", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "native_changed_profile", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "phase_false_global_equality", + "changed_identity": "CLIFFORD-REVIEW.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "local_event_hash_is_not_a_container_reference", + "changed_identity": "LOCAL-CHECKS.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "unrelated_native_root_seconds_retained", + "changed_identity": "INDEPENDENT-LOCAL-REPLAY.json", + "all_raw_and_semantic_links_rebound": true + }, + { + "provider": "jp8", + "case": "nested_phase_seconds_retained", + "changed_identity": "CLIFFORD-REVIEW.json", + "all_raw_and_semantic_links_rebound": true + } + ], + "invalid_references_or_metadata_rejected": [ + { + "provider": "ck", + "case": "stale_native_word_link", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "stale_native_program_link", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "stale_phase_word_link", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "stale_phase_recipe_link", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "invalid_phase_seconds_negative", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "invalid_phase_seconds_boolean", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "invalid_phase_seconds_string", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "invalid_phase_seconds_nan", + "rejected_before_projection": true + }, + { + "provider": "ck", + "case": "invalid_phase_seconds_infinity", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "stale_native_word_link", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "stale_native_program_link", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "stale_phase_word_link", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "stale_phase_recipe_link", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "invalid_phase_seconds_negative", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "invalid_phase_seconds_boolean", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "invalid_phase_seconds_string", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "invalid_phase_seconds_nan", + "rejected_before_projection": true + }, + { + "provider": "jp8", + "case": "invalid_phase_seconds_infinity", + "rejected_before_projection": true + } + ], + "counts": { + "recompression_accepted": 2, + "semantic_rejected": 18, + "reference_or_metadata_rejected": 18 + }, + "scope": "Actual copied gzip streams and receipt JSON are changed. All seven content identities, raw source links and owner/invoice digests are recomputed consistently before assembly. Only identical decompressed payloads are accepted; scalar, same-rank frame, native proof fields, global phase, event hashes and unrelated seconds remain pinned. Literal references and invalid phase timing are rejected before normalization. Full physical replay remains a separate prerequisite." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/PHASE-TIMING-CONTROLS.json b/research/complex-571-cold14-k492-repacking-audit/PHASE-TIMING-CONTROLS.json new file mode 100644 index 0000000000..1e179a117b --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/PHASE-TIMING-CONTROLS.json @@ -0,0 +1,15 @@ +{ + "status": "PASS_PHASE_REVIEW_TIMING_PORTABILITY_AND_SEMANTIC_REJECTION", + "timing_only_accepted": [ + "ck", + "jp8" + ], + "substantive_phase_failure_rejected": [ + "ck", + "jp8" + ], + "kappa": "408856367695223/250000000000000000", + "source_owner_sha256": "bfb2f606c6870f43187f0288d5923a84a6672c4901e8f2d083b89ad1e49570fe", + "source_invoice_sha256": "5da03191ab1ddede31b48d46f183aa611f7297eafa0e93bbb711d9c42eb0c540", + "scope": "Actual phase receipt JSON is changed, raw artifact bindings and owner digest are consistently recomputed, and all substantive semantics are freshly hashed. Only seconds may vary; no phase correctness field is omitted from the frozen digest." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/PREDECESSOR-RECEIPT.json b/research/complex-571-cold14-k492-repacking-audit/PREDECESSOR-RECEIPT.json new file mode 100644 index 0000000000..4619809e33 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/PREDECESSOR-RECEIPT.json @@ -0,0 +1,452 @@ +{ + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "steps": [ + { + "name": "frozen558-full-replay", + "exit_code": 0, + "seconds": 125.991, + "log_sha256": "c688fcdd86231d9af0b03f57029c6ff710041afe9fd31c346380afac92ee1781" + }, + { + "name": "jp8_504-step0-cold_kernel-construction", + "exit_code": 0, + "seconds": 0.209, + "log_sha256": "7a13ad21a3e4e12710e37ab9d1c54a90b2b8741fc3f5f620c363844e9cd766fb" + }, + { + "name": "jp8_504-step0-cold_kernel-omissions", + "exit_code": 0, + "seconds": 1.806, + "log_sha256": "a64c8d0998fb64a4ef0b28a96637f208b8cbbb22b02c43a71ca5b4f00c275e32" + }, + { + "name": "ck_504-step0-greedy_kernels-construction", + "exit_code": 0, + "seconds": 3.159, + "log_sha256": "23ca231febd30ee092f617f0506d120c01e421bc3c814ba82b11d912c7f15869" + }, + { + "name": "jp8_504-step1-multicut-construction", + "exit_code": 0, + "seconds": 1.841, + "log_sha256": "6f1fd8e202891558084ac9ee00606bbff0659c869f1bf6414461d87f6b67c53c" + }, + { + "name": "jp8_504-step1-multicut-omissions", + "exit_code": 0, + "seconds": 8.126, + "log_sha256": "3f52a3d40481d4e9360d9320bab4a42c580cccdefdc3cab2e4f8225263018c90" + }, + { + "name": "ck_504-step0-greedy_kernels-omissions", + "exit_code": 0, + "seconds": 12.062, + "log_sha256": "e57622df5f252d2027d1c92e3fa8aae67d5db2a4318df110fcc8d9db99c0a2b3" + }, + { + "name": "jp8_504-step2-frozen558_scalar_audits-static44", + "exit_code": 0, + "seconds": 4.691, + "log_sha256": "349924aaa9888edbe6e126e02df3a186c97d9fb4c064667252ce9918987134ea" + }, + { + "name": "ck_504-step1-frame_coalesce-construction", + "exit_code": 0, + "seconds": 1.585, + "log_sha256": "3d2d67cbd82dd5b79c3cfea987b31bcc6a16283c68c6b13b9801e009cc94e09c" + }, + { + "name": "jp8_504-step2-frozen558_scalar_audits-rank5", + "exit_code": 0, + "seconds": 1.118, + "log_sha256": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db" + }, + { + "name": "ck_504-step2-gate_move_coalesce-construction", + "exit_code": 0, + "seconds": 1.109, + "log_sha256": "0ebcf2ca688428a23e0ad3e734b35dd9004972405ca1cca679663e42df96b032" + }, + { + "name": "jp8_504-step3-joint_prefix-construction", + "exit_code": 0, + "seconds": 0.264, + "log_sha256": "9d4cf22962c6e9358f935ca7d6ea5bc0fb64b54112d6d8d3ce5ad63fb2fb037c" + }, + { + "name": "jp8_504-step3-joint_prefix-all-kernel-omissions", + "exit_code": 0, + "seconds": 33.111, + "log_sha256": "13fae47d3799fead98d1c0df5702516c3cbebf27636a35ae3e7d494274fef5cf" + }, + { + "name": "jp8_504-step3-joint_prefix-rank5-omissions", + "exit_code": 0, + "seconds": 1.127, + "log_sha256": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db" + }, + { + "name": "jp8_504-step3-joint_prefix-independent-joint-prefix-and-coverage", + "exit_code": 0, + "seconds": 0.155, + "log_sha256": "71720fe1f7eeabaf40bb9d8b84fa9f203a058fd26147c80124801e6e94dc8d34" + }, + { + "name": "k-triangle-control-pr531-construct504", + "exit_code": 0, + "seconds": 0.268, + "log_sha256": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7" + }, + { + "name": "k-triangle-control-empty-schedule", + "exit_code": 0, + "seconds": 0.265, + "log_sha256": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7" + }, + { + "name": "ck-base-k_triangle-construction", + "exit_code": 0, + "seconds": 0.264, + "log_sha256": "ba6767bc74e7e91330d27026fa81875d2b116f7a34b818a037d94f1bd519b778" + }, + { + "name": "jp8-step0-port_stage-construction", + "exit_code": 0, + "seconds": 0.244, + "log_sha256": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b" + }, + { + "name": "ck-step0-port_stage-construction", + "exit_code": 0, + "seconds": 0.248, + "log_sha256": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b" + }, + { + "name": "ck-step0-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.541, + "log_sha256": "d4c87a59eaecd3286d499958013febbb6351ff54385cb43a8b8d0d6e7f3664cd" + }, + { + "name": "jp8-step0-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.545, + "log_sha256": "a4d85ca5282ae6ffb18c4a2685fdcbd49a334004ebb70141cbb9f2e4b64a90d0" + }, + { + "name": "ck-step1-port_stage-construction", + "exit_code": 0, + "seconds": 0.249, + "log_sha256": "d433afce182797b5de84635d88c1b918fe628da48683cfa7d15546629642f4b0" + }, + { + "name": "jp8-step1-port_stage-construction", + "exit_code": 0, + "seconds": 0.252, + "log_sha256": "12c7d03fdeb93f55d8fd4dd5fa47b84ea99084a3893c7413b4075498a25852eb" + }, + { + "name": "ck-step1-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.55, + "log_sha256": "1f2167e61c1aa53a65cb3b86486fc70cb0bc627fad24a1175aa4bdb612ecdc13" + }, + { + "name": "jp8-step1-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.552, + "log_sha256": "705946f012e4af0658034018e6906c077ac2ec8d009bd68a5b29048c797148cf" + }, + { + "name": "ck-step2-port_stage-construction", + "exit_code": 0, + "seconds": 0.25, + "log_sha256": "0d89761796a80cd1d804f43b1143b1e87c0d242f5e3d5d6173dea5959a254185" + }, + { + "name": "jp8-step2-port_stage-construction", + "exit_code": 0, + "seconds": 0.253, + "log_sha256": "51feeab86b59709dfa97c1c0c42c002f536c6cfa77dbcd63dc23825356789a1b" + }, + { + "name": "ck-step2-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.549, + "log_sha256": "8ff63cef59b943a9b31ddac42689de1aa813360ab184397bd72a908ae3e16268" + }, + { + "name": "jp8-step2-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.558, + "log_sha256": "b93349ea2cf4f077e20a1e0b95f06b9547be349d65664813090cafa5e2a2f452" + }, + { + "name": "ck-step3-port_stage-construction", + "exit_code": 0, + "seconds": 0.253, + "log_sha256": "d6ecdc9b0ecb72130e1b65fee83b51461ae229df5045506b44d86ed783e78f0a" + }, + { + "name": "jp8-step3-port_stage-construction", + "exit_code": 0, + "seconds": 0.255, + "log_sha256": "9383ac7971bd0358340a8a57395564dbe2b3e7100a05412edd6982cfa897de70" + }, + { + "name": "ck-step3-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.572, + "log_sha256": "993e6fab3674f9623929972c0d793dabf1e39e2e67a11bf4eecaa3b2c95ccc80" + }, + { + "name": "jp8-step3-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.569, + "log_sha256": "696b8b30ff872ae7cb3614b2f323d6bdcdf86ce94f007bc31fc1d93b7c48a9db" + }, + { + "name": "ck-step4-port_stage-construction", + "exit_code": 0, + "seconds": 0.261, + "log_sha256": "59f0ef9eb4ae0edb7c3a4dfed4a645afb7e46b3d8e13c0d44bd8ea8bdafadf94" + }, + { + "name": "ck-step4-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.563, + "log_sha256": "784c83838d2fab57a58bae58fdb05d2741f49c6320d4e15f876382205cc12e94" + }, + { + "name": "jp8-step4-frame_regroup-construction", + "exit_code": 0, + "seconds": 5.633, + "log_sha256": "032f531192f4305265166b93d6789916d173e8794187d423d4c57f05b82d4b91" + }, + { + "name": "jp8-step5-hyperplane_end-construction", + "exit_code": 0, + "seconds": 0.054, + "log_sha256": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e" + }, + { + "name": "ck-step5-frame_regroup-construction", + "exit_code": 0, + "seconds": 5.696, + "log_sha256": "993d83424ca7f8f945c1febae876964d7d2933beccf0c8dc10a8ef17ce5fc015" + }, + { + "name": "ck-step6-hyperplane_end-construction", + "exit_code": 0, + "seconds": 0.062, + "log_sha256": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e" + }, + { + "name": "jp8-step5-hyperplane_end-controls", + "exit_code": 0, + "seconds": 6.022, + "log_sha256": "de8bf7850e7c2f92863ab3819e069aa16894e513d0462db2993cb9607064d377" + }, + { + "name": "jp8-step6-cold_end-construction", + "exit_code": 0, + "seconds": 0.176, + "log_sha256": "9eb5221c2e3415a108a1b8ee7aeb91d831e8b20434c88b3f9faca40e06c80c57" + }, + { + "name": "ck-step6-hyperplane_end-controls", + "exit_code": 0, + "seconds": 6.147, + "log_sha256": "b5b909b34d3c3db76b9628c1d2af2070c3a011b545aebfecd6b9b4ce824f19f3" + }, + { + "name": "ck-step7-cold_end-construction", + "exit_code": 0, + "seconds": 0.171, + "log_sha256": "f7e01bc5464dc87cce68ba24441bdcb93933aedef565f18410cb68a2f635e30d" + }, + { + "name": "jp8-step6-cold_end-controls", + "exit_code": 0, + "seconds": 21.223, + "log_sha256": "ec659593fef5df3a796f8c989b4c69b1cd9028ed8900dc6f27cd66cef48e00b7" + }, + { + "name": "ck-step7-cold_end-controls", + "exit_code": 0, + "seconds": 20.994, + "log_sha256": "6d0bfeed8691de7574ed5fddde6880fe6e3b803f04eb1494957c7821499a33fe" + }, + { + "name": "jp8-all-columns-native-frames", + "exit_code": 0, + "seconds": 1.127, + "log_sha256": "6d68da974220b0239d26e9d8b6d7e4c1e2daf10baca7fa443ef4292654d5cb3b" + }, + { + "name": "jp8-both-reflected-ledgers", + "exit_code": 0, + "seconds": 0.721, + "log_sha256": "38d4787e331b6f91d4adff91964bb4b078dd9a6be0c6dc8afc98ea729bfad519" + }, + { + "name": "ck-all-columns-native-frames", + "exit_code": 0, + "seconds": 1.069, + "log_sha256": "e0369b0ea1309ec3b0e02a918c9e2aacc8b8dca12e98a148f5dde6bfa37a9f06" + }, + { + "name": "ck-both-reflected-ledgers", + "exit_code": 0, + "seconds": 0.721, + "log_sha256": "784c198ff89d3d113ba3bc384d227d1cd362af9eee75f77d833cd6b0595d29ad" + }, + { + "name": "jp8-independent-local-controls", + "exit_code": 0, + "seconds": 6.543, + "log_sha256": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a" + }, + { + "name": "ck-independent-local-controls", + "exit_code": 0, + "seconds": 6.454, + "log_sha256": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a" + }, + { + "name": "jp8-normalized-wrappers", + "exit_code": 0, + "seconds": 1.46, + "log_sha256": "74b13cf8570ca2f32ce0018575b1b73e95af77a28e59d09556fec59260bdbba5" + }, + { + "name": "ck-normalized-wrappers", + "exit_code": 0, + "seconds": 2.146, + "log_sha256": "24dae49ef485401b479048ab5f7ce92a06e5aac790169093933a14f807ef38f9" + }, + { + "name": "jp8-all-phase-edges", + "exit_code": 0, + "seconds": 100.433, + "log_sha256": "7f8f1dac3d8e77f00d5bf339116c3bd0d91da138f3edb63edbcf6df080ef3488" + }, + { + "name": "ck-all-phase-edges", + "exit_code": 0, + "seconds": 103.863, + "log_sha256": "b890e8467744ff9f4a338f9b80af02141f9ca88dc2b6e37d730c6b4055a99c06" + }, + { + "name": "bind-providers", + "exit_code": 0, + "seconds": 0.353, + "log_sha256": "71f679ce5a123fb58397fd6852ba64ce3832fd20e81a096bfda9a1cf3237237a" + }, + { + "name": "emit-controller", + "exit_code": 0, + "seconds": 2.94, + "log_sha256": "09b8516d54c330431117f0739256f536c4cd39b10b10e5c59cb1ca73ea5c26ba" + }, + { + "name": "independent-controller-and-controls", + "exit_code": 0, + "seconds": 22.482, + "log_sha256": "f56c0f234324922c678c42d4052313db50c3c9a8c59cce07ed3bf07a68e3f9f8" + }, + { + "name": "fresh-invoice", + "exit_code": 0, + "seconds": 1.126, + "log_sha256": "5c9c8bbc4fe678c3afe7840c166849cbf0ac7c7f5b6434efb74d2a17ef29f0c7" + }, + { + "name": "conservative-and-native-exact-assembly", + "exit_code": 0, + "seconds": 0.273, + "log_sha256": "dabe83a22469fb597e177d5700e23cf478fc0ec74f7af8c5aa85a28c7527361b" + }, + { + "name": "admission-controls", + "exit_code": 0, + "seconds": 0.364, + "log_sha256": "40f0c35552fb10f02288ae8d2c6b9f902050fb370c0a19b7b88c977d0d44dab1" + }, + { + "name": "phase-timing-portability-controls", + "exit_code": 0, + "seconds": 0.768, + "log_sha256": "d4300a182a615922dd73ff2b945ff671086b86d5b80dbc009539e96d9b4dfe82" + }, + { + "name": "actual-recompression-and-rebound-controls", + "exit_code": 0, + "seconds": 3.233, + "log_sha256": "9c20730203542b9a5ed97e1ce2e2c51526e88de0b2983d4f15d7e550b8ed02ea" + } + ], + "artifacts": { + "PHASE-TIMING-CONTROLS.json": "f56a04032407caa057c432465c8a392654baced2946aac7b682d3428db231664", + "GENERATED-IDENTITY-CONTROLS.json": "3d10a25345f834e1c139ca8b5a55763d5c0752af7d3be75b9d24c0542971eabd", + "mixed-global/audit/IDLE-REMAINDER-FRAMES.json": "4c3c695d35e0a7eb344d5766df7bffe1ccf4d29732fa5390f0983e7e74228c0b", + "RESULT.json": "778700b3c0a9762d8648352b371e8e9f773f6fd17e5b3c3f75acce27349fd304", + "ASSEMBLY.json": "5d5297aa66ec6b4f7d215e23f7a2aac4a2cc21a97fd6e82f7d6bb0cf470a5e7c", + "ASSEMBLY-CONTROLS.json": "0384d27bea847985ca72551749fac92618829d375cbcae94db6073905212bd4b", + "mixed-global/BINDING.json": "2b1b797c64d59e3c86bea434744270c703409759dbe730025803b2687a5511f7", + "mixed-global/audit/ASYNC-AUDIT.json": "f56c0f234324922c678c42d4052313db50c3c9a8c59cce07ed3bf07a68e3f9f8", + "mixed-global/audit/OWNERS-AND-PROFILE.json": "171dcdc387034e95ddf12161eb78493685045eae52633ed64937652d1a43dd0c", + "mixed-global/audit/PREFIX-AND-INVOICE.json": "45e4926b5ae79a450451e3f543225ebe0d987e3df3b6e579a966b77f858d4113", + "ck-step0-port_stage/PORT-STAGE.json": "8dcd9d4bdc68f0c12983d1cf8d2a69ff45f1d3a2c7331ded71d8ed4eefa7b7a3", + "ck-step1-port_stage/PORT-STAGE.json": "86acd0e3f9633966842196c473580bc39b6e4317e60ce344b3eef6785fb62a6b", + "ck-step2-port_stage/PORT-STAGE.json": "9b4fa48ad957ef55281f0f609d533ddeb08dde6d67d8278ee476a140efab46bd", + "ck-step3-port_stage/PORT-STAGE.json": "6ec349bc48baf048c51de17ec5a3a622adfa33bd0701c02a9190f062cc2a228f", + "ck-step4-port_stage/PORT-STAGE.json": "74a2eeca59d70911d469c1929b8eefd2a4c217162fd8b6a26f0ae67fcaf2270e", + "ck-step5-frame_regroup/FRAME-CONSTRUCTION.json": "1cc9574677282e07ff1cd0eae97cb4b12390f2fc36188bf59136f3102e1900a0", + "ck-step6-hyperplane_end/HPE-ATC-CONTROLS.json": "1e5ea56793b8a01784bbefd382df15e2c281a54ca81509cb85bf72ef28930fe3", + "ck-step6-hyperplane_end/HPE-CONSTRUCTION.json": "5837d000007e931723c315e5a02b1a0d5ce5f5319f096212817eb35b79e61ab0", + "ck-step7-cold_end/COLD-END-CONSTRUCTION.json": "1a3447041353ee591ecafc4901e2dd41ea1c28fc68964c69244f586e3656cfc9", + "ck-step7-cold_end/COLD-END-CONTROLS.json": "b5f01eeb394664df01b27469fd8d3973a3e766cec08c58a398593f6ab6704d07", + "ck_504-step0-greedy_kernels/KERNEL-CONSTRUCTION.json": "23ca231febd30ee092f617f0506d120c01e421bc3c814ba82b11d912c7f15869", + "ck_504-step0-greedy_kernels/MULTICOLD-OMISSION-CONTROLS.json": "3c55bc8fd323a88c15eb6e455a063488468bb178583622bec26095aa6a989809", + "ck_504-step1-frame_coalesce/FRAME-CONSTRUCTION.json": "98951047f5967e77c30861a3ccef600845bf5db2b6ea554b716ea3655b093ff9", + "ck_504-step2-gate_move_coalesce/FRAME-CONSTRUCTION.json": "ec10bf97610cec2ed56ba7db2ae9e450afb2429feeacf5fd0c70068073c44627", + "jp8-step0-port_stage/PORT-STAGE.json": "8dcd9d4bdc68f0c12983d1cf8d2a69ff45f1d3a2c7331ded71d8ed4eefa7b7a3", + "jp8-step1-port_stage/PORT-STAGE.json": "4ad688a5668d6367164a367200d5c1ebd5ba765721cc796fc25dfe0dc4f36503", + "jp8-step2-port_stage/PORT-STAGE.json": "8da35cf6c12f90778e7da86fe100df52802ec7216e85e5dd881e9fc8c82931e7", + "jp8-step3-port_stage/PORT-STAGE.json": "3a76690d0599770f15223a3f39545c45cba5e00f0682ee7ffc5d03ded0236e2b", + "jp8-step4-frame_regroup/FRAME-CONSTRUCTION.json": "8e420626adb8007ae3fd08ba1be5415a4f9f397de7e04d0e4affbcfdd60d63e7", + "jp8-step5-hyperplane_end/HPE-ATC-CONTROLS.json": "265f320dc95cbc91b6d4a0b3185fe820796ce724828d0291e13de83a1156e7f1", + "jp8-step5-hyperplane_end/HPE-CONSTRUCTION.json": "1bf23a20bae96afe5bd89dd89757b580b68a7599b657bd583dffa2c747c83854", + "jp8-step6-cold_end/COLD-END-CONSTRUCTION.json": "4f24b4326bddff136392db7e33d997ca23a79a9b813a08e638df2689b98bb759", + "jp8-step6-cold_end/COLD-END-CONTROLS.json": "035a7352a3a84d2fa0b2b920f55b95298b6b2bb9804706024b78ea02f84c30d8", + "jp8_504-step0-cold_kernel/KERNEL-CONSTRUCTION.json": "7a13ad21a3e4e12710e37ab9d1c54a90b2b8741fc3f5f620c363844e9cd766fb", + "jp8_504-step0-cold_kernel/KERNEL-OMISSION-CONTROLS.json": "558f61371ebb3a417e63abb5a45c90eb4fc6ec52df5e18432e866b699bb67a32", + "jp8_504-step1-multicut/KERNEL-CONSTRUCTION.json": "6f1fd8e202891558084ac9ee00606bbff0659c869f1bf6414461d87f6b67c53c", + "jp8_504-step1-multicut/MULTICOLD-OMISSION-CONTROLS.json": "a0ff38b5efea16c328c11dbb83c3c685a65c278ff3d1d37afff8a9c332bbcc6f", + "jp8_504-step1-multicut/PROMOTION.json": "9ad34faa8611a6ea7f161d2e1fe331ab1ba5ccec8fca3978e31c3e7bf789bc31", + "jp8_504-step2-frozen558_scalar_audits/PROMOTED-SCALAR-AUDIT.json": "acef3388bbbada95976d10552cecbc43d9e11c61860491676fe34e0aa362269f", + "jp8_504-step2-frozen558_scalar_audits/STATIC44-SCALAR-AUDIT.json": "28773da0a78f063c44297f9f4799f0239e12613f44a4bac93d539fc022eb757a", + "jp8_504-step3-joint_prefix/ALL-KERNEL-CONTROLS.json": "db5ff6c68a3f0824aa31125bb8e8d46304316024845188bb20333dbf5e20b99e", + "jp8_504-step3-joint_prefix/CONSTRUCTION.json": "78a1cbf92153d9caa9d58fa0cfdfd0a1938cbac6f544cc1e887fbb10ac2f315f", + "jp8_504-step3-joint_prefix/JOINT-PREFIX-AUDIT.json": "340aafb7f5a5dc1a743099b7a131c8363e80c98691ace1e960ccf11e574f41f3", + "jp8_504-step3-joint_prefix/PROMOTION.json": "9ad34faa8611a6ea7f161d2e1fe331ab1ba5ccec8fca3978e31c3e7bf789bc31", + "jp8_504-step3-joint_prefix/RANK5-CONTROLS.json": "c420c719c895dcc6997848dab9e170254b97deb37771b7d41771dbc28a43a1fc", + "ck-local/INDEPENDENT-LOCAL-REPLAY.json": "ecefb9e661301d8081522be68bbe6640e175c011eb1177f643383d193c6fb2f0", + "ck-local/CLIFFORD-REVIEW.json": "2edb332b8310b18730b9325eaa1448aa362fbe03e05c8d0c233dd2500f08eae6", + "ck-local/WRAPPER-CHECKS.json": "12273be34ad29567e9ed0bf00c07c5942a65b6c97e0aa1c380fab06e211652d1", + "jp8-local/INDEPENDENT-LOCAL-REPLAY.json": "cb2f99ed351925dd35434b73de16f4085884fe81a35a69e1c7ce2d5e96cb975b", + "jp8-local/CLIFFORD-REVIEW.json": "8ed59090b6e72efeeb1fc7505082fc67342729fcddd118eaff3070baa534ce14", + "jp8-local/WRAPPER-CHECKS.json": "195b51459f2d42650cc43d251bd9f1a58ad6bd2f27bb6f1bac98c2198ed52ff8" + }, + "manifest_sha256": "a99f104708fcd934e0d59be0d86f49cf2ba7009e7c59e9c7b70606af28bb52dc", + "spec_sha256": "a0efd32e51a98809e4312d529ad65e8ecd2f446a82c5eab5166b102b03244989", + "source_manifest_sha256": { + "multicold": "328ce8023d33deb308b0f1ae2320424050f836d791cf60a613ae8408e7d6f3ab", + "structural_gain": "eb0499a927665a48a25355075dcb7dc76d0fc43c67ea6d311d9e0242b6d4a25d", + "larger_gain": "54d67f45ad520f4a134e069336bd0ff639aaeada28d13539298e4f2655c9692d", + "joint_prefix": "fd30701bd9bd652985db18fa95bee08a34615ef417a2feb2f55efd60a0b5d665", + "frame_coalescing": "f336fd702c54422d79c1b9ba7d8699ae6c99518f66a5b5bbc5f3be331fa1fadd", + "direct_delivery": "c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1" + } +} diff --git a/research/complex-571-cold14-k492-repacking-audit/PREDECESSOR-RESULT.json b/research/complex-571-cold14-k492-repacking-audit/PREDECESSOR-RESULT.json new file mode 100644 index 0000000000..aab14bfee3 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/PREDECESSOR-RESULT.json @@ -0,0 +1,35 @@ +{ + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "kappa": "10221389468793/6250000000000000", + "kappa_decimal": "0.00163542231500688", + "complex_lower": "409525325607779437083/250000000000000000000000", + "bit_lower": "413456747036699736067/250000000000000000000000", + "conservative_kappa_decimal": "0.001635422312138865", + "conservative_complex_lower": "1638101299553699627189/1000000000000000000000000", + "global_profile": { + "1": 181579, + "2": 29864, + "3": 31267, + "4": 11520, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "21": 1, + "48": 2213 + }, + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "surcharge_model": { + "complex": false, + "bit": true + }, + "seconds": 362.2890631229384, + "reused": { + "baseline": false, + "locals": [] + }, + "scope": "Conditional native exact-complex witness after complete conservative admission, moment and outer checks; PR559 exact-cover recurrence correction only, bit bad-residue surcharge and H1-H5 retained. The frozen PR582 plain-joint-prefix, added-kernel and entrance-promoted provider dispatch with the new frame coalescences composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/README.md b/research/complex-571-cold14-k492-repacking-audit/README.md new file mode 100644 index 0000000000..92459bb64c --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/README.md @@ -0,0 +1,30 @@ +# Contributor evidence: PR622 owner repacking + +This directory records a repacking of PR622 at `f69477f4f6d3c7eb1f740b166881bffed4ffa9f6`. The source package is the sibling `complex-571-cold14-k492`. This is contributor validation awaiting independent review, with all inherited conditional assumptions retained. + +`PREDECESSOR-RESULT.json` and `PREDECESSOR-RECEIPT.json` record an independent fresh 64-stage replay of unchanged PR622. The new witness's result, receipt, raw stage logs and validation record are retained separately. `SOURCE-REVIEW.json` checks every unchanged inherited file, including all verifier code, atom inputs, recipes and source contracts. `EXPORT-CONTROLS.json` records exact nomination reproduction and five rejection controls. `SHA256SUMS.json` binds every retained file in this directory except itself. + +## Verification scope + +The new package is admitted by its unchanged default-SPEC verifier, with every provider rebuilt from pinned sources and no reused baseline or provider outputs. Both exact moment engines and the strict outer assembly are checked. The package's `OWNER-REPACKING.md` gives the commands and immutable dependencies. + +`SHARED-MAKE-VERIFY.log.gz` retains the passing full repository suite, including 84 isolated test modules, the gen4 checkpoint and historical patch checks. **That broad run used the earlier PR617 repacking worktree**, identified in `SHARED-REGRESSION-SCOPE.json`; it was not rerun on this PR622 worktree. All tracked Makefile, scripts, tests and other shared infrastructure files are identical between the two base commits. The only inherited differences are the standalone b3 and k492 packages, which those entrypoints do not invoke. The new k492 package has its separate fresh replay, including the inherited generalized-R and R504 checks. This explicit split avoids claiming tests ran on a checkout where they did not. + +## Search reproduction + +The portable reconstruction route is the package's standard-library `tools/replay_repacking.py`, using its recorded simultaneous moves and the pinned original PR622 data. The final exporter compares PLAN bytes and decompressed owner content; a regenerated gzip stream need not have identical container bytes across platforms. + +`search/` contains the as-run discovery scripts, settings/results and the successful intermediate map. Intermediate PLAN files are compressed as `PLAN.json.gz`; decompress them before using a retained directory as `--data` or `--candidate`. + +```sh +python3 anneal_owner_pair_swaps.py --data /path/to/pr622/data \ + --out /tmp/pairs0 --trials 3000000 --seed 0 --temperature 1 +python3 minimize_owner_profile_delta.py --base /path/to/pr622/data \ + --candidate /tmp/pairs0 --out /tmp/minimal --seconds 60 +``` + +The annealer sometimes exchanges two helpers from each owner simultaneously. Every proposal preserves whole helpers, capacity, windows and family uniqueness. Floating entropy guides discovery, not admission. The minimizer uses OR-Tools 9.15.6755 to choose each changed helper's original or proposed owner while preserving the global spare-rank profile. The timed solve reduces 11,626 changed placements to 5,027; a subsequent optimum is only over those retained choices, not all physical owner maps. The final nomination recipe records the selected map independently of solver timing. + +A three-million-trial single-helper search and a ten-million-trial pair-search continuation found no additional gain; their summaries are retained. The exploratory scripts are not used by the verifier. All mandatory admission checks are in the unchanged source package. + +Prepared by Jeremy Diviney with OpenAI Codex assistance, on Python 3.12.3 / Linux x86_64. Supplier and verifier construction credit remains with jeremykothe2, DreamingOfClouds and the predecessors named in the package NOTICE. No K-triangle construction or verifier generalization is attributed to this owner repacking. diff --git a/research/complex-571-cold14-k492-repacking-audit/RECEIPT.json b/research/complex-571-cold14-k492-repacking-audit/RECEIPT.json new file mode 100644 index 0000000000..fe62336670 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/RECEIPT.json @@ -0,0 +1,452 @@ +{ + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "steps": [ + { + "name": "frozen558-full-replay", + "exit_code": 0, + "seconds": 125.327, + "log_sha256": "d537dc0db209fe7b082bf0c82e7d6fbd6b94dfdad51bfbe6242d60f47d055ded" + }, + { + "name": "jp8_504-step0-cold_kernel-construction", + "exit_code": 0, + "seconds": 0.181, + "log_sha256": "7a13ad21a3e4e12710e37ab9d1c54a90b2b8741fc3f5f620c363844e9cd766fb" + }, + { + "name": "jp8_504-step0-cold_kernel-omissions", + "exit_code": 0, + "seconds": 1.79, + "log_sha256": "a64c8d0998fb64a4ef0b28a96637f208b8cbbb22b02c43a71ca5b4f00c275e32" + }, + { + "name": "ck_504-step0-greedy_kernels-construction", + "exit_code": 0, + "seconds": 3.064, + "log_sha256": "23ca231febd30ee092f617f0506d120c01e421bc3c814ba82b11d912c7f15869" + }, + { + "name": "jp8_504-step1-multicut-construction", + "exit_code": 0, + "seconds": 1.799, + "log_sha256": "6f1fd8e202891558084ac9ee00606bbff0659c869f1bf6414461d87f6b67c53c" + }, + { + "name": "jp8_504-step1-multicut-omissions", + "exit_code": 0, + "seconds": 7.895, + "log_sha256": "3f52a3d40481d4e9360d9320bab4a42c580cccdefdc3cab2e4f8225263018c90" + }, + { + "name": "ck_504-step0-greedy_kernels-omissions", + "exit_code": 0, + "seconds": 11.867, + "log_sha256": "e57622df5f252d2027d1c92e3fa8aae67d5db2a4318df110fcc8d9db99c0a2b3" + }, + { + "name": "jp8_504-step2-frozen558_scalar_audits-static44", + "exit_code": 0, + "seconds": 4.46, + "log_sha256": "349924aaa9888edbe6e126e02df3a186c97d9fb4c064667252ce9918987134ea" + }, + { + "name": "ck_504-step1-frame_coalesce-construction", + "exit_code": 0, + "seconds": 1.557, + "log_sha256": "3d2d67cbd82dd5b79c3cfea987b31bcc6a16283c68c6b13b9801e009cc94e09c" + }, + { + "name": "jp8_504-step2-frozen558_scalar_audits-rank5", + "exit_code": 0, + "seconds": 1.093, + "log_sha256": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db" + }, + { + "name": "jp8_504-step3-joint_prefix-construction", + "exit_code": 0, + "seconds": 0.253, + "log_sha256": "9d4cf22962c6e9358f935ca7d6ea5bc0fb64b54112d6d8d3ce5ad63fb2fb037c" + }, + { + "name": "ck_504-step2-gate_move_coalesce-construction", + "exit_code": 0, + "seconds": 1.108, + "log_sha256": "0ebcf2ca688428a23e0ad3e734b35dd9004972405ca1cca679663e42df96b032" + }, + { + "name": "jp8_504-step3-joint_prefix-all-kernel-omissions", + "exit_code": 0, + "seconds": 31.455, + "log_sha256": "13fae47d3799fead98d1c0df5702516c3cbebf27636a35ae3e7d494274fef5cf" + }, + { + "name": "jp8_504-step3-joint_prefix-rank5-omissions", + "exit_code": 0, + "seconds": 1.083, + "log_sha256": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db" + }, + { + "name": "jp8_504-step3-joint_prefix-independent-joint-prefix-and-coverage", + "exit_code": 0, + "seconds": 0.157, + "log_sha256": "71720fe1f7eeabaf40bb9d8b84fa9f203a058fd26147c80124801e6e94dc8d34" + }, + { + "name": "k-triangle-control-pr531-construct504", + "exit_code": 0, + "seconds": 0.256, + "log_sha256": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7" + }, + { + "name": "k-triangle-control-empty-schedule", + "exit_code": 0, + "seconds": 0.258, + "log_sha256": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7" + }, + { + "name": "jp8-base-k_triangle-construction", + "exit_code": 0, + "seconds": 0.263, + "log_sha256": "ba6767bc74e7e91330d27026fa81875d2b116f7a34b818a037d94f1bd519b778" + }, + { + "name": "ck-step0-port_stage-construction", + "exit_code": 0, + "seconds": 0.237, + "log_sha256": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b" + }, + { + "name": "jp8-step0-port_stage-construction", + "exit_code": 0, + "seconds": 0.242, + "log_sha256": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b" + }, + { + "name": "jp8-step0-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.534, + "log_sha256": "3af45e1d42f4e83b9497d004334256687c3be4305382c0feb41dd3b009bbeee4" + }, + { + "name": "ck-step0-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.542, + "log_sha256": "d2043154fa44c1d90a02cd02f8e9ddf69193fb68dcf19619ec256506c5718c60" + }, + { + "name": "ck-step1-port_stage-construction", + "exit_code": 0, + "seconds": 0.244, + "log_sha256": "d433afce182797b5de84635d88c1b918fe628da48683cfa7d15546629642f4b0" + }, + { + "name": "jp8-step1-port_stage-construction", + "exit_code": 0, + "seconds": 0.246, + "log_sha256": "12c7d03fdeb93f55d8fd4dd5fa47b84ea99084a3893c7413b4075498a25852eb" + }, + { + "name": "jp8-step1-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.547, + "log_sha256": "539cc7f16024a2ca83ffb5693cc6c2574bfa200f0f7a2e1913319d0f4523b385" + }, + { + "name": "ck-step1-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.564, + "log_sha256": "cca67e143bbd1088682a658df29d82614db3473fb802bd6c6ca348420410d73e" + }, + { + "name": "jp8-step2-port_stage-construction", + "exit_code": 0, + "seconds": 0.255, + "log_sha256": "51feeab86b59709dfa97c1c0c42c002f536c6cfa77dbcd63dc23825356789a1b" + }, + { + "name": "ck-step2-port_stage-construction", + "exit_code": 0, + "seconds": 0.259, + "log_sha256": "0d89761796a80cd1d804f43b1143b1e87c0d242f5e3d5d6173dea5959a254185" + }, + { + "name": "jp8-step2-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.552, + "log_sha256": "a7e94a0888fece52e83d3e30e32496858cb3d78f9d9771ce1fa66486cb11608a" + }, + { + "name": "ck-step2-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.545, + "log_sha256": "a5694b18b089fb76094e393e6667bbec0faa7394ec9fcdf42746b4133efd22f9" + }, + { + "name": "jp8-step3-port_stage-construction", + "exit_code": 0, + "seconds": 0.263, + "log_sha256": "9383ac7971bd0358340a8a57395564dbe2b3e7100a05412edd6982cfa897de70" + }, + { + "name": "ck-step3-port_stage-construction", + "exit_code": 0, + "seconds": 0.26, + "log_sha256": "d6ecdc9b0ecb72130e1b65fee83b51461ae229df5045506b44d86ed783e78f0a" + }, + { + "name": "ck-step3-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.543, + "log_sha256": "446da1fe59c823db7b40e508f24024c0643151430f9685222a86546c777a4a0d" + }, + { + "name": "jp8-step3-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.559, + "log_sha256": "14f1e6d03c95763ae4ba42cfbfeb84553d2886aef3c6939161f2576fe07765c5" + }, + { + "name": "ck-step4-port_stage-construction", + "exit_code": 0, + "seconds": 0.25, + "log_sha256": "59f0ef9eb4ae0edb7c3a4dfed4a645afb7e46b3d8e13c0d44bd8ea8bdafadf94" + }, + { + "name": "ck-step4-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.538, + "log_sha256": "db84994c1744007d57d512fc89f7f36737a188f6b5439db2f5e5b5345ff3ea58" + }, + { + "name": "jp8-step4-frame_regroup-construction", + "exit_code": 0, + "seconds": 5.557, + "log_sha256": "032f531192f4305265166b93d6789916d173e8794187d423d4c57f05b82d4b91" + }, + { + "name": "jp8-step5-hyperplane_end-construction", + "exit_code": 0, + "seconds": 0.053, + "log_sha256": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e" + }, + { + "name": "ck-step5-frame_regroup-construction", + "exit_code": 0, + "seconds": 5.572, + "log_sha256": "993d83424ca7f8f945c1febae876964d7d2933beccf0c8dc10a8ef17ce5fc015" + }, + { + "name": "ck-step6-hyperplane_end-construction", + "exit_code": 0, + "seconds": 0.053, + "log_sha256": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e" + }, + { + "name": "jp8-step5-hyperplane_end-controls", + "exit_code": 0, + "seconds": 5.88, + "log_sha256": "3f89a088aa79e99e4e8b8376fda02cf78986d1b34b53fccfe1328f350d7b2083" + }, + { + "name": "jp8-step6-cold_end-construction", + "exit_code": 0, + "seconds": 0.175, + "log_sha256": "9eb5221c2e3415a108a1b8ee7aeb91d831e8b20434c88b3f9faca40e06c80c57" + }, + { + "name": "ck-step6-hyperplane_end-controls", + "exit_code": 0, + "seconds": 5.992, + "log_sha256": "ded1c26cdef100f15baaebdc4efe60c0448f2ab814875866b112f90a7d67de3a" + }, + { + "name": "ck-step7-cold_end-construction", + "exit_code": 0, + "seconds": 0.171, + "log_sha256": "f7e01bc5464dc87cce68ba24441bdcb93933aedef565f18410cb68a2f635e30d" + }, + { + "name": "jp8-step6-cold_end-controls", + "exit_code": 0, + "seconds": 20.644, + "log_sha256": "42fb172a0b4f4a123a192563b7ca52c83ae39fa6c45f21dc9f5bcfb127f78fa0" + }, + { + "name": "ck-step7-cold_end-controls", + "exit_code": 0, + "seconds": 20.478, + "log_sha256": "6971fbf038267442e3f461c689537fedd2df3d6be012faf035b1f1d334b5ee7a" + }, + { + "name": "jp8-all-columns-native-frames", + "exit_code": 0, + "seconds": 1.088, + "log_sha256": "a57307e6677f0bd4d97c43841b39da7aa79f205fd6f70ac40e960d183401f575" + }, + { + "name": "jp8-both-reflected-ledgers", + "exit_code": 0, + "seconds": 0.708, + "log_sha256": "38d4787e331b6f91d4adff91964bb4b078dd9a6be0c6dc8afc98ea729bfad519" + }, + { + "name": "ck-all-columns-native-frames", + "exit_code": 0, + "seconds": 1.086, + "log_sha256": "751a9c638d8e8e98a16991f4f3003ca8bc8900b092f157e55d69e31957ec0845" + }, + { + "name": "ck-both-reflected-ledgers", + "exit_code": 0, + "seconds": 0.707, + "log_sha256": "784c198ff89d3d113ba3bc384d227d1cd362af9eee75f77d833cd6b0595d29ad" + }, + { + "name": "jp8-independent-local-controls", + "exit_code": 0, + "seconds": 6.359, + "log_sha256": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a" + }, + { + "name": "ck-independent-local-controls", + "exit_code": 0, + "seconds": 6.243, + "log_sha256": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a" + }, + { + "name": "jp8-normalized-wrappers", + "exit_code": 0, + "seconds": 1.408, + "log_sha256": "74b13cf8570ca2f32ce0018575b1b73e95af77a28e59d09556fec59260bdbba5" + }, + { + "name": "ck-normalized-wrappers", + "exit_code": 0, + "seconds": 2.048, + "log_sha256": "24dae49ef485401b479048ab5f7ce92a06e5aac790169093933a14f807ef38f9" + }, + { + "name": "jp8-all-phase-edges", + "exit_code": 0, + "seconds": 97.625, + "log_sha256": "da2fbff01aa8d5028ce62e04416699454928a943e088654cfb0788d244a1db61" + }, + { + "name": "ck-all-phase-edges", + "exit_code": 0, + "seconds": 100.121, + "log_sha256": "8fc40186d82a5fe3fd7eb430bb81afec1d931ec550b3afc1b7aef9b8d62e5331" + }, + { + "name": "bind-providers", + "exit_code": 0, + "seconds": 0.364, + "log_sha256": "71f679ce5a123fb58397fd6852ba64ce3832fd20e81a096bfda9a1cf3237237a" + }, + { + "name": "emit-controller", + "exit_code": 0, + "seconds": 2.856, + "log_sha256": "98d745196fc3b663589269633736bdd3442d96e30fd196c01ca81ac824489d52" + }, + { + "name": "independent-controller-and-controls", + "exit_code": 0, + "seconds": 21.301, + "log_sha256": "6576f2107ce954b3a8e9d21cf30e95e12a5eb219b83488c286255940c50e449c" + }, + { + "name": "fresh-invoice", + "exit_code": 0, + "seconds": 1.109, + "log_sha256": "5c9c8bbc4fe678c3afe7840c166849cbf0ac7c7f5b6434efb74d2a17ef29f0c7" + }, + { + "name": "conservative-and-native-exact-assembly", + "exit_code": 0, + "seconds": 0.254, + "log_sha256": "8f0bc98232643f33520c21eac259e925be9166124f606768b0f44b1f562c1c02" + }, + { + "name": "admission-controls", + "exit_code": 0, + "seconds": 0.35, + "log_sha256": "40f0c35552fb10f02288ae8d2c6b9f902050fb370c0a19b7b88c977d0d44dab1" + }, + { + "name": "phase-timing-portability-controls", + "exit_code": 0, + "seconds": 0.742, + "log_sha256": "d4300a182a615922dd73ff2b945ff671086b86d5b80dbc009539e96d9b4dfe82" + }, + { + "name": "actual-recompression-and-rebound-controls", + "exit_code": 0, + "seconds": 3.148, + "log_sha256": "9c20730203542b9a5ed97e1ce2e2c51526e88de0b2983d4f15d7e550b8ed02ea" + } + ], + "artifacts": { + "PHASE-TIMING-CONTROLS.json": "4cecb57298ec86e0352d66e89e8b88b04cac492e4c9b3cf299815d5a9576bbc5", + "GENERATED-IDENTITY-CONTROLS.json": "83b3b2e9418db2c6f89dcbc1803c59c17db0c6ab90fe8e58e56b645666dcf3f3", + "mixed-global/audit/IDLE-REMAINDER-FRAMES.json": "b635d814ef2a7c7daecd6a33cf4a79c2bbdf9de35bb4df4283a0c04150681d08", + "RESULT.json": "daf6bb4d7265f51bdc76acb7f7773c371661c67a57f0b6333ecfddd2bf5fe279", + "ASSEMBLY.json": "10bcdfdfe39f67e1e2b9e5e5f3338e2fc681fbfb93e73779421247d252d97d05", + "ASSEMBLY-CONTROLS.json": "c3b1ceedcc6d3be69fc41b6e70ac56d86e55b13132fe1da3cfe5f1810e6f2049", + "mixed-global/BINDING.json": "34a7e20368f8fa36d0556df269fb533c6f0235fa5e707a1e904e980536ba8b73", + "mixed-global/audit/ASYNC-AUDIT.json": "6576f2107ce954b3a8e9d21cf30e95e12a5eb219b83488c286255940c50e449c", + "mixed-global/audit/OWNERS-AND-PROFILE.json": "bfb2f606c6870f43187f0288d5923a84a6672c4901e8f2d083b89ad1e49570fe", + "mixed-global/audit/PREFIX-AND-INVOICE.json": "5da03191ab1ddede31b48d46f183aa611f7297eafa0e93bbb711d9c42eb0c540", + "ck-step0-port_stage/PORT-STAGE.json": "8dcd9d4bdc68f0c12983d1cf8d2a69ff45f1d3a2c7331ded71d8ed4eefa7b7a3", + "ck-step1-port_stage/PORT-STAGE.json": "86acd0e3f9633966842196c473580bc39b6e4317e60ce344b3eef6785fb62a6b", + "ck-step2-port_stage/PORT-STAGE.json": "9b4fa48ad957ef55281f0f609d533ddeb08dde6d67d8278ee476a140efab46bd", + "ck-step3-port_stage/PORT-STAGE.json": "6ec349bc48baf048c51de17ec5a3a622adfa33bd0701c02a9190f062cc2a228f", + "ck-step4-port_stage/PORT-STAGE.json": "74a2eeca59d70911d469c1929b8eefd2a4c217162fd8b6a26f0ae67fcaf2270e", + "ck-step5-frame_regroup/FRAME-CONSTRUCTION.json": "1cc9574677282e07ff1cd0eae97cb4b12390f2fc36188bf59136f3102e1900a0", + "ck-step6-hyperplane_end/HPE-ATC-CONTROLS.json": "e27ac65278a999cebe2d0b71eb33afa476bf7c09a95784293ce31cf730190fdc", + "ck-step6-hyperplane_end/HPE-CONSTRUCTION.json": "5837d000007e931723c315e5a02b1a0d5ce5f5319f096212817eb35b79e61ab0", + "ck-step7-cold_end/COLD-END-CONSTRUCTION.json": "1a3447041353ee591ecafc4901e2dd41ea1c28fc68964c69244f586e3656cfc9", + "ck-step7-cold_end/COLD-END-CONTROLS.json": "9d930d95466c80152a3682e6a0f5a059924313df9ce4797fd316179066ff100a", + "ck_504-step0-greedy_kernels/KERNEL-CONSTRUCTION.json": "23ca231febd30ee092f617f0506d120c01e421bc3c814ba82b11d912c7f15869", + "ck_504-step0-greedy_kernels/MULTICOLD-OMISSION-CONTROLS.json": "3c55bc8fd323a88c15eb6e455a063488468bb178583622bec26095aa6a989809", + "ck_504-step1-frame_coalesce/FRAME-CONSTRUCTION.json": "98951047f5967e77c30861a3ccef600845bf5db2b6ea554b716ea3655b093ff9", + "ck_504-step2-gate_move_coalesce/FRAME-CONSTRUCTION.json": "ec10bf97610cec2ed56ba7db2ae9e450afb2429feeacf5fd0c70068073c44627", + "jp8-step0-port_stage/PORT-STAGE.json": "8dcd9d4bdc68f0c12983d1cf8d2a69ff45f1d3a2c7331ded71d8ed4eefa7b7a3", + "jp8-step1-port_stage/PORT-STAGE.json": "4ad688a5668d6367164a367200d5c1ebd5ba765721cc796fc25dfe0dc4f36503", + "jp8-step2-port_stage/PORT-STAGE.json": "8da35cf6c12f90778e7da86fe100df52802ec7216e85e5dd881e9fc8c82931e7", + "jp8-step3-port_stage/PORT-STAGE.json": "3a76690d0599770f15223a3f39545c45cba5e00f0682ee7ffc5d03ded0236e2b", + "jp8-step4-frame_regroup/FRAME-CONSTRUCTION.json": "8e420626adb8007ae3fd08ba1be5415a4f9f397de7e04d0e4affbcfdd60d63e7", + "jp8-step5-hyperplane_end/HPE-ATC-CONTROLS.json": "610b401780729073265665c33d36803d7d0d0df4dd792350f9a9370af152af66", + "jp8-step5-hyperplane_end/HPE-CONSTRUCTION.json": "1bf23a20bae96afe5bd89dd89757b580b68a7599b657bd583dffa2c747c83854", + "jp8-step6-cold_end/COLD-END-CONSTRUCTION.json": "4f24b4326bddff136392db7e33d997ca23a79a9b813a08e638df2689b98bb759", + "jp8-step6-cold_end/COLD-END-CONTROLS.json": "46ba53923b79c8753fbdb9397747dd23d908d8bb85e1ea88e48c72112bcbee97", + "jp8_504-step0-cold_kernel/KERNEL-CONSTRUCTION.json": "7a13ad21a3e4e12710e37ab9d1c54a90b2b8741fc3f5f620c363844e9cd766fb", + "jp8_504-step0-cold_kernel/KERNEL-OMISSION-CONTROLS.json": "558f61371ebb3a417e63abb5a45c90eb4fc6ec52df5e18432e866b699bb67a32", + "jp8_504-step1-multicut/KERNEL-CONSTRUCTION.json": "6f1fd8e202891558084ac9ee00606bbff0659c869f1bf6414461d87f6b67c53c", + "jp8_504-step1-multicut/MULTICOLD-OMISSION-CONTROLS.json": "a0ff38b5efea16c328c11dbb83c3c685a65c278ff3d1d37afff8a9c332bbcc6f", + "jp8_504-step1-multicut/PROMOTION.json": "9ad34faa8611a6ea7f161d2e1fe331ab1ba5ccec8fca3978e31c3e7bf789bc31", + "jp8_504-step2-frozen558_scalar_audits/PROMOTED-SCALAR-AUDIT.json": "acef3388bbbada95976d10552cecbc43d9e11c61860491676fe34e0aa362269f", + "jp8_504-step2-frozen558_scalar_audits/STATIC44-SCALAR-AUDIT.json": "28773da0a78f063c44297f9f4799f0239e12613f44a4bac93d539fc022eb757a", + "jp8_504-step3-joint_prefix/ALL-KERNEL-CONTROLS.json": "db5ff6c68a3f0824aa31125bb8e8d46304316024845188bb20333dbf5e20b99e", + "jp8_504-step3-joint_prefix/CONSTRUCTION.json": "78a1cbf92153d9caa9d58fa0cfdfd0a1938cbac6f544cc1e887fbb10ac2f315f", + "jp8_504-step3-joint_prefix/JOINT-PREFIX-AUDIT.json": "340aafb7f5a5dc1a743099b7a131c8363e80c98691ace1e960ccf11e574f41f3", + "jp8_504-step3-joint_prefix/PROMOTION.json": "9ad34faa8611a6ea7f161d2e1fe331ab1ba5ccec8fca3978e31c3e7bf789bc31", + "jp8_504-step3-joint_prefix/RANK5-CONTROLS.json": "c420c719c895dcc6997848dab9e170254b97deb37771b7d41771dbc28a43a1fc", + "ck-local/INDEPENDENT-LOCAL-REPLAY.json": "ecefb9e661301d8081522be68bbe6640e175c011eb1177f643383d193c6fb2f0", + "ck-local/CLIFFORD-REVIEW.json": "64d2ebc80317196f8fa1628a5abee8152b6d102a5d86049bebd563b6989c8da4", + "ck-local/WRAPPER-CHECKS.json": "12273be34ad29567e9ed0bf00c07c5942a65b6c97e0aa1c380fab06e211652d1", + "jp8-local/INDEPENDENT-LOCAL-REPLAY.json": "cb2f99ed351925dd35434b73de16f4085884fe81a35a69e1c7ce2d5e96cb975b", + "jp8-local/CLIFFORD-REVIEW.json": "9c95c74f4bd2343a1a788dd38b42644e18b2be7cc5c69342ad2f48f846f75475", + "jp8-local/WRAPPER-CHECKS.json": "195b51459f2d42650cc43d251bd9f1a58ad6bd2f27bb6f1bac98c2198ed52ff8" + }, + "manifest_sha256": "14070a484caebdcc60ddd9fc1c52e4cfe1909ba4e5d897113263b47aab0523e9", + "spec_sha256": "a4218f6232aaf0c8c104204e4bd930da9478df5e4fb55e818b9784ccaf1f54fa", + "source_manifest_sha256": { + "multicold": "328ce8023d33deb308b0f1ae2320424050f836d791cf60a613ae8408e7d6f3ab", + "structural_gain": "eb0499a927665a48a25355075dcb7dc76d0fc43c67ea6d311d9e0242b6d4a25d", + "larger_gain": "54d67f45ad520f4a134e069336bd0ff639aaeada28d13539298e4f2655c9692d", + "joint_prefix": "fd30701bd9bd652985db18fa95bee08a34615ef417a2feb2f55efd60a0b5d665", + "frame_coalescing": "f336fd702c54422d79c1b9ba7d8699ae6c99518f66a5b5bbc5f3be331fa1fadd", + "direct_delivery": "c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1" + } +} diff --git a/research/complex-571-cold14-k492-repacking-audit/RESULT.json b/research/complex-571-cold14-k492-repacking-audit/RESULT.json new file mode 100644 index 0000000000..55ca9d3233 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/RESULT.json @@ -0,0 +1,35 @@ +{ + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "kappa": "408856367695223/250000000000000000", + "kappa_decimal": "0.001635425470780892", + "complex_lower": "1638104468552563164027/1000000000000000000000000", + "bit_lower": "413456747036699736067/250000000000000000000000", + "conservative_kappa_decimal": "0.001635425467912872", + "conservative_complex_lower": "327620893135027892143/200000000000000000000000", + "global_profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "surcharge_model": { + "complex": false, + "bit": true + }, + "seconds": 352.9921769950306, + "reused": { + "baseline": false, + "locals": [] + }, + "scope": "Conditional native exact-complex witness after complete conservative admission, moment and outer checks; PR559 exact-cover recurrence correction only, bit bad-residue surcharge and H1-H5 retained. The frozen PR582 plain-joint-prefix, added-kernel and entrance-promoted provider dispatch with the new frame coalescences composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/SHA256SUMS.json b/research/complex-571-cold14-k492-repacking-audit/SHA256SUMS.json new file mode 100644 index 0000000000..c8fae78502 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/SHA256SUMS.json @@ -0,0 +1,90 @@ +{ + "ASSEMBLY-CONTROLS.json": "c3b1ceedcc6d3be69fc41b6e70ac56d86e55b13132fe1da3cfe5f1810e6f2049", + "ASSEMBLY.json": "10bcdfdfe39f67e1e2b9e5e5f3338e2fc681fbfb93e73779421247d252d97d05", + "EXPORT-CONTROLS.json": "b77ce9550543212c56dd74e30e23a60dcde636cc42c7f5041e539f892d1b8d41", + "GENERATED-IDENTITY-CONTROLS.json": "83b3b2e9418db2c6f89dcbc1803c59c17db0c6ab90fe8e58e56b645666dcf3f3", + "PHASE-TIMING-CONTROLS.json": "4cecb57298ec86e0352d66e89e8b88b04cac492e4c9b3cf299815d5a9576bbc5", + "PREDECESSOR-RECEIPT.json": "23e695d12ad8724d4c40e7789ead4da3ab84e8037b7f4f6fc05670513563e597", + "PREDECESSOR-RESULT.json": "778700b3c0a9762d8648352b371e8e9f773f6fd17e5b3c3f75acce27349fd304", + "README.md": "6069154188f9b0ad7de79e78f057e8c94645f6a9fd042e93530758c6d114b931", + "RECEIPT.json": "f0aaca93fb0153b42accbc3df216a59a235bb8bf64616b076ef2d86d022a31b5", + "RESULT.json": "daf6bb4d7265f51bdc76acb7f7773c371661c67a57f0b6333ecfddd2bf5fe279", + "SHARED-MAKE-VERIFY.log.gz": "babfa350fb7f429b76169546fc2108e400a67229c8458dfbe9ad6e79a3f857ac", + "SHARED-REGRESSION-SCOPE.json": "96317c6b93819efc93a586a1951b6188acde5ea9f2dbdeab032a50e648d702c3", + "SOURCE-REVIEW.json": "9b971dc92f5ae1a94ee52c233516b5d4e58f4f8ded160fc8216c6ca9023689e7", + "STAGES.json": "a766dcfc8350d1ff44188d752ffeb417c371fe1c162baf56dedb9cd0d7af7789", + "VALIDATION.json": "7a531bd0fe83a636f5e646ec2f24f1d15c8960bbdca34af3c41e983f4c5b0c2b", + "search/MINIMIZATION.json": "9a4d64f0741e674593037dd1754f96f9f78ba3c008e29c27e7984ffc4b8d3f22", + "search/RESTRICTED-RECHECK.json": "920b08d416b0566edd2917093ea0d99ccc6c2646d4a7a9805f004131c9ee1269", + "search/anneal_owner_pair_swaps.py": "8ea9ffabe744b854bc183deabd88b566ab46c2eb432455b334415617cc9db326", + "search/minimize_owner_profile_delta.py": "3000a51920dbc9080cea8cc578682972959eff0caf6ae20c14067561a369151a", + "search/pairs-seed0/OWNERS.json.gz": "36d573d4bf7441327406994601660b5a9ad36fc7f22a57f5e1e79fb3b32bb2d4", + "search/pairs-seed0/PLAN.json.gz": "7698bfef19ddf90cfcc84543ab7a775942fbd5666e8e2e09a83fca2fddb3a7d4", + "search/pairs-seed0/SEARCH.json": "2a75159c074dc83e2cc7f0cf19f7f9a601b97c52dfe7fd666d4681216264da0b", + "search/pairs-seed1/SEARCH.json": "8f72bd492cd8282604effccbbafe61b6fee702b5cd0969dd85fcf9ed3768f4dc", + "search/single-seed0/SEARCH.json": "1a73d493cb0fdba13b68e311b8e0557d6fd834bbf633fad2082a1019791eb9d0", + "stage-logs/actual-recompression-and-rebound-controls.log": "9c20730203542b9a5ed97e1ce2e2c51526e88de0b2983d4f15d7e550b8ed02ea", + "stage-logs/admission-controls.log": "40f0c35552fb10f02288ae8d2c6b9f902050fb370c0a19b7b88c977d0d44dab1", + "stage-logs/bind-providers.log": "71f679ce5a123fb58397fd6852ba64ce3832fd20e81a096bfda9a1cf3237237a", + "stage-logs/ck-all-columns-native-frames.log": "751a9c638d8e8e98a16991f4f3003ca8bc8900b092f157e55d69e31957ec0845", + "stage-logs/ck-all-phase-edges.log": "8fc40186d82a5fe3fd7eb430bb81afec1d931ec550b3afc1b7aef9b8d62e5331", + "stage-logs/ck-both-reflected-ledgers.log": "784c198ff89d3d113ba3bc384d227d1cd362af9eee75f77d833cd6b0595d29ad", + "stage-logs/ck-independent-local-controls.log": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a", + "stage-logs/ck-normalized-wrappers.log": "24dae49ef485401b479048ab5f7ce92a06e5aac790169093933a14f807ef38f9", + "stage-logs/ck-step0-port_stage-construction.log": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b", + "stage-logs/ck-step0-port_stage-native-audit.log": "d2043154fa44c1d90a02cd02f8e9ddf69193fb68dcf19619ec256506c5718c60", + "stage-logs/ck-step1-port_stage-construction.log": "d433afce182797b5de84635d88c1b918fe628da48683cfa7d15546629642f4b0", + "stage-logs/ck-step1-port_stage-native-audit.log": "cca67e143bbd1088682a658df29d82614db3473fb802bd6c6ca348420410d73e", + "stage-logs/ck-step2-port_stage-construction.log": "0d89761796a80cd1d804f43b1143b1e87c0d242f5e3d5d6173dea5959a254185", + "stage-logs/ck-step2-port_stage-native-audit.log": "a5694b18b089fb76094e393e6667bbec0faa7394ec9fcdf42746b4133efd22f9", + "stage-logs/ck-step3-port_stage-construction.log": "d6ecdc9b0ecb72130e1b65fee83b51461ae229df5045506b44d86ed783e78f0a", + "stage-logs/ck-step3-port_stage-native-audit.log": "446da1fe59c823db7b40e508f24024c0643151430f9685222a86546c777a4a0d", + "stage-logs/ck-step4-port_stage-construction.log": "59f0ef9eb4ae0edb7c3a4dfed4a645afb7e46b3d8e13c0d44bd8ea8bdafadf94", + "stage-logs/ck-step4-port_stage-native-audit.log": "db84994c1744007d57d512fc89f7f36737a188f6b5439db2f5e5b5345ff3ea58", + "stage-logs/ck-step5-frame_regroup-construction.log": "993d83424ca7f8f945c1febae876964d7d2933beccf0c8dc10a8ef17ce5fc015", + "stage-logs/ck-step6-hyperplane_end-construction.log": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e", + "stage-logs/ck-step6-hyperplane_end-controls.log": "ded1c26cdef100f15baaebdc4efe60c0448f2ab814875866b112f90a7d67de3a", + "stage-logs/ck-step7-cold_end-construction.log": "f7e01bc5464dc87cce68ba24441bdcb93933aedef565f18410cb68a2f635e30d", + "stage-logs/ck-step7-cold_end-controls.log": "6971fbf038267442e3f461c689537fedd2df3d6be012faf035b1f1d334b5ee7a", + "stage-logs/ck_504-step0-greedy_kernels-construction.log": "23ca231febd30ee092f617f0506d120c01e421bc3c814ba82b11d912c7f15869", + "stage-logs/ck_504-step0-greedy_kernels-omissions.log": "e57622df5f252d2027d1c92e3fa8aae67d5db2a4318df110fcc8d9db99c0a2b3", + "stage-logs/ck_504-step1-frame_coalesce-construction.log": "3d2d67cbd82dd5b79c3cfea987b31bcc6a16283c68c6b13b9801e009cc94e09c", + "stage-logs/ck_504-step2-gate_move_coalesce-construction.log": "0ebcf2ca688428a23e0ad3e734b35dd9004972405ca1cca679663e42df96b032", + "stage-logs/conservative-and-native-exact-assembly.log": "8f0bc98232643f33520c21eac259e925be9166124f606768b0f44b1f562c1c02", + "stage-logs/emit-controller.log": "98d745196fc3b663589269633736bdd3442d96e30fd196c01ca81ac824489d52", + "stage-logs/fresh-invoice.log": "5c9c8bbc4fe678c3afe7840c166849cbf0ac7c7f5b6434efb74d2a17ef29f0c7", + "stage-logs/frozen558-full-replay.log": "d537dc0db209fe7b082bf0c82e7d6fbd6b94dfdad51bfbe6242d60f47d055ded", + "stage-logs/independent-controller-and-controls.log": "6576f2107ce954b3a8e9d21cf30e95e12a5eb219b83488c286255940c50e449c", + "stage-logs/jp8-all-columns-native-frames.log": "a57307e6677f0bd4d97c43841b39da7aa79f205fd6f70ac40e960d183401f575", + "stage-logs/jp8-all-phase-edges.log": "da2fbff01aa8d5028ce62e04416699454928a943e088654cfb0788d244a1db61", + "stage-logs/jp8-base-k_triangle-construction.log": "ba6767bc74e7e91330d27026fa81875d2b116f7a34b818a037d94f1bd519b778", + "stage-logs/jp8-both-reflected-ledgers.log": "38d4787e331b6f91d4adff91964bb4b078dd9a6be0c6dc8afc98ea729bfad519", + "stage-logs/jp8-independent-local-controls.log": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a", + "stage-logs/jp8-normalized-wrappers.log": "74b13cf8570ca2f32ce0018575b1b73e95af77a28e59d09556fec59260bdbba5", + "stage-logs/jp8-step0-port_stage-construction.log": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b", + "stage-logs/jp8-step0-port_stage-native-audit.log": "3af45e1d42f4e83b9497d004334256687c3be4305382c0feb41dd3b009bbeee4", + "stage-logs/jp8-step1-port_stage-construction.log": "12c7d03fdeb93f55d8fd4dd5fa47b84ea99084a3893c7413b4075498a25852eb", + "stage-logs/jp8-step1-port_stage-native-audit.log": "539cc7f16024a2ca83ffb5693cc6c2574bfa200f0f7a2e1913319d0f4523b385", + "stage-logs/jp8-step2-port_stage-construction.log": "51feeab86b59709dfa97c1c0c42c002f536c6cfa77dbcd63dc23825356789a1b", + "stage-logs/jp8-step2-port_stage-native-audit.log": "a7e94a0888fece52e83d3e30e32496858cb3d78f9d9771ce1fa66486cb11608a", + "stage-logs/jp8-step3-port_stage-construction.log": "9383ac7971bd0358340a8a57395564dbe2b3e7100a05412edd6982cfa897de70", + "stage-logs/jp8-step3-port_stage-native-audit.log": "14f1e6d03c95763ae4ba42cfbfeb84553d2886aef3c6939161f2576fe07765c5", + "stage-logs/jp8-step4-frame_regroup-construction.log": "032f531192f4305265166b93d6789916d173e8794187d423d4c57f05b82d4b91", + "stage-logs/jp8-step5-hyperplane_end-construction.log": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e", + "stage-logs/jp8-step5-hyperplane_end-controls.log": "3f89a088aa79e99e4e8b8376fda02cf78986d1b34b53fccfe1328f350d7b2083", + "stage-logs/jp8-step6-cold_end-construction.log": "9eb5221c2e3415a108a1b8ee7aeb91d831e8b20434c88b3f9faca40e06c80c57", + "stage-logs/jp8-step6-cold_end-controls.log": "42fb172a0b4f4a123a192563b7ca52c83ae39fa6c45f21dc9f5bcfb127f78fa0", + "stage-logs/jp8_504-step0-cold_kernel-construction.log": "7a13ad21a3e4e12710e37ab9d1c54a90b2b8741fc3f5f620c363844e9cd766fb", + "stage-logs/jp8_504-step0-cold_kernel-omissions.log": "a64c8d0998fb64a4ef0b28a96637f208b8cbbb22b02c43a71ca5b4f00c275e32", + "stage-logs/jp8_504-step1-multicut-construction.log": "6f1fd8e202891558084ac9ee00606bbff0659c869f1bf6414461d87f6b67c53c", + "stage-logs/jp8_504-step1-multicut-omissions.log": "3f52a3d40481d4e9360d9320bab4a42c580cccdefdc3cab2e4f8225263018c90", + "stage-logs/jp8_504-step2-frozen558_scalar_audits-rank5.log": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db", + "stage-logs/jp8_504-step2-frozen558_scalar_audits-static44.log": "349924aaa9888edbe6e126e02df3a186c97d9fb4c064667252ce9918987134ea", + "stage-logs/jp8_504-step3-joint_prefix-all-kernel-omissions.log": "13fae47d3799fead98d1c0df5702516c3cbebf27636a35ae3e7d494274fef5cf", + "stage-logs/jp8_504-step3-joint_prefix-construction.log": "9d4cf22962c6e9358f935ca7d6ea5bc0fb64b54112d6d8d3ce5ad63fb2fb037c", + "stage-logs/jp8_504-step3-joint_prefix-independent-joint-prefix-and-coverage.log": "71720fe1f7eeabaf40bb9d8b84fa9f203a058fd26147c80124801e6e94dc8d34", + "stage-logs/jp8_504-step3-joint_prefix-rank5-omissions.log": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db", + "stage-logs/k-triangle-control-empty-schedule.log": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7", + "stage-logs/k-triangle-control-pr531-construct504.log": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7", + "stage-logs/phase-timing-portability-controls.log": "d4300a182a615922dd73ff2b945ff671086b86d5b80dbc009539e96d9b4dfe82" +} diff --git a/research/complex-571-cold14-k492-repacking-audit/SHARED-MAKE-VERIFY.log.gz b/research/complex-571-cold14-k492-repacking-audit/SHARED-MAKE-VERIFY.log.gz new file mode 100644 index 0000000000..c91844a95b Binary files /dev/null and b/research/complex-571-cold14-k492-repacking-audit/SHARED-MAKE-VERIFY.log.gz differ diff --git a/research/complex-571-cold14-k492-repacking-audit/SHARED-REGRESSION-SCOPE.json b/research/complex-571-cold14-k492-repacking-audit/SHARED-REGRESSION-SCOPE.json new file mode 100644 index 0000000000..2a8dd3b34e --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/SHARED-REGRESSION-SCOPE.json @@ -0,0 +1,17 @@ +{ + "full_suite_worktree_base": "904d62855723c00f8acef9a287a10768598fdeb2", + "new_package_base": "f69477f4f6d3c7eb1f740b166881bffed4ffa9f6", + "inherited_changes_only_in_standalone_packages": [ + "research/complex-571-cold14-b3", + "research/complex-571-cold14-k492" + ], + "makefile_scripts_tests_and_all_other_tracked_files_identical": true, + "scope": "The shared repository suite is run on the PR617 owner-repacking worktree; the new PR622 package has a separate fresh 64-stage replay. This is not a claim that make verify was run on the PR622 worktree. The two standalone package paths are not referenced by Makefile, scripts or tests. The PR622 package replay covers its generalized-R and R504 regression controls.", + "status": "PASS_SHARED_REPOSITORY_SUITE", + "isolated_test_modules": 84, + "includes_gen4_bank_verify": true, + "log_content_sha256": "e55dc2207ba72f1352e55852a33cf145f375e6d8366e45e8d98e4b6dd0c406f2", + "tested_pr617_package_manifest_sha256": "b5c971883da00afae9aa0e846589a862faba36b54f9bf7a3e6e3da78f701e9e4", + "reviewable_shared_suite_commit": "0e7ca72", + "reviewable_shared_suite_url": "https://github.com/jeremydiviney/integer-mult-bounds/tree/0e7ca72/research/complex-571-cold14-b3-repacking-audit" +} diff --git a/research/complex-571-cold14-k492-repacking-audit/SOURCE-REVIEW.json b/research/complex-571-cold14-k492-repacking-audit/SOURCE-REVIEW.json new file mode 100644 index 0000000000..01c21599ee --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/SOURCE-REVIEW.json @@ -0,0 +1,69 @@ +{ + "base_commit": "f69477f4f6d3c7eb1f740b166881bffed4ffa9f6", + "unchanged_files": { + "verify.py": "dc069c48d1dce31fef2e567fa3ed81780bf07e00b39ac1a0761536e4a5c0b377", + "PROOF-NOTE-R.md": "22312bb347bdf159e6a01a45c47675e6170d33b258e2fd9ed52aee88fb92c0ed", + "PROOF-COMMUTING-PREFIX.md": "59899b2a1a76d88275e57f983c0aea391dc2c7f1d2d66c33b92429be0a1cf5e1", + "verify.sh": "18cf93f64fa5b7301f837950df181cf08ee8c3efe1b3fb6803354549a7462618", + "PROOF-NOTE.md": "337d70fe7abd9afca1d90954c23bde87f4dc27888cc1a6b4bb80506fd6fbf8c5", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "data/TRI-SCHEDULE.json": "94da9d5575f5b237097a77ac7dd09aff594322dd9c35138bfd34ffc5e1a7a51e", + "data/cand.json": "4fce406538a5fcd3f7596053720e8d6eb834f5d67cb12ad4af2dc3152a208986", + "code/generated_identity_controls.py": "a7b93207a673575d1fddc3e579153349c145c8f08d4575ae0a5d1e3cffec01de", + "code/assemble.py": "1b1a9024ac910dc9b9d9e30150684e1fa9cb228a4c1c275b75ab04b57fdef1dd", + "code/assembly_controls.py": "8a365b95c412d75d10db5bb59309d47cd56c5f8a77566f940a05977795130ce8", + "code/hpe_adapters_local.py": "eb0b5c6c7161e18dc22168da3211448d321586edd15bcfb4b4741174d36993cf", + "code/generated_identity.py": "c8af22719c0f3097a991a3f6ccac8f090afd2faba554745733d9ea88f2c25708", + "code/phase_timing_controls.py": "1692ccee3da4b1781408d126ee4999f3e31a505cd83c64823a404033da3a6339", + "code/hpe_controls_atc.py": "63aa3909b5bfd3bf270c313bebb5c46e7789c67a8f2439f568bc4b2b4a35d17b", + "code/hpe_emit_local.py": "7e4a6fbc38c8228157b6311457d1496bf460291393043932d2c365f004f77805", + "code/build_cold_end.py": "27d5f540cb7f7e57b12f041196743761a5ecefaa2e04fd808abfffed25027f6e", + "code/build_hpe.py": "ba2001695d8c7547a82260c3b016e01dac686e95a61757ca124eb9879078ea8e", + "code/hpe_audit_local.py": "6bd9a1e279c9c9e4f3767d9f82e537b559292906feb2ddab02f380fb6523a810", + "code/audit_allcold.py": "cea021ae79658ca7ca4d07f1e1a70bdb4947afaf95b362114c11032c0fef889a", + "code/build_frame_regroup.py": "e2549ccc7a90008831be3b59aeb37b47db696640f5f5c2b72dd888b2f1e7e5c9", + "code/cold_end_controls.py": "f8b770eb3bfe387c9b878a954b0dcb0efd81bc4adb0c97b450b3ab7a66c78585", + "code/build_port_stage.py": "beb0d30fde1b9a30db091880b38c4a8ec906da3f715c43de7db8bf7932526e72", + "code/construct_k_triangle.py": "66fc460df8eb8067efe3d8a3f9e97a7244aacd7bf11650a6ce656e868ce053da", + "code/invoice_allcold.py": "141bd2fd58bbfb5b8d0fc8f56f61c45586d5608a5af3487c6b883dd987f998ec", + "code/witness.py": "00789c911a8f32cfe9d52207c7aa78305dc3fce4a8b6305ba402b7e74117103d", + "code/build_gate_moves.py": "08bf1c2652307aeefbab089fdaf02f82e2c396ca23a1eb68e294a67e74c44252", + "code/bind_providers_portable.py": "2eb5c262bf481b3bec9ceaec654fa46ff6fc3a89b13d4906a29a55a89e35feea", + "code/hpe_audit_and_transport.py": "c9a05ff291016b870b4fc925b317abd9c3a604c73ffc8920dfdbbeb475e20aa3", + "code/emit_allcold.py": "fe26f10fe5d30ed407a37540a45ef94f44576dd241d09e19aef5db1efb072746", + "data/search/DISPATCH.json": "4c264551a96ffa02d76be8eeaed41d4a1b96fd6c048f2418bf6101a5c0fe19b1", + "data/search/WARM-OWNERS.json.gz": "1b2a5bc5b204c9c4bb4734626cf1e3a0371b51fe495dd565ae6fc876e35579d8", + "data/search/LP-PATTERNS-EX.json": "8ed80a01c9948ad2894f699c2c0f2233c7eb2bc9c9ebb52ac6fd86e7d4a6ac67", + "data/search/TEMPLATE-PLAN.json": "1879679a44b373006907cbca8261a9cd187c7b868472afab04e002bf95331d9e", + "data/search/LP-PATTERNS-AGG.json": "7e8f162a5d949cb1461c8c3b3bfa0a160b42c27a03bfeb6f09b9aa3c116aa953", + "data/search/WARM-PLAN.json": "ff0088122a5203e3e6f3aa0205dcb8563d7c7dad2a408f1132f0b45a0ce3ced3", + "data/recipes/ck-step1-frame_coalesce.json": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3", + "data/recipes/k492-jp8-hyperplane_end.json": "e4d4dfd83d0c64cb0a8ee8c8bbd95d0510ee68699859e568fe201cd6f8d250c1", + "data/recipes/k492-jp8-cold_end.json.gz": "660d2438c5fd4dd4cc49eefff071ac53f50adb65f292005f182082d27555a6a9", + "data/recipes/k492-atm3-frame_regroup.json": "8d880d3d8e795575a3a3428e0031b2c45831eea512dc32cb99f7eae9e6e49e5e", + "data/recipes/atm3-step0-promote.json": "9a7cafdf9b600ba43985c83969b75151f665b98f454afc1494b9f9ef3dd3916f", + "data/recipes/k492-ck-cold_end.json.gz": "d438123ecca120799a0b9835d0e7231ec12f61f10caff3ef466ad9f7c96e51a2", + "data/recipes/k492-ck-frame_regroup.json": "9894f9c93e931b61cf34b337c4b257a72bb1d06fbdc4e8b02368e6e29ab2b644", + "data/recipes/atm3-step3-gate_move_coalesce.json": "3a6b8fec6c8b56a45bf8fae683083636fa295a8914ffa68d11b1f78ba3a2eb9d", + "data/recipes/k492-atm3-cold_end.json.gz": "a25ccab0c024aa9512df822032fca11683def03d0886b58f375c42834264c47c", + "data/recipes/k492-atm3-hyperplane_end.json": "30504ae76a2387677f05450d23413c7373c08ae2d9d171b2f4597bb63e294631", + "data/recipes/ck-step2-gate_move_coalesce.json": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00", + "data/recipes/ck-step0-greedy_kernels.json": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056", + "data/recipes/atm3-step1-greedy_kernels.json": "c4bc67f329fc22e226f26bbbf7e67018a639823d99fccfc5a1e798a7a82db43f", + "data/recipes/k492-jp8-frame_regroup.json": "9bd347334de643f29865290be1ed37289f9cae6cd339547ac89b45fa7aaee65a", + "data/recipes/atm3-step2-frame_coalesce.json": "e6d7ea259a542f2b43a857998f677db4d68f8f36335e98a030bc91ab38ce758c", + "data/recipes/k492-ck-hyperplane_end.json": "c71c2b05550544c29ebb4696e63cffc44d6daa76f1bc25e9c7c97e994b2c7657" + }, + "source_build_and_dispatch_identical": true, + "unchanged_plan_fields": [ + "order", + "windows", + "provider_registry", + "provider_calls", + "per_call_widths", + "pairs", + "sides", + "live", + "deficit" + ] +} diff --git a/research/complex-571-cold14-k492-repacking-audit/STAGES.json b/research/complex-571-cold14-k492-repacking-audit/STAGES.json new file mode 100644 index 0000000000..fd1e2c2e0f --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/STAGES.json @@ -0,0 +1,386 @@ +[ + { + "name": "frozen558-full-replay", + "exit_code": 0, + "seconds": 125.327, + "log_sha256": "d537dc0db209fe7b082bf0c82e7d6fbd6b94dfdad51bfbe6242d60f47d055ded" + }, + { + "name": "jp8_504-step0-cold_kernel-construction", + "exit_code": 0, + "seconds": 0.181, + "log_sha256": "7a13ad21a3e4e12710e37ab9d1c54a90b2b8741fc3f5f620c363844e9cd766fb" + }, + { + "name": "jp8_504-step0-cold_kernel-omissions", + "exit_code": 0, + "seconds": 1.79, + "log_sha256": "a64c8d0998fb64a4ef0b28a96637f208b8cbbb22b02c43a71ca5b4f00c275e32" + }, + { + "name": "ck_504-step0-greedy_kernels-construction", + "exit_code": 0, + "seconds": 3.064, + "log_sha256": "23ca231febd30ee092f617f0506d120c01e421bc3c814ba82b11d912c7f15869" + }, + { + "name": "jp8_504-step1-multicut-construction", + "exit_code": 0, + "seconds": 1.799, + "log_sha256": "6f1fd8e202891558084ac9ee00606bbff0659c869f1bf6414461d87f6b67c53c" + }, + { + "name": "jp8_504-step1-multicut-omissions", + "exit_code": 0, + "seconds": 7.895, + "log_sha256": "3f52a3d40481d4e9360d9320bab4a42c580cccdefdc3cab2e4f8225263018c90" + }, + { + "name": "ck_504-step0-greedy_kernels-omissions", + "exit_code": 0, + "seconds": 11.867, + "log_sha256": "e57622df5f252d2027d1c92e3fa8aae67d5db2a4318df110fcc8d9db99c0a2b3" + }, + { + "name": "jp8_504-step2-frozen558_scalar_audits-static44", + "exit_code": 0, + "seconds": 4.46, + "log_sha256": "349924aaa9888edbe6e126e02df3a186c97d9fb4c064667252ce9918987134ea" + }, + { + "name": "ck_504-step1-frame_coalesce-construction", + "exit_code": 0, + "seconds": 1.557, + "log_sha256": "3d2d67cbd82dd5b79c3cfea987b31bcc6a16283c68c6b13b9801e009cc94e09c" + }, + { + "name": "jp8_504-step2-frozen558_scalar_audits-rank5", + "exit_code": 0, + "seconds": 1.093, + "log_sha256": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db" + }, + { + "name": "jp8_504-step3-joint_prefix-construction", + "exit_code": 0, + "seconds": 0.253, + "log_sha256": "9d4cf22962c6e9358f935ca7d6ea5bc0fb64b54112d6d8d3ce5ad63fb2fb037c" + }, + { + "name": "ck_504-step2-gate_move_coalesce-construction", + "exit_code": 0, + "seconds": 1.108, + "log_sha256": "0ebcf2ca688428a23e0ad3e734b35dd9004972405ca1cca679663e42df96b032" + }, + { + "name": "jp8_504-step3-joint_prefix-all-kernel-omissions", + "exit_code": 0, + "seconds": 31.455, + "log_sha256": "13fae47d3799fead98d1c0df5702516c3cbebf27636a35ae3e7d494274fef5cf" + }, + { + "name": "jp8_504-step3-joint_prefix-rank5-omissions", + "exit_code": 0, + "seconds": 1.083, + "log_sha256": "bab3028f59a9b024df5f20d2c0f3755933cea161bfd49ab676fa6133f58a05db" + }, + { + "name": "jp8_504-step3-joint_prefix-independent-joint-prefix-and-coverage", + "exit_code": 0, + "seconds": 0.157, + "log_sha256": "71720fe1f7eeabaf40bb9d8b84fa9f203a058fd26147c80124801e6e94dc8d34" + }, + { + "name": "k-triangle-control-pr531-construct504", + "exit_code": 0, + "seconds": 0.256, + "log_sha256": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7" + }, + { + "name": "k-triangle-control-empty-schedule", + "exit_code": 0, + "seconds": 0.258, + "log_sha256": "559deb17ff2bef299fd0ca2cfe6723ff1f0d495ce48d27794d735e9a5efcdbc7" + }, + { + "name": "jp8-base-k_triangle-construction", + "exit_code": 0, + "seconds": 0.263, + "log_sha256": "ba6767bc74e7e91330d27026fa81875d2b116f7a34b818a037d94f1bd519b778" + }, + { + "name": "ck-step0-port_stage-construction", + "exit_code": 0, + "seconds": 0.237, + "log_sha256": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b" + }, + { + "name": "jp8-step0-port_stage-construction", + "exit_code": 0, + "seconds": 0.242, + "log_sha256": "c4589e35d96b35e3d9609514d0070f004d7015565a0b976c38addcfeb258829b" + }, + { + "name": "jp8-step0-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.534, + "log_sha256": "3af45e1d42f4e83b9497d004334256687c3be4305382c0feb41dd3b009bbeee4" + }, + { + "name": "ck-step0-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.542, + "log_sha256": "d2043154fa44c1d90a02cd02f8e9ddf69193fb68dcf19619ec256506c5718c60" + }, + { + "name": "ck-step1-port_stage-construction", + "exit_code": 0, + "seconds": 0.244, + "log_sha256": "d433afce182797b5de84635d88c1b918fe628da48683cfa7d15546629642f4b0" + }, + { + "name": "jp8-step1-port_stage-construction", + "exit_code": 0, + "seconds": 0.246, + "log_sha256": "12c7d03fdeb93f55d8fd4dd5fa47b84ea99084a3893c7413b4075498a25852eb" + }, + { + "name": "jp8-step1-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.547, + "log_sha256": "539cc7f16024a2ca83ffb5693cc6c2574bfa200f0f7a2e1913319d0f4523b385" + }, + { + "name": "ck-step1-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.564, + "log_sha256": "cca67e143bbd1088682a658df29d82614db3473fb802bd6c6ca348420410d73e" + }, + { + "name": "jp8-step2-port_stage-construction", + "exit_code": 0, + "seconds": 0.255, + "log_sha256": "51feeab86b59709dfa97c1c0c42c002f536c6cfa77dbcd63dc23825356789a1b" + }, + { + "name": "ck-step2-port_stage-construction", + "exit_code": 0, + "seconds": 0.259, + "log_sha256": "0d89761796a80cd1d804f43b1143b1e87c0d242f5e3d5d6173dea5959a254185" + }, + { + "name": "jp8-step2-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.552, + "log_sha256": "a7e94a0888fece52e83d3e30e32496858cb3d78f9d9771ce1fa66486cb11608a" + }, + { + "name": "ck-step2-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.545, + "log_sha256": "a5694b18b089fb76094e393e6667bbec0faa7394ec9fcdf42746b4133efd22f9" + }, + { + "name": "jp8-step3-port_stage-construction", + "exit_code": 0, + "seconds": 0.263, + "log_sha256": "9383ac7971bd0358340a8a57395564dbe2b3e7100a05412edd6982cfa897de70" + }, + { + "name": "ck-step3-port_stage-construction", + "exit_code": 0, + "seconds": 0.26, + "log_sha256": "d6ecdc9b0ecb72130e1b65fee83b51461ae229df5045506b44d86ed783e78f0a" + }, + { + "name": "ck-step3-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.543, + "log_sha256": "446da1fe59c823db7b40e508f24024c0643151430f9685222a86546c777a4a0d" + }, + { + "name": "jp8-step3-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.559, + "log_sha256": "14f1e6d03c95763ae4ba42cfbfeb84553d2886aef3c6939161f2576fe07765c5" + }, + { + "name": "ck-step4-port_stage-construction", + "exit_code": 0, + "seconds": 0.25, + "log_sha256": "59f0ef9eb4ae0edb7c3a4dfed4a645afb7e46b3d8e13c0d44bd8ea8bdafadf94" + }, + { + "name": "ck-step4-port_stage-native-audit", + "exit_code": 0, + "seconds": 0.538, + "log_sha256": "db84994c1744007d57d512fc89f7f36737a188f6b5439db2f5e5b5345ff3ea58" + }, + { + "name": "jp8-step4-frame_regroup-construction", + "exit_code": 0, + "seconds": 5.557, + "log_sha256": "032f531192f4305265166b93d6789916d173e8794187d423d4c57f05b82d4b91" + }, + { + "name": "jp8-step5-hyperplane_end-construction", + "exit_code": 0, + "seconds": 0.053, + "log_sha256": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e" + }, + { + "name": "ck-step5-frame_regroup-construction", + "exit_code": 0, + "seconds": 5.572, + "log_sha256": "993d83424ca7f8f945c1febae876964d7d2933beccf0c8dc10a8ef17ce5fc015" + }, + { + "name": "ck-step6-hyperplane_end-construction", + "exit_code": 0, + "seconds": 0.053, + "log_sha256": "869928b2fadd21726a0e67bacfe6bed0485dec5a04f069bb8d722ab8f355960e" + }, + { + "name": "jp8-step5-hyperplane_end-controls", + "exit_code": 0, + "seconds": 5.88, + "log_sha256": "3f89a088aa79e99e4e8b8376fda02cf78986d1b34b53fccfe1328f350d7b2083" + }, + { + "name": "jp8-step6-cold_end-construction", + "exit_code": 0, + "seconds": 0.175, + "log_sha256": "9eb5221c2e3415a108a1b8ee7aeb91d831e8b20434c88b3f9faca40e06c80c57" + }, + { + "name": "ck-step6-hyperplane_end-controls", + "exit_code": 0, + "seconds": 5.992, + "log_sha256": "ded1c26cdef100f15baaebdc4efe60c0448f2ab814875866b112f90a7d67de3a" + }, + { + "name": "ck-step7-cold_end-construction", + "exit_code": 0, + "seconds": 0.171, + "log_sha256": "f7e01bc5464dc87cce68ba24441bdcb93933aedef565f18410cb68a2f635e30d" + }, + { + "name": "jp8-step6-cold_end-controls", + "exit_code": 0, + "seconds": 20.644, + "log_sha256": "42fb172a0b4f4a123a192563b7ca52c83ae39fa6c45f21dc9f5bcfb127f78fa0" + }, + { + "name": "ck-step7-cold_end-controls", + "exit_code": 0, + "seconds": 20.478, + "log_sha256": "6971fbf038267442e3f461c689537fedd2df3d6be012faf035b1f1d334b5ee7a" + }, + { + "name": "jp8-all-columns-native-frames", + "exit_code": 0, + "seconds": 1.088, + "log_sha256": "a57307e6677f0bd4d97c43841b39da7aa79f205fd6f70ac40e960d183401f575" + }, + { + "name": "jp8-both-reflected-ledgers", + "exit_code": 0, + "seconds": 0.708, + "log_sha256": "38d4787e331b6f91d4adff91964bb4b078dd9a6be0c6dc8afc98ea729bfad519" + }, + { + "name": "ck-all-columns-native-frames", + "exit_code": 0, + "seconds": 1.086, + "log_sha256": "751a9c638d8e8e98a16991f4f3003ca8bc8900b092f157e55d69e31957ec0845" + }, + { + "name": "ck-both-reflected-ledgers", + "exit_code": 0, + "seconds": 0.707, + "log_sha256": "784c198ff89d3d113ba3bc384d227d1cd362af9eee75f77d833cd6b0595d29ad" + }, + { + "name": "jp8-independent-local-controls", + "exit_code": 0, + "seconds": 6.359, + "log_sha256": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a" + }, + { + "name": "ck-independent-local-controls", + "exit_code": 0, + "seconds": 6.243, + "log_sha256": "dd643a58258431c3b07d3b06d9060c49677fa23b4fafc9f10988ed1f6867bd9a" + }, + { + "name": "jp8-normalized-wrappers", + "exit_code": 0, + "seconds": 1.408, + "log_sha256": "74b13cf8570ca2f32ce0018575b1b73e95af77a28e59d09556fec59260bdbba5" + }, + { + "name": "ck-normalized-wrappers", + "exit_code": 0, + "seconds": 2.048, + "log_sha256": "24dae49ef485401b479048ab5f7ce92a06e5aac790169093933a14f807ef38f9" + }, + { + "name": "jp8-all-phase-edges", + "exit_code": 0, + "seconds": 97.625, + "log_sha256": "da2fbff01aa8d5028ce62e04416699454928a943e088654cfb0788d244a1db61" + }, + { + "name": "ck-all-phase-edges", + "exit_code": 0, + "seconds": 100.121, + "log_sha256": "8fc40186d82a5fe3fd7eb430bb81afec1d931ec550b3afc1b7aef9b8d62e5331" + }, + { + "name": "bind-providers", + "exit_code": 0, + "seconds": 0.364, + "log_sha256": "71f679ce5a123fb58397fd6852ba64ce3832fd20e81a096bfda9a1cf3237237a" + }, + { + "name": "emit-controller", + "exit_code": 0, + "seconds": 2.856, + "log_sha256": "98d745196fc3b663589269633736bdd3442d96e30fd196c01ca81ac824489d52" + }, + { + "name": "independent-controller-and-controls", + "exit_code": 0, + "seconds": 21.301, + "log_sha256": "6576f2107ce954b3a8e9d21cf30e95e12a5eb219b83488c286255940c50e449c" + }, + { + "name": "fresh-invoice", + "exit_code": 0, + "seconds": 1.109, + "log_sha256": "5c9c8bbc4fe678c3afe7840c166849cbf0ac7c7f5b6434efb74d2a17ef29f0c7" + }, + { + "name": "conservative-and-native-exact-assembly", + "exit_code": 0, + "seconds": 0.254, + "log_sha256": "8f0bc98232643f33520c21eac259e925be9166124f606768b0f44b1f562c1c02" + }, + { + "name": "admission-controls", + "exit_code": 0, + "seconds": 0.35, + "log_sha256": "40f0c35552fb10f02288ae8d2c6b9f902050fb370c0a19b7b88c977d0d44dab1" + }, + { + "name": "phase-timing-portability-controls", + "exit_code": 0, + "seconds": 0.742, + "log_sha256": "d4300a182a615922dd73ff2b945ff671086b86d5b80dbc009539e96d9b4dfe82" + }, + { + "name": "actual-recompression-and-rebound-controls", + "exit_code": 0, + "seconds": 3.148, + "log_sha256": "9c20730203542b9a5ed97e1ce2e2c51526e88de0b2983d4f15d7e550b8ed02ea" + } +] diff --git a/research/complex-571-cold14-k492-repacking-audit/VALIDATION.json b/research/complex-571-cold14-k492-repacking-audit/VALIDATION.json new file mode 100644 index 0000000000..e33b110e44 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/VALIDATION.json @@ -0,0 +1,67 @@ +{ + "status": "PASS_FRESH_CONTRIBUTOR_REPLAY_AWAITING_INDEPENDENT_REVIEW", + "kappa": "408856367695223/250000000000000000", + "kappa_decimal": "0.001635425470780892", + "complex_lower": "1638104468552563164027/1000000000000000000000000", + "bit_lower": "413456747036699736067/250000000000000000000000", + "conservative_kappa_decimal": "0.001635425467912872", + "conservative_complex_lower": "327620893135027892143/200000000000000000000000", + "global_profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "surcharge_model": { + "complex": false, + "bit": true + }, + "seconds": 352.9921769950306, + "reused": { + "baseline": false, + "locals": [] + }, + "scope": "Conditional native exact-complex witness after complete conservative admission, moment and outer checks; PR559 exact-cover recurrence correction only, bit bad-residue surcharge and H1-H5 retained. The frozen PR582 plain-joint-prefix, added-kernel and entrance-promoted provider dispatch with the new frame coalescences composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification.", + "replay_status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "base_commit": "f69477f4f6d3c7eb1f740b166881bffed4ffa9f6", + "package_manifest_sha256": "14070a484caebdcc60ddd9fc1c52e4cfe1909ba4e5d897113263b47aab0523e9", + "spec_sha256": "a4218f6232aaf0c8c104204e4bd930da9478df5e4fb55e818b9784ccaf1f54fa", + "fresh_stages": 64, + "all_receipt_artifacts_and_stage_logs_hash_verified": true, + "owner_mutations_rejected": 23, + "assembly_mutations_rejected": 114, + "changed_placements": 5027, + "offset_only_changes": 3146, + "shared_repository_regression": { + "full_suite_worktree_base": "904d62855723c00f8acef9a287a10768598fdeb2", + "new_package_base": "f69477f4f6d3c7eb1f740b166881bffed4ffa9f6", + "inherited_changes_only_in_standalone_packages": [ + "research/complex-571-cold14-b3", + "research/complex-571-cold14-k492" + ], + "makefile_scripts_tests_and_all_other_tracked_files_identical": true, + "scope": "The shared repository suite is run on the PR617 owner-repacking worktree; the new PR622 package has a separate fresh 64-stage replay. This is not a claim that make verify was run on the PR622 worktree. The two standalone package paths are not referenced by Makefile, scripts or tests. The PR622 package replay covers its generalized-R and R504 regression controls.", + "status": "PASS_SHARED_REPOSITORY_SUITE", + "isolated_test_modules": 84, + "includes_gen4_bank_verify": true, + "log_content_sha256": "e55dc2207ba72f1352e55852a33cf145f375e6d8366e45e8d98e4b6dd0c406f2", + "tested_pr617_package_manifest_sha256": "b5c971883da00afae9aa0e846589a862faba36b54f9bf7a3e6e3da78f701e9e4", + "reviewable_shared_suite_commit": "0e7ca72", + "reviewable_shared_suite_url": "https://github.com/jeremydiviney/integer-mult-bounds/tree/0e7ca72/research/complex-571-cold14-b3-repacking-audit" + }, + "earlier_aborted_attempt": "A first run was stopped during baseline reconstruction to correct the documentation physical count from 7682 to 7670, before refreezing the final package. This retained result is the subsequent complete no-reuse run on the corrected package.", + "environment": { + "python": "3.12.3", + "platform": "Linux-5.15.167.4-microsoft-standard-WSL2-x86_64-with-glibc2.39" + } +} diff --git a/research/complex-571-cold14-k492-repacking-audit/search/MINIMIZATION.json b/research/complex-571-cold14-k492-repacking-audit/search/MINIMIZATION.json new file mode 100644 index 0000000000..1d06d61150 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/search/MINIMIZATION.json @@ -0,0 +1,7 @@ +{ + "model": "old_or_proposed_owner_with_fixed_idle_profile", + "status": "FEASIBLE", + "original_changed": 11626, + "changed": 5027, + "seconds": 60.00597307700001 +} diff --git a/research/complex-571-cold14-k492-repacking-audit/search/RESTRICTED-RECHECK.json b/research/complex-571-cold14-k492-repacking-audit/search/RESTRICTED-RECHECK.json new file mode 100644 index 0000000000..d104e1a78f --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/search/RESTRICTED-RECHECK.json @@ -0,0 +1,7 @@ +{ + "model": "old_or_proposed_owner_with_fixed_idle_profile", + "status": "OPTIMAL", + "original_changed": 5027, + "changed": 5027, + "seconds": 0.10145119500000001 +} diff --git a/research/complex-571-cold14-k492-repacking-audit/search/anneal_owner_pair_swaps.py b/research/complex-571-cold14-k492-repacking-audit/search/anneal_owner_pair_swaps.py new file mode 100644 index 0000000000..e9b690f31a --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/search/anneal_owner_pair_swaps.py @@ -0,0 +1,88 @@ +"""Discovery-only single and two-role literal owner swaps, retaining every call and helper width. + +Prepared with OpenAI Codex assistance. Nomination is not admission; use the +unchanged source-bound physical replay and exact moment engines on any output. +""" +import argparse,copy,gzip,hashlib,json,math,random,time +from collections import Counter,defaultdict +from pathlib import Path + +def main(): + ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--data',type=Path,required=True) + ap.add_argument('--out',type=Path,required=True);ap.add_argument('--trials',type=int,default=500000) + ap.add_argument('--seed',type=int,default=0);ap.add_argument('--temperature',type=float,default=0) + a=ap.parse_args();a.out.mkdir(parents=True,exist_ok=False);rng=random.Random(a.seed) + praw=(a.data/'PLAN.json').read_bytes();oraw=(a.data/'OWNERS.json.gz').read_bytes();plan=json.loads(praw);roles=json.loads(gzip.decompress(oraw)) + bins=[];index={} + for key,(cap,ts)in plan['windows'].items(): + o,ch=map(int,key.split(',')) + for port in range(112): + family=o*896+(2*plan['pairs'][str(ch)]+plan['sides'][str(ch)])*112+port + index[o,ch,port]=len(bins);bins.append(dict(owner=o,child=ch,port=port,family=family,cap=cap,left=cap,window=set(ts),roles=[])) + occupied=defaultdict(set);bywidth=defaultdict(list);loc=[] + for i,r in enumerate(roles): + k=index[r['owner_replica'],r['child'],r['port']];b=bins[k];loc.append(k);b['roles'].append(i);b['left']-=r['width'];bywidth[r['width']].append(i) + assert r['time']not in occupied[b['family']];occupied[b['family']].add(r['time']) + psi=[0]+[r*math.log(73/r)for r in range(1,49)];score=sum(psi[b['left']]for b in bins);original=score;best=score;bestloc=loc[:] + partial={i for i,b in enumerate(bins)if 0=2 and rng.random()<0.55 else 1 + ris=rng.sample(b['roles'],count);wa=sum(roles[r]['width']for r in ris) + if count==1: + opts=[(v,)for v in bywidth if wad['cap']:continue + ts={roles[r]['time']for r in ris};us={roles[r]['time']for r in sis} + if not us<=b['window']or not ts<=d['window']:continue + if us&(occupied[b['family']]-ts)or ts&(occupied[d['family']]-us):continue + gain=psi[b['left']]+psi[d['left']]-psi[lb]-psi[ld] + if gain< -1e-9 and(a.temperature<=0 or rng.random()>=math.exp(gain/a.temperature)):continue + occupied[b['family']]-=ts;occupied[d['family']]-=us + occupied[b['family']]|=us;occupied[d['family']]|=ts + for r in ris:b['roles'].remove(r);d['roles'].append(r);loc[r]=j + for r in sis:d['roles'].remove(r);b['roles'].append(r);loc[r]=i + b['left']=lb;d['left']=ld;score-=gain;accepted+=1;strict+=gain>1e-9 + for k in (i,j): + z=bins[k] + if 01e-7: + raw=json.dumps(newroles,sort_keys=True,separators=(',',':')).encode();packed=gzip.compress(raw,mtime=0) + plan.update(profile={str(r):n for r,n in sorted(paid.items())},mode='literal-owner-width-swap-search',solver_status='FEASIBLE_NOT_OPTIMAL',gap=None,source_plan_sha256=hashlib.sha256(praw).hexdigest(),source_owners_sha256=hashlib.sha256(oraw).hexdigest(),assignment_sha256=hashlib.sha256(packed).hexdigest()) + (a.out/'PLAN.json').write_text(json.dumps(plan,indent=1)+'\n');(a.out/'OWNERS.json.gz').write_bytes(packed) + print(json.dumps(summary),flush=True) + +if __name__=='__main__':main() diff --git a/research/complex-571-cold14-k492-repacking-audit/search/minimize_owner_profile_delta.py b/research/complex-571-cold14-k492-repacking-audit/search/minimize_owner_profile_delta.py new file mode 100644 index 0000000000..194baf2072 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/search/minimize_owner_profile_delta.py @@ -0,0 +1,72 @@ +"""Reduce a candidate's changed placements, preserving every owner's exact load. + +Discovery only: unchanged downstream physical and arithmetic admission required. +Prepared with OpenAI Codex assistance. +""" +import argparse, copy, gzip, hashlib, json +from collections import defaultdict, Counter +from pathlib import Path +from ortools.sat.python import cp_model + +def main(): + if not __debug__: raise RuntimeError('Assertions required for candidate export') + ap=argparse.ArgumentParser(description=__doc__) + ap.add_argument('--base',type=Path,required=True);ap.add_argument('--candidate',type=Path,required=True) + ap.add_argument('--out',type=Path,required=True);ap.add_argument('--seconds',type=float,default=30) + a=ap.parse_args();a.out.mkdir(parents=True,exist_ok=False) + read=lambda d:json.loads(gzip.decompress((d/'OWNERS.json.gz').read_bytes())) + base=read(a.base);candidate=read(a.candidate);plan=json.loads((a.candidate/'PLAN.json').read_bytes()) + base.sort(key=lambda r:(r['time'],r['helper']));candidate.sort(key=lambda r:(r['time'],r['helper'])) + key=lambda r:(r['owner_replica'],r['child'],r['port']) + model=cp_model.CpModel();xs={};loads=defaultdict(list);limits=defaultdict(int);families=defaultdict(list) + for i,(old,new) in enumerate(zip(base,candidate)): + assert (old['time'],old['helper'],old['width'])==(new['time'],new['helper'],new['width']) + limits[key(new)]+=new['width'] + if key(old)==key(new): + loads[key(new)].append(new['width']);families[new['family'],new['time']].append(1) + else: + x=xs[i]=model.new_bool_var(str(i));model.add_hint(x,1) + loads[key(old)].append(old['width']*(1-x));loads[key(new)].append(new['width']*x) + families[old['family'],old['time']].append(1-x);families[new['family'],new['time']].append(x) + capacities={} + for label,(cap,times)in plan['windows'].items(): + o,ch=map(int,label.split(',')) + for port in range(112):capacities[o,ch,port]=cap + target=Counter(cap-limits[k]for k,cap in capacities.items()) + dynamic={key(base[i])for i in xs}|{key(candidate[i])for i in xs} + fixed=Counter(cap-limits[k]for k,cap in capacities.items()if k not in dynamic) + needed=target-fixed;indicators=defaultdict(list) + for k in dynamic: + choices=[];cap=capacities[k] + for r in needed: + if r>cap:continue + z=model.new_bool_var(f'rem{k}_{r}');choices.append(z);indicators[r].append(z) + model.add(sum(loads[k])==cap-r).only_enforce_if(z) + model.add_hint(z,int(cap-limits[k]==r)) + model.add_exactly_one(choices) + for r,terms in indicators.items():model.add(sum(terms)==needed[r]) + for terms in families.values():model.add(sum(terms)<=1) + model.minimize(sum(xs.values()));solver=cp_model.CpSolver() + solver.parameters.num_search_workers=2;solver.parameters.max_time_in_seconds=a.seconds + status=solver.solve(model);assert status in (cp_model.OPTIMAL,cp_model.FEASIBLE) + result=[dict(candidate[i] if i in xs and solver.value(xs[i]) else r)for i,r in enumerate(base)] + bins=defaultdict(list);seen=set();moves=[] + for old,r in zip(base,result): + assert (r['family'],r['time'])not in seen;seen.add((r['family'],r['time'])) + bins[key(r)].append(r) + if key(old)!=key(r):moves.append(dict(time=r['time'],helper=r['helper'],width=r['width'],before=list(key(old)),after=list(key(r)))) + for k,rs in bins.items(): + off=0;cap,times=plan['windows'][f'{k[0]},{k[1]}'] + for r in rs: + assert r['time'] in times;r['offset']=off;off+=r['width'] + assert off<=cap + actual=Counter(cap-sum(r['width']for r in bins[k])for k,cap in capacities.items());assert actual==target + raw=json.dumps(result,sort_keys=True,separators=(',',':')).encode() + plan['assignment_sha256']=hashlib.sha256(raw).hexdigest();plan['mode']='minimal-delta-owner-repacking' + (a.out/'OWNERS.json.gz').write_bytes(gzip.compress(raw,mtime=0)) + (a.out/'PLAN.json').write_text(json.dumps(plan,indent=1)+'\n') + report=dict(model='old_or_proposed_owner_with_fixed_idle_profile',status=solver.status_name(status),original_changed=len(xs),changed=len(moves),seconds=solver.wall_time,moves=moves) + (a.out/'MOVES.json').write_text(json.dumps(report,indent=2)+'\n') + print(json.dumps({k:v for k,v in report.items()if k!='moves'}),flush=True) + +if __name__=='__main__': main() diff --git a/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/OWNERS.json.gz b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/OWNERS.json.gz new file mode 100644 index 0000000000..00e1c8a059 Binary files /dev/null and b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/OWNERS.json.gz differ diff --git a/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/PLAN.json.gz b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/PLAN.json.gz new file mode 100644 index 0000000000..d214bc6424 Binary files /dev/null and b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/PLAN.json.gz differ diff --git a/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/SEARCH.json b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/SEARCH.json new file mode 100644 index 0000000000..4881541d40 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed0/SEARCH.json @@ -0,0 +1,29 @@ +{ + "status": "NOMINATION_REQUIRES_ADMISSION", + "seed": 0, + "trials": 3000000, + "temperature": 1.0, + "accepted_swaps": 82543, + "improving_swaps": 176, + "entropy_gain": 3.021466494174092, + "seconds": 27.35747803095728, + "idle_profile": { + "1": 128, + "3": 17, + "4": 1, + "7": 1, + "22": 1, + "48": 2213 + }, + "best_history": [ + { + "trial": 746110, + "entropy_gain": 0.3397980735899182 + }, + { + "trial": 1147748, + "entropy_gain": 3.021466494174092 + } + ], + "changed_owner_records": 11626 +} diff --git a/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed1/SEARCH.json b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed1/SEARCH.json new file mode 100644 index 0000000000..664acff6ae --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/search/pairs-seed1/SEARCH.json @@ -0,0 +1,20 @@ +{ + "status": "NOMINATION_REQUIRES_ADMISSION", + "seed": 1, + "trials": 10000000, + "temperature": 1.0, + "accepted_swaps": 278040, + "improving_swaps": 491, + "entropy_gain": 0.0, + "seconds": 97.04793579294346, + "idle_profile": { + "1": 128, + "3": 17, + "4": 1, + "7": 1, + "22": 1, + "48": 2213 + }, + "best_history": [], + "changed_owner_records": 0 +} diff --git a/research/complex-571-cold14-k492-repacking-audit/search/single-seed0/SEARCH.json b/research/complex-571-cold14-k492-repacking-audit/search/single-seed0/SEARCH.json new file mode 100644 index 0000000000..aee2af315c --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/search/single-seed0/SEARCH.json @@ -0,0 +1,19 @@ +{ + "status": "NOMINATION_REQUIRES_ADMISSION", + "seed": 0, + "trials": 3000000, + "temperature": 1.0, + "accepted_swaps": 112773, + "improving_swaps": 43, + "entropy_gain": 0.0, + "seconds": 19.30914659507107, + "idle_profile": { + "1": 127, + "3": 19, + "7": 1, + "21": 1, + "48": 2213 + }, + "best_history": [], + "changed_owner_records": 0 +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/actual-recompression-and-rebound-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/actual-recompression-and-rebound-controls.log new file mode 100644 index 0000000000..a227b7ce47 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/actual-recompression-and-rebound-controls.log @@ -0,0 +1 @@ +PASS_GENERATED_ARTIFACT_RECOMPRESSION_AND_REBOUND_MUTATIONS {'recompression_accepted': 2, 'semantic_rejected': 18, 'reference_or_metadata_rejected': 18} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/admission-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/admission-controls.log new file mode 100644 index 0000000000..728b973e2b --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/admission-controls.log @@ -0,0 +1 @@ +PASS_EXACT_MIXED_048_ALLCOLD_NATIVE_ASSEMBLY_ADMISSION_NEGATIVE_CONTROLS 114 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/bind-providers.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/bind-providers.log new file mode 100644 index 0000000000..a964929571 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/bind-providers.log @@ -0,0 +1 @@ +PASS_FROZEN_048_ALLCOLD_DISPATCH_FRESH_PROVIDER_BINDING diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-all-columns-native-frames.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-all-columns-native-frames.log new file mode 100644 index 0000000000..33eea44e41 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-all-columns-native-frames.log @@ -0,0 +1,158 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "034662fc23dade59a3dae264cd7e3403e8379f5a2d86183a098343bd2fe04a04", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 8704, + "scalar_operations": 21912, + "center_rank_sum": 64, + "local_profile": { + "1": 2596, + "2": 552, + "3": 304, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "local_rank_mass": 5714, + "frames": 1118, + "directed_edges": 3104, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 1.0513663690071553, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.", + "hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 467, + 468, + 477, + 490, + 491, + 514, + 515, + 538, + 539, + 562, + 563, + 574, + 583, + 584, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603 + ], + "early_cleanup_gates": 120, + "cold_hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "refactored_cleanup_gates": 8429, + "refactored_cleanup": { + "cold_low_frame_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "construction": "ColdBeyond two-per-block cold low-frame ends: per block one dead-register absorption gate at U_b in A, a rank-0 helper premix plus frame-[] target writes at the head of A (after the entry wrappers), per-unit lower-frame tails, and an exact dyadic Gauss-Jordan remainder at FULL", + "entering_low_frame_ended_helpers": [ + 597, + 599 + ], + "forward_absorption_A_indices": [ + 1031, + 1167, + 1303, + 1439, + 1575, + 1711, + 1847, + 1983 + ], + "forward_absorptions": 8, + "lower_frame_gates": 86, + "premix_gates": 430, + "premix_target_writes": 16 + } +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-all-phase-edges.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-all-phase-edges.log new file mode 100644 index 0000000000..001381918a --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-all-phase-edges.log @@ -0,0 +1,17 @@ +exact phase edges 0 / 3104 seconds 0.45633646205533296 +exact phase edges 200 / 3104 seconds 5.598754292004742 +exact phase edges 400 / 3104 seconds 11.874912415980361 +exact phase edges 600 / 3104 seconds 18.20143574604299 +exact phase edges 800 / 3104 seconds 24.597926078015007 +exact phase edges 1000 / 3104 seconds 31.004165134043433 +exact phase edges 1200 / 3104 seconds 37.38514142797794 +exact phase edges 1400 / 3104 seconds 43.776958508067764 +exact phase edges 1600 / 3104 seconds 50.11141462507658 +exact phase edges 1800 / 3104 seconds 56.63865695300046 +exact phase edges 2000 / 3104 seconds 63.20373124699108 +exact phase edges 2200 / 3104 seconds 69.73679353005718 +exact phase edges 2400 / 3104 seconds 76.25374692608602 +exact phase edges 2600 / 3104 seconds 82.60282463207841 +exact phase edges 2800 / 3104 seconds 88.91012117208447 +exact phase edges 3000 / 3104 seconds 95.30082206008956 +PASS exact local phases 100.07934952701908 seconds diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-both-reflected-ledgers.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-both-reflected-ledgers.log new file mode 100644 index 0000000000..dd62322335 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-both-reflected-ledgers.log @@ -0,0 +1,2 @@ +PASS emitted forward 27256 events +PASS emitted backward 27256 events diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-independent-local-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-independent-local-controls.log new file mode 100644 index 0000000000..dafef87e13 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-independent-local-controls.log @@ -0,0 +1,3 @@ +independent emitted replay PASS forward +independent emitted replay PASS backward +PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY 25 controls rejected diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-normalized-wrappers.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-normalized-wrappers.log new file mode 100644 index 0000000000..44241ff0d1 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-normalized-wrappers.log @@ -0,0 +1 @@ +Lemma A (exact): L^-1 S_E R^-1 = C_[w] x I for 39 entrance frames, global phase included; 17 wrapper mutations rejected; all-even-weight: False diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step0-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step0-port_stage-construction.log new file mode 100644 index 0000000000..31a5be9020 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step0-port_stage-construction.log @@ -0,0 +1,43 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "aad9b01b30bb8a2c5ce8d9415afafc88b0ab288986eb3d068a2bbba8e45bef51", + "shadow_output_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "input_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "output_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "sections": { + "A": { + "dropped_by_stage": 12, + "introduced": 81 + }, + "B": { + "kept_own": 120, + "introduced": 464, + "frames_changed": 600 + } + }, + "local_profile": { + "1": 2444, + "2": 396, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step0-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step0-port_stage-native-audit.log new file mode 100644 index 0000000000..23dff971d0 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step0-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "55148fd261558d5d7c093dd30f56e407781b1ef5a8121211c1381c9949c6c686", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9132, + "scalar_operations": 16242, + "center_rank_sum": 64, + "local_profile": { + "1": 2444, + "2": 396, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5908, + "frames": 1059, + "directed_edges": 3027, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5089711820473894, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step1-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step1-port_stage-construction.log new file mode 100644 index 0000000000..b031edbf90 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step1-port_stage-construction.log @@ -0,0 +1,44 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "shadow_output_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "output_content_sha256": "b184d491bdc7d42af32649b71cf46663a1dfdfc46046bac8cd6bdef6060afdd6", + "sections": { + "A": { + "dropped_by_stage": 49, + "introduced": 37, + "frames_changed": 20 + }, + "B": { + "kept_own": 120, + "introduced": 30, + "frames_changed": 64 + } + }, + "local_profile": { + "1": 2480, + "2": 552, + "3": 336, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step1-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step1-port_stage-native-audit.log new file mode 100644 index 0000000000..e6dad17dfa --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step1-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "b184d491bdc7d42af32649b71cf46663a1dfdfc46046bac8cd6bdef6060afdd6", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "532b9dd534557fede91be9cfb24349293fc10d7342b4895eb02785cfd49b77a4", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9096, + "scalar_operations": 16234, + "center_rank_sum": 64, + "local_profile": { + "1": 2480, + "2": 552, + "3": 336, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5872, + "frames": 1134, + "directed_edges": 3102, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5323981799883768, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step2-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step2-port_stage-construction.log new file mode 100644 index 0000000000..2e6da4415e --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step2-port_stage-construction.log @@ -0,0 +1,41 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "shadow_output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "input_content_sha256": "b184d491bdc7d42af32649b71cf46663a1dfdfc46046bac8cd6bdef6060afdd6", + "output_content_sha256": "83479d878efe213b6433ddee10281b1b52fbfb56494fb0424da6cc7e7460278e", + "sections": { + "A": { + "introduced": 24 + }, + "B": { + "kept_own": 120, + "introduced": 12 + } + }, + "local_profile": { + "1": 2548, + "2": 536, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step2-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step2-port_stage-native-audit.log new file mode 100644 index 0000000000..376074eab1 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step2-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "83479d878efe213b6433ddee10281b1b52fbfb56494fb0424da6cc7e7460278e", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "ce4f88a5c5907d59210c323d2c134d3a215e445a0657e00376d4b8ebfe95f6e3", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9000, + "scalar_operations": 16210, + "center_rank_sum": 64, + "local_profile": { + "1": 2548, + "2": 536, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5860, + "frames": 1139, + "directed_edges": 3107, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5131792540196329, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step3-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step3-port_stage-construction.log new file mode 100644 index 0000000000..acbc4ccab9 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step3-port_stage-construction.log @@ -0,0 +1,40 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "shadow_output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "input_content_sha256": "83479d878efe213b6433ddee10281b1b52fbfb56494fb0424da6cc7e7460278e", + "output_content_sha256": "7ddfa2bca87c1bdca6b573800b646f3c2d9ff75b0dde144fcaa6f714b96c5a5c", + "sections": { + "A": { + "frames_changed": 6 + }, + "B": { + "kept_own": 120 + } + }, + "local_profile": { + "1": 2536, + "2": 542, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step3-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step3-port_stage-native-audit.log new file mode 100644 index 0000000000..184689d185 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step3-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "7ddfa2bca87c1bdca6b573800b646f3c2d9ff75b0dde144fcaa6f714b96c5a5c", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "1715ce8676ad0888ea2193c1b446ce48b3ef755f0dbb174a6ee37773ce3e5671", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9000, + "scalar_operations": 16210, + "center_rank_sum": 64, + "local_profile": { + "1": 2536, + "2": 542, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5860, + "frames": 1139, + "directed_edges": 3113, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5113149710232392, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step4-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step4-port_stage-construction.log new file mode 100644 index 0000000000..3c7c744088 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step4-port_stage-construction.log @@ -0,0 +1,41 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "shadow_output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b", + "input_content_sha256": "7ddfa2bca87c1bdca6b573800b646f3c2d9ff75b0dde144fcaa6f714b96c5a5c", + "output_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33", + "sections": { + "A": { + "dropped_by_stage": 2, + "introduced": 2 + }, + "B": { + "kept_own": 120 + } + }, + "local_profile": { + "1": 2532, + "2": 544, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step4-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step4-port_stage-native-audit.log new file mode 100644 index 0000000000..827e6b1c89 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step4-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "c9a51103c33916add4bf8668b0281a9e0106c7254a89368f5bb46c4540146eaf", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9000, + "scalar_operations": 16210, + "center_rank_sum": 64, + "local_profile": { + "1": 2532, + "2": 544, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5860, + "frames": 1139, + "directed_edges": 3115, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5059931889409199, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step5-frame_regroup-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step5-frame_regroup-construction.log new file mode 100644 index 0000000000..7c201a5164 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step5-frame_regroup-construction.log @@ -0,0 +1,296 @@ +{ + "status": "PASS_EXACT_FRAME_REGROUPING", + "input_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33", + "output_content_sha256": "b19c9c7cf895e31cd0afd12e5226cd0c917fac387bf7b12533437141790845c8", + "profile_before": { + "1": 2532, + "2": 544, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "profile_after": { + "1": 2460, + "2": 616, + "3": 296, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "changes": [ + { + "section": "B", + "index": 599, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 600, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 601, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 602, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 603, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 604, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 627, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 630, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 631, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 632, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 633, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 634, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 654, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 656, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 660, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 662, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 663, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 664, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 685, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 686, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 688, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 691, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 693, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 694, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + } + ], + "negative_controls_rejected": [ + "omission-B-599", + "overpromotion-B-599", + "omission-B-600", + "overpromotion-B-600", + "omission-B-601", + "overpromotion-B-601", + "omission-B-602", + "overpromotion-B-602", + "omission-B-603", + "overpromotion-B-603", + "omission-B-604", + "overpromotion-B-604", + "omission-B-627", + "overpromotion-B-627", + "omission-B-630", + "overpromotion-B-630", + "omission-B-631", + "overpromotion-B-631", + "omission-B-632", + "overpromotion-B-632", + "omission-B-633", + "overpromotion-B-633", + "omission-B-634", + "overpromotion-B-634", + "omission-B-654", + "overpromotion-B-654", + "omission-B-656", + "overpromotion-B-656", + "omission-B-660", + "overpromotion-B-660", + "omission-B-662", + "overpromotion-B-662", + "omission-B-663", + "overpromotion-B-663", + "omission-B-664", + "overpromotion-B-664", + "omission-B-685", + "overpromotion-B-685", + "omission-B-686", + "overpromotion-B-686", + "omission-B-688", + "overpromotion-B-688", + "omission-B-691", + "overpromotion-B-691", + "omission-B-693", + "overpromotion-B-693", + "omission-B-694", + "overpromotion-B-694" + ], + "all_scalar_operations_unchanged": true, + "all_initial_helper_responses_equal": true, + "all_entering_helper_responses_zero": true, + "helper_widths_unchanged": true, + "scope": "Construction, frame/profile and scalar response checks only; native, phase and global admission are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step6-hyperplane_end-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step6-hyperplane_end-construction.log new file mode 100644 index 0000000000..6f30fec836 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step6-hyperplane_end-construction.log @@ -0,0 +1 @@ +PASS 34 hyperplane-ended helpers diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step6-hyperplane_end-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step6-hyperplane_end-controls.log new file mode 100644 index 0000000000..1e6c53a31e --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step6-hyperplane_end-controls.log @@ -0,0 +1,87 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "e3b45494f1c3a500dbe7cf85b7f60f1b5758d568e26c1af8d36b0302f7700f09", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "c508e90fda75892bb4364ffe060f5fa6abaafe496cf5b1e14c4ac1368b27ccd2", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9000, + "scalar_operations": 16210, + "center_rank_sum": 64, + "local_profile": { + "1": 2554, + "2": 556, + "3": 304, + "4": 160, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5826, + "frames": 1118, + "directed_edges": 3108, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.7289522649953142, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.", + "hyperplane_ended_helpers": [ + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 467, + 468, + 477, + 490, + 491, + 514, + 515, + 538, + 539, + 562, + 563, + 574, + 583, + 584, + 593, + 594, + 595, + 596, + 598, + 600, + 601, + 602, + 603 + ], + "early_cleanup_gates": 34 +} +rejected early cleanup gate that does not commute with the skipped cleanup prefix +rejected helper final frame not containing its last gate frame +rejected helper final frame on a register still touched by the FULL cleanup +rejected early gate dropped from the program (helper not restored) +rejected early gate frame below its registers' frames +rejected hyperplane end on a non-entering helper +rejected profile not updated (paid climbs misreported) +rejected profile without 8 partner U->FULL climb charges +rejected duplicate early gate +rejected constructor: skipped cleanup gate adds into the partner -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: skipped cleanup gate scales the partner -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: extra cleanup gate reading the helper (one-gate rule) -- helper must have exactly this one cleanup gate +rejected constructor: extra cleanup gate adding into the helper (one-gate rule) -- helper must have exactly this one cleanup gate +rejected constructor: real helper 490: skipped gate 447 flipped from 283 -= 299 to 299 -= 283 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 491: skipped gate 446 flipped from 9 -= 33 to 33 -= 9 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 514: skipped gate 445 flipped from 315 -= 331 to 331 -= 315 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 515: skipped gate 444 flipped from 65 -= 105 to 105 -= 65 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 538: skipped gate 443 flipped from 347 -= 363 to 363 -= 347 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 539: skipped gate 442 flipped from 1 -= 41 to 41 -= 1 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 562: skipped gate 441 flipped from 379 -= 395 to 395 -= 379 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 563: skipped gate 440 flipped from 73 -= 97 to 97 -= 73 -- cleanup gate does not commute with the skipped cleanup gates on its registers +relaxed helpers [490, 491, 514, 515, 538, 539, 562, 563] +PASS 21 HPE raw-word mutations rejected diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step7-cold_end-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step7-cold_end-construction.log new file mode 100644 index 0000000000..781d49ae54 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step7-cold_end-construction.log @@ -0,0 +1 @@ +PASS 22 cold low-frame-ended helpers; 430 premix gates; 8429 cleanup gates diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step7-cold_end-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step7-cold_end-controls.log new file mode 100644 index 0000000000..7d0dbfcfd9 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck-step7-cold_end-controls.log @@ -0,0 +1,197 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "e3a1ec2018f701f9b69ffe702b932b212bd7d23f2c44e927f4d3d04c7d43de0b", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 8704, + "scalar_operations": 21912, + "center_rank_sum": 64, + "local_profile": { + "1": 2596, + "2": 552, + "3": 304, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "local_rank_mass": 5714, + "frames": 1118, + "directed_edges": 3104, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 1.0157684939913452, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.", + "hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 467, + 468, + 477, + 490, + 491, + 514, + 515, + 538, + 539, + 562, + 563, + 574, + 583, + 584, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603 + ], + "early_cleanup_gates": 120, + "cold_hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "refactored_cleanup_gates": 8429, + "refactored_cleanup": { + "cold_low_frame_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "construction": "ColdBeyond two-per-block cold low-frame ends: per block one dead-register absorption gate at U_b in A, a rank-0 helper premix plus frame-[] target writes at the head of A (after the entry wrappers), per-unit lower-frame tails, and an exact dyadic Gauss-Jordan remainder at FULL", + "entering_low_frame_ended_helpers": [ + 597, + 599 + ], + "forward_absorption_A_indices": [ + 1031, + 1167, + 1303, + 1439, + 1575, + 1711, + 1847, + 1983 + ], + "forward_absorptions": 8, + "lower_frame_gates": 86, + "premix_gates": 430, + "premix_target_writes": 16 + } +} +rejected premix placed in the zero-frame precondition (before the cold wrappers) | touches a cold hyperplane-ended helper +rejected one premix gate dropped (the compensation then reads a cold-ended helper) | touches a cold hyperplane-ended helper +rejected one lower-frame cleanup gate dropped (gate and its early_cleanup entry) | 'arbitrary-dirt endpoint' +rejected one FULL-remainder gate dropped | 'arbitrary-dirt endpoint' +rejected lower-frame gate coefficient changed | 'arbitrary-dirt endpoint' +rejected lower-frame gate moved into the FULL remainder (touches a cold-ended helper at FULL) | 'arbitrary-dirt endpoint' +rejected lower-frame gate frame below its registers' frames | 'nonmonotone' +rejected cold end at another dim-4 frame | hpe cone pre-check (row / column) +rejected profile pin: cold end dropped (valid FULL end, but the reported profile counts the low end) | paid local profile differs from the reported local_profile +rejected extra cold end on a premixed partner (the compensation reads it before its wrapper) | touches a cold hyperplane-ended helper +rejected refactored-cleanup marker removed (literal-inverse rule applies) | cleanup is not the literal reversed inverse +rejected remainder gate retargeted to a target register | refactored cleanup touches a target +rejected non-dyadic remainder coefficient | 'arbitrary-dirt endpoint' +rejected profile not updated (paid climbs misreported) | paid local profile differs from the reported local_profile +rejected entering end 597: premix gate dropped | 'arbitrary-dirt endpoint' +rejected entering end 597: premix gate at frame [] instead of its entrance E | 'nonmonotone' +rejected entering end 597: premix gate moved into the zero-frame precondition | zero-frame precondition/compensation touches an entering helper +rejected entering end 597: lower-frame gate dropped (gate and its early_cleanup entry) | 'arbitrary-dirt endpoint' +rejected entering end 597: profile pin: end dropped (valid FULL end, but the reported profile counts the low end) | paid local profile differs from the reported local_profile +rejected entering end 597: end at another hyperplane | hpe cone pre-check (row / column) +rejected entering end 599: premix gate dropped | 'arbitrary-dirt endpoint' +rejected entering end 599: premix gate at frame [] instead of its entrance E | 'nonmonotone' +rejected entering end 599: premix gate moved into the zero-frame precondition | zero-frame precondition/compensation touches an entering helper +rejected entering end 599: lower-frame gate dropped (gate and its early_cleanup entry) | 'arbitrary-dirt endpoint' +rejected entering end 599: profile pin: end dropped (valid FULL end, but the reported profile counts the low end) | paid local profile differs from the reported local_profile +rejected entering end 599: end at another hyperplane | hpe cone pre-check (row / column) +rejected premix target writes placed in the zero-frame precondition (before the cold wrappers) | touches a cold hyperplane-ended helper +rejected one premix target write dropped (compensation must read an ended helper) | touches a cold hyperplane-ended helper +rejected premix target write coefficient changed | touches a cold hyperplane-ended helper +rejected premix target write reads an entering helper | zero-frame compensation reads an entering helper +rejected premix target write reads a cold helper of another block | touches a cold hyperplane-ended helper +rejected forward absorption dropped | 'arbitrary-dirt endpoint' +rejected forward absorption into a centre (a live register read by the cut) | 'arbitrary-dirt endpoint' +rejected forward absorption coefficient changed | 'arbitrary-dirt endpoint' +rejected forward absorption placed before the absorbed register's last kernel write | 'arbitrary-dirt endpoint' +rejected forward absorption placed while the absorbing register is still live | 'arbitrary-dirt endpoint' +rejected forward absorption at a lower frame than its registers | 'nonmonotone' +rejected forward absorption at a higher frame (FULL) than its registers | 'nonmonotone' +PASS 38 cold-end raw-word mutations rejected diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step0-greedy_kernels-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step0-greedy_kernels-construction.log new file mode 100644 index 0000000000..71b732c858 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step0-greedy_kernels-construction.log @@ -0,0 +1,335 @@ +{ + "status": "PASS_FROZEN_MULTICUT_COLD_KERNEL_CONSTRUCTION", + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "kernels": [ + { + "pivot": 462, + "changed_helper": 238, + "entrance_frame": [ + 1 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 39 + ], + [ + "A", + 40 + ], + [ + "A", + 49 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 464, + "changed_helper": 240, + "entrance_frame": [ + 1 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 25 + ], + [ + "A", + 26 + ], + [ + "A", + 58 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 466, + "changed_helper": 242, + "entrance_frame": [ + 7 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 35 + ], + [ + "A", + 36 + ], + [ + "A", + 58 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 468, + "changed_helper": 244, + "entrance_frame": [ + 7 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 29 + ], + [ + "A", + 30 + ], + [ + "A", + 58 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 490, + "changed_helper": 266, + "entrance_frame": [ + 25 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 33 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 492, + "changed_helper": 268, + "entrance_frame": [ + 25 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 44 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 514, + "changed_helper": 290, + "entrance_frame": [ + 31 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 38 + ], + [ + "A", + 39 + ], + [ + "A", + 57 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 516, + "changed_helper": 292, + "entrance_frame": [ + 31 + ], + "inserted_gates": 3, + "cuts": [ + [ + "A", + 51 + ], + [ + "A", + 52 + ], + [ + "A", + 64 + ] + ], + "profile_delta": { + "1": 7, + "2": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 510, + "changed_helper": 286, + "entrance_frame": [ + 480 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 712 + ] + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 512, + "changed_helper": 288, + "entrance_frame": [ + 480 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 717 + ] + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 586, + "changed_helper": 362, + "entrance_frame": [ + 486 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 822 + ] + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 588, + "changed_helper": 364, + "entrance_frame": [ + 486 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 827 + ] + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + }, + "prior_dirty_targets": 4, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + } + ], + "local_profile": { + "1": 2420, + "2": 564, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "entering_helpers": 228, + "entrance_rank": 436, + "scope": "Literal multi-cut donor gates, exact complete dirty-response cancellation, exact frame chains and regenerated cleanup. Native all-column, phase, owner, invoice and assembly checks remain separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step0-greedy_kernels-omissions.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step0-greedy_kernels-omissions.log new file mode 100644 index 0000000000..9ce5a32e6e --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step0-greedy_kernels-omissions.log @@ -0,0 +1 @@ +PASS_EXACT_MULTICUT_KERNEL_OMISSION_CONTROLS 48 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step1-frame_coalesce-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step1-frame_coalesce-construction.log new file mode 100644 index 0000000000..640f350de5 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step1-frame_coalesce-construction.log @@ -0,0 +1,92 @@ +{ + "status": "PASS_SIX_EXACT_FRAME_COALESCENCES", + "input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "profile_before": { + "1": 2420, + "2": 564, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "profile_after": { + "1": 2408, + "2": 570, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "section": "A", + "index": 78, + "delta": { + "1": -2, + "2": 1 + } + }, + { + "section": "A", + "index": 75, + "delta": { + "1": -2, + "2": 1 + } + }, + { + "section": "A", + "index": 72, + "delta": { + "1": -2, + "2": 1 + } + }, + { + "section": "A", + "index": 69, + "delta": { + "1": -2, + "2": 1 + } + }, + { + "section": "A", + "index": 66, + "delta": { + "1": -2, + "2": 1 + } + }, + { + "section": "A", + "index": 61, + "delta": { + "1": -2, + "2": 1 + } + } + ], + "negative_controls_rejected": [ + "omission-A-78", + "overpromotion-A-78", + "omission-A-75", + "overpromotion-A-75", + "omission-A-72", + "overpromotion-A-72", + "omission-A-69", + "overpromotion-A-69", + "omission-A-66", + "overpromotion-A-66", + "omission-A-61", + "overpromotion-A-61" + ], + "all_scalar_operations_unchanged": true, + "all_initial_helper_responses_equal": true, + "all_entering_helper_responses_zero": true, + "helper_widths_unchanged": true, + "scope": "Construction, frame/profile and scalar response checks only; native, phase and global admission are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step2-gate_move_coalesce-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step2-gate_move_coalesce-construction.log new file mode 100644 index 0000000000..7d496d8503 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/ck_504-step2-gate_move_coalesce-construction.log @@ -0,0 +1,68 @@ +{ + "status": "PASS_EXACT_GATE_MOVE_FRAME_COALESCENCES", + "input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b", + "profile_before": { + "1": 2408, + "2": 570, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "profile_after": { + "1": 2404, + "2": 572, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "moves": [ + { + "from": 33, + "section": "A", + "to": 35, + "passed": 2 + }, + { + "from": 46, + "section": "A", + "to": 48, + "passed": 2 + } + ], + "changes": [ + { + "section": "A", + "index": 35, + "delta": { + "1": -2, + "2": 1 + } + }, + { + "section": "A", + "index": 48, + "delta": { + "1": -2, + "2": 1 + } + } + ], + "negative_controls_rejected": [ + "omission-A-35", + "overpromotion-A-35", + "omission-A-48", + "overpromotion-A-48", + "unmoved-A-46", + "unmoved-A-33" + ], + "all_scalar_responses_unchanged": true, + "all_entering_helper_responses_zero": true, + "helper_widths_unchanged": true, + "cleanup_rebuilt_by_inherited_rule": true, + "scope": "Construction, commutation, frame/profile and scalar response checks only; native, phase and global admission are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/conservative-and-native-exact-assembly.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/conservative-and-native-exact-assembly.log new file mode 100644 index 0000000000..0cd300e68c --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/conservative-and-native-exact-assembly.log @@ -0,0 +1 @@ +PASS_FRESH_MIXED_048_ALLCOLD_NATIVE_EXACT_ASSEMBLY 0.001635425470780892 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/emit-controller.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/emit-controller.log new file mode 100644 index 0000000000..f945b3ee58 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/emit-controller.log @@ -0,0 +1,61 @@ +{ + "status": "EMITTED_MIXED_PROVIDER_ASYNCHRONOUS_WHOLE_OWNER_COMPLEX_TEMPLATE", + "template_sha256": "37d2a1bda1fd2acaf54374557e0b13477dbd6bd3787a16a62a8a181ad379ad53", + "parent_template_sha256": "7db047a427a7979d69e163c78a1e32bd445628fb86723e131a3138361355a9c3", + "live": 7168, + "physical": 7670, + "global_profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "rank_mass": 520704, + "deficit": 2560, + "maxchild": 48, + "hosted_residuals": 35424, + "banks_per_stage": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "entering_helper_roles": 16356, + "unique_actual_73column_sigmas": 6702, + "sigma_stream_sha256": "486cb65d3b1ef9a3caf8d323237bf6a33cabf18d64116229908b650248a681c3", + "cross_replica_helper_roles": 26498, + "asynchronous_order_sha256": "2acd6b2004be3d3ef6645f3c968feb22b5167c400bb49eb446821e5cb7af6eee", + "source_artifacts": { + "work/complex-nine-native/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "providers/ck/CANONICAL-WORD.json.gz": "ae3018c0646be06f47d345bb8baf0e6ea9220096a949fa30a8f7656aa4ad6f45", + "providers/ck/LOCAL-PROGRAMS.json.gz": "b5da54e049cc127a1065190a647cb71cac0c6ba03d9ccdb71719f4fcbfa886f3", + "providers/ck/LOCAL-CHECKS.json": "059c4e59142bdf5c19dc7c0afebcddfec28e6e60cbc7299b8bdcc624afbc0cbe", + "providers/ck/INDEPENDENT-LOCAL-REPLAY.json": "ecefb9e661301d8081522be68bbe6640e175c011eb1177f643383d193c6fb2f0", + "providers/ck/RESIDUAL-ADAPTERS.json": "4697965c1b466fd3eaf37fa1fbbd45bb06c78cb0fe0b3a253744efb4013581b9", + "providers/ck/CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "providers/ck/CLIFFORD-REVIEW.json": "64d2ebc80317196f8fa1628a5abee8152b6d102a5d86049bebd563b6989c8da4", + "providers/jp8/CANONICAL-WORD.json.gz": "7a3fec1022d3b2b1bd986302a327735ec521d17b043f4a5acb96253a56f6193c", + "providers/jp8/LOCAL-PROGRAMS.json.gz": "fa0c196f65bd6ec1424fdf7d789f6972075c7bb02bf43f573ea85eafab31be98", + "providers/jp8/LOCAL-CHECKS.json": "0fad744aa863eedb288a9f87b1c23225a36b316b6275cc3b1bcedd42afe28a67", + "providers/jp8/INDEPENDENT-LOCAL-REPLAY.json": "cb2f99ed351925dd35434b73de16f4085884fe81a35a69e1c7ce2d5e96cb975b", + "providers/jp8/RESIDUAL-ADAPTERS.json": "bdb44cf523636f307ebb3617da548f2e3a8af74321eabe24aef40186e280a917", + "providers/jp8/CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "providers/jp8/CLIFFORD-REVIEW.json": "9c95c74f4bd2343a1a788dd38b42644e18b2be7cc5c69342ad2f48f846f75475" + }, + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "scope": "Two actual verified plain/width-seven providers dispatched per complete invocation; independent controller/spectator/normalization and complete finite invoice admission required." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/fresh-invoice.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/fresh-invoice.log new file mode 100644 index 0000000000..d0cc930c01 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/fresh-invoice.log @@ -0,0 +1,36 @@ +{ + "status": "PASS_INDEPENDENT_MIXED_ASYNC_SCALAR_PREFIX_AND_FINITE_INVOICE", + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "selected_real_component_primitives": 18296182, + "selected_coefficient_work_primitive_count": 9096623, + "global_prefix_bits": 286, + "finite": { + "physical_stock_bits": 2641, + "router_bits": 7985, + "literal_bits": 35282, + "physical_row_coefficient": 16467, + "retained_row_coefficient": 20161, + "required_C0_bits": 200012, + "halving_integer_inequality": [ + 5329, + 4608 + ], + "G_exponent": 30000, + "E_exponent": 100000, + "C0_exponent": 210000 + }, + "strict_checks": { + "local_primitive_bound": true, + "logical": true, + "router": true, + "literal": true, + "mass": true, + "precision": true, + "tape": true, + "row": true, + "halving": true + } +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/frozen558-full-replay.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/frozen558-full-replay.log new file mode 100644 index 0000000000..7f905000e9 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/frozen558-full-replay.log @@ -0,0 +1,49 @@ +RUN reconstruct552-and-promote8 +PASS reconstruct552-and-promote8 +RUN all-columns-native-frames +PASS all-columns-native-frames +RUN emit-both-reflected-ledgers +PASS emit-both-reflected-ledgers +RUN independent-local-and-controls +PASS independent-local-and-controls +RUN normalized-wrappers +PASS normalized-wrappers +RUN all-phase-recipes +PASS all-phase-recipes +RUN literal-owners-full-invoice +PASS literal-owners-full-invoice +RUN two-engine-exact-assembly +PASS two-engine-exact-assembly +RUN assembly-admission-controls +PASS assembly-admission-controls +{ + "status": "PASS_COMPLEX_EIGHT_RANK5_PIVOTS_AND_CITED_BIT", + "kappa": "796258944657507/500000000000000000", + "kappa_decimal": "0.001592517889315014", + "complex_lower": "199382255973827096291/125000000000000000000000", + "bit_lower": "413456747036699736067/250000000000000000000000", + "word_sha256": "375bd23001cd805707968005a9342827d5464e3f8e3a754197b31c46fc3f63c2", + "local_profile": { + "1": 2316, + "4": 192, + "8": 8, + "3": 464, + "2": 424, + "6": 56, + "5": 56 + }, + "global_profile": { + "1": 166880, + "2": 30528, + "3": 35779, + "4": 13824, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "seconds": 125.28078205604106, + "scope": "Conditional finite complex witness composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/independent-controller-and-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/independent-controller-and-controls.log new file mode 100644 index 0000000000..f4da25b616 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/independent-controller-and-controls.log @@ -0,0 +1,103 @@ +{ + "status": "PASS_INDEPENDENT_ASYNC_WHOLE_OWNER_CONTROLLER_PHASES_AND_SPECTATORS", + "template_sha256": "37d2a1bda1fd2acaf54374557e0b13477dbd6bd3787a16a62a8a181ad379ad53", + "complex_template_sha256": "37d2a1bda1fd2acaf54374557e0b13477dbd6bd3787a16a62a8a181ad379ad53", + "complex_live": 7168, + "complex_profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "complex_hosted_residuals": 35424, + "physical": 7670, + "rank_mass": 520704, + "deficit": 2560, + "entering_helper_roles": 16356, + "cross_replica_helper_roles": 26498, + "one_owner_per_complete_invocation": true, + "helper_busy_family_window_checks": 35424, + "complete_invocations": 72, + "actual_orthogonal_73column_maps": 6702, + "actual_sigma_stream_sha256": "486cb65d3b1ef9a3caf8d323237bf6a33cabf18d64116229908b650248a681c3", + "all_actual_residual_and_spectator_charts": true, + "idle_remainders": 2361, + "mutations_rejected": [ + "alias two whole owners", + "helper on active data family", + "owner in private namespace", + "wrong residual width", + "wrong spectator coordinate", + "omit idle remainder", + "understate physical reserve", + "ck: wrong provider at its invocation", + "ck: stale per-call local program hash", + "ck: stale serialized provider program", + "ck: unbound residual adapter hash", + "ck: partner width in provider width registry", + "ck: wrong per-call residual width", + "ck: wrong sweep provider", + "ck: entering helper width silently restored to nine", + "jp8: wrong provider at its invocation", + "jp8: stale per-call local program hash", + "jp8: stale serialized provider program", + "jp8: unbound residual adapter hash", + "jp8: partner width in provider width registry", + "jp8: wrong per-call residual width", + "jp8: wrong sweep provider", + "jp8: entering helper width silently restored to nine" + ], + "mutation_controls_run": true, + "provider_phase_semantic_sha256": { + "ck": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "jp8": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9" + }, + "provider_artifact_semantic_sha256": { + "ck": { + "CANONICAL-WORD.json.gz": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "LOCAL-PROGRAMS.json.gz": "854f17274092263dc25e60367f4cd0d29f60a8446becd17cc1883ebed7a97900", + "LOCAL-CHECKS.json": "9e7be4f5eb567ffe886871b3fa434cc71f352e91cc9da07cb4e72c5742f24db4", + "INDEPENDENT-LOCAL-REPLAY.json": "ad854d9d15515cbcf7a2bee221d9c3cf0c7215770521866b12ce98aa777e310b", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "RESIDUAL-ADAPTERS.json": "8283dfa442fc7e7626f3356385bda8607b8d15eecfdc9515a6271c29da6caa7a" + }, + "jp8": { + "CANONICAL-WORD.json.gz": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "LOCAL-PROGRAMS.json.gz": "efe45ce7fb025a6f53cc9eb54e951ac2211a5ed927e689a049e4f68ca680654b", + "LOCAL-CHECKS.json": "e29bdcebdc2966979a9f5911f56b68c6f4942f6fdbeb6737e9db44e147d0193a", + "INDEPENDENT-LOCAL-REPLAY.json": "f31a73829f5de91fe98c3986bb2ad9b31e7b33881720029347051ab2b686af3c", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "RESIDUAL-ADAPTERS.json": "99e1873464e8e718ea25fd80df5aaed0e5508b83e9bf2bdd094ea5c95fdf87c9" + } + }, + "widths_by_provider": { + "ck": { + "4": 30, + "5": 48, + "7": 68, + "8": 92, + "9": 254 + }, + "jp8": { + "4": 30, + "5": 48, + "7": 36, + "8": 112, + "9": 266 + } + }, + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "all_provider_program_phase_and_wrapper_bindings": true, + "scope": "Independent exact asynchronous chronology, per-replica phase projection, owner/chart/paid-profile audit. Uses per-invocation local providers bound by exact scalar, phase and residual-wrapper receipts; all-size compilation and complete coefficient invoice are separate inherited obligations." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-all-columns-native-frames.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-all-columns-native-frames.log new file mode 100644 index 0000000000..fbe38bafb3 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-all-columns-native-frames.log @@ -0,0 +1,158 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "30ace4fbee52a519255724ecb5a2642a3f052fb588c1473ad73682070b2a8a23", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 8800, + "scalar_operations": 22669, + "center_rank_sum": 64, + "local_profile": { + "1": 2512, + "2": 400, + "3": 448, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "local_rank_mass": 5758, + "frames": 1037, + "directed_edges": 3015, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 1.051852919976227, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.", + "hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 467, + 468, + 477, + 490, + 491, + 514, + 515, + 538, + 539, + 562, + 563, + 574, + 583, + 584, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603 + ], + "early_cleanup_gates": 120, + "cold_hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "refactored_cleanup_gates": 9126, + "refactored_cleanup": { + "cold_low_frame_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "construction": "ColdBeyond two-per-block cold low-frame ends: per block one dead-register absorption gate at U_b in A, a rank-0 helper premix plus frame-[] target writes at the head of A (after the entry wrappers), per-unit lower-frame tails, and an exact dyadic Gauss-Jordan remainder at FULL", + "entering_low_frame_ended_helpers": [ + 597, + 599 + ], + "forward_absorption_A_indices": [ + 1007, + 1143, + 1279, + 1415, + 1551, + 1687, + 1823, + 1959 + ], + "forward_absorptions": 8, + "lower_frame_gates": 86, + "premix_gates": 430, + "premix_target_writes": 16 + } +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-all-phase-edges.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-all-phase-edges.log new file mode 100644 index 0000000000..5a6dd9331e --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-all-phase-edges.log @@ -0,0 +1,17 @@ +exact phase edges 0 / 3015 seconds 0.42353037488646805 +exact phase edges 200 / 3015 seconds 5.610805338947102 +exact phase edges 400 / 3015 seconds 11.85187667189166 +exact phase edges 600 / 3015 seconds 18.216445040889084 +exact phase edges 800 / 3015 seconds 24.770863413927145 +exact phase edges 1000 / 3015 seconds 31.239242193987593 +exact phase edges 1200 / 3015 seconds 37.62174710491672 +exact phase edges 1400 / 3015 seconds 44.074291694909334 +exact phase edges 1600 / 3015 seconds 50.360381562961265 +exact phase edges 1800 / 3015 seconds 56.87117737298831 +exact phase edges 2000 / 3015 seconds 63.37843148992397 +exact phase edges 2200 / 3015 seconds 70.0382057268871 +exact phase edges 2400 / 3015 seconds 76.38857424096204 +exact phase edges 2600 / 3015 seconds 82.72138729388826 +exact phase edges 2800 / 3015 seconds 89.01150646293536 +exact phase edges 3000 / 3015 seconds 95.54117018391844 +PASS exact local phases 97.58236964291427 seconds diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-base-k_triangle-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-base-k_triangle-construction.log new file mode 100644 index 0000000000..baab4e0080 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-base-k_triangle-construction.log @@ -0,0 +1,49 @@ +{ + "status": "EXACT_CLEAN_OWN_Y_EARLY_CENTER_WORD_NOT_ADMITTED", + "h": 9, + "v": 112, + "R": 492, + "cst": 64, + "m": 73, + "local_profile": { + "1": 2024, + "2": 760, + "3": 300, + "4": 168, + "5": 168, + "6": 44, + "8": 8 + }, + "centre_ranks": [ + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8 + ], + "tri_join_counts": { + "2": 24, + "3": 24, + "4": 24, + "5": 24, + "6": 24 + }, + "selected_load_join_counts": { + "6": 88 + }, + "selected_partitions": [ + 0, + 0 + ], + "first_load_join_counts": { + "4": 88 + }, + "source_columns_exact": 112, + "borrowed_output_pairs": 56, + "source_and_helper_cleanup_exact_on_clean_columns": true, + "local_rank_mass": 6284, + "scope": "Clean scalar identity and all literal monotone local frames only; arbitrary-dirt compensation, entrance kernels, exact phase recipes, and global hosting/pricing are not yet certified." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-both-reflected-ledgers.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-both-reflected-ledgers.log new file mode 100644 index 0000000000..40f88c6cbd --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-both-reflected-ledgers.log @@ -0,0 +1,2 @@ +PASS emitted forward 27909 events +PASS emitted backward 27909 events diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-independent-local-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-independent-local-controls.log new file mode 100644 index 0000000000..dafef87e13 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-independent-local-controls.log @@ -0,0 +1,3 @@ +independent emitted replay PASS forward +independent emitted replay PASS backward +PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY 25 controls rejected diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-normalized-wrappers.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-normalized-wrappers.log new file mode 100644 index 0000000000..bd2962079c --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-normalized-wrappers.log @@ -0,0 +1 @@ +Lemma A (exact): L^-1 S_E R^-1 = C_[w] x I for 22 entrance frames, global phase included; 17 wrapper mutations rejected; all-even-weight: False diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step0-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step0-port_stage-construction.log new file mode 100644 index 0000000000..31a5be9020 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step0-port_stage-construction.log @@ -0,0 +1,43 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "aad9b01b30bb8a2c5ce8d9415afafc88b0ab288986eb3d068a2bbba8e45bef51", + "shadow_output_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "input_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "output_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "sections": { + "A": { + "dropped_by_stage": 12, + "introduced": 81 + }, + "B": { + "kept_own": 120, + "introduced": 464, + "frames_changed": 600 + } + }, + "local_profile": { + "1": 2444, + "2": 396, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step0-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step0-port_stage-native-audit.log new file mode 100644 index 0000000000..16547ff04a --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step0-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "55148fd261558d5d7c093dd30f56e407781b1ef5a8121211c1381c9949c6c686", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9132, + "scalar_operations": 16242, + "center_rank_sum": 64, + "local_profile": { + "1": 2444, + "2": 396, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5908, + "frames": 1059, + "directed_edges": 3027, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5037713340716437, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step1-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step1-port_stage-construction.log new file mode 100644 index 0000000000..1a1a8ee722 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step1-port_stage-construction.log @@ -0,0 +1,39 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "shadow_output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "output_content_sha256": "d1e6e83d61009650261c17ee59f44cdce1528b8908d4dc5b5437a789847ae5ba", + "sections": { + "A": {}, + "B": { + "kept_own": 120, + "introduced": 5 + } + }, + "local_profile": { + "1": 2445, + "2": 398, + "3": 462, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step1-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step1-port_stage-native-audit.log new file mode 100644 index 0000000000..f740fcc142 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step1-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "d1e6e83d61009650261c17ee59f44cdce1528b8908d4dc5b5437a789847ae5ba", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "a250d1720fea98642207f0e3bd56596f57660f41b02066063db8c920f8863b06", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9123, + "scalar_operations": 16243, + "center_rank_sum": 64, + "local_profile": { + "1": 2445, + "2": 398, + "3": 462, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5907, + "frames": 1059, + "directed_edges": 3027, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5145334110129625, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step2-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step2-port_stage-construction.log new file mode 100644 index 0000000000..90588bc145 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step2-port_stage-construction.log @@ -0,0 +1,39 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "shadow_output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "input_content_sha256": "d1e6e83d61009650261c17ee59f44cdce1528b8908d4dc5b5437a789847ae5ba", + "output_content_sha256": "c5280629e7b9fc03ddd6be63fb9218935c21c015a5e5052ad14dfa34ae68466f", + "sections": { + "A": {}, + "B": { + "kept_own": 120, + "introduced": 25 + } + }, + "local_profile": { + "1": 2460, + "2": 408, + "3": 448, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step2-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step2-port_stage-native-audit.log new file mode 100644 index 0000000000..b0a8cf7d54 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step2-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "c5280629e7b9fc03ddd6be63fb9218935c21c015a5e5052ad14dfa34ae68466f", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "a547d75257e96cae9d14f14b32e6cc11e5bd3f9876a1bdb07d6bcad281794bdd", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9060, + "scalar_operations": 16222, + "center_rank_sum": 64, + "local_profile": { + "1": 2460, + "2": 408, + "3": 448, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5900, + "frames": 1059, + "directed_edges": 3027, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5187908220104873, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step3-port_stage-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step3-port_stage-construction.log new file mode 100644 index 0000000000..e97a2ce87c --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step3-port_stage-construction.log @@ -0,0 +1,41 @@ +{ + "status": "PORTED_STAGE_PENDING_NATIVE_AUDIT", + "R": 492, + "removed_504_helpers": [ + 448, + 458, + 460, + 470, + 472, + 482, + 580, + 590, + 592, + 602, + 604, + 614 + ], + "shadow_input_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "shadow_output_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533", + "input_content_sha256": "c5280629e7b9fc03ddd6be63fb9218935c21c015a5e5052ad14dfa34ae68466f", + "output_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f", + "sections": { + "A": { + "dropped_by_stage": 49, + "introduced": 37 + }, + "B": { + "kept_own": 120 + } + }, + "local_profile": { + "1": 2448, + "2": 392, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "scope": "Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step3-port_stage-native-audit.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step3-port_stage-native-audit.log new file mode 100644 index 0000000000..286148875b --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step3-port_stage-native-audit.log @@ -0,0 +1,27 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "7598702717dc8d7e1d40c90777dc9d196bede865435d4b506d9103136eb58396", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9096, + "scalar_operations": 16234, + "center_rank_sum": 64, + "local_profile": { + "1": 2448, + "2": 392, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5904, + "frames": 1058, + "directed_edges": 3026, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.5245225399266928, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step4-frame_regroup-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step4-frame_regroup-construction.log new file mode 100644 index 0000000000..25335e54f8 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step4-frame_regroup-construction.log @@ -0,0 +1,296 @@ +{ + "status": "PASS_EXACT_FRAME_REGROUPING", + "input_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f", + "output_content_sha256": "b7a36c11d0f49a027bbbcb6185a4484a65c176ac9597afd3fa28eaad58a8a0ce", + "profile_before": { + "1": 2448, + "2": 392, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "profile_after": { + "1": 2376, + "2": 464, + "3": 440, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "changes": [ + { + "section": "B", + "index": 599, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 600, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 601, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 602, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 603, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 604, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 627, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 630, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 631, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 632, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 633, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 634, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 654, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 656, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 660, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 662, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 663, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 664, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 685, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 686, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 688, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 691, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 693, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 694, + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + } + ], + "negative_controls_rejected": [ + "omission-B-599", + "overpromotion-B-599", + "omission-B-600", + "overpromotion-B-600", + "omission-B-601", + "overpromotion-B-601", + "omission-B-602", + "overpromotion-B-602", + "omission-B-603", + "overpromotion-B-603", + "omission-B-604", + "overpromotion-B-604", + "omission-B-627", + "overpromotion-B-627", + "omission-B-630", + "overpromotion-B-630", + "omission-B-631", + "overpromotion-B-631", + "omission-B-632", + "overpromotion-B-632", + "omission-B-633", + "overpromotion-B-633", + "omission-B-634", + "overpromotion-B-634", + "omission-B-654", + "overpromotion-B-654", + "omission-B-656", + "overpromotion-B-656", + "omission-B-660", + "overpromotion-B-660", + "omission-B-662", + "overpromotion-B-662", + "omission-B-663", + "overpromotion-B-663", + "omission-B-664", + "overpromotion-B-664", + "omission-B-685", + "overpromotion-B-685", + "omission-B-686", + "overpromotion-B-686", + "omission-B-688", + "overpromotion-B-688", + "omission-B-691", + "overpromotion-B-691", + "omission-B-693", + "overpromotion-B-693", + "omission-B-694", + "overpromotion-B-694" + ], + "all_scalar_operations_unchanged": true, + "all_initial_helper_responses_equal": true, + "all_entering_helper_responses_zero": true, + "helper_widths_unchanged": true, + "scope": "Construction, frame/profile and scalar response checks only; native, phase and global admission are separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step5-hyperplane_end-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step5-hyperplane_end-construction.log new file mode 100644 index 0000000000..6f30fec836 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step5-hyperplane_end-construction.log @@ -0,0 +1 @@ +PASS 34 hyperplane-ended helpers diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step5-hyperplane_end-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step5-hyperplane_end-controls.log new file mode 100644 index 0000000000..24391fde17 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step5-hyperplane_end-controls.log @@ -0,0 +1,87 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "1ec5b03c0a008f47fdb855538a774c3d4f5e93319a7910df20d7aaf3ef43db92", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "044e09fb3ee9fc15945ce2c5860fdef470054a881ad30e1e96f2967fd7425d92", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 9096, + "scalar_operations": 16234, + "center_rank_sum": 64, + "local_profile": { + "1": 2470, + "2": 404, + "3": 448, + "4": 160, + "5": 56, + "6": 44, + "8": 8 + }, + "local_rank_mass": 5870, + "frames": 1037, + "directed_edges": 3019, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 0.7376155229285359, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.", + "hyperplane_ended_helpers": [ + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 467, + 468, + 477, + 490, + 491, + 514, + 515, + 538, + 539, + 562, + 563, + 574, + 583, + 584, + 593, + 594, + 595, + 596, + 598, + 600, + 601, + 602, + 603 + ], + "early_cleanup_gates": 34 +} +rejected early cleanup gate that does not commute with the skipped cleanup prefix +rejected helper final frame not containing its last gate frame +rejected helper final frame on a register still touched by the FULL cleanup +rejected early gate dropped from the program (helper not restored) +rejected early gate frame below its registers' frames +rejected hyperplane end on a non-entering helper +rejected profile not updated (paid climbs misreported) +rejected profile without 8 partner U->FULL climb charges +rejected duplicate early gate +rejected constructor: skipped cleanup gate adds into the partner -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: skipped cleanup gate scales the partner -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: extra cleanup gate reading the helper (one-gate rule) -- helper must have exactly this one cleanup gate +rejected constructor: extra cleanup gate adding into the helper (one-gate rule) -- helper must have exactly this one cleanup gate +rejected constructor: real helper 490: skipped gate 447 flipped from 283 -= 299 to 299 -= 283 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 491: skipped gate 446 flipped from 9 -= 33 to 33 -= 9 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 514: skipped gate 445 flipped from 315 -= 331 to 331 -= 315 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 515: skipped gate 444 flipped from 65 -= 105 to 105 -= 65 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 538: skipped gate 443 flipped from 347 -= 363 to 363 -= 347 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 539: skipped gate 442 flipped from 1 -= 41 to 41 -= 1 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 562: skipped gate 441 flipped from 379 -= 395 to 395 -= 379 -- cleanup gate does not commute with the skipped cleanup gates on its registers +rejected constructor: real helper 563: skipped gate 440 flipped from 73 -= 97 to 97 -= 73 -- cleanup gate does not commute with the skipped cleanup gates on its registers +relaxed helpers [490, 491, 514, 515, 538, 539, 562, 563] +PASS 21 HPE raw-word mutations rejected diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step6-cold_end-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step6-cold_end-construction.log new file mode 100644 index 0000000000..a4ba5c2b61 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step6-cold_end-construction.log @@ -0,0 +1 @@ +PASS 22 cold low-frame-ended helpers; 430 premix gates; 9126 cleanup gates diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step6-cold_end-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step6-cold_end-controls.log new file mode 100644 index 0000000000..0e402d4774 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8-step6-cold_end-controls.log @@ -0,0 +1,197 @@ +{ + "status": "PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES", + "input_content_sha256": "07fedda4f8e58504c829b0b47e643f1973c5355b385dc7dc2e98b8f1daffbc52", + "routing_content_sha256": "7c84ac65c8b37173aa4293934f041915895e8ec30595844cc1534e2a19ae0d25", + "canonical_content_sha256": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "live_columns_each_orientation": 716, + "helpers": 492, + "compensation_additions": 8800, + "scalar_operations": 22669, + "center_rank_sum": 64, + "local_profile": { + "1": 2512, + "2": 400, + "3": 448, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "local_rank_mass": 5758, + "frames": 1037, + "directed_edges": 3015, + "tau": 43, + "target_port_order_matches_baseline": true, + "seconds": 1.0392145470250398, + "scope": "Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.", + "hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 467, + 468, + 477, + 490, + 491, + 514, + 515, + 538, + 539, + 562, + 563, + 574, + 583, + 584, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603 + ], + "early_cleanup_gates": 120, + "cold_hyperplane_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "refactored_cleanup_gates": 9126, + "refactored_cleanup": { + "cold_low_frame_ended_helpers": [ + 234, + 250, + 266, + 281, + 282, + 297, + 298, + 313, + 314, + 329, + 330, + 345, + 346, + 361, + 362, + 377, + 378, + 393, + 394, + 410, + 426, + 442 + ], + "construction": "ColdBeyond two-per-block cold low-frame ends: per block one dead-register absorption gate at U_b in A, a rank-0 helper premix plus frame-[] target writes at the head of A (after the entry wrappers), per-unit lower-frame tails, and an exact dyadic Gauss-Jordan remainder at FULL", + "entering_low_frame_ended_helpers": [ + 597, + 599 + ], + "forward_absorption_A_indices": [ + 1007, + 1143, + 1279, + 1415, + 1551, + 1687, + 1823, + 1959 + ], + "forward_absorptions": 8, + "lower_frame_gates": 86, + "premix_gates": 430, + "premix_target_writes": 16 + } +} +rejected premix placed in the zero-frame precondition (before the cold wrappers) | touches a cold hyperplane-ended helper +rejected one premix gate dropped (the compensation then reads a cold-ended helper) | touches a cold hyperplane-ended helper +rejected one lower-frame cleanup gate dropped (gate and its early_cleanup entry) | 'arbitrary-dirt endpoint' +rejected one FULL-remainder gate dropped | 'arbitrary-dirt endpoint' +rejected lower-frame gate coefficient changed | 'arbitrary-dirt endpoint' +rejected lower-frame gate moved into the FULL remainder (touches a cold-ended helper at FULL) | 'arbitrary-dirt endpoint' +rejected lower-frame gate frame below its registers' frames | 'nonmonotone' +rejected cold end at another dim-4 frame | hpe cone pre-check (row / column) +rejected profile pin: cold end dropped (valid FULL end, but the reported profile counts the low end) | paid local profile differs from the reported local_profile +rejected extra cold end on a premixed partner (the compensation reads it before its wrapper) | touches a cold hyperplane-ended helper +rejected refactored-cleanup marker removed (literal-inverse rule applies) | cleanup is not the literal reversed inverse +rejected remainder gate retargeted to a target register | refactored cleanup touches a target +rejected non-dyadic remainder coefficient | 'arbitrary-dirt endpoint' +rejected profile not updated (paid climbs misreported) | paid local profile differs from the reported local_profile +rejected entering end 597: premix gate dropped | 'arbitrary-dirt endpoint' +rejected entering end 597: premix gate at frame [] instead of its entrance E | 'nonmonotone' +rejected entering end 597: premix gate moved into the zero-frame precondition | zero-frame precondition/compensation touches an entering helper +rejected entering end 597: lower-frame gate dropped (gate and its early_cleanup entry) | 'arbitrary-dirt endpoint' +rejected entering end 597: profile pin: end dropped (valid FULL end, but the reported profile counts the low end) | paid local profile differs from the reported local_profile +rejected entering end 597: end at another hyperplane | hpe cone pre-check (row / column) +rejected entering end 599: premix gate dropped | 'arbitrary-dirt endpoint' +rejected entering end 599: premix gate at frame [] instead of its entrance E | 'nonmonotone' +rejected entering end 599: premix gate moved into the zero-frame precondition | zero-frame precondition/compensation touches an entering helper +rejected entering end 599: lower-frame gate dropped (gate and its early_cleanup entry) | 'arbitrary-dirt endpoint' +rejected entering end 599: profile pin: end dropped (valid FULL end, but the reported profile counts the low end) | paid local profile differs from the reported local_profile +rejected entering end 599: end at another hyperplane | hpe cone pre-check (row / column) +rejected premix target writes placed in the zero-frame precondition (before the cold wrappers) | touches a cold hyperplane-ended helper +rejected one premix target write dropped (compensation must read an ended helper) | touches a cold hyperplane-ended helper +rejected premix target write coefficient changed | touches a cold hyperplane-ended helper +rejected premix target write reads an entering helper | zero-frame compensation reads an entering helper +rejected premix target write reads a cold helper of another block | touches a cold hyperplane-ended helper +rejected forward absorption dropped | 'arbitrary-dirt endpoint' +rejected forward absorption into a centre (a live register read by the cut) | 'arbitrary-dirt endpoint' +rejected forward absorption coefficient changed | 'arbitrary-dirt endpoint' +rejected forward absorption placed before the absorbed register's last kernel write | 'arbitrary-dirt endpoint' +rejected forward absorption placed while the absorbing register is still live | 'arbitrary-dirt endpoint' +rejected forward absorption at a lower frame than its registers | 'nonmonotone' +rejected forward absorption at a higher frame (FULL) than its registers | 'nonmonotone' +PASS 38 cold-end raw-word mutations rejected diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step0-cold_kernel-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step0-cold_kernel-construction.log new file mode 100644 index 0000000000..33792188c8 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step0-cold_kernel-construction.log @@ -0,0 +1,39 @@ +{ + "status": "PASS_FROZEN_EARLIER_CUT_KERNEL_CONSTRUCTION", + "input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "pivot": 494, + "changed_helper": 270, + "entrance_frame": [ + 24 + ], + "inserted_gates": 5, + "exact_suffix_relation": true, + "pivot_untouched_before_cut": true, + "profile_before": { + "1": 2316, + "4": 192, + "8": 8, + "3": 464, + "2": 424, + "6": 56, + "5": 56 + }, + "profile_after": { + "1": 2317, + "4": 192, + "8": 8, + "3": 462, + "2": 426, + "6": 56, + "5": 56 + }, + "delta": { + "1": 1, + "2": 2, + "3": -2 + }, + "helper_width_before": 9, + "helper_width_after": 8, + "scope": "Literal scalar donor word, fixed-cut suffix response, exact frame chains and cleanup constructed. Native/all-column, phase, owner, invoice and assembly checks remain separate. No claimed homogeneous resource gain." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step0-cold_kernel-omissions.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step0-cold_kernel-omissions.log new file mode 100644 index 0000000000..10f9c18102 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step0-cold_kernel-omissions.log @@ -0,0 +1 @@ +PASS_EXACT_NEW_KERNEL_OMISSION_CONTROLS 6 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step1-multicut-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step1-multicut-construction.log new file mode 100644 index 0000000000..bc5e8c0848 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step1-multicut-construction.log @@ -0,0 +1,252 @@ +{ + "status": "PASS_FROZEN_MULTICUT_COLD_KERNEL_CONSTRUCTION", + "input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "kernels": [ + { + "pivot": 506, + "changed_helper": 282, + "entrance_frame": [ + 24 + ], + "inserted_gates": 5, + "cuts": [ + [ + "B", + 173 + ], + [ + "B", + 174 + ], + [ + "B", + 269 + ], + [ + "B", + 270 + ], + [ + "B", + 683 + ] + ], + "profile_delta": { + "1": 1, + "2": 2, + "3": -2 + }, + "prior_dirty_targets": 6, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 518, + "changed_helper": 294, + "entrance_frame": [ + 30 + ], + "inserted_gates": 4, + "cuts": [ + [ + "B", + 81 + ], + [ + "B", + 191 + ], + [ + "B", + 192 + ], + [ + "B", + 704 + ] + ], + "profile_delta": { + "1": 1, + "2": 2, + "3": -2 + }, + "prior_dirty_targets": 6, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 530, + "changed_helper": 306, + "entrance_frame": [ + 30 + ], + "inserted_gates": 4, + "cuts": [ + [ + "B", + 86 + ], + [ + "B", + 202 + ], + [ + "B", + 203 + ], + [ + "B", + 724 + ] + ], + "profile_delta": { + "1": 1, + "2": 2, + "3": -2 + }, + "prior_dirty_targets": 6, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 495, + "changed_helper": 271, + "entrance_frame": [ + 24 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 514 + ], + [ + "B", + 578 + ], + [ + "B", + 678 + ] + ], + "profile_delta": { + "1": 3, + "2": 1, + "3": -2 + }, + "prior_dirty_targets": 6, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 507, + "changed_helper": 283, + "entrance_frame": [ + 24 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 93 + ], + [ + "B", + 539 + ], + [ + "B", + 698 + ] + ], + "profile_delta": { + "1": 3, + "2": 1, + "3": -2 + }, + "prior_dirty_targets": 6, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 519, + "changed_helper": 295, + "entrance_frame": [ + 30 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 507 + ], + [ + "B", + 573 + ], + [ + "B", + 718 + ] + ], + "profile_delta": { + "1": 3, + "2": 1, + "3": -2 + }, + "prior_dirty_targets": 6, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + }, + { + "pivot": 531, + "changed_helper": 307, + "entrance_frame": [ + 30 + ], + "inserted_gates": 3, + "cuts": [ + [ + "B", + 550 + ], + [ + "B", + 616 + ], + [ + "B", + 738 + ] + ], + "profile_delta": { + "1": 3, + "2": 1, + "3": -2 + }, + "prior_dirty_targets": 6, + "exact_zero_response": true, + "helper_width_before": 9, + "helper_width_after": 8 + } + ], + "local_profile": { + "1": 2332, + "2": 436, + "3": 448, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "entering_helpers": 220, + "entrance_rank": 396, + "scope": "Literal multi-cut donor gates, exact complete dirty-response cancellation, exact frame chains and regenerated cleanup. Native all-column, phase, owner, invoice and assembly checks remain separate." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step1-multicut-omissions.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step1-multicut-omissions.log new file mode 100644 index 0000000000..1899eb0448 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step1-multicut-omissions.log @@ -0,0 +1 @@ +PASS_EXACT_MULTICUT_KERNEL_OMISSION_CONTROLS 32 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step2-frozen558_scalar_audits-rank5.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step2-frozen558_scalar_audits-rank5.log new file mode 100644 index 0000000000..7f135180d4 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step2-frozen558_scalar_audits-rank5.log @@ -0,0 +1 @@ +PASS_EXACT_RATIONAL_FORWARD_AND_INVERSE_TRANSPOSE 728 8 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step2-frozen558_scalar_audits-static44.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step2-frozen558_scalar_audits-static44.log new file mode 100644 index 0000000000..bc6f6d2b5a --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step2-frozen558_scalar_audits-static44.log @@ -0,0 +1 @@ +PASS_EXACT_RATIONAL_FORWARD_AND_INVERSE_TRANSPOSE 728 44 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-all-kernel-omissions.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-all-kernel-omissions.log new file mode 100644 index 0000000000..6ce544d782 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-all-kernel-omissions.log @@ -0,0 +1 @@ +PASS_EXACT_MULTICUT_KERNEL_OMISSION_CONTROLS 135 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-construction.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-construction.log new file mode 100644 index 0000000000..5e102edfbd --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-construction.log @@ -0,0 +1 @@ +PASS_LITERAL_JOINT_PREFIX_EXACT_RESPONSE_AND_FRAME_PROFILE eightcold diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-independent-joint-prefix-and-coverage.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-independent-joint-prefix-and-coverage.log new file mode 100644 index 0000000000..d6a61d0346 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-independent-joint-prefix-and-coverage.log @@ -0,0 +1 @@ +PASS_INDEPENDENT_LITERAL_PREFIX_AND_FINAL_KERNEL_COVERAGE eightcold mutants 15 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-rank5-omissions.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-rank5-omissions.log new file mode 100644 index 0000000000..7f135180d4 --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/jp8_504-step3-joint_prefix-rank5-omissions.log @@ -0,0 +1 @@ +PASS_EXACT_RATIONAL_FORWARD_AND_INVERSE_TRANSPOSE 728 8 diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/k-triangle-control-empty-schedule.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/k-triangle-control-empty-schedule.log new file mode 100644 index 0000000000..0d69a5132b --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/k-triangle-control-empty-schedule.log @@ -0,0 +1,42 @@ +{ + "status": "EXACT_CLEAN_OWN_Y_EARLY_CENTER_WORD_NOT_ADMITTED", + "h": 9, + "v": 112, + "R": 504, + "cst": 64, + "m": 73, + "local_profile": { + "1": 1880, + "2": 832, + "3": 312, + "4": 168, + "5": 168, + "6": 56, + "8": 8 + }, + "centre_ranks": [ + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8 + ], + "selected_load_join_counts": { + "6": 112 + }, + "selected_partitions": [ + 0, + 0 + ], + "first_load_join_counts": { + "4": 112 + }, + "source_columns_exact": 112, + "borrowed_output_pairs": 56, + "source_and_helper_cleanup_exact_on_clean_columns": true, + "local_rank_mass": 6392, + "scope": "Clean scalar identity and all literal monotone local frames only; arbitrary-dirt compensation, entrance kernels, exact phase recipes, and global hosting/pricing are not yet certified." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/k-triangle-control-pr531-construct504.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/k-triangle-control-pr531-construct504.log new file mode 100644 index 0000000000..0d69a5132b --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/k-triangle-control-pr531-construct504.log @@ -0,0 +1,42 @@ +{ + "status": "EXACT_CLEAN_OWN_Y_EARLY_CENTER_WORD_NOT_ADMITTED", + "h": 9, + "v": 112, + "R": 504, + "cst": 64, + "m": 73, + "local_profile": { + "1": 1880, + "2": 832, + "3": 312, + "4": 168, + "5": 168, + "6": 56, + "8": 8 + }, + "centre_ranks": [ + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8 + ], + "selected_load_join_counts": { + "6": 112 + }, + "selected_partitions": [ + 0, + 0 + ], + "first_load_join_counts": { + "4": 112 + }, + "source_columns_exact": 112, + "borrowed_output_pairs": 56, + "source_and_helper_cleanup_exact_on_clean_columns": true, + "local_rank_mass": 6392, + "scope": "Clean scalar identity and all literal monotone local frames only; arbitrary-dirt compensation, entrance kernels, exact phase recipes, and global hosting/pricing are not yet certified." +} diff --git a/research/complex-571-cold14-k492-repacking-audit/stage-logs/phase-timing-portability-controls.log b/research/complex-571-cold14-k492-repacking-audit/stage-logs/phase-timing-portability-controls.log new file mode 100644 index 0000000000..0bcab0d74f --- /dev/null +++ b/research/complex-571-cold14-k492-repacking-audit/stage-logs/phase-timing-portability-controls.log @@ -0,0 +1 @@ +PASS 2 2 diff --git a/research/complex-571-cold14-k492/LICENSE b/research/complex-571-cold14-k492/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/complex-571-cold14-k492/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/complex-571-cold14-k492/MANIFEST.json b/research/complex-571-cold14-k492/MANIFEST.json new file mode 100644 index 0000000000..33b76f00db --- /dev/null +++ b/research/complex-571-cold14-k492/MANIFEST.json @@ -0,0 +1,64 @@ +{ + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE.md": "467021e0e4793356d7b2bbd3325bc43549415bdfb7c72a818d23fea6d7b6b07a", + "OWNER-REPACKING.md": "5d0e273cb6b9e57f0465408db2af761e88516cdad994e69ec11f68a53e8cd5b1", + "PROOF-COMMUTING-PREFIX.md": "59899b2a1a76d88275e57f983c0aea391dc2c7f1d2d66c33b92429be0a1cf5e1", + "PROOF-NOTE-R.md": "22312bb347bdf159e6a01a45c47675e6170d33b258e2fd9ed52aee88fb92c0ed", + "PROOF-NOTE.md": "337d70fe7abd9afca1d90954c23bde87f4dc27888cc1a6b4bb80506fd6fbf8c5", + "README.md": "a9f929105e869cd4df567c865384cee32dd127345b306443e54105b5c7ec515d", + "code/assemble.py": "1b1a9024ac910dc9b9d9e30150684e1fa9cb228a4c1c275b75ab04b57fdef1dd", + "code/assembly_controls.py": "8a365b95c412d75d10db5bb59309d47cd56c5f8a77566f940a05977795130ce8", + "code/audit_allcold.py": "cea021ae79658ca7ca4d07f1e1a70bdb4947afaf95b362114c11032c0fef889a", + "code/bind_providers_portable.py": "2eb5c262bf481b3bec9ceaec654fa46ff6fc3a89b13d4906a29a55a89e35feea", + "code/build_cold_end.py": "27d5f540cb7f7e57b12f041196743761a5ecefaa2e04fd808abfffed25027f6e", + "code/build_frame_regroup.py": "e2549ccc7a90008831be3b59aeb37b47db696640f5f5c2b72dd888b2f1e7e5c9", + "code/build_gate_moves.py": "08bf1c2652307aeefbab089fdaf02f82e2c396ca23a1eb68e294a67e74c44252", + "code/build_hpe.py": "ba2001695d8c7547a82260c3b016e01dac686e95a61757ca124eb9879078ea8e", + "code/build_port_stage.py": "beb0d30fde1b9a30db091880b38c4a8ec906da3f715c43de7db8bf7932526e72", + "code/cold_end_controls.py": "f8b770eb3bfe387c9b878a954b0dcb0efd81bc4adb0c97b450b3ab7a66c78585", + "code/construct_k_triangle.py": "66fc460df8eb8067efe3d8a3f9e97a7244aacd7bf11650a6ce656e868ce053da", + "code/emit_allcold.py": "fe26f10fe5d30ed407a37540a45ef94f44576dd241d09e19aef5db1efb072746", + "code/generated_identity.py": "c8af22719c0f3097a991a3f6ccac8f090afd2faba554745733d9ea88f2c25708", + "code/generated_identity_controls.py": "a7b93207a673575d1fddc3e579153349c145c8f08d4575ae0a5d1e3cffec01de", + "code/hpe_adapters_local.py": "eb0b5c6c7161e18dc22168da3211448d321586edd15bcfb4b4741174d36993cf", + "code/hpe_audit_and_transport.py": "c9a05ff291016b870b4fc925b317abd9c3a604c73ffc8920dfdbbeb475e20aa3", + "code/hpe_audit_local.py": "6bd9a1e279c9c9e4f3767d9f82e537b559292906feb2ddab02f380fb6523a810", + "code/hpe_controls_atc.py": "63aa3909b5bfd3bf270c313bebb5c46e7789c67a8f2439f568bc4b2b4a35d17b", + "code/hpe_emit_local.py": "7e4a6fbc38c8228157b6311457d1496bf460291393043932d2c365f004f77805", + "code/invoice_allcold.py": "141bd2fd58bbfb5b8d0fc8f56f61c45586d5608a5af3487c6b883dd987f998ec", + "code/phase_timing_controls.py": "1692ccee3da4b1781408d126ee4999f3e31a505cd83c64823a404033da3a6339", + "code/witness.py": "00789c911a8f32cfe9d52207c7aa78305dc3fce4a8b6305ba402b7e74117103d", + "data/EXPECTED.json": "d249fc437bdb85f551a18c650222f5ca3d67974db74b23b4829cc8baeac2655c", + "data/OWNERS.json.gz": "cb84807fd1ad5ced769e6847866e691078c84d87265033052fc962a739268641", + "data/PLAN.json": "fd0d0272aa1add2843e0e2e36e9610309ddc08fc448eb0accd768032d5f725d8", + "data/REPACKING.json": "65010285d351b30f0db1334df50d23f7e0efdb51e8ea3f36f82fb7956d7fc30d", + "data/SPEC.json": "a4218f6232aaf0c8c104204e4bd930da9478df5e4fb55e818b9784ccaf1f54fa", + "data/TRI-SCHEDULE.json": "94da9d5575f5b237097a77ac7dd09aff594322dd9c35138bfd34ffc5e1a7a51e", + "data/WITNESS.json": "94df641397ae59fa582d1eb94627920b041ee98ddd135ab06de4f6c8b300c76c", + "data/cand.json": "4fce406538a5fcd3f7596053720e8d6eb834f5d67cb12ad4af2dc3152a208986", + "data/recipes/atm3-step0-promote.json": "9a7cafdf9b600ba43985c83969b75151f665b98f454afc1494b9f9ef3dd3916f", + "data/recipes/atm3-step1-greedy_kernels.json": "c4bc67f329fc22e226f26bbbf7e67018a639823d99fccfc5a1e798a7a82db43f", + "data/recipes/atm3-step2-frame_coalesce.json": "e6d7ea259a542f2b43a857998f677db4d68f8f36335e98a030bc91ab38ce758c", + "data/recipes/atm3-step3-gate_move_coalesce.json": "3a6b8fec6c8b56a45bf8fae683083636fa295a8914ffa68d11b1f78ba3a2eb9d", + "data/recipes/ck-step0-greedy_kernels.json": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056", + "data/recipes/ck-step1-frame_coalesce.json": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3", + "data/recipes/ck-step2-gate_move_coalesce.json": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00", + "data/recipes/k492-atm3-cold_end.json.gz": "a25ccab0c024aa9512df822032fca11683def03d0886b58f375c42834264c47c", + "data/recipes/k492-atm3-frame_regroup.json": "8d880d3d8e795575a3a3428e0031b2c45831eea512dc32cb99f7eae9e6e49e5e", + "data/recipes/k492-atm3-hyperplane_end.json": "30504ae76a2387677f05450d23413c7373c08ae2d9d171b2f4597bb63e294631", + "data/recipes/k492-ck-cold_end.json.gz": "d438123ecca120799a0b9835d0e7231ec12f61f10caff3ef466ad9f7c96e51a2", + "data/recipes/k492-ck-frame_regroup.json": "9894f9c93e931b61cf34b337c4b257a72bb1d06fbdc4e8b02368e6e29ab2b644", + "data/recipes/k492-ck-hyperplane_end.json": "c71c2b05550544c29ebb4696e63cffc44d6daa76f1bc25e9c7c97e994b2c7657", + "data/recipes/k492-jp8-cold_end.json.gz": "660d2438c5fd4dd4cc49eefff071ac53f50adb65f292005f182082d27555a6a9", + "data/recipes/k492-jp8-frame_regroup.json": "9bd347334de643f29865290be1ed37289f9cae6cd339547ac89b45fa7aaee65a", + "data/recipes/k492-jp8-hyperplane_end.json": "e4d4dfd83d0c64cb0a8ee8c8bbd95d0510ee68699859e568fe201cd6f8d250c1", + "data/search/DISPATCH.json": "4c264551a96ffa02d76be8eeaed41d4a1b96fd6c048f2418bf6101a5c0fe19b1", + "data/search/LP-PATTERNS-AGG.json": "7e8f162a5d949cb1461c8c3b3bfa0a160b42c27a03bfeb6f09b9aa3c116aa953", + "data/search/LP-PATTERNS-EX.json": "8ed80a01c9948ad2894f699c2c0f2233c7eb2bc9c9ebb52ac6fd86e7d4a6ac67", + "data/search/TEMPLATE-PLAN.json": "1879679a44b373006907cbca8261a9cd187c7b868472afab04e002bf95331d9e", + "data/search/WARM-OWNERS.json.gz": "1b2a5bc5b204c9c4bb4734626cf1e3a0371b51fe495dd565ae6fc876e35579d8", + "data/search/WARM-PLAN.json": "ff0088122a5203e3e6f3aa0205dcb8563d7c7dad2a408f1132f0b45a0ce3ced3", + "tools/replay_repacking.py": "a41f5f5943da5438e9d7493c4c06b28730ce96f22e37d91271d2f2fd717a7a5c", + "verify.py": "dc069c48d1dce31fef2e567fa3ed81780bf07e00b39ac1a0761536e4a5c0b377", + "verify.sh": "18cf93f64fa5b7301f837950df181cf08ee8c3efe1b3fb6803354549a7462618" +} diff --git a/research/complex-571-cold14-k492/NOTICE.md b/research/complex-571-cold14-k492/NOTICE.md new file mode 100644 index 0000000000..8e7a10dae6 --- /dev/null +++ b/research/complex-571-cold14-k492/NOTICE.md @@ -0,0 +1,36 @@ +# Attribution and scope + +Four verified provider types are offered to every call: PR571's prefix word with twelve multi-cut cold kernels (PR568's unchanged constructor), the same word with forty width-five entrance promotions (PR569's unchanged frame constructor) before those kernels, PR575's plain joint-prefix provider, and PR568's eight-cold provider. A window MILP with an exact per-pattern model chooses the dispatch and a literal owner map. PR583's six source-bound kernel frame coalescences (its unchanged constructor and negative controls) are applied to every PR571-prefix provider word (ck and atm3), followed by two further coalescences that each first move one addition past two commuting additions (package code/build_gate_moves.py, extending PR583's constructor); a final hyperplane_end step (package code/build_hpe.py) then runs 46 single-gate cleanups h -= p right after part B at the dim-8 join U of their registers, so 46 width-8 entering helpers per call end at U with width 7; each such gate commutes with every earlier cleanup gate on its registers (for 8 of them the partner's one earlier gate x -= p only reads p), and the reordered program is replayed exactly. A window MILP (exact windows, RINS around an LP vertex) gives the dispatch ck 45 / atm3 21 / jp8 6 and the literal owner map. + +Pinned external sources (unchanged; `verify.py` checks their manifests and every file it uses): +- PR568 (`research/complex-multicold`, commit `71c99ac935a33bb7b59a1b4a7af8725a939b0b90`). +- PR571 (`research/structural-gain`, commit `b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3`). +- PR569 (`research/larger-gain`, commit `897213a855b7fb8a1b8b0e552a2f5c42e6c1b326`). +- PR575 (`research/complex-joint-prefix`, commit `eac6f7e378ab622dac50a2fd4b7ef6eab014de44`). +- PR583 (`research/kernel-frame-coalescing`, commit `89be768f0157f5a3d8e4db69cf1748768605eac9`). + +Provider construction is described as typed steps in `data/SPEC.json` (`build`); `verify.py` runs only allowlisted step types with their paired omission audits and checks every input and output content hash. `code/` holds the spec-driven global admission scripts adapted from PR571's `frontier-composition/global-code/` (OpenAI Codex assisted, Apache-2.0): every expected value is read from `data/SPEC.json` and compared only after independent recomputation. `code/generated_identity.py` and `code/generated_identity_controls.py`, and the decompressed-content artifact identities in the bind, audit, invoice, assembly and phase-timing scripts, are taken unchanged from PR586 by chafreaky (`research/promoted-kernel-coalescing`, commit `4846fee5b06af770e9b3a10c36200f673d656725`, OpenAI Codex assisted, Apache-2.0), including its proof-content and reference/metadata mutation controls; the normalization of descriptive width metadata after frame changes follows the same PR. + +In PR601, the owner map was nominated by a HiGHS window MILP (adapted from PR569's `global/nominate_width7.py`) with lazy cross-time Hall cuts; this package's re-solved map is described below. Neither is an admission dependency. + +DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. (The PR601 package this one starts from states: "Prepared by Claude Code (Anthropic) research agents.") Apache-2.0 applies; LICENSE is included. All notices, licenses, source pins and AI disclosures of the pinned sources and their ancestry are retained in those packages and are not replaced by this notice. All inherited conditional assumptions remain conditional. + +**This package (complex-571-cold14, DreamingOfClouds).** It starts from PR601 (jeremykothe2, `research/complex-571-hpem46`, commit `529ab7dcb59d5ea7a5798e9e06cf5b3aee8a1550`). Everything above is kept unchanged except the following: +- every provider chain (ck, atm3, jp8) gains the typed step `cold_end` (`code/build_cold_end.py`, `code/cold_end_controls.py`; recipes `data/recipes/*-cold_end.json.gz`); +- the generalised native chain and the global admission scripts accept cold helpers that end below FULL (with `0:U` wrappers), a refactored exact cleanup, and check the wrapper order; +- `data/PLAN.json` / `data/OWNERS.json.gz` (dispatch and literal owner map) come from a relocate/swap/ejection-chain/provider-flip annealing search started from PR601's map, refined by an exact pattern-restricted owner model (CP-SAT) with a literal edge-colouring expansion (not an admission dependency); +- `data/SPEC.json` holds the expected values, recorded by a discovery run and then checked by a strict run. + +The cold-end construction (a row-plus-column cone condition for low-frame ends, a rank-0 dirt-spread premix and multi-gate lower-frame cleanup) builds on PR591 / PR592 / PR593 / PR601 (jeremykothe2) and our PR599 (Lean: multi-gate and cold hyperplane-end tails). DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. Build on this at your own risk. + +**This package (complex-571-cold14-b3, jeremykothe2).** It is PR604's `complex-571-cold14` (DreamingOfClouds) with ColdBeyond's second cold end per block (two new `cold_end` A-gate primitives, `PROOF-NOTE.md`), ColdSupply's E1 entering pair and reviewed controls, a free dispatch (jp8 ×60, atm3 ×12) and a literal owner map from an exact per-time-Hall window MIP. All other construction, code, controls and proofs are PR604's and earlier contributors', unchanged. + +**This package (complex-571-cold14-k492).** It is complex-571-cold14-b3 with these changes: +- **K-triangle base words.** The leaver-read K-triangle skeleton atom and its read schedule (`data/TRI-SCHEDULE.json`) are by AtomScout, a Claude Code research agent. `code/construct_k_triangle.py` is PR531's `code/construct_504.py` (icekylinx, OpenAI Codex / GPT assisted, Apache-2.0; pinned source `direct_delivery`) extended with that atom. +- **Ported chains.** The PR604/B3 chains are ported stage by stage onto the K-triangle words by `code/build_port_stage.py` (Port480, a Claude Code research agent). `code/build_frame_regroup.py` extends PR583's `build_frames.py` (chafreaky). +- **Helper count R.** The generalisation of the global scripts to the provider helper count R is by GlobalR (a Claude Code research agent), with AtomReviewer's fixes (PROOF-NOTE-R.md). +- **Owner map.** The owner map, the cold_end recipes on the K-triangle words and the package assembly are by Stack492, Port480 and ColdBeyond (Claude Code research agents). + +Build on this at your own risk. + +**Owner repacking of PR622 (Jeremy Diviney, OpenAI Codex assisted).** The new literal assignment, recorded-move exporter and contributor replay evidence preserve jeremykothe2's PR622 K-triangle construction and its credited PR617/PR604 ancestry. All provider construction, source contracts, verifier and control scripts remain byte-identical to pinned PR622. A search using simultaneous exchanges of one or two helpers per owner discovered the map. A restricted old-or-proposed placement model reduced unnecessary changes while preserving the spare-rank profile. Neither search is an admission dependency; no global packing optimum is claimed. diff --git a/research/complex-571-cold14-k492/OWNER-REPACKING.md b/research/complex-571-cold14-k492/OWNER-REPACKING.md new file mode 100644 index 0000000000..540eec4a1a --- /dev/null +++ b/research/complex-571-cold14-k492/OWNER-REPACKING.md @@ -0,0 +1,49 @@ +# Coordinated owner repacking of PR622 + +Base: PR622 commit `f69477f4f6d3c7eb1f740b166881bffed4ffa9f6`, independently reproduced through all 64 fresh stages, with no reused baseline or providers. The new map preserves all 72 calls, all 492 helper identities and widths in each call, the invocation order and capacity inventory, and the jp8 ×65 / ck ×7 dispatch. + +## Result and scope + +- Conditional κ: `408856367695223/250000000000000000` = **0.001635425470780892**. +- Conservative κ: **0.001635425467912872**. +- Native complex lower: `1638104468552563164027/1000000000000000000000000`. +- Global paid profile: `{1:181580,2:29864,3:31265,4:11521,5:5040,6:576,7:1,8:576,22:1,48:2213}`. +- Spare-rank profile: `{1:128,3:17,4:1,7:1,22:1,48:2213}`; total spare rank **106,436**, unchanged. +- Live 7,168; physical 7,670; deficit 2,560; paid rank 520,704; hosted residuals 35,424. + +There are 5,027 changed owner placements and 3,146 additional offset changes from prefix-packing those bins: 8,173 changed role records in total. The helper identity, width, time, stage and replica fields are unchanged. Moves are simultaneous; the exporter validates the final map before writing output. + +The changed packing stays within PR622's supplier family. It does not change any of PR622's 504-to-R generalization sites or the K-triangle constructor. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape/exact recovery, analytic transfer and bit H1–H5 assumptions remain. The cited PR543 bit supplier is repriced but not rebuilt in the package replay. No optimal packing, unconditional multiplication theorem or complete Lean proof is claimed. + +## Reproduce the nomination + +```sh +python3 -B research/complex-571-cold14-k492/tools/replay_repacking.py \ + --base-data /path/to/pr622/research/complex-571-cold14-k492/data \ + --out /tmp/k492-repacked +``` + +Compare PLAN bytes and decompressed OWNERS payloads with this package. The exporter checks immutable input hashes, each original placement and width, final family uniqueness, windows, capacity, exact rank mass and output content hash. It refuses `-O` before creating output. These are nomination checks; the unchanged independent physical auditor and exact arithmetic remain the admission boundary. + +## Fresh strict admission + +Use the immutable source packages in the inherited README and SPEC. The first five source commits are PR568 `71c99ac935a33bb7b59a1b4a7af8725a939b0b90`, PR571 `b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3`, PR569 `897213a855b7fb8a1b8b0e552a2f5c42e6c1b326`, PR575 `eac6f7e378ab622dac50a2fd4b7ef6eab014de44`, and PR583 `89be768f0157f5a3d8e4db69cf1748768605eac9`. The direct-delivery source is independently pinned by manifest `c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1` and the three used input hashes in SPEC. + +```sh +python3 -B research/complex-571-cold14-k492/verify.py --jobs 2 \ + --work /tmp/k492-repacked-fresh \ + --source multicold=/path/to/pr568/research/complex-multicold \ + --source structural_gain=/path/to/pr571/research/structural-gain \ + --source larger_gain=/path/to/pr569/research/larger-gain \ + --source joint_prefix=/path/to/pr575/research/complex-joint-prefix \ + --source frame_coalescing=/path/to/pr583/research/kernel-frame-coalescing \ + --source direct_delivery=/path/to/direct-delivery504-global +``` + +This rebuilds all providers, checks the changed-helper-count controls, runs the independent owner audit, reprices both exact moment engines and checks the strict outer constraints. WITNESS's input hashes and EXPECTED's global fields are synchronized from the package's recomputed SPEC values; expected values are never hand-tuned mathematical inputs. Source review and raw stage logs are in the sibling audit directory. Its shared-regression record identifies the exact checkout used for the broad repository suite separately from the new package's fresh replay. + +## Search provenance + +Simple consolidation and three million single-helper swap trials found no gain on PR622. Simultaneous one-/two-helper exchanges (three million trials, seed 0, temperature 1) produced the new spare-rank profile. A ten-million-trial seed-1 continuation found no further gain. A 60-second restricted model, choosing each changed helper's original or proposed owner and fixing only the global spare-rank profile, reduced 11,626 placement changes to 5,027. A subsequent solve over those retained choices found no smaller map. These are restricted nomination searches, not an optimum over physical owner maps. + +The floating entropy score guides discovery only. The final recipe and standard-library exporter provide a deterministic reconstruction route without a solver. Search scripts, intermediate maps and settings are retained in the sibling audit directory. Supplier construction credit remains with jeremykothe2, DreamingOfClouds and all predecessors named in NOTICE. This repacking was prepared by Jeremy Diviney with OpenAI Codex assistance. diff --git a/research/complex-571-cold14-k492/PROOF-COMMUTING-PREFIX.md b/research/complex-571-cold14-k492/PROOF-COMMUTING-PREFIX.md new file mode 100644 index 0000000000..f3ab78dba0 --- /dev/null +++ b/research/complex-571-cold14-k492/PROOF-COMMUTING-PREFIX.md @@ -0,0 +1,91 @@ +# Hyperplane ends past a commuting cleanup prefix (46 helpers per call) + +Status: for independent review. Code: `scratch/MultiHPEScout/pipe/` (a copy of `scratch/Pipeline`; only +`code/build_hpe.py` and `code/hpe_controls_atc.py` differ). Lean: PR #593 (`research/hyperplane-end-lean`, Tail.lean / +Main.lean / Labels.lean) and PR #599 (Multi.lean), archived at `scratch/MultiHPEScout/research/hyperplane-end-lean`. + +## 0. The change + +`build_hpe.py` (#596) admitted an early cleanup gate `g = cleanup[i] = h -= p` only when `g` was the **first** cleanup +gate on both `h` and `p`. The relaxed rule admits `g` when it **commutes with every earlier cleanup gate on its registers** +(`commute()` in build_hpe.py: neither gate writes a register the other touches, or both are additions into one target +and neither reads the other's target). All other conditions are unchanged: `h` is an entering helper with exactly one +cleanup gate, `U` = join of the last A/B frames of `h` and `p` (dim 8), early gates share no register. + +On #596's ck, atm3 and jp8 words this admits 8 more helpers per word (38 → 46): `h ∈ {496, 497, 520, 521, 544, 545, +568, 569}`. In each case the partner `p` (299, 33, 331, 105, 363, 41, 395, 97) has exactly one earlier cleanup gate, +`x -= p` (x = 283, 9, 315, 65, 347, 1, 379, 73; cleanup 440–447), which only **reads** `p`. `h` has no earlier cleanup +gate. E is dim 1 ((24) or (30)), the last frames of h / p have dim 7 / 5 and U has dim 8. + +Per helper: width 8 → 7; paid `{1:+2, 2:−1, 3:+1, 4:−1}` (h 7→9 becomes 7→8; p 5→9 becomes 5→8→9). Rank mass −1 with +hosted width −1, so total mass and the 2560 deficit are unchanged. The constructor's profile is reproduced by an +independent build of coldk-hpe with the same rule (`coldk-multi.exe info`). + +Multi-gate tails and cold E = ⊥ helpers (#599) admit nothing further on these words; see `CENSUS.md`. + +## 1. Why #593's hypotheses still hold + +#593's theorems are about the word **as executed**, `a ++ tail ++ b ++ [post]`. Nothing in them refers to the original +cleanup order: the order matters only through the scalar hypothesis `hS` (unit helper row, zero column), which the +tools check on the reordered program. + +1. **Labels** — `hpe_labels` (Tail.lean:44; equally `hpe_labels_multi`, Multi.lean:195, as the one-gate instance via + `tail_eq_mtail`). Hypotheses: + * `ha`: `a` = precondition + compensation + A + cut + B is the inherited part, unchanged. + * `tail h p Ah Ap U q` is well labelled by `tail_labels` (Tail.lean:30): h and p climb to U, the gate runs at U (G0). + * `hb`: `b` = the final climbs + the remaining FULL cleanup. The skipped gate `x -= p` now runs in `b` after `p` has + climbed U → FULL in the final phase, so both operands are at FULL (G0). `b` is well labelled exactly as for the 38 + (the partner of each of the 38 likewise continues U → FULL). + * `hmv`: no event of `b` moves `h`. True because `h` has exactly one cleanup gate (constructor assert; audit assert + `cleanup on non-FULL end`, hpe_audit_and_transport.py:216). + The skipped gate touches `p` and `x`, never `h`, so the relaxation does not affect `hmv`. +2. **Scalars** — `hS` and the endpoint (E). `hpe_audit_and_transport.py:116-124` replays `precondition + compensation + + A + cut + B + tail + rest` exactly (forward and inverse-transpose, all 728 columns) and asserts the inherited scalar + identity. Why it passes: as matrices, `t += a·s` is `I + a·E_ts`, and + `(I + a E_ts)(I + b E_uv) = I + a E_ts + b E_uv + ab·[s = u]·E_tv`. For `x -= p` (t = x, s = p) and `h -= p` + (u = h, v = p): `s = p ≠ h = u` and `v = p ≠ x = t`, so both products equal `I − E_xp − E_hp`; the gates commute and the + reordered program is the same linear map as the original. A skipped gate that **writes** `p` (`p += c·y`: t = p = v) + or touches `h` fails this and is refused by the constructor; any such move that reached the audit is rejected by the + replay (control below). +3. **(N)** — the new helpers use (E, U) pairs `((24), U₂₄)` and `((30), U₃₀)`. The wrapper check + (`hpe_adapters_local.py`, `WRAPPER-CHECKS.json`) checks T_U T_E⁻¹ = L (C_[7] ⊗ I) R exactly with phase for **every** + (E, U) pair of the emitted word; #593's `factor_of_exact` then gives (F), and `hpe_word` (Main.lean:86) gives the + endpoint `χ⁻¹ (C_[7] ⊗ I₂) χ`. `code/check_hpe_pairs.py` (#593 §4) re-checks the shape on the emitted local run. +4. **Accounting** — unchanged rules: width = |final| − |E| at the emit/audit/invoice sites, mass neutrality as in + `HostingShapeScout/PROOF-HYPERPLANE-END.md` §2 (the partner pays last → U → FULL, h pays last → U). + +No verifier rule changes: the audit, emitter, adapters, invoice and global stage already accept any exact reordering. +Only the constructor's admissibility rule (a sufficient condition for the replay to pass) is widened. + +## 2. Negative controls (`code/hpe_controls_atc.py`, run by verify.py's hyperplane_end step) + +Inherited raw-word controls (8), all rejected; the first is the audit-level one for this change: an early gate that does +not commute with its skipped prefix (a gate whose source was written by an earlier cleanup gate) is rejected by the +exact replay. + +New controls (13; PrefixReviewer fixes applied). Every constructor control must fail with a **pinned** assertion message +(`NONCOMMUTE` = "cleanup gate does not commute with the skipped cleanup gates on its registers", `ONEGATE` = "helper must +have exactly this one cleanup gate"); a different failure aborts the control run. Helpers are paired with their early +gate through the gate's target `cleanup[i][1]` (checked against `helper_final`), not through dict order. +* Synthetic, gate inserted at the head of the cleanup (skipped by the first early gate `h -= p`): + positive `x -= p` (only reads p) accepted; `p -= x` → NONCOMMUTE; `p *= −1` → NONCOMMUTE; + an extra gate reading `h` → ONEGATE; an extra gate adding into `h` → ONEGATE (these two exercise the one-gate rule, + not the commutation check). +* Real helpers: for each helper admitted only by the commutation rule (496, 497, 520, 521, 544, 545, 568, 569 on ck), + its actual skipped gate `x -= p` (cleanup 447 … 440) is flipped in place to `p -= x` → NONCOMMUTE (8 controls). The + unflipped word's own changes are re-built (positive). +* Raw word (audit): `local_profile['1'] −= 8` (the 8 new partners' U → FULL climbs not charged) → rejected by the + audit's paid-profile assert. + +Result on `w_ck`: `PASS 21 HPE raw-word mutations rejected` (9 raw-word + 12 constructor). + +## 3. Evidence from the strict build (`prop_m46/build`, pipe/propose.py --until build, dev reuse of baseline558 only) + +* `{ck,atm3,jp8}-step*-hyperplane_end-construction.log`: `PASS 46 hyperplane-ended helpers` each. +* `{ck,atm3,jp8}-step*-hyperplane_end-controls.log`: `PASS 12 HPE raw-word mutations rejected` each (8 inherited + 4 + constructor; the positive reader case built). +* `{ck,atm3,jp8}-local/WRAPPER-CHECKS.json`: `PASS_RESIDUAL_WRAPPERS_ARE_EXACT`; plus the local native checks + (all-columns-native-frames = exact replay of the reordered program, phase edges, reflected ledgers, independent local + controls) that the build runs on every provider. +* #593's independent instance check `code/check_hpe_pairs.py RUN --mutants` on each local: PASS, 46 helpers, 3 distinct + (E, U) pairs (24 / 12 / 10 helpers; #596 had 24 / 8 / 6 — the same three pairs), 6/6 mutants rejected. diff --git a/research/complex-571-cold14-k492/PROOF-NOTE-R.md b/research/complex-571-cold14-k492/PROOF-NOTE-R.md new file mode 100644 index 0000000000..a403cbeb77 --- /dev/null +++ b/research/complex-571-cold14-k492/PROOF-NOTE-R.md @@ -0,0 +1,86 @@ +# Proof note: the global code for provider helper count R (R = 492 in complex-571-cold14-k492) + +**Scope.** +- Code: `code/{bind_providers_portable,emit_allcold,audit_allcold,invoice_allcold,assemble,assembly_controls,generated_identity_controls,witness}.py` of this package. +- Base: complex-571-cold14-b3, whose six global scripts are byte-identical to complex-571-cold14-e1's. +- The generalisation is GlobalR's (scratch `GlobalR/generalise-R.diff`), with three review fixes: + 1. The width-8 spot check is restored, not dropped. + 2. The cold-helper width-swap control is restored without the skip. + 3. The register of the generated-identity same-rank start-frame mutation follows the helper map. + +**Geometry.** There are v = 112 data ports and h = 9. A provider word has R helper registers `[2v, 2v+R)`, so n = 2v+R. Two helper counts appear in the code: +- **R**: the helper count of the provider words that the hosted calls run. It is read from `word['R']`, and every step asserts that all providers share one value. +- **R0 = 504**: the helper count of the fixed *parent* template, which is the baseline558 split-centres word and its dedicated-bank global template. The parent enters only as geometry and an overcharge envelope: + - `parent_live` 11704 = 7168 + 9·504 banks; + - `parent_physical` 12218 = 11704 + 504 + 8 + 2. + +The inherited code wrote both counts as the literal 504. That is sound when R = R0 and wrong otherwise. + +**Spot helpers.** `witness.SPOT` = `SPEC.width_spot_helpers`, defaulting to PR558's helpers (270, 282, 294, 306). For a K-triangle package, `verify.py` asserts that the spec value equals the images of those four helpers under the constructor's `HELPER-MAP.json`. Here that is [264, 276, 288, 300]. + +**Per-site revert controls.** `revert_controls.py` (scratch `Stack492/`) runs each control: +1. It patches one site back to its 504 text in a temporary copy of `code/`. The site's text must match exactly once. +2. It re-runs the chain listed in the tables below on the fixture's own inputs. +3. It records `pass_identical`, `pass_changed` or `fail`, with the failing assertion. + +Expectations: on R = 504 every revert must pass with identical outputs, apart from `seconds` fields. On R ≠ 504 every R site must fail; the R0 and cosmetic sites must pass. + +## Sites (32), each with its revert control and the observed result on the R = 492 strict fixture + +Fixture: `cands/K1/strict`, the strict `verify.py` run of this package (κ 0.00163542231500688). Report: `REVERT-492.json`, **ALL_AGREE, 32 sites, 47.7 s**. + +| site | file | generalised | revert (504 text) | kind | why it is the same quantity | R=492 observed | +|---|---|---|---|---|---|---| +| bind.word_R | bind | `(v,h,centres)==(112,9,8)`, R a positive int, one R across providers | `(v,h,R,centres)==(112,9,504,8)` | R | the bound word's own helper count | fail (AssertionError) | +| bind.helper_range | bind | `range(2*112,2*112+word['R'])` | `range(224,728)` | R | helper registers are `[2v,2v+R)` | fail (IndexError) | +| bind.spot_width8 | bind | `widths[h]==8 for h in SPOT` | `… in (270,282,294,306)` | R (helper map) | the same four PR558 helpers, renumbered | fail (AssertionError) | +| emit.R_from_providers | emit | `R=pc['R']` (all providers equal) | `R=504` | R | hosted calls run the provider words; the old code took R from the parent | fail (IndexError) | +| emit.roles_72R | emit | `len(roles)==72*R` | `72*504` | R | one role per (call, helper) | fail | +| emit.widths_range | emit | `for h in range(R)` | `range(504)` | R | one width per helper | fail (IndexError) | +| emit.all_helpers_owned | emit | `set(bycall[k])==set(range(R))` | `range(504)` | R | every helper of a call is owned | fail | +| emit.physical | emit | `physical=DATA+C+R+2` | `+504+` | R | stock = data + centres + R helpers + 2 coefficient columns | fail (independent audit) | +| emit.reserved_tableau | emit | `[DATA+C,DATA+C+R]` | `+504` | R | the private tableau holds R helper columns | fail (independent audit) | +| emit.parent_R0 | emit | `parent physical-live==C+R0+2` | `C+R+2` (provider R) | R0 control | parent stock identity | fail | +| emit.version_label | emit | `'round20-R%d-…'%R` | `'round20-R504-…'` | cosmetic | a label that no check reads | pass_changed (expected pass) | +| audit.spot_width8 | audit | `widths[h]==8 for h in SPOT` | PR558 indices | R (helper map) | as bind | fail | +| invoice.recount_R | invoice | `(v,h)==(112,9)`, helpers = `w['R']` | `(v,helpers,h)==(112,504,9)` | R | helper count of the recounted word | fail | +| invoice.run_R_n | invoice | common provider R, `n=2v+R` | `helpers=504; n=728` | R | n = 2v+R | fail | +| invoice.parent_R0 | invoice | `parent_physical==parent_live+parent_helpers+…` | `+helpers+` | R0 control | parent stock identity | fail | +| invoice.route_items | invoice | `+2*call_count*helpers` | `*504` | R | per-call in/out routes of the R hosted helpers (PR531 invoice_final); assemble recounts with `2*72*R` | fail (assemble) | +| assemble.R | assemble | `R=invoice['helpers']` | `R=504` | R | invoice helper count, equal for every provider | fail | +| assemble.owners_per_call | assemble | `==2*112+R` | `==728` | R | whole owners per call = 2v + R | fail | +| assemble.hosted_72R | assemble | `==72*R` (new, stronger) | `==72*504` | R | one helper owner chart per (call, helper) | fail | +| assemble.stock_helpers | assemble | `local_helpers=R` | `504` | R | physical stock term | fail | +| assemble.provider_helpers | assemble | `p['helpers']==R` | `504` | R | provider helper count | fail | +| assemble.provider_n | assemble | `p['n']==2*112+R` | `728` | R | exact columns | fail | +| assemble.width_sum | assemble | `9*R-entrance-codim` | `9*504-…` | R | Σ widths over R helpers | fail | +| assemble.width_len | assemble | `len(widths)==R` | `504` | R | one width per helper | fail | +| assemble.exact_columns | assemble | `all_exact_columns==2*112+R` | `728` | R | n = 2v+R | fail | +| assemble.dirty_columns | assemble | `dirty_helper_columns==R` | `504` | R | R helper columns restored | fail | +| assemble.local_adapters | assemble | `16*(macros+children+2*112+R+8)+64*73` | `+728+8` | R | adapter formula with n = 2v+R | fail | +| assemble.route_items | assemble | `+2*72*R+` | `+2*72*504+` | R | matches the invoice term | fail | +| assemble.parent_banks | assemble | `+9*parent_banks+`, with `parent_banks=(11704-7168)/9` asserted = 504 | `+9*504+` | R0 | parent geometry, independent of the providers | pass_identical (expected pass) | +| assemble.spot_width8 | assemble | `p['widths'][h]==8 for h in SPOT` | PR558 indices | R (helper map) | as bind | fail | +| controls.swap_spot | assembly_controls | `cold_helper_width_swap_h` for h in SPOT | `for h in (270,282,294,306)` | R (helper map) | at a PR558 index of width 9 the swap is the identity; strict mode then reports "Invalid admission receipt accepted" | fail (`ck:cold_helper_width_swap_294` accepted) | +| identity.start_register | generated_identity_controls | `r = 2*112 + SPOT[2]` | `r = 518` | R (helper map) | same-rank start-frame mutation of an entering helper (PR558 helper 294; image 288, register 512) | fail (StopIteration: register 518 is rank 0 here) | + +### Other changes in this package's verifier, beyond GlobalR +- In `generated_identity_controls.py`, the mutation `all_exact_columns` → 727 became `all_exact_columns − 1`. This value is 727 for R = 504, so it is bit-exact there, and it stays a wrong column count for any R. On R = 492 the old 727 was also wrong (actual 716), so it was not unsound, only literal. +- `verify.py` gains the `k_triangle` base, the `port_stage` and `frame_regroup` step types, the shadow chains, the `width_spot_helpers` ↔ HELPER-MAP check, and support for PR531's `{algorithm, sha256}` source manifest. None of these touch R constants. `verify.py`'s other `224` uses are 2v. + +### Unchanged quantities, independent of R (asserted as before) +- v = 112, h = 9, 8 centres, M = 73, live 7168. +- Deficit `73·7168 − mass = 2560`, so rank mass is 520704. +- The halving pair [5329, 4608], from maxchild 48. +- `endpoint_adapters == 224`, which is 2v. +- The gate-move indices `-224` and `112<=e[1]<224`, which are v quantities. + +### How R enters κ +κ = `outer_witness(b)`, where b is the certified complex lower endpoint of the moment problem for the global paid profile H (W = live = 7168, deficit 2560). R therefore enters κ only through H: each provider's local paid profile over its dispatched calls, plus the idle remainders the owner map leaves. The physical stock (7168 + 8 + R + 2 = 7670 here), owners_per_call (2v+R = 716), hosted residuals (72R = 35424) and the routing term enter only the strict finite inequalities. All of these get easier as R shrinks. + +## Evidence +- **R = 492.** + - `REVERT-492.json`: ALL_AGREE, 32/32. Every R site fails, both R0 controls fail, `assemble.parent_banks` passes identically, and the version label passes changed. + - Fixture spot widths at the PR558 indices: ck [7,8,9,7], jp8 [8,9,9,8]. At the map images they are [8,8,8,8] for ck, jp8 and atm3 (the bind/audit/assemble checks pass). +- **R = 504.** `REVERT-504.json`: ALL_AGREE, 32/32 pass_identical. The fixture is GlobalR's `run504b` (a full generalised run of complex-571-cold14-e1, κ 0.001626010676080313 = SPEC), run with this package's eight global files and that package's data. So the restored checks and the helper-map defaults reproduce the 504 outputs exactly. +- **Strict.** This package's strict `verify.py` passes with these files: PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT, κ 0.00163542231500688. diff --git a/research/complex-571-cold14-k492/PROOF-NOTE.md b/research/complex-571-cold14-k492/PROOF-NOTE.md new file mode 100644 index 0000000000..0586ac5422 --- /dev/null +++ b/research/complex-571-cold14-k492/PROOF-NOTE.md @@ -0,0 +1,169 @@ +# Proof note: two new A-gate primitives in the `cold_end` build step (ColdBeyond, final = v3) + +v3 = per factory block a second cold low-frame end (S b.9 at U_b, no lifted partner; absorption p5 += -1/2 S.5) on top of +#604's S b.10 end, plus ColdSupply's E1 entering pair (608/610 at a hyperplane, published as #615), on jp8, ck and atm3. +Profile per word vs #604: {1:+20, 2:-4, 6:-14}; widths 9->4 x14, 8->7 x2. LP screen (kscreen, #610 dispatch +jp8x71+ck): v2 0.0016345792 = +0.553% over the like-for-like screen base 0.0016255869 (the #610 literal is +0.0016253652); v3 0.0016347434; free dispatch 0.0016353016. + +## What changes +#604's `cold_end` step allowed exactly one change to section A: a rank-0 premix on cold helpers at the head of A +(`y['A'] == premix + x['A']`, every premix register a helper at its start frame). This package widens that allowlist +(`code/build_cold_end.py::apply`, and independently `verify.py::cold_end`) by two primitives. No audit is weakened; +every downstream check runs unchanged on the resulting word. + +1. **Premix target writes.** `['add', t, k, p, q, []]`, with `t` a target, `k` a cold helper, and frame `[]`. These are + placed in the premix, so they run after the entry adapters and paid wrappers. +2. **Forward absorptions.** `[[i, ['add', q, g, p, s, F]]]`, inserted into A right after input-A gate `i`, with three + conditions: + - **(a)** neither register is a target; + - **(b)** `q` is dead from then on: no later A, cut or B gate touches it; + - **(c)** after gate `i`, both `q` and `g` already sit at frame `F`. + +## Why the forward computation is unchanged +- **Absorption.** The gate changes only `q`'s value, and `q` is never read again in A, cut or B (condition b). So every + register that is ever read afterwards has its old forward value. That covers targets, centres, live helpers and + live ports. Only `q`'s end-of-B value changes, and `q` is a non-target, so the cleanup is responsible for it. + - Condition (c) makes the gate frame equal both registers' current frame, so no climb happens. + - The paid profile and all frame chains are therefore identical to the input's. `chain_profile` recomputes them, + and the transport's `climb` re-asserts monotonicity. +- **Target write.** The gate reads a cold helper and writes a target. The transport assertion "no non-target register + reads a target in A/B" still holds. + - Targets start at level 0, which is frame `[]`, so the gate is rank 0. The transport still asserts at the start + of B that every target sits at its level. + - Its scalar content is the same kind of operation as a zero-frame compensation gate, `target += d·helper`. + - The only difference is placement: it runs after the cold wrappers and the helper premix. So it can cancel, + inside main, the dirt that an ended helper's premix column `c_h` delivers to targets. The carrier `k` has unit + weight on `h` and zero weight on every other ended helper. + - The verifier's own zero-frame compensation, recomputed from main, then contains no term on an ended helper. The + transport asserts this: no precondition or compensation gate touches a cold-ended helper + (`hpe_audit_and_transport.py:157`). + - **That assertion is THE guard for target writes.** A doubled, dropped or retargeted target write leaves the scalar + program exact (the compensation simply absorbs the difference), so exactness alone would accept it. It is rejected + only because the recomputed compensation must then read the ended helper, which :157 forbids. Every target-write + mutant below is rejected by :157 (the entering-helper one by the frame climb). + +## What is re-verified on the resulting word (unchanged code) +- **Scalar replay.** `hpe_audit_and_transport.py` runs the exact arbitrary-dirt endpoint replay of precondition + + compensation + main + tail + refactored cleanup in both orientations. It also checks dyadic primitives, the frame + chains, the end-of-B row/column cone pre-check for every low-frame end, and the paid profile. +- **Local replay.** `hpe_emit_local.py` and `hpe_audit_local.py` run the event-level independent replay and the + wrapper-order check: every scalar on a wrapped helper lies between its pre and post adapters. +- **Wrappers.** `hpe_adapters_local.py` checks Lemma A wrappers for `(0, U)`. +- **Phases.** `phases_full.py` checks all phase edges. +- **Global stages.** Binding, the owner audit, the invoice, both moment engines and the assembly controls all run. + +## Lean coverage +Both primitives are ordinary section-A gates of the native word: frame-`[]` adds and an add at its registers' common +frame. The HPE / cold-end Lean statements (PR593, PR599) are about the helper labels, tails and terminal frames, and +none of those change. The ended helpers end at `U_b` (dim 4) with `(0, U)` wrappers exactly as in #604. No new Lean +rule is needed. The change is to the build-step allowlist only. + +## Negative controls (`code/cold_end_controls.py`; all must be rejected by the transport) +#604's 14 controls, ColdSupply's 6 entering-end controls (E1), plus these 12 (32 in total): +- target writes moved into the zero-frame precondition (before the wrappers); +- one target write dropped; +- a target-write coefficient doubled; +- a target write reading an entering helper; +- a target write reading the same factory slot of another block, which carries none of the ended helper's dirt; + - (Reading another register with the same weight on `h` is a valid variant: it is accepted, which is why this mutant + was chosen instead.) +- absorption dropped; +- absorption coefficient doubled; +- absorption placed before the absorbed register's last kernel write; +- absorption placed while the absorbing register is still live; +- absorption into a centre (a live register read by the cut); +- absorption at a lower frame; +- absorption at a higher frame (FULL). + +In addition, `verify.py::cold_end` independently checks the allowlist conditions: +- target writes are frame-`[]` adds from a cold, non-entering helper; +- each absorption satisfies conditions (a)–(c): unique, in-range insertion indices; frames compared as spans and + seeded from the port / start_extra frame when the register has no earlier A gate; +- `y['A'] == premix + (x['A'] with the absorptions inserted)`. + +## K-triangle provider words (complex-571-cold14-k492) + +The provider words are produced by search-side constructors. None of them is trusted. What is trusted is the exact audits that certify every word. Every intermediate word also has its content hash pinned in `data/SPEC.json`. This note says what each constructor does, and which independent check certifies its output. + +### 1. `k_triangle`: `code/construct_k_triangle.py` + +**Origin.** This is PR531's `code/construct_504.py` (pinned source `direct_delivery`, file hash pinned), extended with AtomScout's leaver-read K-triangle atom. Every assertion of PR531's constructor is kept, with 504 replaced by NH = 504 − 3·|triangles|. + +**The atom.** A coordinate pair p is *full* when the selected partition contains p in all three blocks containing p. Then both triangles (p, ±1) are consumed only by K-coordinates. For a scheduled triangle: +- the three face packets are never formed and never copied; +- each K-coordinate target t first reads the leaver that is its K-basis own token, `own_rows[t]`. The constructor checks this is the same register and coefficient as in the 504 word; +- t then reads the four unformed leavers (butterfly outputs) of the other two faces. Each is read with coefficient `coef·alpha`, from the 504 word's face-packet request. + +The read order (`data/TRI-SCHEDULE.json`) keeps every target frame inside hyper(P_t); the constructor asserts this for each read. + +**Exactness.** The constructor asserts the following, exactly as PR531 does: +- the side identity `rows[v+t] == {s: −G[t][s]/2}` for every target t; +- the clean-column replay `A + cut + B + cleanup = identity` on the 2v + NH columns; +- the rank-mass identity Σ r·H_r = 9·NH + 240·8 + 72. + +**Helper map.** Each allocation advances the 504 numbering. A packet copy that the schedule never forms advances it without allocating. `HELPER-MAP.json` is therefore the 504 → NH register map: registers below 448 keep their ids, and the 12 removed packet copies [448, 458, 460, 470, 472, 482, 580, 590, 592, 602, 604, 614] have no image. + +**Controls in `verify.py`.** +- PR531's unchanged constructor reproduces PR552's `RAW504.json.gz` byte for byte in content. +- This constructor with an empty schedule also reproduces it, and gives the identity map. +- With the package schedule it gives R = 492 = 504 − 3·4 and a 12-entry removed set, and the map's hash is pinned. +- Independently (AtomReviewer), the 492 raw word passes vendor531's and the generalised `audit_and_transport` (exact forward and inverse-transpose replay of every column, native frames), and an independent mod-p replay. + +### 2. `port_stage`: `code/build_port_stage.py` + +**What it replays.** A stage I4 → O4 of a 504-helper chain is one of: +- PR558's reconstruction raw504 → promoted; +- PR571's prefix word; +- PR568 `cold_kernel` / `multicut`; +- PR575 `joint_prefix`; +- PR569 `promote`, PR568 `greedy_kernels`, PR583 `frame_coalesce`, and this lineage's `gate_move_coalesce`. + +Each stage is rebuilt in the same run from pinned sources, with its own constructor, omission controls and content pins (`build.shadows`). + +**How it is replayed.** The stage is replayed onto the K-triangle word I8 at the matching chain point: +- I4 and O4 are renumbered through the helper map, dropping gates on removed registers; +- gates are aligned by scalar operation (gate without frame); +- in O4 order, matched gates come from I8, with O4's frame where the stage changed it; +- stage-introduced gates come from O4; +- the K-triangle reads, which have no 504 counterpart, stay after their I8 predecessor's image; +- start_extra and target_levels changes are replayed; +- the cleanup is rebuilt with the inherited inverse rule. + +**What certifies the output.** The port is a transfer heuristic and claims nothing by itself. `verify.py` certifies every ported word in four ways: +1. It runs the generalised native audit `code/hpe_audit_and_transport.py`: status PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES, exact forward and inverse-transpose replay of all 2v+R columns with arbitrary dirt, native monotone frame chains, and the entrance and paid-profile census. +2. It checks that only A, B, cleanup, start_extra, target_levels and the report changed, and that R is unchanged. +3. It pins input, shadow input, shadow output and output by content hash. +4. Localization later re-derives everything again: native chain, independent local replay with its negative controls, wrappers, and all phase edges. + +So a wrong transfer can only fail closed. + +### 3. `frame_regroup`: `code/build_frame_regroup.py` + +This is PR583's `build_frames.py`, with the required per-change profile delta read from the recipe instead of fixed at {1:−2, 2:+1}. The constructor checks the following: +- scalar operations, every field outside A/B/report, helper widths and all initial helper responses are unchanged; +- entering helper responses are zero; +- the cleanup already follows the inherited inverse rule, which uses only FULL frames; +- every change has the recipe's exact sequential delta, and the profile matches the recipe before and after; +- frame-chain monotonicity holds (gk_word.profile asserts it); +- the controls reject every omission and every FULL over-promotion (48 controls for 24 changes). + +`verify.py` then repeats `frame_coalesce`'s independent comparison: only the recipe gates' frames change. + +The recipe's 24 changes coalesce the K-read gates of the eight K-coordinate targets, each with delta {1:−3, 2:+3, 3:−1}. Port480's `frameopt.py` found them by maximising Σ d·ln d. + +### 4. `hyperplane_end` and `cold_end` + +These steps run the package's unchanged B3 constructors, controls and independent comparisons: +- `build_hpe.py` / `hpe_controls_atc.py`: 34 candidates, all admissible; +- `build_cold_end.py` / `cold_end_controls.py`. + +The cold_end recipes come from ColdBeyond's `construct2` with single-unit blocks (Port480 `construct2b.py`). Each recipe has: +- S b.10 cold ends in all 14 blocks; +- S b.9 second cold ends with dead-port absorption in blocks 3–10 only. In blocks 0–2 and 11–13 the K-triangle words do not admit them; +- the E1 entering pair. + +The allowlist and its proof are B3's `PROOF-NOTE.md`, unchanged. + +### Reproduction +Every intermediate word was rebuilt outside `verify.py` (scratch `Stack492/rebuild.py`) and inside the strict run. Each one equals Port480's search word in content, for every stage of ck, jp8 and atm3. diff --git a/research/complex-571-cold14-k492/README.md b/research/complex-571-cold14-k492/README.md new file mode 100644 index 0000000000..204e1dcd87 --- /dev/null +++ b/research/complex-571-cold14-k492/README.md @@ -0,0 +1,435 @@ +# PR622 owner repacking: conditional κ 0.001635425470780892 + +A coordinated repacking of PR622's literal owners raises its conditional bound from **0.00163542231500688** to **0.001635425470780892** (about **0.000193%**). Exact κ is `408856367695223/250000000000000000`; the conservative value is `0.001635425467912872`. + +The 492-helper words, jp8 ×65 / ck ×7 dispatch, all construction recipes, source pins and admission scripts are unchanged from PR622 at `f69477f4f6d3c7eb1f740b166881bffed4ffa9f6`. There are 5,027 changed placements and 3,146 additional packed-offset changes. Spare rank changes from `{1:127,3:19,7:1,21:1,48:2213}` to `{1:128,3:17,4:1,7:1,22:1,48:2213}`, with the same total rank. + +`data/REPACKING.json` and the standard-library `tools/replay_repacking.py` reproduce the frozen nomination from pinned PR622 data. See [OWNER-REPACKING.md](OWNER-REPACKING.md) for the exact delta and verification commands, and the sibling `research/complex-571-cold14-k492-repacking-audit/` for source review, search provenance and contributor validation. The code-generalization review and K-triangle atom belong to PR622; this change only repacks its owners. + +The older narrative and search inputs below are retained as **PR622 history**. They describe the inherited map and bound, not the new recorded-move nomination. All conditional assumptions remain; no optimal packing, unconditional theorem or full Lean certification is claimed. + +--- + +# complex-571-cold14-k492: conditional κ 0.00163542231500688 + +## Definition + +The witness `cold14` is the PR558 geometry (112 data columns, h = 9, 492 helpers per provider word (the K-triangle helper count R; the width-8 spot helpers are the helper-map images [264, 276, 288, 300] of PR558's 270, 282, 294, 306), 8 centres, 9 stages × 8 replicas = 72 calls) served by 2 provider words, each a pinned base word followed by typed build steps: **jp8** (65 calls) = the K-triangle skeleton word (R = 492 helpers; 4 scheduled triangles, `data/TRI-SCHEDULE.json`) → `port_stage` (raw504 → promoted558 of the 504-helper chain, replayed through the helper map) → `port_stage` (promoted558 → jp8_504:0 of the 504-helper chain, replayed through the helper map) → `port_stage` (jp8_504:0 → jp8_504:1 of the 504-helper chain, replayed through the helper map) → `port_stage` (jp8_504:1 → jp8_504:3 of the 504-helper chain, replayed through the helper map) → `frame_regroup` (24 frame regroupings) → `hyperplane_end` (34 helpers end at a hyperplane U instead of FULL) → `cold_end` (22 cold helpers end at a dim-4 frame U instead of FULL, after a 430-gate rank-0 premix at the head of A, 86 lower-frame cleanup gates and an exact refactored cleanup); **ck** (7 calls) = the K-triangle skeleton word (R = 492 helpers; 4 scheduled triangles, `data/TRI-SCHEDULE.json`) → `port_stage` (raw504 → promoted558 of the 504-helper chain, replayed through the helper map) → `port_stage` (promoted558 → ck_504:base of the 504-helper chain, replayed through the helper map) → `port_stage` (ck_504:base → ck_504:0 of the 504-helper chain, replayed through the helper map) → `port_stage` (ck_504:0 → ck_504:1 of the 504-helper chain, replayed through the helper map) → `port_stage` (ck_504:1 → ck_504:2 of the 504-helper chain, replayed through the helper map) → `frame_regroup` (24 frame regroupings) → `hyperplane_end` (34 helpers end at a hyperplane U instead of FULL) → `cold_end` (22 cold helpers end at a dim-4 frame U instead of FULL, after a 430-gate rank-0 premix at the head of A, 86 lower-frame cleanup gates and an exact refactored cleanup). The `port_stage` steps read the words of the 504-helper shadow chains **ck_504** = PR571's `frontier-composition/combined-prefix-word/FULL-WORD.json.gz` → `greedy_kernels` (12 multi-cut cold kernels, PR568's constructor) → `frame_coalesce` (6 frame coalescences, PR583's constructor) → `gate_move_coalesce` (2 coalescences, each after moving an addition past commuting additions; 2 moves); **jp8_504** = the frozen PR558 promoted word → `cold_kernel` (PR568 `data/EIGHT-COLD.json`) → `multicut` (PR568 `data/EIGHT-MULTICOLD.json`) → `frozen558_scalar_audits` (inherited static44 and rank-five audits; word unchanged) → `joint_prefix` (PR575, variant `eightcold`), rebuilt in the same run and pinned like the providers but never dispatched. Each step runs a pinned, unchanged constructor plus its paired omission or negative-control audit; a hyperplane-ended helper starts at its entrance frame E, ends at the hyperplane U, and pays residual width |U| − |E|; a cold-ended helper starts cold (E = ∅) and ends at its low-dimensional frame U, so it pays |U|; every other helper ends at FULL, so its width stays h − |E|. The dispatch (which provider serves each (stage, replica) call), the asynchronous call order and the literal owner map are `data/PLAN.json` (`provider_calls`, `order`) and `data/OWNERS.json.gz`, at the free dispatch ck ×7, jp8 ×65 (per-time argmax of the aggregate free-dispatch hosting LP over the K-triangle words {ck, atm3, jp8}; atm3 is never selected); the owner map is an exact per-time-Hall exact-window MIP solution (RINS around the exact-window LP vertex; 1800 s time limit, relative gap 1.0e-7) (see `data/cand.json`), and PLAN is the window MIP's PLAN with the provider registry re-derived from the admitted provider locals (widths over the word's R helpers) and `profile`/`assignment_sha256` recomputed from the map (Stack492 mkplan.py); the resulting paid profile is {1:181579, 2:29864, 3:31267, 4:11520, 5:5040, 6:576, 7:1, 8:576, 21:1, 48:2213} with live 7168, physical 7670 and deficit 2560, giving κ = 10221389468793/6250000000000000 = 0.00163542231500688 (conservative model 0.001635422312138865). + +## Files + +| file | role | +|---|---| +| `data/WITNESS.json` | **inputs only**: geometry, pinned sources, the provider build chains above, dispatch and call order, and PLAN/OWNERS/recipes by SHA-256 | +| `data/EXPECTED.json` | **expected values only**, all derived by recomputation (`spec.py generate`): per-step word hashes and control counts, per-provider artifacts, programs and profiles, global profile and counts, κ. Bound to WITNESS.json by hash | +| `data/PLAN.json`, `data/OWNERS.json.gz` | dispatch, call order and literal owner map (inputs, pinned by WITNESS.json) | +| `data/recipes/` | the package's own step recipes (inputs, pinned by WITNESS.json); `data/recipes/atm3-step0-promote.json`, `data/recipes/atm3-step1-greedy_kernels.json`, `data/recipes/atm3-step2-frame_coalesce.json`, `data/recipes/atm3-step3-gate_move_coalesce.json`, `data/recipes/k492-atm3-cold_end.json.gz`, `data/recipes/k492-atm3-frame_regroup.json`, `data/recipes/k492-atm3-hyperplane_end.json` is used only by `data/cand.json` (a menu provider the owner solve did not dispatch), not by the witness | +| `data/cand.json` | the search candidate (schema candidate/1), an input of the search side: the provider chains (the K-triangle skeleton with PR604/B3 chains ported stage by stage (port_stage, frame_regroup) and ColdBeyond v3 cold_end recipes re-derived on the ported words), the dispatch rule and the PLAN rule, and the owner search (start map `owners.warm_owners`, solver settings, LP pattern inputs, objective and the solve result), with package-relative and `NAME:` source references. The verifiers do not read it | +| `PROOF-COMMUTING-PREFIX.md` | proof note for the construction (documentation; no verifier reads it) | +| `PROOF-NOTE-R.md` | proof note for the construction (documentation; no verifier reads it) | +| `PROOF-NOTE.md` | proof note for the construction (documentation; no verifier reads it) | +| `data/search/WARM-OWNERS.json.gz` | search input named by `data/cand.json` (`owners.warm_owners`): complex-571-cold14-b3's `data/OWNERS.json.gz` (504-helper roles; every call is widening for the 492-helper words, so it seeds nothing). The shipped `data/OWNERS.json.gz` is the search's result; the verifiers do not read this file | +| `data/search/DISPATCH.json` | search input named by `data/cand.json` (`owners.search_inputs`): the dispatch {time: provider} = per-time argmax of the aggregate LP selections; the verifiers do not read this file | +| `data/search/LP-PATTERNS-AGG.json` | search input named by `data/cand.json` (`owners.search_inputs`): aggregate free-dispatch LP relaxation over the K-triangle words {ck, atm3, jp8} (crossover, tight 3); the verifiers do not read this file | +| `data/search/LP-PATTERNS-EX.json` | search input named by `data/cand.json` (`owners.search_inputs`): exact-window LP relaxation (crossover) at that dispatch over the base patterns plus aggregate-LP patterns with weight >= 0.01; the verifiers do not read this file | +| `data/search/TEMPLATE-PLAN.json` | search input named by `data/cand.json` (`owners.search_inputs`): the PLAN of ColdBeyond's working package (PR604's dispatch ck ×44, atm3 ×22, jp8 ×6), whose windows/order/registry template the nominator reuses; the verifiers do not read this file | +| `data/search/WARM-PLAN.json` | search input named by `data/cand.json` (`owners.search_inputs`): the PLAN matching WARM-OWNERS.json.gz (ColdBeyond O3free-rins2 = complex-571-cold14-b3 PLAN) (line endings normalized to LF); the verifiers do not read this file | +| `data/SPEC.json`, `verify.py`, `verify.sh`, `code/` | the combined spec and package verifier (PR604's verifier and code, byte for byte); they verify the same record | + +`data/PLAN.json` carries `"status": "LITERAL_OWNER_NOMINATION_PENDING_ADMISSION"`. That label was written by the owner nominator before admission and is kept unchanged because WITNESS.json pins PLAN by hash; admission is what the verifiers below establish, and the label carries no meaning for them. + +## Verification + +The pinned sources are not merged; fetch their pinned commits first: + +```sh +git fetch origin pull/568/head:pr568 pull/571/head:pr571 pull/569/head:pr569 pull/575/head:pr575 pull/583/head:pr583 pull/531/head:pr531 +git worktree add --detach ../pr568 71c99ac935a33bb7b59a1b4a7af8725a939b0b90 +git worktree add --detach ../pr571 b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3 +git worktree add --detach ../pr569 897213a855b7fb8a1b8b0e552a2f5c42e6c1b326 +git worktree add --detach ../pr575 eac6f7e378ab622dac50a2fd4b7ef6eab014de44 +git worktree add --detach ../pr583 89be768f0157f5a3d8e4db69cf1748768605eac9 +git worktree add --detach ../pr531 e07a8a3f9f79c22113398a0c5dbbc7601f489b3e +``` + +Generic verifier (`research/witness-spec-tools`, PR587 with the `frame_coalesce`, `gate_move_coalesce`, `hyperplane_end`, `cold_end`, `port_stage` and `frame_regroup` step types and the `k_triangle` base; its `code/build_hpe.py`, `code/hpe_controls_atc.py`, `code/build_cold_end.py`, `code/cold_end_controls.py`, `code/hpe_audit_and_transport.py`, `code/hpe_*_local.py`, `code/construct_k_triangle.py`, `code/build_port_stage.py` and `code/build_frame_regroup.py` must be byte-identical to this package's `code/` copies, which define the hyperplane-end and cold-end constructors, their controls and the generalised native chain). It builds everything from `data/WITNESS.json` and only compares against `data/EXPECTED.json`: + +```sh +T=research/witness-spec-tools +python3 $T/spec.py check --package research/complex-571-cold14-k492 \ + --source multicold=../pr568/research/complex-multicold \ + --source structural_gain=../pr571/research/structural-gain \ + --source larger_gain=../pr569/research/larger-gain \ + --source joint_prefix=../pr575/research/complex-joint-prefix \ + --source frame_coalescing=../pr583/research/kernel-frame-coalescing \ + --source direct_delivery=../pr531/research/direct-delivery504-global +python3 $T/verify.py --package research/complex-571-cold14-k492 --work /tmp/complex-571-cold14-k492 \ + --source multicold=../pr568/research/complex-multicold \ + --source structural_gain=../pr571/research/structural-gain \ + --source larger_gain=../pr569/research/larger-gain \ + --source joint_prefix=../pr575/research/complex-joint-prefix \ + --source frame_coalescing=../pr583/research/kernel-frame-coalescing \ + --source direct_delivery=../pr531/research/direct-delivery504-global +# kappa 0.00163542231500688 +``` + +`verify.py` checks the package MANIFEST and every source, PLAN, OWNERS and recipe pin; replays PR558; rebuilds each provider word through its build chain (each step's input and output content hash pinned, 15 steps); localizes each word (hyperplane- and cold-ended words through the generalised native chain, with `0:U` wrappers for cold ends); then runs binding, the physical owner audit with 23 controller mutants, a fresh finite invoice, both exact moment engines, 114 assembly controls, the phase-timing controls and the generated-identity controls. + +The original package verifier gives the same result from `data/SPEC.json`: + +```sh +python3 -B research/complex-571-cold14-k492/verify.py --work /tmp/complex-571-cold14-k492-spec \ + --source multicold=../pr568/research/complex-multicold \ + --source structural_gain=../pr571/research/structural-gain \ + --source larger_gain=../pr569/research/larger-gain \ + --source joint_prefix=../pr575/research/complex-joint-prefix \ + --source frame_coalescing=../pr583/research/kernel-frame-coalescing \ + --source direct_delivery=../pr531/research/direct-delivery504-global +``` + +Both use only the Python standard library and require assertions (no `-O`). The result is conditional on the inherited assumptions listed in NOTICE.md. + +## Construction and history (the package README as committed) + +### Definition + +The witness `cold14` uses the PR558 geometry: 112 data columns, h = 9, 8 centres, and 9 stages × 8 replicas = 72 calls. Its providers are words with **R = 492 helpers** instead of 504, built on AtomScout's leaver-read K-triangle skeleton. There are 2 provider words, each a K-triangle base word followed by typed build steps: + +- **jp8** (65 calls): + 1. `k_triangle`; + 2. `port_stage`: raw504 → PR558 promoted; + 3. `port_stage` × 3, porting PR568 `cold_kernel` → `multicut` → PR575 `joint_prefix` (eightcold); + 4. `frame_regroup` (24 K-read gate frames); + 5. `hyperplane_end` (34 helpers); + 6. `cold_end` (ColdBeyond v3: S b.10 in all 14 blocks, S b.9 in blocks 3–10, plus the E1 entering pair). +- **ck** (7 calls): + 1. `k_triangle`; + 2. `port_stage`: raw504 → PR558 promoted; + 3. `port_stage`: promoted → PR571 combined-prefix word; + 4. `port_stage` × 3, porting `greedy_kernels` → PR583 `frame_coalesce` → `gate_move_coalesce`; + 5. `frame_regroup`, `hyperplane_end`, `cold_end` as for jp8. + +An exact per-time-Hall exact-window MIP chose the dispatch and the literal owner map from the menu {ck, atm3, jp8}. + +### The K-triangle skeleton (`k_triangle`, `code/construct_k_triangle.py`) + +`code/construct_k_triangle.py` is PR531's `code/construct_504.py` (research/direct-delivery504-global, a pinned source), extended by AtomScout's atom. + +**The atom.** A coordinate pair p is *full* when the selected partition contains p in all three blocks that contain p. Then both of its triangles (p, ±1) are consumed only by K-coordinates. For each scheduled triangle: +- its three faces are never formed and never copied; +- every K-coordinate target reads its own leaver (the K-basis own token); +- it then reads the four unformed leavers of the other two faces, in a fixed legal order (`data/TRI-SCHEDULE.json`: the four (p, −1) triangles of the full pairs (0,1), (2,3), (4,5), (6,7)). + +This saves 3 packet copies per triangle, so R = 504 − 12 = 492. + +**Checks in the constructor.** It keeps every assertion of PR531's constructor (generalised to R): +- the side identity; +- every target frame inside hyper(P_t); +- exact clean cleanup; +- rank mass 9R + 1992. + +It also writes `HELPER-MAP.json`, the 504 → 492 register map. Registers below 448 keep their ids, and the 12 removed packet copies have no image. + +**Controls in `verify.py`, run once:** +- PR531's unchanged `construct_504.py` and this constructor with an empty schedule each reproduce PR552's `RAW504.json.gz` (content); +- the empty-schedule helper map is the identity. + +### Porting the 504-helper chain (`port_stage`, `code/build_port_stage.py`) + +**Shadow chains.** The 504-helper chains of PR604/B3 (`build.shadows`: jp8_504, ck_504) are rebuilt in the same run from pinned sources, with their own constructors, controls and content pins. + +**What each `port_stage` step does.** It replays one shadow stage I4 → O4 onto the K-triangle word I8 through the helper map: +1. gates are matched by scalar operation; +2. the stage's frame changes, introduced gates and entrance (start_extra) changes are applied; +3. the K-triangle reads are kept after their predecessors' images; +4. the cleanup is the inherited inverse rule. + +**Certification.** The constructor is only a transfer. Every ported word is certified by the generalised native audit (`code/hpe_audit_and_transport.py`: exact forward and inverse replay of every column, native frame chains). Every input, shadow input, shadow output and output is pinned by content hash. + +### `frame_regroup` (`code/build_frame_regroup.py`) + +This is PR583's `build_frames.py`, except that the per-change profile delta is pinned in the recipe instead of being fixed to {1:−2, 2:+1}. Its other properties: +- scalar operations, widths and helper responses are unchanged; +- the omission and over-promotion controls are rejected; +- the same independent comparison as `frame_coalesce` follows. + +The 24 changes move the K-read gates of the eight K-coordinate targets to coalesced frames, each with delta {1:−3, 2:+3, 3:−1}. + +### Helper count R in the global code + +The global scripts (bind, emit, audit, invoice, assemble, assembly controls, generated-identity controls) take R from the provider words, and all providers must share it. The parent split-centres envelope keeps its own R0 = 504. + +The width-8 spot check and the cold-helper width-swap controls use `width_spot_helpers`. These are the images of PR558's helpers 270, 282, 294, 306 under the helper map: [264, 276, 288, 300]. `verify.py` checks them against the constructor's `HELPER-MAP.json`. + +`PROOF-NOTE-R.md` lists every 504 → R site, why it is sound, and one revert control per site that must fail on this package's R = 492 fixture. `PROOF-NOTE.md` is B3's note: ColdBeyond's cold_end primitives, including dead-port absorption, unchanged. It is followed by a new section on the soundness of the K-triangle atom, the port transfer and frame regrouping. + +### Result + +κ = **0.00163542231500688** (conservative model 0.001635422312138865). That is +0.0146% over complex-571-cold14-b3 (0.001635183729255778), on dispatch ck ×7, jp8 ×65. + +The global paid profile is {1:181579, 2:29864, 3:31267, 4:11520, 5:5040, 6:576, 7:1, 8:576, 21:1, 48:2213} (live 7168, deficit 2560). + +The value comes from `ASSEMBLY.json` of the strict `verify.py` run on this package's literal owner map. + +`SPEC.expected.owners_per_call` (716 = 2·112 + 492) and `SPEC.expected.entering_helper_roles` (16356) hold the audited values of the strict run. B3 carried 728 and 17712 for them. `verify.py` reads neither key. + +### Verification + +Fetch the pinned sources at their commits, as for complex-571-cold14-b3, plus PR531 (`research/direct-delivery504-global`, on main at `e07a8a3f9f79c22113398a0c5dbbc7601f489b3e`). Then run: + +```sh +python3 -B research/complex-571-cold14-k492/verify.py --work /tmp/complex-571-cold14-k492 \ + --source multicold=../pr568/research/complex-multicold \ + --source structural_gain=../pr571/research/structural-gain \ + --source larger_gain=../pr569/research/larger-gain \ + --source joint_prefix=../pr575/research/complex-joint-prefix \ + --source frame_coalescing=../pr583/research/kernel-frame-coalescing \ + --source direct_delivery=research/direct-delivery504-global +# kappa 0.00163542231500688 +``` + +`verify.py` performs these steps in order: +1. Replays PR558. +2. Runs the K-triangle constructor and its controls. +3. Rebuilds the 504-helper shadow chains. +4. Rebuilds each 492-helper provider word through its typed steps (each step's input and output content hash pinned). +5. Localizes each provider word with the generalised native chain and all phase edges. +6. Runs binding, the physical owner audit with its mutation controls, a fresh finite invoice, both exact moment engines, the assembly controls, the phase-timing controls and the generated-identity controls. + +Standard library only; assertions are required (no `-O`). The result is conditional on the inherited assumptions listed in NOTICE.md. + +### Construction and history + +The README of complex-571-cold14-b3 follows unchanged. + +# complex-571-cold14-b3: conditional κ 0.001635183729255778 + +### Definition + +The witness `cold14` is the PR558 geometry (112 data columns, h = 9, 504 helpers, 8 centres, 9 stages × 8 replicas = 72 calls) served by 2 provider words, each a pinned base word followed by typed build steps: **jp8** (60 calls) = the frozen PR558 promoted word → `cold_kernel` (PR568 `data/EIGHT-COLD.json`) → `multicut` (PR568 `data/EIGHT-MULTICOLD.json`) → `frozen558_scalar_audits` (inherited static44 and rank-five audits; word unchanged) → `joint_prefix` (PR575, variant `eightcold`) → `hyperplane_end` (46 helpers end at a hyperplane U instead of FULL) → `cold_end` (28 cold helpers end at a dim-4 frame U instead of FULL, after a 550-gate rank-0 premix at the head of A, 104 lower-frame cleanup gates and an exact refactored cleanup); **atm3** (12 calls) = PR571's `frontier-composition/combined-prefix-word/FULL-WORD.json.gz` → `promote` (40 entrance promotions, PR569's constructor) → `greedy_kernels` (12 multi-cut cold kernels, PR568's constructor) → `frame_coalesce` (6 frame coalescences, PR583's constructor) → `gate_move_coalesce` (2 coalescences, each after moving an addition past commuting additions; 2 moves) → `hyperplane_end` (46 helpers end at a hyperplane U instead of FULL) → `cold_end` (28 cold helpers end at a dim-4 frame U instead of FULL, after a 550-gate rank-0 premix at the head of A, 104 lower-frame cleanup gates and an exact refactored cleanup). Each step runs a pinned, unchanged constructor plus its paired omission or negative-control audit; a hyperplane-ended helper starts at its entrance frame E, ends at the hyperplane U, and pays residual width |U| − |E|; a cold-ended helper starts cold (E = ∅) and ends at its low-dimensional frame U, so it pays |U|; every other helper ends at FULL, so its width stays h − |E|. The dispatch (which provider serves each (stage, replica) call), the asynchronous call order and the literal owner map are `data/PLAN.json` (`provider_calls`, `order`) and `data/OWNERS.json.gz`, at the free dispatch jp8 ×60, atm3 ×12 (per-time argmax of the aggregate free-dispatch hosting LP over {ck, atm3, jp8}; ck is never selected); the owner map is an exact per-time-Hall exact-window MIP solution (RINS around the exact-window LP vertex; 240 s time limit, relative gap 1.69e-7) (see `data/cand.json`), and PLAN is the window MIP's PLAN with the provider registry re-derived from the admitted provider locals and `profile`/`assignment_sha256` recomputed from the map (ColdOwner mkplan.py); the resulting paid profile is {1:181848, 2:24770, 3:31778, 4:13728, 5:5040, 6:1008, 7:2, 8:576, 48:2150} with live 7168, physical 7682 and deficit 2560, giving κ = 817591864627889/500000000000000000 = 0.001635183729255778 (conservative model 0.001635183726407116). + +### Files + +| file | role | +|---|---| +| `data/WITNESS.json` | **inputs only**: geometry, pinned sources, the provider build chains above, dispatch and call order, and PLAN/OWNERS/recipes by SHA-256 | +| `data/EXPECTED.json` | **expected values only**, all derived by recomputation (`spec.py generate`): per-step word hashes and control counts, per-provider artifacts, programs and profiles, global profile and counts, κ. Bound to WITNESS.json by hash | +| `data/PLAN.json`, `data/OWNERS.json.gz` | dispatch, call order and literal owner map (inputs, pinned by WITNESS.json) | +| `data/recipes/` | the package's own step recipes (inputs, pinned by WITNESS.json); `data/recipes/ck-step0-greedy_kernels.json`, `data/recipes/ck-step1-frame_coalesce.json`, `data/recipes/ck-step2-gate_move_coalesce.json`, `data/recipes/ck-step3-hyperplane_end.json`, `data/recipes/ck-step4-cold_end.json.gz` is used only by `data/cand.json` (a menu provider the owner solve did not dispatch), not by the witness | +| `data/cand.json` | the search candidate (schema candidate/1), an input of the search side: the provider chains (PR604's, with ColdBeyond's second-cold-end cold_end recipes), the dispatch rule and the PLAN rule, and the owner search (start map `owners.warm_owners`, solver settings, LP pattern inputs, objective and the solve result), with package-relative and `NAME:` source references. The verifiers do not read it | +| `PROOF-COMMUTING-PREFIX.md` | proof note for the construction (documentation; no verifier reads it) | +| `PROOF-NOTE.md` | proof note for the construction (documentation; no verifier reads it) | +| `data/search/WARM-OWNERS.json.gz` | search input named by `data/cand.json` (`owners.warm_owners`): the E1free map (`data/OWNERS.json.gz` of research/complex-571-cold14-e1, byte for byte), used only to seed the aggregate LP's patterns. The shipped `data/OWNERS.json.gz` is the search's result; the verifiers do not read this file | +| `data/search/DISPATCH.json` | search input named by `data/cand.json` (`owners.search_inputs`): the dispatch {time: provider} = per-time argmax of the aggregate LP selections; the verifiers do not read this file | +| `data/search/LP-PATTERNS-AGG.json` | search input named by `data/cand.json` (`owners.search_inputs`): aggregate free-dispatch LP relaxation over {ck, atm3, jp8} (crossover, tight 3), pattern-seeded from the E1free map; the verifiers do not read this file | +| `data/search/LP-PATTERNS-EX.json` | search input named by `data/cand.json` (`owners.search_inputs`): exact-window LP relaxation (crossover) at that dispatch over the base patterns plus aggregate-LP patterns with weight >= 0.01; the verifiers do not read this file | +| `data/search/TEMPLATE-PLAN.json` | search input named by `data/cand.json` (`owners.search_inputs`): the PLAN of ColdBeyond's working package (PR604's dispatch ck ×44, atm3 ×22, jp8 ×6), whose windows/order/registry template the nominator reuses; the verifiers do not read this file | +| `data/search/WARM-PLAN.json` | search input named by `data/cand.json` (`owners.search_inputs`): the E1free PLAN matching WARM-OWNERS.json.gz (pattern seeding of the aggregate LP); the verifiers do not read this file | +| `data/SPEC.json`, `verify.py`, `verify.sh`, `code/` | the combined spec and package verifier (PR604's verifier and code, byte for byte); they verify the same record | + +`data/PLAN.json` carries `"status": "LITERAL_OWNER_NOMINATION_PENDING_ADMISSION"`. That label was written by the owner nominator before admission and is kept unchanged because WITNESS.json pins PLAN by hash; admission is what the verifiers below establish, and the label carries no meaning for them. + +`SPEC.expected.entering_helper_roles` corrected from PR604's stale 16344 to the audited 17712 (audit_allcold.py, as pinned in EXPECTED.json); PR604's verify.py does not read this key. + +### Verification + +The pinned sources are not merged; fetch their pinned commits first: + +```sh +git fetch origin pull/568/head:pr568 pull/571/head:pr571 pull/569/head:pr569 pull/575/head:pr575 pull/583/head:pr583 +git worktree add --detach ../pr568 71c99ac935a33bb7b59a1b4a7af8725a939b0b90 +git worktree add --detach ../pr571 b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3 +git worktree add --detach ../pr569 897213a855b7fb8a1b8b0e552a2f5c42e6c1b326 +git worktree add --detach ../pr575 eac6f7e378ab622dac50a2fd4b7ef6eab014de44 +git worktree add --detach ../pr583 89be768f0157f5a3d8e4db69cf1748768605eac9 +``` + +Generic verifier (`research/witness-spec-tools`, PR587 with the `frame_coalesce`, `gate_move_coalesce`, `hyperplane_end` and `cold_end` step types; its `code/build_hpe.py`, `code/hpe_controls_atc.py`, `code/build_cold_end.py`, `code/cold_end_controls.py`, `code/hpe_audit_and_transport.py` and `code/hpe_*_local.py` must be byte-identical to this package's `code/` copies, which define the hyperplane-end and cold-end constructors, their controls and the generalised native chain). It builds everything from `data/WITNESS.json` and only compares against `data/EXPECTED.json`: + +```sh +T=research/witness-spec-tools +python3 $T/spec.py check --package research/complex-571-cold14-b3 \ + --source multicold=../pr568/research/complex-multicold \ + --source structural_gain=../pr571/research/structural-gain \ + --source larger_gain=../pr569/research/larger-gain \ + --source joint_prefix=../pr575/research/complex-joint-prefix \ + --source frame_coalescing=../pr583/research/kernel-frame-coalescing +python3 $T/verify.py --package research/complex-571-cold14-b3 --work /tmp/complex-571-cold14-b3 \ + --source multicold=../pr568/research/complex-multicold \ + --source structural_gain=../pr571/research/structural-gain \ + --source larger_gain=../pr569/research/larger-gain \ + --source joint_prefix=../pr575/research/complex-joint-prefix \ + --source frame_coalescing=../pr583/research/kernel-frame-coalescing +# kappa 0.001635183729255778 +``` + +`verify.py` checks the package MANIFEST and every source, PLAN, OWNERS and recipe pin; replays PR558; rebuilds each provider word through its build chain (each step's input and output content hash pinned, 12 steps); localizes each word (hyperplane- and cold-ended words through the generalised native chain, with `0:U` wrappers for cold ends); then runs binding, the physical owner audit with 23 controller mutants, a fresh finite invoice, both exact moment engines, 114 assembly controls, the phase-timing controls and the generated-identity controls. + +The original package verifier gives the same result from `data/SPEC.json`: + +```sh +python3 -B research/complex-571-cold14-b3/verify.py --work /tmp/complex-571-cold14-b3-spec \ + --source multicold=../pr568/research/complex-multicold \ + --source structural_gain=../pr571/research/structural-gain \ + --source larger_gain=../pr569/research/larger-gain \ + --source joint_prefix=../pr575/research/complex-joint-prefix \ + --source frame_coalescing=../pr583/research/kernel-frame-coalescing +``` + +Both use only the Python standard library and require assertions (no `-O`). The result is conditional on the inherited assumptions listed in NOTICE.md. + +### Construction and history (the package README as committed) + +This package is PR604's `complex-571-cold14` (DreamingOfClouds) extended by ColdBeyond's second cold low-frame end per factory block (S b.9 at U_b, on top of PR604's S b.10 end) and ColdSupply's E1 entering pair (as in PR615), at a free dispatch (jp8 ×60, atm3 ×12; ck is on the menu but not dispatched) with an exact per-time-Hall owner map from an exact-window MIP. The `cold_end` step's allowlist gains two A-gate primitives (frame-[] target writes from cold helpers and forward absorptions of dead ports at their current frame), in `code/build_cold_end.py` and independently in `verify.py`; see `PROOF-NOTE.md`. `code/cold_end_controls.py` and `code/hpe_audit_and_transport.py` carry the E1 review fixes plus the new controls. The rest of this README is PR604's, with paths and Result numbers updated; its construction sections describe PR604's single cold end per block. + +**Build on this at your own risk.** DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. This package awaits independent review. + +### Result + +κ = **0.001635183729255778** (conservative model 0.001635183726407116). That is **+1.300% over PR601** (0.001614202339036103) on dispatch jp8 ×60, atm3 ×12. The value comes from `ASSEMBLY.json` of the strict `verify.py` run on this package's literal owner map. The paid profile is {1:181848, 2:24770, 3:31778, 4:13728, 5:5040, 6:1008, 7:2, 8:576, 48:2150} (live 7168, deficit 2560). + +The complex side binds: + +| quantity | value | +|---|---| +| native complex lower bound | 0.001637861934441745021019 | +| bit supplier value (PR543) | 0.0016538 (`bit_lower` 0.001653826988146798944268) | +| κ with the bit cap | 0.001635183729255778 | +| κ without the bit cap | 0.001635183729255778 | + +The bit value is above the complex bound, so it does not bind, and κ is the same with or without the cap. + +### What changes relative to PR601 + +PR601 (jeremykothe2) dispatches three provider words: **ck**, **atm3** and **jp8**. In each word, 46 entering helpers per call end at a hyperplane. The mechanism comes from PR591, PR592 and PR601. The Lean side is Lemma A with an arbitrary terminal frame (PR593) and multi-gate tails (PR599). + +This package appends one typed build step, `cold_end`, to each of the three chains, after `hyperplane_end`. In every call, 14 **cold** factory-scratch helpers end at a **4-dimensional frame U_b** instead of FULL, so their residual width drops from 9 to 4. These helpers are `S b.10`, one per factory block b: registers 234, 250, …, 442. The step has three parts. + +1. **Premix.** 142 rank-0 gates at frame `[]` sit at the head of section A. For each block b, the premix swaps the dirt of `S b.0` and `S b.10`. It then fans the candidate's initial value out into `S b.1 … S b.7` with ±1 coefficients. The premix runs after the entry adapters and paid wrappers, so every gate on a cold-ended helper follows its pre-wrapper R_{0,U}^-1. The compensation reads no cold-ended helper. +2. **Lower-frame cleanup.** For each candidate h, four multi-gate tail gates run right after B at frame U_b: + - `h += −½·P_a` + - `h += P_b` + - `P_c += h` + - `P_d += h` + + Here P_a … P_d are data ports whose end-of-B frames lie in U_b. After these gates, h's row and column of the state are unit vectors. The 46 inherited hyperplane-end gates follow unchanged. +3. **Exact FULL remainder.** A dyadic Gauss–Jordan refactorisation of the rest of the inverse replaces the literal reversed-inverse cleanup. It touches no helper that ends below FULL. + +**Why the premix makes this possible.** A helper h can end at a frame U only if two things hold at the end of B, under every monotone common-frame cleanup: +- the row of h in the inverse state map is supported on registers whose frames lie in U; +- the column of h (every register carrying h's initial dirt) is supported on registers whose frames lie in U. + +The premix spreads each candidate's initial dirt over `S b.0 … S b.7`. That collapses its dirt column to three low-frame registers, which is what makes the dim-4 frame reachable. + +Effect per call and per provider: +- the paid local profile changes by {1:+28, 5:+14, 6:−28}; +- 14 helpers go from width 9 to width 4. + +The dispatch and the literal owner map are re-solved for the new widths (`data/PLAN.json`, `data/OWNERS.json.gz`). They come from an annealing search started from PR601's map (relocate, swap, ejection-chain, bin-evacuation and provider-flip moves), followed by an exact owner model that is warm-started from the annealed map and restricted to the patterns of that map and of the LP optimum. The exact model holds one helper per port per call, and its solution is expanded literally by bipartite edge colouring (Kőnig). Every inherited window, family and capacity constraint is kept, and the package's verifier re-admits the map independently. + +The approach borrows from the uncomputation literature: Bennett 1989; Gidney 2015 (borrowed dirty ancillas); Häner–Roetteler–Svore 2017. + +### Why the cold ends are legitimate + +**Labels and realisation.** PR599's `hpe_labels_multi` / `hpe_word_multi` (Lean) cover: +- any number of tail gates per helper, as target or partner; +- interleaved helpers; +- any terminal frame; +- an unrestricted entrance, so the cold case E = ⊥ is included. + +`exact_cold` reduces (N) for (⊥, U) to a monomial factorisation of T_U, which is how `canonical_frame` defines T_U. + +**(N) for every (0, U_b) pair.** This is checked exactly here. `hpe_adapters_local.py` verifies L^-1 T_U R^-1 = C_[4] ⊗ I, global phase included, for all 14 dim-4 pairs. It rejects these wrapper mutants: +- identity pre or post wrapper; +- no wrappers; +- FULL decode; +- width 9; +- wrong U; +- wrong phase. + +PR599's `cold_hyperplane_width` lemma is the dim-8 case. Here the width |U| − |E| = 4 − 0 is the |final| − |start| rule that PR591's verifier already applies at every global site. + +**The refactored cleanup is not trusted.** `hpe_audit_and_transport.py` accepts a non-literal cleanup only when the word carries `refactored_cleanup`. Such a cleanup must: +- touch only non-target registers; +- use only dyadic additions and signed binary scales; +- make the arbitrary-dirt endpoint replay of the full reordered program exact in both orientations. + +The transport also checks the row and column cone conditions above for every helper that ends below FULL. + +**Wrapper order.** Two independent checks enforce it: +- The transport rejects any zero-frame precondition or compensation gate that touches a cold-ended helper. +- The event-level replay (`hpe_audit_local.py`) requires every scalar on a wrapped helper to lie between that helper's pre and post residual adapters. A negative control that hoists a premix gate in front of the pre-wrapper must be rejected. + +### Verifier changes (inert for words without cold ends) + +- `code/hpe_audit_and_transport.py`: + - cold helpers may end at a proper subframe U (here dim 4) with `0:U` wrappers; + - the row/column cone pre-check; + - the refactored-cleanup switch; + - the zero-frame wrapper-order assertion. +- `code/hpe_emit_local.py`, `hpe_audit_local.py`, `hpe_adapters_local.py`: + - `0:U` wrappers for cold low-frame ends; + - the event-level wrapper-order check; + - 7 event-level and 7–8 recipe-level cold mutants. +- `code/audit_allcold.py`, `invoice_allcold.py`, `assemble.py`: a cold helper may end below FULL with `0:U` wrappers, and these count as wrappers. +- New step `cold_end`: + - `code/build_cold_end.py` splices the recipe data and recomputes the profile and widths from the frame chains; + - `code/cold_end_controls.py` holds 14 raw-word mutants that must be rejected, including a premix moved into the precondition. +- `code/witness.py` adds `WITNESS_RECORD`, used for discovery bookkeeping only. + +### Future optimization (results and open headroom) + +All LP figures below are first-order bounds. They come from the aggregate hosting LP (the whole-owner model on PR601's windows, objective Σ r·ln(73/r)), calibrated against exact moment-engine prices. On PR601's own dispatch and widths, the LP lies within 0.005% of PR601's literal map. + +| quantity | value | +|---|---| +| LP ceiling, fixed dispatch (PR601's ck 45 / atm3 21 / jp8 6, all cold) | ≈ +0.49% | +| LP ceiling, free dispatch over {ck, atm3, jp8} cold | ≈ +0.71% | +| this package's literal map (dispatch jp8 ×60, atm3 ×12) | +1.300% | +| remaining owner-map headroom on this dispatch (exact model's bound = LP) | ≈ 0.06 pt | + +- **Free dispatch is jp8-heavy.** The LP puts about 70 calls on jp8 and about 2 on atm3. The LP's idle remainder is pure rank-48 idle children, whereas the literal map still leaves some rank-16 and rank-32 idle children. +- **What limits jp8.** Neither the time windows nor time-refinability bind at the LP level: adding per-pattern, one-helper-per-port-per-call constraints leaves the LP optimum unchanged. The gap to the jp8-heavy ceiling is integrality and search. The first integer aggregate optimum was not refinable per port, and the literal maps found so far for jp8-heavy dispatches are worse than this package's dispatch. +- **Closing the gap.** The exact owner model used here (pattern-restricted, edge-colourable) closes about half of the fixed-dispatch gap; its bound equals the LP. The jp8-heavy dispatch needs the same integer model solved on that dispatch. +- **End dimension (first-order).** Raising a unit's end frame from dim 4 to dim d needs the last tail gate at that frame, which lifts one partner. This adds 2ψ(d−4) + ψ(9−d) − ψ(5) to the local cost per unit, where ψ(r) = r·ln(73/r). That is +6.8, +10.6, +13.0 and +14.1 for d = 5…8. The remaining hosting headroom is about 1–2 per unit, so d = 4 is the best end dimension for these units. +- **Necessary condition, for any cleanup factorisation.** A helper h can end at a frame U only if, at the end of B, the supports of its row in the inverse state map and of its dirt column both lie in Q_U, the registers whose end-of-B frames lie in U. The transport checks this condition for every low-frame end. Choosing which units satisfy it, through the premix, is the supply question. This package uses 14 units per word. Their optimality per word is not certified here. + +### Verification + +Fetch the pinned sources exactly as for PR601, then run: + +```sh +research/complex-571-cold14-b3/verify.sh /tmp/complex-571-cold14-b3 .. +# kappa 0.001635183729255778 +``` + +`verify.py` uses only the standard library and requires assertions. It runs these stages: + +1. It checks the MANIFEST and every source, PLAN, OWNERS and recipe pin. +2. It replays PR558. +3. It rebuilds the three provider words through their typed chains. That is 17 steps, each with pinned input and output content hashes and paired controls. +4. It localizes each word through the generalised native chain: + - exact scalar replay and the cone pre-check; + - both reflected ledgers; + - the independent local replay with its mutants; + - exact wrappers; + - all phase edges. +5. It runs binding and the physical owner audit with its controller mutants. +6. It runs a fresh finite invoice and both exact moment engines. +7. It runs the assembly controls, the phase-timing controls and the generated-identity controls. + +The result is conditional on the inherited assumptions listed in NOTICE.md. + +### Credits + +- **jeremykothe2**: + - PR601, PR600, PR596, PR592 and PR591: hyperplane-ended helpers, the HPE verifier, and the packages and owner maps this one starts from; + - PR593: Lean Lemma A with an arbitrary terminal frame. +- **icekylinx**: PR531 and PR535 (entrance and kernel machinery). +- **DreamingOfClouds**: + - PR509 and PR516 (the Lemma A / Lemma G Lean line); + - PR599 (multi-gate and cold hyperplane-end Lean); + - PR484. +- The pinned PR568, PR569, PR571, PR575 and PR583 packages and their authors, as listed in NOTICE.md. + +DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. diff --git a/research/complex-571-cold14-k492/code/assemble.py b/research/complex-571-cold14-k492/code/assemble.py new file mode 100644 index 0000000000..d1674e657f --- /dev/null +++ b/research/complex-571-cold14-k492/code/assemble.py @@ -0,0 +1,216 @@ +"""Hardened 63 width-seven (#571 prefix word) and 9 plain eight-cold (#568 E8) provider assembly with the native exact-complex moment. + +Prepared with OpenAI Codex assistance. The rational engines and outer +constraints are retained from PR547/PR548 and their preserved ancestry. +The bit operator is the cited unchanged PR543 supplier. The complex owner +and invoice inputs must be freshly emitted by the packaged physical replay. +All conservative admission guards and conservative moment/outer witnesses run +before the PR559 native-complex correction. The bit surcharge is retained. +""" +from pathlib import Path +from fractions import Fraction as Q +from decimal import Decimal, localcontext +import argparse,json,hashlib,importlib.util,os,sys +from collections import Counter +assert __debug__, 'Assertions required' +P=Path(sys.argv[1] if __name__=='__main__' else os.environ['GAIN_PR564_SOURCE']).resolve() +read=lambda p:json.loads(p.read_text()) +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +hash_ok=lambda x:isinstance(x,str) and len(x)==64 and all(t in '0123456789abcdef'for t in x) +digest=lambda x:hashlib.sha256(json.dumps(x,separators=(',',':')).encode()).hexdigest() +def load(n): + s=importlib.util.spec_from_file_location(n,P/'engines'/(n+'.py'));m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +M,B,A=[load(n)for n in ('moment','base_two_moment','outer')] +def dec(x): + with localcontext()as ctx:ctx.prec=70;return str(Decimal(x.numerator)/Decimal(x.denominator)) +from witness import DISPATCH,CALL_ORDER,COUNTS,PIDS,X,DISCOVER,pin,SPOT + + +def assemble(owner,invoice,owner_sha,invoice_sha): + # These are admission receipts, not optional collections of successful rows. + # Require both orientations and every finite check before pricing anything. + assert owner['status']=='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE' + assert invoice['status']=='PASS_INDEPENDENT_MIXED_ASYNC_SCALAR_PREFIX_AND_FINITE_INVOICE' + assert all(hash_ok(x)for x in (owner_sha,invoice_sha,owner['template_sha256'],owner['controller_audit_sha256'],invoice['parent_template_sha256'])) + checks={'local_primitive_bound','logical','router','literal','mass','precision','tape','row','halving'} + assert set(invoice['strict_checks'])==checks + assert all(invoice['strict_checks'][name] is True for name in checks) + assert set(invoice['providers'])==set(PIDS) + assert invoice['provider_counts']==COUNTS + assert owner['all_live_owners_per_call_distinct'] is True + # R (helpers per provider word) is read from the invoice and must be shared by every provider; n=2v+R. + R=invoice['helpers'];assert type(R) is int and R>0 and all(p['helpers']==R for p in invoice['providers'].values()) + assert owner['owners_per_call']==2*112+R and owner['actual_helper_owner_charts']==owner['hosted_residuals']==72*R==pin('expected.hosted_residuals',owner['hosted_residuals']) + pin('expected.rank_mass',owner['rank_mass']) + pin('expected.actual_73column_sigmas',owner['actual_73column_sigmas']);pin('expected.cross_replica_helper_roles',owner['cross_replica_helper_roles']) + pin('expected.idle_remainders',owner['explicit_idle_remainder_children']) + assert invoice['complete_invocation_sweeps']==invoice['bridge_sweeps']==72 + assert invoice['live']==owner['live'] and invoice['physical']==owner['physical'] + assert invoice['centres']==8 + assert invoice['physical_stock_identity']==dict(data_and_owner_families=7168,local_helpers=R,private_centres=8,coefficient_work=2) + assert sum(invoice['physical_stock_identity'].values())==invoice['physical'] + assert invoice['controller_audit_sha256']==owner['controller_audit_sha256'] + for pid,p in invoice['providers'].items(): + assert set(p['local'])=={'forward','backward'} + assert p['helpers']==R and p['centres']==8 and p['n']==2*112+R and p['v']==112 and p['h']==9 + K='providers.'+pid+'.';pin(K+'entering',p['entering_helpers']);pin(K+'entrance',p['entrance_rank']) + pin(K+'inventory',p['width_inventory']) + assert all(type(w) is int and 0=0 for n in idle.values()) + idle=+idle;assert sum(idle.values())==owner['explicit_idle_remainder_children'] + pin('expected.idle_remainder_profile',{str(r):n for r,n in sorted(idle.items())}) + paid.update(idle) + assert dict(paid)=={int(r):n for r,n in owner['paid_profile'].items()} + assert invoice['compiler']==64*74**3 + assert invoice['local_adapters']==max(p['local_adapters']for p in invoice['providers'].values()) + assert invoice['local_primitive_bound']==max(p['local_primitive_bound']for p in invoice['providers'].values()) + # Recount the retained dedicated-bank envelope independently. Its geometry + # stays fixed, while every local primitive and wrapper comes from the actual + # selected provider/orientation sums above. + parent_live,parent_physical,parent_idle=11704,12218,16128 + parent_banks,rem=divmod(parent_live-2*112*4*8,9);assert rem==0 and parent_physical==parent_live+parent_banks+8+2 # parent R0=504 dedicated helpers per stage bank + assert owner['source_idle_children_charged']==parent_idle + bridges,shifts=2*112*72,4*112*8;moves=2*shifts + nonlocal_items=(4*112*8*9+2*112*8*9+2*72*R+parent_idle+9*parent_banks+bridges+shifts+moves+parent_live+parent_physical+invoice['wrapper_elementary_factors_charged']) + outside=8*nonlocal_items+64*73 + pervertex=(invoice['selected_real_component_primitives']+bridges+shifts+moves+parent_live+(72*invoice['local_adapters']+outside)*invoice['compiler']+64*parent_physical) + rebased=pervertex+65*(invoice['physical']-parent_physical)+(invoice['live']-parent_live) + assert invoice['unhosted_pervertex']==pervertex and invoice['hosted_rebased_pervertex']==rebased + used=max(pervertex,rebased) + prior=invoice['retained_prior_overcharge'] + if prior is not None: + assert hash_ok(prior['sha256']) and type(prior['previous_pervertex_allowance']) is int and prior['previous_pervertex_allowance']>0 + assert prior['added_complete_new_pervertex']==pervertex + assert prior['policy']=='Retain old allowance and add entire fresh mixed recount.' + used=max(used,prior['previous_pervertex_allowance']+pervertex) + assert invoice['conservative_pervertex_used']==used + finite=invoice['finite'] + assert 02*48*48) + assert actual_checks==invoice['strict_checks'] and all(actual_checks.values()) + bit_path=P/'inputs/PR543-EXPECTED.json';bit_data=bit_path.read_bytes() + assert hashlib.sha1(b'blob '+str(len(bit_data)).encode()+b'\0'+bit_data).hexdigest()=='b61d859826246e0c3dabbe096e57ad7015eadfd5' + bit=json.loads(bit_data)['nine'] + c=Q(bit['bit_lower']) + H={int(r):n for r,n in owner['paid_profile'].items()};pin('expected.global_profile',owner['paid_profile']) + # Claimed lower endpoints come from the spec; discovery derives them with the same certified moment engine. + # Either way they are verified below (accepted at b, rejected at b+1e-24). + if DISCOVER:b=Q(M.certify(H,73,owner['live'],False)['lower']);conservative_b=Q(M.certify(H,73,owner['live'],True)['lower']) + else:b=Q(X['complex_lower']);conservative_b=Q(X['conservative_complex_lower']) + assert owner['template_sha256']==invoice['template_sha256'] and owner_sha==invoice['owner_audit_sha256'] + pin('expected.live',owner['live']);pin('expected.physical',owner['physical']);assert owner['deficit']==2560 + assert owner['banked_residuals']==0 + def check_moment(side,h,m,W,lower,deficit,bad): + assert m*W-sum(r*n for r,n in h.items())==deficit and m*m>2*max(h)**2 + rows=[] + for z,accept in [(lower,True),(lower+Q(1,10**24),False)]: + l,u=M.moment(h,m,W,z,bad);ll,uu=B.moment(m,W,list(h.items()),z) + if bad: + fl,fu=B.moment(m,W,[(1,32*m*m*sum(h.values()))],z);ll+=fl/10**16;uu+=fu/10**16 + assert (u<1 and uu<1)if accept else(l>1 and ll>1) + rows.append(dict(side=side,surcharge=bad,endpoint=str(z),accept=accept,mercator=[str(l-1),str(u-1)],base_two=[str(ll-1),str(uu-1)])) + return rows + bitH={int(r):n for r,n in bit['profile'].items()} + bit_moments=check_moment('bit',bitH,64,bit['bit']['live'],c,9984,True) + conservative_moments=check_moment('conservative_complex',H,73,owner['live'],conservative_b,2560,True) + assert bit['bit']['two_level_coefficient_bits']0 + ceil=lambda x:-(-x.numerator//x.denominator);cut=max(ceil(36/gap**2),ceil(2*(4+512)/gap));assert cut*gap**2>=36 and cut*gap>=2*(4+512) + cuts.append(dict(exponent=str(a),gap=str(gap),cutoff_log2=str(cut)));chain.append(a) + q=chain[-1]*(1-2*eta);margin=(1-eta)*q/(1+q);ticks=margin*10**18;k=Q((ticks.numerator-1)//ticks.denominator,10**18) + bridge={'semantic':{'C0':{'base':2,'exponent':210000},'strict_literal_gap':1},'rows':{'degree_gap':Q(10**6)-Q(51*20161,25)}} + outer=A.assembly(chain[-1],bb,bridge,k,eta=eta,beta=beta);assert len(outer['strict_constraints'])==47 and all(v>0 for v in outer['strict_constraints'].values()) + controls=[] + for name,kk,ee,be in [('next_grid',k+Q(1,10**18),eta,beta),('zero_eta',k,Q(0),beta),('zero_beta',k,eta,Q(0)),('unit_beta',k,eta,Q(1))]: + try:A.assembly(chain[-1],bb,bridge,kk,eta=ee,beta=be) + except AssertionError:controls.append(name) + else:raise AssertionError(name) + return k,cuts,outer,controls + conservative_k,conservative_cuts,conservative_outer,conservative_controls=outer_witness(conservative_b) + pin('expected.conservative_kappa_decimal',dec(conservative_k)) + # Only after every conservative supplier/admission/outer check succeeds is + # the reviewed native exact-complex recurrence selected. Bit charge stays. + native_moments=check_moment('complex',H,73,owner['live'],b,2560,False) + k,cuts,outer,controls=outer_witness(b) + pin('expected.kappa_decimal',dec(k)) + assert M.moment(H,73,owner['live'],b,True)[0]>1 + assert M.moment(bitH,64,bit['bit']['live'],c+Q(1,10**24),False)[1]<1 + model_controls=['native_complex_endpoint_rejected_with_old_surcharge','omitting_bit_surcharge_would_fail_next_endpoint_rejection'] + moments=bit_moments+native_moments + input_hashes={'owner_audit':owner_sha,'fresh_invoice':invoice_sha,'inputs/PR543-EXPECTED.json':sha(bit_path)} + input_hashes.update({'engines/'+name+'.py':sha(P/'engines'/(name+'.py'))for name in ('moment','base_two_moment','outer')}) + return dict(status='PASS_FRESH_MIXED_048_ALLCOLD_NATIVE_EXACT_ASSEMBLY',kappa=str(k),kappa_decimal=dec(k),complex_lower=str(b),complex_decimal=dec(b),bit_lower=str(c),bit_decimal=dec(c),binding='complex',gain_over_pinned569_percent=dec(100*(k/Q(X['gain_baseline_kappa'])-1)),complex_profile=H,provider_counts=invoice['provider_counts'],surcharge_model={'complex':False,'bit':True},conservative_complex_lower=str(conservative_b),conservative_complex_decimal=dec(conservative_b),conservative_kappa=str(conservative_k),conservative_kappa_decimal=dec(conservative_k),conservative_moments=conservative_moments,conservative_bootstrap=conservative_cuts,conservative_outer={n:str(v)for n,v in conservative_outer['strict_constraints'].items()},conservative_controls=conservative_controls,model_controls=model_controls,native_correction_gain=dec(k-conservative_k),template_sha256=owner['template_sha256'],input_sha256=input_hashes,bit_supplier=dict(pr=543,repository='eumemic/integer-mult-bounds',commit='2065fe4f72a914d907f1046603f5a36f17018535',path='research/e8-bit-r420/EXPECTED.json',git_blob_sha1='b61d859826246e0c3dabbe096e57ad7015eadfd5',replay_scope='Cited unchanged supplier; this assembly reprices its full profile and does not rebuild its bit circuit.'),moments=moments,bootstrap=cuts,outer={n:str(v)for n,v in outer['strict_constraints'].items()},controls=controls,scope='Conditional native exact-complex witness after complete conservative admission, moment and outer checks; PR559 exact-cover recurrence correction only, bit bad-residue surcharge and H1-H5 retained. The frozen PR582 plain-joint-prefix, added-kernel and entrance-promoted provider dispatch with the new frame coalescences composed with cited unchanged PR543 bit supplier. All-size compiler, common-label/mutable-source realization, whole-call hosting, precision/tape and analytic transfer remain assumptions. No unconditional theorem or full Lean certification.') +if __name__=='__main__': + import sys + package,C,out=map(Path,sys.argv[1:4]);assert package.resolve()==P and not out.exists() + owner_path=C/'audit/OWNERS-AND-PROFILE.json';invoice_path=C/'audit/PREFIX-AND-INVOICE.json' + owner,invoice=read(owner_path),read(invoice_path) + assert owner['template_sha256']==read(C/'hosted/HOSTED.json')['template_sha256'] + r=assemble(owner,invoice,sha(owner_path),sha(invoice_path));out.write_text(json.dumps(r,indent=2)+'\n');print(r['status'],r['kappa_decimal']) diff --git a/research/complex-571-cold14-k492/code/assembly_controls.py b/research/complex-571-cold14-k492/code/assembly_controls.py new file mode 100644 index 0000000000..d3f0e8c03e --- /dev/null +++ b/research/complex-571-cold14-k492/code/assembly_controls.py @@ -0,0 +1,251 @@ +"""Independent admission controls for the N-provider native-complex assembly (per-provider controls). + +Prepared with OpenAI Codex assistance; Apache-2.0. Mutation receipts are +rebound to their new owner digest, so unrelated stale hashes cannot conceal +an incomplete width, provider, orientation, paid-profile or finite check. +The fresh physical replay remains a separate prerequisite. +""" +import argparse +import copy +import itertools +import math +import hashlib +import json +import os +from pathlib import Path +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * + +assert __debug__, 'Assertions required' +P = Path(__file__).resolve().parent +sha = lambda p: hashlib.sha256(p.read_bytes()).hexdigest() +digest = lambda x: hashlib.sha256(json.dumps(x, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + + +def verify(owner_path, invoice_path, source_package): + os.environ['GAIN_PR564_SOURCE'] = str(source_package.resolve()) + from assemble import assemble + owner = json.loads(owner_path.read_text()) + invoice = json.loads(invoice_path.read_text()) + baseline = assemble(owner, invoice, sha(owner_path), sha(invoice_path)) + + def empty_maps(o, i): + i['strict_checks'] = {} + i['providers'] = {} + + def understated_stock(o, i): + o['physical'] -= 1 + i['physical'] -= 1 + i['physical_stock_identity']['coefficient_work'] -= 1 + + def changed_profile(o, i): + o['paid_profile']['1'] += 2 + o['paid_profile']['2'] -= 1 + + def wrong_orientation(o, i): + c = next(c for c in i['selected_calls'] if c['stage'] == 0) + c['orientation'] = 'backward' + p = i['providers'][c['provider_id']] + z = p['local']['backward'] + c['program_sha256'] = p['program_hashes']['backward'] + for name in ('events', 'macros', 'real_component_primitives', + 'coefficient_work_primitive_count', 'pre_wrappers', 'post_wrappers'): + c[name] = z[name] + i['selected_real_component_primitives'] = sum(c['real_component_primitives'] for c in i['selected_calls']) + i['selected_coefficient_work_primitive_count'] = sum(c['coefficient_work_primitive_count'] for c in i['selected_calls']) + + def understated_prefix(o, i): + for p in i['providers'].values(): + for z in p['local'].values(): + z['prefix_bits'], z['prefix_l1'] = 1, '1' + i['global_prefix_bits'] = 1 + 37 + 72 + 72 + 4 + + def reordered_calls(o, i): + i['selected_calls'][0], i['selected_calls'][1] = i['selected_calls'][1], i['selected_calls'][0] + + def no_cold_wrappers(o, i): + for p in i['providers'].values(): + p['entering_helpers'] -= 4 + for z in p['local'].values():z['pre_wrappers'] = z['post_wrappers'] = p['entering_helpers'] + for c in i['selected_calls']: + c['entering_helpers'] = c['pre_wrappers'] = c['post_wrappers'] = i['providers'][c['provider_id']]['entering_helpers'] + i['wrapper_elementary_factors_charged'] = sum(2*c['pre_wrappers'] for c in i['selected_calls'])*i['factors_per_wrapper'] + + controls = [ + ('empty_certification_maps', empty_maps), + ('failed_invoice_status', lambda o, i: i.__setitem__('status', 'FAIL')), + ('nonboolean_precision_check', lambda o, i: i['strict_checks'].__setitem__('precision', 'true')), + ('wrong_owner_role_count', lambda o, i: o.__setitem__('actual_helper_owner_charts', o['actual_helper_owner_charts'] - 1)), + ('understated_physical_stock', understated_stock), + ('changed_profile_same_rank_mass', changed_profile), + ('insufficient_finite_C0', lambda o, i: i['finite'].__setitem__('required_C0_bits', 210001)), + ('missing_finite_check', lambda o, i: i['strict_checks'].pop('halving')), + ('wrong_reflected_orientation_selfconsistent_totals', wrong_orientation), + ('missing_selected_call', lambda o, i: i['selected_calls'].pop()), + ('wrong_selected_primitive_sum', lambda o, i: i.__setitem__('selected_real_component_primitives', i['selected_real_component_primitives'] - 1)), + ('wrong_selected_coefficient_work_sum', lambda o, i: i.__setitem__('selected_coefficient_work_primitive_count', i['selected_coefficient_work_primitive_count'] - 1)), + ('unpaid_wrapper_factors', lambda o, i: i.__setitem__('wrapper_elementary_factors_charged', i['wrapper_elementary_factors_charged'] - 144)), + ('wrong_global_compiler', lambda o, i: i.__setitem__('compiler', 1)), + ('wrong_global_adapter_maximum', lambda o, i: i.__setitem__('local_adapters', 1)), + ('understated_exact_prefix_and_global_sum', understated_prefix), + ('wrong_global_prefix_sum', lambda o, i: i.__setitem__('global_prefix_bits', 224)), + ('wrong_row_prefix_reserve', lambda o, i: i.__setitem__('row_prefix_extra', 0)), + ('wrong_parent_geometry_charge', lambda o, i: i.__setitem__('unhosted_pervertex', 1)), + ('wrong_rebased_geometry_charge', lambda o, i: i.__setitem__('hosted_rebased_pervertex', 1)), + ('wrong_complete_pervertex_envelope', lambda o, i: i.__setitem__('conservative_pervertex_used', 1)), + ('wrong_prior_added_complete_invoice', lambda o, i: i['retained_prior_overcharge'].__setitem__('added_complete_new_pervertex', 1)), + ('wrong_finite_router_bits', lambda o, i: i['finite'].__setitem__('router_bits', 1)), + ('wrong_finite_literal_bits', lambda o, i: i['finite'].__setitem__('literal_bits', 1)), + ('wrong_finite_physical_stock_bits', lambda o, i: i['finite'].__setitem__('physical_stock_bits', 1)), + ('wrong_finite_row_coefficient', lambda o, i: i['finite'].__setitem__('physical_row_coefficient', 1)), + ('reordered_complete_calls', reordered_calls), + ('understated_explicit_idle_remainders', lambda o, i: o.__setitem__('explicit_idle_remainder_children', o['explicit_idle_remainder_children']-1)), + ('understated_actual_chart_types', lambda o, i: o.__setitem__('actual_73column_sigmas', o['actual_73column_sigmas']-1)), + ('wrong_cross_replica_role_count', lambda o, i: o.__setitem__('cross_replica_helper_roles', o['cross_replica_helper_roles']-1)), + ('old_no_cold_wrapper_counts_selfconsistent', no_cold_wrappers), + ] + + def resync(i, c): + p = i['providers'][c['provider_id']] + c['program_sha256'] = p['program_hashes'][c['orientation']] + c['entering_helpers'], c['entrance_rank'] = p['entering_helpers'], p['entrance_rank'] + for name in ('events','macros','real_component_primitives','coefficient_work_primitive_count','pre_wrappers','post_wrappers'): + c[name] = p['local'][c['orientation']][name] + + # Every provider gets the full per-provider control set, substituting a partner provider where needed. + for P in PIDS: + Qp = partner(P) + widths = invoice['providers'][P]['widths'] + + def forged_program_hash(o, i, P=P): + i['providers'][P]['program_hashes']['forward'] = '0' * 64 + for c in i['selected_calls']: + if c['provider_id'] == P: + c['program_sha256'] = '0' * 64 + + def wrong_selected_call(o, i, P=P): + c = next(c for c in i['selected_calls'] if c['provider_id'] == P) + d = next(d for d in i['selected_calls'] if d['provider_id'] != P and (d['stage'] - c['stage']) % 2 == 0) + c['stage'], d['stage'], c['replica'], d['replica'] = d['stage'], c['stage'], d['replica'], c['replica'] + + def stale_program(o, i, P=P, Qp=Qp): + p = i['providers'][P] + p['program_hashes'] = copy.deepcopy(i['providers'][Qp]['program_hashes']) + for c in i['selected_calls']: + if c['provider_id'] == P: + c['program_sha256'] = p['program_hashes'][c['orientation']] + + def stale_profile(o, i, P=P, Qp=Qp): + p = i['providers'][P] + p['paid_profile'] = copy.deepcopy(i['providers'][Qp]['paid_profile']) + p['children'] = sum(p['paid_profile'].values()) + + def moved(o, i, P=P): + a = next(c for c in i['selected_calls'] if c['provider_id'] == P) + b = next(c for c in i['selected_calls'] if c['provider_id'] != P and c['orientation'] == a['orientation']) + a['provider_id'], b['provider_id'] = b['provider_id'], a['provider_id'] + resync(i, a); resync(i, b) + + def compensating(o, i, P=P, Qp=Qp): + # Two dishonest profiles that cancel exactly in the dispatch-weighted aggregate. + g = math.gcd(COUNTS[P], COUNTS[Qp]); dp, dq = COUNTS[Qp] // g, COUNTS[P] // g + p, q = i['providers'][P], i['providers'][Qp] + p['paid_profile']['1'] += dp; q['paid_profile']['1'] -= dq + p['children'] += dp; q['children'] -= dq + + def forged_recipe(o, i, P=P): + name = 'CLIFFORD-RECIPES.json' + i['providers'][P]['artifacts'][name] = '0'*64 + o['source_artifacts']['providers/'+P+'/'+name] = '0'*64 + + def forged_phase(o, i, P=P): + i['providers'][P]['semantic_artifact_sha256']['CLIFFORD-REVIEW.json'] = '0'*64 + o['provider_phase_semantic_sha256'][P] = i['provider_phase_semantic_sha256'][P] = '0'*64 + + controls += [ + (P + ':missing_provider', lambda o, i, P=P: i['providers'].pop(P)), + (P + ':missing_backward_orientation', lambda o, i, P=P: i['providers'][P]['local'].pop('backward')), + (P + ':unpaid_scalar_primitive', lambda o, i, P=P: i['providers'][P]['local']['forward'].__setitem__('real_component_primitives', i['providers'][P]['local']['forward']['real_component_primitives'] - 1)), + (P + ':wrong_local_artifact_binding', lambda o, i, P=P: i['providers'][P]['artifacts'].__setitem__('LOCAL-PROGRAMS.json.gz', '0' * 64)), + (P + ':false_dirty_restoration', lambda o, i, P=P: i['providers'][P]['local']['backward'].__setitem__('all_dirty_helper_columns_restored', False)), + (P + ':wrong_declared_provider_count', lambda o, i, P=P: i['provider_counts'].__setitem__(P, i['provider_counts'][P] + 1)), + (P + ':wrong_local_compiler', lambda o, i, P=P: i['providers'][P].__setitem__('compiler', 1)), + (P + ':wrong_local_adapter_charge', lambda o, i, P=P: i['providers'][P].__setitem__('local_adapters', 1)), + (P + ':wrong_local_primitive_bound', lambda o, i, P=P: i['providers'][P].__setitem__('local_primitive_bound', 1)), + (P + ':forged_provider_and_call_program_hash', forged_program_hash), + (P + ':provider_at_wrong_call', wrong_selected_call), + (P + ':stale_partner_program_consistent_call_hashes', stale_program), + (P + ':stale_partner_profile_consistent_child_total', stale_profile), + (P + ':relocated_against_partner_same_counts', moved), + (P + ':compensating_false_profiles_with_' + Qp, compensating), + (P + ':synchronized_forged_source_recipe_hash', forged_recipe), + (P + ':synchronized_forged_phase_review_semantics', forged_phase), + ] + # Width order and inventory: swap the first helper of every pair of distinct widths (same inventory), + # and shift one unit between them (same total). + first = {} + for h, w in enumerate(widths): + first.setdefault(w, h) + for wa, wb in itertools.combinations(sorted(first), 2): + def swap(o, i, P=P, a=first[wa], b=first[wb]): + w = i['providers'][P]['widths']; w[a], w[b] = w[b], w[a] + def shift(o, i, P=P, a=first[wa], b=first[wb]): + w = i['providers'][P]['widths']; w[a] += 1; w[b] -= 1 + controls.append((P + ':width_order_swap_%d_%d' % (wa, wb), swap)) + controls.append((P + ':width_inventory_shift_%d_%d' % (wa, wb), shift)) + for h in SPOT: + def cold_swap(o, i, P=P, h=h): + w = i['providers'][P]['widths']; j = w.index(9); w[h], w[j] = w[j], w[h] + controls.append((P + ':cold_helper_width_swap_%d' % h, cold_swap)) + rejected = [] + accepted = [] + for name, mutate in controls: + o, i = copy.deepcopy(owner), copy.deepcopy(invoice) + mutate(o, i) + oh = digest(o) + i['owner_audit_sha256'] = oh + try: + assemble(o, i, oh, digest(i)) + except (AssertionError, KeyError): + rejected.append(name) + else: + # Discovery has no pinned values to reject spec-only mutations; the strict run must reject every control. + if not DISCOVER: + raise AssertionError('Invalid admission receipt accepted: ' + name) + accepted.append(name) + try: + assemble(owner, invoice, '0' * 64, sha(invoice_path)) + except AssertionError: + rejected.append('wrong_owner_receipt_hash') + else: + raise AssertionError('Wrong owner digest accepted') + pin('expected.assembly_controls_rejected', len(rejected)) + assert baseline['controls'] == ['next_grid', 'zero_eta', 'zero_beta', 'unit_beta'] + assert baseline['conservative_controls'] == baseline['controls'] + assert baseline['surcharge_model'] == {'complex': False, 'bit': True} + assert len(baseline['model_controls']) == 2 + return dict( + status='PASS_EXACT_MIXED_048_ALLCOLD_NATIVE_ASSEMBLY_ADMISSION_NEGATIVE_CONTROLS', + valid_receipt_kappa=baseline['kappa'], + input_sha256=baseline['input_sha256'], + assembler_sha256=sha(Path(__file__).resolve().parent / 'assemble.py'), + rejected_controls=rejected, + discovery_accepted_controls=accepted, + exact_outer_controls=baseline['controls'], + conservative_outer_controls=baseline['conservative_controls'], + recurrence_model_controls=baseline['model_controls'], + scope='Complete receipt schema; ordered widths and both reflected providers; exact program, work and paid-profile binding; independently recounted compiler, conservative envelope and finite inequalities. Does not replace fresh physical replay.', + ) + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--source-package', type=Path, required=True) + ap.add_argument('--owner', type=Path, required=True) + ap.add_argument('--invoice', type=Path, required=True) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + assert not a.out.exists() + result = verify(a.owner, a.invoice, a.source_package) + a.out.write_text(json.dumps(result, indent=2) + '\n') + print(result['status'], len(result['rejected_controls'])) diff --git a/research/complex-571-cold14-k492/code/audit_allcold.py b/research/complex-571-cold14-k492/code/audit_allcold.py new file mode 100644 index 0000000000..e29d90e89a --- /dev/null +++ b/research/complex-571-cold14-k492/code/audit_allcold.py @@ -0,0 +1,232 @@ +"""OpenAI Codex independent serialized ASYNCHRONOUS controller/spectator audit. +Imports no emitter, optimizer, expander, edge-coloring, or source hosting code. +CLI: BASE HOSTED REPORT [--mutation-controls] +Each provider is independently read from BASE/providers, never from a baseline width histogram. +OpenAI Codex two-provider width-seven extension; retains all inherited independent controller checks. +The exact 63 width-seven and 9 plain calls are frozen below. +""" +import sys,json,gzip,hashlib,copy +assert __debug__, 'Assertions must remain enabled' +from pathlib import Path +from collections import Counter,defaultdict +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +BASE,OUT,REPORT=map(lambda p:Path(p).resolve(),sys.argv[1:4]);read=lambda p:json.loads(gzip.decompress(p.read_bytes())if p.suffix=='.gz'else p.read_bytes()) +parent=read(BASE/'split-centres/GLOBAL-TEMPLATE.json.gz') +ph=read(BASE/'work/complex-nine-native/DATA-PHASES.json') +ct=read(OUT/'GLOBAL-TEMPLATE.json.gz');summary=read(OUT/'HOSTED.json') +sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest() +provider_ids=PIDS +providers={};registry={};phase_semantic_hashes={};artifact_semantic_hashes={} +required_artifacts={'work/complex-nine-native/DATA-PHASES.json'} +provider_files=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','RESIDUAL-ADAPTERS.json','CLIFFORD-RECIPES.json','CLIFFORD-REVIEW.json') +for pid in provider_ids: + p=BASE/'providers'/pid + c=read(p/'CANONICAL-WORD.json.gz');checks=read(p/'LOCAL-CHECKS.json') + programs=read(p/'LOCAL-PROGRAMS.json.gz');replay=read(p/'INDEPENDENT-LOCAL-REPLAY.json') + phase=read(p/'CLIFFORD-REVIEW.json');adapters=read(p/'RESIDUAL-ADAPTERS.json')['recipes'] + widths=[len(c['frames'][c['final'][2*c['v']+h]])-len(c['frames'][c['start'][2*c['v']+h]])for h in range(c['R'])] # HPE: residual width |final|-|start| + assert all(widths[h]==8 for h in SPOT);pin('providers.%s.inventory'%pid,{str(k):v for k,v in sorted(Counter(widths).items())}) + canonical_sha=sha(p/'CANONICAL-WORD.json.gz');programs_sha=sha(p/'LOCAL-PROGRAMS.json.gz') + assert replay['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + assert replay['canonical_word_sha256']==canonical_sha and replay['local_programs_sha256']==programs_sha + assert replay['v']==c['v'] and replay['helpers']==c['R'] + assert set(programs)==set(checks)==set(replay['local'])==set(replay['paid_profiles'])=={'forward','backward'} + for orientation,events in programs.items(): + ck=checks[orientation];rr=replay['local'][orientation] + assert hashlib.sha256(json.dumps(events,sort_keys=True,separators=(',',':')).encode()).hexdigest()==ck['sha256'] + assert ck['events']==len(events) and ck['all_columns']==2*c['v']+c['R'] + assert ck['private_centers_cleared'] and ck['private_coefficient_stream_cleared_after_each_macro'] + assert rr['all_exact_columns']==2*c['v']+c['R'] and rr['private_work_erased'] + literal=Counter(e[-1]for e in events if e[0]in('climb','center')) + assert dict(literal)=={int(r):n for r,n in ck['paid_profile'].items()}=={int(r):n for r,n in c['local_profile'].items()} + assert ck['paid_profile']==replay['paid_profiles'][orientation] + assert phase['canonical_word_sha256']==canonical_sha and phase['recipe_sha256']==sha(p/'CLIFFORD-RECIPES.json') + assert phase['all_child_equalities_include_global_phase'] + artifact_semantic_hashes[pid]=artifact_identities(p) + pin('providers.%s.artifact_semantic_sha256'%pid,artifact_semantic_hashes[pid]) + phase_semantic_hashes[pid]=artifact_semantic_hashes[pid]['CLIFFORD-REVIEW.json'] + for h,w in enumerate(widths): + assert 0>i)&1==0);a=q^(1<>i&1 else 0)for i in order]+[1<2*max(paid)**2 + return dict(profile=dict(sorted(paid.items())),mass=mass,hosted=HOSTED,entering=entering,cross_replica=cross,sigma_digest=digest.hexdigest(),sigmas=sigmas,idle_remainders=len(wanted),busy_family_checks=len(roles),invocations=72) + +r=audit(ct);raw=gzip.decompress((OUT/'GLOBAL-TEMPLATE.json.gz').read_bytes());assert hashlib.sha256(raw).hexdigest()==summary['template_sha256'];assert r['profile']=={int(k):v for k,v in summary['global_profile'].items()};assert r['sigmas']==read(OUT/'ACTUAL-SIGMAS.json.gz');assert r['sigma_digest']==summary['sigma_stream_sha256'] +assert all(hashlib.sha256((BASE/name).read_bytes()).hexdigest()==value for name,value in summary['source_artifacts'].items()) +controls=[] +def reject(name,mut): + if '--mutation-controls' not in sys.argv[4:]:return + q=copy.deepcopy(ct);mut(q) + try:audit(q) + except(AssertionError,KeyError,IndexError,ValueError,TypeError):controls.append(name) + else:raise AssertionError('ACCEPTED '+name) +enter=lambda q:next(o for c in q['calls']for o in c['owners'][(2*V):]if o[1][0]==4) +reject('alias two whole owners',lambda q:q['calls'][0]['owners'].__setitem__((2*V+1),q['calls'][0]['owners'][(2*V)])) +reject('helper on active data family',lambda q:q['calls'][0]['owners'][(2*V)].__setitem__(0,q['calls'][0]['owners'][0][0])) +reject('owner in private namespace',lambda q:q['calls'][0]['owners'][(2*V)].__setitem__(0,DATA)) +reject('wrong residual width',lambda q:enter(q)[1].__setitem__(3,enter(q)[1][3]-1)) +reject('wrong spectator coordinate',lambda q:enter(q)[1][4].__setitem__(0,72)) +reject('omit idle remainder',lambda q:q['idle_children'].pop()) +reject('understate physical reserve',lambda q:q.__setitem__('physical',PHYSICAL-1)) +# Per-provider substitution controls: every provider is swapped against a partner provider. +for P in provider_ids: + Qp=partner(P) + at_p=lambda q,P=P:next(c for c in q['calls']if c['provider_id']==P) + diff=[h for h in range(R)if providers[P]['widths'][h]!=providers[Qp]['widths'][h]] + narrow=next(h for h in range(R)if providers[P]['widths'][h]<9) + reject(P+': wrong provider at its invocation',lambda q,P=P,Qp=Qp,at_p=at_p:at_p(q).__setitem__('provider_id',Qp)) + reject(P+': stale per-call local program hash',lambda q,Qp=Qp,at_p=at_p:at_p(q).__setitem__('local_program_sha256',registry[Qp]['local_program_checks'][at_p(q)['orientation']]['sha256'])) + reject(P+': stale serialized provider program',lambda q,P=P,Qp=Qp:q['local_providers'][P].__setitem__('local_programs',registry[Qp]['local_programs'])) + reject(P+': unbound residual adapter hash',lambda q,P=P:q['local_providers'][P].__setitem__('residual_adapter_sha256','0'*64)) + if diff:reject(P+': partner width in provider width registry',lambda q,P=P,Qp=Qp,h=diff[0]:q['local_providers'][P]['widths'].__setitem__(h,providers[Qp]['widths'][h])) + reject(P+': wrong per-call residual width',lambda q,at_p=at_p,h=narrow:at_p(q)['owners'][2*V+h][1].__setitem__(3,at_p(q)['owners'][2*V+h][1][3]-1)) + reject(P+': wrong sweep provider',lambda q,P=P,Qp=Qp:next(e for e in q['execution_schedule']if e['kind']=='local_cover_sweep'and DISPATCH[e['stage'],e['replica']]==P).__setitem__('provider_id',Qp)) + reject(P+': entering helper width silently restored to nine',lambda q,P=P,h=narrow:q['local_providers'][P]['widths'].__setitem__(h,9)) +report=dict(status='PASS_INDEPENDENT_ASYNC_WHOLE_OWNER_CONTROLLER_PHASES_AND_SPECTATORS',template_sha256=summary['template_sha256'],complex_template_sha256=summary['template_sha256'],complex_live=DATA,complex_profile=r['profile'],complex_hosted_residuals=HOSTED,physical=PHYSICAL,rank_mass=r['mass'],deficit=2560,entering_helper_roles=r['entering'],cross_replica_helper_roles=r['cross_replica'],one_owner_per_complete_invocation=True,helper_busy_family_window_checks=r['busy_family_checks'],complete_invocations=r['invocations'],actual_orthogonal_73column_maps=len(r['sigmas']),actual_sigma_stream_sha256=r['sigma_digest'],all_actual_residual_and_spectator_charts=True,idle_remainders=r['idle_remainders'],mutations_rejected=controls,mutation_controls_run='--mutation-controls' in sys.argv[4:],provider_phase_semantic_sha256=phase_semantic_hashes,provider_artifact_semantic_sha256=artifact_semantic_hashes,widths_by_provider={pid:dict(sorted(Counter(providers[pid]['widths']).items()))for pid in provider_ids},provider_counts=dict(Counter(c['provider_id']for c in ct['calls'])),all_provider_program_phase_and_wrapper_bindings=True,scope='Independent exact asynchronous chronology, per-replica phase projection, owner/chart/paid-profile audit. Uses per-invocation local providers bound by exact scalar, phase and residual-wrapper receipts; all-size compilation and complete coefficient invoice are separate inherited obligations.') +REPORT.parent.mkdir(parents=True,exist_ok=True) +REPORT.write_text(json.dumps(report,indent=2)+'\n');print(json.dumps(report,indent=2)) + +owners=dict(status='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE',template_sha256=summary['template_sha256'],paid_profile=r['profile'],live=DATA,physical=PHYSICAL,rank_mass=r['mass'],deficit=2560,hosted_residuals=HOSTED,banked_residuals=0,all_live_owners_per_call_distinct=True,owners_per_call=N,actual_helper_owner_charts=HOSTED,actual_73column_sigmas=len(r['sigmas']),cross_replica_helper_roles=r['cross_replica'],explicit_idle_remainder_children=r['idle_remainders'],source_idle_children_charged=sum(x['replicas']for x in parent['idle_children']),source_artifacts=summary['source_artifacts'],provider_phase_semantic_sha256=phase_semantic_hashes,provider_artifact_semantic_sha256=artifact_semantic_hashes,controller_audit_sha256=hashlib.sha256(REPORT.read_bytes()).hexdigest()) +(REPORT.parent/'OWNERS-AND-PROFILE.json').write_text(json.dumps(owners,indent=2)+'\n') + +# Literal residual frames are a compact export of the already checked offsets, +# not another global replay. Every row names its actual inherited axes. +frames=[] +for z in ct['idle_children']: + axes=list(map(int,ph['recipes'][z['port']]['idle_children'][z['child']]['orthogonal_axes'])) + tail=axes[z['pending_offset']:] + assert len(tail)==z['rank'] + frames.append(dict(z,orthogonal_axes=tail)) +frame_raw=json.dumps(frames,sort_keys=True,separators=(',',':')).encode() +portable=bytearray(gzip.compress(frame_raw,mtime=0));portable[9]=255 +(OUT/'IDLE-REMAINDER-FRAMES.json.gz').write_bytes(bytes(portable)) +frame_receipt=dict(status='PASS_LITERAL_IDLE_REMAINDER_FRAMES',template_sha256=summary['template_sha256'], + uncompressed_frames_sha256=hashlib.sha256(frame_raw).hexdigest(),children=len(frames), + rank_profile=dict(sorted(Counter(z['rank']for z in frames).items())), + source_data_phase_sha256=hashlib.sha256((BASE/'work/complex-nine-native/DATA-PHASES.json').read_bytes()).hexdigest(), + scope='Actual orthogonal axes after the independently checked whole-owner prefix in each inherited pending child.') +(REPORT.parent/'IDLE-REMAINDER-FRAMES.json').write_text(json.dumps(frame_receipt,indent=2)+'\n') + diff --git a/research/complex-571-cold14-k492/code/bind_providers_portable.py b/research/complex-571-cold14-k492/code/bind_providers_portable.py new file mode 100644 index 0000000000..e758a0679a --- /dev/null +++ b/research/complex-571-cold14-k492/code/bind_providers_portable.py @@ -0,0 +1,67 @@ +"""Bind freshly verified plain and width-seven four-cold providers to the frozen literal owner plan. +Prepared with OpenAI Codex assistance; Apache-2.0. All byte-stable native +files are pinned to the plan. Only validated phase-receipt timing/serialization +and directory fields are rebound; no dispatch, width or owner choice changes. +""" +import argparse,copy,gzip,hashlib,json,shutil +from collections import Counter +from pathlib import Path +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +assert __debug__, 'Assertions required' +ap=argparse.ArgumentParser(description=__doc__) +for name in ('baseline','plan','out'):ap.add_argument('--'+name,type=Path,required=True) +ap.add_argument('--provider',action='append',required=True,help='PID=DIR');a=ap.parse_args();assert not a.out.exists();a.out.mkdir(parents=True) +def read(p):return json.loads(gzip.decompress(p.read_bytes())if p.suffix=='.gz'else p.read_bytes()) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +base=a.out/'base';shutil.copytree(a.baseline/'complex-global/base',base) +ap2=dict(x.split('=',1)for x in a.provider);dirs={k:Path(v)for k,v in ap2.items()};assert set(dirs)==set(PIDS) +for pid,src in dirs.items():shutil.copytree(src,base/'providers'/pid) +pin('data.plan_sha256',sha(a.plan)) +plan=read(a.plan);original=copy.deepcopy(plan);sources={};helpers=set() # R: helper count per provider word; all providers must agree +assert set(plan['provider_registry'])==set(dirs) +assert {(c['stage'],c['replica']):c['provider']for c in plan['provider_calls']}==DISPATCH,'PLAN dispatch differs from spec dispatch' +stable=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json','RESIDUAL-ADAPTERS.json') +for pid,desc in plan['provider_registry'].items(): + d=base/'providers'/pid + word,program,checks,native,phase=[read(d/name)for name in('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-REVIEW.json')] + assert (word['v'],word['h'],len(word['centers']))==(112,9,8) and type(word['R']) is int and word['R']>0;helpers.add(word['R']) + assert word['ports']==desc['ports'] and word['centers']==desc['centers'] + widths=[len(word['frames'][word['final'][r]])-len(word['frames'][word['start'][r]])for r in range(2*112,2*112+word['R'])] # HPE: residual width |final|-|start| + assert all(widths[h]==8 for h in SPOT) + assert widths==desc['widths'];pin('providers.%s.inventory'%pid,{str(k):v for k,v in sorted(Counter(widths).items())}) + assert native['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + pin('providers.%s.native_negative_controls'%pid,len(native['negative_controls_rejected'])) + assert native['canonical_word_sha256']==sha(d/'CANONICAL-WORD.json.gz') and native['local_programs_sha256']==sha(d/'LOCAL-PROGRAMS.json.gz') + assert phase['status']=='PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES' + assert phase['canonical_word_sha256']==sha(d/'CANONICAL-WORD.json.gz') and phase['recipe_sha256']==sha(d/'CLIFFORD-RECIPES.json') + assert phase['all_child_equalities_include_global_phase'] is True and phase['endpoint_adapters']==224 + pin('providers.%s.phase_edges'%pid,phase['directed_edges']) + assert set(program)==set(checks)=={'forward','backward'} + expected={int(r):n for r,n in checks['forward']['paid_profile'].items()};pin('providers.%s.expected_profile'%pid,checks['forward']['paid_profile']) + for orientation,events in program.items(): + profile=Counter() + for e in events: + if e[0]=='climb':profile[e[5]]+=1 + elif e[0]=='center':profile[e[4]]+=1 + assert dict(profile)==expected=={int(r):n for r,n in checks[orientation]['paid_profile'].items()}=={int(r):n for r,n in native['paid_profiles'][orientation].items()} + assert hashlib.sha256(json.dumps(events,separators=(',',':')).encode()).hexdigest()==checks[orientation]['sha256'] + identities=artifact_identities(d) + pin('providers.%s.artifact_semantic_sha256'%pid,identities) + assert identities==desc['artifact_semantic_sha256'] + for name in ('LOCAL-CHECKS.json','CLIFFORD-RECIPES.json','RESIDUAL-ADAPTERS.json'): + assert sha(d/name)==desc['artifact_sha256'][name],(pid,name,'changed non-reference artifact') + for c in plan['provider_calls']: + if c['provider']==pid: + assert c['orientation']==('forward'if c['stage']%2==0 else'backward') + assert c['local_program_sha256']==checks[c['orientation']]['sha256'] + desc['directory']='providers/'+pid + desc['artifact_sha256']={name:sha(d/name)for name in desc['artifact_sha256']} + sources[pid]=dict(artifact_sha256=desc['artifact_sha256'],canonical_content_sha256=hashlib.sha256(json.dumps(word,sort_keys=True,separators=(',',':')).encode()).hexdigest(),all_phase_edges=phase['directed_edges']) +assert len(helpers)==1,'providers disagree on helper count R: %s'%sorted(helpers) +plan['runtime_source_plan_sha256']=sha(a.plan) +(a.out/'PLAN.json').write_text(json.dumps(plan,indent=2)+'\n') +receipt=dict(status='PASS_FROZEN_048_ALLCOLD_DISPATCH_FRESH_PROVIDER_BINDING',source_plan_sha256=sha(a.plan),runtime_plan_sha256=sha(a.out/'PLAN.json'),providers=sources,only_rebound_fields=['provider_registry.directory','provider_registry.artifact_sha256','runtime_source_plan_sha256']) +(a.out/'BINDING.json').write_text(json.dumps(receipt,indent=2)+'\n') +print(receipt['status']) diff --git a/research/complex-571-cold14-k492/code/build_cold_end.py b/research/complex-571-cold14-k492/code/build_cold_end.py new file mode 100644 index 0000000000..91951b6111 --- /dev/null +++ b/research/complex-571-cold14-k492/code/build_cold_end.py @@ -0,0 +1,148 @@ +"""Cold low-frame-ended helpers with a refactored exact cleanup: constructor. Apache-2.0. +DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. + +usage: build_cold_end.py --input FULL-WORD.json.gz --recipe RECIPE.json.gz --out DIR + +The input is a hyperplane-ended (HPE) provider word. RECIPE (all data, no code): + premix rank-0 gates on helpers at their start frame (frame [] for cold helpers, E for entering ones); they become the + head of section A, i.e. they run after the entry + adapters and paid wrappers, so every gate on a cold-ended helper follows its wrapper R_{0,U}^-1; + cleanup the complete new cleanup gate list (an exact refactorisation of the inverse, not the literal one); + early_cleanup [[cleanup index, frame], ...]: gates run right after B at the given frame (the multi-gate tail); + cold_ends {helper: frame}: cold helpers (no entrance) that end at that frame instead of FULL; + entering_ends optional {helper: frame}: further entering helpers ending below FULL under the same refactored cleanup; + refactored_cleanup descriptive metadata copied into the word (it also switches the transport audit from the literal + cleanup assertion to exact replay of the refactored one); + output_content_sha256. +The constructor only splices. It checks the recipe's shape (premix on cold helpers at frame [], cold ends on cold +helpers, every inherited hyperplane-end gate and terminal frame kept) and recomputes the paid local profile and the +descriptive width inventory from the actual frame chains. Exactness of the scalar program, all frame chains, the cone +pre-check, the wrapper order and the profile are re-checked independently by hpe_audit_and_transport.py; the paired +raw-word mutation audit is cold_end_controls.py.""" +import argparse, gzip, hashlib, json +from collections import Counter +from pathlib import Path + + +def span(vs): + p = {} + for x in vs: + for k in sorted(p, reverse=True): + if x >> k & 1: x ^= p[k] + if x: + k = x.bit_length() - 1 + for j in p: + if p[j] >> k & 1: p[j] ^= x + p[k] = x + return tuple(p[k] for k in sorted(p, reverse=True)) + + +def regs(e): return [e[1]] + ([e[2]] if e[0] == 'add' else []) + + +def chain_profile(w): + """Paid climbs of the A, B, tail and final chains (centre descents are unchanged by this step and not counted).""" + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = [() for _ in range(n)] + for i, p in enumerate(w['ports']): cur[i] = span([p]) + for r, f in w.get('start_extra', {}).items(): cur[int(r)] = span(f) + prof = Counter() + + def climb(r, F): + assert span(list(cur[r]) + list(F)) == F, ('nonmonotone', r) + if len(F) > len(cur[r]): prof[len(F) - len(cur[r])] += 1 + cur[r] = F + for part in ('A', 'B'): + for e in w[part]: + for r in regs(e): climb(r, span(e[-1])) + for i, f in w.get('early_cleanup', []): + for r in regs(w['cleanup'][i]): climb(r, span(f)) + full = span([1 << i for i in range(9)]) + final = {int(r): span(f) for r, f in w.get('helper_final', {}).items()} + for r in range(n): + if v <= r < 2*v: continue # targets end at their port level; unchanged by this step (same A/B chains) + climb(r, final.get(r, full)) + return prof, cur + + +def apply(w, r): + assert 'helper_final' in w and 'early_cleanup' in w and 'refactored_cleanup' not in w, 'input must be an HPE word' + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + entering = set(map(int, w['start_extra'])) + cold = {x for x in range(2*v, n) if x not in entering} + start = lambda x: span(w['start_extra'].get(str(x), [])) + for e in r['premix']: # rank 0: every register is a helper still at its start frame (cold: [], entering: E) = the gate frame + if e[0] == 'add' and v <= e[1] < 2*v: + # TARGET WRITE (explicit post-wrapper compensation): target += q * cold helper, both at frame [] (targets start at + # level 0 = frame []); it only writes the target, so no non-target register ever reads a target. + assert 2*v <= e[2] < n and e[2] in cold and span(e[-1]) == (), ('premix target write not rank-0 from a cold helper', e) + continue + assert e[0] in ('add', 'scale') and all(2*v <= x < n and start(x) == span(e[-1]) for x in regs(e)), ('premix gate not rank-0 on helpers at their start frame', e) + # FORWARD ABSORPTIONS (optional): [[t, gate]] = 'add' q += a*g inserted into A right after input-A gate t. q must be DEAD + # from then on (no later A, cut or B gate touches it), so every live register's forward value is unchanged; both q and g + # must already sit at the gate frame (no climb: the frame chains and the paid profile of the input are unchanged). + absorb = [(int(t), list(e)) for t, e in r.get('forward_insertions', [])] + A = [list(e) for e in w['A']] + if absorb: + later = w['A'] + w['cut'] + w['B'] + assert len({t for t, _ in absorb}) == len(absorb) and all(0 <= t < len(w['A']) for t, _ in absorb) + for t, e in absorb: + assert e[0] == 'add' and e[1] != e[2] and not (v <= e[1] < 2*v) and not (v <= e[2] < 2*v), ('absorption shape', e) + assert all(e[1] not in regs(f) for f in later[t+1:]), ('absorption into a live register', e) + cur = [() for _ in range(n)] + for i, p in enumerate(w['ports']): cur[i] = span([p]) + for x, f in w.get('start_extra', {}).items(): cur[int(x)] = span(f) + for f in w['A'][:t+1]: + for x in regs(f): cur[x] = span(f[-1]) + assert cur[e[1]] == span(e[-1]) and cur[e[2]] == span(e[-1]), ('absorption frame is not both registers\' frame', e) + for t, e in sorted(absorb, key=lambda x: -x[0]): A.insert(t + 1, e) + ends = {int(h): f for h, f in r['cold_ends'].items()} + assert ends and all(h in cold and str(h) not in w['helper_final'] for h in ends), 'cold ends must be new cold helpers' + eends = {int(h): f for h, f in r.get('entering_ends', {}).items()} # optional: further ENTERING helpers ending below FULL + assert all(h in entering and str(h) not in w['helper_final'] for h in eends), 'entering ends must be new entering helpers' + assert all(len(span(f)) < 9 for f in list(ends.values()) + list(eends.values())) + new_early = [(i, f) for i, f in r['early_cleanup']] + kept = {(json.dumps(r['cleanup'][i][:-1]), json.dumps(f)) for i, f in new_early} + for i, f in w['early_cleanup']: # every inherited hyperplane-end gate stays in the tail at its frame + assert (json.dumps(w['cleanup'][i][:-1]), json.dumps(f)) in kept, ('inherited HPE gate missing', i) + old_prof, _ = chain_profile(w) + out = dict(w) + out['A'] = [list(e) for e in r['premix']] + A + out['cleanup'] = r['cleanup'] + out['early_cleanup'] = [[i, f] for i, f in new_early] + out['helper_final'] = dict(w['helper_final'], **{str(h): f for h, f in sorted({**ends, **eends}.items())}) + out['refactored_cleanup'] = r['refactored_cleanup'] + new_prof, cur = chain_profile(out) + assert all(cur[h] == span(f) for h, f in {**ends, **eends}.items()), 'end frame is not the last frame of the helper' + lp = Counter({int(k): c for k, c in w['report']['local_profile'].items()}) + lp.subtract(old_prof); lp.update(new_prof) + assert min(lp.values()) >= 0 + rep = dict(w['report']) + rep['local_profile'] = {str(k): c for k, c in sorted(lp.items()) if c} + rep['local_rank_mass'] = sum(k*c for k, c in lp.items()) + inv = Counter({int(k): c for k, c in w['report']['width_inventory'].items()}) + for h, f in ends.items(): inv[9] -= 1; inv[len(span(f))] += 1 # cold: width = |U| - 0 + for h, f in eends.items(): # entering: width = |U| - |E| + e = len(span(w['start_extra'][str(h)])); inv[9 - e] -= 1; inv[len(span(f)) - e] += 1 + assert min(inv.values()) >= 0 + rep['width_inventory'] = {str(k): c for k, c in sorted(inv.items()) if c} + out['report'] = rep + return out + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(); ap.add_argument('--input', type=Path, required=True); ap.add_argument('--recipe', type=Path, required=True) + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + rd = lambda p: json.loads(gzip.decompress(p.read_bytes()) if p.suffix == '.gz' else p.read_bytes()) + w, r = rd(a.input), rd(a.recipe) + w = apply(w, r) + raw = json.dumps(w, sort_keys=True, separators=(',', ':')).encode(); h = hashlib.sha256(raw).hexdigest() + assert h == r['output_content_sha256'], h + a.out.mkdir(parents=True, exist_ok=False) + (a.out/'FULL-WORD.json.gz').write_bytes(gzip.compress(raw, mtime=0)) + (a.out/'COLD-END-CONSTRUCTION.json').write_text(json.dumps(dict(status='PASS_COLD_LOW_FRAME_ENDS_SPLICED', + cold_ended_helpers=sorted(int(x) for x in r['cold_ends']), terminal_dims=sorted(Counter(len(span(f)) for f in r['cold_ends'].values()).items()), + premix_gates=len(r['premix']), early_cleanup_gates=len(r['early_cleanup']), cleanup_gates=len(r['cleanup']), + local_profile=w['report']['local_profile'], width_inventory=w['report']['width_inventory']), indent=1) + '\n', newline='\n') + print('PASS', len(r['cold_ends']), 'cold low-frame-ended helpers;', len(r['premix']), 'premix gates;', len(r['cleanup']), 'cleanup gates') diff --git a/research/complex-571-cold14-k492/code/build_frame_regroup.py b/research/complex-571-cold14-k492/code/build_frame_regroup.py new file mode 100644 index 0000000000..c5321f5671 --- /dev/null +++ b/research/complex-571-cold14-k492/code/build_frame_regroup.py @@ -0,0 +1,53 @@ +"""Apply recipe-bound gate frame changes; the scalar operations stay identical. Apache-2.0. +Extends PR583's build_frames.py (chafreaky, OpenAI Codex assisted) with changes of any profile delta, prepared with +Claude Code assistance. + +Recipe: input_content_sha256, before/after profiles, and changes [{section, index, before, after, delta}]. Each change +keeps the gate's scalar operation and replaces only its frame. Its exact sequential profile delta must equal the +recipe's `delta`, and the frame chains must stay monotone (gk_word.profile asserts this). The cleanup must already +follow the inherited inverse rule, which only uses FULL frames, so frame changes on A and B leave it unchanged. +Helper widths and all initial helper responses must be unchanged. + +Negative controls: +* each omitted change must lose the recipe profile; +* each change replaced by the FULL frame must violate a chain or cut bound.""" +from pathlib import Path +from collections import Counter +import argparse, copy, gzip, hashlib, json, sys +assert __debug__, 'Assertions required' +ap = argparse.ArgumentParser() +for k in ('--input', '--recipe', '--gk-dir', '--out'): ap.add_argument(k, type=Path, required=True) +a = ap.parse_args(); assert not a.out.exists() +sys.path.insert(0, str(a.gk_dir)); import gk_word as G, gk_common as C +G.V = C.V = 112; G.DATA = C.DATA = 7168 +raw = json.loads(gzip.decompress(a.input.read_bytes())); recipe = json.loads(a.recipe.read_text()) +enc = lambda x: json.dumps(x, sort_keys=True, separators=(',', ':')).encode(); sha = lambda x: hashlib.sha256(x).hexdigest() +assert sha(enc(raw)) == recipe['input_content_sha256']; before = G.profile(raw); assert dict(before) == {int(r): n for r, n in recipe['before'].items()} +assert raw['cleanup'] == [G.inverse(e, G.FULL) for e in reversed(raw['A'] + raw['B']) if not 112 <= e[1] < 224], 'input cleanup is not the inherited inverse rule' +assert len({(c['section'], c['index']) for c in recipe['changes']}) == len(recipe['changes']) and recipe['changes'] +w = copy.deepcopy(raw); trace = [] +for c in recipe['changes']: + part, i = c['section'], c['index']; assert part in ('A', 'B') and w[part][i] == c['before'] and c['before'][:-1] == c['after'][:-1] and c['before'][-1] != c['after'][-1] + w[part][i] = c['after']; after = G.profile(w) + delta = {r: after[r] - before[r] for r in set(after) | set(before) if after[r] != before[r]} + assert delta == {int(r): n for r, n in c['delta'].items()}, ('delta', part, i, delta); trace.append(dict(section=part, index=i, delta=delta)); before = after +assert dict(G.profile(w)) == {int(r): n for r, n in recipe['after'].items()} +for k in raw: + if k not in ('A', 'B', 'report'): assert w[k] == raw[k] +for part in ('A', 'B'): assert [e[:-1] for e in w[part]] == [e[:-1] for e in raw[part]] +assert G.widths_of(w) == G.widths_of(raw); responses = G.responses(w); assert responses == G.responses(raw) +assert all(not responses[int(r) - 224] for r in w['start_extra']) +rejected = [] +for c in recipe['changes']: + z = copy.deepcopy(w); z[c['section']][c['index']] = c['before']; assert G.profile(z) != G.profile(w); rejected.append('omission-%s-%d' % (c['section'], c['index'])) + z = copy.deepcopy(w); z[c['section']][c['index']][-1] = list(G.FULL) + try: G.profile(z) + except AssertionError: rejected.append('overpromotion-%s-%d' % (c['section'], c['index'])) + else: raise AssertionError('Invalid frame accepted') +H = G.profile(w); w['report'].update(local_profile={str(k): v for k, v in sorted(H.items())}, local_rank_mass=sum(r * n for r, n in H.items())) +a.out.mkdir(parents=True); (a.out / 'FULL-WORD.json.gz').write_bytes(gzip.compress(enc(w), mtime=0)) +receipt = dict(status='PASS_EXACT_FRAME_REGROUPING', input_content_sha256=sha(enc(raw)), output_content_sha256=sha(enc(w)), profile_before=recipe['before'], + profile_after=recipe['after'], changes=trace, negative_controls_rejected=rejected, all_scalar_operations_unchanged=True, + all_initial_helper_responses_equal=True, all_entering_helper_responses_zero=True, helper_widths_unchanged=True, + scope='Construction, frame/profile and scalar response checks only; native, phase and global admission are separate.') +(a.out / 'FRAME-CONSTRUCTION.json').write_text(json.dumps(receipt, indent=2, sort_keys=True) + '\n', newline='\n'); print(json.dumps(receipt, indent=2)) diff --git a/research/complex-571-cold14-k492/code/build_gate_moves.py b/research/complex-571-cold14-k492/code/build_gate_moves.py new file mode 100644 index 0000000000..03114099c6 --- /dev/null +++ b/research/complex-571-cold14-k492/code/build_gate_moves.py @@ -0,0 +1,61 @@ +"""Move commuting gates, then apply source-bound frame coalescences; the scalar map stays identical. +Extends PR583's build_frames.py (chafreaky, OpenAI Codex assisted, Apache-2.0) with commuting gate moves found by +Claude Code research agents. Apache-2.0. + +Recipe: input_content_sha256, before/after profiles, moves [{section, from, to}] (applied in order; every gate the +moved gate passes must commute with it), and changes [{section, index, before, after}] (indices after the moves; +each change only raises the gate frame and must save exactly {1:-2, 2:+1}). The cleanup section is rebuilt with the +inherited rule (the input word must already satisfy it), and the helper responses must be unchanged. +""" +from pathlib import Path +import argparse,copy,gzip,hashlib,json,sys +from collections import Counter +assert __debug__,'Assertions required' +ap=argparse.ArgumentParser();ap.add_argument('--input',type=Path,required=True);ap.add_argument('--recipe',type=Path,required=True);ap.add_argument('--gk-dir',type=Path,required=True);ap.add_argument('--out',type=Path,required=True);a=ap.parse_args();assert not a.out.exists() +sys.path.insert(0,str(a.gk_dir));import gk_word as G,gk_common as C +G.V=C.V=112;G.DATA=C.DATA=7168 +raw=json.loads(gzip.decompress(a.input.read_bytes()));recipe=json.loads(a.recipe.read_text());enc=lambda x:json.dumps(x,sort_keys=True,separators=(',',':')).encode();sha=lambda x:hashlib.sha256(x).hexdigest() +assert sha(enc(raw))==recipe['input_content_sha256'];before=G.profile(raw);assert dict(before)=={int(r):n for r,n in recipe['before'].items()} +def regs(e):return(e[1],e[2])if e[0]=='add'else(e[1],) +def commute(x,y): + """Two additions commute unless one writes the other's source; any other pair must touch disjoint registers.""" + if x[0]=='add'and y[0]=='add':return x[1]!=y[2]and y[1]!=x[2] + return not set(regs(x))&set(regs(y)) +cleanup=lambda w:[G.inverse(e,G.FULL)for e in reversed(w['A']+w['B'])if not 112<=e[1]<224] +assert raw['cleanup']==cleanup(raw),'input cleanup is not the inherited inverse rule' +w=copy.deepcopy(raw);moved=[] +for m in recipe['moves']: + L=w[m['section']];i,j=m['from'],m['to'];assert i!=j and 0<=ii else range(j,i);assert all(commute(L[i],L[k])for k in passed),'noncommuting move %s'%m + L.insert(j,L.pop(i));moved.append(dict(m,passed=len(passed))) +w['cleanup']=cleanup(w);responses=G.responses(w);assert responses==G.responses(raw),'scalar responses changed by the moves' +assert G.profile(w)==before,'moves alone changed the profile';trace=[] +for change in recipe['changes']: + part,i=change['section'],change['index'];assert w[part][i]==change['before'];assert change['before'][:-1]==change['after'][:-1] + w[part][i]=change['after'];after=G.profile(w);delta={r:after[r]-before[r]for r in set(after)|set(before)if after[r]!=before[r]};assert delta=={1:-2,2:1};trace.append(dict(section=part,index=i,delta=delta));before=after +w['cleanup']=cleanup(w) +assert dict(G.profile(w))=={int(r):n for r,n in recipe['after'].items()} +for key in raw: + if key not in ('A','B','cleanup','report'):assert w[key]==raw[key] +for part in ('A','B'):assert sorted(map(enc,(e[:-1]for e in w[part])))==sorted(map(enc,(e[:-1]for e in raw[part]))) +assert G.widths_of(w)==G.widths_of(raw);responses=G.responses(w);assert responses==G.responses(raw) +assert all(not responses[int(r)-224]for r in w['start_extra']) +# Fresh negative controls: every omitted coalescence loses the new profile, every full-space frame replacement violates +# a chain/cut bound, and every move reverted before its coalescence is rejected. +rejected=[] +for c in recipe['changes']: + z=copy.deepcopy(w);z[c['section']][c['index']]=c['before'];assert G.profile(z)!=G.profile(w);rejected.append('omission-%s-%d'%(c['section'],c['index'])) + z=copy.deepcopy(w);z[c['section']][c['index']][-1]=list(G.FULL) + try:G.profile(z) + except AssertionError:rejected.append('overpromotion-%s-%d'%(c['section'],c['index'])) + else:raise AssertionError('Invalid frame accepted') +for m in reversed(recipe['moves']): + z=copy.deepcopy(w);L=z[m['section']];L.insert(m['from'],L.pop(m['to'])) + try:ok=G.profile(z)==G.profile(w) + except AssertionError:ok=False + assert not ok,'unmoved coalescence accepted';rejected.append('unmoved-%s-%d'%(m['section'],m['from'])) +w['report'].update(local_profile=dict(G.profile(w)),local_rank_mass=sum(r*n for r,n in G.profile(w).items()),status='GATE_MOVE_FRAME_COALESCENCES_PENDING_NATIVE_PHASE_ADMISSION', + # descriptive inventory fields recomputed from the actual widths (as PR586's adapted PR583 constructor does) + width_inventory={str(k):v for k,v in sorted(Counter(G.widths_of(w)).items())},entering_helpers=sum(v<9 for v in G.widths_of(w)),entrance_rank=sum(9-v for v in G.widths_of(w))) +a.out.mkdir(parents=True);(a.out/'FULL-WORD.json.gz').write_bytes(G.dump(w));receipt=dict(status='PASS_EXACT_GATE_MOVE_FRAME_COALESCENCES',input_content_sha256=sha(enc(raw)),output_content_sha256=sha(enc(w)),profile_before=recipe['before'],profile_after=recipe['after'],moves=moved,changes=trace,negative_controls_rejected=rejected,all_scalar_responses_unchanged=True,all_entering_helper_responses_zero=True,helper_widths_unchanged=True,cleanup_rebuilt_by_inherited_rule=True,scope='Construction, commutation, frame/profile and scalar response checks only; native, phase and global admission are separate.') +(a.out/'FRAME-CONSTRUCTION.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n');print(json.dumps(receipt,indent=2)) diff --git a/research/complex-571-cold14-k492/code/build_hpe.py b/research/complex-571-cold14-k492/code/build_hpe.py new file mode 100644 index 0000000000..830906acf2 --- /dev/null +++ b/research/complex-571-cold14-k492/code/build_hpe.py @@ -0,0 +1,123 @@ +"""Hyperplane-ended helpers (HPE) constructor. Apache-2.0. Prepared with Claude Code assistance. + +usage: build_hpe.py --input FULL-WORD.json.gz --recipe RECIPE.json --out DIR + +RECIPE: {"changes": [{"helper": h, "cleanup_index": i, "frame": [raw vectors]}, ...], "output_content_sha256": hex}. +Each change must be an admissible early-cleanup move: + * h is an entering helper (start_extra) touched by exactly one cleanup gate, cleanup[i]; + * cleanup[i] commutes with every earlier cleanup gate on its registers (commute(): neither writes a register the + other touches, or both add into one target without reading each other's target), so it commutes with the whole + skipped cleanup prefix; in practice the skipped gates only read the partner (x -= p); + * frame == join of the registers' last A/B frames and has dimension < 9. +The output word gets early_cleanup [[i, U]], helper_final {h: U} and the exact paid profile (only the two registers' +final chains change: h ends at U instead of FULL; the partner climbs through U). Exactness of the reordered program, +the frame chains and the profile are re-checked independently by hpe_audit_and_transport.py; the paired control audit +is controls_hpe_atc.py.""" +import argparse, gzip, hashlib, json +from collections import Counter +from pathlib import Path + + +def span(vs): + p = {} + for x in vs: + for k in sorted(p, reverse=True): + if x >> k & 1: x ^= p[k] + if x: + k = x.bit_length() - 1 + for j in p: + if p[j] >> k & 1: p[j] ^= x + p[k] = x + return [p[k] for k in sorted(p, reverse=True)] + + +def regs(e): return [e[1]] + ([e[2]] if e[0] == 'add' else []) + + +def commute(a, b): + """Sufficient syntactic commutation of two scalar gates (t += q*s, t *= q): neither writes a register the other + touches, or both are additions into the same target with neither reading the other's target.""" + ra, rb = set(regs(a)), set(regs(b)) + if a[1] not in rb and b[1] not in ra: return True + return a[0] == 'add' and b[0] == 'add' and a[1] == b[1] and a[2] != b[1] and b[2] != a[1] + + +def last_frames(w): + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = [[] for _ in range(n)] + for i, p in enumerate(w['ports']): cur[i] = [p] + for r, f in w.get('start_extra', {}).items(): cur[int(r)] = list(f) + for part in ('A', 'B'): + for e in w[part]: + for r in regs(e): cur[r] = list(e[-1]) + return cur + + +def apply(w, changes): + assert 'early_cleanup' not in w and 'helper_final' not in w, 'input already has hyperplane-ended helpers' + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = last_frames(w); count = Counter(); first = {}; on = {} + for i, e in enumerate(w['cleanup']): + for r in regs(e): count[r] += 1; first.setdefault(r, i); on.setdefault(r, []).append(i) + lp = Counter({int(r): c for r, c in w['report']['local_profile'].items()}) + seen = set() + for z in changes: + h, i, U = z['helper'], z['cleanup_index'], z['frame'] + assert 2*v <= h < n and str(h) in w['start_extra'], ('not an entering helper', h) + assert count[h] == 1 and first[h] == i, ('helper must have exactly this one cleanup gate', h) + e = w['cleanup'][i]; rs = regs(e) + assert all(commute(w['cleanup'][j], e) for r in rs for j in on[r] if j < i), ('cleanup gate does not commute with the skipped cleanup gates on its registers', i) + assert not seen & set(rs), 'registers shared between changes'; seen |= set(rs) + assert span([x for r in rs for x in cur[r]]) == U and len(U) < 9, ('frame is not the join of the last frames', h) + for r in rs: # old: last -> FULL; new: last -> U (-> FULL for the partner) + d0 = 9 - len(span(cur[r])) + if d0: lp[d0] -= 1 + d1 = len(U) - len(span(cur[r])) + if d1: lp[d1] += 1 + if r != h and len(U) < 9: lp[9 - len(U)] += 1 + w['early_cleanup'] = [[z['cleanup_index'], z['frame']] for z in changes] + w['helper_final'] = {str(z['helper']): z['frame'] for z in changes} + w['report']['local_profile'] = {str(r): c for r, c in sorted(lp.items()) if c} + w['report']['local_rank_mass'] = sum(r*c for r, c in lp.items()) + if 'width_inventory' in w['report']: # descriptive metadata: one width-w helper becomes width w-(9-dim U) + inv = Counter({int(k): c for k, c in w['report']['width_inventory'].items()}) + for z in changes: + e = len(w['start_extra'][str(z['helper'])]); inv[9 - e] -= 1; inv[len(z['frame']) - e] += 1 + assert min(inv.values()) >= 0 + w['report']['width_inventory'] = {str(k): c for k, c in sorted(inv.items()) if c} + assert min(lp.values()) >= 0 + return w + + +def candidates(w): + v, R = w['report']['v'], w['report']['R']; n = 2*v + R + cur = last_frames(w); count = Counter(); first = {}; on = {} + for i, e in enumerate(w['cleanup']): + for r in regs(e): count[r] += 1; first.setdefault(r, i); on.setdefault(r, []).append(i) + out = [] + for h in range(2*v, n): + if count[h] != 1 or str(h) not in w.get('start_extra', {}): continue + i = first[h]; rs = regs(w['cleanup'][i]) + if not all(commute(w['cleanup'][j], w['cleanup'][i]) for r in rs for j in on[r] if j < i): continue + U = span([x for r in rs for x in cur[r]]) + if len(U) < 9: out.append(dict(helper=h, cleanup_index=i, frame=U)) + return out + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(); ap.add_argument('--input', type=Path, required=True); ap.add_argument('--recipe', type=Path) + ap.add_argument('--out', type=Path); ap.add_argument('--nominate', type=Path, help='write a recipe with every candidate') + a = ap.parse_args() + w = json.loads(gzip.decompress(a.input.read_bytes())) + if a.nominate: + a.nominate.write_text(json.dumps(dict(changes=candidates(w), output_content_sha256=''), indent=1) + '\n', newline='\n') + raise SystemExit(0) + r = json.loads(a.recipe.read_bytes()) + w = apply(w, r['changes']) + raw = json.dumps(w, sort_keys=True, separators=(',', ':')).encode(); h = hashlib.sha256(raw).hexdigest() + assert h == r['output_content_sha256'], h + a.out.mkdir(parents=True, exist_ok=False) + (a.out/'FULL-WORD.json.gz').write_bytes(gzip.compress(raw, mtime=0)) + (a.out/'HPE-CONSTRUCTION.json').write_text(json.dumps(dict(status='PASS_HYPERPLANE_ENDED_HELPERS', helpers=[z['helper'] for z in r['changes']], + local_profile=w['report']['local_profile']), indent=1) + '\n', newline='\n') + print('PASS', len(r['changes']), 'hyperplane-ended helpers') diff --git a/research/complex-571-cold14-k492/code/build_port_stage.py b/research/complex-571-cold14-k492/code/build_port_stage.py new file mode 100644 index 0000000000..259fd26feb --- /dev/null +++ b/research/complex-571-cold14-k492/code/build_port_stage.py @@ -0,0 +1,125 @@ +"""Port one 504-helper construction stage onto the K-triangle word. Apache-2.0. Prepared with Claude Code assistance. + +usage: build_port_stage.py --shadow-input I4 --shadow-output O4 --input I8 --map HELPER-MAP.json --gk-dir GK --out DIR + +The shadow pair (I4 -> O4) is one stage of a 504-helper chain, rebuilt in the same run from pinned sources. I8 is the +K-triangle word at the matching point of its own chain, and HELPER-MAP.json is the 504 -> R register map written by +construct_k_triangle.py. Registers below 448 keep their ids; the removed packet copies have no image. + +The port does the following: +* It renumbers I4 and O4 through the map and drops their gates that touch a removed register. +* It matches gates by scalar operation (the gate without its frame), aligning I4 with O4 and I4 with I8 separately. +* It builds O8 in O4 gate order: + * each matched gate is taken from I8, with O4's frame wherever the stage changed that frame; + * each gate the stage introduced is taken from O4; + * each I8-only gate (the K-triangle reads) stays after the O4 image of its I8 predecessor. +* It replays the stage's entrance (start_extra) and target_levels changes. +* It rebuilds the cleanup with the inherited inverse rule. + +The constructor is a search transfer only. The verifier certifies the output independently: the generalised native +audit (exact forward and inverse replay of every column, native frame chains) runs on every ported word, and every +input and output is pinned by content hash.""" +import argparse, copy, difflib, gzip, hashlib, json, sys +from collections import Counter +from pathlib import Path + +assert __debug__, 'Assertions required' +FULL = [256, 128, 64, 32, 16, 8, 4, 2, 1] + + +def regs(g): return (g[1], g[2]) if g[0] == 'add' else (g[1],) + + +def key(g): return json.dumps(g[:-1]) + + +def inverse(e): + e = copy.deepcopy(e) + if e[0] == 'add': e[3] *= -1 + else: e[2], e[3] = e[3], e[2] + e[-1] = list(FULL); return e + + +def align(xs, ys): + """index map xs -> ys over runs of equal scalar operations""" + sm = difflib.SequenceMatcher(None, [key(g) for g in xs], [key(g) for g in ys], autojunk=False) + return {i1 + k: j1 + k for tag, i1, i2, j1, j2 in sm.get_opcodes() if tag == 'equal' for k in range(i2 - i1)} + + +def transfer_section(I4, O4, I8, stats): + a, b = align(I4, O4), align(I4, I8) + o2i = {j: i for i, j in a.items()}; i8from4 = {j: i for i, j in b.items()} + anchor = {j8: a[i4] for j8, i4 in i8from4.items() if i4 in a} + pending, last = {}, -1 + for j8, g in enumerate(I8): + if j8 in anchor: last = anchor[j8] + elif j8 not in i8from4: pending.setdefault(last, []).append(copy.deepcopy(g)); stats['kept_own'] += 1 + else: stats['dropped_by_stage'] += 1 + out = list(pending.get(-1, [])) + for k, g in enumerate(O4): + if k in o2i: + i4 = o2i[k] + if i4 in b: + g8 = copy.deepcopy(I8[b[i4]]) + if I4[i4][-1] != g[-1]: g8[-1] = copy.deepcopy(g[-1]); stats['frames_changed'] += 1 + out.append(g8) + else: + out.append(copy.deepcopy(g)); stats['introduced'] += 1 + out.extend(pending.get(k, [])) + return out + + +def main(): + ap = argparse.ArgumentParser() + for k in ('--shadow-input', '--shadow-output', '--input', '--map', '--gk-dir', '--out'): ap.add_argument(k, type=Path, required=True) + a = ap.parse_args(); assert not a.out.exists() + sys.path.insert(0, str(a.gk_dir)); import gk_word as G, gk_common as C + G.V = C.V = 112 + rd = lambda p: json.loads(gzip.decompress(p.read_bytes())) + enc = lambda x: json.dumps(x, sort_keys=True, separators=(',', ':')).encode(); sha = lambda x: hashlib.sha256(x).hexdigest() + I4, O4, I8 = rd(a.shadow_input), rd(a.shadow_output), rd(a.input) + fm = {int(k): int(v) for k, v in json.loads(a.map.read_text())['map'].items()} + assert all(fm[k] == k for k in fm if k < 448), 'only ids >= 448 may move' + R = I8['report']['R']; assert sorted(fm.values()) == list(range(224 + R)), 'map is not onto the K-triangle registers' + assert I4['report'].get('R', 504) == 504 and len(fm) + len(set(range(728)) - set(fm)) == 728 + rem = set(range(728)) - set(fm) + rn = lambda r: fm[r] + touches = lambda g: any(r in rem for r in regs(g)) + def rg(g): + g = copy.deepcopy(g); g[1] = rn(g[1]) + if g[0] == 'add': g[2] = rn(g[2]) + return g + def rn_word(w): + w = copy.deepcopy(w) + for s in ('A', 'B', 'cut', 'precondition', 'cleanup'): + if s in w: w[s] = [rg(g) for g in w[s] if not touches(g)] + for k in ('start_extra', 'helper_final'): + if k in w: w[k] = {str(rn(int(r))): f for r, f in w[k].items() if int(r) not in rem} + return w + I4r, O4r = rn_word(I4), rn_word(O4) + O8 = copy.deepcopy(I8); stats = {s: Counter() for s in ('A', 'B')} + for s in ('A', 'B'): O8[s] = transfer_section(I4r[s], O4r[s], I8[s], stats[s]) + for k in ('start_extra', 'target_levels'): + x, y = I4r.get(k, {}), O4r.get(k, {}); d = dict(I8.get(k, {})) + for r in set(x) | set(y): + if x.get(r) != y.get(r): + if r in y: d[r] = y[r] + else: d.pop(r, None) + if k in O4 or k in I8: O8[k] = dict(sorted(d.items(), key=lambda kv: int(kv[0]))) + for k in O4: + if k not in ('A', 'B', 'cleanup', 'report', 'start_extra', 'target_levels', 'cut', 'precondition'): + assert O4r[k] == I4r[k], 'stage changed an unported field: ' + k + O8['cleanup'] = [inverse(e) for e in reversed(O8['A'] + O8['B']) if not 112 <= e[1] < 224] + H = G.profile(O8) + ws = [9 - len(G.basis(O8['start_extra'].get(str(224 + h), []))) for h in range(R)] + O8['report'] = dict(I8['report'], local_profile={str(k): v for k, v in sorted(H.items())}, local_rank_mass=sum(k * v for k, v in H.items()), + width_inventory={str(k): v for k, v in sorted(Counter(ws).items())}) + a.out.mkdir(parents=True); (a.out / 'FULL-WORD.json.gz').write_bytes(gzip.compress(enc(O8), mtime=0)) + receipt = dict(status='PORTED_STAGE_PENDING_NATIVE_AUDIT', R=R, removed_504_helpers=sorted(rem), + shadow_input_content_sha256=sha(enc(I4)), shadow_output_content_sha256=sha(enc(O4)), input_content_sha256=sha(enc(I8)), + output_content_sha256=sha(enc(O8)), sections={s: dict(v) for s, v in stats.items()}, local_profile=O8['report']['local_profile'], + scope='Transfer construction only; exactness, frame chains and profile are certified by the native audit run on the output.') + (a.out / 'PORT-STAGE.json').write_text(json.dumps(receipt, indent=2, sort_keys=True) + '\n', newline='\n'); print(json.dumps(receipt, indent=2)) + + +main() diff --git a/research/complex-571-cold14-k492/code/cold_end_controls.py b/research/complex-571-cold14-k492/code/cold_end_controls.py new file mode 100644 index 0000000000..75f96bcd7e --- /dev/null +++ b/research/complex-571-cold14-k492/code/cold_end_controls.py @@ -0,0 +1,152 @@ +"""cold_end_controls.py COLD-END-WORD.json.gz ROUTING OUTDIR : raw-word negative controls for the cold low-frame ends and the +refactored cleanup accepted by hpe_audit_and_transport.py. Every mutation MUST be rejected (AssertionError); the +unmutated word MUST pass. Apache-2.0. DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code.""" +import copy, gzip, json, shutil, sys, tempfile +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +import hpe_audit_and_transport as atc + +src, routing, outdir = Path(sys.argv[1]), Path(sys.argv[2]), Path(sys.argv[3]) +word = json.load(gzip.open(src)) +v, R = word['report']['v'], word['report']['R']; n = 2*v + R +regs = lambda e: [e[1]] + ([e[2]] if e[0] == 'add' else []) +meta = word['refactored_cleanup'] +cold = [int(h) for h in meta['cold_low_frame_ended_helpers']] +npre = meta['premix_gates']; nlow = meta['lower_frame_gates'] +early = word['early_cleanup']; eidx = {i for i, _ in early} +rest = [i for i in range(len(word['cleanup'])) if i not in eidx] + + +def trial(w): + """None if the transport audit accepts w, else the AssertionError message.""" + tmp = Path(tempfile.mkdtemp()) + p = tmp/'w.json.gz'; p.write_bytes(gzip.compress(json.dumps(w).encode(), mtime=0)) + try: + atc.run(p, routing, tmp/'out') + return None + except AssertionError as e: + return repr(e.args[0]) if e.args else 'AssertionError' + finally: + shutil.rmtree(tmp, ignore_errors=True) + + +# Pinned rejection reasons: each mutant must fail at this assertion of hpe_audit_and_transport.py (message substring). +ENDPOINT, COLDPRE, CONE = "'arbitrary-dirt endpoint'", 'touches a cold hyperplane-ended helper', 'hpe cone pre-check (row / column)' +WHY = dict(premix_to_precondition=COLDPRE, premix_dropped=COLDPRE, e_premix_dropped=ENDPOINT, lower_dropped=ENDPOINT, + remainder_dropped=ENDPOINT, coefficient=ENDPOINT, into_full=ENDPOINT, dyadic=ENDPOINT, frame_below="'nonmonotone'", + nonmonotone="'nonmonotone'", other_frame=CONE, cone=CONE, extra_end=COLDPRE, marker='cleanup is not the literal reversed inverse', + target='refactored cleanup touches a target', profile_pin='paid local profile differs from the reported local_profile', + entering_precondition='zero-frame precondition/compensation touches an entering helper') +assert trial(word) is None, 'unmutated cold-end word must pass' +results = [] + + +def reject(name, mut, why): + """the mutation must be rejected, and for the pinned reason (a substring of the audit's assertion message).""" + w = copy.deepcopy(word); mut(w) + msg = trial(w) + assert msg is not None, 'cold-end mutation accepted: ' + name + assert why in msg, 'cold-end mutation %r rejected for the wrong reason: %s' % (name, msg[:300]) + results.append(name); print('rejected', name, '|', why, flush=True) + + +h0 = cold[0] +i0, U0 = next((i, f) for i, f in early if h0 in regs(word['cleanup'][i])) +r0 = rest[len(rest)//2] + + +def premix_to_precondition(w): # premix before the wrappers; compensation then reads the cold ends + w['precondition'] = w['precondition'] + w['A'][:npre]; w['A'] = w['A'][npre:] + + +def lower_gate_into_full(w): # a lower-frame gate on a cold-ended helper executed in the FULL remainder instead + w['early_cleanup'] = [x for x in w['early_cleanup'] if x[0] != i0] + + +def drop_cleanup_gate(w, i): # remove the gate AND its early_cleanup entry: a structurally valid word missing one gate + w['cleanup'].pop(i) + w['early_cleanup'] = [[j - (j > i), f] for j, f in w['early_cleanup'] if j != i] + + +def other_frame(w): # a different frame of the same dimension as the cold end (another cold helper's) + f = next(w['helper_final'][str(h)] for h in cold if w['helper_final'][str(h)] != w['helper_final'][str(h0)]) + w['helper_final'][str(h0)] = f + + +def extra_cold_end(w): # declare a premixed partner of h0 cold-ended at h0's frame: fails the row/column cone + p = next(r for e in w['A'][:npre] for r in regs(e) if r != h0 and h0 in regs(e)) + w['helper_final'][str(p)] = w['helper_final'][str(h0)] + + +reject('premix placed in the zero-frame precondition (before the cold wrappers)', premix_to_precondition, WHY['premix_to_precondition']) +reject('one premix gate dropped (the compensation then reads a cold-ended helper)', lambda w: w['A'].pop(npre - 1), WHY['premix_dropped']) +reject('one lower-frame cleanup gate dropped (gate and its early_cleanup entry)', lambda w: drop_cleanup_gate(w, i0), WHY['lower_dropped']) +reject('one FULL-remainder gate dropped', lambda w: drop_cleanup_gate(w, r0), WHY['remainder_dropped']) +reject('lower-frame gate coefficient changed', lambda w: w['cleanup'][i0].__setitem__(3, w['cleanup'][i0][3] * 2), WHY['coefficient']) +reject('lower-frame gate moved into the FULL remainder (touches a cold-ended helper at FULL)', lower_gate_into_full, WHY['into_full']) +reject('lower-frame gate frame below its registers\' frames', lambda w: next(x for x in w['early_cleanup'] if x[0] == i0).__setitem__(1, U0[:-1]), WHY['frame_below']) +reject('cold end at another dim-4 frame', other_frame, WHY['other_frame']) +# PROFILE-PIN control: without its helper_final entry the cold-ended helper is a valid FULL-ended helper; the word is +# rejected because its reported paid profile (which counts the low end) no longer matches the frame chains. +reject('profile pin: cold end dropped (valid FULL end, but the reported profile counts the low end)', lambda w: w['helper_final'].pop(str(h0)), WHY['profile_pin']) +reject('extra cold end on a premixed partner (the compensation reads it before its wrapper)', extra_cold_end, WHY['extra_end']) +reject('refactored-cleanup marker removed (literal-inverse rule applies)', lambda w: w.pop('refactored_cleanup'), WHY['marker']) +reject('remainder gate retargeted to a target register', lambda w: w['cleanup'][r0].__setitem__(1, v + 3), WHY['target']) +reject('non-dyadic remainder coefficient', lambda w: w['cleanup'][r0].__setitem__(4 if w['cleanup'][r0][0] == 'add' else 3, 3 * w['cleanup'][r0][4 if w['cleanup'][r0][0] == 'add' else 3]), WHY['dyadic']) +reject('profile not updated (paid climbs misreported)', lambda w: w['report']['local_profile'].__setitem__('5', w['report']['local_profile']['5'] - 1), WHY['profile_pin']) +ent = [int(h) for h in meta.get('entering_low_frame_ended_helpers', [])] +for e0 in ent: # ENTERING LOW-FRAME ENDS (ColdSupply extension; every entering end; absent for words without them) + j0 = next(i for i, e in enumerate(word['A'][:npre]) if e0 in regs(e)) + k0, Ue = next((i, f) for i, f in early if e0 in regs(word['cleanup'][i])) + def to_pre(w, j0=j0): w['precondition'].append(w['A'][j0]); w['A'].pop(j0) + def other_hp(w, e0=e0, Ue=Ue): w['helper_final'][str(e0)] = next(f for h, f in w['helper_final'].items() if len(f) == len(Ue) and sorted(f) != sorted(Ue)) + reject('entering end %d: premix gate dropped' % e0, lambda w, j0=j0: w['A'].pop(j0), WHY['e_premix_dropped']) + reject('entering end %d: premix gate at frame [] instead of its entrance E' % e0, lambda w, j0=j0: w['A'][j0].__setitem__(-1, []), WHY['nonmonotone']) + reject('entering end %d: premix gate moved into the zero-frame precondition' % e0, to_pre, WHY['entering_precondition']) + reject('entering end %d: lower-frame gate dropped (gate and its early_cleanup entry)' % e0, lambda w, k0=k0: drop_cleanup_gate(w, k0), WHY['lower_dropped']) + reject('entering end %d: profile pin: end dropped (valid FULL end, but the reported profile counts the low end)' % e0, lambda w, e0=e0: w['helper_final'].pop(str(e0)), WHY['profile_pin']) + reject('entering end %d: end at another hyperplane' % e0, other_hp, WHY['cone']) +# Pinned rejection reasons of the COLD-BEYOND mutants (substrings of hpe_audit_and_transport.py assertion messages). +MYWHY = dict(tw_precondition=COLDPRE, tw_dropped=COLDPRE, tw_coefficient=COLDPRE, tw_other_block=COLDPRE, + tw_entering='zero-frame compensation reads an entering helper', + ab_dropped=ENDPOINT, ab_coefficient=ENDPOINT, ab_early=ENDPOINT, ab_live=ENDPOINT, ab_centre=ENDPOINT, + ab_lower="'nonmonotone'", ab_higher="'nonmonotone'") +# COLD-BEYOND primitives (present only when the word carries them): frame-[] target writes in the premix (explicit +# post-wrapper compensation of an ended helper's dirt) and forward absorptions into dead registers. +nw = meta.get('premix_target_writes', 0) +if nw: + wi = [i for i in range(npre) if v <= word['A'][i][1] < 2*v] + assert len(wi) == nw + + def writes_to_precondition(w): # the target writes run before the cold wrappers (inside the zero-frame precondition) + g = [w['A'][i] for i in wi]; w['precondition'] = w['precondition'] + g + w['A'] = [e for i, e in enumerate(w['A']) if i not in set(wi)] + reject('premix target writes placed in the zero-frame precondition (before the cold wrappers)', writes_to_precondition, MYWHY['tw_precondition']) + reject('one premix target write dropped (compensation must read an ended helper)', lambda w: w['A'].pop(wi[0]), MYWHY['tw_dropped']) + reject('premix target write coefficient changed', lambda w: w['A'][wi[0]].__setitem__(3, w['A'][wi[0]][3] * 2), MYWHY['tw_coefficient']) + # (reading another register that carries the SAME weight of the ended helper's dirt is a valid variant, so the mutant reads + # the same factory slot of the next block, which carries none of it) + entering_regs = sorted(int(r) for r in word.get('start_extra', {})) + reject('premix target write reads an entering helper', lambda w: w['A'][wi[0]].__setitem__(2, entering_regs[0]), MYWHY['tw_entering']) + reject('premix target write reads a cold helper of another block', lambda w: w['A'][wi[0]].__setitem__(2, 2*v + (w['A'][wi[0]][2] - 2*v + 16) % 224), MYWHY['tw_other_block']) +ab = meta.get('forward_absorption_A_indices', []) +if ab: + a0 = ab[0]; g0 = word['A'][a0] + + def absorption_moved_early(w): # absorbed before the absorbed register's last kernel write + e = w['A'].pop(a0); j = max(i for i in range(npre, a0) if g0[2] == w['A'][i][1] and w['A'][i][-1] == g0[-1]) + w['A'].insert(j, e) + + def absorption_into_live(w): # q += a g moved right after g's previous frame-mate gate, while q is still live + e = w['A'].pop(a0); j = max(i for i in range(npre, a0) if g0[1] in regs(w['A'][i])) + w['A'].insert(j, e) + reject('forward absorption dropped', lambda w: w['A'].pop(a0), MYWHY['ab_dropped']) + reject('forward absorption into a centre (a live register read by the cut)', lambda w: w['A'][a0].__setitem__(1, next(c for c in word['centers'] if c not in g0[1:3])), MYWHY['ab_centre']) + reject('forward absorption coefficient changed', lambda w: w['A'][a0].__setitem__(3, w['A'][a0][3] * 2), MYWHY['ab_coefficient']) + reject('forward absorption placed before the absorbed register\'s last kernel write', absorption_moved_early, MYWHY['ab_early']) + reject('forward absorption placed while the absorbing register is still live', absorption_into_live, MYWHY['ab_live']) + reject('forward absorption at a lower frame than its registers', lambda w: w['A'][a0].__setitem__(-1, w['A'][a0][-1][:-1]), MYWHY['ab_lower']) + reject('forward absorption at a higher frame (FULL) than its registers', lambda w: w['A'][a0].__setitem__(-1, [256, 128, 64, 32, 16, 8, 4, 2, 1]), MYWHY['ab_higher']) +outdir.mkdir(parents=True, exist_ok=True) +(outdir/'COLD-END-CONTROLS.json').write_text(json.dumps(dict(status='PASS_COLD_END_RAW_WORD_CONTROLS', word=str(src), rejected=results), indent=1) + '\n') +print('PASS', len(results), 'cold-end raw-word mutations rejected') diff --git a/research/complex-571-cold14-k492/code/construct_k_triangle.py b/research/complex-571-cold14-k492/code/construct_k_triangle.py new file mode 100644 index 0000000000..763a2b3f5f --- /dev/null +++ b/research/complex-571-cold14-k492/code/construct_k_triangle.py @@ -0,0 +1,374 @@ +# Round20 early-coordinate-center / own-Y variant, prepared for icekylinx +# with OpenAI Codex assistance. Apache-2.0. Scalar elementary-operation +# helpers below are retained from the attributed PR514 construct_partial.py. +# Adapted by OpenAI Codex for isolated structural research. +# Modified from PR425 by icekylinx with Codex assistance. +"""Full discovery word for Hamming packets with borrowed X and Y registers. + +This changes the scalar architecture. It is not accepted by the old restricted +gx interface: source bases may change until full-frame cleanup, and targets use +an explicitly inverted output basis. No supplier admission is asserted. +""" +import copy,gzip,json,math,time +import itertools as it +from collections import Counter,defaultdict +from fractions import Fraction as Q +from pathlib import Path + +import sys +INPUT=Path(sys.argv[1]);OUT=Path(sys.argv[2]);OUT.mkdir(parents=True,exist_ok=False);D=json.loads((INPUT/'PROTOTYPE.json').read_text()) +P=D['binary_ports'];R=D['root_lines'];v=120;h=9 +modules=json.load(gzip.open(INPUT/'PACKET-PROGRAMS.json.gz')) +# AtomScout: leaver-read K-triangles (schedule from atom1.py / rog.py CP-SAT) +TRI=json.loads(Path(sys.argv[3]).read_text()) +FULLT={(tuple(tr['p']),tr['e']) for tr in TRI['triangles']} +TRI_COORDS={t+8 for tr in TRI['triangles'] for t,_,_ in tr['reads']} +COPYL=[] +NH=504-3*len(FULLT)+len(COPYL) + +def basis(vectors): + b={} + for x in vectors: + for p in sorted(b,reverse=True): + if x>>p&1:x^=b[p] + if x: + p=x.bit_length()-1 + for q in b: + if b[q]>>p&1:b[q]^=x + b[p]=x + return tuple(b[p] for p in sorted(b,reverse=True)) +def inside(a,b):return basis(a+b)==b +def hyper(p):return basis([x for x in range(1,512) if (x&p).bit_count()%2==0]) +FULL=basis([1<len(M):M.append(rr) + if len(M)==8:break + assert len(M)==8 + linear(regs,M,F) + for i,r in zip(c,regs): + assert rows[r]=={s:Q(R[s][i]) for s in ids} + block_totals[c,i]=r + +# All centers are complete while Y is still at zero. This is the crucial +# difference from an illegal early-own-Y prefix using the old center order. +centers=[] +for i in range(8): + regs=[block_totals[c,i] for c in sorted(blocks) if i in c] + F=hyper(P[frame[i]]);a=regs[0] + for b in regs[1:]:add(a,b,1,F) + centers.append(a) +centers += [frame[i] for i in range(8)] +center_frames=[cur[r] for r in centers] +assert list(map(len,center_frames))==[8]*8+[1]*8 +assert all(cur[v+t]==() for t in range(v)) + +phase=B +for t,(r,coef,F) in sorted(own_rows.items()): + if t in TRI_COORDS:continue + assert cur[r]==F + add(v+t,r,coef,F) +# requests are needed for TRI coefficients +requests=defaultdict(list) +for pid,pair in enumerate(pairs): + if not pair['selected']:continue + (t,u),(key1,key2),mat=pair['targets'],pair['keys'],pair['matrix'] + requests[key1].append((t,-Q(mat[0][0],2))) + requests[key2].append((u,-Q(mat[0][1],2))) +reqcoef={t:(key,coef) for key,reqs in requests.items() for t,coef in reqs} +def face_info(c,p,eps): + z=blocks[c];keys=[(pp,ee) for pp in it.combinations(c,2) for ee in (-1,1)] + r_local,alpha=z['outputs'][keys.index((p,eps))] + j=[j for j in range(40,len(z['events'])) if z['events'][j][0]==r_local];assert len(j)==1 + return j[0],Q(alpha) +tri_join_counts=Counter() +lcopy={} +for s8 in COPYL: + r=s8+8;c=alloc();add(c,r,1,cur[r]);lcopy[r]=c +for tr in TRI['triangles']: + p,eps=tuple(tr['p']),tr['e'] + for t8,blk,loc in tr['reads']: + t=t8+8;blk=tuple(blk);r=maps[blk][loc];r0=r;r=lcopy.get(r,r) + key,coef=reqcoef[t];assert key[1]==p and key[2]==eps,(key,p,eps) + if blk==key[0]: + rr,c0,F0=own_rows[t];assert rr==r0;q=c0 + else: + j,alpha=face_info(blk,p,eps);ev=blocks[blk]['events'][j];assert loc in ev[:2] + q=coef*alpha + F=basis(cur[v+t]+cur[r]);assert inside(F,hyper(P[t])),('TRI frame',t) + tri_join_counts[len(F)]+=1;add(v+t,r,q,F) + +packets={} +for c,z in sorted(blocks.items()): + mp=maps[c] + keys=[(p,eps) for p in it.combinations(c,2) for eps in (-1,1)] + skipev={face_info(c,p,eps)[0] for p,eps in keys if (p,eps) in FULLT} + for j,(e,F) in enumerate(list(zip(z['events'],z['event_frames']))[40:]): + if j not in early[c] and 40+j not in skipev: + t,s,a,b=e;add(mp[t],mp[s],Q(a,b),tuple(F)) + for key,(r,alpha) in zip(keys,z['outputs']): + if tuple(key) in FULLT:skip();continue + a=mp[r];b=alloc();add(b,a,1,cur[a]) + consumers=sorted(d for d in blocks if d!=c and set(key[0])<=set(d)) + assert len(consumers)==2 + for target,r in zip(consumers,(a,b)):packets[c,key[0],key[1],target]=(r,Q(alpha)) + +# Both tetrahedra use the same partition. A selected key has exactly two +# selected Y loads and no ordinary M consumer. Supply its two raw halves in +# opposite orders and never form that M. Other keys retain the old M path. +second=[];first_join_counts=Counter() +for key,reqs in sorted(requests.items()): + assert len(reqs)==2 + c,p,eps=key + if (p,eps) in FULLT:continue + ds=sorted(d for d in blocks if d!=c and set(p)<=set(d));a,b=ds + for j,(target,coef) in enumerate(sorted(reqs)): + first_source,second_source=(a,b) if j==0 else (b,a) + r,alpha=packets[first_source,p,eps,second_source] + F=basis(cur[v+target]+cur[r]);assert inside(F,hyper(P[target])) + first_join_counts[len(F)]+=1;add(v+target,r,coef*alpha,F) + r,alpha=packets[second_source,p,eps,c] + second.append((target,r,coef*alpha)) + +Ms={} +for c in sorted(blocks): + for p in it.combinations(c,2): + ds=sorted(d for d in blocks if d!=c and set(p)<=set(d)) + for eps in (-1,1): + if (c,p,eps) in requests:continue + (a,alpha),(b,beta)=[packets[d,p,eps,c] for d in ds] + F=basis(cur[a]+cur[b]);add(a,b,beta/alpha,F) + Ms[c,p,eps]=(a,alpha) + +consumers=defaultdict(list) +for pid,pair in enumerate(pairs): + for key in pair['keys']:consumers[key].append(pid) +slots={} +for key,uses in sorted(consumers.items()): + assert len(uses)==2 + if key in requests: + assert all(pairs[i]['selected'] for i in uses) + continue + assert all(not pairs[i]['selected'] for i in uses) + a,alpha=Ms[key] + for j,pid in enumerate(uses): + if j==0:r=a + else:r=alloc();add(r,a,1,cur[a]) + slots[pid,key]=(r,alpha) +assert len(cur)-240==NH,len(cur)-240 + +selected_join_counts=Counter() +for target,r,coef in second: + F=basis(cur[v+target]+cur[r]);assert inside(F,hyper(P[target])) + selected_join_counts[len(F)]+=1;add(v+target,r,coef,F) +output_basis=[] +for pair in pairs: + if not pair['selected']:continue + (t,u),mat=pair['targets'],pair['matrix'] + F=basis(cur[v+t]+cur[v+u]);assert inside(F,hyper(P[t])) and inside(F,hyper(P[u])) + add(v+t,v+u,1,F);add(v+u,v+t,-Q(1,2),F) + z=-Q(2*mat[1][0],mat[0][0]);scale(v+u,z,F);output_basis.append((t,u,z)) + +for pid,pair in enumerate(pairs): + if pair['selected']:continue + (t,u),(key1,key2),mat=pair['targets'],pair['keys'],pair['matrix'] + (a,alpha),(b,beta)=slots[pid,key1],slots[pid,key2] + F=basis(cur[a]+cur[b]);aa,ab=Q(mat[0][0])*alpha,Q(mat[0][1])*beta + ba,bb=Q(mat[1][0])*alpha,Q(mat[1][1])*beta + add(a,b,ab/aa,F);q=ba/(bb-ba*ab/aa);add(b,a,q,F) + add(v+t,a,-aa/2,hyper(P[t]));add(v+u,b,-(bb-ba*ab/aa)/2,hyper(P[u])) + +for t in range(v): + expected={s:-Q(G[t][s],2) for s in range(v) if s!=t and G[t][s] and s not in frame.values()} if t not in frame.values() else {} + assert rows[v+t]==expected,('side identity',t) + +scatter=[[Q(r[i],4) if t not in frame.values() else Q(0) for i in range(8)]+[Q(t==frame[i]) for i in range(8)] for t,r in enumerate(R)] +precondition=[] +for t,u,z in output_basis: + a,b=scatter[t].copy(),scatter[u].copy() + scatter[t]=[x/2-y/z for x,y in zip(a,b)] + scatter[u]=[x/2+y/z for x,y in zip(a,b)] + precondition.extend([['scale',v+u,(1/z).numerator,(1/z).denominator,[]], + ['add',v+u,v+t,1,2,[]],['add',v+t,v+u,-1,1,[]]]) +for r in range(len(cur)):climb(r,hyper(P[r-v]) if v<=r<2*v else FULL) +H[8]+=8;H[1]+=8 +assert sum(r*z for r,z in H.items())==9*NH+240*8+72,sum(r*z for r,z in H.items()) + +def apply(e,matrix): + if e[0]=='add': + _,t,s,a,b,*_=e;q=Q(a,b) + for j,x in list(matrix[s].items()): + z=matrix[t].get(j,Q(0))+q*x + if z:matrix[t][j]=z + else:matrix[t].pop(j,None) + else: + _,t,a,b,*_=e;q=Q(a,b);matrix[t]={j:q*x for j,x in matrix[t].items()} +def inverse(e): + e=copy.deepcopy(e) + if e[0]=='add':e[3]*=-1 + else:e[2],e[3]=e[3],e[2] + e[-1]=list(FULL);return e +cut=[['add',v+t,centers[i],q.numerator,q.denominator,None] for t,row in enumerate(scatter) for i,q in enumerate(row) if q] +cleanup=[inverse(e) for e in reversed(A+B) if not v<=e[1]<2*v] +matrix=[{r:Q(1)} if r>i)&1);u=q^(1<>i&1 else 0)for i in order]+[1<0 and all(x['R']==R for x in registry.values()),'providers disagree on helper count R' + assert replay['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + assert replay['canonical_word_sha256']==sha(directory/'CANONICAL-WORD.json.gz')and replay['local_programs_sha256']==sha(directory/'LOCAL-PROGRAMS.json.gz') + widths=[len(pc['frames'][pc['final'][2*V+h]])-len(pc['frames'][pc['start'][2*V+h]])for h in range(R)] # HPE: residual width |final|-|start| + assert widths==plan['provider_registry'][provider_id]['widths'] + for name in provider_files: + value=sha(directory/name);assert value==plan['provider_registry'][provider_id]['artifact_sha256'][name] + source_artifacts[f'providers/{provider_id}/{name}']=value + registry[provider_id]=dict(local_programs=programs,canonical_word_sha256=sha(directory/'CANONICAL-WORD.json.gz'),local_programs_sha256=sha(directory/'LOCAL-PROGRAMS.json.gz'),local_program_checks=checks,exact_local_clifford_recipe_sha256=sha(directory/'CLIFFORD-RECIPES.json'),residual_adapter_sha256=sha(directory/'RESIDUAL-ADAPTERS.json'),v=V,h=9,R=R,ports=pc['ports'],centers=pc['centers'],widths=widths) +assert len(roles)==72*R # one whole-owner role per (call, provider helper) +selected={(c['stage'],c['replica']):c for c in plan['provider_calls']} +assert len(selected)==72 and set(selected)==set(call_order) +assert Counter(c['provider']for c in selected.values())==COUNTS +per_call_widths={(c['stage'],c['replica']):c['widths']for c in plan['per_call_widths']} +for key,c in selected.items(): + assert c['time']==at[key] and c['provider']in registry + assert per_call_widths[key]==registry[c['provider']]['widths'] +for key in('local_programs','exact_local_clifford_recipe_sha256','residual_adapter_sha256'):t.pop(key) +t['local_providers']=registry +rank={z['child']:z['rank']for z in parent['idle_children']};side={};pairs={} +for e in parent['execution_schedule']: + if e['kind']=='idle_cover_sweep': + for sd,ch in enumerate(e['child_indices']):side[ch]=sd;pairs[ch]=e['pair'] +bycall=defaultdict(dict);used=defaultdict(set);sigmas={};digest=hashlib.sha256();entering=0 +for z in roles: + s,rep,h=z['stage'],z['replica'],z['helper'];i,cp,off,w,f=z['child'],z['copy'],z['offset'],z['width'],z['family'];orp,port=divmod(cp,V) + assert 0<=s<9 and 0<=rep=0 and off+w<=rank[i] + assert z['time']==at[s,rep] and z['time'] in plan['windows'][f'{orp},{i}'][1] + B=OH.idle_basis(canon['ports'][port]);pending=list(map(int,ph['recipes'][port]['idle_children'][i]['orthogonal_axes']));assert len(pending)==rank[i] + occ=[B.index(v)for v in pending[off:off+w]];sp=OH.spectators(canon['ports'][port],pending,off,w)if w<9 else[] + order=occ+sp+[j for j in range(M)if j not in occ and j not in sp];assert len(order)==len(set(order))==M + sigma=[B[j]for j in order];sigmahash=hashlib.sha256(json.dumps(sigma,separators=(',',':')).encode()).hexdigest();sigmas[sigmahash]=sigma + route=[4,i,off,w,sp]if w<9 else[3,i,off];bycall[s,rep][h]=[f,route];entering+=w<9 + cells=set(range(off,off+w));assert not used[i,orp,port]&cells;used[i,orp,port]|=cells + digest.update(json.dumps([s,rep,h,f,sigmahash],separators=(',',':')).encode()+b'\n') +for c in t['calls']: + k=(c['stage'],c['replica']);assert set(bycall[k])==set(range(R)) + c['owners']=c['owners'][:(2*V)]+[bycall[k][h]for h in range(R)];assert len({f for f,r in c['owners']})==2*V+R and all(f2*max(paid)**2 + +assert all(c['local_program_sha256']==registry[c['provider_id']]['local_program_checks'][c['orientation']]['sha256']for c in t['calls']) +t['provider_dispatch']='For each indivisible local_cover_sweep, execute local_providers[call.provider_id].local_programs[call.orientation] with that provider residual adapters and Clifford recipes. The sweep provider_id must equal its call provider_id.' +raw=json.dumps(t,sort_keys=True,separators=(',',':')).encode();(OUT/'GLOBAL-TEMPLATE.json.gz').write_bytes(gzip.compress(raw,mtime=0)) +res=dict(status='EMITTED_MIXED_PROVIDER_ASYNCHRONOUS_WHOLE_OWNER_COMPLEX_TEMPLATE', + template_sha256=hashlib.sha256(raw).hexdigest(), + parent_template_sha256=hashlib.sha256(gzip.decompress((BASE/'split-centres/GLOBAL-TEMPLATE.json.gz').read_bytes())).hexdigest(), + live=DATA,physical=physical,global_profile=dict(sorted(paid.items())), + rank_mass=sum(r*n for r,n in paid.items()),deficit=2560,maxchild=max(paid), + hosted_residuals=len(roles),banks_per_stage=[0]*9,entering_helper_roles=entering, + unique_actual_73column_sigmas=len(sigmas),sigma_stream_sha256=digest.hexdigest(), + cross_replica_helper_roles=sum(z['replica']!=z['owner_replica']for z in roles), + asynchronous_order_sha256=hashlib.sha256(json.dumps(call_order,separators=(',',':')).encode()).hexdigest(), + source_artifacts=source_artifacts,provider_counts=dict(Counter(c['provider_id']for c in t['calls'])), + scope='Two actual verified plain/width-seven providers dispatched per complete invocation; independent controller/spectator/normalization and complete finite invoice admission required.') +(OUT/'HOSTED.json').write_text(json.dumps(res,indent=2)+'\n');(OUT/'ACTUAL-SIGMAS.json.gz').write_bytes(gzip.compress(json.dumps(sigmas,separators=(',',':')).encode(),mtime=0));print(json.dumps(res,indent=2)) diff --git a/research/complex-571-cold14-k492/code/generated_identity.py b/research/complex-571-cold14-k492/code/generated_identity.py new file mode 100644 index 0000000000..74a9b60479 --- /dev/null +++ b/research/complex-571-cold14-k492/code/generated_identity.py @@ -0,0 +1,62 @@ +"""Proof-relevant identities for generated artifacts, independent of gzip streams. + +Immutable source archives retain their exact byte hashes. For freshly emitted +artifacts, gzip identity is the exact decompressed payload and JSON identity +retains every field. Only CLIFFORD-REVIEW's root timing field is excluded. +Literal receipt references are checked against actual files before replacing +the three gzip references (and the phase recipe reference) with content hashes. +Prepared with OpenAI Codex assistance; Apache-2.0. +""" +from pathlib import Path +import copy +import gzip +import hashlib +import json +import math + +if not __debug__: + raise RuntimeError('Assertions must remain enabled') + +FILES=('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json', + 'CLIFFORD-REVIEW.json','RESIDUAL-ADAPTERS.json') + +def sha(path): + return hashlib.sha256(Path(path).read_bytes()).hexdigest() + +def json_identity(value): + return hashlib.sha256(json.dumps(value,sort_keys=True,separators=(',',':'),allow_nan=False).encode('utf-8')).hexdigest() + +def payload_identity(path): + return hashlib.sha256(gzip.decompress(Path(path).read_bytes())).hexdigest() + +def phase_value(directory,value=None): + directory=Path(directory) + value=copy.deepcopy(json.loads((directory/'CLIFFORD-REVIEW.json').read_bytes())if value is None else value) + assert value['canonical_word_sha256']==sha(directory/'CANONICAL-WORD.json.gz'),'stale phase canonical word reference' + assert value['recipe_sha256']==sha(directory/'CLIFFORD-RECIPES.json'),'stale phase recipe reference' + seconds=value.pop('seconds') + assert type(seconds)in(int,float) and math.isfinite(seconds) and seconds>=0,'invalid phase timing metadata' + value['canonical_word_sha256']=payload_identity(directory/'CANONICAL-WORD.json.gz') + value['recipe_sha256']=json_identity(json.loads((directory/'CLIFFORD-RECIPES.json').read_bytes())) + return value + +def native_value(directory,value=None): + directory=Path(directory) + value=copy.deepcopy(json.loads((directory/'INDEPENDENT-LOCAL-REPLAY.json').read_bytes())if value is None else value) + for field,name in [('canonical_word_sha256','CANONICAL-WORD.json.gz'),('local_programs_sha256','LOCAL-PROGRAMS.json.gz')]: + assert value[field]==sha(directory/name),'stale native artifact reference: '+field + value[field]=payload_identity(directory/name) + return value + +def artifact_identities(directory): + directory=Path(directory) + result={} + for name in FILES: + path=directory/name + if name.endswith('.gz'): + result[name]=payload_identity(path) + else: + value=phase_value(directory)if name=='CLIFFORD-REVIEW.json'else native_value(directory)if name=='INDEPENDENT-LOCAL-REPLAY.json'else json.loads(path.read_bytes()) + result[name]=json_identity(value) + return result diff --git a/research/complex-571-cold14-k492/code/generated_identity_controls.py b/research/complex-571-cold14-k492/code/generated_identity_controls.py new file mode 100644 index 0000000000..b4c133c107 --- /dev/null +++ b/research/complex-571-cold14-k492/code/generated_identity_controls.py @@ -0,0 +1,228 @@ +"""Actual gzip/receipt portability and consistently rebound semantic controls. + +Only scratch copies of generated provider files are changed. Each assembly +control recomputes raw artifact links, all seven portable identities and the +owner/invoice digests. This tests identity admission, not a replacement for the +full physical replay. Prepared with OpenAI Codex assistance; Apache-2.0. +""" +import argparse +import copy +import gzip +import hashlib +import json +import math +import shutil +import tempfile +from pathlib import Path + +import os +assert os.environ.get('GAIN_PR564_SOURCE'), 'Explicit engine source required' +from assemble import assemble +from witness import PROVIDERS,SPOT +from generated_identity import FILES, artifact_identities, json_identity, sha + +if not __debug__: + raise RuntimeError('Assertions required; refusing optimized verification') + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def write_json(path, value): + # Nonfinite numbers are emitted only by deliberate invalid-timing controls. + path.write_text(json.dumps(value, indent=2)+'\n', encoding='utf-8', newline='\n') + + +def write_gzip(path, value): + payload = json.dumps(value, sort_keys=True, separators=(',', ':')).encode() + path.write_bytes(gzip.compress(payload, compresslevel=1, mtime=123456789)) + + +def refresh_links(directory): + """Rebind only the three actual gzip references and the phase recipe link.""" + native = read(directory/'INDEPENDENT-LOCAL-REPLAY.json') + native['canonical_word_sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + native['local_programs_sha256'] = sha(directory/'LOCAL-PROGRAMS.json.gz') + write_json(directory/'INDEPENDENT-LOCAL-REPLAY.json', native) + phase = read(directory/'CLIFFORD-REVIEW.json') + phase['canonical_word_sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + phase['recipe_sha256'] = sha(directory/'CLIFFORD-RECIPES.json') + write_json(directory/'CLIFFORD-REVIEW.json', phase) + + +def rebound(owner, invoice, pid, directory): + """Return complete consistent receipt links to the changed actual files.""" + identities = artifact_identities(directory) + o, i = copy.deepcopy(owner), copy.deepcopy(invoice) + p = i['providers'][pid] + for name in FILES: + raw = sha(directory/name) + p['artifacts'][name] = raw + o['source_artifacts']['providers/'+pid+'/'+name] = raw + p['semantic_artifact_sha256'] = identities + o['provider_artifact_semantic_sha256'][pid] = identities + phase = identities['CLIFFORD-REVIEW.json'] + o['provider_phase_semantic_sha256'][pid] = phase + i['provider_phase_semantic_sha256'][pid] = phase + owner_hash = json_identity(o) + i['owner_audit_sha256'] = owner_hash + return o, i, owner_hash, json_identity(i), identities + + +def run(base, audit, out, provider_root=None): + assert not out.exists() + out.parent.mkdir(parents=True, exist_ok=True) + source = provider_root or base/'providers' + owner_path, invoice_path = audit/'OWNERS-AND-PROFILE.json', audit/'PREFIX-AND-INVOICE.json' + owner, invoice = read(owner_path), read(invoice_path) + baseline = assemble(owner, invoice, sha(owner_path), sha(invoice_path)) + accepted, rejected, references, source_identities = [], [], [], {} + raw_changed = {} + with tempfile.TemporaryDirectory(prefix='generated-identity-controls-', dir=out.parent) as td: + scratch = Path(td) + for pid in sorted(PROVIDERS): + original = source/pid + ids = artifact_identities(original) + assert ids == PROVIDERS[pid]['artifact_semantic_sha256'] + source_identities[pid] = dict(raw={name:sha(original/name) for name in FILES}, semantic=ids) + # The optional provider-root can use another Python/zlib environment. + o, i, oh, ih, _ = rebound(owner, invoice, pid, original) + assert assemble(o, i, oh, ih)['kappa'] == baseline['kappa'] + + def fresh(tag): + directory = scratch/(pid+'-'+tag) + directory.mkdir() + for name in FILES: + shutil.copyfile(original/name, directory/name) + return directory + + def reject_semantics(tag, mutate, changed_file): + directory = fresh(tag) + mutate(directory) + refresh_links(directory) + o, i, oh, ih, new_ids = rebound(owner, invoice, pid, directory) + assert new_ids[changed_file] != ids[changed_file], (tag, 'mutation disappeared from identity') + try: + assemble(o, i, oh, ih) + except AssertionError: + rejected.append(dict(provider=pid, case=tag, changed_identity=changed_file, + all_raw_and_semantic_links_rebound=True)) + else: + raise AssertionError('semantic mutation accepted: '+tag) + + def json_mutation(name, change): + def mutate(directory): + value = read(directory/name) + change(value) + write_json(directory/name, value) + return mutate + + directory = fresh('recompression') + changed = [] + for name in ('CANONICAL-WORD.json.gz', 'LOCAL-PROGRAMS.json.gz'): + before = (directory/name).read_bytes() + payload = gzip.decompress(before) + after = gzip.compress(payload, compresslevel=1, mtime=123456789) + assert after != before and gzip.decompress(after) == payload + (directory/name).write_bytes(after) + changed.append(name) + refresh_links(directory) + o, i, oh, ih, new_ids = rebound(owner, invoice, pid, directory) + assert new_ids == ids + assert assemble(o, i, oh, ih)['kappa'] == baseline['kappa'] + accepted.append(dict(provider=pid, case='recompressed_same_payloads', changed_raw_artifacts=changed, + all_seven_identities_unchanged=True, all_raw_links_rebound=True)) + raw_changed[pid] = {name:[sha(original/name),sha(directory/name)] for name in changed} + + # A stale literal link must fail before any normalization can hide it. + for tag, name, receipt, field in ( + ('stale_native_word_link','CANONICAL-WORD.json.gz','INDEPENDENT-LOCAL-REPLAY.json','canonical_word_sha256'), + ('stale_native_program_link','LOCAL-PROGRAMS.json.gz','INDEPENDENT-LOCAL-REPLAY.json','local_programs_sha256'), + ('stale_phase_word_link','CANONICAL-WORD.json.gz','CLIFFORD-REVIEW.json','canonical_word_sha256'), + ('stale_phase_recipe_link','CLIFFORD-RECIPES.json','CLIFFORD-REVIEW.json','recipe_sha256')): + directory = fresh(tag) + value = read(directory/receipt) + value[field] = '0'*64 + write_json(directory/receipt, value) + try: + artifact_identities(directory) + except AssertionError: + references.append(dict(provider=pid, case=tag, rejected_before_projection=True)) + else: + raise AssertionError('stale literal reference normalized away: '+tag) + + def change_scalar(directory): + programs = read(directory/'LOCAL-PROGRAMS.json.gz') + event = next(e for e in programs['forward'] if e[0]=='scalar' and e[1][0]=='add') + event[1][3] = -event[1][3] + write_gzip(directory/'LOCAL-PROGRAMS.json.gz', programs) + reject_semantics('changed_actual_scalar', change_scalar, 'LOCAL-PROGRAMS.json.gz') + + def change_frame(directory): + word = read(directory/'CANONICAL-WORD.json.gz') + r = 2*112 + SPOT[2] # PR558 helper 294 (register 518) or its helper-map image: an entering helper + old = word['start'][r] + replacement = next(j for j,f in enumerate(word['frames']) + if j != old and len(f) == len(word['frames'][old])) + word['start'][r] = replacement + write_gzip(directory/'CANONICAL-WORD.json.gz', word) + reject_semantics('changed_actual_start_frame_same_rank', change_frame, 'CANONICAL-WORD.json.gz') + reject_semantics('native_false_restoration', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['local']['forward'].__setitem__('private_work_erased',False)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('native_wrong_column_count', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['local']['backward'].__setitem__('all_exact_columns',x['local']['backward']['all_exact_columns']-1)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('native_changed_profile', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x['paid_profiles']['forward'].__setitem__('1',x['paid_profiles']['forward']['1']+1)), + 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('phase_false_global_equality', json_mutation('CLIFFORD-REVIEW.json', + lambda x:x.__setitem__('all_child_equalities_include_global_phase',False)), + 'CLIFFORD-REVIEW.json') + + # This event hash is proof data, even when its value equals a gzip hash. + def change_event_hash(directory): + value = read(directory/'LOCAL-CHECKS.json') + value['forward']['sha256'] = sha(directory/'CANONICAL-WORD.json.gz') + write_json(directory/'LOCAL-CHECKS.json', value) + assert artifact_identities(directory)['LOCAL-CHECKS.json'] == json_identity(value) + reject_semantics('local_event_hash_is_not_a_container_reference', change_event_hash, 'LOCAL-CHECKS.json') + reject_semantics('unrelated_native_root_seconds_retained', json_mutation('INDEPENDENT-LOCAL-REPLAY.json', + lambda x:x.__setitem__('seconds',7)), 'INDEPENDENT-LOCAL-REPLAY.json') + reject_semantics('nested_phase_seconds_retained', json_mutation('CLIFFORD-REVIEW.json', + lambda x:x.__setitem__('additional_evidence',{'seconds':7})), 'CLIFFORD-REVIEW.json') + + for tag,value in [('negative',-1),('boolean',True),('string','1'),('nan',float('nan')), + ('infinity',float('inf'))]: + directory = fresh('invalid-timing-'+tag) + phase = read(directory/'CLIFFORD-REVIEW.json');phase['seconds'] = value + write_json(directory/'CLIFFORD-REVIEW.json', phase) + try: + artifact_identities(directory) + except AssertionError: + references.append(dict(provider=pid,case='invalid_phase_seconds_'+tag, + rejected_before_projection=True)) + else: + raise AssertionError('invalid timing silently erased: '+tag) + n=len(PROVIDERS) + assert len(accepted)==n and len(rejected)==9*n and len(references)==9*n + assert {x['provider']for x in accepted}=={x['provider']for x in rejected}=={x['provider']for x in references}==set(PROVIDERS) + report=dict(status='PASS_GENERATED_ARTIFACT_RECOMPRESSION_AND_REBOUND_MUTATIONS', + kappa=baseline['kappa'], source_owner_sha256=sha(owner_path),source_invoice_sha256=sha(invoice_path), + source_providers=source_identities,recompression_changed_raw_hashes=raw_changed, + accepted=accepted,semantic_mutations_rejected=rejected,invalid_references_or_metadata_rejected=references, + counts=dict(recompression_accepted=n,semantic_rejected=9*n,reference_or_metadata_rejected=9*n), + scope='Actual copied gzip streams and receipt JSON are changed. All seven content identities, raw source links and owner/invoice digests are recomputed consistently before assembly. Only identical decompressed payloads are accepted; scalar, same-rank frame, native proof fields, global phase, event hashes and unrelated seconds remain pinned. Literal references and invalid phase timing are rejected before normalization. Full physical replay remains a separate prerequisite.') + write_json(out,report) + print(report['status'],report['counts']) + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + for name in ('base','audit','out'): + parser.add_argument('--'+name,type=Path,required=True) + parser.add_argument('--provider-root',type=Path) + args=parser.parse_args() + run(args.base,args.audit,args.out,args.provider_root) diff --git a/research/complex-571-cold14-k492/code/hpe_adapters_local.py b/research/complex-571-cold14-k492/code/hpe_adapters_local.py new file mode 100644 index 0000000000..8f77ccf02d --- /dev/null +++ b/research/complex-571-cold14-k492/code/hpe_adapters_local.py @@ -0,0 +1,116 @@ +"""Paid residual wrappers for entering helpers (Lemma A): generation and independent decoding. Apache-2.0. +Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. The wrapper construction follows PR #458 +(chafreaky): a helper that starts at frame E and ends at FULL has the physical residual S_E = T_FULL T_E^-1 (apply T_E^-1 first); +S_E = L_E (C_[w] x I) R_E with R_E applied first; the wrappers R_E^-1 before the whole local invocation and L_E^-1 after its +full-frame cleanup turn the residual into the coordinate factor C_[w] x I and restore the other 9 - w coordinates identically. +usage: adapters_gk.py CANONICAL-WORD.json.gz RESIDUAL-ADAPTERS.json OUT-LEMMA-A.json +Writes the recipes (generation uses clifford_exact.lower_child) and then DECODES the serialized monomials with the primitive +constructors of clifford_exact (not lower_child) and checks, for every entrance frame, that L_E^-1 S_E R_E^-1 has exactly the +tableau and zero-state vector (global phase included) of fourier(9, range(w)); mutated recipes (wrong phase, swapped sides, wrong +translation, wrong width) must be rejected.""" +import copy, gzip, json, sys +from pathlib import Path +# Package-path adaptation only; the exact wrapper mathematics is unchanged. +import os +R = Path(os.environ['MULTICOLD_SOURCE']) / 'vendor/pr558/vendor/pr552/complex-global/vendor531' # HPE: the pinned vendor531 clifford_exact +sys.path.insert(0, str(R / 'vendor/clifford')) +from clifford_exact import canonical_frame, lower_child, fourier, diag, perm, xgate, Op, identity +n = 9; FULL = tuple(1 << i for i in range(n)) +def monomial_op(rec): + """decode a serialized monomial (matrix rows, quadratic rows, Z4 linear part, translation, phase)""" + out = diag(n, tuple(rec['quadratic_rows']), tuple(rec['linear_Z4'])).then(perm(n, tuple(rec['matrix_rows']))).then(xgate(n, rec['offset'])) + return out.then(Op(n, identity(n), [('phase', rec['phase'])])) +def S_of(U, END=FULL): + # HPE: a helper that starts at E=U and ends at END has residual T_END T_E^-1 (END = FULL is the inherited case) + return canonical_frame(n, tuple(U)).adjoint().then(canonical_frame(n, tuple(END))) +def wrapped_ok(U, rec, END=FULL): + """exactly: L^-1 S R^-1 = C_[w] x I (apply order: R^-1, S, L^-1), w = dim END - dim E""" + w = len(END) - len(U); S = S_of(U, END); Rm = monomial_op(rec['right']); Lm = monomial_op(rec['left']) + net = Rm.adjoint().then(S).then(Lm.adjoint()); target = fourier(n, range(w)) + return rec['rank'] == w and net.tab == target.tab and net.zero_state() == target.zero_state() +def _contains(a, b): + a = list(a) + for x in b: + for y in sorted(a, reverse=True): + if x >> (y.bit_length() - 1) & 1: x ^= y + if x: return False + return True +def main(): + c = json.load(gzip.open(sys.argv[1])); frames = c['frames']; v = c['v'] + starts = sorted({c['start'][r] for r in range(2 * v, len(c['start'])) if c['start'][r] != 0 and c['final'][r] == 1}) + # HPE: (entrance, terminal) pairs of helpers ending at a proper subspace; key 'E:U'. Inherited words have none. + ends = sorted({(c['start'][r], c['final'][r]) for r in range(2 * v, len(c['start'])) if c['final'][r] != 1}) + # COLD-HPE: e == 0 (a cold helper, entrance = bottom, T_0 = I) is allowed: the (0, U) recipe is keyed '0:U' + assert all(len(frames[u]) < n and _contains(frames[u], frames[e]) for e, u in ends) + cold_ends = [(e, u) for e, u in ends if e == 0] + recipes = {} + for f in starts: + U = frames[f]; rec, compiled = lower_child(S_of(U)) + recipes[str(f)] = dict(frame=f, vectors=list(U), entrance_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + for e, u in ends: + E, U = frames[e], frames[u]; rec, compiled = lower_child(S_of(E, U)) + recipes['%d:%d' % (e, u)] = dict(frame=e, terminal=u, vectors=list(E), terminal_vectors=list(U), entrance_rank=len(E), + terminal_rank=len(U), rank=rec['rank'], left=rec['left'], right=rec['right']) + Path(sys.argv[2]).write_text(json.dumps(dict(status='RESIDUAL_ADAPTER_RECIPES', recipes=recipes), sort_keys=True, separators=(',', ':')) + '\n') + # ---- independent decode of the serialized file + data = json.loads(Path(sys.argv[2]).read_text())['recipes'] + dot = lambda a, b: bin(a & b).count('1') & 1 + detail = [] + for f in starts: + rec = data[str(f)]; U = frames[f] + assert wrapped_ok(U, rec), ('wrapper product is not C_[w] x I', f) + detail.append(dict(frame=f, entrance_rank=len(U), residual_width=n - len(U), vectors=list(U), all_even_weight=all(bin(x).count('1') % 2 == 0 for x in U), + totally_isotropic=all(dot(a, b) == 0 for a in U for b in U))) + hdetail = [] + for e, u in ends: # HPE: independent decode, residual width = dim U - dim E + rec = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + assert wrapped_ok(E, rec, U), ('HPE wrapper product is not C_[w] x I', e, u) + hdetail.append(dict(frame=e, terminal=u, entrance_rank=len(E), terminal_rank=len(U), residual_width=len(U) - len(E))) + controls = [] + def reject(name, fn): + f = starts[0]; rec = copy.deepcopy(data[str(f)]); fn(rec) + if wrapped_ok(frames[f], rec): raise AssertionError('mutated wrapper accepted: ' + name) + controls.append(name) + reject('wrong global phase', lambda r: r['right'].__setitem__('phase', (r['right']['phase'] + 1) % 4)) + reject('wrong translation', lambda r: r['left'].__setitem__('offset', r['left']['offset'] ^ 1)) + reject('wrong quadratic form', lambda r: r['right'].__setitem__('quadratic_rows', [x ^ 2 if i == 0 else x for i, x in enumerate(r['right']['quadratic_rows'])]) if False else r['right']['linear_Z4'].__setitem__(0, (r['right']['linear_Z4'][0] + 2) % 4)) + reject('sides swapped', lambda r: (r.__setitem__('left', r['right']), r.__setitem__('right', r['left']))) + reject('wrong width', lambda r: r.__setitem__('rank', r['rank'] + 1)) + if ends: # HPE controls on the first (E, U) pair + e, u = next((p for p in ends if p[0] != 0), ends[0]); rec0 = data['%d:%d' % (e, u)] # COLD-HPE: an entering pair if any (= ends[0] without cold ends) + def hreject(name, ok): + if ok: raise AssertionError('HPE mutation accepted: ' + name) + controls.append(name) + hreject('hpe: U-wrapper decoded against a FULL ending', wrapped_ok(frames[e], rec0)) + hreject('hpe: width misreported as 9 - dim E', wrapped_ok(frames[e], dict(rec0, rank=n - len(frames[e])), frames[u])) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u]) and _contains(frames[f], frames[e])) + hreject('hpe: wrong terminal hyperplane', wrapped_ok(frames[e], rec0, frames[other])) + fe = next(((e2, u2) for e2, u2 in ends if str(e2) in data), None) + if fe: # an entrance shared with FULL-ended helpers: R_{E,FULL} must not serve as R_{E,U} + r2 = data['%d:%d' % fe] + hreject('hpe: pre wrapper resolved to the FULL recipe R_{E,FULL}', wrapped_ok(frames[fe[0]], dict(r2, right=data[str(fe[0])]['right']), frames[fe[1]])) + hreject('hpe: wrong global phase', wrapped_ok(frames[e], dict(rec0, left=dict(rec0['left'], phase=(rec0['left']['phase'] + 1) % 4)), frames[u])) + if cold_ends: # COLD-HPE controls on the first cold pair (0, U): factor_iff_pre says only R_{0,U} itself may precede + e, u = cold_ends[0]; recc = data['%d:%d' % (e, u)]; E, U = frames[e], frames[u] + ID = dict(matrix_rows=[1 << i for i in range(n)], offset=0, quadratic_rows=[0] * n, linear_Z4=[0] * n, phase=0) + assert monomial_op(ID).tab == identity(n) # the control's wrapper really is the identity + def creject(name, ok): + if ok: raise AssertionError('cold HPE mutation accepted: ' + name) + controls.append(name) + creject('cold hpe: identity pre wrapper instead of R_{0,U}', wrapped_ok(E, dict(recc, right=ID), U)) + creject('cold hpe: identity post wrapper instead of L_{0,U}', wrapped_ok(E, dict(recc, left=ID), U)) + creject('cold hpe: no wrappers (cold FULL convention L = R = I)', wrapped_ok(E, dict(recc, left=ID, right=ID), U)) + creject('cold hpe: U-wrapper decoded against a FULL ending', wrapped_ok(E, recc)) + creject('cold hpe: width misreported as 9', wrapped_ok(E, dict(recc, rank=n), U)) + other = next(f for f in range(len(frames)) if f != u and len(frames[f]) == len(frames[u])) + creject('cold hpe: wrong terminal hyperplane', wrapped_ok(E, recc, frames[other])) + creject('cold hpe: wrong global phase', wrapped_ok(E, dict(recc, right=dict(recc['right'], phase=(recc['right']['phase'] + 1) % 4)), U)) + ent = next((p for p in ends if p[0] != 0 and p[1] == u), None) + same = lambda x, y: monomial_op(x).tab == monomial_op(y).tab and monomial_op(x).zero_state() == monomial_op(y).zero_state() + if ent and not same(data['%d:%d' % ent]['right'], recc['right']): # an entering helper ending at the same U: its R_{E,U} must not serve as R_{0,U} + creject('cold hpe: pre wrapper resolved to an entering recipe R_{E,U}', wrapped_ok(E, dict(recc, right=data['%d:%d' % ent]['right']), U)) + res = dict(status='PASS_RESIDUAL_WRAPPERS_ARE_EXACT', frames=len(detail), **({'hyperplane_end_pairs': hdetail} if ends else {}), **({'cold_hyperplane_end_pairs': len(cold_ends)} if cold_ends else {}), wrappers_reject=controls, all_even_weight=all(d['all_even_weight'] for d in detail), + all_totally_isotropic=all(d['totally_isotropic'] for d in detail), detail=detail) + Path(sys.argv[3]).write_text(json.dumps(res, indent=1) + '\n') + print('Lemma A (exact): L^-1 S_E R^-1 = C_[w] x I for', len(detail), 'entrance frames, global phase included;', len(controls), 'wrapper mutations rejected; all-even-weight:', res['all_even_weight']) +if __name__ == '__main__': main() diff --git a/research/complex-571-cold14-k492/code/hpe_audit_and_transport.py b/research/complex-571-cold14-k492/code/hpe_audit_and_transport.py new file mode 100644 index 0000000000..d5d3509d90 --- /dev/null +++ b/research/complex-571-cold14-k492/code/hpe_audit_and_transport.py @@ -0,0 +1,304 @@ +"""Rebuild arbitrary-dirt compensation and transport a changed local word. + +Prepared for icekylinx with GPT-6 Astra assistance. Apache-2.0. +Adapted from PR425/433 (icekylinx), PR484's audit_gk.py +(DreamingOfClouds), and Round19's 112-port transport. This auditor does not +import a constructor, a nominated compensation table, or a global price. +Only the changed scalar word and its actual frame chains are checked here. +""" +import argparse +import copy +import gzip +import hashlib +import json +import time +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def content_hash(path): + data = path.read_bytes() + return hashlib.sha256(gzip.decompress(data) if path.suffix == '.gz' else data).hexdigest() + + +def basis(vs): + pivots = {} + for x in vs: + for k in sorted(pivots, reverse=True): + if x >> k & 1: + x ^= pivots[k] + if x: + k = x.bit_length() - 1 + for j in pivots: + if pivots[j] >> k & 1: + pivots[j] ^= x + pivots[k] = x + return tuple(pivots[k] for k in sorted(pivots, reverse=True)) + + +def apply(e, rows): + if e[0] == 'scale': + _, target, a, b, *_ = e + q = Q(a, b) + assert q + rows[target] = {j: q*x for j, x in rows[target].items()} + else: + _, target, source, a, b, *_ = e + assert target != source + q = Q(a, b) + for j, x in list(rows[source].items()): + value = rows[target].get(j, Q(0)) + q*x + if value: + rows[target][j] = value + else: + rows[target].pop(j, None) + + +def inverse(e): + e = copy.deepcopy(e) + if e[0] == 'add': + e[3] *= -1 + else: + e[2], e[3] = e[3], e[2] + return e + + +def dual(e): + e = inverse(e) + if e[0] == 'add': + e[1], e[2] = e[2], e[1] + return e + + +def state_maps(prefix, n): + """P = exact state map of the prefix (precondition + compensation + A + cut + B), and P^-1 (rows as sparse dicts).""" + P = [{r: Q(1)} for r in range(n)] + for e in prefix: + apply(e, P) + Pinv = [{r: Q(1)} for r in range(n)] + for e in reversed(prefix): + apply(inverse(e), Pinv) + return P, Pinv + + +def cone_violations(P, Pinv, hpe, mapping, endB, final, frames): + """COLD-HPE / CONE PRE-CHECK. Necessary conditions for helper h (raw index) to end at U = final[h] under ANY + monotone common-frame cleanup of the end-of-B state P (frames only climb, every gate at a common frame): + row (J26-H dependency bound): every g in supp(row h of P^-1) has end-of-B frame <= U -- h is rebuilt from them; + column (dirt-column lemma): every g != h with P[g][h] != 0 has end-of-B frame <= U -- the column of P at h, + restricted to rows whose frame is not <= U, changes only by invertible row operations unless h is read at a + frame not <= U, so it can reach e_h only if it is already zero there. + Both are implied by the exact endpoint replay plus the frame checks below; here they fail FAST, with the reason.""" + inside = lambda a, b: basis(frames[a] + frames[b]) == frames[b] + viol = [] + for h in hpe: + U = final[mapping[h]] + viol += [('row', h, g) for g, x in sorted(Pinv[h].items()) if x and not inside(endB[mapping[g]], U)] + viol += [('column', h, g) for g in range(len(P)) if g != h and P[g].get(h) and not inside(endB[mapping[g]], U)] + return viol + + +def run(raw_path, routing_path, out): + start_time = time.monotonic() + word, routing = read(raw_path), read(routing_path) + v, h, helpers = word['report']['v'], word['report']['h'], word['report']['R'] + assert h == 9 and v == 112 and routing['v'] == v + n = 2*v + helpers + ident = lambda: [{r: Q(1)} for r in range(n)] + main = word['A'] + word['cut'] + word['B'] + assert all(not v <= e[2] < 2*v for e in word['A'] + word['B'] + if e[0] == 'add' and not v <= e[1] < 2*v) + matrix = ident() + for e in main: + apply(e, matrix) + dirty = [{} for _ in range(n)] + for r in range(v, 2*v): + dirty[r] = {j: x for j, x in matrix[r].items() if j >= 2*v} + for e in word['precondition']: + apply(e, dirty) + compensation = [['add', r, j, -q.numerator, q.denominator, []] + for r in range(v, 2*v) for j, q in sorted(dirty[r].items())] + entering = set(map(int, word.get('start_extra', {}))) + assert all(e[2] not in entering for e in compensation), 'zero-frame compensation reads an entering helper' + cleanup = [inverse(e) for e in reversed(word['A'] + word['B']) + if not v <= e[1] < 2*v] + if 'refactored_cleanup' in word: + # REFACTORED CLEANUP (cold low-frame ends): the cleanup is not the literal reversed inverse of A+B but another exact + # factorisation of the same inverse. Nothing about it is trusted: it may only touch non-target registers (T rows + # stay the compensated data accumulators), every gate is dyadic (checked below), and the arbitrary-dirt endpoint + # replay below must be exact in BOTH orientations for the full reordered program. Inherited words keep the literal + # assertion (the else branch), so their outputs are unchanged. + assert all(not v <= r < 2*v for e in word['cleanup'] for r in ([e[1]] + ([e[2]] if e[0] == 'add' else []))), 'refactored cleanup touches a target' + assert all(e[0] in ('add', 'scale') for e in word['cleanup']) + cleanup = word['cleanup'] + else: + assert [e[:-1] for e in cleanup] == [e[:-1] for e in word['cleanup']], 'cleanup is not the literal reversed inverse of A+B' + # HPE: hyperplane-ended helpers. 'early_cleanup' = [[cleanup index, frame vectors], ...] are cleanup gates executed + # right after B (before the final climbs) at the given frame; 'helper_final' = {helper: frame vectors} replaces FULL as + # that helper's terminal frame. The scalar program is the reordered one and is replayed exactly below, so a move that + # does not commute with the skipped cleanup prefix is rejected by the arbitrary-dirt endpoint assertion. + early = [(int(i), f) for i, f in word.get('early_cleanup', [])] + helper_final = {int(r): f for r, f in word.get('helper_final', {}).items()} + early_idx = [i for i, _ in early] + assert len(set(early_idx)) == len(early_idx) and all(0 <= i < len(cleanup) for i in early_idx) + assert all(2*v <= r < n for r in helper_final) + # COLD-HPE: a COLD helper (not in start_extra, entrance frame 0 = bottom) may also end at a proper subspace U. + # It is the E = bottom instance of #593's theorems: its wrappers are the (0, U) recipes R_{0,U}, L_{0,U} (checked + # exactly by hpe_adapters_local), emitted as residual_adapter events like an entering helper's. + cold_hpe = sorted(r for r in helper_final if r not in entering) + # COLD-HPE wrapper order: R_{0,U}^-1 is emitted with the entry adapters, after the zero-frame precondition and + # compensation, so (exactly as for an entering helper, asserted above) nothing before it may touch a cold-ended helper. + assert all(r not in set(cold_hpe) for e in word['precondition'] + compensation for r in ([e[1]] + ([e[2]] if e[0] == 'add' else []))), 'zero-frame precondition/compensation touches a cold hyperplane-ended helper before its wrapper' + # ENTERING helpers (start frame E != 0): their wrapper R_E^-1 precedes every gate on them, so the zero-frame precondition + # and compensation may not touch them either (mirrors hpe_emit_local's start-frame-0 rule here, at the scalar audit). + assert all(r not in entering for e in word['precondition'] + compensation for r in ([e[1]] + ([e[2]] if e[0] == 'add' else []))), 'zero-frame precondition/compensation touches an entering helper' + tail =[word['cleanup'][i][:-1] + [f] for i, f in early] + rest = [e for i, e in enumerate(word['cleanup']) if i not in set(early_idx)] + program = word['precondition'] + compensation + main + tail + rest + for backward in (False, True): + actual = ident() + for e in program: + apply(dual(e) if backward else e, actual) + expected = ident() + for t in range(v): + expected[t if backward else v+t][v+t if backward else t] = Q(-1 if backward else 1) + assert actual == expected, ('arbitrary-dirt endpoint', backward) + # The native scalar compiler allows dyadic additions and signed binary scales. + for e in program: + q = Q(e[3], e[4]) if e[0] == 'add' else Q(e[2], e[3]) + assert q.denominator & (q.denominator-1) == 0 + if e[0] == 'scale': + a = abs(q.numerator) + assert a and a & (a-1) == 0 + + tau = lambda x: x ^ (43 if (x & 43).bit_count() % 2 else 0) + ports = routing['ports'] + assert len(set(ports)) == v and set(map(tau, word['ports'])) == set(ports) + mapping = {i: ports.index(tau(p)) for i, p in enumerate(word['ports'])} + mapping.update({v+i: v+mapping[i] for i in range(v)}) + mapping.update({r: r for r in range(2*v, n)}) + full = tuple(1 << i for i in range(h-1, -1, -1)) + frames, frame_ids = [(), full], {(): 0, full: 1} + + def fid(vectors): + frame = basis(vectors) + if frame not in frame_ids: + frame_ids[frame] = len(frames) + frames.append(frame) + return frame_ids[frame] + + def transform(e): + e = copy.deepcopy(e) + e[1] = mapping[e[1]] + if e[0] == 'add': + e[2] = mapping[e[2]] + if e[-1] is not None: + e[-1] = fid([tau(x) for x in e[-1]]) + return e + + canonical = {key: [transform(e) for e in word[key]] + for key in ('A', 'B', 'cut', 'cleanup', 'precondition')} + canonical['compensation'] = [transform(e) for e in compensation] + if tail: + canonical['tail'] = [transform(e) for e in tail] # HPE (absent for inherited words: identical output) + canonical['cleanup'] = [transform(e) for e in rest] # HPE (full cleanup minus the early gates) + canonical['start'] = [fid([p]) for p in ports] + [0]*(v+helpers) + for r, frame in word.get('start_extra', {}).items(): + assert 2*v <= int(r) < n + canonical['start'][int(r)] = fid([tau(x) for x in frame]) + canonical['final'] = ([1]*v + + [fid(x for x in range(1, 1 << h) if (x & p).bit_count() % 2 == 0) for p in ports] + + [1]*helpers) + for r, frame in helper_final.items(): # HPE + canonical['final'][r] = fid([tau(x) for x in frame]) + canonical.update(h=h, v=v, R=helpers, ports=ports, frames=frames, + centers=[mapping[r] for r in word['centers']], + center_frames=[fid(tau(x) for x in frame) for frame in word['center_frames']]) + levels = {mapping[v+int(t)]-v: fid(tau(x) for x in frame) + for t, frame in word.get('target_levels', {}).items()} + canonical['target_levels'] = {str(t): f for t, f in levels.items()} + current, paid, edges = canonical['start'].copy(), Counter(), set() + + def climb(r, f): + old = current[r] + assert basis(frames[old] + frames[f]) == frames[f], ('nonmonotone', r, old, f) + if old != f: + degree = len(frames[f]) - len(frames[old]) + assert degree > 0 + paid[degree] += 1 + edges.add((old, f)) + current[r] = f + + for part in ('A', 'B'): + if part == 'B': + assert all(current[r] == f for r, f in zip(canonical['centers'], canonical['center_frames'])) + assert all(current[v+t] == levels.get(t, 0) for t in range(v)) + for r, frame in zip(canonical['centers'], canonical['center_frames']): + served = {levels.get(e[1]-v, 0) for e in canonical['cut'] if e[2] == r} + old = frame + for f in sorted(served, key=lambda f: -len(frames[f])): + assert basis(frames[old] + frames[f]) == frames[old] + if old != f: + paid[len(frames[old])-len(frames[f])] += 1 + edges.add((old, f)) + edges.add((f, old)) + old = f + for e in canonical[part]: + for r in [e[1]] + ([e[2]] if e[0] == 'add' else []): + climb(r, e[-1]) + if helper_final: # COLD-HPE / CONE PRE-CHECK at the end-of-B frames + P, Pinv = state_maps(word['precondition'] + compensation + main, n) + cone = cone_violations(P, Pinv, sorted(helper_final), mapping, current.copy(), canonical['final'], frames) + assert not cone, ('hpe cone pre-check (row / column)', cone[:8]) + for e in canonical.get('tail', []): # HPE: early cleanup gates at their common frame + for r in [e[1]] + ([e[2]] if e[0] == 'add' else []): + climb(r, e[-1]) + for r, f in enumerate(canonical['final']): + climb(r, f) + # HPE: the remaining cleanup runs at FULL, so it may touch only registers whose terminal frame is FULL; a + # hyperplane-ended helper is touched by nothing after its tail gates. + for e in canonical['cleanup']: + assert all(canonical['final'][r] == 1 for r in [e[1]] + ([e[2]] if e[0] == 'add' else [])), ('cleanup on non-FULL end', e) + assert all(len(frames[canonical['final'][r]]) < h for r in helper_final) + assert dict(paid) == {int(r): count for r, count in word['report']['local_profile'].items()}, 'paid local profile differs from the reported local_profile' + canonical['local_profile'] = dict(sorted(paid.items())) + canonical['edges'] = sorted(edges) + out.mkdir(parents=True, exist_ok=False) + payload = json.dumps(canonical, sort_keys=True, separators=(',', ':')).encode() + (out/'CANONICAL-WORD.json.gz').write_bytes(gzip.compress(payload, mtime=0)) + (out/'FULL-WORD.json.gz').write_bytes(gzip.compress(json.dumps(word, sort_keys=True, separators=(',', ':')).encode(), mtime=0)) + receipt = dict(status='PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES', + input_content_sha256=content_hash(raw_path), routing_content_sha256=content_hash(routing_path), + canonical_content_sha256=hashlib.sha256(payload).hexdigest(), + live_columns_each_orientation=n, helpers=helpers, + compensation_additions=len(compensation), scalar_operations=len(program), + center_rank_sum=sum(map(len, word['center_frames'])), + local_profile=dict(sorted(paid.items())), local_rank_mass=sum(r*z for r, z in paid.items()), + widths=[len(frames[canonical['final'][r]])-len(frames[canonical['start'][r]]) for r in range(2*v, n)], + frames=len(frames), directed_edges=len(edges), + tau=43, target_port_order_matches_baseline=True, + seconds=time.monotonic()-start_time, + scope='Fresh exact forward and inverse-transpose scalar replay on every arbitrary input; all native frame chains and dyadic primitives. Phase lowering, wrappers, global owners and global assembly are separate.') + if tail or helper_final: + receipt.update(hyperplane_ended_helpers=sorted(helper_final), early_cleanup_gates=len(tail)) + if cold_hpe: # COLD-HPE (absent for words without cold ends) + receipt.update(cold_hyperplane_ended_helpers=cold_hpe) + if 'refactored_cleanup' in word: # REFACTORED CLEANUP (absent for inherited words) + receipt.update(refactored_cleanup_gates=len(word['cleanup']), refactored_cleanup=word['refactored_cleanup']) + (out/'SCALAR-FRAME-AUDIT.json').write_text(json.dumps(receipt, indent=2)+'\n') + print(json.dumps({k: value for k, value in receipt.items() if k != 'widths'}, indent=2), flush=True) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--raw', type=Path, required=True) + parser.add_argument('--routing', type=Path, required=True) + parser.add_argument('--out', type=Path, required=True) + args = parser.parse_args() + run(args.raw, args.routing, args.out) diff --git a/research/complex-571-cold14-k492/code/hpe_audit_local.py b/research/complex-571-cold14-k492/code/hpe_audit_local.py new file mode 100644 index 0000000000..17bccb64fd --- /dev/null +++ b/research/complex-571-cold14-k492/code/hpe_audit_local.py @@ -0,0 +1,171 @@ +# Local-only extraction of the attributed PR514 / PR433 independent replay. +# Prepared for icekylinx with OpenAI Codex assistance. Apache-2.0. +# The complete local checker and its negative controls are retained verbatim. +# Global hosting is verified separately for the changed 112-port geometry. +import copy,gzip,hashlib,json,sys +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +OUT=Path(sys.argv[1]) +c=json.load(gzip.open(OUT/'CANONICAL-WORD.json.gz')) +ir={'local_programs':json.load(gzip.open(OUT/'LOCAL-PROGRAMS.json.gz'))} +v,R,h=c['v'],c['R'],c['h'];n=2*v+R;frames=c['frames'] +levels={int(t):f for t,f in c.get('target_levels',{}).items()} +entering=[r for r,f in enumerate(c['start']) if r>=2*v and f!=0] +plain={r for r in range(n) if r not in set(entering)} + +def contains(a,b): + for x in a: + for y in b: + if x>>(y.bit_length()-1)&1:x^=y + if x:return False + return True +hpe={r for r in range(2*v,n) if c['final'][r]!=1} # HPE: helpers whose terminal frame is a proper subspace U of FULL +assert all(len(frames[c['final'][r]])0 + hist[rank]+=1;cur[r]=b + elif tag=='center': + _,k,a,b,rank=event + assert phases[-1]=='centers' and private=={('C',k):a} + cf=c['center_frames'][k];cr=len(frames[cf]) + # GK: stepwise descent cf -> served levels -> lowest (forward), reversed ascent (backward); each step is a nested child + assert contains(frames[a],frames[b]) if back else contains(frames[b],frames[a]) + assert rank==abs(len(frames[a])-len(frames[b]))>0 + chain.setdefault(k,[]).append((a,b)) + private['C',k]=b;hist[rank]+=1;centers.append(k) + elif tag=='scalar': + _,e,f=event;op=e[0];target=tuple(e[1]);source=tuple(e[2]) if op in ('copy','add') else None + if target[0]=='C' and op=='clear': + assert private.get(target,f)==f + private.pop(target,None) + else: + for r in (target,source): + if r is None:continue + if r[0]=='L':assert cur[r[1]]==f and (r[1] not in wset or (r[1] in pre_seen and r[1] not in post_seen)),('common frame / wrapper order',r,cur[r[1]],f) + else: + if r==target and r not in private:private[r]=f + assert private[r]==f + if op=='clear':rows[target]={};norm[target]=Q(0) + elif op=='copy':rows[target]=dict(rows[source]);norm[target]=norm[source] + elif op=='scale': + q=Q(e[2],e[3]);a,b=abs(q.numerator),q.denominator + assert a&(a-1)==0 and b&(b-1)==0 + rows[target]={j:q*x for j,x in rows[target].items()};norm[target]*=abs(q) + else: + q=Q(e[3],e[4]);a,b=abs(q.numerator),q.denominator + assert source!=target and b&(b-1)==0 + # Independent symbolic replay of the cleared coefficient work. + w=0 + for bit in bin(a)[2:]:w=2*w+int(bit) + assert Q(w,b)*(1 if q>0 else -1)==q + prefix=max(prefix,Q(a)*norm[source]) + norm[target]=norm.get(target,Q(0))+abs(q)*norm[source] + row=rows.setdefault(target,{}) + for j,x in list(rows[source].items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + prefix=max(prefix,norm[target]) + else:raise AssertionError(tag) + assert phases==allowed and set(centers)==set(range(len(c['centers']))) and not private + assert sorted(r for k,r,_ in wrappers if k=='pre')==wrapped and sorted(r for k,r,_ in wrappers if k=='post')==wrapped # GK + for k,st in chain.items(): # GK: the steps of each centre chain link up and end at the centre frame + cf=c['center_frames'][k] + if back:assert st[-1][1]==cf and all(st[i][1]==st[i+1][0] for i in range(len(st)-1)) + else:assert st[0][0]==cf and all(st[i][1]==st[i+1][0] for i in range(len(st)-1)) + assert all(not row for reg,row in rows.items() if reg[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r i0])) +reject('early gate frame below its registers\' frames', lambda w: w['early_cleanup'][0].__setitem__(1, U0[:-1])) +reject('hyperplane end on a non-entering helper', lambda w: (w['start_extra'].pop(h0))) +reject('profile not updated (paid climbs misreported)', lambda w: w['report']['local_profile'].__setitem__('1', w['report']['local_profile']['1']-3)) +reject('profile without 8 partner U->FULL climb charges', lambda w: w['report']['local_profile'].__setitem__('1', w['report']['local_profile']['1']-8)) +reject('duplicate early gate', lambda w: w['early_cleanup'].append(list(w['early_cleanup'][0]))) + +# Constructor controls for build_hpe's commutation rule (an early gate h -= p may skip earlier cleanup gates on p only +# when they commute with it, i.e. only read p). base = the word without its hyperplane ends; a skipped gate that WRITES +# the partner (an addition into p or a scale of p) or touches h must make build_hpe.apply refuse the recipe, while a +# skipped gate that only reads p is accepted. +import build_hpe +base = copy.deepcopy(word); base.pop('early_cleanup'); base.pop('helper_final') +hf = {int(h) for h in word['helper_final']} +changes = [] +for i, U in word['early_cleanup']: # pair each early gate with its helper via the gate's target + h = cl[i][1] + assert h in hf and word['helper_final'][str(h)] == U + changes.append(dict(helper=h, cleanup_index=i, frame=U)) +z0 = changes[0]; g0 = cl[z0['cleanup_index']]; p0 = g0[2] +x0 = next(r for r in range(2*v, n) if r not in {z['helper'] for z in changes} | {cl[z['cleanup_index']][2] for z in changes}) +NONCOMMUTE = 'cleanup gate does not commute with the skipped cleanup gates on its registers' +ONEGATE = 'helper must have exactly this one cleanup gate' + + +def build_with(w): + return build_hpe.apply(w, changes) + + +def inserted(pre): + """base with gate `pre` inserted at cleanup position 0; the changes' indices shift by one""" + w = copy.deepcopy(base); w['cleanup'].insert(0, pre) + return w, [dict(z, cleanup_index=z['cleanup_index'] + 1) for z in changes] + + +def cfail(name, w, ch, expect): + """the constructor must refuse with the pinned message `expect`""" + try: + build_hpe.apply(w, ch) + except AssertionError as e: + assert expect in str(e), ('constructor control %r failed with the wrong message: %s' % (name, e)) + results.append('constructor: ' + name); print('rejected constructor:', name, '--', expect, flush=True); return + raise AssertionError('HPE constructor mutation accepted: ' + name) + + +build_hpe.apply(*inserted(['add', x0, p0, -1, 1, FULL])) # positive: a skipped gate that only reads the partner commutes +cfail('skipped cleanup gate adds into the partner', *inserted(['add', p0, x0, -1, 1, FULL]), NONCOMMUTE) +cfail('skipped cleanup gate scales the partner', *inserted(['scale', p0, -1, 1, FULL]), NONCOMMUTE) +cfail('extra cleanup gate reading the helper (one-gate rule)', *inserted(['add', x0, z0['helper'], -1, 1, FULL]), ONEGATE) +cfail('extra cleanup gate adding into the helper (one-gate rule)', *inserted(['add', z0['helper'], x0, -1, 1, FULL]), ONEGATE) +# Real helpers admitted only by the commutation rule: their partner has an earlier cleanup gate x -= p (reads p). +# Flipping that gate in place to p -= x (writes p) must be refused by the commutation assert. +first = {} +for i, e in enumerate(cl): + for r in regs(e): first.setdefault(r, i) +relaxed = [z for z in changes if any(first[r] < z['cleanup_index'] for r in regs(cl[z['cleanup_index']]))] +for z in relaxed: + i = z['cleanup_index']; p = cl[i][2] + j = next(j for j in range(i) if p in regs(cl[j])) + e = cl[j]; assert e[0] == 'add' and e[2] == p and e[1] != p, ('skipped gate on a relaxed helper is not a reader', j, e) + build_hpe.apply(copy.deepcopy(base), changes) # positive: the real word's own changes + w = copy.deepcopy(base); w['cleanup'][j] = ['add', p, e[1]] + e[3:] + cfail('real helper %d: skipped gate %d flipped from %d -= %d to %d -= %d' % (z['helper'], j, e[1], p, p, e[1]), w, changes, NONCOMMUTE) +print('relaxed helpers', [z['helper'] for z in relaxed], flush=True) +outdir.mkdir(parents=True, exist_ok=True) +(outdir/'HPE-ATC-CONTROLS.json').write_text(json.dumps(dict(status='PASS_HPE_RAW_WORD_CONTROLS', word=str(src), rejected=results), indent=1) + '\n') +print('PASS', len(results), 'HPE raw-word mutations rejected') diff --git a/research/complex-571-cold14-k492/code/hpe_emit_local.py b/research/complex-571-cold14-k492/code/hpe_emit_local.py new file mode 100644 index 0000000000..534fdc71f7 --- /dev/null +++ b/research/complex-571-cold14-k492/code/hpe_emit_local.py @@ -0,0 +1,163 @@ +# GK: modified copy of PR #433's complex_emit.py (icekylinx with Codex assistance; PR #425) by DreamingOfClouds with Claude Opus 5.5 +# (Anthropic), via Claude Code. Every change is marked "GK:". On a word without start_extra / target_levels the behaviour +# and every written file equal PR #433's (regression anchor in verify.py). +import sys as _sys, os as _os; _sys.path.insert(0, _os.path.dirname(_os.path.abspath(__file__))) +# Adapted from PR425 by icekylinx with Codex assistance. +"""Emit both local programs, integrate the fixed nine-stage geometry, and bill. + +The expanded scalar interface is justified in PROOF.txt. This script does not +claim a Lean proof or discharge the inherited all-size/analytic interfaces. +""" +import copy,gzip,hashlib,importlib.util,json,math +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path + +OUT=Path(_sys.argv[1]);cp=OUT/'CANONICAL-WORD.json.gz' +c=json.load(gzip.open(cp)) +frames=c['frames'];v,R,h=c['v'],c['R'],c['h'];n=2*v+R +def digest(x):return hashlib.sha256(json.dumps(x,sort_keys=True,separators=(',',':')).encode()).hexdigest() +def basis(vs): + b={} + for x in vs: + for p in sorted(b,reverse=True): + if x>>p&1:x^=b[p] + if x: + p=x.bit_length()-1 + for q in b: + if b[q]>>p&1:b[q]^=x + b[p]=x + return tuple(b[p] for p in sorted(b,reverse=True)) +def dual(e): + e=list(e) + if e[0]=='add':e[1],e[2]=e[2],e[1];e[3]*=-1 + else:e[2],e[3]=e[3],e[2] + return e +def scalar(e,back): + e=dual(e) if back else list(e) + if e[0]=='add':return ['add',['L',e[1]],['L',e[2]],e[3],e[4]] + return ['scale',['L',e[1]],e[2],e[3]] +def primitive_bound(e): + if e[0] in ('clear','copy'):return 1 + q=Q(e[3],e[4]) if e[0]=='add' else Q(e[2],e[3]) + a,b=abs(q.numerator),q.denominator + assert b&(b-1)==0 + if e[0]=='scale': + assert a&(a-1)==0 + return abs(a.bit_length()-b.bit_length())+int(q<0) + # Exact binary Horner multiplication on a cleared private stream, repeated + # halving, signed accumulation into the target, then clear the private stream. + return 3+(a.bit_length()-1)+a.bit_count()+(b.bit_length()-1) + +def emit(back): + out=[];cur=c['start'].copy() + def event(e):out.append(e) + def scal(e,f):event(['scalar',e,f]) + event(['phase','zero_frame_precondition']) + for e in c['precondition']+c['compensation']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['start'][r]==0 for r in regs) + scal(scalar(e,back),0) + event(['phase','entry_adapters']) + # GK: a helper that starts at a nonzero entrance frame has NO entry adapter; its paid wrapper R_E^-1 (Lemma A) precedes every gate + # that touches it and L_E^-1 follows the full-frame cleanup. Words without entrances emit PR #433's events. + entering=[r for r,f in enumerate(c['start']) if r>=2*v and f!=0] + hpe={r for r in range(2*v,n) if c['final'][r]!=1} # HPE: hyperplane-ended helpers (terminal frame != FULL) + # COLD-HPE: a cold helper (start frame 0) ending at U also carries the paid wrappers R_{0,U}^-1 / L_{0,U}^-1 (the + # E = bottom instance of #593); without cold ends wrapped == entering and the event stream is the inherited one. + wrapped=sorted(set(entering)|hpe) + for r,f in enumerate(c['start']): + if r in wrapped:event(['residual_adapter','pre',r,f]+([c['final'][r]] if c['final'][r]!=1 else [])) # HPE: R_{E,U}^-1 names U + else:event(['adapter','old_to_new',r,f]) + def climb(r,f,part): + old=cur[r] + if old==f:return + assert basis(frames[old]+frames[f])==tuple(frames[f]) + rank=len(frames[f])-len(frames[old]);assert rank>0 + event(['climb',part,r,old,f,rank]);cur[r]=f + # HPE: 'cleanup_tail' = early cleanup gates at their own frames; emitted only when the word has them, so a word + # without hyperplane-ended helpers yields exactly the inherited event stream. + for part in ('A','centers','B')+(('cleanup_tail',) if c.get('tail') else ())+('final',): + event(['phase',part]) + if part in ('A','B','cleanup_tail'): + for e in (c['tail'] if part=='cleanup_tail' else c[part]): + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + for r in regs:climb(r,e[-1],part) + scal(scalar(e,back),e[-1]) + elif part=='centers': + # GK: targets sit at their nonzero-frame-compensation level (0 at the defaults); a centre copy descends + # cf -> served levels (descending chain) -> lowest served level and scatters into each target at its level + lv=lambda r:c.get('target_levels',{}).get(str(r-v),0) + assert all(cur[r]==lv(r) for r in range(v,2*v)) + for k,r in enumerate(c['centers']): + cf=c['center_frames'][k];assert cur[r]==cf + terms=[e for e in c['cut'] if e[2]==r] + path=[cf]+sorted({lv(e[1]) for e in terms}-{cf},key=lambda x:-len(frames[x])) + C=['C',k] + if not back: + scal(['clear',C],cf);scal(['copy',C,['L',r]],cf) + for a in range(len(path)): + if a>0:event(['center',k,path[a-1],path[a],len(frames[path[a-1]])-len(frames[path[a]])]) + for e in terms: + if lv(e[1])==path[a]:scal(['add',['L',e[1]],C,e[3],e[4]],path[a]) + scal(['clear',C],path[-1]) + else: + scal(['clear',C],path[-1]) + for a in range(len(path)-1,-1,-1): + for e in terms: + if lv(e[1])==path[a]:scal(['add',C,['L',e[1]],e[3],e[4]],path[a]) + if a>0:event(['center',k,path[a],path[a-1],len(frames[path[a-1]])-len(frames[path[a]])]) + scal(['add',['L',r],C,-1,1],cf);scal(['clear',C],cf) + else: + for r,f in enumerate(c['final']):climb(r,f,part) + event(['phase','exit_adapters']) + for r,f in enumerate(c['final']): + if r not in hpe:event(['adapter','new_to_old',r,f]) # HPE: no old-convention exit for a helper that ends at U; its post wrapper is L_{E,U}^-1 + event(['phase','full_frame_cleanup']) + for e in c['cleanup']: + regs=[e[1]]+([e[2]] if e[0]=='add' else []) + assert all(c['final'][r]==1 for r in regs) + scal(scalar(e,back),1) + for r in wrapped:event(['residual_adapter','post',r,c['start'][r]]+([c['final'][r]] if r in hpe else [])) # HPE: 5th field = terminal frame U # GK: L_E^-1 after the full-frame cleanup + event(['phase','done']) + return out + +def check_local(events,back): + # Literal scalar replay of the emitted stream, including center lifetimes. + state={('L',r):{r:Q(1)} for r in range(n)};live=[];paid=Counter();prims=0;macros=0 + for e in events: + if e[0]=='climb':assert not live;paid[e[5]]+=1 + elif e[0]=='center':assert live==[e[1]];paid[e[4]]+=1 + elif e[0]=='scalar': + op=e[1];tag=op[0];t=tuple(op[1]);macros+=1;prims+=2*primitive_bound(op) + if tag=='clear': + state[t]={} + if t[0]=='C' and t[1] in live:live.remove(t[1]) + elif tag=='copy':state[t]=dict(state.get(tuple(op[2]),{}));live.append(t[1]) + elif tag=='scale':state[t]={j:Q(op[2],op[3])*x for j,x in state[t].items()} + else: + s=tuple(op[2]);q=Q(op[3],op[4]);row=state.setdefault(t,{}) + if t[0]=='C' and t[1] not in live:live.append(t[1]) + for j,x in list(state.get(s,{}).items()): + z=row.get(j,Q(0))+q*x + if z:row[j]=z + else:row.pop(j,None) + assert not live and all(not row for r,row in state.items() if r[0]=='C') + for r in range(n): + expected={r:Q(1)} + if back and r PR552 -> +PR531 invoice_final.py, whose notices and sources are preserved in the package. +Every call selects a hash-bound provider. Shared compiler reserves use maxima; +primitive work, coefficient work, local children and wrappers are also summed +from actual selected provider/orientation records. +""" +import argparse, gzip, hashlib, json +import sys as _s,pathlib as _p;_s.path.insert(0,str(_p.Path(__file__).resolve().parent)) +from witness import * +from generated_identity import artifact_identities +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +assert __debug__, 'Assertions required' + +def read(path): + data=path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix=='.gz' else data) +def filehash(path): return hashlib.sha256(path.read_bytes()).hexdigest() +def contenthash(path): + data=path.read_bytes() + return hashlib.sha256(gzip.decompress(data) if path.suffix=='.gz' else data).hexdigest() +def programhash(events): + return hashlib.sha256(json.dumps(events,separators=(',',':')).encode()).hexdigest() + +def recount_provider(local_dir, registry): + cp=local_dir/'CANONICAL-WORD.json.gz'; pp=local_dir/'LOCAL-PROGRAMS.json.gz' + rp=local_dir/'INDEPENDENT-LOCAL-REPLAY.json' + w,programs,replay=read(cp),read(pp),read(rp) + checks=read(local_dir/'LOCAL-CHECKS.json') + assert set(programs)=={'forward','backward'} + assert replay['status']=='PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY' + assert replay['canonical_word_sha256']==filehash(cp)==registry['canonical_word_sha256'] + assert replay['local_programs_sha256']==filehash(pp)==registry['local_programs_sha256'] + assert programs==registry['local_programs'] + assert checks==registry['local_program_checks'] + assert filehash(local_dir/'CLIFFORD-RECIPES.json')==registry['exact_local_clifford_recipe_sha256'] + assert filehash(local_dir/'RESIDUAL-ADAPTERS.json')==registry['residual_adapter_sha256'] + v,helpers,h,m=w['v'],w['R'],w['h'],73 + assert (v,h)==(112,9) and type(helpers) is int and helpers>0 + assert registry['v']==v and registry['R']==helpers and registry['h']==h + assert registry['ports']==w['ports'] and registry['centers']==w['centers'] + assert replay['v']==v and replay['helpers']==helpers + n=2*v+helpers + widths = [len(w['frames'][w['final'][r]])-len(w['frames'][w['start'][r]]) for r in range(2*v, 2*v+helpers)] # HPE: |final|-|start| + terminal_codim = sum(h-len(w['frames'][w['final'][r]]) for r in range(2*v, 2*v+helpers)) # HPE: 0 for FULL-ended helpers + ends = {r: f for r, f in enumerate(w['final']) if r >= 2*v and f != 1} + assert len(widths) == helpers + entrances = {r: f for r, f in enumerate(w['start']) if r >= 2*v and f != 0} + entering = len(entrances) + wrapped = {**entrances, **{r: 0 for r in ends if r not in entrances}} # COLD-HPE: cold hyperplane-ended helpers carry wrappers too + cold_ends = len(wrapped) - len(entrances) + assert entering == replay['entering_helpers'] + local = {} + for orientation, events in programs.items(): + # Endpoint equality and native frames were already independently + # replayed on all n columns in the hash-bound receipt above. + env = {('L', r): Q(1) for r in range(n)} + peak = Q(1) + real = macros = workops = 0 + paid = Counter() + wrappers = {'pre': set(), 'post': set()} + for event in events: + tag = event[0] + if tag == 'climb': + paid[event[5]] += 1 + elif tag == 'center': + paid[event[4]] += 1 + elif tag == 'residual_adapter': + _, kind, register, frame, *end = event + assert kind in wrappers and wrapped.get(register) == frame + assert end == ([ends[register]] if register in ends else []) # HPE: R_{E,U}^-1 and L_{E,U}^-1 name U + assert register not in wrappers[kind] + wrappers[kind].add(register) + elif tag == 'scalar': + macros += 1 + scalar = event[1] + op, target = scalar[0], tuple(scalar[1]) + if op == 'clear': + env[target] = Q(0) + count = 1 + elif op == 'copy': + env[target] = env[tuple(scalar[2])] + count = 1 + elif op == 'scale': + q = Q(scalar[2], scalar[3]) + numerator, denominator = abs(q.numerator), q.denominator + assert numerator and numerator & (numerator-1) == 0 + assert denominator & (denominator-1) == 0 + env[target] *= abs(q) + count = abs(numerator.bit_length()-denominator.bit_length()) + int(q < 0) + elif op == 'add': + source = tuple(scalar[2]) + q = Q(scalar[3], scalar[4]) + numerator, denominator = abs(q.numerator), q.denominator + assert source != target and numerator > 0 + assert denominator & (denominator-1) == 0 + acc, count = 0, 1 # clear coefficient work + for i, bit in enumerate(bin(numerator)[2:]): + if i: + acc *= 2 + count += 1 + peak = max(peak, acc*env[source]) + if bit == '1': + acc += 1 + count += 1 + peak = max(peak, acc*env[source]) + value = Q(acc) + for _ in range(denominator.bit_length()-1): + value /= 2 + count += 1 + peak = max(peak, value*env[source]) + assert value == abs(q) + count += 2 # signed accumulation and work clear + env[target] = env.get(target, Q(0)) + abs(q)*env[source] + workops += count + else: + raise AssertionError(op) + real += 2*count + peak = max(peak, env[target]) + else: + assert tag in ('adapter', 'phase') + assert wrappers['pre'] == wrappers['post'] == set(wrapped) + assert all(value == 0 for register, value in env.items() if register[0] == 'C') + prior = replay['local'][orientation] + assert prior['all_exact_columns'] == n and prior['private_work_erased'] + assert peak == Q(prior['prefix_l1_upper']) and peak < 2**prior['charged_payload_bits'] + bits = peak.numerator.bit_length()-peak.denominator.bit_length()+1 + assert bits == prior['prefix_bits_upper'] + assert real == checks[orientation]['real_component_primitive_bound'] + assert macros == checks[orientation]['scalar_macros'] + assert dict(paid) == {int(r): count for r, count in checks[orientation]['paid_profile'].items()} + assert dict(paid) == {int(r): count for r, count in replay['paid_profiles'][orientation].items()} + local[orientation] = dict( + events=len(events), macros=macros, real_component_primitives=real, + prefix_l1=str(peak), prefix_bits=bits, + coefficient_work_primitive_count=workops, all_exact_columns=n, + dirty_helper_columns=helpers, all_dirty_helper_columns_restored=True, + private_centres_and_coefficient_work_cleared=True, + pre_wrappers=len(wrappers['pre']), post_wrappers=len(wrappers['post']), + endpoint_evidence='Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json') + + centres = len(w['centers']) + children = sum(checks['forward']['paid_profile'].values()) + assert checks['forward']['paid_profile'] == checks['backward']['paid_profile'] + macro_bound = max(row['macros'] for row in local.values()) + compiler = 64*(m+1)**3 + adapters = 16*(macro_bound+children+n+centres)+64*m + primitive_bound = max(row['real_component_primitives'] for row in local.values())+adapters*compiler + + assert widths==registry['widths'] + artifacts={f.name:filehash(f) for f in local_dir.iterdir() if f.is_file()} + phase_review=read(local_dir/'CLIFFORD-REVIEW.json') + return dict(local=local,helpers=helpers,centres=centres,v=v,h=h,n=n, + entering_helpers=entering,entrance_rank=sum(len(w['frames'][f]) for f in w['start'][2*v:]), + terminal_codimension=terminal_codim, hyperplane_ended_helpers=len(ends), # HPE: always reported (0 for FULL-ended words) + **({'cold_hyperplane_ended_helpers': cold_ends} if cold_ends else {}), # COLD-HPE: absent without cold ends + width_inventory=dict(sorted(Counter(widths).items())),widths=widths, + local_adapters=adapters,local_primitive_bound=primitive_bound, + compiler=compiler,children=children,artifacts=artifacts, + paid_profile=checks['forward']['paid_profile'], + program_hashes={o:programhash(events) for o,events in programs.items()},semantic_artifact_sha256=artifact_identities(local_dir)) + + +def run(base, hosted, audit, out, retained_invoice=None): + local_dir=base/'split-centres' + parent=read(local_dir/'GLOBAL-TEMPLATE.json.gz') + template_path=hosted/'GLOBAL-TEMPLATE.json.gz' + template=read(template_path); summary=read(hosted/'HOSTED.json') + owners=read(audit/'OWNERS-AND-PROFILE.json'); control=read(audit/'ASYNC-AUDIT.json') + template_hash=contenthash(template_path) + assert template_hash==control['complex_template_sha256']==owners['template_sha256']==summary['template_sha256'] + assert owners['status']=='PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE' + assert template['recipe']==parent['recipe'] + assert 'local_programs' not in template + assert set(template['local_providers'])==set(PIDS) + providers={pid:recount_provider(base/'providers'/pid,registry) + for pid,registry in template['local_providers'].items()} + for pid,p in providers.items(): + assert owners['provider_phase_semantic_sha256'][pid]==control['provider_phase_semantic_sha256'][pid]==p['semantic_artifact_sha256']['CLIFFORD-REVIEW.json'] + # The fresh controller admission must cite precisely these provider bytes. + for name in ('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json', + 'INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-RECIPES.json', + 'CLIFFORD-REVIEW.json','RESIDUAL-ADAPTERS.json'): + path='providers/'+pid+'/'+name + assert summary['source_artifacts'][path]==p['artifacts'][name] + assert owners['source_artifacts'][path]==p['artifacts'][name] + # R is read from the provider words (all must agree); the parent dedicated-bank + # envelope keeps its own helper count R0 from the parent split-centres word. + assert len({p['helpers'] for p in providers.values()})==1,'providers disagree on helper count R' + v,h,m,centres=112,9,73,8 + helpers=next(iter(providers.values()))['helpers']; n=2*v+helpers + assert all((p['v'],p['h'],p['centres'],p['n'])==(v,h,centres,n) for p in providers.values()) + parent_helpers=read(local_dir/'CANONICAL-WORD.json.gz')['R'] + stages,replicas,blocks_per_stream=9,8,4 + call_count=len(template['calls']) + assert call_count==stages*replicas==control['complete_invocations'] + assert control['one_owner_per_complete_invocation'] + assert len({(c['stage'],c['replica']) for c in template['calls']})==call_count + parent_calls={(c['stage'],c['replica']):c for c in parent['calls']} + sweeps=[e for e in template['execution_schedule'] if e['kind']=='local_cover_sweep'] + assert len(sweeps)==call_count + selected=[]; selected_paid=Counter(); provider_counts=Counter(); orientation_counts=Counter() + scalar=coefficient_work=macros=0; wrapper_factors=0 + factors_per_wrapper=2*(m-1) + for c in template['calls']: + pid,orientation=c['provider_id'],c['orientation']; p=providers[pid] + old=parent_calls[(c['stage'],c['replica'])] + assert orientation==old['orientation'] and c['owners'][:2*v]==old['owners'][:2*v] + assert c['local_program_sha256']==p['program_hashes'][orientation] + r=p['local'][orientation] + scalar+=r['real_component_primitives']; coefficient_work+=r['coefficient_work_primitive_count']; macros+=r['macros'] + wrapper_factors+=(r['pre_wrappers']+r['post_wrappers'])*factors_per_wrapper + provider_counts[pid]+=1; orientation_counts[(pid,orientation)]+=1 + selected_paid.update({int(k):v for k,v in p['paid_profile'].items()}) + selected.append(dict(stage=c['stage'],replica=c['replica'],provider_id=pid,orientation=orientation, + program_sha256=c['local_program_sha256'],events=r['events'],macros=r['macros'], + real_component_primitives=r['real_component_primitives'], + coefficient_work_primitive_count=r['coefficient_work_primitive_count'], + entering_helpers=p['entering_helpers'],entrance_rank=p['entrance_rank'], + pre_wrappers=r['pre_wrappers'],post_wrappers=r['post_wrappers'])) + assert provider_counts==COUNTS + # The sweep registry is executable: no hidden use of the historical supplier. + by_call={(c['stage'],c['replica']):c for c in template['calls']} + for e in sweeps: + c=by_call[(e['stage'],e['replica'])] + assert e['provider_id']==c['provider_id'] + assert set(p['compiler'] for p in providers.values())=={64*(m+1)**3} + compiler=64*(m+1)**3 + adapters=max(p['local_adapters'] for p in providers.values()) + primitive_bound=max(p['local_primitive_bound'] for p in providers.values()) + bridge_steps=sum(event['kind']=='bridge' for event in parent['recipe']) + bridge_sweeps=sum(event['kind']=='bridge' for event in template['execution_schedule']) + assert bridge_sweeps==replicas*bridge_steps + bridge_additions=2*v*bridge_sweeps + shifts=blocks_per_stream*v*replicas; moves=2*shifts + parent_live,parent_physical=parent['live'],parent['physical'] + data_stock=2*v*blocks_per_stream*replicas + assert (parent_live-data_stock)%stages==0 + parent_banks=(parent_live-data_stock)//stages + assert parent_banks>=0 and parent_physical==parent_live+parent_helpers+centres+2 + nonlocal_items=(4*v*replicas*stages+2*v*replicas*stages+2*call_count*helpers + +sum(child['replicas'] for child in parent['idle_children'])+stages*parent_banks + +bridge_additions+shifts+moves+parent_live+parent_physical+wrapper_factors) + outside=8*nonlocal_items+64*m + parent_pervertex=(scalar+bridge_additions+shifts+moves+parent_live + +(call_count*adapters+outside)*compiler+64*parent_physical) + live,physical=template['live'],template['physical'] + mass,profile=owners['rank_mass'],owners['paid_profile'] + assert m*live-mass==owners['deficit']==2560 + assert mass==sum(int(r)*count for r,count in profile.items()) + assert physical==live+helpers+centres+2 + assert live==owners['live'] and physical==owners['physical'] + assert live<=parent_live and physical<=parent_physical + assert not template['bank_padding']['families'] + assert owners['explicit_idle_remainder_children']<=owners['source_idle_children_charged'] + # The old dedicated-bank geometry is only a conservative reserve envelope. + # Its singular program is never used as evidence for a mixed invocation. + rebased=parent_pervertex+65*(physical-parent_physical)+(live-parent_live) + used=max(rebased,parent_pervertex); retained=None; payload=512 + if retained_invoice is not None: + previous=read(retained_invoice) + assert previous['compiler']==compiler and previous['charged_prefix_bits']==payload + previous_bound=previous['conservative_pervertex_used'] + used=max(used,previous_bound+parent_pervertex) + retained=dict(sha256=filehash(retained_invoice),previous_pervertex_allowance=previous_bound, + added_complete_new_pervertex=parent_pervertex,policy='Retain old allowance and add entire fresh mixed recount.') + half=m//2; group=2**(half*half) + for i in range(1,half+1): group*=2**(2*i)-1 + stock,streamed_mass=group*physical,group*mass + logical=group*used+64; router=compiler*(logical+1)*(stock+1)**2 + g_bound,e_bound,c0=2**30000,2**100000,2**210000 + total_mass=streamed_mass+e_bound + literal=2*g_bound*stock**2+8*streamed_mass+4*stock+4+32*m + row=2*stock.bit_length()+9909+252+2*payload + maxchild=max(map(int,profile)) + inequalities=dict(local_primitive_bound=primitive_bound<2**48, + logical=logical<2**6050,router=router2*maxchild*maxchild) + assert all(inequalities.values()) + localbits=max(r['prefix_bits'] for p in providers.values() for r in p['local'].values()) + input_l2_bits=(m+1)//2 + required_prefix=localbits+input_l2_bits+call_count+bridge_sweeps+4 + assert required_prefix R helper map +# (verify.py checks the spec value against the constructor's HELPER-MAP.json) +SPOT=tuple(SPEC.get('width_spot_helpers',(270,282,294,306))) +PIDS=tuple(sorted(set(DISPATCH.values()))) +COUNTS=dict(Counter(DISPATCH.values())) +assert DISCOVER or set(PROVIDERS)==set(PIDS),'spec providers differ from dispatch providers' +def lookup(key): + """Dotted spec path; a segment may itself contain dots when it names a file (split at most once per known file suffix).""" + v=SPEC;parts=key.split('.') + while parts: + for n in range(len(parts),0,-1): + k='.'.join(parts[:n]) + if isinstance(v,dict) and k in v:v=v[k];parts=parts[n:];break + else:raise KeyError('spec has no key %s'%key) + return v +def pin(key,got): + """Strict mode: got must equal the spec value at dotted key; the failure names the key.""" + if DISCOVER: + if os.environ.get('WITNESS_RECORD'): # discovery bookkeeping only: append (key, value) for the spec writer + with open(os.environ['WITNESS_RECORD'],'a')as f:f.write(json.dumps([key,got],default=str)+chr(10)) + return got + want=lookup(key) + assert got==want,'SPEC MISMATCH %s: expected %s got %s'%(key,json.dumps(want)[:400],json.dumps(got,default=str)[:400]) + return got +def partner(pid): + """A different provider for substitution controls (next in sorted order).""" + assert len(PIDS)>1 + return PIDS[(PIDS.index(pid)+1)%len(PIDS)] diff --git a/research/complex-571-cold14-k492/data/EXPECTED.json b/research/complex-571-cold14-k492/data/EXPECTED.json new file mode 100644 index 0000000000..ffc5ad2aa3 --- /dev/null +++ b/research/complex-571-cold14-k492/data/EXPECTED.json @@ -0,0 +1,1454 @@ +{ + "schema": "witness-expected/1", + "witness_sha256": "94df641397ae59fa582d1eb94627920b041ee98ddd135ab06de4f6c8b300c76c", + "build": { + "ck_504": { + "steps": [ + { + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "omission_controls": 48, + "output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b" + }, + { + "input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "negative_controls": 12, + "output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269" + }, + { + "input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "negative_controls": 6, + "output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b" + } + ], + "base_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "word_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b" + }, + "jp8_504": { + "steps": [ + { + "input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "omission_controls": 6, + "output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d" + }, + { + "input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "omission_controls": 32, + "output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f" + }, + {}, + { + "input_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "omission_controls": 135, + "rank5_controls": 8, + "joint_negative_controls": 15, + "output_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533" + } + ], + "base_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "word_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533" + }, + "ck": { + "steps": [ + { + "input_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "shadow_input_content_sha256": "aad9b01b30bb8a2c5ce8d9415afafc88b0ab288986eb3d068a2bbba8e45bef51", + "shadow_output_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "output_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf" + }, + { + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "shadow_input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "shadow_output_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "output_content_sha256": "b184d491bdc7d42af32649b71cf46663a1dfdfc46046bac8cd6bdef6060afdd6" + }, + { + "input_content_sha256": "b184d491bdc7d42af32649b71cf46663a1dfdfc46046bac8cd6bdef6060afdd6", + "shadow_input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "shadow_output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "output_content_sha256": "83479d878efe213b6433ddee10281b1b52fbfb56494fb0424da6cc7e7460278e" + }, + { + "input_content_sha256": "83479d878efe213b6433ddee10281b1b52fbfb56494fb0424da6cc7e7460278e", + "shadow_input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "shadow_output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "output_content_sha256": "7ddfa2bca87c1bdca6b573800b646f3c2d9ff75b0dde144fcaa6f714b96c5a5c" + }, + { + "input_content_sha256": "7ddfa2bca87c1bdca6b573800b646f3c2d9ff75b0dde144fcaa6f714b96c5a5c", + "shadow_input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "shadow_output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b", + "output_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33" + }, + { + "input_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33", + "negative_controls": 48, + "output_content_sha256": "b19c9c7cf895e31cd0afd12e5226cd0c917fac387bf7b12533437141790845c8" + }, + { + "input_content_sha256": "b19c9c7cf895e31cd0afd12e5226cd0c917fac387bf7b12533437141790845c8", + "negative_controls": 21, + "output_content_sha256": "93228917343883327493cf8e8af68be06251be4db719039ae3ca8d54595f2be6" + }, + { + "input_content_sha256": "93228917343883327493cf8e8af68be06251be4db719039ae3ca8d54595f2be6", + "negative_controls": 38, + "output_content_sha256": "034662fc23dade59a3dae264cd7e3403e8379f5a2d86183a098343bd2fe04a04" + } + ], + "helper_map_sha256": "688d5115b221be68c96970822cc04ff698e2a84432fa7db9cb59057f6fe55def", + "base_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "word_content_sha256": "034662fc23dade59a3dae264cd7e3403e8379f5a2d86183a098343bd2fe04a04" + }, + "jp8": { + "steps": [ + { + "input_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "shadow_input_content_sha256": "aad9b01b30bb8a2c5ce8d9415afafc88b0ab288986eb3d068a2bbba8e45bef51", + "shadow_output_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "output_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf" + }, + { + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "shadow_input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "shadow_output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "output_content_sha256": "d1e6e83d61009650261c17ee59f44cdce1528b8908d4dc5b5437a789847ae5ba" + }, + { + "input_content_sha256": "d1e6e83d61009650261c17ee59f44cdce1528b8908d4dc5b5437a789847ae5ba", + "shadow_input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "shadow_output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "output_content_sha256": "c5280629e7b9fc03ddd6be63fb9218935c21c015a5e5052ad14dfa34ae68466f" + }, + { + "input_content_sha256": "c5280629e7b9fc03ddd6be63fb9218935c21c015a5e5052ad14dfa34ae68466f", + "shadow_input_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "shadow_output_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533", + "output_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f" + }, + { + "input_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f", + "negative_controls": 48, + "output_content_sha256": "b7a36c11d0f49a027bbbcb6185a4484a65c176ac9597afd3fa28eaad58a8a0ce" + }, + { + "input_content_sha256": "b7a36c11d0f49a027bbbcb6185a4484a65c176ac9597afd3fa28eaad58a8a0ce", + "negative_controls": 21, + "output_content_sha256": "a51b37b5bd5e9e66ea14e9759f88cb6181bab041cb09aecd08e7a11956100016" + }, + { + "input_content_sha256": "a51b37b5bd5e9e66ea14e9759f88cb6181bab041cb09aecd08e7a11956100016", + "negative_controls": 38, + "output_content_sha256": "30ace4fbee52a519255724ecb5a2642a3f052fb588c1473ad73682070b2a8a23" + } + ], + "helper_map_sha256": "688d5115b221be68c96970822cc04ff698e2a84432fa7db9cb59057f6fe55def", + "base_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "word_content_sha256": "30ace4fbee52a519255724ecb5a2642a3f052fb588c1473ad73682070b2a8a23" + } + }, + "providers": { + "ck": { + "semantic_phase_sha256": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "width_digest": "3a9f7a03a60c67a2fede8a514e9d4931eec348fc69eb2ac53ccda5d82a4c1c02", + "program_hashes": { + "backward": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58", + "forward": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + "artifacts": { + "LOCAL-CHECKS.json": "059c4e59142bdf5c19dc7c0afebcddfec28e6e60cbc7299b8bdcc624afbc0cbe", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "RESIDUAL-ADAPTERS.json": "4697965c1b466fd3eaf37fa1fbbd45bb06c78cb0fe0b3a253744efb4013581b9" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "LOCAL-PROGRAMS.json.gz": "854f17274092263dc25e60367f4cd0d29f60a8446becd17cc1883ebed7a97900", + "LOCAL-CHECKS.json": "9e7be4f5eb567ffe886871b3fa434cc71f352e91cc9da07cb4e72c5742f24db4", + "INDEPENDENT-LOCAL-REPLAY.json": "ad854d9d15515cbcf7a2bee221d9c3cf0c7215770521866b12ce98aa777e310b", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "RESIDUAL-ADAPTERS.json": "8283dfa442fc7e7626f3356385bda8607b8d15eecfdc9515a6271c29da6caa7a" + }, + "complete_contract": { + "local": { + "backward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224986, + "prefix_l1": "146068000389976309073/32", + "prefix_bits": 62, + "coefficient_work_primitive_count": 111779, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 238, + "post_wrappers": 238, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224938, + "prefix_l1": "920709848294", + "prefix_bits": 40, + "coefficient_work_primitive_count": 111747, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 238, + "post_wrappers": 238, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 492, + "centres": 8, + "v": 112, + "h": 9, + "n": 716, + "entering_helpers": 216, + "entrance_rank": 424, + "terminal_codimension": 146, + "hyperplane_ended_helpers": 58, + "cold_hyperplane_ended_helpers": 22, + "width_inventory": { + "4": 30, + "5": 48, + "7": 68, + "8": 92, + "9": 254 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 426400, + "local_primitive_bound": 11058401095386, + "compiler": 25934336, + "children": 3698, + "paid_profile": { + "1": 2596, + "2": 552, + "3": 304, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "program_hashes": { + "backward": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58", + "forward": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "LOCAL-PROGRAMS.json.gz": "854f17274092263dc25e60367f4cd0d29f60a8446becd17cc1883ebed7a97900", + "LOCAL-CHECKS.json": "9e7be4f5eb567ffe886871b3fa434cc71f352e91cc9da07cb4e72c5742f24db4", + "INDEPENDENT-LOCAL-REPLAY.json": "ad854d9d15515cbcf7a2bee221d9c3cf0c7215770521866b12ce98aa777e310b", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "RESIDUAL-ADAPTERS.json": "8283dfa442fc7e7626f3356385bda8607b8d15eecfdc9515a6271c29da6caa7a" + } + }, + "expected_profile": { + "1": 2596, + "2": 552, + "3": 304, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224986, + "prefix_l1": "146068000389976309073/32", + "coefficient_work_primitive_count": 111779 + }, + "forward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224938, + "prefix_l1": "920709848294", + "coefficient_work_primitive_count": 111747 + } + }, + "entering": 216, + "entrance": 424, + "inventory": { + "4": 30, + "5": 48, + "7": 68, + "8": 92, + "9": 254 + }, + "wrappers": 238, + "phase_edges": 3104, + "native_negative_controls": 25 + }, + "jp8": { + "semantic_phase_sha256": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "width_digest": "d25e4a014d65faeb0b2ccdf152bc0a4f572d0dc3c17874c39d10382ce9881505", + "program_hashes": { + "backward": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf", + "forward": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + "artifacts": { + "LOCAL-CHECKS.json": "0fad744aa863eedb288a9f87b1c23225a36b316b6275cc3b1bcedd42afe28a67", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "RESIDUAL-ADAPTERS.json": "bdb44cf523636f307ebb3617da548f2e3a8af74321eabe24aef40186e280a917" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "LOCAL-PROGRAMS.json.gz": "efe45ce7fb025a6f53cc9eb54e951ac2211a5ed927e689a049e4f68ca680654b", + "LOCAL-CHECKS.json": "e29bdcebdc2966979a9f5911f56b68c6f4942f6fdbeb6737e9db44e147d0193a", + "INDEPENDENT-LOCAL-REPLAY.json": "f31a73829f5de91fe98c3986bb2ad9b31e7b33881720029347051ab2b686af3c", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "RESIDUAL-ADAPTERS.json": "99e1873464e8e718ea25fd80df5aaed0e5508b83e9bf2bdd094ea5c95fdf87c9" + }, + "complete_contract": { + "local": { + "backward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257280, + "prefix_l1": "16753412757380464429924108070201913461/8388608", + "prefix_bits": 101, + "coefficient_work_primitive_count": 127930, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 226, + "post_wrappers": 226, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257232, + "prefix_l1": "4536094588619580433782972610869617/281474976710656", + "prefix_bits": 64, + "coefficient_work_primitive_count": 127898, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 226, + "post_wrappers": 226, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 492, + "centres": 8, + "v": 112, + "h": 9, + "n": 716, + "entering_helpers": 204, + "entrance_rank": 380, + "terminal_codimension": 146, + "hyperplane_ended_helpers": 58, + "cold_hyperplane_ended_helpers": 22, + "width_inventory": { + "4": 30, + "5": 48, + "7": 36, + "8": 112, + "9": 266 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 437040, + "local_primitive_bound": 11334342462720, + "compiler": 25934336, + "children": 3606, + "paid_profile": { + "1": 2512, + "2": 400, + "3": 448, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "program_hashes": { + "backward": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf", + "forward": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "LOCAL-PROGRAMS.json.gz": "efe45ce7fb025a6f53cc9eb54e951ac2211a5ed927e689a049e4f68ca680654b", + "LOCAL-CHECKS.json": "e29bdcebdc2966979a9f5911f56b68c6f4942f6fdbeb6737e9db44e147d0193a", + "INDEPENDENT-LOCAL-REPLAY.json": "f31a73829f5de91fe98c3986bb2ad9b31e7b33881720029347051ab2b686af3c", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "RESIDUAL-ADAPTERS.json": "99e1873464e8e718ea25fd80df5aaed0e5508b83e9bf2bdd094ea5c95fdf87c9" + } + }, + "expected_profile": { + "1": 2512, + "2": 400, + "3": 448, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "expected_local": { + "backward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257280, + "prefix_l1": "16753412757380464429924108070201913461/8388608", + "coefficient_work_primitive_count": 127930 + }, + "forward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257232, + "prefix_l1": "4536094588619580433782972610869617/281474976710656", + "coefficient_work_primitive_count": 127898 + } + }, + "entering": 204, + "entrance": 380, + "inventory": { + "4": 30, + "5": 48, + "7": 36, + "8": 112, + "9": 266 + }, + "wrappers": 226, + "phase_edges": 3015, + "native_negative_controls": 25 + } + }, + "global": { + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "global_profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "owners_per_call": 716, + "hosted_residuals": 35424, + "rank_mass": 520704, + "actual_73column_sigmas": 6702, + "cross_replica_helper_roles": 26498, + "idle_remainders": 2361, + "live": 7168, + "physical": 7670, + "deficit": 2560, + "entering_helper_roles": 16356, + "idle_remainder_profile": { + "1": 128, + "3": 17, + "4": 1, + "7": 1, + "22": 1, + "48": 2213 + }, + "complex_lower": "1638104468552563164027/1000000000000000000000000", + "conservative_complex_lower": "327620893135027892143/200000000000000000000000", + "kappa": "408856367695223/250000000000000000", + "kappa_decimal": "0.001635425470780892", + "conservative_kappa_decimal": "0.001635425467912872", + "mutations_rejected": 23, + "assembly_controls_rejected": 114 + } +} diff --git a/research/complex-571-cold14-k492/data/OWNERS.json.gz b/research/complex-571-cold14-k492/data/OWNERS.json.gz new file mode 100644 index 0000000000..7a080685d5 Binary files /dev/null and b/research/complex-571-cold14-k492/data/OWNERS.json.gz differ diff --git a/research/complex-571-cold14-k492/data/PLAN.json b/research/complex-571-cold14-k492/data/PLAN.json new file mode 100644 index 0000000000..65b2b6b693 --- /dev/null +++ b/research/complex-571-cold14-k492/data/PLAN.json @@ -0,0 +1,41779 @@ +{ + "status": "LITERAL_OWNER_NOMINATION_PENDING_ADMISSION", + "mode": "recorded-coordinated-owner-swaps", + "K": 4, + "T": 8, + "M": 73, + "L": 9, + "live": 7168, + "deficit": 2560, + "profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "windows": { + "0,0": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,2": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,1": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,3": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,5": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,7": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,9": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,11": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,12": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,13": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,14": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,15": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,16": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,17": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "1,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,1": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,3": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,5": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,7": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,9": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,11": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,12": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,13": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,14": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,15": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,16": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,17": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "2,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,1": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,3": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,5": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,7": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,9": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,11": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,12": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,13": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,14": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,15": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,16": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,17": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "3,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,1": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,3": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,5": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,7": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,9": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,11": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,12": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,13": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,14": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,15": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,16": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,17": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "4,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,1": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,3": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,5": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,7": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,9": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,11": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,12": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,13": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,14": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,15": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,16": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,17": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "5,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,1": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,3": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,5": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,7": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,9": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,11": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,12": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,13": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,14": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,15": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,16": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,17": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "6,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,1": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,3": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,5": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,7": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,9": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,11": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,12": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,13": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,14": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,15": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,16": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,17": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "7,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,1": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,3": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,5": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,7": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,9": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,11": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,12": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,13": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,14": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,15": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,16": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,17": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ] + }, + "sides": { + "0": 0, + "2": 1, + "1": 0, + "3": 1, + "4": 0, + "6": 1, + "5": 0, + "7": 1, + "8": 0, + "10": 1, + "9": 0, + "11": 1, + "12": 0, + "13": 1, + "14": 0, + "15": 1, + "16": 0, + "17": 1 + }, + "pairs": { + "0": 1, + "2": 1, + "1": 1, + "3": 1, + "4": 2, + "6": 2, + "5": 2, + "7": 2, + "8": 3, + "10": 3, + "9": 3, + "11": 3, + "12": 0, + "13": 0, + "14": 1, + "15": 1, + "16": 2, + "17": 2 + }, + "solver_status": "FEASIBLE_NOT_OPTIMAL", + "gap": null, + "provider_calls": [ + { + "time": 0, + "stage": 0, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + { + "time": 1, + "stage": 0, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + { + "time": 2, + "stage": 1, + "replica": 0, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58" + }, + { + "time": 3, + "stage": 0, + "replica": 2, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + { + "time": 4, + "stage": 1, + "replica": 1, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58" + }, + { + "time": 5, + "stage": 2, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 6, + "stage": 0, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + { + "time": 7, + "stage": 1, + "replica": 2, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58" + }, + { + "time": 8, + "stage": 2, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 9, + "stage": 3, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 10, + "stage": 0, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 11, + "stage": 1, + "replica": 3, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 12, + "stage": 2, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 13, + "stage": 3, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 14, + "stage": 4, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 15, + "stage": 0, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 16, + "stage": 1, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 17, + "stage": 2, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 18, + "stage": 3, + "replica": 2, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 19, + "stage": 4, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 20, + "stage": 5, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 21, + "stage": 0, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 22, + "stage": 1, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 23, + "stage": 2, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 24, + "stage": 3, + "replica": 3, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 25, + "stage": 4, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 26, + "stage": 5, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 27, + "stage": 0, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 28, + "stage": 6, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 29, + "stage": 1, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 30, + "stage": 2, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 31, + "stage": 3, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 32, + "stage": 4, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 33, + "stage": 5, + "replica": 2, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 34, + "stage": 6, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 35, + "stage": 1, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 36, + "stage": 7, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 37, + "stage": 2, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 38, + "stage": 3, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 39, + "stage": 4, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 40, + "stage": 5, + "replica": 3, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 41, + "stage": 6, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 42, + "stage": 7, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 43, + "stage": 2, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 44, + "stage": 8, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 45, + "stage": 3, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 46, + "stage": 4, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 47, + "stage": 5, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 48, + "stage": 6, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 49, + "stage": 7, + "replica": 2, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 50, + "stage": 8, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 51, + "stage": 3, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 52, + "stage": 4, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 53, + "stage": 5, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 54, + "stage": 6, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 55, + "stage": 7, + "replica": 3, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 56, + "stage": 8, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 57, + "stage": 4, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 58, + "stage": 5, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 59, + "stage": 6, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 60, + "stage": 7, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 61, + "stage": 8, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 62, + "stage": 5, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 63, + "stage": 6, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 64, + "stage": 7, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 65, + "stage": 8, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 66, + "stage": 6, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 67, + "stage": 7, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 68, + "stage": 8, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 69, + "stage": 7, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + { + "time": 70, + "stage": 8, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + { + "time": 71, + "stage": 8, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + } + ], + "per_call_widths": [ + { + "stage": 0, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + } + ], + "provider_registry": { + "ck": { + "directory": "providers/ck", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "ae3018c0646be06f47d345bb8baf0e6ea9220096a949fa30a8f7656aa4ad6f45", + "LOCAL-PROGRAMS.json.gz": "b5da54e049cc127a1065190a647cb71cac0c6ba03d9ccdb71719f4fcbfa886f3", + "LOCAL-CHECKS.json": "059c4e59142bdf5c19dc7c0afebcddfec28e6e60cbc7299b8bdcc624afbc0cbe", + "INDEPENDENT-LOCAL-REPLAY.json": "ecefb9e661301d8081522be68bbe6640e175c011eb1177f643383d193c6fb2f0", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "e9eb877f03421bee58630612b13a9dd134ffcdef070b6df8f6b28b3c9c65cde3", + "RESIDUAL-ADAPTERS.json": "4697965c1b466fd3eaf37fa1fbbd45bb06c78cb0fe0b3a253744efb4013581b9" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2596, + "2": 552, + "3": 304, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f", + "backward": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "LOCAL-PROGRAMS.json.gz": "854f17274092263dc25e60367f4cd0d29f60a8446becd17cc1883ebed7a97900", + "LOCAL-CHECKS.json": "9e7be4f5eb567ffe886871b3fa434cc71f352e91cc9da07cb4e72c5742f24db4", + "INDEPENDENT-LOCAL-REPLAY.json": "ad854d9d15515cbcf7a2bee221d9c3cf0c7215770521866b12ce98aa777e310b", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "RESIDUAL-ADAPTERS.json": "8283dfa442fc7e7626f3356385bda8607b8d15eecfdc9515a6271c29da6caa7a" + } + }, + "jp8": { + "directory": "providers/jp8", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "7a3fec1022d3b2b1bd986302a327735ec521d17b043f4a5acb96253a56f6193c", + "LOCAL-PROGRAMS.json.gz": "fa0c196f65bd6ec1424fdf7d789f6972075c7bb02bf43f573ea85eafab31be98", + "LOCAL-CHECKS.json": "0fad744aa863eedb288a9f87b1c23225a36b316b6275cc3b1bcedd42afe28a67", + "INDEPENDENT-LOCAL-REPLAY.json": "cb2f99ed351925dd35434b73de16f4085884fe81a35a69e1c7ce2d5e96cb975b", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "ab106a9e110b2a1e433cc18a76732be44841096afd30fd1e3b109d8837b2ebaf", + "RESIDUAL-ADAPTERS.json": "bdb44cf523636f307ebb3617da548f2e3a8af74321eabe24aef40186e280a917" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2512, + "2": 400, + "3": 448, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8", + "backward": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "LOCAL-PROGRAMS.json.gz": "efe45ce7fb025a6f53cc9eb54e951ac2211a5ed927e689a049e4f68ca680654b", + "LOCAL-CHECKS.json": "e29bdcebdc2966979a9f5911f56b68c6f4942f6fdbeb6737e9db44e147d0193a", + "INDEPENDENT-LOCAL-REPLAY.json": "f31a73829f5de91fe98c3986bb2ad9b31e7b33881720029347051ab2b686af3c", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "RESIDUAL-ADAPTERS.json": "99e1873464e8e718ea25fd80df5aaed0e5508b83e9bf2bdd094ea5c95fdf87c9" + } + } + }, + "source_plan_sha256": "442d71a0a41e42503c645892f9fddd5b4d8fa722659974cedc27ae41b60319ac", + "assignment_sha256": "31aab6b106e23111681ba8cf7f3e331106e1fb6536614814df6a134a0e1c3cc0", + "source_owners_sha256": "2453696ff8c79da009bfdf148747562eafc21f1e164fbee2920cf1b347805bc8" +} diff --git a/research/complex-571-cold14-k492/data/REPACKING.json b/research/complex-571-cold14-k492/data/REPACKING.json new file mode 100644 index 0000000000..98974a2d13 --- /dev/null +++ b/research/complex-571-cold14-k492/data/REPACKING.json @@ -0,0 +1,5044 @@ +{ + "source_commit": "f69477f4f6d3c7eb1f740b166881bffed4ffa9f6", + "source_plan_sha256": "442d71a0a41e42503c645892f9fddd5b4d8fa722659974cedc27ae41b60319ac", + "source_owners_sha256": "2453696ff8c79da009bfdf148747562eafc21f1e164fbee2920cf1b347805bc8", + "result_owners_content_sha256": "31aab6b106e23111681ba8cf7f3e331106e1fb6536614814df6a134a0e1c3cc0", + "idle_profile": { + "1": 128, + "3": 17, + "4": 1, + "7": 1, + "22": 1, + "48": 2213 + } +, + "moves": [ + [0,60,9,[3,4,110],[4,6,111]], + [0,61,9,[3,4,109],[1,6,67]], + [0,70,9,[3,4,100],[1,4,83]], + [0,71,9,[3,4,99],[1,6,103]], + [0,80,9,[3,4,84],[1,4,51]], + [0,81,9,[3,4,81],[0,4,40]], + [0,82,9,[3,4,80],[0,6,17]], + [0,86,9,[3,4,71],[3,6,2]], + [0,93,9,[3,4,50],[2,6,94]], + [0,96,9,[3,4,44],[1,6,79]], + [0,111,9,[3,4,16],[1,4,88]], + [0,118,9,[3,4,9],[1,6,14]], + [0,166,9,[0,4,80],[0,4,58]], + [0,168,9,[0,4,78],[0,4,93]], + [0,185,9,[0,4,63],[4,6,47]], + [0,191,9,[0,4,58],[0,6,77]], + [0,192,9,[0,4,57],[0,6,56]], + [0,193,9,[0,4,56],[0,6,19]], + [0,199,9,[0,4,50],[2,4,8]], + [0,200,9,[0,4,49],[0,6,33]], + [0,208,9,[0,4,42],[1,6,19]], + [0,210,9,[0,4,40],[0,6,57]], + [0,212,9,[0,4,38],[1,6,11]], + [0,236,9,[0,4,26],[0,4,56]], + [0,251,9,[0,4,16],[7,6,55]], + [0,274,9,[0,4,10],[0,4,83]], + [0,281,9,[0,4,8],[0,6,43]], + [0,283,9,[0,4,7],[0,6,92]], + [0,292,9,[0,4,4],[0,4,107]], + [0,383,5,[4,6,64],[1,6,107]], + [0,385,5,[3,4,95],[0,6,76]], + [0,386,5,[3,4,93],[1,6,89]], + [0,387,5,[3,4,92],[1,4,91]], + [0,391,5,[3,4,90],[0,4,91]], + [0,393,5,[3,4,88],[1,4,29]], + [0,394,5,[3,4,87],[3,6,69]], + [0,395,5,[3,4,86],[3,4,27]], + [0,397,8,[2,0,17],[2,2,111]], + [0,399,5,[3,4,85],[1,6,86]], + [0,401,5,[3,4,83],[1,6,20]], + [0,402,5,[3,4,82],[0,6,110]], + [0,403,5,[3,4,79],[0,4,63]], + [0,415,5,[3,4,78],[1,4,41]], + [0,417,5,[3,4,77],[2,6,78]], + [0,418,5,[3,4,76],[4,6,1]], + [0,419,5,[3,4,74],[1,6,45]], + [0,423,5,[3,4,70],[1,6,84]], + [0,425,5,[3,4,69],[1,4,12]], + [0,426,5,[3,4,68],[1,6,6]], + [0,427,5,[3,4,67],[7,6,95]], + [0,431,5,[3,4,66],[0,6,54]], + [0,433,5,[3,4,63],[5,6,78]], + [0,434,5,[3,4,62],[0,6,66]], + [0,435,5,[3,4,61],[2,6,65]], + [0,447,5,[3,4,60],[3,6,84]], + [0,449,5,[3,4,59],[1,4,79]], + [0,450,5,[3,4,57],[0,6,1]], + [0,451,5,[3,4,56],[1,4,58]], + [0,455,5,[3,4,55],[0,4,16]], + [0,457,5,[3,4,54],[2,4,54]], + [0,458,5,[3,4,53],[3,4,99]], + [0,459,5,[3,4,51],[0,6,87]], + [0,463,5,[3,4,47],[1,6,69]], + [0,465,5,[3,4,46],[1,6,48]], + [0,466,5,[3,4,45],[0,4,84]], + [0,467,5,[3,4,43],[3,6,9]], + [0,471,5,[3,4,42],[1,4,20]], + [0,473,5,[3,4,41],[0,4,49]], + [0,474,5,[3,4,39],[1,6,43]], + [0,475,5,[3,4,37],[0,4,38]], + [0,479,5,[3,4,36],[0,4,101]], + [0,481,5,[3,4,35],[1,6,105]], + [0,482,5,[3,4,33],[2,6,75]], + [0,483,5,[3,4,30],[4,4,84]], + [0,487,5,[3,4,29],[0,4,100]], + [0,489,5,[3,4,28],[2,6,35]], + [0,490,5,[3,4,27],[1,4,62]], + [0,491,5,[3,4,21],[0,6,96]], + [1,1,9,[3,4,90],[0,6,60]], + [1,2,9,[2,2,111],[2,2,103]], + [1,179,9,[0,4,108],[0,4,37]], + [1,182,9,[0,4,105],[0,4,50]], + [1,184,9,[0,4,103],[0,4,63]], + [1,191,9,[0,4,97],[0,4,43]], + [1,195,9,[0,4,93],[1,6,99]], + [1,277,8,[0,4,111],[0,10,82]], + [1,383,5,[6,4,79],[0,4,33]], + [1,385,5,[6,4,78],[3,4,84]], + [1,386,5,[6,4,77],[0,6,81]], + [1,387,5,[6,4,76],[0,6,37]], + [1,391,5,[6,4,75],[1,4,104]], + [1,393,5,[6,4,74],[1,4,3]], + [1,394,5,[6,4,73],[1,4,36]], + [1,395,5,[6,4,72],[0,4,39]], + [1,399,5,[6,4,71],[3,4,77]], + [1,401,5,[6,4,70],[1,6,62]], + [1,402,5,[6,4,69],[2,6,60]], + [1,403,5,[6,4,68],[1,4,34]], + [1,415,5,[6,4,67],[0,6,98]], + [1,417,5,[6,4,66],[2,4,61]], + [1,418,5,[6,4,65],[1,4,61]], + [1,419,5,[6,4,64],[2,6,53]], + [1,423,5,[6,4,63],[0,4,46]], + [1,425,5,[6,4,62],[0,4,7]], + [1,426,5,[6,4,61],[0,4,12]], + [1,427,5,[6,4,60],[2,6,106]], + [1,431,5,[6,4,59],[0,6,71]], + [1,433,5,[6,4,58],[1,4,22]], + [1,434,5,[6,4,57],[1,6,111]], + [1,435,5,[6,4,56],[2,4,44]], + [1,447,5,[6,4,55],[1,6,23]], + [1,449,5,[6,4,54],[6,4,57]], + [1,450,5,[6,4,53],[0,6,44]], + [1,451,5,[6,4,52],[4,6,30]], + [1,455,5,[6,4,51],[2,4,104]], + [1,457,5,[6,4,50],[1,6,108]], + [1,458,5,[6,4,49],[3,4,51]], + [1,459,5,[6,4,48],[3,6,61]], + [1,463,5,[6,4,47],[2,6,89]], + [1,465,5,[6,4,46],[1,4,106]], + [1,466,5,[6,4,45],[2,4,69]], + [1,467,5,[6,4,44],[0,4,78]], + [1,471,5,[6,4,43],[3,6,5]], + [1,473,5,[6,4,42],[0,4,65]], + [1,474,5,[6,4,41],[0,6,35]], + [1,475,5,[6,4,40],[1,6,85]], + [1,479,5,[6,4,39],[2,4,98]], + [1,481,5,[6,4,38],[0,4,74]], + [1,482,5,[6,4,37],[7,4,78]], + [1,483,5,[6,4,36],[1,4,39]], + [1,487,5,[6,4,35],[3,6,46]], + [1,489,5,[6,4,34],[1,6,61]], + [1,490,5,[6,4,33],[0,6,104]], + [1,491,5,[0,6,59],[0,4,103]], + [2,2,9,[7,6,94],[1,6,90]], + [2,4,9,[7,6,88],[0,4,62]], + [2,6,9,[7,6,68],[3,6,46]], + [2,7,9,[7,6,60],[2,4,63]], + [2,9,9,[7,6,26],[0,6,73]], + [2,11,9,[7,6,20],[5,6,75]], + [2,12,9,[5,6,111],[5,6,110]], + [2,16,9,[5,6,106],[0,4,42]], + [2,20,9,[5,6,102],[1,4,111]], + [2,23,9,[5,6,99],[0,6,25]], + [2,31,9,[5,6,92],[0,4,33]], + [2,32,9,[5,6,91],[7,4,2]], + [2,33,9,[5,6,90],[1,6,60]], + [2,235,8,[0,4,111],[2,2,8]], + [2,383,5,[7,4,97],[0,4,96]], + [2,385,5,[7,4,96],[3,6,37]], + [2,386,5,[7,4,95],[1,6,27]], + [2,387,5,[7,4,94],[7,6,103]], + [2,391,5,[7,4,93],[0,6,53]], + [2,393,5,[7,4,92],[3,6,99]], + [2,394,5,[7,4,91],[3,6,62]], + [2,395,5,[7,4,90],[2,4,0]], + [2,399,5,[7,4,89],[0,4,88]], + [2,401,5,[7,4,88],[0,6,17]], + [2,402,5,[7,4,87],[2,4,16]], + [2,403,5,[7,4,86],[0,4,40]], + [2,415,5,[7,4,85],[0,4,18]], + [2,417,5,[7,4,84],[0,4,45]], + [2,418,5,[7,4,83],[0,6,5]], + [2,419,5,[7,4,82],[1,6,51]], + [2,423,5,[7,4,81],[3,6,103]], + [2,425,5,[2,6,49],[0,6,22]], + [2,426,5,[1,4,46],[2,6,37]], + [2,427,5,[0,6,111],[0,4,70]], + [2,431,5,[0,6,110],[0,6,90]], + [2,433,5,[0,6,109],[1,6,93]], + [2,435,5,[0,6,107],[1,6,68]], + [2,447,5,[0,6,106],[0,6,79]], + [2,449,5,[0,6,105],[0,6,8]], + [2,450,5,[0,6,104],[0,4,28]], + [2,451,5,[0,6,103],[0,4,3]], + [2,455,5,[0,6,102],[0,6,11]], + [2,458,5,[0,6,100],[1,6,5]], + [2,463,5,[0,6,98],[0,6,47]], + [2,465,5,[0,6,63],[0,4,89]], + [2,466,5,[0,6,62],[0,4,47]], + [2,467,5,[0,6,61],[5,4,36]], + [2,471,5,[0,6,60],[0,4,106]], + [2,473,5,[0,6,58],[2,6,34]], + [2,474,5,[0,6,57],[1,6,39]], + [2,475,5,[0,6,56],[0,4,10]], + [2,481,5,[0,6,54],[1,4,49]], + [2,482,5,[0,6,53],[0,6,62]], + [2,483,5,[0,6,52],[1,6,101]], + [2,487,5,[0,6,51],[0,6,38]], + [2,490,5,[0,6,49],[0,4,30]], + [2,491,5,[0,6,48],[1,6,55]], + [3,124,9,[2,6,108],[0,4,57]], + [3,125,9,[2,6,107],[2,6,6]], + [3,132,9,[2,6,100],[0,4,41]], + [3,134,9,[2,6,98],[1,6,16]], + [3,135,9,[2,6,97],[1,4,10]], + [3,141,9,[2,6,93],[1,4,59]], + [3,156,9,[2,6,80],[1,4,31]], + [3,164,9,[2,6,72],[0,6,52]], + [3,166,9,[2,6,70],[0,6,38]], + [3,173,9,[2,6,65],[1,4,7]], + [3,176,9,[2,6,62],[0,4,48]], + [3,177,9,[2,6,61],[0,6,20]], + [3,178,9,[2,6,60],[1,6,27]], + [3,180,9,[2,6,58],[1,6,109]], + [3,181,9,[2,6,57],[2,4,8]], + [3,190,9,[2,6,49],[0,6,40]], + [3,194,9,[2,6,45],[0,4,4]], + [3,198,9,[2,6,41],[2,6,97]], + [3,200,9,[2,6,39],[2,4,41]], + [3,206,9,[2,6,34],[0,4,94]], + [3,207,9,[2,6,33],[0,6,81]], + [3,211,9,[2,6,29],[1,6,31]], + [3,214,9,[2,6,26],[3,4,85]], + [3,216,9,[2,6,24],[2,6,3]], + [3,238,9,[2,6,16],[0,4,70]], + [3,245,9,[2,6,13],[1,4,60]], + [3,250,9,[2,6,8],[1,6,21]], + [3,252,9,[2,6,6],[2,6,45]], + [3,263,9,[2,6,4],[2,4,7]], + [3,272,9,[2,6,3],[0,4,16]], + [3,273,9,[2,6,2],[1,6,98]], + [3,284,8,[2,0,17],[2,2,111]], + [3,292,9,[0,6,92],[1,6,63]], + [3,312,9,[0,6,84],[0,6,51]], + [3,325,9,[0,6,81],[0,4,26]], + [3,342,9,[0,6,73],[0,4,60]], + [3,368,9,[0,4,110],[0,6,98]], + [3,383,5,[7,6,56],[4,6,105]], + [3,385,5,[7,6,55],[0,6,56]], + [3,386,5,[7,6,54],[3,6,63]], + [3,387,5,[7,6,53],[2,6,39]], + [3,391,5,[7,6,52],[0,6,105]], + [3,393,5,[7,6,51],[2,6,57]], + [3,394,5,[7,6,50],[0,4,79]], + [3,395,5,[7,6,49],[1,4,109]], + [3,399,5,[7,6,48],[1,4,93]], + [3,401,5,[7,6,47],[2,4,78]], + [3,402,5,[7,6,46],[7,6,44]], + [3,403,5,[7,6,45],[1,6,8]], + [3,415,5,[7,6,44],[1,6,60]], + [3,417,5,[7,6,43],[0,4,11]], + [3,418,5,[7,6,42],[0,4,15]], + [3,419,5,[7,6,41],[0,6,18]], + [3,423,5,[7,6,40],[1,4,35]], + [3,425,5,[7,6,39],[0,4,2]], + [3,426,5,[7,6,38],[1,4,11]], + [3,427,5,[7,6,37],[1,4,73]], + [3,431,5,[7,6,36],[0,6,48]], + [3,433,5,[7,6,35],[0,4,42]], + [3,434,5,[7,6,34],[0,6,111]], + [3,435,5,[7,6,33],[0,6,59]], + [3,447,5,[7,6,31],[0,6,58]], + [3,449,5,[7,6,30],[0,6,28]], + [3,450,5,[7,6,29],[7,6,17]], + [3,451,5,[7,6,28],[2,6,70]], + [3,455,5,[7,6,27],[0,4,27]], + [3,457,5,[7,6,26],[1,6,75]], + [3,458,5,[7,6,25],[1,6,57]], + [3,459,5,[1,6,63],[2,4,4]], + [3,463,5,[1,6,62],[0,6,84]], + [3,465,5,[1,6,61],[1,4,54]], + [3,466,5,[1,6,60],[4,6,74]], + [3,467,5,[1,6,59],[2,4,1]], + [3,471,5,[1,6,58],[0,4,0]], + [3,473,5,[1,6,57],[0,4,35]], + [3,474,5,[1,6,56],[4,4,110]], + [3,475,5,[1,6,55],[1,6,52]], + [3,479,5,[1,6,54],[1,6,53]], + [3,481,5,[1,6,53],[0,6,23]], + [3,482,5,[1,6,52],[0,6,45]], + [3,483,5,[1,6,51],[0,4,54]], + [3,487,5,[1,6,50],[0,4,87]], + [3,489,5,[1,6,49],[0,6,49]], + [3,490,5,[1,6,48],[3,6,60]], + [3,491,5,[1,6,47],[2,4,27]], + [4,0,9,[7,4,111],[3,4,99]], + [4,2,9,[7,4,108],[7,6,99]], + [4,6,9,[7,4,103],[4,4,21]], + [4,17,9,[7,4,90],[7,6,88]], + [4,29,9,[7,4,75],[5,6,95]], + [4,39,9,[7,4,59],[6,4,104]], + [4,48,9,[7,4,43],[6,6,34]], + [4,55,9,[7,4,28],[4,4,10]], + [4,56,9,[7,4,27],[0,4,39]], + [4,60,9,[7,4,22],[3,4,30]], + [4,64,9,[7,4,15],[1,4,21]], + [4,137,4,[3,4,111],[3,6,58]], + [4,163,9,[0,10,82],[0,6,65]], + [4,166,9,[0,6,109],[2,6,23]], + [4,172,9,[0,6,105],[1,4,87]], + [4,177,9,[0,6,100],[1,4,3]], + [4,178,9,[0,6,99],[1,6,47]], + [4,200,9,[0,6,44],[1,4,101]], + [4,205,9,[0,6,40],[0,4,24]], + [4,208,9,[0,6,37],[0,4,41]], + [4,210,9,[0,6,35],[0,4,36]], + [4,221,9,[0,6,25],[0,6,44]], + [4,262,8,[0,4,111],[3,10,92]], + [4,298,9,[0,4,105],[0,6,100]], + [4,312,9,[0,4,103],[0,4,111]], + [4,325,9,[0,4,100],[0,4,44]], + [4,329,9,[0,4,98],[0,4,22]], + [4,331,9,[0,4,96],[0,4,49]], + [4,337,9,[0,4,94],[0,4,59]], + [4,342,9,[0,4,92],[2,6,33]], + [4,348,9,[0,4,91],[0,6,68]], + [4,367,9,[0,4,83],[0,4,96]], + [4,368,9,[0,4,82],[1,4,52]], + [4,385,5,[5,6,43],[0,4,1]], + [4,386,5,[5,6,41],[3,6,22]], + [4,387,5,[5,6,40],[1,4,23]], + [4,391,5,[5,6,39],[5,4,57]], + [4,393,5,[5,6,38],[0,4,72]], + [4,394,5,[5,6,37],[1,6,14]], + [4,395,5,[5,6,36],[5,4,109]], + [4,399,5,[5,6,35],[1,6,17]], + [4,401,5,[5,6,34],[0,6,83]], + [4,402,5,[5,6,33],[1,6,32]], + [4,403,5,[5,6,32],[6,6,54]], + [4,415,5,[5,6,31],[0,4,76]], + [4,418,5,[0,6,96],[0,4,8]], + [4,419,5,[0,6,95],[0,4,51]], + [4,431,5,[0,6,90],[0,4,75]], + [4,435,5,[0,6,87],[0,4,21]], + [4,449,5,[0,6,85],[0,4,17]], + [4,450,5,[0,6,84],[2,4,86]], + [4,451,5,[0,6,83],[0,4,92]], + [4,455,5,[0,6,82],[1,4,1]], + [4,457,5,[0,6,81],[0,4,64]], + [4,459,5,[0,6,79],[2,6,26]], + [4,465,5,[0,6,77],[3,4,68]], + [4,466,5,[0,6,76],[1,6,13]], + [4,473,5,[0,6,73],[1,4,65]], + [4,474,5,[0,6,72],[4,4,14]], + [4,475,5,[0,6,71],[0,4,98]], + [4,481,5,[0,6,69],[1,4,8]], + [4,482,5,[0,6,68],[1,6,7]], + [4,483,5,[0,6,67],[0,4,5]], + [4,487,5,[0,6,66],[2,6,38]], + [4,489,5,[0,6,65],[0,4,82]], + [4,491,5,[0,4,48],[4,4,3]], + [5,3,9,[7,6,54],[1,6,67]], + [5,6,9,[7,6,17],[7,6,91]], + [5,20,9,[5,4,100],[1,4,74]], + [5,23,9,[5,4,97],[0,6,49]], + [5,33,9,[5,4,88],[2,4,43]], + [5,44,9,[5,4,78],[1,4,109]], + [5,50,9,[5,4,72],[5,6,72]], + [5,56,9,[5,4,66],[1,4,18]], + [5,68,9,[5,4,56],[2,6,20]], + [5,72,9,[5,4,52],[1,6,0]], + [5,82,9,[5,4,44],[0,4,57]], + [5,83,9,[5,4,43],[2,6,10]], + [5,97,9,[5,4,31],[4,4,77]], + [5,100,9,[5,4,28],[5,4,22]], + [5,101,9,[5,4,27],[1,4,56]], + [5,108,9,[5,4,22],[2,6,22]], + [5,111,9,[5,4,19],[2,6,58]], + [5,119,9,[5,4,11],[1,6,49]], + [5,125,9,[5,4,7],[5,6,96]], + [5,132,9,[5,4,0],[0,4,7]], + [5,145,9,[1,6,108],[1,6,74]], + [5,152,9,[1,6,95],[5,6,14]], + [5,161,9,[1,6,82],[2,6,50]], + [5,166,9,[1,6,67],[0,4,23]], + [5,171,9,[1,6,61],[1,4,103]], + [5,172,9,[1,4,2],[3,6,85]], + [5,201,9,[0,6,84],[0,4,39]], + [5,209,9,[0,6,77],[2,6,35]], + [5,220,9,[0,6,67],[7,4,43]], + [5,221,9,[0,6,66],[0,4,103]], + [5,231,7,[2,2,103],[2,0,17]], + [5,236,9,[0,6,62],[2,4,82]], + [5,238,9,[0,6,60],[1,4,2]], + [5,240,9,[0,6,58],[1,4,66]], + [5,247,9,[0,6,53],[0,4,35]], + [5,249,9,[0,6,51],[0,4,1]], + [5,251,9,[0,6,49],[0,6,84]], + [5,286,9,[0,6,33],[2,6,68]], + [5,313,9,[0,6,22],[0,4,100]], + [5,325,9,[0,6,20],[0,4,68]], + [5,330,9,[0,6,17],[0,4,8]], + [5,357,9,[0,6,5],[0,4,14]], + [5,377,7,[2,2,77],[2,0,68]], + [5,383,5,[0,4,81],[2,4,76]], + [5,385,5,[0,4,80],[3,4,90]], + [5,386,5,[0,4,79],[0,4,93]], + [5,387,5,[0,4,78],[4,4,2]], + [5,391,5,[0,4,77],[1,6,37]], + [5,393,5,[0,4,76],[3,4,62]], + [5,394,5,[0,4,75],[1,6,76]], + [5,395,5,[0,4,74],[1,4,44]], + [5,399,5,[0,4,73],[2,6,42]], + [5,401,5,[0,4,72],[0,6,67]], + [5,402,5,[0,4,71],[2,6,6]], + [5,403,5,[0,4,70],[1,6,109]], + [5,417,5,[0,4,68],[1,4,15]], + [5,418,5,[0,4,67],[2,6,3]], + [5,419,5,[0,4,66],[1,4,17]], + [5,423,5,[0,4,65],[3,6,0]], + [5,425,5,[0,4,64],[7,4,76]], + [5,426,5,[0,4,63],[0,4,109]], + [5,427,5,[0,4,62],[5,6,60]], + [5,431,5,[0,4,61],[0,6,60]], + [5,433,5,[0,4,60],[1,6,66]], + [5,434,5,[0,4,59],[0,4,66]], + [5,435,5,[0,4,58],[1,4,90]], + [5,447,5,[0,4,57],[0,4,111]], + [5,449,5,[0,4,56],[2,6,86]], + [5,450,5,[0,4,55],[3,6,67]], + [5,451,5,[0,4,54],[4,6,28]], + [5,455,5,[0,4,53],[1,4,43]], + [5,457,5,[0,4,52],[6,6,37]], + [5,458,5,[0,4,51],[3,4,7]], + [5,459,5,[0,4,50],[3,4,22]], + [5,463,5,[0,4,49],[0,4,108]], + [5,465,5,[0,4,47],[0,4,24]], + [5,466,5,[0,4,46],[3,4,59]], + [5,467,5,[0,4,45],[1,4,63]], + [5,471,5,[0,4,44],[0,4,34]], + [5,473,5,[0,4,43],[3,6,94]], + [5,474,5,[0,4,42],[0,4,104]], + [5,475,5,[0,4,41],[1,4,92]], + [5,479,5,[0,4,40],[0,4,105]], + [5,481,5,[0,4,39],[1,6,82]], + [5,482,5,[0,4,38],[2,6,98]], + [5,483,5,[0,4,37],[0,4,6]], + [5,487,5,[0,4,36],[0,4,9]], + [5,489,5,[0,4,35],[0,6,20]], + [5,490,5,[0,4,34],[0,4,52]], + [5,491,5,[0,4,33],[0,4,77]], + [6,26,4,[0,4,110],[0,4,107]], + [6,42,4,[0,4,109],[0,4,55]], + [6,57,4,[0,4,108],[1,4,2]], + [6,58,4,[0,4,107],[2,4,38]], + [6,61,9,[1,6,109],[0,6,87]], + [6,62,9,[1,6,108],[1,6,14]], + [6,65,9,[1,6,99],[1,4,15]], + [6,66,9,[1,6,98],[0,4,85]], + [6,71,9,[1,6,86],[1,6,54]], + [6,73,4,[0,4,106],[3,6,20]], + [6,74,4,[0,4,105],[2,4,109]], + [6,78,9,[1,6,78],[0,4,29]], + [6,79,9,[1,6,76],[0,4,66]], + [6,81,9,[1,6,74],[1,6,108]], + [6,82,9,[1,6,72],[1,6,35]], + [6,86,9,[1,6,63],[1,4,48]], + [6,87,9,[1,6,62],[0,4,45]], + [6,89,4,[0,4,104],[0,6,65]], + [6,90,4,[0,4,103],[2,4,57]], + [6,91,9,[1,6,59],[2,6,69]], + [6,94,9,[1,6,56],[1,6,72]], + [6,96,9,[1,6,54],[1,4,16]], + [6,102,9,[1,6,48],[1,4,57]], + [6,103,9,[1,6,47],[1,4,56]], + [6,105,4,[0,4,102],[0,6,61]], + [6,106,4,[0,4,101],[0,6,85]], + [6,111,9,[1,6,41],[0,4,71]], + [6,117,9,[1,6,35],[4,6,50]], + [6,121,4,[0,4,100],[0,6,52]], + [6,122,4,[0,4,99],[1,6,98]], + [6,126,9,[1,6,28],[2,4,49]], + [6,132,9,[1,6,22],[0,6,71]], + [6,133,9,[1,6,21],[0,4,78]], + [6,137,4,[0,4,98],[1,6,67]], + [6,138,4,[0,4,97],[2,4,58]], + [6,140,9,[1,6,16],[1,4,43]], + [6,142,9,[1,6,14],[0,6,54]], + [6,146,9,[1,6,10],[0,4,105]], + [6,147,9,[1,6,9],[0,4,81]], + [6,153,4,[0,4,96],[0,4,94]], + [6,154,4,[0,4,95],[6,6,50]], + [6,158,9,[1,6,0],[0,4,58]], + [6,169,4,[0,4,94],[0,4,23]], + [6,170,4,[0,4,93],[1,4,28]], + [6,173,9,[0,6,99],[0,4,26]], + [6,174,9,[0,6,98],[0,6,47]], + [6,179,9,[0,6,93],[0,6,99]], + [6,185,9,[0,6,87],[0,4,21]], + [6,186,4,[0,4,92],[2,6,66]], + [6,188,9,[0,6,85],[0,4,17]], + [6,202,4,[0,4,91],[0,6,68]], + [6,203,9,[0,6,71],[0,4,98]], + [6,206,9,[0,6,68],[0,4,91]], + [6,209,9,[0,6,65],[0,4,82]], + [6,213,9,[0,6,61],[1,4,98]], + [6,217,9,[0,6,57],[0,4,40]], + [6,218,4,[0,4,90],[1,6,16]], + [6,219,9,[0,6,56],[1,4,40]], + [6,221,9,[0,6,54],[1,4,49]], + [6,223,9,[0,6,52],[0,6,35]], + [6,240,9,[0,6,49],[0,4,10]], + [6,245,9,[0,6,47],[0,4,67]], + [6,247,9,[0,6,45],[0,4,20]], + [6,249,9,[0,6,43],[0,4,80]], + [6,252,9,[0,6,40],[2,6,49]], + [6,263,9,[0,6,38],[1,4,25]], + [6,274,9,[0,6,35],[0,4,50]], + [6,324,9,[0,6,19],[0,4,110]], + [6,378,7,[2,2,8],[2,2,77]], + [6,383,5,[2,6,47],[1,6,99]], + [6,385,5,[1,4,111],[2,4,107]], + [6,386,5,[1,4,96],[1,6,28]], + [6,387,5,[1,4,95],[3,4,98]], + [6,391,5,[1,4,93],[1,4,96]], + [6,393,5,[1,4,92],[4,4,38]], + [6,394,5,[1,4,91],[0,4,73]], + [6,395,5,[1,4,90],[0,6,57]], + [6,399,5,[1,4,89],[1,4,68]], + [6,401,5,[1,4,88],[1,4,80]], + [6,402,5,[1,4,87],[2,4,34]], + [6,403,5,[1,4,86],[2,6,28]], + [6,407,4,[0,4,89],[5,6,93]], + [6,409,4,[0,4,88],[1,6,74]], + [6,410,4,[0,4,87],[1,4,95]], + [6,411,4,[0,4,86],[0,4,19]], + [6,415,5,[1,4,85],[1,6,71]], + [6,417,5,[1,4,84],[2,6,59]], + [6,418,5,[1,4,83],[0,6,43]], + [6,419,5,[1,4,82],[3,4,19]], + [6,423,5,[1,4,81],[1,4,53]], + [6,425,5,[1,4,80],[0,4,102]], + [6,426,5,[1,4,79],[3,6,31]], + [6,427,5,[1,4,78],[2,6,22]], + [6,431,5,[1,4,77],[2,6,74]], + [6,433,5,[1,4,76],[0,6,40]], + [6,434,5,[1,4,75],[0,4,56]], + [6,439,4,[0,4,85],[4,6,102]], + [6,441,4,[0,4,84],[0,4,4]], + [6,443,4,[0,4,82],[2,6,61]], + [6,447,5,[1,4,73],[2,4,97]], + [6,449,5,[1,4,72],[0,4,22]], + [6,450,5,[1,4,71],[5,6,26]], + [6,451,5,[1,4,70],[2,4,99]], + [6,455,5,[1,4,69],[5,6,62]], + [6,457,5,[1,4,68],[2,4,5]], + [6,458,5,[1,4,67],[2,4,46]], + [6,459,5,[1,4,66],[2,6,84]], + [6,463,5,[1,4,65],[0,4,31]], + [6,465,5,[1,4,64],[2,6,13]], + [6,466,5,[1,4,63],[0,4,97]], + [6,467,5,[1,4,62],[0,4,90]], + [6,471,5,[1,4,61],[2,4,108]], + [6,473,5,[1,4,60],[1,4,105]], + [6,474,5,[1,4,59],[0,4,32]], + [6,475,5,[1,4,58],[0,4,61]], + [6,479,5,[1,4,57],[0,4,53]], + [6,481,5,[1,4,56],[0,4,68]], + [6,482,5,[1,4,55],[1,6,10]], + [6,483,5,[1,4,54],[5,6,103]], + [6,487,5,[1,4,53],[1,6,56]], + [6,488,8,[0,4,111],[2,2,8]], + [6,489,5,[1,4,52],[1,4,70]], + [6,490,5,[1,4,51],[3,4,41]], + [6,491,5,[1,4,48],[3,4,61]], + [7,84,9,[2,2,103],[2,0,17]], + [7,192,9,[2,2,8],[0,4,111]], + [7,242,9,[0,4,81],[0,4,15]], + [7,275,9,[0,4,67],[1,4,104]], + [7,281,9,[0,4,66],[2,4,106]], + [7,290,7,[2,0,71],[2,0,29]], + [7,294,9,[0,4,60],[0,6,99]], + [7,295,9,[0,4,59],[0,4,13]], + [7,297,9,[0,4,57],[0,4,51]], + [7,305,7,[2,0,68],[2,0,71]], + [7,315,7,[2,0,60],[2,2,103]], + [7,325,9,[0,4,51],[1,6,9]], + [7,328,9,[0,4,50],[1,6,25]], + [7,349,9,[0,4,41],[0,4,92]], + [7,353,9,[0,4,39],[0,4,88]], + [7,358,9,[0,4,37],[0,4,108]], + [7,365,9,[0,4,36],[1,4,94]], + [7,366,9,[0,4,35],[1,6,72]], + [7,378,7,[2,0,29],[2,0,60]], + [7,383,5,[3,6,99],[0,6,69]], + [7,385,5,[3,6,98],[1,4,30]], + [7,387,5,[3,6,95],[2,4,19]], + [7,391,5,[3,6,89],[2,6,44]], + [7,393,5,[3,6,88],[2,6,102]], + [7,394,5,[3,6,87],[0,4,86]], + [7,395,5,[3,6,86],[1,4,108]], + [7,399,5,[3,6,85],[0,4,60]], + [7,401,5,[3,6,84],[0,4,37]], + [7,402,5,[3,6,83],[0,4,81]], + [7,403,5,[3,6,82],[3,4,75]], + [7,415,5,[3,6,81],[1,4,98]], + [7,418,5,[1,4,49],[1,6,41]], + [7,419,5,[0,4,32],[2,4,22]], + [7,423,5,[0,4,31],[0,6,2]], + [7,425,5,[0,4,30],[1,6,81]], + [7,426,5,[0,4,29],[1,6,92]], + [7,427,5,[0,4,28],[1,4,66]], + [7,431,5,[0,4,27],[0,4,36]], + [7,435,5,[0,4,24],[4,6,18]], + [7,443,4,[2,2,111],[2,6,85]], + [7,447,5,[0,4,23],[0,6,16]], + [7,449,5,[0,4,22],[0,4,59]], + [7,450,5,[0,4,21],[3,4,56]], + [7,451,5,[0,4,20],[5,4,77]], + [7,455,5,[0,4,19],[0,6,77]], + [7,457,5,[0,4,18],[0,6,109]], + [7,458,5,[0,4,17],[0,4,99]], + [7,459,5,[0,4,16],[0,6,25]], + [7,463,5,[0,4,15],[0,4,67]], + [7,465,5,[0,4,14],[0,4,57]], + [7,466,5,[0,4,13],[3,4,44]], + [7,467,5,[0,4,12],[1,4,37]], + [7,471,5,[0,4,11],[0,6,3]], + [7,473,5,[0,4,10],[2,6,12]], + [7,474,5,[0,4,9],[6,6,46]], + [7,475,5,[0,4,8],[0,6,26]], + [7,479,5,[0,4,7],[3,6,44]], + [7,481,5,[0,4,6],[1,6,2]], + [7,482,5,[0,4,5],[2,4,75]], + [7,483,5,[0,4,4],[0,6,107]], + [7,487,5,[0,4,3],[5,6,12]], + [7,489,5,[0,4,2],[1,4,89]], + [7,490,5,[0,4,1],[1,6,97]], + [7,491,5,[0,4,0],[1,4,97]], + [8,83,9,[5,4,108],[3,4,15]], + [8,102,9,[5,4,73],[4,6,10]], + [8,115,9,[5,4,50],[3,4,83]], + [8,119,9,[5,4,37],[4,6,75]], + [8,141,9,[3,4,105],[1,4,73]], + [8,142,9,[3,4,104],[2,4,80]], + [8,145,9,[3,4,101],[0,4,6]], + [8,146,9,[3,4,100],[1,4,91]], + [8,147,9,[3,4,99],[3,6,111]], + [8,161,9,[1,4,10],[3,4,80]], + [8,165,9,[1,4,6],[1,4,42]], + [8,216,9,[0,4,71],[1,6,46]], + [8,217,9,[0,4,70],[1,6,73]], + [8,220,9,[0,4,68],[0,4,59]], + [8,237,9,[0,4,62],[0,4,105]], + [8,240,9,[0,4,59],[0,4,53]], + [8,241,9,[0,4,58],[1,6,63]], + [8,248,9,[0,4,53],[0,4,103]], + [8,252,9,[0,4,49],[1,4,106]], + [8,260,9,[0,4,48],[1,6,56]], + [8,263,9,[0,4,45],[1,4,47]], + [8,272,9,[0,4,44],[1,6,100]], + [8,273,9,[0,4,43],[0,6,58]], + [8,275,9,[0,4,41],[0,4,100]], + [8,280,9,[0,4,40],[0,6,93]], + [8,281,9,[0,4,39],[1,4,17]], + [8,294,9,[0,4,29],[1,6,61]], + [8,297,9,[0,4,26],[0,6,61]], + [8,299,9,[0,4,24],[1,4,2]], + [8,312,9,[0,4,23],[1,4,58]], + [8,337,9,[0,4,14],[1,4,78]], + [8,340,9,[0,4,13],[0,4,97]], + [8,356,9,[0,4,6],[1,6,108]], + [8,367,9,[0,4,1],[1,4,79]], + [8,385,5,[1,6,109],[2,6,2]], + [8,386,5,[1,6,108],[5,4,43]], + [8,387,5,[1,6,107],[0,4,44]], + [8,391,5,[1,6,106],[1,4,52]], + [8,393,5,[1,6,105],[1,4,87]], + [8,394,5,[1,6,104],[0,6,103]], + [8,395,5,[1,6,103],[0,6,51]], + [8,399,5,[1,6,102],[2,4,81]], + [8,401,5,[1,6,101],[2,4,45]], + [8,402,5,[1,6,100],[1,4,26]], + [8,403,5,[1,6,99],[2,4,51]], + [8,415,5,[1,6,98],[0,4,85]], + [8,417,5,[1,6,97],[1,4,48]], + [8,418,5,[1,6,96],[3,6,77]], + [8,419,5,[1,6,95],[1,4,81]], + [8,423,5,[1,6,94],[0,6,72]], + [8,425,5,[1,6,93],[2,6,96]], + [8,426,5,[1,6,92],[0,4,14]], + [8,427,5,[1,6,91],[0,4,62]], + [8,431,5,[1,6,90],[0,4,95]], + [8,433,5,[1,6,89],[1,4,10]], + [8,434,5,[1,6,88],[1,4,71]], + [8,435,5,[1,6,87],[0,6,63]], + [8,447,5,[1,6,86],[1,4,100]], + [8,449,5,[1,6,85],[0,4,58]], + [8,450,5,[1,6,84],[1,4,50]], + [8,451,5,[1,6,83],[0,6,19]], + [8,455,5,[1,6,82],[1,4,69]], + [8,457,5,[1,6,81],[2,6,104]], + [8,458,5,[1,6,80],[2,4,40]], + [8,459,5,[1,6,79],[1,4,67]], + [8,463,5,[1,6,78],[0,4,29]], + [8,466,5,[1,6,76],[3,6,75]], + [8,467,5,[1,6,75],[0,6,13]], + [8,471,5,[1,6,74],[0,4,71]], + [8,473,5,[1,6,73],[2,6,25]], + [8,474,5,[1,6,72],[0,6,82]], + [8,475,5,[1,6,71],[2,6,7]], + [8,479,5,[1,6,70],[0,6,100]], + [8,481,5,[1,6,69],[1,6,78]], + [8,482,5,[1,6,68],[1,4,82]], + [8,483,5,[1,6,67],[0,4,13]], + [8,487,5,[1,6,66],[4,6,36]], + [8,489,5,[1,6,65],[0,6,9]], + [8,491,5,[1,4,44],[1,6,38]], + [9,1,9,[4,6,111],[7,4,45]], + [9,2,9,[4,6,110],[4,4,98]], + [9,13,9,[4,6,100],[4,6,47]], + [9,20,9,[4,6,93],[3,4,46]], + [9,21,9,[4,6,92],[1,4,105]], + [9,31,9,[4,6,81],[5,4,1]], + [9,33,9,[4,6,79],[2,4,42]], + [9,44,9,[4,6,69],[2,6,80]], + [9,45,9,[4,6,68],[2,6,70]], + [9,47,9,[4,6,66],[2,4,7]], + [9,49,9,[4,6,64],[2,4,64]], + [9,51,9,[4,6,62],[2,4,1]], + [9,61,9,[4,6,54],[3,6,30]], + [9,65,9,[4,6,50],[2,6,14]], + [9,66,9,[4,6,49],[1,6,71]], + [9,68,9,[4,6,47],[1,6,32]], + [9,91,9,[4,6,28],[2,4,18]], + [9,107,9,[1,4,106],[0,4,111]], + [9,108,9,[1,4,105],[2,4,37]], + [9,109,9,[1,4,104],[1,6,30]], + [9,118,9,[1,4,95],[2,6,100]], + [9,123,9,[1,4,92],[4,4,31]], + [9,124,9,[1,4,91],[0,6,5]], + [9,127,9,[1,4,88],[0,4,83]], + [9,130,9,[1,4,85],[0,6,35]], + [9,139,9,[1,4,78],[1,4,28]], + [9,141,9,[1,4,76],[0,6,62]], + [9,143,9,[1,4,74],[1,6,25]], + [9,151,9,[1,4,66],[0,6,53]], + [9,152,9,[1,4,65],[0,4,13]], + [9,158,9,[1,4,61],[0,6,105]], + [9,161,9,[1,4,58],[2,6,34]], + [9,163,9,[1,4,56],[0,4,99]], + [9,167,9,[1,4,52],[0,6,67]], + [9,168,9,[1,4,51],[2,6,82]], + [9,172,9,[1,4,49],[0,4,27]], + [9,181,9,[1,4,40],[0,6,40]], + [9,182,9,[1,4,39],[0,6,66]], + [9,188,9,[1,4,34],[0,4,91]], + [9,192,9,[1,4,30],[1,4,76]], + [9,193,9,[1,4,29],[1,4,39]], + [9,194,9,[1,4,28],[2,6,57]], + [9,197,9,[1,4,25],[1,6,34]], + [9,200,9,[1,4,22],[1,6,78]], + [9,203,9,[1,4,20],[0,6,22]], + [9,206,9,[1,4,17],[2,4,79]], + [9,209,9,[1,4,14],[2,4,0]], + [9,210,9,[1,4,13],[0,4,38]], + [9,221,9,[1,4,3],[0,6,85]], + [9,222,9,[1,4,2],[2,6,83]], + [9,238,9,[0,4,107],[0,6,49]], + [9,247,9,[0,4,100],[1,6,70]], + [9,248,9,[0,4,99],[3,4,84]], + [9,249,9,[0,4,98],[1,4,61]], + [9,263,9,[0,4,91],[0,4,49]], + [9,274,9,[0,4,88],[1,6,28]], + [9,281,9,[0,4,85],[0,4,98]], + [9,283,9,[0,4,83],[0,6,37]], + [9,286,9,[0,4,33],[0,6,84]], + [9,287,9,[0,4,32],[3,4,102]], + [9,296,9,[0,4,27],[5,6,1]], + [9,313,9,[0,4,22],[0,4,32]], + [9,324,9,[0,4,21],[1,6,94]], + [9,325,9,[0,4,20],[0,6,45]], + [9,330,9,[0,4,17],[1,4,65]], + [9,336,9,[0,4,15],[0,6,109]], + [9,340,9,[0,4,13],[1,4,20]], + [9,383,5,[0,6,47],[1,6,103]], + [9,386,5,[0,6,45],[0,4,20]], + [9,387,5,[0,6,44],[1,6,4]], + [9,391,5,[0,6,43],[0,4,80]], + [9,395,5,[0,6,40],[3,4,25]], + [9,401,5,[0,6,38],[1,4,25]], + [9,402,5,[0,6,37],[1,6,104]], + [9,415,5,[0,6,35],[0,4,50]], + [9,417,5,[0,6,34],[0,6,73]], + [9,418,5,[0,6,33],[7,6,109]], + [9,425,5,[0,6,30],[1,6,1]], + [9,427,5,[0,6,28],[0,6,33]], + [9,433,5,[0,6,26],[0,4,41]], + [9,434,5,[0,6,25],[0,4,43]], + [9,447,5,[0,6,23],[0,6,30]], + [9,449,5,[0,6,22],[0,6,34]], + [9,451,5,[0,6,20],[1,4,56]], + [9,455,5,[0,6,19],[0,4,110]], + [9,457,5,[0,6,18],[0,6,106]], + [9,458,5,[0,6,17],[1,6,36]], + [9,459,5,[0,6,16],[0,6,95]], + [9,466,5,[0,6,13],[0,6,102]], + [9,471,5,[0,6,11],[1,4,40]], + [9,474,5,[0,6,9],[3,4,87]], + [9,475,5,[0,6,8],[0,4,48]], + [9,482,5,[0,6,5],[3,4,53]], + [9,487,5,[0,6,3],[5,4,103]], + [9,489,5,[0,6,2],[1,6,22]], + [9,490,5,[0,6,1],[2,6,19]], + [10,66,9,[2,4,106],[1,6,107]], + [10,67,9,[2,4,102],[2,6,91]], + [10,82,9,[2,4,79],[1,4,95]], + [10,87,9,[2,4,73],[2,4,84]], + [10,101,9,[2,4,61],[1,6,9]], + [10,108,9,[2,4,56],[1,4,28]], + [10,115,9,[2,4,49],[2,6,71]], + [10,123,9,[2,4,43],[1,6,71]], + [10,125,9,[2,4,41],[2,6,63]], + [10,129,9,[2,4,37],[2,6,107]], + [10,152,9,[2,4,16],[2,6,13]], + [10,155,9,[2,4,15],[1,6,59]], + [10,158,9,[2,4,12],[1,6,17]], + [10,161,9,[2,4,9],[1,6,40]], + [10,162,9,[2,4,8],[5,4,105]], + [10,164,9,[2,4,6],[3,6,110]], + [10,171,9,[2,4,1],[1,4,85]], + [10,173,9,[1,6,111],[1,4,6]], + [10,176,9,[1,6,107],[1,6,16]], + [10,178,9,[1,6,105],[1,4,55]], + [10,180,9,[1,6,103],[1,4,110]], + [10,183,9,[1,6,100],[1,6,69]], + [10,190,9,[1,6,94],[1,6,19]], + [10,211,9,[1,6,74],[1,6,100]], + [10,214,9,[1,6,71],[1,4,13]], + [10,216,9,[1,6,69],[2,4,12]], + [10,219,9,[1,6,67],[6,6,79]], + [10,238,9,[1,6,59],[1,4,99]], + [10,239,9,[1,6,58],[1,6,31]], + [10,250,9,[1,6,49],[4,6,51]], + [10,274,9,[1,6,40],[1,4,93]], + [10,285,9,[1,6,33],[1,4,30]], + [10,287,9,[1,6,31],[3,4,86]], + [10,292,9,[1,6,30],[1,4,34]], + [10,294,9,[1,6,28],[1,4,22]], + [10,297,9,[1,6,25],[1,4,14]], + [10,325,9,[1,6,19],[1,6,74]], + [10,329,9,[1,6,17],[2,6,16]], + [10,330,9,[1,6,16],[2,6,76]], + [10,337,9,[1,6,13],[1,6,58]], + [10,349,9,[1,6,9],[3,4,67]], + [10,367,9,[1,6,0],[4,6,81]], + [10,383,5,[2,6,48],[2,4,79]], + [10,385,5,[1,4,110],[2,6,94]], + [10,386,5,[1,4,109],[4,4,33]], + [10,387,5,[1,4,108],[3,6,91]], + [10,391,5,[1,4,107],[2,6,92]], + [10,393,5,[1,4,106],[1,4,33]], + [10,394,5,[1,4,105],[2,4,9]], + [10,395,5,[1,4,104],[1,6,49]], + [10,399,5,[1,4,103],[2,6,0]], + [10,401,5,[1,4,102],[2,4,15]], + [10,402,5,[1,4,101],[2,6,4]], + [10,403,5,[1,4,100],[1,4,72]], + [10,415,5,[1,4,99],[4,4,36]], + [10,417,5,[1,4,98],[1,4,60]], + [10,418,5,[1,4,97],[2,6,97]], + [10,419,5,[1,4,94],[1,4,102]], + [10,423,5,[1,4,50],[6,6,40]], + [10,425,5,[1,4,47],[1,6,94]], + [10,427,5,[1,4,43],[2,4,43]], + [10,431,5,[1,4,42],[1,4,107]], + [10,433,5,[1,4,41],[4,4,73]], + [10,434,5,[1,4,40],[5,4,39]], + [10,435,5,[1,4,39],[1,6,25]], + [10,449,5,[1,4,37],[1,4,24]], + [10,450,5,[1,4,36],[4,4,53]], + [10,451,5,[1,4,35],[1,4,7]], + [10,455,5,[1,4,34],[4,4,8]], + [10,457,5,[1,4,33],[3,6,21]], + [10,458,5,[1,4,32],[3,4,30]], + [10,459,5,[1,4,31],[4,4,30]], + [10,463,5,[1,4,30],[1,4,76]], + [10,465,5,[1,4,29],[1,4,46]], + [10,466,5,[1,4,28],[1,4,27]], + [10,467,5,[1,4,27],[3,4,13]], + [10,471,5,[1,4,26],[1,4,32]], + [10,473,5,[1,4,25],[2,4,102]], + [10,474,5,[1,4,24],[2,4,37]], + [10,475,5,[1,4,23],[1,4,88]], + [10,479,5,[1,4,22],[2,4,92]], + [10,481,5,[1,4,21],[1,4,57]], + [10,482,5,[1,4,20],[1,6,30]], + [10,483,5,[1,4,19],[5,4,32]], + [10,487,5,[1,4,18],[1,6,0]], + [10,489,5,[1,4,17],[4,4,85]], + [10,490,5,[1,4,16],[7,4,68]], + [10,491,5,[1,4,15],[1,6,33]], + [11,1,9,[7,6,110],[7,4,35]], + [11,11,9,[7,6,101],[2,4,83]], + [11,37,9,[4,4,86],[1,6,80]], + [11,62,9,[4,4,64],[3,6,47]], + [11,66,9,[4,4,60],[3,6,40]], + [11,71,9,[4,4,55],[5,4,64]], + [11,98,9,[4,4,32],[2,6,15]], + [11,102,9,[4,4,28],[2,6,77]], + [11,114,9,[4,4,18],[3,4,40]], + [11,115,9,[4,4,17],[1,6,62]], + [11,116,9,[4,4,16],[3,4,72]], + [11,124,9,[4,4,10],[4,6,69]], + [11,129,9,[4,4,5],[7,6,94]], + [11,135,9,[3,4,111],[2,4,3]], + [11,136,9,[2,6,110],[3,6,103]], + [11,138,4,[3,4,110],[1,4,99]], + [11,140,9,[1,4,111],[1,4,96]], + [11,141,9,[1,4,110],[1,6,16]], + [11,146,9,[1,4,104],[1,6,111]], + [11,147,9,[1,4,103],[1,4,10]], + [11,151,9,[1,4,99],[2,4,14]], + [11,152,9,[1,4,98],[1,6,13]], + [11,153,4,[3,4,109],[4,4,60]], + [11,154,4,[3,4,108],[2,6,64]], + [11,156,9,[1,4,96],[4,6,42]], + [11,167,9,[1,4,85],[2,4,1]], + [11,168,9,[1,4,84],[2,4,36]], + [11,169,4,[3,4,107],[2,6,1]], + [11,170,4,[3,4,106],[1,6,21]], + [11,171,9,[1,4,83],[3,4,9]], + [11,177,9,[1,4,77],[1,4,55]], + [11,178,9,[1,4,76],[1,6,33]], + [11,181,9,[1,4,73],[1,6,66]], + [11,186,4,[3,4,105],[1,6,44]], + [11,187,9,[1,4,68],[2,6,67]], + [11,195,9,[1,4,60],[1,4,76]], + [11,196,9,[1,4,59],[1,4,98]], + [11,200,9,[1,4,55],[2,6,16]], + [11,201,9,[1,4,54],[1,4,1]], + [11,202,4,[3,4,104],[1,6,73]], + [11,205,9,[1,4,51],[1,4,84]], + [11,212,9,[1,4,44],[1,6,0]], + [11,213,9,[1,4,43],[1,6,106]], + [11,215,9,[1,4,41],[1,6,41]], + [11,218,4,[3,4,103],[3,6,107]], + [11,220,9,[1,4,37],[1,6,50]], + [11,240,9,[1,4,28],[6,6,38]], + [11,252,9,[1,4,18],[1,4,54]], + [11,272,9,[1,4,13],[2,4,102]], + [11,275,9,[1,4,10],[1,4,41]], + [11,282,9,[1,4,7],[1,4,18]], + [11,284,9,[1,4,5],[2,6,90]], + [11,292,9,[1,4,1],[1,6,86]], + [11,383,5,[2,4,105],[1,6,3]], + [11,385,5,[1,6,111],[2,4,30]], + [11,386,5,[1,6,46],[1,4,110]], + [11,387,5,[1,6,45],[2,4,2]], + [11,391,5,[1,6,44],[2,6,24]], + [11,393,5,[1,6,43],[1,4,59]], + [11,395,5,[1,6,41],[5,6,99]], + [11,399,5,[1,6,40],[2,4,110]], + [11,401,5,[1,6,39],[2,6,93]], + [11,402,5,[1,6,38],[2,4,41]], + [11,403,5,[1,6,37],[3,6,14]], + [11,407,4,[3,4,102],[1,4,111]], + [11,409,4,[3,4,101],[1,4,85]], + [11,410,4,[3,4,100],[1,4,5]], + [11,411,4,[3,4,99],[5,6,20]], + [11,415,5,[1,6,36],[1,6,59]], + [11,417,5,[1,6,35],[2,6,18]], + [11,418,5,[1,6,34],[1,4,51]], + [11,419,5,[1,6,33],[1,4,83]], + [11,423,5,[1,6,32],[1,6,12]], + [11,425,5,[1,6,31],[2,4,20]], + [11,426,5,[1,6,30],[1,6,18]], + [11,427,5,[1,6,29],[3,6,56]], + [11,431,5,[1,6,28],[3,6,23]], + [11,433,5,[1,6,27],[2,6,55]], + [11,434,5,[1,6,26],[3,4,111]], + [11,435,5,[1,6,25],[1,6,35]], + [11,439,4,[3,4,98],[4,4,55]], + [11,441,4,[3,4,97],[3,4,26]], + [11,442,4,[3,4,96],[2,4,11]], + [11,447,5,[1,6,24],[3,6,51]], + [11,449,5,[1,6,23],[3,4,29]], + [11,450,5,[1,6,22],[2,4,13]], + [11,451,5,[1,6,21],[3,4,66]], + [11,455,5,[1,6,20],[1,6,24]], + [11,457,5,[1,6,19],[3,4,69]], + [11,458,5,[1,6,18],[1,6,91]], + [11,459,5,[1,6,17],[4,6,100]], + [11,463,5,[1,6,16],[3,4,109]], + [11,465,5,[1,6,15],[2,4,12]], + [11,466,5,[1,6,14],[1,6,95]], + [11,467,5,[1,6,13],[2,4,17]], + [11,471,5,[1,6,12],[2,4,72]], + [11,473,5,[1,6,11],[3,6,89]], + [11,474,5,[1,6,10],[2,6,9]], + [11,475,5,[1,6,9],[1,6,65]], + [11,479,5,[1,6,8],[1,4,77]], + [11,481,5,[1,6,7],[2,6,82]], + [11,482,5,[1,6,6],[1,6,102]], + [11,483,5,[1,6,5],[1,4,13]], + [11,487,5,[1,6,4],[1,6,96]], + [11,489,5,[1,6,3],[2,4,48]], + [11,490,5,[1,6,2],[1,4,103]], + [11,491,5,[1,6,1],[2,4,77]], + [12,2,9,[6,4,108],[4,6,88]], + [12,6,9,[6,4,104],[4,6,49]], + [12,15,9,[6,4,96],[5,4,36]], + [12,30,9,[6,4,20],[2,4,34]], + [12,35,9,[6,4,15],[5,4,0]], + [12,36,9,[6,4,14],[7,6,32]], + [12,38,9,[6,4,12],[7,4,109]], + [12,40,9,[6,4,10],[5,4,74]], + [12,41,9,[6,4,9],[2,4,92]], + [12,44,9,[6,4,7],[5,4,43]], + [12,46,9,[6,4,5],[7,6,8]], + [12,50,9,[6,4,1],[6,6,78]], + [12,142,9,[1,6,106],[2,6,98]], + [12,146,9,[1,6,102],[1,4,77]], + [12,148,9,[1,6,100],[2,6,62]], + [12,151,9,[1,6,97],[1,4,44]], + [12,160,9,[1,6,90],[1,4,104]], + [12,162,9,[1,6,88],[1,6,21]], + [12,165,9,[1,6,85],[1,4,13]], + [12,172,9,[1,6,80],[1,6,43]], + [12,173,9,[1,6,79],[1,4,92]], + [12,175,9,[1,6,77],[1,4,69]], + [12,179,9,[1,6,73],[1,4,37]], + [12,180,9,[1,6,72],[2,4,70]], + [12,181,9,[1,6,71],[1,4,51]], + [12,182,9,[1,6,70],[1,6,57]], + [12,187,9,[1,6,66],[1,6,97]], + [12,190,9,[1,6,63],[6,6,8]], + [12,191,9,[1,6,62],[1,4,68]], + [12,193,9,[1,6,60],[2,6,64]], + [12,196,9,[1,6,57],[2,4,76]], + [12,204,9,[1,6,50],[2,6,110]], + [12,208,9,[1,6,46],[6,6,69]], + [12,211,9,[1,6,43],[4,4,43]], + [12,219,9,[1,6,36],[4,4,86]], + [12,221,9,[1,6,34],[1,6,102]], + [12,223,9,[1,6,32],[1,4,85]], + [12,235,9,[1,6,31],[1,6,36]], + [12,237,9,[1,6,29],[1,4,41]], + [12,239,9,[1,6,27],[3,6,18]], + [12,241,9,[1,6,25],[1,4,29]], + [12,247,9,[1,6,21],[1,6,77]], + [12,249,9,[1,6,19],[2,6,41]], + [12,252,9,[1,6,16],[1,4,5]], + [12,261,9,[1,6,14],[2,6,29]], + [12,272,9,[1,6,11],[2,6,108]], + [12,383,5,[4,6,65],[1,6,19]], + [12,385,5,[2,6,96],[3,4,89]], + [12,386,5,[2,6,95],[1,6,72]], + [12,387,5,[2,6,94],[2,6,58]], + [12,391,5,[2,6,93],[5,4,89]], + [12,393,5,[2,6,92],[1,4,75]], + [12,394,5,[2,6,91],[1,6,34]], + [12,395,5,[2,6,90],[2,4,33]], + [12,399,5,[2,6,89],[1,4,4]], + [12,402,5,[2,6,87],[1,4,64]], + [12,403,5,[2,6,86],[2,6,79]], + [12,415,5,[2,6,85],[1,6,79]], + [12,417,5,[2,6,84],[1,6,70]], + [12,418,5,[2,6,83],[1,6,31]], + [12,419,5,[2,6,82],[1,4,78]], + [12,423,5,[2,6,81],[1,6,106]], + [12,425,5,[2,6,80],[5,6,0]], + [12,426,5,[2,6,79],[4,4,25]], + [12,427,5,[2,6,78],[1,6,100]], + [12,431,5,[2,6,77],[2,6,90]], + [12,433,5,[2,6,76],[1,6,63]], + [12,434,5,[2,6,75],[4,6,89]], + [12,435,5,[2,6,74],[2,6,87]], + [12,447,5,[2,6,73],[1,4,84]], + [12,450,5,[2,6,71],[1,6,46]], + [12,451,5,[2,6,70],[1,6,50]], + [12,455,5,[2,6,69],[4,4,88]], + [12,457,5,[2,6,68],[1,4,19]], + [12,458,5,[2,6,67],[5,4,52]], + [12,459,5,[2,6,66],[1,4,18]], + [12,463,5,[2,6,65],[1,6,29]], + [12,465,5,[2,6,64],[1,6,90]], + [12,466,5,[2,6,63],[1,4,14]], + [12,467,5,[2,6,62],[3,6,7]], + [12,471,5,[2,6,61],[1,4,9]], + [12,473,5,[2,6,60],[1,4,101]], + [12,474,5,[2,6,59],[3,6,10]], + [12,475,5,[2,6,58],[2,4,68]], + [12,479,5,[2,6,57],[2,4,82]], + [12,481,5,[2,6,56],[1,6,11]], + [12,482,5,[2,6,55],[1,6,88]], + [12,483,5,[2,6,54],[1,4,86]], + [12,487,5,[2,6,53],[6,6,68]], + [12,489,5,[2,6,52],[3,4,65]], + [12,490,5,[2,6,51],[2,4,93]], + [13,5,9,[7,4,76],[2,4,6]], + [13,12,9,[5,6,110],[2,4,29]], + [13,98,9,[1,4,109],[1,4,66]], + [13,108,9,[1,4,101],[1,6,85]], + [13,111,9,[1,4,98],[1,4,68]], + [13,115,9,[1,4,94],[1,6,76]], + [13,116,9,[1,4,93],[1,4,64]], + [13,124,9,[1,4,87],[3,4,41]], + [13,132,9,[1,4,79],[3,4,82]], + [13,144,9,[1,4,69],[3,4,69]], + [13,145,9,[1,4,68],[4,6,43]], + [13,147,9,[1,4,66],[1,6,59]], + [13,148,9,[1,4,65],[2,4,54]], + [13,149,9,[1,4,64],[1,4,26]], + [13,158,9,[1,4,57],[1,6,10]], + [13,159,9,[1,4,56],[2,4,61]], + [13,160,9,[1,4,55],[1,6,105]], + [13,167,9,[1,4,48],[1,6,88]], + [13,168,9,[1,4,47],[1,6,62]], + [13,175,9,[1,4,42],[1,6,22]], + [13,176,9,[1,4,41],[1,4,65]], + [13,187,9,[1,4,31],[1,6,29]], + [13,192,9,[1,4,26],[1,6,28]], + [13,197,9,[1,4,21],[1,6,48]], + [13,200,9,[1,4,18],[1,6,82]], + [13,203,9,[1,4,16],[1,6,95]], + [13,204,9,[1,4,15],[3,4,19]], + [13,383,5,[5,4,47],[3,6,92]], + [13,385,5,[4,6,79],[6,4,7]], + [13,386,5,[4,6,78],[1,6,87]], + [13,387,5,[4,6,77],[2,6,52]], + [13,391,5,[4,6,76],[3,6,33]], + [13,393,5,[4,6,75],[1,6,40]], + [13,394,5,[4,6,74],[1,6,54]], + [13,395,5,[4,6,73],[3,6,106]], + [13,399,5,[4,6,72],[1,6,80]], + [13,401,5,[4,6,71],[2,4,62]], + [13,402,5,[4,6,70],[1,4,55]], + [13,403,5,[4,6,69],[2,4,49]], + [13,415,5,[4,6,68],[1,4,0]], + [13,417,5,[4,6,67],[4,6,81]], + [13,418,5,[4,6,66],[5,4,71]], + [13,419,5,[4,6,63],[1,6,83]], + [13,423,5,[4,6,62],[5,6,106]], + [13,425,5,[4,6,61],[1,6,9]], + [13,426,5,[4,6,60],[1,6,47]], + [13,427,5,[4,6,59],[2,6,8]], + [13,431,5,[4,6,58],[1,4,42]], + [13,433,5,[4,6,57],[1,6,15]], + [13,434,5,[4,6,56],[7,4,36]], + [13,435,5,[4,6,55],[1,4,47]], + [13,447,5,[4,6,54],[2,6,41]], + [13,449,5,[4,6,53],[3,4,34]], + [13,450,5,[4,6,52],[7,6,6]], + [13,451,5,[4,6,51],[1,6,58]], + [13,455,5,[4,6,50],[1,4,6]], + [13,457,5,[4,6,49],[2,4,80]], + [13,458,5,[4,6,48],[2,6,48]], + [13,459,5,[4,6,47],[2,4,87]], + [13,463,5,[1,6,0],[1,4,16]], + [13,465,5,[1,4,14],[1,4,31]], + [13,466,5,[1,4,13],[3,4,58]], + [13,467,5,[1,4,12],[2,4,90]], + [13,471,5,[1,4,11],[5,6,9]], + [13,473,5,[1,4,10],[3,6,96]], + [13,474,5,[1,4,9],[1,4,21]], + [13,475,5,[1,4,8],[5,6,35]], + [13,479,5,[1,4,7],[3,4,54]], + [13,481,5,[1,4,6],[2,4,55]], + [13,482,5,[1,4,5],[4,6,32]], + [13,483,5,[1,4,4],[1,6,26]], + [13,487,5,[1,4,3],[5,6,52]], + [13,489,5,[1,4,2],[2,6,27]], + [13,490,5,[1,4,1],[1,4,94]], + [13,491,5,[1,4,0],[4,6,92]], + [14,2,9,[7,6,109],[7,6,83]], + [14,3,9,[7,6,108],[7,6,70]], + [14,140,9,[2,4,92],[3,4,90]], + [14,152,9,[2,4,44],[2,6,108]], + [14,162,9,[2,4,34],[2,6,54]], + [14,174,9,[2,4,21],[2,6,65]], + [14,175,9,[2,4,20],[2,6,60]], + [14,177,9,[2,4,18],[3,6,72]], + [14,181,9,[2,4,14],[2,4,85]], + [14,188,9,[2,4,8],[6,6,92]], + [14,189,9,[2,4,7],[2,6,4]], + [14,193,9,[2,4,3],[2,6,8]], + [14,196,9,[2,4,0],[2,4,20]], + [14,383,5,[4,4,51],[2,4,18]], + [14,385,5,[2,4,108],[4,4,65]], + [14,386,5,[2,4,106],[6,4,68]], + [14,387,5,[2,4,102],[3,4,96]], + [14,391,5,[2,4,100],[5,6,81]], + [14,393,5,[2,4,99],[6,4,109]], + [14,394,5,[2,4,98],[6,4,41]], + [14,395,5,[2,4,97],[2,4,73]], + [14,399,5,[2,4,95],[3,4,60]], + [14,402,5,[2,4,88],[2,4,7]], + [14,403,5,[2,4,87],[2,4,100]], + [14,415,5,[2,4,86],[3,4,45]], + [14,417,5,[2,4,85],[4,6,68]], + [14,418,5,[2,4,82],[5,6,30]], + [14,419,5,[2,4,80],[2,6,5]], + [14,423,5,[2,4,79],[2,4,14]], + [14,425,5,[2,4,77],[3,6,29]], + [14,426,5,[2,4,76],[2,6,101]], + [14,427,5,[2,4,75],[5,4,47]], + [14,431,5,[2,4,74],[2,6,80]], + [14,433,5,[2,4,73],[3,6,88]], + [14,434,5,[2,4,72],[2,6,62]], + [14,435,5,[2,4,71],[7,6,29]], + [14,449,5,[2,4,69],[3,6,68]], + [14,450,5,[2,4,68],[3,4,10]], + [14,451,5,[2,4,67],[5,6,91]], + [14,455,5,[2,4,66],[4,6,70]], + [14,457,5,[2,4,63],[2,4,47]], + [14,458,5,[2,4,62],[2,6,68]], + [14,459,5,[2,4,61],[5,4,68]], + [14,463,5,[2,4,60],[4,6,106]], + [14,465,5,[2,4,59],[2,4,88]], + [14,466,5,[2,4,57],[2,4,21]], + [14,467,5,[2,4,56],[4,4,5]], + [14,471,5,[2,4,54],[5,4,1]], + [14,473,5,[2,4,53],[3,6,3]], + [14,474,5,[2,4,52],[2,4,36]], + [14,475,5,[2,4,51],[7,4,74]], + [14,479,5,[2,4,50],[3,4,21]], + [14,481,5,[2,4,48],[5,4,19]], + [14,482,5,[2,4,47],[7,6,4]], + [14,483,5,[2,4,45],[2,6,47]], + [14,487,5,[2,4,42],[2,6,107]], + [14,489,5,[2,4,36],[2,4,71]], + [14,490,5,[2,4,33],[2,6,91]], + [14,491,5,[2,4,30],[2,6,46]], + [15,17,9,[5,6,96],[6,4,14]], + [15,24,9,[5,6,89],[0,14,62]], + [15,25,9,[5,6,88],[4,6,54]], + [15,29,9,[5,6,85],[6,6,36]], + [15,30,9,[5,6,84],[5,4,66]], + [15,141,9,[2,6,110],[2,4,90]], + [15,148,9,[2,6,103],[2,4,44]], + [15,163,9,[2,6,90],[2,4,56]], + [15,173,9,[2,6,82],[4,6,66]], + [15,178,9,[2,6,77],[2,6,67]], + [15,179,9,[2,6,76],[3,4,59]], + [15,181,9,[2,6,74],[2,6,110]], + [15,187,9,[2,6,69],[2,4,41]], + [15,189,9,[2,6,67],[2,4,89]], + [15,192,9,[2,6,64],[2,6,2]], + [15,193,9,[2,6,63],[2,4,103]], + [15,200,9,[2,6,56],[2,4,10]], + [15,203,9,[2,6,54],[3,6,38]], + [15,206,9,[2,6,51],[3,4,23]], + [15,216,9,[2,6,40],[5,6,35]], + [15,222,9,[2,6,35],[2,4,60]], + [15,223,9,[2,6,34],[2,6,33]], + [15,235,9,[2,6,33],[0,14,41]], + [15,247,9,[2,6,23],[2,6,34]], + [15,261,9,[2,6,16],[2,4,50]], + [15,262,9,[2,6,15],[2,6,74]], + [15,287,9,[2,6,2],[2,4,73]], + [15,383,5,[7,4,111],[5,4,93]], + [15,385,5,[7,4,110],[2,6,69]], + [15,386,5,[7,4,109],[2,6,76]], + [15,387,5,[7,4,108],[3,4,33]], + [15,391,5,[7,4,107],[2,6,51]], + [15,393,5,[7,4,106],[3,6,12]], + [15,394,5,[7,4,105],[2,6,40]], + [15,395,5,[7,4,104],[6,4,27]], + [15,399,5,[7,4,103],[3,6,65]], + [15,401,5,[7,4,102],[3,6,66]], + [15,402,5,[7,4,101],[4,4,34]], + [15,403,5,[7,4,100],[4,4,71]], + [15,415,5,[7,4,63],[3,6,82]], + [15,417,5,[7,4,62],[3,4,39]], + [15,418,5,[7,4,47],[6,4,4]], + [15,419,5,[4,4,64],[3,6,95]], + [15,423,5,[4,4,63],[3,6,90]], + [15,426,5,[4,4,61],[5,4,59]], + [15,427,5,[4,4,60],[6,6,52]], + [15,431,5,[4,4,59],[2,4,105]], + [15,433,5,[4,4,58],[3,6,41]], + [15,434,5,[4,4,57],[2,4,3]], + [15,435,5,[4,4,56],[6,4,8]], + [15,447,5,[4,4,55],[3,4,85]], + [15,449,5,[4,4,52],[3,6,50]], + [15,450,5,[4,4,50],[3,4,36]], + [15,451,5,[4,4,49],[3,6,39]], + [15,455,5,[4,4,48],[0,14,52]], + [15,457,5,[4,4,47],[3,6,17]], + [15,458,5,[3,6,96],[5,4,22]], + [15,459,5,[2,4,111],[2,4,94]], + [15,463,5,[2,4,110],[2,6,63]], + [15,465,5,[2,4,109],[2,6,15]], + [15,466,5,[2,4,107],[0,14,85]], + [15,467,5,[2,4,104],[2,4,84]], + [15,471,5,[2,4,103],[2,6,54]], + [15,473,5,[2,4,101],[2,6,103]], + [15,474,5,[2,4,96],[3,4,95]], + [15,475,5,[2,4,94],[3,4,43]], + [15,479,5,[2,4,93],[2,6,23]], + [15,481,5,[2,4,92],[4,6,108]], + [15,482,5,[2,4,90],[3,4,18]], + [15,483,5,[2,4,89],[2,6,56]], + [15,487,5,[2,4,84],[2,4,28]], + [15,489,5,[2,4,83],[2,4,67]], + [15,490,5,[2,4,81],[2,4,52]], + [15,491,5,[2,4,78],[3,6,76]], + [16,5,9,[7,4,85],[6,4,93]], + [16,22,9,[6,4,103],[2,4,6]], + [16,33,9,[6,4,93],[7,4,110]], + [16,46,9,[6,4,80],[0,14,48]], + [16,66,9,[6,4,62],[2,4,59]], + [16,72,9,[6,4,56],[6,4,103]], + [16,83,9,[6,4,47],[2,4,15]], + [16,96,9,[6,4,36],[2,4,94]], + [16,100,9,[6,4,32],[6,6,26]], + [16,109,9,[6,4,25],[0,15,71]], + [16,143,9,[3,4,110],[2,6,89]], + [16,144,9,[3,4,109],[2,6,84]], + [16,150,9,[3,4,103],[3,4,50]], + [16,151,9,[3,4,102],[2,6,24]], + [16,158,9,[3,4,97],[2,4,66]], + [16,163,9,[2,6,94],[2,4,32]], + [16,166,9,[2,6,91],[2,4,91]], + [16,168,9,[2,6,89],[5,4,11]], + [16,175,9,[2,6,84],[2,4,77]], + [16,176,9,[2,6,83],[2,6,40]], + [16,182,9,[2,6,77],[2,4,40]], + [16,184,9,[2,6,75],[2,4,9]], + [16,189,9,[2,6,71],[5,6,88]], + [16,192,9,[2,6,68],[7,6,14]], + [16,193,9,[2,6,67],[3,6,108]], + [16,198,9,[2,6,62],[6,6,71]], + [16,204,9,[2,6,57],[5,6,1]], + [16,205,9,[2,6,56],[7,6,42]], + [16,207,9,[2,6,54],[3,4,48]], + [16,208,9,[2,6,53],[5,4,69]], + [16,211,9,[2,6,50],[2,6,47]], + [16,214,9,[2,6,47],[3,6,63]], + [16,217,9,[2,6,10],[2,6,62]], + [16,220,9,[2,6,8],[2,6,103]], + [16,222,9,[2,6,6],[2,4,74]], + [16,383,5,[6,6,49],[3,6,49]], + [16,385,5,[2,6,111],[2,6,105]], + [16,386,5,[2,6,110],[2,4,24]], + [16,387,5,[2,6,109],[2,4,35]], + [16,391,5,[2,6,108],[2,4,50]], + [16,393,5,[2,6,107],[2,6,67]], + [16,394,5,[2,6,106],[2,6,99]], + [16,395,5,[2,6,105],[3,4,42]], + [16,399,5,[2,6,104],[2,4,101]], + [16,401,5,[2,6,103],[2,4,8]], + [16,402,5,[2,6,102],[2,4,53]], + [16,403,5,[2,6,101],[6,6,109]], + [16,415,5,[2,6,100],[2,4,95]], + [16,417,5,[2,6,99],[2,4,106]], + [16,418,5,[2,6,98],[3,4,110]], + [16,419,5,[2,6,97],[5,4,10]], + [16,423,5,[2,6,46],[2,4,56]], + [16,425,5,[2,6,45],[5,4,31]], + [16,426,5,[2,6,44],[6,6,63]], + [16,427,5,[2,6,43],[3,4,1]], + [16,431,5,[2,6,42],[2,4,31]], + [16,433,5,[2,6,41],[2,4,23]], + [16,434,5,[2,6,40],[5,6,54]], + [16,435,5,[2,6,39],[3,6,30]], + [16,447,5,[2,6,38],[3,6,102]], + [16,449,5,[2,6,37],[3,6,36]], + [16,450,5,[2,6,36],[2,6,83]], + [16,451,5,[2,6,35],[2,6,110]], + [16,455,5,[2,6,34],[2,6,10]], + [16,457,5,[2,6,33],[3,4,28]], + [16,458,5,[2,6,32],[4,4,24]], + [16,459,5,[2,6,31],[2,4,26]], + [16,463,5,[2,6,30],[2,6,109]], + [16,465,5,[2,6,29],[2,6,33]], + [16,466,5,[2,6,28],[3,4,86]], + [16,467,5,[2,6,27],[5,6,76]], + [16,471,5,[2,6,26],[2,6,43]], + [16,473,5,[2,6,25],[2,6,31]], + [16,474,5,[2,6,24],[2,4,25]], + [16,475,5,[2,6,23],[2,6,77]], + [16,479,5,[2,6,22],[3,6,25]], + [16,481,5,[2,6,21],[3,4,91]], + [16,482,5,[2,6,20],[5,6,64]], + [16,483,5,[2,6,19],[2,4,96]], + [16,487,5,[2,6,18],[3,4,94]], + [16,489,5,[2,6,17],[2,6,71]], + [16,490,5,[2,6,16],[2,6,17]], + [16,491,5,[2,6,15],[7,4,16]], + [17,12,9,[7,6,82],[5,4,70]], + [17,13,9,[7,6,81],[5,6,12]], + [17,19,9,[7,6,70],[2,6,6]], + [17,33,9,[7,6,48],[7,6,108]], + [17,40,9,[7,6,30],[4,4,104]], + [17,63,9,[6,6,85],[7,6,109]], + [17,64,9,[6,6,83],[6,4,80]], + [17,67,9,[6,6,79],[3,4,100]], + [17,70,9,[6,6,74],[0,14,92]], + [17,72,9,[6,6,71],[5,6,78]], + [17,100,9,[6,6,23],[5,6,24]], + [17,116,9,[2,6,109],[2,4,78]], + [17,117,9,[2,6,108],[3,4,45]], + [17,132,9,[2,6,45],[4,4,54]], + [17,144,9,[2,6,35],[2,4,0]], + [17,150,9,[2,6,29],[3,6,76]], + [17,156,9,[2,6,25],[2,6,8]], + [17,159,9,[2,6,22],[3,4,29]], + [17,160,9,[2,6,21],[3,6,8]], + [17,161,9,[2,6,20],[3,4,109]], + [17,167,9,[2,6,14],[2,6,56]], + [17,177,9,[2,4,103],[2,4,62]], + [17,191,9,[2,4,90],[3,4,42]], + [17,198,9,[2,4,83],[3,4,103]], + [17,201,9,[2,4,80],[2,4,2]], + [17,204,9,[2,4,78],[3,4,111]], + [17,205,9,[2,4,77],[2,4,20]], + [17,208,9,[2,4,74],[4,4,7]], + [17,212,9,[2,4,70],[2,4,16]], + [17,217,9,[2,4,63],[2,4,47]], + [17,219,9,[2,4,62],[2,6,109]], + [17,240,9,[2,4,50],[3,4,93]], + [17,242,9,[2,4,47],[2,4,21]], + [17,247,9,[2,4,36],[3,6,3]], + [17,383,5,[3,6,93],[4,6,57]], + [17,386,5,[2,4,64],[3,6,80]], + [17,387,5,[2,4,58],[2,4,74]], + [17,391,5,[2,4,55],[2,6,21]], + [17,393,5,[2,4,49],[3,6,53]], + [17,394,5,[2,4,46],[4,6,60]], + [17,395,5,[2,4,44],[2,6,14]], + [17,399,5,[2,4,43],[3,4,47]], + [17,401,5,[2,4,41],[3,4,73]], + [17,402,5,[2,4,40],[3,6,24]], + [17,403,5,[2,4,39],[4,6,56]], + [17,415,5,[2,4,38],[3,4,49]], + [17,417,5,[2,4,37],[0,14,11]], + [17,418,5,[2,4,35],[3,6,55]], + [17,419,5,[2,4,34],[0,14,90]], + [17,423,5,[2,4,32],[2,4,83]], + [17,425,5,[2,4,31],[5,4,106]], + [17,426,5,[2,4,29],[4,6,55]], + [17,427,5,[2,4,28],[5,6,18]], + [17,431,5,[2,4,27],[3,6,72]], + [17,433,5,[2,4,26],[3,4,107]], + [17,434,5,[2,4,25],[2,6,95]], + [17,435,5,[2,4,24],[7,4,55]], + [17,447,5,[2,4,23],[4,6,12]], + [17,449,5,[2,4,22],[2,4,10]], + [17,450,5,[2,4,21],[2,6,111]], + [17,451,5,[2,4,20],[2,4,6]], + [17,455,5,[2,4,19],[4,4,87]], + [17,457,5,[2,4,18],[2,6,49]], + [17,458,5,[2,4,17],[4,4,48]], + [17,459,5,[2,4,16],[0,15,34]], + [17,463,5,[2,4,15],[0,15,3]], + [17,465,5,[2,4,14],[2,6,11]], + [17,466,5,[2,4,13],[2,4,103]], + [17,467,5,[2,4,12],[2,6,73]], + [17,471,5,[2,4,11],[0,15,63]], + [17,473,5,[2,4,10],[2,6,45]], + [17,474,5,[2,4,9],[2,6,29]], + [17,475,5,[2,4,8],[3,6,98]], + [17,479,5,[2,4,7],[2,4,39]], + [17,481,5,[2,4,6],[6,6,92]], + [17,482,5,[2,4,5],[6,4,38]], + [17,483,5,[2,4,4],[2,4,63]], + [17,487,5,[2,4,3],[2,6,20]], + [17,489,5,[2,4,2],[7,4,0]], + [17,490,5,[2,4,1],[7,6,52]], + [17,491,5,[2,4,0],[4,4,80]], + [18,84,9,[3,4,93],[2,4,55]], + [18,87,9,[3,4,87],[2,4,74]], + [18,95,9,[3,4,78],[3,4,71]], + [18,100,9,[3,4,69],[2,4,93]], + [18,102,9,[3,4,67],[3,6,20]], + [18,113,9,[3,4,55],[2,6,75]], + [18,130,9,[3,4,30],[5,6,89]], + [18,131,9,[3,4,29],[2,6,72]], + [18,132,9,[3,4,28],[5,4,100]], + [18,136,9,[3,4,23],[3,4,81]], + [18,174,9,[2,4,109],[4,4,17]], + [18,190,9,[2,4,94],[2,6,29]], + [18,191,9,[2,4,93],[2,4,16]], + [18,193,9,[2,4,91],[3,4,87]], + [18,195,9,[2,4,89],[2,6,77]], + [18,199,9,[2,4,85],[2,6,35]], + [18,200,9,[2,4,84],[2,4,18]], + [18,203,9,[2,4,82],[2,6,21]], + [18,209,9,[2,4,76],[7,6,20]], + [18,211,9,[2,4,74],[2,6,53]], + [18,220,9,[2,4,66],[3,4,97]], + [18,222,9,[2,4,64],[2,4,58]], + [18,237,9,[2,4,60],[3,4,99]], + [18,238,9,[2,4,59],[2,6,25]], + [18,239,9,[2,4,58],[2,6,26]], + [18,242,9,[2,4,55],[2,6,57]], + [18,245,9,[2,4,54],[2,6,39]], + [18,251,9,[2,4,48],[4,6,79]], + [18,272,9,[2,4,42],[2,6,51]], + [18,273,9,[2,4,41],[2,4,48]], + [18,274,9,[2,4,40],[4,4,28]], + [18,286,9,[2,4,32],[2,4,109]], + [18,293,9,[2,4,29],[5,6,99]], + [18,312,9,[2,4,22],[5,6,47]], + [18,324,9,[2,4,20],[4,6,105]], + [18,328,9,[2,4,18],[2,6,93]], + [18,330,9,[2,4,16],[6,6,86]], + [18,342,9,[2,4,11],[2,6,56]], + [18,348,9,[2,4,10],[2,4,11]], + [18,353,9,[2,4,7],[2,6,61]], + [18,355,9,[2,4,6],[2,6,45]], + [18,365,9,[2,4,2],[2,4,22]], + [18,366,9,[2,4,1],[2,6,54]], + [18,367,9,[2,4,0],[2,6,2]], + [18,383,5,[3,6,111],[2,6,108]], + [18,385,5,[3,6,110],[2,6,100]], + [18,386,5,[3,6,108],[0,15,100]], + [18,387,5,[3,6,107],[0,14,25]], + [18,391,5,[3,6,105],[4,4,46]], + [18,393,5,[3,6,103],[4,6,63]], + [18,394,5,[3,6,102],[3,4,31]], + [18,395,5,[3,6,101],[3,6,27]], + [18,399,5,[3,6,100],[4,4,94]], + [18,401,5,[3,6,80],[0,14,95]], + [18,402,5,[3,6,79],[6,4,9]], + [18,403,5,[3,6,78],[3,6,109]], + [18,415,5,[3,6,77],[2,6,30]], + [18,417,5,[3,6,76],[2,4,59]], + [18,418,5,[3,6,75],[3,6,34]], + [18,419,5,[3,6,74],[3,4,93]], + [18,423,5,[3,6,73],[3,6,79]], + [18,425,5,[3,6,72],[2,4,42]], + [18,426,5,[3,6,71],[0,14,10]], + [18,427,5,[3,6,70],[2,4,111]], + [18,431,5,[3,6,69],[4,6,87]], + [18,433,5,[3,6,68],[2,4,64]], + [18,434,5,[3,6,67],[4,4,57]], + [18,435,5,[3,6,66],[2,6,16]], + [18,447,5,[3,6,65],[3,6,54]], + [18,449,5,[3,6,64],[2,6,32]], + [18,450,5,[3,6,63],[2,4,60]], + [18,451,5,[3,6,62],[7,4,60]], + [18,455,5,[3,6,61],[6,4,64]], + [18,457,5,[3,6,60],[2,4,32]], + [18,458,5,[3,6,55],[7,4,54]], + [18,459,5,[3,6,49],[4,4,82]], + [18,463,5,[3,6,27],[2,6,36]], + [18,465,5,[2,6,14],[2,4,89]], + [18,466,5,[2,6,13],[3,6,93]], + [18,467,5,[2,6,12],[3,4,55]], + [18,471,5,[2,6,11],[2,4,85]], + [18,473,5,[2,6,10],[2,6,81]], + [18,474,5,[2,6,9],[2,4,29]], + [18,475,5,[2,6,8],[6,6,70]], + [18,479,5,[2,6,7],[4,4,90]], + [18,481,5,[2,6,6],[7,6,24]], + [18,482,5,[2,6,5],[0,14,83]], + [18,483,5,[2,6,4],[3,4,67]], + [18,487,5,[2,6,3],[6,4,36]], + [18,489,5,[2,6,2],[3,6,81]], + [18,490,5,[2,6,1],[2,4,66]], + [18,491,5,[2,6,0],[5,4,30]], + [19,1,9,[6,4,109],[7,4,1]], + [19,35,9,[3,4,91],[3,6,52]], + [19,40,9,[3,4,86],[4,6,100]], + [19,41,9,[3,4,85],[3,6,32]], + [19,44,9,[3,4,83],[5,4,31]], + [19,67,9,[3,4,62],[3,6,98]], + [19,70,9,[3,4,59],[3,6,2]], + [19,83,9,[3,4,48],[6,6,43]], + [19,97,9,[3,4,36],[3,6,100]], + [19,98,9,[3,4,35],[3,6,86]], + [19,110,9,[3,4,25],[6,4,10]], + [19,115,9,[3,4,19],[5,4,28]], + [19,124,9,[3,4,12],[4,6,110]], + [19,131,9,[3,4,5],[3,6,22]], + [19,133,9,[3,4,3],[3,6,14]], + [19,383,5,[3,4,24],[4,6,43]], + [19,385,5,[0,15,93],[4,4,29]], + [19,386,5,[0,15,92],[3,6,83]], + [19,387,5,[0,15,91],[5,6,27]], + [19,391,5,[0,15,90],[6,6,90]], + [19,393,5,[0,15,89],[6,4,23]], + [19,395,5,[0,15,87],[5,4,21]], + [19,399,5,[0,15,86],[6,6,104]], + [19,402,5,[0,15,84],[3,4,48]], + [19,403,5,[0,15,83],[6,4,72]], + [19,415,5,[0,15,82],[0,14,34]], + [19,417,5,[0,15,81],[5,6,29]], + [19,418,5,[0,15,80],[4,6,33]], + [19,419,5,[0,15,79],[7,4,103]], + [19,423,5,[0,15,78],[5,4,76]], + [19,425,5,[0,15,77],[4,4,50]], + [19,426,5,[0,15,76],[7,6,74]], + [19,427,5,[0,15,75],[4,4,4]], + [19,431,5,[0,15,74],[7,6,80]], + [19,434,5,[0,15,72],[4,4,56]], + [19,435,5,[0,15,71],[6,6,18]], + [19,447,5,[0,15,70],[0,14,67]], + [19,449,5,[0,15,69],[3,4,3]], + [19,450,5,[0,15,68],[4,6,77]], + [19,451,5,[0,15,67],[4,6,65]], + [19,455,5,[0,15,66],[3,6,38]], + [19,457,5,[0,15,65],[4,4,103]], + [19,458,5,[0,15,64],[7,6,70]], + [19,459,5,[0,15,63],[0,15,92]], + [19,463,5,[0,15,62],[0,15,72]], + [19,465,5,[0,15,61],[7,4,15]], + [19,466,5,[0,15,60],[0,14,106]], + [19,467,5,[0,15,59],[7,6,106]], + [19,471,5,[0,15,58],[4,6,7]], + [19,473,5,[0,15,57],[3,6,4]], + [19,474,5,[0,15,56],[3,6,16]], + [19,479,5,[0,15,54],[0,15,98]], + [19,481,5,[0,15,53],[0,14,107]], + [19,483,5,[0,15,51],[6,6,11]], + [19,487,5,[0,15,50],[0,14,91]], + [19,489,5,[0,15,49],[0,15,30]], + [19,490,5,[0,15,48],[5,6,11]], + [19,491,5,[0,15,47],[0,14,105]], + [20,5,9,[7,6,84],[1,14,38]], + [20,8,9,[7,6,38],[7,4,27]], + [20,11,9,[7,6,0],[1,14,111]], + [20,30,9,[4,6,95],[3,4,44]], + [20,37,9,[4,6,88],[3,6,19]], + [20,43,9,[4,6,83],[0,15,86]], + [20,46,9,[4,6,80],[7,6,72]], + [20,52,9,[4,6,74],[3,6,43]], + [20,63,9,[4,6,65],[3,4,28]], + [20,79,9,[4,6,51],[5,6,106]], + [20,86,9,[4,6,44],[3,6,78]], + [20,87,9,[4,6,43],[4,6,65]], + [20,102,9,[4,6,30],[4,4,32]], + [20,103,9,[4,6,29],[3,4,110]], + [20,104,9,[4,6,28],[1,15,62]], + [20,107,9,[4,6,27],[3,4,35]], + [20,108,9,[4,6,26],[3,6,75]], + [20,109,9,[4,6,25],[6,6,85]], + [20,125,9,[4,6,10],[3,6,48]], + [20,383,5,[5,6,42],[3,4,11]], + [20,387,5,[0,15,109],[1,15,82]], + [20,391,5,[0,15,108],[0,14,97]], + [20,394,5,[0,15,106],[3,6,26]], + [20,395,5,[0,15,105],[4,6,21]], + [20,399,5,[0,15,104],[7,6,66]], + [20,401,5,[0,15,103],[6,6,39]], + [20,402,5,[0,15,102],[6,6,8]], + [20,403,5,[0,15,101],[0,14,88]], + [20,415,5,[0,15,100],[3,6,42]], + [20,417,5,[0,15,99],[1,15,33]], + [20,418,5,[0,15,98],[5,4,60]], + [20,419,5,[0,15,97],[6,4,80]], + [20,425,5,[0,15,46],[3,4,100]], + [20,426,5,[0,15,45],[0,14,78]], + [20,427,5,[0,15,44],[0,14,80]], + [20,431,5,[0,15,43],[6,6,0]], + [20,433,5,[0,15,42],[3,4,79]], + [20,447,5,[0,15,39],[3,6,105]], + [20,449,5,[0,15,38],[0,14,32]], + [20,450,5,[0,15,37],[4,4,92]], + [20,451,5,[0,15,36],[3,4,104]], + [20,455,5,[0,15,35],[7,6,0]], + [20,457,5,[0,15,34],[3,4,64]], + [20,458,5,[0,15,33],[5,4,69]], + [20,459,5,[0,15,32],[6,6,96]], + [20,463,5,[0,15,31],[3,4,102]], + [20,465,5,[0,15,30],[3,6,45]], + [20,466,5,[0,15,29],[0,14,64]], + [20,467,5,[0,15,28],[1,14,47]], + [20,471,5,[0,15,27],[5,6,4]], + [20,473,5,[0,15,26],[5,4,64]], + [20,474,5,[0,15,25],[3,6,59]], + [20,475,5,[0,15,24],[1,14,50]], + [20,479,5,[0,15,23],[0,14,79]], + [20,481,5,[0,15,22],[5,6,5]], + [20,482,5,[0,15,21],[3,6,85]], + [20,483,5,[0,15,20],[0,14,76]], + [20,487,5,[0,15,19],[1,14,76]], + [20,490,5,[0,15,17],[0,15,8]], + [20,491,5,[0,15,16],[3,6,35]], + [21,3,9,[4,6,109],[1,15,10]], + [21,7,9,[4,6,105],[5,6,19]], + [21,30,9,[4,6,84],[3,4,38]], + [21,39,9,[4,6,75],[4,6,52]], + [21,62,9,[4,6,55],[3,4,5]], + [21,65,9,[4,6,52],[3,6,8]], + [21,70,9,[4,6,47],[3,4,16]], + [21,75,9,[4,6,44],[3,4,109]], + [21,77,9,[4,6,42],[3,4,91]], + [21,84,9,[4,6,35],[0,15,39]], + [21,99,9,[4,6,22],[4,4,41]], + [21,103,9,[4,6,17],[6,6,14]], + [21,127,9,[3,6,110],[6,6,83]], + [21,128,9,[3,6,108],[3,4,12]], + [21,134,9,[3,6,100],[3,4,36]], + [21,156,9,[3,6,78],[4,6,44]], + [21,172,9,[3,6,64],[4,6,17]], + [21,182,9,[3,6,12],[3,6,31]], + [21,187,9,[3,6,8],[3,4,69]], + [21,192,9,[3,6,3],[3,6,17]], + [21,193,9,[3,6,2],[3,6,12]], + [21,383,5,[5,4,48],[0,14,4]], + [21,385,5,[3,6,109],[6,6,97]], + [21,386,5,[3,6,106],[5,6,25]], + [21,391,5,[3,6,94],[3,6,32]], + [21,393,5,[3,6,92],[6,4,111]], + [21,394,5,[3,6,91],[3,6,2]], + [21,395,5,[3,6,90],[3,4,52]], + [21,399,5,[3,6,59],[3,4,76]], + [21,401,5,[3,6,58],[3,4,108]], + [21,403,5,[3,6,56],[6,6,3]], + [21,415,5,[3,6,54],[6,6,24]], + [21,417,5,[3,6,53],[3,4,106]], + [21,418,5,[3,6,52],[3,6,100]], + [21,419,5,[3,6,51],[3,4,8]], + [21,423,5,[3,6,50],[3,4,9]], + [21,425,5,[3,6,48],[3,4,78]], + [21,426,5,[3,6,47],[6,6,100]], + [21,427,5,[3,6,46],[4,6,75]], + [21,431,5,[3,6,45],[5,4,34]], + [21,433,5,[3,6,44],[3,4,40]], + [21,434,5,[3,6,43],[4,4,89]], + [21,435,5,[3,6,42],[5,4,3]], + [21,447,5,[3,6,41],[4,4,11]], + [21,449,5,[3,6,40],[1,14,18]], + [21,450,5,[3,6,39],[3,4,35]], + [21,451,5,[3,6,38],[7,4,87]], + [21,455,5,[3,6,37],[0,15,45]], + [21,457,5,[3,6,36],[3,6,110]], + [21,458,5,[3,6,35],[3,6,78]], + [21,459,5,[3,6,34],[3,6,64]], + [21,463,5,[3,6,33],[0,15,58]], + [21,465,5,[3,6,32],[5,6,77]], + [21,466,5,[3,6,31],[3,4,37]], + [21,467,5,[3,6,30],[6,4,107]], + [21,471,5,[3,6,29],[4,4,39]], + [21,474,5,[3,6,26],[4,6,22]], + [21,475,5,[3,6,25],[4,4,17]], + [21,479,5,[3,6,24],[4,6,35]], + [21,481,5,[3,6,23],[4,6,47]], + [21,482,5,[3,6,22],[0,14,99]], + [21,483,5,[3,6,21],[3,6,108]], + [21,487,5,[3,6,20],[4,6,84]], + [21,489,5,[3,6,19],[0,14,33]], + [21,490,5,[3,6,18],[6,4,75]], + [21,491,5,[3,6,17],[1,14,6]], + [22,11,9,[7,4,82],[7,6,101]], + [22,15,9,[7,4,77],[1,14,14]], + [22,17,9,[7,4,69],[7,6,110]], + [22,85,9,[5,6,95],[4,6,84]], + [22,92,9,[5,6,90],[0,14,83]], + [22,95,9,[5,6,87],[3,6,5]], + [22,96,9,[5,6,86],[7,6,29]], + [22,101,9,[3,6,111],[3,4,110]], + [22,110,9,[3,6,103],[3,4,104]], + [22,112,9,[3,6,101],[7,4,31]], + [22,116,9,[3,6,97],[3,4,62]], + [22,141,9,[3,6,76],[3,4,78]], + [22,178,9,[3,6,43],[3,4,10]], + [22,190,9,[3,6,32],[3,6,97]], + [22,192,9,[3,6,30],[4,4,70]], + [22,205,9,[3,6,18],[3,4,79]], + [22,219,9,[3,6,5],[3,4,101]], + [22,222,9,[3,6,2],[5,4,37]], + [22,383,5,[5,4,111],[1,14,100]], + [22,385,5,[5,4,110],[3,6,111]], + [22,386,5,[5,4,109],[3,4,103]], + [22,387,5,[5,4,108],[6,6,93]], + [22,391,5,[5,4,107],[3,4,63]], + [22,393,5,[5,4,106],[3,4,32]], + [22,394,5,[5,4,105],[3,6,18]], + [22,395,5,[5,4,104],[4,4,6]], + [22,399,5,[5,4,103],[4,4,54]], + [22,401,5,[5,4,102],[3,4,83]], + [22,402,5,[5,4,101],[5,6,28]], + [22,403,5,[5,4,100],[3,4,14]], + [22,415,5,[5,4,99],[4,4,31]], + [22,417,5,[5,4,98],[3,4,5]], + [22,418,5,[5,4,97],[0,15,53]], + [22,419,5,[5,4,96],[4,4,35]], + [22,423,5,[5,4,95],[3,6,101]], + [22,425,5,[5,4,94],[1,15,101]], + [22,426,5,[5,4,93],[4,4,86]], + [22,427,5,[5,4,92],[0,14,8]], + [22,431,5,[5,4,91],[4,6,96]], + [22,433,5,[5,4,90],[1,14,0]], + [22,434,5,[5,4,89],[4,6,73]], + [22,435,5,[5,4,88],[6,6,56]], + [22,439,4,[2,13,79],[6,4,81]], + [22,447,5,[5,4,87],[7,6,57]], + [22,449,5,[5,4,86],[3,4,97]], + [22,450,5,[5,4,85],[0,15,81]], + [22,451,5,[5,4,84],[6,4,20]], + [22,455,5,[5,4,83],[6,4,90]], + [22,457,5,[5,4,82],[5,4,111]], + [22,458,5,[5,4,81],[3,4,2]], + [22,459,5,[5,4,80],[3,4,20]], + [22,463,5,[5,4,64],[4,4,40]], + [22,465,5,[5,4,63],[5,4,51]], + [22,466,5,[5,4,62],[3,4,57]], + [22,467,5,[5,4,61],[0,14,46]], + [22,471,5,[5,4,60],[3,4,81]], + [22,473,5,[5,4,59],[4,6,79]], + [22,475,5,[5,4,57],[3,4,23]], + [22,479,5,[5,4,56],[4,4,97]], + [22,481,5,[5,4,55],[3,4,12]], + [22,482,5,[5,4,54],[3,6,43]], + [22,483,5,[5,4,53],[4,6,42]], + [22,487,5,[5,4,52],[0,15,46]], + [22,489,5,[5,4,51],[6,4,79]], + [22,490,5,[5,4,49],[3,4,24]], + [22,491,5,[0,14,49],[5,4,84]], + [23,4,9,[6,6,103],[1,14,96]], + [23,6,9,[6,6,100],[7,4,90]], + [23,10,4,[5,6,111],[3,4,16]], + [23,51,9,[6,6,39],[5,4,78]], + [23,55,9,[6,6,34],[3,4,105]], + [23,83,9,[6,6,10],[5,4,90]], + [23,91,9,[6,6,4],[6,4,104]], + [23,92,9,[6,6,3],[3,6,101]], + [23,149,9,[3,6,52],[4,4,15]], + [23,156,9,[3,6,47],[1,15,108]], + [23,165,9,[3,6,38],[3,4,55]], + [23,183,9,[3,6,22],[3,6,64]], + [23,185,9,[3,6,20],[3,4,25]], + [23,187,9,[3,6,19],[5,4,50]], + [23,192,9,[3,6,14],[3,4,3]], + [23,194,9,[3,6,12],[4,6,62]], + [23,198,9,[3,6,8],[3,4,100]], + [23,208,9,[1,14,77],[7,6,1]], + [23,223,9,[1,14,63],[0,14,108]], + [23,235,9,[1,14,62],[4,6,28]], + [23,236,9,[1,14,61],[7,6,45]], + [23,284,9,[1,14,34],[1,15,46]], + [23,287,9,[1,14,31],[0,14,22]], + [23,324,9,[1,14,20],[7,4,44]], + [23,329,9,[1,14,17],[0,15,29]], + [23,336,9,[1,14,14],[0,14,69]], + [23,342,9,[1,14,11],[7,6,30]], + [23,351,9,[1,14,8],[5,4,89]], + [23,353,9,[1,14,7],[1,14,110]], + [23,357,9,[1,14,4],[6,4,17]], + [23,383,5,[7,4,98],[3,4,80]], + [23,385,5,[3,4,94],[6,4,108]], + [23,386,5,[3,4,91],[3,6,19]], + [23,387,5,[3,4,89],[3,6,52]], + [23,391,5,[3,4,84],[4,4,111]], + [23,393,5,[3,4,81],[4,6,38]], + [23,394,5,[3,4,80],[0,14,98]], + [23,395,5,[3,4,75],[3,6,74]], + [23,399,5,[3,4,73],[4,6,98]], + [23,401,5,[3,4,72],[3,4,4]], + [23,402,5,[3,4,71],[3,6,70]], + [23,403,5,[3,4,65],[3,4,6]], + [23,415,5,[3,4,64],[4,6,37]], + [23,417,5,[3,4,58],[4,4,28]], + [23,418,5,[3,4,52],[4,4,91]], + [23,419,5,[3,4,49],[3,4,74]], + [23,423,5,[3,4,48],[3,4,70]], + [23,425,5,[3,4,44],[3,4,92]], + [23,426,5,[3,4,40],[3,6,8]], + [23,427,5,[3,4,38],[3,6,73]], + [23,431,5,[3,4,34],[5,6,84]], + [23,433,5,[3,4,32],[7,4,107]], + [23,434,5,[3,4,31],[4,6,40]], + [23,435,5,[3,4,26],[4,6,8]], + [23,447,5,[3,4,25],[4,4,10]], + [23,449,5,[3,4,23],[1,15,62]], + [23,450,5,[3,4,22],[7,6,77]], + [23,451,5,[3,4,20],[3,4,17]], + [23,455,5,[3,4,19],[7,6,107]], + [23,457,5,[3,4,18],[3,4,46]], + [23,458,5,[3,4,17],[4,4,72]], + [23,459,5,[3,4,16],[4,4,9]], + [23,463,5,[3,4,15],[3,6,71]], + [23,465,5,[3,4,14],[3,4,88]], + [23,466,5,[3,4,13],[0,15,84]], + [23,467,5,[3,4,12],[3,4,101]], + [23,471,5,[3,4,11],[1,14,83]], + [23,473,5,[3,4,10],[5,4,67]], + [23,474,5,[3,4,9],[3,6,47]], + [23,475,5,[3,4,8],[6,4,25]], + [23,479,5,[3,4,7],[5,6,22]], + [23,481,5,[3,4,6],[5,4,7]], + [23,482,5,[3,4,5],[3,4,71]], + [23,483,5,[3,4,4],[4,6,76]], + [23,487,5,[3,4,3],[3,6,87]], + [23,489,5,[3,4,2],[3,6,1]], + [23,490,5,[3,4,1],[0,15,59]], + [24,97,9,[3,6,98],[1,14,9]], + [24,111,9,[3,6,86],[3,4,84]], + [24,112,9,[3,6,85],[3,4,77]], + [24,124,9,[3,6,75],[5,4,108]], + [24,127,9,[3,6,72],[1,14,107]], + [24,135,9,[3,6,64],[5,4,42]], + [24,136,9,[3,6,63],[5,4,37]], + [24,155,9,[3,6,48],[4,4,102]], + [24,157,9,[3,6,46],[4,6,68]], + [24,163,9,[3,6,40],[6,4,16]], + [24,174,9,[3,6,31],[3,6,12]], + [24,189,9,[3,6,17],[5,4,44]], + [24,201,9,[3,4,84],[4,6,25]], + [24,204,9,[3,4,82],[5,4,106]], + [24,207,9,[3,4,79],[1,14,26]], + [24,209,9,[3,4,77],[4,6,92]], + [24,214,9,[3,4,72],[4,4,16]], + [24,217,9,[3,4,69],[5,6,3]], + [24,261,9,[3,4,46],[6,4,37]], + [24,262,9,[3,4,45],[5,4,80]], + [24,273,9,[3,4,42],[0,15,27]], + [24,274,9,[3,4,41],[4,6,93]], + [24,275,9,[3,4,40],[4,6,28]], + [24,281,9,[3,4,38],[3,6,64]], + [24,297,9,[3,4,26],[1,15,82]], + [24,336,9,[3,4,15],[4,6,26]], + [24,349,9,[3,4,10],[3,4,26]], + [24,383,5,[5,6,81],[5,6,109]], + [24,385,5,[5,6,80],[1,15,81]], + [24,386,5,[5,6,79],[3,6,13]], + [24,387,5,[5,6,78],[1,14,33]], + [24,391,5,[5,6,77],[5,4,98]], + [24,393,5,[5,6,76],[1,15,48]], + [24,394,5,[5,6,75],[5,4,33]], + [24,395,5,[5,6,74],[3,4,38]], + [24,399,5,[5,6,73],[5,6,39]], + [24,401,5,[5,6,72],[3,4,105]], + [24,402,5,[5,6,71],[6,4,3]], + [24,403,5,[5,6,70],[3,4,82]], + [24,415,5,[5,6,69],[0,14,104]], + [24,417,5,[5,6,68],[4,6,103]], + [24,418,5,[5,6,67],[6,4,34]], + [24,419,5,[5,6,66],[3,4,15]], + [24,423,5,[5,6,65],[1,15,69]], + [24,425,5,[5,6,64],[0,14,55]], + [24,426,5,[5,6,63],[4,4,15]], + [24,427,5,[5,6,62],[3,6,86]], + [24,431,5,[5,6,61],[4,6,13]], + [24,433,5,[5,6,60],[4,4,69]], + [24,434,5,[5,6,59],[7,6,108]], + [24,435,5,[5,6,58],[4,4,59]], + [24,447,5,[5,6,57],[0,15,24]], + [24,449,5,[5,6,56],[5,6,48]], + [24,450,5,[5,6,49],[0,14,92]], + [24,451,5,[5,6,48],[5,4,20]], + [24,455,5,[5,6,47],[5,4,14]], + [24,457,5,[5,6,46],[0,14,14]], + [24,458,5,[5,6,45],[3,4,72]], + [24,459,5,[3,6,16],[4,4,93]], + [24,463,5,[3,6,15],[4,4,101]], + [24,465,5,[3,6,14],[5,4,53]], + [24,466,5,[3,6,13],[7,6,75]], + [24,467,5,[3,6,12],[1,14,79]], + [24,473,5,[3,6,10],[1,15,20]], + [24,474,5,[3,6,9],[4,6,49]], + [24,475,5,[3,6,8],[7,4,39]], + [24,479,5,[3,6,7],[4,4,37]], + [24,482,5,[3,6,5],[4,4,20]], + [24,483,5,[3,6,4],[3,6,48]], + [24,487,5,[3,6,3],[3,6,15]], + [24,489,5,[3,6,2],[5,6,85]], + [24,490,5,[3,6,1],[3,6,40]], + [24,491,5,[3,6,0],[4,4,61]], + [25,10,4,[1,14,110],[4,6,26]], + [25,67,9,[5,4,106],[1,14,17]], + [25,83,9,[5,4,74],[0,15,96]], + [25,86,9,[5,4,70],[4,4,5]], + [25,88,9,[5,4,64],[4,6,83]], + [25,100,9,[5,4,47],[0,14,79]], + [25,104,9,[5,4,42],[4,4,18]], + [25,109,9,[5,4,36],[5,4,97]], + [25,176,9,[1,15,108],[0,15,4]], + [25,178,9,[1,15,106],[5,4,73]], + [25,188,9,[1,15,97],[1,14,34]], + [25,196,9,[1,15,89],[7,6,82]], + [25,204,9,[1,15,82],[0,14,48]], + [25,205,9,[1,15,81],[4,4,55]], + [25,210,9,[1,15,76],[5,6,21]], + [25,246,9,[1,15,54],[1,15,32]], + [25,251,9,[1,15,49],[0,15,48]], + [25,261,9,[1,15,46],[6,4,85]], + [25,280,9,[1,15,39],[6,6,29]], + [25,285,9,[1,15,34],[0,14,85]], + [25,287,9,[1,15,32],[1,14,2]], + [25,349,9,[1,15,10],[5,6,16]], + [25,351,9,[1,15,9],[7,6,11]], + [25,353,9,[1,15,8],[7,6,79]], + [25,358,9,[1,15,4],[1,15,49]], + [25,383,5,[7,4,99],[4,4,51]], + [25,385,5,[4,6,110],[1,15,108]], + [25,386,5,[4,6,109],[0,15,68]], + [25,387,5,[4,6,108],[4,4,49]], + [25,391,5,[4,6,107],[0,15,66]], + [25,393,5,[4,6,106],[5,6,37]], + [25,394,5,[4,6,105],[6,6,75]], + [25,395,5,[4,6,104],[4,4,47]], + [25,399,5,[4,6,103],[5,6,63]], + [25,401,5,[4,6,102],[4,4,26]], + [25,402,5,[4,6,101],[6,4,59]], + [25,403,5,[4,6,100],[4,6,61]], + [25,415,5,[4,6,99],[4,6,48]], + [25,417,5,[4,6,98],[0,14,31]], + [25,418,5,[4,6,97],[7,4,47]], + [25,419,5,[4,6,96],[1,14,53]], + [25,423,5,[4,6,95],[6,4,76]], + [25,426,5,[4,6,93],[0,15,21]], + [25,427,5,[4,6,92],[4,4,22]], + [25,431,5,[4,6,91],[5,6,110]], + [25,434,5,[4,6,89],[4,6,69]], + [25,435,5,[4,6,88],[7,6,105]], + [25,447,5,[4,6,87],[7,4,43]], + [25,449,5,[4,6,86],[4,6,3]], + [25,450,5,[4,6,85],[4,6,80]], + [25,451,5,[4,6,84],[4,6,23]], + [25,455,5,[4,6,83],[4,4,106]], + [25,457,5,[4,6,82],[4,6,27]], + [25,458,5,[4,6,81],[6,6,76]], + [25,459,5,[4,6,80],[4,6,4]], + [25,465,5,[4,6,45],[7,4,91]], + [25,466,5,[4,6,44],[4,6,53]], + [25,467,5,[4,6,43],[1,14,106]], + [25,471,5,[4,6,42],[7,6,89]], + [25,473,5,[4,6,41],[4,4,41]], + [25,474,5,[4,6,40],[1,14,56]], + [25,475,5,[4,6,39],[5,4,65]], + [25,479,5,[4,6,38],[4,4,1]], + [25,481,5,[4,6,37],[6,4,82]], + [25,482,5,[4,6,36],[1,14,74]], + [25,483,5,[4,6,35],[1,14,23]], + [25,487,5,[4,6,34],[5,6,40]], + [25,489,5,[4,6,33],[5,4,86]], + [25,490,5,[4,6,32],[5,6,1]], + [25,491,5,[4,6,31],[4,4,52]], + [26,55,9,[5,6,53],[5,4,75]], + [26,67,9,[5,6,43],[4,6,55]], + [26,78,9,[5,6,34],[1,15,15]], + [26,85,9,[5,6,27],[2,15,12]], + [26,91,9,[5,6,23],[5,4,47]], + [26,93,9,[5,6,21],[5,6,91]], + [26,98,9,[5,6,16],[7,6,19]], + [26,100,9,[5,6,14],[2,15,11]], + [26,107,9,[5,6,9],[6,6,103]], + [26,110,9,[5,6,6],[2,14,37]], + [26,115,9,[5,6,1],[1,15,108]], + [26,213,9,[0,14,110],[1,14,61]], + [26,220,9,[0,14,48],[6,4,30]], + [26,235,9,[0,14,39],[5,6,111]], + [26,383,5,[7,6,32],[5,4,40]], + [26,385,5,[2,14,111],[1,15,84]], + [26,386,5,[2,14,110],[0,15,60]], + [26,387,5,[2,14,109],[6,6,72]], + [26,391,5,[2,14,108],[1,14,97]], + [26,393,5,[2,14,107],[5,4,28]], + [26,394,5,[2,14,106],[2,15,17]], + [26,395,5,[2,14,105],[4,6,82]], + [26,399,5,[2,14,104],[0,15,87]], + [26,401,5,[2,14,103],[4,6,50]], + [26,402,5,[2,14,102],[6,4,35]], + [26,403,5,[2,14,101],[2,15,4]], + [26,415,5,[2,14,100],[7,4,59]], + [26,417,5,[2,14,99],[4,6,45]], + [26,418,5,[2,14,98],[5,6,21]], + [26,419,5,[2,14,97],[4,6,58]], + [26,423,5,[2,14,96],[1,15,8]], + [26,425,5,[2,14,95],[5,6,95]], + [26,426,5,[2,14,94],[4,6,66]], + [26,427,5,[2,14,93],[5,4,70]], + [26,431,5,[2,14,92],[6,6,53]], + [26,434,5,[2,14,90],[4,6,51]], + [26,435,5,[2,14,89],[5,4,2]], + [26,447,5,[2,14,88],[4,6,11]], + [26,449,5,[2,14,87],[6,6,69]], + [26,450,5,[2,14,86],[4,4,102]], + [26,451,5,[2,14,85],[5,6,23]], + [26,455,5,[2,14,84],[7,4,95]], + [26,457,5,[2,14,83],[4,6,59]], + [26,458,5,[2,14,82],[5,4,11]], + [26,459,5,[2,14,81],[2,14,99]], + [26,463,5,[2,14,80],[5,4,83]], + [26,465,5,[2,14,64],[0,14,110]], + [26,466,5,[2,14,63],[5,4,62]], + [26,467,5,[2,14,62],[0,14,103]], + [26,471,5,[2,14,61],[0,15,27]], + [26,473,5,[2,14,60],[5,4,25]], + [26,474,5,[2,14,59],[6,4,10]], + [26,475,5,[2,14,58],[4,4,64]], + [26,479,5,[2,14,57],[1,14,55]], + [26,481,5,[2,14,56],[5,6,16]], + [26,482,5,[2,14,55],[1,15,5]], + [26,483,5,[2,14,54],[6,6,12]], + [26,487,5,[2,14,53],[5,6,34]], + [26,489,5,[2,14,52],[1,14,59]], + [26,490,5,[2,14,51],[0,14,21]], + [26,491,5,[2,14,47],[2,15,27]], + [27,1,9,[7,4,110],[5,6,7]], + [27,6,9,[7,4,84],[6,4,54]], + [27,17,9,[7,4,73],[7,6,54]], + [27,27,9,[7,4,58],[1,15,53]], + [27,35,9,[7,4,45],[1,15,50]], + [27,37,9,[7,4,31],[0,15,1]], + [27,38,9,[7,4,25],[0,14,1]], + [27,44,9,[6,4,110],[5,6,66]], + [27,50,9,[6,4,104],[5,4,12]], + [27,52,9,[6,4,102],[0,14,99]], + [27,71,9,[6,4,85],[5,6,39]], + [27,77,9,[6,4,81],[0,14,47]], + [27,81,9,[6,4,77],[1,15,89]], + [27,101,9,[6,4,59],[0,14,84]], + [27,107,9,[6,4,55],[5,6,36]], + [27,108,9,[6,4,54],[6,6,67]], + [27,110,9,[6,4,52],[1,14,69]], + [27,113,9,[6,4,49],[6,4,24]], + [27,119,9,[6,4,43],[2,14,7]], + [27,127,9,[6,4,37],[5,6,86]], + [27,134,9,[6,4,30],[0,15,64]], + [27,136,9,[6,4,28],[6,6,89]], + [27,142,9,[6,4,24],[6,4,81]], + [27,144,9,[6,4,22],[6,6,44]], + [27,148,9,[6,4,18],[6,6,111]], + [27,149,9,[6,4,17],[6,6,10]], + [27,150,9,[6,4,16],[1,15,38]], + [27,178,9,[4,4,104],[4,4,43]], + [27,180,9,[4,4,102],[4,6,19]], + [27,207,9,[4,4,77],[5,6,90]], + [27,209,9,[4,4,75],[5,6,43]], + [27,242,9,[4,4,54],[5,4,51]], + [27,261,9,[4,4,43],[4,4,75]], + [27,263,9,[4,4,41],[4,6,22]], + [27,299,9,[4,4,21],[2,15,104]], + [27,349,9,[4,4,7],[4,6,109]], + [27,368,9,[0,14,36],[2,15,95]], + [27,383,5,[7,6,71],[4,6,111]], + [27,385,5,[7,6,70],[6,4,17]], + [27,386,5,[7,6,69],[4,6,17]], + [27,387,5,[7,6,68],[7,4,73]], + [27,391,5,[7,6,67],[6,4,30]], + [27,393,5,[7,6,66],[4,6,93]], + [27,394,5,[7,6,65],[5,6,10]], + [27,395,5,[7,6,64],[4,6,41]], + [27,399,5,[7,6,63],[6,6,9]], + [27,401,5,[7,6,62],[4,4,77]], + [27,402,5,[7,6,61],[4,6,5]], + [27,403,5,[7,6,60],[1,14,68]], + [27,415,5,[7,6,59],[1,15,76]], + [27,417,5,[7,6,58],[7,4,28]], + [27,418,5,[7,6,57],[0,14,22]], + [27,419,5,[7,6,24],[7,6,97]], + [27,423,5,[7,6,23],[0,14,35]], + [27,425,5,[7,6,22],[1,14,40]], + [27,426,5,[7,6,21],[1,14,95]], + [27,427,5,[7,6,20],[2,14,38]], + [27,431,5,[7,6,19],[6,4,28]], + [27,433,5,[7,6,18],[2,14,73]], + [27,434,5,[7,6,17],[6,6,87]], + [27,435,5,[7,6,16],[6,6,94]], + [27,447,5,[7,6,15],[5,6,53]], + [27,449,5,[6,6,63],[5,6,101]], + [27,450,5,[6,6,62],[0,14,36]], + [27,451,5,[6,6,61],[4,4,21]], + [27,455,5,[6,6,60],[4,6,99]], + [27,457,5,[6,6,59],[4,6,54]], + [27,458,5,[6,6,58],[0,14,74]], + [27,459,5,[6,6,57],[0,15,90]], + [27,463,5,[6,6,56],[5,6,51]], + [27,466,5,[6,6,54],[7,6,101]], + [27,467,5,[6,6,53],[7,4,32]], + [27,471,5,[6,6,52],[7,4,52]], + [27,473,5,[6,6,50],[6,6,80]], + [27,475,5,[6,6,47],[5,4,87]], + [27,479,5,[5,6,55],[2,14,13]], + [27,481,5,[5,6,54],[5,6,70]], + [27,482,5,[5,6,53],[5,4,72]], + [27,483,5,[5,6,52],[7,4,17]], + [27,487,5,[5,6,50],[1,15,1]], + [27,489,5,[4,4,53],[6,4,77]], + [27,490,5,[2,15,90],[2,15,107]], + [27,491,5,[0,15,95],[0,15,38]], + [28,9,9,[5,8,102],[5,8,97]], + [28,15,9,[5,8,97],[7,6,26]], + [28,60,9,[4,4,98],[4,4,28]], + [28,85,9,[4,4,75],[1,14,36]], + [28,92,9,[4,4,70],[1,15,71]], + [28,123,9,[4,4,43],[4,6,74]], + [28,135,9,[4,4,31],[4,6,44]], + [28,140,9,[4,4,28],[4,6,6]], + [28,155,9,[4,4,15],[4,6,95]], + [28,383,5,[6,6,51],[1,14,91]], + [28,385,5,[4,6,111],[5,6,38]], + [28,386,5,[4,6,30],[4,6,9]], + [28,387,5,[4,6,29],[5,4,97]], + [28,391,5,[4,6,28],[2,15,45]], + [28,393,5,[4,6,27],[6,6,10]], + [28,394,5,[4,6,26],[5,4,54]], + [28,395,5,[4,6,25],[5,4,108]], + [28,401,5,[4,6,23],[7,4,12]], + [28,402,5,[4,6,22],[0,15,89]], + [28,403,5,[4,6,21],[6,6,15]], + [28,417,5,[4,6,19],[5,6,82]], + [28,418,5,[4,6,18],[5,6,92]], + [28,419,5,[4,6,17],[6,4,55]], + [28,426,5,[4,6,14],[4,4,70]], + [28,427,5,[4,6,13],[6,4,1]], + [28,431,5,[4,6,12],[4,6,86]], + [28,433,5,[4,6,11],[4,4,98]], + [28,434,5,[4,6,10],[5,6,41]], + [28,435,5,[4,6,9],[6,4,105]], + [28,447,5,[4,6,8],[5,6,6]], + [28,449,5,[4,6,7],[6,4,66]], + [28,450,5,[4,6,6],[6,6,58]], + [28,451,5,[4,6,5],[7,6,62]], + [28,455,5,[4,6,4],[2,15,23]], + [28,457,5,[4,6,3],[4,6,107]], + [28,459,5,[4,6,1],[4,6,101]], + [28,463,5,[2,14,48],[0,15,102]], + [28,465,5,[1,15,111],[4,4,75]], + [28,466,5,[1,15,61],[0,15,74]], + [28,467,5,[1,15,60],[1,14,12]], + [28,471,5,[1,15,59],[2,14,23]], + [28,473,5,[1,15,58],[0,14,13]], + [28,474,5,[1,15,57],[4,6,62]], + [28,475,5,[1,15,56],[5,4,102]], + [28,479,5,[1,15,55],[1,15,98]], + [28,481,5,[1,15,54],[7,6,54]], + [28,482,5,[1,15,53],[4,6,10]], + [28,483,5,[1,15,52],[6,6,47]], + [28,487,5,[1,15,51],[6,4,85]], + [28,489,5,[1,15,50],[4,4,43]], + [28,490,5,[1,15,49],[5,6,49]], + [28,491,5,[1,15,48],[5,6,56]], + [29,4,9,[6,6,104],[6,6,90]], + [29,9,9,[6,6,67],[0,14,31]], + [29,18,9,[6,6,43],[5,6,85]], + [29,20,9,[6,6,38],[5,4,100]], + [29,117,9,[1,14,111],[1,15,81]], + [29,118,9,[1,14,110],[5,6,48]], + [29,119,9,[1,14,109],[4,6,30]], + [29,123,9,[1,14,107],[0,14,23]], + [29,126,9,[1,14,104],[7,4,5]], + [29,136,9,[1,14,94],[7,6,43]], + [29,143,9,[1,14,89],[5,4,96]], + [29,157,9,[1,14,43],[6,6,4]], + [29,159,9,[1,14,41],[6,4,7]], + [29,164,9,[1,14,36],[1,15,82]], + [29,165,9,[1,14,35],[1,15,76]], + [29,168,9,[1,14,32],[1,15,111]], + [29,174,9,[1,14,28],[1,15,32]], + [29,175,9,[1,14,27],[1,15,69]], + [29,176,9,[1,14,26],[7,6,72]], + [29,187,9,[1,14,16],[2,15,81]], + [29,191,9,[1,14,12],[5,6,53]], + [29,194,9,[1,14,9],[2,14,40]], + [29,197,9,[1,14,6],[7,4,111]], + [29,200,9,[1,14,3],[6,4,1]], + [29,201,9,[1,14,2],[1,15,107]], + [29,203,9,[1,14,1],[6,4,55]], + [29,383,5,[7,4,61],[5,4,101]], + [29,385,5,[7,4,60],[1,15,110]], + [29,386,5,[7,4,59],[5,6,108]], + [29,387,5,[7,4,58],[0,14,26]], + [29,391,5,[7,4,57],[6,4,84]], + [29,393,5,[7,4,56],[0,15,25]], + [29,394,5,[7,4,55],[6,4,91]], + [29,395,5,[7,4,54],[0,14,29]], + [29,399,5,[7,4,53],[0,15,103]], + [29,401,5,[7,4,52],[4,4,18]], + [29,402,5,[7,4,51],[1,14,3]], + [29,415,5,[7,4,49],[5,4,95]], + [29,417,5,[7,4,48],[7,6,5]], + [29,418,5,[4,4,54],[0,14,82]], + [29,419,5,[1,14,79],[2,15,28]], + [29,423,5,[1,14,78],[5,4,38]], + [29,425,5,[1,14,77],[7,6,28]], + [29,426,5,[1,14,76],[4,4,7]], + [29,427,5,[1,14,75],[0,14,84]], + [29,431,5,[1,14,74],[4,6,71]], + [29,433,5,[1,14,73],[5,4,48]], + [29,434,5,[1,14,72],[0,14,7]], + [29,435,5,[1,14,71],[4,6,6]], + [29,447,5,[1,14,70],[4,6,85]], + [29,449,5,[1,14,69],[7,4,53]], + [29,450,5,[1,14,68],[5,4,82]], + [29,451,5,[1,14,67],[4,4,78]], + [29,455,5,[1,14,66],[1,14,41]], + [29,457,5,[1,14,65],[5,6,107]], + [29,458,5,[1,14,64],[1,14,110]], + [29,459,5,[1,14,63],[2,14,17]], + [29,463,5,[1,14,62],[5,4,41]], + [29,465,5,[1,14,61],[0,14,111]], + [29,466,5,[1,14,60],[4,4,96]], + [29,467,5,[1,14,59],[6,6,74]], + [29,471,5,[1,14,58],[1,15,87]], + [29,473,5,[1,14,57],[4,6,91]], + [29,474,5,[1,14,56],[6,4,60]], + [29,475,5,[1,14,55],[2,15,80]], + [29,479,5,[1,14,54],[2,15,105]], + [29,481,5,[1,14,53],[4,6,64]], + [29,482,5,[1,14,52],[4,4,32]], + [29,483,5,[1,14,51],[4,6,0]], + [29,487,5,[1,14,50],[0,14,102]], + [29,489,5,[1,14,49],[6,6,27]], + [29,490,5,[1,14,48],[6,4,52]], + [29,491,5,[1,14,47],[4,6,88]], + [30,0,9,[7,6,100],[5,4,66]], + [30,12,9,[7,6,87],[1,14,97]], + [30,23,9,[7,6,72],[2,15,43]], + [30,33,9,[7,6,59],[6,4,25]], + [30,39,9,[7,6,49],[6,4,108]], + [30,66,9,[7,6,14],[2,15,59]], + [30,77,9,[7,6,3],[7,4,4]], + [30,146,9,[4,6,19],[5,6,5]], + [30,161,9,[4,6,6],[4,4,64]], + [30,383,5,[5,6,51],[6,6,66]], + [30,385,5,[4,4,111],[5,6,31]], + [30,386,5,[4,4,110],[4,6,34]], + [30,387,5,[4,4,109],[5,4,8]], + [30,394,5,[4,4,106],[2,15,35]], + [30,395,5,[4,4,105],[4,6,44]], + [30,399,5,[4,4,104],[6,4,50]], + [30,401,5,[4,4,103],[7,4,82]], + [30,402,5,[4,4,102],[4,6,83]], + [30,403,5,[4,4,101],[4,4,66]], + [30,417,5,[4,4,99],[4,6,78]], + [30,418,5,[4,4,98],[6,6,102]], + [30,419,5,[4,4,97],[0,14,75]], + [30,423,5,[4,4,96],[4,6,97]], + [30,426,5,[4,4,94],[4,6,29]], + [30,427,5,[4,4,93],[0,14,73]], + [30,431,5,[4,4,92],[7,6,98]], + [30,433,5,[4,4,91],[0,15,26]], + [30,434,5,[4,4,90],[0,14,2]], + [30,435,5,[4,4,89],[5,4,0]], + [30,447,5,[4,4,88],[4,4,16]], + [30,449,5,[4,4,87],[5,4,55]], + [30,450,5,[4,4,86],[4,4,27]], + [30,451,5,[4,4,85],[4,4,109]], + [30,455,5,[4,4,84],[5,4,9]], + [30,457,5,[4,4,83],[2,15,42]], + [30,458,5,[4,4,82],[0,14,56]], + [30,463,5,[4,4,80],[4,6,25]], + [30,465,5,[4,4,79],[6,4,69]], + [30,466,5,[4,4,78],[5,4,16]], + [30,467,5,[4,4,77],[4,6,19]], + [30,473,5,[4,4,75],[7,4,8]], + [30,475,5,[4,4,73],[4,4,58]], + [30,479,5,[4,4,72],[6,4,6]], + [30,481,5,[4,4,71],[4,4,79]], + [30,482,5,[4,4,70],[5,6,97]], + [30,483,5,[4,4,69],[4,4,99]], + [30,490,5,[4,4,66],[2,15,111]], + [30,491,5,[4,4,65],[4,6,52]], + [31,1,9,[7,4,109],[5,4,56]], + [31,2,9,[7,4,104],[2,15,111]], + [31,6,9,[7,4,97],[1,15,61]], + [31,13,9,[7,4,91],[5,6,64]], + [31,22,9,[7,4,35],[1,14,41]], + [31,43,9,[7,4,5],[2,14,1]], + [31,44,9,[7,4,2],[6,6,23]], + [31,51,9,[2,14,105],[0,14,64]], + [31,69,9,[2,14,89],[4,6,29]], + [31,75,9,[2,14,85],[0,15,99]], + [31,80,9,[2,14,80],[1,14,22]], + [31,96,9,[2,14,66],[1,15,105]], + [31,97,9,[2,14,65],[6,6,91]], + [31,103,9,[2,14,59],[5,6,45]], + [31,107,9,[2,14,57],[4,6,64]], + [31,110,9,[2,14,54],[4,4,75]], + [31,131,9,[2,14,35],[6,4,12]], + [31,133,9,[2,14,33],[0,15,34]], + [31,141,9,[2,14,27],[6,6,32]], + [31,157,9,[2,14,13],[2,14,105]], + [31,158,9,[2,14,12],[6,6,31]], + [31,163,9,[2,14,7],[2,14,57]], + [31,168,9,[2,14,2],[7,4,54]], + [31,171,9,[2,14,1],[5,6,37]], + [31,178,9,[0,14,106],[4,6,80]], + [31,189,9,[0,14,96],[6,6,61]], + [31,193,9,[0,14,92],[5,6,55]], + [31,200,9,[0,14,85],[6,4,77]], + [31,201,9,[0,14,84],[5,4,52]], + [31,203,9,[0,14,83],[0,15,30]], + [31,217,9,[0,14,69],[1,15,22]], + [31,221,9,[0,14,66],[4,4,60]], + [31,223,9,[0,14,64],[6,4,9]], + [31,236,9,[0,14,62],[6,4,52]], + [31,252,9,[0,14,48],[0,15,100]], + [31,260,9,[0,14,47],[4,6,35]], + [31,263,9,[0,14,44],[4,6,27]], + [31,299,9,[0,14,24],[0,15,0]], + [31,312,9,[0,14,23],[1,14,1]], + [31,313,9,[0,14,22],[5,4,62]], + [31,324,9,[0,14,21],[0,14,62]], + [31,342,9,[0,14,12],[5,6,90]], + [31,348,9,[0,14,11],[6,6,2]], + [31,351,9,[0,14,9],[0,15,91]], + [31,357,9,[0,14,5],[0,15,36]], + [31,383,5,[4,6,0],[0,15,62]], + [31,385,5,[4,4,46],[4,6,14]], + [31,386,5,[4,4,45],[1,14,25]], + [31,387,5,[4,4,44],[4,6,110]], + [31,391,5,[4,4,43],[4,6,67]], + [31,394,5,[4,4,41],[5,6,32]], + [31,395,5,[4,4,40],[4,4,12]], + [31,399,5,[4,4,39],[1,14,57]], + [31,401,5,[4,4,38],[6,4,0]], + [31,402,5,[4,4,37],[4,4,83]], + [31,403,5,[4,4,36],[5,4,6]], + [31,415,5,[4,4,35],[4,4,45]], + [31,417,5,[4,4,34],[1,15,27]], + [31,418,5,[4,4,33],[4,4,44]], + [31,419,5,[4,4,32],[7,4,5]], + [31,423,5,[4,4,31],[1,15,59]], + [31,425,5,[4,4,30],[6,4,22]], + [31,426,5,[4,4,29],[6,4,51]], + [31,427,5,[4,4,28],[5,4,49]], + [31,431,5,[4,4,27],[1,14,66]], + [31,433,5,[4,4,26],[7,4,51]], + [31,434,5,[4,4,25],[4,6,109]], + [31,435,5,[4,4,24],[6,6,103]], + [31,449,5,[4,4,22],[5,6,73]], + [31,450,5,[4,4,21],[4,6,31]], + [31,451,5,[4,4,20],[0,15,37]], + [31,457,5,[4,4,18],[5,4,91]], + [31,458,5,[4,4,17],[4,6,104]], + [31,459,5,[4,4,16],[4,4,63]], + [31,463,5,[4,4,15],[4,6,95]], + [31,465,5,[4,4,14],[2,15,102]], + [31,467,5,[4,4,12],[0,14,12]], + [31,471,5,[4,4,11],[5,4,107]], + [31,473,5,[4,4,10],[1,14,72]], + [31,474,5,[4,4,9],[4,6,39]], + [31,475,5,[4,4,8],[4,4,104]], + [31,479,5,[4,4,7],[4,4,105]], + [31,481,5,[4,4,6],[5,6,69]], + [31,482,5,[4,4,5],[1,14,78]], + [31,483,5,[4,4,4],[1,15,103]], + [31,487,5,[4,4,3],[0,15,19]], + [31,489,5,[4,4,2],[4,6,72]], + [31,490,5,[4,4,1],[1,15,44]], + [32,86,9,[5,6,24],[6,6,74]], + [32,93,9,[5,6,19],[5,6,14]], + [32,98,9,[5,6,14],[0,14,100]], + [32,100,9,[5,6,12],[5,6,34]], + [32,109,9,[5,6,5],[0,14,39]], + [32,111,9,[5,6,3],[0,15,81]], + [32,113,9,[5,6,1],[5,4,61]], + [32,152,9,[2,15,102],[6,4,49]], + [32,155,9,[2,15,99],[1,14,102]], + [32,174,9,[2,15,58],[1,15,14]], + [32,179,9,[2,15,52],[0,14,103]], + [32,180,9,[2,15,50],[7,6,3]], + [32,187,9,[2,15,41],[2,14,66]], + [32,195,9,[2,15,24],[1,15,45]], + [32,260,9,[1,15,46],[2,14,56]], + [32,261,9,[1,15,45],[1,14,11]], + [32,262,9,[1,15,44],[6,6,85]], + [32,275,9,[1,15,39],[0,15,49]], + [32,294,9,[1,15,28],[0,14,17]], + [32,330,9,[1,15,16],[6,4,43]], + [32,331,9,[1,15,15],[1,14,77]], + [32,336,9,[1,15,14],[6,6,50]], + [32,355,9,[1,15,6],[5,8,102]], + [32,383,5,[7,6,89],[6,6,33]], + [32,385,5,[7,6,88],[1,15,51]], + [32,386,5,[7,6,87],[5,4,79]], + [32,387,5,[7,6,86],[1,14,46]], + [32,391,5,[7,6,85],[2,15,41]], + [32,393,5,[7,6,84],[0,14,16]], + [32,394,5,[7,6,83],[0,14,37]], + [32,395,5,[7,6,82],[1,15,16]], + [32,399,5,[7,6,81],[5,6,74]], + [32,401,5,[7,6,80],[2,15,58]], + [32,402,5,[7,6,79],[1,14,21]], + [32,403,5,[7,6,78],[1,14,109]], + [32,415,5,[7,6,77],[7,4,89]], + [32,417,5,[7,6,76],[5,4,24]], + [32,418,5,[7,6,72],[7,4,19]], + [32,419,5,[6,4,111],[1,15,28]], + [32,423,5,[6,4,110],[5,4,73]], + [32,425,5,[6,4,109],[5,6,83]], + [32,426,5,[6,4,108],[1,15,78]], + [32,427,5,[6,4,107],[0,15,43]], + [32,431,5,[6,4,106],[5,4,104]], + [32,433,5,[6,4,105],[0,14,51]], + [32,434,5,[6,4,104],[6,6,99]], + [32,435,5,[6,4,103],[6,6,26]], + [32,447,5,[6,4,102],[6,6,17]], + [32,449,5,[6,4,101],[5,4,17]], + [32,450,5,[6,4,100],[5,4,105]], + [32,451,5,[6,4,99],[0,15,93]], + [32,455,5,[6,4,98],[2,15,24]], + [32,457,5,[6,4,97],[1,15,66]], + [32,458,5,[6,4,96],[1,15,89]], + [32,459,5,[6,4,95],[0,14,44]], + [32,463,5,[6,4,94],[6,6,1]], + [32,465,5,[6,4,93],[0,15,22]], + [32,466,5,[6,4,92],[6,6,25]], + [32,467,5,[6,4,91],[0,14,87]], + [32,471,5,[6,4,90],[0,14,47]], + [32,473,5,[6,4,89],[5,4,99]], + [32,474,5,[6,4,88],[5,6,19]], + [32,475,5,[6,4,87],[5,6,104]], + [32,479,5,[6,4,86],[5,4,35]], + [32,481,5,[6,4,85],[5,6,3]], + [32,482,5,[6,4,84],[5,6,98]], + [32,483,5,[6,4,80],[5,4,29]], + [32,487,5,[6,4,32],[0,14,59]], + [32,489,5,[6,4,31],[5,6,24]], + [32,490,5,[6,4,30],[5,6,61]], + [32,491,5,[6,4,29],[7,6,27]], + [33,178,9,[2,14,104],[6,4,62]], + [33,191,9,[2,14,92],[7,4,75]], + [33,209,9,[2,14,75],[1,15,46]], + [33,211,9,[2,14,73],[3,15,101]], + [33,249,9,[2,14,49],[7,4,77]], + [33,272,9,[2,14,41],[1,14,92]], + [33,280,9,[2,14,37],[1,15,70]], + [33,285,9,[2,14,32],[5,6,57]], + [33,293,9,[2,14,28],[1,15,92]], + [33,297,9,[2,14,24],[0,14,9]], + [33,324,9,[2,14,19],[7,4,91]], + [33,340,9,[2,14,11],[2,15,61]], + [33,383,5,[5,4,50],[0,14,23]], + [33,385,5,[1,15,110],[7,4,40]], + [33,386,5,[1,15,109],[5,4,18]], + [33,387,5,[1,15,108],[5,6,36]], + [33,391,5,[1,15,107],[5,6,100]], + [33,393,5,[1,15,106],[7,4,42]], + [33,394,5,[1,15,105],[6,6,85]], + [33,395,5,[1,15,104],[6,6,84]], + [33,399,5,[1,15,103],[0,14,43]], + [33,401,5,[1,15,102],[1,15,7]], + [33,402,5,[1,15,101],[0,15,4]], + [33,403,5,[1,15,100],[5,6,59]], + [33,415,5,[1,15,99],[2,14,24]], + [33,417,5,[1,15,98],[5,4,88]], + [33,418,5,[1,15,97],[0,15,97]], + [33,419,5,[1,15,96],[5,4,4]], + [33,423,5,[1,15,95],[6,4,74]], + [33,425,5,[1,15,94],[6,6,83]], + [33,426,5,[1,15,93],[2,15,10]], + [33,427,5,[1,15,92],[6,6,36]], + [33,431,5,[1,15,91],[5,6,94]], + [33,433,5,[1,15,90],[0,14,17]], + [33,434,5,[1,15,89],[2,15,84]], + [33,435,5,[1,15,88],[0,14,5]], + [33,447,5,[1,15,87],[1,14,4]], + [33,449,5,[1,15,86],[2,14,37]], + [33,450,5,[1,15,85],[6,6,107]], + [33,451,5,[1,15,84],[5,6,90]], + [33,455,5,[1,15,83],[2,14,19]], + [33,457,5,[1,15,82],[7,6,100]], + [33,458,5,[1,15,81],[0,14,86]], + [33,459,5,[1,15,80],[6,6,38]], + [33,463,5,[1,15,79],[3,15,22]], + [33,465,5,[1,15,78],[2,14,11]], + [33,466,5,[1,15,77],[5,4,42]], + [33,467,5,[1,15,76],[5,4,78]], + [33,471,5,[1,15,75],[0,14,53]], + [33,473,5,[1,15,74],[6,6,77]], + [33,474,5,[1,15,73],[6,4,13]], + [33,475,5,[1,15,72],[3,14,74]], + [33,479,5,[1,15,71],[5,4,81]], + [33,481,5,[1,15,70],[0,14,28]], + [33,482,5,[1,15,69],[3,14,10]], + [33,483,5,[1,15,68],[6,4,16]], + [33,487,5,[1,15,67],[1,15,54]], + [33,489,5,[1,15,66],[6,6,82]], + [33,490,5,[1,15,65],[7,4,96]], + [33,491,5,[1,15,62],[5,6,79]], + [34,63,9,[5,6,75],[7,4,14]], + [34,94,9,[5,6,48],[5,4,27]], + [34,95,9,[5,6,47],[7,4,22]], + [34,97,9,[5,6,45],[5,4,85]], + [34,103,9,[5,6,39],[2,14,12]], + [34,107,9,[5,6,37],[7,6,25]], + [34,109,9,[5,6,35],[0,15,16]], + [34,135,9,[5,6,11],[5,4,24]], + [34,140,9,[5,6,8],[0,14,36]], + [34,141,9,[5,6,7],[5,4,7]], + [34,144,9,[5,6,4],[7,4,95]], + [34,150,9,[3,15,83],[6,4,110]], + [34,383,5,[6,4,81],[5,6,7]], + [34,385,5,[5,4,79],[5,4,110]], + [34,386,5,[5,4,78],[5,6,105]], + [34,387,5,[5,4,77],[0,14,39]], + [34,391,5,[5,4,76],[0,15,29]], + [34,393,5,[5,4,75],[2,14,9]], + [34,394,5,[5,4,74],[0,15,35]], + [34,395,5,[5,4,73],[7,4,67]], + [34,399,5,[5,4,72],[7,6,73]], + [34,401,5,[5,4,71],[5,6,47]], + [34,402,5,[5,4,70],[6,4,11]], + [34,403,5,[5,4,69],[1,15,26]], + [34,415,5,[5,4,68],[3,14,110]], + [34,417,5,[5,4,67],[5,4,63]], + [34,418,5,[5,4,66],[1,14,48]], + [34,419,5,[5,4,65],[0,14,20]], + [34,423,5,[3,15,110],[0,14,109]], + [34,425,5,[3,15,109],[7,4,105]], + [34,426,5,[3,15,108],[1,14,11]], + [34,427,5,[3,15,107],[0,15,15]], + [34,431,5,[3,15,105],[2,15,25]], + [34,433,5,[3,15,103],[3,14,31]], + [34,434,5,[3,15,102],[7,6,96]], + [34,435,5,[3,15,99],[0,15,91]], + [34,447,5,[3,15,98],[5,6,45]], + [34,449,5,[3,15,96],[6,4,18]], + [34,450,5,[3,15,93],[1,15,91]], + [34,451,5,[3,15,92],[1,15,13]], + [34,455,5,[3,15,91],[0,14,0]], + [34,457,5,[3,15,90],[3,14,102]], + [34,458,5,[3,15,67],[5,4,92]], + [34,459,5,[3,15,66],[1,14,31]], + [34,463,5,[3,15,60],[6,4,95]], + [34,465,5,[3,15,58],[2,15,79]], + [34,466,5,[3,15,55],[7,6,15]], + [34,467,5,[3,15,53],[0,15,70]], + [34,471,5,[3,15,51],[1,15,73]], + [34,473,5,[3,15,49],[2,15,70]], + [34,474,5,[3,15,48],[5,4,44]], + [34,479,5,[3,15,46],[1,14,81]], + [34,481,5,[3,15,45],[2,15,82]], + [34,482,5,[3,15,43],[6,4,88]], + [34,483,5,[3,15,42],[2,15,73]], + [34,487,5,[3,15,41],[6,4,70]], + [34,489,5,[3,15,39],[1,14,90]], + [34,490,5,[3,15,36],[1,14,101]], + [34,491,5,[0,15,96],[3,14,69]], + [35,3,9,[7,4,100],[1,14,43]], + [35,8,9,[7,4,95],[6,4,46]], + [35,22,9,[7,4,53],[6,6,73]], + [35,40,9,[7,4,30],[6,6,81]], + [35,46,9,[7,4,23],[6,6,111]], + [35,52,9,[7,4,14],[0,15,60]], + [35,53,9,[7,4,12],[5,6,102]], + [35,63,9,[7,4,1],[5,6,8]], + [35,383,5,[6,6,111],[5,6,42]], + [35,386,5,[6,6,109],[6,6,57]], + [35,387,5,[6,6,108],[2,14,7]], + [35,391,5,[6,6,107],[0,14,89]], + [35,393,5,[6,6,106],[7,6,64]], + [35,394,5,[6,6,105],[0,14,65]], + [35,395,5,[6,6,104],[6,6,42]], + [35,399,5,[6,6,103],[5,6,15]], + [35,401,5,[6,6,102],[5,4,15]], + [35,402,5,[6,6,101],[2,15,40]], + [35,403,5,[6,6,100],[0,15,36]], + [35,415,5,[6,6,99],[2,15,65]], + [35,417,5,[6,6,98],[2,15,8]], + [35,418,5,[6,6,97],[5,6,33]], + [35,419,5,[6,6,96],[1,15,56]], + [35,423,5,[6,6,95],[2,14,67]], + [35,425,5,[6,6,94],[6,4,99]], + [35,426,5,[6,6,93],[0,14,24]], + [35,427,5,[6,6,92],[5,4,5]], + [35,431,5,[6,6,91],[6,6,78]], + [35,433,5,[6,6,90],[7,6,78]], + [35,434,5,[6,6,89],[0,14,60]], + [35,435,5,[6,6,88],[0,15,17]], + [35,447,5,[6,6,87],[0,15,33]], + [35,449,5,[6,6,86],[1,15,40]], + [35,450,5,[6,6,85],[0,14,41]], + [35,451,5,[6,6,84],[7,4,30]], + [35,455,5,[6,6,83],[2,15,89]], + [35,457,5,[6,6,82],[0,14,58]], + [35,458,5,[6,6,81],[1,14,8]], + [35,459,5,[6,6,80],[7,4,14]], + [35,463,5,[6,6,79],[5,6,86]], + [35,465,5,[6,6,78],[2,14,5]], + [35,466,5,[6,6,77],[7,6,36]], + [35,467,5,[6,6,76],[6,4,21]], + [35,471,5,[6,6,75],[1,15,29]], + [35,473,5,[6,6,74],[6,4,47]], + [35,474,5,[6,6,73],[3,15,49]], + [35,475,5,[6,6,72],[0,14,108]], + [35,479,5,[6,6,71],[7,6,48]], + [35,481,5,[6,6,70],[7,6,20]], + [35,482,5,[6,6,69],[7,6,33]], + [35,483,5,[6,6,68],[5,6,17]], + [35,487,5,[6,6,67],[7,4,100]], + [35,489,5,[6,6,66],[1,15,17]], + [35,490,5,[6,6,64],[5,4,74]], + [35,491,5,[3,15,52],[0,15,77]], + [36,183,9,[1,14,108],[2,14,110]], + [36,185,9,[1,14,106],[5,4,72]], + [36,195,9,[1,14,97],[0,15,31]], + [36,196,9,[1,14,96],[1,14,7]], + [36,207,9,[1,14,86],[2,15,19]], + [36,208,9,[1,14,85],[3,14,8]], + [36,383,5,[5,4,46],[2,14,109]], + [36,385,5,[5,4,45],[0,14,18]], + [36,386,5,[5,4,44],[5,6,71]], + [36,387,5,[5,4,43],[6,4,83]], + [36,391,5,[5,4,42],[7,4,10]], + [36,393,5,[5,4,41],[7,6,40]], + [36,394,5,[5,4,40],[1,15,23]], + [36,395,5,[5,4,39],[7,4,44]], + [36,399,5,[5,4,38],[0,15,79]], + [36,401,5,[5,4,37],[5,6,87]], + [36,402,5,[5,4,36],[1,15,75]], + [36,403,5,[5,4,35],[2,14,10]], + [36,415,5,[5,4,34],[1,15,97]], + [36,417,5,[5,4,33],[6,4,48]], + [36,418,5,[5,4,32],[5,6,8]], + [36,419,5,[5,4,31],[1,15,12]], + [36,423,5,[5,4,30],[3,14,15]], + [36,425,5,[5,4,29],[0,14,77]], + [36,426,5,[5,4,28],[7,6,60]], + [36,427,5,[5,4,27],[5,6,55]], + [36,433,5,[5,4,25],[0,14,66]], + [36,434,5,[5,4,24],[7,6,51]], + [36,447,5,[5,4,22],[0,14,27]], + [36,449,5,[5,4,21],[0,15,99]], + [36,450,5,[5,4,20],[5,6,96]], + [36,451,5,[5,4,19],[5,6,67]], + [36,455,5,[5,4,18],[0,15,57]], + [36,457,5,[5,4,17],[5,4,45]], + [36,458,5,[5,4,16],[7,6,25]], + [36,459,5,[5,4,15],[7,6,26]], + [36,463,5,[5,4,14],[7,4,58]], + [36,466,5,[5,4,12],[1,14,108]], + [36,467,5,[5,4,11],[1,14,80]], + [36,471,5,[5,4,10],[6,4,42]], + [36,473,5,[5,4,9],[7,6,45]], + [36,474,5,[5,4,8],[1,15,86]], + [36,475,5,[5,4,7],[0,14,81]], + [36,479,5,[5,4,6],[1,15,9]], + [36,481,5,[5,4,5],[5,4,94]], + [36,482,5,[5,4,4],[0,15,82]], + [36,483,5,[5,4,3],[0,14,42]], + [36,487,5,[5,4,2],[5,4,46]], + [36,489,5,[5,4,1],[0,14,61]], + [36,490,5,[5,4,0],[5,4,85]], + [36,491,5,[0,14,50],[6,4,19]], + [37,2,9,[5,6,78],[7,6,75]], + [37,8,9,[5,6,72],[0,15,109]], + [37,15,9,[5,6,66],[6,6,3]], + [37,17,9,[5,6,64],[5,6,84]], + [37,24,9,[5,6,57],[3,15,68]], + [37,25,9,[5,6,56],[6,6,100]], + [37,27,9,[5,6,55],[5,6,4]], + [37,39,9,[5,6,43],[6,4,56]], + [37,47,9,[5,6,36],[7,6,13]], + [37,167,9,[1,14,102],[1,15,13]], + [37,179,9,[1,14,92],[3,15,105]], + [37,201,9,[0,14,99],[0,15,80]], + [37,223,9,[0,14,79],[5,4,19]], + [37,246,9,[0,14,69],[1,15,7]], + [37,260,9,[0,14,62],[5,6,56]], + [37,280,9,[0,14,49],[2,15,30]], + [37,284,9,[0,14,41],[3,15,65]], + [37,293,9,[0,14,30],[0,15,28]], + [37,295,9,[0,14,28],[5,4,88]], + [37,330,9,[0,14,17],[5,6,27]], + [37,356,9,[0,14,6],[7,6,100]], + [37,383,5,[6,6,65],[1,15,85]], + [37,385,5,[6,4,82],[5,6,72]], + [37,386,5,[5,6,30],[0,14,69]], + [37,387,5,[5,6,29],[1,15,46]], + [37,391,5,[5,6,28],[5,4,27]], + [37,393,5,[5,6,27],[5,6,43]], + [37,394,5,[5,6,26],[3,15,13]], + [37,395,5,[5,6,25],[1,14,102]], + [37,399,5,[5,6,24],[1,14,16]], + [37,401,5,[5,6,23],[5,6,102]], + [37,402,5,[5,6,22],[7,4,88]], + [37,403,5,[5,6,21],[6,6,108]], + [37,415,5,[5,6,20],[5,6,13]], + [37,417,5,[5,6,19],[0,14,62]], + [37,418,5,[5,6,18],[7,4,102]], + [37,419,5,[5,6,17],[1,15,41]], + [37,423,5,[5,6,16],[6,4,106]], + [37,425,5,[5,6,15],[6,6,105]], + [37,426,5,[5,6,14],[2,15,2]], + [37,427,5,[5,6,13],[7,4,57]], + [37,431,5,[5,6,12],[0,15,105]], + [37,433,5,[5,6,11],[3,15,30]], + [37,434,5,[5,6,10],[7,4,62]], + [37,435,5,[5,6,9],[1,15,38]], + [37,447,5,[5,6,8],[5,6,57]], + [37,449,5,[5,6,7],[0,15,56]], + [37,450,5,[5,6,6],[1,14,69]], + [37,451,5,[5,6,5],[0,14,6]], + [37,455,5,[5,6,4],[5,4,56]], + [37,457,5,[5,6,3],[5,4,50]], + [37,458,5,[5,6,2],[5,6,80]], + [37,459,5,[5,6,1],[0,15,75]], + [37,463,5,[5,6,0],[2,15,104]], + [37,465,5,[0,14,59],[2,14,51]], + [37,466,5,[0,14,58],[7,6,67]], + [37,467,5,[0,14,54],[2,15,66]], + [37,471,5,[0,14,53],[7,4,27]], + [37,473,5,[0,14,52],[6,6,64]], + [37,474,5,[0,14,48],[1,15,74]], + [37,479,5,[0,14,43],[3,14,45]], + [37,481,5,[0,14,42],[7,6,111]], + [37,482,5,[0,14,40],[5,4,61]], + [37,483,5,[0,14,39],[6,6,16]], + [37,487,5,[0,14,37],[2,14,29]], + [37,489,5,[0,14,36],[7,6,31]], + [37,490,5,[0,14,34],[2,15,83]], + [37,491,5,[0,14,32],[6,6,89]], + [38,3,9,[7,6,108],[0,14,70]], + [38,4,9,[7,6,107],[5,6,43]], + [38,10,4,[5,6,110],[1,15,15]], + [38,19,9,[5,4,105],[6,4,40]], + [38,24,9,[5,4,100],[5,4,2]], + [38,26,4,[5,6,109],[3,15,104]], + [38,29,9,[5,4,96],[5,6,9]], + [38,35,9,[5,4,90],[7,4,84]], + [38,36,9,[5,4,89],[5,6,92]], + [38,40,9,[5,4,85],[6,6,97]], + [38,42,4,[5,6,108],[6,6,62]], + [38,46,9,[5,4,80],[6,6,84]], + [38,47,9,[5,4,79],[1,14,52]], + [38,51,9,[5,4,75],[7,6,23]], + [38,57,4,[5,6,107],[5,6,68]], + [38,58,4,[5,6,106],[6,4,56]], + [38,59,9,[5,4,69],[6,4,102]], + [38,62,9,[5,4,66],[6,4,36]], + [38,66,9,[5,4,62],[1,14,32]], + [38,67,9,[5,4,61],[5,6,23]], + [38,73,4,[5,6,105],[5,6,14]], + [38,74,4,[5,6,104],[0,14,94]], + [38,79,9,[5,4,51],[5,6,6]], + [38,84,9,[5,4,46],[6,6,25]], + [38,89,4,[5,6,103],[1,14,107]], + [38,90,4,[5,6,102],[7,6,19]], + [38,95,9,[5,4,37],[5,6,87]], + [38,105,4,[5,6,101],[7,4,21]], + [38,106,4,[5,6,100],[7,4,18]], + [38,110,9,[5,4,24],[6,6,48]], + [38,121,4,[5,6,99],[1,15,2]], + [38,122,4,[5,6,98],[6,4,15]], + [38,124,9,[5,4,12],[5,4,79]], + [38,134,9,[5,4,2],[5,4,46]], + [38,135,9,[5,4,1],[3,15,109]], + [38,137,4,[5,6,97],[6,4,97]], + [38,138,4,[5,6,96],[7,6,69]], + [38,153,4,[5,6,95],[5,6,2]], + [38,154,4,[5,6,94],[1,15,79]], + [38,169,4,[5,6,93],[1,15,58]], + [38,170,4,[5,6,92],[5,6,89]], + [38,185,9,[0,15,99],[0,14,66]], + [38,186,4,[5,6,91],[1,14,22]], + [38,199,9,[0,15,86],[6,6,104]], + [38,202,4,[5,6,90],[5,4,96]], + [38,205,9,[0,15,81],[0,14,21]], + [38,215,9,[0,15,71],[6,6,18]], + [38,218,4,[5,6,89],[7,6,35]], + [38,222,9,[0,15,65],[6,4,59]], + [38,223,9,[0,15,64],[6,4,20]], + [38,238,9,[0,15,60],[0,14,106]], + [38,251,9,[0,15,49],[2,15,90]], + [38,252,9,[0,15,48],[5,6,11]], + [38,280,9,[0,15,39],[6,4,51]], + [38,285,9,[0,15,34],[1,15,39]], + [38,295,9,[0,15,28],[7,4,59]], + [38,367,9,[0,15,1],[0,14,49]], + [38,368,9,[0,15,0],[0,14,12]], + [38,383,5,[0,14,111],[5,6,88]], + [38,385,5,[0,14,110],[0,15,28]], + [38,386,5,[0,14,109],[1,14,44]], + [38,387,5,[0,14,108],[2,14,111]], + [38,391,5,[0,14,107],[6,4,62]], + [38,393,5,[0,14,106],[5,6,65]], + [38,394,5,[0,14,105],[0,15,65]], + [38,395,5,[0,14,104],[5,4,100]], + [38,399,5,[0,14,103],[6,6,59]], + [38,401,5,[0,14,102],[5,6,75]], + [38,402,5,[0,14,101],[1,15,34]], + [38,403,5,[0,14,100],[5,4,37]], + [38,407,4,[5,6,88],[6,6,106]], + [38,409,4,[5,6,87],[5,4,66]], + [38,410,4,[5,6,86],[1,14,14]], + [38,411,4,[5,6,85],[5,6,50]], + [38,415,5,[0,14,99],[0,15,49]], + [38,417,5,[0,14,98],[3,14,49]], + [38,418,5,[0,14,97],[0,15,71]], + [38,419,5,[0,14,96],[5,4,80]], + [38,423,5,[0,14,95],[5,6,58]], + [38,425,5,[0,14,94],[6,4,110]], + [38,426,5,[0,14,93],[6,6,49]], + [38,427,5,[0,14,92],[7,6,43]], + [38,431,5,[0,14,91],[5,4,75]], + [38,433,5,[0,14,90],[5,6,111]], + [38,434,5,[0,14,89],[3,14,104]], + [38,435,5,[0,14,88],[5,4,90]], + [38,439,4,[5,6,84],[6,6,14]], + [38,441,4,[5,6,83],[0,15,86]], + [38,442,4,[5,6,82],[3,15,52]], + [38,447,5,[0,14,87],[2,14,25]], + [38,449,5,[0,14,86],[5,6,46]], + [38,450,5,[0,14,85],[0,14,48]], + [38,451,5,[0,14,84],[5,6,66]], + [38,455,5,[0,14,83],[1,14,51]], + [38,457,5,[0,14,82],[5,4,12]], + [38,458,5,[0,14,81],[1,15,55]], + [38,459,5,[0,14,80],[7,6,84]], + [38,463,5,[0,14,79],[6,6,101]], + [38,465,5,[0,14,78],[1,15,14]], + [38,466,5,[0,14,77],[6,4,89]], + [38,467,5,[0,14,76],[6,6,30]], + [38,471,5,[0,14,75],[0,15,48]], + [38,473,5,[0,14,74],[1,15,100]], + [38,474,5,[0,14,73],[2,14,52]], + [38,475,5,[0,14,72],[6,6,7]], + [38,479,5,[0,14,71],[2,14,2]], + [38,481,5,[0,14,70],[0,14,63]], + [38,482,5,[0,14,69],[1,14,58]], + [38,483,5,[0,14,68],[2,14,60]], + [38,487,5,[0,14,67],[2,14,40]], + [38,489,5,[0,14,66],[7,6,87]], + [38,490,5,[0,14,65],[3,15,58]], + [38,491,5,[0,14,47],[0,14,15]], + [39,30,9,[3,15,99],[1,15,9]], + [39,41,9,[3,15,80],[0,15,23]], + [39,51,9,[3,15,57],[1,15,106]], + [39,65,9,[3,15,42],[7,4,100]], + [39,75,9,[3,15,33],[7,6,91]], + [39,79,9,[3,15,29],[2,14,27]], + [39,97,9,[3,15,13],[1,14,62]], + [39,98,9,[3,15,12],[7,6,38]], + [39,126,9,[1,14,69],[2,15,4]], + [39,133,9,[1,14,62],[0,15,28]], + [39,142,9,[1,14,55],[0,14,23]], + [39,145,9,[1,14,52],[0,15,82]], + [39,146,9,[1,14,51],[2,15,103]], + [39,161,9,[1,14,38],[0,14,6]], + [39,167,9,[1,14,32],[3,15,76]], + [39,174,9,[1,14,27],[0,14,11]], + [39,177,9,[1,14,24],[0,14,38]], + [39,179,9,[1,14,22],[2,14,42]], + [39,181,9,[1,14,20],[6,4,43]], + [39,187,9,[1,14,15],[1,15,29]], + [39,189,9,[1,14,13],[1,15,68]], + [39,191,9,[1,14,11],[6,4,15]], + [39,383,5,[3,15,111],[0,15,47]], + [39,385,5,[3,15,106],[1,14,15]], + [39,386,5,[3,15,104],[0,14,54]], + [39,387,5,[3,15,101],[0,15,64]], + [39,391,5,[3,15,100],[1,14,32]], + [39,393,5,[3,15,97],[6,4,44]], + [39,394,5,[3,15,95],[1,15,10]], + [39,395,5,[3,15,94],[3,15,99]], + [39,399,5,[3,15,89],[0,14,96]], + [39,401,5,[3,15,87],[0,14,30]], + [39,402,5,[3,15,86],[7,6,2]], + [39,403,5,[3,15,83],[2,15,44]], + [39,415,5,[3,15,82],[7,4,66]], + [39,417,5,[3,15,79],[1,15,0]], + [39,418,5,[3,15,77],[1,15,64]], + [39,419,5,[3,15,76],[0,15,108]], + [39,423,5,[3,15,75],[6,6,21]], + [39,425,5,[3,15,74],[6,4,67]], + [39,426,5,[3,15,73],[2,15,90]], + [39,427,5,[3,15,72],[7,4,3]], + [39,431,5,[3,15,71],[7,6,23]], + [39,433,5,[3,15,70],[6,4,49]], + [39,434,5,[3,15,68],[0,14,71]], + [39,435,5,[3,15,65],[1,14,52]], + [39,447,5,[3,15,63],[2,14,31]], + [39,449,5,[3,15,62],[2,14,96]], + [39,451,5,[3,15,56],[3,15,44]], + [39,455,5,[3,15,50],[3,15,80]], + [39,457,5,[3,15,44],[6,4,78]], + [39,458,5,[3,15,38],[6,6,6]], + [39,459,5,[2,15,101],[0,14,40]], + [39,463,5,[0,15,15],[0,14,50]], + [39,465,5,[0,15,14],[6,6,79]], + [39,469,8,[3,10,92],[1,12,43]], + [39,475,5,[0,15,8],[0,14,57]], + [39,482,5,[0,15,5],[1,15,37]], + [39,483,5,[0,15,4],[1,15,21]], + [39,487,5,[0,15,3],[6,6,13]], + [39,490,5,[0,15,1],[0,14,49]], + [39,491,5,[0,15,0],[6,6,61]], + [40,1,9,[6,6,111],[0,14,28]], + [40,7,9,[6,6,97],[6,6,35]], + [40,9,9,[6,6,91],[6,4,109]], + [40,16,9,[6,6,84],[3,14,13]], + [40,18,9,[6,6,81],[6,6,94]], + [40,20,9,[6,6,78],[1,14,32]], + [40,27,9,[6,6,69],[7,4,76]], + [40,40,9,[6,6,36],[3,15,50]], + [40,46,9,[6,6,25],[6,4,28]], + [40,50,9,[6,6,18],[6,6,25]], + [40,77,9,[3,14,97],[1,15,8]], + [40,79,9,[3,14,95],[1,14,3]], + [40,81,9,[3,14,93],[1,15,96]], + [40,91,9,[3,14,85],[0,14,44]], + [40,108,9,[3,14,70],[4,15,38]], + [40,189,9,[0,15,96],[1,14,94]], + [40,194,9,[0,15,91],[6,4,79]], + [40,206,9,[0,15,80],[1,15,44]], + [40,283,9,[0,15,36],[7,6,53]], + [40,292,9,[0,15,31],[7,4,72]], + [40,294,9,[0,15,29],[6,6,41]], + [40,295,9,[0,15,28],[4,15,26]], + [40,312,9,[0,15,23],[6,6,39]], + [40,331,9,[0,15,16],[0,14,71]], + [40,358,9,[0,15,4],[0,14,30]], + [40,383,5,[7,6,73],[2,14,104]], + [40,385,5,[2,15,111],[7,6,9]], + [40,386,5,[2,15,110],[1,14,17]], + [40,387,5,[2,15,109],[1,15,36]], + [40,391,5,[2,15,108],[0,15,31]], + [40,393,5,[2,15,107],[4,15,39]], + [40,394,5,[2,15,106],[2,15,96]], + [40,395,5,[2,15,105],[4,14,83]], + [40,399,5,[2,15,104],[3,14,4]], + [40,401,5,[2,15,103],[2,14,45]], + [40,402,5,[2,15,100],[6,6,86]], + [40,403,5,[2,15,97],[6,4,73]], + [40,415,5,[2,15,94],[3,15,23]], + [40,417,5,[2,15,91],[7,6,81]], + [40,418,5,[2,15,89],[3,14,35]], + [40,419,5,[2,15,88],[7,6,37]], + [40,423,5,[2,15,87],[6,4,86]], + [40,425,5,[2,15,85],[6,6,71]], + [40,426,5,[2,15,83],[1,14,13]], + [40,427,5,[2,15,81],[2,14,97]], + [40,431,5,[2,15,79],[0,15,80]], + [40,433,5,[2,15,77],[0,15,23]], + [40,434,5,[2,15,76],[1,14,67]], + [40,435,5,[2,15,75],[6,4,61]], + [40,447,5,[2,15,72],[0,15,96]], + [40,449,5,[2,15,69],[6,6,34]], + [40,450,5,[2,15,67],[6,4,92]], + [40,451,5,[2,15,66],[1,14,54]], + [40,455,5,[2,15,63],[6,4,94]], + [40,457,5,[2,15,61],[6,4,71]], + [40,458,5,[2,15,46],[6,6,95]], + [40,459,5,[2,15,45],[3,14,27]], + [40,463,5,[2,15,43],[6,4,103]], + [40,465,5,[2,15,40],[1,15,4]], + [40,466,5,[2,15,39],[6,4,98]], + [40,467,5,[2,15,37],[6,4,104]], + [40,471,5,[2,15,34],[6,4,63]], + [40,473,5,[2,15,33],[6,6,51]], + [40,474,5,[2,15,31],[2,14,94]], + [40,475,5,[2,15,28],[3,14,26]], + [40,479,5,[2,15,27],[6,4,32]], + [40,481,5,[2,15,25],[6,6,91]], + [40,482,5,[2,15,22],[6,4,45]], + [40,483,5,[2,15,21],[7,6,76]], + [40,487,5,[2,15,19],[1,14,75]], + [40,489,5,[2,15,18],[7,6,12]], + [40,490,5,[2,15,17],[2,15,38]], + [40,491,5,[2,15,16],[1,15,109]], + [41,164,9,[2,13,36],[2,15,18]], + [41,383,5,[6,4,83],[0,15,0]], + [41,385,5,[0,14,64],[2,14,44]], + [41,386,5,[0,14,63],[0,15,54]], + [41,387,5,[0,14,62],[2,15,64]], + [41,391,5,[0,14,61],[3,15,92]], + [41,393,5,[0,14,60],[0,14,68]], + [41,394,5,[0,14,57],[0,14,100]], + [41,395,5,[0,14,56],[6,4,5]], + [41,399,5,[0,14,55],[6,6,41]], + [41,401,5,[0,14,51],[6,6,28]], + [41,402,5,[0,14,46],[1,14,73]], + [41,403,5,[0,14,44],[0,15,16]], + [41,415,5,[0,14,41],[1,14,105]], + [41,417,5,[0,14,38],[0,15,39]], + [41,418,5,[0,14,35],[3,14,100]], + [41,419,5,[0,14,33],[0,14,72]], + [41,423,5,[0,14,31],[4,15,72]], + [41,425,5,[0,14,30],[7,4,37]], + [41,426,5,[0,14,29],[6,4,26]], + [41,427,5,[0,14,28],[3,15,71]], + [41,431,5,[0,14,27],[6,4,102]], + [41,433,5,[0,14,26],[3,14,66]], + [41,434,5,[0,14,25],[1,14,35]], + [41,435,5,[0,14,24],[4,15,84]], + [41,442,4,[4,12,54],[7,4,2]], + [41,447,5,[0,14,23],[2,15,1]], + [41,449,5,[0,14,22],[2,15,49]], + [41,450,5,[0,14,21],[3,14,81]], + [41,451,5,[0,14,20],[2,14,98]], + [41,455,5,[0,14,19],[0,15,67]], + [41,457,5,[0,14,18],[7,4,75]], + [41,458,5,[0,14,17],[7,4,49]], + [41,459,5,[0,14,16],[1,15,19]], + [41,463,5,[0,14,15],[0,14,9]], + [41,465,5,[0,14,14],[6,6,35]], + [41,466,5,[0,14,13],[4,15,67]], + [41,467,5,[0,14,12],[0,15,1]], + [41,471,5,[0,14,11],[2,15,77]], + [41,473,5,[0,14,10],[6,4,87]], + [41,474,5,[0,14,9],[0,15,61]], + [41,475,5,[0,14,8],[2,14,103]], + [41,479,5,[0,14,7],[7,6,46]], + [41,481,5,[0,14,6],[1,15,80]], + [41,482,5,[0,14,5],[0,15,106]], + [41,483,5,[0,14,4],[7,6,8]], + [41,487,5,[0,14,3],[0,15,50]], + [41,489,5,[0,14,2],[7,6,16]], + [41,491,5,[0,14,0],[3,14,44]], + [42,9,9,[4,15,99],[7,6,34]], + [42,11,9,[4,15,97],[4,15,27]], + [42,29,9,[4,15,70],[1,15,28]], + [42,30,9,[4,15,67],[3,14,63]], + [42,31,9,[4,15,65],[3,14,14]], + [42,43,9,[4,15,50],[4,14,70]], + [42,47,9,[4,15,44],[4,15,3]], + [42,54,9,[4,15,28],[0,15,76]], + [42,55,9,[4,15,26],[1,15,52]], + [42,59,9,[4,15,22],[2,15,22]], + [42,68,9,[4,15,8],[4,15,48]], + [42,176,9,[0,14,108],[7,6,71]], + [42,181,9,[0,14,103],[1,15,59]], + [42,184,9,[0,14,100],[6,4,22]], + [42,215,9,[0,14,71],[0,15,65]], + [42,216,9,[0,14,70],[1,15,1]], + [42,281,9,[0,14,38],[6,4,5]], + [42,292,9,[0,14,31],[1,15,16]], + [42,312,9,[0,14,23],[1,14,50]], + [42,367,9,[0,14,1],[1,14,63]], + [42,383,5,[7,4,80],[7,6,38]], + [42,385,5,[7,4,79],[1,14,2]], + [42,386,5,[7,4,78],[0,14,70]], + [42,387,5,[7,4,77],[6,4,96]], + [42,391,5,[7,4,76],[1,15,67]], + [42,393,5,[7,4,75],[0,15,95]], + [42,394,5,[7,4,74],[3,14,57]], + [42,395,5,[7,4,73],[6,6,65]], + [42,399,5,[7,4,72],[7,4,110]], + [42,401,5,[7,4,71],[7,6,49]], + [42,402,5,[7,4,70],[0,15,78]], + [42,403,5,[7,4,69],[0,14,38]], + [42,415,5,[7,4,68],[6,4,37]], + [42,417,5,[7,4,67],[6,6,98]], + [42,418,5,[7,4,66],[6,4,58]], + [42,419,5,[7,4,64],[2,15,71]], + [42,423,5,[4,15,108],[6,4,33]], + [42,425,5,[4,15,104],[1,14,20]], + [42,426,5,[4,15,100],[1,14,34]], + [42,427,5,[4,15,98],[4,14,16]], + [42,431,5,[4,15,94],[2,15,72]], + [42,433,5,[4,15,92],[7,4,72]], + [42,434,5,[4,15,88],[7,6,82]], + [42,435,5,[4,15,81],[0,15,101]], + [42,447,5,[4,15,78],[1,14,26]], + [42,449,5,[4,15,75],[2,14,108]], + [42,450,5,[4,15,72],[4,15,44]], + [42,451,5,[4,15,71],[6,4,31]], + [42,455,5,[4,15,69],[0,15,69]], + [42,458,5,[4,15,66],[7,4,94]], + [42,459,5,[4,15,62],[7,6,50]], + [42,463,5,[4,15,59],[2,15,19]], + [42,465,5,[4,15,53],[7,4,79]], + [42,466,5,[4,15,51],[6,6,67]], + [42,467,5,[4,15,48],[4,15,22]], + [42,471,5,[4,15,45],[3,14,87]], + [42,473,5,[4,15,42],[7,4,111]], + [42,474,5,[4,15,41],[1,14,99]], + [42,475,5,[4,15,39],[6,4,93]], + [42,479,5,[4,15,38],[7,4,97]], + [42,481,5,[4,15,36],[1,15,60]], + [42,482,5,[4,15,33],[0,15,83]], + [42,483,5,[4,15,30],[0,15,14]], + [42,487,5,[4,15,27],[3,15,83]], + [42,489,5,[4,15,24],[6,4,14]], + [42,490,5,[4,15,21],[7,4,70]], + [42,491,5,[4,15,18],[2,14,54]], + [43,36,9,[6,4,79],[3,15,44]], + [43,67,9,[6,4,51],[0,14,5]], + [43,72,9,[6,4,46],[0,15,95]], + [43,77,9,[6,4,43],[1,14,55]], + [43,80,9,[6,4,40],[0,14,96]], + [43,174,9,[0,15,109],[3,15,29]], + [43,183,9,[0,15,100],[0,14,110]], + [43,189,9,[0,15,95],[1,15,34]], + [43,203,9,[0,15,82],[6,6,33]], + [43,209,9,[0,15,76],[3,14,5]], + [43,235,9,[0,15,62],[0,14,24]], + [43,292,9,[0,15,30],[6,6,45]], + [43,295,9,[0,15,27],[0,14,69]], + [43,383,5,[7,6,74],[1,14,7]], + [43,385,5,[6,4,28],[7,4,106]], + [43,386,5,[6,4,27],[6,4,40]], + [43,387,5,[6,4,26],[6,4,46]], + [43,391,5,[6,4,25],[0,15,109]], + [43,393,5,[6,4,24],[6,6,60]], + [43,394,5,[6,4,23],[7,6,41]], + [43,395,5,[6,4,22],[2,15,103]], + [43,399,5,[6,4,21],[4,15,81]], + [43,401,5,[6,4,20],[7,4,86]], + [43,402,5,[6,4,19],[3,14,52]], + [43,403,5,[6,4,18],[3,15,94]], + [43,415,5,[6,4,17],[1,14,27]], + [43,417,5,[6,4,16],[2,15,78]], + [43,418,5,[6,4,15],[6,4,100]], + [43,419,5,[6,4,14],[7,4,69]], + [43,423,5,[6,4,13],[6,6,22]], + [43,425,5,[6,4,12],[2,15,99]], + [43,426,5,[6,4,11],[4,14,85]], + [43,427,5,[6,4,10],[1,15,92]], + [43,431,5,[6,4,9],[7,4,29]], + [43,433,5,[6,4,8],[4,14,48]], + [43,434,5,[6,4,7],[7,6,93]], + [43,435,5,[6,4,6],[4,14,109]], + [43,447,5,[6,4,5],[2,15,50]], + [43,449,5,[6,4,4],[1,14,77]], + [43,450,5,[6,4,3],[2,15,11]], + [43,451,5,[6,4,2],[6,4,24]], + [43,455,5,[6,4,1],[2,14,22]], + [43,457,5,[6,4,0],[6,6,5]], + [43,458,5,[3,14,109],[1,15,43]], + [43,459,5,[3,14,62],[6,4,12]], + [43,463,5,[3,14,61],[1,15,63]], + [43,465,5,[3,14,60],[7,4,9]], + [43,466,5,[3,14,59],[2,14,70]], + [43,467,5,[3,14,58],[7,4,45]], + [43,471,5,[3,14,57],[1,14,60]], + [43,473,5,[3,14,56],[1,15,11]], + [43,474,5,[3,14,55],[2,15,32]], + [43,475,5,[3,14,54],[3,14,75]], + [43,479,5,[3,14,53],[1,15,65]], + [43,481,5,[3,14,52],[1,14,45]], + [43,482,5,[3,14,51],[1,15,95]], + [43,483,5,[3,14,50],[6,6,88]], + [43,487,5,[3,14,49],[7,4,56]], + [43,489,5,[3,14,48],[0,15,76]], + [43,490,5,[3,14,46],[4,14,32]], + [43,491,5,[1,15,63],[1,14,38]], + [44,45,9,[5,8,103],[0,15,62]], + [44,56,9,[3,14,63],[7,4,73]], + [44,92,9,[2,14,110],[2,15,82]], + [44,383,5,[6,6,46],[0,15,32]], + [44,385,5,[6,6,45],[0,14,3]], + [44,386,5,[6,6,44],[6,6,20]], + [44,387,5,[6,6,43],[7,6,7]], + [44,391,5,[6,6,42],[7,4,11]], + [44,393,5,[6,6,41],[3,15,11]], + [44,394,5,[6,6,40],[2,15,67]], + [44,395,5,[6,6,39],[0,15,20]], + [44,399,5,[6,6,38],[3,15,86]], + [44,401,5,[6,6,37],[2,14,79]], + [44,402,5,[6,6,36],[0,14,93]], + [44,403,5,[6,6,35],[0,15,5]], + [44,415,5,[6,6,34],[0,15,44]], + [44,417,5,[6,6,33],[7,6,99]], + [44,418,5,[6,6,32],[7,4,64]], + [44,419,5,[6,6,31],[1,14,98]], + [44,423,5,[6,6,30],[1,14,19]], + [44,425,5,[6,6,29],[6,6,4]], + [44,426,5,[6,6,28],[1,15,88]], + [44,427,5,[6,6,27],[6,4,101]], + [44,431,5,[6,6,26],[7,6,61]], + [44,433,5,[6,6,25],[0,15,51]], + [44,434,5,[6,6,24],[3,14,33]], + [44,435,5,[6,6,23],[1,14,42]], + [44,447,5,[6,6,22],[7,6,21]], + [44,449,5,[6,6,21],[6,6,19]], + [44,450,5,[6,6,20],[0,15,42]], + [44,451,5,[6,6,19],[7,6,22]], + [44,455,5,[6,6,18],[6,6,43]], + [44,457,5,[6,6,17],[6,6,23]], + [44,458,5,[6,6,16],[0,14,19]], + [44,459,5,[6,6,15],[3,14,41]], + [44,463,5,[6,6,14],[1,15,83]], + [44,465,5,[6,6,13],[0,14,101]], + [44,466,5,[6,6,12],[1,15,35]], + [44,467,5,[6,6,11],[6,4,43]], + [44,471,5,[6,6,10],[6,6,81]], + [44,473,5,[6,6,9],[7,4,81]], + [44,474,5,[6,6,8],[2,14,90]], + [44,475,5,[6,6,7],[3,15,100]], + [44,479,5,[6,6,6],[0,15,104]], + [44,481,5,[6,6,5],[1,15,105]], + [44,482,5,[6,6,4],[1,15,94]], + [44,483,5,[6,6,3],[4,15,75]], + [44,487,5,[6,6,2],[2,15,39]], + [44,489,5,[6,6,1],[1,14,37]], + [44,490,5,[6,6,0],[3,15,65]], + [44,491,5,[1,15,64],[3,15,24]], + [45,30,9,[6,6,111],[1,14,86]], + [45,48,9,[6,6,94],[1,15,101]], + [45,50,9,[6,6,92],[3,15,12]], + [45,52,9,[6,6,90],[7,4,58]], + [45,53,9,[6,6,89],[7,6,56]], + [45,56,9,[6,6,86],[7,4,103]], + [45,59,9,[6,6,85],[4,15,39]], + [45,71,9,[6,6,73],[1,15,6]], + [45,85,9,[6,6,61],[1,15,4]], + [45,98,9,[6,6,50],[2,15,89]], + [45,100,9,[6,6,48],[2,15,41]], + [45,103,9,[6,6,45],[6,4,32]], + [45,104,9,[6,6,44],[1,14,104]], + [45,109,9,[6,6,41],[1,15,49]], + [45,115,9,[6,6,35],[3,15,61]], + [45,117,9,[6,6,33],[3,14,73]], + [45,118,9,[6,6,32],[1,14,73]], + [45,119,9,[6,6,31],[3,14,70]], + [45,123,9,[6,6,29],[7,6,64]], + [45,126,9,[6,6,26],[6,6,24]], + [45,127,9,[6,6,25],[1,15,102]], + [45,128,9,[6,6,24],[7,4,30]], + [45,140,9,[6,6,14],[6,4,18]], + [45,146,9,[6,6,8],[1,14,51]], + [45,152,9,[6,6,2],[7,6,90]], + [45,295,9,[1,14,73],[2,14,54]], + [45,325,9,[1,14,65],[6,4,96]], + [45,356,9,[1,14,51],[4,15,74]], + [45,357,9,[1,14,50],[6,4,47]], + [45,383,5,[4,14,102],[6,6,2]], + [45,385,5,[1,14,80],[3,14,101]], + [45,386,5,[1,14,46],[2,15,86]], + [45,387,5,[1,14,45],[4,14,99]], + [45,391,5,[1,14,44],[7,6,86]], + [45,393,5,[1,14,43],[3,15,32]], + [45,394,5,[1,14,42],[6,6,32]], + [45,395,5,[1,14,41],[4,14,75]], + [45,399,5,[1,14,40],[3,15,67]], + [45,401,5,[1,14,39],[7,4,90]], + [45,402,5,[1,14,38],[4,14,87]], + [45,403,5,[1,14,37],[4,15,59]], + [45,415,5,[1,14,36],[1,14,65]], + [45,417,5,[1,14,35],[6,6,31]], + [45,418,5,[1,14,34],[6,4,53]], + [45,419,5,[1,14,33],[7,6,85]], + [45,423,5,[1,14,32],[2,14,59]], + [45,425,5,[1,14,31],[7,6,102]], + [45,426,5,[1,14,30],[6,4,29]], + [45,427,5,[1,14,29],[6,6,29]], + [45,431,5,[1,14,28],[7,6,72]], + [45,433,5,[1,14,27],[3,14,97]], + [45,434,5,[1,14,26],[6,4,2]], + [45,435,5,[1,14,25],[1,14,87]], + [45,447,5,[1,14,24],[2,15,36]], + [45,449,5,[1,14,23],[6,6,111]], + [45,450,5,[1,14,22],[4,15,43]], + [45,451,5,[1,14,21],[6,4,39]], + [45,455,5,[1,14,20],[6,4,54]], + [45,457,5,[1,14,19],[6,4,65]], + [45,458,5,[1,14,18],[6,6,44]], + [45,459,5,[1,14,17],[4,14,58]], + [45,463,5,[1,14,16],[3,15,78]], + [45,465,5,[1,14,15],[2,14,92]], + [45,466,5,[1,14,14],[1,14,82]], + [45,467,5,[1,14,13],[1,14,29]], + [45,471,5,[1,14,12],[4,15,88]], + [45,473,5,[1,14,11],[6,6,45]], + [45,474,5,[1,14,10],[6,6,73]], + [45,475,5,[1,14,9],[1,15,57]], + [45,479,5,[1,14,8],[3,15,33]], + [45,481,5,[1,14,7],[7,6,65]], + [45,482,5,[1,14,6],[3,15,18]], + [45,483,5,[1,14,5],[2,15,14]], + [45,487,5,[1,14,4],[7,6,59]], + [45,489,5,[1,14,3],[7,6,10]], + [45,490,5,[1,14,2],[4,14,37]], + [45,491,5,[1,14,1],[1,15,104]], + [46,55,9,[7,6,100],[1,14,20]], + [46,62,9,[7,6,91],[2,15,104]], + [46,65,9,[7,6,79],[2,15,76]], + [46,71,9,[7,6,55],[7,4,32]], + [46,174,9,[1,15,111],[2,15,99]], + [46,177,9,[1,15,107],[4,15,92]], + [46,182,9,[1,15,102],[1,14,35]], + [46,183,9,[1,15,101],[7,6,17]], + [46,189,9,[1,15,96],[7,4,15]], + [46,215,9,[1,15,71],[1,15,45]], + [46,216,9,[1,15,70],[3,15,104]], + [46,217,9,[1,15,69],[1,14,8]], + [46,223,9,[1,15,64],[1,14,27]], + [46,235,9,[1,15,63],[4,15,53]], + [46,236,9,[1,15,62],[1,14,65]], + [46,237,9,[1,15,61],[2,14,49]], + [46,239,9,[1,15,59],[1,14,12]], + [46,248,9,[1,15,52],[1,14,24]], + [46,250,9,[1,15,50],[2,14,65]], + [46,251,9,[1,15,49],[2,15,58]], + [46,262,9,[1,15,45],[1,14,11]], + [46,281,9,[1,15,38],[3,15,42]], + [46,287,9,[1,15,32],[1,14,4]], + [46,294,9,[1,15,29],[5,8,103]], + [46,313,9,[1,15,22],[7,6,100]], + [46,340,9,[1,15,13],[7,6,108]], + [46,342,9,[1,15,12],[7,6,4]], + [46,355,9,[1,15,7],[7,6,68]], + [46,365,9,[1,15,3],[3,14,37]], + [46,367,9,[1,15,1],[4,15,34]], + [46,383,5,[7,6,3],[1,14,103]], + [46,385,5,[4,14,101],[1,15,50]], + [46,386,5,[4,14,100],[1,15,102]], + [46,387,5,[4,14,99],[1,15,96]], + [46,391,5,[4,14,98],[2,15,34]], + [46,393,5,[4,14,97],[1,15,61]], + [46,394,5,[4,14,96],[2,15,13]], + [46,395,5,[4,14,95],[2,14,27]], + [46,399,5,[4,14,94],[1,15,71]], + [46,401,5,[4,14,93],[2,14,102]], + [46,402,5,[4,14,92],[4,14,8]], + [46,403,5,[4,14,91],[3,15,85]], + [46,415,5,[4,14,90],[4,15,74]], + [46,417,5,[4,14,89],[1,15,70]], + [46,418,5,[4,14,88],[7,6,3]], + [46,419,5,[4,14,87],[1,15,32]], + [46,423,5,[4,14,86],[1,14,49]], + [46,425,5,[4,14,85],[7,4,1]], + [46,426,5,[4,14,84],[3,15,60]], + [46,427,5,[4,14,83],[1,14,89]], + [46,431,5,[4,14,82],[3,15,66]], + [46,433,5,[4,14,81],[3,14,11]], + [46,434,5,[4,14,80],[1,15,107]], + [46,435,5,[4,14,79],[7,6,39]], + [46,447,5,[4,14,78],[2,14,3]], + [46,449,5,[4,14,77],[4,15,0]], + [46,450,5,[4,14,76],[1,15,22]], + [46,451,5,[4,14,75],[2,15,7]], + [46,455,5,[4,14,74],[7,4,65]], + [46,457,5,[4,14,73],[1,14,111]], + [46,458,5,[4,14,72],[3,15,0]], + [46,459,5,[4,14,71],[1,15,3]], + [46,463,5,[4,14,70],[7,6,91]], + [46,465,5,[4,14,69],[1,15,52]], + [46,466,5,[4,14,68],[1,14,71]], + [46,467,5,[4,14,67],[2,15,75]], + [46,471,5,[4,14,66],[2,15,56]], + [46,473,5,[4,14,65],[1,14,30]], + [46,474,5,[4,14,64],[1,15,111]], + [46,475,5,[4,14,63],[2,14,50]], + [46,479,5,[4,14,62],[7,4,26]], + [46,481,5,[4,14,61],[2,15,21]], + [46,482,5,[4,14,60],[2,14,12]], + [46,483,5,[4,14,54],[3,14,88]], + [46,487,5,[4,14,53],[2,15,51]], + [46,489,5,[4,14,52],[7,6,79]], + [46,490,5,[4,14,51],[1,14,85]], + [46,491,5,[4,14,48],[4,14,35]], + [47,9,9,[7,6,99],[2,15,74]], + [47,11,9,[7,6,91],[2,15,24]], + [47,12,9,[7,6,90],[1,14,106]], + [47,17,9,[7,6,83],[5,14,83]], + [47,24,9,[7,6,53],[7,6,28]], + [47,31,9,[7,6,45],[1,15,3]], + [47,33,9,[7,6,43],[7,4,25]], + [47,41,9,[7,6,32],[1,14,15]], + [47,44,9,[7,6,29],[1,15,39]], + [47,45,9,[7,6,28],[7,4,53]], + [47,47,9,[7,6,25],[3,15,11]], + [47,51,9,[7,6,19],[1,15,99]], + [47,52,9,[7,6,17],[2,14,2]], + [47,56,9,[7,6,11],[1,14,51]], + [47,61,9,[7,6,8],[1,14,16]], + [47,64,9,[7,6,4],[5,15,5]], + [47,87,9,[5,8,95],[2,13,36]], + [47,91,9,[4,14,111],[5,14,39]], + [47,92,9,[4,14,110],[7,6,17]], + [47,94,9,[4,14,108],[5,15,88]], + [47,107,9,[2,15,104],[7,6,107]], + [47,108,9,[2,15,103],[7,6,73]], + [47,120,9,[2,15,82],[3,14,85]], + [47,123,9,[2,15,81],[1,15,63]], + [47,126,9,[2,15,76],[3,15,88]], + [47,151,9,[2,15,22],[5,15,16]], + [47,155,9,[2,15,19],[2,14,41]], + [47,156,9,[2,15,18],[7,6,48]], + [47,161,9,[2,15,12],[3,15,33]], + [47,167,9,[2,15,4],[7,4,23]], + [47,383,5,[2,15,102],[3,15,77]], + [47,385,5,[2,15,99],[7,4,63]], + [47,386,5,[2,15,98],[5,14,95]], + [47,387,5,[2,15,96],[3,15,27]], + [47,391,5,[2,15,95],[5,14,82]], + [47,393,5,[2,15,93],[3,14,91]], + [47,394,5,[2,15,92],[1,14,86]], + [47,395,5,[2,15,86],[4,15,62]], + [47,399,5,[2,15,84],[4,15,23]], + [47,401,5,[2,15,80],[4,15,27]], + [47,402,5,[2,15,78],[2,14,35]], + [47,403,5,[2,15,74],[2,14,78]], + [47,415,5,[2,15,70],[5,14,50]], + [47,417,5,[2,15,68],[7,6,53]], + [47,418,5,[2,15,65],[7,6,11]], + [47,419,5,[2,15,64],[2,15,81]], + [47,423,5,[2,15,62],[3,15,95]], + [47,425,5,[2,15,60],[5,14,30]], + [47,426,5,[2,15,59],[7,4,93]], + [47,427,5,[2,15,58],[1,14,28]], + [47,431,5,[2,15,56],[3,15,3]], + [47,434,5,[2,15,54],[7,6,30]], + [47,435,5,[2,15,53],[4,15,24]], + [47,443,4,[1,14,111],[2,15,20]], + [47,447,5,[2,15,52],[4,14,34]], + [47,449,5,[2,15,51],[1,14,88]], + [47,450,5,[2,15,50],[3,14,94]], + [47,451,5,[2,15,49],[2,14,61]], + [47,455,5,[2,15,48],[3,15,29]], + [47,457,5,[2,15,47],[2,14,106]], + [47,458,5,[2,15,44],[3,15,39]], + [47,459,5,[2,15,42],[7,6,32]], + [47,463,5,[2,15,41],[4,14,110]], + [47,465,5,[2,15,38],[7,6,58]], + [47,466,5,[2,15,36],[2,15,12]], + [47,467,5,[2,15,35],[1,15,106]], + [47,471,5,[2,15,32],[2,14,77]], + [47,473,5,[2,15,30],[2,14,18]], + [47,474,5,[2,15,29],[2,14,71]], + [47,475,5,[2,15,26],[3,14,83]], + [47,479,5,[2,15,24],[1,15,30]], + [47,481,5,[2,15,23],[4,15,9]], + [47,482,5,[2,15,20],[4,14,49]], + [47,483,5,[2,15,14],[7,4,101]], + [47,487,5,[2,15,11],[2,14,85]], + [47,489,5,[2,15,8],[3,15,84]], + [47,490,5,[2,15,1],[5,14,61]], + [47,491,5,[2,14,49],[4,15,31]], + [48,3,9,[5,14,103],[1,14,6]], + [48,17,9,[5,14,83],[7,4,108]], + [48,29,9,[5,14,71],[7,6,60]], + [48,33,9,[5,14,66],[1,15,49]], + [48,53,9,[5,14,43],[3,14,97]], + [48,55,9,[5,14,41],[5,14,26]], + [48,71,9,[5,14,27],[5,14,0]], + [48,72,9,[5,14,26],[4,15,38]], + [48,75,9,[5,14,25],[5,15,108]], + [48,86,9,[5,14,6],[7,4,104]], + [48,115,9,[4,15,111],[5,14,22]], + [48,126,9,[4,15,98],[4,15,37]], + [48,143,9,[4,15,80],[1,14,31]], + [48,144,9,[4,15,78],[3,14,22]], + [48,145,9,[4,15,77],[4,15,97]], + [48,162,9,[4,15,45],[3,14,0]], + [48,166,9,[4,15,38],[2,15,84]], + [48,168,9,[4,15,34],[5,15,43]], + [48,176,9,[4,15,27],[7,6,84]], + [48,178,9,[4,15,24],[4,14,18]], + [48,189,9,[4,15,14],[2,15,78]], + [48,192,9,[4,15,11],[7,4,12]], + [48,196,9,[4,15,7],[1,15,97]], + [48,383,5,[7,6,100],[1,14,43]], + [48,385,5,[7,6,99],[1,14,5]], + [48,386,5,[7,6,98],[7,4,99]], + [48,387,5,[7,6,97],[7,4,22]], + [48,391,5,[7,6,96],[2,15,101]], + [48,393,5,[7,6,95],[2,15,48]], + [48,394,5,[7,6,94],[3,15,68]], + [48,395,5,[7,6,93],[4,14,4]], + [48,399,5,[7,6,92],[4,14,53]], + [48,401,5,[7,6,91],[5,14,41]], + [48,402,5,[7,6,90],[3,15,53]], + [48,403,5,[7,6,14],[2,14,28]], + [48,415,5,[7,6,13],[5,14,25]], + [48,417,5,[7,6,12],[7,4,85]], + [48,418,5,[7,6,11],[7,4,7]], + [48,419,5,[7,4,65],[3,14,98]], + [48,423,5,[4,15,103],[2,14,87]], + [48,425,5,[4,15,101],[1,15,53]], + [48,426,5,[4,15,99],[1,14,70]], + [48,427,5,[4,15,97],[5,15,52]], + [48,431,5,[4,15,86],[4,15,7]], + [48,433,5,[4,15,85],[1,14,36]], + [48,434,5,[4,15,79],[1,15,47]], + [48,435,5,[4,15,76],[2,15,61]], + [48,447,5,[4,15,74],[3,14,89]], + [48,449,5,[4,15,73],[5,15,65]], + [48,450,5,[4,15,70],[1,15,77]], + [48,451,5,[4,15,67],[7,4,13]], + [48,455,5,[4,15,64],[2,15,26]], + [48,457,5,[4,15,63],[3,14,55]], + [48,458,5,[4,15,61],[5,15,70]], + [48,459,5,[4,15,60],[5,14,43]], + [48,463,5,[4,15,58],[3,14,70]], + [48,465,5,[4,15,57],[1,15,24]], + [48,466,5,[4,15,55],[1,14,84]], + [48,467,5,[4,15,54],[2,14,47]], + [48,471,5,[4,15,52],[1,14,24]], + [48,473,5,[4,15,50],[2,15,85]], + [48,474,5,[4,15,49],[3,15,79]], + [48,475,5,[4,15,46],[7,6,94]], + [48,479,5,[4,15,44],[4,14,94]], + [48,481,5,[4,15,43],[3,14,38]], + [48,482,5,[4,15,40],[3,15,110]], + [48,483,5,[4,15,35],[4,14,14]], + [48,487,5,[4,15,29],[2,15,95]], + [48,489,5,[4,15,26],[3,15,96]], + [48,490,5,[4,15,0],[7,4,31]], + [48,491,5,[2,14,50],[3,15,64]], + [49,2,9,[7,4,72],[7,6,59]], + [49,21,9,[7,4,54],[1,14,109]], + [49,32,9,[7,4,44],[3,15,62]], + [49,39,9,[7,4,37],[1,14,20]], + [49,45,9,[7,4,32],[4,15,43]], + [49,77,9,[7,4,4],[1,15,84]], + [49,162,9,[3,15,109],[4,14,50]], + [49,163,9,[3,15,108],[4,14,5]], + [49,166,9,[3,15,101],[3,15,22]], + [49,176,9,[3,15,79],[2,14,19]], + [49,180,9,[3,15,74],[1,14,89]], + [49,185,9,[3,15,68],[2,14,38]], + [49,188,9,[3,15,62],[4,14,60]], + [49,190,9,[3,15,56],[4,14,57]], + [49,191,9,[3,15,50],[1,15,58]], + [49,237,9,[1,15,108],[2,14,24]], + [49,240,9,[1,15,105],[1,14,13]], + [49,248,9,[1,15,99],[7,4,37]], + [49,262,9,[1,15,92],[7,6,87]], + [49,282,9,[1,15,84],[1,14,27]], + [49,284,9,[1,15,82],[2,15,52]], + [49,324,9,[1,15,68],[1,14,62]], + [49,348,9,[1,15,58],[7,6,12]], + [49,356,9,[1,15,53],[1,14,28]], + [49,366,9,[1,15,49],[5,15,24]], + [49,383,5,[1,15,47],[1,15,99]], + [49,385,5,[1,15,46],[1,15,6]], + [49,386,5,[1,15,45],[5,14,21]], + [49,387,5,[1,15,44],[2,15,98]], + [49,391,5,[1,15,43],[2,15,9]], + [49,393,5,[1,15,42],[5,14,111]], + [49,394,5,[1,15,41],[2,15,15]], + [49,395,5,[1,15,40],[7,6,14]], + [49,399,5,[1,15,39],[5,14,58]], + [49,401,5,[1,15,38],[2,14,43]], + [49,402,5,[1,15,37],[3,15,109]], + [49,403,5,[1,15,36],[5,15,29]], + [49,415,5,[1,15,35],[7,6,90]], + [49,417,5,[1,15,34],[2,15,62]], + [49,418,5,[1,15,33],[1,15,68]], + [49,419,5,[1,15,32],[3,15,98]], + [49,425,5,[1,15,30],[1,14,94]], + [49,426,5,[1,15,29],[4,15,82]], + [49,427,5,[1,15,28],[3,15,56]], + [49,431,5,[1,15,27],[4,15,110]], + [49,433,5,[1,15,26],[2,14,105]], + [49,434,5,[1,15,25],[7,4,98]], + [49,435,5,[1,15,24],[7,6,1]], + [49,447,5,[1,15,23],[3,15,74]], + [49,449,5,[1,15,22],[5,15,90]], + [49,450,5,[1,15,21],[4,14,31]], + [49,451,5,[1,15,20],[5,15,94]], + [49,455,5,[1,15,19],[5,15,50]], + [49,458,5,[1,15,17],[1,14,1]], + [49,459,5,[1,15,16],[7,4,109]], + [49,463,5,[1,15,15],[1,14,104]], + [49,465,5,[1,15,14],[7,4,4]], + [49,466,5,[1,15,13],[4,14,43]], + [49,467,5,[1,15,12],[2,14,68]], + [49,471,5,[1,15,11],[7,4,104]], + [49,473,5,[1,15,10],[2,14,15]], + [49,474,5,[1,15,9],[5,15,73]], + [49,475,5,[1,15,8],[7,6,104]], + [49,479,5,[1,15,7],[3,15,50]], + [49,481,5,[1,15,6],[1,15,25]], + [49,482,5,[1,15,5],[3,14,29]], + [49,483,5,[1,15,4],[4,15,93]], + [49,487,5,[1,15,3],[7,4,83]], + [49,489,5,[1,15,2],[1,15,49]], + [49,490,5,[1,15,1],[2,15,108]], + [49,491,5,[1,15,0],[4,15,11]], + [50,0,9,[4,15,101],[3,14,33]], + [50,7,9,[3,15,105],[2,14,13]], + [50,8,9,[3,15,104],[2,15,50]], + [50,10,4,[1,14,109],[4,14,64]], + [50,25,9,[3,15,88],[4,15,29]], + [50,26,4,[1,14,108],[1,14,96]], + [50,32,9,[3,15,82],[3,15,72]], + [50,35,9,[3,15,79],[3,14,23]], + [50,38,9,[3,15,76],[1,15,64]], + [50,39,9,[3,15,75],[1,15,12]], + [50,42,4,[1,14,107],[3,14,59]], + [50,43,9,[3,15,72],[7,6,63]], + [50,50,9,[3,15,65],[4,14,67]], + [50,57,4,[1,14,106],[2,15,87]], + [50,58,4,[1,14,105],[2,15,63]], + [50,72,9,[3,15,45],[7,6,81]], + [50,73,4,[1,14,104],[7,4,80]], + [50,74,4,[1,14,103],[7,4,71]], + [50,75,9,[3,15,44],[7,6,0]], + [50,81,9,[3,15,38],[2,14,35]], + [50,83,9,[3,15,36],[1,14,85]], + [50,89,4,[1,14,102],[7,4,84]], + [50,90,4,[1,14,101],[4,14,97]], + [50,98,9,[3,15,22],[7,6,49]], + [50,104,9,[3,15,16],[1,15,54]], + [50,105,4,[1,14,100],[5,14,16]], + [50,106,4,[1,14,99],[2,13,79]], + [50,108,9,[3,15,14],[4,15,8]], + [50,110,9,[3,15,12],[3,14,86]], + [50,111,9,[3,15,11],[1,14,108]], + [50,115,9,[3,15,7],[3,14,13]], + [50,121,4,[1,14,98],[7,6,83]], + [50,122,4,[1,14,97],[4,15,57]], + [50,137,4,[1,14,96],[7,6,55]], + [50,138,4,[1,14,95],[1,15,42]], + [50,153,4,[1,14,94],[1,15,39]], + [50,169,4,[1,14,92],[3,15,7]], + [50,170,4,[1,14,91],[7,4,6]], + [50,186,4,[1,14,90],[1,14,63]], + [50,202,4,[1,14,89],[3,15,36]], + [50,218,4,[1,14,88],[2,14,56]], + [50,383,5,[7,6,75],[1,14,61]], + [50,385,5,[7,6,10],[2,15,91]], + [50,386,5,[7,6,9],[5,15,71]], + [50,387,5,[7,6,8],[2,14,84]], + [50,391,5,[7,6,7],[1,14,92]], + [50,393,5,[7,6,6],[7,6,18]], + [50,394,5,[7,6,5],[3,15,14]], + [50,395,5,[7,6,4],[7,4,20]], + [50,399,5,[7,6,2],[2,15,33]], + [50,401,5,[7,6,1],[5,15,58]], + [50,402,5,[7,6,0],[2,15,94]], + [50,403,5,[5,15,85],[2,14,20]], + [50,407,4,[1,14,87],[5,14,11]], + [50,409,4,[1,14,86],[2,15,59]], + [50,410,4,[1,14,85],[7,4,33]], + [50,411,4,[1,14,84],[4,14,3]], + [50,415,5,[5,15,83],[5,15,1]], + [50,417,5,[5,15,82],[4,14,27]], + [50,418,5,[5,15,81],[7,6,47]], + [50,419,5,[5,15,80],[1,15,72]], + [50,423,5,[5,15,79],[3,14,28]], + [50,425,5,[5,15,78],[3,14,109]], + [50,426,5,[5,15,77],[1,15,93]], + [50,427,5,[5,15,76],[5,14,101]], + [50,431,5,[5,15,75],[3,15,38]], + [50,434,5,[5,15,73],[7,4,41]], + [50,435,5,[5,15,71],[1,14,10]], + [50,439,4,[1,14,83],[2,14,53]], + [50,441,4,[1,14,82],[2,14,64]], + [50,442,4,[1,14,81],[1,15,90]], + [50,447,5,[5,15,70],[1,14,9]], + [50,449,5,[5,15,69],[3,14,19]], + [50,450,5,[5,15,68],[1,15,45]], + [50,451,5,[5,15,67],[5,15,39]], + [50,455,5,[5,15,66],[7,4,92]], + [50,456,8,[1,12,43],[5,8,95]], + [50,457,5,[5,15,65],[3,14,50]], + [50,458,5,[5,15,64],[4,14,71]], + [50,459,5,[5,15,63],[1,14,64]], + [50,463,5,[5,15,62],[1,14,62]], + [50,465,5,[5,15,61],[2,15,46]], + [50,466,5,[5,15,60],[5,15,99]], + [50,467,5,[5,15,58],[3,14,76]], + [50,471,5,[5,15,57],[3,15,105]], + [50,473,5,[5,15,56],[4,15,45]], + [50,474,5,[5,15,55],[7,4,61]], + [50,475,5,[5,15,54],[2,14,36]], + [50,479,5,[5,15,53],[3,15,76]], + [50,481,5,[5,15,52],[7,6,68]], + [50,482,5,[5,15,51],[3,14,82]], + [50,483,5,[5,15,50],[7,6,92]], + [50,487,5,[5,15,49],[4,15,19]], + [50,490,5,[4,14,49],[1,14,39]], + [50,491,5,[1,14,0],[2,15,47]], + [51,4,9,[7,6,75],[3,14,35]], + [51,6,9,[7,6,73],[2,15,42]], + [51,7,9,[7,6,72],[3,15,99]], + [51,8,9,[7,6,71],[3,14,106]], + [51,10,4,[7,6,111],[2,15,68]], + [51,16,9,[7,6,64],[5,14,29]], + [51,17,9,[7,6,63],[2,15,86]], + [51,24,9,[7,6,56],[3,14,91]], + [51,29,9,[7,6,52],[7,4,97]], + [51,34,9,[7,6,47],[7,6,52]], + [51,39,9,[7,6,42],[7,6,47]], + [51,42,4,[7,6,109],[7,4,46]], + [51,48,9,[7,6,34],[7,4,82]], + [51,57,4,[7,6,108],[2,15,29]], + [51,58,4,[7,6,107],[4,15,102]], + [51,61,9,[7,6,23],[4,14,22]], + [51,71,9,[7,6,13],[7,4,85]], + [51,72,9,[7,6,12],[7,4,69]], + [51,73,4,[7,6,106],[5,15,100]], + [51,74,4,[7,6,105],[3,14,60]], + [51,85,9,[7,6,1],[3,15,72]], + [51,89,4,[7,6,104],[5,15,68]], + [51,90,4,[7,6,103],[5,15,37]], + [51,105,4,[7,6,102],[7,6,42]], + [51,106,4,[7,6,101],[4,15,104]], + [51,149,9,[2,14,101],[3,14,64]], + [51,151,9,[2,14,99],[3,14,52]], + [51,177,9,[2,14,77],[3,14,78]], + [51,178,9,[2,14,76],[5,15,80]], + [51,188,9,[2,14,67],[2,15,32]], + [51,199,9,[2,14,56],[2,15,5]], + [51,201,9,[2,14,54],[3,15,83]], + [51,214,9,[2,14,42],[5,15,76]], + [51,216,9,[2,14,40],[5,15,33]], + [51,219,9,[2,14,38],[4,15,19]], + [51,285,9,[2,14,4],[7,4,28]], + [51,383,5,[7,4,46],[7,6,71]], + [51,385,5,[7,4,45],[4,15,26]], + [51,386,5,[7,4,44],[7,4,23]], + [51,387,5,[7,4,43],[7,4,24]], + [51,391,5,[7,4,42],[5,14,12]], + [51,393,5,[7,4,41],[7,4,108]], + [51,394,5,[7,4,40],[2,15,106]], + [51,395,5,[7,4,39],[4,15,71]], + [51,401,5,[7,4,37],[3,14,16]], + [51,402,5,[7,4,36],[3,14,40]], + [51,415,5,[7,4,34],[4,15,37]], + [51,417,5,[7,4,33],[5,14,27]], + [51,418,5,[7,4,32],[2,15,3]], + [51,419,5,[7,4,31],[2,15,37]], + [51,423,5,[7,4,30],[7,4,25]], + [51,425,5,[7,4,29],[7,4,77]], + [51,426,5,[7,4,28],[7,4,34]], + [51,427,5,[7,4,27],[3,15,45]], + [51,431,5,[7,4,26],[4,15,36]], + [51,433,5,[7,4,25],[5,14,40]], + [51,434,5,[7,4,24],[4,14,13]], + [51,435,5,[7,4,23],[5,15,85]], + [51,447,5,[7,4,22],[3,15,108]], + [51,449,5,[7,4,21],[3,14,20]], + [51,450,5,[7,4,20],[4,14,10]], + [51,451,5,[7,4,19],[7,4,48]], + [51,455,5,[7,4,18],[3,14,85]], + [51,457,5,[7,4,17],[5,14,24]], + [51,458,5,[7,4,16],[2,15,52]], + [51,459,5,[7,4,15],[7,6,63]], + [51,463,5,[7,4,14],[3,14,108]], + [51,465,5,[7,4,13],[7,6,88]], + [51,466,5,[7,4,12],[3,15,89]], + [51,467,5,[7,4,11],[5,14,81]], + [51,471,5,[7,4,10],[2,14,42]], + [51,473,5,[7,4,9],[4,14,21]], + [51,474,5,[7,4,8],[7,6,13]], + [51,475,5,[7,4,7],[7,6,34]], + [51,479,5,[7,4,6],[4,15,1]], + [51,481,5,[7,4,5],[4,15,55]], + [51,482,5,[7,4,4],[7,6,56]], + [51,483,5,[7,4,3],[3,14,1]], + [51,487,5,[7,4,2],[3,15,6]], + [51,489,5,[7,4,1],[2,15,97]], + [51,490,5,[7,4,0],[3,14,111]], + [51,491,5,[5,15,72],[5,14,54]], + [52,98,9,[4,14,102],[5,14,9]], + [52,108,9,[4,14,94],[3,15,57]], + [52,113,9,[4,14,89],[5,15,49]], + [52,134,9,[4,14,70],[5,15,29]], + [52,139,9,[4,14,67],[4,15,67]], + [52,140,9,[4,14,66],[2,15,54]], + [52,144,9,[4,14,62],[4,15,62]], + [52,148,9,[4,14,58],[4,15,52]], + [52,174,9,[4,14,36],[3,14,29]], + [52,189,9,[4,14,22],[4,15,11]], + [52,190,9,[4,14,21],[3,14,95]], + [52,211,9,[4,14,1],[4,15,101]], + [52,383,5,[5,15,111],[5,15,0]], + [52,385,5,[5,15,110],[4,15,18]], + [52,386,5,[5,15,109],[2,14,110]], + [52,387,5,[5,15,108],[2,15,18]], + [52,391,5,[5,15,107],[4,15,40]], + [52,393,5,[5,15,106],[3,14,79]], + [52,394,5,[5,15,105],[2,14,62]], + [52,395,5,[5,15,104],[2,14,76]], + [52,399,5,[5,15,103],[3,14,68]], + [52,401,5,[5,15,102],[3,15,73]], + [52,402,5,[5,15,101],[2,15,93]], + [52,403,5,[5,15,100],[3,15,90]], + [52,415,5,[5,15,99],[2,14,0]], + [52,417,5,[5,15,98],[2,14,21]], + [52,418,5,[5,15,97],[5,14,52]], + [52,419,5,[5,15,96],[4,15,95]], + [52,425,5,[5,15,94],[4,14,89]], + [52,426,5,[5,15,93],[4,15,92]], + [52,427,5,[5,15,92],[3,15,34]], + [52,431,5,[5,15,91],[3,15,107]], + [52,433,5,[5,15,90],[2,15,60]], + [52,434,5,[5,15,89],[2,14,55]], + [52,435,5,[5,15,88],[5,14,63]], + [52,449,5,[5,15,86],[3,14,105]], + [52,450,5,[5,15,84],[5,15,91]], + [52,451,5,[5,15,47],[2,14,49]], + [52,455,5,[5,15,46],[4,14,62]], + [52,457,5,[5,15,45],[3,14,61]], + [52,458,5,[5,15,44],[2,14,1]], + [52,459,5,[5,15,43],[4,14,66]], + [52,463,5,[5,15,42],[4,15,98]], + [52,465,5,[5,15,41],[4,15,10]], + [52,466,5,[5,15,40],[2,15,16]], + [52,467,5,[5,15,39],[2,15,57]], + [52,471,5,[5,15,38],[2,15,53]], + [52,473,5,[5,15,37],[5,14,39]], + [52,474,5,[5,15,36],[3,14,12]], + [52,475,5,[5,15,35],[2,14,41]], + [52,479,5,[5,15,34],[2,15,0]], + [52,481,5,[5,15,33],[2,15,69]], + [52,482,5,[5,15,32],[4,15,77]], + [52,483,5,[5,15,31],[2,15,110]], + [52,487,5,[5,15,30],[4,15,34]], + [52,489,5,[5,15,29],[3,15,69]], + [52,490,5,[5,15,28],[4,15,42]], + [52,491,5,[5,15,27],[2,15,6]], + [53,43,9,[5,15,76],[3,15,45]], + [53,51,9,[5,15,59],[3,15,68]], + [53,52,9,[5,15,58],[4,15,7]], + [53,55,9,[5,15,24],[2,14,11]], + [53,61,9,[5,15,20],[3,15,90]], + [53,70,9,[5,15,11],[4,15,66]], + [53,77,9,[5,15,6],[2,14,77]], + [53,80,9,[5,15,3],[2,14,92]], + [53,88,9,[4,14,107],[3,15,82]], + [53,93,9,[4,14,104],[4,14,62]], + [53,100,9,[3,14,61],[4,14,47]], + [53,111,9,[3,14,52],[6,15,107]], + [53,114,9,[3,14,49],[4,15,9]], + [53,115,9,[3,14,48],[3,15,13]], + [53,124,9,[3,14,39],[5,15,37]], + [53,126,9,[3,14,37],[2,14,33]], + [53,128,9,[3,14,35],[3,15,56]], + [53,130,9,[3,14,33],[5,15,55]], + [53,133,9,[3,14,30],[2,14,101]], + [53,140,9,[3,14,25],[5,15,3]], + [53,143,9,[3,14,22],[3,15,43]], + [53,160,9,[3,14,7],[3,14,25]], + [53,162,9,[3,14,5],[4,15,65]], + [53,167,9,[3,14,0],[3,15,74]], + [53,171,9,[2,15,111],[5,15,27]], + [53,188,9,[2,15,95],[2,14,85]], + [53,193,9,[2,15,90],[5,14,16]], + [53,194,9,[2,15,89],[4,15,64]], + [53,197,9,[2,15,86],[3,14,102]], + [53,205,9,[2,15,79],[5,14,38]], + [53,206,9,[2,15,78],[3,14,30]], + [53,209,9,[2,15,75],[2,14,75]], + [53,235,9,[2,15,61],[2,15,79]], + [53,237,9,[2,15,59],[4,14,21]], + [53,242,9,[2,15,54],[2,14,99]], + [53,262,9,[2,15,43],[2,14,54]], + [53,285,9,[2,15,32],[3,15,6]], + [53,287,9,[2,15,30],[6,14,23]], + [53,342,9,[2,15,10],[5,14,10]], + [53,383,5,[3,14,111],[5,14,33]], + [53,385,5,[3,14,108],[3,14,107]], + [53,386,5,[3,14,107],[2,14,93]], + [53,387,5,[3,14,106],[6,15,21]], + [53,391,5,[3,14,105],[2,15,43]], + [53,393,5,[3,14,104],[3,14,90]], + [53,394,5,[3,14,103],[2,14,69]], + [53,395,5,[3,14,102],[6,14,66]], + [53,399,5,[3,14,101],[5,14,48]], + [53,401,5,[3,14,100],[5,14,4]], + [53,402,5,[3,14,99],[3,14,7]], + [53,403,5,[3,14,98],[2,14,57]], + [53,415,5,[3,14,97],[3,14,48]], + [53,417,5,[3,14,96],[4,15,13]], + [53,418,5,[3,14,95],[2,14,107]], + [53,419,5,[3,14,94],[5,15,82]], + [53,423,5,[3,14,93],[2,14,83]], + [53,426,5,[3,14,91],[2,14,46]], + [53,427,5,[3,14,90],[2,14,82]], + [53,431,5,[3,14,89],[5,14,103]], + [53,433,5,[3,14,88],[5,14,34]], + [53,434,5,[3,14,87],[4,14,6]], + [53,435,5,[3,14,86],[6,15,56]], + [53,447,5,[3,14,85],[5,14,64]], + [53,449,5,[3,14,84],[4,15,85]], + [53,450,5,[3,14,83],[5,14,79]], + [53,451,5,[3,14,82],[5,14,46]], + [53,455,5,[3,14,81],[6,15,9]], + [53,457,5,[3,14,80],[4,14,36]], + [53,458,5,[3,14,79],[2,14,74]], + [53,459,5,[3,14,78],[4,14,54]], + [53,463,5,[3,14,77],[5,15,89]], + [53,465,5,[3,14,76],[2,14,89]], + [53,466,5,[3,14,75],[6,15,59]], + [53,467,5,[3,14,74],[5,14,71]], + [53,471,5,[3,14,73],[3,15,88]], + [53,473,5,[3,14,72],[2,14,58]], + [53,474,5,[3,14,71],[5,15,57]], + [53,475,5,[3,14,70],[5,14,83]], + [53,479,5,[3,14,69],[3,14,37]], + [53,481,5,[3,14,68],[4,15,50]], + [53,482,5,[3,14,67],[3,14,71]], + [53,483,5,[3,14,66],[5,14,9]], + [53,487,5,[3,14,65],[5,14,0]], + [53,489,5,[3,14,64],[5,15,20]], + [53,490,5,[3,14,63],[2,15,30]], + [53,491,5,[3,14,43],[2,14,72]], + [54,70,9,[4,15,99],[4,14,34]], + [54,72,9,[4,15,94],[5,15,51]], + [54,76,9,[4,15,92],[5,15,41]], + [54,82,9,[4,15,79],[6,15,87]], + [54,86,9,[4,15,74],[3,15,36]], + [54,96,9,[4,15,66],[3,14,46]], + [54,99,9,[4,15,62],[3,15,96]], + [54,118,9,[4,15,43],[3,15,10]], + [54,126,9,[4,15,37],[5,14,43]], + [54,130,9,[4,15,33],[2,15,88]], + [54,144,9,[4,15,9],[4,14,52]], + [54,146,9,[4,15,3],[2,14,32]], + [54,383,5,[6,14,110],[5,15,36]], + [54,386,5,[6,14,108],[4,15,99]], + [54,387,5,[6,14,107],[4,15,94]], + [54,391,5,[6,14,106],[6,15,52]], + [54,393,5,[6,14,73],[4,14,68]], + [54,394,5,[6,14,70],[3,15,70]], + [54,395,5,[6,14,69],[6,15,67]], + [54,399,5,[6,14,68],[5,14,7]], + [54,401,5,[6,14,67],[4,15,106]], + [54,402,5,[6,14,66],[6,14,111]], + [54,403,5,[6,14,65],[6,14,42]], + [54,415,5,[6,14,64],[4,14,42]], + [54,417,5,[6,14,62],[3,15,106]], + [54,418,5,[6,14,61],[2,14,101]], + [54,419,5,[6,14,60],[3,15,15]], + [54,423,5,[6,14,59],[6,15,90]], + [54,425,5,[6,14,42],[3,15,16]], + [54,427,5,[6,14,39],[5,14,42]], + [54,431,5,[6,14,37],[2,15,109]], + [54,433,5,[6,14,35],[3,15,2]], + [54,434,5,[6,14,34],[4,15,96]], + [54,435,5,[6,14,33],[2,14,48]], + [54,447,5,[6,14,31],[3,15,91]], + [54,449,5,[6,14,29],[3,15,62]], + [54,450,5,[6,14,28],[2,14,4]], + [54,451,5,[6,14,27],[6,14,96]], + [54,455,5,[6,14,23],[6,14,26]], + [54,457,5,[6,14,22],[6,14,27]], + [54,458,5,[6,14,21],[5,15,17]], + [54,459,5,[4,14,50],[4,14,20]], + [54,463,5,[2,15,82],[4,14,69]], + [54,465,5,[2,15,73],[6,14,78]], + [54,466,5,[2,15,71],[3,14,51]], + [54,467,5,[2,15,57],[3,14,95]], + [54,471,5,[2,15,15],[6,14,104]], + [54,473,5,[2,15,13],[2,14,86]], + [54,474,5,[2,15,12],[2,15,100]], + [54,475,5,[2,15,10],[3,15,19]], + [54,479,5,[2,15,9],[3,15,82]], + [54,481,5,[2,15,7],[4,14,100]], + [54,482,5,[2,15,6],[6,14,38]], + [54,483,5,[2,15,5],[4,14,18]], + [54,487,5,[2,15,4],[5,14,92]], + [54,489,5,[2,15,3],[3,15,93]], + [54,490,5,[2,15,2],[2,15,22]], + [54,491,5,[2,15,0],[5,14,75]], + [55,1,9,[5,14,110],[4,14,70]], + [55,2,9,[5,14,108],[5,14,110]], + [55,15,9,[5,14,95],[3,15,12]], + [55,17,9,[5,14,92],[5,15,37]], + [55,20,9,[5,14,88],[4,15,28]], + [55,21,9,[5,14,84],[6,14,69]], + [55,24,9,[5,14,59],[6,14,38]], + [55,33,9,[5,14,38],[6,14,61]], + [55,37,9,[5,14,32],[5,15,9]], + [55,39,9,[5,14,29],[6,14,0]], + [55,43,9,[5,14,22],[3,14,77]], + [55,47,9,[5,14,10],[2,15,10]], + [55,61,9,[4,14,96],[2,15,85]], + [55,70,9,[4,14,87],[4,15,41]], + [55,87,9,[4,14,72],[4,15,94]], + [55,91,9,[4,14,70],[5,15,0]], + [55,104,9,[4,14,57],[4,14,21]], + [55,113,9,[4,14,50],[4,15,70]], + [55,116,9,[4,14,47],[2,15,72]], + [55,131,9,[4,14,34],[3,14,58]], + [55,146,9,[4,14,21],[2,14,73]], + [55,149,9,[4,14,18],[2,14,67]], + [55,159,9,[4,14,10],[2,14,104]], + [55,162,9,[4,14,7],[2,14,59]], + [55,179,9,[2,15,104],[2,14,4]], + [55,196,9,[2,15,88],[4,14,7]], + [55,199,9,[2,15,85],[2,15,73]], + [55,200,9,[2,15,84],[3,15,79]], + [55,211,9,[2,15,74],[2,14,76]], + [55,212,9,[2,15,73],[2,15,48]], + [55,213,9,[2,15,72],[3,14,33]], + [55,251,9,[2,15,48],[3,15,49]], + [55,262,9,[2,15,44],[5,15,78]], + [55,272,9,[2,15,42],[3,14,25]], + [55,328,9,[2,15,18],[2,15,44]], + [55,342,9,[2,15,11],[3,14,42]], + [55,348,9,[2,15,10],[6,15,72]], + [55,356,9,[2,15,5],[2,14,80]], + [55,383,5,[6,14,105],[5,15,32]], + [55,385,5,[6,14,104],[3,14,46]], + [55,386,5,[6,14,103],[2,14,16]], + [55,387,5,[6,14,102],[6,14,44]], + [55,391,5,[6,14,101],[2,15,74]], + [55,393,5,[6,14,100],[3,15,42]], + [55,395,5,[6,14,98],[3,14,17]], + [55,399,5,[6,14,97],[6,15,48]], + [55,401,5,[6,14,96],[5,14,10]], + [55,402,5,[6,14,95],[6,15,11]], + [55,415,5,[6,14,92],[6,14,51]], + [55,417,5,[6,14,91],[6,14,92]], + [55,418,5,[6,14,90],[5,15,41]], + [55,419,5,[6,14,89],[3,14,2]], + [55,423,5,[6,14,88],[6,15,77]], + [55,426,5,[6,14,86],[4,14,47]], + [55,427,5,[6,14,85],[3,14,36]], + [55,431,5,[6,14,79],[3,15,5]], + [55,433,5,[6,14,76],[6,15,18]], + [55,434,5,[6,14,72],[5,15,56]], + [55,435,5,[6,14,71],[6,15,41]], + [55,447,5,[6,14,56],[6,15,68]], + [55,449,5,[6,14,51],[6,15,30]], + [55,450,5,[6,14,50],[6,15,27]], + [55,455,5,[6,14,48],[6,15,79]], + [55,457,5,[6,14,46],[5,14,57]], + [55,458,5,[6,14,45],[2,14,8]], + [55,459,5,[6,14,43],[3,15,26]], + [55,463,5,[4,15,77],[2,15,88]], + [55,465,5,[2,14,79],[5,14,84]], + [55,466,5,[2,14,78],[6,14,94]], + [55,467,5,[2,14,77],[5,15,59]], + [55,471,5,[2,14,76],[4,14,96]], + [55,474,5,[2,14,74],[3,14,9]], + [55,475,5,[2,14,73],[3,14,22]], + [55,479,5,[2,14,72],[2,15,5]], + [55,481,5,[2,14,71],[4,15,4]], + [55,482,5,[2,14,70],[2,14,66]], + [55,483,5,[2,14,69],[4,15,79]], + [55,487,5,[2,14,68],[2,14,32]], + [55,489,5,[2,14,67],[3,14,103]], + [55,490,5,[2,14,66],[5,15,51]], + [55,491,5,[2,14,65],[2,14,81]], + [56,41,9,[5,15,89],[2,14,28]], + [56,48,9,[5,15,81],[4,14,102]], + [56,50,9,[5,15,78],[6,15,88]], + [56,71,9,[5,15,49],[3,14,39]], + [56,80,9,[5,15,42],[6,14,100]], + [56,81,9,[5,15,41],[2,15,18]], + [56,82,9,[5,15,40],[5,14,49]], + [56,85,9,[5,15,37],[2,15,75]], + [56,91,9,[5,15,33],[5,14,33]], + [56,94,9,[5,15,30],[6,14,95]], + [56,95,9,[5,15,29],[3,14,48]], + [56,96,9,[5,15,28],[3,14,7]], + [56,97,9,[5,15,27],[2,15,102]], + [56,100,9,[5,15,24],[4,14,61]], + [56,110,9,[5,15,16],[2,15,10]], + [56,117,9,[5,15,9],[5,14,103]], + [56,118,9,[5,15,8],[3,14,96]], + [56,119,9,[5,15,7],[2,14,89]], + [56,128,9,[5,15,0],[3,15,80]], + [56,383,5,[5,15,59],[4,15,80]], + [56,385,5,[2,14,46],[3,15,101]], + [56,386,5,[2,14,45],[2,14,26]], + [56,387,5,[2,14,44],[6,15,55]], + [56,391,5,[2,14,43],[4,15,90]], + [56,393,5,[2,14,42],[2,14,65]], + [56,394,5,[2,14,41],[5,15,78]], + [56,395,5,[2,14,40],[4,14,2]], + [56,399,5,[2,14,39],[2,14,80]], + [56,401,5,[2,14,38],[5,15,81]], + [56,402,5,[2,14,37],[5,14,73]], + [56,403,5,[2,14,36],[2,14,39]], + [56,415,5,[2,14,35],[2,14,14]], + [56,417,5,[2,14,34],[3,15,4]], + [56,419,5,[2,14,32],[5,15,42]], + [56,423,5,[2,14,31],[2,14,88]], + [56,426,5,[2,14,29],[5,14,89]], + [56,427,5,[2,14,28],[5,15,27]], + [56,431,5,[2,14,27],[3,15,25]], + [56,433,5,[2,14,26],[2,15,31]], + [56,434,5,[2,14,25],[2,14,34]], + [56,435,5,[2,14,24],[5,14,28]], + [56,447,5,[2,14,23],[3,15,51]], + [56,449,5,[2,14,22],[3,14,43]], + [56,450,5,[2,14,21],[4,15,32]], + [56,451,5,[2,14,20],[5,14,86]], + [56,455,5,[2,14,19],[3,14,0]], + [56,457,5,[2,14,18],[6,15,94]], + [56,458,5,[2,14,17],[2,14,100]], + [56,459,5,[2,14,16],[3,14,53]], + [56,463,5,[2,14,15],[3,14,64]], + [56,465,5,[2,14,14],[2,14,63]], + [56,466,5,[2,14,13],[2,14,95]], + [56,467,5,[2,14,12],[4,15,3]], + [56,471,5,[2,14,11],[4,14,86]], + [56,473,5,[2,14,10],[4,15,6]], + [56,474,5,[2,14,9],[2,15,76]], + [56,475,5,[2,14,8],[4,14,45]], + [56,479,5,[2,14,7],[2,15,54]], + [56,482,5,[2,14,5],[4,15,111]], + [56,483,5,[2,14,4],[6,14,61]], + [56,487,5,[2,14,3],[5,15,72]], + [56,489,5,[2,14,2],[2,15,92]], + [56,490,5,[2,14,1],[3,14,18]], + [56,491,5,[2,14,0],[4,14,67]], + [57,47,9,[5,15,80],[3,14,93]], + [57,383,5,[6,14,94],[4,14,5]], + [57,385,5,[6,14,84],[6,15,110]], + [57,386,5,[6,14,83],[6,14,19]], + [57,387,5,[6,14,82],[6,14,74]], + [57,391,5,[6,14,81],[4,15,91]], + [57,393,5,[6,14,80],[6,14,62]], + [57,394,5,[6,14,78],[3,14,39]], + [57,395,5,[6,14,77],[6,14,80]], + [57,399,5,[6,14,74],[3,15,46]], + [57,402,5,[6,14,53],[3,14,24]], + [57,403,5,[5,14,111],[6,14,63]], + [57,415,5,[5,14,109],[3,15,8]], + [57,417,5,[5,14,105],[6,14,108]], + [57,419,5,[5,14,87],[6,14,53]], + [57,423,5,[5,14,86],[5,15,4]], + [57,425,5,[5,14,85],[6,15,38]], + [57,426,5,[5,14,84],[6,15,31]], + [57,427,5,[5,14,81],[4,15,109]], + [57,431,5,[5,14,80],[5,15,8]], + [57,433,5,[5,14,79],[3,14,62]], + [57,434,5,[5,14,78],[6,14,110]], + [57,435,5,[5,14,77],[4,14,50]], + [57,447,5,[5,14,75],[5,15,15]], + [57,449,5,[5,14,74],[4,14,24]], + [57,450,5,[5,14,72],[4,15,63]], + [57,451,5,[5,14,71],[4,14,111]], + [57,455,5,[5,14,70],[4,15,76]], + [57,457,5,[5,14,69],[4,15,25]], + [57,459,5,[5,14,66],[6,15,50]], + [57,463,5,[5,14,65],[5,14,109]], + [57,465,5,[5,14,64],[6,15,66]], + [57,466,5,[5,14,63],[4,14,93]], + [57,471,5,[5,14,61],[5,14,65]], + [57,473,5,[5,14,58],[5,14,20]], + [57,474,5,[5,14,57],[4,14,28]], + [57,475,5,[5,14,55],[5,14,53]], + [57,479,5,[5,14,54],[6,15,53]], + [57,481,5,[5,14,53],[3,14,65]], + [57,482,5,[5,14,52],[3,14,84]], + [57,483,5,[5,14,51],[6,14,71]], + [57,487,5,[5,14,50],[4,15,20]], + [57,490,5,[5,14,48],[4,14,80]], + [58,0,9,[7,15,108],[4,14,2]], + [58,19,9,[6,14,104],[4,15,14]], + [58,33,9,[6,14,78],[5,14,14]], + [58,41,9,[6,14,62],[4,14,87]], + [58,43,9,[6,14,59],[6,15,90]], + [58,52,9,[6,14,32],[5,14,74]], + [58,63,9,[6,14,13],[6,15,80]], + [58,177,9,[3,14,106],[4,14,89]], + [58,185,9,[3,14,98],[5,15,3]], + [58,188,9,[3,14,96],[3,15,79]], + [58,190,9,[3,14,94],[3,15,16]], + [58,197,9,[3,14,87],[4,14,29]], + [58,205,9,[3,14,80],[5,14,23]], + [58,207,9,[3,14,78],[3,15,17]], + [58,208,9,[3,14,77],[4,15,98]], + [58,222,9,[3,14,64],[4,14,108]], + [58,239,9,[3,14,58],[4,15,45]], + [58,293,9,[3,14,29],[4,14,92]], + [58,294,9,[3,14,28],[5,14,32]], + [58,297,9,[3,14,25],[3,14,94]], + [58,336,9,[3,14,14],[4,15,24]], + [58,337,9,[3,14,13],[4,14,36]], + [58,351,9,[3,14,8],[5,15,20]], + [58,383,5,[6,15,110],[5,15,54]], + [58,385,5,[6,15,109],[3,14,80]], + [58,386,5,[6,15,108],[3,14,77]], + [58,387,5,[6,15,107],[5,15,75]], + [58,391,5,[6,15,106],[7,15,23]], + [58,393,5,[6,15,105],[3,15,28]], + [58,395,5,[6,15,103],[6,15,101]], + [58,399,5,[6,15,102],[7,15,51]], + [58,401,5,[6,15,101],[5,15,104]], + [58,402,5,[6,15,100],[6,14,23]], + [58,403,5,[6,15,99],[3,15,31]], + [58,415,5,[6,15,98],[5,15,30]], + [58,417,5,[6,15,97],[3,15,102]], + [58,418,5,[6,15,96],[3,14,8]], + [58,419,5,[6,15,94],[6,15,15]], + [58,423,5,[6,15,62],[3,15,12]], + [58,425,5,[6,15,61],[4,14,88]], + [58,426,5,[6,15,60],[4,15,17]], + [58,427,5,[6,15,59],[3,15,48]], + [58,431,5,[6,15,58],[3,15,57]], + [58,433,5,[6,15,57],[5,14,56]], + [58,434,5,[6,15,56],[3,14,78]], + [58,435,5,[6,15,55],[7,14,27]], + [58,447,5,[6,15,54],[6,15,26]], + [58,449,5,[6,15,53],[7,15,75]], + [58,450,5,[6,15,52],[3,15,41]], + [58,451,5,[6,15,51],[7,15,70]], + [58,455,5,[6,15,50],[7,15,108]], + [58,458,5,[6,15,48],[7,14,35]], + [58,459,5,[5,14,76],[3,15,111]], + [58,463,5,[3,15,88],[4,14,65]], + [58,465,5,[3,15,85],[5,15,33]], + [58,466,5,[3,15,84],[3,15,20]], + [58,467,5,[3,15,81],[3,14,96]], + [58,471,5,[3,15,80],[3,14,14]], + [58,473,5,[3,15,78],[4,14,76]], + [58,474,5,[3,15,69],[5,14,93]], + [58,475,5,[3,15,64],[5,15,53]], + [58,479,5,[3,15,61],[4,14,44]], + [58,481,5,[3,15,57],[4,15,107]], + [58,482,5,[3,15,54],[5,14,1]], + [58,483,5,[3,15,40],[3,14,25]], + [58,487,5,[3,15,37],[3,15,97]], + [58,490,5,[3,15,34],[4,14,107]], + [58,491,5,[3,15,33],[4,14,78]], + [59,3,9,[7,14,106],[6,15,54]], + [59,15,9,[7,14,91],[7,14,42]], + [59,37,9,[7,14,40],[4,15,99]], + [59,40,9,[7,14,35],[4,15,5]], + [59,52,9,[7,14,21],[5,14,67]], + [59,56,9,[7,14,16],[5,14,88]], + [59,64,9,[7,14,10],[6,15,13]], + [59,65,9,[7,14,9],[6,15,85]], + [59,71,9,[7,14,3],[5,15,40]], + [59,189,9,[3,15,96],[3,15,92]], + [59,193,9,[3,15,92],[3,14,87]], + [59,195,9,[3,15,90],[3,14,74]], + [59,198,9,[3,15,87],[3,14,27]], + [59,205,9,[3,15,81],[5,15,32]], + [59,214,9,[3,15,72],[3,14,28]], + [59,219,9,[3,15,68],[5,15,89]], + [59,237,9,[3,15,61],[3,14,63]], + [59,251,9,[3,15,49],[3,14,67]], + [59,272,9,[3,15,43],[5,15,81]], + [59,282,9,[3,15,37],[3,15,16]], + [59,297,9,[3,15,26],[5,14,50]], + [59,330,9,[3,15,17],[3,14,49]], + [59,331,9,[3,15,16],[3,14,98]], + [59,349,9,[3,15,10],[6,14,17]], + [59,356,9,[3,15,6],[3,14,61]], + [59,383,5,[7,15,51],[4,14,15]], + [59,385,5,[3,14,110],[5,15,2]], + [59,387,5,[3,14,45],[5,14,90]], + [59,391,5,[3,14,44],[4,15,87]], + [59,393,5,[3,14,42],[4,15,97]], + [59,394,5,[3,14,41],[6,14,41]], + [59,395,5,[3,14,40],[6,15,2]], + [59,399,5,[3,14,39],[6,15,64]], + [59,401,5,[3,14,38],[4,15,41]], + [59,402,5,[3,14,37],[7,15,52]], + [59,403,5,[3,14,36],[3,14,21]], + [59,415,5,[3,14,35],[5,14,107]], + [59,417,5,[3,14,34],[7,15,97]], + [59,418,5,[3,14,33],[7,15,91]], + [59,419,5,[3,14,32],[5,14,38]], + [59,423,5,[3,14,31],[7,14,101]], + [59,425,5,[3,14,30],[4,15,46]], + [59,426,5,[3,14,29],[3,15,72]], + [59,427,5,[3,14,28],[5,15,24]], + [59,431,5,[3,14,27],[7,14,16]], + [59,433,5,[3,14,26],[4,14,11]], + [59,434,5,[3,14,25],[5,15,92]], + [59,435,5,[3,14,24],[3,15,81]], + [59,447,5,[3,14,23],[3,15,61]], + [59,449,5,[3,14,22],[7,14,91]], + [59,450,5,[3,14,21],[7,14,25]], + [59,451,5,[3,14,20],[4,15,89]], + [59,455,5,[3,14,19],[5,14,70]], + [59,457,5,[3,14,18],[4,15,51]], + [59,458,5,[3,14,17],[4,14,19]], + [59,459,5,[3,14,16],[3,15,43]], + [59,463,5,[3,14,15],[3,14,106]], + [59,465,5,[3,14,14],[3,15,17]], + [59,466,5,[3,14,13],[6,15,19]], + [59,467,5,[3,14,12],[4,14,22]], + [59,471,5,[3,14,11],[3,15,37]], + [59,473,5,[3,14,10],[5,15,21]], + [59,474,5,[3,14,9],[4,15,15]], + [59,475,5,[3,14,8],[4,14,41]], + [59,479,5,[3,14,7],[5,14,45]], + [59,481,5,[3,14,6],[4,14,59]], + [59,482,5,[3,14,5],[7,14,72]], + [59,483,5,[3,14,4],[5,14,87]], + [59,487,5,[3,14,3],[3,14,73]], + [59,489,5,[3,14,2],[3,14,32]], + [59,490,5,[3,14,1],[3,15,87]], + [59,491,5,[3,14,0],[4,14,77]], + [60,5,9,[7,14,101],[7,15,0]], + [60,16,9,[7,14,70],[4,15,57]], + [60,17,9,[7,14,66],[4,14,17]], + [60,45,9,[6,15,107],[4,15,46]], + [60,60,9,[6,15,94],[4,15,78]], + [60,67,9,[6,15,87],[6,15,111]], + [60,98,9,[6,15,60],[7,15,108]], + [60,147,9,[6,15,17],[7,15,31]], + [60,157,9,[6,15,9],[3,14,28]], + [60,164,9,[6,15,2],[4,14,0]], + [60,181,9,[3,14,102],[3,15,37]], + [60,193,9,[3,14,91],[4,15,22]], + [60,198,9,[3,14,86],[4,15,50]], + [60,211,9,[3,14,74],[5,15,67]], + [60,212,9,[3,14,73],[3,15,38]], + [60,217,9,[3,14,68],[3,15,75]], + [60,219,9,[3,14,67],[3,14,68]], + [60,220,9,[3,14,66],[4,15,79]], + [60,223,9,[3,14,63],[4,15,111]], + [60,241,9,[3,14,56],[5,14,71]], + [60,247,9,[3,14,52],[5,14,85]], + [60,260,9,[3,14,46],[3,15,81]], + [60,272,9,[3,14,42],[3,14,52]], + [60,281,9,[3,14,37],[4,14,66]], + [60,285,9,[3,14,33],[3,15,14]], + [60,294,9,[3,14,28],[6,14,94]], + [60,295,9,[3,14,27],[3,15,87]], + [60,299,9,[3,14,23],[4,15,40]], + [60,337,9,[3,14,13],[3,15,7]], + [60,383,5,[7,14,96],[6,14,43]], + [60,385,5,[7,14,95],[4,15,35]], + [60,387,5,[7,14,92],[4,15,64]], + [60,391,5,[7,14,91],[5,14,22]], + [60,393,5,[7,14,87],[4,14,63]], + [60,394,5,[7,14,63],[6,14,60]], + [60,399,5,[7,14,60],[4,15,108]], + [60,401,5,[7,14,57],[7,14,8]], + [60,402,5,[7,14,56],[7,14,84]], + [60,403,5,[7,14,54],[3,15,10]], + [60,415,5,[7,14,49],[4,15,21]], + [60,418,5,[7,14,27],[5,15,40]], + [60,419,5,[3,15,32],[3,15,40]], + [60,423,5,[3,15,31],[3,15,103]], + [60,425,5,[3,15,30],[5,15,102]], + [60,426,5,[3,15,29],[4,15,105]], + [60,427,5,[3,15,28],[6,14,7]], + [60,431,5,[3,15,27],[6,14,47]], + [60,433,5,[3,15,26],[5,14,74]], + [60,434,5,[3,15,25],[4,15,53]], + [60,435,5,[3,15,24],[6,15,17]], + [60,447,5,[3,15,23],[7,15,66]], + [60,449,5,[3,15,22],[3,14,56]], + [60,451,5,[3,15,20],[4,14,57]], + [60,455,5,[3,15,19],[3,14,23]], + [60,457,5,[3,15,18],[6,14,10]], + [60,458,5,[3,15,17],[5,15,19]], + [60,459,5,[3,15,16],[3,14,63]], + [60,463,5,[3,15,15],[5,15,10]], + [60,465,5,[3,15,14],[6,14,15]], + [60,466,5,[3,15,13],[6,14,4]], + [60,467,5,[3,15,12],[3,14,86]], + [60,471,5,[3,15,11],[3,14,67]], + [60,473,5,[3,15,10],[4,15,8]], + [60,474,5,[3,15,9],[4,15,83]], + [60,475,5,[3,15,8],[5,15,38]], + [60,479,5,[3,15,7],[3,14,13]], + [60,481,5,[3,15,6],[4,15,60]], + [60,482,5,[3,15,5],[3,14,42]], + [60,483,5,[3,15,4],[4,14,55]], + [60,487,5,[3,15,3],[4,15,14]], + [60,489,5,[3,15,2],[6,14,36]], + [60,491,5,[3,15,0],[5,14,77]], + [61,7,9,[6,14,101],[7,14,10]], + [61,11,9,[6,14,94],[3,15,26]], + [61,18,9,[6,14,77],[5,14,90]], + [61,27,9,[6,14,61],[3,14,80]], + [61,32,9,[6,14,51],[6,15,22]], + [61,45,9,[6,14,34],[4,14,104]], + [61,46,9,[6,14,33],[7,15,98]], + [61,48,9,[6,14,29],[6,15,42]], + [61,92,9,[5,15,88],[3,14,37]], + [61,111,9,[5,15,71],[3,15,108]], + [61,115,9,[5,15,67],[3,14,66]], + [61,118,9,[5,15,64],[4,14,111]], + [61,124,9,[5,15,60],[5,15,35]], + [61,128,9,[5,15,56],[5,14,99]], + [61,129,9,[5,15,55],[6,15,94]], + [61,143,9,[5,15,43],[3,14,56]], + [61,149,9,[5,15,37],[5,15,6]], + [61,151,9,[5,15,35],[4,15,99]], + [61,383,5,[6,14,75],[7,14,81]], + [61,385,5,[6,14,47],[5,14,66]], + [61,386,5,[6,14,44],[6,15,78]], + [61,387,5,[6,14,41],[6,14,1]], + [61,391,5,[6,14,38],[3,15,9]], + [61,393,5,[6,14,36],[4,15,66]], + [61,395,5,[6,14,30],[4,15,56]], + [61,399,5,[6,14,26],[3,15,54]], + [61,401,5,[6,14,25],[7,14,78]], + [61,402,5,[6,14,24],[7,15,59]], + [61,403,5,[6,14,20],[3,14,93]], + [61,415,5,[6,14,19],[6,15,32]], + [61,417,5,[6,14,18],[3,15,55]], + [61,418,5,[6,14,14],[6,15,74]], + [61,419,5,[6,14,13],[3,14,54]], + [61,423,5,[6,14,8],[5,15,43]], + [61,425,5,[6,14,7],[7,15,105]], + [61,426,5,[6,14,2],[6,14,77]], + [61,427,5,[6,14,1],[4,14,39]], + [61,431,5,[5,15,26],[6,14,88]], + [61,433,5,[5,15,25],[4,14,74]], + [61,434,5,[5,15,24],[4,14,98]], + [61,435,5,[5,15,23],[3,14,5]], + [61,447,5,[5,15,22],[3,14,3]], + [61,449,5,[5,15,21],[7,14,54]], + [61,450,5,[5,15,20],[4,15,38]], + [61,451,5,[5,15,19],[3,15,63]], + [61,455,5,[5,15,18],[3,14,72]], + [61,457,5,[5,15,17],[4,15,86]], + [61,458,5,[5,15,16],[4,14,51]], + [61,459,5,[5,15,15],[5,14,51]], + [61,465,5,[5,15,13],[3,14,99]], + [61,466,5,[5,15,12],[3,14,30]], + [61,467,5,[5,15,11],[3,14,58]], + [61,471,5,[5,15,10],[4,14,33]], + [61,473,5,[5,15,9],[3,14,34]], + [61,474,5,[5,15,8],[6,14,29]], + [61,475,5,[5,15,7],[6,15,46]], + [61,479,5,[5,15,6],[3,14,6]], + [61,481,5,[5,15,5],[5,15,88]], + [61,482,5,[5,15,4],[4,15,73]], + [61,483,5,[5,15,3],[6,14,33]], + [61,487,5,[5,15,2],[3,15,75]], + [61,489,5,[5,15,1],[4,15,33]], + [61,490,5,[5,15,0],[5,14,32]], + [61,491,5,[4,15,107],[7,14,92]], + [62,116,9,[5,14,85],[5,15,30]], + [62,125,9,[5,14,76],[5,14,97]], + [62,127,9,[5,14,74],[5,15,28]], + [62,128,9,[5,14,72],[4,15,44]], + [62,156,9,[5,14,23],[5,15,58]], + [62,164,9,[5,14,15],[4,15,80]], + [62,186,4,[4,14,111],[6,14,106]], + [62,192,9,[4,14,92],[4,15,33]], + [62,202,4,[4,14,110],[7,15,49]], + [62,212,9,[4,14,73],[6,15,104]], + [62,218,4,[4,14,109],[4,12,54]], + [62,236,9,[4,14,61],[5,14,82]], + [62,237,9,[4,14,60],[7,14,16]], + [62,247,9,[4,14,52],[5,14,43]], + [62,260,9,[4,14,46],[6,14,104]], + [62,274,9,[4,14,40],[6,15,17]], + [62,293,9,[4,14,29],[6,15,18]], + [62,299,9,[4,14,23],[5,14,59]], + [62,329,9,[4,14,17],[7,14,66]], + [62,356,9,[4,14,5],[4,14,107]], + [62,365,9,[4,14,2],[5,14,41]], + [62,367,9,[4,14,0],[4,15,77]], + [62,383,5,[6,15,95],[4,14,46]], + [62,385,5,[5,14,110],[7,14,64]], + [62,386,5,[5,14,108],[4,15,58]], + [62,387,5,[5,14,107],[5,15,61]], + [62,391,5,[5,14,106],[4,14,17]], + [62,393,5,[5,14,103],[5,15,77]], + [62,394,5,[5,14,102],[4,15,100]], + [62,395,5,[5,14,101],[5,15,46]], + [62,399,5,[5,14,100],[7,15,89]], + [62,401,5,[5,14,99],[7,14,59]], + [62,402,5,[5,14,98],[4,14,103]], + [62,403,5,[5,14,97],[7,15,57]], + [62,407,4,[4,14,108],[7,14,41]], + [62,409,4,[4,14,107],[4,15,61]], + [62,411,4,[4,14,105],[5,15,22]], + [62,415,5,[5,14,96],[5,15,96]], + [62,417,5,[5,14,95],[5,15,69]], + [62,419,5,[5,14,93],[7,15,84]], + [62,423,5,[5,14,92],[4,15,70]], + [62,426,5,[5,14,90],[7,14,89]], + [62,427,5,[5,14,89],[6,14,25]], + [62,431,5,[5,14,88],[7,14,83]], + [62,433,5,[5,14,83],[5,15,3]], + [62,434,5,[5,14,82],[6,14,30]], + [62,435,5,[5,14,73],[6,15,57]], + [62,439,4,[4,14,104],[5,14,76]], + [62,441,4,[4,14,103],[7,14,48]], + [62,447,5,[5,14,67],[4,14,101]], + [62,449,5,[5,14,60],[5,14,15]], + [62,450,5,[5,14,59],[4,14,73]], + [62,451,5,[5,14,56],[5,15,55]], + [62,455,5,[5,14,46],[7,14,67]], + [62,457,5,[5,14,45],[4,15,5]], + [62,458,5,[5,14,44],[7,14,13]], + [62,459,5,[5,14,43],[6,15,72]], + [62,463,5,[5,14,42],[4,15,12]], + [62,465,5,[5,14,41],[4,14,29]], + [62,466,5,[5,14,40],[4,15,49]], + [62,467,5,[5,14,39],[6,15,6]], + [62,471,5,[5,14,38],[4,15,30]], + [62,473,5,[5,14,37],[5,15,60]], + [62,474,5,[5,14,36],[4,14,92]], + [62,475,5,[5,14,35],[4,14,52]], + [62,479,5,[5,14,34],[4,14,23]], + [62,481,5,[5,14,33],[4,14,104]], + [62,482,5,[5,14,32],[6,14,76]], + [62,483,5,[5,14,31],[5,15,7]], + [62,487,5,[5,14,30],[5,15,11]], + [62,489,5,[5,14,29],[4,14,0]], + [62,490,5,[5,14,28],[5,15,9]], + [62,491,5,[5,14,27],[6,14,57]], + [63,383,5,[7,14,90],[5,15,79]], + [63,385,5,[4,15,111],[7,14,19]], + [63,386,5,[4,15,110],[5,14,31]], + [63,387,5,[4,15,109],[5,15,62]], + [63,391,5,[4,15,106],[4,15,54]], + [63,393,5,[4,15,105],[6,15,97]], + [63,394,5,[4,15,102],[6,15,100]], + [63,395,5,[4,15,96],[7,15,60]], + [63,399,5,[4,15,95],[6,15,87]], + [63,401,5,[4,15,93],[7,15,14]], + [63,402,5,[4,15,91],[5,14,96]], + [63,403,5,[4,15,90],[7,15,54]], + [63,415,5,[4,15,89],[5,15,47]], + [63,417,5,[4,15,87],[7,15,107]], + [63,418,5,[4,15,84],[7,15,55]], + [63,419,5,[4,15,83],[6,14,24]], + [63,423,5,[4,15,82],[6,14,101]], + [63,425,5,[4,15,80],[4,14,40]], + [63,427,5,[4,15,56],[5,14,69]], + [63,433,5,[4,15,37],[4,14,60]], + [63,434,5,[4,15,34],[4,14,72]], + [63,435,5,[4,15,32],[5,14,59]], + [63,447,5,[4,15,31],[5,15,49]], + [63,449,5,[4,15,28],[5,15,31]], + [63,450,5,[4,15,25],[7,14,90]], + [63,451,5,[4,15,23],[6,14,35]], + [63,455,5,[4,15,22],[7,15,48]], + [63,457,5,[4,15,20],[6,14,39]], + [63,458,5,[4,15,19],[5,14,72]], + [63,459,5,[4,15,17],[5,15,80]], + [63,465,5,[4,15,15],[5,14,44]], + [63,466,5,[4,15,14],[5,15,35]], + [63,467,5,[4,15,13],[6,15,54]], + [63,471,5,[4,15,12],[6,14,11]], + [63,473,5,[4,15,11],[7,14,23]], + [63,474,5,[4,15,10],[5,14,5]], + [63,475,5,[4,15,9],[4,14,81]], + [63,479,5,[4,15,8],[4,15,69]], + [63,481,5,[4,15,7],[7,15,73]], + [63,482,5,[4,15,6],[6,14,97]], + [63,483,5,[4,15,5],[5,14,98]], + [63,487,5,[4,15,4],[5,15,66]], + [63,489,5,[4,15,3],[4,14,79]], + [63,490,5,[4,15,2],[5,14,36]], + [63,491,5,[4,15,1],[5,15,25]], + [64,11,9,[7,15,27],[7,14,60]], + [64,28,9,[7,15,0],[7,14,109]], + [64,110,9,[5,14,111],[5,15,60]], + [64,120,9,[5,14,90],[5,14,79]], + [64,125,9,[5,14,82],[5,14,95]], + [64,126,9,[5,14,79],[5,15,64]], + [64,129,9,[5,14,51],[6,14,78]], + [64,133,9,[5,14,43],[6,14,34]], + [64,136,9,[5,14,33],[6,15,61]], + [64,142,9,[5,14,26],[4,14,1]], + [64,152,9,[5,14,16],[6,15,63]], + [64,156,9,[5,14,14],[6,14,77]], + [64,161,9,[5,14,9],[5,14,51]], + [64,222,9,[4,15,64],[4,14,46]], + [64,240,9,[4,15,57],[6,14,33]], + [64,246,9,[4,15,53],[4,14,96]], + [64,247,9,[4,15,52],[4,14,58]], + [64,251,9,[4,15,48],[4,14,10]], + [64,260,9,[4,15,46],[6,14,12]], + [64,273,9,[4,15,41],[4,15,25]], + [64,274,9,[4,15,40],[6,15,2]], + [64,275,9,[4,15,39],[4,14,23]], + [64,280,9,[4,15,38],[4,14,73]], + [64,293,9,[4,15,29],[5,14,55]], + [64,297,9,[4,15,25],[4,15,16]], + [64,325,9,[4,15,19],[6,15,60]], + [64,330,9,[4,15,16],[7,15,72]], + [64,356,9,[4,15,5],[4,14,72]], + [64,385,5,[7,15,109],[5,15,44]], + [64,386,5,[7,15,108],[4,14,38]], + [64,387,5,[7,15,101],[6,15,89]], + [64,391,5,[7,15,97],[7,15,47]], + [64,394,5,[7,15,90],[7,15,79]], + [64,399,5,[7,15,87],[7,14,111]], + [64,402,5,[7,15,82],[6,15,8]], + [64,417,5,[7,15,79],[7,15,87]], + [64,418,5,[7,15,78],[7,14,6]], + [64,419,5,[7,15,77],[5,15,45]], + [64,425,5,[7,15,75],[7,14,52]], + [64,426,5,[7,15,74],[5,14,14]], + [64,427,5,[7,15,73],[5,15,28]], + [64,431,5,[7,15,72],[6,15,3]], + [64,433,5,[7,15,71],[7,15,98]], + [64,434,5,[7,15,70],[5,14,85]], + [64,435,5,[7,15,69],[4,14,12]], + [64,447,5,[7,15,68],[7,14,106]], + [64,449,5,[7,15,67],[6,15,73]], + [64,450,5,[7,15,66],[7,15,71]], + [64,451,5,[7,15,65],[4,14,30]], + [64,455,5,[7,15,64],[7,15,61]], + [64,457,5,[7,15,63],[7,14,9]], + [64,459,5,[7,15,61],[6,14,83]], + [64,463,5,[7,15,60],[7,14,85]], + [64,465,5,[7,15,59],[4,15,29]], + [64,466,5,[7,15,58],[6,14,79]], + [64,467,5,[7,15,57],[6,14,8]], + [64,471,5,[7,15,56],[4,14,108]], + [64,473,5,[7,15,55],[4,14,25]], + [64,474,5,[7,15,53],[5,14,26]], + [64,475,5,[7,15,52],[7,14,57]], + [64,479,5,[7,15,50],[7,15,103]], + [64,481,5,[7,15,48],[6,14,70]], + [64,482,5,[7,15,47],[6,14,59]], + [64,483,5,[4,14,59],[4,14,56]], + [64,487,5,[4,14,58],[4,15,52]], + [64,489,5,[4,14,57],[7,14,56]], + [64,490,5,[4,14,56],[4,14,70]], + [64,491,5,[4,14,55],[4,15,48]], + [65,1,9,[7,15,109],[4,14,40]], + [65,5,9,[7,15,72],[5,15,8]], + [65,14,9,[6,14,108],[4,14,94]], + [65,28,9,[6,14,95],[6,15,8]], + [65,33,9,[6,14,90],[7,14,49]], + [65,47,9,[6,14,77],[5,14,27]], + [65,49,9,[6,14,75],[7,14,84]], + [65,55,9,[6,14,69],[5,15,71]], + [65,64,9,[6,14,62],[6,15,14]], + [65,69,9,[6,14,57],[6,15,88]], + [65,84,9,[6,14,44],[7,14,42]], + [65,92,9,[6,14,38],[5,14,72]], + [65,109,9,[6,14,23],[6,14,62]], + [65,120,9,[6,14,12],[5,14,76]], + [65,125,9,[6,14,9],[6,14,108]], + [65,128,9,[6,14,6],[4,14,110]], + [65,129,9,[6,14,5],[5,14,69]], + [65,383,5,[4,14,47],[4,15,101]], + [65,385,5,[4,14,46],[5,14,60]], + [65,386,5,[4,14,45],[4,14,82]], + [65,387,5,[4,14,44],[7,15,50]], + [65,391,5,[4,14,43],[6,15,33]], + [65,393,5,[4,14,42],[5,15,84]], + [65,394,5,[4,14,41],[5,14,88]], + [65,395,5,[4,14,40],[5,15,13]], + [65,399,5,[4,14,39],[4,14,91]], + [65,401,5,[4,14,38],[6,14,95]], + [65,402,5,[4,14,37],[4,14,61]], + [65,403,5,[4,14,36],[5,14,6]], + [65,415,5,[4,14,35],[4,15,2]], + [65,417,5,[4,14,34],[4,14,102]], + [65,418,5,[4,14,33],[6,15,0]], + [65,419,5,[4,14,32],[6,15,42]], + [65,423,5,[4,14,31],[4,15,103]], + [65,425,5,[4,14,30],[5,15,93]], + [65,426,5,[4,14,29],[5,14,106]], + [65,427,5,[4,14,28],[6,14,12]], + [65,431,5,[4,14,27],[6,14,5]], + [65,433,5,[4,14,26],[5,15,34]], + [65,434,5,[4,14,25],[7,15,72]], + [65,435,5,[4,14,24],[4,14,26]], + [65,447,5,[4,14,23],[4,14,90]], + [65,449,5,[4,14,22],[7,14,76]], + [65,450,5,[4,14,21],[6,14,69]], + [65,451,5,[4,14,20],[6,15,107]], + [65,455,5,[4,14,19],[5,14,105]], + [65,457,5,[4,14,18],[4,14,1]], + [65,458,5,[4,14,17],[7,14,66]], + [65,459,5,[4,14,16],[4,14,105]], + [65,463,5,[4,14,15],[5,14,35]], + [65,465,5,[4,14,14],[6,15,96]], + [65,466,5,[4,14,13],[7,14,108]], + [65,467,5,[4,14,12],[4,15,28]], + [65,471,5,[4,14,11],[4,14,84]], + [65,473,5,[4,14,10],[5,15,86]], + [65,474,5,[4,14,9],[5,14,13]], + [65,475,5,[4,14,8],[5,15,18]], + [65,481,5,[4,14,6],[7,15,99]], + [65,482,5,[4,14,5],[7,14,24]], + [65,483,5,[4,14,4],[7,14,30]], + [65,487,5,[4,14,3],[4,15,78]], + [65,489,5,[4,14,2],[4,14,95]], + [65,490,5,[4,14,1],[6,15,65]], + [65,491,5,[4,14,0],[4,14,9]], + [66,17,9,[7,15,0],[7,15,24]], + [66,19,9,[7,14,109],[7,15,0]], + [66,29,9,[7,14,99],[7,14,11]], + [66,31,9,[7,14,95],[5,15,11]], + [66,36,9,[7,14,90],[5,14,108]], + [66,39,9,[7,14,84],[6,15,98]], + [66,46,9,[7,14,72],[7,15,19]], + [66,56,9,[7,14,49],[5,15,74]], + [66,60,9,[7,14,44],[7,14,110]], + [66,62,9,[7,14,42],[6,15,92]], + [66,69,9,[7,14,30],[6,14,5]], + [66,86,9,[7,14,1],[7,14,90]], + [66,175,9,[5,15,108],[5,14,25]], + [66,199,9,[5,15,85],[5,14,66]], + [66,211,9,[5,15,74],[7,14,44]], + [66,248,9,[5,15,51],[6,14,37]], + [66,286,9,[5,15,32],[5,14,15]], + [66,342,9,[5,15,11],[7,14,40]], + [66,356,9,[5,15,5],[5,14,92]], + [66,358,9,[5,15,3],[5,14,84]], + [66,368,9,[5,14,0],[5,14,80]], + [66,383,5,[7,14,110],[7,14,77]], + [66,385,5,[7,14,100],[6,14,18]], + [66,386,5,[7,14,98],[7,15,53]], + [66,391,5,[7,14,89],[7,15,78]], + [66,393,5,[7,14,86],[6,15,103]], + [66,394,5,[7,14,85],[7,14,109]], + [66,395,5,[7,14,83],[6,14,0]], + [66,401,5,[7,14,79],[7,14,26]], + [66,402,5,[7,14,77],[5,14,110]], + [66,403,5,[7,14,76],[7,14,49]], + [66,415,5,[7,14,73],[6,14,73]], + [66,417,5,[7,14,71],[7,14,36]], + [66,418,5,[7,14,70],[6,14,90]], + [66,419,5,[7,14,69],[7,15,109]], + [66,423,5,[7,14,68],[5,14,29]], + [66,425,5,[7,14,67],[6,15,47]], + [66,426,5,[7,14,66],[6,14,64]], + [66,427,5,[7,14,65],[5,14,37]], + [66,431,5,[7,14,64],[7,15,56]], + [66,433,5,[7,14,61],[7,14,42]], + [66,434,5,[7,14,59],[6,14,9]], + [66,435,5,[7,14,58],[6,15,95]], + [66,447,5,[7,14,53],[6,14,3]], + [66,449,5,[7,14,50],[6,14,91]], + [66,450,5,[7,14,48],[6,15,10]], + [66,451,5,[7,14,47],[6,15,1]], + [66,455,5,[7,14,46],[7,14,73]], + [66,457,5,[7,14,41],[7,14,99]], + [66,458,5,[7,14,40],[6,15,91]], + [66,459,5,[7,14,36],[6,15,105]], + [66,463,5,[7,14,35],[7,14,86]], + [66,465,5,[7,14,32],[6,14,102]], + [66,466,5,[7,14,26],[7,15,31]], + [66,467,5,[7,14,24],[6,14,50]], + [66,471,5,[7,14,23],[7,14,71]], + [66,473,5,[7,14,22],[7,14,12]], + [66,474,5,[7,14,21],[7,14,1]], + [66,475,5,[7,14,20],[7,14,21]], + [66,479,5,[7,14,19],[6,15,83]], + [66,481,5,[7,14,18],[7,15,77]], + [66,482,5,[7,14,16],[6,15,40]], + [66,487,5,[7,14,14],[6,14,45]], + [66,489,5,[7,14,12],[5,15,5]], + [66,490,5,[7,14,11],[6,14,72]], + [66,491,5,[7,14,8],[6,15,4]], + [67,27,9,[6,15,104],[6,14,6]], + [67,41,9,[6,15,90],[6,15,14]], + [67,44,9,[6,15,88],[6,14,101]], + [67,48,9,[6,15,84],[7,15,68]], + [67,55,9,[6,15,77],[6,14,59]], + [67,62,9,[6,15,72],[5,15,24]], + [67,71,9,[6,15,63],[5,15,59]], + [67,75,9,[6,15,61],[7,14,30]], + [67,110,9,[6,15,30],[6,14,4]], + [67,124,9,[6,15,18],[7,14,41]], + [67,128,9,[6,15,14],[7,14,35]], + [67,129,9,[6,15,13],[5,14,26]], + [67,134,9,[6,15,8],[5,14,72]], + [67,213,9,[5,14,99],[6,14,90]], + [67,215,9,[5,14,97],[5,14,76]], + [67,246,9,[5,14,80],[6,14,77]], + [67,250,9,[5,14,76],[5,14,111]], + [67,261,9,[5,14,72],[5,15,85]], + [67,272,9,[5,14,69],[5,15,56]], + [67,274,9,[5,14,67],[7,14,78]], + [67,294,9,[5,14,55],[5,14,6]], + [67,299,9,[5,14,50],[5,15,42]], + [67,312,9,[5,14,49],[5,15,11]], + [67,340,9,[5,14,39],[7,14,95]], + [67,383,5,[7,15,111],[5,15,67]], + [67,385,5,[7,15,107],[7,14,70]], + [67,386,5,[7,15,106],[5,15,16]], + [67,387,5,[7,15,105],[5,15,110]], + [67,393,5,[7,15,103],[7,14,65]], + [67,394,5,[7,15,102],[7,14,3]], + [67,399,5,[7,15,99],[5,14,67]], + [67,401,5,[7,15,98],[7,14,22]], + [67,415,5,[7,15,93],[5,14,99]], + [67,418,5,[7,15,91],[5,15,105]], + [67,419,5,[7,15,89],[6,14,86]], + [67,425,5,[7,15,85],[7,14,45]], + [67,426,5,[7,15,84],[7,15,69]], + [67,427,5,[7,15,54],[7,14,63]], + [67,431,5,[7,15,49],[7,15,90]], + [67,433,5,[5,14,26],[5,14,97]], + [67,434,5,[5,14,25],[7,14,2]], + [67,435,5,[5,14,24],[7,15,106]], + [67,447,5,[5,14,23],[7,15,58]], + [67,449,5,[5,14,22],[7,14,87]], + [67,450,5,[5,14,21],[5,15,98]], + [67,451,5,[5,14,20],[5,15,63]], + [67,455,5,[5,14,19],[5,14,23]], + [67,458,5,[5,14,17],[7,14,82]], + [67,459,5,[5,14,16],[6,15,63]], + [67,463,5,[5,14,15],[6,14,85]], + [67,465,5,[5,14,14],[7,14,18]], + [67,466,5,[5,14,13],[6,14,34]], + [67,467,5,[5,14,12],[6,15,13]], + [67,471,5,[5,14,11],[5,15,23]], + [67,473,5,[5,14,10],[5,14,19]], + [67,474,5,[5,14,9],[6,14,107]], + [67,475,5,[5,14,8],[6,14,48]], + [67,479,5,[5,14,7],[6,14,89]], + [67,481,5,[5,14,6],[5,15,83]], + [67,482,5,[5,14,5],[7,15,27]], + [67,483,5,[5,14,4],[5,15,6]], + [67,490,5,[5,14,1],[5,15,111]], + [67,491,5,[5,14,0],[5,14,80]], + [68,20,9,[7,14,110],[5,15,7]], + [68,33,9,[7,14,98],[7,15,51]], + [68,53,9,[7,14,78],[7,15,63]], + [68,56,9,[7,14,75],[6,15,69]], + [68,65,9,[7,14,68],[7,14,8]], + [68,87,9,[7,14,45],[7,15,85]], + [68,91,9,[7,14,42],[6,14,75]], + [68,92,9,[7,14,41],[7,14,3]], + [68,94,9,[7,14,38],[6,15,97]], + [68,97,9,[7,14,32],[6,15,65]], + [68,103,9,[7,14,8],[6,15,94]], + [68,383,5,[6,15,93],[5,15,12]], + [68,385,5,[6,15,92],[5,15,107]], + [68,386,5,[6,15,91],[5,15,76]], + [68,387,5,[6,15,90],[7,14,43]], + [68,391,5,[6,15,89],[7,14,75]], + [68,393,5,[6,15,88],[7,14,10]], + [68,394,5,[6,15,87],[5,14,17]], + [68,395,5,[6,15,86],[6,15,109]], + [68,399,5,[6,15,85],[6,14,81]], + [68,402,5,[6,15,83],[5,15,97]], + [68,403,5,[6,15,82],[6,14,56]], + [68,417,5,[6,15,80],[6,14,13]], + [68,418,5,[6,15,79],[7,15,65]], + [68,419,5,[6,15,78],[6,14,84]], + [68,423,5,[6,15,77],[7,14,7]], + [68,425,5,[6,15,76],[6,15,108]], + [68,426,5,[6,15,75],[6,14,2]], + [68,427,5,[6,15,74],[6,15,70]], + [68,431,5,[6,15,73],[5,14,108]], + [68,433,5,[6,15,72],[5,14,8]], + [68,435,5,[6,15,70],[5,15,26]], + [68,443,4,[6,15,111],[6,14,6]], + [68,447,5,[6,15,69],[5,14,78]], + [68,449,5,[6,15,68],[7,14,38]], + [68,450,5,[6,15,67],[7,14,46]], + [68,451,5,[6,15,66],[6,15,102]], + [68,455,5,[6,15,65],[5,15,64]], + [68,457,5,[6,15,64],[5,15,106]], + [68,458,5,[6,15,63],[7,15,64]], + [68,459,5,[6,14,111],[6,14,68]], + [68,463,5,[6,14,63],[7,14,32]], + [68,465,5,[6,14,58],[5,15,108]], + [68,466,5,[6,14,57],[6,15,88]], + [68,473,5,[6,14,17],[6,14,82]], + [68,475,5,[6,14,15],[6,14,100]], + [68,479,5,[6,14,12],[5,15,109]], + [68,481,5,[6,14,11],[5,15,103]], + [68,482,5,[6,14,10],[5,14,100]], + [68,483,5,[6,14,9],[7,14,68]], + [68,487,5,[6,14,6],[5,15,101]], + [68,489,5,[6,14,5],[5,14,102]], + [68,490,5,[6,14,4],[6,15,93]], + [68,491,5,[6,14,3],[5,14,55]], + [69,24,9,[7,15,98],[7,14,70]], + [69,33,9,[7,15,85],[7,14,45]], + [69,47,9,[7,15,68],[6,15,84]], + [69,50,9,[7,15,63],[6,15,30]], + [69,52,9,[7,15,61],[7,14,75]], + [69,173,9,[6,15,111],[6,14,29]], + [69,185,9,[6,14,100],[7,14,98]], + [69,188,9,[6,14,98],[6,15,77]], + [69,273,9,[6,14,43],[7,14,72]], + [69,283,9,[6,14,37],[6,15,79]], + [69,295,9,[6,14,29],[6,15,9]], + [69,329,9,[6,14,19],[7,14,1]], + [69,331,9,[6,14,17],[7,15,109]], + [69,365,9,[6,14,4],[7,14,9]], + [69,368,9,[6,14,0],[6,15,51]], + [69,383,5,[6,15,47],[7,14,69]], + [69,385,5,[6,15,46],[7,14,14]], + [69,393,5,[6,15,42],[6,15,69]], + [69,394,5,[6,15,41],[6,14,17]], + [69,395,5,[6,15,40],[7,14,47]], + [69,401,5,[6,15,38],[7,15,82]], + [69,417,5,[6,15,34],[6,15,75]], + [69,418,5,[6,15,33],[6,15,62]], + [69,419,5,[6,15,32],[7,14,103]], + [69,423,5,[6,15,31],[6,15,106]], + [69,425,5,[6,15,30],[7,14,11]], + [69,431,5,[6,15,27],[6,15,99]], + [69,433,5,[6,15,26],[6,14,37]], + [69,449,5,[6,15,22],[6,15,82]], + [69,450,5,[6,15,21],[7,14,40]], + [69,455,5,[6,15,19],[6,15,76]], + [69,457,5,[6,15,18],[7,14,61]], + [69,458,5,[6,15,17],[6,15,86]], + [69,463,5,[6,15,15],[6,14,98]], + [69,466,5,[6,15,13],[7,15,85]], + [69,471,5,[6,15,11],[7,14,37]], + [69,473,5,[6,15,10],[7,15,74]], + [69,474,5,[6,15,9],[6,15,111]], + [69,475,5,[6,15,8],[6,15,58]], + [69,481,5,[6,15,6],[7,15,68]], + [69,483,5,[6,15,4],[6,15,60]], + [69,487,5,[6,15,3],[7,15,93]], + [69,489,5,[6,15,2],[6,15,34]], + [69,490,5,[6,15,1],[7,15,67]], + [69,491,5,[6,15,0],[6,15,61]], + [70,15,9,[7,15,51],[6,15,103]], + [70,19,9,[7,15,47],[7,14,106]], + [70,36,9,[7,15,31],[7,14,110]], + [70,44,9,[7,15,24],[7,14,101]], + [70,45,9,[7,15,23],[7,14,29]], + [70,49,9,[7,15,19],[6,14,43]], + [70,61,9,[7,14,110],[6,14,32]], + [70,165,9,[6,15,103],[7,14,21]], + [70,172,9,[6,15,98],[6,14,19]], + [70,173,9,[6,15,97],[7,14,38]], + [70,176,9,[6,15,94],[7,14,68]], + [70,178,9,[6,15,92],[6,14,57]], + [70,182,9,[6,15,88],[6,14,44]], + [70,185,9,[6,15,85],[7,15,47]], + [70,191,9,[6,15,80],[6,14,13]], + [70,192,9,[6,15,79],[6,14,98]], + [70,203,9,[6,15,69],[7,15,61]], + [70,207,9,[6,15,65],[7,14,32]], + [70,219,9,[6,15,54],[7,14,91]], + [70,222,9,[6,15,51],[6,14,9]], + [70,242,9,[6,15,42],[6,14,29]], + [70,283,9,[6,15,22],[6,14,51]], + [70,295,9,[6,15,14],[6,14,62]], + [70,383,5,[7,14,111],[7,14,34]], + [70,385,5,[7,14,109],[6,14,75]], + [70,386,5,[7,14,108],[7,14,44]], + [70,387,5,[7,14,107],[6,14,31]], + [70,391,5,[7,14,106],[7,14,4]], + [70,395,5,[7,14,103],[6,14,105]], + [70,399,5,[7,14,102],[7,15,102]], + [70,401,5,[7,14,101],[7,14,53]], + [70,402,5,[7,14,99],[7,14,39]], + [70,417,5,[7,14,84],[6,15,98]], + [70,418,5,[7,14,82],[7,15,101]], + [70,419,5,[7,14,81],[6,14,20]], + [70,423,5,[7,14,78],[7,15,63]], + [70,425,5,[7,14,75],[6,15,22]], + [70,427,5,[7,14,72],[7,15,19]], + [70,433,5,[7,14,52],[6,14,65]], + [70,435,5,[7,14,45],[7,14,98]], + [70,447,5,[7,14,44],[7,15,111]], + [70,449,5,[7,14,43],[7,14,107]], + [70,450,5,[7,14,42],[6,15,92]], + [70,451,5,[7,14,39],[6,14,67]], + [70,455,5,[7,14,38],[6,14,58]], + [70,457,5,[7,14,37],[7,14,79]], + [70,458,5,[7,14,34],[7,14,95]], + [70,463,5,[7,14,30],[7,14,100]], + [70,465,5,[7,14,29],[6,14,21]], + [70,467,5,[7,14,25],[6,14,28]], + [70,473,5,[7,14,13],[7,14,50]], + [70,474,5,[7,14,10],[7,14,5]], + [70,475,5,[7,14,9],[6,15,85]], + [70,479,5,[7,14,7],[7,14,58]], + [70,481,5,[7,14,6],[7,14,20]], + [70,482,5,[7,14,5],[6,14,103]], + [70,483,5,[7,14,4],[6,15,80]], + [70,487,5,[7,14,3],[6,14,22]], + [70,489,5,[7,14,2],[6,14,46]], + [70,490,5,[7,14,1],[6,14,14]], + [70,491,5,[6,14,0],[6,15,51]], + [71,199,9,[7,14,60],[7,14,19]], + [71,245,9,[7,14,29],[7,15,23]], + [71,262,9,[7,14,19],[7,15,27]], + [71,282,9,[7,14,11],[7,14,99]], + [71,383,5,[7,15,46],[7,14,110]], + [71,419,5,[7,15,31],[7,15,46]], + [71,427,5,[7,15,27],[7,14,60]], + [71,435,5,[7,15,23],[7,14,29]], + [71,451,5,[7,15,19],[7,14,102]], + [71,463,5,[7,15,14],[7,14,96]] + ] +} diff --git a/research/complex-571-cold14-k492/data/SPEC.json b/research/complex-571-cold14-k492/data/SPEC.json new file mode 100644 index 0000000000..57d71ae0df --- /dev/null +++ b/research/complex-571-cold14-k492/data/SPEC.json @@ -0,0 +1,2270 @@ +{ + "schema": "witness-spec/1", + "name": "cold14", + "data": { + "plan_sha256": "fd0d0272aa1add2843e0e2e36e9610309ddc08fc448eb0accd768032d5f725d8", + "owners_sha256": "cb84807fd1ad5ced769e6847866e691078c84d87265033052fc962a739268641" + }, + "providers": { + "ck": { + "inventory": { + "4": 30, + "5": 48, + "7": 68, + "8": 92, + "9": 254 + }, + "native_negative_controls": 25, + "phase_edges": 3104, + "expected_profile": { + "1": 2596, + "2": 552, + "3": 304, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "LOCAL-PROGRAMS.json.gz": "854f17274092263dc25e60367f4cd0d29f60a8446becd17cc1883ebed7a97900", + "LOCAL-CHECKS.json": "9e7be4f5eb567ffe886871b3fa434cc71f352e91cc9da07cb4e72c5742f24db4", + "INDEPENDENT-LOCAL-REPLAY.json": "ad854d9d15515cbcf7a2bee221d9c3cf0c7215770521866b12ce98aa777e310b", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "RESIDUAL-ADAPTERS.json": "8283dfa442fc7e7626f3356385bda8607b8d15eecfdc9515a6271c29da6caa7a" + }, + "entering": 216, + "entrance": 424, + "width_digest": "3a9f7a03a60c67a2fede8a514e9d4931eec348fc69eb2ac53ccda5d82a4c1c02", + "program_hashes": { + "backward": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58", + "forward": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + "artifacts.LOCAL-CHECKS.json": "059c4e59142bdf5c19dc7c0afebcddfec28e6e60cbc7299b8bdcc624afbc0cbe", + "artifacts.CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "artifacts.RESIDUAL-ADAPTERS.json": "4697965c1b466fd3eaf37fa1fbbd45bb06c78cb0fe0b3a253744efb4013581b9", + "complete_contract": { + "local": { + "backward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224986, + "prefix_l1": "146068000389976309073/32", + "prefix_bits": 62, + "coefficient_work_primitive_count": 111779, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 238, + "post_wrappers": 238, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224938, + "prefix_l1": "920709848294", + "prefix_bits": 40, + "coefficient_work_primitive_count": 111747, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 238, + "post_wrappers": 238, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 492, + "centres": 8, + "v": 112, + "h": 9, + "n": 716, + "entering_helpers": 216, + "entrance_rank": 424, + "terminal_codimension": 146, + "hyperplane_ended_helpers": 58, + "cold_hyperplane_ended_helpers": 22, + "width_inventory": { + "4": 30, + "5": 48, + "7": 68, + "8": 92, + "9": 254 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 426400, + "local_primitive_bound": 11058401095386, + "compiler": 25934336, + "children": 3698, + "paid_profile": { + "1": 2596, + "2": 552, + "3": 304, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "program_hashes": { + "backward": "314b814a33d1339c7862112a4c927c19af0aee03dead0f841c983814a9f24d58", + "forward": "24d4fdd9641278242add4c3ed9843e138e04f6a54d067cf6b755f6bcba84978f" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "9bbc75dede090cfd7a0a0252424ea9d9f6211e2350d2a801d4e4f2f0784167c7", + "LOCAL-PROGRAMS.json.gz": "854f17274092263dc25e60367f4cd0d29f60a8446becd17cc1883ebed7a97900", + "LOCAL-CHECKS.json": "9e7be4f5eb567ffe886871b3fa434cc71f352e91cc9da07cb4e72c5742f24db4", + "INDEPENDENT-LOCAL-REPLAY.json": "ad854d9d15515cbcf7a2bee221d9c3cf0c7215770521866b12ce98aa777e310b", + "CLIFFORD-RECIPES.json": "dfb64e71409a395f9375d9cc2258365d462bab2d28b707dcfba38994dd5aa0b9", + "CLIFFORD-REVIEW.json": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "RESIDUAL-ADAPTERS.json": "8283dfa442fc7e7626f3356385bda8607b8d15eecfdc9515a6271c29da6caa7a" + } + }, + "semantic_phase_sha256": "dceebd0983fdfe94922323ae6499fc2d9bfbb7886c6843af5673b0266ec5b609", + "expected_local.forward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224938, + "prefix_l1": "920709848294", + "coefficient_work_primitive_count": 111747 + }, + "wrappers": 238, + "expected_local.backward": { + "events": 27256, + "macros": 21936, + "real_component_primitives": 224986, + "prefix_l1": "146068000389976309073/32", + "coefficient_work_primitive_count": 111779 + } + }, + "jp8": { + "inventory": { + "4": 30, + "5": 48, + "7": 36, + "8": 112, + "9": 266 + }, + "native_negative_controls": 25, + "phase_edges": 3015, + "expected_profile": { + "1": 2512, + "2": 400, + "3": 448, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "LOCAL-PROGRAMS.json.gz": "efe45ce7fb025a6f53cc9eb54e951ac2211a5ed927e689a049e4f68ca680654b", + "LOCAL-CHECKS.json": "e29bdcebdc2966979a9f5911f56b68c6f4942f6fdbeb6737e9db44e147d0193a", + "INDEPENDENT-LOCAL-REPLAY.json": "f31a73829f5de91fe98c3986bb2ad9b31e7b33881720029347051ab2b686af3c", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "RESIDUAL-ADAPTERS.json": "99e1873464e8e718ea25fd80df5aaed0e5508b83e9bf2bdd094ea5c95fdf87c9" + }, + "entering": 204, + "entrance": 380, + "width_digest": "d25e4a014d65faeb0b2ccdf152bc0a4f572d0dc3c17874c39d10382ce9881505", + "program_hashes": { + "backward": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf", + "forward": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + "artifacts.LOCAL-CHECKS.json": "0fad744aa863eedb288a9f87b1c23225a36b316b6275cc3b1bcedd42afe28a67", + "artifacts.CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "artifacts.RESIDUAL-ADAPTERS.json": "bdb44cf523636f307ebb3617da548f2e3a8af74321eabe24aef40186e280a917", + "complete_contract": { + "local": { + "backward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257280, + "prefix_l1": "16753412757380464429924108070201913461/8388608", + "prefix_bits": 101, + "coefficient_work_primitive_count": 127930, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 226, + "post_wrappers": 226, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257232, + "prefix_l1": "4536094588619580433782972610869617/281474976710656", + "prefix_bits": 64, + "coefficient_work_primitive_count": 127898, + "all_exact_columns": 716, + "dirty_helper_columns": 492, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 226, + "post_wrappers": 226, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 492, + "centres": 8, + "v": 112, + "h": 9, + "n": 716, + "entering_helpers": 204, + "entrance_rank": 380, + "terminal_codimension": 146, + "hyperplane_ended_helpers": 58, + "cold_hyperplane_ended_helpers": 22, + "width_inventory": { + "4": 30, + "5": 48, + "7": 36, + "8": 112, + "9": 266 + }, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "local_adapters": 437040, + "local_primitive_bound": 11334342462720, + "compiler": 25934336, + "children": 3606, + "paid_profile": { + "1": 2512, + "2": 400, + "3": 448, + "4": 160, + "5": 70, + "6": 8, + "8": 8 + }, + "program_hashes": { + "backward": "7fa2c16d9623ab39eeaf00f5ea03a8ff7aa099a3f62949d03d77bb44ac4d62cf", + "forward": "3d92c93a12aaf6bafcc0bc5bee33e4a710f3439c5c43efcd91833e9a9da052b8" + }, + "semantic_artifact_sha256": { + "CANONICAL-WORD.json.gz": "fb4a8d14ed2a8048698bea6ae16f86163a1aa6c80f2eb622222eee5cdbce9b3b", + "LOCAL-PROGRAMS.json.gz": "efe45ce7fb025a6f53cc9eb54e951ac2211a5ed927e689a049e4f68ca680654b", + "LOCAL-CHECKS.json": "e29bdcebdc2966979a9f5911f56b68c6f4942f6fdbeb6737e9db44e147d0193a", + "INDEPENDENT-LOCAL-REPLAY.json": "f31a73829f5de91fe98c3986bb2ad9b31e7b33881720029347051ab2b686af3c", + "CLIFFORD-RECIPES.json": "2799d73dd08c4435e5900ff2ae6ebc7f34535c153e173ab88d66d1f0b5e6dcde", + "CLIFFORD-REVIEW.json": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "RESIDUAL-ADAPTERS.json": "99e1873464e8e718ea25fd80df5aaed0e5508b83e9bf2bdd094ea5c95fdf87c9" + } + }, + "semantic_phase_sha256": "4231236ccc3bf45c469e4c98e3071a01ebf75f6366fb73b733e969fed65338b9", + "expected_local.forward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257232, + "prefix_l1": "4536094588619580433782972610869617/281474976710656", + "coefficient_work_primitive_count": 127898 + }, + "wrappers": 226, + "expected_local.backward": { + "events": 27909, + "macros": 22693, + "real_component_primitives": 257280, + "prefix_l1": "16753412757380464429924108070201913461/8388608", + "coefficient_work_primitive_count": 127930 + } + } + }, + "dispatch": [ + [ + 0, + 0, + "ck" + ], + [ + 0, + 1, + "ck" + ], + [ + 0, + 2, + "ck" + ], + [ + 0, + 3, + "ck" + ], + [ + 0, + 4, + "jp8" + ], + [ + 0, + 5, + "jp8" + ], + [ + 0, + 6, + "jp8" + ], + [ + 0, + 7, + "jp8" + ], + [ + 1, + 0, + "ck" + ], + [ + 1, + 1, + "ck" + ], + [ + 1, + 2, + "ck" + ], + [ + 1, + 3, + "jp8" + ], + [ + 1, + 4, + "jp8" + ], + [ + 1, + 5, + "jp8" + ], + [ + 1, + 6, + "jp8" + ], + [ + 1, + 7, + "jp8" + ], + [ + 2, + 0, + "jp8" + ], + [ + 2, + 1, + "jp8" + ], + [ + 2, + 2, + "jp8" + ], + [ + 2, + 3, + "jp8" + ], + [ + 2, + 4, + "jp8" + ], + [ + 2, + 5, + "jp8" + ], + [ + 2, + 6, + "jp8" + ], + [ + 2, + 7, + "jp8" + ], + [ + 3, + 0, + "jp8" + ], + [ + 3, + 1, + "jp8" + ], + [ + 3, + 2, + "jp8" + ], + [ + 3, + 3, + "jp8" + ], + [ + 3, + 4, + "jp8" + ], + [ + 3, + 5, + "jp8" + ], + [ + 3, + 6, + "jp8" + ], + [ + 3, + 7, + "jp8" + ], + [ + 4, + 0, + "jp8" + ], + [ + 4, + 1, + "jp8" + ], + [ + 4, + 2, + "jp8" + ], + [ + 4, + 3, + "jp8" + ], + [ + 4, + 4, + "jp8" + ], + [ + 4, + 5, + "jp8" + ], + [ + 4, + 6, + "jp8" + ], + [ + 4, + 7, + "jp8" + ], + [ + 5, + 0, + "jp8" + ], + [ + 5, + 1, + "jp8" + ], + [ + 5, + 2, + "jp8" + ], + [ + 5, + 3, + "jp8" + ], + [ + 5, + 4, + "jp8" + ], + [ + 5, + 5, + "jp8" + ], + [ + 5, + 6, + "jp8" + ], + [ + 5, + 7, + "jp8" + ], + [ + 6, + 0, + "jp8" + ], + [ + 6, + 1, + "jp8" + ], + [ + 6, + 2, + "jp8" + ], + [ + 6, + 3, + "jp8" + ], + [ + 6, + 4, + "jp8" + ], + [ + 6, + 5, + "jp8" + ], + [ + 6, + 6, + "jp8" + ], + [ + 6, + 7, + "jp8" + ], + [ + 7, + 0, + "jp8" + ], + [ + 7, + 1, + "jp8" + ], + [ + 7, + 2, + "jp8" + ], + [ + 7, + 3, + "jp8" + ], + [ + 7, + 4, + "jp8" + ], + [ + 7, + 5, + "jp8" + ], + [ + 7, + 6, + "jp8" + ], + [ + 7, + 7, + "jp8" + ], + [ + 8, + 0, + "jp8" + ], + [ + 8, + 1, + "jp8" + ], + [ + 8, + 2, + "jp8" + ], + [ + 8, + 3, + "jp8" + ], + [ + 8, + 4, + "jp8" + ], + [ + 8, + 5, + "jp8" + ], + [ + 8, + 6, + "jp8" + ], + [ + 8, + 7, + "jp8" + ] + ], + "call_order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "expected": { + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "global_profile": { + "1": 181580, + "2": 29864, + "3": 31265, + "4": 11521, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "22": 1, + "48": 2213 + }, + "owners_per_call": 716, + "hosted_residuals": 35424, + "rank_mass": 520704, + "actual_73column_sigmas": 6702, + "cross_replica_helper_roles": 26498, + "idle_remainders": 2361, + "live": 7168, + "physical": 7670, + "deficit": 2560, + "entering_helper_roles": 16356, + "idle_remainder_profile": { + "1": 128, + "3": 17, + "4": 1, + "7": 1, + "22": 1, + "48": 2213 + }, + "complex_lower": "1638104468552563164027/1000000000000000000000000", + "conservative_complex_lower": "327620893135027892143/200000000000000000000000", + "kappa": "408856367695223/250000000000000000", + "kappa_decimal": "0.001635425470780892", + "conservative_kappa_decimal": "0.001635425467912872", + "gain_baseline_kappa": "0.001601260169988325", + "mutations_rejected": 23, + "assembly_controls_rejected": 114 + }, + "build": { + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "sources": { + "multicold": { + "dir": "complex-multicold", + "pr": 568, + "commit": "71c99ac935a33bb7b59a1b4a7af8725a939b0b90", + "manifest_sha256": "328ce8023d33deb308b0f1ae2320424050f836d791cf60a613ae8408e7d6f3ab", + "full_tree": true, + "files": { + "data/EIGHT-COLD.json": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160", + "data/EIGHT-MULTICOLD.json": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9" + } + }, + "structural_gain": { + "dir": "structural-gain", + "pr": 571, + "commit": "b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3", + "manifest_sha256": "eb0499a927665a48a25355075dcb7dc76d0fc43c67ea6d311d9e0242b6d4a25d", + "full_tree": false, + "files": { + "frontier-composition/combined-prefix-word/FULL-WORD.json.gz": "a6cd88224427bad6d00b6fbe1d201a2c09e496c90e2cecdc04d7f2ff11a4ba42" + } + }, + "larger_gain": { + "dir": "larger-gain", + "pr": 569, + "commit": "897213a855b7fb8a1b8b0e552a2f5c42e6c1b326", + "manifest_sha256": "54d67f45ad520f4a134e069336bd0ff639aaeada28d13539298e4f2655c9692d", + "full_tree": false, + "files": { + "providers/build_entrance_promotions.py": "50737e20553b5d44381c58e5b35b5031a6797dfdda1c67a1656069f1f6203cd2", + "providers/coupled_frames_base.py": "b6033cd2959297a624b557f3d04665c8fbb680a4c0987daf0704ef93711700bd", + "providers/search_suffix_kernels.py": "0523c90f036ff01cac9299fe4e47dc40dd04f264f09415985d2c98b4da43371c" + } + }, + "joint_prefix": { + "dir": "complex-joint-prefix", + "pr": 575, + "commit": "eac6f7e378ab622dac50a2fd4b7ef6eab014de44", + "manifest_sha256": "fd30701bd9bd652985db18fa95bee08a34615ef417a2feb2f55efd60a0b5d665", + "full_tree": false, + "files": { + "code/audit_joint_prefix.py": "c01836709f3650a39c46418ac1771980b4b96288e60b51032b5d31419e484c37", + "code/audit_multicold_controls.py": "3ff631f0bdc7e707d4296ff441802cc26da9c6556650469f09ab7253558b4017", + "code/build_joint_prefix.py": "d7804669e528b6fd8d80195a4a2e76efac9bc67440b82c73973f4bc9fe273783", + "data/EIGHTCOLD-JOINT-KERNELS.json": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585", + "data/JOINT-PREFIX.json": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2" + } + }, + "frame_coalescing": { + "dir": "kernel-frame-coalescing", + "pr": 583, + "commit": "89be768f0157f5a3d8e4db69cf1748768605eac9", + "manifest_sha256": "f336fd702c54422d79c1b9ba7d8699ae6c99518f66a5b5bbc5f3be331fa1fadd", + "full_tree": false, + "files": { + "code/build_frames.py": "59f486c52293c76f1f6140c5f12f7a555a956b455e853c79136fc227deefbc3d" + } + }, + "direct_delivery": { + "dir": "direct-delivery504-global", + "pr": 531, + "commit": "e07a8a3f9f79c22113398a0c5dbbc7601f489b3e", + "manifest_sha256": "c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1", + "full_tree": false, + "files": { + "code/construct_504.py": "a0d96ede40b957c38dcb64296d5f4a76c23dfb8c8875e01a80b5f1bdf6e8360e", + "inputs/hamming/PROTOTYPE.json": "327d2a868043e846381aa58a33053c24425e8cad522ff401b10ec8af1d649a3f", + "inputs/hamming/PACKET-PROGRAMS.json.gz": "d833ae0390d165d7da0c639a3c7aeb77156c2ddb52447087cb49b9d03b19e9b9" + } + } + }, + "providers": { + "ck": { + "base": { + "kind": "k_triangle", + "schedule": "pkg:data/TRI-SCHEDULE.json", + "content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "schedule_sha256": "94da9d5575f5b237097a77ac7dd09aff594322dd9c35138bfd34ffc5e1a7a51e", + "helper_map_sha256": "688d5115b221be68c96970822cc04ff698e2a84432fa7db9cb59057f6fe55def" + }, + "steps": [ + { + "type": "port_stage", + "shadow_input": "raw504", + "shadow_output": "promoted558", + "input_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "shadow_input_content_sha256": "aad9b01b30bb8a2c5ce8d9415afafc88b0ab288986eb3d068a2bbba8e45bef51", + "shadow_output_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "output_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf" + }, + { + "type": "port_stage", + "shadow_input": "promoted558", + "shadow_output": "ck_504:base", + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "shadow_input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "shadow_output_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "output_content_sha256": "b184d491bdc7d42af32649b71cf46663a1dfdfc46046bac8cd6bdef6060afdd6" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:base", + "shadow_output": "ck_504:0", + "input_content_sha256": "b184d491bdc7d42af32649b71cf46663a1dfdfc46046bac8cd6bdef6060afdd6", + "shadow_input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "shadow_output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "output_content_sha256": "83479d878efe213b6433ddee10281b1b52fbfb56494fb0424da6cc7e7460278e" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:0", + "shadow_output": "ck_504:1", + "input_content_sha256": "83479d878efe213b6433ddee10281b1b52fbfb56494fb0424da6cc7e7460278e", + "shadow_input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "shadow_output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "output_content_sha256": "7ddfa2bca87c1bdca6b573800b646f3c2d9ff75b0dde144fcaa6f714b96c5a5c" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:1", + "shadow_output": "ck_504:2", + "input_content_sha256": "7ddfa2bca87c1bdca6b573800b646f3c2d9ff75b0dde144fcaa6f714b96c5a5c", + "shadow_input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "shadow_output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b", + "output_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33" + }, + { + "type": "frame_regroup", + "recipe": "pkg:data/recipes/k492-ck-frame_regroup.json", + "input_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33", + "recipe_sha256": "9894f9c93e931b61cf34b337c4b257a72bb1d06fbdc4e8b02368e6e29ab2b644", + "negative_controls": 48, + "output_content_sha256": "b19c9c7cf895e31cd0afd12e5226cd0c917fac387bf7b12533437141790845c8" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/k492-ck-hyperplane_end.json", + "input_content_sha256": "b19c9c7cf895e31cd0afd12e5226cd0c917fac387bf7b12533437141790845c8", + "recipe_sha256": "c71c2b05550544c29ebb4696e63cffc44d6daa76f1bc25e9c7c97e994b2c7657", + "negative_controls": 21, + "output_content_sha256": "93228917343883327493cf8e8af68be06251be4db719039ae3ca8d54595f2be6" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/k492-ck-cold_end.json.gz", + "input_content_sha256": "93228917343883327493cf8e8af68be06251be4db719039ae3ca8d54595f2be6", + "recipe_sha256": "d438123ecca120799a0b9835d0e7231ec12f61f10caff3ef466ad9f7c96e51a2", + "negative_controls": 38, + "output_content_sha256": "034662fc23dade59a3dae264cd7e3403e8379f5a2d86183a098343bd2fe04a04" + } + ], + "word_content_sha256": "034662fc23dade59a3dae264cd7e3403e8379f5a2d86183a098343bd2fe04a04" + }, + "jp8": { + "base": { + "kind": "k_triangle", + "schedule": "pkg:data/TRI-SCHEDULE.json", + "content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "schedule_sha256": "94da9d5575f5b237097a77ac7dd09aff594322dd9c35138bfd34ffc5e1a7a51e", + "helper_map_sha256": "688d5115b221be68c96970822cc04ff698e2a84432fa7db9cb59057f6fe55def" + }, + "steps": [ + { + "type": "port_stage", + "shadow_input": "raw504", + "shadow_output": "promoted558", + "input_content_sha256": "a78f4e2114212d2f4b567cc9ef4e3b31ace0c19983009cec562a642831a84c34", + "shadow_input_content_sha256": "aad9b01b30bb8a2c5ce8d9415afafc88b0ab288986eb3d068a2bbba8e45bef51", + "shadow_output_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "output_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf" + }, + { + "type": "port_stage", + "shadow_input": "promoted558", + "shadow_output": "jp8_504:0", + "input_content_sha256": "2f15196f7f6589749676d5b3a3e193997567b996621b6166f081739ecbd5b9bf", + "shadow_input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "shadow_output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "output_content_sha256": "d1e6e83d61009650261c17ee59f44cdce1528b8908d4dc5b5437a789847ae5ba" + }, + { + "type": "port_stage", + "shadow_input": "jp8_504:0", + "shadow_output": "jp8_504:1", + "input_content_sha256": "d1e6e83d61009650261c17ee59f44cdce1528b8908d4dc5b5437a789847ae5ba", + "shadow_input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "shadow_output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "output_content_sha256": "c5280629e7b9fc03ddd6be63fb9218935c21c015a5e5052ad14dfa34ae68466f" + }, + { + "type": "port_stage", + "shadow_input": "jp8_504:1", + "shadow_output": "jp8_504:3", + "input_content_sha256": "c5280629e7b9fc03ddd6be63fb9218935c21c015a5e5052ad14dfa34ae68466f", + "shadow_input_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "shadow_output_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533", + "output_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f" + }, + { + "type": "frame_regroup", + "recipe": "pkg:data/recipes/k492-jp8-frame_regroup.json", + "input_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f", + "recipe_sha256": "9bd347334de643f29865290be1ed37289f9cae6cd339547ac89b45fa7aaee65a", + "negative_controls": 48, + "output_content_sha256": "b7a36c11d0f49a027bbbcb6185a4484a65c176ac9597afd3fa28eaad58a8a0ce" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/k492-jp8-hyperplane_end.json", + "input_content_sha256": "b7a36c11d0f49a027bbbcb6185a4484a65c176ac9597afd3fa28eaad58a8a0ce", + "recipe_sha256": "e4d4dfd83d0c64cb0a8ee8c8bbd95d0510ee68699859e568fe201cd6f8d250c1", + "negative_controls": 21, + "output_content_sha256": "a51b37b5bd5e9e66ea14e9759f88cb6181bab041cb09aecd08e7a11956100016" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/k492-jp8-cold_end.json.gz", + "input_content_sha256": "a51b37b5bd5e9e66ea14e9759f88cb6181bab041cb09aecd08e7a11956100016", + "recipe_sha256": "660d2438c5fd4dd4cc49eefff071ac53f50adb65f292005f182082d27555a6a9", + "negative_controls": 38, + "output_content_sha256": "30ace4fbee52a519255724ecb5a2642a3f052fb588c1473ad73682070b2a8a23" + } + ], + "word_content_sha256": "30ace4fbee52a519255724ecb5a2642a3f052fb588c1473ad73682070b2a8a23" + } + }, + "shadows": { + "ck_504": { + "base": { + "kind": "source_file", + "file": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6" + }, + "steps": [ + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/ck-step0-greedy_kernels.json", + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "recipe_sha256": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056", + "omission_controls": 48, + "output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/ck-step1-frame_coalesce.json", + "input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "recipe_sha256": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3", + "negative_controls": 12, + "output_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/ck-step2-gate_move_coalesce.json", + "input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "recipe_sha256": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00", + "negative_controls": 6, + "output_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b" + } + ], + "word_content_sha256": "efddf09daea03240f09f4b820704b07f53782a153e7dff154dbe7406e69cfb0b" + }, + "jp8_504": { + "base": { + "kind": "frozen558_promoted", + "content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d" + }, + "steps": [ + { + "type": "cold_kernel", + "recipe": "multicold:data/EIGHT-COLD.json", + "input_content_sha256": "2b67fd69853dfc28f30ab5bb928f573077ae9d2bfa12cc36254d018d56133a5d", + "recipe_sha256": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160", + "omission_controls": 6, + "output_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d" + }, + { + "type": "multicut", + "recipe": "multicold:data/EIGHT-MULTICOLD.json", + "input_content_sha256": "edb55811a9d38802c311c74bdd2d4d1b2f3eaf37d06e4178eef0785c2fa4b57d", + "recipe_sha256": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9", + "omission_controls": 32, + "output_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f" + }, + { + "type": "frozen558_scalar_audits" + }, + { + "type": "joint_prefix", + "variant": "eightcold", + "kernel_recipes": "joint_prefix:data/EIGHTCOLD-JOINT-KERNELS.json", + "recipe": "joint_prefix:data/JOINT-PREFIX.json", + "input_content_sha256": "055c0fb41d8b0d506674f62d0227833a74eabd19a022a1dfeb72c3952b7a030f", + "recipe_sha256": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2", + "kernel_recipes_sha256": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585", + "omission_controls": 135, + "rank5_controls": 8, + "joint_negative_controls": 15, + "output_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533" + } + ], + "word_content_sha256": "6c361b33967bb62d878b3acef44a4ac2c70970e99f36a11906b03811495de533" + } + } + }, + "width_spot_helpers": [ + 264, + 276, + 288, + 300 + ] +} diff --git a/research/complex-571-cold14-k492/data/TRI-SCHEDULE.json b/research/complex-571-cold14-k492/data/TRI-SCHEDULE.json new file mode 100644 index 0000000000..53c8a99444 --- /dev/null +++ b/research/complex-571-cold14-k492/data/TRI-SCHEDULE.json @@ -0,0 +1 @@ +{"full_pairs": [[0, 1], [2, 3], [4, 5], [6, 7]], "triangles": [{"p": [0, 1], "e": -1, "reads": [[21, [0, 1, 4, 5], 17], [61, [0, 1, 2, 3], 17], [60, [0, 1, 6, 7], 19], [29, [0, 1, 6, 7], 17], [20, [0, 1, 2, 3], 19], [29, [0, 1, 2, 3], 19], [60, [0, 1, 4, 5], 17], [28, [0, 1, 4, 5], 19], [28, [0, 1, 6, 7], 17], [61, [0, 1, 6, 7], 19], [21, [0, 1, 4, 5], 19], [60, [0, 1, 4, 5], 19], [20, [0, 1, 2, 3], 17], [29, [0, 1, 2, 3], 17], [61, [0, 1, 4, 5], 17], [28, [0, 1, 2, 3], 19], [21, [0, 1, 6, 7], 17], [60, [0, 1, 6, 7], 17], [20, [0, 1, 6, 7], 19], [20, [0, 1, 4, 5], 17], [28, [0, 1, 2, 3], 17], [29, [0, 1, 6, 7], 19], [61, [0, 1, 4, 5], 19], [21, [0, 1, 2, 3], 19], [60, [0, 1, 2, 3], 19], [21, [0, 1, 2, 3], 17], [29, [0, 1, 4, 5], 17], [61, [0, 1, 6, 7], 17], [28, [0, 1, 6, 7], 19], [20, [0, 1, 4, 5], 19]]}, {"p": [2, 3], "e": -1, "reads": [[85, [2, 3, 4, 5], 17], [84, [2, 3, 6, 7], 19], [92, [2, 3, 4, 5], 19], [93, [0, 1, 2, 3], 21], [84, [2, 3, 4, 5], 17], [85, [2, 3, 4, 5], 19], [62, [0, 1, 2, 3], 2], [84, [2, 3, 4, 5], 19], [58, [2, 3, 6, 7], 17], [58, [2, 3, 6, 7], 19], [93, [0, 1, 2, 3], 2], [92, [0, 1, 2, 3], 21], [85, [0, 1, 2, 3], 21], [92, [0, 1, 2, 3], 2], [62, [2, 3, 6, 7], 17], [62, [2, 3, 6, 7], 19], [93, [2, 3, 6, 7], 17], [58, [2, 3, 4, 5], 17], [62, [2, 3, 4, 5], 17], [85, [0, 1, 2, 3], 2], [92, [2, 3, 6, 7], 17], [84, [0, 1, 2, 3], 21], [84, [0, 1, 2, 3], 2], [93, [2, 3, 6, 7], 19], [58, [2, 3, 4, 5], 19], [85, [2, 3, 6, 7], 17], [93, [2, 3, 4, 5], 17], [58, [0, 1, 2, 3], 21], [92, [2, 3, 6, 7], 19], [62, [2, 3, 4, 5], 19]]}, {"p": [4, 5], "e": -1, "reads": [[53, [2, 3, 4, 5], 21], [26, [4, 5, 6, 7], 19], [26, [2, 3, 4, 5], 21], [30, [2, 3, 4, 5], 2], [90, [4, 5, 6, 7], 17], [52, [0, 1, 4, 5], 2], [30, [4, 5, 6, 7], 17], [90, [0, 1, 4, 5], 2], [94, [0, 1, 4, 5], 21], [94, [2, 3, 4, 5], 2], [53, [0, 1, 4, 5], 21], [52, [4, 5, 6, 7], 19], [52, [2, 3, 4, 5], 21], [26, [0, 1, 4, 5], 21], [52, [0, 1, 4, 5], 21], [94, [4, 5, 6, 7], 17], [30, [0, 1, 4, 5], 2], [53, [2, 3, 4, 5], 2], [26, [2, 3, 4, 5], 2], [52, [2, 3, 4, 5], 2], [53, [4, 5, 6, 7], 17], [26, [4, 5, 6, 7], 17], [94, [0, 1, 4, 5], 2], [90, [4, 5, 6, 7], 19], [90, [2, 3, 4, 5], 21], [90, [0, 1, 4, 5], 21], [30, [4, 5, 6, 7], 19], [94, [4, 5, 6, 7], 19], [53, [0, 1, 4, 5], 2], [30, [2, 3, 4, 5], 21]]}, {"p": [6, 7], "e": -1, "reads": [[54, [2, 3, 6, 7], 21], [82, [0, 1, 6, 7], 21], [86, [2, 3, 6, 7], 2], [22, [0, 1, 6, 7], 2], [50, [4, 5, 6, 7], 21], [50, [2, 3, 6, 7], 21], [54, [2, 3, 6, 7], 2], [50, [2, 3, 6, 7], 2], [18, [4, 5, 6, 7], 2], [82, [0, 1, 6, 7], 2], [18, [4, 5, 6, 7], 21], [86, [0, 1, 6, 7], 21], [22, [4, 5, 6, 7], 2], [82, [4, 5, 6, 7], 2], [86, [0, 1, 6, 7], 2], [86, [4, 5, 6, 7], 2], [22, [4, 5, 6, 7], 21], [82, [4, 5, 6, 7], 21], [18, [2, 3, 6, 7], 21], [22, [2, 3, 6, 7], 21], [82, [2, 3, 6, 7], 21], [86, [4, 5, 6, 7], 21], [18, [2, 3, 6, 7], 2], [22, [2, 3, 6, 7], 2], [54, [0, 1, 6, 7], 21], [54, [0, 1, 6, 7], 2], [54, [4, 5, 6, 7], 2], [50, [0, 1, 6, 7], 21], [50, [0, 1, 6, 7], 2], [18, [0, 1, 6, 7], 21]]}]} \ No newline at end of file diff --git a/research/complex-571-cold14-k492/data/WITNESS.json b/research/complex-571-cold14-k492/data/WITNESS.json new file mode 100644 index 0000000000..1f2831603c --- /dev/null +++ b/research/complex-571-cold14-k492/data/WITNESS.json @@ -0,0 +1,897 @@ +{ + "schema": "witness/1", + "name": "cold14", + "geometry": { + "v": 112, + "h": 9, + "helpers": 492, + "centres": 8, + "stages": 9, + "replicas": 8, + "cold_helpers": [ + 264, + 276, + 288, + 300 + ] + }, + "gain_baseline_kappa": "0.001601260169988325", + "data": { + "plan_sha256": "fd0d0272aa1add2843e0e2e36e9610309ddc08fc448eb0accd768032d5f725d8", + "owners_sha256": "cb84807fd1ad5ced769e6847866e691078c84d87265033052fc962a739268641" + }, + "dispatch": [ + [ + 0, + 0, + "ck" + ], + [ + 0, + 1, + "ck" + ], + [ + 1, + 0, + "ck" + ], + [ + 0, + 2, + "ck" + ], + [ + 1, + 1, + "ck" + ], + [ + 2, + 0, + "jp8" + ], + [ + 0, + 3, + "ck" + ], + [ + 1, + 2, + "ck" + ], + [ + 2, + 1, + "jp8" + ], + [ + 3, + 0, + "jp8" + ], + [ + 0, + 4, + "jp8" + ], + [ + 1, + 3, + "jp8" + ], + [ + 2, + 2, + "jp8" + ], + [ + 3, + 1, + "jp8" + ], + [ + 4, + 0, + "jp8" + ], + [ + 0, + 5, + "jp8" + ], + [ + 1, + 4, + "jp8" + ], + [ + 2, + 3, + "jp8" + ], + [ + 3, + 2, + "jp8" + ], + [ + 4, + 1, + "jp8" + ], + [ + 5, + 0, + "jp8" + ], + [ + 0, + 6, + "jp8" + ], + [ + 1, + 5, + "jp8" + ], + [ + 2, + 4, + "jp8" + ], + [ + 3, + 3, + "jp8" + ], + [ + 4, + 2, + "jp8" + ], + [ + 5, + 1, + "jp8" + ], + [ + 0, + 7, + "jp8" + ], + [ + 6, + 0, + "jp8" + ], + [ + 1, + 6, + "jp8" + ], + [ + 2, + 5, + "jp8" + ], + [ + 3, + 4, + "jp8" + ], + [ + 4, + 3, + "jp8" + ], + [ + 5, + 2, + "jp8" + ], + [ + 6, + 1, + "jp8" + ], + [ + 1, + 7, + "jp8" + ], + [ + 7, + 0, + "jp8" + ], + [ + 2, + 6, + "jp8" + ], + [ + 3, + 5, + "jp8" + ], + [ + 4, + 4, + "jp8" + ], + [ + 5, + 3, + "jp8" + ], + [ + 6, + 2, + "jp8" + ], + [ + 7, + 1, + "jp8" + ], + [ + 2, + 7, + "jp8" + ], + [ + 8, + 0, + "jp8" + ], + [ + 3, + 6, + "jp8" + ], + [ + 4, + 5, + "jp8" + ], + [ + 5, + 4, + "jp8" + ], + [ + 6, + 3, + "jp8" + ], + [ + 7, + 2, + "jp8" + ], + [ + 8, + 1, + "jp8" + ], + [ + 3, + 7, + "jp8" + ], + [ + 4, + 6, + "jp8" + ], + [ + 5, + 5, + "jp8" + ], + [ + 6, + 4, + "jp8" + ], + [ + 7, + 3, + "jp8" + ], + [ + 8, + 2, + "jp8" + ], + [ + 4, + 7, + "jp8" + ], + [ + 5, + 6, + "jp8" + ], + [ + 6, + 5, + "jp8" + ], + [ + 7, + 4, + "jp8" + ], + [ + 8, + 3, + "jp8" + ], + [ + 5, + 7, + "jp8" + ], + [ + 6, + 6, + "jp8" + ], + [ + 7, + 5, + "jp8" + ], + [ + 8, + 4, + "jp8" + ], + [ + 6, + 7, + "jp8" + ], + [ + 7, + 6, + "jp8" + ], + [ + 8, + 5, + "jp8" + ], + [ + 7, + 7, + "jp8" + ], + [ + 8, + 6, + "jp8" + ], + [ + 8, + 7, + "jp8" + ] + ], + "call_order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "build": { + "status": "PASS_COLD14_NATIVE_COMPLEX_AND_CITED_BIT", + "sources": { + "multicold": { + "dir": "complex-multicold", + "pr": 568, + "commit": "71c99ac935a33bb7b59a1b4a7af8725a939b0b90", + "manifest_sha256": "328ce8023d33deb308b0f1ae2320424050f836d791cf60a613ae8408e7d6f3ab", + "full_tree": true, + "files": { + "data/EIGHT-COLD.json": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160", + "data/EIGHT-MULTICOLD.json": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9" + } + }, + "structural_gain": { + "dir": "structural-gain", + "pr": 571, + "commit": "b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3", + "manifest_sha256": "eb0499a927665a48a25355075dcb7dc76d0fc43c67ea6d311d9e0242b6d4a25d", + "full_tree": false, + "files": { + "frontier-composition/combined-prefix-word/FULL-WORD.json.gz": "a6cd88224427bad6d00b6fbe1d201a2c09e496c90e2cecdc04d7f2ff11a4ba42" + } + }, + "larger_gain": { + "dir": "larger-gain", + "pr": 569, + "commit": "897213a855b7fb8a1b8b0e552a2f5c42e6c1b326", + "manifest_sha256": "54d67f45ad520f4a134e069336bd0ff639aaeada28d13539298e4f2655c9692d", + "full_tree": false, + "files": { + "providers/build_entrance_promotions.py": "50737e20553b5d44381c58e5b35b5031a6797dfdda1c67a1656069f1f6203cd2", + "providers/coupled_frames_base.py": "b6033cd2959297a624b557f3d04665c8fbb680a4c0987daf0704ef93711700bd", + "providers/search_suffix_kernels.py": "0523c90f036ff01cac9299fe4e47dc40dd04f264f09415985d2c98b4da43371c" + } + }, + "joint_prefix": { + "dir": "complex-joint-prefix", + "pr": 575, + "commit": "eac6f7e378ab622dac50a2fd4b7ef6eab014de44", + "manifest_sha256": "fd30701bd9bd652985db18fa95bee08a34615ef417a2feb2f55efd60a0b5d665", + "full_tree": false, + "files": { + "code/audit_joint_prefix.py": "c01836709f3650a39c46418ac1771980b4b96288e60b51032b5d31419e484c37", + "code/audit_multicold_controls.py": "3ff631f0bdc7e707d4296ff441802cc26da9c6556650469f09ab7253558b4017", + "code/build_joint_prefix.py": "d7804669e528b6fd8d80195a4a2e76efac9bc67440b82c73973f4bc9fe273783", + "data/EIGHTCOLD-JOINT-KERNELS.json": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585", + "data/JOINT-PREFIX.json": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2" + } + }, + "frame_coalescing": { + "dir": "kernel-frame-coalescing", + "pr": 583, + "commit": "89be768f0157f5a3d8e4db69cf1748768605eac9", + "manifest_sha256": "f336fd702c54422d79c1b9ba7d8699ae6c99518f66a5b5bbc5f3be331fa1fadd", + "full_tree": false, + "files": { + "code/build_frames.py": "59f486c52293c76f1f6140c5f12f7a555a956b455e853c79136fc227deefbc3d" + } + }, + "direct_delivery": { + "dir": "direct-delivery504-global", + "pr": 531, + "commit": "e07a8a3f9f79c22113398a0c5dbbc7601f489b3e", + "manifest_sha256": "c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1", + "full_tree": false, + "files": { + "code/construct_504.py": "a0d96ede40b957c38dcb64296d5f4a76c23dfb8c8875e01a80b5f1bdf6e8360e", + "inputs/hamming/PROTOTYPE.json": "327d2a868043e846381aa58a33053c24425e8cad522ff401b10ec8af1d649a3f", + "inputs/hamming/PACKET-PROGRAMS.json.gz": "d833ae0390d165d7da0c639a3c7aeb77156c2ddb52447087cb49b9d03b19e9b9" + } + } + }, + "providers": { + "ck": { + "base": { + "kind": "k_triangle", + "schedule": "pkg:data/TRI-SCHEDULE.json", + "schedule_sha256": "94da9d5575f5b237097a77ac7dd09aff594322dd9c35138bfd34ffc5e1a7a51e" + }, + "steps": [ + { + "type": "port_stage", + "shadow_input": "raw504", + "shadow_output": "promoted558" + }, + { + "type": "port_stage", + "shadow_input": "promoted558", + "shadow_output": "ck_504:base" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:base", + "shadow_output": "ck_504:0" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:0", + "shadow_output": "ck_504:1" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:1", + "shadow_output": "ck_504:2" + }, + { + "type": "frame_regroup", + "recipe": "pkg:data/recipes/k492-ck-frame_regroup.json", + "recipe_sha256": "9894f9c93e931b61cf34b337c4b257a72bb1d06fbdc4e8b02368e6e29ab2b644" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/k492-ck-hyperplane_end.json", + "recipe_sha256": "c71c2b05550544c29ebb4696e63cffc44d6daa76f1bc25e9c7c97e994b2c7657" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/k492-ck-cold_end.json.gz", + "recipe_sha256": "d438123ecca120799a0b9835d0e7231ec12f61f10caff3ef466ad9f7c96e51a2" + } + ] + }, + "jp8": { + "base": { + "kind": "k_triangle", + "schedule": "pkg:data/TRI-SCHEDULE.json", + "schedule_sha256": "94da9d5575f5b237097a77ac7dd09aff594322dd9c35138bfd34ffc5e1a7a51e" + }, + "steps": [ + { + "type": "port_stage", + "shadow_input": "raw504", + "shadow_output": "promoted558" + }, + { + "type": "port_stage", + "shadow_input": "promoted558", + "shadow_output": "jp8_504:0" + }, + { + "type": "port_stage", + "shadow_input": "jp8_504:0", + "shadow_output": "jp8_504:1" + }, + { + "type": "port_stage", + "shadow_input": "jp8_504:1", + "shadow_output": "jp8_504:3" + }, + { + "type": "frame_regroup", + "recipe": "pkg:data/recipes/k492-jp8-frame_regroup.json", + "recipe_sha256": "9bd347334de643f29865290be1ed37289f9cae6cd339547ac89b45fa7aaee65a" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/k492-jp8-hyperplane_end.json", + "recipe_sha256": "e4d4dfd83d0c64cb0a8ee8c8bbd95d0510ee68699859e568fe201cd6f8d250c1" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/k492-jp8-cold_end.json.gz", + "recipe_sha256": "660d2438c5fd4dd4cc49eefff071ac53f50adb65f292005f182082d27555a6a9" + } + ] + } + }, + "shadows": { + "ck_504": { + "base": { + "kind": "source_file", + "file": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz" + }, + "steps": [ + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/ck-step0-greedy_kernels.json", + "recipe_sha256": "c839199d0e6f8e976978fe97bc0c5579a65ba69dfb6864585b448cccc1113056" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/ck-step1-frame_coalesce.json", + "recipe_sha256": "0c8e5991e1338f03b837814dd060d4dd598c324e3538ee510913e0444a384ee3" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/ck-step2-gate_move_coalesce.json", + "recipe_sha256": "1f5b62c76915b1b8bbcf63b42dcbd87a536c34d3721c4a9b68e651404717bf00" + } + ] + }, + "jp8_504": { + "base": { + "kind": "frozen558_promoted" + }, + "steps": [ + { + "type": "cold_kernel", + "recipe": "multicold:data/EIGHT-COLD.json", + "recipe_sha256": "089617bdc33fd9f27b7fc8e9ae9e01c8e65a86a57c4b6f180f4f378f3f0e6160" + }, + { + "type": "multicut", + "recipe": "multicold:data/EIGHT-MULTICOLD.json", + "recipe_sha256": "d18ea59995d384833c95a7a55d8167f83439b6881a524ab03df972ede3e0d7b9" + }, + { + "type": "frozen558_scalar_audits" + }, + { + "type": "joint_prefix", + "recipe": "joint_prefix:data/JOINT-PREFIX.json", + "variant": "eightcold", + "kernel_recipes": "joint_prefix:data/EIGHTCOLD-JOINT-KERNELS.json", + "recipe_sha256": "0fddbd3f482b72a5197eacd75abe192e1d92f83aa2cde33a76dbc7be1682bcf2", + "kernel_recipes_sha256": "0381935d8d162eb48044bdf7e36a42af761f6d4032509b9b397ca02d3134f585" + } + ] + } + } + } +} diff --git a/research/complex-571-cold14-k492/data/cand.json b/research/complex-571-cold14-k492/data/cand.json new file mode 100644 index 0000000000..088b129b6b --- /dev/null +++ b/research/complex-571-cold14-k492/data/cand.json @@ -0,0 +1,359 @@ +{ + "schema": "candidate/1", + "name": "cold14-k492", + "package_dir": "complex-571-cold14-k492", + "title": "AtomScout's leaver-read K-triangle skeleton (R = 492 helpers) with PR604's chains ported stage by stage, ColdBeyond's v3 cold ends and the E1 pair, at a free dispatch (ck x7, jp8 x65) with an exact per-time-Hall owner map (exact-window MIP, RINS)", + "summary": "Provider menu {ck, atm3, jp8} of K-triangle words (code/construct_k_triangle.py, data/TRI-SCHEDULE.json; R = 492). Each provider chain ports the stages of its 504-helper shadow chain (build.shadows) onto the K-triangle word (port_stage), regroups frames (frame_regroup), then hyperplane_end and cold_end with recipes re-derived on the ported words. Owner search: Stack492's copy of ColdOwner's recipe.py (paths changed) driving solve_h.py (helper ranges read from the word R; objective sum F(r) = r*(73/r)^b, b = 0.001635) on the K-triangle provider locals: (1) aggregate free-dispatch LP over the menu (crossover, tight 3) -> LP-PATTERNS-AGG.json (bound 523258.923555; the warm map has 504-helper roles, every call widening, so it seeds nothing); (2) dispatch = per-time argmax of the LP selections -> DISPATCH.json (ck x7, jp8 x65); (3) exact-window LP (crossover) at that dispatch over base + AGG patterns with weight >= 0.01 -> LP-PATTERNS-EX.json (523259.086472); (4) exact-window MIP, RINS around the EX vertex (slack 2/1), gap 1e-9, 1800 s: time limit, obj 523259.13881, bound 523259.086472, gap 1.0e-7; (5) mkplan.py --locals (Stack492's mkplan: widths over the word's R helpers) reproduces data/PLAN.json byte for byte from the solve output with the admitted locals of Stack492/runs/D1. The map is admitted by the package's verifier chain, not by the search.", + "sources": { + "multicold": { + "path": "../complex-multicold", + "dir": "complex-multicold", + "pr": 568, + "commit": "71c99ac935a33bb7b59a1b4a7af8725a939b0b90", + "manifest_sha256": "328ce8023d33deb308b0f1ae2320424050f836d791cf60a613ae8408e7d6f3ab", + "full_tree": true + }, + "structural_gain": { + "path": "../structural-gain", + "dir": "structural-gain", + "pr": 571, + "commit": "b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3", + "manifest_sha256": "eb0499a927665a48a25355075dcb7dc76d0fc43c67ea6d311d9e0242b6d4a25d" + }, + "larger_gain": { + "path": "../larger-gain", + "dir": "larger-gain", + "pr": 569, + "commit": "897213a855b7fb8a1b8b0e552a2f5c42e6c1b326", + "manifest_sha256": "54d67f45ad520f4a134e069336bd0ff639aaeada28d13539298e4f2655c9692d" + }, + "joint_prefix": { + "path": "../complex-joint-prefix", + "dir": "complex-joint-prefix", + "pr": 575, + "commit": "eac6f7e378ab622dac50a2fd4b7ef6eab014de44", + "manifest_sha256": "fd30701bd9bd652985db18fa95bee08a34615ef417a2feb2f55efd60a0b5d665" + }, + "frame_coalescing": { + "path": "../kernel-frame-coalescing", + "dir": "kernel-frame-coalescing", + "pr": 583, + "commit": "89be768f0157f5a3d8e4db69cf1748768605eac9", + "manifest_sha256": "f336fd702c54422d79c1b9ba7d8699ae6c99518f66a5b5bbc5f3be331fa1fadd" + } + }, + "providers": { + "ck": { + "base": { + "kind": "k_triangle", + "schedule": "pkg:data/TRI-SCHEDULE.json" + }, + "steps": [ + { + "type": "port_stage", + "shadow_input": "raw504", + "shadow_output": "promoted558" + }, + { + "type": "port_stage", + "shadow_input": "promoted558", + "shadow_output": "ck_504:base" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:base", + "shadow_output": "ck_504:0" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:0", + "shadow_output": "ck_504:1" + }, + { + "type": "port_stage", + "shadow_input": "ck_504:1", + "shadow_output": "ck_504:2" + }, + { + "type": "frame_regroup", + "recipe": "pkg:data/recipes/k492-ck-frame_regroup.json" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/k492-ck-hyperplane_end.json" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/k492-ck-cold_end.json.gz" + } + ] + }, + "jp8": { + "base": { + "kind": "k_triangle", + "schedule": "pkg:data/TRI-SCHEDULE.json" + }, + "steps": [ + { + "type": "port_stage", + "shadow_input": "raw504", + "shadow_output": "promoted558" + }, + { + "type": "port_stage", + "shadow_input": "promoted558", + "shadow_output": "jp8_504:0" + }, + { + "type": "port_stage", + "shadow_input": "jp8_504:0", + "shadow_output": "jp8_504:1" + }, + { + "type": "port_stage", + "shadow_input": "jp8_504:1", + "shadow_output": "jp8_504:3" + }, + { + "type": "frame_regroup", + "recipe": "pkg:data/recipes/k492-jp8-frame_regroup.json" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/k492-jp8-hyperplane_end.json" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/k492-jp8-cold_end.json.gz" + } + ] + }, + "atm3": { + "base": { + "kind": "k_triangle", + "schedule": "pkg:data/TRI-SCHEDULE.json" + }, + "steps": [ + { + "type": "port_stage", + "shadow_input": "raw504", + "shadow_output": "promoted558" + }, + { + "type": "port_stage", + "shadow_input": "promoted558", + "shadow_output": "atm3_504:base" + }, + { + "type": "port_stage", + "shadow_input": "atm3_504:base", + "shadow_output": "atm3_504:0" + }, + { + "type": "port_stage", + "shadow_input": "atm3_504:0", + "shadow_output": "atm3_504:1" + }, + { + "type": "port_stage", + "shadow_input": "atm3_504:1", + "shadow_output": "atm3_504:2" + }, + { + "type": "port_stage", + "shadow_input": "atm3_504:2", + "shadow_output": "atm3_504:3" + }, + { + "type": "frame_regroup", + "recipe": "pkg:data/recipes/k492-atm3-frame_regroup.json" + }, + { + "type": "hyperplane_end", + "recipe": "pkg:data/recipes/k492-atm3-hyperplane_end.json" + }, + { + "type": "cold_end", + "recipe": "pkg:data/recipes/k492-atm3-cold_end.json.gz" + } + ] + } + }, + "dispatch": { + "mode": "free", + "menu": [ + "ck", + "atm3", + "jp8" + ], + "plan": "pkg:data/PLAN.json", + "origin": "at the free dispatch ck ×7, jp8 ×65 (per-time argmax of the aggregate free-dispatch hosting LP over the K-triangle words {ck, atm3, jp8}; atm3 is never selected)", + "plan_rule": "the window MIP's PLAN with the provider registry re-derived from the admitted provider locals (widths over the word's R helpers) and `profile`/`assignment_sha256` recomputed from the map (Stack492 mkplan.py)" + }, + "owners": { + "warm_owners": "pkg:data/search/WARM-OWNERS.json.gz", + "exact_windows": true, + "origin": "an exact per-time-Hall exact-window MIP solution (RINS around the exact-window LP vertex; 1800 s time limit, relative gap 1.0e-7)", + "warm_owners_origin": "complex-571-cold14-b3's `data/OWNERS.json.gz` (504-helper roles; every call is widening for the 492-helper words, so it seeds nothing)", + "search": { + "method": "aggregate_lp_dispatch_then_exact_window_milp_rins", + "tool": "Stack492 recipe.py (ColdOwner's, paths changed) -> solve_h.py (helper ranges from the word R)", + "b": 0.001635, + "threads": 2, + "aggregate_lp": { + "seconds": 3000, + "crossover": true, + "tight": 3, + "dispatch": "free", + "warm": "WARM-OWNERS.json.gz + WARM-PLAN.json", + "bound": 523258.923555 + }, + "dispatch_rule": "per time t: argmax over providers of LP-PATTERNS-AGG selections[t]", + "exact_lp": { + "seconds": 3000, + "crossover": true, + "exact_windows": true, + "pattern_file": "LP-PATTERNS-AGG.json", + "pmin": 0.01, + "objective": 523259.086472 + }, + "mip": { + "seconds": 1800, + "gap": 1e-09, + "exact_windows": true, + "pattern_file": "LP-PATTERNS-AGG.json", + "pmin": 0.01, + "rins": "LP-PATTERNS-EX.json", + "rins_slack": 2, + "rins_fslack": 1 + }, + "template_plan": "TEMPLATE-PLAN.json", + "lp_inputs": { + "LP-PATTERNS-AGG.json": "aggregate free-dispatch LP relaxation over the K-triangle words {ck, atm3, jp8} (crossover, tight 3)", + "DISPATCH.json": "the dispatch {time: provider} = per-time argmax of the aggregate LP selections", + "LP-PATTERNS-EX.json": "exact-window LP relaxation (crossover) at that dispatch over the base patterns plus aggregate-LP patterns with weight >= 0.01", + "WARM-PLAN.json": "the PLAN matching WARM-OWNERS.json.gz (ColdBeyond O3free-rins2 = complex-571-cold14-b3 PLAN) (line endings normalized to LF)", + "TEMPLATE-PLAN.json": "the PLAN of ColdBeyond's working package (PR604's dispatch ck ×44, atm3 ×22, jp8 ×6), whose windows/order/registry template the nominator reuses" + }, + "result": { + "status": "Time limit reached", + "objective": 523259.13881, + "bound": 523259.086472, + "gap": 1e-07, + "provider_counts": { + "ck": 7, + "jp8": 65 + }, + "profile": { + "1": 181579, + "2": 29864, + "3": 31267, + "4": 11520, + "5": 5040, + "6": 576, + "7": 1, + "8": 576, + "21": 1, + "48": 2213 + }, + "idle_remainders": { + "1": 127, + "3": 19, + "7": 1, + "21": 1, + "48": 2213 + } + } + }, + "search_inputs": { + "LP-PATTERNS-AGG.json": "pkg:data/search/LP-PATTERNS-AGG.json", + "DISPATCH.json": "pkg:data/search/DISPATCH.json", + "LP-PATTERNS-EX.json": "pkg:data/search/LP-PATTERNS-EX.json", + "WARM-PLAN.json": "pkg:data/search/WARM-PLAN.json", + "TEMPLATE-PLAN.json": "pkg:data/search/TEMPLATE-PLAN.json" + } + }, + "bar": "0.001635183729255778", + "gain_baseline_kappa": "0.001601260169988325", + "credits": [ + "**This package**: porting the PR604/B3 chains onto the K-triangle skeleton (port_stage, frame_regroup), the R-generalised global code (GlobalR) and the owner solve.", + "**AtomScout (research agent)**: the leaver-read K-triangle atom and TRI-SCHEDULE.", + "**icekylinx**: PR531 (construct_504.py, the direct-delivery source the K-triangle constructor extends).", + "**This package**: the second cold end per block and the two cold_end primitives (PROOF-NOTE.md).", + "**DreamingOfClouds**: PR604 (the cold_end construction, its verifier changes and controls), PR599, PR516, PR509, PR484.", + "**jeremykothe2**: PR601, PR600, PR596, PR593, PR592 and PR591 (hyperplane-ended helpers and the HPE verifier).", + "**DominikScholz**: PR571 and PR569 (including PR569's window-MILP nominator nominate_width7.py, which the owner search adapts).", + "**eumemic**: PR564, PR561, PR562, PR558, PR550, PR543, PR507.", + "**chafreaky**: PR583, PR572, PR551.", + "**icekylinx**: PR535 and PR531.", + "**Dugongue**: PR552 and PR514.", + "**Douglas Colkitt / CrocSwap**: maintenance.", + "**The original OpenAI #109 framework.**" + ], + "chains_origin": "the K-triangle skeleton with PR604/B3 chains ported stage by stage (port_stage, frame_regroup) and ColdBeyond v3 cold_end recipes re-derived on the ported words", + "shadows": { + "ck_504": { + "base": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "steps": [ + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/ck-step0-greedy_kernels.json" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/ck-step1-frame_coalesce.json" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/ck-step2-gate_move_coalesce.json" + } + ] + }, + "jp8_504": { + "base": "frozen558_promoted", + "steps": [ + { + "type": "cold_kernel", + "recipe": "multicold:data/EIGHT-COLD.json" + }, + { + "type": "multicut", + "recipe": "multicold:data/EIGHT-MULTICOLD.json" + }, + { + "type": "frozen558_scalar_audits" + }, + { + "type": "joint_prefix", + "recipe": "joint_prefix:data/JOINT-PREFIX.json", + "variant": "eightcold", + "kernel_recipes": "joint_prefix:data/EIGHTCOLD-JOINT-KERNELS.json" + } + ] + }, + "atm3_504": { + "base": "structural_gain:frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "steps": [ + { + "type": "promote", + "recipe": "pkg:data/recipes/atm3-step0-promote.json" + }, + { + "type": "greedy_kernels", + "recipe": "pkg:data/recipes/atm3-step1-greedy_kernels.json" + }, + { + "type": "frame_coalesce", + "recipe": "pkg:data/recipes/atm3-step2-frame_coalesce.json" + }, + { + "type": "gate_move_coalesce", + "recipe": "pkg:data/recipes/atm3-step3-gate_move_coalesce.json" + } + ] + } + }, + "menu_providers_not_dispatched": { + "atm3": "on the owner search's menu (its locals were built by Stack492); the LP never selects it, so it is not in the witness. Chain as described by Stack492: k_triangle -> port_stage(raw504->promoted558, promoted558->atm3_504:base, atm3_504:0..3) -> frame_regroup -> hyperplane_end -> cold_end" + } +} diff --git a/research/complex-571-cold14-k492/data/recipes/atm3-step0-promote.json b/research/complex-571-cold14-k492/data/recipes/atm3-step0-promote.json new file mode 100644 index 0000000000..1f078bea4f --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/atm3-step0-promote.json @@ -0,0 +1 @@ +[{"pivot": 627, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 629, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 630, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 631, "old_frame": [408, 80, 40, 6], "new_frame": [408, 80, 40, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 635, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 637, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 638, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 639, "old_frame": [272, 144, 96, 6], "new_frame": [272, 144, 96, 6, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 651, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 653, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 654, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 655, "old_frame": [390, 68, 34, 24], "new_frame": [390, 68, 34, 24, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 659, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 661, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 662, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 663, "old_frame": [298, 170, 102, 30], "new_frame": [298, 170, 102, 30, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 667, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 669, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 670, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 671, "old_frame": [390, 96, 20, 10], "new_frame": [390, 96, 20, 10, 1], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 683, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 685, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 686, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 687, "old_frame": [390, 75, 45, 30], "new_frame": [385, 75, 42, 25, 7], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 691, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 693, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 694, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 695, "old_frame": [291, 163, 102, 24], "new_frame": [291, 163, 97, 24, 7], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 699, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 701, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 702, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 703, "old_frame": [389, 96, 24, 3], "new_frame": [385, 96, 24, 4, 3], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 707, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 709, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 710, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 711, "old_frame": [401, 96, 9, 6], "new_frame": [385, 96, 16, 9, 6], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}, {"pivot": 715, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 12, "profile_delta": {"1": 11, "2": -8, "3": -4, "4": 4}, "local_entropy_delta": -2.0929925750581937, "optimistic_entropy_gain": 2.7782084358496975}, {"pivot": 717, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 9, "profile_delta": {"1": 12, "2": -7, "3": -1, "4": 1}, "local_entropy_delta": -7.454719949364001, "optimistic_entropy_gain": -2.5835189384561095}, {"pivot": 718, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 5, "profile_delta": {"1": 9, "2": -5}, "local_entropy_delta": -6.931471805599453, "optimistic_entropy_gain": -2.060270794691562}, {"pivot": 719, "old_frame": [297, 169, 120, 6], "new_frame": [297, 169, 97, 25, 6], "width_before": 5, "width_after": 4, "changed_gates": 3, "profile_delta": {"1": 7, "2": -4}, "local_entropy_delta": -5.545177444479562, "optimistic_entropy_gain": -0.6739764335716711}] \ No newline at end of file diff --git a/research/complex-571-cold14-k492/data/recipes/atm3-step1-greedy_kernels.json b/research/complex-571-cold14-k492/data/recipes/atm3-step1-greedy_kernels.json new file mode 100644 index 0000000000..db3a406ee2 --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/atm3-step1-greedy_kernels.json @@ -0,0 +1,561 @@ +{ + "input_content_sha256": "b672a8f4151a23fd420c7622fc127fb6c7f14564bb6cf93edfbd7aecbc38e1f9", + "output_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236", + "kernels": [ + { + "pivot": 462, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 39, + "donor": 476, + "coefficient": "1", + "donor_state": [ + 476, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 40, + "donor": 477, + "coefficient": "1", + "donor_state": [ + 477, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 49, + "donor": 463, + "coefficient": "-1", + "donor_state": [ + 463, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 464, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 25, + "donor": 474, + "coefficient": "1", + "donor_state": [ + 474, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 26, + "donor": 475, + "coefficient": "1", + "donor_state": [ + 475, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 465, + "coefficient": "-1", + "donor_state": [ + 465, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 466, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 35, + "donor": 478, + "coefficient": "1", + "donor_state": [ + 478, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 36, + "donor": 479, + "coefficient": "1", + "donor_state": [ + 479, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 467, + "coefficient": "-1", + "donor_state": [ + 467, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 468, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 29, + "donor": 480, + "coefficient": "1", + "donor_state": [ + 480, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 30, + "donor": 481, + "coefficient": "1", + "donor_state": [ + 481, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 469, + "coefficient": "-1", + "donor_state": [ + 469, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 490, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 33, + "donor": 491, + "coefficient": "-1", + "donor_state": [ + 491, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 502, + "coefficient": "1", + "donor_state": [ + 502, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 503, + "coefficient": "1", + "donor_state": [ + 503, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 492, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 44, + "donor": 493, + "coefficient": "-1", + "donor_state": [ + 493, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 504, + "coefficient": "1", + "donor_state": [ + 504, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 505, + "coefficient": "1", + "donor_state": [ + 505, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 514, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 38, + "donor": 526, + "coefficient": "1", + "donor_state": [ + 526, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 39, + "donor": 527, + "coefficient": "1", + "donor_state": [ + 527, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 57, + "donor": 515, + "coefficient": "-1", + "donor_state": [ + 515, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 516, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 51, + "donor": 528, + "coefficient": "1", + "donor_state": [ + 528, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 52, + "donor": 529, + "coefficient": "1", + "donor_state": [ + 529, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 64, + "donor": 517, + "coefficient": "-1", + "donor_state": [ + 517, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 510, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 712, + "donor": 511, + "coefficient": "-1", + "donor_state": [ + 511, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 524, + "coefficient": "1", + "donor_state": [ + 524, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 525, + "coefficient": "1", + "donor_state": [ + 525, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 512, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 717, + "donor": 513, + "coefficient": "-1", + "donor_state": [ + 513, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 522, + "coefficient": "1", + "donor_state": [ + 522, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 523, + "coefficient": "1", + "donor_state": [ + 523, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 586, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 822, + "donor": 587, + "coefficient": "-1", + "donor_state": [ + 587, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 598, + "coefficient": "1", + "donor_state": [ + 598, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 599, + "coefficient": "1", + "donor_state": [ + 599, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 588, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 827, + "donor": 589, + "coefficient": "-1", + "donor_state": [ + 589, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 600, + "coefficient": "1", + "donor_state": [ + 600, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 601, + "coefficient": "1", + "donor_state": [ + 601, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + } + ], + "source": "coldk greedy (multi-cut, cand all, ranks [1, 2, 3], targets false, kmax 6) on w/A_t_m3/FULL-WORD.json.gz", + "final_local_profile": { + "1": 2500, + "2": 484, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "seconds": 0.5898449 +} diff --git a/research/complex-571-cold14-k492/data/recipes/atm3-step2-frame_coalesce.json b/research/complex-571-cold14-k492/data/recipes/atm3-step2-frame_coalesce.json new file mode 100644 index 0000000000..fb5e59269a --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/atm3-step2-frame_coalesce.json @@ -0,0 +1,173 @@ +{ + "after": { + "1": 2488, + "2": 490, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2500, + "2": 484, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 465, + 464, + 1, + 1, + [ + 126, + 1 + ] + ], + "before": [ + "add", + 465, + 464, + 1, + 1, + [ + 1 + ] + ], + "index": 78, + "section": "A" + }, + { + "after": [ + "add", + 467, + 466, + 1, + 1, + [ + 121, + 7 + ] + ], + "before": [ + "add", + 467, + 466, + 1, + 1, + [ + 7 + ] + ], + "index": 75, + "section": "A" + }, + { + "after": [ + "add", + 469, + 468, + 1, + 1, + [ + 120, + 7 + ] + ], + "before": [ + "add", + 469, + 468, + 1, + 1, + [ + 7 + ] + ], + "index": 72, + "section": "A" + }, + { + "after": [ + "add", + 463, + 462, + 1, + 1, + [ + 120, + 1 + ] + ], + "before": [ + "add", + 463, + 462, + 1, + 1, + [ + 1 + ] + ], + "index": 69, + "section": "A" + }, + { + "after": [ + "add", + 517, + 516, + 1, + 1, + [ + 103, + 31 + ] + ], + "before": [ + "add", + 517, + 516, + 1, + 1, + [ + 31 + ] + ], + "index": 66, + "section": "A" + }, + { + "after": [ + "add", + 515, + 514, + 1, + 1, + [ + 102, + 31 + ] + ], + "before": [ + "add", + 515, + 514, + 1, + 1, + [ + 31 + ] + ], + "index": 61, + "section": "A" + } + ], + "input_content_sha256": "8de156284cde6d475f9ef679d43ef52e9aa57a62fc3a2f554655131396c64236" +} diff --git a/research/complex-571-cold14-k492/data/recipes/atm3-step3-gate_move_coalesce.json b/research/complex-571-cold14-k492/data/recipes/atm3-step3-gate_move_coalesce.json new file mode 100644 index 0000000000..ac941259cb --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/atm3-step3-gate_move_coalesce.json @@ -0,0 +1,85 @@ +{ + "after": { + "1": 2484, + "2": 492, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2488, + "2": 490, + "3": 280, + "4": 232, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 491, + 490, + 1, + 1, + [ + 96, + 25 + ] + ], + "before": [ + "add", + 491, + 490, + 1, + 1, + [ + 25 + ] + ], + "index": 35, + "section": "A" + }, + { + "after": [ + "add", + 493, + 492, + 1, + 1, + [ + 97, + 25 + ] + ], + "before": [ + "add", + 493, + 492, + 1, + 1, + [ + 25 + ] + ], + "index": 48, + "section": "A" + } + ], + "input_content_sha256": "dffa3c643b522b524a79220c71aa15be9ee10134b3d597c293c643f6a543d472", + "moves": [ + { + "from": 33, + "section": "A", + "to": 35 + }, + { + "from": 46, + "section": "A", + "to": 48 + } + ] +} diff --git a/research/complex-571-cold14-k492/data/recipes/ck-step0-greedy_kernels.json b/research/complex-571-cold14-k492/data/recipes/ck-step0-greedy_kernels.json new file mode 100644 index 0000000000..89a4677766 --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/ck-step0-greedy_kernels.json @@ -0,0 +1,550 @@ +{ + "input_content_sha256": "500f005d9cec374f15e086d374578cc8f2c252f9c30444a62d46f2969370a2c6", + "output_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b", + "kernels": [ + { + "pivot": 462, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 39, + "donor": 476, + "coefficient": "1", + "donor_state": [ + 476, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 40, + "donor": 477, + "coefficient": "1", + "donor_state": [ + 477, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 49, + "donor": 463, + "coefficient": "-1", + "donor_state": [ + 463, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 464, + "frame": [ + 1 + ], + "gates": [ + { + "part": "A", + "index": 25, + "donor": 474, + "coefficient": "1", + "donor_state": [ + 474, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 26, + "donor": 475, + "coefficient": "1", + "donor_state": [ + 475, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 465, + "coefficient": "-1", + "donor_state": [ + 465, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 466, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 35, + "donor": 478, + "coefficient": "1", + "donor_state": [ + 478, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 36, + "donor": 479, + "coefficient": "1", + "donor_state": [ + 479, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 467, + "coefficient": "-1", + "donor_state": [ + 467, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 468, + "frame": [ + 7 + ], + "gates": [ + { + "part": "A", + "index": 29, + "donor": 480, + "coefficient": "1", + "donor_state": [ + 480, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 30, + "donor": 481, + "coefficient": "1", + "donor_state": [ + 481, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 58, + "donor": 469, + "coefficient": "-1", + "donor_state": [ + 469, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 490, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 33, + "donor": 491, + "coefficient": "-1", + "donor_state": [ + 491, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 502, + "coefficient": "1", + "donor_state": [ + 502, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 33, + "donor": 503, + "coefficient": "1", + "donor_state": [ + 503, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 492, + "frame": [ + 25 + ], + "gates": [ + { + "part": "A", + "index": 44, + "donor": 493, + "coefficient": "-1", + "donor_state": [ + 493, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 504, + "coefficient": "1", + "donor_state": [ + 504, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 44, + "donor": 505, + "coefficient": "1", + "donor_state": [ + 505, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 514, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 38, + "donor": 526, + "coefficient": "1", + "donor_state": [ + 526, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 39, + "donor": 527, + "coefficient": "1", + "donor_state": [ + 527, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 57, + "donor": 515, + "coefficient": "-1", + "donor_state": [ + 515, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 516, + "frame": [ + 31 + ], + "gates": [ + { + "part": "A", + "index": 51, + "donor": 528, + "coefficient": "1", + "donor_state": [ + 528, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 52, + "donor": 529, + "coefficient": "1", + "donor_state": [ + 529, + 0 + ], + "split_donor": true + }, + { + "part": "A", + "index": 64, + "donor": 517, + "coefficient": "-1", + "donor_state": [ + 517, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 7, + "2": -4 + } + }, + { + "pivot": 510, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 712, + "donor": 511, + "coefficient": "-1", + "donor_state": [ + 511, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 524, + "coefficient": "1", + "donor_state": [ + 524, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 712, + "donor": 525, + "coefficient": "1", + "donor_state": [ + 525, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 512, + "frame": [ + 480 + ], + "gates": [ + { + "part": "B", + "index": 717, + "donor": 513, + "coefficient": "-1", + "donor_state": [ + 513, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 522, + "coefficient": "1", + "donor_state": [ + 522, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 717, + "donor": 523, + "coefficient": "1", + "donor_state": [ + 523, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 586, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 822, + "donor": 587, + "coefficient": "-1", + "donor_state": [ + 587, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 598, + "coefficient": "1", + "donor_state": [ + 598, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 822, + "donor": 599, + "coefficient": "1", + "donor_state": [ + 599, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + }, + { + "pivot": 588, + "frame": [ + 486 + ], + "gates": [ + { + "part": "B", + "index": 827, + "donor": 589, + "coefficient": "-1", + "donor_state": [ + 589, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 600, + "coefficient": "1", + "donor_state": [ + 600, + 0 + ], + "split_donor": true + }, + { + "part": "B", + "index": 827, + "donor": 601, + "coefficient": "1", + "donor_state": [ + 601, + 0 + ], + "split_donor": true + } + ], + "profile_delta": { + "1": 3, + "2": 4, + "3": -4 + } + } + ] +} \ No newline at end of file diff --git a/research/complex-571-cold14-k492/data/recipes/ck-step1-frame_coalesce.json b/research/complex-571-cold14-k492/data/recipes/ck-step1-frame_coalesce.json new file mode 100644 index 0000000000..fa80dd680d --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/ck-step1-frame_coalesce.json @@ -0,0 +1,173 @@ +{ + "after": { + "1": 2408, + "2": 570, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2420, + "2": 564, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 465, + 464, + 1, + 1, + [ + 126, + 1 + ] + ], + "before": [ + "add", + 465, + 464, + 1, + 1, + [ + 1 + ] + ], + "index": 78, + "section": "A" + }, + { + "after": [ + "add", + 467, + 466, + 1, + 1, + [ + 121, + 7 + ] + ], + "before": [ + "add", + 467, + 466, + 1, + 1, + [ + 7 + ] + ], + "index": 75, + "section": "A" + }, + { + "after": [ + "add", + 469, + 468, + 1, + 1, + [ + 120, + 7 + ] + ], + "before": [ + "add", + 469, + 468, + 1, + 1, + [ + 7 + ] + ], + "index": 72, + "section": "A" + }, + { + "after": [ + "add", + 463, + 462, + 1, + 1, + [ + 120, + 1 + ] + ], + "before": [ + "add", + 463, + 462, + 1, + 1, + [ + 1 + ] + ], + "index": 69, + "section": "A" + }, + { + "after": [ + "add", + 517, + 516, + 1, + 1, + [ + 103, + 31 + ] + ], + "before": [ + "add", + 517, + 516, + 1, + 1, + [ + 31 + ] + ], + "index": 66, + "section": "A" + }, + { + "after": [ + "add", + 515, + 514, + 1, + 1, + [ + 102, + 31 + ] + ], + "before": [ + "add", + 515, + 514, + 1, + 1, + [ + 31 + ] + ], + "index": 61, + "section": "A" + } + ], + "input_content_sha256": "11afa6986e37fd10adda3453d6e55a7353302c9597b93807916a2e5f808e259b" +} diff --git a/research/complex-571-cold14-k492/data/recipes/ck-step2-gate_move_coalesce.json b/research/complex-571-cold14-k492/data/recipes/ck-step2-gate_move_coalesce.json new file mode 100644 index 0000000000..c718de4430 --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/ck-step2-gate_move_coalesce.json @@ -0,0 +1,85 @@ +{ + "after": { + "1": 2404, + "2": 572, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "before": { + "1": 2408, + "2": 570, + "3": 320, + "4": 192, + "5": 56, + "6": 56, + "8": 8 + }, + "changes": [ + { + "after": [ + "add", + 491, + 490, + 1, + 1, + [ + 96, + 25 + ] + ], + "before": [ + "add", + 491, + 490, + 1, + 1, + [ + 25 + ] + ], + "index": 35, + "section": "A" + }, + { + "after": [ + "add", + 493, + 492, + 1, + 1, + [ + 97, + 25 + ] + ], + "before": [ + "add", + 493, + 492, + 1, + 1, + [ + 25 + ] + ], + "index": 48, + "section": "A" + } + ], + "input_content_sha256": "fac4ead822d8d18e441820f9ca87efeb1866414bb0b82817c6cce4655dc59269", + "moves": [ + { + "from": 33, + "section": "A", + "to": 35 + }, + { + "from": 46, + "section": "A", + "to": 48 + } + ] +} diff --git a/research/complex-571-cold14-k492/data/recipes/k492-atm3-cold_end.json.gz b/research/complex-571-cold14-k492/data/recipes/k492-atm3-cold_end.json.gz new file mode 100644 index 0000000000..7dec818017 Binary files /dev/null and b/research/complex-571-cold14-k492/data/recipes/k492-atm3-cold_end.json.gz differ diff --git a/research/complex-571-cold14-k492/data/recipes/k492-atm3-frame_regroup.json b/research/complex-571-cold14-k492/data/recipes/k492-atm3-frame_regroup.json new file mode 100644 index 0000000000..909fdcbfef --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/k492-atm3-frame_regroup.json @@ -0,0 +1,983 @@ +{ + "input_content_sha256": "deb98b743eadccd7e244accd26b74519e98ffca60e7cfdddb826db16b3048918", + "before": { + "1": 2612, + "2": 464, + "3": 280, + "4": 208, + "5": 56, + "6": 44, + "8": 8 + }, + "after": { + "1": 2540, + "2": 536, + "3": 256, + "4": 208, + "5": 56, + "6": 44, + "8": 8 + }, + "changes": [ + { + "section": "B", + "index": 599, + "before": [ + "add", + 172, + 235, + -1, + 2, + [ + 264, + 136, + 72, + 32, + 24, + 6 + ] + ], + "after": [ + "add", + 172, + 235, + -1, + 2, + [ + 264, + 136, + 72, + 32, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 600, + "before": [ + "add", + 133, + 233, + -1, + 2, + [ + 272, + 144, + 80, + 48, + 8, + 6 + ] + ], + "after": [ + "add", + 133, + 233, + -1, + 2, + [ + 272, + 144, + 80, + 48, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 601, + "before": [ + "add", + 141, + 249, + -1, + 2, + [ + 256, + 136, + 64, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 141, + 249, + -1, + 2, + [ + 256, + 136, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 602, + "before": [ + "add", + 173, + 265, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6 + ] + ], + "after": [ + "add", + 173, + 265, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 603, + "before": [ + "add", + 140, + 267, + -1, + 2, + [ + 264, + 128, + 64, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 140, + 267, + -1, + 2, + [ + 264, + 128, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 604, + "before": [ + "add", + 132, + 251, + -1, + 2, + [ + 256, + 128, + 72, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 132, + 251, + -1, + 2, + [ + 256, + 128, + 72, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 627, + "before": [ + "add", + 196, + 58, + 1, + 1, + [ + 273, + 145, + 64, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 196, + 58, + 1, + 1, + [ + 257, + 129, + 64, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 630, + "before": [ + "add", + 197, + 425, + -1, + 2, + [ + 256, + 128, + 64, + 41, + 17, + 6 + ] + ], + "after": [ + "add", + 197, + 425, + -1, + 2, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 631, + "before": [ + "add", + 205, + 409, + -1, + 2, + [ + 273, + 128, + 81, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 205, + 409, + -1, + 2, + [ + 257, + 128, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 632, + "before": [ + "add", + 170, + 237, + 1, + 1, + [ + 320, + 192, + 32, + 17, + 9, + 6 + ] + ], + "after": [ + "add", + 170, + 237, + 1, + 1, + [ + 320, + 192, + 32, + 16, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 633, + "before": [ + "add", + 204, + 427, + -1, + 2, + [ + 256, + 145, + 81, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 204, + 427, + -1, + 2, + [ + 256, + 129, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 634, + "before": [ + "add", + 174, + 411, + -1, + 2, + [ + 256, + 128, + 64, + 41, + 24, + 6 + ] + ], + "after": [ + "add", + 174, + 411, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 654, + "before": [ + "add", + 164, + 90, + 1, + 1, + [ + 321, + 128, + 33, + 17, + 9, + 6 + ] + ], + "after": [ + "add", + 164, + 90, + 1, + 1, + [ + 257, + 128, + 64, + 33, + 17, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 656, + "before": [ + "add", + 138, + 441, + -1, + 2, + [ + 273, + 128, + 80, + 33, + 9, + 6 + ] + ], + "after": [ + "add", + 138, + 441, + -1, + 2, + [ + 272, + 128, + 80, + 32, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 660, + "before": [ + "add", + 202, + 253, + 1, + 1, + [ + 256, + 145, + 80, + 48, + 9, + 6 + ] + ], + "after": [ + "add", + 202, + 253, + 1, + 1, + [ + 256, + 129, + 64, + 32, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 662, + "before": [ + "add", + 206, + 443, + -1, + 2, + [ + 273, + 128, + 65, + 33, + 9, + 6 + ] + ], + "after": [ + "add", + 206, + 443, + -1, + 2, + [ + 257, + 128, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 663, + "before": [ + "add", + 165, + 26, + 1, + 1, + [ + 256, + 137, + 72, + 33, + 24, + 6 + ] + ], + "after": [ + "add", + 165, + 26, + 1, + 1, + [ + 256, + 129, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 664, + "before": [ + "add", + 142, + 413, + 1, + 1, + [ + 256, + 137, + 65, + 40, + 17, + 6 + ] + ], + "after": [ + "add", + 142, + 413, + 1, + 1, + [ + 256, + 136, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 685, + "before": [ + "add", + 194, + 429, + 1, + 1, + [ + 272, + 144, + 65, + 49, + 8, + 6 + ] + ], + "after": [ + "add", + 194, + 429, + 1, + 1, + [ + 257, + 129, + 65, + 32, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 686, + "before": [ + "add", + 198, + 445, + 1, + 1, + [ + 256, + 128, + 81, + 33, + 8, + 6 + ] + ], + "after": [ + "add", + 198, + 445, + 1, + 1, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 688, + "before": [ + "add", + 134, + 82, + 1, + 1, + [ + 272, + 144, + 81, + 49, + 8, + 6 + ] + ], + "after": [ + "add", + 134, + 82, + 1, + 1, + [ + 272, + 144, + 80, + 48, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 691, + "before": [ + "add", + 166, + 50, + 1, + 1, + [ + 256, + 193, + 33, + 16, + 8, + 6 + ] + ], + "after": [ + "add", + 166, + 50, + 1, + 1, + [ + 256, + 129, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 693, + "before": [ + "add", + 162, + 18, + 1, + 1, + [ + 321, + 128, + 33, + 16, + 8, + 6 + ] + ], + "after": [ + "add", + 162, + 18, + 1, + 1, + [ + 257, + 128, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 694, + "before": [ + "add", + 130, + 269, + 1, + 1, + [ + 256, + 128, + 65, + 33, + 16, + 6 + ] + ], + "after": [ + "add", + 130, + 269, + 1, + 1, + [ + 256, + 128, + 64, + 32, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + } + ] +} diff --git a/research/complex-571-cold14-k492/data/recipes/k492-atm3-hyperplane_end.json b/research/complex-571-cold14-k492/data/recipes/k492-atm3-hyperplane_end.json new file mode 100644 index 0000000000..069d4be65e --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/k492-atm3-hyperplane_end.json @@ -0,0 +1,481 @@ +{ + "changes": [ + { + "helper": 448, + "cleanup_index": 664, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 449, + "cleanup_index": 663, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 450, + "cleanup_index": 662, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 451, + "cleanup_index": 661, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 452, + "cleanup_index": 660, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 453, + "cleanup_index": 659, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 454, + "cleanup_index": 658, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 455, + "cleanup_index": 657, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 456, + "cleanup_index": 656, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 457, + "cleanup_index": 655, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 458, + "cleanup_index": 652, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 467, + "cleanup_index": 643, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 468, + "cleanup_index": 640, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 477, + "cleanup_index": 631, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 490, + "cleanup_index": 609, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 491, + "cleanup_index": 608, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 514, + "cleanup_index": 567, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 515, + "cleanup_index": 566, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 538, + "cleanup_index": 533, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 539, + "cleanup_index": 532, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 562, + "cleanup_index": 501, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 563, + "cleanup_index": 500, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 574, + "cleanup_index": 487, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 583, + "cleanup_index": 472, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 584, + "cleanup_index": 469, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 593, + "cleanup_index": 460, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 594, + "cleanup_index": 457, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 595, + "cleanup_index": 456, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 596, + "cleanup_index": 455, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 598, + "cleanup_index": 453, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 600, + "cleanup_index": 451, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 601, + "cleanup_index": 450, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 602, + "cleanup_index": 449, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 603, + "cleanup_index": 448, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + } + ], + "output_content_sha256": "16f831b9c6a79bbb68af50612621fb101edaa78a5496c740f82a0e886b9c969a" +} diff --git a/research/complex-571-cold14-k492/data/recipes/k492-ck-cold_end.json.gz b/research/complex-571-cold14-k492/data/recipes/k492-ck-cold_end.json.gz new file mode 100644 index 0000000000..6035c7290e Binary files /dev/null and b/research/complex-571-cold14-k492/data/recipes/k492-ck-cold_end.json.gz differ diff --git a/research/complex-571-cold14-k492/data/recipes/k492-ck-frame_regroup.json b/research/complex-571-cold14-k492/data/recipes/k492-ck-frame_regroup.json new file mode 100644 index 0000000000..c17c1dc06f --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/k492-ck-frame_regroup.json @@ -0,0 +1,983 @@ +{ + "input_content_sha256": "5532de57a57084dfbb0d0a245d76cb401124d05fc01e2f20361acb4a45a5fd33", + "before": { + "1": 2532, + "2": 544, + "3": 320, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "after": { + "1": 2460, + "2": 616, + "3": 296, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "changes": [ + { + "section": "B", + "index": 599, + "before": [ + "add", + 172, + 235, + -1, + 2, + [ + 264, + 136, + 72, + 32, + 24, + 6 + ] + ], + "after": [ + "add", + 172, + 235, + -1, + 2, + [ + 264, + 136, + 72, + 32, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 600, + "before": [ + "add", + 133, + 233, + -1, + 2, + [ + 272, + 144, + 80, + 48, + 8, + 6 + ] + ], + "after": [ + "add", + 133, + 233, + -1, + 2, + [ + 272, + 144, + 80, + 48, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 601, + "before": [ + "add", + 141, + 249, + -1, + 2, + [ + 256, + 136, + 64, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 141, + 249, + -1, + 2, + [ + 256, + 136, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 602, + "before": [ + "add", + 173, + 265, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6 + ] + ], + "after": [ + "add", + 173, + 265, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 603, + "before": [ + "add", + 140, + 267, + -1, + 2, + [ + 264, + 128, + 64, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 140, + 267, + -1, + 2, + [ + 264, + 128, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 604, + "before": [ + "add", + 132, + 251, + -1, + 2, + [ + 256, + 128, + 72, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 132, + 251, + -1, + 2, + [ + 256, + 128, + 72, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 627, + "before": [ + "add", + 196, + 58, + 1, + 1, + [ + 273, + 145, + 64, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 196, + 58, + 1, + 1, + [ + 257, + 129, + 64, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 630, + "before": [ + "add", + 197, + 425, + -1, + 2, + [ + 256, + 128, + 64, + 41, + 17, + 6 + ] + ], + "after": [ + "add", + 197, + 425, + -1, + 2, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 631, + "before": [ + "add", + 205, + 409, + -1, + 2, + [ + 273, + 128, + 81, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 205, + 409, + -1, + 2, + [ + 257, + 128, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 632, + "before": [ + "add", + 170, + 237, + 1, + 1, + [ + 320, + 192, + 32, + 17, + 9, + 6 + ] + ], + "after": [ + "add", + 170, + 237, + 1, + 1, + [ + 320, + 192, + 32, + 16, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 633, + "before": [ + "add", + 204, + 427, + -1, + 2, + [ + 256, + 145, + 81, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 204, + 427, + -1, + 2, + [ + 256, + 129, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 634, + "before": [ + "add", + 174, + 411, + -1, + 2, + [ + 256, + 128, + 64, + 41, + 24, + 6 + ] + ], + "after": [ + "add", + 174, + 411, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 654, + "before": [ + "add", + 164, + 90, + 1, + 1, + [ + 321, + 128, + 33, + 17, + 9, + 6 + ] + ], + "after": [ + "add", + 164, + 90, + 1, + 1, + [ + 257, + 128, + 64, + 33, + 17, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 656, + "before": [ + "add", + 138, + 441, + -1, + 2, + [ + 273, + 128, + 80, + 33, + 9, + 6 + ] + ], + "after": [ + "add", + 138, + 441, + -1, + 2, + [ + 272, + 128, + 80, + 32, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 660, + "before": [ + "add", + 202, + 253, + 1, + 1, + [ + 256, + 145, + 80, + 48, + 9, + 6 + ] + ], + "after": [ + "add", + 202, + 253, + 1, + 1, + [ + 256, + 129, + 64, + 32, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 662, + "before": [ + "add", + 206, + 443, + -1, + 2, + [ + 273, + 128, + 65, + 33, + 9, + 6 + ] + ], + "after": [ + "add", + 206, + 443, + -1, + 2, + [ + 257, + 128, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 663, + "before": [ + "add", + 165, + 26, + 1, + 1, + [ + 256, + 137, + 72, + 33, + 24, + 6 + ] + ], + "after": [ + "add", + 165, + 26, + 1, + 1, + [ + 256, + 129, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 664, + "before": [ + "add", + 142, + 413, + 1, + 1, + [ + 256, + 137, + 65, + 40, + 17, + 6 + ] + ], + "after": [ + "add", + 142, + 413, + 1, + 1, + [ + 256, + 136, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 685, + "before": [ + "add", + 194, + 429, + 1, + 1, + [ + 272, + 144, + 65, + 49, + 8, + 6 + ] + ], + "after": [ + "add", + 194, + 429, + 1, + 1, + [ + 257, + 129, + 65, + 32, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 686, + "before": [ + "add", + 198, + 445, + 1, + 1, + [ + 256, + 128, + 81, + 33, + 8, + 6 + ] + ], + "after": [ + "add", + 198, + 445, + 1, + 1, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 688, + "before": [ + "add", + 134, + 82, + 1, + 1, + [ + 272, + 144, + 81, + 49, + 8, + 6 + ] + ], + "after": [ + "add", + 134, + 82, + 1, + 1, + [ + 272, + 144, + 80, + 48, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 691, + "before": [ + "add", + 166, + 50, + 1, + 1, + [ + 256, + 193, + 33, + 16, + 8, + 6 + ] + ], + "after": [ + "add", + 166, + 50, + 1, + 1, + [ + 256, + 129, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 693, + "before": [ + "add", + 162, + 18, + 1, + 1, + [ + 321, + 128, + 33, + 16, + 8, + 6 + ] + ], + "after": [ + "add", + 162, + 18, + 1, + 1, + [ + 257, + 128, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 694, + "before": [ + "add", + 130, + 269, + 1, + 1, + [ + 256, + 128, + 65, + 33, + 16, + 6 + ] + ], + "after": [ + "add", + 130, + 269, + 1, + 1, + [ + 256, + 128, + 64, + 32, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + } + ] +} diff --git a/research/complex-571-cold14-k492/data/recipes/k492-ck-hyperplane_end.json b/research/complex-571-cold14-k492/data/recipes/k492-ck-hyperplane_end.json new file mode 100644 index 0000000000..337c5f3f92 --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/k492-ck-hyperplane_end.json @@ -0,0 +1,481 @@ +{ + "changes": [ + { + "helper": 448, + "cleanup_index": 664, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 449, + "cleanup_index": 663, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 450, + "cleanup_index": 662, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 451, + "cleanup_index": 661, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 452, + "cleanup_index": 660, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 453, + "cleanup_index": 659, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 454, + "cleanup_index": 658, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 455, + "cleanup_index": 657, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 456, + "cleanup_index": 656, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 457, + "cleanup_index": 655, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 458, + "cleanup_index": 652, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 467, + "cleanup_index": 643, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 468, + "cleanup_index": 640, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 477, + "cleanup_index": 631, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 490, + "cleanup_index": 609, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 491, + "cleanup_index": 608, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 514, + "cleanup_index": 567, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 515, + "cleanup_index": 566, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 538, + "cleanup_index": 533, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 539, + "cleanup_index": 532, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 562, + "cleanup_index": 501, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 563, + "cleanup_index": 500, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 574, + "cleanup_index": 487, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 583, + "cleanup_index": 472, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 584, + "cleanup_index": 469, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 593, + "cleanup_index": 460, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 594, + "cleanup_index": 457, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 595, + "cleanup_index": 456, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 596, + "cleanup_index": 455, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 598, + "cleanup_index": 453, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 600, + "cleanup_index": 451, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 601, + "cleanup_index": 450, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 602, + "cleanup_index": 449, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 603, + "cleanup_index": 448, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + } + ], + "output_content_sha256": "93228917343883327493cf8e8af68be06251be4db719039ae3ca8d54595f2be6" +} diff --git a/research/complex-571-cold14-k492/data/recipes/k492-jp8-cold_end.json.gz b/research/complex-571-cold14-k492/data/recipes/k492-jp8-cold_end.json.gz new file mode 100644 index 0000000000..d2fa50b951 Binary files /dev/null and b/research/complex-571-cold14-k492/data/recipes/k492-jp8-cold_end.json.gz differ diff --git a/research/complex-571-cold14-k492/data/recipes/k492-jp8-frame_regroup.json b/research/complex-571-cold14-k492/data/recipes/k492-jp8-frame_regroup.json new file mode 100644 index 0000000000..4c7dc2c310 --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/k492-jp8-frame_regroup.json @@ -0,0 +1,983 @@ +{ + "input_content_sha256": "8aa907460a478d49c67dac4b96ce842a2811f0283cfa7723288ba9b82f07d80f", + "before": { + "1": 2448, + "2": 392, + "3": 464, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "after": { + "1": 2376, + "2": 464, + "3": 440, + "4": 168, + "5": 56, + "6": 44, + "8": 8 + }, + "changes": [ + { + "section": "B", + "index": 599, + "before": [ + "add", + 172, + 235, + -1, + 2, + [ + 264, + 136, + 72, + 32, + 24, + 6 + ] + ], + "after": [ + "add", + 172, + 235, + -1, + 2, + [ + 264, + 136, + 72, + 32, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 600, + "before": [ + "add", + 133, + 233, + -1, + 2, + [ + 272, + 144, + 80, + 48, + 8, + 6 + ] + ], + "after": [ + "add", + 133, + 233, + -1, + 2, + [ + 272, + 144, + 80, + 48, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 601, + "before": [ + "add", + 141, + 249, + -1, + 2, + [ + 256, + 136, + 64, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 141, + 249, + -1, + 2, + [ + 256, + 136, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 602, + "before": [ + "add", + 173, + 265, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6 + ] + ], + "after": [ + "add", + 173, + 265, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 603, + "before": [ + "add", + 140, + 267, + -1, + 2, + [ + 264, + 128, + 64, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 140, + 267, + -1, + 2, + [ + 264, + 128, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 604, + "before": [ + "add", + 132, + 251, + -1, + 2, + [ + 256, + 128, + 72, + 40, + 16, + 6 + ] + ], + "after": [ + "add", + 132, + 251, + -1, + 2, + [ + 256, + 128, + 72, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 627, + "before": [ + "add", + 196, + 58, + 1, + 1, + [ + 273, + 145, + 64, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 196, + 58, + 1, + 1, + [ + 257, + 129, + 64, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 630, + "before": [ + "add", + 197, + 425, + -1, + 2, + [ + 256, + 128, + 64, + 41, + 17, + 6 + ] + ], + "after": [ + "add", + 197, + 425, + -1, + 2, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 631, + "before": [ + "add", + 205, + 409, + -1, + 2, + [ + 273, + 128, + 81, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 205, + 409, + -1, + 2, + [ + 257, + 128, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 632, + "before": [ + "add", + 170, + 237, + 1, + 1, + [ + 320, + 192, + 32, + 17, + 9, + 6 + ] + ], + "after": [ + "add", + 170, + 237, + 1, + 1, + [ + 320, + 192, + 32, + 16, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 633, + "before": [ + "add", + 204, + 427, + -1, + 2, + [ + 256, + 145, + 81, + 49, + 9, + 6 + ] + ], + "after": [ + "add", + 204, + 427, + -1, + 2, + [ + 256, + 129, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 634, + "before": [ + "add", + 174, + 411, + -1, + 2, + [ + 256, + 128, + 64, + 41, + 24, + 6 + ] + ], + "after": [ + "add", + 174, + 411, + -1, + 2, + [ + 256, + 128, + 64, + 40, + 24, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 654, + "before": [ + "add", + 164, + 90, + 1, + 1, + [ + 321, + 128, + 33, + 17, + 9, + 6 + ] + ], + "after": [ + "add", + 164, + 90, + 1, + 1, + [ + 257, + 128, + 64, + 33, + 17, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 656, + "before": [ + "add", + 138, + 441, + -1, + 2, + [ + 273, + 128, + 80, + 33, + 9, + 6 + ] + ], + "after": [ + "add", + 138, + 441, + -1, + 2, + [ + 272, + 128, + 80, + 32, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 660, + "before": [ + "add", + 202, + 253, + 1, + 1, + [ + 256, + 145, + 80, + 48, + 9, + 6 + ] + ], + "after": [ + "add", + 202, + 253, + 1, + 1, + [ + 256, + 129, + 64, + 32, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 662, + "before": [ + "add", + 206, + 443, + -1, + 2, + [ + 273, + 128, + 65, + 33, + 9, + 6 + ] + ], + "after": [ + "add", + 206, + 443, + -1, + 2, + [ + 257, + 128, + 65, + 33, + 16, + 9, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 663, + "before": [ + "add", + 165, + 26, + 1, + 1, + [ + 256, + 137, + 72, + 33, + 24, + 6 + ] + ], + "after": [ + "add", + 165, + 26, + 1, + 1, + [ + 256, + 129, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 664, + "before": [ + "add", + 142, + 413, + 1, + 1, + [ + 256, + 137, + 65, + 40, + 17, + 6 + ] + ], + "after": [ + "add", + 142, + 413, + 1, + 1, + [ + 256, + 136, + 64, + 40, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 685, + "before": [ + "add", + 194, + 429, + 1, + 1, + [ + 272, + 144, + 65, + 49, + 8, + 6 + ] + ], + "after": [ + "add", + 194, + 429, + 1, + 1, + [ + 257, + 129, + 65, + 32, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 686, + "before": [ + "add", + 198, + 445, + 1, + 1, + [ + 256, + 128, + 81, + 33, + 8, + 6 + ] + ], + "after": [ + "add", + 198, + 445, + 1, + 1, + [ + 256, + 128, + 64, + 33, + 17, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 688, + "before": [ + "add", + 134, + 82, + 1, + 1, + [ + 272, + 144, + 81, + 49, + 8, + 6 + ] + ], + "after": [ + "add", + 134, + 82, + 1, + 1, + [ + 272, + 144, + 80, + 48, + 8, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 691, + "before": [ + "add", + 166, + 50, + 1, + 1, + [ + 256, + 193, + 33, + 16, + 8, + 6 + ] + ], + "after": [ + "add", + 166, + 50, + 1, + 1, + [ + 256, + 129, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 693, + "before": [ + "add", + 162, + 18, + 1, + 1, + [ + 321, + 128, + 33, + 16, + 8, + 6 + ] + ], + "after": [ + "add", + 162, + 18, + 1, + 1, + [ + 257, + 128, + 64, + 33, + 16, + 8, + 6 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + }, + { + "section": "B", + "index": 694, + "before": [ + "add", + 130, + 269, + 1, + 1, + [ + 256, + 128, + 65, + 33, + 16, + 6 + ] + ], + "after": [ + "add", + 130, + 269, + 1, + 1, + [ + 256, + 128, + 64, + 32, + 16, + 6, + 1 + ] + ], + "delta": { + "1": -3, + "2": 3, + "3": -1 + } + } + ] +} diff --git a/research/complex-571-cold14-k492/data/recipes/k492-jp8-hyperplane_end.json b/research/complex-571-cold14-k492/data/recipes/k492-jp8-hyperplane_end.json new file mode 100644 index 0000000000..a80f662396 --- /dev/null +++ b/research/complex-571-cold14-k492/data/recipes/k492-jp8-hyperplane_end.json @@ -0,0 +1,481 @@ +{ + "changes": [ + { + "helper": 448, + "cleanup_index": 652, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 449, + "cleanup_index": 651, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 450, + "cleanup_index": 650, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 451, + "cleanup_index": 649, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 452, + "cleanup_index": 648, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 453, + "cleanup_index": 647, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 454, + "cleanup_index": 646, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 455, + "cleanup_index": 645, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 456, + "cleanup_index": 644, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 457, + "cleanup_index": 643, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 458, + "cleanup_index": 640, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 467, + "cleanup_index": 631, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 468, + "cleanup_index": 628, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 477, + "cleanup_index": 619, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 490, + "cleanup_index": 597, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 491, + "cleanup_index": 596, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 514, + "cleanup_index": 561, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 515, + "cleanup_index": 560, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 538, + "cleanup_index": 527, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 539, + "cleanup_index": 526, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 562, + "cleanup_index": 495, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 563, + "cleanup_index": 494, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 574, + "cleanup_index": 481, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 583, + "cleanup_index": 472, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 584, + "cleanup_index": 469, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 593, + "cleanup_index": 460, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 594, + "cleanup_index": 457, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + }, + { + "helper": 595, + "cleanup_index": 456, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 596, + "cleanup_index": 455, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 598, + "cleanup_index": 453, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 600, + "cleanup_index": 451, + "frame": [ + 256, + 128, + 64, + 32, + 18, + 10, + 6, + 1 + ] + }, + { + "helper": 601, + "cleanup_index": 450, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 602, + "cleanup_index": 449, + "frame": [ + 256, + 128, + 64, + 32, + 24, + 4, + 2, + 1 + ] + }, + { + "helper": 603, + "cleanup_index": 448, + "frame": [ + 256, + 128, + 64, + 32, + 16, + 8, + 6, + 1 + ] + } + ], + "output_content_sha256": "a51b37b5bd5e9e66ea14e9759f88cb6181bab041cb09aecd08e7a11956100016" +} diff --git a/research/complex-571-cold14-k492/data/search/DISPATCH.json b/research/complex-571-cold14-k492/data/search/DISPATCH.json new file mode 100644 index 0000000000..0b6db2ff61 --- /dev/null +++ b/research/complex-571-cold14-k492/data/search/DISPATCH.json @@ -0,0 +1 @@ +{"0": "ck", "1": "ck", "2": "ck", "3": "ck", "4": "ck", "5": "jp8", "6": "ck", "7": "ck", "8": "jp8", "9": "jp8", "10": "jp8", "11": "jp8", "12": "jp8", "13": "jp8", "14": "jp8", "15": "jp8", "16": "jp8", "17": "jp8", "18": "jp8", "19": "jp8", "20": "jp8", "21": "jp8", "22": "jp8", "23": "jp8", "24": "jp8", "25": "jp8", "26": "jp8", "27": "jp8", "28": "jp8", "29": "jp8", "30": "jp8", "31": "jp8", "32": "jp8", "33": "jp8", "34": "jp8", "35": "jp8", "36": "jp8", "37": "jp8", "38": "jp8", "39": "jp8", "40": "jp8", "41": "jp8", "42": "jp8", "43": "jp8", "44": "jp8", "45": "jp8", "46": "jp8", "47": "jp8", "48": "jp8", "49": "jp8", "50": "jp8", "51": "jp8", "52": "jp8", "53": "jp8", "54": "jp8", "55": "jp8", "56": "jp8", "57": "jp8", "58": "jp8", "59": "jp8", "60": "jp8", "61": "jp8", "62": "jp8", "63": "jp8", "64": "jp8", "65": "jp8", "66": "jp8", "67": "jp8", "68": "jp8", "69": "jp8", "70": "jp8", "71": "jp8"} \ No newline at end of file diff --git a/research/complex-571-cold14-k492/data/search/LP-PATTERNS-AGG.json b/research/complex-571-cold14-k492/data/search/LP-PATTERNS-AGG.json new file mode 100644 index 0000000000..0f59340fb3 --- /dev/null +++ b/research/complex-571-cold14-k492/data/search/LP-PATTERNS-AGG.json @@ -0,0 +1 @@ +{"objective": 523258.9235546539, "windows": {"0,0": [[[8, 8], 82.24793388429754], [[7, 9], 29.75206611570247]], "0,2": [[[7, 9], 106.24793388429754], [[4, 4, 8], 5.752066115702469]], "0,1": [[[8], 112.0]], "0,3": [[[8], 112.0]], "0,4": [[[5, 9, 9, 9], 112.0]], "0,6": [[[5, 9, 9, 9], 112.0]], "0,5": [[[8], 86.0], [[4, 4], 26.0]], "0,7": [[[8], 112.0]], "0,8": [[[], 64.24793388429754], [[4, 8, 9, 9, 9, 9], 47.75206611570246]], "0,10": [[[], 98.0], [[4, 8, 9, 9, 9, 9], 14.0]], "0,9": [[[8], 112.0]], "0,11": [[[8], 112.0]], "0,12": [[[], 22.0], [[4, 8, 9, 9, 9, 9], 90.0]], "0,13": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "0,14": [[[5, 9, 9, 9], 82.0], [[4, 9, 9, 9], 30.0]], "0,15": [[[5, 9, 9, 9], 112.0]], "0,16": [[[8, 8], 10.0], [[7, 9], 72.0], [[4, 4, 8], 30.0]], "0,17": [[[7, 9], 108.0], [[4, 4, 8], 4.0]], "1,0": [[[7, 9], 112.0]], "1,2": [[[8, 8], 48.0], [[7, 9], 64.0]], "1,1": [[[8], 112.0]], "1,3": [[[8], 112.0]], "1,4": [[[5, 9, 9, 9], 112.0]], "1,6": [[[5, 9, 9, 9], 112.0]], "1,5": [[[8], 82.0], [[4, 4], 30.0]], "1,7": [[[8], 112.0]], "1,8": [[[], 41.25], [[4, 8, 9, 9, 9, 9], 70.75]], "1,10": [[[], 112.0]], "1,9": [[[8], 112.0]], "1,11": [[[8], 112.0]], "1,12": [[[], 71.87603305785123], [[4, 8, 9, 9, 9, 9], 40.12396694214877]], "1,13": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "1,14": [[[5, 9, 9, 9], 82.0], [[4, 9, 9, 9], 30.0]], "1,15": [[[5, 9, 9, 9], 112.0]], "1,16": [[[7, 9], 108.0], [[4, 4, 8], 4.0]], "1,17": [[[7, 9], 112.0]], "2,0": [[[8, 8], 14.0], [[7, 9], 68.0], [[4, 4, 8], 30.0]], "2,2": [[[8, 8], 17.752066115702462], [[7, 9], 94.24793388429754]], "2,1": [[[8], 112.0]], "2,3": [[[8], 112.0]], "2,4": [[[5, 9, 9, 9], 112.0]], "2,6": [[[5, 9, 9, 9], 112.0]], "2,5": [[[8], 112.0]], "2,7": [[[8], 112.0]], "2,8": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "2,10": [[[], 112.0]], "2,9": [[[8], 112.0]], "2,11": [[[8], 112.0]], "2,12": [[[], 112.0]], "2,13": [[[], 45.25], [[4, 8, 9, 9, 9, 9], 66.75]], "2,14": [[[5, 9, 9, 9], 112.0]], "2,15": [[[5, 9, 9, 9], 85.66322314049589], [[4, 9, 9, 9], 26.336776859504113]], "2,16": [[[8, 8], 12.0], [[7, 9], 100.0]], "2,17": [[[7, 9], 112.0]], "3,0": [[[8, 8], 40.0], [[7, 9], 72.0]], "3,2": [[[7, 9], 85.75206611570246], [[4, 4, 8], 26.247933884297538]], "3,1": [[[8], 112.0]], "3,3": [[[8], 112.0]], "3,4": [[[5, 9, 9, 9], 112.0]], "3,6": [[[5, 9, 9, 9], 112.0]], "3,5": [[[8], 112.0]], "3,7": [[[8], 112.0]], "3,8": [[[], 22.0], [[4, 8, 9, 9, 9, 9], 90.0]], "3,10": [[[], 86.0], [[4, 8, 9, 9, 9, 9], 26.0]], "3,9": [[[8], 112.0]], "3,11": [[[8], 112.0]], "3,12": [[[], 67.89152892561984], [[4, 8, 9, 9, 9, 9], 44.10847107438016]], "3,13": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "3,14": [[[5, 9, 9, 9], 112.0]], "3,15": [[[5, 9, 9, 9], 112.0]], "3,16": [[[7, 9], 82.0], [[4, 4, 8], 30.0]], "3,17": [[[7, 9], 108.0], [[4, 4, 8], 4.0]], "4,0": [[[7, 9], 96.0], [[4, 4, 8], 16.0]], "4,2": [[[7, 9], 108.0], [[4, 4, 8], 4.0]], "4,1": [[[8], 82.0], [[4, 4], 30.0]], "4,3": [[[8], 112.0]], "4,4": [[[5, 9, 9, 9], 112.0]], "4,6": [[[5, 9, 9, 9], 82.0], [[4, 9, 9, 9], 30.0]], "4,5": [[[8], 112.0]], "4,7": [[[8], 112.0]], "4,8": [[[], 62.0], [[4, 8, 9, 9, 9, 9], 50.0]], "4,10": [[[], 83.75206611570246], [[4, 8, 9, 9, 9, 9], 28.24793388429753]], "4,9": [[[8], 112.0]], "4,11": [[[8], 112.0]], "4,12": [[[], 34.10847107438016], [[4, 8, 9, 9, 9, 9], 77.89152892561984]], "4,13": [[[], 86.75], [[4, 8, 9, 9, 9, 9], 25.25]], "4,14": [[[5, 9, 9, 9], 112.0]], "4,15": [[[5, 9, 9, 9], 112.0]], "4,16": [[[8, 8], 40.0], [[7, 9], 72.0]], "4,17": [[[7, 9], 98.0], [[4, 4, 8], 14.0]], "5,0": [[[7, 9], 98.0], [[4, 4, 8], 14.0]], "5,2": [[[7, 9], 112.0]], "5,1": [[[8], 112.0]], "5,3": [[[8], 112.0]], "5,4": [[[5, 9, 9, 9], 112.0]], "5,6": [[[5, 9, 9, 9], 112.0]], "5,5": [[[8], 86.0], [[4, 4], 26.0]], "5,7": [[[8], 112.0]], "5,8": [[[], 76.0], [[4, 8, 9, 9, 9, 9], 36.0]], "5,10": [[[], 82.0], [[4, 8, 9, 9, 9, 9], 30.0]], "5,9": [[[8], 112.0]], "5,11": [[[8], 112.0]], "5,12": [[[], 53.4628099173554], [[4, 8, 9, 9, 9, 9], 58.5371900826446]], "5,13": [[[], 65.25103305785134], [[4, 8, 9, 9, 9, 9], 46.748966942148655]], "5,14": [[[5, 9, 9, 9], 112.0]], "5,15": [[[5, 9, 9, 9], 112.0]], "5,16": [[[8, 8], 27.381198347107414], [[7, 9], 84.61880165289259]], "5,17": [[[8, 8], 40.0], [[7, 9], 72.0]], "6,0": [[[8, 8], 24.0], [[7, 9], 88.0]], "6,2": [[[7, 9], 102.24793388429754], [[4, 4, 8], 9.752066115702469]], "6,1": [[[8], 112.0]], "6,3": [[[8], 112.0]], "6,4": [[[5, 9, 9, 9], 112.0]], "6,6": [[[5, 9, 9, 9], 112.0]], "6,5": [[[8], 112.0]], "6,7": [[[8], 112.0]], "6,8": [[[], 55.50413223140494], [[4, 8, 9, 9, 9, 9], 56.49586776859506]], "6,10": [[[], 96.0], [[4, 8, 9, 9, 9, 9], 16.0]], "6,9": [[[8], 112.0]], "6,11": [[[8], 112.0]], "6,12": [[[], 85.55785123966936], [[4, 8, 9, 9, 9, 9], 26.44214876033064]], "6,13": [[[], 93.9845041322314], [[4, 8, 9, 9, 9, 9], 18.015495867768607]], "6,14": [[[5, 9, 9, 9], 112.0]], "6,15": [[[5, 9, 9, 9], 112.0]], "6,16": [[[8, 8], 76.0], [[7, 9], 36.0]], "6,17": [[[8, 8], 10.181818181818244], [[7, 9], 101.81818181818176]], "7,0": [[[8, 8], 10.75], [[7, 9], 82.0], [[4, 4, 8], 19.25]], "7,2": [[[7, 9], 112.0]], "7,1": [[[8], 112.0]], "7,3": [[[8], 112.0]], "7,4": [[[5, 9, 9, 9], 100.88946280991738], [[4, 9, 9, 9], 11.110537190082624]], "7,6": [[[5, 9, 9, 9], 112.0]], "7,5": [[[8], 112.0]], "7,7": [[[8], 112.0]], "7,8": [[[], 70.0], [[4, 8, 9, 9, 9, 9], 42.0]], "7,10": [[[], 54.33677685950412], [[4, 8, 9, 9, 9, 9], 57.66322314049588]], "7,9": [[[8], 107.25], [[4, 4], 4.75]], "7,11": [[[8], 112.0]], "7,12": [[[], 65.49896694214866], [[4, 8, 9, 9, 9, 9], 46.501033057851345]], "7,13": [[[], 88.5506198347108], [[4, 8, 9, 9, 9, 9], 23.4493801652892]], "7,14": [[[5, 9, 9, 9], 111.44731404958682], [[4, 9, 9, 9], 0.5526859504131849]], "7,15": [[[5, 9, 9, 9], 112.0]], "7,16": [[[8, 8], 59.22830578512409], [[7, 9], 49.213842975206546], [[4, 4, 8], 3.557851239669361]], "7,17": [[[8, 8], 23.324380165289085], [[7, 9], 88.34917355371911], [[4, 4, 8], 0.32644628099181006]]}, "selections": {"0": {"ck": 1.0}, "1": {"ck": 1.0}, "2": {"ck": 1.0}, "3": {"ck": 1.0}, "4": {"ck": 1.0}, "5": {"jp8": 1.0}, "6": {"ck": 1.0}, "7": {"ck": 1.0}, "8": {"jp8": 1.0}, "9": {"jp8": 1.0}, "10": {"jp8": 1.0}, "11": {"jp8": 1.0}, "12": {"jp8": 1.0}, "13": {"jp8": 1.0}, "14": {"jp8": 1.0}, "15": {"jp8": 1.0}, "16": {"jp8": 1.0}, "17": {"jp8": 1.0}, "18": {"jp8": 1.0}, "19": {"ck": 0.125, "jp8": 0.875}, "20": {"jp8": 1.0}, "21": {"jp8": 1.0}, "22": {"jp8": 1.0}, "23": {"ck": 0.44524793388429784, "jp8": 0.5547520661157022}, "24": {"jp8": 1.0}, "25": {"jp8": 1.0}, "26": {"jp8": 1.0}, "27": {"jp8": 1.0}, "28": {"jp8": 1.0}, "29": {"jp8": 1.0}, "30": {"jp8": 1.0}, "31": {"jp8": 1.0}, "32": {"jp8": 1.0}, "33": {"jp8": 1.0}, "34": {"jp8": 1.0}, "35": {"jp8": 1.0}, "36": {"jp8": 1.0}, "37": {"jp8": 1.0}, "38": {"jp8": 1.0}, "39": {"jp8": 1.0}, "40": {"jp8": 1.0}, "41": {"jp8": 1.0}, "42": {"jp8": 1.0}, "43": {"jp8": 1.0}, "44": {"jp8": 1.0}, "45": {"jp8": 1.0}, "46": {"jp8": 1.0}, "47": {"jp8": 1.0}, "48": {"jp8": 1.0}, "49": {"jp8": 1.0}, "50": {"jp8": 1.0}, "51": {"jp8": 1.0}, "52": {"jp8": 1.0}, "53": {"jp8": 1.0}, "54": {"jp8": 1.0}, "55": {"jp8": 1.0}, "56": {"jp8": 1.0}, "57": {"jp8": 1.0}, "58": {"jp8": 1.0}, "59": {"jp8": 1.0}, "60": {"jp8": 1.0}, "61": {"jp8": 1.0}, "62": {"jp8": 1.0}, "63": {"jp8": 1.0}, "64": {"jp8": 1.0}, "65": {"jp8": 1.0}, "66": {"jp8": 1.0}, "67": {"jp8": 1.0}, "68": {"jp8": 1.0}, "69": {"jp8": 1.0}, "70": {"jp8": 1.0}, "71": {"jp8": 1.0}}, "flows": {"0,0": {"0,8": 82.24793388429754, "0,9": 29.75206611570247, "1,7": 29.75206611570247, "2,8": 82.24793388429754}, "0,2": {"0,8": 5.752066115702469, "0,9": 68.0, "1,4": 5.752066115702469, "1,7": 38.24793388429754, "2,4": 5.752066115702469, "2,7": 68.0, "2,9": 38.24793388429753}, "0,1": {"4,8": 68.0, "5,8": 44.0}, "0,3": {"3,8": 44.0, "5,8": 68.0}, "0,4": {"1,5": 48.0, "1,9": 64.0, "3,5": 16.0, "4,9": 48.0, "5,5": 48.0, "6,9": 112.0, "9,9": 112.0}, "0,6": {"2,5": 16.0, "3,9": 112.0, "4,5": 48.0, "7,9": 112.0, "8,9": 112.0, "9,5": 48.0}, "0,5": {"10,4": 26.0, "11,8": 38.0, "14,4": 26.0, "14,8": 48.0}, "0,7": {"13,8": 48.0, "14,8": 64.0}, "0,8": {"2,9": 47.75206611570246, "3,4": 3.752066115702462, "3,9": 44.0, "10,9": 47.75206611570246, "14,9": 47.75206611570246, "17,4": 30.0, "17,9": 3.752066115702462, "18,4": 14.0, "20,8": 47.75206611570246}, "0,10": {"12,9": 14.0, "13,4": 14.0, "15,9": 14.0, "18,9": 14.0, "19,9": 14.0, "20,8": 14.0}, "0,9": {"22,8": 45.25, "27,8": 66.75}, "0,11": {"26,8": 26.0, "28,8": 86.0}, "0,12": {"10,8": 72.0, "11,4": 30.0, "18,9": 90.0, "26,9": 90.0, "33,4": 30.0, "35,4": 30.0, "35,9": 18.0, "41,9": 90.0, "44,8": 18.0, "44,9": 72.0}, "0,13": {"15,9": 60.0, "22,9": 60.0, "34,9": 60.0, "35,9": 60.0, "42,4": 30.0, "43,4": 30.0, "44,8": 60.0}, "0,14": {"19,5": 48.0, "30,9": 112.0, "37,4": 30.0, "39,9": 112.0, "40,9": 112.0, "42,5": 34.0}, "0,15": {"27,9": 112.0, "34,5": 16.0, "36,9": 112.0, "38,5": 48.0, "42,9": 112.0, "43,5": 48.0}, "0,16": {"31,7": 36.0, "32,7": 36.0, "32,8": 40.0, "34,4": 30.0, "38,9": 72.0, "39,8": 10.0, "41,4": 30.0}, "0,17": {"30,7": 36.0, "31,4": 4.0, "34,9": 108.0, "38,4": 4.0, "41,7": 36.0, "42,7": 36.0, "44,8": 4.0}, "1,0": {"0,7": 44.0, "2,9": 68.0, "4,7": 68.0, "4,9": 44.0}, "1,2": {"1,8": 48.0, "2,9": 64.0, "3,7": 64.0, "3,8": 48.0}, "1,1": {"8,8": 112.0}, "1,3": {"6,8": 60.24793388429754, "7,8": 51.75206611570246}, "1,4": {"0,9": 112.0, "5,9": 112.0, "6,5": 48.0, "8,5": 16.0, "12,5": 48.0, "13,9": 112.0}, "1,6": {"7,5": 30.0, "7,9": 82.0, "8,9": 78.0, "10,9": 112.0, "11,5": 48.0, "11,9": 64.0, "13,5": 34.0}, "1,5": {"15,4": 30.0, "18,8": 82.0, "19,4": 30.0}, "1,7": {"16,8": 28.252066115702462, "19,8": 83.74793388429754}, "1,8": {"12,9": 70.75, "16,4": 30.0, "16,8": 40.75, "21,4": 30.0, "21,9": 40.75, "22,4": 10.75, "22,9": 60.0, "24,8": 30.0, "24,9": 40.75, "26,9": 70.75}, "1,10": {}, "1,9": {"34,8": 112.0}, "1,11": {"27,8": 45.25, "33,8": 66.75}, "1,12": {"15,9": 40.12396694214877, "16,9": 40.12396694214877, "23,8": 19.87603305785123, "23,9": 20.247933884297538, "26,4": 20.24793388429753, "31,9": 19.87603305785123, "35,9": 40.12396694214877, "50,4": 19.876033057851238, "50,8": 20.24793388429753}, "1,13": {"9,9": 30.0, "23,9": 60.0, "29,4": 30.0, "29,9": 30.0, "35,9": 60.0, "48,9": 60.0, "49,4": 30.0, "49,8": 30.0, "50,8": 30.0}, "1,14": {"21,9": 34.0, "29,9": 112.0, "37,9": 112.0, "39,5": 48.0, "48,4": 30.0, "49,5": 34.0, "49,9": 78.0}, "1,15": {"24,5": 30.0, "38,9": 112.0, "43,9": 112.0, "44,5": 34.0, "47,9": 112.0, "48,5": 48.0}, "1,16": {"36,4": 4.0, "36,7": 36.0, "39,7": 36.0, "45,9": 108.0, "46,4": 4.0, "49,8": 4.0, "50,7": 36.0}, "1,17": {"37,7": 36.0, "38,7": 36.0, "40,7": 36.0, "45,7": 4.0, "50,9": 112.0}, "2,0": {"1,8": 44.0, "3,9": 68.0, "6,4": 30.0, "6,7": 68.0, "6,8": 14.0, "7,4": 30.0}, "2,2": {"1,9": 94.24793388429754, "5,7": 26.247933884297538, "6,8": 17.752066115702462, "7,7": 68.0, "7,8": 17.752066115702462}, "2,1": {"9,8": 104.24793388429754, "11,8": 7.752066115702462}, "2,3": {"12,8": 112.0}, "2,4": {"0,5": 48.0, "12,9": 112.0, "13,9": 32.0, "14,9": 112.0, "15,5": 32.0, "17,5": 32.0, "17,9": 80.0}, "2,6": {"4,9": 112.0, "11,9": 48.0, "14,5": 48.0, "16,5": 48.0, "16,9": 64.0, "17,9": 112.0, "18,5": 16.0}, "2,5": {"25,8": 112.0}, "2,7": {"23,8": 30.0, "24,8": 82.0}, "2,8": {"9,4": 30.0, "13,8": 60.0, "14,9": 60.0, "20,9": 60.0, "25,9": 60.0, "32,4": 30.0, "33,9": 60.0}, "2,10": {}, "2,9": {"41,8": 112.0}, "2,11": {"35,8": 60.0, "40,8": 52.0}, "2,12": {}, "2,13": {"22,8": 66.75, "27,9": 66.75, "28,4": 10.75, "29,9": 66.75, "38,4": 26.0, "40,9": 66.75, "53,9": 66.75, "56,4": 30.0}, "2,14": {"27,5": 48.0, "36,9": 107.25103305785134, "40,5": 48.0, "46,9": 112.0, "51,5": 16.0, "53,9": 4.748966942148655, "54,9": 112.0}, "2,15": {"30,4": 26.336776859504113, "32,5": 29.891528925619838, "32,9": 82.10847107438016, "46,5": 30.000000000000085, "51,9": 29.891528925619838, "52,9": 112.0, "54,5": 25.771694214875964, "55,9": 112.0}, "2,16": {"44,7": 36.0, "46,7": 36.0, "48,7": 28.0, "49,8": 12.0, "54,8": 12.0, "56,9": 100.0}, "2,17": {"43,7": 36.0, "44,9": 58.5506198347108, "45,7": 32.0, "47,7": 36.0, "48,7": 8.0, "52,9": 53.4493801652892}, "3,0": {"5,9": 72.0, "8,7": 36.0, "10,7": 36.0, "10,8": 40.0, "11,8": 40.0}, "3,2": {"2,9": 36.0, "3,4": 26.247933884297538, "3,7": 4.0, "5,4": 26.247933884297538, "5,7": 9.752066115702462, "9,7": 36.0, "11,7": 36.0, "11,8": 26.247933884297538, "11,9": 49.75206611570246}, "3,1": {"17,8": 112.0}, "3,3": {"15,8": 112.0}, "3,4": {"2,5": 32.0, "6,9": 112.0, "13,5": 14.0, "15,9": 63.59090909090912, "18,9": 112.0, "22,5": 48.0, "23,9": 48.40909090909088, "24,5": 18.0}, "3,6": {"17,5": 16.0, "20,9": 112.0, "21,5": 48.0, "22,9": 112.0, "23,5": 48.0, "24,9": 112.0}, "3,5": {"31,8": 112.0}, "3,7": {"29,8": 56.0, "32,8": 56.0}, "3,8": {"23,9": 90.0, "25,4": 30.0, "26,8": 30.0, "32,9": 90.0, "33,9": 90.0, "34,9": 90.0, "39,4": 30.0, "40,4": 30.0, "40,8": 60.0}, "3,10": {"7,9": 26.0, "27,9": 26.0, "28,8": 26.0, "31,4": 26.0, "33,9": 26.0, "38,9": 26.0}, "3,9": {"45,8": 85.55785123966936, "48,8": 26.44214876033064}, "3,11": {"47,8": 53.75206611570247, "48,8": 58.24793388429753}, "3,12": {"25,9": 44.10847107438016, "30,9": 44.10847107438016, "50,9": 44.10847107438016, "52,9": 44.10847107438016, "57,8": 18.108471074380162, "60,4": 18.108471074380162, "60,8": 26.0, "61,4": 26.0}, "3,13": {"41,9": 60.0, "42,9": 60.0, "44,4": 30.0, "48,9": 60.0, "57,8": 60.0, "58,9": 60.0, "59,4": 30.0}, "3,14": {"33,5": 48.0, "39,9": 112.0, "49,9": 16.0, "53,5": 48.0, "56,5": 16.0, "56,9": 96.0, "59,9": 112.0}, "3,15": {"41,5": 41.219008264462786, "47,9": 93.2190082644629, "52,5": 48.0, "55,9": 41.56198347107431, "57,9": 112.0, "60,5": 22.780991735537214, "60,9": 89.21900826446279}, "3,16": {"51,7": 36.0, "51,8": 30.0, "52,7": 36.0, "53,4": 30.0, "55,4": 30.0, "55,7": 10.0, "61,9": 82.0}, "3,17": {"49,7": 36.0, "50,8": 4.0, "53,7": 36.0, "54,7": 36.0, "54,9": 72.0, "57,9": 36.0, "60,4": 4.0, "61,4": 4.0}, "4,0": {"0,7": 24.0, "8,4": 16.0, "8,9": 76.0, "11,9": 20.0, "13,4": 16.0, "15,7": 36.0, "16,7": 36.0, "16,8": 16.0}, "4,2": {"9,9": 12.0, "12,4": 4.0, "12,7": 36.0, "13,7": 36.0, "13,8": 4.0, "14,4": 4.0, "14,7": 36.0, "16,9": 96.0}, "4,1": {"18,8": 6.0, "20,4": 30.0, "21,8": 76.0, "23,4": 30.0}, "4,3": {"19,8": 25.752066115702462, "20,8": 50.24793388429754, "21,8": 36.0}, "4,4": {"3,9": 30.0, "5,9": 82.0, "10,5": 48.0, "19,9": 112.0, "28,5": 16.0, "29,5": 48.0, "31,9": 112.0}, "4,6": {"4,4": 30.0, "13,9": 92.0, "20,5": 34.0, "21,9": 112.0, "25,9": 20.0, "28,9": 112.0, "31,5": 48.0}, "4,5": {"32,8": 16.0, "39,8": 96.0}, "4,7": {"38,8": 112.0}, "4,8": {"0,8": 3.999999999999993, "10,4": 4.0, "18,4": 16.0, "28,9": 50.0, "30,9": 50.0, "36,8": 46.00000000000001, "42,9": 30.0, "46,9": 50.0, "47,4": 30.0, "47,9": 20.0}, "4,10": {"1,4": 24.24793388429753, "14,9": 28.24793388429753, "17,9": 28.24793388429753, "30,9": 28.24793388429753, "45,4": 4.0, "46,9": 28.24793388429753, "47,8": 28.24793388429753}, "4,9": {"50,8": 57.75206611570246, "54,8": 54.24793388429754}, "4,11": {"52,8": 30.0, "53,8": 82.0}, "4,12": {"25,9": 77.89152892561984, "27,4": 22.641528925619838, "32,9": 77.89152892561984, "51,9": 77.89152892561984, "58,9": 77.89152892561984, "63,4": 25.25, "64,4": 30.0, "65,8": 77.89152892561984}, "4,13": {"26,9": 25.25, "33,8": 25.25, "41,9": 25.25, "50,9": 25.25, "61,9": 25.25, "65,4": 25.25}, "4,14": {"44,9": 112.0, "58,5": 16.0, "62,9": 112.0, "63,9": 112.0, "64,5": 48.0, "65,5": 48.0}, "4,15": {"41,9": 22.30785123966936, "43,9": 112.0, "55,5": 48.0, "58,9": 89.69214876033064, "62,5": 25.771694214875964, "63,5": 38.228305785124036, "64,9": 112.0}, "4,16": {"58,7": 36.0, "59,7": 36.0, "60,8": 40.0, "61,9": 72.0, "64,8": 40.0}, "4,17": {"55,7": 26.0, "56,7": 36.0, "57,4": 14.0, "57,7": 36.0, "58,4": 14.0, "62,8": 14.0, "65,9": 98.0}, "5,0": {"2,4": 14.0, "8,4": 14.0, "16,8": 14.0, "18,7": 36.0, "19,9": 26.0, "20,7": 26.0, "20,9": 72.0, "21,7": 36.0}, "5,2": {"12,9": 69.25, "15,9": 42.75, "17,7": 36.0, "19,7": 40.0, "22,7": 36.0}, "5,1": {"23,8": 53.219008264462815, "30,8": 58.780991735537185}, "5,3": {"26,8": 56.0, "29,8": 56.0}, "5,4": {"4,9": 50.0, "10,9": 24.247933884297538, "27,9": 61.25, "28,9": 88.50206611570246, "30,5": 16.0, "35,5": 48.0, "36,5": 48.0, "37,9": 112.0}, "5,6": {"9,9": 112.0, "18,5": 32.0, "26,5": 48.0, "26,9": 64.0, "31,9": 112.0, "35,9": 48.0, "37,5": 32.0}, "5,5": {"43,8": 56.0, "45,4": 26.0, "46,4": 26.0, "46,8": 30.0}, "5,7": {"44,8": 30.0, "46,8": 82.0}, "5,8": {"33,9": 36.0, "42,9": 6.0, "47,8": 30.0, "48,9": 36.0, "51,4": 30.0, "51,8": 6.0, "52,4": 6.0, "52,9": 30.0, "53,9": 36.0}, "5,10": {"0,4": 30.0, "13,9": 30.0, "37,9": 30.0, "46,9": 30.0, "48,9": 30.0, "53,8": 30.0}, "5,9": {"55,8": 40.1942148760331, "58,8": 71.8057851239669}, "5,11": {"58,8": 6.194214876033115, "59,8": 105.80578512396688}, "5,12": {"40,9": 58.5371900826446, "48,8": 27.30991735537183, "50,9": 28.5371900826446, "56,9": 58.5371900826446, "61,8": 31.227272727272776, "62,9": 58.5371900826446, "66,4": 28.5371900826446, "66,9": 30.0, "67,4": 30.0}, "5,13": {"36,9": 46.748966942148655, "54,4": 30.0, "55,9": 46.748966942148655, "60,9": 46.748966942148655, "65,9": 46.748966942148655, "67,8": 46.748966942148655, "68,4": 16.748966942148655}, "5,14": {"47,5": 48.0, "49,9": 112.0, "57,5": 48.0, "59,5": 16.0, "63,9": 112.0, "67,9": 112.0}, "5,15": {"50,5": 48.0, "53,9": 112.0, "64,9": 112.0, "66,5": 48.0, "67,5": 16.0, "68,9": 112.0}, "5,16": {"60,7": 36.0, "62,8": 27.381198347107414, "63,7": 36.0, "64,7": 12.618801652892586, "68,8": 27.381198347107414, "68,9": 84.61880165289259}, "5,17": {"60,9": 72.0, "61,7": 36.0, "62,7": 36.0, "67,8": 40.0, "68,8": 40.0}, "6,0": {"0,9": 44.24793388429753, "4,8": 24.0, "16,9": 43.75206611570247, "18,8": 24.0, "23,7": 16.0, "27,7": 36.0, "28,7": 36.0}, "6,2": {"2,8": 9.752066115702469, "6,9": 30.0, "22,9": 14.997933884297538, "24,4": 9.752066115702469, "25,7": 36.0, "26,4": 9.752066115702469, "26,7": 36.0, "29,7": 30.24793388429753, "29,9": 57.25}, "6,1": {"36,8": 9.219008264462808, "37,8": 102.78099173553719}, "6,3": {"30,8": 53.219008264462815, "35,8": 52.0, "36,8": 6.780991735537185}, "6,4": {"1,9": 95.75206611570246, "3,5": 32.0, "15,9": 45.53512396694211, "25,5": 48.0, "25,9": 64.0, "28,5": 18.0, "38,9": 56.0, "40,9": 28.7128099173554, "44,5": 14.0, "45,9": 46.0}, "6,6": {"8,5": 32.0, "20,5": 14.0, "21,9": 54.0, "24,9": 112.0, "30,5": 18.0, "34,5": 32.0, "37,5": 16.0, "42,9": 58.0, "45,9": 112.0}, "6,5": {"51,8": 30.0, "52,8": 82.0}, "6,7": {"49,8": 66.0, "51,8": 46.0}, "6,8": {"2,4": 10.247933884297531, "7,8": 22.495867768595076, "7,9": 34.0, "11,9": 56.49586776859506, "12,4": 26.0, "24,4": 20.24793388429753, "48,9": 56.49586776859506, "55,9": 22.495867768595062, "57,9": 56.49586776859506, "58,8": 33.999999999999986}, "6,10": {"26,9": 16.0, "32,9": 16.0, "49,9": 16.0, "51,9": 16.0, "55,8": 16.0, "58,4": 16.0}, "6,9": {"62,8": 1.1415289256198378, "63,8": 110.85847107438016}, "6,11": {"60,8": 31.227272727272776, "61,8": 80.77272727272722}, "6,12": {"41,9": 26.44214876033064, "45,8": 26.44214876033064, "52,9": 26.44214876033064, "57,9": 26.44214876033064, "69,4": 26.44214876033064, "70,9": 26.44214876033064}, "6,13": {"39,9": 18.015495867768607, "50,4": 10.123966942148762, "60,4": 7.891528925619845, "62,9": 18.015495867768607, "64,9": 18.015495867768607, "67,9": 18.015495867768607, "69,8": 18.015495867768607}, "6,14": {"54,9": 24.336776859504113, "60,5": 25.219008264462786, "61,5": 38.780991735537214, "61,9": 73.21900826446279, "66,9": 112.0, "67,9": 66.4018595041325, "68,5": 48.0, "70,9": 60.0423553719006}, "6,15": {"54,5": 22.228305785124036, "56,5": 32.0, "59,9": 82.73863636363635, "62,9": 77.26136363636365, "63,5": 9.771694214875964, "66,9": 112.0, "69,5": 48.0, "69,9": 64.0}, "6,16": {"66,7": 36.0, "68,8": 37.36466942148763, "69,8": 38.63533057851237, "69,9": 36.0, "70,8": 76.0}, "6,17": {"64,7": 23.381198347107414, "65,7": 36.0, "67,7": 22.786157024793454, "69,8": 10.181818181818244, "69,9": 19.650826446280888, "70,7": 19.650826446280895, "70,8": 10.181818181818244, "70,9": 82.16735537190087}, "7,0": {"9,8": 7.752066115702462, "10,9": 82.0, "16,8": 12.997933884297538, "20,7": 10.0, "22,4": 19.25, "24,7": 36.0, "28,4": 19.25, "33,8": 20.0, "34,7": 36.0}, "7,2": {"18,9": 50.0, "23,7": 34.24793388429753, "29,7": 5.752066115702469, "31,9": 22.12396694214877, "33,7": 36.0, "35,7": 36.0, "35,9": 39.87603305785123}, "7,1": {"39,8": 6.0, "42,8": 106.0}, "7,3": {"36,8": 50.0, "42,8": 6.0, "43,8": 56.0}, "7,4": {"5,4": 3.752066115702462, "14,9": 18.000000000000007, "17,9": 42.00000000000001, "19,9": 112.0, "22,9": 19.002066115702462, "27,4": 7.358471074380162, "32,5": 18.108471074380162, "41,5": 6.780991735537214, "42,5": 14.0, "43,9": 42.0, "45,5": 48.0, "47,9": 40.7809917355371, "49,5": 14.0, "51,9": 62.216942148760324}, "7,6": {"7,5": 18.0, "15,5": 16.0, "20,9": 22.0, "21,9": 25.25, "24,9": 1.25, "28,5": 14.0, "30,5": 14.0, "30,9": 31.643595041322307, "33,9": 54.0, "34,9": 8.0, "37,9": 12.0, "46,5": 18.0, "46,9": 45.75206611570247, "50,9": 56.10433884297524, "51,5": 32.0, "51,9": 80.0}, "7,5": {"55,8": 23.4493801652892, "56,8": 88.5506198347108}, "7,7": {"54,8": 45.75206611570246, "55,8": 32.3564049586777, "57,8": 33.89152892561984}, "7,8": {"11,9": 27.752066115702462, "23,9": 42.0, "36,4": 26.0, "41,9": 42.0, "56,9": 11.4628099173554, "57,4": 16.0, "57,9": 26.0, "60,9": 18.785123966942137, "62,8": 42.0}, "7,10": {"16,9": 22.123966942148762, "19,9": 0.5, "28,9": 15.497933884297538, "30,4": 3.6632231404958873, "37,8": 9.219008264462808, "39,9": 23.984504132231393, "48,9": 23.504132231404924, "49,9": 44.0, "52,4": 24.0, "54,9": 57.66322314049588, "55,9": 43.19318181818198, "59,8": 6.194214876033115, "60,8": 14.772727272727217, "62,4": 30.0, "62,8": 27.47727272727274, "62,9": 0.18595041322313932}, "7,9": {"63,4": 4.75, "63,8": 1.1415289256198378, "64,8": 72.0, "65,4": 4.75, "66,8": 34.10847107438016}, "7,11": {"65,8": 34.10847107438016, "66,8": 77.89152892561984}, "7,12": {"53,9": 46.501033057851345, "59,9": 46.501033057851345, "60,9": 39.24690082644642, "67,8": 13.357438016528903, "67,9": 33.14359504132244, "68,8": 7.254132231404988, "70,4": 25.889462809917454, "70,9": 20.61157024793389, "71,4": 20.61157024793389, "71,8": 25.889462809917454}, "7,13": {"44,9": 23.4493801652892, "56,8": 23.4493801652892, "57,9": 9.0619834710743, "65,9": 23.4493801652892, "66,4": 1.4628099173554006, "68,4": 12.924586776859535, "69,9": 23.4493801652892, "71,4": 9.0619834710743, "71,9": 14.3873966942149}, "7,14": {"58,5": 32.0, "58,9": 38.41632231404952, "59,5": 32.0, "59,9": 24.76033057851231, "61,5": 9.219008264462786, "64,9": 23.984504132231393, "67,5": 32.0, "68,9": 69.38119834710741, "69,9": 73.68595041322337, "70,4": 0.5526859504131849, "71,5": 6.228305785124036, "71,9": 105.77169421487596}, "7,15": {"61,9": 13.530991735537214, "62,5": 22.228305785124036, "63,9": 42.0, "65,9": 97.80165289256215, "66,9": 12.0, "67,9": 36.43904958677645, "70,5": 48.0, "70,9": 64.0, "71,5": 41.771694214875964, "71,9": 70.22830578512404}, "7,16": {"67,7": 13.213842975206546, "69,4": 3.557851239669361, "69,7": 36.0, "69,8": 45.16735537190078, "69,9": 13.213842975206546, "70,4": 3.557851239669361, "70,8": 14.06095041322331, "70,9": 12.736570247934011, "71,8": 62.786157024793454, "71,9": 23.26342975206599}, "7,17": {"67,8": 11.893595041322442, "68,4": 0.32644628099181006, "68,7": 36.0, "69,9": 36.0, "70,7": 16.349173553719112, "70,8": 11.757231404958453, "71,4": 0.32644628099181006, "71,7": 36.0, "71,8": 23.324380165289085, "71,9": 52.34917355371911}}} \ No newline at end of file diff --git a/research/complex-571-cold14-k492/data/search/LP-PATTERNS-EX.json b/research/complex-571-cold14-k492/data/search/LP-PATTERNS-EX.json new file mode 100644 index 0000000000..05f5ab6166 --- /dev/null +++ b/research/complex-571-cold14-k492/data/search/LP-PATTERNS-EX.json @@ -0,0 +1 @@ +{"objective": 523259.0864724705, "windows": {"0,0": [[[8, 8], 64.0], [[7, 9], 48.0]], "0,2": [[[8, 8], 28.0], [[7, 9], 68.0], [[4, 4, 8], 16.0]], "0,1": [[[8], 112.0]], "0,3": [[[8], 112.0]], "0,4": [[[5, 9, 9, 9], 82.0], [[4, 9, 9, 9], 30.0]], "0,6": [[[5, 9, 9, 9], 112.0]], "0,5": [[[8], 112.0]], "0,7": [[[8], 112.0]], "0,8": [[[], 82.0], [[4, 8, 9, 9, 9, 9], 30.0]], "0,10": [[[], 82.0], [[4, 8, 9, 9, 9, 9], 30.0]], "0,9": [[[8], 112.0]], "0,11": [[[8], 112.0]], "0,12": [[[], 30.0], [[4, 8, 9, 9, 9, 9], 82.0]], "0,13": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "0,14": [[[5, 9, 9, 9], 112.0]], "0,15": [[[5, 9, 9, 9], 112.0]], "0,16": [[[7, 9], 100.0], [[4, 4, 8], 12.0]], "0,17": [[[7, 9], 112.0]], "1,0": [[[7, 9], 112.0]], "1,2": [[[7, 9], 112.0]], "1,1": [[[8], 112.0]], "1,3": [[[8], 112.0]], "1,4": [[[5, 9, 9, 9], 112.0]], "1,6": [[[5, 9, 9, 9], 112.0]], "1,5": [[[8], 82.0], [[4, 4], 30.0]], "1,7": [[[8], 112.0]], "1,8": [[[], 112.0]], "1,10": [[[], 82.0], [[4, 8, 9, 9, 9, 9], 30.0]], "1,9": [[[8], 112.0]], "1,11": [[[8], 112.0]], "1,12": [[[], 26.0], [[4, 8, 9, 9, 9, 9], 86.0]], "1,13": [[[], 62.0], [[4, 8, 9, 9, 9, 9], 50.0]], "1,14": [[[5, 9, 9, 9], 82.0], [[4, 9, 9, 9], 30.0]], "1,15": [[[5, 9, 9, 9], 112.0]], "1,16": [[[7, 9], 82.0], [[4, 4, 8], 30.0]], "1,17": [[[8, 8], 30.0], [[7, 9], 82.0]], "2,0": [[[8, 8], 28.0], [[7, 9], 68.0], [[4, 4, 8], 16.0]], "2,2": [[[8, 8], 8.0], [[7, 9], 104.0]], "2,1": [[[8], 112.0]], "2,3": [[[8], 112.0]], "2,4": [[[5, 9, 9, 9], 112.0]], "2,6": [[[5, 9, 9, 9], 112.0]], "2,5": [[[8], 112.0]], "2,7": [[[8], 112.0]], "2,8": [[[], 104.0], [[4, 8, 9, 9, 9, 9], 8.0]], "2,10": [[[], 82.0], [[4, 8, 9, 9, 9, 9], 30.0]], "2,9": [[[8], 112.0]], "2,11": [[[8], 112.0]], "2,12": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "2,13": [[[], 20.0], [[4, 8, 9, 9, 9, 9], 92.0]], "2,14": [[[5, 9, 9, 9], 112.0]], "2,15": [[[5, 9, 9, 9], 112.0]], "2,16": [[[7, 9], 112.0]], "2,17": [[[7, 9], 112.0]], "3,0": [[[8, 8], 4.0], [[7, 9], 108.0]], "3,2": [[[8, 8], 54.0], [[7, 9], 36.0], [[4, 4, 8], 22.0]], "3,1": [[[8], 112.0]], "3,3": [[[8], 112.0]], "3,4": [[[5, 9, 9, 9], 96.0], [[4, 9, 9, 9], 16.0]], "3,6": [[[5, 9, 9, 9], 112.0]], "3,5": [[[8], 112.0]], "3,7": [[[8], 112.0]], "3,8": [[[], 82.0], [[4, 8, 9, 9, 9, 9], 30.0]], "3,10": [[[], 82.0], [[4, 8, 9, 9, 9, 9], 30.0]], "3,9": [[[8], 112.0]], "3,11": [[[8], 112.0]], "3,12": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "3,13": [[[], 40.400000000000006], [[4, 8, 9, 9, 9, 9], 71.6]], "3,14": [[[5, 9, 9, 9], 112.0]], "3,15": [[[5, 9, 9, 9], 112.0]], "3,16": [[[7, 9], 94.0], [[4, 4, 8], 18.0]], "3,17": [[[7, 9], 108.0], [[4, 4, 8], 4.0]], "4,0": [[[7, 9], 98.0], [[4, 4, 8], 14.0]], "4,2": [[[7, 9], 82.0], [[4, 4, 8], 30.0]], "4,1": [[[8], 112.0]], "4,3": [[[8], 112.0]], "4,4": [[[5, 9, 9, 9], 112.0]], "4,6": [[[5, 9, 9, 9], 112.0]], "4,5": [[[8], 112.0]], "4,7": [[[8], 112.0]], "4,8": [[[], 56.0], [[4, 8, 9, 9, 9, 9], 56.0]], "4,10": [[[], 86.0], [[4, 8, 9, 9, 9, 9], 26.0]], "4,9": [[[8], 112.0]], "4,11": [[[8], 112.0]], "4,12": [[[], 22.0], [[4, 8, 9, 9, 9, 9], 90.0]], "4,13": [[[], 75.6], [[4, 8, 9, 9, 9, 9], 36.4]], "4,14": [[[5, 9, 9, 9], 102.0], [[4, 9, 9, 9], 10.0]], "4,15": [[[5, 9, 9, 9], 112.0]], "4,16": [[[8, 8], 28.8], [[7, 9], 83.2]], "4,17": [[[7, 9], 96.8], [[4, 4, 8], 15.2]], "5,0": [[[7, 9], 108.0], [[4, 4, 8], 4.0]], "5,2": [[[8, 8], 4.0], [[7, 9], 108.0]], "5,1": [[[8], 112.0]], "5,3": [[[8], 112.0]], "5,4": [[[5, 9, 9, 9], 112.0]], "5,6": [[[5, 9, 9, 9], 82.0], [[4, 9, 9, 9], 30.0]], "5,5": [[[8], 82.0], [[4, 4], 30.0]], "5,7": [[[8], 112.0]], "5,8": [[[], 93.6], [[9, 9, 9, 9, 9], 18.400000000000006]], "5,10": [[[], 112.0]], "5,9": [[[8], 112.0]], "5,11": [[[8], 112.0]], "5,12": [[[], 60.0], [[4, 8, 9, 9, 9, 9], 52.0]], "5,13": [[[], 66.4], [[4, 8, 9, 9, 9, 9], 45.6]], "5,14": [[[5, 9, 9, 9], 112.0]], "5,15": [[[5, 9, 9, 9], 112.0]], "5,16": [[[8, 8], 15.2], [[7, 9], 96.8]], "5,17": [[[8, 8], 40.0], [[7, 9], 72.0]], "6,0": [[[7, 9], 112.0]], "6,2": [[[8, 8], 14.0], [[7, 9], 92.0], [[4, 4, 8], 6.0]], "6,1": [[[8], 112.0]], "6,3": [[[8], 112.0]], "6,4": [[[5, 9, 9, 9], 112.0]], "6,6": [[[5, 9, 9, 9], 112.0]], "6,5": [[[8], 112.0]], "6,7": [[[8], 112.0]], "6,8": [[[], 88.4], [[4, 8, 9, 9, 9, 9], 23.6]], "6,10": [[[], 52.0], [[4, 8, 9, 9, 9, 9], 60.0]], "6,9": [[[8], 112.0]], "6,11": [[[8], 112.0]], "6,12": [[[], 74.0], [[4, 8, 9, 9, 9, 9], 38.0]], "6,13": [[[], 97.6], [[4, 8, 9, 9, 9, 9], 14.399999999999999]], "6,14": [[[5, 9, 9, 9], 112.0]], "6,15": [[[5, 9, 9, 9], 112.0]], "6,16": [[[8, 8], 4.0], [[7, 9], 108.0]], "6,17": [[[8, 8], 76.0], [[7, 9], 36.0]], "7,0": [[[7, 9], 72.0], [[4, 4, 8], 40.0]], "7,2": [[[8, 8], 38.0], [[7, 9], 74.0]], "7,1": [[[8], 112.0]], "7,3": [[[8], 112.0]], "7,4": [[[5, 9, 9, 9], 112.0]], "7,6": [[[5, 9, 9, 9], 100.0], [[4, 9, 9, 9], 12.0]], "7,5": [[[8], 112.0]], "7,7": [[[8], 112.0]], "7,8": [[[], 84.0], [[4, 8, 9, 9, 9, 9], 28.0]], "7,10": [[[], 59.2], [[4, 8, 9, 9, 9, 9], 52.8]], "7,9": [[[8], 112.0]], "7,11": [[[8], 112.0]], "7,12": [[[], 68.0], [[4, 8, 9, 9, 9, 9], 44.0]], "7,13": [[[], 76.4], [[4, 8, 9, 9, 9, 9], 35.599999999999994]], "7,14": [[[5, 9, 9, 9], 112.0]], "7,15": [[[5, 9, 9, 9], 112.0]], "7,16": [[[8, 8], 39.20000000000001], [[7, 9], 49.999999999999986], [[4, 4, 8], 22.80000000000001]], "7,17": [[[8, 8], 12.8], [[7, 9], 69.2], [[4, 4, 8], 30.0]]}, "selections": {"0": {"ck": 1.0}, "1": {"ck": 1.0}, "2": {"ck": 1.0}, "3": {"ck": 1.0}, "4": {"ck": 1.0}, "5": {"jp8": 1.0}, "6": {"ck": 1.0}, "7": {"ck": 1.0}, "8": {"jp8": 1.0}, "9": {"jp8": 1.0}, "10": {"jp8": 1.0}, "11": {"jp8": 1.0}, "12": {"jp8": 1.0}, "13": {"jp8": 1.0}, "14": {"jp8": 1.0}, "15": {"jp8": 1.0}, "16": {"jp8": 1.0}, "17": {"jp8": 1.0}, "18": {"jp8": 1.0}, "19": {"jp8": 1.0}, "20": {"jp8": 1.0}, "21": {"jp8": 1.0}, "22": {"jp8": 1.0}, "23": {"jp8": 1.0}, "24": {"jp8": 1.0}, "25": {"jp8": 1.0}, "26": {"jp8": 1.0}, "27": {"jp8": 1.0}, "28": {"jp8": 1.0}, "29": {"jp8": 1.0}, "30": {"jp8": 1.0}, "31": {"jp8": 1.0}, "32": {"jp8": 1.0}, "33": {"jp8": 1.0}, "34": {"jp8": 1.0}, "35": {"jp8": 1.0}, "36": {"jp8": 1.0}, "37": {"jp8": 1.0}, "38": {"jp8": 1.0}, "39": {"jp8": 1.0}, "40": {"jp8": 1.0}, "41": {"jp8": 1.0}, "42": {"jp8": 1.0}, "43": {"jp8": 1.0}, "44": {"jp8": 1.0}, "45": {"jp8": 1.0}, "46": {"jp8": 1.0}, "47": {"jp8": 1.0}, "48": {"jp8": 1.0}, "49": {"jp8": 1.0}, "50": {"jp8": 1.0}, "51": {"jp8": 1.0}, "52": {"jp8": 1.0}, "53": {"jp8": 1.0}, "54": {"jp8": 1.0}, "55": {"jp8": 1.0}, "56": {"jp8": 1.0}, "57": {"jp8": 1.0}, "58": {"jp8": 1.0}, "59": {"jp8": 1.0}, "60": {"jp8": 1.0}, "61": {"jp8": 1.0}, "62": {"jp8": 1.0}, "63": {"jp8": 1.0}, "64": {"jp8": 1.0}, "65": {"jp8": 1.0}, "66": {"jp8": 1.0}, "67": {"jp8": 1.0}, "68": {"jp8": 1.0}, "69": {"jp8": 1.0}, "70": {"jp8": 1.0}, "71": {"jp8": 1.0}}, "flows": {"0,0": {"0,9": 24.0, "1,7": 24.0, "1,8": 64.0, "2,7": 24.0, "2,8": 64.0, "2,9": 24.0}, "0,2": {"0,4": 16.0, "0,7": 68.0, "0,8": 28.0, "1,4": 16.0, "1,8": 16.0, "1,9": 68.0, "2,8": 28.0}, "0,1": {"3,8": 58.0, "5,8": 54.0}, "0,3": {"4,8": 84.0, "5,8": 28.0}, "0,4": {"0,9": 82.0, "1,9": 30.0, "4,9": 30.0, "5,5": 48.0, "6,4": 30.0, "7,5": 34.0, "7,9": 48.0, "8,9": 82.0, "9,9": 64.0}, "0,6": {"2,5": 30.0, "3,9": 34.0, "4,5": 34.0, "4,9": 78.0, "5,9": 112.0, "6,9": 112.0, "9,5": 48.0}, "0,5": {"13,8": 94.0, "14,8": 18.0}, "0,7": {"10,8": 94.0, "13,8": 18.0}, "0,8": {"1,9": 30.0, "2,4": 30.0, "7,9": 30.0, "12,9": 30.0, "16,9": 30.0, "20,8": 30.0}, "0,10": {"5,8": 30.0, "8,9": 30.0, "11,9": 30.0, "15,9": 30.0, "16,9": 30.0, "20,4": 30.0}, "0,9": {"24,8": 82.0, "27,8": 30.0}, "0,11": {"23,8": 30.0, "28,8": 82.0}, "0,12": {"13,9": 82.0, "20,9": 82.0, "28,4": 22.0, "29,9": 82.0, "32,4": 30.0, "34,4": 30.0, "39,9": 82.0, "44,8": 82.0}, "0,13": {"14,9": 60.0, "17,4": 30.0, "20,9": 60.0, "26,9": 60.0, "27,4": 30.0, "33,8": 60.0, "34,9": 60.0}, "0,14": {"26,9": 16.0, "31,9": 112.0, "37,5": 16.0, "37,9": 96.0, "38,5": 48.0, "41,5": 48.0, "42,9": 112.0}, "0,15": {"19,5": 48.0, "20,5": 48.0, "38,9": 112.0, "39,5": 16.0, "40,9": 112.0, "43,9": 112.0}, "0,16": {"29,8": 12.0, "30,4": 12.0, "32,7": 36.0, "33,7": 28.0, "37,7": 36.0, "41,9": 100.0, "42,4": 12.0}, "0,17": {"31,7": 18.0, "34,7": 36.0, "36,7": 36.0, "36,9": 76.0, "44,7": 22.0, "44,9": 36.0}, "1,0": {"1,7": 44.0, "1,9": 28.0, "2,9": 84.0, "3,7": 68.0}, "1,2": {"2,7": 44.0, "2,9": 68.0, "4,7": 68.0, "4,9": 44.0}, "1,1": {"6,8": 24.0, "7,8": 88.0}, "1,3": {"7,8": 4.0, "8,8": 108.0}, "1,4": {"6,5": 48.0, "8,9": 16.0, "9,9": 112.0, "10,5": 48.0, "11,9": 112.0, "13,5": 16.0, "13,9": 96.0}, "1,6": {"3,5": 16.0, "5,9": 26.0, "6,9": 86.0, "8,5": 48.0, "10,9": 112.0, "11,5": 48.0, "12,9": 112.0}, "1,5": {"18,4": 30.0, "19,4": 30.0, "19,8": 82.0}, "1,7": {"15,8": 44.0, "18,8": 68.0}, "1,8": {}, "1,10": {"1,9": 30.0, "9,4": 30.0, "12,9": 30.0, "14,9": 30.0, "21,9": 30.0, "22,8": 30.0}, "1,9": {"31,8": 112.0}, "1,11": {"34,8": 112.0}, "1,12": {"13,4": 26.0, "19,9": 86.0, "25,4": 30.0, "25,8": 56.0, "30,9": 86.0, "35,9": 86.0, "44,9": 86.0, "48,4": 30.0, "50,8": 30.0}, "1,13": {"14,8": 50.0, "15,4": 20.0, "17,9": 50.0, "19,9": 50.0, "24,4": 30.0, "40,9": 50.0, "47,9": 50.0}, "1,14": {"23,9": 82.0, "29,5": 34.0, "29,9": 78.0, "36,9": 30.0, "37,9": 30.0, "39,9": 82.0, "45,5": 48.0, "45,9": 34.0, "50,4": 30.0}, "1,15": {"25,9": 112.0, "28,5": 16.0, "32,9": 48.0, "33,5": 48.0, "46,9": 112.0, "49,5": 48.0, "49,9": 64.0}, "1,16": {"36,4": 30.0, "40,7": 36.0, "41,7": 36.0, "42,7": 10.0, "44,4": 30.0, "49,8": 30.0, "50,9": 82.0}, "1,17": {"38,7": 36.0, "39,7": 36.0, "43,7": 10.0, "43,8": 30.0, "48,8": 30.0, "48,9": 82.0}, "2,0": {"0,8": 28.0, "1,9": 68.0, "3,8": 28.0, "4,4": 16.0, "5,4": 16.0, "6,8": 16.0, "7,7": 68.0}, "2,2": {"4,8": 8.0, "5,7": 36.0, "6,7": 68.0, "6,8": 8.0, "7,9": 104.0}, "2,1": {"9,8": 58.0, "11,8": 54.0}, "2,3": {"12,8": 112.0}, "2,4": {"10,9": 96.0, "14,5": 48.0, "14,9": 64.0, "15,5": 16.0, "17,5": 48.0, "17,9": 64.0, "18,9": 112.0}, "2,6": {"3,9": 112.0, "12,5": 48.0, "15,9": 112.0, "16,5": 48.0, "16,9": 64.0, "17,9": 48.0, "18,5": 16.0}, "2,5": {"20,8": 82.0, "21,8": 30.0}, "2,7": {"22,8": 68.0, "25,8": 44.0}, "2,8": {"1,8": 8.0, "5,9": 8.0, "19,9": 8.0, "28,9": 8.0, "32,9": 8.0, "33,4": 8.0}, "2,10": {"0,9": 30.0, "14,8": 30.0, "18,9": 30.0, "28,9": 30.0, "31,4": 30.0, "32,9": 30.0}, "2,9": {"38,8": 112.0}, "2,11": {"41,8": 112.0}, "2,12": {"21,9": 60.0, "23,4": 30.0, "29,9": 60.0, "44,9": 60.0, "47,9": 60.0, "54,4": 30.0, "56,8": 60.0}, "2,13": {"22,4": 30.0, "22,9": 62.0, "29,4": 24.0, "30,8": 30.0, "36,9": 92.0, "37,9": 92.0, "39,4": 30.0, "41,9": 92.0, "51,8": 62.0, "51,9": 30.0, "55,4": 8.0}, "2,14": {"26,5": 48.0, "31,9": 112.0, "33,9": 112.0, "51,9": 112.0, "55,5": 16.0, "56,5": 48.0}, "2,15": {"32,9": 48.0, "40,5": 48.0, "47,5": 48.0, "47,9": 64.0, "53,9": 112.0, "54,5": 16.0, "55,9": 112.0}, "2,16": {"42,7": 26.0, "42,9": 86.0, "44,7": 14.0, "45,7": 36.0, "46,7": 36.0, "49,9": 26.0}, "2,17": {"43,7": 26.0, "47,7": 36.0, "48,7": 36.0, "49,7": 14.0, "56,9": 112.0}, "3,0": {"3,9": 108.0, "8,7": 36.0, "8,8": 4.0, "9,7": 36.0, "10,7": 36.0, "11,8": 4.0}, "3,2": {"0,8": 22.0, "3,4": 22.0, "4,9": 36.0, "9,8": 54.0, "10,4": 22.0, "11,7": 36.0, "11,8": 54.0}, "3,1": {"16,8": 112.0}, "3,3": {"15,8": 38.0, "17,8": 74.0}, "3,4": {"0,5": 48.0, "0,9": 64.0, "8,9": 16.0, "11,4": 16.0, "16,9": 16.0, "18,9": 48.0, "19,9": 96.0, "23,5": 48.0, "24,9": 96.0}, "3,6": {"7,5": 14.0, "18,5": 32.0, "21,5": 48.0, "21,9": 64.0, "22,9": 112.0, "23,9": 66.0, "24,5": 18.0, "24,9": 94.0}, "3,5": {"25,8": 12.0, "29,8": 100.0}, "3,7": {"32,8": 112.0}, "3,8": {"16,4": 30.0, "23,9": 30.0, "24,8": 30.0, "25,9": 30.0, "32,9": 30.0, "38,9": 30.0}, "3,10": {"10,9": 30.0, "26,9": 30.0, "30,9": 30.0, "35,9": 30.0, "37,4": 30.0, "39,8": 30.0}, "3,9": {"45,8": 112.0}, "3,11": {"47,8": 30.0, "48,8": 82.0}, "3,12": {"35,4": 30.0, "43,9": 60.0, "44,8": 30.0, "44,9": 30.0, "46,9": 60.0, "56,4": 30.0, "57,9": 60.0, "61,8": 30.0, "61,9": 30.0}, "3,13": {"28,9": 71.6, "34,9": 71.6, "40,4": 30.0, "50,9": 71.6, "51,8": 28.0, "53,4": 13.599999999999994, "54,9": 71.6, "61,4": 28.0, "61,8": 43.599999999999994}, "3,14": {"40,9": 48.0, "43,5": 18.000000000000004, "53,5": 48.0, "53,9": 64.0, "58,9": 112.0, "59,5": 46.0, "60,9": 112.0}, "3,15": {"34,5": 32.0, "39,5": 32.0, "39,9": 80.0, "49,9": 32.0, "50,9": 112.0, "58,5": 16.0, "59,9": 112.0, "60,5": 32.0}, "3,16": {"49,7": 22.0, "50,8": 18.0, "51,4": 18.0, "52,7": 36.0, "52,9": 36.0, "54,7": 36.0, "54,9": 58.0, "57,4": 18.0}, "3,17": {"50,7": 36.0, "51,7": 36.0, "53,7": 36.0, "56,8": 4.0, "57,4": 4.0, "57,9": 108.0, "60,4": 4.0}, "4,0": {"0,4": 14.0, "4,4": 14.0, "13,7": 36.0, "14,7": 26.0, "14,8": 14.0, "14,9": 36.0, "15,7": 36.0, "15,9": 62.0}, "4,2": {"2,9": 36.0, "8,4": 30.0, "12,7": 36.0, "12,9": 46.0, "14,4": 30.0, "14,7": 10.0, "15,8": 30.0, "16,7": 36.0}, "4,1": {"19,8": 30.0, "23,8": 82.0}, "4,3": {"18,8": 16.0, "21,8": 82.0, "22,8": 14.0}, "4,4": {"11,9": 112.0, "15,5": 16.0, "27,9": 112.0, "28,9": 112.0, "30,5": 48.0, "31,5": 48.0}, "4,6": {"9,9": 90.0, "13,5": 32.0, "20,9": 112.0, "21,9": 112.0, "25,5": 48.0, "28,5": 32.0, "30,9": 22.0}, "4,5": {"35,8": 82.0, "36,8": 30.0}, "4,7": {"37,8": 30.0, "39,8": 82.0}, "4,8": {"6,9": 56.0, "12,4": 26.0, "18,8": 28.0, "21,4": 30.0, "24,9": 56.0, "30,9": 56.0, "36,9": 56.0, "42,8": 28.0}, "4,10": {"3,4": 8.0, "7,9": 26.0, "26,9": 26.0, "28,9": 26.0, "29,9": 26.0, "30,4": 18.0, "47,8": 26.0}, "4,9": {"49,8": 26.0, "50,8": 64.0, "51,8": 22.0}, "4,11": {"53,8": 38.400000000000006, "54,8": 73.6}, "4,12": {"33,9": 90.0, "35,9": 90.0, "41,4": 30.0, "45,9": 90.0, "52,4": 30.0, "57,8": 76.8, "61,9": 90.0, "64,4": 30.0, "65,8": 13.200000000000003}, "4,13": {"26,9": 30.0, "41,9": 36.4, "43,4": 30.0, "43,9": 6.399999999999999, "52,9": 36.4, "56,9": 36.4, "58,8": 6.399999999999999, "65,4": 6.399999999999999, "65,8": 30.0}, "4,14": {"46,5": 48.0, "47,9": 10.0, "52,9": 102.0, "53,9": 10.0, "55,9": 102.0, "59,9": 10.0, "62,4": 10.0, "62,9": 102.0, "64,5": 6.0, "65,5": 48.0}, "4,15": {"42,5": 32.0, "42,9": 68.0, "48,5": 32.0, "48,9": 80.0, "54,9": 76.0, "63,5": 48.0, "64,9": 112.0}, "4,16": {"55,7": 36.0, "58,7": 36.0, "59,7": 11.2, "59,9": 5.6000000000000085, "60,8": 28.8, "63,9": 77.6, "64,8": 28.8}, "4,17": {"56,7": 36.0, "57,7": 36.0, "59,7": 24.799999999999997, "60,4": 15.2, "62,8": 15.2, "63,4": 15.2, "65,9": 96.8}, "5,0": {"1,8": 4.0, "7,9": 46.0, "12,4": 4.0, "13,4": 4.0, "14,9": 62.0, "18,7": 36.0, "20,7": 36.0, "22,7": 36.0}, "5,2": {"6,8": 4.0, "10,8": 4.0, "13,9": 76.0, "15,9": 32.0, "17,7": 36.0, "19,7": 36.0, "21,7": 36.0}, "5,1": {"26,8": 74.0, "27,8": 38.0}, "5,3": {"27,8": 44.0, "28,8": 30.0, "30,8": 38.0}, "5,4": {"5,9": 112.0, "8,9": 48.0, "22,5": 48.0, "25,9": 64.0, "34,5": 16.0, "36,5": 48.0, "38,9": 112.0}, "5,6": {"2,9": 30.0, "4,5": 14.0, "15,9": 30.0, "22,9": 30.0, "24,5": 30.0, "26,9": 82.0, "27,5": 6.0, "32,9": 34.0, "34,9": 82.0, "37,5": 32.0, "37,9": 48.0, "38,4": 30.0}, "5,5": {"40,8": 28.0, "45,4": 30.0, "46,4": 30.0, "46,8": 54.0}, "5,7": {"42,8": 54.0, "46,8": 58.0}, "5,8": {"28,9": 18.400000000000006, "39,9": 18.400000000000006, "44,9": 18.400000000000006, "47,9": 18.400000000000006, "52,9": 18.400000000000006}, "5,10": {}, "5,9": {"54,8": 38.400000000000006, "58,8": 73.6}, "5,11": {"59,8": 112.0}, "5,12": {"33,4": 22.0, "33,9": 30.0, "48,9": 22.0, "57,9": 52.0, "58,9": 52.0, "63,9": 52.0, "66,4": 30.0, "67,8": 52.0}, "5,13": {"32,9": 45.6, "51,9": 45.6, "62,4": 20.0, "63,9": 45.6, "65,9": 45.6, "67,4": 25.599999999999994, "68,8": 45.6}, "5,14": {"48,9": 82.0, "55,9": 52.0, "57,5": 36.0, "62,5": 48.0, "62,9": 64.0, "64,9": 54.0, "67,5": 28.000000000000004, "67,9": 84.0}, "5,15": {"50,5": 36.0, "52,5": 48.0, "53,9": 52.400000000000006, "56,9": 87.6, "61,5": 28.0, "61,9": 84.0, "66,9": 112.0}, "5,16": {"60,7": 36.0, "60,8": 15.2, "62,7": 36.0, "67,7": 24.799999999999997, "67,8": 15.2, "68,9": 96.8}, "5,17": {"61,7": 36.0, "63,7": 36.0, "63,9": 36.0, "66,8": 40.0, "68,8": 40.0, "68,9": 36.0}, "6,0": {"0,9": 54.0, "22,9": 38.0, "24,7": 4.0, "24,9": 20.0, "26,7": 36.0, "27,7": 36.0, "28,7": 36.0}, "6,2": {"0,8": 14.0, "3,8": 6.0, "10,8": 14.0, "11,4": 6.0, "18,9": 66.0, "19,9": 26.0, "23,7": 20.0, "25,7": 36.0, "29,4": 6.0, "29,7": 36.0}, "6,1": {"30,8": 44.0, "33,8": 28.400000000000006, "36,8": 39.599999999999994}, "6,3": {"35,8": 30.0, "37,8": 82.0}, "6,4": {"1,5": 48.0, "12,9": 48.0, "16,9": 112.0, "27,9": 112.0, "32,5": 34.0, "43,5": 29.999999999999996, "43,9": 64.0}, "6,6": {"17,9": 60.0, "23,9": 88.0, "27,5": 16.0, "29,9": 20.0, "35,5": 48.0, "40,9": 56.0, "44,5": 48.0, "45,9": 112.0}, "6,5": {"47,8": 56.0, "52,8": 56.0}, "6,7": {"49,8": 56.0, "52,8": 56.0}, "6,8": {"33,8": 23.6, "43,9": 23.6, "46,9": 23.6, "47,4": 23.6, "57,9": 23.6, "58,9": 23.6}, "6,10": {"25,9": 60.0, "32,9": 22.400000000000006, "41,9": 37.599999999999994, "49,4": 30.0, "49,9": 30.0, "52,9": 60.0, "56,8": 30.0, "56,9": 30.0, "58,4": 30.0, "58,8": 30.0}, "6,9": {"60,8": 68.0, "62,8": 44.0}, "6,11": {"61,8": 12.400000000000006, "63,8": 99.6}, "6,12": {"49,9": 38.0, "57,8": 14.8, "59,4": 23.2, "63,4": 14.8, "63,9": 23.2, "66,9": 38.0, "67,9": 38.0, "70,8": 23.2, "70,9": 14.8}, "6,13": {"40,8": 14.399999999999999, "54,9": 14.399999999999999, "58,9": 14.399999999999999, "59,9": 14.399999999999999, "65,4": 14.399999999999999, "67,9": 14.399999999999999}, "6,14": {"54,5": 32.0, "55,5": 32.0, "57,5": 12.000000000000004, "58,9": 50.0, "61,5": 20.0, "61,9": 62.0, "65,9": 112.0, "68,5": 16.0, "69,9": 112.0}, "6,15": {"58,5": 32.0, "60,9": 112.0, "67,9": 112.0, "68,5": 32.0, "69,5": 48.0, "70,9": 112.0}, "6,16": {"64,7": 36.0, "64,9": 72.0, "66,7": 36.0, "67,8": 4.0, "68,7": 36.0, "68,9": 36.0, "69,8": 4.0}, "6,17": {"65,7": 36.0, "69,8": 76.0, "70,8": 76.0, "70,9": 36.0}, "7,0": {"1,4": 14.0, "5,4": 14.0, "6,8": 40.0, "7,4": 30.0, "23,7": 16.0, "26,4": 22.0, "30,7": 30.0, "31,7": 18.0, "33,7": 8.0, "33,9": 19.599999999999994, "34,9": 52.400000000000006}, "7,2": {"8,9": 74.0, "17,8": 38.0, "24,7": 32.0, "26,8": 38.0, "30,7": 6.0, "35,7": 36.0}, "7,1": {"36,8": 42.400000000000006, "40,8": 69.6}, "7,3": {"42,8": 30.0, "43,8": 82.0}, "7,4": {"2,5": 18.0, "4,9": 66.0, "13,9": 12.0, "15,5": 16.0, "16,9": 14.0, "22,9": 24.0, "27,9": 42.0, "29,5": 14.0, "31,9": 42.0, "35,9": 60.0, "42,5": 16.0, "49,9": 76.0, "51,5": 48.0}, "7,6": {"2,9": 12.0, "3,5": 32.0, "5,9": 8.0, "11,9": 12.0, "14,9": 14.0, "17,9": 44.0, "20,9": 12.0, "27,5": 26.0, "30,9": 72.0, "32,5": 13.999999999999996, "38,9": 12.0, "46,9": 17.60000000000001, "47,9": 54.0, "48,5": 16.0, "50,5": 12.0, "51,4": 12.0, "51,9": 78.4}, "7,5": {"55,8": 112.0}, "7,7": {"53,8": 73.6, "56,8": 18.0, "57,8": 20.400000000000006}, "7,8": {"10,9": 28.0, "11,4": 8.0, "36,9": 12.0, "42,4": 18.0, "45,9": 28.0, "52,9": 13.199999999999989, "57,9": 2.8000000000000114, "58,8": 2.0, "61,4": 2.0, "61,8": 26.0, "62,9": 28.0}, "7,10": {"10,4": 8.0, "15,4": 10.0, "18,9": 10.0, "26,4": 8.0, "26,9": 22.0, "28,4": 8.0, "33,9": 14.400000000000006, "39,9": 3.5999999999999943, "46,9": 52.8, "54,9": 46.0, "57,4": 8.0, "59,9": 52.8, "60,4": 10.8, "60,9": 9.599999999999994, "62,8": 52.8}, "7,9": {"64,8": 40.0, "66,8": 72.0}, "7,11": {"64,8": 43.2, "65,8": 68.8}, "7,12": {"53,4": 16.400000000000006, "53,9": 27.599999999999994, "57,9": 19.599999999999994, "59,4": 6.800000000000001, "63,8": 12.400000000000006, "63,9": 31.599999999999994, "65,4": 9.200000000000003, "68,8": 26.4, "69,9": 44.0, "70,9": 26.000000000000007, "71,4": 11.599999999999994, "71,8": 5.199999999999996, "71,9": 27.20000000000001}, "7,13": {"44,9": 35.599999999999994, "45,9": 2.0, "47,4": 6.399999999999999, "47,9": 9.599999999999994, "50,9": 0.4000000000000057, "55,4": 22.0, "62,9": 35.599999999999994, "66,9": 35.599999999999994, "68,4": 7.199999999999989, "69,8": 2.3999999999999986, "70,9": 21.2, "71,8": 33.199999999999996, "71,9": 2.3999999999999986}, "7,14": {"59,9": 71.2, "60,5": 16.0, "60,9": 32.4, "66,5": 48.0, "66,9": 64.0, "68,9": 79.19999999999999, "70,5": 48.0, "71,9": 89.20000000000002}, "7,15": {"58,9": 14.0, "59,5": 2.0000000000000036, "62,9": 36.400000000000006, "64,5": 42.0, "64,9": 28.0, "65,9": 11.600000000000009, "66,9": 16.400000000000006, "67,5": 19.999999999999996, "68,9": 18.000000000000014, "69,9": 91.60000000000001, "70,9": 55.99999999999999, "71,5": 48.0, "71,9": 64.0}, "7,16": {"67,4": 4.400000000000006, "67,7": 11.200000000000003, "67,8": 27.999999999999996, "67,9": 17.6, "68,4": 22.80000000000001, "69,7": 21.19999999999998, "69,8": 29.60000000000002, "71,4": 18.400000000000006, "71,7": 17.6, "71,8": 43.600000000000016, "71,9": 32.399999999999984}, "7,17": {"67,8": 12.8, "69,4": 30.0, "69,7": 14.800000000000011, "69,9": 18.399999999999995, "70,4": 30.0, "70,7": 36.0, "70,8": 12.799999999999997, "71,7": 18.399999999999995, "71,8": 30.0, "71,9": 50.800000000000004}}} \ No newline at end of file diff --git a/research/complex-571-cold14-k492/data/search/TEMPLATE-PLAN.json b/research/complex-571-cold14-k492/data/search/TEMPLATE-PLAN.json new file mode 100644 index 0000000000..12e2f187d9 --- /dev/null +++ b/research/complex-571-cold14-k492/data/search/TEMPLATE-PLAN.json @@ -0,0 +1,43330 @@ +{ + "status": "LITERAL_OWNER_NOMINATION_PENDING_ADMISSION", + "mode": "frozen-saturation-pattern-time-matching", + "K": 4, + "T": 8, + "M": 73, + "L": 9, + "live": 7168, + "deficit": 2560, + "profile": { + "1": 185792, + "2": 32576, + "3": 23600, + "4": 14128, + "5": 5040, + "6": 2016, + "8": 576, + "32": 1, + "48": 2094 + }, + "order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "windows": { + "0,0": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,2": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,1": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,3": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,5": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,7": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,9": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,11": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,12": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,13": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,14": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,15": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,16": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,17": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "1,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,1": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,3": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,5": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,7": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,9": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,11": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,12": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,13": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,14": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,15": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,16": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,17": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "2,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,1": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,3": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,5": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,7": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,9": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,11": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,12": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,13": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,14": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,15": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,16": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,17": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "3,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,1": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,3": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,5": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,7": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,9": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,11": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,12": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,13": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,14": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,15": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,16": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,17": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "4,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,1": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,3": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,5": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,7": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,9": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,11": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,12": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,13": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,14": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,15": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,16": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,17": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "5,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,1": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,3": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,5": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,7": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,9": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,11": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,12": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,13": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,14": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,15": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,16": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,17": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "6,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,1": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,3": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,5": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,7": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,9": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,11": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,12": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,13": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,14": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,15": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,16": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,17": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "7,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,1": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,3": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,5": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,7": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,9": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,11": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,12": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,13": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,14": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,15": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,16": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,17": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ] + }, + "sides": { + "0": 0, + "2": 1, + "1": 0, + "3": 1, + "4": 0, + "6": 1, + "5": 0, + "7": 1, + "8": 0, + "10": 1, + "9": 0, + "11": 1, + "12": 0, + "13": 1, + "14": 0, + "15": 1, + "16": 0, + "17": 1 + }, + "pairs": { + "0": 1, + "2": 1, + "1": 1, + "3": 1, + "4": 2, + "6": 2, + "5": 2, + "7": 2, + "8": 3, + "10": 3, + "9": 3, + "11": 3, + "12": 0, + "13": 0, + "14": 1, + "15": 1, + "16": 2, + "17": 2 + }, + "solver_status": "relocate_swap_chain_flip_annealing_of_pr601_literal_map", + "gap": null, + "provider_calls": [ + { + "time": 0, + "stage": 0, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 1, + "stage": 0, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 2, + "stage": 1, + "replica": 0, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 3, + "stage": 0, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 4, + "stage": 1, + "replica": 1, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 5, + "stage": 2, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 6, + "stage": 0, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 7, + "stage": 1, + "replica": 2, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 8, + "stage": 2, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 9, + "stage": 3, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 10, + "stage": 0, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 11, + "stage": 1, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 12, + "stage": 2, + "replica": 2, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 13, + "stage": 3, + "replica": 1, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 14, + "stage": 4, + "replica": 0, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 15, + "stage": 0, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 16, + "stage": 1, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 17, + "stage": 2, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 18, + "stage": 3, + "replica": 2, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 19, + "stage": 4, + "replica": 1, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 20, + "stage": 5, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 21, + "stage": 0, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 22, + "stage": 1, + "replica": 5, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 23, + "stage": 2, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 24, + "stage": 3, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 25, + "stage": 4, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 26, + "stage": 5, + "replica": 1, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 27, + "stage": 0, + "replica": 7, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 28, + "stage": 6, + "replica": 0, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 29, + "stage": 1, + "replica": 6, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 30, + "stage": 2, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 31, + "stage": 3, + "replica": 4, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 32, + "stage": 4, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + { + "time": 33, + "stage": 5, + "replica": 2, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 34, + "stage": 6, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24" + }, + { + "time": 35, + "stage": 1, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 36, + "stage": 7, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 37, + "stage": 2, + "replica": 6, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 38, + "stage": 3, + "replica": 5, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 39, + "stage": 4, + "replica": 4, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 40, + "stage": 5, + "replica": 3, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 41, + "stage": 6, + "replica": 2, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 42, + "stage": 7, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 43, + "stage": 2, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 44, + "stage": 8, + "replica": 0, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 45, + "stage": 3, + "replica": 6, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 46, + "stage": 4, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 47, + "stage": 5, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 48, + "stage": 6, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 49, + "stage": 7, + "replica": 2, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 50, + "stage": 8, + "replica": 1, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 51, + "stage": 3, + "replica": 7, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 52, + "stage": 4, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 53, + "stage": 5, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + { + "time": 54, + "stage": 6, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 55, + "stage": 7, + "replica": 3, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 56, + "stage": 8, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 57, + "stage": 4, + "replica": 7, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 58, + "stage": 5, + "replica": 6, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 59, + "stage": 6, + "replica": 5, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f" + }, + { + "time": 60, + "stage": 7, + "replica": 4, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 61, + "stage": 8, + "replica": 3, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 62, + "stage": 5, + "replica": 7, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 63, + "stage": 6, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 64, + "stage": 7, + "replica": 5, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 65, + "stage": 8, + "replica": 4, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 66, + "stage": 6, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 67, + "stage": 7, + "replica": 6, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + { + "time": 68, + "stage": 8, + "replica": 5, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 69, + "stage": 7, + "replica": 7, + "provider": "ck", + "orientation": "backward", + "local_program_sha256": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + { + "time": 70, + "stage": 8, + "replica": 6, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + }, + { + "time": 71, + "stage": 8, + "replica": 7, + "provider": "ck", + "orientation": "forward", + "local_program_sha256": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab" + } + ], + "per_call_widths": [ + { + "stage": 0, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + } + ], + "provider_registry": { + "atm3": { + "directory": "providers/atm3", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "3162da180b7da8bd9d9fcded2d3618ad19110be8dab68a25099dc3565ad7b10b", + "LOCAL-PROGRAMS.json.gz": "3a21c1f45cbba24e0e2666ddfe6e9c3a2c99db9828b2080bf48c6b3b16ea88e2", + "LOCAL-CHECKS.json": "8a8ac44c79691aed3008e1bd4211cd6479ee7e6bca27c822591aee49a3c9d4a2", + "INDEPENDENT-LOCAL-REPLAY.json": "00e67d2100f8e80a1c4bb45f586e9d560b03584987c2714ef728bfe94087747d", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "dbf6926b1ee518e94148aca0e0f632d2f52a76124d54216f11903f2c45fbf397", + "RESIDUAL-ADAPTERS.json": "6c0dc81ae31583c9c099bf74eaa5d607bc6fa108c10edb4a1cf8dfa26dfeee9e" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2642, + "2": 408, + "3": 288, + "4": 224, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "67770bfcf864a49a40271216592c3f749811deb187425a17dd4995422830cc7f", + "backward": "23644276741be78fd8f01cca29aef971cd9302b65783adb2c78778c4db7631f9" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + } + }, + "ck": { + "directory": "providers/ck", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "905455c055b9cb621ab484145a70ebba9aff39c01804ed4e9c3bdd21ad2ff102", + "LOCAL-PROGRAMS.json.gz": "5985ef4cb25adce746d4c74c5c0858bc8311091abf5b85802ccba9d92602a4a2", + "LOCAL-CHECKS.json": "5d3ab8bbe152d1e8e1c6ccaacdb37a74308b3ae6ebf9ec3c86dbc233bcc92dad", + "INDEPENDENT-LOCAL-REPLAY.json": "9e57dd6d3a8eed601f497e858275014f03e31aa6ac06226df75dd9f00f28655a", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "fc1cd2ccf0b55fe100611149bd785a68eeee690e1d74c9082497ab154f2cac2e", + "RESIDUAL-ADAPTERS.json": "fd34bb086ed7078bbc420c167459bf7bc8b48c8497dcb4280d65eb3df2e62e2b" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2562, + "2": 488, + "3": 328, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "f5886cc3fec7015a8b6d25477f13d1b6a051419c1b6a34a735cae29b3b9529ab", + "backward": "80739c8b308e55f4ae228c946be0a720d6f207a2d5c1ed27f2dadb70d428e254" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4a0564ada402b56cb545e49ca00e201c1c72deec3bf6c0d15dd77b1bfca67b2a", + "LOCAL-PROGRAMS.json.gz": "8123ef30bd535262f7516fb0c31ff31b7b160e704c63cd4736d00e007883e6eb", + "LOCAL-CHECKS.json": "314b2a2b089f83b7405a60a4643256f93759e0af3fcfb7ae3ce9eaa5abe4e828", + "INDEPENDENT-LOCAL-REPLAY.json": "9f35b65222f0ec49326a12323a5cabc85709203aecf8eb7132249443b0e76f3b", + "CLIFFORD-RECIPES.json": "c413fcae2e9c22e0b020ac0073686bad9cfc22e61c82840f8d85ef4fd801bb90", + "CLIFFORD-REVIEW.json": "a0613c6639752dbf92246b9e3f3062b0f32af4ed6c7d76d42bd5081c23f3a450", + "RESIDUAL-ADAPTERS.json": "4ed5789e4f9e971ee42c5ee3a7a23281145d9fe94c320d32d6ece907a66969ce" + } + }, + "jp8": { + "directory": "providers/jp8", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "137c7b29a3088e2722c60d5df1f6d352d619eba3057a91cd8e1b8d0a2e4327aa", + "LOCAL-PROGRAMS.json.gz": "7f3ccd0d058e817b1bb12f9dc7c1b9c719f2e78e4f12f257dcfbb688fcb96261", + "LOCAL-CHECKS.json": "62f7d8218432f27af220a4ca3b22a90a9ddb5d637b3880b4d7cf55042ee07b62", + "INDEPENDENT-LOCAL-REPLAY.json": "40c6da4caa854459d1d0354a983aabdea0804740281deed06d01d7d2249fffcb", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "424238ad34892eff68e60a456d563e0f65db83b5761cacac8a09467c362b82b4", + "RESIDUAL-ADAPTERS.json": "daf5f638a222d5b48e60a60e9f8badf8c4f46da1f7e472e91f350881b808be6f" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2478, + "2": 336, + "3": 472, + "4": 184, + "5": 70, + "6": 28, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "e50db0ccfd5028f2c871c54bb20f1ae25615de3610d7fcf340052dc040c62d24", + "backward": "20fc773535473124584bca715b7c8be70085b700300af2a839a768729dffc892" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "aa40dab2bf62a54c21786f15fecb83b8d3b95ae4e3a6df3a1bd5ffddb2fa2ecc", + "LOCAL-PROGRAMS.json.gz": "ef68197756a140f50eb857ad55cbfb3da8495220e4c301395bb5007de1dadcbf", + "LOCAL-CHECKS.json": "d1e4e9cadfe9a07e1ee3449f8f60deaad8bc9c5f9644708148c63d48aaed28d2", + "INDEPENDENT-LOCAL-REPLAY.json": "1187b00a321c7465c487dee38a1c5e535dc8e1873cc019545621655b4c500e6e", + "CLIFFORD-RECIPES.json": "61351efb268dbb94b2218f3a1eac811008feaa8146102b7eafc084d288b9a73a", + "CLIFFORD-REVIEW.json": "2db782ae902b3e16d550cfac58e1d49429684d83e41cfcdf3d4436daa99d3c7a", + "RESIDUAL-ADAPTERS.json": "46366cf705b0f2555be526a8def0cab0ccdf3c4ef75fcb24b06e3f15520a6e1b" + } + } + }, + "source_plan_sha256": "329750b57d80ee60893ca1be6bba38f39a2264dd63bf2158ca0ac68f406326cd", + "assignment_sha256": "944695b855d3224809d71f43b33fa2290f7fde4934eaf3a6ea87ac1631f59688", + "source_owners_sha256": "944695b855d3224809d71f43b33fa2290f7fde4934eaf3a6ea87ac1631f59688" +} diff --git a/research/complex-571-cold14-k492/data/search/WARM-OWNERS.json.gz b/research/complex-571-cold14-k492/data/search/WARM-OWNERS.json.gz new file mode 100644 index 0000000000..eeae0c81d9 Binary files /dev/null and b/research/complex-571-cold14-k492/data/search/WARM-OWNERS.json.gz differ diff --git a/research/complex-571-cold14-k492/data/search/WARM-PLAN.json b/research/complex-571-cold14-k492/data/search/WARM-PLAN.json new file mode 100644 index 0000000000..ee621d6634 --- /dev/null +++ b/research/complex-571-cold14-k492/data/search/WARM-PLAN.json @@ -0,0 +1,42666 @@ +{ + "status": "LITERAL_OWNER_NOMINATION_PENDING_ADMISSION", + "mode": "frozen-saturation-pattern-time-matching", + "K": 4, + "T": 8, + "M": 73, + "L": 9, + "live": 7168, + "deficit": 2560, + "profile": { + "1": 181848, + "2": 24770, + "3": 31778, + "4": 13728, + "5": 5040, + "6": 1008, + "7": 2, + "8": 576, + "48": 2150 + }, + "order": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 0 + ], + [ + 0, + 2 + ], + [ + 1, + 1 + ], + [ + 2, + 0 + ], + [ + 0, + 3 + ], + [ + 1, + 2 + ], + [ + 2, + 1 + ], + [ + 3, + 0 + ], + [ + 0, + 4 + ], + [ + 1, + 3 + ], + [ + 2, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 0 + ], + [ + 0, + 5 + ], + [ + 1, + 4 + ], + [ + 2, + 3 + ], + [ + 3, + 2 + ], + [ + 4, + 1 + ], + [ + 5, + 0 + ], + [ + 0, + 6 + ], + [ + 1, + 5 + ], + [ + 2, + 4 + ], + [ + 3, + 3 + ], + [ + 4, + 2 + ], + [ + 5, + 1 + ], + [ + 0, + 7 + ], + [ + 6, + 0 + ], + [ + 1, + 6 + ], + [ + 2, + 5 + ], + [ + 3, + 4 + ], + [ + 4, + 3 + ], + [ + 5, + 2 + ], + [ + 6, + 1 + ], + [ + 1, + 7 + ], + [ + 7, + 0 + ], + [ + 2, + 6 + ], + [ + 3, + 5 + ], + [ + 4, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 2 + ], + [ + 7, + 1 + ], + [ + 2, + 7 + ], + [ + 8, + 0 + ], + [ + 3, + 6 + ], + [ + 4, + 5 + ], + [ + 5, + 4 + ], + [ + 6, + 3 + ], + [ + 7, + 2 + ], + [ + 8, + 1 + ], + [ + 3, + 7 + ], + [ + 4, + 6 + ], + [ + 5, + 5 + ], + [ + 6, + 4 + ], + [ + 7, + 3 + ], + [ + 8, + 2 + ], + [ + 4, + 7 + ], + [ + 5, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 4 + ], + [ + 8, + 3 + ], + [ + 5, + 7 + ], + [ + 6, + 6 + ], + [ + 7, + 5 + ], + [ + 8, + 4 + ], + [ + 6, + 7 + ], + [ + 7, + 6 + ], + [ + 8, + 5 + ], + [ + 7, + 7 + ], + [ + 8, + 6 + ], + [ + 8, + 7 + ] + ], + "windows": { + "0,0": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,2": [ + 16, + [ + 0, + 1, + 2 + ] + ], + "0,1": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,3": [ + 8, + [ + 3, + 4, + 5 + ] + ], + "0,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + ], + "0,5": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,7": [ + 8, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + "0,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ] + ], + "0,9": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,11": [ + 8, + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + ], + "0,12": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,13": [ + 48, + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,14": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,15": [ + 32, + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,16": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "0,17": [ + 16, + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ] + ], + "1,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4 + ] + ], + "1,1": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,3": [ + 8, + [ + 5, + 6, + 7, + 8 + ] + ], + "1,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ] + ], + "1,5": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,7": [ + 8, + [ + 14, + 15, + 16, + 17, + 18, + 19 + ] + ], + "1,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ] + ], + "1,9": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,11": [ + 8, + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ] + ], + "1,12": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,13": [ + 48, + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,14": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,15": [ + 32, + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,16": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "1,17": [ + 16, + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ] + ], + "2,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + ], + "2,1": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,3": [ + 8, + [ + 8, + 9, + 10, + 11, + 12 + ] + ], + "2,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ] + ], + "2,5": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,7": [ + 8, + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ] + ], + "2,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ] + ], + "2,9": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,11": [ + 8, + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ] + ], + "2,12": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,13": [ + 48, + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,14": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,15": [ + 32, + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,16": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "2,17": [ + 16, + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + ], + "3,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11 + ] + ], + "3,1": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,3": [ + 8, + [ + 12, + 13, + 14, + 15, + 16, + 17 + ] + ], + "3,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ] + ], + "3,5": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,7": [ + 8, + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ] + ], + "3,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ] + ], + "3,9": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,11": [ + 8, + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ] + ], + "3,12": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,13": [ + 48, + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,14": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,15": [ + 32, + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,16": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "3,17": [ + 16, + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ] + ], + "4,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + ], + "4,1": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,3": [ + 8, + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ] + ], + "4,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + ], + "4,5": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,7": [ + 8, + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ] + ], + "4,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ] + ], + "4,9": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,11": [ + 8, + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ] + ], + "4,12": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,13": [ + 48, + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,14": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,15": [ + 32, + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,16": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "4,17": [ + 16, + [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ] + ], + "5,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ] + ], + "5,1": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,3": [ + 8, + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ] + ], + "5,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ] + ], + "5,5": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,7": [ + 8, + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ] + ], + "5,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ] + ], + "5,9": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,11": [ + 8, + [ + 54, + 55, + 56, + 57, + 58, + 59 + ] + ], + "5,12": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,13": [ + 48, + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,14": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,15": [ + 32, + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,16": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "5,17": [ + 16, + [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ] + ], + "6,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ] + ], + "6,1": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,3": [ + 8, + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ] + ], + "6,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ] + ], + "6,5": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,7": [ + 8, + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ] + ], + "6,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ] + ], + "6,9": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,11": [ + 8, + [ + 59, + 60, + 61, + 62, + 63 + ] + ], + "6,12": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,13": [ + 48, + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,14": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,15": [ + 32, + [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,16": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "6,17": [ + 16, + [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + ], + "7,0": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,2": [ + 16, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + ], + "7,1": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,3": [ + 8, + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ] + ], + "7,4": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,6": [ + 32, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ] + ], + "7,5": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,7": [ + 8, + [ + 52, + 53, + 54, + 55, + 56, + 57 + ] + ], + "7,8": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,10": [ + 48, + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ] + ], + "7,9": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,11": [ + 8, + [ + 63, + 64, + 65, + 66 + ] + ], + "7,12": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,13": [ + 48, + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,14": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,15": [ + 32, + [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,16": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ], + "7,17": [ + 16, + [ + 67, + 68, + 69, + 70, + 71 + ] + ] + }, + "sides": { + "0": 0, + "2": 1, + "1": 0, + "3": 1, + "4": 0, + "6": 1, + "5": 0, + "7": 1, + "8": 0, + "10": 1, + "9": 0, + "11": 1, + "12": 0, + "13": 1, + "14": 0, + "15": 1, + "16": 0, + "17": 1 + }, + "pairs": { + "0": 1, + "2": 1, + "1": 1, + "3": 1, + "4": 2, + "6": 2, + "5": 2, + "7": 2, + "8": 3, + "10": 3, + "9": 3, + "11": 3, + "12": 0, + "13": 0, + "14": 1, + "15": 1, + "16": 2, + "17": 2 + }, + "solver_status": "relocate_swap_chain_flip_annealing_of_pr601_literal_map", + "gap": null, + "provider_calls": [ + { + "time": 0, + "stage": 0, + "replica": 0, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 1, + "stage": 0, + "replica": 1, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 2, + "stage": 1, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "429bbb391cc49040b64f91d64cb7ebf2d1aef75731d92b8e703e7dfdd308b60f" + }, + { + "time": 3, + "stage": 0, + "replica": 2, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 4, + "stage": 1, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 5, + "stage": 2, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 6, + "stage": 0, + "replica": 3, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 7, + "stage": 1, + "replica": 2, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "429bbb391cc49040b64f91d64cb7ebf2d1aef75731d92b8e703e7dfdd308b60f" + }, + { + "time": 8, + "stage": 2, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 9, + "stage": 3, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 10, + "stage": 0, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 11, + "stage": 1, + "replica": 3, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 12, + "stage": 2, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 13, + "stage": 3, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 14, + "stage": 4, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 15, + "stage": 0, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 16, + "stage": 1, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 17, + "stage": 2, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 18, + "stage": 3, + "replica": 2, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 19, + "stage": 4, + "replica": 1, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 20, + "stage": 5, + "replica": 0, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "429bbb391cc49040b64f91d64cb7ebf2d1aef75731d92b8e703e7dfdd308b60f" + }, + { + "time": 21, + "stage": 0, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 22, + "stage": 1, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 23, + "stage": 2, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 24, + "stage": 3, + "replica": 3, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 25, + "stage": 4, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 26, + "stage": 5, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 27, + "stage": 0, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 28, + "stage": 6, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 29, + "stage": 1, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 30, + "stage": 2, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 31, + "stage": 3, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 32, + "stage": 4, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 33, + "stage": 5, + "replica": 2, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 34, + "stage": 6, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 35, + "stage": 1, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 36, + "stage": 7, + "replica": 0, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 37, + "stage": 2, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 38, + "stage": 3, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 39, + "stage": 4, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 40, + "stage": 5, + "replica": 3, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 41, + "stage": 6, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 42, + "stage": 7, + "replica": 1, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 43, + "stage": 2, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 44, + "stage": 8, + "replica": 0, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 45, + "stage": 3, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 46, + "stage": 4, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 47, + "stage": 5, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 48, + "stage": 6, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 49, + "stage": 7, + "replica": 2, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 50, + "stage": 8, + "replica": 1, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 51, + "stage": 3, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 52, + "stage": 4, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 53, + "stage": 5, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 54, + "stage": 6, + "replica": 4, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 55, + "stage": 7, + "replica": 3, + "provider": "atm3", + "orientation": "backward", + "local_program_sha256": "429bbb391cc49040b64f91d64cb7ebf2d1aef75731d92b8e703e7dfdd308b60f" + }, + { + "time": 56, + "stage": 8, + "replica": 2, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 57, + "stage": 4, + "replica": 7, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 58, + "stage": 5, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 59, + "stage": 6, + "replica": 5, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 60, + "stage": 7, + "replica": 4, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 61, + "stage": 8, + "replica": 3, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 62, + "stage": 5, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 63, + "stage": 6, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 64, + "stage": 7, + "replica": 5, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 65, + "stage": 8, + "replica": 4, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 66, + "stage": 6, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 67, + "stage": 7, + "replica": 6, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 68, + "stage": 8, + "replica": 5, + "provider": "atm3", + "orientation": "forward", + "local_program_sha256": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f" + }, + { + "time": 69, + "stage": 7, + "replica": 7, + "provider": "jp8", + "orientation": "backward", + "local_program_sha256": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + { + "time": 70, + "stage": 8, + "replica": 6, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + }, + { + "time": 71, + "stage": 8, + "replica": 7, + "provider": "jp8", + "orientation": "forward", + "local_program_sha256": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91" + } + ], + "per_call_widths": [ + { + "stage": 0, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 0, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 1, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 2, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 0, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 1, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 3, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 2, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 4, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 3, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 5, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 4, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 6, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 5, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 7, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 6, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + }, + { + "stage": 8, + "replica": 7, + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ] + } + ], + "provider_registry": { + "atm3": { + "directory": "providers/atm3", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "fdc81976387dea8b56c3f8e3990c604d68aac2221e3ab85a09d11cc4f0a25795", + "LOCAL-PROGRAMS.json.gz": "1acc6024ba96107c3afb94b1eb3c2eb56f8d91ca7d00c4f24eae74e2ff532fa9", + "LOCAL-CHECKS.json": "b562127ea3d0fe2cf3b95577c44c05074780f7256195061f459a9b499289136b", + "INDEPENDENT-LOCAL-REPLAY.json": "0dd07a94e86adfa8b52d984bd1e649983a73fdae986438a4089c9bbdfa621ab5", + "CLIFFORD-RECIPES.json": "44dd1dbb09165f9d34a2d3e8032affe23e05f83e1d805968ebc99cde3912006e", + "CLIFFORD-REVIEW.json": "2c0d1e205738370a4d2205b823d11765a855ad5ffb87a72f85b5027289566d4c", + "RESIDUAL-ADAPTERS.json": "f8bcb0a045cb122d1772e1b71bf7c7402f95e7d9cfef1e214df852c385fef986" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 7, + 7, + 7, + 7, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 7, + 7, + 7, + 7, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 9, + 8, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2662, + "2": 404, + "3": 288, + "4": 224, + "5": 70, + "6": 14, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "74ee6b3dba94f6d173974da66f19ab68094974764a88817da050084d954e898f", + "backward": "429bbb391cc49040b64f91d64cb7ebf2d1aef75731d92b8e703e7dfdd308b60f" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + } + }, + "jp8": { + "directory": "providers/jp8", + "artifact_sha256": { + "CANONICAL-WORD.json.gz": "99b2935656d12daf14a3001e271c356d7319ac4f007ccae7eba79a72a9515cd5", + "LOCAL-PROGRAMS.json.gz": "246bffaa582fa6a5eddc226716e736fc51e0013740f68f523c276651e08ea472", + "LOCAL-CHECKS.json": "7125d2c93f8920b1955412c1ce38fdc1406f39a3422f4bfe3222340c1bea9c6a", + "INDEPENDENT-LOCAL-REPLAY.json": "bbd527d934e5e71b700b00ce0ef3d8d71183d383ee9e762bb7d13385e6283c58", + "CLIFFORD-RECIPES.json": "33e50e9339a568c97242c89e83dc8913f57ef320428776621efa334a80994eaa", + "CLIFFORD-REVIEW.json": "b307a769639a2befb610741fc6091714ec0833f18a415892a15ba763830d73bc", + "RESIDUAL-ADAPTERS.json": "bebb9b5d02599c981c612112f233218aadaf05feda77293e8fe60dcaac9cd3be" + }, + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "centers": [ + 229, + 224, + 227, + 225, + 243, + 241, + 259, + 257 + ], + "widths": [ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 7, + 7, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 8, + 8, + 9, + 9, + 9, + 9, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 7, + 7, + 9, + 8, + 9, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 4, + 8, + 4, + 4, + 4, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5, + 8, + 8, + 8, + 5, + 8, + 5, + 5, + 5 + ], + "actual_paid_profile": { + "1": 2498, + "2": 332, + "3": 472, + "4": 184, + "5": 70, + "6": 14, + "8": 8 + }, + "orientation_program_sha256": { + "forward": "01717d3bf01ca8e78ec70614c7448108e5347cfa3065fea7f4a0c05076ea1f91", + "backward": "165541739c2722d3e561fa5420de74dd217fef52e199a89847bf03392e8d0b63" + }, + "artifact_semantic_sha256": { + "CANONICAL-WORD.json.gz": "4cf4d53d45d1fde82bdf85406792520763bd9b99b0633476246f02ae3b6f9ae6", + "LOCAL-PROGRAMS.json.gz": "c655828c0a8d9ee3a14dfdb19242c8c6ad72d607fcf0525a722fa32c86151415", + "LOCAL-CHECKS.json": "07f579b92abc50137b8fc16a82282e0a028f27c0568a9ea040117b90424d9285", + "INDEPENDENT-LOCAL-REPLAY.json": "88231119cad46ad52cee9abf4267d8234b300f6b6945d401f61efe899e3c4f82", + "CLIFFORD-RECIPES.json": "fdba9216d5956c84b77ab87cc2ef0a4470404122b698ead4691edb163ef49849", + "CLIFFORD-REVIEW.json": "028e83334c34e8c4d01cefca50ea535147fa946cdc90df22c4b798d25982772b", + "RESIDUAL-ADAPTERS.json": "deefee1fae99a31c49bd55b37a3452e6c3a95b804fec7b1e7e8d82064954777a" + } + } + }, + "source_plan_sha256": "1879679a44b373006907cbca8261a9cd187c7b868472afab04e002bf95331d9e", + "assignment_sha256": "1b2a5bc5b204c9c4bb4734626cf1e3a0371b51fe495dd565ae6fc876e35579d8", + "source_owners_sha256": null +} diff --git a/research/complex-571-cold14-k492/tools/replay_repacking.py b/research/complex-571-cold14-k492/tools/replay_repacking.py new file mode 100644 index 0000000000..2bc3679d2f --- /dev/null +++ b/research/complex-571-cold14-k492/tools/replay_repacking.py @@ -0,0 +1,86 @@ +"""Reproduce the recorded owner repacking from the pinned PR622 data. + +This is a nomination exporter. The unchanged package verifier admits it. +Prepared by Jeremy Diviney with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import gzip +import hashlib +import json +from collections import Counter, defaultdict +from pathlib import Path + + +def sha(raw): + return hashlib.sha256(raw).hexdigest() + + +def main(): + if not __debug__: + raise RuntimeError('Run without -O: nomination checks require assertions') + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--base-data', type=Path, required=True) + ap.add_argument('--moves', type=Path, default=Path(__file__).resolve().parents[1] / 'data/REPACKING.json') + ap.add_argument('--out', type=Path, required=True) + a = ap.parse_args() + recipe = json.loads(a.moves.read_bytes()) + praw = (a.base_data / 'PLAN.json').read_bytes() + oraw = (a.base_data / 'OWNERS.json.gz').read_bytes() + assert sha(praw) == recipe['source_plan_sha256'] + assert sha(oraw) == recipe['source_owners_sha256'] + plan = json.loads(praw) + roles = json.loads(gzip.decompress(oraw)) + by_id = {(r['time'], r['helper']): r for r in roles} + assert len(by_id) == len(roles) == 35424 + changed = set() + for time, helper, width, before, after in recipe['moves']: + assert (time, helper) not in changed + changed.add((time, helper)) + r = by_id[time, helper] + assert r['width'] == width + assert [r['owner_replica'], r['child'], r['port']] == before + o, ch, port = after + assert 0 <= o < 8 and 0 <= port < 112 + cap, window = plan['windows'][f'{o},{ch}'] + assert time in window and width <= cap + family = o * 896 + (2 * plan['pairs'][str(ch)] + plan['sides'][str(ch)]) * 112 + port + r.update(owner_replica=o, child=ch, port=port, copy=o*112+port, family=family) + # Moves are simultaneous. Check the complete resulting map before exporting. + bins = defaultdict(list) + seen = set() + for r in roles: + k = r['family'], r['time'] + assert k not in seen + seen.add(k) + bins[r['owner_replica'], r['child'], r['port']].append(r) + idle = Counter() + for key, (cap, window) in plan['windows'].items(): + o, ch = map(int, key.split(',')) + for port in range(112): + off = 0 + for r in sorted(bins[o, ch, port], key=lambda r: (r['time'], r['helper'])): + assert r['time'] in window + r['offset'] = off + off += r['width'] + assert off <= cap + if off < cap: + idle[cap-off] += 1 + paid = idle.copy() + for c in plan['provider_calls']: + paid.update({int(r): n for r, n in plan['provider_registry'][c['provider']]['actual_paid_profile'].items()}) + assert 73*plan['live'] - sum(r*n for r,n in paid.items()) == plan['deficit'] + assert dict(sorted(idle.items())) == {int(r): n for r,n in recipe['idle_profile'].items()} + roles.sort(key=lambda r: (r['time'], r['helper'])) + raw = json.dumps(roles, sort_keys=True, separators=(',', ':')).encode() + assert sha(raw) == recipe['result_owners_content_sha256'] + plan.update(profile={str(r): n for r,n in sorted(paid.items())}, + mode='recorded-coordinated-owner-swaps', solver_status='FEASIBLE_NOT_OPTIMAL', gap=None, + source_plan_sha256=sha(praw), source_owners_sha256=sha(oraw), assignment_sha256=sha(raw)) + a.out.mkdir(parents=True, exist_ok=False) + (a.out / 'PLAN.json').write_text(json.dumps(plan, indent=2) + '\n') + (a.out / 'OWNERS.json.gz').write_bytes(gzip.compress(raw, mtime=0)) + print('NOMINATION REPRODUCED; strict admission required;', len(changed), 'placements') + + +if __name__ == '__main__': + main() diff --git a/research/complex-571-cold14-k492/verify.py b/research/complex-571-cold14-k492/verify.py new file mode 100644 index 0000000000..5c0308e35c --- /dev/null +++ b/research/complex-571-cold14-k492/verify.py @@ -0,0 +1,378 @@ +"""Spec-driven official replay: rebuild every provider word from pinned sources through typed construction steps, +localize each word with the unchanged vendor pipeline, then run the spec-driven global admission and assembly. +Prepared with Claude Code assistance. Apache-2.0; see NOTICE.md. Pinned external sources are unchanged packages. +Everything this script runs is named in data/SPEC.json "build" and must be one of the allowlisted step types below; +the spec contains no scripts or commands, only step types, pinned source files, recipes and expected hashes. +""" +import argparse,gzip,hashlib,json,os,subprocess,sys,time,shutil,threading +from concurrent.futures import ThreadPoolExecutor +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +assert __debug__, 'Assertions required' +P=Path(__file__).resolve().parent +ap=argparse.ArgumentParser();ap.add_argument('--work',type=Path,required=True) +ap.add_argument('--spec',type=Path,default=P/'data/SPEC.json',help=argparse.SUPPRESS) +ap.add_argument('--jobs',type=int,default=min(8,os.cpu_count() or 4),help='parallel provider chains') +ap.add_argument('--source',action='append',default=[],help='NAME=DIR pinned source package (default: sibling directory named in the spec)') +ap.add_argument('--check-pins',action='store_true',help='check package and source pins, then stop') +ap.add_argument('--until',choices=('locals','all'),default='all',help=argparse.SUPPRESS) +ap.add_argument('--reuse-baseline',type=Path,help=argparse.SUPPRESS) +ap.add_argument('--reuse-local',action='append',default=[],help=argparse.SUPPRESS) +a=ap.parse_args();O=a.work.resolve();SPECFILE=a.spec.resolve();SPEC=json.loads(SPECFILE.read_bytes());BUILD=SPEC['build'] +DISCOVER=os.environ.get('WITNESS_DISCOVER')=='1';discovered={} +given=dict(x.split('=',1)for x in a.source) +SRC={name:Path(given.get(name,P.parent/src['dir'])).resolve()for name,src in BUILD['sources'].items()};S=SRC['multicold'] +def read(p):return json.loads(gzip.decompress(p.read_bytes())if p.suffix=='.gz'else p.read_bytes()) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def content(p):return hashlib.sha256(gzip.decompress(p.read_bytes())).hexdigest() +def dump(p,x):p.write_text(json.dumps(x,indent=2)+'\n',newline='\n') +def tree(root,skip):return{f.relative_to(root).as_posix():sha(f)for f in root.rglob('*')if f.is_file()and f!=root/skip and'__pycache__'not in f.parts} +def pinned(where,key,got,label): + """Compare against the spec value; a discovery build (propose.py) records values the spec does not yet hold.""" + if key in where:assert got==where[key],'BUILD PIN MISMATCH %s.%s: expected %s got %s'%(label,key,where[key],got) + else:assert DISCOVER,'BUILD PIN MISSING %s.%s'%(label,key);discovered[label+'.'+key]=got + return got +if SPECFILE==P/'data/SPEC.json':assert tree(P,'MANIFEST.json')==read(P/'MANIFEST.json'),'package MANIFEST' +for name,src in BUILD['sources'].items(): + root=SRC[name];manifest=read(root/'MANIFEST.json') + assert sha(root/'MANIFEST.json')==src['manifest_sha256'],name+' manifest pin' + if src.get('full_tree'):assert tree(root,'MANIFEST.json')==manifest,name+' tree' + files=manifest['sha256']if manifest.get('algorithm')=='sha256'else manifest.get('files',manifest) # PR531 manifests: {algorithm, sha256} + for rel,value in src['files'].items():assert sha(root/rel)==value==files[rel],(name,rel) +def ref(r,pin=True): + """'pkg:rel' (this package) or 'NAME:rel' (a pinned file of source NAME).""" + kind,rel=r.split(':',1) + if kind=='pkg':return P/rel + assert rel in BUILD['sources'][kind]['files'],'unpinned source file '+r + return SRC[kind]/rel +if a.check_pins:print('PINS OK',SPEC['name'],sha(SPECFILE));raise SystemExit(0) +assert not O.exists() and not any(O.is_relative_to(x)for x in (P,*SRC.values())) +O.mkdir(parents=True);steps=[];lock=threading.Lock();start=time.monotonic() +env=dict(os.environ,PYTHONDONTWRITEBYTECODE='1',PYTHONUTF8='1',PYTHONINTMAXSTRDIGITS='0',MULTICOLD_SOURCE=str(S),GAIN_PR564_SOURCE=str(S),WITNESS_SPEC=str(SPECFILE));env.pop('PYTHONOPTIMIZE',None);env.pop('WITNESS_DISCOVER',None) +def run(name,script,*args): + log=O/(name+'.log');t=time.monotonic();print('RUN',name,flush=True) + with log.open('w')as f:code=subprocess.call([sys.executable,'-B',str(S/'code/run_portable.py'),str(script),*map(str,args)],stdout=f,stderr=subprocess.STDOUT,env=env) + with lock:steps.append(dict(name=name,exit_code=code,seconds=round(time.monotonic()-t,3),log_sha256=sha(log)));dump(O/'STAGES.json',steps) + if code:raise RuntimeError(name+' failed\n'+log.read_text()[-6000:]) + print('PASS',name,flush=True) +B=S/'vendor/pr558';F=B/'vendor/pr552';V=F/'complex-global/vendor531';GK=F/'complex-local/static44/gk' +if a.reuse_baseline:baseline=a.reuse_baseline.resolve() +else:baseline=O/'baseline558';run('frozen558-full-replay',B/'verify.py','--work',baseline) +SEL=baseline/'reconstruction/static44/SELECTION.json';RAW=baseline/'reconstruction/promoted/FULL-WORD.json.gz' +def omissions(path,s,label):pinned(s,'omission_controls',len(read(path)['controls']),label) +# Allowlisted step types: (constructor, paired omission audit), all scripts from the pinned multicold source. +def cold_kernel(word,s,out,tag): + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',S/'code/build_cold_kernel.py','--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + run(tag+'-omissions',S/'code/audit_kernel_controls.py','--word',out/'FULL-WORD.json.gz','--recipe',recipe,'--out',out/'KERNEL-OMISSION-CONTROLS.json') + omissions(out/'KERNEL-OMISSION-CONTROLS.json',s,tag) +def finalize(word,recipe,tag): + """Discovery only: a new recipe whose output hash is still open is pinned by a first build that must fail exactly at + the final output-hash assertion (every kernel check passed); the printed hash is written into a final recipe.""" + r=read(recipe);h=r.get('output_content_sha256','') + if len(h)==64 and all(c in '0123456789abcdef'for c in h):return recipe + assert DISCOVER,'recipe output hash not pinned: '+tag + r['output_content_sha256']='0'*64;probe=O/(tag+'-probe');probe.mkdir();dump(probe/'RECIPE.json',r) + p=subprocess.run([sys.executable,'-B',str(S/'code/run_portable.py'),str(S/'code/build_multicut_kernels.py'),'--input',str(word),'--recipe',str(probe/'RECIPE.json'),'--gk-dir',str(GK),'--out',str(probe/'out')],capture_output=True,text=True,env=env) + last=(p.stderr.strip().splitlines()or[''])[-1];assert p.returncode and last.startswith('AssertionError: ')and len(last)==16+64,'probe build failed before the output hash:\n'+p.stderr[-3000:] + r['output_content_sha256']=last[16:];final=O/(tag+'-RECIPE.json');final.write_text(json.dumps(r,indent=1)+'\n',newline='\n') + discovered[tag+'.final_recipe']=str(final);return final +def multicut(word,s,out,tag): + recipe=finalize(word,ref(s['recipe']),tag);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',S/'code/build_multicut_kernels.py','--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + run(tag+'-omissions',S/'code/audit_multicold_controls.py','--word',out/'FULL-WORD.json.gz','--recipe',recipe,'--out',out/'MULTICOLD-OMISSION-CONTROLS.json') + omissions(out/'MULTICOLD-OMISSION-CONTROLS.json',s,tag) +PROMOTER=('larger_gain','providers/build_entrance_promotions.py',('providers/coupled_frames_base.py','providers/search_suffix_kernels.py')) +def frame_only(source,word,recipes): + """Independent check that a promotion changed only entrance frames: identical scalar operations, start_extra changed + exactly at the recipe pivots (old -> new frame), frame fields only on scalar events, report changes limited.""" + assert source.keys()==word.keys() + for section in source: + if section in ('A','cut','B','cleanup','precondition'): + assert len(source[section])==len(word[section]) + assert all(x[:-1]==y[:-1]for x,y in zip(source[section],word[section])),'scalar operation changed' + elif section not in ('start_extra','report'):assert source[section]==word[section],'fixed field changed: '+section + entrances=dict(source['start_extra']) + for r in recipes: + k=str(r['pivot']);assert sorted(entrances[k])==sorted(r['old_frame']) and len(r['new_frame'])==len(r['old_frame'])+1,'wrong old entrance '+k + entrances[k]=word['start_extra'][k];assert sorted(entrances[k])==sorted(r['new_frame']),'wrong new entrance '+k + assert word['start_extra']==entrances,'entrance changed outside the recipe' + allowed={'local_profile','local_rank_mass','entrance_rank','entering_helpers','width_inventory'} + assert source['report'].keys()==word['report'].keys() and all(source['report'][k]==word['report'][k]for k in source['report']if k not in allowed) +def promote(word,s,out,tag): + src,builder,deps=PROMOTER;recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + for f in deps:ref(src+':'+f) + run(tag+'-construction',ref(src+':'+builder),'--word',word,'--recipes',recipe,'--gk-dir',GK,'--out',out) + a,b,r=read(word),read(out/'FULL-WORD.json.gz'),read(recipe);frame_only(a,b,r) + import copy + rejected=[] + for name,mut in (('reverted_promotion',lambda w:w['start_extra'].__setitem__(str(r[0]['pivot']),list(r[0]['old_frame']))), + ('scalar_operation_changed',lambda w:w['B'][0].insert(0,'mutated')),('extra_entrance_changed',lambda w:w['start_extra'].__setitem__(next(k for k in w['start_extra']if k not in{str(x['pivot'])for x in r}),[])), + ('fixed_field_changed',lambda w:w.__setitem__('cut',w['cut'][:-1]))): + w=copy.deepcopy(b);mut(w) + try:frame_only(a,w,r) + except(AssertionError,KeyError,IndexError,TypeError):rejected.append(name) + else:raise AssertionError('frame-only control accepted: '+name) + dump(out/'FRAME-ONLY-CONTROLS.json',dict(status='PASS_FRAME_ONLY_PROMOTION_TRANSFER',promotions=len(r),controls=rejected)) + omissions(out/'FRAME-ONLY-CONTROLS.json',s,tag) +JOINT=('joint_prefix',('code/build_joint_prefix.py','code/audit_joint_prefix.py','code/audit_multicold_controls.py')) +def joint_prefix(word,s,out,tag): + """PR575's unchanged joint-prefix constructor with its paired audits: all-kernel omissions, rank-five omissions and + the independent literal-prefix/coverage audit (variant and kernel recipe named in the step).""" + src,(builder,audit,omit)=JOINT;recipe=ref(s['recipe']);kern=ref(s['kernel_recipes']);pinned(s,'recipe_sha256',sha(recipe),tag);pinned(s,'kernel_recipes_sha256',sha(kern),tag) + assert s['variant'] in ('eightcold','width7') + run(tag+'-construction',ref(src+':'+builder),'--input',word,'--recipe',recipe,'--variant',s['variant'],'--gk-dir',GK,'--out',out) + shutil.copyfile(RAW.parent/'PROMOTION.json',out/'PROMOTION.json') + run(tag+'-all-kernel-omissions',ref(src+':'+omit),'--word',out/'FULL-WORD.json.gz','--recipe',kern,'--out',out/'ALL-KERNEL-CONTROLS.json') + run(tag+'-rank5-omissions',B/'code/audit_promoted_scalar.py',out/'FULL-WORD.json.gz',SEL,out/'RANK5-CONTROLS.json') + run(tag+'-independent-joint-prefix-and-coverage',ref(src+':'+audit),'--source',word,'--word',out/'FULL-WORD.json.gz','--recipe',recipe,'--variant',s['variant'],'--kernel-recipes',kern,'--controls',out/'ALL-KERNEL-CONTROLS.json','--rank5-controls',out/'RANK5-CONTROLS.json','--promotion',out/'PROMOTION.json','--selection',SEL,'--out',out/'JOINT-PREFIX-AUDIT.json') + j=read(out/'JOINT-PREFIX-AUDIT.json');assert j['status']=='PASS_INDEPENDENT_LITERAL_PREFIX_AND_FINAL_KERNEL_COVERAGE' + c=read(out/'ALL-KERNEL-CONTROLS.json');assert all(x['forward_rejected'] and x['reflected_rejected'] for x in c['controls']) + omissions(out/'ALL-KERNEL-CONTROLS.json',s,tag);pinned(s,'rank5_controls',len(read(out/'RANK5-CONTROLS.json')['controls']),tag) + pinned(s,'joint_negative_controls',len(j['negative_controls_rejected']),tag) +COAL=('frame_coalescing','code/build_frames.py') +def frame_coalesce(word,s,out,tag): + """PR583's unchanged frame-coalescence constructor (it re-checks profiles, scalar operations, widths and helper + responses and rejects every omission/over-promotion control), plus an independent check that only the recipe's + gate frames changed (old -> new) and every other field of the word is identical.""" + src,builder=COAL;recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',ref(src+':'+builder),'--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + r=read(recipe);c=read(out/'FRAME-CONSTRUCTION.json');assert c['status']=='PASS_SIX_EXACT_FRAME_COALESCENCES' + assert len(c['negative_controls_rejected'])==2*len(r['changes']);pinned(s,'negative_controls',len(c['negative_controls_rejected']),tag) + x,y=read(word),read(out/'FULL-WORD.json.gz');ch={(z['section'],z['index']):z for z in r['changes']};assert len(ch)==len(r['changes']) + assert x.keys()==y.keys() and all(x[k]==y[k]for k in x if k not in('A','B','report')) + for part in ('A','B'): + assert len(x[part])==len(y[part]) + for i,(u,v) in enumerate(zip(x[part],y[part])): + z=ch.pop((part,i),None) + if z is None:assert u==v,'frame changed outside the recipe %s %d'%(part,i) + else:assert u==z['before'] and v==z['after'] and u[:-1]==v[:-1],'wrong coalescence %s %d'%(part,i) + assert not ch,'recipe change outside A/B' + assert all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','status')) +def gate_move_coalesce(word,s,out,tag): + """This package's code/build_gate_moves.py (PR583's constructor extended by commuting gate moves): every passed gate + must commute, helper responses and widths are unchanged, cleanup follows the inherited inverse rule, and every + omission/over-promotion/unmoved control is rejected; then the same independent comparison as frame_coalesce.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_gate_moves.py','--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + r=read(recipe);c=read(out/'FRAME-CONSTRUCTION.json');assert c['status']=='PASS_EXACT_GATE_MOVE_FRAME_COALESCENCES' + assert len(c['negative_controls_rejected'])==2*len(r['changes'])+len(r['moves']);pinned(s,'negative_controls',len(c['negative_controls_rejected']),tag) + x,y=read(word),read(out/'FULL-WORD.json.gz') + for m in r['moves']:L=x[m['section']];L.insert(m['to'],L.pop(m['from'])) + ch={(z['section'],z['index']):z for z in r['changes']};assert len(ch)==len(r['changes']) + assert x.keys()==y.keys() and all(x[k]==y[k]for k in x if k not in('A','B','cleanup','report')) + for part in ('A','B'): + assert len(x[part])==len(y[part]) + for i,(u,v) in enumerate(zip(x[part],y[part])): + z=ch.pop((part,i),None) + if z is None:assert u==v,'gate changed outside the recipe %s %d'%(part,i) + else:assert u==z['before'] and v==z['after'] and u[:-1]==v[:-1],'wrong coalescence %s %d'%(part,i) + assert not ch,'recipe change outside A/B' + meta=('width_inventory','entering_helpers','entrance_rank');assert all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','status')+meta) + sys.path.insert(0,str(GK));import gk_common as GC;GC.V=112;ws=GC.widths_of(y) + assert y['report']['width_inventory']=={str(k):v for k,v in sorted(Counter(ws).items())} and y['report']['entering_helpers']==sum(v<9 for v in ws) and y['report']['entrance_rank']==sum(9-v for v in ws),'descriptive width metadata not normalized' +def hyperplane_end(word,s,out,tag): + """This package's code/build_hpe.py: cleanup gates that commute with the whole skipped cleanup prefix run right after B + at the join frame U of their registers, and the helper ends at U (residual T_U T_E^-1, width |U|-|E|; Lemma C, nested + children, Lemma A). Paired audit: code/hpe_controls_atc.py (exact replay of the reordered program plus HPE raw-word + mutations). Then an independent comparison: only early_cleanup, helper_final and the paid profile change.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_hpe.py','--input',word,'--recipe',recipe,'--out',out) + run(tag+'-controls',P/'code/hpe_controls_atc.py',out/'FULL-WORD.json.gz',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz',out) + c=read(out/'HPE-ATC-CONTROLS.json');assert c['status']=='PASS_HPE_RAW_WORD_CONTROLS';pinned(s,'negative_controls',len(c['rejected']),tag) + r=read(recipe);x,y=read(word),read(out/'FULL-WORD.json.gz') + assert set(y)==set(x)|{'early_cleanup','helper_final'} and 'early_cleanup' not in x and all(x[k]==y[k]for k in x if k!='report') + assert y['early_cleanup']==[[z['cleanup_index'],z['frame']]for z in r['changes']] and y['helper_final']=={str(z['helper']):z['frame']for z in r['changes']} + assert x['report'].keys()==y['report'].keys() and all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass','width_inventory')) + inv=Counter({int(k):n for k,n in x['report']['width_inventory'].items()}) + for z in r['changes']:e=len(x['start_extra'][str(z['helper'])]);inv[9-e]-=1;inv[len(z['frame'])-e]+=1 + assert y['report']['width_inventory']=={str(k):n for k,n in sorted(inv.items())if n},'descriptive width metadata not |final|-|start|' +def cold_end(word,s,out,tag): + """This package's code/build_cold_end.py: cold helpers end at a low-dimensional frame U (width |U|) under a refactored + exact cleanup: a rank-0 premix at the head of A, multi-gate lower-frame cleanup gates in the early tail and an exact + dyadic FULL remainder that touches no helper ending below FULL. Paired audit: code/cold_end_controls.py (raw-word + mutations of premix placement, lower-frame gates, remainder, cold ends and marker, each rejected by the extended + transport audit). Then an independent comparison: only A's head, the cleanup, early_cleanup, helper_final, the + refactored_cleanup marker and the paid profile / width metadata change, and every inherited HPE end is kept.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_cold_end.py','--input',word,'--recipe',recipe,'--out',out) + run(tag+'-controls',P/'code/cold_end_controls.py',out/'FULL-WORD.json.gz',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz',out) + c=read(out/'COLD-END-CONTROLS.json');assert c['status']=='PASS_COLD_END_RAW_WORD_CONTROLS';pinned(s,'negative_controls',len(c['rejected']),tag) + r=read(recipe);x,y=read(word),read(out/'FULL-WORD.json.gz') + assert set(y)==set(x)|{'refactored_cleanup'} and 'refactored_cleanup' not in x + assert all(x[k]==y[k]for k in x if k not in('A','cleanup','early_cleanup','helper_final','report')) + st=lambda h:sorted(x['start_extra'].get(str(h),[]));vv=x['report']['v'];nn=2*vv+x['report']['R'] + # premix: rank-0 helper gates at their start frames, or frame-[] target writes (target += q * cold helper; ColdBeyond) + tw=lambda e:e[0]=='add' and vv<=e[1]<2*vv + assert all(e[-1]==[] and 2*vv<=e[2]>k&1:z^=p[k] + if z: + k=z.bit_length()-1 + for j in p: + if p[j]>>k&1:p[j]^=z + p[k]=z + return tuple(p[k] for k in sorted(p,reverse=True)) + def start_frame(q):return spn([x['ports'][q]])if q R register map of the + removed packet copies. Controls, run once: PR531's unchanged constructor and this constructor with an empty schedule + each reproduce PR552's RAW504 (content), and the empty-schedule map is the identity.""" + sched=ref(base['schedule']);pinned(base,'schedule_sha256',sha(sched),tag) + with KT_LOCK: + if base['schedule'] in KT:pinned(base,'helper_map_sha256',sha(KT[base['schedule']][1]),tag);return KT[base['schedule']] + ham=[ref('direct_delivery:inputs/hamming/'+f)for f in('PROTOTYPE.json','PACKET-PROGRAMS.json.gz')][0].parent + raw504=F/'complex-local/static44/inputs/RAW504.json.gz' + if not KT: + K=O/'k-triangle-controls';K.mkdir();empty=K/'EMPTY-SCHEDULE.json';empty.write_text('{"full_pairs":[],"triangles":[]}\n',newline='\n') + run('k-triangle-control-pr531-construct504',ref('direct_delivery:code/construct_504.py'),ham,K/'pr531') + run('k-triangle-control-empty-schedule',P/'code/construct_k_triangle.py',ham,K/'empty',empty) + assert content(K/'pr531/FULL-WORD.json.gz')==content(K/'empty/FULL-WORD.json.gz')==content(raw504),'constructors do not reproduce RAW504' + assert all(int(k)==v for k,v in read(K/'empty/HELPER-MAP.json')['map'].items()) and len(read(K/'empty/HELPER-MAP.json')['map'])==728 + out=O/(tag+'-construction');run(tag+'-construction',P/'code/construct_k_triangle.py',ham,out,sched) + w=read(out/'FULL-WORD.json.gz');m=read(out/'HELPER-MAP.json');R=w['report']['R'] + assert R==504-3*len(read(sched)['triangles'])==len(m['map'])-224 and len(m['removed_504_helpers'])==504-R + pinned(base,'helper_map_sha256',sha(out/'HELPER-MAP.json'),tag) + KT[base['schedule']]=(out/'FULL-WORD.json.gz',out/'HELPER-MAP.json');return KT[base['schedule']] +def stage_word(r): + """'raw504' (PR552's RAW504), 'promoted558' (the frozen PR558 promoted word) or 'NAME:base' / 'NAME:i' (a word of + the shadow 504-helper chain NAME, built in this run).""" + if r=='raw504':return F/'complex-local/static44/inputs/RAW504.json.gz' + if r=='promoted558':return RAW + name,i=r.split(':');return STAGEWORDS[name][i] +def port_stage(word,s,out,tag): + """code/build_port_stage.py: one stage (I4 -> O4) of a 504-helper chain, rebuilt in this run from pinned sources, is + replayed onto the K-triangle word through the constructor's helper map. Gates are matched by scalar operation; the + stage's frame changes, introduced gates and entrance changes are applied; the K-triangle reads are kept; the cleanup is + the inherited inverse rule. The construction is a transfer only: every ported word is certified by the generalised + native audit (exact forward and inverse replay of all columns, native frame chains).""" + i4,o4=stage_word(s['shadow_input']),stage_word(s['shadow_output']) + pinned(s,'shadow_input_content_sha256',content(i4),tag);pinned(s,'shadow_output_content_sha256',content(o4),tag) + run(tag+'-construction',P/'code/build_port_stage.py','--shadow-input',i4,'--shadow-output',o4,'--input',word,'--map',KMAP[0],'--gk-dir',GK,'--out',out) + run(tag+'-native-audit',P/'code/hpe_audit_and_transport.py','--raw',out/'FULL-WORD.json.gz','--routing',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz','--out',out/'native-audit') + assert read(out/'native-audit/SCALAR-FRAME-AUDIT.json')['status']=='PASS_CHANGED_WORD_ALL_COLUMNS_AND_NATIVE_FRAMES' + x,y=read(word),read(out/'FULL-WORD.json.gz');assert x['report']['R']==y['report']['R'] and all(x[k]==y[k]for k in x if k not in('A','B','cleanup','start_extra','target_levels','report')) + shutil.rmtree(out/'native-audit') +def frame_regroup(word,s,out,tag): + """code/build_frame_regroup.py (PR583's build_frames.py with recipe-pinned profile deltas): gate frames change, scalar + operations, widths and helper responses do not; omission and over-promotion controls are rejected. Then the same + independent comparison as frame_coalesce.""" + recipe=ref(s['recipe']);pinned(s,'recipe_sha256',sha(recipe),tag) + run(tag+'-construction',P/'code/build_frame_regroup.py','--input',word,'--recipe',recipe,'--gk-dir',GK,'--out',out) + r=read(recipe);c=read(out/'FRAME-CONSTRUCTION.json');assert c['status']=='PASS_EXACT_FRAME_REGROUPING' + assert len(c['negative_controls_rejected'])==2*len(r['changes']);pinned(s,'negative_controls',len(c['negative_controls_rejected']),tag) + x,y=read(word),read(out/'FULL-WORD.json.gz');ch={(z['section'],z['index']):z for z in r['changes']};assert len(ch)==len(r['changes']) + assert x.keys()==y.keys() and all(x[k]==y[k]for k in x if k not in('A','B','report')) + for part in ('A','B'): + assert len(x[part])==len(y[part]) + for i,(u,v) in enumerate(zip(x[part],y[part])): + z=ch.pop((part,i),None) + if z is None:assert u==v,'frame changed outside the recipe %s %d'%(part,i) + else:assert u==z['before'] and v==z['after'] and u[:-1]==v[:-1],'wrong regrouping %s %d'%(part,i) + assert not ch,'recipe change outside A/B' + assert all(x['report'][k]==y['report'][k]for k in x['report']if k not in('local_profile','local_rank_mass')) +KMAP=[None] +STEPS={'cold_end':cold_end,'hyperplane_end':hyperplane_end,'cold_kernel':cold_kernel,'multicut':multicut,'greedy_kernels':multicut,'promote':promote,'joint_prefix':joint_prefix,'frame_coalesce':frame_coalesce,'gate_move_coalesce':gate_move_coalesce,'port_stage':port_stage,'frame_regroup':frame_regroup} +def build_word(pid,d): + base=d['base'];assert base['kind']in('frozen558_promoted','source_file','k_triangle'),base['kind'] + if base['kind']=='k_triangle': + word,hmap=k_triangle(base,pid+'-base-k_triangle') + with KT_LOCK:assert KMAP[0] in(None,hmap);KMAP[0]=hmap + else:word=RAW if base['kind']=='frozen558_promoted' else ref(base['file']) + pinned(base,'content_sha256',content(word),pid+'.base');STAGEWORDS[pid]={'base':word} + for i,s in enumerate(d['steps']): + tag='%s-step%d-%s'%(pid,i,s['type']);out=O/tag + if s['type']=='frozen558_scalar_audits': + # inherited static44 and rank-five omission audits on a frozen558-descended word + out.mkdir();run(tag+'-static44',F/'complex-local/static44/audit_scalar.py',word,SEL,out/'STATIC44-SCALAR-AUDIT.json') + shutil.copyfile(RAW.parent/'PROMOTION.json',word.parent/'PROMOTION.json') + run(tag+'-rank5',B/'code/audit_promoted_scalar.py',word,SEL,out/'PROMOTED-SCALAR-AUDIT.json');STAGEWORDS[pid][str(i)]=word;continue + assert s['type'] in STEPS,'step type not allowlisted: '+s['type'] + pinned(s,'input_content_sha256',content(word),tag) + STEPS[s['type']](word,s,out,tag);word=out/'FULL-WORD.json.gz' + pinned(s,'output_content_sha256',content(word),tag);STAGEWORDS[pid][str(i)]=word + pinned(d,'word_content_sha256',content(word),pid) + return word +def localize(pid,word): + local=O/(pid+'-local') + # HPE words (helper_final present) use this package's generalised native chain; every other word the unchanged vendor531 one + hp='helper_final' in read(word);NC=(lambda f:P/'code'/('hpe_'+f))if hp else(lambda f:V/'code'/f) + run(pid+'-all-columns-native-frames',NC('audit_and_transport.py'),'--raw',word,'--routing',F/'complex-local/inputs/phase-baseline/CANONICAL-WORD.json.gz','--out',local) + run(pid+'-both-reflected-ledgers',NC('emit_local.py'),local) + run(pid+'-independent-local-controls',NC('audit_local.py'),local) + run(pid+'-normalized-wrappers',NC('adapters_local.py'),local/'CANONICAL-WORD.json.gz',local/'RESIDUAL-ADAPTERS.json',local/'WRAPPER-CHECKS.json') + run(pid+'-all-phase-edges',B/'code/phases_full.py',local,V/'vendor/clifford') + r=BUILD['providers'][pid].get('retained_local') + if r: # a pinned retained local must be reproduced byte for byte (phase review up to timing) + for name in ('CANONICAL-WORD.json.gz','LOCAL-PROGRAMS.json.gz','LOCAL-CHECKS.json','INDEPENDENT-LOCAL-REPLAY.json','RESIDUAL-ADAPTERS.json','WRAPPER-CHECKS.json','CLIFFORD-RECIPES.json'): + assert sha(local/name)==sha(ref(r+'/'+name)),(pid,name) + fresh,old=read(local/'CLIFFORD-REVIEW.json'),read(ref(r+'/CLIFFORD-REVIEW.json')) + assert {k:v for k,v in fresh.items()if k!='seconds'}=={k:v for k,v in old.items()if k!='seconds'} + return local +reuse=dict(x.split('=',1)for x in a.reuse_local) +words={} +def provider(pid): + word=words[pid]=build_word(pid,BUILD['providers'][pid]) + return Path(reuse[pid]).resolve()if pid in reuse else localize(pid,word) +SHADOWS=BUILD.get('shadows',{});assert not set(SHADOWS)&set(BUILD['providers']) +with ThreadPoolExecutor(max(1,min(a.jobs,len(SHADOWS)or 1)))as pool: # the 504-helper chains whose stages the providers port + for f in [pool.submit(build_word,name,SHADOWS[name])for name in sorted(SHADOWS)]:f.result() +with ThreadPoolExecutor(max(1,min(a.jobs,len(BUILD['providers']))))as pool: + futures={pid:pool.submit(provider,pid)for pid in sorted(BUILD['providers'])};locals_={pid:f.result()for pid,f in futures.items()} +SPOT504=[270,282,294,306] # PR558's width-8 spot helpers; a K-triangle package names their images under its helper map +if KMAP[0]:m=read(KMAP[0])['map'];assert SPEC['width_spot_helpers']==[m[str(224+h)]-224 for h in SPOT504],'width spot helpers are not the helper-map images' +else:assert SPEC.get('width_spot_helpers',SPOT504)==SPOT504 +dump(O/'LOCALS.json',dict(locals={pid:str(l)for pid,l in locals_.items()},words={pid:str(w)for pid,w in words.items()},baseline=str(baseline),discovered=discovered)) +if a.until=='locals':print('LOCALS READY');raise SystemExit(0) +assert not DISCOVER +G=O/'mixed-global' +run('bind-providers',P/'code/bind_providers_portable.py','--baseline',baseline,*[x for pid,l in sorted(locals_.items())for x in('--provider','%s=%s'%(pid,l))],'--plan',P/'data/PLAN.json','--out',G) +run('emit-controller',P/'code/emit_allcold.py','--base',G/'base','--owners',P/'data/OWNERS.json.gz','--plan',G/'PLAN.json','--out',G/'hosted') +(G/'audit').mkdir() +run('independent-controller-and-controls',P/'code/audit_allcold.py',G/'base',G/'hosted',G/'audit/ASYNC-AUDIT.json','--mutation-controls') +run('fresh-invoice',P/'code/invoice_allcold.py','--base',G/'base','--hosted',G/'hosted','--audit',G/'audit','--out',G/'audit','--retained-invoice',V/'evidence/audit/PREFIX-AND-INVOICE.json') +run('conservative-and-native-exact-assembly',P/'code/assemble.py',S,G,O/'ASSEMBLY.json') +run('admission-controls',P/'code/assembly_controls.py','--source-package',S,'--owner',G/'audit/OWNERS-AND-PROFILE.json','--invoice',G/'audit/PREFIX-AND-INVOICE.json','--out',O/'ASSEMBLY-CONTROLS.json') +run('phase-timing-portability-controls',P/'code/phase_timing_controls.py',S,G/'base',G/'audit',O/'PHASE-TIMING-CONTROLS.json') +run('actual-recompression-and-rebound-controls',P/'code/generated_identity_controls.py','--base',G/'base','--audit',G/'audit','--out',O/'GENERATED-IDENTITY-CONTROLS.json') +X=SPEC['expected'] +for pid,local in locals_.items(): + r=read(local/'INDEPENDENT-LOCAL-REPLAY.json');ph=read(local/'CLIFFORD-REVIEW.json') + assert len(r['negative_controls_rejected'])==SPEC['providers'][pid]['native_negative_controls'] and r['paid_profiles']['forward']==r['paid_profiles']['backward'] + assert ph['status']=='PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES' and ph['all_child_equalities_include_global_phase']is True and ph['directed_edges']==SPEC['providers'][pid]['phase_edges'] and ph['endpoint_adapters']==224 +assert len(read(G/'audit/ASYNC-AUDIT.json')['mutations_rejected'])==X['mutations_rejected'] +assert len(read(O/'ASSEMBLY-CONTROLS.json')['rejected_controls'])==X['assembly_controls_rejected'] +z=read(O/'ASSEMBLY.json');assert Q(z['kappa_decimal'])==Q(X['kappa_decimal']) and Q(z['conservative_kappa_decimal'])==Q(X['conservative_kappa_decimal']) +assert {str(k):v for k,v in z['complex_profile'].items()}==X['global_profile'] and z['provider_counts']==X['provider_counts'] +r=dict(status=SPEC['build']['status'],kappa=z['kappa'],kappa_decimal=z['kappa_decimal'],complex_lower=z['complex_lower'],bit_lower=z['bit_lower'],conservative_kappa_decimal=z['conservative_kappa_decimal'],conservative_complex_lower=z['conservative_complex_lower'],global_profile=z['complex_profile'],provider_counts=z['provider_counts'],surcharge_model=z['surcharge_model'],seconds=time.monotonic()-start,reused=dict(baseline=bool(a.reuse_baseline),locals=sorted(reuse)),scope=z['scope']);dump(O/'RESULT.json',r) +paths=['PHASE-TIMING-CONTROLS.json','GENERATED-IDENTITY-CONTROLS.json','mixed-global/audit/IDLE-REMAINDER-FRAMES.json','RESULT.json','ASSEMBLY.json','ASSEMBLY-CONTROLS.json','mixed-global/BINDING.json','mixed-global/audit/ASYNC-AUDIT.json','mixed-global/audit/OWNERS-AND-PROFILE.json','mixed-global/audit/PREFIX-AND-INVOICE.json'] +paths+=sorted(f.relative_to(O).as_posix()for f in O.glob('*-step*/*.json')) +for pid in sorted(set(locals_)-set(reuse)): + for fn in ('INDEPENDENT-LOCAL-REPLAY.json','CLIFFORD-REVIEW.json','WRAPPER-CHECKS.json'):paths.append(pid+'-local/'+fn) +dump(O/'RECEIPT.json',dict(status=r['status'],steps=steps,artifacts={name:sha(O/name)for name in paths},manifest_sha256=sha(P/'MANIFEST.json'),spec_sha256=sha(SPECFILE),source_manifest_sha256={n:sha(SRC[n]/'MANIFEST.json')for n in SRC})) +print(json.dumps(r,indent=2)) diff --git a/research/complex-571-cold14-k492/verify.sh b/research/complex-571-cold14-k492/verify.sh new file mode 100644 index 0000000000..a36218d768 --- /dev/null +++ b/research/complex-571-cold14-k492/verify.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# Official replay of complex-571-cold14-b3 from data/SPEC.json (standard library only, assertions on). +# usage: research/complex-571-cold14-b3/verify.sh WORKDIR [SOURCE_ROOT] +# SOURCE_ROOT holds worktrees pr568 pr569 pr571 pr575 pr583 at the pinned commits (default: ..). +set -eu +WORK=${1:?usage: verify.sh WORKDIR [SOURCE_ROOT]} +SRC=${2:-..} +HERE=$(cd "$(dirname "$0")" && pwd) +exec python3 -B "$HERE/verify.py" --work "$WORK" \ + --source multicold="$SRC/pr568/research/complex-multicold" \ + --source structural_gain="$SRC/pr571/research/structural-gain" \ + --source larger_gain="$SRC/pr569/research/larger-gain" \ + --source joint_prefix="$SRC/pr575/research/complex-joint-prefix" \ + --source frame_coalescing="$SRC/pr583/research/kernel-frame-coalescing"