From 1d543c9d276062a0028c4bd0ee4ec7fa146b4336 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Mon, 26 May 2025 18:59:21 +0800 Subject: [PATCH 01/58] add: fault class construction --- src/base/abc/abc.h | 50 +++++++++++ src/base/abc/abcFault.c | 181 +++++++++++++++++++++++++++++++++++++++ src/base/abc/module.make | 1 + src/base/abci/abc.c | 98 +++++++++++++++++++++ src/base/abci/abcPrint.c | 70 +++++++++++++++ 5 files changed, 400 insertions(+) create mode 100644 src/base/abc/abcFault.c diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index b23905dd32..82cc1f7c42 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -107,6 +107,19 @@ typedef enum { ABC_INIT_OTHER // 4: unused } Abc_InitType_t; +// Fault types +typedef enum { + ABC_FAULT_NONE = 0, // unknown fault type + ABC_FAULT_SA0, // stuck-at-0 fault + ABC_FAULT_SA1, // stuck-at-1 fault + ABC_FAULT_NUMBER // number of fault types +} Abc_FaultType_t; + +typedef enum { + ABC_FAULT_GI = 0, // gate input fault + ABC_FAULT_GO = 1 // gate output fault +} Abc_FaultIo_t; + //////////////////////////////////////////////////////////////////////// /// BASIC TYPES /// //////////////////////////////////////////////////////////////////////// @@ -118,6 +131,7 @@ typedef struct Abc_Aig_t_ Abc_Aig_t; typedef struct Abc_ManTime_t_ Abc_ManTime_t; typedef struct Abc_ManCut_t_ Abc_ManCut_t; typedef struct Abc_Time_t_ Abc_Time_t; +typedef struct Abc_Fault_t_ Abc_Fault_t; struct Abc_Time_t_ { @@ -167,6 +181,13 @@ struct Abc_Ntk_t_ Vec_Ptr_t * vPios; // the array of PIOs Vec_Ptr_t * vBoxes; // the array of boxes Vec_Ptr_t * vLtlProperties; + // fault list information + Abc_Fault_t * pFaultList; // the list of faults + int nFaults; // total number of faults + int nDetectedFaults; // number of detected faults + int nUndetectableFaults; // number of undetectable faults + int nActivatedFaults; // number of activated faults + int nTestTriedFaults; // number of faults that have been tried // the number of living objects int nObjCounts[ABC_OBJ_NUMBER]; // the number of objects by type int nObjs; // the number of live objs @@ -228,6 +249,23 @@ struct Abc_Des_t_ void * pGenlib; // the genlib library used to map this design }; + +struct Abc_Fault_t_ +{ + Abc_Obj_t * pNode; // the node where the fault is located + Abc_FaultType_t Type; // the fault type (SA0 or SA1) + Abc_FaultIo_t Io; // input/output fault + int Index; // index of the input/output where fault is located + int FaultId; // unique fault ID + int iSortIndex; // index used for sorting + int nEqvFaults; // number of equivalent faults + int nDetectedTimes; // number of times detected + int fDetected; // marks detected faults + int fActivated; // marks activated faults + int fTestTried; // marks faults that have been tried + Abc_Fault_t * pNext; // next fault in the list +}; + //////////////////////////////////////////////////////////////////////// /// MACRO DEFINITIONS /// //////////////////////////////////////////////////////////////////////// @@ -850,6 +888,9 @@ extern ABC_DLL void Abc_NodePrintLevel( FILE * pFile, Abc_Obj_t * extern ABC_DLL void Abc_NtkPrintSkews( FILE * pFile, Abc_Ntk_t * pNtk, int fPrintAll ); extern ABC_DLL void Abc_ObjPrint( FILE * pFile, Abc_Obj_t * pObj ); extern ABC_DLL void Abc_NtkShow6VarFunc( char * pF0, char * pF1 ); +extern ABC_DLL void Abc_NtkPrintFaultList( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkPrintFaultStats( Abc_Ntk_t * pNtk ); +extern ABC_DLL float Abc_NtkGetFaultCoverage( Abc_Ntk_t * pNtk ); /*=== abcProve.c ==========================================================*/ extern ABC_DLL int Abc_NtkMiterProve( Abc_Ntk_t ** ppNtk, void * pParams ); extern ABC_DLL int Abc_NtkIvyProve( Abc_Ntk_t ** ppNtk, void * pPars ); @@ -1063,6 +1104,15 @@ extern ABC_DLL int * Abc_NtkVerifySimulatePattern( Abc_Ntk_t * pNtk extern ABC_DLL int Abc_NtkIsTrueCex( Abc_Ntk_t * pNtk, Abc_Cex_t * pCex ); extern ABC_DLL int Abc_NtkIsValidCex( Abc_Ntk_t * pNtk, Abc_Cex_t * pCex ); +// Fault list management functions +extern ABC_DLL Abc_Fault_t * Abc_FaultAlloc( Abc_Obj_t * pNode, Abc_FaultType_t Type, Abc_FaultIo_t Io, int Index ); +extern ABC_DLL void Abc_FaultFree( Abc_Fault_t * pFault ); +extern ABC_DLL void Abc_NtkAddFault( Abc_Ntk_t * pNtk, Abc_Fault_t * pFault ); +extern ABC_DLL void Abc_NtkRemoveFault( Abc_Ntk_t * pNtk, Abc_Fault_t * pFault ); +extern ABC_DLL void Abc_NtkClearFaults( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkGenerateTDFaultList( Abc_Ntk_t * pNtk ); + ABC_NAMESPACE_HEADER_END diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c new file mode 100644 index 0000000000..17d894410c --- /dev/null +++ b/src/base/abc/abcFault.c @@ -0,0 +1,181 @@ +#include "abc.h" + +ABC_NAMESPACE_IMPL_START + +//////////////////////////////////////////////////////////////////////// +/// DECLARATIONS /// +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +/// FUNCTION DEFINITIONS /// +//////////////////////////////////////////////////////////////////////// + +/**Function************************************************************* + + Synopsis [Allocates a new fault.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Abc_Fault_t * Abc_FaultAlloc( Abc_Obj_t * pNode, Abc_FaultType_t Type, Abc_FaultIo_t Io, int Index ) +{ + Abc_Fault_t * pFault; + pFault = ABC_ALLOC( Abc_Fault_t, 1 ); + pFault->pNode = pNode; + pFault->Type = Type; + pFault->Io = Io; + pFault->Index = Index; + pFault->fDetected = 0; + pFault->fActivated = 0; + pFault->fTestTried = 0; + pFault->nEqvFaults = 0; + pFault->iSortIndex = -1; + pFault->FaultId = -1; + pFault->nDetectedTimes = 0; + pFault->pNext = NULL; + return pFault; +} + +/**Function************************************************************* + + Synopsis [Frees a fault.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_FaultFree( Abc_Fault_t * pFault ) +{ + ABC_FREE( pFault ); +} + +/**Function************************************************************* + + Synopsis [Adds a fault to the network's fault list.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkAddFault( Abc_Ntk_t * pNtk, Abc_Fault_t * pFault ) +{ + pFault->pNext = pNtk->pFaultList; + pNtk->pFaultList = pFault; + pNtk->nFaults++; + pFault->FaultId = pNtk->nFaults; +} + +/**Function************************************************************* + + Synopsis [Removes a fault from the network's fault list.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkRemoveFault( Abc_Ntk_t * pNtk, Abc_Fault_t * pFault ) +{ + Abc_Fault_t * pPrev, * pCur; + if ( pNtk->pFaultList == pFault ) + { + pNtk->pFaultList = pFault->pNext; + pNtk->nFaults--; + if ( pFault->fDetected ) + pNtk->nDetectedFaults--; + if ( pFault->fActivated ) + pNtk->nActivatedFaults--; + if ( pFault->fTestTried ) + pNtk->nTestTriedFaults--; + return; + } + for ( pPrev = pNtk->pFaultList, pCur = pPrev->pNext; pCur; pPrev = pCur, pCur = pCur->pNext ) + { + if ( pCur == pFault ) + { + pPrev->pNext = pCur->pNext; + pNtk->nFaults--; + if ( pFault->fDetected ) + pNtk->nDetectedFaults--; + if ( pFault->fActivated ) + pNtk->nActivatedFaults--; + if ( pFault->fTestTried ) + pNtk->nTestTriedFaults--; + return; + } + } +} + +/**Function************************************************************* + + Synopsis [Clears all faults from the network.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkClearFaults( Abc_Ntk_t * pNtk ) +{ + Abc_Fault_t * pFault, * pFaultNext; + for ( pFault = pNtk->pFaultList; pFault; pFault = pFaultNext ) + { + pFaultNext = pFault->pNext; + Abc_FaultFree( pFault ); + } + pNtk->pFaultList = NULL; + pNtk->nFaults = 0; + pNtk->nDetectedFaults = 0; + pNtk->nUndetectableFaults = 0; + pNtk->nActivatedFaults = 0; + pNtk->nTestTriedFaults = 0; +} + +/**Function************************************************************* + + Synopsis [Generates stuck-at fault list for the network.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ) +{ + Abc_Obj_t * pObj; + int i, k; + // Clear existing faults + Abc_NtkClearFaults( pNtk ); + // Add SA0 and SA1 faults for each node + Abc_NtkForEachNode( pNtk, pObj, i ) + { + // Add gate output faults + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ) ); + // Add gate input faults + for ( k = 0; k < Abc_ObjFaninNum(pObj); k++ ) + { + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GI, k ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GI, k ) ); + } + } +} + + +ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abc/module.make b/src/base/abc/module.make index 34517b04da..91a45b53da 100644 --- a/src/base/abc/module.make +++ b/src/base/abc/module.make @@ -6,6 +6,7 @@ SRC += src/base/abc/abcAig.c \ src/base/abc/abcFanio.c \ src/base/abc/abcFanOrder.c \ src/base/abc/abcFunc.c \ + src/base/abc/abcFault.c \ src/base/abc/abcHie.c \ src/base/abc/abcHieCec.c \ src/base/abc/abcHieGia.c \ diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index f85e141791..d0f3e81870 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -83,6 +83,7 @@ ABC_NAMESPACE_IMPL_START static int Abc_CommandPrintStats ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandPrintExdc ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandPrintIo ( Abc_Frame_t * pAbc, int argc, char ** argv ); +static int Abc_CommandPrintFaults ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandPrintLatch ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandPrintFanio ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandPrintMffc ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -177,6 +178,9 @@ static int Abc_CommandMajGen ( Abc_Frame_t * pAbc, int argc, cha static int Abc_CommandOrchestrate ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandAIGAugmentation ( Abc_Frame_t * pAbc, int argc, char ** argv ); +// fault commands +static int Abc_CommandFaultGen ( Abc_Frame_t * pAbc, int argc, char ** argv ); + static int Abc_CommandLogic ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandComb ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandMiter ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -894,6 +898,7 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Printing", "print_stats", Abc_CommandPrintStats, 0 ); Cmd_CommandAdd( pAbc, "Printing", "print_exdc", Abc_CommandPrintExdc, 0 ); Cmd_CommandAdd( pAbc, "Printing", "print_io", Abc_CommandPrintIo, 0 ); + Cmd_CommandAdd( pAbc, "Printing", "print_faults", Abc_CommandPrintFaults, 0 ); Cmd_CommandAdd( pAbc, "Printing", "print_latch", Abc_CommandPrintLatch, 0 ); Cmd_CommandAdd( pAbc, "Printing", "pfan", Abc_CommandPrintFanio, 0 ); Cmd_CommandAdd( pAbc, "Printing", "print_fanio", Abc_CommandPrintFanio, 0 ); @@ -996,6 +1001,8 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Exact synthesis", "testexact", Abc_CommandTestExact, 0 ); Cmd_CommandAdd( pAbc, "Exact synthesis", "majgen", Abc_CommandMajGen, 0 ); + Cmd_CommandAdd( pAbc, "Fault", "fault_gen", Abc_CommandFaultGen, 0 ); + Cmd_CommandAdd( pAbc, "Various", "logic", Abc_CommandLogic, 1 ); Cmd_CommandAdd( pAbc, "Various", "comb", Abc_CommandComb, 1 ); Cmd_CommandAdd( pAbc, "Various", "miter", Abc_CommandMiter, 1 ); @@ -1813,6 +1820,62 @@ int Abc_CommandPrintIo( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_CommandPrintFaults( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + int c, fStats = 0; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "sh" ) ) != EOF ) + { + switch ( c ) + { + case 's': + fStats ^= 1; + break; + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + // Print fault list and statistics + if ( fStats ) + { + Abc_NtkPrintFaultStats( pNtk ); + printf( "Fault coverage: %.2f%%\n", 100.0 * Abc_NtkGetFaultCoverage(pNtk) ); + } + else + Abc_NtkPrintFaultList( pNtk ); + return 0; + +usage: + Abc_Print( -2, "usage: print_faults [-sh]\n" ); + Abc_Print( -2, "\t prints the list of faults in the current network\n" ); + Abc_Print( -2, "\t-s : print fault statistics [default = %s]\n", fStats? "yes": "no" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + /**Function************************************************************* Synopsis [] @@ -11114,6 +11177,41 @@ int Abc_CommandLogic( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } +int Abc_CommandFaultGen( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + int c; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "sh" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + // Print fault list and statistics + Abc_NtkGenerateFaultList( pNtk ); + return 0; + +usage: + Abc_Print( -2, "usage: fault_gen [-h]\n" ); + Abc_Print( -2, "\t Generate stuck-at faults for the current network\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + /**Function************************************************************* Synopsis [] diff --git a/src/base/abci/abcPrint.c b/src/base/abci/abcPrint.c index 35d5c12067..a78ebdd94a 100644 --- a/src/base/abci/abcPrint.c +++ b/src/base/abci/abcPrint.c @@ -2105,6 +2105,76 @@ void Abc_NtkShow6VarFunc( char * pF0, char * pF1 ) } + +//////////////////////////////////////////////////////////////////////// +/// DECLARATIONS /// +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +/// FUNCTION DEFINITIONS /// +//////////////////////////////////////////////////////////////////////// + +/**Function************************************************************* + + Synopsis [Prints the fault list.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkPrintFaultList( Abc_Ntk_t * pNtk ) +{ + Abc_Fault_t * pFault; + printf( "Fault list for network %s:\n", pNtk->pName ); + for ( pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext ) + { + printf( "Node %d: %s fault\n", + Abc_ObjId(pFault->pNode), + pFault->Type == ABC_FAULT_SA0 ? "SA0" : "SA1" ); + } +} + +/**Function************************************************************* + + Synopsis [Prints fault statistics.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkPrintFaultStats( Abc_Ntk_t * pNtk ) +{ + printf( "Fault statistics for network %s:\n", pNtk->pName ); + printf( "Total faults: %d\n", pNtk->nFaults ); + printf( "Detected faults: %d\n", pNtk->nDetectedFaults ); + printf( "Undetectable faults: %d\n", pNtk->nUndetectableFaults ); +} + +/**Function************************************************************* + + Synopsis [Computes fault coverage.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +float Abc_NtkGetFaultCoverage( Abc_Ntk_t * pNtk ) +{ + if ( pNtk->nFaults == 0 ) + return 0.0; + return (float)pNtk->nDetectedFaults / (float)pNtk->nFaults; +} + + //////////////////////////////////////////////////////////////////////// /// END OF FILE /// //////////////////////////////////////////////////////////////////////// From d0c4fb5347292e583d6266a66afc7c1db3a722ae Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Wed, 28 May 2025 13:40:54 +0800 Subject: [PATCH 02/58] Add modifications to ABC files --- circuit.dot | 78 +++++++++ src/base/abc/abc.h | 2 + src/base/abc/abcFault.c | 360 +++++++++++++++++++++++++++++++++++++++ src/base/abci/abc.c | 29 +++- src/base/abci/abcPrint.c | 31 +++- test_circuit1.blif | 16 ++ test_circuit2.blif | 32 ++++ test_circuit3.blif | 20 +++ test_circuit4.blif | 23 +++ 9 files changed, 583 insertions(+), 8 deletions(-) create mode 100644 circuit.dot create mode 100644 test_circuit1.blif create mode 100644 test_circuit2.blif create mode 100644 test_circuit3.blif create mode 100644 test_circuit4.blif diff --git a/circuit.dot b/circuit.dot new file mode 100644 index 0000000000..dffeb59d2c --- /dev/null +++ b/circuit.dot @@ -0,0 +1,78 @@ +# Network structure generated by ABC + +digraph network { +size = "7.5,10"; +center = true; +edge [dir = back]; + +{ + node [shape = plaintext]; + edge [style = invis]; + LevelTitle1 [label=""]; + LevelTitle2 [label=""]; + Level3 [label = ""]; + Level2 [label = ""]; + Level1 [label = ""]; + Level0 [label = ""]; + LevelTitle1 -> LevelTitle2 -> Level3 -> Level2 -> Level1 -> Level0; +} + +{ + rank = same; + LevelTitle1; + title1 [shape=plaintext, + fontsize=20, + fontname = "Times-Roman", + label="Network structure visualized by ABC\nBenchmark \"test_circuit\". Time was Tue May 27 20:52:20 2025. " + ]; +} + +{ + rank = same; + LevelTitle2; + title2 [shape=plaintext, + fontsize=18, + fontname = "Times-Roman", + label="The network contains 3 logic nodes and 0 latches.\n" + ]; +} + +{ + rank = same; + Level3; + Node5 [label = "F", shape = invtriangle, color = coral, fillcolor = coral]; +} + +{ + rank = same; + Level2; + Node8 [label = "9\n1- 1\n-1 1", shape = ellipse]; +} + +{ + rank = same; + Level1; + Node6 [label = "7\n11 1", shape = ellipse]; + Node7 [label = "8\n11 1", shape = ellipse]; +} + +{ + rank = same; + Level0; + Node1 [label = "A", shape = triangle, color = coral, fillcolor = coral]; + Node2 [label = "B", shape = triangle, color = coral, fillcolor = coral]; + Node3 [label = "C", shape = triangle, color = coral, fillcolor = coral]; + Node4 [label = "D", shape = triangle, color = coral, fillcolor = coral]; +} + +title1 -> title2 [style = invis]; +title2 -> Node5 [style = invis]; +Node5 -> Node8 [style = solid]; +Node6 -> Node1 [style = solid]; +Node6 -> Node2 [style = solid]; +Node7 -> Node3 [style = solid]; +Node7 -> Node4 [style = solid]; +Node8 -> Node6 [style = solid]; +Node8 -> Node7 [style = solid]; +} + diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 82cc1f7c42..4bd96302e8 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1111,6 +1111,8 @@ extern ABC_DLL void Abc_NtkAddFault( Abc_Ntk_t * pNtk, Abc_Fault_t extern ABC_DLL void Abc_NtkRemoveFault( Abc_Ntk_t * pNtk, Abc_Fault_t * pFault ); extern ABC_DLL void Abc_NtkClearFaults( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateTDFaultList( Abc_Ntk_t * pNtk ); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 17d894410c..efe1e1ebe8 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -1,4 +1,6 @@ #include "abc.h" +#include +#include "misc/util/abc_global.h" ABC_NAMESPACE_IMPL_START @@ -177,5 +179,363 @@ void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ) } } +/**Function************************************************************* + + Synopsis [Generates checkpoint fault list for the network.] + + Description [Implements checkpoint theorem - only adds faults at PIs + and fanout branches (stems with multiple fanouts)] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ) +{ + Abc_Obj_t * pObj, *pFanout; + int i, j; + int inputIndex; + + // Clear existing faults + Abc_NtkClearFaults( pNtk ); + + // Step 1: Add faults for all primary inputs (these are checkpoints) + Abc_NtkForEachPi( pNtk, pObj, i ) + { + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ) ); + } + + // Step 2: Find all fanout branches and add faults ONLY at the branches + // We need to check both internal nodes and PIs for fanouts + + // Check internal nodes for fanouts + Abc_NtkForEachNode( pNtk, pObj, i ) + { + // If this node's output fans out to multiple gates, add faults at the BRANCHES + if ( Abc_ObjFanoutNum(pObj) > 1 ) + { + // This is a stem with multiple fanouts + // Add faults at each fanout branch (the inputs of the fanout gates) + Abc_ObjForEachFanout( pObj, pFanout, j ) + { + if ( Abc_ObjIsNode(pFanout) || Abc_ObjIsPo(pFanout) ) + { + // Find which input of the fanout node connects to our stem + for ( inputIndex = 0; inputIndex < Abc_ObjFaninNum(pFanout); inputIndex++ ) + { + if ( Abc_ObjFanin(pFanout, inputIndex) == pObj ) + { + // Only add faults at gate inputs, not PO inputs + if ( Abc_ObjIsNode(pFanout) ) + { + // Add faults at this fanout branch (GI of the fanout gate) + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA0, ABC_FAULT_GI, inputIndex ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA1, ABC_FAULT_GI, inputIndex ) ); + } + break; + } + } + } + } + } + } + + // Also check if PIs have fanouts (PI outputs may also branch) + Abc_NtkForEachPi( pNtk, pObj, i ) + { + // If PI has multiple fanouts, add faults at the branches + // (PI faults were already added, now we add branch faults) + if ( Abc_ObjFanoutNum(pObj) > 1 ) + { + Abc_ObjForEachFanout( pObj, pFanout, j ) + { + if ( Abc_ObjIsNode(pFanout) ) + { + // Find which input of the fanout node connects to our PI + for ( inputIndex = 0; inputIndex < Abc_ObjFaninNum(pFanout); inputIndex++ ) + { + if ( Abc_ObjFanin(pFanout, inputIndex) == pObj ) + { + // Add faults at this fanout branch + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA0, ABC_FAULT_GI, inputIndex ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA1, ABC_FAULT_GI, inputIndex ) ); + break; + } + } + } + } + } + } +} +/**Function************************************************************* + + Synopsis [Generates collapsed fault list using dominance relationships.] + + Description [Implements traditional fault collapsing by: + 1. Finding fault equivalence groups + 2. Building dominance graph + 3. Removing dominated faults + 4. Selecting representative faults from equivalence groups] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ + +// Helper structure for fault analysis +typedef struct FaultInfo_t_ { + Abc_Fault_t * pFault; + int nGroupId; // equivalence group ID + int fDominated; // is this fault dominated? + int fRepresentative; // is this the representative of its group? + Vec_Ptr_t * vDominates; // faults that this fault dominates +} FaultInfo_t; + +// Check if two faults are equivalent +static int Abc_FaultsAreEquivalent( Abc_Obj_t * pNode, Abc_Fault_t * pFault1, Abc_Fault_t * pFault2 ) +{ + // For single-input gates (buffer/inverter), input and output faults are equivalent + if ( Abc_ObjFaninNum(pNode) == 1 ) + { + if ( (pFault1->Io == ABC_FAULT_GI && pFault1->Index == 0 && pFault2->Io == ABC_FAULT_GO) || + (pFault1->Io == ABC_FAULT_GO && pFault2->Io == ABC_FAULT_GI && pFault2->Index == 0) ) + { + // For buffer: sa0-in ≡ sa0-out, sa1-in ≡ sa1-out + // For inverter: sa0-in ≡ sa1-out, sa1-in ≡ sa0-out + if ( Abc_NodeIsBuf(pNode) ) + return pFault1->Type == pFault2->Type; + else if ( Abc_NodeIsInv(pNode) ) + return pFault1->Type != pFault2->Type; + } + } + + // For fanout-free gates, output faults may be equivalent to some input combinations + // This is a simplified check - full equivalence checking would require more analysis + return 0; +} + +// Check if fault1 dominates fault2 +static int Abc_FaultDominates( Abc_Obj_t * pNode, Abc_Fault_t * pFault1, Abc_Fault_t * pFault2 ) +{ + char * pSop; + int nCubes, nVars; + + // Can't dominate if they're on different nodes + if ( pFault1->pNode != pFault2->pNode ) + return 0; + + // Same fault can't dominate itself + if ( pFault1->Type == pFault2->Type && pFault1->Io == pFault2->Io && pFault1->Index == pFault2->Index ) + return 0; + + // Get gate type + if ( !Abc_ObjIsNode(pNode) ) + return 0; + + pSop = (char *)pNode->pData; + if ( !pSop ) + return 0; + + nCubes = Abc_SopGetCubeNum(pSop); + nVars = Abc_SopGetVarNum(pSop); + + // Dominance rules for basic gates + if ( nVars == 2 && nCubes == 1 ) // AND gate (or NAND) + { + // For AND gate: output sa0 dominates all input sa0 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + } + else if ( nVars == 2 && nCubes == 2 ) // OR gate (or NOR) + { + // For OR gate: output sa1 dominates all input sa1 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + } + + return 0; +} + +void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) +{ + Abc_Obj_t * pObj; + Abc_Fault_t * pFault, * pFault2; + FaultInfo_t * pInfo, * pInfo2; + Vec_Ptr_t * vAllFaults; + Vec_Ptr_t * vFaultInfos; + int i, j, k, nGroups; + + // Clear existing faults + Abc_NtkClearFaults( pNtk ); + + // Step 1: Generate all possible faults and create fault info structures + vAllFaults = Vec_PtrAlloc( 1000 ); + vFaultInfos = Vec_PtrAlloc( 1000 ); + + // Generate all faults + Abc_NtkForEachNode( pNtk, pObj, i ) + { + // Add gate output faults + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ); + Vec_PtrPush( vAllFaults, pFault ); + pInfo = ABC_ALLOC( FaultInfo_t, 1 ); + pInfo->pFault = pFault; + pInfo->nGroupId = Vec_PtrSize(vFaultInfos); // Initially each fault is its own group + pInfo->fDominated = 0; + pInfo->fRepresentative = 1; + pInfo->vDominates = Vec_PtrAlloc( 4 ); + Vec_PtrPush( vFaultInfos, pInfo ); + + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ); + Vec_PtrPush( vAllFaults, pFault ); + pInfo = ABC_ALLOC( FaultInfo_t, 1 ); + pInfo->pFault = pFault; + pInfo->nGroupId = Vec_PtrSize(vFaultInfos); + pInfo->fDominated = 0; + pInfo->fRepresentative = 1; + pInfo->vDominates = Vec_PtrAlloc( 4 ); + Vec_PtrPush( vFaultInfos, pInfo ); + + // Add gate input faults + for ( k = 0; k < Abc_ObjFaninNum(pObj); k++ ) + { + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GI, k ); + Vec_PtrPush( vAllFaults, pFault ); + pInfo = ABC_ALLOC( FaultInfo_t, 1 ); + pInfo->pFault = pFault; + pInfo->nGroupId = Vec_PtrSize(vFaultInfos); + pInfo->fDominated = 0; + pInfo->fRepresentative = 1; + pInfo->vDominates = Vec_PtrAlloc( 4 ); + Vec_PtrPush( vFaultInfos, pInfo ); + + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GI, k ); + Vec_PtrPush( vAllFaults, pFault ); + pInfo = ABC_ALLOC( FaultInfo_t, 1 ); + pInfo->pFault = pFault; + pInfo->nGroupId = Vec_PtrSize(vFaultInfos); + pInfo->fDominated = 0; + pInfo->fRepresentative = 1; + pInfo->vDominates = Vec_PtrAlloc( 4 ); + Vec_PtrPush( vFaultInfos, pInfo ); + } + } + + // Add PI faults + Abc_NtkForEachPi( pNtk, pObj, i ) + { + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ); + Vec_PtrPush( vAllFaults, pFault ); + pInfo = ABC_ALLOC( FaultInfo_t, 1 ); + pInfo->pFault = pFault; + pInfo->nGroupId = Vec_PtrSize(vFaultInfos); + pInfo->fDominated = 0; + pInfo->fRepresentative = 1; + pInfo->vDominates = Vec_PtrAlloc( 4 ); + Vec_PtrPush( vFaultInfos, pInfo ); + + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ); + Vec_PtrPush( vAllFaults, pFault ); + pInfo = ABC_ALLOC( FaultInfo_t, 1 ); + pInfo->pFault = pFault; + pInfo->nGroupId = Vec_PtrSize(vFaultInfos); + pInfo->fDominated = 0; + pInfo->fRepresentative = 1; + pInfo->vDominates = Vec_PtrAlloc( 4 ); + Vec_PtrPush( vFaultInfos, pInfo ); + } + + // Step 2: Find equivalence groups + nGroups = Vec_PtrSize(vFaultInfos); + for ( i = 0; i < Vec_PtrSize(vFaultInfos); i++ ) + { + pInfo = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, i); + pFault = pInfo->pFault; + + // Check equivalence with remaining faults + for ( j = i + 1; j < Vec_PtrSize(vFaultInfos); j++ ) + { + pInfo2 = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, j); + pFault2 = pInfo2->pFault; + + // Check if faults are on the same node + if ( pFault->pNode == pFault2->pNode ) + { + if ( Abc_FaultsAreEquivalent(pFault->pNode, pFault, pFault2) ) + { + // Merge groups - use the smaller group ID + int minGroupId = Abc_MinInt(pInfo->nGroupId, pInfo2->nGroupId); + pInfo->nGroupId = minGroupId; + pInfo2->nGroupId = minGroupId; + // The one with smaller index becomes representative + if ( j < i ) + { + pInfo->fRepresentative = 0; + pInfo2->fRepresentative = 1; + } + else + { + pInfo2->fRepresentative = 0; + } + } + } + } + } + + // Step 3: Build dominance relationships + for ( i = 0; i < Vec_PtrSize(vFaultInfos); i++ ) + { + pInfo = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, i); + pFault = pInfo->pFault; + + for ( j = 0; j < Vec_PtrSize(vFaultInfos); j++ ) + { + if ( i == j ) + continue; + + pInfo2 = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, j); + pFault2 = pInfo2->pFault; + + // Check if fault i dominates fault j + if ( Abc_FaultDominates(pFault->pNode, pFault, pFault2) ) + { + Vec_PtrPush( pInfo->vDominates, pInfo2 ); + pInfo2->fDominated = 1; + } + } + } + + // Step 4: Select faults for the collapsed list + for ( i = 0; i < Vec_PtrSize(vFaultInfos); i++ ) + { + pInfo = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, i); + + // Add fault if it's: + // 1. Representative of its equivalence group, AND + // 2. Not dominated by any other fault + if ( pInfo->fRepresentative && !pInfo->fDominated ) + { + Abc_NtkAddFault( pNtk, pInfo->pFault ); + } + else + { + // Free the fault if not added + Abc_FaultFree( pInfo->pFault ); + } + + // Clean up + Vec_PtrFree( pInfo->vDominates ); + ABC_FREE( pInfo ); + } + + // Clean up + Vec_PtrFree( vAllFaults ); + Vec_PtrFree( vFaultInfos ); +} ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index d0f3e81870..397af606e1 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11181,13 +11181,21 @@ int Abc_CommandFaultGen( Abc_Frame_t * pAbc, int argc, char ** argv ) { Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); int c; + int fCheckpoint = 0; + int fCollapsing = 0; // set defaults Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "sh" ) ) != EOF ) + while ( ( c = Extra_UtilGetopt( argc, argv, "clsh" ) ) != EOF ) { switch ( c ) { + case 'c': + fCheckpoint = 1; + break; + case 'l': + fCollapsing = 1; + break; case 'h': goto usage; default: @@ -11201,13 +11209,28 @@ int Abc_CommandFaultGen( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } + + if(fCheckpoint&&fCollapsing){ + Abc_Print( -1, "Cannot use both checkpoint and collapsing fault generation methods.\n" ); + return 1; + } // Print fault list and statistics - Abc_NtkGenerateFaultList( pNtk ); + if(fCheckpoint){ + Abc_NtkGenerateCheckpointFaultList( pNtk ); + } + else if(fCollapsing){ + Abc_NtkGenerateCollapsingFaultList( pNtk ); + } + else{ + Abc_NtkGenerateFaultList( pNtk ); + } return 0; usage: - Abc_Print( -2, "usage: fault_gen [-h]\n" ); + Abc_Print( -2, "usage: fault_gen [-c] [-l] [-h]\n" ); Abc_Print( -2, "\t Generate stuck-at faults for the current network\n" ); + Abc_Print( -2, "\t-c : use checkpoint fault generation method\n" ); + Abc_Print( -2, "\t-l : use collapsing fault generation method\n" ); Abc_Print( -2, "\t-h : print the command usage\n"); return 1; } diff --git a/src/base/abci/abcPrint.c b/src/base/abci/abcPrint.c index a78ebdd94a..9354656cec 100644 --- a/src/base/abci/abcPrint.c +++ b/src/base/abci/abcPrint.c @@ -2128,13 +2128,32 @@ void Abc_NtkShow6VarFunc( char * pF0, char * pF1 ) void Abc_NtkPrintFaultList( Abc_Ntk_t * pNtk ) { Abc_Fault_t * pFault; - printf( "Fault list for network %s:\n", pNtk->pName ); + int faultCount = 0; + + if ( pNtk->nFaults == 0 ) + { + printf( "No faults in network %s.\n", pNtk->pName ? pNtk->pName : "unknown" ); + return; + } + + printf( "Fault list for network %s:\n", pNtk->pName ? pNtk->pName : "unknown" ); + printf( "FaultID | Node | Type | I/O | Index | Status\n" ); + printf( "--------|------|------|-----|-------|--------\n" ); + for ( pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext ) { - printf( "Node %d: %s fault\n", + faultCount++; + printf( "%6d | %4d | %s | %s | %4d | %s%s%s\n", + pFault->FaultId, Abc_ObjId(pFault->pNode), - pFault->Type == ABC_FAULT_SA0 ? "SA0" : "SA1" ); - } + pFault->Type == ABC_FAULT_SA0 ? "SA0" : "SA1", + pFault->Io == ABC_FAULT_GO ? "GO" : "GI", + pFault->Index, + pFault->fDetected ? "D" : "-", + pFault->fActivated ? "A" : "-", + pFault->fTestTried ? "T" : "-" ); + } + printf( "Total: %d faults listed\n", faultCount ); } /**Function************************************************************* @@ -2150,10 +2169,12 @@ void Abc_NtkPrintFaultList( Abc_Ntk_t * pNtk ) ***********************************************************************/ void Abc_NtkPrintFaultStats( Abc_Ntk_t * pNtk ) { - printf( "Fault statistics for network %s:\n", pNtk->pName ); + printf( "Fault statistics for network %s:\n", pNtk->pName ? pNtk->pName : "unknown" ); printf( "Total faults: %d\n", pNtk->nFaults ); printf( "Detected faults: %d\n", pNtk->nDetectedFaults ); printf( "Undetectable faults: %d\n", pNtk->nUndetectableFaults ); + printf( "Activated faults: %d\n", pNtk->nActivatedFaults ); + printf( "Test-tried faults: %d\n", pNtk->nTestTriedFaults ); } /**Function************************************************************* diff --git a/test_circuit1.blif b/test_circuit1.blif new file mode 100644 index 0000000000..d4294437fd --- /dev/null +++ b/test_circuit1.blif @@ -0,0 +1,16 @@ +# F1 = A (buffer), F2 = 1 (constant), F3 = A*B + C*D + +.model test_circuit1 +.inputs A B C D +.outputs Z + +.names A B and1 +11 1 + +.names C D and2 +11 1 + +.names and1 and2 Z +11 1 + +.end \ No newline at end of file diff --git a/test_circuit2.blif b/test_circuit2.blif new file mode 100644 index 0000000000..0af2fca2a9 --- /dev/null +++ b/test_circuit2.blif @@ -0,0 +1,32 @@ +# More complex circuit to test fault collapsing +# Circuit with constant nodes, buffers, and fanout-free regions +# F1 = A (buffer), F2 = 1 (constant), F3 = A*B + C*D + +.model test_circuit2 +.inputs A B C D +.outputs F1 F2 F3 + +# Buffer: F1 = A +.names A F1 +1 1 + +# Constant 1: F2 = 1 +.names F2 +1 + +# AND-OR structure with some fanout-free regions +.names A B and1 +11 1 + +.names C D and2 +11 1 + +# Buffer in the middle (fanout-free) +.names and1 buf1 +1 1 + +.names buf1 and2 F3 +1- 1 +-1 1 + +.end \ No newline at end of file diff --git a/test_circuit3.blif b/test_circuit3.blif new file mode 100644 index 0000000000..5f6f82abfa --- /dev/null +++ b/test_circuit3.blif @@ -0,0 +1,20 @@ +# Circuit with real fanout branches to test Checkpoint Theorem +# A has fanout = 2 (goes to two AND gates) +# Should create checkpoint at A + +.model test_circuit3 +.inputs A B C +.outputs Z + +# A fans out to two places (fanout branch = checkpoint) +.names A B and1 +11 1 + +.names A C and2 +11 1 + +.names and1 and2 Z +1- 1 +-1 1 + +.end \ No newline at end of file diff --git a/test_circuit4.blif b/test_circuit4.blif new file mode 100644 index 0000000000..266400b552 --- /dev/null +++ b/test_circuit4.blif @@ -0,0 +1,23 @@ +# Circuit with real fanout branches to test Checkpoint Theorem +# Should create checkpoint at A + +.model test_circuit4 +.inputs A B C D E +.outputs X Y Z + +.names A B and1 +11 1 + +.names A C and2 +11 1 + +.names and2 D X +11 1 + +.names and1 E Z +11 1 + +.names and1 and2 Y +11 1 + +.end \ No newline at end of file From e198e75e43e2ed3a46480187e1439db9a7fe41f2 Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Wed, 28 May 2025 13:52:21 +0800 Subject: [PATCH 03/58] modification --- src/base/abc/abcFault.c | 271 +++++++++++++++++++++++++++++----------- 1 file changed, 200 insertions(+), 71 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index efe1e1ebe8..8573e45b45 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -193,81 +193,68 @@ void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ) ***********************************************************************/ void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ) { - Abc_Obj_t * pObj, *pFanout; - int i, j; - int inputIndex; + Abc_Obj_t * pObj, *pFanin; + Vec_Ptr_t * vCheckpoints; + int i, k; // Clear existing faults Abc_NtkClearFaults( pNtk ); - // Step 1: Add faults for all primary inputs (these are checkpoints) + // Create a vector to track checkpoints (for clarity) + vCheckpoints = Vec_PtrAlloc( 100 ); + + // Step 1: Identify all checkpoints + + // All PIs are checkpoints Abc_NtkForEachPi( pNtk, pObj, i ) { - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ) ); - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ) ); + Vec_PtrPush( vCheckpoints, pObj ); } - // Step 2: Find all fanout branches and add faults ONLY at the branches - // We need to check both internal nodes and PIs for fanouts - - // Check internal nodes for fanouts + // Find all fanout branches (these are also checkpoints) + // A fanout branch occurs when a signal feeds multiple gates Abc_NtkForEachNode( pNtk, pObj, i ) { - // If this node's output fans out to multiple gates, add faults at the BRANCHES - if ( Abc_ObjFanoutNum(pObj) > 1 ) + // Check each input of this node + Abc_ObjForEachFanin( pObj, pFanin, k ) { - // This is a stem with multiple fanouts - // Add faults at each fanout branch (the inputs of the fanout gates) - Abc_ObjForEachFanout( pObj, pFanout, j ) + // If this fanin has multiple fanouts, then this input is a branch + if ( Abc_ObjFanoutNum(pFanin) > 1 ) { - if ( Abc_ObjIsNode(pFanout) || Abc_ObjIsPo(pFanout) ) - { - // Find which input of the fanout node connects to our stem - for ( inputIndex = 0; inputIndex < Abc_ObjFaninNum(pFanout); inputIndex++ ) - { - if ( Abc_ObjFanin(pFanout, inputIndex) == pObj ) - { - // Only add faults at gate inputs, not PO inputs - if ( Abc_ObjIsNode(pFanout) ) - { - // Add faults at this fanout branch (GI of the fanout gate) - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA0, ABC_FAULT_GI, inputIndex ) ); - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA1, ABC_FAULT_GI, inputIndex ) ); - } - break; - } - } - } + // This is a branch point - but we don't add it to checkpoints vector + // because we'll add the fault directly at the branch (GI fault) + // The checkpoint is conceptually at the branch, not the stem } } } - // Also check if PIs have fanouts (PI outputs may also branch) + // Step 2: Add faults at checkpoints + + // Add faults at PI checkpoints Abc_NtkForEachPi( pNtk, pObj, i ) { - // If PI has multiple fanouts, add faults at the branches - // (PI faults were already added, now we add branch faults) - if ( Abc_ObjFanoutNum(pObj) > 1 ) + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ) ); + } + + // Add faults at branch checkpoints + // For each node that has an input from a multi-fanout signal + Abc_NtkForEachNode( pNtk, pObj, i ) + { + Abc_ObjForEachFanin( pObj, pFanin, k ) { - Abc_ObjForEachFanout( pObj, pFanout, j ) + // If this input comes from a signal with multiple fanouts + if ( Abc_ObjFanoutNum(pFanin) > 1 ) { - if ( Abc_ObjIsNode(pFanout) ) - { - // Find which input of the fanout node connects to our PI - for ( inputIndex = 0; inputIndex < Abc_ObjFaninNum(pFanout); inputIndex++ ) - { - if ( Abc_ObjFanin(pFanout, inputIndex) == pObj ) - { - // Add faults at this fanout branch - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA0, ABC_FAULT_GI, inputIndex ) ); - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pFanout, ABC_FAULT_SA1, ABC_FAULT_GI, inputIndex ) ); - break; - } - } - } + // Add fault at this branch (gate input) + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GI, k ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GI, k ) ); } } } + + // Clean up + Vec_PtrFree( vCheckpoints ); } /**Function************************************************************* @@ -297,23 +284,43 @@ typedef struct FaultInfo_t_ { // Check if two faults are equivalent static int Abc_FaultsAreEquivalent( Abc_Obj_t * pNode, Abc_Fault_t * pFault1, Abc_Fault_t * pFault2 ) { - // For single-input gates (buffer/inverter), input and output faults are equivalent - if ( Abc_ObjFaninNum(pNode) == 1 ) + char * pSop; + int nVars; + + // Must be on same node + if ( pFault1->pNode != pFault2->pNode ) + return 0; + + // For single-input gates (buffer/inverter) + if ( Abc_ObjFaninNum(pNode) == 1 && Abc_ObjIsNode(pNode) ) { if ( (pFault1->Io == ABC_FAULT_GI && pFault1->Index == 0 && pFault2->Io == ABC_FAULT_GO) || (pFault1->Io == ABC_FAULT_GO && pFault2->Io == ABC_FAULT_GI && pFault2->Index == 0) ) { - // For buffer: sa0-in ≡ sa0-out, sa1-in ≡ sa1-out - // For inverter: sa0-in ≡ sa1-out, sa1-in ≡ sa0-out - if ( Abc_NodeIsBuf(pNode) ) + pSop = (char *)pNode->pData; + if ( !pSop ) + return 0; + + nVars = Abc_SopGetVarNum(pSop); + if ( nVars != 1 ) + return 0; + + // Check if it's a buffer (F = A) or inverter (F = A') + if ( pSop[0] == '1' ) // Buffer: positive literal + { return pFault1->Type == pFault2->Type; - else if ( Abc_NodeIsInv(pNode) ) + } + else if ( pSop[0] == '0' ) // Inverter: negative literal + { return pFault1->Type != pFault2->Type; + } } } - // For fanout-free gates, output faults may be equivalent to some input combinations - // This is a simplified check - full equivalence checking would require more analysis + // For fanout-free gates (single fanout), certain input combinations may be equivalent + // This requires more complex analysis based on gate function + // For now, we handle only the simple buffer/inverter case + return 0; } @@ -322,6 +329,7 @@ static int Abc_FaultDominates( Abc_Obj_t * pNode, Abc_Fault_t * pFault1, Abc_Fau { char * pSop; int nCubes, nVars; + int isComplement; // Can't dominate if they're on different nodes if ( pFault1->pNode != pFault2->pNode ) @@ -341,21 +349,142 @@ static int Abc_FaultDominates( Abc_Obj_t * pNode, Abc_Fault_t * pFault1, Abc_Fau nCubes = Abc_SopGetCubeNum(pSop); nVars = Abc_SopGetVarNum(pSop); + isComplement = Abc_SopIsComplement(pSop); - // Dominance rules for basic gates - if ( nVars == 2 && nCubes == 1 ) // AND gate (or NAND) + // Single variable gates (buffer/inverter) + if ( nVars == 1 ) { - // For AND gate: output sa0 dominates all input sa0 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) - return 1; + // These are handled by equivalence, not dominance + return 0; + } + + // Two-input gates + if ( nVars == 2 ) + { + // AND gate: F = AB (nCubes = 1, all literals positive) + if ( nCubes == 1 && !isComplement ) + { + // For AND: output SA0 dominates all input SA0 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + + // For AND: any input SA1 dominates output SA1 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + } + // NAND gate: F = (AB)' (nCubes = 1, complement) + else if ( nCubes == 1 && isComplement ) + { + // For NAND: output SA1 dominates all input SA0 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + + // For NAND: any input SA1 dominates output SA0 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + } + // OR gate: F = A + B (nCubes = 2, each with one literal) + else if ( nCubes == 2 && !isComplement ) + { + // For OR: output SA1 dominates all input SA1 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + + // For OR: any input SA0 dominates output SA0 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + } + // NOR gate: F = (A + B)' (nCubes = 2, complement) + else if ( nCubes == 2 && isComplement ) + { + // For NOR: output SA0 dominates all input SA1 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + + // For NOR: any input SA0 dominates output SA1 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + } } - else if ( nVars == 2 && nCubes == 2 ) // OR gate (or NOR) + + // Multi-input AND/NAND gates + if ( nCubes == 1 ) { - // For OR gate: output sa1 dominates all input sa1 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) - return 1; + if ( !isComplement ) // AND gate + { + // Output SA0 dominates all input SA0 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + // Any input SA1 dominates output SA1 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + } + else // NAND gate + { + // Output SA1 dominates all input SA0 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + // Any input SA1 dominates output SA0 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + } + } + + // Multi-input OR/NOR gates (each variable appears in separate cube) + if ( nCubes == nVars ) + { + // Check if this is really an OR/NOR structure + int isOr = 1; + for ( int i = 0; i < nCubes && isOr; i++ ) + { + char * pCube = pSop + i * (nVars + 3); + int litCount = 0; + for ( int j = 0; j < nVars; j++ ) + { + if ( pCube[j] != '-' ) + litCount++; + } + if ( litCount != 1 ) + isOr = 0; + } + + if ( isOr ) + { + if ( !isComplement ) // OR gate + { + // Output SA1 dominates all input SA1 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + // Any input SA0 dominates output SA0 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) + return 1; + } + else // NOR gate + { + // Output SA0 dominates all input SA1 + if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + // Any input SA0 dominates output SA1 + if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && + pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) + return 1; + } + } } return 0; From 8acdddad19efefae7c13ffa6d1071609f2e3799b Mon Sep 17 00:00:00 2001 From: xNTsai Date: Thu, 29 May 2025 00:41:45 +0800 Subject: [PATCH 04/58] add: inject fault_sim gates --- src/base/abc/abc.h | 1 + src/base/abc/abcFault.c | 65 +++++++++++++++++++++++++++++++++++++++++ src/base/abci/abc.c | 53 +++++++++++++++++++++++++++++++-- 3 files changed, 117 insertions(+), 2 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 4bd96302e8..0625ac66ab 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1114,6 +1114,7 @@ extern ABC_DLL void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateTDFaultList( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 8573e45b45..e9b600c44b 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -667,4 +667,69 @@ void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) Vec_PtrFree( vFaultInfos ); } +/**Function************************************************************* + + Synopsis [Inserts fault simulation gates for each fault in the fault list.] + + Description [For each fault, adds two new PIs (x_id, y_id) and inserts the logic + (c ^ ~x_id) | y_id at the fault site, as shown in the provided figure.] + + SideEffects [Modifies the network structure.] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) +{ + Abc_Fault_t * pFault; + int faultId = 0; + Vec_Ptr_t * vHandled = Vec_PtrAlloc(100); // Track handled output nodes + // Iterate over the fault list + for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext, ++faultId) + { + char xName[32], yName[32]; + Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOut; + + pC = pFault->pNode; // Output of the gate + // Check if we've already handled this node + if (Vec_PtrFind(vHandled, pC) != -1) + continue; // Already handled + Vec_PtrPush(vHandled, pC); + + pOut = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pOut replaces pC as the output signal + // Transfer all fanouts of pC to pOut + Abc_ObjTransferFanout(pC, pOut); + + // Generate unique names for x and y + sprintf(xName, "x_%d", faultId); + sprintf(yName, "y_%d", faultId); + // Add new PIs + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pX, xName, NULL); + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + + // Create NOT gate for ~x + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); + + // Create AND gate for (c AND ~x) + pAnd = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pAnd, pC); + Abc_ObjAddFanin(pAnd, pNotX); + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + // Create OR gate for ((c AND ~x) OR y) + Abc_ObjAddFanin(pOut, pAnd); + Abc_ObjAddFanin(pOut, pY); + pOut->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + printf("[FaultSim] Inserted fault sim gates for node %s \n", Abc_ObjName(pC)); + } + Vec_PtrFree(vHandled); + printf("[FaultSim] Completed fault simulation gate insertion\n"); +} + ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 397af606e1..fb81b20080 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -180,7 +180,7 @@ static int Abc_CommandAIGAugmentation ( Abc_Frame_t * pAbc, int argc, char // fault commands static int Abc_CommandFaultGen ( Abc_Frame_t * pAbc, int argc, char ** argv ); - +static int Abc_CommandFaultSim ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandLogic ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandComb ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandMiter ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -1002,7 +1002,7 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Exact synthesis", "majgen", Abc_CommandMajGen, 0 ); Cmd_CommandAdd( pAbc, "Fault", "fault_gen", Abc_CommandFaultGen, 0 ); - + Cmd_CommandAdd( pAbc, "Fault", "fault_sim", Abc_CommandFaultSim, 1 ); Cmd_CommandAdd( pAbc, "Various", "logic", Abc_CommandLogic, 1 ); Cmd_CommandAdd( pAbc, "Various", "comb", Abc_CommandComb, 1 ); Cmd_CommandAdd( pAbc, "Various", "miter", Abc_CommandMiter, 1 ); @@ -11235,6 +11235,55 @@ int Abc_CommandFaultGen( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + int c; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + + // Print fault list and statistics + Abc_NtkInsertFaultSimGates( pNtk ); + + return 0; + +usage: + Abc_Print( -2, "usage: fault_sim [-h]\n" ); + Abc_Print( -2, "\t Generate stuck-at faults for the current network\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + + /**Function************************************************************* Synopsis [] From 80f0c8b9fc56f63a14d2cb127642b39c75a32db8 Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Fri, 30 May 2025 11:55:26 +0800 Subject: [PATCH 05/58] =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- c17.blif | 16 + c2670.bench | 1574 ++++++++++++++++++++++++++++++++++++++ c432.bench | 211 +++++ src/base/abc/abc.h | 3 +- src/base/abc/abcFault.c | 738 +++++++++--------- src/base/abci/abc.c | 3 +- src/base/abci/abcPrint.c | 2 +- test_circuit1.blif | 2 +- test_circuit2.blif | 33 +- 9 files changed, 2209 insertions(+), 373 deletions(-) create mode 100644 c17.blif create mode 100644 c2670.bench create mode 100644 c432.bench diff --git a/c17.blif b/c17.blif new file mode 100644 index 0000000000..1171b533d6 --- /dev/null +++ b/c17.blif @@ -0,0 +1,16 @@ +.model C17.iscas +.inputs 1GAT(0) 2GAT(1) 3GAT(2) 6GAT(3) 7GAT(4) +.outputs 22GAT(10) 23GAT(9) +.names 3GAT(2) 6GAT(3) 11GAT(5) +11 0 +.names 1GAT(0) 3GAT(2) 10GAT(6) +11 0 +.names 11GAT(5) 7GAT(4) 19GAT(7) +11 0 +.names 2GAT(1) 11GAT(5) 16GAT(8) +11 0 +.names 16GAT(8) 19GAT(7) 23GAT(9) +11 0 +.names 10GAT(6) 16GAT(8) 22GAT(10) +11 0 +.end \ No newline at end of file diff --git a/c2670.bench b/c2670.bench new file mode 100644 index 0000000000..bb97851d99 --- /dev/null +++ b/c2670.bench @@ -0,0 +1,1574 @@ +# c2670 +# 233 inputs +# 140 outputs +# 321 inverters +# 872 gates ( 529 ANDs + 575 NANDs + 77 ORs + 12 NORs + 196 buffers ) + +INPUT(1) +INPUT(2) +INPUT(3) +INPUT(4) +INPUT(5) +INPUT(6) +INPUT(7) +INPUT(8) +INPUT(11) +INPUT(14) +INPUT(15) +INPUT(16) +INPUT(19) +INPUT(20) +INPUT(21) +INPUT(22) +INPUT(23) +INPUT(24) +INPUT(25) +INPUT(26) +INPUT(27) +INPUT(28) +INPUT(29) +INPUT(32) +INPUT(33) +INPUT(34) +INPUT(35) +INPUT(36) +INPUT(37) +INPUT(40) +INPUT(43) +INPUT(44) +INPUT(47) +INPUT(48) +INPUT(49) +INPUT(50) +INPUT(51) +INPUT(52) +INPUT(53) +INPUT(54) +INPUT(55) +INPUT(56) +INPUT(57) +INPUT(60) +INPUT(61) +INPUT(62) +INPUT(63) +INPUT(64) +INPUT(65) +INPUT(66) +INPUT(67) +INPUT(68) +INPUT(69) +INPUT(72) +INPUT(73) +INPUT(74) +INPUT(75) +INPUT(76) +INPUT(77) +INPUT(78) +INPUT(79) +INPUT(80) +INPUT(81) +INPUT(82) +INPUT(85) +INPUT(86) +INPUT(87) +INPUT(88) +INPUT(89) +INPUT(90) +INPUT(91) +INPUT(92) +INPUT(93) +INPUT(94) +INPUT(95) +INPUT(96) +INPUT(99) +INPUT(100) +INPUT(101) +INPUT(102) +INPUT(103) +INPUT(104) +INPUT(105) +INPUT(106) +INPUT(107) +INPUT(108) +INPUT(111) +INPUT(112) +INPUT(113) +INPUT(114) +INPUT(115) +INPUT(116) +INPUT(117) +INPUT(118) +INPUT(119) +INPUT(120) +INPUT(123) +INPUT(124) +INPUT(125) +INPUT(126) +INPUT(127) +INPUT(128) +INPUT(129) +INPUT(130) +INPUT(131) +INPUT(132) +INPUT(135) +INPUT(136) +INPUT(137) +INPUT(138) +INPUT(139) +INPUT(140) +INPUT(141) +INPUT(142) +INPUT(143) +INPUT(144) +INPUT(145) +INPUT(146) +INPUT(147) +INPUT(148) +INPUT(149) +INPUT(150) +INPUT(151) +INPUT(152) +INPUT(153) +INPUT(154) +INPUT(155) +INPUT(156) +INPUT(157) +INPUT(158) +INPUT(159) +INPUT(160) +INPUT(161) +INPUT(162) +INPUT(163) +INPUT(164) +INPUT(165) +INPUT(166) +INPUT(167) +INPUT(168) +INPUT(169) +INPUT(170) +INPUT(171) +INPUT(172) +INPUT(173) +INPUT(174) +INPUT(175) +INPUT(176) +INPUT(177) +INPUT(178) +INPUT(179) +INPUT(180) +INPUT(181) +INPUT(182) +INPUT(183) +INPUT(184) +INPUT(185) +INPUT(186) +INPUT(187) +INPUT(188) +INPUT(189) +INPUT(190) +INPUT(191) +INPUT(192) +INPUT(193) +INPUT(194) +INPUT(195) +INPUT(196) +INPUT(197) +INPUT(198) +INPUT(199) +INPUT(200) +INPUT(201) +INPUT(202) +INPUT(203) +INPUT(204) +INPUT(205) +INPUT(206) +INPUT(207) +INPUT(208) +INPUT(209) +INPUT(210) +INPUT(211) +INPUT(212) +INPUT(213) +INPUT(214) +INPUT(215) +INPUT(216) +INPUT(217) +INPUT(218) +INPUT(219) +INPUT(224) +INPUT(227) +INPUT(230) +INPUT(231) +INPUT(234) +INPUT(237) +INPUT(241) +INPUT(246) +INPUT(253) +INPUT(256) +INPUT(259) +INPUT(262) +INPUT(263) +INPUT(266) +INPUT(269) +INPUT(272) +INPUT(275) +INPUT(278) +INPUT(281) +INPUT(284) +INPUT(287) +INPUT(290) +INPUT(294) +INPUT(297) +INPUT(301) +INPUT(305) +INPUT(309) +INPUT(313) +INPUT(316) +INPUT(319) +INPUT(322) +INPUT(325) +INPUT(328) +INPUT(331) +INPUT(334) +INPUT(337) +INPUT(340) +INPUT(343) +INPUT(346) +INPUT(349) +INPUT(352) +INPUT(355) + +OUTPUT(143) +OUTPUT(144) +OUTPUT(145) +OUTPUT(146) +OUTPUT(147) +OUTPUT(148) +OUTPUT(149) +OUTPUT(150) +OUTPUT(151) +OUTPUT(152) +OUTPUT(153) +OUTPUT(154) +OUTPUT(155) +OUTPUT(156) +OUTPUT(157) +OUTPUT(158) +OUTPUT(159) +OUTPUT(160) +OUTPUT(161) +OUTPUT(162) +OUTPUT(163) +OUTPUT(164) +OUTPUT(165) +OUTPUT(166) +OUTPUT(167) +OUTPUT(168) +OUTPUT(169) +OUTPUT(170) +OUTPUT(171) +OUTPUT(172) +OUTPUT(173) +OUTPUT(174) +OUTPUT(175) +OUTPUT(176) +OUTPUT(177) +OUTPUT(178) +OUTPUT(179) +OUTPUT(180) +OUTPUT(181) +OUTPUT(182) +OUTPUT(183) +OUTPUT(184) +OUTPUT(185) +OUTPUT(186) +OUTPUT(187) +OUTPUT(188) +OUTPUT(189) +OUTPUT(190) +OUTPUT(191) +OUTPUT(192) +OUTPUT(193) +OUTPUT(194) +OUTPUT(195) +OUTPUT(196) +OUTPUT(197) +OUTPUT(198) +OUTPUT(199) +OUTPUT(200) +OUTPUT(201) +OUTPUT(202) +OUTPUT(203) +OUTPUT(204) +OUTPUT(205) +OUTPUT(206) +OUTPUT(207) +OUTPUT(208) +OUTPUT(209) +OUTPUT(210) +OUTPUT(211) +OUTPUT(212) +OUTPUT(213) +OUTPUT(214) +OUTPUT(215) +OUTPUT(216) +OUTPUT(217) +OUTPUT(218) +OUTPUT(398) +OUTPUT(400) +OUTPUT(401) +OUTPUT(419) +OUTPUT(420) +OUTPUT(456) +OUTPUT(457) +OUTPUT(458) +OUTPUT(487) +OUTPUT(488) +OUTPUT(489) +OUTPUT(490) +OUTPUT(491) +OUTPUT(492) +OUTPUT(493) +OUTPUT(494) +OUTPUT(792) +OUTPUT(799) +OUTPUT(805) +OUTPUT(1026) +OUTPUT(1028) +OUTPUT(1029) +OUTPUT(1269) +OUTPUT(1277) +OUTPUT(1448) +OUTPUT(1726) +OUTPUT(1816) +OUTPUT(1817) +OUTPUT(1818) +OUTPUT(1819) +OUTPUT(1820) +OUTPUT(1821) +OUTPUT(1969) +OUTPUT(1970) +OUTPUT(1971) +OUTPUT(2010) +OUTPUT(2012) +OUTPUT(2014) +OUTPUT(2016) +OUTPUT(2018) +OUTPUT(2020) +OUTPUT(2022) +OUTPUT(2387) +OUTPUT(2388) +OUTPUT(2389) +OUTPUT(2390) +OUTPUT(2496) +OUTPUT(2643) +OUTPUT(2644) +OUTPUT(2891) +OUTPUT(2925) +OUTPUT(2970) +OUTPUT(2971) +OUTPUT(3038) +OUTPUT(3079) +OUTPUT(3546) +OUTPUT(3671) +OUTPUT(3803) +OUTPUT(3804) +OUTPUT(3809) +OUTPUT(3851) +OUTPUT(3875) +OUTPUT(3881) +OUTPUT(3882) + +398 = BUFF(219) +400 = BUFF(219) +401 = BUFF(219) +405 = AND(1, 3) +408 = NOT(230) +419 = BUFF(253) +420 = BUFF(253) +425 = NOT(262) +456 = BUFF(290) +457 = BUFF(290) +458 = BUFF(290) +485 = AND(309, 305, 301, 297) +486 = NOT(405) +487 = NOT(44) +488 = NOT(132) +489 = NOT(82) +490 = NOT(96) +491 = NOT(69) +492 = NOT(120) +493 = NOT(57) +494 = NOT(108) +495 = AND(2, 15, 237) +496 = BUFF(237) +499 = AND(37, 37) +500 = BUFF(219) +503 = BUFF(8) +506 = BUFF(8) +509 = BUFF(227) +521 = BUFF(234) +533 = NOT(241) +537 = NOT(246) +543 = AND(11, 246) +544 = AND(132, 82, 96, 44) +547 = AND(120, 57, 108, 69) +550 = BUFF(227) +562 = BUFF(234) +574 = NOT(256) +578 = NOT(259) +582 = BUFF(319) +594 = BUFF(322) +606 = NOT(328) +607 = NOT(331) +608 = NOT(334) +609 = NOT(337) +610 = NOT(340) +611 = NOT(343) +612 = NOT(352) +613 = BUFF(319) +625 = BUFF(322) +637 = BUFF(16) +643 = BUFF(16) +650 = NOT(355) +651 = AND(7, 237) +655 = NOT(263) +659 = NOT(266) +663 = NOT(269) +667 = NOT(272) +671 = NOT(275) +675 = NOT(278) +679 = NOT(281) +683 = NOT(284) +687 = NOT(287) +693 = BUFF(29) +699 = BUFF(29) +705 = NOT(294) +711 = NOT(297) +715 = NOT(301) +719 = NOT(305) +723 = NOT(309) +727 = NOT(313) +730 = NOT(316) +733 = NOT(346) +734 = NOT(349) +735 = BUFF(259) +738 = BUFF(256) +741 = BUFF(263) +744 = BUFF(269) +747 = BUFF(266) +750 = BUFF(275) +753 = BUFF(272) +756 = BUFF(281) +759 = BUFF(278) +762 = BUFF(287) +765 = BUFF(284) +768 = BUFF(294) +771 = BUFF(301) +774 = BUFF(297) +777 = BUFF(309) +780 = BUFF(305) +783 = BUFF(316) +786 = BUFF(313) +792 = NOT(485) +799 = NOT(495) +800 = NOT(499) +805 = BUFF(500) +900 = NAND(331, 606) +901 = NAND(328, 607) +902 = NAND(337, 608) +903 = NAND(334, 609) +904 = NAND(343, 610) +905 = NAND(340, 611) +998 = NAND(349, 733) +999 = NAND(346, 734) +1026 = AND(94, 500) +1027 = AND(325, 651) +1028 = NOT(651) +1029 = NAND(231, 651) +1032 = NOT(544) +1033 = NOT(547) +1034 = AND(547, 544) +1037 = BUFF(503) +1042 = NOT(509) +1053 = NOT(521) +1064 = AND(80, 509, 521) +1065 = AND(68, 509, 521) +1066 = AND(79, 509, 521) +1067 = AND(78, 509, 521) +1068 = AND(77, 509, 521) +1069 = AND(11, 537) +1070 = BUFF(503) +1075 = NOT(550) +1086 = NOT(562) +1097 = AND(76, 550, 562) +1098 = AND(75, 550, 562) +1099 = AND(74, 550, 562) +1100 = AND(73, 550, 562) +1101 = AND(72, 550, 562) +1102 = NOT(582) +1113 = NOT(594) +1124 = AND(114, 582, 594) +1125 = AND(113, 582, 594) +1126 = AND(112, 582, 594) +1127 = AND(111, 582, 594) +1128 = AND(582, 594) +1129 = NAND(900, 901) +1133 = NAND(902, 903) +1137 = NAND(904, 905) +1140 = NOT(741) +1141 = NAND(741, 612) +1142 = NOT(744) +1143 = NOT(747) +1144 = NOT(750) +1145 = NOT(753) +1146 = NOT(613) +1157 = NOT(625) +1168 = AND(118, 613, 625) +1169 = AND(107, 613, 625) +1170 = AND(117, 613, 625) +1171 = AND(116, 613, 625) +1172 = AND(115, 613, 625) +1173 = NOT(637) +1178 = NOT(643) +1184 = NOT(768) +1185 = NAND(768, 650) +1186 = NOT(771) +1187 = NOT(774) +1188 = NOT(777) +1189 = NOT(780) +1190 = BUFF(506) +1195 = BUFF(506) +1200 = NOT(693) +1205 = NOT(699) +1210 = NOT(735) +1211 = NOT(738) +1212 = NOT(756) +1213 = NOT(759) +1214 = NOT(762) +1215 = NOT(765) +1216 = NAND(998, 999) +1219 = BUFF(574) +1222 = BUFF(578) +1225 = BUFF(655) +1228 = BUFF(659) +1231 = BUFF(663) +1234 = BUFF(667) +1237 = BUFF(671) +1240 = BUFF(675) +1243 = BUFF(679) +1246 = BUFF(683) +1249 = NOT(783) +1250 = NOT(786) +1251 = BUFF(687) +1254 = BUFF(705) +1257 = BUFF(711) +1260 = BUFF(715) +1263 = BUFF(719) +1266 = BUFF(723) +1269 = NOT(1027) +1275 = AND(325, 1032) +1276 = AND(231, 1033) +1277 = BUFF(1034) +1302 = OR(1069, 543) +1351 = NAND(352, 1140) +1352 = NAND(747, 1142) +1353 = NAND(744, 1143) +1354 = NAND(753, 1144) +1355 = NAND(750, 1145) +1395 = NAND(355, 1184) +1396 = NAND(774, 1186) +1397 = NAND(771, 1187) +1398 = NAND(780, 1188) +1399 = NAND(777, 1189) +1422 = NAND(738, 1210) +1423 = NAND(735, 1211) +1424 = NAND(759, 1212) +1425 = NAND(756, 1213) +1426 = NAND(765, 1214) +1427 = NAND(762, 1215) +1440 = NAND(786, 1249) +1441 = NAND(783, 1250) +1448 = NOT(1034) +1449 = NOT(1275) +1450 = NOT(1276) +1451 = AND(93, 1042, 1053) +1452 = AND(55, 509, 1053) +1453 = AND(67, 1042, 521) +1454 = AND(81, 1042, 1053) +1455 = AND(43, 509, 1053) +1456 = AND(56, 1042, 521) +1457 = AND(92, 1042, 1053) +1458 = AND(54, 509, 1053) +1459 = AND(66, 1042, 521) +1460 = AND(91, 1042, 1053) +1461 = AND(53, 509, 1053) +1462 = AND(65, 1042, 521) +1463 = AND(90, 1042, 1053) +1464 = AND(52, 509, 1053) +1465 = AND(64, 1042, 521) +1466 = AND(89, 1075, 1086) +1467 = AND(51, 550, 1086) +1468 = AND(63, 1075, 562) +1469 = AND(88, 1075, 1086) +1470 = AND(50, 550, 1086) +1471 = AND(62, 1075, 562) +1472 = AND(87, 1075, 1086) +1473 = AND(49, 550, 1086) +1474 = AND(1075, 562) +1475 = AND(86, 1075, 1086) +1476 = AND(48, 550, 1086) +1477 = AND(61, 1075, 562) +1478 = AND(85, 1075, 1086) +1479 = AND(47, 550, 1086) +1480 = AND(60, 1075, 562) +1481 = AND(138, 1102, 1113) +1482 = AND(102, 582, 1113) +1483 = AND(126, 1102, 594) +1484 = AND(137, 1102, 1113) +1485 = AND(101, 582, 1113) +1486 = AND(125, 1102, 594) +1487 = AND(136, 1102, 1113) +1488 = AND(100, 582, 1113) +1489 = AND(124, 1102, 594) +1490 = AND(135, 1102, 1113) +1491 = AND(99, 582, 1113) +1492 = AND(123, 1102, 594) +1493 = AND(1102, 1113) +1494 = AND(582, 1113) +1495 = AND(1102, 594) +1496 = NOT(1129) +1499 = NOT(1133) +1502 = NAND(1351, 1141) +1506 = NAND(1352, 1353) +1510 = NAND(1354, 1355) +1513 = BUFF(1137) +1516 = BUFF(1137) +1519 = NOT(1219) +1520 = NOT(1222) +1521 = NOT(1225) +1522 = NOT(1228) +1523 = NOT(1231) +1524 = NOT(1234) +1525 = NOT(1237) +1526 = NOT(1240) +1527 = NOT(1243) +1528 = NOT(1246) +1529 = AND(142, 1146, 1157) +1530 = AND(106, 613, 1157) +1531 = AND(130, 1146, 625) +1532 = AND(131, 1146, 1157) +1533 = AND(95, 613, 1157) +1534 = AND(119, 1146, 625) +1535 = AND(141, 1146, 1157) +1536 = AND(105, 613, 1157) +1537 = AND(129, 1146, 625) +1538 = AND(140, 1146, 1157) +1539 = AND(104, 613, 1157) +1540 = AND(128, 1146, 625) +1541 = AND(139, 1146, 1157) +1542 = AND(103, 613, 1157) +1543 = AND(127, 1146, 625) +1544 = AND(19, 1173) +1545 = AND(4, 1173) +1546 = AND(20, 1173) +1547 = AND(5, 1173) +1548 = AND(21, 1178) +1549 = AND(22, 1178) +1550 = AND(23, 1178) +1551 = AND(6, 1178) +1552 = AND(24, 1178) +1553 = NAND(1395, 1185) +1557 = NAND(1396, 1397) +1561 = NAND(1398, 1399) +1564 = AND(25, 1200) +1565 = AND(32, 1200) +1566 = AND(26, 1200) +1567 = AND(33, 1200) +1568 = AND(27, 1205) +1569 = AND(34, 1205) +1570 = AND(35, 1205) +1571 = AND(28, 1205) +1572 = NOT(1251) +1573 = NOT(1254) +1574 = NOT(1257) +1575 = NOT(1260) +1576 = NOT(1263) +1577 = NOT(1266) +1578 = NAND(1422, 1423) +1581 = NOT(1216) +1582 = NAND(1426, 1427) +1585 = NAND(1424, 1425) +1588 = NAND(1440, 1441) +1591 = AND(1449, 1450) +1596 = OR(1451, 1452, 1453, 1064) +1600 = OR(1454, 1455, 1456, 1065) +1606 = OR(1457, 1458, 1459, 1066) +1612 = OR(1460, 1461, 1462, 1067) +1615 = OR(1463, 1464, 1465, 1068) +1619 = OR(1466, 1467, 1468, 1097) +1624 = OR(1469, 1470, 1471, 1098) +1628 = OR(1472, 1473, 1474, 1099) +1631 = OR(1475, 1476, 1477, 1100) +1634 = OR(1478, 1479, 1480, 1101) +1637 = OR(1481, 1482, 1483, 1124) +1642 = OR(1484, 1485, 1486, 1125) +1647 = OR(1487, 1488, 1489, 1126) +1651 = OR(1490, 1491, 1492, 1127) +1656 = OR(1493, 1494, 1495, 1128) +1676 = OR(1532, 1533, 1534, 1169) +1681 = OR(1535, 1536, 1537, 1170) +1686 = OR(1538, 1539, 1540, 1171) +1690 = OR(1541, 1542, 1543, 1172) +1708 = OR(1529, 1530, 1531, 1168) +1726 = BUFF(1591) +1770 = NOT(1502) +1773 = NOT(1506) +1776 = NOT(1513) +1777 = NOT(1516) +1778 = BUFF(1510) +1781 = BUFF(1510) +1784 = AND(1133, 1129, 1513) +1785 = AND(1499, 1496, 1516) +1795 = NOT(1553) +1798 = NOT(1557) +1801 = BUFF(1561) +1804 = BUFF(1561) +1807 = NOT(1588) +1808 = NOT(1578) +1809 = NAND(1578, 1581) +1810 = NOT(1582) +1811 = NOT(1585) +1813 = AND(1596, 241) +1814 = AND(1606, 241) +1815 = AND(1600, 241) +1816 = NOT(1642) +1817 = NOT(1647) +1818 = NOT(1637) +1819 = NOT(1624) +1820 = NOT(1619) +1821 = NOT(1615) +1822 = AND(496, 224, 36, 1591) +1823 = AND(496, 224, 1591, 486) +1824 = BUFF(1596) +1827 = NOT(1606) +1830 = AND(1600, 537) +1831 = AND(1606, 537) +1832 = AND(1619, 246) +1833 = NOT(1596) +1836 = NOT(1600) +1841 = NOT(1606) +1848 = BUFF(1612) +1852 = BUFF(1615) +1856 = BUFF(1619) +1863 = BUFF(1624) +1870 = BUFF(1628) +1875 = BUFF(1631) +1880 = BUFF(1634) +1885 = NAND(727, 1651) +1888 = NAND(730, 1656) +1891 = BUFF(1686) +1894 = AND(1637, 425) +1897 = NOT(1642) +1908 = AND(1496, 1133, 1776) +1909 = AND(1129, 1499, 1777) +1910 = AND(1600, 637) +1911 = AND(1606, 637) +1912 = AND(1612, 637) +1913 = AND(1615, 637) +1914 = AND(1619, 643) +1915 = AND(1624, 643) +1916 = AND(1628, 643) +1917 = AND(1631, 643) +1918 = AND(1634, 643) +1919 = NOT(1708) +1928 = AND(1676, 693) +1929 = AND(1681, 693) +1930 = AND(1686, 693) +1931 = AND(1690, 693) +1932 = AND(1637, 699) +1933 = AND(1642, 699) +1934 = AND(1647, 699) +1935 = AND(1651, 699) +1936 = BUFF(1600) +1939 = NAND(1216, 1808) +1940 = NAND(1585, 1810) +1941 = NAND(1582, 1811) +1942 = BUFF(1676) +1945 = BUFF(1686) +1948 = BUFF(1681) +1951 = BUFF(1637) +1954 = BUFF(1690) +1957 = BUFF(1647) +1960 = BUFF(1642) +1963 = BUFF(1656) +1966 = BUFF(1651) +1969 = OR(533, 1815) +1970 = NOT(1822) +1971 = NOT(1823) +2010 = BUFF(1848) +2012 = BUFF(1852) +2014 = BUFF(1856) +2016 = BUFF(1863) +2018 = BUFF(1870) +2020 = BUFF(1875) +2022 = BUFF(1880) +2028 = NOT(1778) +2029 = NOT(1781) +2030 = NOR(1908, 1784) +2031 = NOR(1909, 1785) +2032 = AND(1506, 1502, 1778) +2033 = AND(1773, 1770, 1781) +2034 = OR(1571, 1935) +2040 = NOT(1801) +2041 = NOT(1804) +2042 = AND(1557, 1553, 1801) +2043 = AND(1798, 1795, 1804) +2046 = NAND(1939, 1809) +2049 = NAND(1940, 1941) +2052 = OR(1544, 1910) +2055 = OR(1545, 1911) +2058 = OR(1546, 1912) +2061 = OR(1547, 1913) +2064 = OR(1548, 1914) +2067 = OR(1549, 1915) +2070 = OR(1550, 1916) +2073 = OR(1551, 1917) +2076 = OR(1552, 1918) +2079 = OR(1564, 1928) +2095 = OR(1565, 1929) +2098 = OR(1566, 1930) +2101 = OR(1567, 1931) +2104 = OR(1568, 1932) +2107 = OR(1569, 1933) +2110 = OR(1570, 1934) +2113 = AND(1897, 1894, 40) +2119 = NOT(1894) +2120 = NAND(408, 1827) +2125 = AND(1824, 537) +2126 = AND(1852, 246) +2127 = AND(1848, 537) +2128 = NOT(1848) +2135 = NOT(1852) +2141 = NOT(1863) +2144 = NOT(1870) +2147 = NOT(1875) +2150 = NOT(1880) +2153 = AND(727, 1885) +2154 = AND(1885, 1651) +2155 = AND(730, 1888) +2156 = AND(1888, 1656) +2157 = AND(1770, 1506, 2028) +2158 = AND(1502, 1773, 2029) +2171 = NOT(1942) +2172 = NAND(1942, 1919) +2173 = NOT(1945) +2174 = NOT(1948) +2175 = NOT(1951) +2176 = NOT(1954) +2177 = AND(1795, 1557, 2040) +2178 = AND(1553, 1798, 2041) +2185 = BUFF(1836) +2188 = BUFF(1833) +2191 = BUFF(1841) +2194 = NOT(1856) +2197 = NOT(1827) +2200 = NOT(1936) +2201 = BUFF(1836) +2204 = BUFF(1833) +2207 = BUFF(1841) +2210 = BUFF(1824) +2213 = BUFF(1841) +2216 = BUFF(1841) +2219 = NAND(2031, 2030) +2234 = NOT(1957) +2235 = NOT(1960) +2236 = NOT(1963) +2237 = NOT(1966) +2250 = AND(40, 1897, 2119) +2266 = OR(1831, 2126) +2269 = OR(2127, 1832) +2291 = OR(2153, 2154) +2294 = OR(2155, 2156) +2297 = NOR(2157, 2032) +2298 = NOR(2158, 2033) +2300 = NOT(2046) +2301 = NOT(2049) +2302 = NAND(2052, 1519) +2303 = NOT(2052) +2304 = NAND(2055, 1520) +2305 = NOT(2055) +2306 = NAND(2058, 1521) +2307 = NOT(2058) +2308 = NAND(2061, 1522) +2309 = NOT(2061) +2310 = NAND(2064, 1523) +2311 = NOT(2064) +2312 = NAND(2067, 1524) +2313 = NOT(2067) +2314 = NAND(2070, 1525) +2315 = NOT(2070) +2316 = NAND(2073, 1526) +2317 = NOT(2073) +2318 = NAND(2076, 1527) +2319 = NOT(2076) +2320 = NAND(2079, 1528) +2321 = NOT(2079) +2322 = NAND(1708, 2171) +2323 = NAND(1948, 2173) +2324 = NAND(1945, 2174) +2325 = NAND(1954, 2175) +2326 = NAND(1951, 2176) +2327 = NOR(2177, 2042) +2328 = NOR(2178, 2043) +2329 = NAND(2095, 1572) +2330 = NOT(2095) +2331 = NAND(2098, 1573) +2332 = NOT(2098) +2333 = NAND(2101, 1574) +2334 = NOT(2101) +2335 = NAND(2104, 1575) +2336 = NOT(2104) +2337 = NAND(2107, 1576) +2338 = NOT(2107) +2339 = NAND(2110, 1577) +2340 = NOT(2110) +2354 = NAND(1960, 2234) +2355 = NAND(1957, 2235) +2356 = NAND(1966, 2236) +2357 = NAND(1963, 2237) +2358 = AND(2120, 533) +2359 = NOT(2113) +2364 = NOT(2185) +2365 = NOT(2188) +2366 = NOT(2191) +2367 = NOT(2194) +2368 = BUFF(2120) +2372 = NOT(2201) +2373 = NOT(2204) +2374 = NOT(2207) +2375 = NOT(2210) +2376 = NOT(2213) +2377 = NOT(2113) +2382 = BUFF(2113) +2386 = AND(2120, 246) +2387 = BUFF(2266) +2388 = BUFF(2266) +2389 = BUFF(2269) +2390 = BUFF(2269) +2391 = BUFF(2113) +2395 = NOT(2113) +2400 = NAND(2219, 2300) +2403 = NOT(2216) +2406 = NOT(2219) +2407 = NAND(1219, 2303) +2408 = NAND(1222, 2305) +2409 = NAND(1225, 2307) +2410 = NAND(1228, 2309) +2411 = NAND(1231, 2311) +2412 = NAND(1234, 2313) +2413 = NAND(1237, 2315) +2414 = NAND(1240, 2317) +2415 = NAND(1243, 2319) +2416 = NAND(1246, 2321) +2417 = NAND(2322, 2172) +2421 = NAND(2323, 2324) +2425 = NAND(2325, 2326) +2428 = NAND(1251, 2330) +2429 = NAND(1254, 2332) +2430 = NAND(1257, 2334) +2431 = NAND(1260, 2336) +2432 = NAND(1263, 2338) +2433 = NAND(1266, 2340) +2434 = BUFF(2128) +2437 = BUFF(2135) +2440 = BUFF(2144) +2443 = BUFF(2141) +2446 = BUFF(2150) +2449 = BUFF(2147) +2452 = NOT(2197) +2453 = NAND(2197, 2200) +2454 = BUFF(2128) +2457 = BUFF(2144) +2460 = BUFF(2141) +2463 = BUFF(2150) +2466 = BUFF(2147) +2469 = NOT(2120) +2472 = BUFF(2128) +2475 = BUFF(2135) +2478 = BUFF(2128) +2481 = BUFF(2135) +2484 = NAND(2298, 2297) +2487 = NAND(2356, 2357) +2490 = NAND(2354, 2355) +2493 = NAND(2328, 2327) +2496 = OR(2358, 1814) +2503 = NAND(2188, 2364) +2504 = NAND(2185, 2365) +2510 = NAND(2204, 2372) +2511 = NAND(2201, 2373) +2521 = OR(1830, 2386) +2528 = NAND(2046, 2406) +2531 = NOT(2291) +2534 = NOT(2294) +2537 = BUFF(2250) +2540 = BUFF(2250) +2544 = NAND(2302, 2407) +2545 = NAND(2304, 2408) +2546 = NAND(2306, 2409) +2547 = NAND(2308, 2410) +2548 = NAND(2310, 2411) +2549 = NAND(2312, 2412) +2550 = NAND(2314, 2413) +2551 = NAND(2316, 2414) +2552 = NAND(2318, 2415) +2553 = NAND(2320, 2416) +2563 = NAND(2329, 2428) +2564 = NAND(2331, 2429) +2565 = NAND(2333, 2430) +2566 = NAND(2335, 2431) +2567 = NAND(2337, 2432) +2568 = NAND(2339, 2433) +2579 = NAND(1936, 2452) +2603 = BUFF(2359) +2607 = AND(1880, 2377) +2608 = AND(1676, 2377) +2609 = AND(1681, 2377) +2610 = AND(1891, 2377) +2611 = AND(1856, 2382) +2612 = AND(1863, 2382) +2613 = NAND(2503, 2504) +2617 = NOT(2434) +2618 = NAND(2434, 2366) +2619 = NAND(2437, 2367) +2620 = NOT(2437) +2621 = NOT(2368) +2624 = NAND(2510, 2511) +2628 = NOT(2454) +2629 = NAND(2454, 2374) +2630 = NOT(2472) +2631 = AND(1856, 2391) +2632 = AND(1863, 2391) +2633 = AND(1880, 2395) +2634 = AND(1676, 2395) +2635 = AND(1681, 2395) +2636 = AND(1891, 2395) +2638 = NOT(2382) +2643 = BUFF(2521) +2644 = BUFF(2521) +2645 = NOT(2475) +2646 = NOT(2391) +2652 = NAND(2528, 2400) +2655 = NOT(2478) +2656 = NOT(2481) +2659 = BUFF(2359) +2663 = NOT(2484) +2664 = NAND(2484, 2301) +2665 = NOT(2553) +2666 = NOT(2552) +2667 = NOT(2551) +2668 = NOT(2550) +2669 = NOT(2549) +2670 = NOT(2548) +2671 = NOT(2547) +2672 = NOT(2546) +2673 = NOT(2545) +2674 = NOT(2544) +2675 = NOT(2568) +2676 = NOT(2567) +2677 = NOT(2566) +2678 = NOT(2565) +2679 = NOT(2564) +2680 = NOT(2563) +2681 = NOT(2417) +2684 = NOT(2421) +2687 = BUFF(2425) +2690 = BUFF(2425) +2693 = NOT(2493) +2694 = NAND(2493, 1807) +2695 = NOT(2440) +2696 = NOT(2443) +2697 = NOT(2446) +2698 = NOT(2449) +2699 = NOT(2457) +2700 = NOT(2460) +2701 = NOT(2463) +2702 = NOT(2466) +2703 = NAND(2579, 2453) +2706 = NOT(2469) +2707 = NOT(2487) +2708 = NOT(2490) +2709 = AND(2294, 2534) +2710 = AND(2291, 2531) +2719 = NAND(2191, 2617) +2720 = NAND(2194, 2620) +2726 = NAND(2207, 2628) +2729 = BUFF(2537) +2738 = BUFF(2537) +2743 = NOT(2652) +2747 = NAND(2049, 2663) +2748 = AND(2665, 2666, 2667, 2668, 2669) +2749 = AND(2670, 2671, 2672, 2673, 2674) +2750 = AND(2034, 2675) +2751 = AND(2676, 2677, 2678, 2679, 2680) +2760 = NAND(1588, 2693) +2761 = BUFF(2540) +2766 = BUFF(2540) +2771 = NAND(2443, 2695) +2772 = NAND(2440, 2696) +2773 = NAND(2449, 2697) +2774 = NAND(2446, 2698) +2775 = NAND(2460, 2699) +2776 = NAND(2457, 2700) +2777 = NAND(2466, 2701) +2778 = NAND(2463, 2702) +2781 = NAND(2490, 2707) +2782 = NAND(2487, 2708) +2783 = OR(2709, 2534) +2784 = OR(2710, 2531) +2789 = AND(1856, 2638) +2790 = AND(1863, 2638) +2791 = AND(1870, 2638) +2792 = AND(1875, 2638) +2793 = NOT(2613) +2796 = NAND(2719, 2618) +2800 = NAND(2619, 2720) +2803 = NOT(2624) +2806 = NAND(2726, 2629) +2809 = AND(1856, 2646) +2810 = AND(1863, 2646) +2811 = AND(1870, 2646) +2812 = AND(1875, 2646) +2817 = AND(2743, 14) +2820 = BUFF(2603) +2826 = NAND(2747, 2664) +2829 = AND(2748, 2749) +2830 = AND(2750, 2751) +2831 = BUFF(2659) +2837 = NOT(2687) +2838 = NOT(2690) +2839 = AND(2421, 2417, 2687) +2840 = AND(2684, 2681, 2690) +2841 = NAND(2760, 2694) +2844 = BUFF(2603) +2854 = BUFF(2603) +2859 = BUFF(2659) +2869 = BUFF(2659) +2874 = NAND(2773, 2774) +2877 = NAND(2771, 2772) +2880 = NOT(2703) +2881 = NAND(2703, 2706) +2882 = NAND(2777, 2778) +2885 = NAND(2775, 2776) +2888 = NAND(2781, 2782) +2891 = NAND(2783, 2784) +2894 = AND(2607, 2729) +2895 = AND(2608, 2729) +2896 = AND(2609, 2729) +2897 = AND(2610, 2729) +2898 = OR(2789, 2611) +2899 = OR(2790, 2612) +2900 = AND(2791, 1037) +2901 = AND(2792, 1037) +2914 = OR(2809, 2631) +2915 = OR(2810, 2632) +2916 = AND(2811, 1070) +2917 = AND(2812, 1070) +2918 = AND(2633, 2738) +2919 = AND(2634, 2738) +2920 = AND(2635, 2738) +2921 = AND(2636, 2738) +2925 = BUFF(2817) +2931 = AND(2829, 2830, 1302) +2938 = AND(2681, 2421, 2837) +2939 = AND(2417, 2684, 2838) +2963 = NAND(2469, 2880) +2970 = NOT(2841) +2971 = NOT(2826) +2972 = NOT(2894) +2975 = NOT(2895) +2978 = NOT(2896) +2981 = NOT(2897) +2984 = AND(2898, 1037) +2985 = AND(2899, 1037) +2986 = NOT(2900) +2989 = NOT(2901) +2992 = NOT(2796) +2995 = BUFF(2800) +2998 = BUFF(2800) +3001 = BUFF(2806) +3004 = BUFF(2806) +3007 = AND(574, 2820) +3008 = AND(2914, 1070) +3009 = AND(2915, 1070) +3010 = NOT(2916) +3013 = NOT(2917) +3016 = NOT(2918) +3019 = NOT(2919) +3022 = NOT(2920) +3025 = NOT(2921) +3028 = NOT(2817) +3029 = AND(574, 2831) +3030 = NOT(2820) +3035 = AND(578, 2820) +3036 = AND(655, 2820) +3037 = AND(659, 2820) +3038 = BUFF(2931) +3039 = NOT(2831) +3044 = AND(578, 2831) +3045 = AND(655, 2831) +3046 = AND(659, 2831) +3047 = NOR(2938, 2839) +3048 = NOR(2939, 2840) +3049 = NOT(2888) +3050 = NOT(2844) +3053 = AND(663, 2844) +3054 = AND(667, 2844) +3055 = AND(671, 2844) +3056 = AND(675, 2844) +3057 = AND(679, 2854) +3058 = AND(683, 2854) +3059 = AND(687, 2854) +3060 = AND(705, 2854) +3061 = NOT(2859) +3064 = AND(663, 2859) +3065 = AND(667, 2859) +3066 = AND(671, 2859) +3067 = AND(675, 2859) +3068 = AND(679, 2869) +3069 = AND(683, 2869) +3070 = AND(687, 2869) +3071 = AND(705, 2869) +3072 = NOT(2874) +3073 = NOT(2877) +3074 = NOT(2882) +3075 = NOT(2885) +3076 = NAND(2881, 2963) +3079 = NOT(2931) +3088 = NOT(2984) +3091 = NOT(2985) +3110 = NOT(3008) +3113 = NOT(3009) +3137 = AND(3055, 1190) +3140 = AND(3056, 1190) +3143 = AND(3057, 2761) +3146 = AND(3058, 2761) +3149 = AND(3059, 2761) +3152 = AND(3060, 2761) +3157 = AND(3066, 1195) +3160 = AND(3067, 1195) +3163 = AND(3068, 2766) +3166 = AND(3069, 2766) +3169 = AND(3070, 2766) +3172 = AND(3071, 2766) +3175 = NAND(2877, 3072) +3176 = NAND(2874, 3073) +3177 = NAND(2885, 3074) +3178 = NAND(2882, 3075) +3180 = NAND(3048, 3047) +3187 = NOT(2995) +3188 = NOT(2998) +3189 = NOT(3001) +3190 = NOT(3004) +3191 = AND(2796, 2613, 2995) +3192 = AND(2992, 2793, 2998) +3193 = AND(2624, 2368, 3001) +3194 = AND(2803, 2621, 3004) +3195 = NAND(3076, 2375) +3196 = NOT(3076) +3197 = AND(687, 3030) +3208 = AND(687, 3039) +3215 = AND(705, 3030) +3216 = AND(711, 3030) +3217 = AND(715, 3030) +3218 = AND(705, 3039) +3219 = AND(711, 3039) +3220 = AND(715, 3039) +3222 = AND(719, 3050) +3223 = AND(723, 3050) +3230 = AND(719, 3061) +3231 = AND(723, 3061) +3238 = NAND(3175, 3176) +3241 = NAND(3177, 3178) +3244 = BUFF(2981) +3247 = BUFF(2978) +3250 = BUFF(2975) +3253 = BUFF(2972) +3256 = BUFF(2989) +3259 = BUFF(2986) +3262 = BUFF(3025) +3265 = BUFF(3022) +3268 = BUFF(3019) +3271 = BUFF(3016) +3274 = BUFF(3013) +3277 = BUFF(3010) +3281 = AND(2793, 2796, 3187) +3282 = AND(2613, 2992, 3188) +3283 = AND(2621, 2624, 3189) +3284 = AND(2368, 2803, 3190) +3286 = NAND(2210, 3196) +3288 = OR(3197, 3007) +3289 = NAND(3180, 3049) +3291 = AND(3152, 2981) +3293 = AND(3149, 2978) +3295 = AND(3146, 2975) +3296 = AND(2972, 3143) +3299 = AND(3140, 2989) +3301 = AND(3137, 2986) +3302 = OR(3208, 3029) +3304 = AND(3172, 3025) +3306 = AND(3169, 3022) +3308 = AND(3166, 3019) +3309 = AND(3016, 3163) +3312 = AND(3160, 3013) +3314 = AND(3157, 3010) +3315 = OR(3215, 3035) +3318 = OR(3216, 3036) +3321 = OR(3217, 3037) +3324 = OR(3218, 3044) +3327 = OR(3219, 3045) +3330 = OR(3220, 3046) +3333 = NOT(3180) +3334 = OR(3222, 3053) +3335 = OR(3223, 3054) +3336 = OR(3230, 3064) +3337 = OR(3231, 3065) +3340 = BUFF(3152) +3344 = BUFF(3149) +3348 = BUFF(3146) +3352 = BUFF(3143) +3356 = BUFF(3140) +3360 = BUFF(3137) +3364 = BUFF(3091) +3367 = BUFF(3088) +3370 = BUFF(3172) +3374 = BUFF(3169) +3378 = BUFF(3166) +3382 = BUFF(3163) +3386 = BUFF(3160) +3390 = BUFF(3157) +3394 = BUFF(3113) +3397 = BUFF(3110) +3400 = NAND(3195, 3286) +3401 = NOR(3281, 3191) +3402 = NOR(3282, 3192) +3403 = NOR(3283, 3193) +3404 = NOR(3284, 3194) +3405 = NOT(3238) +3406 = NOT(3241) +3409 = AND(3288, 1836) +3410 = NAND(2888, 3333) +3412 = NOT(3244) +3414 = NOT(3247) +3416 = NOT(3250) +3418 = NOT(3253) +3420 = NOT(3256) +3422 = NOT(3259) +3428 = AND(3302, 1836) +3430 = NOT(3262) +3432 = NOT(3265) +3434 = NOT(3268) +3436 = NOT(3271) +3438 = NOT(3274) +3440 = NOT(3277) +3450 = AND(3334, 1190) +3453 = AND(3335, 1190) +3456 = AND(3336, 1195) +3459 = AND(3337, 1195) +3478 = AND(3400, 533) +3479 = AND(3318, 2128) +3480 = AND(3315, 1841) +3481 = NAND(3410, 3289) +3482 = NOT(3340) +3483 = NAND(3340, 3412) +3484 = NOT(3344) +3485 = NAND(3344, 3414) +3486 = NOT(3348) +3487 = NAND(3348, 3416) +3488 = NOT(3352) +3489 = NAND(3352, 3418) +3490 = NOT(3356) +3491 = NAND(3356, 3420) +3492 = NOT(3360) +3493 = NAND(3360, 3422) +3494 = NOT(3364) +3496 = NOT(3367) +3498 = AND(3321, 2135) +3499 = AND(3327, 2128) +3500 = AND(3324, 1841) +3501 = NOT(3370) +3502 = NAND(3370, 3430) +3503 = NOT(3374) +3504 = NAND(3374, 3432) +3505 = NOT(3378) +3506 = NAND(3378, 3434) +3507 = NOT(3382) +3508 = NAND(3382, 3436) +3509 = NOT(3386) +3510 = NAND(3386, 3438) +3511 = NOT(3390) +3512 = NAND(3390, 3440) +3513 = NOT(3394) +3515 = NOT(3397) +3517 = AND(3330, 2135) +3522 = NAND(3402, 3401) +3525 = NAND(3404, 3403) +3528 = BUFF(3318) +3531 = BUFF(3315) +3534 = BUFF(3321) +3537 = BUFF(3327) +3540 = BUFF(3324) +3543 = BUFF(3330) +3546 = OR(3478, 1813) +3551 = NOT(3481) +3552 = NAND(3244, 3482) +3553 = NAND(3247, 3484) +3554 = NAND(3250, 3486) +3555 = NAND(3253, 3488) +3556 = NAND(3256, 3490) +3557 = NAND(3259, 3492) +3558 = AND(3453, 3091) +3559 = AND(3450, 3088) +3563 = NAND(3262, 3501) +3564 = NAND(3265, 3503) +3565 = NAND(3268, 3505) +3566 = NAND(3271, 3507) +3567 = NAND(3274, 3509) +3568 = NAND(3277, 3511) +3569 = AND(3459, 3113) +3570 = AND(3456, 3110) +3576 = BUFF(3453) +3579 = BUFF(3450) +3585 = BUFF(3459) +3588 = BUFF(3456) +3592 = NOT(3522) +3593 = NAND(3522, 3405) +3594 = NOT(3525) +3595 = NAND(3525, 3406) +3596 = NOT(3528) +3597 = NAND(3528, 2630) +3598 = NAND(3531, 2376) +3599 = NOT(3531) +3600 = AND(3551, 800) +3603 = NAND(3552, 3483) +3608 = NAND(3553, 3485) +3612 = NAND(3554, 3487) +3615 = NAND(3555, 3489) +3616 = NAND(3556, 3491) +3622 = NAND(3557, 3493) +3629 = NOT(3534) +3630 = NAND(3534, 2645) +3631 = NOT(3537) +3632 = NAND(3537, 2655) +3633 = NAND(3540, 2403) +3634 = NOT(3540) +3635 = NAND(3563, 3502) +3640 = NAND(3564, 3504) +3644 = NAND(3565, 3506) +3647 = NAND(3566, 3508) +3648 = NAND(3567, 3510) +3654 = NAND(3568, 3512) +3661 = NOT(3543) +3662 = NAND(3543, 2656) +3667 = NAND(3238, 3592) +3668 = NAND(3241, 3594) +3669 = NAND(2472, 3596) +3670 = NAND(2213, 3599) +3671 = BUFF(3600) +3691 = NOT(3576) +3692 = NAND(3576, 3494) +3693 = NOT(3579) +3694 = NAND(3579, 3496) +3695 = NAND(2475, 3629) +3696 = NAND(2478, 3631) +3697 = NAND(2216, 3634) +3716 = NOT(3585) +3717 = NAND(3585, 3513) +3718 = NOT(3588) +3719 = NAND(3588, 3515) +3720 = NAND(2481, 3661) +3721 = NAND(3667, 3593) +3722 = NAND(3668, 3595) +3723 = NAND(3669, 3597) +3726 = NAND(3670, 3598) +3727 = NOT(3600) +3728 = NAND(3364, 3691) +3729 = NAND(3367, 3693) +3730 = NAND(3695, 3630) +3731 = AND(3608, 3615, 3612, 3603) +3732 = AND(3603, 3293) +3733 = AND(3608, 3603, 3295) +3734 = AND(3612, 3603, 3296, 3608) +3735 = AND(3616, 3301) +3736 = AND(3622, 3616, 3558) +3737 = NAND(3696, 3632) +3740 = NAND(3697, 3633) +3741 = NAND(3394, 3716) +3742 = NAND(3397, 3718) +3743 = NAND(3720, 3662) +3744 = AND(3640, 3647, 3644, 3635) +3745 = AND(3635, 3306) +3746 = AND(3640, 3635, 3308) +3747 = AND(3644, 3635, 3309, 3640) +3748 = AND(3648, 3314) +3749 = AND(3654, 3648, 3569) +3750 = NOT(3721) +3753 = AND(3722, 246) +3754 = NAND(3728, 3692) +3758 = NAND(3729, 3694) +3761 = NOT(3731) +3762 = OR(3291, 3732, 3733, 3734) +3767 = NAND(3741, 3717) +3771 = NAND(3742, 3719) +3774 = NOT(3744) +3775 = OR(3304, 3745, 3746, 3747) +3778 = AND(3723, 3480) +3779 = AND(3726, 3723, 3409) +3780 = OR(2125, 3753) +3790 = AND(3750, 800) +3793 = AND(3737, 3500) +3794 = AND(3740, 3737, 3428) +3802 = OR(3479, 3778, 3779) +3803 = BUFF(3780) +3804 = BUFF(3780) +3805 = NOT(3762) +3806 = AND(3622, 3730, 3754, 3616, 3758) +3807 = AND(3754, 3616, 3559, 3622) +3808 = AND(3758, 3754, 3616, 3498, 3622) +3809 = BUFF(3790) +3811 = OR(3499, 3793, 3794) +3812 = NOT(3775) +3813 = AND(3654, 3743, 3767, 3648, 3771) +3814 = AND(3767, 3648, 3570, 3654) +3815 = AND(3771, 3767, 3648, 3517, 3654) +3816 = OR(3299, 3735, 3736, 3807, 3808) +3817 = AND(3806, 3802) +3818 = NAND(3805, 3761) +3819 = NOT(3790) +3820 = OR(3312, 3748, 3749, 3814, 3815) +3821 = AND(3813, 3811) +3822 = NAND(3812, 3774) +3823 = OR(3816, 3817) +3826 = AND(3727, 3819, 2841) +3827 = OR(3820, 3821) +3834 = NOT(3823) +3835 = AND(3818, 3823) +3836 = NOT(3827) +3837 = AND(3822, 3827) +3838 = AND(3762, 3834) +3839 = AND(3775, 3836) +3840 = OR(3838, 3835) +3843 = OR(3839, 3837) +3851 = BUFF(3843) +3852 = NAND(3843, 3840) +3857 = AND(3843, 3852) +3858 = AND(3852, 3840) +3859 = OR(3857, 3858) +3864 = NOT(3859) +3869 = AND(3859, 3864) +3870 = OR(3869, 3864) +3875 = NOT(3870) +3876 = AND(2826, 3028, 3870) +3877 = AND(3826, 3876, 1591) +3881 = BUFF(3877) +3882 = NOT(3877) \ No newline at end of file diff --git a/c432.bench b/c432.bench new file mode 100644 index 0000000000..13f68c5bbf --- /dev/null +++ b/c432.bench @@ -0,0 +1,211 @@ +# c432 +# 36 inputs +# 7 outputs +# 40 inverters +# 120 gates ( 4 ANDs + 119 NANDs + 19 NORs + 18 XORs ) + +INPUT(1) +INPUT(4) +INPUT(8) +INPUT(11) +INPUT(14) +INPUT(17) +INPUT(21) +INPUT(24) +INPUT(27) +INPUT(30) +INPUT(34) +INPUT(37) +INPUT(40) +INPUT(43) +INPUT(47) +INPUT(50) +INPUT(53) +INPUT(56) +INPUT(60) +INPUT(63) +INPUT(66) +INPUT(69) +INPUT(73) +INPUT(76) +INPUT(79) +INPUT(82) +INPUT(86) +INPUT(89) +INPUT(92) +INPUT(95) +INPUT(99) +INPUT(102) +INPUT(105) +INPUT(108) +INPUT(112) +INPUT(115) + +OUTPUT(223) +OUTPUT(329) +OUTPUT(370) +OUTPUT(421) +OUTPUT(430) +OUTPUT(431) +OUTPUT(432) + +118 = NOT(1) +119 = NOT(4) +122 = NOT(11) +123 = NOT(17) +126 = NOT(24) +127 = NOT(30) +130 = NOT(37) +131 = NOT(43) +134 = NOT(50) +135 = NOT(56) +138 = NOT(63) +139 = NOT(69) +142 = NOT(76) +143 = NOT(82) +146 = NOT(89) +147 = NOT(95) +150 = NOT(102) +151 = NOT(108) +154 = NAND(118, 4) +157 = NOR(8, 119) +158 = NOR(14, 119) +159 = NAND(122, 17) +162 = NAND(126, 30) +165 = NAND(130, 43) +168 = NAND(134, 56) +171 = NAND(138, 69) +174 = NAND(142, 82) +177 = NAND(146, 95) +180 = NAND(150, 108) +183 = NOR(21, 123) +184 = NOR(27, 123) +185 = NOR(34, 127) +186 = NOR(40, 127) +187 = NOR(47, 131) +188 = NOR(53, 131) +189 = NOR(60, 135) +190 = NOR(66, 135) +191 = NOR(73, 139) +192 = NOR(79, 139) +193 = NOR(86, 143) +194 = NOR(92, 143) +195 = NOR(99, 147) +196 = NOR(105, 147) +197 = NOR(112, 151) +198 = NOR(115, 151) +199 = AND(154, 159, 162, 165, 168, 171, 174, 177, 180) +203 = NOT(199) +213 = NOT(199) +223 = NOT(199) +224 = XOR(203, 154) +227 = XOR(203, 159) +230 = XOR(203, 162) +233 = XOR(203, 165) +236 = XOR(203, 168) +239 = XOR(203, 171) +242 = NAND(1, 213) +243 = XOR(203, 174) +246 = NAND(213, 11) +247 = XOR(203, 177) +250 = NAND(213, 24) +251 = XOR(203, 180) +254 = NAND(213, 37) +255 = NAND(213, 50) +256 = NAND(213, 63) +257 = NAND(213, 76) +258 = NAND(213, 89) +259 = NAND(213, 102) +260 = NAND(224, 157) +263 = NAND(224, 158) +264 = NAND(227, 183) +267 = NAND(230, 185) +270 = NAND(233, 187) +273 = NAND(236, 189) +276 = NAND(239, 191) +279 = NAND(243, 193) +282 = NAND(247, 195) +285 = NAND(251, 197) +288 = NAND(227, 184) +289 = NAND(230, 186) +290 = NAND(233, 188) +291 = NAND(236, 190) +292 = NAND(239, 192) +293 = NAND(243, 194) +294 = NAND(247, 196) +295 = NAND(251, 198) +296 = AND(260, 264, 267, 270, 273, 276, 279, 282, 285) +300 = NOT(263) +301 = NOT(288) +302 = NOT(289) +303 = NOT(290) +304 = NOT(291) +305 = NOT(292) +306 = NOT(293) +307 = NOT(294) +308 = NOT(295) +309 = NOT(296) +319 = NOT(296) +329 = NOT(296) +330 = XOR(309, 260) +331 = XOR(309, 264) +332 = XOR(309, 267) +333 = XOR(309, 270) +334 = NAND(8, 319) +335 = XOR(309, 273) +336 = NAND(319, 21) +337 = XOR(309, 276) +338 = NAND(319, 34) +339 = XOR(309, 279) +340 = NAND(319, 47) +341 = XOR(309, 282) +342 = NAND(319, 60) +343 = XOR(309, 285) +344 = NAND(319, 73) +345 = NAND(319, 86) +346 = NAND(319, 99) +347 = NAND(319, 112) +348 = NAND(330, 300) +349 = NAND(331, 301) +350 = NAND(332, 302) +351 = NAND(333, 303) +352 = NAND(335, 304) +353 = NAND(337, 305) +354 = NAND(339, 306) +355 = NAND(341, 307) +356 = NAND(343, 308) +357 = AND(348, 349, 350, 351, 352, 353, 354, 355, 356) +360 = NOT(357) +370 = NOT(357) +371 = NAND(14, 360) +372 = NAND(360, 27) +373 = NAND(360, 40) +374 = NAND(360, 53) +375 = NAND(360, 66) +376 = NAND(360, 79) +377 = NAND(360, 92) +378 = NAND(360, 105) +379 = NAND(360, 115) +380 = NAND(4, 242, 334, 371) +381 = NAND(246, 336, 372, 17) +386 = NAND(250, 338, 373, 30) +393 = NAND(254, 340, 374, 43) +399 = NAND(255, 342, 375, 56) +404 = NAND(256, 344, 376, 69) +407 = NAND(257, 345, 377, 82) +411 = NAND(258, 346, 378, 95) +414 = NAND(259, 347, 379, 108) +415 = NOT(380) +416 = AND(381, 386, 393, 399, 404, 407, 411, 414) +417 = NOT(393) +418 = NOT(404) +419 = NOT(407) +420 = NOT(411) +421 = NOR(415, 416) +422 = NAND(386, 417) +425 = NAND(386, 393, 418, 399) +428 = NAND(399, 393, 419) +429 = NAND(386, 393, 407, 420) +430 = NAND(381, 386, 422, 399) +431 = NAND(381, 386, 425, 428) +432 = NAND(381, 422, 425, 429) \ No newline at end of file diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 4bd96302e8..b8fd48e5c5 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1113,7 +1113,8 @@ extern ABC_DLL void Abc_NtkClearFaults( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ); -extern ABC_DLL void Abc_NtkGenerateTDFaultList( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ); + diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 8573e45b45..592de18bd6 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2,6 +2,8 @@ #include #include "misc/util/abc_global.h" + + ABC_NAMESPACE_IMPL_START //////////////////////////////////////////////////////////////////////// @@ -11,7 +13,6 @@ ABC_NAMESPACE_IMPL_START //////////////////////////////////////////////////////////////////////// /// FUNCTION DEFINITIONS /// //////////////////////////////////////////////////////////////////////// - /**Function************************************************************* Synopsis [Allocates a new fault.] @@ -160,25 +161,66 @@ void Abc_NtkClearFaults( Abc_Ntk_t * pNtk ) ***********************************************************************/ void Abc_NtkGenerateFaultList( Abc_Ntk_t * pNtk ) { - Abc_Obj_t * pObj; + Abc_Obj_t * pObj, * pFanin; int i, k; - // Clear existing faults + Abc_NtkClearFaults( pNtk ); - // Add SA0 and SA1 faults for each node + + /*-------------------------------------------------------------- + * Step 1. Add SA0 / SA1 on the *source* side of every wire. + * – Primary‑inputs (PIs) drive nets. + * – Internal logic nodes drive nets. + *--------------------------------------------------------------*/ + /* Primary inputs */ + Abc_NtkForEachPi( pNtk, pObj, i ) + { + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ) ); + } + + /* Internal nodes */ Abc_NtkForEachNode( pNtk, pObj, i ) { - // Add gate output faults Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ) ); Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ) ); - // Add gate input faults - for ( k = 0; k < Abc_ObjFaninNum(pObj); k++ ) + } + + /*-------------------------------------------------------------- + * Step 2. Add SA0 / SA1 on *fan‑out branches* (GI faults) + * – Only for nets whose driver has multiple fan‑outs. + * – This guarantees each physical wire is represented + * by exactly one (SA0, SA1) pair. + *--------------------------------------------------------------*/ + /* Fan‑outs of internal nodes */ + Abc_NtkForEachNode( pNtk, pObj, i ) + { + Abc_ObjForEachFanin( pObj, pFanin, k ) + { + if ( Abc_ObjFanoutNum( pFanin ) > 1 ) + { + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GI, k ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GI, k ) ); + } + } + } + + /* Fan‑outs that feed combinational outputs (COs) directly */ + Abc_NtkForEachCo( pNtk, pObj, i ) + { + Abc_ObjForEachFanin( pObj, pFanin, k ) { - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GI, k ) ); - Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GI, k ) ); + if ( Abc_ObjFanoutNum( pFanin ) > 1 ) + { + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GI, k ) ); + Abc_NtkAddFault( pNtk, Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GI, k ) ); + } } } + + } + /**Function************************************************************* Synopsis [Generates checkpoint fault list for the network.] @@ -253,6 +295,8 @@ void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ) } } + + // Clean up Vec_PtrFree( vCheckpoints ); } @@ -272,399 +316,411 @@ void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ) ***********************************************************************/ -// Helper structure for fault analysis -typedef struct FaultInfo_t_ { - Abc_Fault_t * pFault; - int nGroupId; // equivalence group ID - int fDominated; // is this fault dominated? - int fRepresentative; // is this the representative of its group? - Vec_Ptr_t * vDominates; // faults that this fault dominates -} FaultInfo_t; - -// Check if two faults are equivalent -static int Abc_FaultsAreEquivalent( Abc_Obj_t * pNode, Abc_Fault_t * pFault1, Abc_Fault_t * pFault2 ) + +void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ) { - char * pSop; - int nVars; + Abc_NtkGenerateCheckpointFaultList( pNtk ); + +} + + +/**Function************************************************************* + + Synopsis [Helper function to determine gate type from SOP.] + + Description [Returns gate type based on SOP analysis] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static int Abc_SopGetGateType( char * pSop ) +{ + int nCubes, nLits, nVars; - // Must be on same node - if ( pFault1->pNode != pFault2->pNode ) - return 0; + if ( !pSop ) + return -1; - // For single-input gates (buffer/inverter) - if ( Abc_ObjFaninNum(pNode) == 1 && Abc_ObjIsNode(pNode) ) + nVars = Abc_SopGetVarNum( pSop ); + nCubes = Abc_SopGetCubeNum( pSop ); + nLits = Abc_SopGetLitNum( pSop ); + + // Check for constant functions + if ( Abc_SopIsConst0(pSop) ) + return -1; + if ( Abc_SopIsConst1(pSop) ) + return -1; + + // Check for buffer/inverter + if ( nVars == 1 && nCubes == 1 ) + { + if ( pSop[0] == '1' && pSop[2] == '1' ) + return 1; // BUF + if ( pSop[0] == '1' && pSop[2] == '0' ) + return 2; // NOT + if ( pSop[0] == '0' && pSop[2] == '1' ) + return 2; // NOT + if ( pSop[0] == '0' && pSop[2] == '0' ) + return 1; // BUF + } + + // Check for AND gate (all variables must be 1 in single cube) + if ( nCubes == 1 && nLits == nVars ) + { + if ( pSop[nVars+1] == '1' ) + return 3; // AND + else + return 4; // NAND + } + + // Check for OR gate (each cube has exactly one literal) + if ( nCubes == nVars && nLits == nVars ) { - if ( (pFault1->Io == ABC_FAULT_GI && pFault1->Index == 0 && pFault2->Io == ABC_FAULT_GO) || - (pFault1->Io == ABC_FAULT_GO && pFault2->Io == ABC_FAULT_GI && pFault2->Index == 0) ) + if ( pSop[nVars+1] == '1' ) + return 5; // OR + else + return 6; // NOR + } + + // Check for XOR/XNOR (2 variables, 2 cubes) + if ( nVars == 2 && nCubes == 2 ) + { + // XOR has pattern: 01 1\n10 1\n or 10 1\n01 1\n + // XNOR has pattern: 00 1\n11 1\n or 11 1\n00 1\n + if ( (pSop[0] == '0' && pSop[1] == '1' && pSop[nVars+3] == '1' && pSop[nVars+4] == '0') || + (pSop[0] == '1' && pSop[1] == '0' && pSop[nVars+3] == '0' && pSop[nVars+4] == '1') ) { - pSop = (char *)pNode->pData; - if ( !pSop ) - return 0; - - nVars = Abc_SopGetVarNum(pSop); - if ( nVars != 1 ) - return 0; - - // Check if it's a buffer (F = A) or inverter (F = A') - if ( pSop[0] == '1' ) // Buffer: positive literal - { - return pFault1->Type == pFault2->Type; - } - else if ( pSop[0] == '0' ) // Inverter: negative literal - { - return pFault1->Type != pFault2->Type; - } + if ( pSop[nVars+1] == '1' ) + return 7; // XOR + else + return 8; // XNOR + } + if ( (pSop[0] == '0' && pSop[1] == '0' && pSop[nVars+3] == '1' && pSop[nVars+4] == '1') || + (pSop[0] == '1' && pSop[1] == '1' && pSop[nVars+3] == '0' && pSop[nVars+4] == '0') ) + { + if ( pSop[nVars+1] == '1' ) + return 8; // XNOR (EQV) + else + return 7; // XOR } } - // For fanout-free gates (single fanout), certain input combinations may be equivalent - // This requires more complex analysis based on gate function - // For now, we handle only the simple buffer/inverter case + // For complex functions, check if it's XOR/XNOR type + if ( Abc_SopIsExorType(pSop) ) + return 7; // XOR - return 0; + return -1; // Unknown type } -// Check if fault1 dominates fault2 -static int Abc_FaultDominates( Abc_Obj_t * pNode, Abc_Fault_t * pFault1, Abc_Fault_t * pFault2 ) +/**Function************************************************************* + + Synopsis [Generates collapsed fault list using equivalence and dominance analysis.] + + Description [Implements fault collapsing by replicating the logic from generate_fault_list] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) { + Abc_Obj_t * pObj, * pFanin, * pFanout; + Abc_Fault_t * pFault, * pFaultCur, * pFaultPrev; + Vec_Int_t * vNumEqvSa0, * vNumEqvSa1; char * pSop; - int nCubes, nVars; - int isComplement; + int i, j, k, nFaults = 0; + int gateType; + int nTotalGateFaults = 0; - // Can't dominate if they're on different nodes - if ( pFault1->pNode != pFault2->pNode ) - return 0; - - // Same fault can't dominate itself - if ( pFault1->Type == pFault2->Type && pFault1->Io == pFault2->Io && pFault1->Index == pFault2->Index ) - return 0; - - // Get gate type - if ( !Abc_ObjIsNode(pNode) ) - return 0; - - pSop = (char *)pNode->pData; - if ( !pSop ) - return 0; - - nCubes = Abc_SopGetCubeNum(pSop); - nVars = Abc_SopGetVarNum(pSop); - isComplement = Abc_SopIsComplement(pSop); + // Clear existing faults + Abc_NtkClearFaults( pNtk ); - // Single variable gates (buffer/inverter) - if ( nVars == 1 ) - { - // These are handled by equivalence, not dominance - return 0; - } + // Create vectors to track equivalent fault counts for each object + vNumEqvSa0 = Vec_IntStart( Abc_NtkObjNumMax(pNtk) ); + vNumEqvSa1 = Vec_IntStart( Abc_NtkObjNumMax(pNtk) ); - // Two-input gates - if ( nVars == 2 ) + // Process all nodes and PIs (but NOT POs - they don't generate GO faults) + // This mimics the original C++ sort_wlist traversal over wires + Abc_NtkForEachObj( pNtk, pObj, i ) { - // AND gate: F = AB (nCubes = 1, all literals positive) - if ( nCubes == 1 && !isComplement ) + // Skip objects that don't generate GO faults + if ( !Abc_ObjIsNode(pObj) && !Abc_ObjIsPi(pObj) ) + continue; + + // Get gate type + gateType = -1; + if ( Abc_ObjIsPi(pObj) ) { - // For AND: output SA0 dominates all input SA0 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) - return 1; - - // For AND: any input SA1 dominates output SA1 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) - return 1; + gateType = 0; // INPUT } - // NAND gate: F = (AB)' (nCubes = 1, complement) - else if ( nCubes == 1 && isComplement ) + else if ( Abc_ObjIsNode(pObj) ) { - // For NAND: output SA1 dominates all input SA0 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) - return 1; - - // For NAND: any input SA1 dominates output SA0 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) - return 1; + pSop = (char *)pObj->pData; + if ( pSop ) + gateType = Abc_SopGetGateType( pSop ); } - // OR gate: F = A + B (nCubes = 2, each with one literal) - else if ( nCubes == 2 && !isComplement ) + + // Create GO SA0 fault + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ); + pFault->nEqvFaults = 1; // The fault itself + + // Add equivalent faults based on gate type + switch ( gateType ) { - // For OR: output SA1 dominates all input SA1 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) - return 1; + case 3: // AND + case 1: // BUF + // For AND/BUF: GO SA0 is equivalent to any GI SA0 + Abc_ObjForEachFanin( pObj, pFanin, k ) + { + pFault->nEqvFaults += Vec_IntEntry( vNumEqvSa0, Abc_ObjId(pFanin) ); + } + break; - // For OR: any input SA0 dominates output SA0 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) - return 1; + case 6: // NOR + case 2: // NOT + // For NOR/NOT: GO SA0 is equivalent to any GI SA1 + Abc_ObjForEachFanin( pObj, pFanin, k ) + { + pFault->nEqvFaults += Vec_IntEntry( vNumEqvSa1, Abc_ObjId(pFanin) ); + } + break; + + case 0: // INPUT + case 5: // OR + case 4: // NAND + case 7: // XOR + case 8: // EQV (XNOR) + default: + // No equivalence for these types + break; } - // NOR gate: F = (A + B)' (nCubes = 2, complement) - else if ( nCubes == 2 && isComplement ) + + // Check if this fault should be added (representative fault conditions) + int shouldAdd = 0; + + if ( Abc_ObjFanoutNum(pObj) > 1 ) { - // For NOR: output SA0 dominates all input SA1 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) - return 1; - - // For NOR: any input SA0 dominates output SA1 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) - return 1; + // Fanout stem - always add + shouldAdd = 1; } - } - - // Multi-input AND/NAND gates - if ( nCubes == 1 ) - { - if ( !isComplement ) // AND gate + else if ( Abc_ObjFanoutNum(pObj) == 1 ) { - // Output SA0 dominates all input SA0 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) - return 1; - // Any input SA1 dominates output SA1 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) - return 1; + pFanout = Abc_ObjFanout0(pObj); + if ( Abc_ObjIsPo(pFanout) ) + { + // Wire feeds OUTPUT (dummy PO gate) - always add + shouldAdd = 1; + } + else if ( Abc_ObjIsNode(pFanout) ) + { + pSop = (char *)pFanout->pData; + if ( pSop ) + { + int fanoutType = Abc_SopGetGateType( pSop ); + // Check original conditions: EQV, OR, NOR, XOR, OUTPUT + if ( fanoutType == 5 || fanoutType == 6 || fanoutType == 7 || fanoutType == 8 ) + shouldAdd = 1; + } + } } - else // NAND gate + + if ( shouldAdd ) { - // Output SA1 dominates all input SA0 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA0 ) - return 1; - // Any input SA1 dominates output SA0 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) - return 1; + nTotalGateFaults += pFault->nEqvFaults; + Abc_NtkAddFault( pNtk, pFault ); } - } - - // Multi-input OR/NOR gates (each variable appears in separate cube) - if ( nCubes == nVars ) - { - // Check if this is really an OR/NOR structure - int isOr = 1; - for ( int i = 0; i < nCubes && isOr; i++ ) + else { - char * pCube = pSop + i * (nVars + 3); - int litCount = 0; - for ( int j = 0; j < nVars; j++ ) - { - if ( pCube[j] != '-' ) - litCount++; - } - if ( litCount != 1 ) - isOr = 0; + // Store equivalent fault count for later use + Vec_IntWriteEntry( vNumEqvSa0, Abc_ObjId(pObj), pFault->nEqvFaults ); + Abc_FaultFree( pFault ); + } + + // Create GO SA1 fault + pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ); + pFault->nEqvFaults = 1; + + // Add equivalent faults based on gate type + switch ( gateType ) + { + case 5: // OR + case 1: // BUF + // For OR/BUF: GO SA1 is equivalent to any GI SA1 + Abc_ObjForEachFanin( pObj, pFanin, k ) + { + pFault->nEqvFaults += Vec_IntEntry( vNumEqvSa1, Abc_ObjId(pFanin) ); + } + break; + + case 4: // NAND + case 2: // NOT + // For NAND/NOT: GO SA1 is equivalent to any GI SA0 + Abc_ObjForEachFanin( pObj, pFanin, k ) + { + pFault->nEqvFaults += Vec_IntEntry( vNumEqvSa0, Abc_ObjId(pFanin) ); + } + break; + + case 0: // INPUT + case 3: // AND + case 6: // NOR + case 7: // XOR + case 8: // EQV (XNOR) + default: + // No equivalence for these types + break; } - if ( isOr ) + // Check if this fault should be added + shouldAdd = 0; + + if ( Abc_ObjFanoutNum(pObj) > 1 ) + { + shouldAdd = 1; + } + else if ( Abc_ObjFanoutNum(pObj) == 1 ) { - if ( !isComplement ) // OR gate + pFanout = Abc_ObjFanout0(pObj); + if ( Abc_ObjIsPo(pFanout) ) { - // Output SA1 dominates all input SA1 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA1 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) - return 1; - // Any input SA0 dominates output SA0 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA0 ) - return 1; + // Wire feeds OUTPUT - always add + shouldAdd = 1; } - else // NOR gate + else if ( Abc_ObjIsNode(pFanout) ) { - // Output SA0 dominates all input SA1 - if ( pFault1->Io == ABC_FAULT_GO && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GI && pFault2->Type == ABC_FAULT_SA1 ) - return 1; - // Any input SA0 dominates output SA1 - if ( pFault1->Io == ABC_FAULT_GI && pFault1->Type == ABC_FAULT_SA0 && - pFault2->Io == ABC_FAULT_GO && pFault2->Type == ABC_FAULT_SA1 ) - return 1; + pSop = (char *)pFanout->pData; + if ( pSop ) + { + int fanoutType = Abc_SopGetGateType( pSop ); + // Check original conditions: EQV, AND, NAND, XOR, OUTPUT + if ( fanoutType == 3 || fanoutType == 4 || fanoutType == 7 || fanoutType == 8 ) + shouldAdd = 1; + } } } - } - - return 0; -} - -void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) -{ - Abc_Obj_t * pObj; - Abc_Fault_t * pFault, * pFault2; - FaultInfo_t * pInfo, * pInfo2; - Vec_Ptr_t * vAllFaults; - Vec_Ptr_t * vFaultInfos; - int i, j, k, nGroups; - - // Clear existing faults - Abc_NtkClearFaults( pNtk ); - - // Step 1: Generate all possible faults and create fault info structures - vAllFaults = Vec_PtrAlloc( 1000 ); - vFaultInfos = Vec_PtrAlloc( 1000 ); - - // Generate all faults - Abc_NtkForEachNode( pNtk, pObj, i ) - { - // Add gate output faults - pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ); - Vec_PtrPush( vAllFaults, pFault ); - pInfo = ABC_ALLOC( FaultInfo_t, 1 ); - pInfo->pFault = pFault; - pInfo->nGroupId = Vec_PtrSize(vFaultInfos); // Initially each fault is its own group - pInfo->fDominated = 0; - pInfo->fRepresentative = 1; - pInfo->vDominates = Vec_PtrAlloc( 4 ); - Vec_PtrPush( vFaultInfos, pInfo ); - pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ); - Vec_PtrPush( vAllFaults, pFault ); - pInfo = ABC_ALLOC( FaultInfo_t, 1 ); - pInfo->pFault = pFault; - pInfo->nGroupId = Vec_PtrSize(vFaultInfos); - pInfo->fDominated = 0; - pInfo->fRepresentative = 1; - pInfo->vDominates = Vec_PtrAlloc( 4 ); - Vec_PtrPush( vFaultInfos, pInfo ); - - // Add gate input faults - for ( k = 0; k < Abc_ObjFaninNum(pObj); k++ ) + if ( shouldAdd ) { - pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GI, k ); - Vec_PtrPush( vAllFaults, pFault ); - pInfo = ABC_ALLOC( FaultInfo_t, 1 ); - pInfo->pFault = pFault; - pInfo->nGroupId = Vec_PtrSize(vFaultInfos); - pInfo->fDominated = 0; - pInfo->fRepresentative = 1; - pInfo->vDominates = Vec_PtrAlloc( 4 ); - Vec_PtrPush( vFaultInfos, pInfo ); - - pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GI, k ); - Vec_PtrPush( vAllFaults, pFault ); - pInfo = ABC_ALLOC( FaultInfo_t, 1 ); - pInfo->pFault = pFault; - pInfo->nGroupId = Vec_PtrSize(vFaultInfos); - pInfo->fDominated = 0; - pInfo->fRepresentative = 1; - pInfo->vDominates = Vec_PtrAlloc( 4 ); - Vec_PtrPush( vFaultInfos, pInfo ); + nTotalGateFaults += pFault->nEqvFaults; + Abc_NtkAddFault( pNtk, pFault ); + } + else + { + // Store equivalent fault count for later use + Vec_IntWriteEntry( vNumEqvSa1, Abc_ObjId(pObj), pFault->nEqvFaults ); + Abc_FaultFree( pFault ); } - } - - // Add PI faults - Abc_NtkForEachPi( pNtk, pObj, i ) - { - pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA0, ABC_FAULT_GO, 0 ); - Vec_PtrPush( vAllFaults, pFault ); - pInfo = ABC_ALLOC( FaultInfo_t, 1 ); - pInfo->pFault = pFault; - pInfo->nGroupId = Vec_PtrSize(vFaultInfos); - pInfo->fDominated = 0; - pInfo->fRepresentative = 1; - pInfo->vDominates = Vec_PtrAlloc( 4 ); - Vec_PtrPush( vFaultInfos, pInfo ); - - pFault = Abc_FaultAlloc( pObj, ABC_FAULT_SA1, ABC_FAULT_GO, 0 ); - Vec_PtrPush( vAllFaults, pFault ); - pInfo = ABC_ALLOC( FaultInfo_t, 1 ); - pInfo->pFault = pFault; - pInfo->nGroupId = Vec_PtrSize(vFaultInfos); - pInfo->fDominated = 0; - pInfo->fRepresentative = 1; - pInfo->vDominates = Vec_PtrAlloc( 4 ); - Vec_PtrPush( vFaultInfos, pInfo ); - } - - // Step 2: Find equivalence groups - nGroups = Vec_PtrSize(vFaultInfos); - for ( i = 0; i < Vec_PtrSize(vFaultInfos); i++ ) - { - pInfo = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, i); - pFault = pInfo->pFault; - // Check equivalence with remaining faults - for ( j = i + 1; j < Vec_PtrSize(vFaultInfos); j++ ) + // Handle fanout branches - create GI faults + if ( Abc_ObjFanoutNum(pObj) > 1 ) { - pInfo2 = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, j); - pFault2 = pInfo2->pFault; + // Set the stem equivalent count to 1 for future use + Vec_IntWriteEntry( vNumEqvSa0, Abc_ObjId(pObj), 1 ); + Vec_IntWriteEntry( vNumEqvSa1, Abc_ObjId(pObj), 1 ); - // Check if faults are on the same node - if ( pFault->pNode == pFault2->pNode ) + // Create GI faults for each fanout + Abc_ObjForEachFanout( pObj, pFanout, j ) { - if ( Abc_FaultsAreEquivalent(pFault->pNode, pFault, pFault2) ) + if ( !Abc_ObjIsNode(pFanout) && !Abc_ObjIsPo(pFanout) ) + continue; + + // Find the input index + int inputIndex = -1; + Abc_ObjForEachFanin( pFanout, pFanin, k ) { - // Merge groups - use the smaller group ID - int minGroupId = Abc_MinInt(pInfo->nGroupId, pInfo2->nGroupId); - pInfo->nGroupId = minGroupId; - pInfo2->nGroupId = minGroupId; - // The one with smaller index becomes representative - if ( j < i ) + if ( pFanin == pObj ) { - pInfo->fRepresentative = 0; - pInfo2->fRepresentative = 1; + inputIndex = k; + break; } - else + } + + if ( inputIndex == -1 ) + continue; + + // Determine which faults to create based on fanout gate type + int createSa0 = 0, createSa1 = 0; + + if ( Abc_ObjIsPo(pFanout) ) + { + // OUTPUT gate - create both SA0 and SA1 + createSa0 = createSa1 = 1; + } + else if ( Abc_ObjIsNode(pFanout) ) + { + pSop = (char *)pFanout->pData; + if ( pSop ) { - pInfo2->fRepresentative = 0; + int fanoutType = Abc_SopGetGateType( pSop ); + switch ( fanoutType ) + { + case 5: // OR + case 6: // NOR + case 7: // XOR + case 8: // XNOR (EQV) + createSa0 = 1; + break; + } + switch ( fanoutType ) + { + case 3: // AND + case 4: // NAND + case 7: // XOR + case 8: // XNOR (EQV) + createSa1 = 1; + break; + } } } + + // Create SA0 fault if needed + if ( createSa0 ) + { + pFault = Abc_FaultAlloc( pFanout, ABC_FAULT_SA0, ABC_FAULT_GI, inputIndex ); + pFault->nEqvFaults = 1; + nTotalGateFaults++; + Abc_NtkAddFault( pNtk, pFault ); + } + + // Create SA1 fault if needed + if ( createSa1 ) + { + pFault = Abc_FaultAlloc( pFanout, ABC_FAULT_SA1, ABC_FAULT_GI, inputIndex ); + pFault->nEqvFaults = 1; + nTotalGateFaults++; + Abc_NtkAddFault( pNtk, pFault ); + } } } } - // Step 3: Build dominance relationships - for ( i = 0; i < Vec_PtrSize(vFaultInfos); i++ ) + // Reverse the fault list (matching original implementation) + // Since we're using a linked list, we need to reverse it manually + pFaultPrev = NULL; + pFaultCur = pNtk->pFaultList; + while ( pFaultCur ) { - pInfo = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, i); - pFault = pInfo->pFault; - - for ( j = 0; j < Vec_PtrSize(vFaultInfos); j++ ) - { - if ( i == j ) - continue; - - pInfo2 = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, j); - pFault2 = pInfo2->pFault; - - // Check if fault i dominates fault j - if ( Abc_FaultDominates(pFault->pNode, pFault, pFault2) ) - { - Vec_PtrPush( pInfo->vDominates, pInfo2 ); - pInfo2->fDominated = 1; - } - } + Abc_Fault_t * pNext = pFaultCur->pNext; + pFaultCur->pNext = pFaultPrev; + pFaultPrev = pFaultCur; + pFaultCur = pNext; } + pNtk->pFaultList = pFaultPrev; - // Step 4: Select faults for the collapsed list - for ( i = 0; i < Vec_PtrSize(vFaultInfos); i++ ) + // Assign fault IDs after reversal + nFaults = 0; + for ( pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext ) { - pInfo = (FaultInfo_t *)Vec_PtrEntry(vFaultInfos, i); - - // Add fault if it's: - // 1. Representative of its equivalence group, AND - // 2. Not dominated by any other fault - if ( pInfo->fRepresentative && !pInfo->fDominated ) - { - Abc_NtkAddFault( pNtk, pInfo->pFault ); - } - else - { - // Free the fault if not added - Abc_FaultFree( pInfo->pFault ); - } - - // Clean up - Vec_PtrFree( pInfo->vDominates ); - ABC_FREE( pInfo ); + pFault->FaultId = nFaults++; } // Clean up - Vec_PtrFree( vAllFaults ); - Vec_PtrFree( vFaultInfos ); + Vec_IntFree( vNumEqvSa0 ); + Vec_IntFree( vNumEqvSa1 ); + + // Print statistics + fprintf( stdout, "#number of equivalent faults = %d\n", nFaults ); } - -ABC_NAMESPACE_IMPL_END \ No newline at end of file +ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 397af606e1..ecb6e970c2 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11211,8 +11211,7 @@ int Abc_CommandFaultGen( Abc_Frame_t * pAbc, int argc, char ** argv ) if(fCheckpoint&&fCollapsing){ - Abc_Print( -1, "Cannot use both checkpoint and collapsing fault generation methods.\n" ); - return 1; + Abc_NtkGenerateCollapsedCheckpointFaultList( pNtk ); } // Print fault list and statistics if(fCheckpoint){ diff --git a/src/base/abci/abcPrint.c b/src/base/abci/abcPrint.c index 9354656cec..c351a39978 100644 --- a/src/base/abci/abcPrint.c +++ b/src/base/abci/abcPrint.c @@ -2143,7 +2143,7 @@ void Abc_NtkPrintFaultList( Abc_Ntk_t * pNtk ) for ( pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext ) { faultCount++; - printf( "%6d | %4d | %s | %s | %4d | %s%s%s\n", + printf( "%6d | %4d | %s | %s | %4d | %s%s%s\n", pFault->FaultId, Abc_ObjId(pFault->pNode), pFault->Type == ABC_FAULT_SA0 ? "SA0" : "SA1", diff --git a/test_circuit1.blif b/test_circuit1.blif index d4294437fd..21cf771abf 100644 --- a/test_circuit1.blif +++ b/test_circuit1.blif @@ -1,4 +1,4 @@ -# F1 = A (buffer), F2 = 1 (constant), F3 = A*B + C*D +# Z = (A*B) * (C*D) .model test_circuit1 .inputs A B C D diff --git a/test_circuit2.blif b/test_circuit2.blif index 0af2fca2a9..7d27ab8d8c 100644 --- a/test_circuit2.blif +++ b/test_circuit2.blif @@ -1,32 +1,11 @@ -# More complex circuit to test fault collapsing -# Circuit with constant nodes, buffers, and fanout-free regions -# F1 = A (buffer), F2 = 1 (constant), F3 = A*B + C*D - .model test_circuit2 -.inputs A B C D -.outputs F1 F2 F3 - -# Buffer: F1 = A -.names A F1 -1 1 - -# Constant 1: F2 = 1 -.names F2 -1 - -# AND-OR structure with some fanout-free regions -.names A B and1 -11 1 - -.names C D and2 -11 1 +.inputs A B C D E +.outputs F1 -# Buffer in the middle (fanout-free) -.names and1 buf1 -1 1 +.names A B C D E Z +11111 1 -.names buf1 and2 F3 -1- 1 --1 1 +.names Z F1 +0 1 .end \ No newline at end of file From 660b36ead58872474cd28eb8e9026e365773b95a Mon Sep 17 00:00:00 2001 From: xNTsai Date: Sat, 31 May 2025 03:52:06 +0800 Subject: [PATCH 06/58] add: insert gates for sa0/sa1 respectively --- src/base/abc/abcFault.c | 103 ++++++++++++++++++++++++---------------- 1 file changed, 62 insertions(+), 41 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 89e9cf50f2..6590b13f2a 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -739,53 +739,74 @@ void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) { Abc_Fault_t * pFault; - int faultId = 0; - Vec_Ptr_t * vHandled = Vec_PtrAlloc(100); // Track handled output nodes + Vec_Ptr_t * vHandledsa0 = Vec_PtrAlloc(100); // Track handled output nodes + Vec_Ptr_t * vHandledsa1 = Vec_PtrAlloc(100); // Track handled output nodes // Iterate over the fault list - for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext, ++faultId) + for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) { char xName[32], yName[32]; - Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOut; + Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOr; pC = pFault->pNode; // Output of the gate - // Check if we've already handled this node - if (Vec_PtrFind(vHandled, pC) != -1) - continue; // Already handled - Vec_PtrPush(vHandled, pC); - - pOut = Abc_NtkCreateNode(pNtk); - // Rewire the network so that pOut replaces pC as the output signal - // Transfer all fanouts of pC to pOut - Abc_ObjTransferFanout(pC, pOut); - - // Generate unique names for x and y - sprintf(xName, "x_%d", faultId); - sprintf(yName, "y_%d", faultId); - // Add new PIs - pX = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pX, xName, NULL); - pY = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pY, yName, NULL); - - // Create NOT gate for ~x - pNotX = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotX, pX); - pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); - - // Create AND gate for (c AND ~x) - pAnd = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pAnd, pC); - Abc_ObjAddFanin(pAnd, pNotX); - pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - // Create OR gate for ((c AND ~x) OR y) - Abc_ObjAddFanin(pOut, pAnd); - Abc_ObjAddFanin(pOut, pY); - pOut->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - printf("[FaultSim] Inserted fault sim gates for node %s \n", Abc_ObjName(pC)); + + if(pFault->Type == ABC_FAULT_SA0) + { + if(Vec_PtrFind(vHandledsa0, pC) != -1) + continue; + Vec_PtrPush(vHandledsa0, pC); + + pAnd = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pAnd replaces pC as the output signal + // Transfer all fanouts of pC to pAnd + Abc_ObjTransferFanout(pC, pAnd); + + // Generate unique names for x and y + sprintf(xName, "x_%s", Abc_ObjName(pC)); + // Add new PIs + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pX, xName, NULL); + + // Create NOT gate for ~x + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); + + // Create AND gate for (c AND ~x) + Abc_ObjAddFanin(pAnd, pC); + Abc_ObjAddFanin(pAnd, pNotX); + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + printf("[FaultSim] Inserted SA0 sim gates for node %s \n", Abc_ObjName(pC)); + + } + else if(pFault->Type == ABC_FAULT_SA1) + { + if(Vec_PtrFind(vHandledsa1, pC) != -1) + continue; + Vec_PtrPush(vHandledsa1, pC); + + pOr = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pOr replaces pC as the output signal + // Transfer all fanouts of pC to pOr + Abc_ObjTransferFanout(pC, pOr); + + // Generate unique names for x and y + sprintf(yName, "y_%s", Abc_ObjName(pC)); + // Add new PIs + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + + + // Create OR gate for ((c AND ~x) OR y) + Abc_ObjAddFanin(pOr, pC); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + printf("[FaultSim] Inserted SA1 sim gates for node %s \n", Abc_ObjName(pC)); + } } - Vec_PtrFree(vHandled); + Vec_PtrFree(vHandledsa0); + Vec_PtrFree(vHandledsa1); printf("[FaultSim] Completed fault simulation gate insertion\n"); } From aa68f6a1dcb4e68beeb5d8a53466d04c086ee102 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Sat, 31 May 2025 03:56:04 +0800 Subject: [PATCH 07/58] rm bench --- c17.blif | 16 - c2670.bench | 1574 --------------------------------------------------- c432.bench | 211 ------- 3 files changed, 1801 deletions(-) delete mode 100644 c17.blif delete mode 100644 c2670.bench delete mode 100644 c432.bench diff --git a/c17.blif b/c17.blif deleted file mode 100644 index 1171b533d6..0000000000 --- a/c17.blif +++ /dev/null @@ -1,16 +0,0 @@ -.model C17.iscas -.inputs 1GAT(0) 2GAT(1) 3GAT(2) 6GAT(3) 7GAT(4) -.outputs 22GAT(10) 23GAT(9) -.names 3GAT(2) 6GAT(3) 11GAT(5) -11 0 -.names 1GAT(0) 3GAT(2) 10GAT(6) -11 0 -.names 11GAT(5) 7GAT(4) 19GAT(7) -11 0 -.names 2GAT(1) 11GAT(5) 16GAT(8) -11 0 -.names 16GAT(8) 19GAT(7) 23GAT(9) -11 0 -.names 10GAT(6) 16GAT(8) 22GAT(10) -11 0 -.end \ No newline at end of file diff --git a/c2670.bench b/c2670.bench deleted file mode 100644 index bb97851d99..0000000000 --- a/c2670.bench +++ /dev/null @@ -1,1574 +0,0 @@ -# c2670 -# 233 inputs -# 140 outputs -# 321 inverters -# 872 gates ( 529 ANDs + 575 NANDs + 77 ORs + 12 NORs + 196 buffers ) - -INPUT(1) -INPUT(2) -INPUT(3) -INPUT(4) -INPUT(5) -INPUT(6) -INPUT(7) -INPUT(8) -INPUT(11) -INPUT(14) -INPUT(15) -INPUT(16) -INPUT(19) -INPUT(20) -INPUT(21) -INPUT(22) -INPUT(23) -INPUT(24) -INPUT(25) -INPUT(26) -INPUT(27) -INPUT(28) -INPUT(29) -INPUT(32) -INPUT(33) -INPUT(34) -INPUT(35) -INPUT(36) -INPUT(37) -INPUT(40) -INPUT(43) -INPUT(44) -INPUT(47) -INPUT(48) -INPUT(49) -INPUT(50) -INPUT(51) -INPUT(52) -INPUT(53) -INPUT(54) -INPUT(55) -INPUT(56) -INPUT(57) -INPUT(60) -INPUT(61) -INPUT(62) -INPUT(63) -INPUT(64) -INPUT(65) -INPUT(66) -INPUT(67) -INPUT(68) -INPUT(69) -INPUT(72) -INPUT(73) -INPUT(74) -INPUT(75) -INPUT(76) -INPUT(77) -INPUT(78) -INPUT(79) -INPUT(80) -INPUT(81) -INPUT(82) -INPUT(85) -INPUT(86) -INPUT(87) -INPUT(88) -INPUT(89) -INPUT(90) -INPUT(91) -INPUT(92) -INPUT(93) -INPUT(94) -INPUT(95) -INPUT(96) -INPUT(99) -INPUT(100) -INPUT(101) -INPUT(102) -INPUT(103) -INPUT(104) -INPUT(105) -INPUT(106) -INPUT(107) -INPUT(108) -INPUT(111) -INPUT(112) -INPUT(113) -INPUT(114) -INPUT(115) -INPUT(116) -INPUT(117) -INPUT(118) -INPUT(119) -INPUT(120) -INPUT(123) -INPUT(124) -INPUT(125) -INPUT(126) -INPUT(127) -INPUT(128) -INPUT(129) -INPUT(130) -INPUT(131) -INPUT(132) -INPUT(135) -INPUT(136) -INPUT(137) -INPUT(138) -INPUT(139) -INPUT(140) -INPUT(141) -INPUT(142) -INPUT(143) -INPUT(144) -INPUT(145) -INPUT(146) -INPUT(147) -INPUT(148) -INPUT(149) -INPUT(150) -INPUT(151) -INPUT(152) -INPUT(153) -INPUT(154) -INPUT(155) -INPUT(156) -INPUT(157) -INPUT(158) -INPUT(159) -INPUT(160) -INPUT(161) -INPUT(162) -INPUT(163) -INPUT(164) -INPUT(165) -INPUT(166) -INPUT(167) -INPUT(168) -INPUT(169) -INPUT(170) -INPUT(171) -INPUT(172) -INPUT(173) -INPUT(174) -INPUT(175) -INPUT(176) -INPUT(177) -INPUT(178) -INPUT(179) -INPUT(180) -INPUT(181) -INPUT(182) -INPUT(183) -INPUT(184) -INPUT(185) -INPUT(186) -INPUT(187) -INPUT(188) -INPUT(189) -INPUT(190) -INPUT(191) -INPUT(192) -INPUT(193) -INPUT(194) -INPUT(195) -INPUT(196) -INPUT(197) -INPUT(198) -INPUT(199) -INPUT(200) -INPUT(201) -INPUT(202) -INPUT(203) -INPUT(204) -INPUT(205) -INPUT(206) -INPUT(207) -INPUT(208) -INPUT(209) -INPUT(210) -INPUT(211) -INPUT(212) -INPUT(213) -INPUT(214) -INPUT(215) -INPUT(216) -INPUT(217) -INPUT(218) -INPUT(219) -INPUT(224) -INPUT(227) -INPUT(230) -INPUT(231) -INPUT(234) -INPUT(237) -INPUT(241) -INPUT(246) -INPUT(253) -INPUT(256) -INPUT(259) -INPUT(262) -INPUT(263) -INPUT(266) -INPUT(269) -INPUT(272) -INPUT(275) -INPUT(278) -INPUT(281) -INPUT(284) -INPUT(287) -INPUT(290) -INPUT(294) -INPUT(297) -INPUT(301) -INPUT(305) -INPUT(309) -INPUT(313) -INPUT(316) -INPUT(319) -INPUT(322) -INPUT(325) -INPUT(328) -INPUT(331) -INPUT(334) -INPUT(337) -INPUT(340) -INPUT(343) -INPUT(346) -INPUT(349) -INPUT(352) -INPUT(355) - -OUTPUT(143) -OUTPUT(144) -OUTPUT(145) -OUTPUT(146) -OUTPUT(147) -OUTPUT(148) -OUTPUT(149) -OUTPUT(150) -OUTPUT(151) -OUTPUT(152) -OUTPUT(153) -OUTPUT(154) -OUTPUT(155) -OUTPUT(156) -OUTPUT(157) -OUTPUT(158) -OUTPUT(159) -OUTPUT(160) -OUTPUT(161) -OUTPUT(162) -OUTPUT(163) -OUTPUT(164) -OUTPUT(165) -OUTPUT(166) -OUTPUT(167) -OUTPUT(168) -OUTPUT(169) -OUTPUT(170) -OUTPUT(171) -OUTPUT(172) -OUTPUT(173) -OUTPUT(174) -OUTPUT(175) -OUTPUT(176) -OUTPUT(177) -OUTPUT(178) -OUTPUT(179) -OUTPUT(180) -OUTPUT(181) -OUTPUT(182) -OUTPUT(183) -OUTPUT(184) -OUTPUT(185) -OUTPUT(186) -OUTPUT(187) -OUTPUT(188) -OUTPUT(189) -OUTPUT(190) -OUTPUT(191) -OUTPUT(192) -OUTPUT(193) -OUTPUT(194) -OUTPUT(195) -OUTPUT(196) -OUTPUT(197) -OUTPUT(198) -OUTPUT(199) -OUTPUT(200) -OUTPUT(201) -OUTPUT(202) -OUTPUT(203) -OUTPUT(204) -OUTPUT(205) -OUTPUT(206) -OUTPUT(207) -OUTPUT(208) -OUTPUT(209) -OUTPUT(210) -OUTPUT(211) -OUTPUT(212) -OUTPUT(213) -OUTPUT(214) -OUTPUT(215) -OUTPUT(216) -OUTPUT(217) -OUTPUT(218) -OUTPUT(398) -OUTPUT(400) -OUTPUT(401) -OUTPUT(419) -OUTPUT(420) -OUTPUT(456) -OUTPUT(457) -OUTPUT(458) -OUTPUT(487) -OUTPUT(488) -OUTPUT(489) -OUTPUT(490) -OUTPUT(491) -OUTPUT(492) -OUTPUT(493) -OUTPUT(494) -OUTPUT(792) -OUTPUT(799) -OUTPUT(805) -OUTPUT(1026) -OUTPUT(1028) -OUTPUT(1029) -OUTPUT(1269) -OUTPUT(1277) -OUTPUT(1448) -OUTPUT(1726) -OUTPUT(1816) -OUTPUT(1817) -OUTPUT(1818) -OUTPUT(1819) -OUTPUT(1820) -OUTPUT(1821) -OUTPUT(1969) -OUTPUT(1970) -OUTPUT(1971) -OUTPUT(2010) -OUTPUT(2012) -OUTPUT(2014) -OUTPUT(2016) -OUTPUT(2018) -OUTPUT(2020) -OUTPUT(2022) -OUTPUT(2387) -OUTPUT(2388) -OUTPUT(2389) -OUTPUT(2390) -OUTPUT(2496) -OUTPUT(2643) -OUTPUT(2644) -OUTPUT(2891) -OUTPUT(2925) -OUTPUT(2970) -OUTPUT(2971) -OUTPUT(3038) -OUTPUT(3079) -OUTPUT(3546) -OUTPUT(3671) -OUTPUT(3803) -OUTPUT(3804) -OUTPUT(3809) -OUTPUT(3851) -OUTPUT(3875) -OUTPUT(3881) -OUTPUT(3882) - -398 = BUFF(219) -400 = BUFF(219) -401 = BUFF(219) -405 = AND(1, 3) -408 = NOT(230) -419 = BUFF(253) -420 = BUFF(253) -425 = NOT(262) -456 = BUFF(290) -457 = BUFF(290) -458 = BUFF(290) -485 = AND(309, 305, 301, 297) -486 = NOT(405) -487 = NOT(44) -488 = NOT(132) -489 = NOT(82) -490 = NOT(96) -491 = NOT(69) -492 = NOT(120) -493 = NOT(57) -494 = NOT(108) -495 = AND(2, 15, 237) -496 = BUFF(237) -499 = AND(37, 37) -500 = BUFF(219) -503 = BUFF(8) -506 = BUFF(8) -509 = BUFF(227) -521 = BUFF(234) -533 = NOT(241) -537 = NOT(246) -543 = AND(11, 246) -544 = AND(132, 82, 96, 44) -547 = AND(120, 57, 108, 69) -550 = BUFF(227) -562 = BUFF(234) -574 = NOT(256) -578 = NOT(259) -582 = BUFF(319) -594 = BUFF(322) -606 = NOT(328) -607 = NOT(331) -608 = NOT(334) -609 = NOT(337) -610 = NOT(340) -611 = NOT(343) -612 = NOT(352) -613 = BUFF(319) -625 = BUFF(322) -637 = BUFF(16) -643 = BUFF(16) -650 = NOT(355) -651 = AND(7, 237) -655 = NOT(263) -659 = NOT(266) -663 = NOT(269) -667 = NOT(272) -671 = NOT(275) -675 = NOT(278) -679 = NOT(281) -683 = NOT(284) -687 = NOT(287) -693 = BUFF(29) -699 = BUFF(29) -705 = NOT(294) -711 = NOT(297) -715 = NOT(301) -719 = NOT(305) -723 = NOT(309) -727 = NOT(313) -730 = NOT(316) -733 = NOT(346) -734 = NOT(349) -735 = BUFF(259) -738 = BUFF(256) -741 = BUFF(263) -744 = BUFF(269) -747 = BUFF(266) -750 = BUFF(275) -753 = BUFF(272) -756 = BUFF(281) -759 = BUFF(278) -762 = BUFF(287) -765 = BUFF(284) -768 = BUFF(294) -771 = BUFF(301) -774 = BUFF(297) -777 = BUFF(309) -780 = BUFF(305) -783 = BUFF(316) -786 = BUFF(313) -792 = NOT(485) -799 = NOT(495) -800 = NOT(499) -805 = BUFF(500) -900 = NAND(331, 606) -901 = NAND(328, 607) -902 = NAND(337, 608) -903 = NAND(334, 609) -904 = NAND(343, 610) -905 = NAND(340, 611) -998 = NAND(349, 733) -999 = NAND(346, 734) -1026 = AND(94, 500) -1027 = AND(325, 651) -1028 = NOT(651) -1029 = NAND(231, 651) -1032 = NOT(544) -1033 = NOT(547) -1034 = AND(547, 544) -1037 = BUFF(503) -1042 = NOT(509) -1053 = NOT(521) -1064 = AND(80, 509, 521) -1065 = AND(68, 509, 521) -1066 = AND(79, 509, 521) -1067 = AND(78, 509, 521) -1068 = AND(77, 509, 521) -1069 = AND(11, 537) -1070 = BUFF(503) -1075 = NOT(550) -1086 = NOT(562) -1097 = AND(76, 550, 562) -1098 = AND(75, 550, 562) -1099 = AND(74, 550, 562) -1100 = AND(73, 550, 562) -1101 = AND(72, 550, 562) -1102 = NOT(582) -1113 = NOT(594) -1124 = AND(114, 582, 594) -1125 = AND(113, 582, 594) -1126 = AND(112, 582, 594) -1127 = AND(111, 582, 594) -1128 = AND(582, 594) -1129 = NAND(900, 901) -1133 = NAND(902, 903) -1137 = NAND(904, 905) -1140 = NOT(741) -1141 = NAND(741, 612) -1142 = NOT(744) -1143 = NOT(747) -1144 = NOT(750) -1145 = NOT(753) -1146 = NOT(613) -1157 = NOT(625) -1168 = AND(118, 613, 625) -1169 = AND(107, 613, 625) -1170 = AND(117, 613, 625) -1171 = AND(116, 613, 625) -1172 = AND(115, 613, 625) -1173 = NOT(637) -1178 = NOT(643) -1184 = NOT(768) -1185 = NAND(768, 650) -1186 = NOT(771) -1187 = NOT(774) -1188 = NOT(777) -1189 = NOT(780) -1190 = BUFF(506) -1195 = BUFF(506) -1200 = NOT(693) -1205 = NOT(699) -1210 = NOT(735) -1211 = NOT(738) -1212 = NOT(756) -1213 = NOT(759) -1214 = NOT(762) -1215 = NOT(765) -1216 = NAND(998, 999) -1219 = BUFF(574) -1222 = BUFF(578) -1225 = BUFF(655) -1228 = BUFF(659) -1231 = BUFF(663) -1234 = BUFF(667) -1237 = BUFF(671) -1240 = BUFF(675) -1243 = BUFF(679) -1246 = BUFF(683) -1249 = NOT(783) -1250 = NOT(786) -1251 = BUFF(687) -1254 = BUFF(705) -1257 = BUFF(711) -1260 = BUFF(715) -1263 = BUFF(719) -1266 = BUFF(723) -1269 = NOT(1027) -1275 = AND(325, 1032) -1276 = AND(231, 1033) -1277 = BUFF(1034) -1302 = OR(1069, 543) -1351 = NAND(352, 1140) -1352 = NAND(747, 1142) -1353 = NAND(744, 1143) -1354 = NAND(753, 1144) -1355 = NAND(750, 1145) -1395 = NAND(355, 1184) -1396 = NAND(774, 1186) -1397 = NAND(771, 1187) -1398 = NAND(780, 1188) -1399 = NAND(777, 1189) -1422 = NAND(738, 1210) -1423 = NAND(735, 1211) -1424 = NAND(759, 1212) -1425 = NAND(756, 1213) -1426 = NAND(765, 1214) -1427 = NAND(762, 1215) -1440 = NAND(786, 1249) -1441 = NAND(783, 1250) -1448 = NOT(1034) -1449 = NOT(1275) -1450 = NOT(1276) -1451 = AND(93, 1042, 1053) -1452 = AND(55, 509, 1053) -1453 = AND(67, 1042, 521) -1454 = AND(81, 1042, 1053) -1455 = AND(43, 509, 1053) -1456 = AND(56, 1042, 521) -1457 = AND(92, 1042, 1053) -1458 = AND(54, 509, 1053) -1459 = AND(66, 1042, 521) -1460 = AND(91, 1042, 1053) -1461 = AND(53, 509, 1053) -1462 = AND(65, 1042, 521) -1463 = AND(90, 1042, 1053) -1464 = AND(52, 509, 1053) -1465 = AND(64, 1042, 521) -1466 = AND(89, 1075, 1086) -1467 = AND(51, 550, 1086) -1468 = AND(63, 1075, 562) -1469 = AND(88, 1075, 1086) -1470 = AND(50, 550, 1086) -1471 = AND(62, 1075, 562) -1472 = AND(87, 1075, 1086) -1473 = AND(49, 550, 1086) -1474 = AND(1075, 562) -1475 = AND(86, 1075, 1086) -1476 = AND(48, 550, 1086) -1477 = AND(61, 1075, 562) -1478 = AND(85, 1075, 1086) -1479 = AND(47, 550, 1086) -1480 = AND(60, 1075, 562) -1481 = AND(138, 1102, 1113) -1482 = AND(102, 582, 1113) -1483 = AND(126, 1102, 594) -1484 = AND(137, 1102, 1113) -1485 = AND(101, 582, 1113) -1486 = AND(125, 1102, 594) -1487 = AND(136, 1102, 1113) -1488 = AND(100, 582, 1113) -1489 = AND(124, 1102, 594) -1490 = AND(135, 1102, 1113) -1491 = AND(99, 582, 1113) -1492 = AND(123, 1102, 594) -1493 = AND(1102, 1113) -1494 = AND(582, 1113) -1495 = AND(1102, 594) -1496 = NOT(1129) -1499 = NOT(1133) -1502 = NAND(1351, 1141) -1506 = NAND(1352, 1353) -1510 = NAND(1354, 1355) -1513 = BUFF(1137) -1516 = BUFF(1137) -1519 = NOT(1219) -1520 = NOT(1222) -1521 = NOT(1225) -1522 = NOT(1228) -1523 = NOT(1231) -1524 = NOT(1234) -1525 = NOT(1237) -1526 = NOT(1240) -1527 = NOT(1243) -1528 = NOT(1246) -1529 = AND(142, 1146, 1157) -1530 = AND(106, 613, 1157) -1531 = AND(130, 1146, 625) -1532 = AND(131, 1146, 1157) -1533 = AND(95, 613, 1157) -1534 = AND(119, 1146, 625) -1535 = AND(141, 1146, 1157) -1536 = AND(105, 613, 1157) -1537 = AND(129, 1146, 625) -1538 = AND(140, 1146, 1157) -1539 = AND(104, 613, 1157) -1540 = AND(128, 1146, 625) -1541 = AND(139, 1146, 1157) -1542 = AND(103, 613, 1157) -1543 = AND(127, 1146, 625) -1544 = AND(19, 1173) -1545 = AND(4, 1173) -1546 = AND(20, 1173) -1547 = AND(5, 1173) -1548 = AND(21, 1178) -1549 = AND(22, 1178) -1550 = AND(23, 1178) -1551 = AND(6, 1178) -1552 = AND(24, 1178) -1553 = NAND(1395, 1185) -1557 = NAND(1396, 1397) -1561 = NAND(1398, 1399) -1564 = AND(25, 1200) -1565 = AND(32, 1200) -1566 = AND(26, 1200) -1567 = AND(33, 1200) -1568 = AND(27, 1205) -1569 = AND(34, 1205) -1570 = AND(35, 1205) -1571 = AND(28, 1205) -1572 = NOT(1251) -1573 = NOT(1254) -1574 = NOT(1257) -1575 = NOT(1260) -1576 = NOT(1263) -1577 = NOT(1266) -1578 = NAND(1422, 1423) -1581 = NOT(1216) -1582 = NAND(1426, 1427) -1585 = NAND(1424, 1425) -1588 = NAND(1440, 1441) -1591 = AND(1449, 1450) -1596 = OR(1451, 1452, 1453, 1064) -1600 = OR(1454, 1455, 1456, 1065) -1606 = OR(1457, 1458, 1459, 1066) -1612 = OR(1460, 1461, 1462, 1067) -1615 = OR(1463, 1464, 1465, 1068) -1619 = OR(1466, 1467, 1468, 1097) -1624 = OR(1469, 1470, 1471, 1098) -1628 = OR(1472, 1473, 1474, 1099) -1631 = OR(1475, 1476, 1477, 1100) -1634 = OR(1478, 1479, 1480, 1101) -1637 = OR(1481, 1482, 1483, 1124) -1642 = OR(1484, 1485, 1486, 1125) -1647 = OR(1487, 1488, 1489, 1126) -1651 = OR(1490, 1491, 1492, 1127) -1656 = OR(1493, 1494, 1495, 1128) -1676 = OR(1532, 1533, 1534, 1169) -1681 = OR(1535, 1536, 1537, 1170) -1686 = OR(1538, 1539, 1540, 1171) -1690 = OR(1541, 1542, 1543, 1172) -1708 = OR(1529, 1530, 1531, 1168) -1726 = BUFF(1591) -1770 = NOT(1502) -1773 = NOT(1506) -1776 = NOT(1513) -1777 = NOT(1516) -1778 = BUFF(1510) -1781 = BUFF(1510) -1784 = AND(1133, 1129, 1513) -1785 = AND(1499, 1496, 1516) -1795 = NOT(1553) -1798 = NOT(1557) -1801 = BUFF(1561) -1804 = BUFF(1561) -1807 = NOT(1588) -1808 = NOT(1578) -1809 = NAND(1578, 1581) -1810 = NOT(1582) -1811 = NOT(1585) -1813 = AND(1596, 241) -1814 = AND(1606, 241) -1815 = AND(1600, 241) -1816 = NOT(1642) -1817 = NOT(1647) -1818 = NOT(1637) -1819 = NOT(1624) -1820 = NOT(1619) -1821 = NOT(1615) -1822 = AND(496, 224, 36, 1591) -1823 = AND(496, 224, 1591, 486) -1824 = BUFF(1596) -1827 = NOT(1606) -1830 = AND(1600, 537) -1831 = AND(1606, 537) -1832 = AND(1619, 246) -1833 = NOT(1596) -1836 = NOT(1600) -1841 = NOT(1606) -1848 = BUFF(1612) -1852 = BUFF(1615) -1856 = BUFF(1619) -1863 = BUFF(1624) -1870 = BUFF(1628) -1875 = BUFF(1631) -1880 = BUFF(1634) -1885 = NAND(727, 1651) -1888 = NAND(730, 1656) -1891 = BUFF(1686) -1894 = AND(1637, 425) -1897 = NOT(1642) -1908 = AND(1496, 1133, 1776) -1909 = AND(1129, 1499, 1777) -1910 = AND(1600, 637) -1911 = AND(1606, 637) -1912 = AND(1612, 637) -1913 = AND(1615, 637) -1914 = AND(1619, 643) -1915 = AND(1624, 643) -1916 = AND(1628, 643) -1917 = AND(1631, 643) -1918 = AND(1634, 643) -1919 = NOT(1708) -1928 = AND(1676, 693) -1929 = AND(1681, 693) -1930 = AND(1686, 693) -1931 = AND(1690, 693) -1932 = AND(1637, 699) -1933 = AND(1642, 699) -1934 = AND(1647, 699) -1935 = AND(1651, 699) -1936 = BUFF(1600) -1939 = NAND(1216, 1808) -1940 = NAND(1585, 1810) -1941 = NAND(1582, 1811) -1942 = BUFF(1676) -1945 = BUFF(1686) -1948 = BUFF(1681) -1951 = BUFF(1637) -1954 = BUFF(1690) -1957 = BUFF(1647) -1960 = BUFF(1642) -1963 = BUFF(1656) -1966 = BUFF(1651) -1969 = OR(533, 1815) -1970 = NOT(1822) -1971 = NOT(1823) -2010 = BUFF(1848) -2012 = BUFF(1852) -2014 = BUFF(1856) -2016 = BUFF(1863) -2018 = BUFF(1870) -2020 = BUFF(1875) -2022 = BUFF(1880) -2028 = NOT(1778) -2029 = NOT(1781) -2030 = NOR(1908, 1784) -2031 = NOR(1909, 1785) -2032 = AND(1506, 1502, 1778) -2033 = AND(1773, 1770, 1781) -2034 = OR(1571, 1935) -2040 = NOT(1801) -2041 = NOT(1804) -2042 = AND(1557, 1553, 1801) -2043 = AND(1798, 1795, 1804) -2046 = NAND(1939, 1809) -2049 = NAND(1940, 1941) -2052 = OR(1544, 1910) -2055 = OR(1545, 1911) -2058 = OR(1546, 1912) -2061 = OR(1547, 1913) -2064 = OR(1548, 1914) -2067 = OR(1549, 1915) -2070 = OR(1550, 1916) -2073 = OR(1551, 1917) -2076 = OR(1552, 1918) -2079 = OR(1564, 1928) -2095 = OR(1565, 1929) -2098 = OR(1566, 1930) -2101 = OR(1567, 1931) -2104 = OR(1568, 1932) -2107 = OR(1569, 1933) -2110 = OR(1570, 1934) -2113 = AND(1897, 1894, 40) -2119 = NOT(1894) -2120 = NAND(408, 1827) -2125 = AND(1824, 537) -2126 = AND(1852, 246) -2127 = AND(1848, 537) -2128 = NOT(1848) -2135 = NOT(1852) -2141 = NOT(1863) -2144 = NOT(1870) -2147 = NOT(1875) -2150 = NOT(1880) -2153 = AND(727, 1885) -2154 = AND(1885, 1651) -2155 = AND(730, 1888) -2156 = AND(1888, 1656) -2157 = AND(1770, 1506, 2028) -2158 = AND(1502, 1773, 2029) -2171 = NOT(1942) -2172 = NAND(1942, 1919) -2173 = NOT(1945) -2174 = NOT(1948) -2175 = NOT(1951) -2176 = NOT(1954) -2177 = AND(1795, 1557, 2040) -2178 = AND(1553, 1798, 2041) -2185 = BUFF(1836) -2188 = BUFF(1833) -2191 = BUFF(1841) -2194 = NOT(1856) -2197 = NOT(1827) -2200 = NOT(1936) -2201 = BUFF(1836) -2204 = BUFF(1833) -2207 = BUFF(1841) -2210 = BUFF(1824) -2213 = BUFF(1841) -2216 = BUFF(1841) -2219 = NAND(2031, 2030) -2234 = NOT(1957) -2235 = NOT(1960) -2236 = NOT(1963) -2237 = NOT(1966) -2250 = AND(40, 1897, 2119) -2266 = OR(1831, 2126) -2269 = OR(2127, 1832) -2291 = OR(2153, 2154) -2294 = OR(2155, 2156) -2297 = NOR(2157, 2032) -2298 = NOR(2158, 2033) -2300 = NOT(2046) -2301 = NOT(2049) -2302 = NAND(2052, 1519) -2303 = NOT(2052) -2304 = NAND(2055, 1520) -2305 = NOT(2055) -2306 = NAND(2058, 1521) -2307 = NOT(2058) -2308 = NAND(2061, 1522) -2309 = NOT(2061) -2310 = NAND(2064, 1523) -2311 = NOT(2064) -2312 = NAND(2067, 1524) -2313 = NOT(2067) -2314 = NAND(2070, 1525) -2315 = NOT(2070) -2316 = NAND(2073, 1526) -2317 = NOT(2073) -2318 = NAND(2076, 1527) -2319 = NOT(2076) -2320 = NAND(2079, 1528) -2321 = NOT(2079) -2322 = NAND(1708, 2171) -2323 = NAND(1948, 2173) -2324 = NAND(1945, 2174) -2325 = NAND(1954, 2175) -2326 = NAND(1951, 2176) -2327 = NOR(2177, 2042) -2328 = NOR(2178, 2043) -2329 = NAND(2095, 1572) -2330 = NOT(2095) -2331 = NAND(2098, 1573) -2332 = NOT(2098) -2333 = NAND(2101, 1574) -2334 = NOT(2101) -2335 = NAND(2104, 1575) -2336 = NOT(2104) -2337 = NAND(2107, 1576) -2338 = NOT(2107) -2339 = NAND(2110, 1577) -2340 = NOT(2110) -2354 = NAND(1960, 2234) -2355 = NAND(1957, 2235) -2356 = NAND(1966, 2236) -2357 = NAND(1963, 2237) -2358 = AND(2120, 533) -2359 = NOT(2113) -2364 = NOT(2185) -2365 = NOT(2188) -2366 = NOT(2191) -2367 = NOT(2194) -2368 = BUFF(2120) -2372 = NOT(2201) -2373 = NOT(2204) -2374 = NOT(2207) -2375 = NOT(2210) -2376 = NOT(2213) -2377 = NOT(2113) -2382 = BUFF(2113) -2386 = AND(2120, 246) -2387 = BUFF(2266) -2388 = BUFF(2266) -2389 = BUFF(2269) -2390 = BUFF(2269) -2391 = BUFF(2113) -2395 = NOT(2113) -2400 = NAND(2219, 2300) -2403 = NOT(2216) -2406 = NOT(2219) -2407 = NAND(1219, 2303) -2408 = NAND(1222, 2305) -2409 = NAND(1225, 2307) -2410 = NAND(1228, 2309) -2411 = NAND(1231, 2311) -2412 = NAND(1234, 2313) -2413 = NAND(1237, 2315) -2414 = NAND(1240, 2317) -2415 = NAND(1243, 2319) -2416 = NAND(1246, 2321) -2417 = NAND(2322, 2172) -2421 = NAND(2323, 2324) -2425 = NAND(2325, 2326) -2428 = NAND(1251, 2330) -2429 = NAND(1254, 2332) -2430 = NAND(1257, 2334) -2431 = NAND(1260, 2336) -2432 = NAND(1263, 2338) -2433 = NAND(1266, 2340) -2434 = BUFF(2128) -2437 = BUFF(2135) -2440 = BUFF(2144) -2443 = BUFF(2141) -2446 = BUFF(2150) -2449 = BUFF(2147) -2452 = NOT(2197) -2453 = NAND(2197, 2200) -2454 = BUFF(2128) -2457 = BUFF(2144) -2460 = BUFF(2141) -2463 = BUFF(2150) -2466 = BUFF(2147) -2469 = NOT(2120) -2472 = BUFF(2128) -2475 = BUFF(2135) -2478 = BUFF(2128) -2481 = BUFF(2135) -2484 = NAND(2298, 2297) -2487 = NAND(2356, 2357) -2490 = NAND(2354, 2355) -2493 = NAND(2328, 2327) -2496 = OR(2358, 1814) -2503 = NAND(2188, 2364) -2504 = NAND(2185, 2365) -2510 = NAND(2204, 2372) -2511 = NAND(2201, 2373) -2521 = OR(1830, 2386) -2528 = NAND(2046, 2406) -2531 = NOT(2291) -2534 = NOT(2294) -2537 = BUFF(2250) -2540 = BUFF(2250) -2544 = NAND(2302, 2407) -2545 = NAND(2304, 2408) -2546 = NAND(2306, 2409) -2547 = NAND(2308, 2410) -2548 = NAND(2310, 2411) -2549 = NAND(2312, 2412) -2550 = NAND(2314, 2413) -2551 = NAND(2316, 2414) -2552 = NAND(2318, 2415) -2553 = NAND(2320, 2416) -2563 = NAND(2329, 2428) -2564 = NAND(2331, 2429) -2565 = NAND(2333, 2430) -2566 = NAND(2335, 2431) -2567 = NAND(2337, 2432) -2568 = NAND(2339, 2433) -2579 = NAND(1936, 2452) -2603 = BUFF(2359) -2607 = AND(1880, 2377) -2608 = AND(1676, 2377) -2609 = AND(1681, 2377) -2610 = AND(1891, 2377) -2611 = AND(1856, 2382) -2612 = AND(1863, 2382) -2613 = NAND(2503, 2504) -2617 = NOT(2434) -2618 = NAND(2434, 2366) -2619 = NAND(2437, 2367) -2620 = NOT(2437) -2621 = NOT(2368) -2624 = NAND(2510, 2511) -2628 = NOT(2454) -2629 = NAND(2454, 2374) -2630 = NOT(2472) -2631 = AND(1856, 2391) -2632 = AND(1863, 2391) -2633 = AND(1880, 2395) -2634 = AND(1676, 2395) -2635 = AND(1681, 2395) -2636 = AND(1891, 2395) -2638 = NOT(2382) -2643 = BUFF(2521) -2644 = BUFF(2521) -2645 = NOT(2475) -2646 = NOT(2391) -2652 = NAND(2528, 2400) -2655 = NOT(2478) -2656 = NOT(2481) -2659 = BUFF(2359) -2663 = NOT(2484) -2664 = NAND(2484, 2301) -2665 = NOT(2553) -2666 = NOT(2552) -2667 = NOT(2551) -2668 = NOT(2550) -2669 = NOT(2549) -2670 = NOT(2548) -2671 = NOT(2547) -2672 = NOT(2546) -2673 = NOT(2545) -2674 = NOT(2544) -2675 = NOT(2568) -2676 = NOT(2567) -2677 = NOT(2566) -2678 = NOT(2565) -2679 = NOT(2564) -2680 = NOT(2563) -2681 = NOT(2417) -2684 = NOT(2421) -2687 = BUFF(2425) -2690 = BUFF(2425) -2693 = NOT(2493) -2694 = NAND(2493, 1807) -2695 = NOT(2440) -2696 = NOT(2443) -2697 = NOT(2446) -2698 = NOT(2449) -2699 = NOT(2457) -2700 = NOT(2460) -2701 = NOT(2463) -2702 = NOT(2466) -2703 = NAND(2579, 2453) -2706 = NOT(2469) -2707 = NOT(2487) -2708 = NOT(2490) -2709 = AND(2294, 2534) -2710 = AND(2291, 2531) -2719 = NAND(2191, 2617) -2720 = NAND(2194, 2620) -2726 = NAND(2207, 2628) -2729 = BUFF(2537) -2738 = BUFF(2537) -2743 = NOT(2652) -2747 = NAND(2049, 2663) -2748 = AND(2665, 2666, 2667, 2668, 2669) -2749 = AND(2670, 2671, 2672, 2673, 2674) -2750 = AND(2034, 2675) -2751 = AND(2676, 2677, 2678, 2679, 2680) -2760 = NAND(1588, 2693) -2761 = BUFF(2540) -2766 = BUFF(2540) -2771 = NAND(2443, 2695) -2772 = NAND(2440, 2696) -2773 = NAND(2449, 2697) -2774 = NAND(2446, 2698) -2775 = NAND(2460, 2699) -2776 = NAND(2457, 2700) -2777 = NAND(2466, 2701) -2778 = NAND(2463, 2702) -2781 = NAND(2490, 2707) -2782 = NAND(2487, 2708) -2783 = OR(2709, 2534) -2784 = OR(2710, 2531) -2789 = AND(1856, 2638) -2790 = AND(1863, 2638) -2791 = AND(1870, 2638) -2792 = AND(1875, 2638) -2793 = NOT(2613) -2796 = NAND(2719, 2618) -2800 = NAND(2619, 2720) -2803 = NOT(2624) -2806 = NAND(2726, 2629) -2809 = AND(1856, 2646) -2810 = AND(1863, 2646) -2811 = AND(1870, 2646) -2812 = AND(1875, 2646) -2817 = AND(2743, 14) -2820 = BUFF(2603) -2826 = NAND(2747, 2664) -2829 = AND(2748, 2749) -2830 = AND(2750, 2751) -2831 = BUFF(2659) -2837 = NOT(2687) -2838 = NOT(2690) -2839 = AND(2421, 2417, 2687) -2840 = AND(2684, 2681, 2690) -2841 = NAND(2760, 2694) -2844 = BUFF(2603) -2854 = BUFF(2603) -2859 = BUFF(2659) -2869 = BUFF(2659) -2874 = NAND(2773, 2774) -2877 = NAND(2771, 2772) -2880 = NOT(2703) -2881 = NAND(2703, 2706) -2882 = NAND(2777, 2778) -2885 = NAND(2775, 2776) -2888 = NAND(2781, 2782) -2891 = NAND(2783, 2784) -2894 = AND(2607, 2729) -2895 = AND(2608, 2729) -2896 = AND(2609, 2729) -2897 = AND(2610, 2729) -2898 = OR(2789, 2611) -2899 = OR(2790, 2612) -2900 = AND(2791, 1037) -2901 = AND(2792, 1037) -2914 = OR(2809, 2631) -2915 = OR(2810, 2632) -2916 = AND(2811, 1070) -2917 = AND(2812, 1070) -2918 = AND(2633, 2738) -2919 = AND(2634, 2738) -2920 = AND(2635, 2738) -2921 = AND(2636, 2738) -2925 = BUFF(2817) -2931 = AND(2829, 2830, 1302) -2938 = AND(2681, 2421, 2837) -2939 = AND(2417, 2684, 2838) -2963 = NAND(2469, 2880) -2970 = NOT(2841) -2971 = NOT(2826) -2972 = NOT(2894) -2975 = NOT(2895) -2978 = NOT(2896) -2981 = NOT(2897) -2984 = AND(2898, 1037) -2985 = AND(2899, 1037) -2986 = NOT(2900) -2989 = NOT(2901) -2992 = NOT(2796) -2995 = BUFF(2800) -2998 = BUFF(2800) -3001 = BUFF(2806) -3004 = BUFF(2806) -3007 = AND(574, 2820) -3008 = AND(2914, 1070) -3009 = AND(2915, 1070) -3010 = NOT(2916) -3013 = NOT(2917) -3016 = NOT(2918) -3019 = NOT(2919) -3022 = NOT(2920) -3025 = NOT(2921) -3028 = NOT(2817) -3029 = AND(574, 2831) -3030 = NOT(2820) -3035 = AND(578, 2820) -3036 = AND(655, 2820) -3037 = AND(659, 2820) -3038 = BUFF(2931) -3039 = NOT(2831) -3044 = AND(578, 2831) -3045 = AND(655, 2831) -3046 = AND(659, 2831) -3047 = NOR(2938, 2839) -3048 = NOR(2939, 2840) -3049 = NOT(2888) -3050 = NOT(2844) -3053 = AND(663, 2844) -3054 = AND(667, 2844) -3055 = AND(671, 2844) -3056 = AND(675, 2844) -3057 = AND(679, 2854) -3058 = AND(683, 2854) -3059 = AND(687, 2854) -3060 = AND(705, 2854) -3061 = NOT(2859) -3064 = AND(663, 2859) -3065 = AND(667, 2859) -3066 = AND(671, 2859) -3067 = AND(675, 2859) -3068 = AND(679, 2869) -3069 = AND(683, 2869) -3070 = AND(687, 2869) -3071 = AND(705, 2869) -3072 = NOT(2874) -3073 = NOT(2877) -3074 = NOT(2882) -3075 = NOT(2885) -3076 = NAND(2881, 2963) -3079 = NOT(2931) -3088 = NOT(2984) -3091 = NOT(2985) -3110 = NOT(3008) -3113 = NOT(3009) -3137 = AND(3055, 1190) -3140 = AND(3056, 1190) -3143 = AND(3057, 2761) -3146 = AND(3058, 2761) -3149 = AND(3059, 2761) -3152 = AND(3060, 2761) -3157 = AND(3066, 1195) -3160 = AND(3067, 1195) -3163 = AND(3068, 2766) -3166 = AND(3069, 2766) -3169 = AND(3070, 2766) -3172 = AND(3071, 2766) -3175 = NAND(2877, 3072) -3176 = NAND(2874, 3073) -3177 = NAND(2885, 3074) -3178 = NAND(2882, 3075) -3180 = NAND(3048, 3047) -3187 = NOT(2995) -3188 = NOT(2998) -3189 = NOT(3001) -3190 = NOT(3004) -3191 = AND(2796, 2613, 2995) -3192 = AND(2992, 2793, 2998) -3193 = AND(2624, 2368, 3001) -3194 = AND(2803, 2621, 3004) -3195 = NAND(3076, 2375) -3196 = NOT(3076) -3197 = AND(687, 3030) -3208 = AND(687, 3039) -3215 = AND(705, 3030) -3216 = AND(711, 3030) -3217 = AND(715, 3030) -3218 = AND(705, 3039) -3219 = AND(711, 3039) -3220 = AND(715, 3039) -3222 = AND(719, 3050) -3223 = AND(723, 3050) -3230 = AND(719, 3061) -3231 = AND(723, 3061) -3238 = NAND(3175, 3176) -3241 = NAND(3177, 3178) -3244 = BUFF(2981) -3247 = BUFF(2978) -3250 = BUFF(2975) -3253 = BUFF(2972) -3256 = BUFF(2989) -3259 = BUFF(2986) -3262 = BUFF(3025) -3265 = BUFF(3022) -3268 = BUFF(3019) -3271 = BUFF(3016) -3274 = BUFF(3013) -3277 = BUFF(3010) -3281 = AND(2793, 2796, 3187) -3282 = AND(2613, 2992, 3188) -3283 = AND(2621, 2624, 3189) -3284 = AND(2368, 2803, 3190) -3286 = NAND(2210, 3196) -3288 = OR(3197, 3007) -3289 = NAND(3180, 3049) -3291 = AND(3152, 2981) -3293 = AND(3149, 2978) -3295 = AND(3146, 2975) -3296 = AND(2972, 3143) -3299 = AND(3140, 2989) -3301 = AND(3137, 2986) -3302 = OR(3208, 3029) -3304 = AND(3172, 3025) -3306 = AND(3169, 3022) -3308 = AND(3166, 3019) -3309 = AND(3016, 3163) -3312 = AND(3160, 3013) -3314 = AND(3157, 3010) -3315 = OR(3215, 3035) -3318 = OR(3216, 3036) -3321 = OR(3217, 3037) -3324 = OR(3218, 3044) -3327 = OR(3219, 3045) -3330 = OR(3220, 3046) -3333 = NOT(3180) -3334 = OR(3222, 3053) -3335 = OR(3223, 3054) -3336 = OR(3230, 3064) -3337 = OR(3231, 3065) -3340 = BUFF(3152) -3344 = BUFF(3149) -3348 = BUFF(3146) -3352 = BUFF(3143) -3356 = BUFF(3140) -3360 = BUFF(3137) -3364 = BUFF(3091) -3367 = BUFF(3088) -3370 = BUFF(3172) -3374 = BUFF(3169) -3378 = BUFF(3166) -3382 = BUFF(3163) -3386 = BUFF(3160) -3390 = BUFF(3157) -3394 = BUFF(3113) -3397 = BUFF(3110) -3400 = NAND(3195, 3286) -3401 = NOR(3281, 3191) -3402 = NOR(3282, 3192) -3403 = NOR(3283, 3193) -3404 = NOR(3284, 3194) -3405 = NOT(3238) -3406 = NOT(3241) -3409 = AND(3288, 1836) -3410 = NAND(2888, 3333) -3412 = NOT(3244) -3414 = NOT(3247) -3416 = NOT(3250) -3418 = NOT(3253) -3420 = NOT(3256) -3422 = NOT(3259) -3428 = AND(3302, 1836) -3430 = NOT(3262) -3432 = NOT(3265) -3434 = NOT(3268) -3436 = NOT(3271) -3438 = NOT(3274) -3440 = NOT(3277) -3450 = AND(3334, 1190) -3453 = AND(3335, 1190) -3456 = AND(3336, 1195) -3459 = AND(3337, 1195) -3478 = AND(3400, 533) -3479 = AND(3318, 2128) -3480 = AND(3315, 1841) -3481 = NAND(3410, 3289) -3482 = NOT(3340) -3483 = NAND(3340, 3412) -3484 = NOT(3344) -3485 = NAND(3344, 3414) -3486 = NOT(3348) -3487 = NAND(3348, 3416) -3488 = NOT(3352) -3489 = NAND(3352, 3418) -3490 = NOT(3356) -3491 = NAND(3356, 3420) -3492 = NOT(3360) -3493 = NAND(3360, 3422) -3494 = NOT(3364) -3496 = NOT(3367) -3498 = AND(3321, 2135) -3499 = AND(3327, 2128) -3500 = AND(3324, 1841) -3501 = NOT(3370) -3502 = NAND(3370, 3430) -3503 = NOT(3374) -3504 = NAND(3374, 3432) -3505 = NOT(3378) -3506 = NAND(3378, 3434) -3507 = NOT(3382) -3508 = NAND(3382, 3436) -3509 = NOT(3386) -3510 = NAND(3386, 3438) -3511 = NOT(3390) -3512 = NAND(3390, 3440) -3513 = NOT(3394) -3515 = NOT(3397) -3517 = AND(3330, 2135) -3522 = NAND(3402, 3401) -3525 = NAND(3404, 3403) -3528 = BUFF(3318) -3531 = BUFF(3315) -3534 = BUFF(3321) -3537 = BUFF(3327) -3540 = BUFF(3324) -3543 = BUFF(3330) -3546 = OR(3478, 1813) -3551 = NOT(3481) -3552 = NAND(3244, 3482) -3553 = NAND(3247, 3484) -3554 = NAND(3250, 3486) -3555 = NAND(3253, 3488) -3556 = NAND(3256, 3490) -3557 = NAND(3259, 3492) -3558 = AND(3453, 3091) -3559 = AND(3450, 3088) -3563 = NAND(3262, 3501) -3564 = NAND(3265, 3503) -3565 = NAND(3268, 3505) -3566 = NAND(3271, 3507) -3567 = NAND(3274, 3509) -3568 = NAND(3277, 3511) -3569 = AND(3459, 3113) -3570 = AND(3456, 3110) -3576 = BUFF(3453) -3579 = BUFF(3450) -3585 = BUFF(3459) -3588 = BUFF(3456) -3592 = NOT(3522) -3593 = NAND(3522, 3405) -3594 = NOT(3525) -3595 = NAND(3525, 3406) -3596 = NOT(3528) -3597 = NAND(3528, 2630) -3598 = NAND(3531, 2376) -3599 = NOT(3531) -3600 = AND(3551, 800) -3603 = NAND(3552, 3483) -3608 = NAND(3553, 3485) -3612 = NAND(3554, 3487) -3615 = NAND(3555, 3489) -3616 = NAND(3556, 3491) -3622 = NAND(3557, 3493) -3629 = NOT(3534) -3630 = NAND(3534, 2645) -3631 = NOT(3537) -3632 = NAND(3537, 2655) -3633 = NAND(3540, 2403) -3634 = NOT(3540) -3635 = NAND(3563, 3502) -3640 = NAND(3564, 3504) -3644 = NAND(3565, 3506) -3647 = NAND(3566, 3508) -3648 = NAND(3567, 3510) -3654 = NAND(3568, 3512) -3661 = NOT(3543) -3662 = NAND(3543, 2656) -3667 = NAND(3238, 3592) -3668 = NAND(3241, 3594) -3669 = NAND(2472, 3596) -3670 = NAND(2213, 3599) -3671 = BUFF(3600) -3691 = NOT(3576) -3692 = NAND(3576, 3494) -3693 = NOT(3579) -3694 = NAND(3579, 3496) -3695 = NAND(2475, 3629) -3696 = NAND(2478, 3631) -3697 = NAND(2216, 3634) -3716 = NOT(3585) -3717 = NAND(3585, 3513) -3718 = NOT(3588) -3719 = NAND(3588, 3515) -3720 = NAND(2481, 3661) -3721 = NAND(3667, 3593) -3722 = NAND(3668, 3595) -3723 = NAND(3669, 3597) -3726 = NAND(3670, 3598) -3727 = NOT(3600) -3728 = NAND(3364, 3691) -3729 = NAND(3367, 3693) -3730 = NAND(3695, 3630) -3731 = AND(3608, 3615, 3612, 3603) -3732 = AND(3603, 3293) -3733 = AND(3608, 3603, 3295) -3734 = AND(3612, 3603, 3296, 3608) -3735 = AND(3616, 3301) -3736 = AND(3622, 3616, 3558) -3737 = NAND(3696, 3632) -3740 = NAND(3697, 3633) -3741 = NAND(3394, 3716) -3742 = NAND(3397, 3718) -3743 = NAND(3720, 3662) -3744 = AND(3640, 3647, 3644, 3635) -3745 = AND(3635, 3306) -3746 = AND(3640, 3635, 3308) -3747 = AND(3644, 3635, 3309, 3640) -3748 = AND(3648, 3314) -3749 = AND(3654, 3648, 3569) -3750 = NOT(3721) -3753 = AND(3722, 246) -3754 = NAND(3728, 3692) -3758 = NAND(3729, 3694) -3761 = NOT(3731) -3762 = OR(3291, 3732, 3733, 3734) -3767 = NAND(3741, 3717) -3771 = NAND(3742, 3719) -3774 = NOT(3744) -3775 = OR(3304, 3745, 3746, 3747) -3778 = AND(3723, 3480) -3779 = AND(3726, 3723, 3409) -3780 = OR(2125, 3753) -3790 = AND(3750, 800) -3793 = AND(3737, 3500) -3794 = AND(3740, 3737, 3428) -3802 = OR(3479, 3778, 3779) -3803 = BUFF(3780) -3804 = BUFF(3780) -3805 = NOT(3762) -3806 = AND(3622, 3730, 3754, 3616, 3758) -3807 = AND(3754, 3616, 3559, 3622) -3808 = AND(3758, 3754, 3616, 3498, 3622) -3809 = BUFF(3790) -3811 = OR(3499, 3793, 3794) -3812 = NOT(3775) -3813 = AND(3654, 3743, 3767, 3648, 3771) -3814 = AND(3767, 3648, 3570, 3654) -3815 = AND(3771, 3767, 3648, 3517, 3654) -3816 = OR(3299, 3735, 3736, 3807, 3808) -3817 = AND(3806, 3802) -3818 = NAND(3805, 3761) -3819 = NOT(3790) -3820 = OR(3312, 3748, 3749, 3814, 3815) -3821 = AND(3813, 3811) -3822 = NAND(3812, 3774) -3823 = OR(3816, 3817) -3826 = AND(3727, 3819, 2841) -3827 = OR(3820, 3821) -3834 = NOT(3823) -3835 = AND(3818, 3823) -3836 = NOT(3827) -3837 = AND(3822, 3827) -3838 = AND(3762, 3834) -3839 = AND(3775, 3836) -3840 = OR(3838, 3835) -3843 = OR(3839, 3837) -3851 = BUFF(3843) -3852 = NAND(3843, 3840) -3857 = AND(3843, 3852) -3858 = AND(3852, 3840) -3859 = OR(3857, 3858) -3864 = NOT(3859) -3869 = AND(3859, 3864) -3870 = OR(3869, 3864) -3875 = NOT(3870) -3876 = AND(2826, 3028, 3870) -3877 = AND(3826, 3876, 1591) -3881 = BUFF(3877) -3882 = NOT(3877) \ No newline at end of file diff --git a/c432.bench b/c432.bench deleted file mode 100644 index 13f68c5bbf..0000000000 --- a/c432.bench +++ /dev/null @@ -1,211 +0,0 @@ -# c432 -# 36 inputs -# 7 outputs -# 40 inverters -# 120 gates ( 4 ANDs + 119 NANDs + 19 NORs + 18 XORs ) - -INPUT(1) -INPUT(4) -INPUT(8) -INPUT(11) -INPUT(14) -INPUT(17) -INPUT(21) -INPUT(24) -INPUT(27) -INPUT(30) -INPUT(34) -INPUT(37) -INPUT(40) -INPUT(43) -INPUT(47) -INPUT(50) -INPUT(53) -INPUT(56) -INPUT(60) -INPUT(63) -INPUT(66) -INPUT(69) -INPUT(73) -INPUT(76) -INPUT(79) -INPUT(82) -INPUT(86) -INPUT(89) -INPUT(92) -INPUT(95) -INPUT(99) -INPUT(102) -INPUT(105) -INPUT(108) -INPUT(112) -INPUT(115) - -OUTPUT(223) -OUTPUT(329) -OUTPUT(370) -OUTPUT(421) -OUTPUT(430) -OUTPUT(431) -OUTPUT(432) - -118 = NOT(1) -119 = NOT(4) -122 = NOT(11) -123 = NOT(17) -126 = NOT(24) -127 = NOT(30) -130 = NOT(37) -131 = NOT(43) -134 = NOT(50) -135 = NOT(56) -138 = NOT(63) -139 = NOT(69) -142 = NOT(76) -143 = NOT(82) -146 = NOT(89) -147 = NOT(95) -150 = NOT(102) -151 = NOT(108) -154 = NAND(118, 4) -157 = NOR(8, 119) -158 = NOR(14, 119) -159 = NAND(122, 17) -162 = NAND(126, 30) -165 = NAND(130, 43) -168 = NAND(134, 56) -171 = NAND(138, 69) -174 = NAND(142, 82) -177 = NAND(146, 95) -180 = NAND(150, 108) -183 = NOR(21, 123) -184 = NOR(27, 123) -185 = NOR(34, 127) -186 = NOR(40, 127) -187 = NOR(47, 131) -188 = NOR(53, 131) -189 = NOR(60, 135) -190 = NOR(66, 135) -191 = NOR(73, 139) -192 = NOR(79, 139) -193 = NOR(86, 143) -194 = NOR(92, 143) -195 = NOR(99, 147) -196 = NOR(105, 147) -197 = NOR(112, 151) -198 = NOR(115, 151) -199 = AND(154, 159, 162, 165, 168, 171, 174, 177, 180) -203 = NOT(199) -213 = NOT(199) -223 = NOT(199) -224 = XOR(203, 154) -227 = XOR(203, 159) -230 = XOR(203, 162) -233 = XOR(203, 165) -236 = XOR(203, 168) -239 = XOR(203, 171) -242 = NAND(1, 213) -243 = XOR(203, 174) -246 = NAND(213, 11) -247 = XOR(203, 177) -250 = NAND(213, 24) -251 = XOR(203, 180) -254 = NAND(213, 37) -255 = NAND(213, 50) -256 = NAND(213, 63) -257 = NAND(213, 76) -258 = NAND(213, 89) -259 = NAND(213, 102) -260 = NAND(224, 157) -263 = NAND(224, 158) -264 = NAND(227, 183) -267 = NAND(230, 185) -270 = NAND(233, 187) -273 = NAND(236, 189) -276 = NAND(239, 191) -279 = NAND(243, 193) -282 = NAND(247, 195) -285 = NAND(251, 197) -288 = NAND(227, 184) -289 = NAND(230, 186) -290 = NAND(233, 188) -291 = NAND(236, 190) -292 = NAND(239, 192) -293 = NAND(243, 194) -294 = NAND(247, 196) -295 = NAND(251, 198) -296 = AND(260, 264, 267, 270, 273, 276, 279, 282, 285) -300 = NOT(263) -301 = NOT(288) -302 = NOT(289) -303 = NOT(290) -304 = NOT(291) -305 = NOT(292) -306 = NOT(293) -307 = NOT(294) -308 = NOT(295) -309 = NOT(296) -319 = NOT(296) -329 = NOT(296) -330 = XOR(309, 260) -331 = XOR(309, 264) -332 = XOR(309, 267) -333 = XOR(309, 270) -334 = NAND(8, 319) -335 = XOR(309, 273) -336 = NAND(319, 21) -337 = XOR(309, 276) -338 = NAND(319, 34) -339 = XOR(309, 279) -340 = NAND(319, 47) -341 = XOR(309, 282) -342 = NAND(319, 60) -343 = XOR(309, 285) -344 = NAND(319, 73) -345 = NAND(319, 86) -346 = NAND(319, 99) -347 = NAND(319, 112) -348 = NAND(330, 300) -349 = NAND(331, 301) -350 = NAND(332, 302) -351 = NAND(333, 303) -352 = NAND(335, 304) -353 = NAND(337, 305) -354 = NAND(339, 306) -355 = NAND(341, 307) -356 = NAND(343, 308) -357 = AND(348, 349, 350, 351, 352, 353, 354, 355, 356) -360 = NOT(357) -370 = NOT(357) -371 = NAND(14, 360) -372 = NAND(360, 27) -373 = NAND(360, 40) -374 = NAND(360, 53) -375 = NAND(360, 66) -376 = NAND(360, 79) -377 = NAND(360, 92) -378 = NAND(360, 105) -379 = NAND(360, 115) -380 = NAND(4, 242, 334, 371) -381 = NAND(246, 336, 372, 17) -386 = NAND(250, 338, 373, 30) -393 = NAND(254, 340, 374, 43) -399 = NAND(255, 342, 375, 56) -404 = NAND(256, 344, 376, 69) -407 = NAND(257, 345, 377, 82) -411 = NAND(258, 346, 378, 95) -414 = NAND(259, 347, 379, 108) -415 = NOT(380) -416 = AND(381, 386, 393, 399, 404, 407, 411, 414) -417 = NOT(393) -418 = NOT(404) -419 = NOT(407) -420 = NOT(411) -421 = NOR(415, 416) -422 = NAND(386, 417) -425 = NAND(386, 393, 418, 399) -428 = NAND(399, 393, 419) -429 = NAND(386, 393, 407, 420) -430 = NAND(381, 386, 422, 399) -431 = NAND(381, 386, 425, 428) -432 = NAND(381, 422, 425, 429) \ No newline at end of file From 437cfd86d83247b03e972c6e1fd613fe7b5d4301 Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Sun, 1 Jun 2025 09:59:31 +0800 Subject: [PATCH 08/58] add pbo constraint (beta) --- .gitignore | 3 +++ src/base/abc/abcFault.c | 53 ++++++++++++++++++++++++++++++++++++++--- test_circuit1.blif | 16 ------------- test_circuit2.blif | 11 --------- test_circuit3.blif | 20 ---------------- test_circuit4.blif | 23 ------------------ 6 files changed, 53 insertions(+), 73 deletions(-) delete mode 100644 test_circuit1.blif delete mode 100644 test_circuit2.blif delete mode 100644 test_circuit3.blif delete mode 100644 test_circuit4.blif diff --git a/.gitignore b/.gitignore index 9bd049424a..232bc3f705 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,6 @@ tags /cmake /cscope abc.history + + +/benchmarks \ No newline at end of file diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 6590b13f2a..398eab8f92 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -724,6 +724,7 @@ void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) fprintf( stdout, "#number of equivalent faults = %d\n", nFaults ); } + /**Function************************************************************* Synopsis [Inserts fault simulation gates for each fault in the fault list.] @@ -745,6 +746,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) { char xName[32], yName[32]; + char f0_Name[32], f1_Name[32]; Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOr; pC = pFault->pNode; // Output of the gate @@ -755,26 +757,48 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) continue; Vec_PtrPush(vHandledsa0, pC); + Abc_Obj_t * pOR_pbo, * pf0_pbo, *pNotf0_pbo; + pAnd = Abc_NtkCreateNode(pNtk); + pOR_pbo = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pAnd replaces pC as the output signal // Transfer all fanouts of pC to pAnd Abc_ObjTransferFanout(pC, pAnd); // Generate unique names for x and y + sprintf(f0_Name, "f0_%s", Abc_ObjName(pC)); sprintf(xName, "x_%s", Abc_ObjName(pC)); // Add new PIs + pf0_pbo = Abc_NtkCreatePi(pNtk); pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); Abc_ObjAssignName(pX, xName, NULL); + // create NOT gate for a_f0 // Create NOT gate for ~x + pNotf0_pbo = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotf0_pbo, pX); + pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); + pNotX = Abc_NtkCreateNode(pNtk); Abc_ObjAddFanin(pNotX, pX); pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); - // Create AND gate for (c AND ~x) + // create OR gate for (c OR ~a_f0) + Abc_ObjAddFanin(pOR_pbo, pC); + Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); + pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + Abc_ObjAddFanin(pAnd, pC); Abc_ObjAddFanin(pAnd, pNotX); pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + // wire the constant 1 PO to the OR gate + Abc_Obj_t * pConst1Po = Abc_NtkCreatePo(pNtk); + Abc_Obj_t * pConst1_pbo = Abc_NtkCreateNodeConst1(pNtk); + Abc_ObjAddFanin(pConst1Po, pOR_pbo); + Abc_ObjAssignName(pConst1Po, "const1_pbo", NULL); printf("[FaultSim] Inserted SA0 sim gates for node %s \n", Abc_ObjName(pC)); @@ -785,22 +809,43 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) continue; Vec_PtrPush(vHandledsa1, pC); + Abc_Obj_t * pAND_pbo, * pf1_pbo, *pNotf1_pbo; + pOr = Abc_NtkCreateNode(pNtk); + pAND_pbo = Abc_NtkCreateNode(pNtk); // Rewire the network so that pOr replaces pC as the output signal // Transfer all fanouts of pC to pOr Abc_ObjTransferFanout(pC, pOr); // Generate unique names for x and y + sprintf(f1_Name, "f1_%s", Abc_ObjName(pC)); sprintf(yName, "y_%s", Abc_ObjName(pC)); // Add new PIs + pf1_pbo = Abc_NtkCreatePi(pNtk); pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); Abc_ObjAssignName(pY, yName, NULL); - + // create OR gate for (c AND a_f1) // Create OR gate for ((c AND ~x) OR y) + Abc_ObjAddFanin(pAND_pbo, pC); + Abc_ObjAddFanin(pAND_pbo, pf1_pbo); + pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + Abc_ObjAddFanin(pOr, pC); Abc_ObjAddFanin(pOr, pY); pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + // wire the constant 0 PO to the AND gate + Abc_Obj_t * pConst0Po = Abc_NtkCreatePo(pNtk); + Abc_ObjAddFanin(pConst0Po, pAND_pbo); + Abc_ObjAssignName(pConst0Po, "const0_pbo", NULL); + + // wire the constant 1 PO to the OR gate + Abc_Obj_t * pConst0Po = Abc_NtkCreatePo(pNtk); + Abc_Obj_t * pConst0_pbo = Abc_NtkCreateNodeConst1(pNtk); + Abc_ObjAddFanin(pConst0Po, pAND_pbo); + Abc_ObjAssignName(pConst0Po, "const1_pbo", NULL); printf("[FaultSim] Inserted SA1 sim gates for node %s \n", Abc_ObjName(pC)); } @@ -810,4 +855,6 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) printf("[FaultSim] Completed fault simulation gate insertion\n"); } -ABC_NAMESPACE_IMPL_END \ No newline at end of file + + +ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/test_circuit1.blif b/test_circuit1.blif deleted file mode 100644 index 21cf771abf..0000000000 --- a/test_circuit1.blif +++ /dev/null @@ -1,16 +0,0 @@ -# Z = (A*B) * (C*D) - -.model test_circuit1 -.inputs A B C D -.outputs Z - -.names A B and1 -11 1 - -.names C D and2 -11 1 - -.names and1 and2 Z -11 1 - -.end \ No newline at end of file diff --git a/test_circuit2.blif b/test_circuit2.blif deleted file mode 100644 index 7d27ab8d8c..0000000000 --- a/test_circuit2.blif +++ /dev/null @@ -1,11 +0,0 @@ -.model test_circuit2 -.inputs A B C D E -.outputs F1 - -.names A B C D E Z -11111 1 - -.names Z F1 -0 1 - -.end \ No newline at end of file diff --git a/test_circuit3.blif b/test_circuit3.blif deleted file mode 100644 index 5f6f82abfa..0000000000 --- a/test_circuit3.blif +++ /dev/null @@ -1,20 +0,0 @@ -# Circuit with real fanout branches to test Checkpoint Theorem -# A has fanout = 2 (goes to two AND gates) -# Should create checkpoint at A - -.model test_circuit3 -.inputs A B C -.outputs Z - -# A fans out to two places (fanout branch = checkpoint) -.names A B and1 -11 1 - -.names A C and2 -11 1 - -.names and1 and2 Z -1- 1 --1 1 - -.end \ No newline at end of file diff --git a/test_circuit4.blif b/test_circuit4.blif deleted file mode 100644 index 266400b552..0000000000 --- a/test_circuit4.blif +++ /dev/null @@ -1,23 +0,0 @@ -# Circuit with real fanout branches to test Checkpoint Theorem -# Should create checkpoint at A - -.model test_circuit4 -.inputs A B C D E -.outputs X Y Z - -.names A B and1 -11 1 - -.names A C and2 -11 1 - -.names and2 D X -11 1 - -.names and1 E Z -11 1 - -.names and1 and2 Y -11 1 - -.end \ No newline at end of file From de98dfc99381cdd57b136347c0c2510efcfee89e Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Sun, 1 Jun 2025 14:07:08 +0800 Subject: [PATCH 09/58] variables modification --- src/base/abc/abcFault.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 398eab8f92..cc06dc39c9 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -747,6 +747,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) { char xName[32], yName[32]; char f0_Name[32], f1_Name[32]; + char po_f0_Name[32], po_f1_Name[32]; Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOr; pC = pFault->pNode; // Output of the gate @@ -778,7 +779,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) // create NOT gate for a_f0 // Create NOT gate for ~x pNotf0_pbo = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotf0_pbo, pX); + Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); pNotX = Abc_NtkCreateNode(pNtk); @@ -789,16 +790,17 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Abc_ObjAddFanin(pOR_pbo, pC); Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - + + // create AND gate for (c AND ~x) Abc_ObjAddFanin(pAnd, pC); Abc_ObjAddFanin(pAnd, pNotX); pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate Abc_Obj_t * pConst1Po = Abc_NtkCreatePo(pNtk); - Abc_Obj_t * pConst1_pbo = Abc_NtkCreateNodeConst1(pNtk); + sprintf(po_f0_Name, "const1_po_pbo_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pConst1Po, po_f0_Name, NULL); Abc_ObjAddFanin(pConst1Po, pOR_pbo); - Abc_ObjAssignName(pConst1Po, "const1_pbo", NULL); printf("[FaultSim] Inserted SA0 sim gates for node %s \n", Abc_ObjName(pC)); @@ -809,7 +811,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) continue; Vec_PtrPush(vHandledsa1, pC); - Abc_Obj_t * pAND_pbo, * pf1_pbo, *pNotf1_pbo; + Abc_Obj_t * pAND_pbo, * pf1_pbo; pOr = Abc_NtkCreateNode(pNtk); pAND_pbo = Abc_NtkCreateNode(pNtk); @@ -838,14 +840,9 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) // wire the constant 0 PO to the AND gate Abc_Obj_t * pConst0Po = Abc_NtkCreatePo(pNtk); + sprintf(po_f1_Name, "const0_po_pbo_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pConst0Po, po_f1_Name, NULL); Abc_ObjAddFanin(pConst0Po, pAND_pbo); - Abc_ObjAssignName(pConst0Po, "const0_pbo", NULL); - - // wire the constant 1 PO to the OR gate - Abc_Obj_t * pConst0Po = Abc_NtkCreatePo(pNtk); - Abc_Obj_t * pConst0_pbo = Abc_NtkCreateNodeConst1(pNtk); - Abc_ObjAddFanin(pConst0Po, pAND_pbo); - Abc_ObjAssignName(pConst0Po, "const1_pbo", NULL); printf("[FaultSim] Inserted SA1 sim gates for node %s \n", Abc_ObjName(pC)); } From 4fc1e1b96a4ccf00db0389a705f00512b5da043e Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Sun, 1 Jun 2025 14:30:15 +0800 Subject: [PATCH 10/58] variables modification --- src/base/abc/abcFault.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index cc06dc39c9..4844e7f107 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -747,7 +747,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) { char xName[32], yName[32]; char f0_Name[32], f1_Name[32]; - char po_f0_Name[32], po_f1_Name[32]; + char PO_f0_Name[32], PO_f1_Name[32]; Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOr; pC = pFault->pNode; // Output of the gate @@ -797,10 +797,10 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate - Abc_Obj_t * pConst1Po = Abc_NtkCreatePo(pNtk); - sprintf(po_f0_Name, "const1_po_pbo_%s", Abc_ObjName(pC)); - Abc_ObjAssignName(pConst1Po, po_f0_Name, NULL); - Abc_ObjAddFanin(pConst1Po, pOR_pbo); + Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pPo, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo, pOR_pbo); printf("[FaultSim] Inserted SA0 sim gates for node %s \n", Abc_ObjName(pC)); @@ -811,7 +811,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) continue; Vec_PtrPush(vHandledsa1, pC); - Abc_Obj_t * pAND_pbo, * pf1_pbo; + Abc_Obj_t * pAND_pbo, * pf1_pbo, * pNot_pbo; pOr = Abc_NtkCreateNode(pNtk); pAND_pbo = Abc_NtkCreateNode(pNtk); @@ -839,10 +839,16 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); // wire the constant 0 PO to the AND gate - Abc_Obj_t * pConst0Po = Abc_NtkCreatePo(pNtk); - sprintf(po_f1_Name, "const0_po_pbo_%s", Abc_ObjName(pC)); - Abc_ObjAssignName(pConst0Po, po_f1_Name, NULL); - Abc_ObjAddFanin(pConst0Po, pAND_pbo); + // Create NOT gate for ~ (pC & pf1_pbo) + pNot_pbo = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNot_pbo, pAND_pbo); + pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); + + // wire the constant 1 PO to the NOT gate + Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f1_Name, "PO_pbo_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pPo, PO_f1_Name, NULL); + Abc_ObjAddFanin(pPo, pNot_pbo); printf("[FaultSim] Inserted SA1 sim gates for node %s \n", Abc_ObjName(pC)); } From 312ea0c52931f29eb9cac9f0bf70977f50eb67b8 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Thu, 5 Jun 2025 15:09:34 +0800 Subject: [PATCH 11/58] add: build constraint circuit / fix: faultsim gate issue --- src/base/abc/abc.h | 2 + src/base/abc/abcFault.c | 332 ++++++++++++++++++++++++++++++++++++++-- src/base/abci/abc.c | 49 ++++++ src/base/io/io.c | 91 +++++++++++ 4 files changed, 458 insertions(+), 16 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 63e542ab09..be9b4b3bfb 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -236,6 +236,7 @@ struct Abc_Ntk_t_ Vec_Int_t * vNameIds; // name IDs Vec_Int_t * vFins; // obj/type info Vec_Int_t * vOrigNodeIds; // original node IDs + Abc_Ntk_t * pFaultConstraintNtk; // the fault constraint network }; struct Abc_Des_t_ @@ -1116,6 +1117,7 @@ extern ABC_DLL void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t extern ABC_DLL void Abc_NtkGenerateTDFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk); extern ABC_DLL void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 6590b13f2a..c339d5e7b3 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2,8 +2,6 @@ #include #include "misc/util/abc_global.h" - - ABC_NAMESPACE_IMPL_START //////////////////////////////////////////////////////////////////////// @@ -739,21 +737,31 @@ void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) { Abc_Fault_t * pFault; - Vec_Ptr_t * vHandledsa0 = Vec_PtrAlloc(100); // Track handled output nodes - Vec_Ptr_t * vHandledsa1 = Vec_PtrAlloc(100); // Track handled output nodes + char * key = NULL; + char keyBuf[100]; // Buffer for creating key strings + int i; + Vec_Ptr_t * vGOHandledsa0 = Vec_PtrAlloc(100); // Track handled output nodes + Vec_Ptr_t * vGOHandledsa1 = Vec_PtrAlloc(100); // Track handled output nodes + Vec_Ptr_t * vGIHandledsa0 = Vec_PtrAlloc(100); // Track handled input nodes + Vec_Ptr_t * vGIHandledsa1 = Vec_PtrAlloc(100); // Track handled input nodes + // Iterate over the fault list for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) { char xName[32], yName[32]; Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOr; + Abc_Obj_t * pNode = pFault->pNode; - pC = pFault->pNode; // Output of the gate + // Handle gate output (GO) faults + if (pFault->Io == ABC_FAULT_GO) + { + pC = pNode; // Output of the gate if(pFault->Type == ABC_FAULT_SA0) { - if(Vec_PtrFind(vHandledsa0, pC) != -1) + if(Vec_PtrFind(vGOHandledsa0, pC) != -1) continue; - Vec_PtrPush(vHandledsa0, pC); + Vec_PtrPush(vGOHandledsa0, pC); pAnd = Abc_NtkCreateNode(pNtk); // Rewire the network so that pAnd replaces pC as the output signal @@ -776,14 +784,13 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Abc_ObjAddFanin(pAnd, pNotX); pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - printf("[FaultSim] Inserted SA0 sim gates for node %s \n", Abc_ObjName(pC)); - + printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); } else if(pFault->Type == ABC_FAULT_SA1) { - if(Vec_PtrFind(vHandledsa1, pC) != -1) + if(Vec_PtrFind(vGOHandledsa1, pC) != -1) continue; - Vec_PtrPush(vHandledsa1, pC); + Vec_PtrPush(vGOHandledsa1, pC); pOr = Abc_NtkCreateNode(pNtk); // Rewire the network so that pOr replaces pC as the output signal @@ -796,18 +803,311 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pY = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pY, yName, NULL); - // Create OR gate for ((c AND ~x) OR y) Abc_ObjAddFanin(pOr, pC); Abc_ObjAddFanin(pOr, pY); pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - printf("[FaultSim] Inserted SA1 sim gates for node %s \n", Abc_ObjName(pC)); + printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); + } + } + // Handle gate input (GI) faults + else if (pFault->Io == ABC_FAULT_GI) + { + int fanin_index = pFault->Index; + Abc_Obj_t * pFanin = Abc_ObjFanin(pNode, fanin_index); + if (!pFanin) { + printf("[FaultSim] Error: Invalid fanin index %d for node %s\n", fanin_index, Abc_ObjName(pNode)); + continue; + } + + // Create a unique key for this node-input combination + sprintf(keyBuf, "%s_in%d", Abc_ObjName(pNode), fanin_index); + + // Create an intermediate node to insert between fanin and node + if (pFault->Type == ABC_FAULT_SA0) + { + // Skip if already handled this node-input combination + if (Vec_PtrFind(vGIHandledsa0, keyBuf) != -1) + continue; + // Allocate memory for the key and copy the string + key = ABC_ALLOC(char, strlen(keyBuf) + 1); + strcpy(key, keyBuf); + Vec_PtrPush(vGIHandledsa0, key); + + // Create AND gate for (fanin AND ~x) + pAnd = Abc_NtkCreateNode(pNtk); + + // Generate unique name for x + sprintf(xName, "x_%s_in%d", Abc_ObjName(pNode), fanin_index); + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pX, xName, NULL); + + // Create NOT gate for ~x + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); + + // Insert AND gate between fanin and node + Abc_ObjPatchFanin(pNode, pFanin, pAnd); + Abc_ObjAddFanin(pAnd, pFanin); + Abc_ObjAddFanin(pAnd, pNotX); + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + printf("[FaultSim] Inserted SA0 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); + } + else if (pFault->Type == ABC_FAULT_SA1) + { + // Skip if already handled this node-input combination + if (Vec_PtrFind(vGIHandledsa1, keyBuf) != -1) + continue; + // Allocate memory for the key and copy the string + key = ABC_ALLOC(char, strlen(keyBuf) + 1); + strcpy(key, keyBuf); + Vec_PtrPush(vGIHandledsa1, key); + + // Create OR gate for (fanin OR y) + pOr = Abc_NtkCreateNode(pNtk); + + // Generate unique name for y + sprintf(yName, "y_%s_in%d", Abc_ObjName(pNode), fanin_index); + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + + // Insert OR gate between fanin and node + Abc_ObjPatchFanin(pNode, pFanin, pOr); + Abc_ObjAddFanin(pOr, pFanin); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + printf("[FaultSim] Inserted SA1 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); + } } } - Vec_PtrFree(vHandledsa0); - Vec_PtrFree(vHandledsa1); + + // Free the tracking vectors and their contents + Vec_PtrForEachEntry(char *, vGIHandledsa0, key, i) + ABC_FREE(key); + Vec_PtrForEachEntry(char *, vGIHandledsa1, key, i) + ABC_FREE(key); + Vec_PtrFree(vGOHandledsa0); + Vec_PtrFree(vGOHandledsa1); + Vec_PtrFree(vGIHandledsa0); + Vec_PtrFree(vGIHandledsa1); printf("[FaultSim] Completed fault simulation gate insertion\n"); } -ABC_NAMESPACE_IMPL_END \ No newline at end of file +void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) +{ + Abc_Ntk_t * pGoodNtk, * pFaultNtk, * pCombinedNtk; + Abc_Obj_t * pObj, * pFanin, * pXor; + Abc_Fault_t * pFault; + int i; + + printf("[FaultConstraint] Starting fault constraint network creation\n"); + + // Create copies of good and faulty circuits + pGoodNtk = Abc_NtkDup(pNtk); + pFaultNtk = Abc_NtkDup(pNtk); + printf("[FaultConstraint] Created circuit copies\n"); + + // Copy fault list to faulty network + pFaultNtk->pFaultList = pNtk->pFaultList; + pFaultNtk->nFaults = pNtk->nFaults; + pFaultNtk->nDetectedFaults = pNtk->nDetectedFaults; + pFaultNtk->nUndetectableFaults = pNtk->nUndetectableFaults; + pFaultNtk->nActivatedFaults = pNtk->nActivatedFaults; + pFaultNtk->nTestTriedFaults = pNtk->nTestTriedFaults; + printf("[FaultConstraint] Copied fault list to faulty network\n"); + + // Update fault node pointers to point to nodes in the faulty network + for (pFault = pFaultNtk->pFaultList; pFault; pFault = pFault->pNext) + { + pFault->pNode = pFault->pNode->pCopy; + } + printf("[FaultConstraint] Updated fault node pointers in faulty network\n"); + + // Insert fault simulation gates into the faulty circuit + Abc_NtkInsertFaultSimGates(pFaultNtk); + printf("[FaultConstraint] Completed fault simulation gate insertion\n"); + + // Create the combined network + pCombinedNtk = Abc_NtkAlloc(ABC_NTK_LOGIC, ABC_FUNC_SOP, 1); + pCombinedNtk->pName = Abc_UtilStrsav("fault_constraint"); + printf("[FaultConstraint] Created combined network\n"); + + // Copy PIs from good circuit + Abc_NtkForEachPi(pGoodNtk, pObj, i) { + Abc_Obj_t * pPi = Abc_NtkCreatePi(pCombinedNtk); + Abc_ObjAssignName(pPi, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + pObj->pCopy = pPi; + } + printf("[FaultConstraint] Copied PIs from good circuit\n"); + + // Copy additional PIs from faulty circuit with unique names + Abc_NtkForEachPi(pFaultNtk, pObj, i) { + printf("[FaultConstraint] Processing PI %s\n", Abc_ObjName(pObj)); + if (pObj->pCopy == NULL) { // Only copy if not already copied + Abc_Obj_t * pPi = Abc_NtkCreatePi(pCombinedNtk); + // Create unique name by appending "_f" for faulty circuit PIs + char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); + char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator + sprintf(pNewName, "%s_f", pName); + printf("[FaultConstraint] Creating unique name for PI %s: %s\n", Abc_ObjName(pObj), pNewName); + Abc_ObjAssignName(pPi, pNewName, NULL); + free(pName); // Free the original name + pObj->pCopy = pPi; + } + } + printf("[FaultConstraint] Copied additional PIs from faulty circuit\n"); + + // Copy nodes from good circuit + Abc_NtkForEachNode(pGoodNtk, pObj, i) { + Abc_Obj_t * pNode = Abc_NtkCreateNode(pCombinedNtk); + pNode->pData = Abc_SopRegister((Mem_Flex_t*)pCombinedNtk->pManFunc, (char*)pObj->pData); + Abc_ObjAssignName(pNode, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + pObj->pCopy = pNode; + } + printf("[FaultConstraint] Copied nodes from good circuit\n"); + + // Connect nodes in good circuit + Abc_NtkForEachNode(pGoodNtk, pObj, i) { + Abc_Obj_t * pNode = pObj->pCopy; + Abc_Obj_t * pFanin; + int j; + Abc_ObjForEachFanin(pObj, pFanin, j) { + if (pFanin->pCopy == NULL) { + printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); + continue; + } + Abc_ObjAddFanin(pNode, pFanin->pCopy); + } + } + printf("[FaultConstraint] Connected nodes in good circuit\n"); + + // Copy nodes from faulty circuit with unique names + Abc_NtkForEachNode(pFaultNtk, pObj, i) { + Abc_Obj_t * pNode = Abc_NtkCreateNode(pCombinedNtk); + pNode->pData = Abc_SopRegister((Mem_Flex_t*)pCombinedNtk->pManFunc, (char*)pObj->pData); + // Create unique name by appending "_f" for faulty circuit nodes + char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); + char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator + sprintf(pNewName, "%s_f", pName); + Abc_ObjAssignName(pNode, pNewName, NULL); + free(pName); // Free the original name + pObj->pCopy = pNode; + } + printf("[FaultConstraint] Copied nodes from faulty circuit\n"); + + // Connect nodes in faulty circuit + Abc_NtkForEachNode(pFaultNtk, pObj, i) { + Abc_Obj_t * pNode = pObj->pCopy; + Abc_Obj_t * pFanin; + int j; + Abc_ObjForEachFanin(pObj, pFanin, j) { + if (pFanin->pCopy == NULL) { + printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); + continue; + } + Abc_ObjAddFanin(pNode, pFanin->pCopy); + } + } + printf("[FaultConstraint] Connected nodes in faulty circuit\n"); + + // Connect corresponding good and faulty input PIs + int totalPIs = Abc_NtkPiNum(pGoodNtk); + int processedPIs = 0; + printf("[FaultConstraint] Total PIs to process: %d\n", totalPIs); + printf("[FaultConstraint] Combined network has %d PIs\n", Abc_NtkPiNum(pCombinedNtk)); + + Abc_NtkForEachPi(pGoodNtk, pObj, i) { + char * pGoodName = Abc_ObjName(pObj); + char * pFaultName = (char *)malloc(strlen(pGoodName) + 3); // +3 for "_f" and null terminator + sprintf(pFaultName, "%s_f", pGoodName); + + // Find the corresponding fault PI by name + Abc_Obj_t * pCombinedFaultPi = NULL; + Abc_Obj_t * pPi; + int j; + Abc_NtkForEachPi(pCombinedNtk, pPi, j) { + if (strcmp(Abc_ObjName(pPi), pFaultName) == 0) { + pCombinedFaultPi = pPi; + break; + } + } + free(pFaultName); + + if (!pCombinedFaultPi) { + printf("[FaultConstraint] Error: Could not find fault PI %s_f\n", pGoodName); + continue; + } + + printf("[FaultConstraint] Processing PI pair %d: Good PI %s, Fault PI %s\n", + i, pGoodName, Abc_ObjName(pCombinedFaultPi)); + + // Connect the good circuit PI to the faulty circuit PI's fanouts + Abc_Obj_t * pFanout; + int k; + int fanoutCount = 0; + Abc_ObjForEachFanout(pCombinedFaultPi, pFanout, k) { + // Remove the connection to the faulty PI + Abc_ObjDeleteFanin(pFanout, pCombinedFaultPi); + // Add connection to the good circuit PI + Abc_ObjAddFanin(pFanout, pObj->pCopy); + fanoutCount++; + } + printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); + + // Remove the redundant PI from the combined network + Abc_NtkDeleteObj(pCombinedFaultPi); + processedPIs++; + } + + printf("[FaultConstraint] Processed %d out of %d PIs\n", processedPIs, totalPIs); + printf("[FaultConstraint] Connected input PIs and removed redundant PIs\n"); + + // Create XOR gates to compare outputs + Abc_NtkForEachPo(pGoodNtk, pObj, i) { + // Get the fanin (output of the good circuit) + pFanin = Abc_ObjFanin0(pObj); + if (!pFanin || !pFanin->pCopy) { + printf("[FaultConstraint] Error: PO %s has invalid fanin\n", Abc_ObjName(pObj)); + continue; + } + + // Create XOR gate + pXor = Abc_NtkCreateNode(pCombinedNtk); + Abc_ObjAssignName(pXor, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + + // Connect the good circuit output to first input of XOR + Abc_ObjAddFanin(pXor, pFanin->pCopy); + + // Connect the faulty circuit output to second input of XOR + Abc_Obj_t * pFaultFanin = Abc_ObjFanin0(pFaultNtk->vPos->pArray[i]); + if (!pFaultFanin || !pFaultFanin->pCopy) { + printf("[FaultConstraint] Error: Fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); + continue; + } + Abc_ObjAddFanin(pXor, pFaultFanin->pCopy); + + // Set XOR functionality + pXor->pData = Abc_SopCreateXor((Mem_Flex_t*)pCombinedNtk->pManFunc, 2); + + // Create PO for the XOR output + Abc_Obj_t * pPo = Abc_NtkCreatePo(pCombinedNtk); + Abc_ObjAddFanin(pPo, pXor); + Abc_ObjAssignName(pPo, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + } + printf("[FaultConstraint] Created XOR gates and POs\n"); + + // Store the combined network + pNtk->pFaultConstraintNtk = pCombinedNtk; + printf("[FaultConstraint] Stored combined network\n"); + + // Clean up + Abc_NtkDelete(pGoodNtk); + Abc_NtkDelete(pFaultNtk); + printf("[FaultConstraint] Completed fault constraint network creation\n"); +} + +ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 513a2824f3..4069c45130 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -181,6 +181,7 @@ static int Abc_CommandAIGAugmentation ( Abc_Frame_t * pAbc, int argc, char // fault commands static int Abc_CommandFaultGen ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandFaultSim ( Abc_Frame_t * pAbc, int argc, char ** argv ); +static int Abc_CommandFaultConstraint ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandLogic ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandComb ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandMiter ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -1003,6 +1004,7 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Fault", "fault_gen", Abc_CommandFaultGen, 0 ); Cmd_CommandAdd( pAbc, "Fault", "fault_sim", Abc_CommandFaultSim, 1 ); + Cmd_CommandAdd( pAbc, "Fault", "fault_constraint", Abc_CommandFaultConstraint, 1 ); Cmd_CommandAdd( pAbc, "Various", "logic", Abc_CommandLogic, 1 ); Cmd_CommandAdd( pAbc, "Various", "comb", Abc_CommandComb, 1 ); Cmd_CommandAdd( pAbc, "Various", "miter", Abc_CommandMiter, 1 ); @@ -11282,6 +11284,53 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_CommandFaultConstraint( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + int c; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + + // Print fault list and statistics + Abc_NtkCreateFaultConstraintNetwork( pNtk ); + + return 0; + +usage: + Abc_Print( -2, "usage: fault_constraint [-h]\n" ); + Abc_Print( -2, "\t Generate stuck-at faults for the current network\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} /**Function************************************************************* diff --git a/src/base/io/io.c b/src/base/io/io.c index 5a80a22be0..e3834789fb 100644 --- a/src/base/io/io.c +++ b/src/base/io/io.c @@ -94,6 +94,7 @@ static int IoCommandWriteJson ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandWriteResub ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandWriteMM ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandWriteMMGia ( Abc_Frame_t * pAbc, int argc, char **argv ); +static int IoCommandWriteConstraintVerilog( Abc_Frame_t * pAbc, int argc, char **argv ); extern void Abc_FrameCopyLTLDataBase( Abc_Frame_t *pAbc, Abc_Ntk_t * pNtk ); @@ -176,6 +177,7 @@ void Io_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "I/O", "&write_resub", IoCommandWriteResub, 0 ); Cmd_CommandAdd( pAbc, "I/O", "write_mm", IoCommandWriteMM, 0 ); Cmd_CommandAdd( pAbc, "I/O", "&write_mm", IoCommandWriteMMGia, 0 ); + Cmd_CommandAdd( pAbc, "I/O", "write_constraint_verilog", IoCommandWriteConstraintVerilog, 0 ); } /**Function************************************************************* @@ -4423,6 +4425,95 @@ int IoCommandWriteMMGia( Abc_Frame_t * pAbc, int argc, char **argv ) return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int IoCommandWriteConstraintVerilog( Abc_Frame_t * pAbc, int argc, char **argv ) +{ + extern void Io_WriteVerilogLut( Abc_Ntk_t * pNtk, char * pFileName, int nLutSize, int fFixed, int fNoModules, int fNewInterface ); + char * pFileName; + int c, fFixed = 0, fOnlyAnds = 0, fNoModules = 0, fNewInterface = 0; + int nLutSize = -1; + + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "Kfamnh" ) ) != EOF ) + { + switch ( c ) + { + case 'K': + if ( globalUtilOptind >= argc ) + { + Abc_Print( -1, "Command line switch \"-K\" should be followed by an integer.\n" ); + goto usage; + } + nLutSize = atoi(argv[globalUtilOptind]); + globalUtilOptind++; + if ( nLutSize < 2 || nLutSize > 6 ) + goto usage; + break; + case 'f': + fFixed ^= 1; + break; + case 'a': + fOnlyAnds ^= 1; + break; + case 'm': + fNoModules ^= 1; + break; + case 'n': + fNewInterface ^= 1; + break; + case 'h': + goto usage; + default: + goto usage; + } + } + if ( pAbc->pNtkCur->pFaultConstraintNtk == NULL ) + { + fprintf( pAbc->Out, "Empty network.\n" ); + return 0; + } + if ( argc != globalUtilOptind + 1 ) + goto usage; + if ( fFixed ) + nLutSize = 6; + // get the output file name + pFileName = argv[globalUtilOptind]; + // call the corresponding file writer + if ( nLutSize >= 2 && nLutSize <= 6 ) + Io_WriteVerilogLut( pAbc->pNtkCur->pFaultConstraintNtk, pFileName, nLutSize, fFixed, fNoModules, fNewInterface ); + else + { + Abc_Ntk_t * pNtkTemp = Abc_NtkToNetlist( pAbc->pNtkCur->pFaultConstraintNtk ); + if ( !Abc_NtkHasAig(pNtkTemp) && !Abc_NtkHasMapping(pNtkTemp) ) + Abc_NtkToAig( pNtkTemp ); + Io_WriteVerilog( pNtkTemp, pFileName, fOnlyAnds, fNewInterface ); + Abc_NtkDelete( pNtkTemp ); + } + return 0; + +usage: + fprintf( pAbc->Err, "usage: write_verilog [-K num] [-famnh] \n" ); + fprintf( pAbc->Err, "\t writes the current network in Verilog format\n" ); + fprintf( pAbc->Err, "\t-K num : write the network using instances of K-LUTs (2 <= K <= 6) [default = not used]\n" ); + fprintf( pAbc->Err, "\t-f : toggle using fixed format [default = %s]\n", fFixed? "yes":"no" ); + fprintf( pAbc->Err, "\t-a : toggle writing expressions with only ANDs (without XORs and MUXes) [default = %s]\n", fOnlyAnds? "yes":"no" ); + fprintf( pAbc->Err, "\t-m : toggle writing additional modules [default = %s]\n", !fNoModules? "yes":"no" ); + fprintf( pAbc->Err, "\t-n : toggle writing generic PO names and assign-statements [default = %s]\n", fNewInterface? "yes":"no" ); + fprintf( pAbc->Err, "\t-h : print the help massage\n" ); + fprintf( pAbc->Err, "\tfile : the name of the file to write\n" ); + return 1; +} + //////////////////////////////////////////////////////////////////////// /// END OF FILE /// //////////////////////////////////////////////////////////////////////// From afa63165ee8eea6689ddb0871a8fc42cacadf74e Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Fri, 6 Jun 2025 14:36:39 +0800 Subject: [PATCH 12/58] fix GI and GO --- src/base/abc/abcFault.c | 261 ++++++++++++++++++++++++---------------- 1 file changed, 159 insertions(+), 102 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 25bca2aff6..ac0729c887 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -760,103 +760,104 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) { pC = pNode; // Output of the gate - if(pFault->Type == ABC_FAULT_SA0) - { - if(Vec_PtrFind(vGOHandledsa0, pC) != -1) - continue; - Vec_PtrPush(vGOHandledsa0, pC); + if (pFault->Type == ABC_FAULT_SA0) + { + if (Vec_PtrFind(vGOHandledsa0, pC) != -1) + continue; + Vec_PtrPush(vGOHandledsa0, pC); - Abc_Obj_t * pOR_pbo, * pf0_pbo, *pNotf0_pbo; + Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; - pAnd = Abc_NtkCreateNode(pNtk); - pOR_pbo = Abc_NtkCreateNode(pNtk); + pAnd = Abc_NtkCreateNode(pNtk); + pOR_pbo = Abc_NtkCreateNode(pNtk); // pbo for OR gate + + // Rewire the network so that pAnd replaces pC as the output signal + // Transfer all fanouts of pC to pAnd + Abc_ObjTransferFanout(pC, pAnd); + + // Generate unique names for f0 + // Generate unique names for x and y + sprintf(f0_Name, "f0_%s", Abc_ObjName(pC)); // Name for the fault signal + sprintf(xName, "x_%s", Abc_ObjName(pC)); + // Add new PIs + pf0_pbo = Abc_NtkCreatePi(pNtk); + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); + Abc_ObjAssignName(pX, xName, NULL); - // Rewire the network so that pAnd replaces pC as the output signal - // Transfer all fanouts of pC to pAnd - Abc_ObjTransferFanout(pC, pAnd); + // create NOT gate for a_f0 + // Create NOT gate for ~x + pNotf0_pbo = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); + pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // Generate unique names for x and y - sprintf(f0_Name, "f0_%s", Abc_ObjName(pC)); - sprintf(xName, "x_%s", Abc_ObjName(pC)); - // Add new PIs - pf0_pbo = Abc_NtkCreatePi(pNtk); - pX = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); - Abc_ObjAssignName(pX, xName, NULL); - - // create NOT gate for a_f0 - // Create NOT gate for ~x - pNotf0_pbo = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); - pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); - - pNotX = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotX, pX); - pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); - - // create OR gate for (c OR ~a_f0) - Abc_ObjAddFanin(pOR_pbo, pC); - Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); - pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - // create AND gate for (c AND ~x) - Abc_ObjAddFanin(pAnd, pC); - Abc_ObjAddFanin(pAnd, pNotX); - pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - // wire the constant 1 PO to the OR gate - Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_%s", Abc_ObjName(pC)); - Abc_ObjAssignName(pPo, PO_f0_Name, NULL); - Abc_ObjAddFanin(pPo, pOR_pbo); - - printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); - } - else if(pFault->Type == ABC_FAULT_SA1) - { - if(Vec_PtrFind(vGOHandledsa1, pC) != -1) - continue; + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // create OR gate for (c OR ~a_f0) + Abc_ObjAddFanin(pOR_pbo, pC); + Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); + pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // create AND gate for (c AND ~x) + Abc_ObjAddFanin(pAnd, pC); + Abc_ObjAddFanin(pAnd, pNotX); + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // wire the constant 1 PO to the OR gate + Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pPo, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo, pOR_pbo); + + printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); + } + else if (pFault->Type == ABC_FAULT_SA1) + { + if (Vec_PtrFind(vGOHandledsa1, pC) != -1) + continue; Vec_PtrPush(vGOHandledsa1, pC); - Abc_Obj_t * pAND_pbo, * pf1_pbo, * pNot_pbo; - - pOr = Abc_NtkCreateNode(pNtk); - pAND_pbo = Abc_NtkCreateNode(pNtk); - // Rewire the network so that pOr replaces pC as the output signal - // Transfer all fanouts of pC to pOr - Abc_ObjTransferFanout(pC, pOr); - - // Generate unique names for x and y - sprintf(f1_Name, "f1_%s", Abc_ObjName(pC)); - sprintf(yName, "y_%s", Abc_ObjName(pC)); - // Add new PIs - pf1_pbo = Abc_NtkCreatePi(pNtk); - pY = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); - Abc_ObjAssignName(pY, yName, NULL); - - // create OR gate for (c AND a_f1) - // Create OR gate for ((c AND ~x) OR y) - Abc_ObjAddFanin(pAND_pbo, pC); - Abc_ObjAddFanin(pAND_pbo, pf1_pbo); - pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - Abc_ObjAddFanin(pOr, pC); - Abc_ObjAddFanin(pOr, pY); - pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - // wire the constant 0 PO to the AND gate - // Create NOT gate for ~ (pC & pf1_pbo) - pNot_pbo = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNot_pbo, pAND_pbo); - pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); - - // wire the constant 1 PO to the NOT gate - Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_%s", Abc_ObjName(pC)); - Abc_ObjAssignName(pPo, PO_f1_Name, NULL); - Abc_ObjAddFanin(pPo, pNot_pbo); - + Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; + + pOr = Abc_NtkCreateNode(pNtk); + pAND_pbo = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pOr replaces pC as the output signal + // Transfer all fanouts of pC to pOr + Abc_ObjTransferFanout(pC, pOr); + + // Generate unique names for y + sprintf(f1_Name, "f1_%s", Abc_ObjName(pC)); + sprintf(yName, "y_%s", Abc_ObjName(pC)); + // Add new PIs + pf1_pbo = Abc_NtkCreatePi(pNtk); + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); + Abc_ObjAssignName(pY, yName, NULL); + + // create OR gate for (c AND a_f1) + // Create OR gate for ((c AND ~x) OR y) + Abc_ObjAddFanin(pAND_pbo, pC); + Abc_ObjAddFanin(pAND_pbo, pf1_pbo); + pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + Abc_ObjAddFanin(pOr, pC); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // wire the constant 0 PO to the AND gate + // Create NOT gate for ~ (pC & pf1_pbo) + pNot_pbo = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNot_pbo, pAND_pbo); + pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // wire the constant 1 PO to the NOT gate + Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f1_Name, "PO_pbo_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pPo, PO_f1_Name, NULL); + Abc_ObjAddFanin(pPo, pNot_pbo); + printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); } } @@ -864,8 +865,9 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) else if (pFault->Io == ABC_FAULT_GI) { int fanin_index = pFault->Index; - Abc_Obj_t * pFanin = Abc_ObjFanin(pNode, fanin_index); - if (!pFanin) { + Abc_Obj_t *pFanin = Abc_ObjFanin(pNode, fanin_index); + if (!pFanin) + { printf("[FaultSim] Error: Invalid fanin index %d for node %s\n", fanin_index, Abc_ObjName(pNode)); continue; } @@ -879,30 +881,58 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) // Skip if already handled this node-input combination if (Vec_PtrFind(vGIHandledsa0, keyBuf) != -1) continue; + // Allocate memory for the key and copy the string key = ABC_ALLOC(char, strlen(keyBuf) + 1); strcpy(key, keyBuf); Vec_PtrPush(vGIHandledsa0, key); + Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; + // Create AND gate for (fanin AND ~x) pAnd = Abc_NtkCreateNode(pNtk); - + pOR_pbo = Abc_NtkCreateNode(pNtk); + + // Generate unique names for f0 // Generate unique name for x + sprintf(f0_Name, "f0_%s_in%d", Abc_ObjName(pNode), fanin_index); sprintf(xName, "x_%s_in%d", Abc_ObjName(pNode), fanin_index); + + // Add new PIs + pf0_pbo = Abc_NtkCreatePi(pNtk); pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); Abc_ObjAssignName(pX, xName, NULL); + // create NOT gate for a_f0 + pNotf0_pbo = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); + pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + // Create NOT gate for ~x pNotX = Abc_NtkCreateNode(pNtk); Abc_ObjAddFanin(pNotX, pX); - pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); - + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // create OR gate for (fanin OR ~a_f0) + Abc_ObjPatchFanin(pNode, pFanin, pOR_pbo); + Abc_ObjAddFanin(pOR_pbo, pFanin); + Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); + pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // Insert AND gate between fanin and node Abc_ObjPatchFanin(pNode, pFanin, pAnd); Abc_ObjAddFanin(pAnd, pFanin); Abc_ObjAddFanin(pAnd, pNotX); - pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // wire the constant 1 PO to the OR gate + Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_%s_in%d", Abc_ObjName(pNode),fanin_index); + Abc_ObjAssignName(pPo, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo, pOR_pbo); + printf("[FaultSim] Inserted SA0 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); } else if (pFault->Type == ABC_FAULT_SA1) @@ -915,20 +945,47 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) strcpy(key, keyBuf); Vec_PtrPush(vGIHandledsa1, key); + Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; + // Create OR gate for (fanin OR y) pOr = Abc_NtkCreateNode(pNtk); - + // Create AND gate for (fanin AND f1) + pAND_pbo = Abc_NtkCreateNode(pNtk); + // Generate unique name for y sprintf(yName, "y_%s_in%d", Abc_ObjName(pNode), fanin_index); pY = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pY, yName, NULL); - + // Generate unique name for f1 + sprintf(f1_Name, "f1_%s_in%d", Abc_ObjName(pNode), fanin_index); + pf1_pbo = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); + + // Insert OR gate between fanin and node Abc_ObjPatchFanin(pNode, pFanin, pOr); Abc_ObjAddFanin(pOr, pFanin); Abc_ObjAddFanin(pOr, pY); - pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // Insert AND gate between fanin and node + Abc_ObjPatchFanin(pNode, pFanin, pAND_pbo); + Abc_ObjAddFanin(pAND_pbo, pFanin); + Abc_ObjAddFanin(pAND_pbo, pf1_pbo); + pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // wire the constant 0 PO to the AND gate + // Create NOT gate for ~ (pC & pf1_pbo) + pNot_pbo = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNot_pbo, pAND_pbo); + pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // wire the constant 1 PO to the NOT gate + Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f1_Name, "PO_pbo_%s_in%d", Abc_ObjName(pNode), fanin_index); + Abc_ObjAssignName(pPo, PO_f1_Name, NULL); + Abc_ObjAddFanin(pPo, pNot_pbo); + printf("[FaultSim] Inserted SA1 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); } } From 407981cf486a88a92446757ca2a23184698c80c1 Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Fri, 6 Jun 2025 14:59:38 +0800 Subject: [PATCH 13/58] format modification --- src/base/abc/abcFault.c | 172 +++++++++++++++++++--------------------- 1 file changed, 83 insertions(+), 89 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index ac0729c887..cab7e9f5b3 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -765,51 +765,48 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) if (Vec_PtrFind(vGOHandledsa0, pC) != -1) continue; Vec_PtrPush(vGOHandledsa0, pC); - + + // ================ Insert SA0 GO ACTIVATION PBO ================ Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; - - pAnd = Abc_NtkCreateNode(pNtk); pOR_pbo = Abc_NtkCreateNode(pNtk); // pbo for OR gate - - // Rewire the network so that pAnd replaces pC as the output signal - // Transfer all fanouts of pC to pAnd - Abc_ObjTransferFanout(pC, pAnd); - // Generate unique names for f0 - // Generate unique names for x and y sprintf(f0_Name, "f0_%s", Abc_ObjName(pC)); // Name for the fault signal - sprintf(xName, "x_%s", Abc_ObjName(pC)); - // Add new PIs pf0_pbo = Abc_NtkCreatePi(pNtk); - pX = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); - Abc_ObjAssignName(pX, xName, NULL); - // create NOT gate for a_f0 - // Create NOT gate for ~x pNotf0_pbo = Abc_NtkCreateNode(pNtk); Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - - pNotX = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotX, pX); - pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // create OR gate for (c OR ~a_f0) Abc_ObjAddFanin(pOR_pbo, pC); Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - - // create AND gate for (c AND ~x) - Abc_ObjAddFanin(pAnd, pC); - Abc_ObjAddFanin(pAnd, pNotX); - pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - // wire the constant 1 PO to the OR gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); sprintf(PO_f0_Name, "PO_pbo_%s", Abc_ObjName(pC)); Abc_ObjAssignName(pPo, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo, pOR_pbo); + // ================ End of SA0 GO ACTIVATION PBO ================ + + // ================ Insert FAULT GATE ======================= + pAnd = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pAnd replaces pC as the output signal + // Transfer all fanouts of pC to pAnd + Abc_ObjTransferFanout(pC, pAnd); + // Generate unique names for x and y + sprintf(xName, "x_%s", Abc_ObjName(pC)); + // Add new PIs + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pX, xName, NULL); + // Create NOT gate for ~x + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + // create AND gate for (c AND ~x) + Abc_ObjAddFanin(pAnd, pC); + Abc_ObjAddFanin(pAnd, pNotX); + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // ================== End of FAULT GATE ======================= printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); } @@ -819,44 +816,44 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) continue; Vec_PtrPush(vGOHandledsa1, pC); - Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; - pOr = Abc_NtkCreateNode(pNtk); + // ================ Insert SA1 GO ACTIVATION PBO ================ + Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; pAND_pbo = Abc_NtkCreateNode(pNtk); - // Rewire the network so that pOr replaces pC as the output signal - // Transfer all fanouts of pC to pOr - Abc_ObjTransferFanout(pC, pOr); - - // Generate unique names for y sprintf(f1_Name, "f1_%s", Abc_ObjName(pC)); - sprintf(yName, "y_%s", Abc_ObjName(pC)); - // Add new PIs pf1_pbo = Abc_NtkCreatePi(pNtk); - pY = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); - Abc_ObjAssignName(pY, yName, NULL); - - // create OR gate for (c AND a_f1) - // Create OR gate for ((c AND ~x) OR y) + // create AND gate for (c AND a_f1) Abc_ObjAddFanin(pAND_pbo, pC); Abc_ObjAddFanin(pAND_pbo, pf1_pbo); pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - - Abc_ObjAddFanin(pOr, pC); - Abc_ObjAddFanin(pOr, pY); - pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - // wire the constant 0 PO to the AND gate // Create NOT gate for ~ (pC & pf1_pbo) pNot_pbo = Abc_NtkCreateNode(pNtk); Abc_ObjAddFanin(pNot_pbo, pAND_pbo); pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // wire the constant 1 PO to the NOT gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); sprintf(PO_f1_Name, "PO_pbo_%s", Abc_ObjName(pC)); Abc_ObjAssignName(pPo, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo, pNot_pbo); + // ================ End of SA1 GO ACTIVATION PBO ================ + + // ================ Insert FAULT GATE ======================= + pOr = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pOr replaces pC as the output signal + // Transfer all fanouts of pC to pOr + Abc_ObjTransferFanout(pC, pOr); + // Generate unique names for y + sprintf(yName, "y_%s", Abc_ObjName(pC)); + // Add new PIs + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + // Create OR gate for ((c AND ~x) OR y) + Abc_ObjAddFanin(pOr, pC); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // ================= End of FAULT GATE ======================= printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); } @@ -887,51 +884,49 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) strcpy(key, keyBuf); Vec_PtrPush(vGIHandledsa0, key); - Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; - // Create AND gate for (fanin AND ~x) - pAnd = Abc_NtkCreateNode(pNtk); + // ================ Insert SA0 GI ACTIVATION PBO ================ + Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; + // Create OR gate for (fanin OR ~a_f0) pOR_pbo = Abc_NtkCreateNode(pNtk); - // Generate unique names for f0 - // Generate unique name for x sprintf(f0_Name, "f0_%s_in%d", Abc_ObjName(pNode), fanin_index); - sprintf(xName, "x_%s_in%d", Abc_ObjName(pNode), fanin_index); - - // Add new PIs pf0_pbo = Abc_NtkCreatePi(pNtk); - pX = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); - Abc_ObjAssignName(pX, xName, NULL); - // create NOT gate for a_f0 pNotf0_pbo = Abc_NtkCreateNode(pNtk); Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - - // Create NOT gate for ~x - pNotX = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotX, pX); - pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // create OR gate for (fanin OR ~a_f0) Abc_ObjPatchFanin(pNode, pFanin, pOR_pbo); Abc_ObjAddFanin(pOR_pbo, pFanin); Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // wire the constant 1 PO to the OR gate + Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_%s_in%d", Abc_ObjName(pNode),fanin_index); + Abc_ObjAssignName(pPo, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo, pOR_pbo); + // ================ End of SA0 GI ACTIVATION PBO ================ - + // ================ Insert FAULT GATE ======================= + // Create AND gate for (fanin AND ~x) + pAnd = Abc_NtkCreateNode(pNtk); + // Generate unique name for x + sprintf(xName, "x_%s_in%d", Abc_ObjName(pNode), fanin_index); + // Add new PIs + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pX, xName, NULL); + // Create NOT gate for ~x + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // Insert AND gate between fanin and node Abc_ObjPatchFanin(pNode, pFanin, pAnd); Abc_ObjAddFanin(pAnd, pFanin); Abc_ObjAddFanin(pAnd, pNotX); pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - - // wire the constant 1 PO to the OR gate - Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_%s_in%d", Abc_ObjName(pNode),fanin_index); - Abc_ObjAssignName(pPo, PO_f0_Name, NULL); - Abc_ObjAddFanin(pPo, pOR_pbo); + // ================ End of FAULT GATE ======================= printf("[FaultSim] Inserted SA0 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); } @@ -945,46 +940,45 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) strcpy(key, keyBuf); Vec_PtrPush(vGIHandledsa1, key); - Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; - // Create OR gate for (fanin OR y) - pOr = Abc_NtkCreateNode(pNtk); + // ================ Insert SA1 GI ACTIVATION PBO ================ + Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; // Create AND gate for (fanin AND f1) pAND_pbo = Abc_NtkCreateNode(pNtk); - - // Generate unique name for y - sprintf(yName, "y_%s_in%d", Abc_ObjName(pNode), fanin_index); - pY = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pY, yName, NULL); // Generate unique name for f1 sprintf(f1_Name, "f1_%s_in%d", Abc_ObjName(pNode), fanin_index); pf1_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); - - - // Insert OR gate between fanin and node - Abc_ObjPatchFanin(pNode, pFanin, pOr); - Abc_ObjAddFanin(pOr, pFanin); - Abc_ObjAddFanin(pOr, pY); - pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - // Insert AND gate between fanin and node Abc_ObjPatchFanin(pNode, pFanin, pAND_pbo); Abc_ObjAddFanin(pAND_pbo, pFanin); Abc_ObjAddFanin(pAND_pbo, pf1_pbo); pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - - // wire the constant 0 PO to the AND gate // Create NOT gate for ~ (pC & pf1_pbo) pNot_pbo = Abc_NtkCreateNode(pNtk); Abc_ObjAddFanin(pNot_pbo, pAND_pbo); pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // wire the constant 1 PO to the NOT gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); sprintf(PO_f1_Name, "PO_pbo_%s_in%d", Abc_ObjName(pNode), fanin_index); Abc_ObjAssignName(pPo, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo, pNot_pbo); + // ================ End of SA1 GI ACTIVATION PBO ================ + + + // ================ Insert FAULT GATE ======================= + // Create OR gate for (fanin OR y) + pOr = Abc_NtkCreateNode(pNtk); + // Generate unique name for y + sprintf(yName, "y_%s_in%d", Abc_ObjName(pNode), fanin_index); + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + // Insert OR gate between fanin and node + Abc_ObjPatchFanin(pNode, pFanin, pOr); + Abc_ObjAddFanin(pOr, pFanin); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // ================ End of FAULT GATE ======================= printf("[FaultSim] Inserted SA1 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); } From 7b7a59be7454c8d1641b2f7f3f6cb26be7add8b2 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Fri, 6 Jun 2025 17:51:35 +0800 Subject: [PATCH 14/58] fix: indention --- src/base/abc/abcFault.c | 88 ++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index c339d5e7b3..c009206bfe 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -757,58 +757,58 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) { pC = pNode; // Output of the gate - if(pFault->Type == ABC_FAULT_SA0) - { + if(pFault->Type == ABC_FAULT_SA0) + { if(Vec_PtrFind(vGOHandledsa0, pC) != -1) - continue; + continue; Vec_PtrPush(vGOHandledsa0, pC); - pAnd = Abc_NtkCreateNode(pNtk); - // Rewire the network so that pAnd replaces pC as the output signal - // Transfer all fanouts of pC to pAnd - Abc_ObjTransferFanout(pC, pAnd); + pAnd = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pAnd replaces pC as the output signal + // Transfer all fanouts of pC to pAnd + Abc_ObjTransferFanout(pC, pAnd); - // Generate unique names for x and y - sprintf(xName, "x_%s", Abc_ObjName(pC)); - // Add new PIs - pX = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pX, xName, NULL); - - // Create NOT gate for ~x - pNotX = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotX, pX); - pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); - - // Create AND gate for (c AND ~x) - Abc_ObjAddFanin(pAnd, pC); - Abc_ObjAddFanin(pAnd, pNotX); - pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); - } - else if(pFault->Type == ABC_FAULT_SA1) - { + // Generate unique names for x and y + sprintf(xName, "x_%s", Abc_ObjName(pC)); + // Add new PIs + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pX, xName, NULL); + + // Create NOT gate for ~x + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t*)pNtk->pManFunc); + + // Create AND gate for (c AND ~x) + Abc_ObjAddFanin(pAnd, pC); + Abc_ObjAddFanin(pAnd, pNotX); + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); + } + else if(pFault->Type == ABC_FAULT_SA1) + { if(Vec_PtrFind(vGOHandledsa1, pC) != -1) - continue; + continue; Vec_PtrPush(vGOHandledsa1, pC); - pOr = Abc_NtkCreateNode(pNtk); - // Rewire the network so that pOr replaces pC as the output signal - // Transfer all fanouts of pC to pOr - Abc_ObjTransferFanout(pC, pOr); + pOr = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pOr replaces pC as the output signal + // Transfer all fanouts of pC to pOr + Abc_ObjTransferFanout(pC, pOr); - // Generate unique names for x and y - sprintf(yName, "y_%s", Abc_ObjName(pC)); - // Add new PIs - pY = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pY, yName, NULL); - - // Create OR gate for ((c AND ~x) OR y) - Abc_ObjAddFanin(pOr, pC); - Abc_ObjAddFanin(pOr, pY); - pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); - - printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); + // Generate unique names for x and y + sprintf(yName, "y_%s", Abc_ObjName(pC)); + // Add new PIs + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + + // Create OR gate for ((c AND ~x) OR y) + Abc_ObjAddFanin(pOr, pC); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, 2, NULL); + + printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); } } // Handle gate input (GI) faults From 4e7a331a069bfe456b9af1ffc799fb05daa41ac7 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Fri, 6 Jun 2025 18:30:27 +0800 Subject: [PATCH 15/58] add: testpatterns --- src/base/abc/abc.h | 10 +++- src/base/abc/abcFault.c | 101 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 2 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index be9b4b3bfb..574e41ea57 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -181,6 +181,8 @@ struct Abc_Ntk_t_ Vec_Ptr_t * vPios; // the array of PIOs Vec_Ptr_t * vBoxes; // the array of boxes Vec_Ptr_t * vLtlProperties; + // test pattern list information + Vec_Ptr_t * vTestPatterns; // the array of test patterns (each pattern is Vec_Int_t*) // fault list information Abc_Fault_t * pFaultList; // the list of faults int nFaults; // total number of faults @@ -1119,8 +1121,12 @@ extern ABC_DLL void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk); extern ABC_DLL void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk); - - +// Test pattern management functions +extern ABC_DLL void Abc_NtkInitTestPatterns( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); +extern ABC_DLL void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ); +extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); +extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); ABC_NAMESPACE_HEADER_END diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index c009206bfe..eecc41411a 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -1110,4 +1110,105 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) printf("[FaultConstraint] Completed fault constraint network creation\n"); } +/**Function************************************************************* + + Synopsis [Initializes the test pattern list.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkInitTestPatterns( Abc_Ntk_t * pNtk ) +{ + if ( pNtk->vTestPatterns ) + Abc_NtkFreeTestPatterns( pNtk ); + pNtk->vTestPatterns = Vec_PtrAlloc( 100 ); // Initial capacity of 100 patterns +} + +/**Function************************************************************* + + Synopsis [Adds a test pattern to the network.] + + Description [The pattern should be a Vec_Int_t* containing 0s and 1s + with size equal to the number of primary inputs.] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ) +{ + Vec_Int_t * vPatternCopy; + // Check if test pattern list is initialized + if ( !pNtk->vTestPatterns ) + Abc_NtkInitTestPatterns( pNtk ); + // Create a copy of the pattern + vPatternCopy = Vec_IntDup( vPattern ); + // Add the pattern to the list + Vec_PtrPush( pNtk->vTestPatterns, vPatternCopy ); +} + +/**Function************************************************************* + + Synopsis [Frees the test pattern list.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ) +{ + Vec_Int_t * vPattern; + int i; + if ( !pNtk->vTestPatterns ) + return; + // Free each pattern + Vec_PtrForEachEntry( Vec_Int_t *, pNtk->vTestPatterns, vPattern, i ) + Vec_IntFree( vPattern ); + // Free the list itself + Vec_PtrFree( pNtk->vTestPatterns ); + pNtk->vTestPatterns = NULL; +} + +/**Function************************************************************* + + Synopsis [Returns the number of test patterns.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ) +{ + return pNtk->vTestPatterns ? Vec_PtrSize(pNtk->vTestPatterns) : 0; +} + +/**Function************************************************************* + + Synopsis [Gets a specific test pattern by index.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ) +{ + assert( pNtk->vTestPatterns ); + assert( i >= 0 && i < Vec_PtrSize(pNtk->vTestPatterns) ); + return (Vec_Int_t *)Vec_PtrEntry( pNtk->vTestPatterns, i ); +} + ABC_NAMESPACE_IMPL_END \ No newline at end of file From c54a85c3fde13a8fff25e23ac45876df43a227ca Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 30 May 2025 21:13:11 +0800 Subject: [PATCH 16/58] add pbo solver mixed-bag --- .gitmodules | 3 +++ pbcomp24-cg | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 pbcomp24-cg diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..603fdb92bf --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "pbcomp24-cg"] + path = pbcomp24-cg + url = https://bitbucket.org/coreo-group/pbcomp24-cg.git diff --git a/pbcomp24-cg b/pbcomp24-cg new file mode 160000 index 0000000000..d1444188c9 --- /dev/null +++ b/pbcomp24-cg @@ -0,0 +1 @@ +Subproject commit d1444188c9d0170d03648d5abc75692d774934e7 From 4159f3e5360b99487656249add9903d18e2cff37 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 6 Jun 2025 00:16:26 +0800 Subject: [PATCH 17/58] add runpbo command in abc --- src/base/abc/abc.h | 6 ++++ src/base/abc/abcPbo.c | 22 ++++++++++++++ src/base/abc/module.make | 1 + src/base/abci/abc.c | 66 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 src/base/abc/abcPbo.c diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 574e41ea57..e65995c12b 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1121,12 +1121,18 @@ extern ABC_DLL void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk); extern ABC_DLL void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk); +<<<<<<< HEAD // Test pattern management functions extern ABC_DLL void Abc_NtkInitTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); extern ABC_DLL void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); +======= + +// Pseudo Boolean Optimization Related +extern ABC_DLL void Abc_ExecPBO(); +>>>>>>> ee86311e1 (add runpbo command in abc) ABC_NAMESPACE_HEADER_END diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c new file mode 100644 index 0000000000..7510d9c615 --- /dev/null +++ b/src/base/abc/abcPbo.c @@ -0,0 +1,22 @@ +#include "abc.h" +#include +#include +#include + +ABC_NAMESPACE_IMPL_START + +void Abc_ExecPBO() +{ + pid_t pid = fork(); + + if (pid == 0) { + // Child process: replace image with "ls -l" + execl("/bin/ls", "ls", "-l", (char *)NULL); + _exit(1); // exec failed + } else { + // Parent process: wait for child to finish + waitpid(pid, NULL, 0); + } +} + +ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abc/module.make b/src/base/abc/module.make index 91a45b53da..4c0a38f1a3 100644 --- a/src/base/abc/module.make +++ b/src/base/abc/module.make @@ -18,6 +18,7 @@ SRC += src/base/abc/abcAig.c \ src/base/abc/abcNetlist.c \ src/base/abc/abcNtk.c \ src/base/abc/abcObj.c \ + src/base/abc/abcPbo.c \ src/base/abc/abcRefs.c \ src/base/abc/abcShow.c \ src/base/abc/abcSop.c \ diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 4069c45130..01c910eff5 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -182,6 +182,10 @@ static int Abc_CommandAIGAugmentation ( Abc_Frame_t * pAbc, int argc, char static int Abc_CommandFaultGen ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandFaultSim ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandFaultConstraint ( Abc_Frame_t * pAbc, int argc, char ** argv ); + +// PBO commands +static int Abc_CommandRunPBO ( Abc_Frame_t * pAbc, int argc, char ** argv ); + static int Abc_CommandLogic ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandComb ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandMiter ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -1005,6 +1009,9 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Fault", "fault_gen", Abc_CommandFaultGen, 0 ); Cmd_CommandAdd( pAbc, "Fault", "fault_sim", Abc_CommandFaultSim, 1 ); Cmd_CommandAdd( pAbc, "Fault", "fault_constraint", Abc_CommandFaultConstraint, 1 ); + + Cmd_CommandAdd( pAbc, "Fault", "pbo", Abc_CommandRunPBO, 0 ); + Cmd_CommandAdd( pAbc, "Various", "logic", Abc_CommandLogic, 1 ); Cmd_CommandAdd( pAbc, "Various", "comb", Abc_CommandComb, 1 ); Cmd_CommandAdd( pAbc, "Various", "miter", Abc_CommandMiter, 1 ); @@ -11284,6 +11291,7 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } + /**Function************************************************************* Synopsis [] @@ -11332,6 +11340,64 @@ int Abc_CommandFaultConstraint( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + int c; + FILE * pFile; + char * pFileName; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + pFileName = "atpg.cnf"; + pFile = fopen( pFileName, "rb" ); + if ( pFile == NULL ) + { + printf( "Cannot open file \"%s\" for reading.\n", pFileName ); + return 0; + } + fclose( pFile ); + + Abc_ExecPBO(); + + return 0; + +usage: + Abc_Print( -2, "usage: pbo [-h]\n" ); + Abc_Print( -2, "\t Create child process to run PBO on generated cnf file\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + + /**Function************************************************************* Synopsis [] From d906cf0db35bb2740ae60785e04c921ff9614c5a Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 6 Jun 2025 01:58:20 +0800 Subject: [PATCH 18/58] add pbo runner --- runPBO.c | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 runPBO.c diff --git a/runPBO.c b/runPBO.c new file mode 100644 index 0000000000..6764981350 --- /dev/null +++ b/runPBO.c @@ -0,0 +1,144 @@ +#include +#include +#include + +#define MAX_LINE 1024 +#define MAX_LITS 1024 + +typedef struct { + int num_vars; + int num_clauses; + int** clauses; + int* clause_sizes; +} CNF; + +CNF* parse_cnf(const char* filename) { + FILE* file = fopen(filename, "r"); + if (!file) { + perror("Error opening CNF file"); + return NULL; + } + + CNF* cnf = malloc(sizeof(CNF)); + cnf->num_vars = 0; + cnf->num_clauses = 0; + cnf->clauses = NULL; + cnf->clause_sizes = NULL; + + char line[MAX_LINE]; + int clause_index = 0; + while (fgets(line, sizeof(line), file)) { + if (line[0] == 'c') continue; // Skip comments + if (line[0] == 'p') { + sscanf(line, "p cnf %d %d", &cnf->num_vars, &cnf->num_clauses); + cnf->clauses = malloc(cnf->num_clauses * sizeof(int*)); + cnf->clause_sizes = malloc(cnf->num_clauses * sizeof(int)); + continue; + } + + // Parse clause + int lit; + int* clause = malloc(MAX_LITS * sizeof(int)); + int size = 0; + char* token = strtok(line, " \t\n"); + while (token) { + lit = atoi(token); + if (lit == 0) break; + clause[size++] = lit; + token = strtok(NULL, " \t\n"); + } + // printf("num of clauses: %d\n", clause_index); + cnf->clauses[clause_index++] = clause; + cnf->clause_sizes[clause_index - 1] = size; + } + + fclose(file); + return cnf; +} + +void write_opb(const char* filename, CNF* cnf, int* obj, int size) { + FILE* file = fopen(filename, "w"); + if (!file) { + perror("Error opening OPB file"); + return; + } + + fprintf(file, "* #variable= %d #constraint= %d\n", cnf->num_vars, cnf->num_clauses); + + if (size > 0) { + fprintf(file, "min: "); + for (int i = 0; i < size; i++) { + int coef = obj[i]; + if (coef > cnf->num_vars){ + fprintf(stderr, "Invalid objective variable %d: must be less than or equal to the number of variables (%d)\n", coef, cnf->num_vars); + exit(-1); + } + fprintf(file, "-1 x%d ", coef); + } + fprintf(file, ";\n"); + } + + for (int i = 0; i < cnf->num_clauses; i++) { + for (int j = 0; j < cnf->clause_sizes[i]; j++) { + int lit = cnf->clauses[i][j]; + if (lit < 0) + fprintf(file, "1 ~x%d ", -lit); + else + fprintf(file, "1 x%d ", lit); + } + fprintf(file, ">= 1;\n"); + } + + fclose(file); +} + +int main(int argc, char* argv[]) { + if (argc < 3) { + printf("Usage: %s input.cnf output.opb\n", argv[0]); + return 1; + } + + // hard code the input/output file name + // so that abc can call and use directly + // const char* input_filename = "atpg.cnf"; + // const char* opb_filename = "output.opb"; + const char* input_filename = argv[1]; + const char* opb_filename = argv[2]; + + int* obj_variables = malloc((argc - 3) * sizeof(int)); + for (int i = 3; i < argc; ++i) { + int num = atoi(argv[i]); + if (num > 0){ + obj_variables[i - 3] = num; + } + else{ + fprintf(stderr, "objective variables should be possitive integers\n"); + exit(-1); + } + + } + int obj_size = argc - 3; + + CNF* cnf = parse_cnf(input_filename); + if (!cnf) return 1; + + write_opb(opb_filename, cnf, obj_variables, obj_size); + + // Free allocated memory + for (int i = 0; i < cnf->num_clauses; i++) { + free(cnf->clauses[i]); + } + free(cnf->clauses); + free(cnf->clause_sizes); + free(cnf); + + char command[1024]; + snprintf(command, sizeof(command), "./pbcomp24-cg/build/mixed-bag %s", opb_filename); // output_filename is like "myfile.opb" + int result = system(command); + if (result == -1) { + perror("system"); + } + + return 0; +} + From 42a07a862a95f6a70a47df47c5785aacdd9f8a65 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 6 Jun 2025 19:49:42 +0800 Subject: [PATCH 19/58] change execv input --- src/base/abc/abcPbo.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index 7510d9c615..785d7a45a7 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -10,8 +10,9 @@ void Abc_ExecPBO() pid_t pid = fork(); if (pid == 0) { - // Child process: replace image with "ls -l" - execl("/bin/ls", "ls", "-l", (char *)NULL); + // Child process: executing pbo solver + char *argv[] = {"./solver", arg_str, NULL}; + execv("./solver", argv); _exit(1); // exec failed } else { // Parent process: wait for child to finish From b3dd771f6a2dc3ee051f00380cc31fbed17824c0 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 6 Jun 2025 20:27:00 +0800 Subject: [PATCH 20/58] remove conflict log --- src/base/abc/abc.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index e65995c12b..1c6eae6e16 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1121,18 +1121,15 @@ extern ABC_DLL void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk); extern ABC_DLL void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk); -<<<<<<< HEAD // Test pattern management functions extern ABC_DLL void Abc_NtkInitTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); extern ABC_DLL void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); -======= // Pseudo Boolean Optimization Related extern ABC_DLL void Abc_ExecPBO(); ->>>>>>> ee86311e1 (add runpbo command in abc) ABC_NAMESPACE_HEADER_END From 59e2a2c801c49a4b0758430a62ecabb6e95b0b9f Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 6 Jun 2025 20:51:20 +0800 Subject: [PATCH 21/58] pbo command --- src/base/abc/abcPbo.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index 785d7a45a7..5c3d1c3b9e 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -11,7 +11,15 @@ void Abc_ExecPBO() if (pid == 0) { // Child process: executing pbo solver - char *argv[] = {"./solver", arg_str, NULL}; + char arg_str[100] = {0}; + for (int i = 2; i < 10; ++i) { + char temp[16]; + sprintf(temp, "%d", i); + strcat(arg_str, temp); + if (i < 10 - 1) strcat(arg_str, " "); + } + + char *argv[] = {"./solver", "atpg.cnf", "output.opb", arg_str, NULL}; execv("./solver", argv); _exit(1); // exec failed } else { From d15b2980ba1e6aa2e996d64a3cf1e9acb5fdb52e Mon Sep 17 00:00:00 2001 From: xNTsai Date: Fri, 6 Jun 2025 20:58:21 +0800 Subject: [PATCH 22/58] add: assign test patterns --- src/base/abc/abc.h | 1 + src/base/abc/abcFault.c | 80 +++++++++++++++++++++- src/base/abci/abc.c | 143 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+), 2 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 574e41ea57..faf8f2d539 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1127,6 +1127,7 @@ extern ABC_DLL void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_I extern ABC_DLL void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); +extern ABC_DLL void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ); ABC_NAMESPACE_HEADER_END diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index eecc41411a..98a9648e9a 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -946,7 +946,6 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) // Copy additional PIs from faulty circuit with unique names Abc_NtkForEachPi(pFaultNtk, pObj, i) { - printf("[FaultConstraint] Processing PI %s\n", Abc_ObjName(pObj)); if (pObj->pCopy == NULL) { // Only copy if not already copied Abc_Obj_t * pPi = Abc_NtkCreatePi(pCombinedNtk); // Create unique name by appending "_f" for faulty circuit PIs @@ -1055,7 +1054,7 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) // Add connection to the good circuit PI Abc_ObjAddFanin(pFanout, pObj->pCopy); fanoutCount++; - } + } printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); // Remove the redundant PI from the combined network @@ -1211,4 +1210,81 @@ Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ) return (Vec_Int_t *)Vec_PtrEntry( pNtk->vTestPatterns, i ); } +/**Function************************************************************* + + Synopsis [Assigns the latest test pattern to the fault constraint network.] + + Description [Takes the latest test pattern from vTestPatterns and assigns + it to the first set of PIs in the fault constraint network, + preserving the faulty PI assignments.] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ) +{ + Abc_Ntk_t * pFaultNtk; + Vec_Int_t * vLatestPattern; + Abc_Obj_t * pPi, * pObj, * pConst0, * pConst1; + int i, nPis; + + // Check if network and constraint network exist + if ( !pNtk || !pNtk->pFaultConstraintNtk || !pNtk->vTestPatterns ) + { + printf("[FaultConstraint] Error: Network or constraint network not found\n"); + return; + } + + pFaultNtk = pNtk->pFaultConstraintNtk; + + // Get the latest test pattern + vLatestPattern = Abc_NtkGetTestPattern(pNtk, Abc_NtkTestPatternNum(pNtk) - 1); + if (!vLatestPattern) + { + printf("[FaultConstraint] Error: Latest test pattern not found\n"); + return; + } + + // number of PIs in the test pattern + nPis = Vec_IntSize(vLatestPattern); + + // Create constant nodes if they don't exist + pConst0 = Abc_NtkCreateNodeConst0(pFaultNtk); + pConst1 = Abc_NtkCreateNodeConst1(pFaultNtk); + + int test_pattern_index = 0; + // We only want to assign the first nPis (good circuit inputs) + Abc_NtkForEachPi(pFaultNtk, pPi, i) + { + if (test_pattern_index >= nPis) + break; + + + // Get the value from the test pattern + int value = Vec_IntEntry(vLatestPattern, test_pattern_index); + + // Replace PI's fanout connections with constant node + if (value == 0) + Abc_ObjTransferFanout(pPi, pConst0); + else + Abc_ObjTransferFanout(pPi, pConst1); + + test_pattern_index++; + } + + + // Delete the first test_pattern_index PIs from the fault constraint network + for (int j = 0; j < test_pattern_index; j++) + { + // Always get the first PI (index 0) since after each deletion, PIs shift down + pObj = Abc_NtkPi(pFaultNtk, 0); + if (!pObj) break; // Safety check + Abc_NtkDeleteObj(pObj); + } + + printf("[AssignTestPattern] Assigned latest test pattern to constraint network PIs as constants\n"); +} + ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 4069c45130..c36122e18d 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -182,6 +182,8 @@ static int Abc_CommandAIGAugmentation ( Abc_Frame_t * pAbc, int argc, char static int Abc_CommandFaultGen ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandFaultSim ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandFaultConstraint ( Abc_Frame_t * pAbc, int argc, char ** argv ); +static int Abc_CommandAddTp ( Abc_Frame_t * pAbc, int argc, char ** argv ); +static int Abc_CommandInsertTp ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandLogic ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandComb ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandMiter ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -1005,6 +1007,8 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Fault", "fault_gen", Abc_CommandFaultGen, 0 ); Cmd_CommandAdd( pAbc, "Fault", "fault_sim", Abc_CommandFaultSim, 1 ); Cmd_CommandAdd( pAbc, "Fault", "fault_constraint", Abc_CommandFaultConstraint, 1 ); + Cmd_CommandAdd( pAbc, "Fault", "add_tp", Abc_CommandAddTp, 1 ); + Cmd_CommandAdd( pAbc, "Fault", "insert_tp", Abc_CommandInsertTp, 1 ); Cmd_CommandAdd( pAbc, "Various", "logic", Abc_CommandLogic, 1 ); Cmd_CommandAdd( pAbc, "Various", "comb", Abc_CommandComb, 1 ); Cmd_CommandAdd( pAbc, "Various", "miter", Abc_CommandMiter, 1 ); @@ -11332,6 +11336,145 @@ int Abc_CommandFaultConstraint( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_CommandAddTp( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + Vec_Int_t * vPattern; + char * pPattern; + int c, i; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + if ( argc != globalUtilOptind + 1 ) + { + Abc_Print( -1, "Please provide a test pattern.\n" ); + goto usage; + } + + // Get the pattern string + pPattern = argv[globalUtilOptind]; + + // Create vector to store the pattern + vPattern = Vec_IntAlloc(strlen(pPattern)); + + // Convert string to vector of integers + for (i = 0; i < strlen(pPattern); i++) + { + if (pPattern[i] == '0') + Vec_IntPush(vPattern, 0); + else if (pPattern[i] == '1') + Vec_IntPush(vPattern, 1); + else + { + Vec_IntFree(vPattern); + Abc_Print( -1, "Invalid test pattern. Use only 0s and 1s.\n" ); + return 1; + } + } + + // Add the pattern to the network + Abc_NtkAddTestPattern(pNtk, vPattern); + + // Free the temporary vector + Vec_IntFree(vPattern); + + return 0; + +usage: + Abc_Print( -2, "usage: add_tp [-h]\n" ); + Abc_Print( -2, "\t Add a test pattern to the network\n" ); + Abc_Print( -2, "\t: Binary string of 0s and 1s\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_CommandInsertTp( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + int c; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + if ( !pNtk->pFaultConstraintNtk ) + { + Abc_Print( -1, "Fault constraint network not created. Use fault_constraint first.\n" ); + return 1; + } + + if ( !pNtk->vTestPatterns || Abc_NtkTestPatternNum(pNtk) == 0 ) + { + Abc_Print( -1, "No test patterns available. Add test patterns first using add_tp.\n" ); + return 1; + } + + // Assign the latest test pattern to the constraint network + Abc_NtkAssignLatestPatternToConstraintNetwork(pNtk); + + return 0; + +usage: + Abc_Print( -2, "usage: insert_tp [-h]\n" ); + Abc_Print( -2, "\t Insert the latest test pattern into the fault constraint network\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + /**Function************************************************************* Synopsis [] From 4a71633585d60590040ddbcc699f5a08ec44a7ed Mon Sep 17 00:00:00 2001 From: xNTsai Date: Fri, 6 Jun 2025 21:47:56 +0800 Subject: [PATCH 23/58] fix: } --- src/base/abci/abc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 2103067fb1..1f96fd20af 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11477,7 +11477,7 @@ int Abc_CommandInsertTp( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Print( -2, "\t-h : print the command usage\n"); return 1; } -} + /**Function************************************************************* From 40162224140151f47c77f985719cf083adc0f510 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 6 Jun 2025 22:54:35 +0800 Subject: [PATCH 24/58] initial parse log --- runPBO.c | 31 ++++++-- runPBO.cpp | 160 ++++++++++++++++++++++++++++++++++++++++++ src/base/abc/abc.h | 2 +- src/base/abc/abcPbo.c | 6 +- src/base/abci/abc.c | 2 +- 5 files changed, 193 insertions(+), 8 deletions(-) create mode 100644 runPBO.cpp diff --git a/runPBO.c b/runPBO.c index 6764981350..849ba4b80d 100644 --- a/runPBO.c +++ b/runPBO.c @@ -33,8 +33,11 @@ CNF* parse_cnf(const char* filename) { sscanf(line, "p cnf %d %d", &cnf->num_vars, &cnf->num_clauses); cnf->clauses = malloc(cnf->num_clauses * sizeof(int*)); cnf->clause_sizes = malloc(cnf->num_clauses * sizeof(int)); + // fprintf(stderr, "Number of variables: %d\n", cnf->num_vars); + // fprintf(stderr, "Number of clauses: %d\n", cnf->num_clauses); continue; } + // printf("num of clauses: %d\n", clause_index); // Parse clause int lit; @@ -50,6 +53,9 @@ CNF* parse_cnf(const char* filename) { // printf("num of clauses: %d\n", clause_index); cnf->clauses[clause_index++] = clause; cnf->clause_sizes[clause_index - 1] = size; + if (clause_index >= cnf->num_clauses) { + break; + } } fclose(file); @@ -104,7 +110,7 @@ int main(int argc, char* argv[]) { // const char* opb_filename = "output.opb"; const char* input_filename = argv[1]; const char* opb_filename = argv[2]; - + int* obj_variables = malloc((argc - 3) * sizeof(int)); for (int i = 3; i < argc; ++i) { int num = atoi(argv[i]); @@ -121,7 +127,7 @@ int main(int argc, char* argv[]) { CNF* cnf = parse_cnf(input_filename); if (!cnf) return 1; - + fprintf(stderr, "CNF parsed successfully\n"); write_opb(opb_filename, cnf, obj_variables, obj_size); // Free allocated memory @@ -131,14 +137,29 @@ int main(int argc, char* argv[]) { free(cnf->clauses); free(cnf->clause_sizes); free(cnf); + fprintf(stderr, "OPB file written successfully\n"); char command[1024]; snprintf(command, sizeof(command), "./pbcomp24-cg/build/mixed-bag %s", opb_filename); // output_filename is like "myfile.opb" - int result = system(command); - if (result == -1) { - perror("system"); + FILE *fp = popen(command, "r"); // "r" to read command output + if (fp == NULL) { + perror("popen"); + return 1; } + char buffer[256]; + while (fgets(buffer, sizeof(buffer), fp) != NULL) { + if (buffer[0] != 'v') continue; // Skip empty lines + printf("Output: %s", buffer); // Print the output line by line + } + + int status = pclose(fp); // Close and get return status + if (status == -1) { + perror("pclose"); + } + + + return 0; } diff --git a/runPBO.cpp b/runPBO.cpp new file mode 100644 index 0000000000..2e395fdad1 --- /dev/null +++ b/runPBO.cpp @@ -0,0 +1,160 @@ +#include +#include +#include +#include +#include +#include +#include + +#define MAX_LINE 1024 +#define MAX_LITS 1024 + +struct CNF { + int num_vars; + int num_clauses; + std::vector> clauses; +}; + +CNF* parse_cnf(const std::string& filename) { + std::ifstream file(filename); + if (!file.is_open()) { + perror("Error opening CNF file"); + return nullptr; + } + + CNF* cnf = new CNF; + cnf->num_vars = 0; + cnf->num_clauses = 0; + + std::string line; + int clause_index = 0; + while (std::getline(file, line)) { + if (line.empty() || line[0] == 'c') continue; // Skip comments + if (line[0] == 'p') { + sscanf(line.c_str(), "p cnf %d %d", &cnf->num_vars, &cnf->num_clauses); + cnf->clauses.resize(cnf->num_clauses); + continue; + } + + std::istringstream iss(line); + int lit; + std::vector clause; + while (iss >> lit && lit != 0) { + clause.push_back(lit); + } + cnf->clauses[clause_index++] = clause; + if (clause_index >= cnf->num_clauses) break; + } + + file.close(); + return cnf; +} + +void write_opb(const std::string& filename, const CNF* cnf, const std::vector& obj) { + std::ofstream file(filename); + if (!file.is_open()) { + perror("Error opening OPB file"); + return; + } + + file << "* #variable= " << cnf->num_vars << " #constraint= " << cnf->num_clauses << "\n"; + + if (!obj.empty()) { + file << "min: "; + for (int coef : obj) { + if (coef > cnf->num_vars) { + std::cerr << "Invalid objective variable " << coef + << ": must be <= " << cnf->num_vars << std::endl; + exit(-1); + } + file << "-1 x" << coef << " "; + } + file << ";\n"; + } + + for (const auto& clause : cnf->clauses) { + for (int lit : clause) { + if (lit < 0) + file << "1 ~x" << -lit << " "; + else + file << "1 x" << lit << " "; + } + file << ">= 1;\n"; + } + + file.close(); +} + +void execute_solver(const std::string& opb_filename) { + std::string command = "./pbcomp24-cg/build/mixed-bag " + opb_filename; + FILE* fp = popen(command.c_str(), "r"); + if (!fp) { + perror("popen"); + exit(1); + } + + char buffer[256]; + while (fgets(buffer, sizeof(buffer), fp)) { + if (buffer[0] != 'v') continue; + + std::istringstream iss(buffer); + std::string token; + std::vector literals; + + iss >> token; // skip 'v' + while (iss >> token) { + literals.push_back(token); + } + + int total = literals.size(); + int start = std::max(0, total - 10); + int end = std::max(0, total - 5); + + std::string bitstring; + for (int i = start; i < end; ++i) { + const std::string& lit = literals[i]; + bitstring += (lit[0] != '-') ? '1' : '0'; + } + + std::cout << bitstring << "\n"; + + } + + int status = pclose(fp); + if (status == -1) { + perror("pclose"); + } +} + +int main(int argc, char* argv[]) { + if (argc < 3) { + std::cout << "Usage: " << argv[0] << " input.cnf output.opb [obj_vars...]\n"; + return 1; + } + + std::string input_filename = argv[1]; + std::string opb_filename = argv[2]; + std::vector obj_variables; + + for (int i = 3; i < argc; ++i) { + int num = std::atoi(argv[i]); + if (num > 0) { + obj_variables.push_back(num); + } else { + std::cerr << "Objective variables should be positive integers\n"; + return -1; + } + } + + CNF* cnf = parse_cnf(input_filename); + if (!cnf) return 1; + std::cerr << "CNF parsed successfully\n"; + write_opb(opb_filename, cnf, obj_variables); + std::cerr << "OPB file written successfully\n"; + + execute_solver(opb_filename); + + delete cnf; + + return 0; +} diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 1c6eae6e16..a76101aee3 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1129,7 +1129,7 @@ extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); // Pseudo Boolean Optimization Related -extern ABC_DLL void Abc_ExecPBO(); +extern ABC_DLL void Abc_ExecPBO( Abc_Ntk_t * pNtk ); ABC_NAMESPACE_HEADER_END diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index 5c3d1c3b9e..1d1bce4f32 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -5,12 +5,16 @@ ABC_NAMESPACE_IMPL_START -void Abc_ExecPBO() +void Abc_ExecPBO( Abc_Ntk_t * pNtk ) { pid_t pid = fork(); if (pid == 0) { // Child process: executing pbo solver + int pi_num = Abc_NtkPiNum(pNtk); + // int good_pi_num = Abc_NtkPiNum(pNtk); + int good_pi_num = 5; + char arg_str[100] = {0}; for (int i = 2; i < 10; ++i) { char temp[16]; diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 01c910eff5..ef04152271 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11386,7 +11386,7 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) } fclose( pFile ); - Abc_ExecPBO(); + Abc_ExecPBO( pNtk ); return 0; From 8e37898e6c7e80d9c914a4a74292f381574d4a58 Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Fri, 6 Jun 2025 22:58:27 +0800 Subject: [PATCH 25/58] Add constraint RULE 2 --- src/base/abc/abc.h | 1 + src/base/abc/abcFault.c | 613 ++++++++++++++++++++++++++++++++++------ src/base/abci/abc.c | 1 + 3 files changed, 528 insertions(+), 87 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index be9b4b3bfb..48e616adf0 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1116,6 +1116,7 @@ extern ABC_DLL void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t extern ABC_DLL void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkGenerateTDFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk); +extern ABC_DLL void Abc_NtkInsertPBOGates(Abc_Ntk_t * pNtk); extern ABC_DLL void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index cab7e9f5b3..51f507d5ac 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -750,8 +750,6 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) { char xName[32], yName[32]; - char f0_Name[32], f1_Name[32]; - char PO_f0_Name[32], PO_f1_Name[32]; Abc_Obj_t * pX, * pY, * pNotX, * pC, * pAnd, * pOr; Abc_Obj_t * pNode = pFault->pNode; @@ -765,28 +763,6 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) if (Vec_PtrFind(vGOHandledsa0, pC) != -1) continue; Vec_PtrPush(vGOHandledsa0, pC); - - // ================ Insert SA0 GO ACTIVATION PBO ================ - Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; - pOR_pbo = Abc_NtkCreateNode(pNtk); // pbo for OR gate - // Generate unique names for f0 - sprintf(f0_Name, "f0_%s", Abc_ObjName(pC)); // Name for the fault signal - pf0_pbo = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); - // create NOT gate for a_f0 - pNotf0_pbo = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); - pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // create OR gate for (c OR ~a_f0) - Abc_ObjAddFanin(pOR_pbo, pC); - Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); - pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - // wire the constant 1 PO to the OR gate - Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_%s", Abc_ObjName(pC)); - Abc_ObjAssignName(pPo, PO_f0_Name, NULL); - Abc_ObjAddFanin(pPo, pOR_pbo); - // ================ End of SA0 GO ACTIVATION PBO ================ // ================ Insert FAULT GATE ======================= pAnd = Abc_NtkCreateNode(pNtk); @@ -816,6 +792,275 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) continue; Vec_PtrPush(vGOHandledsa1, pC); + // ================ Insert FAULT GATE ======================= + pOr = Abc_NtkCreateNode(pNtk); + // Rewire the network so that pOr replaces pC as the output signal + // Transfer all fanouts of pC to pOr + Abc_ObjTransferFanout(pC, pOr); + // Generate unique names for y + sprintf(yName, "y_%s", Abc_ObjName(pC)); + // Add new PIs + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + // Create OR gate for ((c AND ~x) OR y) + Abc_ObjAddFanin(pOr, pC); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // ================= End of FAULT GATE ======================= + + printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); + } + } + // Handle gate input (GI) faults + else if (pFault->Io == ABC_FAULT_GI) + { + int fanin_index = pFault->Index; + Abc_Obj_t *pFanin = Abc_ObjFanin(pNode, fanin_index); + if (!pFanin) + { + printf("[FaultSim] Error: Invalid fanin index %d for node %s\n", fanin_index, Abc_ObjName(pNode)); + continue; + } + + // GI fault can directly the destnation node to confirm the gate type and controlling value + char *pSop = (char *)pNode->pData; + int gateType = Abc_SopGetGateType(pSop); + + printf("[FaultSim] GI fault at node %s (input %d), gate type = %d\n", Abc_ObjName(pNode), fanin_index, gateType); + + // Create a unique key for this node-input combination + sprintf(keyBuf, "%s_in%d", Abc_ObjName(pNode), fanin_index); + + // Create an intermediate node to insert between fanin and node + if (pFault->Type == ABC_FAULT_SA0) + { + // Skip if already handled this node-input combination + if (Vec_PtrFind(vGIHandledsa0, keyBuf) != -1) + continue; + + // Allocate memory for the key and copy the string + key = ABC_ALLOC(char, strlen(keyBuf) + 1); + strcpy(key, keyBuf); + Vec_PtrPush(vGIHandledsa0, key); + + // ================ Insert FAULT GATE ======================= + // Create AND gate for (fanin AND ~x) + pAnd = Abc_NtkCreateNode(pNtk); + // Generate unique name for x + sprintf(xName, "x_%s_in%d", Abc_ObjName(pNode), fanin_index); + // Add new PIs + pX = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pX, xName, NULL); + // Create NOT gate for ~x + pNotX = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotX, pX); + pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + // Insert AND gate between fanin and node + Abc_ObjPatchFanin(pNode, pFanin, pAnd); + Abc_ObjAddFanin(pAnd, pFanin); + Abc_ObjAddFanin(pAnd, pNotX); + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // ================ End of FAULT GATE ======================= + + printf("[FaultSim] Inserted SA0 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); + } + else if (pFault->Type == ABC_FAULT_SA1) + { + // Skip if already handled this node-input combination + if (Vec_PtrFind(vGIHandledsa1, keyBuf) != -1) + continue; + // Allocate memory for the key and copy the string + key = ABC_ALLOC(char, strlen(keyBuf) + 1); + strcpy(key, keyBuf); + Vec_PtrPush(vGIHandledsa1, key); + + // ================ Insert FAULT GATE ======================= + // Create OR gate for (fanin OR y) + pOr = Abc_NtkCreateNode(pNtk); + // Generate unique name for y + sprintf(yName, "y_%s_in%d", Abc_ObjName(pNode), fanin_index); + pY = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pY, yName, NULL); + // Insert OR gate between fanin and node + Abc_ObjPatchFanin(pNode, pFanin, pOr); + Abc_ObjAddFanin(pOr, pFanin); + Abc_ObjAddFanin(pOr, pY); + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // ================ End of FAULT GATE ======================= + + printf("[FaultSim] Inserted SA1 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); + } + } + } + + // Free the tracking vectors and their contents + Vec_PtrForEachEntry(char *, vGIHandledsa0, key, i) + ABC_FREE(key); + Vec_PtrForEachEntry(char *, vGIHandledsa1, key, i) + ABC_FREE(key); + Vec_PtrFree(vGOHandledsa0); + Vec_PtrFree(vGOHandledsa1); + Vec_PtrFree(vGIHandledsa0); + Vec_PtrFree(vGIHandledsa1); + printf("[FaultSim] Completed fault simulation gate insertion\n"); +} + +void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) +{ + Abc_Fault_t *pFault; + char *key = NULL; + char keyBuf[100]; // Buffer for creating key strings + int i; + Vec_Ptr_t *vGOHandledsa0 = Vec_PtrAlloc(100); // Track handled output nodes + Vec_Ptr_t *vGOHandledsa1 = Vec_PtrAlloc(100); // Track handled output nodes + Vec_Ptr_t *vGIHandledsa0 = Vec_PtrAlloc(100); // Track handled input nodes + Vec_Ptr_t *vGIHandledsa1 = Vec_PtrAlloc(100); // Track handled input nodes + + // Iterate over the fault list + for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) + { + char f0_Name[32], f1_Name[32]; + char PO_f0_Name[32], PO_f1_Name[32]; + Abc_Obj_t *pC; + Abc_Obj_t *pNode = pFault->pNode; + + // Handle gate output (GO) faults + if (pFault->Io == ABC_FAULT_GO) + { + pC = pNode; // Output of the gate + + if (pFault->Type == ABC_FAULT_SA0) + { + if (Vec_PtrFind(vGOHandledsa0, pC) != -1) + continue; + Vec_PtrPush(vGOHandledsa0, pC); + + + // RULE 1 + // ================ Insert SA0 GO ACTIVATION PBO ================ + Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; + pOR_pbo = Abc_NtkCreateNode(pNtk); // pbo for OR gate + // Generate unique names for f0 + sprintf(f0_Name, "f0_%s", Abc_ObjName(pC)); // Name for the fault signal + pf0_pbo = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); + // create NOT gate for a_f0 + pNotf0_pbo = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); + pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + // create OR gate for (c OR ~a_f0) + Abc_ObjAddFanin(pOR_pbo, pC); + Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); + pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + // wire the constant 1 PO to the OR gate + Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_ACT_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pPo, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo, pOR_pbo); + // ================ End of SA0 GO ACTIVATION PBO ================ + + // RULE 2 + if (Abc_ObjFanoutNum(pFault->pNode) > 1){ + // pFault->pNode has fanout branches + printf("Node %s has multiple fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + } + else if (Abc_ObjFanoutNum(pFault->pNode) == 1) + { + // get the next node + Abc_Obj_t *pNextNode = NULL; + int inputIndex = -1; // Initialize input index + pNextNode = Abc_ObjFanout0(pFault->pNode); + printf("Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); + char *pSop = (char *)pNextNode->pData; + int gateType = Abc_SopGetGateType(pSop); + + Abc_Obj_t *pFanin; + int k; + Abc_ObjForEachFanin(pNextNode, pFanin, k) + { + if (pFanin == pFault->pNode) + { + inputIndex = k; + break; + } + } + // get the index of the current fanin + + if (gateType == 3 || gateType == 4) // AND or NAND + { + // create a AND gate for all side inputs + // create OR gate for AND_all_fanin OR ~a_f0 + Abc_Obj_t *pOR_gate, *pAND_gate; + + pAND_gate = Abc_NtkCreateNode(pNtk); + Abc_Obj_t *pSidein; + // connect all the fanins to the AND gate + Abc_ObjForEachFanin(pNextNode, pSidein, k) + { + if (k == inputIndex) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pAND_gate, pSidein); + } + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + + // AND_all_fanin OR ~a_f0 + pOR_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pOR_gate, pAND_gate); + Abc_ObjAddFanin(pOR_gate, pNotf0_pbo); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // create a new PO for the OR gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s_in%d", Abc_ObjName(pNextNode), inputIndex); + Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pOR_gate); + } + else if (gateType == 5 || gateType == 6) // OR or NOR + { + Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; + + pOR_gate = Abc_NtkCreateNode(pNtk); + + Abc_Obj_t *pSidein; + // connect all the fanins to the OR gate + Abc_ObjForEachFanin(pNextNode, pSidein, i) + { + if (k == inputIndex) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pOR_gate, pSidein); + } + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + + // OR_all_fanin ANF a_f0 + pAND_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pAND_gate, pOR_gate); + Abc_ObjAddFanin(pAND_gate, pf0_pbo); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + pNOT_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNOT_gate, pAND_gate); + pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // create a new PO for the NAND gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s_in%d", Abc_ObjName(pNextNode), inputIndex); + Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pNOT_gate); + } + } + else if (Abc_ObjFanoutNum(pFault->pNode) < 1){ + // pFault->pNode has no fanout branches + printf("Node %s has no fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + } + printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); + } + else if (pFault->Type == ABC_FAULT_SA1) + { + if (Vec_PtrFind(vGOHandledsa1, pC) != -1) + continue; + Vec_PtrPush(vGOHandledsa1, pC); // ================ Insert SA1 GO ACTIVATION PBO ================ Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; @@ -834,26 +1079,112 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // wire the constant 1 PO to the NOT gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_%s", Abc_ObjName(pC)); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_ACT_%s", Abc_ObjName(pC)); Abc_ObjAssignName(pPo, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo, pNot_pbo); // ================ End of SA1 GO ACTIVATION PBO ================ - // ================ Insert FAULT GATE ======================= - pOr = Abc_NtkCreateNode(pNtk); - // Rewire the network so that pOr replaces pC as the output signal - // Transfer all fanouts of pC to pOr - Abc_ObjTransferFanout(pC, pOr); - // Generate unique names for y - sprintf(yName, "y_%s", Abc_ObjName(pC)); - // Add new PIs - pY = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pY, yName, NULL); - // Create OR gate for ((c AND ~x) OR y) - Abc_ObjAddFanin(pOr, pC); - Abc_ObjAddFanin(pOr, pY); - pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - // ================= End of FAULT GATE ======================= + // RULE 2 + if (Abc_ObjFanoutNum(pFault->pNode) > 1){ + // pFault->pNode has fanout branches + printf("Node %s has multiple fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + } + else if (Abc_ObjFanoutNum(pFault->pNode)== 1){ + // get the next node + Abc_Obj_t *pNextNode = NULL; + int inputIndex = -1; + pNextNode = Abc_ObjFanout0(pFault->pNode); + printf("Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); + char *pSop = (char *)pNextNode->pData; + int gateType = Abc_SopGetGateType(pSop); + + Abc_Obj_t *pFanin; + int k; + Abc_ObjForEachFanin(pNextNode, pFanin, k) + { + if (pFanin == pFault->pNode) + { + inputIndex = k; + break; + } + } + + if (gateType == 3 || gateType == 4) // AND or NAND + { + // create a AND gate for all side inputs + // create OR gate for AND_all_fanin OR ~a_f1 + Abc_Obj_t *pOR_gate, *pAND_gate, *pNOTf1_gate; + + pAND_gate = Abc_NtkCreateNode(pNtk); + + Abc_Obj_t *pSidein; + int l = 0; + // connect all the fanins to the AND gate + Abc_ObjForEachFanin(pNextNode, pSidein, l) + { + if (i == inputIndex) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pAND_gate, pSidein); + } + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + + // create NOT gate for ~a_f1 + pNOTf1_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNOTf1_gate, pf1_pbo); + pNOTf1_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // AND_all_fanin OR ~a_f1 + pOR_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pOR_gate, pAND_gate); + Abc_ObjAddFanin(pOR_gate, pNOTf1_gate); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // create a new PO for the OR gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s_in%d", Abc_ObjName(pNode), inputIndex); + Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pOR_gate); + } + else if (gateType == 5 || gateType == 6) // OR or NOR + { + Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; + + pOR_gate = Abc_NtkCreateNode(pNtk); + + Abc_Obj_t *pSidein; + int l = 0; + // connect all the fanins to the OR gate + Abc_ObjForEachFanin(pNextNode, pSidein, l) + { + if (i == inputIndex) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pOR_gate, pFanin); + } + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + + // OR_all_fanin ANF a_f0 + pAND_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pAND_gate, pOR_gate); + Abc_ObjAddFanin(pAND_gate, pf1_pbo); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + pNOT_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNOT_gate, pAND_gate); + pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // create a new PO for the NAND gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s_in%d", Abc_ObjName(pNode), inputIndex); + Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pNOT_gate); + } + } + else if (Abc_ObjFanoutNum(pFault->pNode) < 1){ + // pFault->pNode has no fanout branches + printf("Node %s has no fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + } printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); } @@ -869,6 +1200,12 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) continue; } + // GI fault can directly the destnation node to confirm the gate type and controlling value + char *pSop = (char *)pNode->pData; + int gateType = Abc_SopGetGateType(pSop); + + printf("[FaultSim] GI fault at node %s (input %d), gate type = %d\n", Abc_ObjName(pNode), fanin_index, gateType); + // Create a unique key for this node-input combination sprintf(keyBuf, "%s_in%d", Abc_ObjName(pNode), fanin_index); @@ -884,7 +1221,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) strcpy(key, keyBuf); Vec_PtrPush(vGIHandledsa0, key); - + // RULE 1 // ================ Insert SA0 GI ACTIVATION PBO ================ Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; // Create OR gate for (fanin OR ~a_f0) @@ -893,42 +1230,88 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) sprintf(f0_Name, "f0_%s_in%d", Abc_ObjName(pNode), fanin_index); pf0_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); - // create NOT gate for a_f0 + // create NOT gate for ~a_f0 pNotf0_pbo = Abc_NtkCreateNode(pNtk); Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create OR gate for (fanin OR ~a_f0) - Abc_ObjPatchFanin(pNode, pFanin, pOR_pbo); Abc_ObjAddFanin(pOR_pbo, pFanin); Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_%s_in%d", Abc_ObjName(pNode),fanin_index); + sprintf(PO_f0_Name, "PO_pbo_GI_f0_ACT_%s_in%d", Abc_ObjName(pNode), fanin_index); Abc_ObjAssignName(pPo, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo, pOR_pbo); // ================ End of SA0 GI ACTIVATION PBO ================ - // ================ Insert FAULT GATE ======================= - // Create AND gate for (fanin AND ~x) - pAnd = Abc_NtkCreateNode(pNtk); - // Generate unique name for x - sprintf(xName, "x_%s_in%d", Abc_ObjName(pNode), fanin_index); - // Add new PIs - pX = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pX, xName, NULL); - // Create NOT gate for ~x - pNotX = Abc_NtkCreateNode(pNtk); - Abc_ObjAddFanin(pNotX, pX); - pNotX->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // Insert AND gate between fanin and node - Abc_ObjPatchFanin(pNode, pFanin, pAnd); - Abc_ObjAddFanin(pAnd, pFanin); - Abc_ObjAddFanin(pAnd, pNotX); - pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - // ================ End of FAULT GATE ======================= + // RULE 2 + // ================ Insert SA0 GI GATE PBO======================= + if (gateType == 3 || gateType == 4) // AND or NAND + { + // create a AND gate for all side inputs + // create OR gate for AND_all_fanin OR ~a_f0 + Abc_Obj_t *pOR_gate, *pAND_gate; + + pAND_gate = Abc_NtkCreateNode(pNtk); + Abc_Obj_t *pSidein; + int l=0; + // connect all the fanins to the AND gate + Abc_ObjForEachFanin(pNode, pSidein, l) + { + if (i == fanin_index) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pAND_gate, pSidein); + } + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + + // AND_all_fanin OR ~a_f0 + pOR_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pOR_gate, pAND_gate); + Abc_ObjAddFanin(pOR_gate, pNotf0_pbo); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // create a new PO for the OR gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pOR_gate); + } + else if (gateType == 5 || gateType == 6) // OR or NOR + { + Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; - printf("[FaultSim] Inserted SA0 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); + pOR_gate = Abc_NtkCreateNode(pNtk); + + Abc_Obj_t *pSidein; + int l=0; + // connect all the fanins to the OR gate + Abc_ObjForEachFanin(pNode, pSidein, l) + { + if (i == fanin_index) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pOR_gate, pSidein); + } + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + + // OR_all_fanin ANF a_f0 + pAND_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pAND_gate, pOR_gate); + Abc_ObjAddFanin(pAND_gate, pf0_pbo); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + pNOT_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNOT_gate, pAND_gate); + pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // create a new PO for the NAND gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pNOT_gate); + } } else if (pFault->Type == ABC_FAULT_SA1) { @@ -940,8 +1323,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) strcpy(key, keyBuf); Vec_PtrPush(vGIHandledsa1, key); - - // ================ Insert SA1 GI ACTIVATION PBO ================ + // ================ Insert SA1 GI ACTIVATION PBO ================ Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; // Create AND gate for (fanin AND f1) pAND_pbo = Abc_NtkCreateNode(pNtk); @@ -950,7 +1332,6 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pf1_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); // Insert AND gate between fanin and node - Abc_ObjPatchFanin(pNode, pFanin, pAND_pbo); Abc_ObjAddFanin(pAND_pbo, pFanin); Abc_ObjAddFanin(pAND_pbo, pf1_pbo); pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); @@ -960,32 +1341,91 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // wire the constant 1 PO to the NOT gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_%s_in%d", Abc_ObjName(pNode), fanin_index); + sprintf(PO_f1_Name, "PO_pbo_GI_f1_ACT_%s_in%d", Abc_ObjName(pNode), fanin_index); Abc_ObjAssignName(pPo, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo, pNot_pbo); - // ================ End of SA1 GI ACTIVATION PBO ================ + // ================ End of SA1 GI ACTIVATION PBO ================ + // ================ Insert SA1 GI GATE PBO======================= - // ================ Insert FAULT GATE ======================= - // Create OR gate for (fanin OR y) - pOr = Abc_NtkCreateNode(pNtk); - // Generate unique name for y - sprintf(yName, "y_%s_in%d", Abc_ObjName(pNode), fanin_index); - pY = Abc_NtkCreatePi(pNtk); - Abc_ObjAssignName(pY, yName, NULL); - // Insert OR gate between fanin and node - Abc_ObjPatchFanin(pNode, pFanin, pOr); - Abc_ObjAddFanin(pOr, pFanin); - Abc_ObjAddFanin(pOr, pY); - pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); - // ================ End of FAULT GATE ======================= + if (gateType == 3 || gateType == 4) // AND or NAND + { + // create a AND gate for all side inputs + // create OR gate for AND_all_fanin OR ~a_f1 + Abc_Obj_t *pOR_gate, *pAND_gate, *pNOTf1_gate; - printf("[FaultSim] Inserted SA1 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); + pAND_gate = Abc_NtkCreateNode(pNtk); + + Abc_Obj_t *pSidein; + int l=0; + // connect all the fanins to the AND gate + Abc_ObjForEachFanin(pNode, pSidein, l) + { + if (i == fanin_index) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pAND_gate, pSidein); + } + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + + // create NOT gate for ~a_f1 + pNOTf1_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNOTf1_gate, pf1_pbo); + pNOTf1_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // AND_all_fanin OR ~a_f1 + pOR_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pOR_gate, pAND_gate); + Abc_ObjAddFanin(pOR_gate, pNOTf1_gate); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + // create a new PO for the OR gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pOR_gate); + } + else if (gateType == 5 || gateType == 6) // OR or NOR + { + Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; + + pOR_gate = Abc_NtkCreateNode(pNtk); + + Abc_Obj_t *pSidein; + int l=0; + // connect all the fanins to the OR gate + Abc_ObjForEachFanin(pNode, pSidein, l) + { + if (i == fanin_index) + continue; // Skip the current fanin being processed + // + Abc_ObjAddFanin(pOR_gate, pFanin); + } + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + + // OR_all_fanin ANF a_f0 + pAND_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pAND_gate, pOR_gate); + Abc_ObjAddFanin(pAND_gate, pf1_pbo); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); + + pNOT_gate = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNOT_gate, pAND_gate); + pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + // create a new PO for the NAND gate + Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); + sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); + Abc_ObjAddFanin(pPo_gate, pNOT_gate); + } + + printf("[FaultSim] Inserted SA1 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); } } } - - // Free the tracking vectors and their contents + + // Free the tracking vectors and their contents Vec_PtrForEachEntry(char *, vGIHandledsa0, key, i) ABC_FREE(key); Vec_PtrForEachEntry(char *, vGIHandledsa1, key, i) @@ -996,7 +1436,6 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Vec_PtrFree(vGIHandledsa1); printf("[FaultSim] Completed fault simulation gate insertion\n"); } - void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) { Abc_Ntk_t * pGoodNtk, * pFaultNtk, * pCombinedNtk; @@ -1014,6 +1453,7 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) // Copy fault list to faulty network pFaultNtk->pFaultList = pNtk->pFaultList; pFaultNtk->nFaults = pNtk->nFaults; + pFaultNtk->nDetectedFaults = pNtk->nDetectedFaults; pFaultNtk->nUndetectableFaults = pNtk->nUndetectableFaults; pFaultNtk->nActivatedFaults = pNtk->nActivatedFaults; @@ -1046,7 +1486,6 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) // Copy additional PIs from faulty circuit with unique names Abc_NtkForEachPi(pFaultNtk, pObj, i) { - printf("[FaultConstraint] Processing PI %s\n", Abc_ObjName(pObj)); if (pObj->pCopy == NULL) { // Only copy if not already copied Abc_Obj_t * pPi = Abc_NtkCreatePi(pCombinedNtk); // Create unique name by appending "_f" for faulty circuit PIs @@ -1155,7 +1594,7 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) // Add connection to the good circuit PI Abc_ObjAddFanin(pFanout, pObj->pCopy); fanoutCount++; - } + } printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); // Remove the redundant PI from the combined network diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 4069c45130..b50949eb0e 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11275,6 +11275,7 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) // Print fault list and statistics Abc_NtkInsertFaultSimGates( pNtk ); + return 0; usage: From 9efe5cf2e45c9a22e8b2152e97543521c5b3847e Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Sat, 7 Jun 2025 11:54:33 +0800 Subject: [PATCH 26/58] big fixed --- src/base/abc/abcFault.c | 29 +++++++++++++++++------------ src/base/abci/abc.c | 1 + 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 51f507d5ac..989b8ffa44 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -994,6 +994,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pAND_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; + int sideInputCount = 0; // connect all the fanins to the AND gate Abc_ObjForEachFanin(pNextNode, pSidein, k) { @@ -1001,8 +1002,9 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pAND_gate, pSidein); + sideInputCount++; } - pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); // AND_all_fanin OR ~a_f0 pOR_gate = Abc_NtkCreateNode(pNtk); @@ -1023,15 +1025,17 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; + int sideInputCount = 0; // connect all the fanins to the OR gate - Abc_ObjForEachFanin(pNextNode, pSidein, i) + Abc_ObjForEachFanin(pNextNode, pSidein, k) { if (k == inputIndex) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pOR_gate, pSidein); + sideInputCount++; } - pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); // OR_all_fanin ANF a_f0 pAND_gate = Abc_NtkCreateNode(pNtk); @@ -1118,16 +1122,17 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pAND_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; - int l = 0; + int sideInputCount = 0; // connect all the fanins to the AND gate - Abc_ObjForEachFanin(pNextNode, pSidein, l) + Abc_ObjForEachFanin(pNextNode, pSidein, k) { - if (i == inputIndex) + if (k == inputIndex) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pAND_gate, pSidein); + sideInputCount++; } - pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); // create NOT gate for ~a_f1 pNOTf1_gate = Abc_NtkCreateNode(pNtk); @@ -1157,7 +1162,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // connect all the fanins to the OR gate Abc_ObjForEachFanin(pNextNode, pSidein, l) { - if (i == inputIndex) + if (l == inputIndex) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pOR_gate, pFanin); @@ -1259,7 +1264,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // connect all the fanins to the AND gate Abc_ObjForEachFanin(pNode, pSidein, l) { - if (i == fanin_index) + if (l == fanin_index) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pAND_gate, pSidein); @@ -1289,7 +1294,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // connect all the fanins to the OR gate Abc_ObjForEachFanin(pNode, pSidein, l) { - if (i == fanin_index) + if (l == fanin_index) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pOR_gate, pSidein); @@ -1361,7 +1366,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // connect all the fanins to the AND gate Abc_ObjForEachFanin(pNode, pSidein, l) { - if (i == fanin_index) + if (l == fanin_index) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pAND_gate, pSidein); @@ -1396,7 +1401,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // connect all the fanins to the OR gate Abc_ObjForEachFanin(pNode, pSidein, l) { - if (i == fanin_index) + if (l == fanin_index) continue; // Skip the current fanin being processed // Abc_ObjAddFanin(pOR_gate, pFanin); diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index b50949eb0e..d710a5b832 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11274,6 +11274,7 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) // Print fault list and statistics Abc_NtkInsertFaultSimGates( pNtk ); + Abc_NtkInsertPBOGates( pNtk ); return 0; From 72643a488f3ec29ca0c5518ba8d153851b52b888 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Sat, 7 Jun 2025 16:55:56 +0800 Subject: [PATCH 27/58] parse pbo solver output back to test pattern --- runPBO.cpp | 75 +++++++++++++++++++++++++++++++------------ src/base/abc/abcPbo.c | 64 +++++++++++++++++++++++++++++++++--- 2 files changed, 115 insertions(+), 24 deletions(-) diff --git a/runPBO.cpp b/runPBO.cpp index 2e395fdad1..ec615401f9 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -15,7 +15,7 @@ struct CNF { std::vector> clauses; }; -CNF* parse_cnf(const std::string& filename) { +CNF* parse_cnf(const std::string& filename, const std::vector& obj) { std::ifstream file(filename); if (!file.is_open()) { perror("Error opening CNF file"); @@ -32,7 +32,25 @@ CNF* parse_cnf(const std::string& filename) { if (line.empty() || line[0] == 'c') continue; // Skip comments if (line[0] == 'p') { sscanf(line.c_str(), "p cnf %d %d", &cnf->num_vars, &cnf->num_clauses); - cnf->clauses.resize(cnf->num_clauses); + + if (obj.empty()) { // If no objective variables are specified + cnf->clauses.resize(cnf->num_clauses); + continue; + } + + cnf->clauses.resize(++cnf->num_clauses); + // add one hot constraint for objective variables + std::vector clause; + for (int i:obj) { + if (i > cnf->num_vars) { + std::cerr << "Invalid objective variable " << i + << ": must be <= " << cnf->num_vars << std::endl; + exit(-1); + } + clause.push_back(i>0 ? i : -i); // ensure positive literals + } + cnf->clauses[clause_index] = clause; // one hot constraint + clause_index++; continue; } @@ -50,7 +68,7 @@ CNF* parse_cnf(const std::string& filename) { return cnf; } -void write_opb(const std::string& filename, const CNF* cnf, const std::vector& obj) { +void write_opb(const std::string& filename, const CNF* cnf, const std::vector& obj, const int pi_num, const int originPI_num) { std::ofstream file(filename); if (!file.is_open()) { perror("Error opening OPB file"); @@ -58,6 +76,7 @@ void write_opb(const std::string& filename, const CNF* cnf, const std::vector literals; - iss >> token; // skip 'v' + // iss >> token; // skip 'v' while (iss >> token) { literals.push_back(token); } - int total = literals.size(); - int start = std::max(0, total - 10); - int end = std::max(0, total - 5); + int total = literals.size() -1; // Exclude the first 'v' token + int start = std::max(0, total - pi_num); + int end = std::max(0, start + originPI_num); + // std::cerr << "start: " << start << ", end: " << end << "\n"; std::string bitstring; for (int i = start; i < end; ++i) { @@ -116,10 +139,15 @@ void execute_solver(const std::string& opb_filename) { bitstring += (lit[0] != '-') ? '1' : '0'; } + sat = true; std::cout << bitstring << "\n"; } + if (!sat) { + std::cout << "unsat\n"; + } + int status = pclose(fp); if (status == -1) { perror("pclose"); @@ -127,32 +155,39 @@ void execute_solver(const std::string& opb_filename) { } int main(int argc, char* argv[]) { - if (argc < 3) { - std::cout << "Usage: " << argv[0] << " input.cnf output.opb [obj_vars...]\n"; + if (argc < 5) { + std::cerr << "Usage: " << argv[0] << " input.cnf output.opb [pi_num] [origin pi num] [obj_vars...]\n"; return 1; } + else if(argc == 5){ + std::cerr << "[Warning] No objective variables specified, running PBO without objective function.\n"; + } std::string input_filename = argv[1]; std::string opb_filename = argv[2]; + const int pi_num = (argc > 3) ? std::atoi(argv[3]) : 0; + const int originPI_num = (argc > 4) ? std::atoi(argv[4]) : 0; std::vector obj_variables; - for (int i = 3; i < argc; ++i) { + for (int i = 5; i < argc; ++i) { + // possitive integers for objective variables + // negative integers are not used for objective function, but for onehot encoding int num = std::atoi(argv[i]); - if (num > 0) { - obj_variables.push_back(num); - } else { - std::cerr << "Objective variables should be positive integers\n"; - return -1; - } + // if (num > 0) { + obj_variables.push_back(num); + // } else { + // std::cerr << "Objective variables should be positive integers\n"; + // return -1; + // } } - CNF* cnf = parse_cnf(input_filename); + CNF* cnf = parse_cnf(input_filename, obj_variables); if (!cnf) return 1; std::cerr << "CNF parsed successfully\n"; - write_opb(opb_filename, cnf, obj_variables); + write_opb(opb_filename, cnf, obj_variables, pi_num, originPI_num); std::cerr << "OPB file written successfully\n"; - execute_solver(opb_filename); + execute_solver(opb_filename, pi_num, originPI_num); delete cnf; diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index 1d1bce4f32..0dce153bfa 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -7,13 +7,25 @@ ABC_NAMESPACE_IMPL_START void Abc_ExecPBO( Abc_Ntk_t * pNtk ) { + // extern void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); + + const int pi_num = Abc_NtkPiNum(pNtk); + // int good_pi_num = Abc_NtkPiNum(pNtk); + const int good_pi_num = 5; + + int pipefd[2]; + if (pipe(pipefd) == -1) { + perror("pipe"); + return; + } + pid_t pid = fork(); if (pid == 0) { // Child process: executing pbo solver - int pi_num = Abc_NtkPiNum(pNtk); - // int good_pi_num = Abc_NtkPiNum(pNtk); - int good_pi_num = 5; + close(pipefd[0]); // Close unused read end + + dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe char arg_str[100] = {0}; for (int i = 2; i < 10; ++i) { @@ -23,12 +35,56 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) if (i < 10 - 1) strcat(arg_str, " "); } - char *argv[] = {"./solver", "atpg.cnf", "output.opb", arg_str, NULL}; + char *argv[] = {"./solver", "atpg.cnf", "output.opb", pi_num, good_pi_num, arg_str, NULL}; execv("./solver", argv); + + // If execv returns, an error occurred + perror("execv"); + close(pipefd[1]); // Close write end _exit(1); // exec failed + } else { // Parent process: wait for child to finish + close(pipefd[1]); // Close unused write end + + char buffer[1024]; + size_t total_size = 0; + char *output = NULL; + + ssize_t count; + while ((count = read(pipefd[0], buffer, sizeof(buffer))) > 0) { + char *new_output = realloc(output, total_size + count + 1); + if (!new_output) { + Abc_Print(ABC_ERROR, "Memory allocation failed.\n"); + free(output); + close(pipefd[0]); + waitpid(pid, NULL, 0); + return; + } + + output = new_output; + memcpy(output + total_size, buffer, count); + total_size += count; + output[total_size] = '\0'; // Null-terminate for safety + } + + close(pipefd[0]); // Close read end waitpid(pid, NULL, 0); + + int* pattern = (int*)malloc(sizeof(int) * good_pi_num); + if (!pattern) { + Abc_Print(ABC_ERROR, "Memory allocation failed for pattern.\n"); + free(output); + return; + } + for (int i = 0; i < good_pi_num; ++i) { + pattern[i] = output[i] == '1' ? 1 : 0 ; // Convert char to int + } + Vec_Int_t * vPattern = Vec_IntAllocArray(pattern, good_pi_num); + + Abc_NtkAddTestPattern(pNtk, vPattern); + free(output); + } } From b62720e2b52cbf7e7baec420eb545210b4946ced Mon Sep 17 00:00:00 2001 From: xNTsai Date: Sat, 7 Jun 2025 17:33:23 +0800 Subject: [PATCH 28/58] add: ntk_combine --- src/base/abc/abc.h | 3 + src/base/abc/abcFault.c | 329 +++++++++++++++++++++++++++++++++++++--- src/base/abci/abc.c | 48 ++++++ 3 files changed, 361 insertions(+), 19 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 1b8cd5dca7..9d037f7bec 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -190,6 +190,8 @@ struct Abc_Ntk_t_ int nUndetectableFaults; // number of undetectable faults int nActivatedFaults; // number of activated faults int nTestTriedFaults; // number of faults that have been tried + Abc_Ntk_t * pGoodNtk; // the good network + Vec_Ptr_t * vGoodPis; // the good network PIs // the number of living objects int nObjCounts[ABC_OBJ_NUMBER]; // the number of objects by type int nObjs; // the number of live objs @@ -1120,6 +1122,7 @@ extern ABC_DLL void Abc_NtkGenerateTDFaultList( Abc_Ntk_t * pNtk ) extern ABC_DLL void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk); extern ABC_DLL void Abc_NtkGenerateCollapsedCheckpointFaultList( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk); +extern ABC_DLL void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk); // Test pattern management functions extern ABC_DLL void Abc_NtkInitTestPatterns( Abc_Ntk_t * pNtk ); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 98a9648e9a..79fa5648ec 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -744,6 +744,17 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Vec_Ptr_t * vGOHandledsa1 = Vec_PtrAlloc(100); // Track handled output nodes Vec_Ptr_t * vGIHandledsa0 = Vec_PtrAlloc(100); // Track handled input nodes Vec_Ptr_t * vGIHandledsa1 = Vec_PtrAlloc(100); // Track handled input nodes + + // Store the good network and its PIs + pNtk->pGoodNtk = Abc_NtkDup(pNtk); + pNtk->vGoodPis = Vec_PtrAlloc(Abc_NtkPiNum(pNtk)); + + // Copy all PIs to vGoodPis + Abc_Obj_t * pPi; + Abc_NtkForEachPi(pNtk, pPi, i) { + Vec_PtrPush(pNtk->vGoodPis, pPi); + } + printf("[FaultSim] Stored good network and its PIs\n"); // Iterate over the fault list for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) @@ -906,8 +917,14 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) printf("[FaultConstraint] Starting fault constraint network creation\n"); - // Create copies of good and faulty circuits - pGoodNtk = Abc_NtkDup(pNtk); + // Use the already stored good network instead of creating a new copy + pGoodNtk = pNtk->pGoodNtk; + if (!pGoodNtk) { + printf("[FaultConstraint] Error: Good network not found. Call Abc_NtkInsertFaultSimGates first.\n"); + return; + } + + // Create copy of current network (with fault simulation gates) for faulty circuit pFaultNtk = Abc_NtkDup(pNtk); printf("[FaultConstraint] Created circuit copies\n"); @@ -926,10 +943,6 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) pFault->pNode = pFault->pNode->pCopy; } printf("[FaultConstraint] Updated fault node pointers in faulty network\n"); - - // Insert fault simulation gates into the faulty circuit - Abc_NtkInsertFaultSimGates(pFaultNtk); - printf("[FaultConstraint] Completed fault simulation gate insertion\n"); // Create the combined network pCombinedNtk = Abc_NtkAlloc(ABC_NTK_LOGIC, ABC_FUNC_SOP, 1); @@ -977,8 +990,8 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) Abc_ObjForEachFanin(pObj, pFanin, j) { if (pFanin->pCopy == NULL) { printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); - continue; - } + continue; + } Abc_ObjAddFanin(pNode, pFanin->pCopy); } } @@ -1006,8 +1019,8 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) Abc_ObjForEachFanin(pObj, pFanin, j) { if (pFanin->pCopy == NULL) { printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); - continue; - } + continue; + } Abc_ObjAddFanin(pNode, pFanin->pCopy); } } @@ -1038,8 +1051,8 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) if (!pCombinedFaultPi) { printf("[FaultConstraint] Error: Could not find fault PI %s_f\n", pGoodName); - continue; - } + continue; + } printf("[FaultConstraint] Processing PI pair %d: Good PI %s, Fault PI %s\n", i, pGoodName, Abc_ObjName(pCombinedFaultPi)); @@ -1065,7 +1078,8 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) printf("[FaultConstraint] Processed %d out of %d PIs\n", processedPIs, totalPIs); printf("[FaultConstraint] Connected input PIs and removed redundant PIs\n"); - // Create XOR gates to compare outputs + // Create XOR gates to compare outputs and collect them + Vec_Ptr_t * vXorOutputs = Vec_PtrAlloc(Abc_NtkPoNum(pGoodNtk)); Abc_NtkForEachPo(pGoodNtk, pObj, i) { // Get the fanin (output of the good circuit) pFanin = Abc_ObjFanin0(pObj); @@ -1092,19 +1106,40 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) // Set XOR functionality pXor->pData = Abc_SopCreateXor((Mem_Flex_t*)pCombinedNtk->pManFunc, 2); - // Create PO for the XOR output - Abc_Obj_t * pPo = Abc_NtkCreatePo(pCombinedNtk); - Abc_ObjAddFanin(pPo, pXor); - Abc_ObjAssignName(pPo, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + // Add XOR output to vector + Vec_PtrPush(vXorOutputs, pXor); } - printf("[FaultConstraint] Created XOR gates and POs\n"); + printf("[FaultConstraint] Created XOR gates for output comparison\n"); + + // Create NOR gate to combine all XOR outputs + Abc_Obj_t * pNor = Abc_NtkCreateNode(pCombinedNtk); + Abc_ObjAssignName(pNor, "fault_detected", NULL); + + // Connect all XOR outputs to NOR gate + Abc_Obj_t * pXorOutput; + int j; + Vec_PtrForEachEntry(Abc_Obj_t *, vXorOutputs, pXorOutput, j) { + Abc_ObjAddFanin(pNor, pXorOutput); + } + + // Set NOR functionality + pNor->pData = Abc_SopCreateNor((Mem_Flex_t*)pCombinedNtk->pManFunc, Vec_PtrSize(vXorOutputs)); + + // Create single PO for the NOR output + Abc_Obj_t * pPo = Abc_NtkCreatePo(pCombinedNtk); + Abc_ObjAddFanin(pPo, pNor); + Abc_ObjAssignName(pPo, "fault_detected", NULL); + + // Free the XOR outputs vector + Vec_PtrFree(vXorOutputs); + + printf("[FaultConstraint] Created NOR gate and single PO to combine all XOR outputs\n"); // Store the combined network pNtk->pFaultConstraintNtk = pCombinedNtk; printf("[FaultConstraint] Stored combined network\n"); // Clean up - Abc_NtkDelete(pGoodNtk); Abc_NtkDelete(pFaultNtk); printf("[FaultConstraint] Completed fault constraint network creation\n"); } @@ -1287,4 +1322,260 @@ void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ) printf("[AssignTestPattern] Assigned latest test pattern to constraint network PIs as constants\n"); } +/**Function************************************************************* + + Synopsis [Combines the stored good network into the current ABC network.] + + Description [Takes the stored good network (pGoodNtk) and combines it with + the current ABC network (faulty network), connecting corresponding + PIs and combining all XOR outputs into a single PO using a NOR gate. + The result is stored in the current ABC network.] + + SideEffects [Modifies the current ABC network] + + SeeAlso [Abc_NtkCreateFaultConstraintNetwork] + +***********************************************************************/ +void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) +{ + if (pNtk->pGoodNtk == NULL) + { + printf("[FaultConstraint] Error: Good network not found. Call Abc_NtkInsertFaultSimGates first.\n"); + return; + } + Abc_Ntk_t * pGoodNtk = pNtk->pGoodNtk; // Get the good network + Abc_Obj_t * pObj, * pFanin, * pXor; + int i; + + printf("[FaultConstraint] Starting network combination\n"); + + // Save the current faulty circuit state + Abc_Ntk_t * pFaultNtk = Abc_NtkDup(pNtk); + printf("[FaultConstraint] Saved faulty circuit state\n"); + + // Save important attributes from the original network + Abc_Fault_t * pFaultList = pNtk->pFaultList; + int nFaults = pNtk->nFaults; + int nDetectedFaults = pNtk->nDetectedFaults; + int nUndetectableFaults = pNtk->nUndetectableFaults; + int nActivatedFaults = pNtk->nActivatedFaults; + int nTestTriedFaults = pNtk->nTestTriedFaults; + Abc_Ntk_t * pFaultConstraintNtk = pNtk->pFaultConstraintNtk; + Abc_Ntk_t * oldGoodNtk = pNtk->pGoodNtk; // the good network + Vec_Ptr_t * vGoodPis = pNtk->vGoodPis; // the good network PIs + + // Clear the current network but keep its name and type + char * pName = Abc_UtilStrsav(pNtk->pName); + int ntkType = pNtk->ntkType; + int ntkFunc = pNtk->ntkFunc; + Abc_NtkDelete(pNtk); + pNtk = Abc_NtkAlloc(ntkType, ntkFunc, 1); + pNtk->pName = pName; + + // Restore important attributes + pNtk->pFaultList = pFaultList; + pNtk->nFaults = nFaults; + pNtk->nDetectedFaults = nDetectedFaults; + pNtk->nUndetectableFaults = nUndetectableFaults; + pNtk->nActivatedFaults = nActivatedFaults; + pNtk->nTestTriedFaults = nTestTriedFaults; + pNtk->pFaultConstraintNtk = pFaultConstraintNtk; + pNtk->vGoodPis = vGoodPis; + pNtk->pGoodNtk = oldGoodNtk; + printf("[FaultConstraint] Cleared and reinitialized network with preserved attributes\n"); + + // Copy PIs from good circuit + Abc_NtkForEachPi(pGoodNtk, pObj, i) { + Abc_Obj_t * pPi = Abc_NtkCreatePi(pNtk); + Abc_ObjAssignName(pPi, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + pObj->pCopy = pPi; + } + printf("[FaultConstraint] Copied PIs from good circuit\n"); + + // Copy additional PIs from faulty circuit with unique names + Abc_NtkForEachPi(pFaultNtk, pObj, i) { + if (pObj->pCopy == NULL) { // Only copy if not already copied + Abc_Obj_t * pPi = Abc_NtkCreatePi(pNtk); + // Create unique name by appending "_f" for faulty circuit PIs + char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); + char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator + sprintf(pNewName, "%s_f", pName); + printf("[FaultConstraint] Creating unique name for PI %s: %s\n", Abc_ObjName(pObj), pNewName); + Abc_ObjAssignName(pPi, pNewName, NULL); + free(pName); // Free the original name + pObj->pCopy = pPi; + } + } + printf("[FaultConstraint] Copied additional PIs from faulty circuit\n"); + + // Copy nodes from good circuit + Abc_NtkForEachNode(pGoodNtk, pObj, i) { + Abc_Obj_t * pNode = Abc_NtkCreateNode(pNtk); + pNode->pData = Abc_SopRegister((Mem_Flex_t*)pNtk->pManFunc, (char*)pObj->pData); + Abc_ObjAssignName(pNode, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + pObj->pCopy = pNode; + } + printf("[FaultConstraint] Copied nodes from good circuit\n"); + + // Connect nodes in good circuit + Abc_NtkForEachNode(pGoodNtk, pObj, i) { + Abc_Obj_t * pNode = pObj->pCopy; + Abc_Obj_t * pFanin; + int j; + Abc_ObjForEachFanin(pObj, pFanin, j) { + if (pFanin->pCopy == NULL) { + printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); + continue; + } + Abc_ObjAddFanin(pNode, pFanin->pCopy); + } + } + printf("[FaultConstraint] Connected nodes in good circuit\n"); + + // Copy nodes from faulty circuit with unique names + Abc_NtkForEachNode(pFaultNtk, pObj, i) { + Abc_Obj_t * pNode = Abc_NtkCreateNode(pNtk); + pNode->pData = Abc_SopRegister((Mem_Flex_t*)pNtk->pManFunc, (char*)pObj->pData); + // Create unique name by appending "_f" for faulty circuit nodes + char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); + char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator + sprintf(pNewName, "%s_f", pName); + Abc_ObjAssignName(pNode, pNewName, NULL); + free(pName); // Free the original name + pObj->pCopy = pNode; + } + printf("[FaultConstraint] Copied nodes from faulty circuit\n"); + + // Connect nodes in faulty circuit + Abc_NtkForEachNode(pFaultNtk, pObj, i) { + Abc_Obj_t * pNode = pObj->pCopy; + Abc_Obj_t * pFanin; + int j; + Abc_ObjForEachFanin(pObj, pFanin, j) { + if (pFanin->pCopy == NULL) { + printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); + continue; + } + Abc_ObjAddFanin(pNode, pFanin->pCopy); + } + } + printf("[FaultConstraint] Connected nodes in faulty circuit\n"); + + // Connect corresponding good and faulty input PIs + int totalPIs = Abc_NtkPiNum(pGoodNtk); + int processedPIs = 0; + printf("[FaultConstraint] Total PIs to process: %d\n", totalPIs); + printf("[FaultConstraint] Combined network has %d PIs\n", Abc_NtkPiNum(pNtk)); + + Abc_NtkForEachPi(pGoodNtk, pObj, i) { + char * pGoodName = Abc_ObjName(pObj); + char * pFaultName = (char *)malloc(strlen(pGoodName) + 3); // +3 for "_f" and null terminator + sprintf(pFaultName, "%s_f", pGoodName); + + // Find the corresponding fault PI by name + Abc_Obj_t * pCombinedFaultPi = NULL; + Abc_Obj_t * pPi; + int j; + Abc_NtkForEachPi(pNtk, pPi, j) { + if (strcmp(Abc_ObjName(pPi), pFaultName) == 0) { + pCombinedFaultPi = pPi; + break; + } + } + free(pFaultName); + + if (!pCombinedFaultPi) { + printf("[FaultConstraint] Error: Could not find fault PI %s_f\n", pGoodName); + continue; + } + + printf("[FaultConstraint] Processing PI pair %d: Good PI %s, Fault PI %s\n", + i, pGoodName, Abc_ObjName(pCombinedFaultPi)); + + // Connect the good circuit PI to the faulty circuit PI's fanouts + Abc_Obj_t * pFanout; + int k; + int fanoutCount = 0; + Abc_ObjForEachFanout(pCombinedFaultPi, pFanout, k) { + // Remove the connection to the faulty PI + Abc_ObjDeleteFanin(pFanout, pCombinedFaultPi); + // Add connection to the good circuit PI + Abc_ObjAddFanin(pFanout, pObj->pCopy); + fanoutCount++; + } + printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); + + // Remove the redundant PI from the combined network + Abc_NtkDeleteObj(pCombinedFaultPi); + processedPIs++; + } + + printf("[FaultConstraint] Processed %d out of %d PIs\n", processedPIs, totalPIs); + printf("[FaultConstraint] Connected input PIs and removed redundant PIs\n"); + + // Create XOR gates to compare outputs and collect them + Vec_Ptr_t * vXorOutputs = Vec_PtrAlloc(Abc_NtkPoNum(pGoodNtk)); + Abc_NtkForEachPo(pGoodNtk, pObj, i) { + // Get the fanin (output of the good circuit) + pFanin = Abc_ObjFanin0(pObj); + if (!pFanin || !pFanin->pCopy) { + printf("[FaultConstraint] Error: PO %s has invalid fanin\n", Abc_ObjName(pObj)); + continue; + } + + // Create XOR gate + pXor = Abc_NtkCreateNode(pNtk); + Abc_ObjAssignName(pXor, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); + + // Connect the good circuit output to first input of XOR + Abc_ObjAddFanin(pXor, pFanin->pCopy); + + // Connect the faulty circuit output to second input of XOR + Abc_Obj_t * pFaultFanin = Abc_ObjFanin0(pFaultNtk->vPos->pArray[i]); + if (!pFaultFanin || !pFaultFanin->pCopy) { + printf("[FaultConstraint] Error: Fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); + continue; + } + Abc_ObjAddFanin(pXor, pFaultFanin->pCopy); + + // Set XOR functionality + pXor->pData = Abc_SopCreateXor((Mem_Flex_t*)pNtk->pManFunc, 2); + + // Add XOR output to vector + Vec_PtrPush(vXorOutputs, pXor); + } + printf("[FaultConstraint] Created XOR gates for output comparison\n"); + + // Create OR gate to combine all XOR outputs + Abc_Obj_t * pOr = Abc_NtkCreateNode(pNtk); + Abc_ObjAssignName(pOr, "fault_detected", NULL); + + // Connect all XOR outputs to OR gate + Abc_Obj_t * pXorOutput; + int j; + Vec_PtrForEachEntry(Abc_Obj_t *, vXorOutputs, pXorOutput, j) { + Abc_ObjAddFanin(pOr, pXorOutput); + } + + // Set OR functionality + pOr->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t*)pNtk->pManFunc, Vec_PtrSize(vXorOutputs), NULL); + + // Create single PO for the OR output + Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); + Abc_ObjAddFanin(pPo, pOr); + Abc_ObjAssignName(pPo, "fault_detected", NULL); + + // Free the XOR outputs vector + Vec_PtrFree(vXorOutputs); + + printf("[FaultConstraint] Created OR gate and single PO to combine all XOR outputs\n"); + + // Clean up + Abc_NtkDelete(pFaultNtk); + printf("[FaultConstraint] Completed network combination\n"); + + // print the number of goodPIs + printf("[FaultConstraint] Number of good PIs: %d\n", Vec_PtrSize(vGoodPis)); +} + ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 1f96fd20af..25c3b15c38 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -182,6 +182,7 @@ static int Abc_CommandAIGAugmentation ( Abc_Frame_t * pAbc, int argc, char static int Abc_CommandFaultGen ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandFaultSim ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandFaultConstraint ( Abc_Frame_t * pAbc, int argc, char ** argv ); +static int Abc_CommandNtkCombine ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandAddTp ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandInsertTp ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandRunPBO ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -1008,6 +1009,7 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Fault", "fault_gen", Abc_CommandFaultGen, 0 ); Cmd_CommandAdd( pAbc, "Fault", "fault_sim", Abc_CommandFaultSim, 1 ); Cmd_CommandAdd( pAbc, "Fault", "fault_constraint", Abc_CommandFaultConstraint, 1 ); + Cmd_CommandAdd( pAbc, "Fault", "ntk_combine", Abc_CommandNtkCombine, 1 ); Cmd_CommandAdd( pAbc, "Fault", "add_tp", Abc_CommandAddTp, 1 ); Cmd_CommandAdd( pAbc, "Fault", "insert_tp", Abc_CommandInsertTp, 1 ); Cmd_CommandAdd( pAbc, "Fault", "pbo", Abc_CommandRunPBO, 0 ); @@ -11290,6 +11292,52 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Abc_CommandNtkCombine( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + int c; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + + Abc_NtkCombineNetwork( pNtk ); + + return 0; + +usage: + Abc_Print( -2, "usage: ntk_combine [-h]\n" ); + Abc_Print( -2, "\t Combine the good network with the faulty network\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} /**Function************************************************************* From c407afca04ecbd2d211af8ed86fa11b140412614 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Sat, 7 Jun 2025 20:04:00 +0800 Subject: [PATCH 29/58] add appending opb --- runPBO.cpp | 136 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 110 insertions(+), 26 deletions(-) diff --git a/runPBO.cpp b/runPBO.cpp index ec615401f9..3573070d17 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #define MAX_LINE 1024 #define MAX_LITS 1024 @@ -15,7 +16,7 @@ struct CNF { std::vector> clauses; }; -CNF* parse_cnf(const std::string& filename, const std::vector& obj) { +CNF* parse_cnf(const std::string& filename) { std::ifstream file(filename); if (!file.is_open()) { perror("Error opening CNF file"); @@ -33,24 +34,7 @@ CNF* parse_cnf(const std::string& filename, const std::vector& obj) { if (line[0] == 'p') { sscanf(line.c_str(), "p cnf %d %d", &cnf->num_vars, &cnf->num_clauses); - if (obj.empty()) { // If no objective variables are specified - cnf->clauses.resize(cnf->num_clauses); - continue; - } - - cnf->clauses.resize(++cnf->num_clauses); - // add one hot constraint for objective variables - std::vector clause; - for (int i:obj) { - if (i > cnf->num_vars) { - std::cerr << "Invalid objective variable " << i - << ": must be <= " << cnf->num_vars << std::endl; - exit(-1); - } - clause.push_back(i>0 ? i : -i); // ensure positive literals - } - cnf->clauses[clause_index] = clause; // one hot constraint - clause_index++; + cnf->clauses.resize(cnf->num_clauses); continue; } @@ -68,13 +52,28 @@ CNF* parse_cnf(const std::string& filename, const std::vector& obj) { return cnf; } -void write_opb(const std::string& filename, const CNF* cnf, const std::vector& obj, const int pi_num, const int originPI_num) { +void write_opb(const std::string& filename, CNF* cnf, const std::vector& obj, const int pi_num, const int originPI_num) { std::ofstream file(filename); if (!file.is_open()) { perror("Error opening OPB file"); return; } + if (!obj.empty()){ + std::vector clause; + for (int i:obj) { + if (i > cnf->num_vars) { + std::cerr << "Invalid objective variable " << i + << ": must be <= " << cnf->num_vars << std::endl; + exit(-1); + } + int lit = i>0 ? i : -i; + clause.push_back(lit); // ensure positive literals + } + cnf->num_clauses++ ; + cnf->clauses.push_back(clause); + } + file << "* #variable= " << cnf->num_vars << " #constraint= " << cnf->num_clauses << "\n"; file << "* #PI= " << pi_num << " #originPI= " << originPI_num << "\n"; @@ -105,6 +104,94 @@ void write_opb(const std::string& filename, const CNF* cnf, const std::vector& obj, int pi_num, int originPI_num) { + std::ifstream infile(filename); + if (!infile.is_open()) { + perror("Error opening OPB file for reading"); + return; + } + + std::stringstream buffer; + std::string line; + int current_constraints = cnf->num_clauses; // Start with the number of clauses in CNF + bool first_header_found = false; + bool second_header_found = false; + + int parsed_pi_num = -1, parsed_originPI_num = -1; + + // Step 1: Read file line by line and update headers + int line_number = 0; + while (std::getline(infile, line)) { + line_number++; + if (!first_header_found && line.rfind("* #variable=", 0) == 0) { + first_header_found = true; + + // Parse "#variable= X #constraint= Y" + std::regex pattern(R"(\* #variable= (\d+) #constraint= (\d+))"); + std::smatch match; + if (std::regex_search(line, match, pattern)) { + current_constraints += std::stoi(match[2]); // add 1 for new constraint + std::ostringstream updated; + updated << "* #variable= " << cnf->num_vars + << " #constraint= " << current_constraints << "\n"; + buffer << updated.str(); + } else { + std::cerr << "Malformed header (line 1)\n"; + return; + } + } else if (!second_header_found && line.rfind("* #PI=", 0) == 0) { + second_header_found = true; + + // Parse "#PI= X #originPI= Y" + std::regex pattern(R"(\* #PI= (\d+) #originPI= (\d+))"); + std::smatch match; + if (std::regex_search(line, match, pattern)) { + parsed_pi_num = std::stoi(match[1]); + parsed_originPI_num = std::stoi(match[2]); + buffer << line << "\n"; // keep the original line + } else { + std::cerr << "Malformed PI line (line 2)\n"; + return; + } + } else { + buffer << line << "\n"; + } + } + infile.close(); + + // Step 2: Append the new constraint + buffer << "* added constraint with provided cnf\n"; + // for (int i = 0; i < obj.size(); ++i) { + // if (obj[i] < 0) + // buffer << "1 ~x" << -obj[i] << " "; + // else + // buffer << "1 x" << obj[i] << " "; + // } + // buffer << ">= 1;\n"; + + for (const auto& clause : cnf->clauses) { + for (int lit : clause) { + if (lit < 0) + buffer << "1 ~x" << -lit << " "; + else + buffer << "1 x" << lit << " "; + } + buffer << ">= 1;\n"; + } + + // Step 3: Write back to file + std::ofstream outfile(filename); + if (!outfile.is_open()) { + perror("Error opening OPB file for writing"); + return; + } + outfile << buffer.str(); + outfile.close(); + + // Optional: print parsed PI info + std::cout << "Parsed PI info: #PI= " << parsed_pi_num << ", #originPI= " << parsed_originPI_num << std::endl; +} + void execute_solver(const std::string& opb_filename, const int pi_num, const int originPI_num) { std::string command = "./pbcomp24-cg/build/mixed-bag " + opb_filename; FILE* fp = popen(command.c_str(), "r"); @@ -173,19 +260,16 @@ int main(int argc, char* argv[]) { // possitive integers for objective variables // negative integers are not used for objective function, but for onehot encoding int num = std::atoi(argv[i]); - // if (num > 0) { obj_variables.push_back(num); - // } else { - // std::cerr << "Objective variables should be positive integers\n"; - // return -1; - // } } - CNF* cnf = parse_cnf(input_filename, obj_variables); + CNF* cnf = parse_cnf(input_filename); if (!cnf) return 1; std::cerr << "CNF parsed successfully\n"; + write_opb(opb_filename, cnf, obj_variables, pi_num, originPI_num); std::cerr << "OPB file written successfully\n"; + // add_pbo_constraint(opb_filename, cnf, obj_variables, pi_num, originPI_num); execute_solver(opb_filename, pi_num, originPI_num); From 3cff478e229e2eec0474e66dab1a8d1c4b6ffc0f Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Sat, 7 Jun 2025 20:51:27 +0800 Subject: [PATCH 30/58] bug fixed --- src/base/abc/abcFault.c | 195 +++++++++++++++++++++++++++++----------- src/base/abci/abc.c | 2 +- 2 files changed, 142 insertions(+), 55 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 989b8ffa44..3190023cf4 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -915,8 +915,38 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Vec_Ptr_t *vGOHandledsa1 = Vec_PtrAlloc(100); // Track handled output nodes Vec_Ptr_t *vGIHandledsa0 = Vec_PtrAlloc(100); // Track handled input nodes Vec_Ptr_t *vGIHandledsa1 = Vec_PtrAlloc(100); // Track handled input nodes - - // Iterate over the fault list + + // Record original network nodes and PIs to distinguish from PBO nodes + Vec_Ptr_t *vOriginalNodes = Vec_PtrAlloc(1000); + Vec_Ptr_t *vOriginalPIs = Vec_PtrAlloc(100); + Abc_Obj_t *pObj; + Abc_NtkForEachNode(pNtk, pObj, i) { + Vec_PtrPush(vOriginalNodes, pObj); + } + Abc_NtkForEachPi(pNtk, pObj, i) { + Vec_PtrPush(vOriginalPIs, pObj); + } + printf("[PBO] Original nodes:\n"); + for (i = 0; i < Vec_PtrSize(vOriginalNodes); i++) { + Abc_Obj_t *pNode = (Abc_Obj_t *)Vec_PtrEntry(vOriginalNodes, i); + printf(" Node %d: %s\n", i, Abc_ObjName(pNode)); + } + printf("[PBO] Original PIs:\n"); + for (i = 0; i < Vec_PtrSize(vOriginalPIs); i++) { + Abc_Obj_t *pPi = (Abc_Obj_t *)Vec_PtrEntry(vOriginalPIs, i); + printf(" PI %d: %s\n", i, Abc_ObjName(pPi)); + } + + // Macro to check if a node is original (not a PBO node) + #define IS_ORIGINAL_NODE(pNode) (Vec_PtrFind(vOriginalNodes, pNode) != -1) + #define IS_ORIGINAL_PI(pNode) (Vec_PtrFind(vOriginalPIs, pNode) != -1) + #define IS_ORIGINAL_CIRCUIT_NODE(pNode) (IS_ORIGINAL_NODE(pNode) || IS_ORIGINAL_PI(pNode)) + + // Iterate over the fault list (modified to only process first 2 faults for testing) + // Original for loop: + // for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) + //int faultCount = 0; + //for (pFault = pNtk->pFaultList; pFault && faultCount < 2; pFault = pFault->pNext, faultCount++) for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) { char f0_Name[32], f1_Name[32]; @@ -929,6 +959,15 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) { pC = pNode; // Output of the gate + int originalFanoutCount = 0; + Abc_Obj_t *pFanout; + int fanoutIdx; + Abc_ObjForEachFanout(pFault->pNode, pFanout, fanoutIdx) + { + if (IS_ORIGINAL_CIRCUIT_NODE(pFanout)) + originalFanoutCount++; + } + if (pFault->Type == ABC_FAULT_SA0) { if (Vec_PtrFind(vGOHandledsa0, pC) != -1) @@ -960,17 +999,21 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // ================ End of SA0 GO ACTIVATION PBO ================ // RULE 2 - if (Abc_ObjFanoutNum(pFault->pNode) > 1){ + // Count fanouts that connect to original circuit nodes only + + printf("[PBO] Node %s has %d original fanout branches\n", Abc_ObjName(pFault->pNode), originalFanoutCount); + + if (originalFanoutCount > 1){ // pFault->pNode has fanout branches - printf("Node %s has multiple fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + printf("[PBO] Node %s has multiple fanout branches (#original fanout = %d)\n", Abc_ObjName(pFault->pNode), originalFanoutCount); } - else if (Abc_ObjFanoutNum(pFault->pNode) == 1) + else if (originalFanoutCount == 1) { // get the next node Abc_Obj_t *pNextNode = NULL; int inputIndex = -1; // Initialize input index pNextNode = Abc_ObjFanout0(pFault->pNode); - printf("Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); + printf("[PBO] Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); char *pSop = (char *)pNextNode->pData; int gateType = Abc_SopGetGateType(pSop); @@ -995,12 +1038,14 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pAND_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; int sideInputCount = 0; - // connect all the fanins to the AND gate + // connect all the fanins to the AND gate (only original nodes) Abc_ObjForEachFanin(pNextNode, pSidein, k) { if (k == inputIndex) continue; // Skip the current fanin being processed - // + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; Abc_ObjAddFanin(pAND_gate, pSidein); sideInputCount++; } @@ -1014,7 +1059,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s_in%d", Abc_ObjName(pNextNode), inputIndex); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNextNode)); Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); } @@ -1026,12 +1071,14 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pSidein; int sideInputCount = 0; - // connect all the fanins to the OR gate + // connect all the fanins to the OR gate (only original nodes) Abc_ObjForEachFanin(pNextNode, pSidein, k) { if (k == inputIndex) continue; // Skip the current fanin being processed - // + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; Abc_ObjAddFanin(pOR_gate, pSidein); sideInputCount++; } @@ -1049,16 +1096,16 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s_in%d", Abc_ObjName(pNextNode), inputIndex); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNextNode)); Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } } else if (Abc_ObjFanoutNum(pFault->pNode) < 1){ // pFault->pNode has no fanout branches - printf("Node %s has no fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + printf("[PBO] Node %s has no fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); } - printf("[FaultSim] Inserted SA0 GO sim gates for node %s\n", Abc_ObjName(pC)); + printf("[PBO] Inserted SA0 GO PBO GATE for node %s\n", Abc_ObjName(pC)); } else if (pFault->Type == ABC_FAULT_SA1) { @@ -1089,16 +1136,16 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // ================ End of SA1 GO ACTIVATION PBO ================ // RULE 2 - if (Abc_ObjFanoutNum(pFault->pNode) > 1){ + if (originalFanoutCount > 1){ // pFault->pNode has fanout branches - printf("Node %s has multiple fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + printf("[PBO] Node %s has multiple fanout branches (#original fanout = %d)\n", Abc_ObjName(pFault->pNode), originalFanoutCount); } - else if (Abc_ObjFanoutNum(pFault->pNode)== 1){ + else if (originalFanoutCount== 1){ // get the next node Abc_Obj_t *pNextNode = NULL; int inputIndex = -1; pNextNode = Abc_ObjFanout0(pFault->pNode); - printf("Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); + printf("[PBO] Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); char *pSop = (char *)pNextNode->pData; int gateType = Abc_SopGetGateType(pSop); @@ -1123,12 +1170,14 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pSidein; int sideInputCount = 0; - // connect all the fanins to the AND gate + // connect all the fanins to the AND gate (only original nodes) Abc_ObjForEachFanin(pNextNode, pSidein, k) { if (k == inputIndex) continue; // Skip the current fanin being processed - // + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; Abc_ObjAddFanin(pAND_gate, pSidein); sideInputCount++; } @@ -1147,7 +1196,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s_in%d", Abc_ObjName(pNode), inputIndex); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s", Abc_ObjName(pNode)); Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); } @@ -1158,16 +1207,19 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; - int l = 0; - // connect all the fanins to the OR gate - Abc_ObjForEachFanin(pNextNode, pSidein, l) + int sideInputCount = 0; + // connect all the fanins to the OR gate (only original nodes) + Abc_ObjForEachFanin(pNextNode, pSidein, k) { - if (l == inputIndex) + if (k == inputIndex) continue; // Skip the current fanin being processed - // - Abc_ObjAddFanin(pOR_gate, pFanin); + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; + Abc_ObjAddFanin(pOR_gate, pSidein); + sideInputCount++; } - pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNextNode), NULL); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); // OR_all_fanin ANF a_f0 pAND_gate = Abc_NtkCreateNode(pNtk); @@ -1181,17 +1233,17 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s_in%d", Abc_ObjName(pNode), inputIndex); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s", Abc_ObjName(pNode)); Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } } - else if (Abc_ObjFanoutNum(pFault->pNode) < 1){ + else if (originalFanoutCount < 1){ // pFault->pNode has no fanout branches - printf("Node %s has no fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); + printf("[PBO] Node %s has no fanout branches (#fanout = %d)\n", Abc_ObjName(pFault->pNode), Abc_ObjFanoutNum(pFault->pNode)); } - printf("[FaultSim] Inserted SA1 GO sim gates for node %s\n", Abc_ObjName(pC)); + printf("[PBO] Inserted SA1 GO PBO GATE for node %s\n", Abc_ObjName(pC)); } } // Handle gate input (GI) faults @@ -1201,7 +1253,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pFanin = Abc_ObjFanin(pNode, fanin_index); if (!pFanin) { - printf("[FaultSim] Error: Invalid fanin index %d for node %s\n", fanin_index, Abc_ObjName(pNode)); + printf("[PBO] Error: Invalid fanin index %d for node %s\n", fanin_index, Abc_ObjName(pNode)); continue; } @@ -1209,7 +1261,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) char *pSop = (char *)pNode->pData; int gateType = Abc_SopGetGateType(pSop); - printf("[FaultSim] GI fault at node %s (input %d), gate type = %d\n", Abc_ObjName(pNode), fanin_index, gateType); + printf("[PBO] GI fault at node %s (input %d), gate type = %d\n", Abc_ObjName(pNode), fanin_index, gateType); // Create a unique key for this node-input combination sprintf(keyBuf, "%s_in%d", Abc_ObjName(pNode), fanin_index); @@ -1260,16 +1312,21 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pAND_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; - int l=0; - // connect all the fanins to the AND gate + int sideInputCount = 0; + int l = 0; + // connect all the fanins to the AND gate (only original nodes) Abc_ObjForEachFanin(pNode, pSidein, l) { if (l == fanin_index) continue; // Skip the current fanin being processed - // + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; Abc_ObjAddFanin(pAND_gate, pSidein); + sideInputCount++; } - pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + printf("[PBO] Node %s has %d original side-inputs\n", Abc_ObjName(pNode), sideInputCount); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); // AND_all_fanin OR ~a_f0 pOR_gate = Abc_NtkCreateNode(pNtk); @@ -1290,16 +1347,21 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; - int l=0; - // connect all the fanins to the OR gate + int sideInputCount = 0; + int l = 0; + // connect all the fanins to the OR gate (only original nodes) Abc_ObjForEachFanin(pNode, pSidein, l) { if (l == fanin_index) continue; // Skip the current fanin being processed - // + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; Abc_ObjAddFanin(pOR_gate, pSidein); + sideInputCount++; } - pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); + printf("[PBO] Node %s has %d original side-inputs\n", Abc_ObjName(pNode), sideInputCount); // OR_all_fanin ANF a_f0 pAND_gate = Abc_NtkCreateNode(pNtk); @@ -1317,6 +1379,8 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } + + printf("[PBO] Inserted SA0 GI PBO GATE for node %s input %d\n", Abc_ObjName(pNode), fanin_index); } else if (pFault->Type == ABC_FAULT_SA1) { @@ -1362,16 +1426,21 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pAND_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; - int l=0; - // connect all the fanins to the AND gate + int sideInputCount = 0; + int l = 0; + // connect all the fanins to the AND gate (only original nodes) Abc_ObjForEachFanin(pNode, pSidein, l) { if (l == fanin_index) continue; // Skip the current fanin being processed - // + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; Abc_ObjAddFanin(pAND_gate, pSidein); + sideInputCount++; } - pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); + printf("[PBO] Node %s has %d original side-inputs\n", Abc_ObjName(pNode), sideInputCount); // create NOT gate for ~a_f1 pNOTf1_gate = Abc_NtkCreateNode(pNtk); @@ -1397,16 +1466,21 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_gate = Abc_NtkCreateNode(pNtk); Abc_Obj_t *pSidein; - int l=0; - // connect all the fanins to the OR gate + int sideInputCount = 0; + int l = 0; + // connect all the fanins to the OR gate (only original nodes) Abc_ObjForEachFanin(pNode, pSidein, l) { if (l == fanin_index) continue; // Skip the current fanin being processed - // - Abc_ObjAddFanin(pOR_gate, pFanin); + // Only include original circuit nodes (nodes + PIs), not PBO nodes + if (!IS_ORIGINAL_CIRCUIT_NODE(pSidein)) + continue; + Abc_ObjAddFanin(pOR_gate, pSidein); + sideInputCount++; } - pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNode), NULL); + pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); + printf("[PBO] Node %s has %d original side-inputs\n", Abc_ObjName(pNode), sideInputCount); // OR_all_fanin ANF a_f0 pAND_gate = Abc_NtkCreateNode(pNtk); @@ -1424,13 +1498,16 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } + - printf("[FaultSim] Inserted SA1 GI sim gates for node %s input %d\n", Abc_ObjName(pNode), fanin_index); + printf("[PBO] Inserted SA1 GI GATE for node %s\n", Abc_ObjName(pNode)); } } } - // Free the tracking vectors and their contents + // Free the tracking vectors and their contents + // Note: vGOHandled vectors store Abc_Obj_t* pointers, not allocated strings + // Only vGIHandled vectors store allocated strings that need to be freed Vec_PtrForEachEntry(char *, vGIHandledsa0, key, i) ABC_FREE(key); Vec_PtrForEachEntry(char *, vGIHandledsa1, key, i) @@ -1439,8 +1516,18 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Vec_PtrFree(vGOHandledsa1); Vec_PtrFree(vGIHandledsa0); Vec_PtrFree(vGIHandledsa1); - printf("[FaultSim] Completed fault simulation gate insertion\n"); + Vec_PtrFree(vOriginalNodes); + Vec_PtrFree(vOriginalPIs); + + // Undefine the macros + #undef IS_ORIGINAL_NODE + #undef IS_ORIGINAL_PI + #undef IS_ORIGINAL_CIRCUIT_NODE + + printf("[PBO] Completed PBO gate insertion\n"); } + + void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) { Abc_Ntk_t * pGoodNtk, * pFaultNtk, * pCombinedNtk; diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index d710a5b832..14f4ec3466 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11273,8 +11273,8 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) // Print fault list and statistics - Abc_NtkInsertFaultSimGates( pNtk ); Abc_NtkInsertPBOGates( pNtk ); + Abc_NtkInsertFaultSimGates( pNtk ); return 0; From 261d1ffeba6355152dc53058b8ea2120787eae4c Mon Sep 17 00:00:00 2001 From: xNTsai Date: Sat, 7 Jun 2025 21:47:39 +0800 Subject: [PATCH 31/58] add: strash for constraint ntk --- src/base/abci/abc.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 25c3b15c38..b9419053fd 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -3911,17 +3911,24 @@ int Abc_CommandStrash( Abc_Frame_t * pAbc, int argc, char ** argv ) int fRecord; int fCleanup; int fComplOuts; + int fFaultConstraint; pNtk = Abc_FrameReadNtk(pAbc); // set defaults fAllNodes = 0; fCleanup = 1; fRecord = 0; fComplOuts= 0; + fFaultConstraint = 0; Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "acrih" ) ) != EOF ) + while ( ( c = Extra_UtilGetopt( argc, argv, "facrih" ) ) != EOF ) { switch ( c ) { + case'f': + fFaultConstraint ^= 1; + pNtk = pNtk->pFaultConstraintNtk; + printf("Fault constraint network: %s\n", pNtk->pName); + break; case 'a': fAllNodes ^= 1; break; @@ -3968,6 +3975,7 @@ int Abc_CommandStrash( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Print( -2, "\t-c : toggles cleanup to remove the dangling AIG nodes [default = %s]\n", fCleanup? "all": "DFS" ); Abc_Print( -2, "\t-r : toggles using the record of AIG subgraphs [default = %s]\n", fRecord? "yes": "no" ); Abc_Print( -2, "\t-i : toggles complementing the POs of the AIG [default = %s]\n", fComplOuts? "yes": "no" ); + Abc_Print( -2, "\t-f : strash the fault constraint network [default = %s]\n", fFaultConstraint? "yes": "no" ); Abc_Print( -2, "\t-h : print the command usage\n"); return 1; } From 291ddc78bc0d9b3df55c5f60bf364192c51333a5 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Sun, 8 Jun 2025 01:20:40 +0800 Subject: [PATCH 32/58] add: strash -f --- src/base/abc/abcFault.c | 57 +++++++++++++++++++++-------------------- src/base/abci/abc.c | 24 ++++++++++++++--- 2 files changed, 49 insertions(+), 32 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 79fa5648ec..69c39f12bb 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -1054,8 +1054,8 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) continue; } - printf("[FaultConstraint] Processing PI pair %d: Good PI %s, Fault PI %s\n", - i, pGoodName, Abc_ObjName(pCombinedFaultPi)); + // printf("[FaultConstraint] Processing PI pair %d: Good PI %s, Fault PI %s\n", + // i, pGoodName, Abc_ObjName(pCombinedFaultPi)); // Connect the good circuit PI to the faulty circuit PI's fanouts Abc_Obj_t * pFanout; @@ -1068,7 +1068,7 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) Abc_ObjAddFanin(pFanout, pObj->pCopy); fanoutCount++; } - printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); + // printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); // Remove the redundant PI from the combined network Abc_NtkDeleteObj(pCombinedFaultPi); @@ -1284,6 +1284,7 @@ void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ) // number of PIs in the test pattern nPis = Vec_IntSize(vLatestPattern); + printf("[AssignTestPattern] Number of PIs in the test pattern: %d\n", nPis); // Create constant nodes if they don't exist pConst0 = Abc_NtkCreateNodeConst0(pFaultNtk); @@ -1340,18 +1341,18 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) { if (pNtk->pGoodNtk == NULL) { - printf("[FaultConstraint] Error: Good network not found. Call Abc_NtkInsertFaultSimGates first.\n"); + printf("[CombineNetwork] Error: Good network not found. Call Abc_NtkInsertFaultSimGates first.\n"); return; } Abc_Ntk_t * pGoodNtk = pNtk->pGoodNtk; // Get the good network Abc_Obj_t * pObj, * pFanin, * pXor; int i; - printf("[FaultConstraint] Starting network combination\n"); + printf("[CombineNetwork] Starting network combination\n"); // Save the current faulty circuit state Abc_Ntk_t * pFaultNtk = Abc_NtkDup(pNtk); - printf("[FaultConstraint] Saved faulty circuit state\n"); + printf("[CombineNetwork] Saved faulty circuit state\n"); // Save important attributes from the original network Abc_Fault_t * pFaultList = pNtk->pFaultList; @@ -1382,7 +1383,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) pNtk->pFaultConstraintNtk = pFaultConstraintNtk; pNtk->vGoodPis = vGoodPis; pNtk->pGoodNtk = oldGoodNtk; - printf("[FaultConstraint] Cleared and reinitialized network with preserved attributes\n"); + printf("[CombineNetwork] Cleared and reinitialized network with preserved attributes\n"); // Copy PIs from good circuit Abc_NtkForEachPi(pGoodNtk, pObj, i) { @@ -1390,7 +1391,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_ObjAssignName(pPi, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); pObj->pCopy = pPi; } - printf("[FaultConstraint] Copied PIs from good circuit\n"); + printf("[CombineNetwork] Copied PIs from good circuit\n"); // Copy additional PIs from faulty circuit with unique names Abc_NtkForEachPi(pFaultNtk, pObj, i) { @@ -1400,13 +1401,13 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator sprintf(pNewName, "%s_f", pName); - printf("[FaultConstraint] Creating unique name for PI %s: %s\n", Abc_ObjName(pObj), pNewName); + printf("[CombineNetwork] Creating unique name for PI %s: %s\n", Abc_ObjName(pObj), pNewName); Abc_ObjAssignName(pPi, pNewName, NULL); free(pName); // Free the original name pObj->pCopy = pPi; } } - printf("[FaultConstraint] Copied additional PIs from faulty circuit\n"); + printf("[CombineNetwork] Copied additional PIs from faulty circuit\n"); // Copy nodes from good circuit Abc_NtkForEachNode(pGoodNtk, pObj, i) { @@ -1415,7 +1416,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_ObjAssignName(pNode, Abc_UtilStrsav(Abc_ObjName(pObj)), NULL); pObj->pCopy = pNode; } - printf("[FaultConstraint] Copied nodes from good circuit\n"); + printf("[CombineNetwork] Copied nodes from good circuit\n"); // Connect nodes in good circuit Abc_NtkForEachNode(pGoodNtk, pObj, i) { @@ -1430,7 +1431,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_ObjAddFanin(pNode, pFanin->pCopy); } } - printf("[FaultConstraint] Connected nodes in good circuit\n"); + printf("[CombineNetwork] Connected nodes in good circuit\n"); // Copy nodes from faulty circuit with unique names Abc_NtkForEachNode(pFaultNtk, pObj, i) { @@ -1444,7 +1445,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) free(pName); // Free the original name pObj->pCopy = pNode; } - printf("[FaultConstraint] Copied nodes from faulty circuit\n"); + printf("[CombineNetwork] Copied nodes from faulty circuit\n"); // Connect nodes in faulty circuit Abc_NtkForEachNode(pFaultNtk, pObj, i) { @@ -1459,13 +1460,13 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_ObjAddFanin(pNode, pFanin->pCopy); } } - printf("[FaultConstraint] Connected nodes in faulty circuit\n"); + printf("[CombineNetwork] Connected nodes in faulty circuit\n"); // Connect corresponding good and faulty input PIs int totalPIs = Abc_NtkPiNum(pGoodNtk); int processedPIs = 0; - printf("[FaultConstraint] Total PIs to process: %d\n", totalPIs); - printf("[FaultConstraint] Combined network has %d PIs\n", Abc_NtkPiNum(pNtk)); + printf("[CombineNetwork] Total PIs to process: %d\n", totalPIs); + printf("[CombineNetwork] Combined network has %d PIs\n", Abc_NtkPiNum(pNtk)); Abc_NtkForEachPi(pGoodNtk, pObj, i) { char * pGoodName = Abc_ObjName(pObj); @@ -1485,12 +1486,12 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) free(pFaultName); if (!pCombinedFaultPi) { - printf("[FaultConstraint] Error: Could not find fault PI %s_f\n", pGoodName); + printf("[CombineNetwork] Error: Could not find fault PI %s_f\n", pGoodName); continue; } - printf("[FaultConstraint] Processing PI pair %d: Good PI %s, Fault PI %s\n", - i, pGoodName, Abc_ObjName(pCombinedFaultPi)); + // printf("[CombineNetwork] Processing PI pair %d: Good PI %s, Fault PI %s\n", + // i, pGoodName, Abc_ObjName(pCombinedFaultPi)); // Connect the good circuit PI to the faulty circuit PI's fanouts Abc_Obj_t * pFanout; @@ -1503,15 +1504,15 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_ObjAddFanin(pFanout, pObj->pCopy); fanoutCount++; } - printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); + // printf("[CombineNetwork] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); // Remove the redundant PI from the combined network Abc_NtkDeleteObj(pCombinedFaultPi); processedPIs++; } - printf("[FaultConstraint] Processed %d out of %d PIs\n", processedPIs, totalPIs); - printf("[FaultConstraint] Connected input PIs and removed redundant PIs\n"); + printf("[CombineNetwork] Processed %d out of %d PIs\n", processedPIs, totalPIs); + printf("[CombineNetwork] Connected input PIs and removed redundant PIs\n"); // Create XOR gates to compare outputs and collect them Vec_Ptr_t * vXorOutputs = Vec_PtrAlloc(Abc_NtkPoNum(pGoodNtk)); @@ -1519,7 +1520,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) // Get the fanin (output of the good circuit) pFanin = Abc_ObjFanin0(pObj); if (!pFanin || !pFanin->pCopy) { - printf("[FaultConstraint] Error: PO %s has invalid fanin\n", Abc_ObjName(pObj)); + printf("[CombineNetwork] Error: PO %s has invalid fanin\n", Abc_ObjName(pObj)); continue; } @@ -1533,7 +1534,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) // Connect the faulty circuit output to second input of XOR Abc_Obj_t * pFaultFanin = Abc_ObjFanin0(pFaultNtk->vPos->pArray[i]); if (!pFaultFanin || !pFaultFanin->pCopy) { - printf("[FaultConstraint] Error: Fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); + printf("[CombineNetwork] Error: Fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); continue; } Abc_ObjAddFanin(pXor, pFaultFanin->pCopy); @@ -1544,7 +1545,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) // Add XOR output to vector Vec_PtrPush(vXorOutputs, pXor); } - printf("[FaultConstraint] Created XOR gates for output comparison\n"); + printf("[CombineNetwork] Created XOR gates for output comparison\n"); // Create OR gate to combine all XOR outputs Abc_Obj_t * pOr = Abc_NtkCreateNode(pNtk); @@ -1568,14 +1569,14 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) // Free the XOR outputs vector Vec_PtrFree(vXorOutputs); - printf("[FaultConstraint] Created OR gate and single PO to combine all XOR outputs\n"); + printf("[CombineNetwork] Created OR gate and single PO to combine all XOR outputs\n"); // Clean up Abc_NtkDelete(pFaultNtk); - printf("[FaultConstraint] Completed network combination\n"); + printf("[CombineNetwork] Completed network combination\n"); // print the number of goodPIs - printf("[FaultConstraint] Number of good PIs: %d\n", Vec_PtrSize(vGoodPis)); + printf("[CombineNetwork] Number of good PIs: %d\n", Vec_PtrSize(vGoodPis)); } ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index b9419053fd..af39c6fe5b 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -3927,7 +3927,7 @@ int Abc_CommandStrash( Abc_Frame_t * pAbc, int argc, char ** argv ) case'f': fFaultConstraint ^= 1; pNtk = pNtk->pFaultConstraintNtk; - printf("Fault constraint network: %s\n", pNtk->pName); + printf("Strash Fault constraint network\n"); break; case 'a': fAllNodes ^= 1; @@ -3962,10 +3962,12 @@ int Abc_CommandStrash( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } if ( fComplOuts ) - Abc_NtkForEachPo( pNtkRes, pObj, c ) - Abc_ObjXorFaninC( pObj, 0 ); + Abc_NtkForEachPo( pNtkRes, pObj, c ) + Abc_ObjXorFaninC( pObj, 0 ); // replace the current network + if(fFaultConstraint) pNtkRes->pFaultConstraintNtk = Abc_FrameReadNtk(pAbc); Abc_FrameReplaceCurrentNetwork( pAbc, pNtkRes ); + return 0; usage: @@ -11300,6 +11302,7 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } + /**Function************************************************************* Synopsis [] @@ -19196,6 +19199,12 @@ int Abc_CommandBackup( Abc_Frame_t * pAbc, int argc, char ** argv ) if ( pAbc->pNtkBackup ) Abc_NtkDelete( pAbc->pNtkBackup ); pAbc->pNtkBackup = Abc_NtkDup( pNtk ); + if(pNtk -> pFaultList != NULL) pAbc->pNtkBackup -> pFaultList = pNtk -> pFaultList; + if(pNtk -> nFaults != 0) pAbc->pNtkBackup -> nFaults = pNtk -> nFaults; + if(pNtk -> pGoodNtk != NULL) pAbc->pNtkBackup -> pGoodNtk = pNtk -> pGoodNtk; + if(pNtk -> vGoodPis != NULL) pAbc->pNtkBackup -> vGoodPis = pNtk -> vGoodPis; + if(pNtk -> pFaultConstraintNtk != NULL) pAbc->pNtkBackup -> pFaultConstraintNtk = pNtk -> pFaultConstraintNtk; + return 0; usage: @@ -19207,6 +19216,7 @@ int Abc_CommandBackup( Abc_Frame_t * pAbc, int argc, char ** argv ) int Abc_CommandRestore( Abc_Frame_t * pAbc, int argc, char ** argv ) { int c; + Abc_Ntk_t * dupNtk; // set defaults Extra_UtilGetoptReset(); while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) @@ -19225,7 +19235,13 @@ int Abc_CommandRestore( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Print( -1, "There is no backup network.\n" ); return 1; } - Abc_FrameReplaceCurrentNetwork( pAbc, Abc_NtkDup(pAbc->pNtkBackup) ); + dupNtk = Abc_NtkDup(pAbc->pNtkBackup); + if(pAbc->pNtkBackup -> pFaultList != NULL) dupNtk -> pFaultList = pAbc->pNtkBackup -> pFaultList; + if(pAbc->pNtkBackup -> nFaults != 0) dupNtk -> nFaults = pAbc->pNtkBackup -> nFaults; + if(pAbc->pNtkBackup -> pGoodNtk != NULL) dupNtk -> pGoodNtk = pAbc->pNtkBackup -> pGoodNtk; + if(pAbc->pNtkBackup -> vGoodPis != NULL) dupNtk -> vGoodPis = pAbc->pNtkBackup -> vGoodPis; + if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) dupNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); + Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); pAbc->nFrames = -1; pAbc->Status = -1; return 0; From 6e54c10dd6ca3cd95723b9e01873046672da4133 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Sun, 8 Jun 2025 22:06:13 +0800 Subject: [PATCH 33/58] done getting test pattern from PBO --- runPBO.cpp | 273 ++++++++++++++++++++++++++++++++++-------- src/base/abc/abcPbo.c | 23 ++-- 2 files changed, 234 insertions(+), 62 deletions(-) diff --git a/runPBO.cpp b/runPBO.cpp index 3573070d17..3d91f0bdcf 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #define MAX_LINE 1024 #define MAX_LITS 1024 @@ -59,23 +60,19 @@ void write_opb(const std::string& filename, CNF* cnf, const std::vector& ob return; } - if (!obj.empty()){ - std::vector clause; - for (int i:obj) { - if (i > cnf->num_vars) { - std::cerr << "Invalid objective variable " << i - << ": must be <= " << cnf->num_vars << std::endl; - exit(-1); - } - int lit = i>0 ? i : -i; - clause.push_back(lit); // ensure positive literals - } - cnf->num_clauses++ ; - cnf->clauses.push_back(clause); + int pi_start = cnf->num_vars - pi_num + 1; // [pi_start, pi_end] are the PI variables + int xy_start = pi_start + originPI_num + obj.size(); + int xy_end = cnf->num_vars ; // [xy_start, xy_end] are the XY variables + if(xy_end-xy_start + 1 != obj.size()){ // Ensure XY variables match the expected count + std::cerr << "Error: xy_end-xy_start - 1 != obj.size().\n"; + std::cerr << "Expected: " << xy_end << "-" << xy_start << "-1, Found: " << obj.size() << "\n"; + file.close(); + exit(-1); } file << "* #variable= " << cnf->num_vars << " #constraint= " << cnf->num_clauses << "\n"; - file << "* #PI= " << pi_num << " #originPI= " << originPI_num << "\n"; + file << "* #XY_start= " << xy_start << " #XY_end= " << xy_end << "\n"; + file << "* #PI_start= " << pi_start << " #PI_num= " << originPI_num << "\n"; if (!obj.empty()) { file << "min: "; @@ -101,10 +98,15 @@ void write_opb(const std::string& filename, CNF* cnf, const std::vector& ob file << ">= 1;\n"; } + for (int i = xy_start; i <= xy_end; ++i) { + file << "1 x" << i << " "; + } + file << "= 1;\n"; + file.close(); } -void add_pbo_constraint(const std::string& filename, CNF* cnf, const std::vector& obj, int pi_num, int originPI_num) { +void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int originPI_num) { std::ifstream infile(filename); if (!infile.is_open()) { perror("Error opening OPB file for reading"); @@ -114,10 +116,15 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, const std::vector std::stringstream buffer; std::string line; int current_constraints = cnf->num_clauses; // Start with the number of clauses in CNF + int current_vars = cnf->num_vars; // Start with the number of variables in CNF bool first_header_found = false; bool second_header_found = false; + bool third_header_found = false; + + int parsed_xy_start = -1, parsed_xy_end = -1; + int parsed_pi_start = -1, parsed_pi_num = -1; + int origin_vars = -1; - int parsed_pi_num = -1, parsed_originPI_num = -1; // Step 1: Read file line by line and update headers int line_number = 0; @@ -130,30 +137,55 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, const std::vector std::regex pattern(R"(\* #variable= (\d+) #constraint= (\d+))"); std::smatch match; if (std::regex_search(line, match, pattern)) { - current_constraints += std::stoi(match[2]); // add 1 for new constraint + current_constraints += std::stoi(match[2]); + current_vars += std::stoi(match[1]) - pi_num; // add new variables, except for Xs, Ys. + origin_vars = std::stoi(match[1]); // Store the original number of variables std::ostringstream updated; - updated << "* #variable= " << cnf->num_vars + updated << "* #variable= " << current_vars << " #constraint= " << current_constraints << "\n"; buffer << updated.str(); + std::cerr << "variable = " << current_vars + << ", constraint = " << current_constraints << "\n"; } else { std::cerr << "Malformed header (line 1)\n"; return; } - } else if (!second_header_found && line.rfind("* #PI=", 0) == 0) { + } + else if (!second_header_found && line.rfind("* #XY_", 0) == 0) { + second_header_found = true; + + // Parse "#PI= X #originPI= Y" + std::regex pattern(R"(\* #XY_start= (\d+) #XY_end= (\d+))"); + std::smatch match; + if (std::regex_search(line, match, pattern)) { + parsed_xy_start = std::stoi(match[1]); + parsed_xy_end = std::stoi(match[2]); + std::cerr << "parsed_xy_start = " << parsed_xy_start + << ", parsed_xy_end = " << parsed_xy_end << "\n"; + buffer << line << "\n"; // keep the original line + } else { + std::cerr << "Malformed PI line (line 2)\n"; + return; + } + } + else if (!third_header_found && line.rfind("* #PI_", 0) == 0) { second_header_found = true; // Parse "#PI= X #originPI= Y" - std::regex pattern(R"(\* #PI= (\d+) #originPI= (\d+))"); + std::regex pattern(R"(\* #PI_start= (\d+) #PI_num= (\d+))"); std::smatch match; if (std::regex_search(line, match, pattern)) { - parsed_pi_num = std::stoi(match[1]); - parsed_originPI_num = std::stoi(match[2]); + parsed_pi_start = std::stoi(match[1]); + parsed_pi_num = std::stoi(match[2]); + std::cerr << "parsed_pi_start = " << parsed_pi_start + << ", parsed_pi_num = " << parsed_pi_num << "\n"; buffer << line << "\n"; // keep the original line } else { std::cerr << "Malformed PI line (line 2)\n"; return; } - } else { + } + else { buffer << line << "\n"; } } @@ -161,20 +193,32 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, const std::vector // Step 2: Append the new constraint buffer << "* added constraint with provided cnf\n"; - // for (int i = 0; i < obj.size(); ++i) { - // if (obj[i] < 0) - // buffer << "1 ~x" << -obj[i] << " "; - // else - // buffer << "1 x" << obj[i] << " "; - // } - // buffer << ">= 1;\n"; for (const auto& clause : cnf->clauses) { for (int lit : clause) { - if (lit < 0) - buffer << "1 ~x" << -lit << " "; - else + if (lit < 0){ + lit = -lit + origin_vars; // adjust to fit origin variables + if (lit > current_vars){ + // adjust to fit origin XY variables + lit = (lit - current_vars) + parsed_xy_start -1; + if (lit < parsed_xy_start || lit > parsed_xy_end) { + std::cerr << "Error: Literal " << -lit << " out of range for XY variables.\n"; + return; + } + } + buffer << "1 ~x" << lit << " "; + } + else{ + lit += origin_vars; // adjust to fit origin variables + if (lit > current_vars){ + lit = (lit - current_vars) + parsed_xy_start -1; // adjust to fit origin XY variables + if (lit < parsed_xy_start || lit > parsed_xy_end) { + std::cerr << "Error: Literal " << lit << " out of range for XY variables.\n"; + return; + } + } buffer << "1 x" << lit << " "; + } } buffer << ">= 1;\n"; } @@ -189,7 +233,126 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, const std::vector outfile.close(); // Optional: print parsed PI info - std::cout << "Parsed PI info: #PI= " << parsed_pi_num << ", #originPI= " << parsed_originPI_num << std::endl; + std::cerr << "Parsed XY info: #XY_start= " << parsed_xy_start << ", #XY_end= " << parsed_xy_end << std::endl; +} + +// Function to perform the full task +void modify_opb_by_lits(const std::vector& lits, const std::string& opb_filename) { + std::ifstream infile(opb_filename); + if (!infile.is_open()) { + std::cerr << "Error opening file: " << opb_filename << std::endl; + return; + } + + std::vector lines; + std::string line; + int min_line_index = -1; + bool second_header_found = false; + int obj_var_count = 0; + + // Step 1: read all lines and find the "min:" line + std::vector min_var_indices; // stores indices like 19, 20, ... + + while (std::getline(infile, line)) { + std::string trimmed = line; + + if (min_line_index == -1 && trimmed.rfind("min:", 0) == 0) { + std::stringstream ss(trimmed); + std::string token, coef, var; + ss >> token; // skip "min:" + + while (ss >> coef >> var) { + if (var == ";") break; + if (var.size() > 1 && var[0] == 'x') { + int idx = std::stoi(var.substr(1)); + min_var_indices.push_back(idx); + } + } + + min_line_index = lines.size(); // record which line to modify + } + else if (!second_header_found && line.rfind("* #XY_", 0) == 0) { + second_header_found = true; + + // Parse "#PI= X #originPI= Y" + std::regex pattern(R"(\* #XY_start= (\d+) #XY_end= (\d+))"); + std::smatch match; + if (std::regex_search(line, match, pattern)) { + obj_var_count = std::stoi(match[2]) - std::stoi(match[1]) + 1; // Calculate number of objective variables + } else { + std::cerr << "Malformed PI line (line 2)\n"; + return; + } + } + + lines.push_back(line); + } + infile.close(); + + if (min_var_indices.size() == 0 || min_line_index < 0) { + std::cerr << "No valid min line or variable found.\n"; + return; + } + + // Step 2: find the first positive literal in lits[start_index...] + std::string target_var; + int t_var; + for (int i: min_var_indices) { + const std::string& lit = lits[i+obj_var_count]; + std::cerr << "Checking literal: " << lit << "\n"; + if (!lit.empty() && lit[0] != '-') { + // strip "x" if present, store only the index + size_t x_pos = lit.find('x'); + target_var = x_pos != std::string::npos ? lit.substr(x_pos + 1) : lit; + t_var = std::stoi(target_var) -obj_var_count; + target_var = std::to_string(t_var); // convert to string for consistency + std::cerr << "Removing: x" << target_var << " from objective function\n"; + break; + } + } + + if (target_var.empty()) { + std::cerr << "No positive literal found in lits.\n"; + return; + } + + // Step 3: remove the variable from the "min:" line + std::string& min_line = lines[min_line_index]; + std::stringstream ss(min_line); + std::string updated_line, token; + ss >> token; // skip "min:" + updated_line = "min:"; + + while (ss >> token) { + if (token == ";") { + updated_line += " ;"; + break; + } + + std::string coef = token; + if (!(ss >> token)) break; // read variable + std::string var = token; + + // Keep if not the target + if (var != ("x" + target_var)) { + updated_line += " " + coef + " " + var; + } + } + + lines[min_line_index] = updated_line; + + // Step 4: overwrite the file + std::ofstream outfile(opb_filename); + if (!outfile.is_open()) { + std::cerr << "Error writing to file: " << opb_filename << std::endl; + return; + } + + for (const auto& l : lines) { + outfile << l << "\n"; + } + + outfile.close(); } void execute_solver(const std::string& opb_filename, const int pi_num, const int originPI_num) { @@ -200,10 +363,10 @@ void execute_solver(const std::string& opb_filename, const int pi_num, const int exit(1); } - char buffer[256]; + char buffer[4096]; // TODO : Adjust buffer size as needed bool sat = false; while (fgets(buffer, sizeof(buffer), fp)) { - // std::cerr << buffer; // Print solver output to stderr + std::cerr << buffer; // Print solver output to stderr if (buffer[0] != 'v') continue; std::istringstream iss(buffer); @@ -227,6 +390,7 @@ void execute_solver(const std::string& opb_filename, const int pi_num, const int } sat = true; + modify_opb_by_lits(literals, opb_filename); // Modify the OPB's objective function with the literals std::cout << bitstring << "\n"; } @@ -242,35 +406,42 @@ void execute_solver(const std::string& opb_filename, const int pi_num, const int } int main(int argc, char* argv[]) { - if (argc < 5) { - std::cerr << "Usage: " << argv[0] << " input.cnf output.opb [pi_num] [origin pi num] [obj_vars...]\n"; + if (argc != 5) { + std::cerr << "Usage: " << argv[0] << " input.cnf output.opb [pi_num] [origin pi num]\n"; return 1; } - else if(argc == 5){ - std::cerr << "[Warning] No objective variables specified, running PBO without objective function.\n"; - } + // else if(argc == 5){ + // std::cerr << "[Warning] No objective variables specified, running PBO without objective function.\n"; + // } std::string input_filename = argv[1]; std::string opb_filename = argv[2]; const int pi_num = (argc > 3) ? std::atoi(argv[3]) : 0; const int originPI_num = (argc > 4) ? std::atoi(argv[4]) : 0; + assert(originPI_num <= pi_num); // let originPI_num = -1 be the signal of appending constraints std::vector obj_variables; - for (int i = 5; i < argc; ++i) { - // possitive integers for objective variables - // negative integers are not used for objective function, but for onehot encoding - int num = std::atoi(argv[i]); - obj_variables.push_back(num); - } - CNF* cnf = parse_cnf(input_filename); if (!cnf) return 1; std::cerr << "CNF parsed successfully\n"; - write_opb(opb_filename, cnf, obj_variables, pi_num, originPI_num); - std::cerr << "OPB file written successfully\n"; - // add_pbo_constraint(opb_filename, cnf, obj_variables, pi_num, originPI_num); + if (originPI_num > 0){ + int start = cnf->num_vars - pi_num + originPI_num +1; + int end = (start + cnf->num_vars)/2; + std::cerr << "start: " << start << ", end: " << end << "\n"; + assert(end - start +1 == cnf->num_vars -end); + for (int i = start; i <= end; ++i) { + obj_variables.push_back(i); + } + write_opb(opb_filename, cnf, obj_variables, pi_num, originPI_num); + std::cerr << "OPB file written successfully\n"; + } + else if (originPI_num == -1){ + add_pbo_constraint(opb_filename, cnf, pi_num, originPI_num); + std::cerr << "OPB file updated with new constraints successfully\n"; + } + execute_solver(opb_filename, pi_num, originPI_num); delete cnf; diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index 0dce153bfa..cb1b5c660f 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -26,17 +26,10 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) close(pipefd[0]); // Close unused read end dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe - - char arg_str[100] = {0}; - for (int i = 2; i < 10; ++i) { - char temp[16]; - sprintf(temp, "%d", i); - strcat(arg_str, temp); - if (i < 10 - 1) strcat(arg_str, " "); - } - char *argv[] = {"./solver", "atpg.cnf", "output.opb", pi_num, good_pi_num, arg_str, NULL}; - execv("./solver", argv); + // need to compile runPBO.cpp first + char *argv[] = {"./runpbo", "atpg.cnf", "output.opb", pi_num, good_pi_num, NULL}; + execv("./runpbo", argv); // If execv returns, an error occurred perror("execv"); @@ -77,6 +70,14 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) free(output); return; } + + if ( strncmp(output, "unsat", 5) == 0 ) { + Abc_Print(ABC_WARNING, "PBO solver returned unsat.\n"); + free(output); + free(pattern); + return; + } + for (int i = 0; i < good_pi_num; ++i) { pattern[i] = output[i] == '1' ? 1 : 0 ; // Convert char to int } @@ -84,7 +85,7 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) Abc_NtkAddTestPattern(pNtk, vPattern); free(output); - + return; } } From 14e92637bb62879101cc8d1957b15bc2f4013c47 Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Sun, 8 Jun 2025 22:10:07 +0800 Subject: [PATCH 34/58] bug fixed --- src/base/abc/abcFault.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 0099de821e..8dd01afb8d 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -1071,7 +1071,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNextNode)); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNode)); Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); } @@ -1108,7 +1108,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNextNode)); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNode)); Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } @@ -1245,7 +1245,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s", Abc_ObjName(pNode)); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_OR_%s", Abc_ObjName(pNode)); Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } From 3630cc013b20e537dc27e5bca84a0a3901d8f48e Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Sun, 8 Jun 2025 22:27:42 +0800 Subject: [PATCH 35/58] add PBO ntk good pi --- src/base/abc/abcPbo.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index cb1b5c660f..a38abf6a6e 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -11,7 +11,14 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) const int pi_num = Abc_NtkPiNum(pNtk); // int good_pi_num = Abc_NtkPiNum(pNtk); - const int good_pi_num = 5; + const int good_pi_num = pNtk->vGoodPis ? Vec_PtrSize(pNtk->vGoodPis) : -1; + if (good_pi_num < 0) { + Abc_Print(ABC_ERROR, "No good PIs found in the network.\n"); + return; + } + char pi_num_str[16], good_pi_str[16]; + sprintf(pi_num_str, "%d", pi_num); + sprintf(good_pi_str, "%d", good_pi_num); int pipefd[2]; if (pipe(pipefd) == -1) { @@ -28,7 +35,7 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe // need to compile runPBO.cpp first - char *argv[] = {"./runpbo", "atpg.cnf", "output.opb", pi_num, good_pi_num, NULL}; + char *argv[] = {"./runpbo", "atpg.cnf", "output.opb", pi_num_str, good_pi_str, NULL}; execv("./runpbo", argv); // If execv returns, an error occurred From 5fd744bbb771fc2809a1a390f20126481f0b7533 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Mon, 9 Jun 2025 00:37:15 +0800 Subject: [PATCH 36/58] fix: network combine issue --- src/base/abc/abcFault.c | 62 ++++++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 8dd01afb8d..12a93e3343 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -236,7 +236,18 @@ void Abc_NtkGenerateCheckpointFaultList( Abc_Ntk_t * pNtk ) Abc_Obj_t * pObj, *pFanin; Vec_Ptr_t * vCheckpoints; int i, k; + + // Store the good network and its PIs + pNtk->pGoodNtk = Abc_NtkDup(pNtk); + pNtk->vGoodPis = Vec_PtrAlloc(Abc_NtkPiNum(pNtk)); + // Copy all PIs to vGoodPis + Abc_Obj_t * pPi; + Abc_NtkForEachPi(pNtk, pPi, i) { + Vec_PtrPush(pNtk->vGoodPis, pPi); + } + printf("[FaultSim] Stored good network and its PIs\n"); + // Clear existing faults Abc_NtkClearFaults( pNtk ); @@ -431,6 +442,17 @@ void Abc_NtkGenerateCollapsingFaultList( Abc_Ntk_t * pNtk ) int i, j, k, nFaults = 0; int gateType; int nTotalGateFaults = 0; + + // Store the good network and its PIs + pNtk->pGoodNtk = Abc_NtkDup(pNtk); + pNtk->vGoodPis = Vec_PtrAlloc(Abc_NtkPiNum(pNtk)); + + // Copy all PIs to vGoodPis + Abc_Obj_t * pPi; + Abc_NtkForEachPi(pNtk, pPi, i) { + Vec_PtrPush(pNtk->vGoodPis, pPi); + } + printf("[FaultSim] Stored good network and its PIs\n"); // Clear existing faults Abc_NtkClearFaults( pNtk ); @@ -746,17 +768,6 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Vec_Ptr_t * vGIHandledsa0 = Vec_PtrAlloc(100); // Track handled input nodes Vec_Ptr_t * vGIHandledsa1 = Vec_PtrAlloc(100); // Track handled input nodes - // Store the good network and its PIs - pNtk->pGoodNtk = Abc_NtkDup(pNtk); - pNtk->vGoodPis = Vec_PtrAlloc(Abc_NtkPiNum(pNtk)); - - // Copy all PIs to vGoodPis - Abc_Obj_t * pPi; - Abc_NtkForEachPi(pNtk, pPi, i) { - Vec_PtrPush(pNtk->vGoodPis, pPi); - } - printf("[FaultSim] Stored good network and its PIs\n"); - // Iterate over the fault list for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) { @@ -1598,7 +1609,6 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator sprintf(pNewName, "%s_f", pName); - printf("[FaultConstraint] Creating unique name for PI %s: %s\n", Abc_ObjName(pObj), pNewName); Abc_ObjAssignName(pPi, pNewName, NULL); free(pName); // Free the original name pObj->pCopy = pPi; @@ -2034,13 +2044,13 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator sprintf(pNewName, "%s_f", pName); - printf("[CombineNetwork] Creating unique name for PI %s: %s\n", Abc_ObjName(pObj), pNewName); Abc_ObjAssignName(pPi, pNewName, NULL); free(pName); // Free the original name pObj->pCopy = pPi; } } printf("[CombineNetwork] Copied additional PIs from faulty circuit\n"); + // Copy nodes from good circuit Abc_NtkForEachNode(pGoodNtk, pObj, i) { @@ -2150,6 +2160,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) // Create XOR gates to compare outputs and collect them Vec_Ptr_t * vXorOutputs = Vec_PtrAlloc(Abc_NtkPoNum(pGoodNtk)); Abc_NtkForEachPo(pGoodNtk, pObj, i) { + printf("[CombineNetwork] Processing PO %s\n", Abc_ObjName(pObj)); // Get the fanin (output of the good circuit) pFanin = Abc_ObjFanin0(pObj); if (!pFanin || !pFanin->pCopy) { @@ -2180,6 +2191,31 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) } printf("[CombineNetwork] Created XOR gates for output comparison\n"); + // Preserve additional POs from faulty circuit that don't have corresponding good POs + Abc_NtkForEachPo(pFaultNtk, pObj, i) { + // Skip if this PO was already processed in the good circuit + if (i < Abc_NtkPoNum(pGoodNtk)) { + continue; + } + + Abc_Obj_t * pFaultFanin = Abc_ObjFanin0(pFaultNtk->vPos->pArray[i]); + if (!pFaultFanin || !pFaultFanin->pCopy) { + printf("[CombineNetwork] Error: Additional fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); + continue; + } + + // Create new PO in combined network + Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); + Abc_ObjAddFanin(pPo, pFaultFanin->pCopy); + // Create unique name by appending "_f" for faulty circuit POs + char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); + // char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator + // sprintf(pNewName, "%s_f", pName); + Abc_ObjAssignName(pPo, pName, NULL); + free(pName); // Free the original name + } + printf("[CombineNetwork] Preserved additional fault POs\n"); + // Create OR gate to combine all XOR outputs Abc_Obj_t * pOr = Abc_NtkCreateNode(pNtk); Abc_ObjAssignName(pOr, "fault_detected", NULL); From 15b644e3f2702d16bf33a683a8c76969610844f1 Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Mon, 9 Jun 2025 00:54:23 +0800 Subject: [PATCH 37/58] bug fixed: modify node name --- comprehensive_test.sh | 59 ++++++++ functional_verification.sh | 0 src/base/abc/abcFault.c | 278 +++++++++++++++++++++++++++++++------ src/base/abci/abc.c | 7 +- test_pbo_prefix.sh | 62 +++++++++ 5 files changed, 365 insertions(+), 41 deletions(-) create mode 100755 comprehensive_test.sh create mode 100755 functional_verification.sh create mode 100755 test_pbo_prefix.sh diff --git a/comprehensive_test.sh b/comprehensive_test.sh new file mode 100755 index 0000000000..afad6bba0d --- /dev/null +++ b/comprehensive_test.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# Comprehensive test for pbo_ prefix implementation across different gate types +echo "=== Comprehensive pbo_ prefix test ===" +echo + +# Test the complex circuit +echo "Testing complex circuit with multiple gate types..." + +cat > complex_test_commands.abc << 'EOF' +# Read complex test circuit +read benchmarks/complex_test.blif +echo "Loaded complex test circuit" + +# Show circuit statistics +print_stats + +# Generate faults +fault_gen -c +echo "Generated fault list" + +# Show fault list +print_faults + +# Run fault simulation with pbo_ prefix gates +fault_sim -c +echo "Inserted fault simulation gates with pbo_ prefix" + +# Write output +write_verilog benchmarks/complex_test_with_pbo.v +echo "Written complex circuit with pbo_ gates" + +quit +EOF + +./abc -f complex_test_commands.abc + +echo +echo "=== Results for complex circuit ===" +if [ -f "benchmarks/complex_test_with_pbo.v" ]; then + echo "Number of pbo_ occurrences:" + grep -c "pbo_" benchmarks/complex_test_with_pbo.v + + echo + echo "Types of pbo_ gates found:" + grep "pbo_" benchmarks/complex_test_with_pbo.v | grep -o "pbo_[a-z]*" | sort | uniq + + echo + echo "Sample pbo_ gate implementations:" + grep -n "assign.*pbo_" benchmarks/complex_test_with_pbo.v | head -10 +else + echo "Error: Complex test output not generated" +fi + +# Clean up +rm -f complex_test_commands.abc + +echo +echo "=== Comprehensive test finished ===" diff --git a/functional_verification.sh b/functional_verification.sh new file mode 100755 index 0000000000..e69de29bb2 diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 8dd01afb8d..263d7adef5 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -756,6 +756,37 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Vec_PtrPush(pNtk->vGoodPis, pPi); } printf("[FaultSim] Stored good network and its PIs\n"); + + // Record original network nodes and PIs (excluding any existing fault sim or PBO nodes) + Vec_Ptr_t *vOriginalNodes = Vec_PtrAlloc(1000); + Vec_Ptr_t *vOriginalPIs = Vec_PtrAlloc(100); + Abc_Obj_t *pObj; + + // Only record nodes that don't have fault sim or PBO prefixes + Abc_NtkForEachNode(pNtk, pObj, i) { + const char *nodeName = Abc_ObjName(pObj); + if (strncmp(nodeName, "x_", 2) != 0 && strncmp(nodeName, "y_", 2) != 0 && + strncmp(nodeName, "pbo_", 4) != 0) { + Vec_PtrPush(vOriginalNodes, pObj); + } + } + Abc_NtkForEachPi(pNtk, pObj, i) { + const char *piName = Abc_ObjName(pObj); + if (strncmp(piName, "x_", 2) != 0 && strncmp(piName, "y_", 2) != 0 && + strncmp(piName, "f0_", 3) != 0 && strncmp(piName, "f1_", 3) != 0 && + strncmp(piName, "pbo_", 4) != 0) { + Vec_PtrPush(vOriginalPIs, pObj); + } + } + + printf("[FaultSim] Processing %d original nodes and %d original PIs\n", + Vec_PtrSize(vOriginalNodes), Vec_PtrSize(vOriginalPIs)); + + // Macro to check if a node is original (not created by fault sim or PBO) + #define IS_ORIGINAL_NODE(pNode) (Vec_PtrFind(vOriginalNodes, pNode) != -1) + #define IS_ORIGINAL_PI(pNode) (Vec_PtrFind(vOriginalPIs, pNode) != -1) + #define IS_ORIGINAL_CIRCUIT_NODE(pNode) (IS_ORIGINAL_NODE(pNode) || IS_ORIGINAL_PI(pNode)) + // Iterate over the fault list for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) @@ -915,10 +946,17 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Vec_PtrFree(vGIHandledsa0); Vec_PtrFree(vGIHandledsa1); printf("[FaultSim] Completed fault simulation gate insertion\n"); + Vec_PtrFree(vOriginalNodes); + Vec_PtrFree(vOriginalPIs); + + // Undefine the macros + #undef IS_ORIGINAL_NODE + #undef IS_ORIGINAL_PI + #undef IS_ORIGINAL_CIRCUIT_NODE } void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) -{ +{ Abc_Fault_t *pFault; char *key = NULL; char keyBuf[100]; // Buffer for creating key strings @@ -928,28 +966,34 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Vec_Ptr_t *vGIHandledsa0 = Vec_PtrAlloc(100); // Track handled input nodes Vec_Ptr_t *vGIHandledsa1 = Vec_PtrAlloc(100); // Track handled input nodes - // Record original network nodes and PIs to distinguish from PBO nodes + // Record original network nodes and PIs (excluding fault sim and existing PBO nodes) Vec_Ptr_t *vOriginalNodes = Vec_PtrAlloc(1000); Vec_Ptr_t *vOriginalPIs = Vec_PtrAlloc(100); Abc_Obj_t *pObj; + + int counter = 0; + + // Only record nodes that don't have fault sim or PBO prefixes Abc_NtkForEachNode(pNtk, pObj, i) { - Vec_PtrPush(vOriginalNodes, pObj); + const char *nodeName = Abc_ObjName(pObj); + if (strncmp(nodeName, "x_", 2) != 0 && strncmp(nodeName, "y_", 2) != 0 && + strncmp(nodeName, "pbo_", 4) != 0) { + Vec_PtrPush(vOriginalNodes, pObj); + } } Abc_NtkForEachPi(pNtk, pObj, i) { - Vec_PtrPush(vOriginalPIs, pObj); - } - printf("[PBO] Original nodes:\n"); - for (i = 0; i < Vec_PtrSize(vOriginalNodes); i++) { - Abc_Obj_t *pNode = (Abc_Obj_t *)Vec_PtrEntry(vOriginalNodes, i); - printf(" Node %d: %s\n", i, Abc_ObjName(pNode)); - } - printf("[PBO] Original PIs:\n"); - for (i = 0; i < Vec_PtrSize(vOriginalPIs); i++) { - Abc_Obj_t *pPi = (Abc_Obj_t *)Vec_PtrEntry(vOriginalPIs, i); - printf(" PI %d: %s\n", i, Abc_ObjName(pPi)); + const char *piName = Abc_ObjName(pObj); + if (strncmp(piName, "x_", 2) != 0 && strncmp(piName, "y_", 2) != 0 && + strncmp(piName, "f0_", 3) != 0 && strncmp(piName, "f1_", 3) != 0 && + strncmp(piName, "pbo_", 4) != 0) { + Vec_PtrPush(vOriginalPIs, pObj); + } } - // Macro to check if a node is original (not a PBO node) + printf("[PBO] Processing %d original nodes and %d original PIs\n", + Vec_PtrSize(vOriginalNodes), Vec_PtrSize(vOriginalPIs)); + + // Macro to check if a node is original (not created by fault sim or PBO) #define IS_ORIGINAL_NODE(pNode) (Vec_PtrFind(vOriginalNodes, pNode) != -1) #define IS_ORIGINAL_PI(pNode) (Vec_PtrFind(vOriginalPIs, pNode) != -1) #define IS_ORIGINAL_CIRCUIT_NODE(pNode) (IS_ORIGINAL_NODE(pNode) || IS_ORIGINAL_PI(pNode)) @@ -991,12 +1035,23 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // ================ Insert SA0 GO ACTIVATION PBO ================ Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; pOR_pbo = Abc_NtkCreateNode(pNtk); // pbo for OR gate - // Generate unique names for f0 - sprintf(f0_Name, "f0_%s", Abc_ObjName(pC)); // Name for the fault signal + // Assign name to OR gate with pbo_ prefix + char orGateName[64]; + sprintf(orGateName, "pbo_OR_f0_ACT_%s_%d", Abc_ObjName(pC), counter); + counter++; + Abc_ObjAssignName(pOR_pbo, orGateName, NULL); + + // Generate unique names for f0 with pbo_ prefix + sprintf(f0_Name, "pbo_f0_%s_%d", Abc_ObjName(pC),counter); // Name for the fault signal + counter++; pf0_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); // create NOT gate for a_f0 pNotf0_pbo = Abc_NtkCreateNode(pNtk); + char notGateName[64]; + sprintf(notGateName, "pbo_NOT_f0_%s_%d", Abc_ObjName(pC),counter); + counter++; + Abc_ObjAssignName(pNotf0_pbo, notGateName, NULL); Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create OR gate for (c OR ~a_f0) @@ -1005,7 +1060,8 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GO_f0_ACT_%s", Abc_ObjName(pC)); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_ACT_%s_%d", Abc_ObjName(pC),counter); + counter++; Abc_ObjAssignName(pPo, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo, pOR_pbo); // ================ End of SA0 GO ACTIVATION PBO ================ @@ -1025,7 +1081,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pNextNode = NULL; int inputIndex = -1; // Initialize input index pNextNode = Abc_ObjFanout0(pFault->pNode); - printf("[PBO] Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); + printf("[PBO] Handeling SA0 for %s. Next node is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); char *pSop = (char *)pNextNode->pData; int gateType = Abc_SopGetGateType(pSop); @@ -1048,6 +1104,12 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate; pAND_gate = Abc_NtkCreateNode(pNtk); + // Assign name to AND gate with pbo_ prefix + char andGateName[64]; + sprintf(andGateName, "pbo_AND_f0_GATE_%s_%d", Abc_ObjName(pNode), counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGateName, NULL); + Abc_Obj_t *pSidein; int sideInputCount = 0; // connect all the fanins to the AND gate (only original nodes) @@ -1065,13 +1127,18 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // AND_all_fanin OR ~a_f0 pOR_gate = Abc_NtkCreateNode(pNtk); + char orGateRuleName[64]; + sprintf(orGateRuleName, "pbo_OR_f0_RULE2_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGateRuleName, NULL); Abc_ObjAddFanin(pOR_gate, pAND_gate); Abc_ObjAddFanin(pOR_gate, pNotf0_pbo); pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNode)); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s_%d", Abc_ObjName(pNode),counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); } @@ -1080,6 +1147,11 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; pOR_gate = Abc_NtkCreateNode(pNtk); + // Assign name to OR gate with pbo_ prefix + char orGateRuleName2[64]; + sprintf(orGateRuleName2, "pbo_OR_f0_GATE_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGateRuleName2, NULL); Abc_Obj_t *pSidein; int sideInputCount = 0; @@ -1098,17 +1170,28 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // OR_all_fanin ANF a_f0 pAND_gate = Abc_NtkCreateNode(pNtk); + // Assign name to AND gate with pbo_ prefix + char andGateRuleName2[64]; + sprintf(andGateRuleName2, "pbo_AND_f0_GATE_OR_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGateRuleName2, NULL); Abc_ObjAddFanin(pAND_gate, pOR_gate); Abc_ObjAddFanin(pAND_gate, pf0_pbo); pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); pNOT_gate = Abc_NtkCreateNode(pNtk); + // Assign name to NOT gate with pbo_ prefix + char notGateRuleName2[64]; + sprintf(notGateRuleName2, "pbo_NOT_f0_GATE_OR_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pNOT_gate, notGateRuleName2, NULL); Abc_ObjAddFanin(pNOT_gate, pAND_gate); pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s", Abc_ObjName(pNode)); + sprintf(PO_f0_Name, "PO_pbo_GO_f0_GATE_%s_%d", Abc_ObjName(pNode),counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } @@ -1128,7 +1211,14 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // ================ Insert SA1 GO ACTIVATION PBO ================ Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; pAND_pbo = Abc_NtkCreateNode(pNtk); - sprintf(f1_Name, "f1_%s", Abc_ObjName(pC)); + // Assign name to AND gate with pbo_ prefix + char andGateName[64]; + sprintf(andGateName, "pbo_AND_f1_ACT_%s_%d", Abc_ObjName(pC),counter); + counter++; + Abc_ObjAssignName(pAND_pbo, andGateName, NULL); + + sprintf(f1_Name, "pbo_f1_%s_%d", Abc_ObjName(pC),counter); + counter++; pf1_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); // create AND gate for (c AND a_f1) @@ -1138,11 +1228,16 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // wire the constant 0 PO to the AND gate // Create NOT gate for ~ (pC & pf1_pbo) pNot_pbo = Abc_NtkCreateNode(pNtk); + char notGateName[64]; + sprintf(notGateName, "pbo_NOT_f1_%s_%d", Abc_ObjName(pC),counter); + counter++; + Abc_ObjAssignName(pNot_pbo, notGateName, NULL); Abc_ObjAddFanin(pNot_pbo, pAND_pbo); pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // wire the constant 1 PO to the NOT gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GO_f1_ACT_%s", Abc_ObjName(pC)); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_ACT_%s_%d", Abc_ObjName(pC),counter); + counter++; Abc_ObjAssignName(pPo, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo, pNot_pbo); // ================ End of SA1 GO ACTIVATION PBO ================ @@ -1157,7 +1252,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pNextNode = NULL; int inputIndex = -1; pNextNode = Abc_ObjFanout0(pFault->pNode); - printf("[PBO] Next node of %s is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); + printf("[PBO] Handleing SA1 for %s. Next node is %s\n", Abc_ObjName(pFault->pNode), Abc_ObjName(pNextNode)); char *pSop = (char *)pNextNode->pData; int gateType = Abc_SopGetGateType(pSop); @@ -1179,6 +1274,11 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate, *pNOTf1_gate; pAND_gate = Abc_NtkCreateNode(pNtk); + // Assign name to AND gate with pbo_ prefix + char andGateGOName[64]; + sprintf(andGateGOName, "pbo_AND_f1_GATE_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGateGOName, NULL); Abc_Obj_t *pSidein; int sideInputCount = 0; @@ -1197,18 +1297,27 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create NOT gate for ~a_f1 pNOTf1_gate = Abc_NtkCreateNode(pNtk); + char notf1GateName[64]; + sprintf(notf1GateName, "pbo_NOT_f1_GATE_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pNOTf1_gate, notf1GateName, NULL); Abc_ObjAddFanin(pNOTf1_gate, pf1_pbo); pNOTf1_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // AND_all_fanin OR ~a_f1 pOR_gate = Abc_NtkCreateNode(pNtk); + char orGateGOName[64]; + sprintf(orGateGOName, "pbo_OR_f1_RULE2_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGateGOName, NULL); Abc_ObjAddFanin(pOR_gate, pAND_gate); Abc_ObjAddFanin(pOR_gate, pNOTf1_gate); pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s", Abc_ObjName(pNode)); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_%s_%d", Abc_ObjName(pNode),counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); } @@ -1217,6 +1326,11 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; pOR_gate = Abc_NtkCreateNode(pNtk); + // Assign name to OR gate with pbo_ prefix + char orGateGOName[64]; + sprintf(orGateGOName, "pbo_OR_f1_GATE_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGateGOName, NULL); Abc_Obj_t *pSidein; int sideInputCount = 0; @@ -1233,19 +1347,28 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) } pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); - // OR_all_fanin ANF a_f0 + // OR_all_fanin AND a_f1 pAND_gate = Abc_NtkCreateNode(pNtk); + char andGateGOName[64]; + sprintf(andGateGOName, "pbo_AND_f1_GATE_OR_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGateGOName, NULL); Abc_ObjAddFanin(pAND_gate, pOR_gate); Abc_ObjAddFanin(pAND_gate, pf1_pbo); pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); pNOT_gate = Abc_NtkCreateNode(pNtk); + char notGateGOName[64]; + sprintf(notGateGOName, "pbo_NOT_f1_GATE_OR_%s_%d", Abc_ObjName(pNode),counter); + counter++; + Abc_ObjAssignName(pNOT_gate, notGateGOName, NULL); Abc_ObjAddFanin(pNOT_gate, pAND_gate); pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_OR_%s", Abc_ObjName(pNode)); + sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_OR_%s_%d", Abc_ObjName(pNode),counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } @@ -1295,12 +1418,23 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_pbo, *pf0_pbo, *pNotf0_pbo; // Create OR gate for (fanin OR ~a_f0) pOR_pbo = Abc_NtkCreateNode(pNtk); - // Generate unique names for f0 - sprintf(f0_Name, "f0_%s_in%d", Abc_ObjName(pNode), fanin_index); + // Assign name to OR gate with pbo_ prefix + char orGIGateName[64]; + sprintf(orGIGateName, "pbo_OR_f0_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pOR_pbo, orGIGateName, NULL); + + // Generate unique names for f0 with pbo_ prefix + sprintf(f0_Name, "pbo_f0_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; pf0_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); // create NOT gate for ~a_f0 pNotf0_pbo = Abc_NtkCreateNode(pNtk); + char notGIGateName[64]; + sprintf(notGIGateName, "pbo_NOT_f0_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pNotf0_pbo, notGIGateName, NULL); Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create OR gate for (fanin OR ~a_f0) @@ -1309,7 +1443,8 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GI_f0_ACT_%s_in%d", Abc_ObjName(pNode), fanin_index); + sprintf(PO_f0_Name, "PO_pbo_GI_f0_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; Abc_ObjAssignName(pPo, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo, pOR_pbo); // ================ End of SA0 GI ACTIVATION PBO ================ @@ -1323,6 +1458,12 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate; pAND_gate = Abc_NtkCreateNode(pNtk); + // Assign name to AND gate with pbo_ prefix + char andGIGateName[64]; + sprintf(andGIGateName, "pbo_AND_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGIGateName, NULL); + Abc_Obj_t *pSidein; int sideInputCount = 0; int l = 0; @@ -1342,13 +1483,18 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // AND_all_fanin OR ~a_f0 pOR_gate = Abc_NtkCreateNode(pNtk); + char orGIRule2Name[64]; + sprintf(orGIRule2Name, "pbo_OR_f0_RULE2_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGIRule2Name, NULL); Abc_ObjAddFanin(pOR_gate, pAND_gate); Abc_ObjAddFanin(pOR_gate, pNotf0_pbo); pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); } @@ -1357,6 +1503,11 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; pOR_gate = Abc_NtkCreateNode(pNtk); + // Assign name to OR gate with pbo_ prefix + char orGIGateName[64]; + sprintf(orGIGateName, "pbo_OR_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGIGateName, NULL); Abc_Obj_t *pSidein; int sideInputCount = 0; @@ -1375,19 +1526,28 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); printf("[PBO] Node %s has %d original side-inputs\n", Abc_ObjName(pNode), sideInputCount); - // OR_all_fanin ANF a_f0 + // OR_all_fanin AND a_f0 pAND_gate = Abc_NtkCreateNode(pNtk); + char andGIGateName[64]; + sprintf(andGIGateName, "pbo_AND_f0_GATE_OR_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGIGateName, NULL); Abc_ObjAddFanin(pAND_gate, pOR_gate); Abc_ObjAddFanin(pAND_gate, pf0_pbo); pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); pNOT_gate = Abc_NtkCreateNode(pNtk); + char notGIGateName[64]; + sprintf(notGIGateName, "pbo_NOT_f0_GATE_OR_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pNOT_gate, notGIGateName, NULL); Abc_ObjAddFanin(pNOT_gate, pAND_gate); pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } @@ -1408,8 +1568,15 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pAND_pbo, *pf1_pbo, *pNot_pbo; // Create AND gate for (fanin AND f1) pAND_pbo = Abc_NtkCreateNode(pNtk); - // Generate unique name for f1 - sprintf(f1_Name, "f1_%s_in%d", Abc_ObjName(pNode), fanin_index); + // Assign name to AND gate with pbo_ prefix + char andGIActName[64]; + sprintf(andGIActName, "pbo_AND_f1_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pAND_pbo, andGIActName, NULL); + + // Generate unique name for f1 with pbo_ prefix + sprintf(f1_Name, "pbo_f1_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; pf1_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); // Insert AND gate between fanin and node @@ -1418,11 +1585,16 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pAND_pbo->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // Create NOT gate for ~ (pC & pf1_pbo) pNot_pbo = Abc_NtkCreateNode(pNtk); + char notGIActName[64]; + sprintf(notGIActName, "pbo_NOT_f1_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pNot_pbo, notGIActName, NULL); Abc_ObjAddFanin(pNot_pbo, pAND_pbo); pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // wire the constant 1 PO to the NOT gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GI_f1_ACT_%s_in%d", Abc_ObjName(pNode), fanin_index); + sprintf(PO_f1_Name, "PO_pbo_GI_f1_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; Abc_ObjAssignName(pPo, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo, pNot_pbo); // ================ End of SA1 GI ACTIVATION PBO ================ @@ -1436,6 +1608,11 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate, *pNOTf1_gate; pAND_gate = Abc_NtkCreateNode(pNtk); + // Assign name to AND gate with pbo_ prefix + char andGIGateName[64]; + sprintf(andGIGateName, "pbo_AND_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGIGateName, NULL); Abc_Obj_t *pSidein; int sideInputCount = 0; @@ -1456,18 +1633,27 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create NOT gate for ~a_f1 pNOTf1_gate = Abc_NtkCreateNode(pNtk); + char notGIGateName[64]; + sprintf(notGIGateName, "pbo_NOT_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pNOTf1_gate, notGIGateName, NULL); Abc_ObjAddFanin(pNOTf1_gate, pf1_pbo); pNOTf1_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // AND_all_fanin OR ~a_f1 pOR_gate = Abc_NtkCreateNode(pNtk); + char orGIGateName[64]; + sprintf(orGIGateName, "pbo_OR_f1_RULE2_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGIGateName, NULL); Abc_ObjAddFanin(pOR_gate, pAND_gate); Abc_ObjAddFanin(pOR_gate, pNOTf1_gate); pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); } @@ -1476,6 +1662,11 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_Obj_t *pOR_gate, *pAND_gate, *pNOT_gate; pOR_gate = Abc_NtkCreateNode(pNtk); + // Assign name to OR gate with pbo_ prefix + char orGIGateName[64]; + sprintf(orGIGateName, "pbo_OR_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pOR_gate, orGIGateName, NULL); Abc_Obj_t *pSidein; int sideInputCount = 0; @@ -1494,19 +1685,28 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_gate->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, sideInputCount, NULL); printf("[PBO] Node %s has %d original side-inputs\n", Abc_ObjName(pNode), sideInputCount); - // OR_all_fanin ANF a_f0 + // OR_all_fanin AND a_f1 pAND_gate = Abc_NtkCreateNode(pNtk); + char andGIGateName[64]; + sprintf(andGIGateName, "pbo_AND_f1_GATE_OR_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pAND_gate, andGIGateName, NULL); Abc_ObjAddFanin(pAND_gate, pOR_gate); Abc_ObjAddFanin(pAND_gate, pf1_pbo); pAND_gate->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); pNOT_gate = Abc_NtkCreateNode(pNtk); + char notGIGateName[64]; + sprintf(notGIGateName, "pbo_NOT_f1_GATE_OR_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; + Abc_ObjAssignName(pNOT_gate, notGIGateName, NULL); Abc_ObjAddFanin(pNOT_gate, pAND_gate); pNOT_gate->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d", Abc_ObjName(pNode), fanin_index); + sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + counter++; Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); } diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 465f3dbeaa..3e2f8994ca 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11272,10 +11272,13 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) // set defaults Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + while ( ( c = Extra_UtilGetopt( argc, argv, "ch" ) ) != EOF ) { switch ( c ) { + case 'c': + Abc_NtkInsertPBOGates( pNtk ); + break; case 'h': goto usage; default: @@ -11291,7 +11294,7 @@ int Abc_CommandFaultSim( Abc_Frame_t * pAbc, int argc, char ** argv ) // Print fault list and statistics - Abc_NtkInsertPBOGates( pNtk ); + Abc_NtkInsertFaultSimGates( pNtk ); diff --git a/test_pbo_prefix.sh b/test_pbo_prefix.sh new file mode 100755 index 0000000000..b897e32d15 --- /dev/null +++ b/test_pbo_prefix.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Test script for pbo_ prefix verification in SAT-based ATPG system +echo "=== Testing pbo_ prefix implementation ===" +echo + +# Start ABC and run test sequence +echo "Starting ABC and testing pbo_ prefix functionality..." +echo + +# Create input commands for ABC +cat > test_commands.abc << 'ABCEOF' +# Read test circuit +read benchmarks/test.blif +echo "Loaded test circuit" + +# Generate faults using checkpoint method +fault_gen -c +echo "Generated fault list" + +# Show fault list (optional for debugging) +print_faults + +# Run fault simulation with pbo_ prefix gates +fault_sim -c +echo "Inserted fault simulation gates with pbo_ prefix" + +# Write output to see the modified circuit +write_verilog benchmarks/test_with_pbo.v +echo "Written circuit with pbo_ gates to test_with_pbo.v" + +# Exit ABC +quit +ABCEOF + +# Run ABC with the test commands +echo "Running ABC with test commands..." +./abc -f test_commands.abc + +echo +echo "=== Test completed ===" +echo "Checking output files for pbo_ prefix verification..." + +# Check if the output file contains pbo_ prefixed gates +if [ -f "benchmarks/test_with_pbo.v" ]; then + echo + echo "=== Checking for pbo_ prefixed gates in output ===" + echo "Searching for 'pbo_' in generated Verilog file:" + grep -n "pbo_" benchmarks/test_with_pbo.v || echo "No pbo_ prefixes found in Verilog output" + + echo + echo "=== First 50 lines of generated Verilog file ===" + head -50 benchmarks/test_with_pbo.v +else + echo "Error: Output file not generated" +fi + +# Clean up +rm -f test_commands.abc + +echo +echo "=== Test script finished ===" From b694f025381c56c8fffe70604f17ee4eadec268d Mon Sep 17 00:00:00 2001 From: ianhsu0203 Date: Mon, 9 Jun 2025 02:47:07 +0800 Subject: [PATCH 38/58] fix warning --- comprehensive_test.sh | 59 --------------------------------------- src/base/abc/abcFault.c | 23 +++++++-------- test_pbo_prefix.sh | 62 ----------------------------------------- 3 files changed, 12 insertions(+), 132 deletions(-) delete mode 100755 comprehensive_test.sh delete mode 100755 test_pbo_prefix.sh diff --git a/comprehensive_test.sh b/comprehensive_test.sh deleted file mode 100755 index afad6bba0d..0000000000 --- a/comprehensive_test.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -# Comprehensive test for pbo_ prefix implementation across different gate types -echo "=== Comprehensive pbo_ prefix test ===" -echo - -# Test the complex circuit -echo "Testing complex circuit with multiple gate types..." - -cat > complex_test_commands.abc << 'EOF' -# Read complex test circuit -read benchmarks/complex_test.blif -echo "Loaded complex test circuit" - -# Show circuit statistics -print_stats - -# Generate faults -fault_gen -c -echo "Generated fault list" - -# Show fault list -print_faults - -# Run fault simulation with pbo_ prefix gates -fault_sim -c -echo "Inserted fault simulation gates with pbo_ prefix" - -# Write output -write_verilog benchmarks/complex_test_with_pbo.v -echo "Written complex circuit with pbo_ gates" - -quit -EOF - -./abc -f complex_test_commands.abc - -echo -echo "=== Results for complex circuit ===" -if [ -f "benchmarks/complex_test_with_pbo.v" ]; then - echo "Number of pbo_ occurrences:" - grep -c "pbo_" benchmarks/complex_test_with_pbo.v - - echo - echo "Types of pbo_ gates found:" - grep "pbo_" benchmarks/complex_test_with_pbo.v | grep -o "pbo_[a-z]*" | sort | uniq - - echo - echo "Sample pbo_ gate implementations:" - grep -n "assign.*pbo_" benchmarks/complex_test_with_pbo.v | head -10 -else - echo "Error: Complex test output not generated" -fi - -# Clean up -rm -f complex_test_commands.abc - -echo -echo "=== Comprehensive test finished ===" diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 03dd07f286..5eb99a2e50 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -801,6 +801,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) } } + printf("[FaultSim] Processing %d original nodes and %d original PIs\n", Vec_PtrSize(vOriginalNodes), Vec_PtrSize(vOriginalPIs)); @@ -1027,8 +1028,8 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) //for (pFault = pNtk->pFaultList; pFault && faultCount < 2; pFault = pFault->pNext, faultCount++) for (pFault = pNtk->pFaultList; pFault; pFault = pFault->pNext) { - char f0_Name[32], f1_Name[32]; - char PO_f0_Name[32], PO_f1_Name[32]; + char f0_Name[64], f1_Name[64]; + char PO_f0_Name[64], PO_f1_Name[64]; Abc_Obj_t *pC; Abc_Obj_t *pNode = pFault->pNode; @@ -1064,7 +1065,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_ObjAssignName(pOR_pbo, orGateName, NULL); // Generate unique names for f0 with pbo_ prefix - sprintf(f0_Name, "pbo_f0_%s_%d", Abc_ObjName(pC),counter); // Name for the fault signal + snprintf(f0_Name, sizeof(f0_Name), "pbo_f0_%s_%d", Abc_ObjName(pC),counter); // Name for the fault signal counter++; pf0_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf0_pbo, f0_Name, NULL); @@ -1239,7 +1240,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) counter++; Abc_ObjAssignName(pAND_pbo, andGateName, NULL); - sprintf(f1_Name, "pbo_f1_%s_%d", Abc_ObjName(pC),counter); + snprintf(f1_Name, sizeof(f1_Name), "pbo_f1_%s_%d", Abc_ObjName(pC),counter); counter++; pf1_pbo = Abc_NtkCreatePi(pNtk); Abc_ObjAssignName(pf1_pbo, f1_Name, NULL); @@ -1389,7 +1390,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GO_f1_GATE_OR_%s_%d", Abc_ObjName(pNode),counter); + snprintf(PO_f1_Name, sizeof(PO_f1_Name), "PO_pbo_GO_f1_GATE_OR_%s_%d", Abc_ObjName(pNode),counter); counter++; Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); @@ -1465,7 +1466,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GI_f0_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + snprintf(PO_f0_Name, sizeof(PO_f0_Name), "PO_pbo_GI_f0_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); counter++; Abc_ObjAssignName(pPo, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo, pOR_pbo); @@ -1515,7 +1516,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + snprintf(PO_f0_Name, sizeof(PO_f0_Name), "PO_pbo_GI_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); counter++; Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); @@ -1568,7 +1569,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f0_Name, "PO_pbo_GI_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + snprintf(PO_f0_Name, sizeof(PO_f0_Name), "PO_pbo_GI_f0_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); counter++; Abc_ObjAssignName(pPo_gate, PO_f0_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); @@ -1615,7 +1616,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) pNot_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // wire the constant 1 PO to the NOT gate Abc_Obj_t *pPo = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GI_f1_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + snprintf(PO_f1_Name, sizeof(PO_f1_Name), "PO_pbo_GI_f1_ACT_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); counter++; Abc_ObjAssignName(pPo, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo, pNot_pbo); @@ -1674,7 +1675,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the OR gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + snprintf(PO_f1_Name, sizeof(PO_f1_Name), "PO_pbo_GI_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); counter++; Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pOR_gate); @@ -1727,7 +1728,7 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) // create a new PO for the NAND gate Abc_Obj_t *pPo_gate = Abc_NtkCreatePo(pNtk); - sprintf(PO_f1_Name, "PO_pbo_GI_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); + snprintf(PO_f1_Name, sizeof(PO_f1_Name), "PO_pbo_GI_f1_GATE_%s_in%d_%d", Abc_ObjName(pNode), fanin_index,counter); counter++; Abc_ObjAssignName(pPo_gate, PO_f1_Name, NULL); Abc_ObjAddFanin(pPo_gate, pNOT_gate); diff --git a/test_pbo_prefix.sh b/test_pbo_prefix.sh deleted file mode 100755 index b897e32d15..0000000000 --- a/test_pbo_prefix.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -# Test script for pbo_ prefix verification in SAT-based ATPG system -echo "=== Testing pbo_ prefix implementation ===" -echo - -# Start ABC and run test sequence -echo "Starting ABC and testing pbo_ prefix functionality..." -echo - -# Create input commands for ABC -cat > test_commands.abc << 'ABCEOF' -# Read test circuit -read benchmarks/test.blif -echo "Loaded test circuit" - -# Generate faults using checkpoint method -fault_gen -c -echo "Generated fault list" - -# Show fault list (optional for debugging) -print_faults - -# Run fault simulation with pbo_ prefix gates -fault_sim -c -echo "Inserted fault simulation gates with pbo_ prefix" - -# Write output to see the modified circuit -write_verilog benchmarks/test_with_pbo.v -echo "Written circuit with pbo_ gates to test_with_pbo.v" - -# Exit ABC -quit -ABCEOF - -# Run ABC with the test commands -echo "Running ABC with test commands..." -./abc -f test_commands.abc - -echo -echo "=== Test completed ===" -echo "Checking output files for pbo_ prefix verification..." - -# Check if the output file contains pbo_ prefixed gates -if [ -f "benchmarks/test_with_pbo.v" ]; then - echo - echo "=== Checking for pbo_ prefixed gates in output ===" - echo "Searching for 'pbo_' in generated Verilog file:" - grep -n "pbo_" benchmarks/test_with_pbo.v || echo "No pbo_ prefixes found in Verilog output" - - echo - echo "=== First 50 lines of generated Verilog file ===" - head -50 benchmarks/test_with_pbo.v -else - echo "Error: Output file not generated" -fi - -# Clean up -rm -f test_commands.abc - -echo -echo "=== Test script finished ===" From 2669cd8175469d43361c44e1582712a8a369dbdc Mon Sep 17 00:00:00 2001 From: xNTsai Date: Mon, 9 Jun 2025 03:57:57 +0800 Subject: [PATCH 39/58] fix: ntk_combine --- src/base/abc/abcFault.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 5eb99a2e50..98bcb41256 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -768,17 +768,6 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) Vec_Ptr_t * vGIHandledsa0 = Vec_PtrAlloc(100); // Track handled input nodes Vec_Ptr_t * vGIHandledsa1 = Vec_PtrAlloc(100); // Track handled input nodes - // Store the good network and its PIs - pNtk->pGoodNtk = Abc_NtkDup(pNtk); - pNtk->vGoodPis = Vec_PtrAlloc(Abc_NtkPiNum(pNtk)); - - // Copy all PIs to vGoodPis - Abc_Obj_t * pPi; - Abc_NtkForEachPi(pNtk, pPi, i) { - Vec_PtrPush(pNtk->vGoodPis, pPi); - } - printf("[FaultSim] Stored good network and its PIs\n"); - // Record original network nodes and PIs (excluding any existing fault sim or PBO nodes) Vec_Ptr_t *vOriginalNodes = Vec_PtrAlloc(1000); Vec_Ptr_t *vOriginalPIs = Vec_PtrAlloc(100); From 3224856fb25ee6f05e951fe0d34df9fbe6f44b63 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Mon, 9 Jun 2025 03:33:10 +0800 Subject: [PATCH 40/58] fix buffer for flexability --- runPBO.cpp | 60 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/runPBO.cpp b/runPBO.cpp index 3d91f0bdcf..226c82ad8b 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -53,11 +53,11 @@ CNF* parse_cnf(const std::string& filename) { return cnf; } -void write_opb(const std::string& filename, CNF* cnf, const std::vector& obj, const int pi_num, const int originPI_num) { +int write_opb(const std::string& filename, CNF* cnf, const std::vector& obj, const int pi_num, const int originPI_num) { std::ofstream file(filename); if (!file.is_open()) { perror("Error opening OPB file"); - return; + exit(-1); } int pi_start = cnf->num_vars - pi_num + 1; // [pi_start, pi_end] are the PI variables @@ -104,13 +104,14 @@ void write_opb(const std::string& filename, CNF* cnf, const std::vector& ob file << "= 1;\n"; file.close(); + return pi_start; } -void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int originPI_num) { +int add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int& originPI_num) { std::ifstream infile(filename); if (!infile.is_open()) { perror("Error opening OPB file for reading"); - return; + exit(-1); } std::stringstream buffer; @@ -148,7 +149,7 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int o << ", constraint = " << current_constraints << "\n"; } else { std::cerr << "Malformed header (line 1)\n"; - return; + exit(-1); } } else if (!second_header_found && line.rfind("* #XY_", 0) == 0) { @@ -165,7 +166,7 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int o buffer << line << "\n"; // keep the original line } else { std::cerr << "Malformed PI line (line 2)\n"; - return; + exit(-1); } } else if (!third_header_found && line.rfind("* #PI_", 0) == 0) { @@ -182,7 +183,7 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int o buffer << line << "\n"; // keep the original line } else { std::cerr << "Malformed PI line (line 2)\n"; - return; + exit(-1); } } else { @@ -203,7 +204,7 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int o lit = (lit - current_vars) + parsed_xy_start -1; if (lit < parsed_xy_start || lit > parsed_xy_end) { std::cerr << "Error: Literal " << -lit << " out of range for XY variables.\n"; - return; + exit(-1); } } buffer << "1 ~x" << lit << " "; @@ -214,7 +215,7 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int o lit = (lit - current_vars) + parsed_xy_start -1; // adjust to fit origin XY variables if (lit < parsed_xy_start || lit > parsed_xy_end) { std::cerr << "Error: Literal " << lit << " out of range for XY variables.\n"; - return; + exit(-1); } } buffer << "1 x" << lit << " "; @@ -227,13 +228,16 @@ void add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int o std::ofstream outfile(filename); if (!outfile.is_open()) { perror("Error opening OPB file for writing"); - return; + exit(-1); } outfile << buffer.str(); outfile.close(); // Optional: print parsed PI info std::cerr << "Parsed XY info: #XY_start= " << parsed_xy_start << ", #XY_end= " << parsed_xy_end << std::endl; + + originPI_num = parsed_pi_num; // Update originPI_num to the parsed value + return parsed_pi_start; } // Function to perform the full task @@ -313,6 +317,7 @@ void modify_opb_by_lits(const std::vector& lits, const std::string& if (target_var.empty()) { std::cerr << "No positive literal found in lits.\n"; + std::cerr << "Available literals: " << lits.size() << "\n"; return; } @@ -355,7 +360,7 @@ void modify_opb_by_lits(const std::vector& lits, const std::string& outfile.close(); } -void execute_solver(const std::string& opb_filename, const int pi_num, const int originPI_num) { +void execute_solver(const std::string& opb_filename, const int pi_start, const int originPI_num) { std::string command = "./pbcomp24-cg/build/mixed-bag " + opb_filename; FILE* fp = popen(command.c_str(), "r"); if (!fp) { @@ -363,13 +368,18 @@ void execute_solver(const std::string& opb_filename, const int pi_num, const int exit(1); } - char buffer[4096]; // TODO : Adjust buffer size as needed + // char buffer[4096]; // TODO : Adjust buffer size as needed + std::string line; + char* c_line = nullptr; + size_t len = 0; + bool sat = false; - while (fgets(buffer, sizeof(buffer), fp)) { - std::cerr << buffer; // Print solver output to stderr - if (buffer[0] != 'v') continue; + while (getline(&c_line, &len, fp) != -1) { + line = c_line; + std::cerr << line; // Print solver output to stderr + if (line.empty() || line[0] != 'v') continue; - std::istringstream iss(buffer); + std::istringstream iss(line); std::string token; std::vector literals; @@ -379,12 +389,12 @@ void execute_solver(const std::string& opb_filename, const int pi_num, const int } int total = literals.size() -1; // Exclude the first 'v' token - int start = std::max(0, total - pi_num); - int end = std::max(0, start + originPI_num); - // std::cerr << "start: " << start << ", end: " << end << "\n"; + int start = pi_start; + int end = pi_start + originPI_num ; + std::cerr << "pi: [start: " << start << ", end: " << end << ")\n"; std::string bitstring; - for (int i = start; i < end; ++i) { + for (int i = start; i < end && i < literals.size(); ++i) { const std::string& lit = literals[i]; bitstring += (lit[0] != '-') ? '1' : '0'; } @@ -394,6 +404,7 @@ void execute_solver(const std::string& opb_filename, const int pi_num, const int std::cout << bitstring << "\n"; } + free(c_line); if (!sat) { std::cout << "unsat\n"; @@ -417,9 +428,10 @@ int main(int argc, char* argv[]) { std::string input_filename = argv[1]; std::string opb_filename = argv[2]; const int pi_num = (argc > 3) ? std::atoi(argv[3]) : 0; - const int originPI_num = (argc > 4) ? std::atoi(argv[4]) : 0; + int originPI_num = (argc > 4) ? std::atoi(argv[4]) : 0; assert(originPI_num <= pi_num); // let originPI_num = -1 be the signal of appending constraints std::vector obj_variables; + int pi_start = 0; CNF* cnf = parse_cnf(input_filename); if (!cnf) return 1; @@ -434,15 +446,15 @@ int main(int argc, char* argv[]) { obj_variables.push_back(i); } - write_opb(opb_filename, cnf, obj_variables, pi_num, originPI_num); + pi_start = write_opb(opb_filename, cnf, obj_variables, pi_num, originPI_num); std::cerr << "OPB file written successfully\n"; } else if (originPI_num == -1){ - add_pbo_constraint(opb_filename, cnf, pi_num, originPI_num); + pi_start = add_pbo_constraint(opb_filename, cnf, pi_num, originPI_num); std::cerr << "OPB file updated with new constraints successfully\n"; } - execute_solver(opb_filename, pi_num, originPI_num); + execute_solver(opb_filename, pi_start, originPI_num); delete cnf; From 7f3dfacf931266a5662ac06f33e5b65ea046f223 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Mon, 9 Jun 2025 03:35:18 +0800 Subject: [PATCH 41/58] bring commands together --- src/base/abc/abc.h | 2 +- src/base/abc/abcPbo.c | 40 ++++++++++++++++++------------- src/base/abci/abc.c | 55 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 79 insertions(+), 18 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index a3cfc38826..e05cec05c9 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1134,7 +1134,7 @@ extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i extern ABC_DLL void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ); // Pseudo Boolean Optimization Related -extern ABC_DLL void Abc_ExecPBO( Abc_Ntk_t * pNtk ); +extern ABC_DLL Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int ); ABC_NAMESPACE_HEADER_END diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index a38abf6a6e..fe7254f658 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -5,7 +5,7 @@ ABC_NAMESPACE_IMPL_START -void Abc_ExecPBO( Abc_Ntk_t * pNtk ) +Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run ) { // extern void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); @@ -14,16 +14,24 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) const int good_pi_num = pNtk->vGoodPis ? Vec_PtrSize(pNtk->vGoodPis) : -1; if (good_pi_num < 0) { Abc_Print(ABC_ERROR, "No good PIs found in the network.\n"); - return; + return NULL; } char pi_num_str[16], good_pi_str[16]; - sprintf(pi_num_str, "%d", pi_num); - sprintf(good_pi_str, "%d", good_pi_num); + + if(first_run){ + sprintf(pi_num_str, "%d", pi_num); + sprintf(good_pi_str, "%d", good_pi_num); + } else { + // for next runPBO call + // XY variable nums, and -1 specified incremental PBO + sprintf(pi_num_str, "%d", (pi_num - good_pi_num)/2); + sprintf(good_pi_str, "%d", -1); + } int pipefd[2]; if (pipe(pipefd) == -1) { perror("pipe"); - return; + return NULL; } pid_t pid = fork(); @@ -59,7 +67,7 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) free(output); close(pipefd[0]); waitpid(pid, NULL, 0); - return; + return NULL; } output = new_output; @@ -71,18 +79,17 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) close(pipefd[0]); // Close read end waitpid(pid, NULL, 0); - int* pattern = (int*)malloc(sizeof(int) * good_pi_num); - if (!pattern) { - Abc_Print(ABC_ERROR, "Memory allocation failed for pattern.\n"); + if ( strncmp(output, "unsat", 5) == 0 ) { + Abc_Print(ABC_STANDARD, "PBO solver returned unsat.\n"); free(output); - return; + return NULL; } - if ( strncmp(output, "unsat", 5) == 0 ) { - Abc_Print(ABC_WARNING, "PBO solver returned unsat.\n"); + int* pattern = (int*)malloc(sizeof(int) * good_pi_num); + if (!pattern) { + Abc_Print(ABC_ERROR, "Memory allocation failed for pattern.\n"); free(output); - free(pattern); - return; + return NULL; } for (int i = 0; i < good_pi_num; ++i) { @@ -90,9 +97,10 @@ void Abc_ExecPBO( Abc_Ntk_t * pNtk ) } Vec_Int_t * vPattern = Vec_IntAllocArray(pattern, good_pi_num); - Abc_NtkAddTestPattern(pNtk, vPattern); free(output); - return; + + return vPattern; + } } diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 3e2f8994ca..51262ccad0 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11556,11 +11556,22 @@ int Abc_CommandInsertTp( Abc_Frame_t * pAbc, int argc, char ** argv ) ***********************************************************************/ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) { + extern Aig_Man_t * Abc_NtkToDarChoices( Abc_Ntk_t * pNtk ); + extern void Mf_ManDumpCnf( Gia_Man_t * p, char * pFileName, int nLutSize, int fCnfObjIds, int fAddOrCla, int fVerbose ); + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); int c; FILE * pFile; char * pFileName; + Abc_Ntk_t * pNtkRes; + Abc_Ntk_t * dupNtk; + Abc_Ntk_t * pStrash; + Aig_Man_t * pAig; + Gia_Man_t * pGia, * pTemp; + + Vec_Int_t * vPattern; + // set defaults Extra_UtilGetoptReset(); while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) @@ -11588,8 +11599,50 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) return 0; } fclose( pFile ); + + int first_time = 1; - Abc_ExecPBO( pNtk ); + while(1){ + vPattern = Abc_ExecPBO( pNtk, first_time ); + if ( vPattern == NULL ) return 0; // pbo unsat, done. + + if (first_time) first_time = 0; + + // restore + dupNtk = Abc_NtkDup(pAbc->pNtkBackup); + if(pAbc->pNtkBackup -> pFaultList != NULL) dupNtk -> pFaultList = pAbc->pNtkBackup -> pFaultList; + if(pAbc->pNtkBackup -> nFaults != 0) dupNtk -> nFaults = pAbc->pNtkBackup -> nFaults; + if(pAbc->pNtkBackup -> pGoodNtk != NULL) dupNtk -> pGoodNtk = pAbc->pNtkBackup -> pGoodNtk; + if(pAbc->pNtkBackup -> vGoodPis != NULL) dupNtk -> vGoodPis = pAbc->pNtkBackup -> vGoodPis; + if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) dupNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); + Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); + pAbc->nFrames = -1; + pAbc->Status = -1; + + // add test pattern + Abc_NtkAddTestPattern(pNtk, vPattern); + + + Abc_NtkAssignLatestPatternToConstraintNetwork(pNtk); + + // strash + pNtkRes = Abc_NtkStrash( pNtk->pFaultConstraintNtk, 0, 1, 0 ); + + // &get + // if ( Abc_NtkGetChoiceNum(pAbc->pNtkCur) ) + // pAig = Abc_NtkToDarChoices( pAbc->pNtkCur ); + // else + // pAig = Abc_NtkToDar( pAbc->pNtkCur, 0, 1 ); + if ( Abc_NtkGetChoiceNum(pNtkRes) ) + pAig = Abc_NtkToDarChoices( pNtkRes ); + else + pAig = Abc_NtkToDar( pNtkRes, 0, 1 ); + pGia = Gia_ManFromAig( pAig ); + Aig_ManStop( pAig ); + + // &write_cnf + Mf_ManDumpCnf( pAbc->pGia, pFileName, 8, 0, 1, 0 ); + } return 0; From 24a3c620d0b4a0c13ab07e6523b26378a02779bc Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Mon, 9 Jun 2025 05:28:13 +0800 Subject: [PATCH 42/58] commands integrated with error --- src/base/abc/abcFault.c | 7 +++++++ src/base/abci/abc.c | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 98bcb41256..5b06213433 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2112,6 +2112,13 @@ void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ) // Check if network and constraint network exist if ( !pNtk || !pNtk->pFaultConstraintNtk || !pNtk->vTestPatterns ) { + printf("pNtk: %d\n", !pNtk); + printf("pNtk->pFaultConstraintNtk: %d\n", !pNtk->pFaultConstraintNtk); + printf("[FaultConstraint] Error: size:%d\n", pNtk->vTestPatterns->nSize); + Vec_Int_t* vpattern = Abc_NtkGetTestPattern(pNtk, 0); + for(int j = 0; j < Vec_IntSize(vpattern); j++) + printf("%d ", Vec_IntEntry(vpattern, j)); + printf("\n"); printf("[FaultConstraint] Error: Network or constraint network not found\n"); return; } diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 51262ccad0..bfa894007b 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -3966,6 +3966,7 @@ int Abc_CommandStrash( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_ObjXorFaninC( pObj, 0 ); // replace the current network if(fFaultConstraint) pNtkRes->pFaultConstraintNtk = Abc_FrameReadNtk(pAbc); + pNtkRes->vGoodPis = pNtk->vGoodPis; Abc_FrameReplaceCurrentNetwork( pAbc, pNtkRes ); return 0; @@ -11603,23 +11604,27 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) int first_time = 1; while(1){ + pNtk = Abc_FrameReadNtk(pAbc); vPattern = Abc_ExecPBO( pNtk, first_time ); if ( vPattern == NULL ) return 0; // pbo unsat, done. if (first_time) first_time = 0; // restore + printf("backup%d\n", pAbc->pNtkBackup==NULL); dupNtk = Abc_NtkDup(pAbc->pNtkBackup); if(pAbc->pNtkBackup -> pFaultList != NULL) dupNtk -> pFaultList = pAbc->pNtkBackup -> pFaultList; if(pAbc->pNtkBackup -> nFaults != 0) dupNtk -> nFaults = pAbc->pNtkBackup -> nFaults; if(pAbc->pNtkBackup -> pGoodNtk != NULL) dupNtk -> pGoodNtk = pAbc->pNtkBackup -> pGoodNtk; if(pAbc->pNtkBackup -> vGoodPis != NULL) dupNtk -> vGoodPis = pAbc->pNtkBackup -> vGoodPis; if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) dupNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); + printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); pAbc->nFrames = -1; pAbc->Status = -1; // add test pattern + pNtk = Abc_FrameReadNtk(pAbc); Abc_NtkAddTestPattern(pNtk, vPattern); @@ -11627,6 +11632,9 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) // strash pNtkRes = Abc_NtkStrash( pNtk->pFaultConstraintNtk, 0, 1, 0 ); + pNtkRes->pFaultConstraintNtk = Abc_FrameReadNtk(pAbc); + pNtkRes->vGoodPis = pNtk->vGoodPis; + Abc_FrameReplaceCurrentNetwork( pAbc, pNtkRes ); // &get // if ( Abc_NtkGetChoiceNum(pAbc->pNtkCur) ) @@ -11639,9 +11647,11 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) pAig = Abc_NtkToDar( pNtkRes, 0, 1 ); pGia = Gia_ManFromAig( pAig ); Aig_ManStop( pAig ); + Abc_FrameUpdateGia( pAbc, pGia ); // &write_cnf Mf_ManDumpCnf( pAbc->pGia, pFileName, 8, 0, 1, 0 ); + // break; } return 0; From d69c6ff5115e0a43e7d85006785e9cdc9b004312 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Mon, 9 Jun 2025 05:29:09 +0800 Subject: [PATCH 43/58] error to be fixed --- runPBO.cpp | 1 + src/base/abc/abcPbo.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/runPBO.cpp b/runPBO.cpp index 226c82ad8b..af359501cb 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -402,6 +402,7 @@ void execute_solver(const std::string& opb_filename, const int pi_start, const i sat = true; modify_opb_by_lits(literals, opb_filename); // Modify the OPB's objective function with the literals std::cout << bitstring << "\n"; + std::cerr << bitstring << "\n"; } free(c_line); diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index fe7254f658..127d4bef62 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -24,7 +24,8 @@ Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run ) } else { // for next runPBO call // XY variable nums, and -1 specified incremental PBO - sprintf(pi_num_str, "%d", (pi_num - good_pi_num)/2); + sprintf(pi_num_str, "%d", pi_num); + // sprintf(pi_num_str, "%d", (pi_num - good_pi_num)/2); sprintf(good_pi_str, "%d", -1); } From 28c616024849b7fbf8548cf9bf1e24e0b27e439a Mon Sep 17 00:00:00 2001 From: xNTsai Date: Mon, 9 Jun 2025 15:32:29 +0800 Subject: [PATCH 44/58] fix: fault_sim -c --- src/base/abc/abcFault.c | 113 ++++++++++++++++++++++++++++++++-------- 1 file changed, 90 insertions(+), 23 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 5b06213433..1699ca956f 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -791,8 +791,7 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) } - printf("[FaultSim] Processing %d original nodes and %d original PIs\n", - Vec_PtrSize(vOriginalNodes), Vec_PtrSize(vOriginalPIs)); + // Macro to check if a node is original (not created by fault sim or PBO) #define IS_ORIGINAL_NODE(pNode) (Vec_PtrFind(vOriginalNodes, pNode) != -1) @@ -820,8 +819,16 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pAnd = Abc_NtkCreateNode(pNtk); // Rewire the network so that pAnd replaces pC as the output signal - // Transfer all fanouts of pC to pAnd - Abc_ObjTransferFanout(pC, pAnd); + // Transfer fanouts of pC to pAnd, excluding those starting with "pbo" + Vec_Ptr_t * vFanouts = Vec_PtrAlloc(Abc_ObjFanoutNum(pC)); + Abc_NodeCollectFanouts(pC, vFanouts); + for (int i = 0; i < vFanouts->nSize; i++) { + Abc_Obj_t * pFanout = (Abc_Obj_t *)vFanouts->pArray[i]; + if (strncmp(Abc_ObjName(pFanout), "pbo", 3) != 0) { + Abc_ObjPatchFanin(pFanout, pC, pAnd); + } + } + Vec_PtrFree(vFanouts); // Generate unique names for x and y sprintf(xName, "x_%s", Abc_ObjName(pC)); @@ -849,8 +856,16 @@ void Abc_NtkInsertFaultSimGates(Abc_Ntk_t * pNtk) pOr = Abc_NtkCreateNode(pNtk); // Rewire the network so that pOr replaces pC as the output signal - // Transfer all fanouts of pC to pOr - Abc_ObjTransferFanout(pC, pOr); + // Transfer fanouts of pC to pOr, excluding those starting with "pbo" + Vec_Ptr_t * vFanouts = Vec_PtrAlloc(Abc_ObjFanoutNum(pC)); + Abc_NodeCollectFanouts(pC, vFanouts); + for (int i = 0; i < vFanouts->nSize; i++) { + Abc_Obj_t * pFanout = (Abc_Obj_t *)vFanouts->pArray[i]; + if (strncmp(Abc_ObjName(pFanout), "pbo", 3) != 0) { + Abc_ObjPatchFanin(pFanout, pC, pOr); + } + } + Vec_PtrFree(vFanouts); // Generate unique names for x and y sprintf(yName, "y_%s", Abc_ObjName(pC)); @@ -1002,8 +1017,6 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) } } - printf("[PBO] Processing %d original nodes and %d original PIs\n", - Vec_PtrSize(vOriginalNodes), Vec_PtrSize(vOriginalPIs)); // Macro to check if a node is original (not created by fault sim or PBO) #define IS_ORIGINAL_NODE(pNode) (Vec_PtrFind(vOriginalNodes, pNode) != -1) @@ -1067,7 +1080,17 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); // create OR gate for (c OR ~a_f0) - Abc_ObjAddFanin(pOR_pbo, pC); + if(Abc_ObjIsPi(pC)) { + Abc_Obj_t * pBuf = Abc_NtkCreateNode(pNtk); + char bufName[64]; + sprintf(bufName, "pbo_buf_%s", Abc_ObjName(pC)); + Abc_ObjAssignName(pBuf, bufName, NULL); + Abc_ObjAddFanin(pBuf, pC); + pBuf->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 1, NULL); + Abc_ObjAddFanin(pOR_pbo, pBuf); + } + else + Abc_ObjAddFanin(pOR_pbo, pC); Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate @@ -1449,8 +1472,20 @@ void Abc_NtkInsertPBOGates(Abc_Ntk_t *pNtk) Abc_ObjAssignName(pNotf0_pbo, notGIGateName, NULL); Abc_ObjAddFanin(pNotf0_pbo, pf0_pbo); pNotf0_pbo->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); - // create OR gate for (fanin OR ~a_f0) - Abc_ObjAddFanin(pOR_pbo, pFanin); + // // create OR gate for (fanin OR ~a_f0) + if(Abc_ObjIsPi(pFanin)) { + printf("[PBO] PI %s is a fanin of node %s\n", Abc_ObjName(pFanin), Abc_ObjName(pNode)); + Abc_Obj_t * pBufGI = Abc_NtkCreateNode(pNtk); + char bufName[64]; + sprintf(bufName, "pbo_GI_buf_%s_in%d_%d", Abc_ObjName(pFanin), fanin_index,counter); + Abc_ObjAssignName(pBufGI, bufName, NULL); + Abc_ObjAddFanin(pBufGI, pFanin); + pBufGI->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, 1, NULL); + Abc_ObjAddFanin(pOR_pbo, pBufGI); + } + else + Abc_ObjAddFanin(pOR_pbo, pFanin); + Abc_ObjAddFanin(pOR_pbo, pNotf0_pbo); pOR_pbo->pData = Abc_SopCreateOrMultiCube((Mem_Flex_t *)pNtk->pManFunc, 2, NULL); // wire the constant 1 PO to the OR gate @@ -1865,10 +1900,12 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); continue; } + Abc_ObjAddFanin(pNode, pFanin->pCopy); + } } - printf("[FaultConstraint] Connected nodes in faulty circuit\n"); + printf("[CombineNetwork] Connected nodes in faulty circuit\n"); // Connect corresponding good and faulty input PIs int totalPIs = Abc_NtkPiNum(pGoodNtk); @@ -1905,14 +1942,25 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) Abc_Obj_t * pFanout; int k; int fanoutCount = 0; + + // First collect all fanouts + Vec_Ptr_t * vFanouts = Vec_PtrAlloc(Abc_ObjFanoutNum(pCombinedFaultPi)); Abc_ObjForEachFanout(pCombinedFaultPi, pFanout, k) { + Vec_PtrPush(vFanouts, pFanout); + } + + // Then process them + for (k = 0; k < Vec_PtrSize(vFanouts); k++) { + pFanout = (Abc_Obj_t *)Vec_PtrEntry(vFanouts, k); // Remove the connection to the faulty PI Abc_ObjDeleteFanin(pFanout, pCombinedFaultPi); // Add connection to the good circuit PI Abc_ObjAddFanin(pFanout, pObj->pCopy); fanoutCount++; } - // printf("[FaultConstraint] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); + + // Free the vector + Vec_PtrFree(vFanouts); // Remove the redundant PI from the combined network Abc_NtkDeleteObj(pCombinedFaultPi); @@ -2255,6 +2303,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_ObjAssignName(pPi, pNewName, NULL); free(pName); // Free the original name pObj->pCopy = pPi; + } } printf("[CombineNetwork] Copied additional PIs from faulty circuit\n"); @@ -2308,7 +2357,9 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) printf("Error: Fanin %s of node %s not copied\n", Abc_ObjName(pFanin), Abc_ObjName(pObj)); continue; } + Abc_ObjAddFanin(pNode, pFanin->pCopy); + } } printf("[CombineNetwork] Connected nodes in faulty circuit\n"); @@ -2335,7 +2386,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) } } free(pFaultName); - + if (!pCombinedFaultPi) { printf("[CombineNetwork] Error: Could not find fault PI %s_f\n", pGoodName); continue; @@ -2348,14 +2399,25 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_Obj_t * pFanout; int k; int fanoutCount = 0; + + // First collect all fanouts + Vec_Ptr_t * vFanouts = Vec_PtrAlloc(Abc_ObjFanoutNum(pCombinedFaultPi)); Abc_ObjForEachFanout(pCombinedFaultPi, pFanout, k) { + Vec_PtrPush(vFanouts, pFanout); + } + + // Then process them + for (k = 0; k < Vec_PtrSize(vFanouts); k++) { + pFanout = (Abc_Obj_t *)Vec_PtrEntry(vFanouts, k); // Remove the connection to the faulty PI Abc_ObjDeleteFanin(pFanout, pCombinedFaultPi); // Add connection to the good circuit PI Abc_ObjAddFanin(pFanout, pObj->pCopy); fanoutCount++; } - // printf("[CombineNetwork] Transferred %d fanouts for PI %s\n", fanoutCount, Abc_ObjName(pCombinedFaultPi)); + + // Free the vector + Vec_PtrFree(vFanouts); // Remove the redundant PI from the combined network Abc_NtkDeleteObj(pCombinedFaultPi); @@ -2368,7 +2430,6 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) // Create XOR gates to compare outputs and collect them Vec_Ptr_t * vXorOutputs = Vec_PtrAlloc(Abc_NtkPoNum(pGoodNtk)); Abc_NtkForEachPo(pGoodNtk, pObj, i) { - printf("[CombineNetwork] Processing PO %s\n", Abc_ObjName(pObj)); // Get the fanin (output of the good circuit) pFanin = Abc_ObjFanin0(pObj); if (!pFanin || !pFanin->pCopy) { @@ -2405,16 +2466,22 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) if (i < Abc_NtkPoNum(pGoodNtk)) { continue; } - - Abc_Obj_t * pFaultFanin = Abc_ObjFanin0(pFaultNtk->vPos->pArray[i]); - if (!pFaultFanin || !pFaultFanin->pCopy) { - printf("[CombineNetwork] Error: Additional fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); - continue; - } + // Abc_Obj_t * pFaultFanin = Abc_ObjFanin0(pFaultNtk->vPos->pArray[i]); + // for (int j = 0; j < Abc_ObjFanoutNum(pFaultFanin); j++){ + // printf("[CombineNetwork] Fanout %d: %s\n", j, Abc_ObjName(Abc_ObjFanout(pFaultFanin, j))); + // } + // if (!pFaultFanin || !pFaultFanin->pCopy) { + // printf("[CombineNetwork] Error: Additional fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); + // continue; + // } // Create new PO in combined network Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); - Abc_ObjAddFanin(pPo, pFaultFanin->pCopy); + Abc_Obj_t * pFanin; + int j; + Abc_ObjForEachFanin(pObj, pFanin, j) { + Abc_ObjAddFanin(pPo, pFanin->pCopy); + } // Create unique name by appending "_f" for faulty circuit POs char * pName = Abc_UtilStrsav(Abc_ObjName(pObj)); // char * pNewName = (char *)malloc(strlen(pName) + 3); // +3 for "_f" and null terminator From 11fb2bf4c7d17e26c13bd7087263f7cfaea665a3 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Mon, 9 Jun 2025 15:51:28 +0800 Subject: [PATCH 45/58] add: backup/restore -f --- src/base/abci/abc.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index bfa894007b..d64c21a03c 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -19248,10 +19248,13 @@ int Abc_CommandBackup( Abc_Frame_t * pAbc, int argc, char ** argv ) int c; // set defaults Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + while ( ( c = Extra_UtilGetopt( argc, argv, "fh" ) ) != EOF ) { switch ( c ) { + case 'f': + if(pNtk -> pFaultConstraintNtk != NULL) pAbc->pNtkBackup -> pFaultConstraintNtk = pNtk -> pFaultConstraintNtk; + break; case 'h': goto usage; default: @@ -19285,12 +19288,23 @@ int Abc_CommandRestore( Abc_Frame_t * pAbc, int argc, char ** argv ) { int c; Abc_Ntk_t * dupNtk; + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); // set defaults Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + + if ( pAbc->pNtkBackup == NULL ) + { + Abc_Print( -1, "There is no backup network.\n" ); + return 1; + } + + while ( ( c = Extra_UtilGetopt( argc, argv, "hf" ) ) != EOF ) { switch ( c ) { + case 'f': + if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) pNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); + break; case 'h': goto usage; default: @@ -19298,11 +19312,7 @@ int Abc_CommandRestore( Abc_Frame_t * pAbc, int argc, char ** argv ) } } - if ( pAbc->pNtkBackup == NULL ) - { - Abc_Print( -1, "There is no backup network.\n" ); - return 1; - } + dupNtk = Abc_NtkDup(pAbc->pNtkBackup); if(pAbc->pNtkBackup -> pFaultList != NULL) dupNtk -> pFaultList = pAbc->pNtkBackup -> pFaultList; if(pAbc->pNtkBackup -> nFaults != 0) dupNtk -> nFaults = pAbc->pNtkBackup -> nFaults; From ac2a2ef1db8771d3b3b9eebcc3dc060d652e8cff Mon Sep 17 00:00:00 2001 From: xNTsai Date: Mon, 9 Jun 2025 16:27:54 +0800 Subject: [PATCH 46/58] add: combine 2 single PO --- src/base/abc/abcFault.c | 44 +++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 1699ca956f..2023a133ee 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2466,14 +2466,6 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) if (i < Abc_NtkPoNum(pGoodNtk)) { continue; } - // Abc_Obj_t * pFaultFanin = Abc_ObjFanin0(pFaultNtk->vPos->pArray[i]); - // for (int j = 0; j < Abc_ObjFanoutNum(pFaultFanin); j++){ - // printf("[CombineNetwork] Fanout %d: %s\n", j, Abc_ObjName(Abc_ObjFanout(pFaultFanin, j))); - // } - // if (!pFaultFanin || !pFaultFanin->pCopy) { - // printf("[CombineNetwork] Error: Additional fault PO %s has invalid fanin\n", Abc_ObjName(pObj)); - // continue; - // } // Create new PO in combined network Abc_Obj_t * pPo = Abc_NtkCreatePo(pNtk); @@ -2521,6 +2513,42 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) // print the number of goodPIs printf("[CombineNetwork] Number of good PIs: %d\n", Vec_PtrSize(vGoodPis)); + + // First collect all POs + Vec_Ptr_t * vAllOutputs = Vec_PtrAlloc(Abc_NtkPoNum(pNtk)); + Abc_NtkForEachPo(pNtk, pPo, i) { + Vec_PtrPush(vAllOutputs, pPo); + } + + // Create a single OR gate to combine all outputs + Abc_Obj_t * pAnd = Abc_NtkCreateNode(pNtk); + Abc_ObjAssignName(pAnd, "combined_output", NULL); + + // Connect all outputs to the OR gate + Abc_Obj_t * pOutput; + Vec_PtrForEachEntry(Abc_Obj_t *, vAllOutputs, pOutput, j) { + // Get the fanin of each PO + Abc_Obj_t * pFanin = Abc_ObjFanin0(pOutput); + if (pFanin) { + Abc_ObjAddFanin(pAnd, pFanin); + } + } + + // Set AND functionality + pAnd->pData = Abc_SopCreateAnd((Mem_Flex_t*)pNtk->pManFunc, Vec_PtrSize(vAllOutputs), NULL); + + // Create single PO + Abc_Obj_t * pFinalPo = Abc_NtkCreatePo(pNtk); + Abc_ObjAddFanin(pFinalPo, pAnd); + Abc_ObjAssignName(pFinalPo, "combined_output", NULL); + + // Remove all other POs + Vec_PtrForEachEntry(Abc_Obj_t *, vAllOutputs, pOutput, j) { + Abc_NtkDeleteObj(pOutput); + } + + // Free the vector + Vec_PtrFree(vAllOutputs); } ABC_NAMESPACE_IMPL_END \ No newline at end of file From f6748292bcd5dbbdff2b13c2ae79dbd3256acd40 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Mon, 9 Jun 2025 16:48:00 +0800 Subject: [PATCH 47/58] two stage pbo --- runPBO.cpp | 4 +++- src/base/abc/abcPbo.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/runPBO.cpp b/runPBO.cpp index af359501cb..c0f2c6222c 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -195,6 +195,7 @@ int add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int& o // Step 2: Append the new constraint buffer << "* added constraint with provided cnf\n"; + std::cerr << "Origin_var="<< origin_vars <<", Current_var="<< current_vars <<"\n"; for (const auto& clause : cnf->clauses) { for (int lit : clause) { if (lit < 0){ @@ -431,6 +432,7 @@ int main(int argc, char* argv[]) { const int pi_num = (argc > 3) ? std::atoi(argv[3]) : 0; int originPI_num = (argc > 4) ? std::atoi(argv[4]) : 0; assert(originPI_num <= pi_num); // let originPI_num = -1 be the signal of appending constraints + std::cerr << "Pi_num: " << pi_num << ", OriginPI_num: " << originPI_num << "\n"; std::vector obj_variables; int pi_start = 0; @@ -440,7 +442,7 @@ int main(int argc, char* argv[]) { if (originPI_num > 0){ int start = cnf->num_vars - pi_num + originPI_num +1; - int end = (start + cnf->num_vars)/2; + int end = (start-1 + cnf->num_vars)/2; std::cerr << "start: " << start << ", end: " << end << "\n"; assert(end - start +1 == cnf->num_vars -end); for (int i = start; i <= end; ++i) { diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index 127d4bef62..af62f9b5aa 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -9,7 +9,7 @@ Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run ) { // extern void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); - const int pi_num = Abc_NtkPiNum(pNtk); + int pi_num = Abc_NtkPiNum(pNtk); // int good_pi_num = Abc_NtkPiNum(pNtk); const int good_pi_num = pNtk->vGoodPis ? Vec_PtrSize(pNtk->vGoodPis) : -1; if (good_pi_num < 0) { @@ -19,6 +19,7 @@ Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run ) char pi_num_str[16], good_pi_str[16]; if(first_run){ + pi_num = pi_num*2 - good_pi_num; sprintf(pi_num_str, "%d", pi_num); sprintf(good_pi_str, "%d", good_pi_num); } else { From cca1d5198c5832e4cc655e8f1cdc9e27fcbbd45d Mon Sep 17 00:00:00 2001 From: xNTsai Date: Mon, 9 Jun 2025 17:32:04 +0800 Subject: [PATCH 48/58] add: write tp --- src/base/abc/abc.h | 1 + src/base/abc/abcFault.c | 47 +++++++++++++++++++++++++++++++++++++++++ src/base/abci/abc.c | 7 +++--- 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index e05cec05c9..fbeb64ab8e 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1132,6 +1132,7 @@ extern ABC_DLL void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); extern ABC_DLL void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkWriteTestPatterns( Abc_Ntk_t * pNtk, const char * pFileName ); // Pseudo Boolean Optimization Related extern ABC_DLL Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int ); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 2023a133ee..1672d74a11 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2054,6 +2054,52 @@ void Abc_NtkInitTestPatterns( Abc_Ntk_t * pNtk ) pNtk->vTestPatterns = Vec_PtrAlloc( 100 ); // Initial capacity of 100 patterns } + +/**Function************************************************************* + + Synopsis [Writes test patterns to a file.] + + Description [Writes each test pattern as a line of 0s and 1s to the specified file, + starting from the newest pattern to the oldest.] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkWriteTestPatterns( Abc_Ntk_t * pNtk, const char * pFileName ) +{ + FILE * pFile; + Vec_Int_t * vPattern; + int i, j, Value; + + if ( !pNtk->vTestPatterns ) + { + printf("No test patterns to write.\n"); + return; + } + + pFile = fopen(pFileName, "w"); + if ( pFile == NULL ) + { + printf("Cannot open file \"%s\" for writing.\n", pFileName); + return; + } + + // Write patterns in reverse order (newest to oldest) + for ( i = Vec_PtrSize(pNtk->vTestPatterns) - 1; i >= 0; i-- ) + { + vPattern = (Vec_Int_t *)Vec_PtrEntry(pNtk->vTestPatterns, i); + fprintf(pFile, "T'"); + Vec_IntForEachEntry( vPattern, Value, j ) + fprintf(pFile, "%d", Value); + fprintf(pFile, "'\n"); + } + + fclose(pFile); + printf("Wrote %d test patterns to file \"%s\".\n", Vec_PtrSize(pNtk->vTestPatterns), pFileName); +} + /**Function************************************************************* Synopsis [Adds a test pattern to the network.] @@ -2551,4 +2597,5 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Vec_PtrFree(vAllOutputs); } + ABC_NAMESPACE_IMPL_END \ No newline at end of file diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index d64c21a03c..d13943c103 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11618,6 +11618,7 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) if(pAbc->pNtkBackup -> pGoodNtk != NULL) dupNtk -> pGoodNtk = pAbc->pNtkBackup -> pGoodNtk; if(pAbc->pNtkBackup -> vGoodPis != NULL) dupNtk -> vGoodPis = pAbc->pNtkBackup -> vGoodPis; if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) dupNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); + if(pNtk -> vTestPatterns != NULL) dupNtk -> vTestPatterns = pNtk -> vTestPatterns; printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); pAbc->nFrames = -1; @@ -19298,13 +19299,10 @@ int Abc_CommandRestore( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } - while ( ( c = Extra_UtilGetopt( argc, argv, "hf" ) ) != EOF ) + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) { switch ( c ) { - case 'f': - if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) pNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); - break; case 'h': goto usage; default: @@ -19319,6 +19317,7 @@ int Abc_CommandRestore( Abc_Frame_t * pAbc, int argc, char ** argv ) if(pAbc->pNtkBackup -> pGoodNtk != NULL) dupNtk -> pGoodNtk = pAbc->pNtkBackup -> pGoodNtk; if(pAbc->pNtkBackup -> vGoodPis != NULL) dupNtk -> vGoodPis = pAbc->pNtkBackup -> vGoodPis; if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) dupNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); + if(pNtk -> vTestPatterns != NULL) dupNtk -> vTestPatterns = pNtk -> vTestPatterns; Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); pAbc->nFrames = -1; pAbc->Status = -1; From eea12a6fb7f9f7cb45d86eeba133cd3e5932ad1c Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Mon, 9 Jun 2025 19:43:34 +0800 Subject: [PATCH 49/58] dump test pattern --- src/base/abc/abc.h | 2 +- src/base/abc/abcFault.c | 10 +++++----- src/base/abci/abc.c | 10 +++++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index fbeb64ab8e..8504375344 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1132,7 +1132,7 @@ extern ABC_DLL void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); extern ABC_DLL void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ); -extern ABC_DLL void Abc_NtkWriteTestPatterns( Abc_Ntk_t * pNtk, const char * pFileName ); +extern ABC_DLL void Abc_NtkWriteTestPatterns( Vec_Ptr_t * vPatterns, const char * pFileName ); // Pseudo Boolean Optimization Related extern ABC_DLL Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int ); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 1672d74a11..7210bc5dcc 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2067,13 +2067,13 @@ void Abc_NtkInitTestPatterns( Abc_Ntk_t * pNtk ) SeeAlso [] ***********************************************************************/ -void Abc_NtkWriteTestPatterns( Abc_Ntk_t * pNtk, const char * pFileName ) +void Abc_NtkWriteTestPatterns( Vec_Ptr_t * vPatterns, const char * pFileName ) { FILE * pFile; Vec_Int_t * vPattern; int i, j, Value; - if ( !pNtk->vTestPatterns ) + if ( !vPatterns ) { printf("No test patterns to write.\n"); return; @@ -2087,9 +2087,9 @@ void Abc_NtkWriteTestPatterns( Abc_Ntk_t * pNtk, const char * pFileName ) } // Write patterns in reverse order (newest to oldest) - for ( i = Vec_PtrSize(pNtk->vTestPatterns) - 1; i >= 0; i-- ) + for ( i = Vec_PtrSize(vPatterns) - 1; i >= 0; i-- ) { - vPattern = (Vec_Int_t *)Vec_PtrEntry(pNtk->vTestPatterns, i); + vPattern = (Vec_Int_t *)Vec_PtrEntry(vPatterns, i); fprintf(pFile, "T'"); Vec_IntForEachEntry( vPattern, Value, j ) fprintf(pFile, "%d", Value); @@ -2097,7 +2097,7 @@ void Abc_NtkWriteTestPatterns( Abc_Ntk_t * pNtk, const char * pFileName ) } fclose(pFile); - printf("Wrote %d test patterns to file \"%s\".\n", Vec_PtrSize(pNtk->vTestPatterns), pFileName); + printf("Wrote %d test patterns to file \"%s\".\n", Vec_PtrSize(vPatterns), pFileName); } /**Function************************************************************* diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index d13943c103..947f8789a0 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11567,9 +11567,8 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Ntk_t * pNtkRes; Abc_Ntk_t * dupNtk; - Abc_Ntk_t * pStrash; Aig_Man_t * pAig; - Gia_Man_t * pGia, * pTemp; + Gia_Man_t * pGia; Vec_Int_t * vPattern; @@ -11602,11 +11601,16 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) fclose( pFile ); int first_time = 1; + Vec_Ptr_t* vPatterns = Vec_PtrAlloc(1000); while(1){ pNtk = Abc_FrameReadNtk(pAbc); vPattern = Abc_ExecPBO( pNtk, first_time ); - if ( vPattern == NULL ) return 0; // pbo unsat, done. + if ( vPattern == NULL ){ + Abc_NtkWriteTestPatterns(vPatterns, "atpg.txt"); + return 0; // pbo unsat, done. + } + Vec_PtrPush( vPatterns, vPattern ); if (first_time) first_time = 0; From e365abdc6fa1148c7ca046455be0a938810d1142 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Mon, 9 Jun 2025 19:44:31 +0800 Subject: [PATCH 50/58] add iscas85 benchmark --- testcase/c1355.bench | 627 +++++++ testcase/c17.bench | 21 + testcase/c1908.bench | 946 +++++++++++ testcase/c2670.bench | 1574 +++++++++++++++++ testcase/c3540.bench | 1749 +++++++++++++++++++ testcase/c432.bench | 211 +++ testcase/c499.bench | 283 ++++ testcase/c5315.bench | 2616 ++++++++++++++++++++++++++++ testcase/c6288.bench | 2488 +++++++++++++++++++++++++++ testcase/c7552.bench | 3835 ++++++++++++++++++++++++++++++++++++++++++ testcase/c880.bench | 477 ++++++ 11 files changed, 14827 insertions(+) create mode 100755 testcase/c1355.bench create mode 100644 testcase/c17.bench create mode 100755 testcase/c1908.bench create mode 100755 testcase/c2670.bench create mode 100755 testcase/c3540.bench create mode 100644 testcase/c432.bench create mode 100644 testcase/c499.bench create mode 100755 testcase/c5315.bench create mode 100755 testcase/c6288.bench create mode 100755 testcase/c7552.bench create mode 100644 testcase/c880.bench diff --git a/testcase/c1355.bench b/testcase/c1355.bench new file mode 100755 index 0000000000..6f8c297470 --- /dev/null +++ b/testcase/c1355.bench @@ -0,0 +1,627 @@ +# c1355 +# 41 inputs +# 32 outputs +# 40 inverters +# 506 gates ( 88 ANDs + 456 NANDs + 2 ORs + 32 buffers ) + +INPUT(1) +INPUT(8) +INPUT(15) +INPUT(22) +INPUT(29) +INPUT(36) +INPUT(43) +INPUT(50) +INPUT(57) +INPUT(64) +INPUT(71) +INPUT(78) +INPUT(85) +INPUT(92) +INPUT(99) +INPUT(106) +INPUT(113) +INPUT(120) +INPUT(127) +INPUT(134) +INPUT(141) +INPUT(148) +INPUT(155) +INPUT(162) +INPUT(169) +INPUT(176) +INPUT(183) +INPUT(190) +INPUT(197) +INPUT(204) +INPUT(211) +INPUT(218) +INPUT(225) +INPUT(226) +INPUT(227) +INPUT(228) +INPUT(229) +INPUT(230) +INPUT(231) +INPUT(232) +INPUT(233) + +OUTPUT(1324) +OUTPUT(1325) +OUTPUT(1326) +OUTPUT(1327) +OUTPUT(1328) +OUTPUT(1329) +OUTPUT(1330) +OUTPUT(1331) +OUTPUT(1332) +OUTPUT(1333) +OUTPUT(1334) +OUTPUT(1335) +OUTPUT(1336) +OUTPUT(1337) +OUTPUT(1338) +OUTPUT(1339) +OUTPUT(1340) +OUTPUT(1341) +OUTPUT(1342) +OUTPUT(1343) +OUTPUT(1344) +OUTPUT(1345) +OUTPUT(1346) +OUTPUT(1347) +OUTPUT(1348) +OUTPUT(1349) +OUTPUT(1350) +OUTPUT(1351) +OUTPUT(1352) +OUTPUT(1353) +OUTPUT(1354) +OUTPUT(1355) + +242 = AND(225, 233) +245 = AND(226, 233) +248 = AND(227, 233) +251 = AND(228, 233) +254 = AND(229, 233) +257 = AND(230, 233) +260 = AND(231, 233) +263 = AND(232, 233) +266 = NAND(1, 8) +269 = NAND(15, 22) +272 = NAND(29, 36) +275 = NAND(43, 50) +278 = NAND(57, 64) +281 = NAND(71, 78) +284 = NAND(85, 92) +287 = NAND(99, 106) +290 = NAND(113, 120) +293 = NAND(127, 134) +296 = NAND(141, 148) +299 = NAND(155, 162) +302 = NAND(169, 176) +305 = NAND(183, 190) +308 = NAND(197, 204) +311 = NAND(211, 218) +314 = NAND(1, 29) +317 = NAND(57, 85) +320 = NAND(8, 36) +323 = NAND(64, 92) +326 = NAND(15, 43) +329 = NAND(71, 99) +332 = NAND(22, 50) +335 = NAND(78, 106) +338 = NAND(113, 141) +341 = NAND(169, 197) +344 = NAND(120, 148) +347 = NAND(176, 204) +350 = NAND(127, 155) +353 = NAND(183, 211) +356 = NAND(134, 162) +359 = NAND(190, 218) +362 = NAND(1, 266) +363 = NAND(8, 266) +364 = NAND(15, 269) +365 = NAND(22, 269) +366 = NAND(29, 272) +367 = NAND(36, 272) +368 = NAND(43, 275) +369 = NAND(50, 275) +370 = NAND(57, 278) +371 = NAND(64, 278) +372 = NAND(71, 281) +373 = NAND(78, 281) +374 = NAND(85, 284) +375 = NAND(92, 284) +376 = NAND(99, 287) +377 = NAND(106, 287) +378 = NAND(113, 290) +379 = NAND(120, 290) +380 = NAND(127, 293) +381 = NAND(134, 293) +382 = NAND(141, 296) +383 = NAND(148, 296) +384 = NAND(155, 299) +385 = NAND(162, 299) +386 = NAND(169, 302) +387 = NAND(176, 302) +388 = NAND(183, 305) +389 = NAND(190, 305) +390 = NAND(197, 308) +391 = NAND(204, 308) +392 = NAND(211, 311) +393 = NAND(218, 311) +394 = NAND(1, 314) +395 = NAND(29, 314) +396 = NAND(57, 317) +397 = NAND(85, 317) +398 = NAND(8, 320) +399 = NAND(36, 320) +400 = NAND(64, 323) +401 = NAND(92, 323) +402 = NAND(15, 326) +403 = NAND(43, 326) +404 = NAND(71, 329) +405 = NAND(99, 329) +406 = NAND(22, 332) +407 = NAND(50, 332) +408 = NAND(78, 335) +409 = NAND(106, 335) +410 = NAND(113, 338) +411 = NAND(141, 338) +412 = NAND(169, 341) +413 = NAND(197, 341) +414 = NAND(120, 344) +415 = NAND(148, 344) +416 = NAND(176, 347) +417 = NAND(204, 347) +418 = NAND(127, 350) +419 = NAND(155, 350) +420 = NAND(183, 353) +421 = NAND(211, 353) +422 = NAND(134, 356) +423 = NAND(162, 356) +424 = NAND(190, 359) +425 = NAND(218, 359) +426 = NAND(362, 363) +429 = NAND(364, 365) +432 = NAND(366, 367) +435 = NAND(368, 369) +438 = NAND(370, 371) +441 = NAND(372, 373) +444 = NAND(374, 375) +447 = NAND(376, 377) +450 = NAND(378, 379) +453 = NAND(380, 381) +456 = NAND(382, 383) +459 = NAND(384, 385) +462 = NAND(386, 387) +465 = NAND(388, 389) +468 = NAND(390, 391) +471 = NAND(392, 393) +474 = NAND(394, 395) +477 = NAND(396, 397) +480 = NAND(398, 399) +483 = NAND(400, 401) +486 = NAND(402, 403) +489 = NAND(404, 405) +492 = NAND(406, 407) +495 = NAND(408, 409) +498 = NAND(410, 411) +501 = NAND(412, 413) +504 = NAND(414, 415) +507 = NAND(416, 417) +510 = NAND(418, 419) +513 = NAND(420, 421) +516 = NAND(422, 423) +519 = NAND(424, 425) +522 = NAND(426, 429) +525 = NAND(432, 435) +528 = NAND(438, 441) +531 = NAND(444, 447) +534 = NAND(450, 453) +537 = NAND(456, 459) +540 = NAND(462, 465) +543 = NAND(468, 471) +546 = NAND(474, 477) +549 = NAND(480, 483) +552 = NAND(486, 489) +555 = NAND(492, 495) +558 = NAND(498, 501) +561 = NAND(504, 507) +564 = NAND(510, 513) +567 = NAND(516, 519) +570 = NAND(426, 522) +571 = NAND(429, 522) +572 = NAND(432, 525) +573 = NAND(435, 525) +574 = NAND(438, 528) +575 = NAND(441, 528) +576 = NAND(444, 531) +577 = NAND(447, 531) +578 = NAND(450, 534) +579 = NAND(453, 534) +580 = NAND(456, 537) +581 = NAND(459, 537) +582 = NAND(462, 540) +583 = NAND(465, 540) +584 = NAND(468, 543) +585 = NAND(471, 543) +586 = NAND(474, 546) +587 = NAND(477, 546) +588 = NAND(480, 549) +589 = NAND(483, 549) +590 = NAND(486, 552) +591 = NAND(489, 552) +592 = NAND(492, 555) +593 = NAND(495, 555) +594 = NAND(498, 558) +595 = NAND(501, 558) +596 = NAND(504, 561) +597 = NAND(507, 561) +598 = NAND(510, 564) +599 = NAND(513, 564) +600 = NAND(516, 567) +601 = NAND(519, 567) +602 = NAND(570, 571) +607 = NAND(572, 573) +612 = NAND(574, 575) +617 = NAND(576, 577) +622 = NAND(578, 579) +627 = NAND(580, 581) +632 = NAND(582, 583) +637 = NAND(584, 585) +642 = NAND(586, 587) +645 = NAND(588, 589) +648 = NAND(590, 591) +651 = NAND(592, 593) +654 = NAND(594, 595) +657 = NAND(596, 597) +660 = NAND(598, 599) +663 = NAND(600, 601) +666 = NAND(602, 607) +669 = NAND(612, 617) +672 = NAND(602, 612) +675 = NAND(607, 617) +678 = NAND(622, 627) +681 = NAND(632, 637) +684 = NAND(622, 632) +687 = NAND(627, 637) +690 = NAND(602, 666) +691 = NAND(607, 666) +692 = NAND(612, 669) +693 = NAND(617, 669) +694 = NAND(602, 672) +695 = NAND(612, 672) +696 = NAND(607, 675) +697 = NAND(617, 675) +698 = NAND(622, 678) +699 = NAND(627, 678) +700 = NAND(632, 681) +701 = NAND(637, 681) +702 = NAND(622, 684) +703 = NAND(632, 684) +704 = NAND(627, 687) +705 = NAND(637, 687) +706 = NAND(690, 691) +709 = NAND(692, 693) +712 = NAND(694, 695) +715 = NAND(696, 697) +718 = NAND(698, 699) +721 = NAND(700, 701) +724 = NAND(702, 703) +727 = NAND(704, 705) +730 = NAND(242, 718) +733 = NAND(245, 721) +736 = NAND(248, 724) +739 = NAND(251, 727) +742 = NAND(254, 706) +745 = NAND(257, 709) +748 = NAND(260, 712) +751 = NAND(263, 715) +754 = NAND(242, 730) +755 = NAND(718, 730) +756 = NAND(245, 733) +757 = NAND(721, 733) +758 = NAND(248, 736) +759 = NAND(724, 736) +760 = NAND(251, 739) +761 = NAND(727, 739) +762 = NAND(254, 742) +763 = NAND(706, 742) +764 = NAND(257, 745) +765 = NAND(709, 745) +766 = NAND(260, 748) +767 = NAND(712, 748) +768 = NAND(263, 751) +769 = NAND(715, 751) +770 = NAND(754, 755) +773 = NAND(756, 757) +776 = NAND(758, 759) +779 = NAND(760, 761) +782 = NAND(762, 763) +785 = NAND(764, 765) +788 = NAND(766, 767) +791 = NAND(768, 769) +794 = NAND(642, 770) +797 = NAND(645, 773) +800 = NAND(648, 776) +803 = NAND(651, 779) +806 = NAND(654, 782) +809 = NAND(657, 785) +812 = NAND(660, 788) +815 = NAND(663, 791) +818 = NAND(642, 794) +819 = NAND(770, 794) +820 = NAND(645, 797) +821 = NAND(773, 797) +822 = NAND(648, 800) +823 = NAND(776, 800) +824 = NAND(651, 803) +825 = NAND(779, 803) +826 = NAND(654, 806) +827 = NAND(782, 806) +828 = NAND(657, 809) +829 = NAND(785, 809) +830 = NAND(660, 812) +831 = NAND(788, 812) +832 = NAND(663, 815) +833 = NAND(791, 815) +834 = NAND(818, 819) +847 = NAND(820, 821) +860 = NAND(822, 823) +873 = NAND(824, 825) +886 = NAND(828, 829) +899 = NAND(832, 833) +912 = NAND(830, 831) +925 = NAND(826, 827) +938 = NOT(834) +939 = NOT(847) +940 = NOT(860) +941 = NOT(834) +942 = NOT(847) +943 = NOT(873) +944 = NOT(834) +945 = NOT(860) +946 = NOT(873) +947 = NOT(847) +948 = NOT(860) +949 = NOT(873) +950 = NOT(886) +951 = NOT(899) +952 = NOT(886) +953 = NOT(912) +954 = NOT(925) +955 = NOT(899) +956 = NOT(925) +957 = NOT(912) +958 = NOT(925) +959 = NOT(886) +960 = NOT(912) +961 = NOT(925) +962 = NOT(886) +963 = NOT(899) +964 = NOT(925) +965 = NOT(912) +966 = NOT(899) +967 = NOT(886) +968 = NOT(912) +969 = NOT(899) +970 = NOT(847) +971 = NOT(873) +972 = NOT(847) +973 = NOT(860) +974 = NOT(834) +975 = NOT(873) +976 = NOT(834) +977 = NOT(860) +978 = AND(938, 939, 940, 873) +979 = AND(941, 942, 860, 943) +980 = AND(944, 847, 945, 946) +981 = AND(834, 947, 948, 949) +982 = AND(958, 959, 960, 899) +983 = AND(961, 962, 912, 963) +984 = AND(964, 886, 965, 966) +985 = AND(925, 967, 968, 969) +986 = OR(978, 979, 980, 981) +991 = OR(982, 983, 984, 985) +996 = AND(925, 950, 912, 951, 986) +1001 = AND(925, 952, 953, 899, 986) +1006 = AND(954, 886, 912, 955, 986) +1011 = AND(956, 886, 957, 899, 986) +1016 = AND(834, 970, 860, 971, 991) +1021 = AND(834, 972, 973, 873, 991) +1026 = AND(974, 847, 860, 975, 991) +1031 = AND(976, 847, 977, 873, 991) +1036 = AND(834, 996) +1039 = AND(847, 996) +1042 = AND(860, 996) +1045 = AND(873, 996) +1048 = AND(834, 1001) +1051 = AND(847, 1001) +1054 = AND(860, 1001) +1057 = AND(873, 1001) +1060 = AND(834, 1006) +1063 = AND(847, 1006) +1066 = AND(860, 1006) +1069 = AND(873, 1006) +1072 = AND(834, 1011) +1075 = AND(847, 1011) +1078 = AND(860, 1011) +1081 = AND(873, 1011) +1084 = AND(925, 1016) +1087 = AND(886, 1016) +1090 = AND(912, 1016) +1093 = AND(899, 1016) +1096 = AND(925, 1021) +1099 = AND(886, 1021) +1102 = AND(912, 1021) +1105 = AND(899, 1021) +1108 = AND(925, 1026) +1111 = AND(886, 1026) +1114 = AND(912, 1026) +1117 = AND(899, 1026) +1120 = AND(925, 1031) +1123 = AND(886, 1031) +1126 = AND(912, 1031) +1129 = AND(899, 1031) +1132 = NAND(1, 1036) +1135 = NAND(8, 1039) +1138 = NAND(15, 1042) +1141 = NAND(22, 1045) +1144 = NAND(29, 1048) +1147 = NAND(36, 1051) +1150 = NAND(43, 1054) +1153 = NAND(50, 1057) +1156 = NAND(57, 1060) +1159 = NAND(64, 1063) +1162 = NAND(71, 1066) +1165 = NAND(78, 1069) +1168 = NAND(85, 1072) +1171 = NAND(92, 1075) +1174 = NAND(99, 1078) +1177 = NAND(106, 1081) +1180 = NAND(113, 1084) +1183 = NAND(120, 1087) +1186 = NAND(127, 1090) +1189 = NAND(134, 1093) +1192 = NAND(141, 1096) +1195 = NAND(148, 1099) +1198 = NAND(155, 1102) +1201 = NAND(162, 1105) +1204 = NAND(169, 1108) +1207 = NAND(176, 1111) +1210 = NAND(183, 1114) +1213 = NAND(190, 1117) +1216 = NAND(197, 1120) +1219 = NAND(204, 1123) +1222 = NAND(211, 1126) +1225 = NAND(218, 1129) +1228 = NAND(1, 1132) +1229 = NAND(1036, 1132) +1230 = NAND(8, 1135) +1231 = NAND(1039, 1135) +1232 = NAND(15, 1138) +1233 = NAND(1042, 1138) +1234 = NAND(22, 1141) +1235 = NAND(1045, 1141) +1236 = NAND(29, 1144) +1237 = NAND(1048, 1144) +1238 = NAND(36, 1147) +1239 = NAND(1051, 1147) +1240 = NAND(43, 1150) +1241 = NAND(1054, 1150) +1242 = NAND(50, 1153) +1243 = NAND(1057, 1153) +1244 = NAND(57, 1156) +1245 = NAND(1060, 1156) +1246 = NAND(64, 1159) +1247 = NAND(1063, 1159) +1248 = NAND(71, 1162) +1249 = NAND(1066, 1162) +1250 = NAND(78, 1165) +1251 = NAND(1069, 1165) +1252 = NAND(85, 1168) +1253 = NAND(1072, 1168) +1254 = NAND(92, 1171) +1255 = NAND(1075, 1171) +1256 = NAND(99, 1174) +1257 = NAND(1078, 1174) +1258 = NAND(106, 1177) +1259 = NAND(1081, 1177) +1260 = NAND(113, 1180) +1261 = NAND(1084, 1180) +1262 = NAND(120, 1183) +1263 = NAND(1087, 1183) +1264 = NAND(127, 1186) +1265 = NAND(1090, 1186) +1266 = NAND(134, 1189) +1267 = NAND(1093, 1189) +1268 = NAND(141, 1192) +1269 = NAND(1096, 1192) +1270 = NAND(148, 1195) +1271 = NAND(1099, 1195) +1272 = NAND(155, 1198) +1273 = NAND(1102, 1198) +1274 = NAND(162, 1201) +1275 = NAND(1105, 1201) +1276 = NAND(169, 1204) +1277 = NAND(1108, 1204) +1278 = NAND(176, 1207) +1279 = NAND(1111, 1207) +1280 = NAND(183, 1210) +1281 = NAND(1114, 1210) +1282 = NAND(190, 1213) +1283 = NAND(1117, 1213) +1284 = NAND(197, 1216) +1285 = NAND(1120, 1216) +1286 = NAND(204, 1219) +1287 = NAND(1123, 1219) +1288 = NAND(211, 1222) +1289 = NAND(1126, 1222) +1290 = NAND(218, 1225) +1291 = NAND(1129, 1225) +1292 = NAND(1228, 1229) +1293 = NAND(1230, 1231) +1294 = NAND(1232, 1233) +1295 = NAND(1234, 1235) +1296 = NAND(1236, 1237) +1297 = NAND(1238, 1239) +1298 = NAND(1240, 1241) +1299 = NAND(1242, 1243) +1300 = NAND(1244, 1245) +1301 = NAND(1246, 1247) +1302 = NAND(1248, 1249) +1303 = NAND(1250, 1251) +1304 = NAND(1252, 1253) +1305 = NAND(1254, 1255) +1306 = NAND(1256, 1257) +1307 = NAND(1258, 1259) +1308 = NAND(1260, 1261) +1309 = NAND(1262, 1263) +1310 = NAND(1264, 1265) +1311 = NAND(1266, 1267) +1312 = NAND(1268, 1269) +1313 = NAND(1270, 1271) +1314 = NAND(1272, 1273) +1315 = NAND(1274, 1275) +1316 = NAND(1276, 1277) +1317 = NAND(1278, 1279) +1318 = NAND(1280, 1281) +1319 = NAND(1282, 1283) +1320 = NAND(1284, 1285) +1321 = NAND(1286, 1287) +1322 = NAND(1288, 1289) +1323 = NAND(1290, 1291) +1324 = BUFF(1292) +1325 = BUFF(1293) +1326 = BUFF(1294) +1327 = BUFF(1295) +1328 = BUFF(1296) +1329 = BUFF(1297) +1330 = BUFF(1298) +1331 = BUFF(1299) +1332 = BUFF(1300) +1333 = BUFF(1301) +1334 = BUFF(1302) +1335 = BUFF(1303) +1336 = BUFF(1304) +1337 = BUFF(1305) +1338 = BUFF(1306) +1339 = BUFF(1307) +1340 = BUFF(1308) +1341 = BUFF(1309) +1342 = BUFF(1310) +1343 = BUFF(1311) +1344 = BUFF(1312) +1345 = BUFF(1313) +1346 = BUFF(1314) +1347 = BUFF(1315) +1348 = BUFF(1316) +1349 = BUFF(1317) +1350 = BUFF(1318) +1351 = BUFF(1319) +1352 = BUFF(1320) +1353 = BUFF(1321) +1354 = BUFF(1322) +1355 = BUFF(1323) diff --git a/testcase/c17.bench b/testcase/c17.bench new file mode 100644 index 0000000000..d76d32f1ff --- /dev/null +++ b/testcase/c17.bench @@ -0,0 +1,21 @@ +# c17 +# 5 inputs +# 2 outputs +# 0 inverter +# 6 gates ( 6 NANDs ) + +INPUT(1) +INPUT(2) +INPUT(3) +INPUT(6) +INPUT(7) + +OUTPUT(22) +OUTPUT(23) + +10 = NAND(1, 3) +11 = NAND(3, 6) +16 = NAND(2, 11) +19 = NAND(11, 7) +22 = NAND(10, 16) +23 = NAND(16, 19) diff --git a/testcase/c1908.bench b/testcase/c1908.bench new file mode 100755 index 0000000000..1ec657d69b --- /dev/null +++ b/testcase/c1908.bench @@ -0,0 +1,946 @@ +# c1908 +# 33 inputs +# 25 outputs +# 277 inverters +# 603 gates ( 225 ANDs + 654 NANDs + 1 NOR + 162 buffers ) + +INPUT(1) +INPUT(4) +INPUT(7) +INPUT(10) +INPUT(13) +INPUT(16) +INPUT(19) +INPUT(22) +INPUT(25) +INPUT(28) +INPUT(31) +INPUT(34) +INPUT(37) +INPUT(40) +INPUT(43) +INPUT(46) +INPUT(49) +INPUT(53) +INPUT(56) +INPUT(60) +INPUT(63) +INPUT(66) +INPUT(69) +INPUT(72) +INPUT(76) +INPUT(79) +INPUT(82) +INPUT(85) +INPUT(88) +INPUT(91) +INPUT(94) +INPUT(99) +INPUT(104) + +OUTPUT(2753) +OUTPUT(2754) +OUTPUT(2755) +OUTPUT(2756) +OUTPUT(2762) +OUTPUT(2767) +OUTPUT(2768) +OUTPUT(2779) +OUTPUT(2780) +OUTPUT(2781) +OUTPUT(2782) +OUTPUT(2783) +OUTPUT(2784) +OUTPUT(2785) +OUTPUT(2786) +OUTPUT(2787) +OUTPUT(2811) +OUTPUT(2886) +OUTPUT(2887) +OUTPUT(2888) +OUTPUT(2889) +OUTPUT(2890) +OUTPUT(2891) +OUTPUT(2892) +OUTPUT(2899) + +190 = NOT(1) +194 = NOT(4) +197 = NOT(7) +201 = NOT(10) +206 = NOT(13) +209 = NOT(16) +212 = NOT(19) +216 = NOT(22) +220 = NOT(25) +225 = NOT(28) +229 = NOT(31) +232 = NOT(34) +235 = NOT(37) +239 = NOT(40) +243 = NOT(43) +247 = NOT(46) +251 = NAND(63, 88) +252 = NAND(66, 91) +253 = NOT(72) +256 = NOT(72) +257 = BUFF(69) +260 = BUFF(69) +263 = NOT(76) +266 = NOT(79) +269 = NOT(82) +272 = NOT(85) +275 = NOT(104) +276 = NOT(104) +277 = NOT(88) +280 = NOT(91) +283 = BUFF(94) +290 = NOT(94) +297 = BUFF(94) +300 = NOT(94) +303 = BUFF(99) +306 = NOT(99) +313 = NOT(99) +316 = BUFF(104) +319 = NOT(104) +326 = BUFF(104) +331 = BUFF(104) +338 = NOT(104) +343 = BUFF(1) +346 = BUFF(4) +349 = BUFF(7) +352 = BUFF(10) +355 = BUFF(13) +358 = BUFF(16) +361 = BUFF(19) +364 = BUFF(22) +367 = BUFF(25) +370 = BUFF(28) +373 = BUFF(31) +376 = BUFF(34) +379 = BUFF(37) +382 = BUFF(40) +385 = BUFF(43) +388 = BUFF(46) +534 = NOT(343) +535 = NOT(346) +536 = NOT(349) +537 = NOT(352) +538 = NOT(355) +539 = NOT(358) +540 = NOT(361) +541 = NOT(364) +542 = NOT(367) +543 = NOT(370) +544 = NOT(373) +545 = NOT(376) +546 = NOT(379) +547 = NOT(382) +548 = NOT(385) +549 = NOT(388) +550 = NAND(306, 331) +551 = NAND(306, 331) +552 = NAND(306, 331) +553 = NAND(306, 331) +554 = NAND(306, 331) +555 = NAND(306, 331) +556 = BUFF(190) +559 = BUFF(194) +562 = BUFF(206) +565 = BUFF(209) +568 = BUFF(225) +571 = BUFF(243) +574 = AND(63, 319) +577 = BUFF(220) +580 = BUFF(229) +583 = BUFF(232) +586 = AND(66, 319) +589 = BUFF(239) +592 = AND(49, 253, 319) +595 = BUFF(247) +598 = BUFF(239) +601 = NAND(326, 277) +602 = NAND(326, 280) +603 = NAND(260, 72) +608 = NAND(260, 300) +612 = NAND(256, 300) +616 = BUFF(201) +619 = BUFF(216) +622 = BUFF(220) +625 = BUFF(239) +628 = BUFF(190) +631 = BUFF(190) +634 = BUFF(194) +637 = BUFF(229) +640 = BUFF(197) +643 = AND(56, 257, 319) +646 = BUFF(232) +649 = BUFF(201) +652 = BUFF(235) +655 = AND(60, 257, 319) +658 = BUFF(263) +661 = BUFF(263) +664 = BUFF(266) +667 = BUFF(266) +670 = BUFF(269) +673 = BUFF(269) +676 = BUFF(272) +679 = BUFF(272) +682 = AND(251, 316) +685 = AND(252, 316) +688 = BUFF(197) +691 = BUFF(197) +694 = BUFF(212) +697 = BUFF(212) +700 = BUFF(247) +703 = BUFF(247) +706 = BUFF(235) +709 = BUFF(235) +712 = BUFF(201) +715 = BUFF(201) +718 = BUFF(206) +721 = BUFF(216) +724 = AND(53, 253, 319) +727 = BUFF(243) +730 = BUFF(220) +733 = BUFF(220) +736 = BUFF(209) +739 = BUFF(216) +742 = BUFF(225) +745 = BUFF(243) +748 = BUFF(212) +751 = BUFF(225) +886 = NOT(682) +887 = NOT(685) +888 = NOT(616) +889 = NOT(619) +890 = NOT(622) +891 = NOT(625) +892 = NOT(631) +893 = NOT(643) +894 = NOT(649) +895 = NOT(652) +896 = NOT(655) +897 = AND(49, 612) +898 = AND(56, 608) +899 = NAND(53, 612) +903 = NAND(60, 608) +907 = NAND(49, 612) +910 = NAND(56, 608) +913 = NOT(661) +914 = NOT(658) +915 = NOT(667) +916 = NOT(664) +917 = NOT(673) +918 = NOT(670) +919 = NOT(679) +920 = NOT(676) +921 = NAND(277, 297, 326, 603) +922 = NAND(280, 297, 326, 603) +923 = NAND(303, 338, 603) +926 = AND(303, 338, 603) +935 = BUFF(556) +938 = NOT(688) +939 = BUFF(556) +942 = NOT(691) +943 = BUFF(562) +946 = NOT(694) +947 = BUFF(562) +950 = NOT(697) +951 = BUFF(568) +954 = NOT(700) +955 = BUFF(568) +958 = NOT(703) +959 = BUFF(574) +962 = BUFF(574) +965 = BUFF(580) +968 = NOT(706) +969 = BUFF(580) +972 = NOT(709) +973 = BUFF(586) +976 = NOT(712) +977 = BUFF(586) +980 = NOT(715) +981 = BUFF(592) +984 = NOT(628) +985 = BUFF(592) +988 = NOT(718) +989 = NOT(721) +990 = NOT(634) +991 = NOT(724) +992 = NOT(727) +993 = NOT(637) +994 = BUFF(595) +997 = NOT(730) +998 = BUFF(595) +1001 = NOT(733) +1002 = NOT(736) +1003 = NOT(739) +1004 = NOT(640) +1005 = NOT(742) +1006 = NOT(745) +1007 = NOT(646) +1008 = NOT(748) +1009 = NOT(751) +1010 = BUFF(559) +1013 = BUFF(559) +1016 = BUFF(565) +1019 = BUFF(565) +1022 = BUFF(571) +1025 = BUFF(571) +1028 = BUFF(577) +1031 = BUFF(577) +1034 = BUFF(583) +1037 = BUFF(583) +1040 = BUFF(589) +1043 = BUFF(589) +1046 = BUFF(598) +1049 = BUFF(598) +1054 = NAND(619, 888) +1055 = NAND(616, 889) +1063 = NAND(625, 890) +1064 = NAND(622, 891) +1067 = NAND(655, 895) +1068 = NAND(652, 896) +1119 = NAND(721, 988) +1120 = NAND(718, 989) +1121 = NAND(727, 991) +1122 = NAND(724, 992) +1128 = NAND(739, 1002) +1129 = NAND(736, 1003) +1130 = NAND(745, 1005) +1131 = NAND(742, 1006) +1132 = NAND(751, 1008) +1133 = NAND(748, 1009) +1148 = NOT(939) +1149 = NOT(935) +1150 = NAND(1054, 1055) +1151 = NOT(943) +1152 = NOT(947) +1153 = NOT(955) +1154 = NOT(951) +1155 = NOT(962) +1156 = NOT(969) +1157 = NOT(977) +1158 = NAND(1063, 1064) +1159 = NOT(985) +1160 = NAND(985, 892) +1161 = NOT(998) +1162 = NAND(1067, 1068) +1163 = NOT(899) +1164 = BUFF(899) +1167 = NOT(903) +1168 = BUFF(903) +1171 = NAND(921, 923) +1188 = NAND(922, 923) +1205 = NOT(1010) +1206 = NAND(1010, 938) +1207 = NOT(1013) +1208 = NAND(1013, 942) +1209 = NOT(1016) +1210 = NAND(1016, 946) +1211 = NOT(1019) +1212 = NAND(1019, 950) +1213 = NOT(1022) +1214 = NAND(1022, 954) +1215 = NOT(1025) +1216 = NAND(1025, 958) +1217 = NOT(1028) +1218 = NOT(959) +1219 = NOT(1031) +1220 = NOT(1034) +1221 = NAND(1034, 968) +1222 = NOT(965) +1223 = NOT(1037) +1224 = NAND(1037, 972) +1225 = NOT(1040) +1226 = NAND(1040, 976) +1227 = NOT(973) +1228 = NOT(1043) +1229 = NAND(1043, 980) +1230 = NOT(981) +1231 = NAND(981, 984) +1232 = NAND(1119, 1120) +1235 = NAND(1121, 1122) +1238 = NOT(1046) +1239 = NAND(1046, 997) +1240 = NOT(994) +1241 = NOT(1049) +1242 = NAND(1049, 1001) +1243 = NAND(1128, 1129) +1246 = NAND(1130, 1131) +1249 = NAND(1132, 1133) +1252 = BUFF(907) +1255 = BUFF(907) +1258 = BUFF(910) +1261 = BUFF(910) +1264 = NOT(1150) +1267 = NAND(631, 1159) +1309 = NAND(688, 1205) +1310 = NAND(691, 1207) +1311 = NAND(694, 1209) +1312 = NAND(697, 1211) +1313 = NAND(700, 1213) +1314 = NAND(703, 1215) +1315 = NAND(706, 1220) +1316 = NAND(709, 1223) +1317 = NAND(712, 1225) +1318 = NAND(715, 1228) +1319 = NOT(1158) +1322 = NAND(628, 1230) +1327 = NAND(730, 1238) +1328 = NAND(733, 1241) +1334 = NOT(1162) +1344 = NAND(1267, 1160) +1345 = NAND(1249, 894) +1346 = NOT(1249) +1348 = NOT(1255) +1349 = NOT(1252) +1350 = NOT(1261) +1351 = NOT(1258) +1352 = NAND(1309, 1206) +1355 = NAND(1310, 1208) +1358 = NAND(1311, 1210) +1361 = NAND(1312, 1212) +1364 = NAND(1313, 1214) +1367 = NAND(1314, 1216) +1370 = NAND(1315, 1221) +1373 = NAND(1316, 1224) +1376 = NAND(1317, 1226) +1379 = NAND(1318, 1229) +1383 = NAND(1322, 1231) +1386 = NOT(1232) +1387 = NAND(1232, 990) +1388 = NOT(1235) +1389 = NAND(1235, 993) +1390 = NAND(1327, 1239) +1393 = NAND(1328, 1242) +1396 = NOT(1243) +1397 = NAND(1243, 1004) +1398 = NOT(1246) +1399 = NAND(1246, 1007) +1409 = NOT(1319) +1412 = NAND(649, 1346) +1413 = NOT(1334) +1416 = BUFF(1264) +1419 = BUFF(1264) +1433 = NAND(634, 1386) +1434 = NAND(637, 1388) +1438 = NAND(640, 1396) +1439 = NAND(646, 1398) +1440 = NOT(1344) +1443 = NAND(1355, 1148) +1444 = NOT(1355) +1445 = NAND(1352, 1149) +1446 = NOT(1352) +1447 = NAND(1358, 1151) +1448 = NOT(1358) +1451 = NAND(1361, 1152) +1452 = NOT(1361) +1453 = NAND(1367, 1153) +1454 = NOT(1367) +1455 = NAND(1364, 1154) +1456 = NOT(1364) +1457 = NAND(1373, 1156) +1458 = NOT(1373) +1459 = NAND(1379, 1157) +1460 = NOT(1379) +1461 = NOT(1383) +1462 = NAND(1393, 1161) +1463 = NOT(1393) +1464 = NAND(1345, 1412) +1468 = NOT(1370) +1469 = NAND(1370, 1222) +1470 = NOT(1376) +1471 = NAND(1376, 1227) +1472 = NAND(1387, 1433) +1475 = NOT(1390) +1476 = NAND(1390, 1240) +1478 = NAND(1389, 1434) +1481 = NAND(1399, 1439) +1484 = NAND(1397, 1438) +1487 = NAND(939, 1444) +1488 = NAND(935, 1446) +1489 = NAND(943, 1448) +1490 = NOT(1419) +1491 = NOT(1416) +1492 = NAND(947, 1452) +1493 = NAND(955, 1454) +1494 = NAND(951, 1456) +1495 = NAND(969, 1458) +1496 = NAND(977, 1460) +1498 = NAND(998, 1463) +1499 = NOT(1440) +1500 = NAND(965, 1468) +1501 = NAND(973, 1470) +1504 = NAND(994, 1475) +1510 = NOT(1464) +1513 = NAND(1443, 1487) +1514 = NAND(1445, 1488) +1517 = NAND(1447, 1489) +1520 = NAND(1451, 1492) +1521 = NAND(1453, 1493) +1522 = NAND(1455, 1494) +1526 = NAND(1457, 1495) +1527 = NAND(1459, 1496) +1528 = NOT(1472) +1529 = NAND(1462, 1498) +1530 = NOT(1478) +1531 = NOT(1481) +1532 = NOT(1484) +1534 = NAND(1471, 1501) +1537 = NAND(1469, 1500) +1540 = NAND(1476, 1504) +1546 = NOT(1513) +1554 = NOT(1521) +1557 = NOT(1526) +1561 = NOT(1520) +1567 = NAND(1484, 1531) +1568 = NAND(1481, 1532) +1569 = NOT(1510) +1571 = NOT(1527) +1576 = NOT(1529) +1588 = BUFF(1522) +1591 = NOT(1534) +1593 = NOT(1537) +1594 = NAND(1540, 1530) +1595 = NOT(1540) +1596 = NAND(1567, 1568) +1600 = BUFF(1517) +1603 = BUFF(1517) +1606 = BUFF(1522) +1609 = BUFF(1522) +1612 = BUFF(1514) +1615 = BUFF(1514) +1620 = BUFF(1557) +1623 = BUFF(1554) +1635 = NOT(1571) +1636 = NAND(1478, 1595) +1638 = NAND(1576, 1569) +1639 = NOT(1576) +1640 = BUFF(1561) +1643 = BUFF(1561) +1647 = BUFF(1546) +1651 = BUFF(1546) +1658 = BUFF(1554) +1661 = BUFF(1557) +1664 = BUFF(1557) +1671 = NAND(1596, 893) +1672 = NOT(1596) +1675 = NOT(1600) +1677 = NOT(1603) +1678 = NAND(1606, 1217) +1679 = NOT(1606) +1680 = NAND(1609, 1219) +1681 = NOT(1609) +1682 = NOT(1612) +1683 = NOT(1615) +1685 = NAND(1594, 1636) +1688 = NAND(1510, 1639) +1697 = BUFF(1588) +1701 = BUFF(1588) +1706 = NAND(643, 1672) +1707 = NOT(1643) +1708 = NAND(1647, 1675) +1709 = NOT(1647) +1710 = NAND(1651, 1677) +1711 = NOT(1651) +1712 = NAND(1028, 1679) +1713 = NAND(1031, 1681) +1714 = BUFF(1620) +1717 = BUFF(1620) +1720 = NAND(1658, 1593) +1721 = NOT(1658) +1723 = NAND(1638, 1688) +1727 = NOT(1661) +1728 = NOT(1640) +1730 = NOT(1664) +1731 = BUFF(1623) +1734 = BUFF(1623) +1740 = NAND(1685, 1528) +1741 = NOT(1685) +1742 = NAND(1671, 1706) +1746 = NAND(1600, 1709) +1747 = NAND(1603, 1711) +1748 = NAND(1678, 1712) +1751 = NAND(1680, 1713) +1759 = NAND(1537, 1721) +1761 = NOT(1697) +1762 = NAND(1697, 1727) +1763 = NOT(1701) +1764 = NAND(1701, 1730) +1768 = NOT(1717) +1769 = NAND(1472, 1741) +1772 = NAND(1723, 1413) +1773 = NOT(1723) +1774 = NAND(1708, 1746) +1777 = NAND(1710, 1747) +1783 = NOT(1731) +1784 = NAND(1731, 1682) +1785 = NOT(1714) +1786 = NOT(1734) +1787 = NAND(1734, 1683) +1788 = NAND(1720, 1759) +1791 = NAND(1661, 1761) +1792 = NAND(1664, 1763) +1795 = NAND(1751, 1155) +1796 = NOT(1751) +1798 = NAND(1740, 1769) +1801 = NAND(1334, 1773) +1802 = NAND(1742, 290) +1807 = NOT(1748) +1808 = NAND(1748, 1218) +1809 = NAND(1612, 1783) +1810 = NAND(1615, 1786) +1812 = NAND(1791, 1762) +1815 = NAND(1792, 1764) +1818 = BUFF(1742) +1821 = NAND(1777, 1490) +1822 = NOT(1777) +1823 = NAND(1774, 1491) +1824 = NOT(1774) +1825 = NAND(962, 1796) +1826 = NAND(1788, 1409) +1827 = NOT(1788) +1830 = NAND(1772, 1801) +1837 = NAND(959, 1807) +1838 = NAND(1809, 1784) +1841 = NAND(1810, 1787) +1848 = NAND(1419, 1822) +1849 = NAND(1416, 1824) +1850 = NAND(1795, 1825) +1852 = NAND(1319, 1827) +1855 = NAND(1815, 1707) +1856 = NOT(1815) +1857 = NOT(1818) +1858 = NAND(1798, 290) +1864 = NOT(1812) +1865 = NAND(1812, 1728) +1866 = BUFF(1798) +1869 = BUFF(1802) +1872 = BUFF(1802) +1875 = NAND(1808, 1837) +1878 = NAND(1821, 1848) +1879 = NAND(1823, 1849) +1882 = NAND(1841, 1768) +1883 = NOT(1841) +1884 = NAND(1826, 1852) +1885 = NAND(1643, 1856) +1889 = NAND(1830, 290) +1895 = NOT(1838) +1896 = NAND(1838, 1785) +1897 = NAND(1640, 1864) +1898 = NOT(1850) +1902 = BUFF(1830) +1910 = NOT(1878) +1911 = NAND(1717, 1883) +1912 = NOT(1884) +1913 = NAND(1855, 1885) +1915 = NOT(1866) +1919 = NAND(1872, 919) +1920 = NOT(1872) +1921 = NAND(1869, 920) +1922 = NOT(1869) +1923 = NOT(1875) +1924 = NAND(1714, 1895) +1927 = BUFF(1858) +1930 = BUFF(1858) +1933 = NAND(1865, 1897) +1936 = NAND(1882, 1911) +1937 = NOT(1898) +1938 = NOT(1902) +1941 = NAND(679, 1920) +1942 = NAND(676, 1922) +1944 = BUFF(1879) +1947 = NOT(1913) +1950 = BUFF(1889) +1953 = BUFF(1889) +1958 = BUFF(1879) +1961 = NAND(1896, 1924) +1965 = AND(1910, 601) +1968 = AND(602, 1912) +1975 = NAND(1930, 917) +1976 = NOT(1930) +1977 = NAND(1927, 918) +1978 = NOT(1927) +1979 = NAND(1919, 1941) +1980 = NAND(1921, 1942) +1985 = NOT(1933) +1987 = NOT(1936) +1999 = NOT(1944) +2000 = NAND(1944, 1937) +2002 = NOT(1947) +2003 = NAND(1947, 1499) +2004 = NAND(1953, 1350) +2005 = NOT(1953) +2006 = NAND(1950, 1351) +2007 = NOT(1950) +2008 = NAND(673, 1976) +2009 = NAND(670, 1978) +2012 = NOT(1979) +2013 = NOT(1958) +2014 = NAND(1958, 1923) +2015 = NOT(1961) +2016 = NAND(1961, 1635) +2018 = NOT(1965) +2019 = NOT(1968) +2020 = NAND(1898, 1999) +2021 = NOT(1987) +2022 = NAND(1987, 1591) +2023 = NAND(1440, 2002) +2024 = NAND(1261, 2005) +2025 = NAND(1258, 2007) +2026 = NAND(1975, 2008) +2027 = NAND(1977, 2009) +2030 = NOT(1980) +2033 = BUFF(1980) +2036 = NAND(1875, 2013) +2037 = NAND(1571, 2015) +2038 = NAND(2020, 2000) +2039 = NAND(1534, 2021) +2040 = NAND(2023, 2003) +2041 = NAND(2004, 2024) +2042 = NAND(2006, 2025) +2047 = NOT(2026) +2052 = NAND(2036, 2014) +2055 = NAND(2037, 2016) +2060 = NOT(2038) +2061 = NAND(2039, 2022) +2062 = NAND(2040, 290) +2067 = NOT(2041) +2068 = NOT(2027) +2071 = BUFF(2027) +2076 = NOT(2052) +2077 = NOT(2055) +2078 = NAND(2060, 290) +2081 = NAND(2061, 290) +2086 = NOT(2042) +2089 = BUFF(2042) +2104 = AND(2030, 2068) +2119 = AND(2033, 2068) +2129 = AND(2030, 2071) +2143 = AND(2033, 2071) +2148 = BUFF(2062) +2151 = BUFF(2062) +2196 = BUFF(2078) +2199 = BUFF(2078) +2202 = BUFF(2081) +2205 = BUFF(2081) +2214 = NAND(2151, 915) +2215 = NOT(2151) +2216 = NAND(2148, 916) +2217 = NOT(2148) +2222 = NAND(2199, 1348) +2223 = NOT(2199) +2224 = NAND(2196, 1349) +2225 = NOT(2196) +2226 = NAND(2205, 913) +2227 = NOT(2205) +2228 = NAND(2202, 914) +2229 = NOT(2202) +2230 = NAND(667, 2215) +2231 = NAND(664, 2217) +2232 = NAND(1255, 2223) +2233 = NAND(1252, 2225) +2234 = NAND(661, 2227) +2235 = NAND(658, 2229) +2236 = NAND(2214, 2230) +2237 = NAND(2216, 2231) +2240 = NAND(2222, 2232) +2241 = NAND(2224, 2233) +2244 = NAND(2226, 2234) +2245 = NAND(2228, 2235) +2250 = NOT(2236) +2253 = NOT(2240) +2256 = NOT(2244) +2257 = NOT(2237) +2260 = BUFF(2237) +2263 = NOT(2241) +2266 = AND(1164, 2241) +2269 = NOT(2245) +2272 = AND(1168, 2245) +2279 = NAND(2067, 2012, 2047, 2250, 899, 2256, 2253, 903) +2286 = BUFF(2266) +2297 = BUFF(2266) +2315 = BUFF(2272) +2326 = BUFF(2272) +2340 = AND(2086, 2257) +2353 = AND(2089, 2257) +2361 = AND(2086, 2260) +2375 = AND(2089, 2260) +2384 = AND(338, 2279, 313, 313) +2385 = AND(1163, 2263) +2386 = AND(1164, 2263) +2426 = AND(1167, 2269) +2427 = AND(1168, 2269) +2537 = NAND(2286, 2315, 2361, 2104, 1171) +2540 = NAND(2286, 2315, 2340, 2129, 1171) +2543 = NAND(2286, 2315, 2340, 2119, 1171) +2546 = NAND(2286, 2315, 2353, 2104, 1171) +2549 = NAND(2297, 2315, 2375, 2119, 1188) +2552 = NAND(2297, 2326, 2361, 2143, 1188) +2555 = NAND(2297, 2326, 2375, 2129, 1188) +2558 = AND(2286, 2315, 2361, 2104, 1171) +2561 = AND(2286, 2315, 2340, 2129, 1171) +2564 = AND(2286, 2315, 2340, 2119, 1171) +2567 = AND(2286, 2315, 2353, 2104, 1171) +2570 = AND(2297, 2315, 2375, 2119, 1188) +2573 = AND(2297, 2326, 2361, 2143, 1188) +2576 = AND(2297, 2326, 2375, 2129, 1188) +2594 = NAND(2286, 2427, 2361, 2129, 1171) +2597 = NAND(2297, 2427, 2361, 2119, 1171) +2600 = NAND(2297, 2427, 2375, 2104, 1171) +2603 = NAND(2297, 2427, 2340, 2143, 1171) +2606 = NAND(2297, 2427, 2353, 2129, 1188) +2611 = NAND(2386, 2326, 2361, 2129, 1188) +2614 = NAND(2386, 2326, 2361, 2119, 1188) +2617 = NAND(2386, 2326, 2375, 2104, 1188) +2620 = NAND(2386, 2326, 2353, 2129, 1188) +2627 = NAND(2297, 2427, 2340, 2104, 926) +2628 = NAND(2386, 2326, 2340, 2104, 926) +2629 = NAND(2386, 2427, 2361, 2104, 926) +2630 = NAND(2386, 2427, 2340, 2129, 926) +2631 = NAND(2386, 2427, 2340, 2119, 926) +2632 = NAND(2386, 2427, 2353, 2104, 926) +2633 = NAND(2386, 2426, 2340, 2104, 926) +2634 = NAND(2385, 2427, 2340, 2104, 926) +2639 = AND(2286, 2427, 2361, 2129, 1171) +2642 = AND(2297, 2427, 2361, 2119, 1171) +2645 = AND(2297, 2427, 2375, 2104, 1171) +2648 = AND(2297, 2427, 2340, 2143, 1171) +2651 = AND(2297, 2427, 2353, 2129, 1188) +2655 = AND(2386, 2326, 2361, 2129, 1188) +2658 = AND(2386, 2326, 2361, 2119, 1188) +2661 = AND(2386, 2326, 2375, 2104, 1188) +2664 = AND(2386, 2326, 2353, 2129, 1188) +2669 = NAND(2558, 534) +2670 = NOT(2558) +2671 = NAND(2561, 535) +2672 = NOT(2561) +2673 = NAND(2564, 536) +2674 = NOT(2564) +2675 = NAND(2567, 537) +2676 = NOT(2567) +2682 = NAND(2570, 543) +2683 = NOT(2570) +2688 = NAND(2573, 548) +2689 = NOT(2573) +2690 = NAND(2576, 549) +2691 = NOT(2576) +2710 = AND(2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634) +2720 = NAND(343, 2670) +2721 = NAND(346, 2672) +2722 = NAND(349, 2674) +2723 = NAND(352, 2676) +2724 = NAND(2639, 538) +2725 = NOT(2639) +2726 = NAND(2642, 539) +2727 = NOT(2642) +2728 = NAND(2645, 540) +2729 = NOT(2645) +2730 = NAND(2648, 541) +2731 = NOT(2648) +2732 = NAND(2651, 542) +2733 = NOT(2651) +2734 = NAND(370, 2683) +2735 = NAND(2655, 544) +2736 = NOT(2655) +2737 = NAND(2658, 545) +2738 = NOT(2658) +2739 = NAND(2661, 546) +2740 = NOT(2661) +2741 = NAND(2664, 547) +2742 = NOT(2664) +2743 = NAND(385, 2689) +2744 = NAND(388, 2691) +2745 = NAND(2537, 2540, 2543, 2546, 2594, 2597, 2600, 2603) +2746 = NAND(2606, 2549, 2611, 2614, 2617, 2620, 2552, 2555) +2747 = AND(2537, 2540, 2543, 2546, 2594, 2597, 2600, 2603) +2750 = AND(2606, 2549, 2611, 2614, 2617, 2620, 2552, 2555) +2753 = NAND(2669, 2720) +2754 = NAND(2671, 2721) +2755 = NAND(2673, 2722) +2756 = NAND(2675, 2723) +2757 = NAND(355, 2725) +2758 = NAND(358, 2727) +2759 = NAND(361, 2729) +2760 = NAND(364, 2731) +2761 = NAND(367, 2733) +2762 = NAND(2682, 2734) +2763 = NAND(373, 2736) +2764 = NAND(376, 2738) +2765 = NAND(379, 2740) +2766 = NAND(382, 2742) +2767 = NAND(2688, 2743) +2768 = NAND(2690, 2744) +2773 = AND(2745, 275) +2776 = AND(2746, 276) +2779 = NAND(2724, 2757) +2780 = NAND(2726, 2758) +2781 = NAND(2728, 2759) +2782 = NAND(2730, 2760) +2783 = NAND(2732, 2761) +2784 = NAND(2735, 2763) +2785 = NAND(2737, 2764) +2786 = NAND(2739, 2765) +2787 = NAND(2741, 2766) +2788 = AND(2747, 2750, 2710) +2789 = NAND(2747, 2750) +2800 = AND(338, 2279, 99, 2788) +2807 = NAND(2773, 2018) +2808 = NOT(2773) +2809 = NAND(2776, 2019) +2810 = NOT(2776) +2811 = NOR(2384, 2800) +2812 = AND(897, 283, 2789) +2815 = AND(76, 283, 2789) +2818 = AND(82, 283, 2789) +2821 = AND(85, 283, 2789) +2824 = AND(898, 283, 2789) +2827 = NAND(1965, 2808) +2828 = NAND(1968, 2810) +2829 = AND(79, 283, 2789) +2843 = NAND(2807, 2827) +2846 = NAND(2809, 2828) +2850 = NAND(2812, 2076) +2851 = NAND(2815, 2077) +2852 = NAND(2818, 1915) +2853 = NAND(2821, 1857) +2854 = NAND(2824, 1938) +2857 = NOT(2812) +2858 = NOT(2815) +2859 = NOT(2818) +2860 = NOT(2821) +2861 = NOT(2824) +2862 = NOT(2829) +2863 = NAND(2829, 1985) +2866 = NAND(2052, 2857) +2867 = NAND(2055, 2858) +2868 = NAND(1866, 2859) +2869 = NAND(1818, 2860) +2870 = NAND(1902, 2861) +2871 = NAND(2843, 886) +2872 = NOT(2843) +2873 = NAND(2846, 887) +2874 = NOT(2846) +2875 = NAND(1933, 2862) +2876 = NAND(2866, 2850) +2877 = NAND(2867, 2851) +2878 = NAND(2868, 2852) +2879 = NAND(2869, 2853) +2880 = NAND(2870, 2854) +2881 = NAND(682, 2872) +2882 = NAND(685, 2874) +2883 = NAND(2875, 2863) +2886 = AND(2876, 550) +2887 = AND(551, 2877) +2888 = AND(553, 2878) +2889 = AND(2879, 554) +2890 = AND(555, 2880) +2891 = NAND(2871, 2881) +2892 = NAND(2873, 2882) +2895 = NAND(2883, 1461) +2896 = NOT(2883) +2897 = NAND(1383, 2896) +2898 = NAND(2895, 2897) +2899 = AND(2898, 552) diff --git a/testcase/c2670.bench b/testcase/c2670.bench new file mode 100755 index 0000000000..79906db29e --- /dev/null +++ b/testcase/c2670.bench @@ -0,0 +1,1574 @@ +# c2670 +# 233 inputs +# 140 outputs +# 321 inverters +# 872 gates ( 529 ANDs + 575 NANDs + 77 ORs + 12 NORs + 196 buffers ) + +INPUT(1) +INPUT(2) +INPUT(3) +INPUT(4) +INPUT(5) +INPUT(6) +INPUT(7) +INPUT(8) +INPUT(11) +INPUT(14) +INPUT(15) +INPUT(16) +INPUT(19) +INPUT(20) +INPUT(21) +INPUT(22) +INPUT(23) +INPUT(24) +INPUT(25) +INPUT(26) +INPUT(27) +INPUT(28) +INPUT(29) +INPUT(32) +INPUT(33) +INPUT(34) +INPUT(35) +INPUT(36) +INPUT(37) +INPUT(40) +INPUT(43) +INPUT(44) +INPUT(47) +INPUT(48) +INPUT(49) +INPUT(50) +INPUT(51) +INPUT(52) +INPUT(53) +INPUT(54) +INPUT(55) +INPUT(56) +INPUT(57) +INPUT(60) +INPUT(61) +INPUT(62) +INPUT(63) +INPUT(64) +INPUT(65) +INPUT(66) +INPUT(67) +INPUT(68) +INPUT(69) +INPUT(72) +INPUT(73) +INPUT(74) +INPUT(75) +INPUT(76) +INPUT(77) +INPUT(78) +INPUT(79) +INPUT(80) +INPUT(81) +INPUT(82) +INPUT(85) +INPUT(86) +INPUT(87) +INPUT(88) +INPUT(89) +INPUT(90) +INPUT(91) +INPUT(92) +INPUT(93) +INPUT(94) +INPUT(95) +INPUT(96) +INPUT(99) +INPUT(100) +INPUT(101) +INPUT(102) +INPUT(103) +INPUT(104) +INPUT(105) +INPUT(106) +INPUT(107) +INPUT(108) +INPUT(111) +INPUT(112) +INPUT(113) +INPUT(114) +INPUT(115) +INPUT(116) +INPUT(117) +INPUT(118) +INPUT(119) +INPUT(120) +INPUT(123) +INPUT(124) +INPUT(125) +INPUT(126) +INPUT(127) +INPUT(128) +INPUT(129) +INPUT(130) +INPUT(131) +INPUT(132) +INPUT(135) +INPUT(136) +INPUT(137) +INPUT(138) +INPUT(139) +INPUT(140) +INPUT(141) +INPUT(142) +INPUT(143) +INPUT(144) +INPUT(145) +INPUT(146) +INPUT(147) +INPUT(148) +INPUT(149) +INPUT(150) +INPUT(151) +INPUT(152) +INPUT(153) +INPUT(154) +INPUT(155) +INPUT(156) +INPUT(157) +INPUT(158) +INPUT(159) +INPUT(160) +INPUT(161) +INPUT(162) +INPUT(163) +INPUT(164) +INPUT(165) +INPUT(166) +INPUT(167) +INPUT(168) +INPUT(169) +INPUT(170) +INPUT(171) +INPUT(172) +INPUT(173) +INPUT(174) +INPUT(175) +INPUT(176) +INPUT(177) +INPUT(178) +INPUT(179) +INPUT(180) +INPUT(181) +INPUT(182) +INPUT(183) +INPUT(184) +INPUT(185) +INPUT(186) +INPUT(187) +INPUT(188) +INPUT(189) +INPUT(190) +INPUT(191) +INPUT(192) +INPUT(193) +INPUT(194) +INPUT(195) +INPUT(196) +INPUT(197) +INPUT(198) +INPUT(199) +INPUT(200) +INPUT(201) +INPUT(202) +INPUT(203) +INPUT(204) +INPUT(205) +INPUT(206) +INPUT(207) +INPUT(208) +INPUT(209) +INPUT(210) +INPUT(211) +INPUT(212) +INPUT(213) +INPUT(214) +INPUT(215) +INPUT(216) +INPUT(217) +INPUT(218) +INPUT(219) +INPUT(224) +INPUT(227) +INPUT(230) +INPUT(231) +INPUT(234) +INPUT(237) +INPUT(241) +INPUT(246) +INPUT(253) +INPUT(256) +INPUT(259) +INPUT(262) +INPUT(263) +INPUT(266) +INPUT(269) +INPUT(272) +INPUT(275) +INPUT(278) +INPUT(281) +INPUT(284) +INPUT(287) +INPUT(290) +INPUT(294) +INPUT(297) +INPUT(301) +INPUT(305) +INPUT(309) +INPUT(313) +INPUT(316) +INPUT(319) +INPUT(322) +INPUT(325) +INPUT(328) +INPUT(331) +INPUT(334) +INPUT(337) +INPUT(340) +INPUT(343) +INPUT(346) +INPUT(349) +INPUT(352) +INPUT(355) + +OUTPUT(143) +OUTPUT(144) +OUTPUT(145) +OUTPUT(146) +OUTPUT(147) +OUTPUT(148) +OUTPUT(149) +OUTPUT(150) +OUTPUT(151) +OUTPUT(152) +OUTPUT(153) +OUTPUT(154) +OUTPUT(155) +OUTPUT(156) +OUTPUT(157) +OUTPUT(158) +OUTPUT(159) +OUTPUT(160) +OUTPUT(161) +OUTPUT(162) +OUTPUT(163) +OUTPUT(164) +OUTPUT(165) +OUTPUT(166) +OUTPUT(167) +OUTPUT(168) +OUTPUT(169) +OUTPUT(170) +OUTPUT(171) +OUTPUT(172) +OUTPUT(173) +OUTPUT(174) +OUTPUT(175) +OUTPUT(176) +OUTPUT(177) +OUTPUT(178) +OUTPUT(179) +OUTPUT(180) +OUTPUT(181) +OUTPUT(182) +OUTPUT(183) +OUTPUT(184) +OUTPUT(185) +OUTPUT(186) +OUTPUT(187) +OUTPUT(188) +OUTPUT(189) +OUTPUT(190) +OUTPUT(191) +OUTPUT(192) +OUTPUT(193) +OUTPUT(194) +OUTPUT(195) +OUTPUT(196) +OUTPUT(197) +OUTPUT(198) +OUTPUT(199) +OUTPUT(200) +OUTPUT(201) +OUTPUT(202) +OUTPUT(203) +OUTPUT(204) +OUTPUT(205) +OUTPUT(206) +OUTPUT(207) +OUTPUT(208) +OUTPUT(209) +OUTPUT(210) +OUTPUT(211) +OUTPUT(212) +OUTPUT(213) +OUTPUT(214) +OUTPUT(215) +OUTPUT(216) +OUTPUT(217) +OUTPUT(218) +OUTPUT(398) +OUTPUT(400) +OUTPUT(401) +OUTPUT(419) +OUTPUT(420) +OUTPUT(456) +OUTPUT(457) +OUTPUT(458) +OUTPUT(487) +OUTPUT(488) +OUTPUT(489) +OUTPUT(490) +OUTPUT(491) +OUTPUT(492) +OUTPUT(493) +OUTPUT(494) +OUTPUT(792) +OUTPUT(799) +OUTPUT(805) +OUTPUT(1026) +OUTPUT(1028) +OUTPUT(1029) +OUTPUT(1269) +OUTPUT(1277) +OUTPUT(1448) +OUTPUT(1726) +OUTPUT(1816) +OUTPUT(1817) +OUTPUT(1818) +OUTPUT(1819) +OUTPUT(1820) +OUTPUT(1821) +OUTPUT(1969) +OUTPUT(1970) +OUTPUT(1971) +OUTPUT(2010) +OUTPUT(2012) +OUTPUT(2014) +OUTPUT(2016) +OUTPUT(2018) +OUTPUT(2020) +OUTPUT(2022) +OUTPUT(2387) +OUTPUT(2388) +OUTPUT(2389) +OUTPUT(2390) +OUTPUT(2496) +OUTPUT(2643) +OUTPUT(2644) +OUTPUT(2891) +OUTPUT(2925) +OUTPUT(2970) +OUTPUT(2971) +OUTPUT(3038) +OUTPUT(3079) +OUTPUT(3546) +OUTPUT(3671) +OUTPUT(3803) +OUTPUT(3804) +OUTPUT(3809) +OUTPUT(3851) +OUTPUT(3875) +OUTPUT(3881) +OUTPUT(3882) + +398 = BUFF(219) +400 = BUFF(219) +401 = BUFF(219) +405 = AND(1, 3) +408 = NOT(230) +419 = BUFF(253) +420 = BUFF(253) +425 = NOT(262) +456 = BUFF(290) +457 = BUFF(290) +458 = BUFF(290) +485 = AND(309, 305, 301, 297) +486 = NOT(405) +487 = NOT(44) +488 = NOT(132) +489 = NOT(82) +490 = NOT(96) +491 = NOT(69) +492 = NOT(120) +493 = NOT(57) +494 = NOT(108) +495 = AND(2, 15, 237) +496 = BUFF(237) +499 = AND(37, 37) +500 = BUFF(219) +503 = BUFF(8) +506 = BUFF(8) +509 = BUFF(227) +521 = BUFF(234) +533 = NOT(241) +537 = NOT(246) +543 = AND(11, 246) +544 = AND(132, 82, 96, 44) +547 = AND(120, 57, 108, 69) +550 = BUFF(227) +562 = BUFF(234) +574 = NOT(256) +578 = NOT(259) +582 = BUFF(319) +594 = BUFF(322) +606 = NOT(328) +607 = NOT(331) +608 = NOT(334) +609 = NOT(337) +610 = NOT(340) +611 = NOT(343) +612 = NOT(352) +613 = BUFF(319) +625 = BUFF(322) +637 = BUFF(16) +643 = BUFF(16) +650 = NOT(355) +651 = AND(7, 237) +655 = NOT(263) +659 = NOT(266) +663 = NOT(269) +667 = NOT(272) +671 = NOT(275) +675 = NOT(278) +679 = NOT(281) +683 = NOT(284) +687 = NOT(287) +693 = BUFF(29) +699 = BUFF(29) +705 = NOT(294) +711 = NOT(297) +715 = NOT(301) +719 = NOT(305) +723 = NOT(309) +727 = NOT(313) +730 = NOT(316) +733 = NOT(346) +734 = NOT(349) +735 = BUFF(259) +738 = BUFF(256) +741 = BUFF(263) +744 = BUFF(269) +747 = BUFF(266) +750 = BUFF(275) +753 = BUFF(272) +756 = BUFF(281) +759 = BUFF(278) +762 = BUFF(287) +765 = BUFF(284) +768 = BUFF(294) +771 = BUFF(301) +774 = BUFF(297) +777 = BUFF(309) +780 = BUFF(305) +783 = BUFF(316) +786 = BUFF(313) +792 = NOT(485) +799 = NOT(495) +800 = NOT(499) +805 = BUFF(500) +900 = NAND(331, 606) +901 = NAND(328, 607) +902 = NAND(337, 608) +903 = NAND(334, 609) +904 = NAND(343, 610) +905 = NAND(340, 611) +998 = NAND(349, 733) +999 = NAND(346, 734) +1026 = AND(94, 500) +1027 = AND(325, 651) +1028 = NOT(651) +1029 = NAND(231, 651) +1032 = NOT(544) +1033 = NOT(547) +1034 = AND(547, 544) +1037 = BUFF(503) +1042 = NOT(509) +1053 = NOT(521) +1064 = AND(80, 509, 521) +1065 = AND(68, 509, 521) +1066 = AND(79, 509, 521) +1067 = AND(78, 509, 521) +1068 = AND(77, 509, 521) +1069 = AND(11, 537) +1070 = BUFF(503) +1075 = NOT(550) +1086 = NOT(562) +1097 = AND(76, 550, 562) +1098 = AND(75, 550, 562) +1099 = AND(74, 550, 562) +1100 = AND(73, 550, 562) +1101 = AND(72, 550, 562) +1102 = NOT(582) +1113 = NOT(594) +1124 = AND(114, 582, 594) +1125 = AND(113, 582, 594) +1126 = AND(112, 582, 594) +1127 = AND(111, 582, 594) +1128 = AND(582, 594) +1129 = NAND(900, 901) +1133 = NAND(902, 903) +1137 = NAND(904, 905) +1140 = NOT(741) +1141 = NAND(741, 612) +1142 = NOT(744) +1143 = NOT(747) +1144 = NOT(750) +1145 = NOT(753) +1146 = NOT(613) +1157 = NOT(625) +1168 = AND(118, 613, 625) +1169 = AND(107, 613, 625) +1170 = AND(117, 613, 625) +1171 = AND(116, 613, 625) +1172 = AND(115, 613, 625) +1173 = NOT(637) +1178 = NOT(643) +1184 = NOT(768) +1185 = NAND(768, 650) +1186 = NOT(771) +1187 = NOT(774) +1188 = NOT(777) +1189 = NOT(780) +1190 = BUFF(506) +1195 = BUFF(506) +1200 = NOT(693) +1205 = NOT(699) +1210 = NOT(735) +1211 = NOT(738) +1212 = NOT(756) +1213 = NOT(759) +1214 = NOT(762) +1215 = NOT(765) +1216 = NAND(998, 999) +1219 = BUFF(574) +1222 = BUFF(578) +1225 = BUFF(655) +1228 = BUFF(659) +1231 = BUFF(663) +1234 = BUFF(667) +1237 = BUFF(671) +1240 = BUFF(675) +1243 = BUFF(679) +1246 = BUFF(683) +1249 = NOT(783) +1250 = NOT(786) +1251 = BUFF(687) +1254 = BUFF(705) +1257 = BUFF(711) +1260 = BUFF(715) +1263 = BUFF(719) +1266 = BUFF(723) +1269 = NOT(1027) +1275 = AND(325, 1032) +1276 = AND(231, 1033) +1277 = BUFF(1034) +1302 = OR(1069, 543) +1351 = NAND(352, 1140) +1352 = NAND(747, 1142) +1353 = NAND(744, 1143) +1354 = NAND(753, 1144) +1355 = NAND(750, 1145) +1395 = NAND(355, 1184) +1396 = NAND(774, 1186) +1397 = NAND(771, 1187) +1398 = NAND(780, 1188) +1399 = NAND(777, 1189) +1422 = NAND(738, 1210) +1423 = NAND(735, 1211) +1424 = NAND(759, 1212) +1425 = NAND(756, 1213) +1426 = NAND(765, 1214) +1427 = NAND(762, 1215) +1440 = NAND(786, 1249) +1441 = NAND(783, 1250) +1448 = NOT(1034) +1449 = NOT(1275) +1450 = NOT(1276) +1451 = AND(93, 1042, 1053) +1452 = AND(55, 509, 1053) +1453 = AND(67, 1042, 521) +1454 = AND(81, 1042, 1053) +1455 = AND(43, 509, 1053) +1456 = AND(56, 1042, 521) +1457 = AND(92, 1042, 1053) +1458 = AND(54, 509, 1053) +1459 = AND(66, 1042, 521) +1460 = AND(91, 1042, 1053) +1461 = AND(53, 509, 1053) +1462 = AND(65, 1042, 521) +1463 = AND(90, 1042, 1053) +1464 = AND(52, 509, 1053) +1465 = AND(64, 1042, 521) +1466 = AND(89, 1075, 1086) +1467 = AND(51, 550, 1086) +1468 = AND(63, 1075, 562) +1469 = AND(88, 1075, 1086) +1470 = AND(50, 550, 1086) +1471 = AND(62, 1075, 562) +1472 = AND(87, 1075, 1086) +1473 = AND(49, 550, 1086) +1474 = AND(1075, 562) +1475 = AND(86, 1075, 1086) +1476 = AND(48, 550, 1086) +1477 = AND(61, 1075, 562) +1478 = AND(85, 1075, 1086) +1479 = AND(47, 550, 1086) +1480 = AND(60, 1075, 562) +1481 = AND(138, 1102, 1113) +1482 = AND(102, 582, 1113) +1483 = AND(126, 1102, 594) +1484 = AND(137, 1102, 1113) +1485 = AND(101, 582, 1113) +1486 = AND(125, 1102, 594) +1487 = AND(136, 1102, 1113) +1488 = AND(100, 582, 1113) +1489 = AND(124, 1102, 594) +1490 = AND(135, 1102, 1113) +1491 = AND(99, 582, 1113) +1492 = AND(123, 1102, 594) +1493 = AND(1102, 1113) +1494 = AND(582, 1113) +1495 = AND(1102, 594) +1496 = NOT(1129) +1499 = NOT(1133) +1502 = NAND(1351, 1141) +1506 = NAND(1352, 1353) +1510 = NAND(1354, 1355) +1513 = BUFF(1137) +1516 = BUFF(1137) +1519 = NOT(1219) +1520 = NOT(1222) +1521 = NOT(1225) +1522 = NOT(1228) +1523 = NOT(1231) +1524 = NOT(1234) +1525 = NOT(1237) +1526 = NOT(1240) +1527 = NOT(1243) +1528 = NOT(1246) +1529 = AND(142, 1146, 1157) +1530 = AND(106, 613, 1157) +1531 = AND(130, 1146, 625) +1532 = AND(131, 1146, 1157) +1533 = AND(95, 613, 1157) +1534 = AND(119, 1146, 625) +1535 = AND(141, 1146, 1157) +1536 = AND(105, 613, 1157) +1537 = AND(129, 1146, 625) +1538 = AND(140, 1146, 1157) +1539 = AND(104, 613, 1157) +1540 = AND(128, 1146, 625) +1541 = AND(139, 1146, 1157) +1542 = AND(103, 613, 1157) +1543 = AND(127, 1146, 625) +1544 = AND(19, 1173) +1545 = AND(4, 1173) +1546 = AND(20, 1173) +1547 = AND(5, 1173) +1548 = AND(21, 1178) +1549 = AND(22, 1178) +1550 = AND(23, 1178) +1551 = AND(6, 1178) +1552 = AND(24, 1178) +1553 = NAND(1395, 1185) +1557 = NAND(1396, 1397) +1561 = NAND(1398, 1399) +1564 = AND(25, 1200) +1565 = AND(32, 1200) +1566 = AND(26, 1200) +1567 = AND(33, 1200) +1568 = AND(27, 1205) +1569 = AND(34, 1205) +1570 = AND(35, 1205) +1571 = AND(28, 1205) +1572 = NOT(1251) +1573 = NOT(1254) +1574 = NOT(1257) +1575 = NOT(1260) +1576 = NOT(1263) +1577 = NOT(1266) +1578 = NAND(1422, 1423) +1581 = NOT(1216) +1582 = NAND(1426, 1427) +1585 = NAND(1424, 1425) +1588 = NAND(1440, 1441) +1591 = AND(1449, 1450) +1596 = OR(1451, 1452, 1453, 1064) +1600 = OR(1454, 1455, 1456, 1065) +1606 = OR(1457, 1458, 1459, 1066) +1612 = OR(1460, 1461, 1462, 1067) +1615 = OR(1463, 1464, 1465, 1068) +1619 = OR(1466, 1467, 1468, 1097) +1624 = OR(1469, 1470, 1471, 1098) +1628 = OR(1472, 1473, 1474, 1099) +1631 = OR(1475, 1476, 1477, 1100) +1634 = OR(1478, 1479, 1480, 1101) +1637 = OR(1481, 1482, 1483, 1124) +1642 = OR(1484, 1485, 1486, 1125) +1647 = OR(1487, 1488, 1489, 1126) +1651 = OR(1490, 1491, 1492, 1127) +1656 = OR(1493, 1494, 1495, 1128) +1676 = OR(1532, 1533, 1534, 1169) +1681 = OR(1535, 1536, 1537, 1170) +1686 = OR(1538, 1539, 1540, 1171) +1690 = OR(1541, 1542, 1543, 1172) +1708 = OR(1529, 1530, 1531, 1168) +1726 = BUFF(1591) +1770 = NOT(1502) +1773 = NOT(1506) +1776 = NOT(1513) +1777 = NOT(1516) +1778 = BUFF(1510) +1781 = BUFF(1510) +1784 = AND(1133, 1129, 1513) +1785 = AND(1499, 1496, 1516) +1795 = NOT(1553) +1798 = NOT(1557) +1801 = BUFF(1561) +1804 = BUFF(1561) +1807 = NOT(1588) +1808 = NOT(1578) +1809 = NAND(1578, 1581) +1810 = NOT(1582) +1811 = NOT(1585) +1813 = AND(1596, 241) +1814 = AND(1606, 241) +1815 = AND(1600, 241) +1816 = NOT(1642) +1817 = NOT(1647) +1818 = NOT(1637) +1819 = NOT(1624) +1820 = NOT(1619) +1821 = NOT(1615) +1822 = AND(496, 224, 36, 1591) +1823 = AND(496, 224, 1591, 486) +1824 = BUFF(1596) +1827 = NOT(1606) +1830 = AND(1600, 537) +1831 = AND(1606, 537) +1832 = AND(1619, 246) +1833 = NOT(1596) +1836 = NOT(1600) +1841 = NOT(1606) +1848 = BUFF(1612) +1852 = BUFF(1615) +1856 = BUFF(1619) +1863 = BUFF(1624) +1870 = BUFF(1628) +1875 = BUFF(1631) +1880 = BUFF(1634) +1885 = NAND(727, 1651) +1888 = NAND(730, 1656) +1891 = BUFF(1686) +1894 = AND(1637, 425) +1897 = NOT(1642) +1908 = AND(1496, 1133, 1776) +1909 = AND(1129, 1499, 1777) +1910 = AND(1600, 637) +1911 = AND(1606, 637) +1912 = AND(1612, 637) +1913 = AND(1615, 637) +1914 = AND(1619, 643) +1915 = AND(1624, 643) +1916 = AND(1628, 643) +1917 = AND(1631, 643) +1918 = AND(1634, 643) +1919 = NOT(1708) +1928 = AND(1676, 693) +1929 = AND(1681, 693) +1930 = AND(1686, 693) +1931 = AND(1690, 693) +1932 = AND(1637, 699) +1933 = AND(1642, 699) +1934 = AND(1647, 699) +1935 = AND(1651, 699) +1936 = BUFF(1600) +1939 = NAND(1216, 1808) +1940 = NAND(1585, 1810) +1941 = NAND(1582, 1811) +1942 = BUFF(1676) +1945 = BUFF(1686) +1948 = BUFF(1681) +1951 = BUFF(1637) +1954 = BUFF(1690) +1957 = BUFF(1647) +1960 = BUFF(1642) +1963 = BUFF(1656) +1966 = BUFF(1651) +1969 = OR(533, 1815) +1970 = NOT(1822) +1971 = NOT(1823) +2010 = BUFF(1848) +2012 = BUFF(1852) +2014 = BUFF(1856) +2016 = BUFF(1863) +2018 = BUFF(1870) +2020 = BUFF(1875) +2022 = BUFF(1880) +2028 = NOT(1778) +2029 = NOT(1781) +2030 = NOR(1908, 1784) +2031 = NOR(1909, 1785) +2032 = AND(1506, 1502, 1778) +2033 = AND(1773, 1770, 1781) +2034 = OR(1571, 1935) +2040 = NOT(1801) +2041 = NOT(1804) +2042 = AND(1557, 1553, 1801) +2043 = AND(1798, 1795, 1804) +2046 = NAND(1939, 1809) +2049 = NAND(1940, 1941) +2052 = OR(1544, 1910) +2055 = OR(1545, 1911) +2058 = OR(1546, 1912) +2061 = OR(1547, 1913) +2064 = OR(1548, 1914) +2067 = OR(1549, 1915) +2070 = OR(1550, 1916) +2073 = OR(1551, 1917) +2076 = OR(1552, 1918) +2079 = OR(1564, 1928) +2095 = OR(1565, 1929) +2098 = OR(1566, 1930) +2101 = OR(1567, 1931) +2104 = OR(1568, 1932) +2107 = OR(1569, 1933) +2110 = OR(1570, 1934) +2113 = AND(1897, 1894, 40) +2119 = NOT(1894) +2120 = NAND(408, 1827) +2125 = AND(1824, 537) +2126 = AND(1852, 246) +2127 = AND(1848, 537) +2128 = NOT(1848) +2135 = NOT(1852) +2141 = NOT(1863) +2144 = NOT(1870) +2147 = NOT(1875) +2150 = NOT(1880) +2153 = AND(727, 1885) +2154 = AND(1885, 1651) +2155 = AND(730, 1888) +2156 = AND(1888, 1656) +2157 = AND(1770, 1506, 2028) +2158 = AND(1502, 1773, 2029) +2171 = NOT(1942) +2172 = NAND(1942, 1919) +2173 = NOT(1945) +2174 = NOT(1948) +2175 = NOT(1951) +2176 = NOT(1954) +2177 = AND(1795, 1557, 2040) +2178 = AND(1553, 1798, 2041) +2185 = BUFF(1836) +2188 = BUFF(1833) +2191 = BUFF(1841) +2194 = NOT(1856) +2197 = NOT(1827) +2200 = NOT(1936) +2201 = BUFF(1836) +2204 = BUFF(1833) +2207 = BUFF(1841) +2210 = BUFF(1824) +2213 = BUFF(1841) +2216 = BUFF(1841) +2219 = NAND(2031, 2030) +2234 = NOT(1957) +2235 = NOT(1960) +2236 = NOT(1963) +2237 = NOT(1966) +2250 = AND(40, 1897, 2119) +2266 = OR(1831, 2126) +2269 = OR(2127, 1832) +2291 = OR(2153, 2154) +2294 = OR(2155, 2156) +2297 = NOR(2157, 2032) +2298 = NOR(2158, 2033) +2300 = NOT(2046) +2301 = NOT(2049) +2302 = NAND(2052, 1519) +2303 = NOT(2052) +2304 = NAND(2055, 1520) +2305 = NOT(2055) +2306 = NAND(2058, 1521) +2307 = NOT(2058) +2308 = NAND(2061, 1522) +2309 = NOT(2061) +2310 = NAND(2064, 1523) +2311 = NOT(2064) +2312 = NAND(2067, 1524) +2313 = NOT(2067) +2314 = NAND(2070, 1525) +2315 = NOT(2070) +2316 = NAND(2073, 1526) +2317 = NOT(2073) +2318 = NAND(2076, 1527) +2319 = NOT(2076) +2320 = NAND(2079, 1528) +2321 = NOT(2079) +2322 = NAND(1708, 2171) +2323 = NAND(1948, 2173) +2324 = NAND(1945, 2174) +2325 = NAND(1954, 2175) +2326 = NAND(1951, 2176) +2327 = NOR(2177, 2042) +2328 = NOR(2178, 2043) +2329 = NAND(2095, 1572) +2330 = NOT(2095) +2331 = NAND(2098, 1573) +2332 = NOT(2098) +2333 = NAND(2101, 1574) +2334 = NOT(2101) +2335 = NAND(2104, 1575) +2336 = NOT(2104) +2337 = NAND(2107, 1576) +2338 = NOT(2107) +2339 = NAND(2110, 1577) +2340 = NOT(2110) +2354 = NAND(1960, 2234) +2355 = NAND(1957, 2235) +2356 = NAND(1966, 2236) +2357 = NAND(1963, 2237) +2358 = AND(2120, 533) +2359 = NOT(2113) +2364 = NOT(2185) +2365 = NOT(2188) +2366 = NOT(2191) +2367 = NOT(2194) +2368 = BUFF(2120) +2372 = NOT(2201) +2373 = NOT(2204) +2374 = NOT(2207) +2375 = NOT(2210) +2376 = NOT(2213) +2377 = NOT(2113) +2382 = BUFF(2113) +2386 = AND(2120, 246) +2387 = BUFF(2266) +2388 = BUFF(2266) +2389 = BUFF(2269) +2390 = BUFF(2269) +2391 = BUFF(2113) +2395 = NOT(2113) +2400 = NAND(2219, 2300) +2403 = NOT(2216) +2406 = NOT(2219) +2407 = NAND(1219, 2303) +2408 = NAND(1222, 2305) +2409 = NAND(1225, 2307) +2410 = NAND(1228, 2309) +2411 = NAND(1231, 2311) +2412 = NAND(1234, 2313) +2413 = NAND(1237, 2315) +2414 = NAND(1240, 2317) +2415 = NAND(1243, 2319) +2416 = NAND(1246, 2321) +2417 = NAND(2322, 2172) +2421 = NAND(2323, 2324) +2425 = NAND(2325, 2326) +2428 = NAND(1251, 2330) +2429 = NAND(1254, 2332) +2430 = NAND(1257, 2334) +2431 = NAND(1260, 2336) +2432 = NAND(1263, 2338) +2433 = NAND(1266, 2340) +2434 = BUFF(2128) +2437 = BUFF(2135) +2440 = BUFF(2144) +2443 = BUFF(2141) +2446 = BUFF(2150) +2449 = BUFF(2147) +2452 = NOT(2197) +2453 = NAND(2197, 2200) +2454 = BUFF(2128) +2457 = BUFF(2144) +2460 = BUFF(2141) +2463 = BUFF(2150) +2466 = BUFF(2147) +2469 = NOT(2120) +2472 = BUFF(2128) +2475 = BUFF(2135) +2478 = BUFF(2128) +2481 = BUFF(2135) +2484 = NAND(2298, 2297) +2487 = NAND(2356, 2357) +2490 = NAND(2354, 2355) +2493 = NAND(2328, 2327) +2496 = OR(2358, 1814) +2503 = NAND(2188, 2364) +2504 = NAND(2185, 2365) +2510 = NAND(2204, 2372) +2511 = NAND(2201, 2373) +2521 = OR(1830, 2386) +2528 = NAND(2046, 2406) +2531 = NOT(2291) +2534 = NOT(2294) +2537 = BUFF(2250) +2540 = BUFF(2250) +2544 = NAND(2302, 2407) +2545 = NAND(2304, 2408) +2546 = NAND(2306, 2409) +2547 = NAND(2308, 2410) +2548 = NAND(2310, 2411) +2549 = NAND(2312, 2412) +2550 = NAND(2314, 2413) +2551 = NAND(2316, 2414) +2552 = NAND(2318, 2415) +2553 = NAND(2320, 2416) +2563 = NAND(2329, 2428) +2564 = NAND(2331, 2429) +2565 = NAND(2333, 2430) +2566 = NAND(2335, 2431) +2567 = NAND(2337, 2432) +2568 = NAND(2339, 2433) +2579 = NAND(1936, 2452) +2603 = BUFF(2359) +2607 = AND(1880, 2377) +2608 = AND(1676, 2377) +2609 = AND(1681, 2377) +2610 = AND(1891, 2377) +2611 = AND(1856, 2382) +2612 = AND(1863, 2382) +2613 = NAND(2503, 2504) +2617 = NOT(2434) +2618 = NAND(2434, 2366) +2619 = NAND(2437, 2367) +2620 = NOT(2437) +2621 = NOT(2368) +2624 = NAND(2510, 2511) +2628 = NOT(2454) +2629 = NAND(2454, 2374) +2630 = NOT(2472) +2631 = AND(1856, 2391) +2632 = AND(1863, 2391) +2633 = AND(1880, 2395) +2634 = AND(1676, 2395) +2635 = AND(1681, 2395) +2636 = AND(1891, 2395) +2638 = NOT(2382) +2643 = BUFF(2521) +2644 = BUFF(2521) +2645 = NOT(2475) +2646 = NOT(2391) +2652 = NAND(2528, 2400) +2655 = NOT(2478) +2656 = NOT(2481) +2659 = BUFF(2359) +2663 = NOT(2484) +2664 = NAND(2484, 2301) +2665 = NOT(2553) +2666 = NOT(2552) +2667 = NOT(2551) +2668 = NOT(2550) +2669 = NOT(2549) +2670 = NOT(2548) +2671 = NOT(2547) +2672 = NOT(2546) +2673 = NOT(2545) +2674 = NOT(2544) +2675 = NOT(2568) +2676 = NOT(2567) +2677 = NOT(2566) +2678 = NOT(2565) +2679 = NOT(2564) +2680 = NOT(2563) +2681 = NOT(2417) +2684 = NOT(2421) +2687 = BUFF(2425) +2690 = BUFF(2425) +2693 = NOT(2493) +2694 = NAND(2493, 1807) +2695 = NOT(2440) +2696 = NOT(2443) +2697 = NOT(2446) +2698 = NOT(2449) +2699 = NOT(2457) +2700 = NOT(2460) +2701 = NOT(2463) +2702 = NOT(2466) +2703 = NAND(2579, 2453) +2706 = NOT(2469) +2707 = NOT(2487) +2708 = NOT(2490) +2709 = AND(2294, 2534) +2710 = AND(2291, 2531) +2719 = NAND(2191, 2617) +2720 = NAND(2194, 2620) +2726 = NAND(2207, 2628) +2729 = BUFF(2537) +2738 = BUFF(2537) +2743 = NOT(2652) +2747 = NAND(2049, 2663) +2748 = AND(2665, 2666, 2667, 2668, 2669) +2749 = AND(2670, 2671, 2672, 2673, 2674) +2750 = AND(2034, 2675) +2751 = AND(2676, 2677, 2678, 2679, 2680) +2760 = NAND(1588, 2693) +2761 = BUFF(2540) +2766 = BUFF(2540) +2771 = NAND(2443, 2695) +2772 = NAND(2440, 2696) +2773 = NAND(2449, 2697) +2774 = NAND(2446, 2698) +2775 = NAND(2460, 2699) +2776 = NAND(2457, 2700) +2777 = NAND(2466, 2701) +2778 = NAND(2463, 2702) +2781 = NAND(2490, 2707) +2782 = NAND(2487, 2708) +2783 = OR(2709, 2534) +2784 = OR(2710, 2531) +2789 = AND(1856, 2638) +2790 = AND(1863, 2638) +2791 = AND(1870, 2638) +2792 = AND(1875, 2638) +2793 = NOT(2613) +2796 = NAND(2719, 2618) +2800 = NAND(2619, 2720) +2803 = NOT(2624) +2806 = NAND(2726, 2629) +2809 = AND(1856, 2646) +2810 = AND(1863, 2646) +2811 = AND(1870, 2646) +2812 = AND(1875, 2646) +2817 = AND(2743, 14) +2820 = BUFF(2603) +2826 = NAND(2747, 2664) +2829 = AND(2748, 2749) +2830 = AND(2750, 2751) +2831 = BUFF(2659) +2837 = NOT(2687) +2838 = NOT(2690) +2839 = AND(2421, 2417, 2687) +2840 = AND(2684, 2681, 2690) +2841 = NAND(2760, 2694) +2844 = BUFF(2603) +2854 = BUFF(2603) +2859 = BUFF(2659) +2869 = BUFF(2659) +2874 = NAND(2773, 2774) +2877 = NAND(2771, 2772) +2880 = NOT(2703) +2881 = NAND(2703, 2706) +2882 = NAND(2777, 2778) +2885 = NAND(2775, 2776) +2888 = NAND(2781, 2782) +2891 = NAND(2783, 2784) +2894 = AND(2607, 2729) +2895 = AND(2608, 2729) +2896 = AND(2609, 2729) +2897 = AND(2610, 2729) +2898 = OR(2789, 2611) +2899 = OR(2790, 2612) +2900 = AND(2791, 1037) +2901 = AND(2792, 1037) +2914 = OR(2809, 2631) +2915 = OR(2810, 2632) +2916 = AND(2811, 1070) +2917 = AND(2812, 1070) +2918 = AND(2633, 2738) +2919 = AND(2634, 2738) +2920 = AND(2635, 2738) +2921 = AND(2636, 2738) +2925 = BUFF(2817) +2931 = AND(2829, 2830, 1302) +2938 = AND(2681, 2421, 2837) +2939 = AND(2417, 2684, 2838) +2963 = NAND(2469, 2880) +2970 = NOT(2841) +2971 = NOT(2826) +2972 = NOT(2894) +2975 = NOT(2895) +2978 = NOT(2896) +2981 = NOT(2897) +2984 = AND(2898, 1037) +2985 = AND(2899, 1037) +2986 = NOT(2900) +2989 = NOT(2901) +2992 = NOT(2796) +2995 = BUFF(2800) +2998 = BUFF(2800) +3001 = BUFF(2806) +3004 = BUFF(2806) +3007 = AND(574, 2820) +3008 = AND(2914, 1070) +3009 = AND(2915, 1070) +3010 = NOT(2916) +3013 = NOT(2917) +3016 = NOT(2918) +3019 = NOT(2919) +3022 = NOT(2920) +3025 = NOT(2921) +3028 = NOT(2817) +3029 = AND(574, 2831) +3030 = NOT(2820) +3035 = AND(578, 2820) +3036 = AND(655, 2820) +3037 = AND(659, 2820) +3038 = BUFF(2931) +3039 = NOT(2831) +3044 = AND(578, 2831) +3045 = AND(655, 2831) +3046 = AND(659, 2831) +3047 = NOR(2938, 2839) +3048 = NOR(2939, 2840) +3049 = NOT(2888) +3050 = NOT(2844) +3053 = AND(663, 2844) +3054 = AND(667, 2844) +3055 = AND(671, 2844) +3056 = AND(675, 2844) +3057 = AND(679, 2854) +3058 = AND(683, 2854) +3059 = AND(687, 2854) +3060 = AND(705, 2854) +3061 = NOT(2859) +3064 = AND(663, 2859) +3065 = AND(667, 2859) +3066 = AND(671, 2859) +3067 = AND(675, 2859) +3068 = AND(679, 2869) +3069 = AND(683, 2869) +3070 = AND(687, 2869) +3071 = AND(705, 2869) +3072 = NOT(2874) +3073 = NOT(2877) +3074 = NOT(2882) +3075 = NOT(2885) +3076 = NAND(2881, 2963) +3079 = NOT(2931) +3088 = NOT(2984) +3091 = NOT(2985) +3110 = NOT(3008) +3113 = NOT(3009) +3137 = AND(3055, 1190) +3140 = AND(3056, 1190) +3143 = AND(3057, 2761) +3146 = AND(3058, 2761) +3149 = AND(3059, 2761) +3152 = AND(3060, 2761) +3157 = AND(3066, 1195) +3160 = AND(3067, 1195) +3163 = AND(3068, 2766) +3166 = AND(3069, 2766) +3169 = AND(3070, 2766) +3172 = AND(3071, 2766) +3175 = NAND(2877, 3072) +3176 = NAND(2874, 3073) +3177 = NAND(2885, 3074) +3178 = NAND(2882, 3075) +3180 = NAND(3048, 3047) +3187 = NOT(2995) +3188 = NOT(2998) +3189 = NOT(3001) +3190 = NOT(3004) +3191 = AND(2796, 2613, 2995) +3192 = AND(2992, 2793, 2998) +3193 = AND(2624, 2368, 3001) +3194 = AND(2803, 2621, 3004) +3195 = NAND(3076, 2375) +3196 = NOT(3076) +3197 = AND(687, 3030) +3208 = AND(687, 3039) +3215 = AND(705, 3030) +3216 = AND(711, 3030) +3217 = AND(715, 3030) +3218 = AND(705, 3039) +3219 = AND(711, 3039) +3220 = AND(715, 3039) +3222 = AND(719, 3050) +3223 = AND(723, 3050) +3230 = AND(719, 3061) +3231 = AND(723, 3061) +3238 = NAND(3175, 3176) +3241 = NAND(3177, 3178) +3244 = BUFF(2981) +3247 = BUFF(2978) +3250 = BUFF(2975) +3253 = BUFF(2972) +3256 = BUFF(2989) +3259 = BUFF(2986) +3262 = BUFF(3025) +3265 = BUFF(3022) +3268 = BUFF(3019) +3271 = BUFF(3016) +3274 = BUFF(3013) +3277 = BUFF(3010) +3281 = AND(2793, 2796, 3187) +3282 = AND(2613, 2992, 3188) +3283 = AND(2621, 2624, 3189) +3284 = AND(2368, 2803, 3190) +3286 = NAND(2210, 3196) +3288 = OR(3197, 3007) +3289 = NAND(3180, 3049) +3291 = AND(3152, 2981) +3293 = AND(3149, 2978) +3295 = AND(3146, 2975) +3296 = AND(2972, 3143) +3299 = AND(3140, 2989) +3301 = AND(3137, 2986) +3302 = OR(3208, 3029) +3304 = AND(3172, 3025) +3306 = AND(3169, 3022) +3308 = AND(3166, 3019) +3309 = AND(3016, 3163) +3312 = AND(3160, 3013) +3314 = AND(3157, 3010) +3315 = OR(3215, 3035) +3318 = OR(3216, 3036) +3321 = OR(3217, 3037) +3324 = OR(3218, 3044) +3327 = OR(3219, 3045) +3330 = OR(3220, 3046) +3333 = NOT(3180) +3334 = OR(3222, 3053) +3335 = OR(3223, 3054) +3336 = OR(3230, 3064) +3337 = OR(3231, 3065) +3340 = BUFF(3152) +3344 = BUFF(3149) +3348 = BUFF(3146) +3352 = BUFF(3143) +3356 = BUFF(3140) +3360 = BUFF(3137) +3364 = BUFF(3091) +3367 = BUFF(3088) +3370 = BUFF(3172) +3374 = BUFF(3169) +3378 = BUFF(3166) +3382 = BUFF(3163) +3386 = BUFF(3160) +3390 = BUFF(3157) +3394 = BUFF(3113) +3397 = BUFF(3110) +3400 = NAND(3195, 3286) +3401 = NOR(3281, 3191) +3402 = NOR(3282, 3192) +3403 = NOR(3283, 3193) +3404 = NOR(3284, 3194) +3405 = NOT(3238) +3406 = NOT(3241) +3409 = AND(3288, 1836) +3410 = NAND(2888, 3333) +3412 = NOT(3244) +3414 = NOT(3247) +3416 = NOT(3250) +3418 = NOT(3253) +3420 = NOT(3256) +3422 = NOT(3259) +3428 = AND(3302, 1836) +3430 = NOT(3262) +3432 = NOT(3265) +3434 = NOT(3268) +3436 = NOT(3271) +3438 = NOT(3274) +3440 = NOT(3277) +3450 = AND(3334, 1190) +3453 = AND(3335, 1190) +3456 = AND(3336, 1195) +3459 = AND(3337, 1195) +3478 = AND(3400, 533) +3479 = AND(3318, 2128) +3480 = AND(3315, 1841) +3481 = NAND(3410, 3289) +3482 = NOT(3340) +3483 = NAND(3340, 3412) +3484 = NOT(3344) +3485 = NAND(3344, 3414) +3486 = NOT(3348) +3487 = NAND(3348, 3416) +3488 = NOT(3352) +3489 = NAND(3352, 3418) +3490 = NOT(3356) +3491 = NAND(3356, 3420) +3492 = NOT(3360) +3493 = NAND(3360, 3422) +3494 = NOT(3364) +3496 = NOT(3367) +3498 = AND(3321, 2135) +3499 = AND(3327, 2128) +3500 = AND(3324, 1841) +3501 = NOT(3370) +3502 = NAND(3370, 3430) +3503 = NOT(3374) +3504 = NAND(3374, 3432) +3505 = NOT(3378) +3506 = NAND(3378, 3434) +3507 = NOT(3382) +3508 = NAND(3382, 3436) +3509 = NOT(3386) +3510 = NAND(3386, 3438) +3511 = NOT(3390) +3512 = NAND(3390, 3440) +3513 = NOT(3394) +3515 = NOT(3397) +3517 = AND(3330, 2135) +3522 = NAND(3402, 3401) +3525 = NAND(3404, 3403) +3528 = BUFF(3318) +3531 = BUFF(3315) +3534 = BUFF(3321) +3537 = BUFF(3327) +3540 = BUFF(3324) +3543 = BUFF(3330) +3546 = OR(3478, 1813) +3551 = NOT(3481) +3552 = NAND(3244, 3482) +3553 = NAND(3247, 3484) +3554 = NAND(3250, 3486) +3555 = NAND(3253, 3488) +3556 = NAND(3256, 3490) +3557 = NAND(3259, 3492) +3558 = AND(3453, 3091) +3559 = AND(3450, 3088) +3563 = NAND(3262, 3501) +3564 = NAND(3265, 3503) +3565 = NAND(3268, 3505) +3566 = NAND(3271, 3507) +3567 = NAND(3274, 3509) +3568 = NAND(3277, 3511) +3569 = AND(3459, 3113) +3570 = AND(3456, 3110) +3576 = BUFF(3453) +3579 = BUFF(3450) +3585 = BUFF(3459) +3588 = BUFF(3456) +3592 = NOT(3522) +3593 = NAND(3522, 3405) +3594 = NOT(3525) +3595 = NAND(3525, 3406) +3596 = NOT(3528) +3597 = NAND(3528, 2630) +3598 = NAND(3531, 2376) +3599 = NOT(3531) +3600 = AND(3551, 800) +3603 = NAND(3552, 3483) +3608 = NAND(3553, 3485) +3612 = NAND(3554, 3487) +3615 = NAND(3555, 3489) +3616 = NAND(3556, 3491) +3622 = NAND(3557, 3493) +3629 = NOT(3534) +3630 = NAND(3534, 2645) +3631 = NOT(3537) +3632 = NAND(3537, 2655) +3633 = NAND(3540, 2403) +3634 = NOT(3540) +3635 = NAND(3563, 3502) +3640 = NAND(3564, 3504) +3644 = NAND(3565, 3506) +3647 = NAND(3566, 3508) +3648 = NAND(3567, 3510) +3654 = NAND(3568, 3512) +3661 = NOT(3543) +3662 = NAND(3543, 2656) +3667 = NAND(3238, 3592) +3668 = NAND(3241, 3594) +3669 = NAND(2472, 3596) +3670 = NAND(2213, 3599) +3671 = BUFF(3600) +3691 = NOT(3576) +3692 = NAND(3576, 3494) +3693 = NOT(3579) +3694 = NAND(3579, 3496) +3695 = NAND(2475, 3629) +3696 = NAND(2478, 3631) +3697 = NAND(2216, 3634) +3716 = NOT(3585) +3717 = NAND(3585, 3513) +3718 = NOT(3588) +3719 = NAND(3588, 3515) +3720 = NAND(2481, 3661) +3721 = NAND(3667, 3593) +3722 = NAND(3668, 3595) +3723 = NAND(3669, 3597) +3726 = NAND(3670, 3598) +3727 = NOT(3600) +3728 = NAND(3364, 3691) +3729 = NAND(3367, 3693) +3730 = NAND(3695, 3630) +3731 = AND(3608, 3615, 3612, 3603) +3732 = AND(3603, 3293) +3733 = AND(3608, 3603, 3295) +3734 = AND(3612, 3603, 3296, 3608) +3735 = AND(3616, 3301) +3736 = AND(3622, 3616, 3558) +3737 = NAND(3696, 3632) +3740 = NAND(3697, 3633) +3741 = NAND(3394, 3716) +3742 = NAND(3397, 3718) +3743 = NAND(3720, 3662) +3744 = AND(3640, 3647, 3644, 3635) +3745 = AND(3635, 3306) +3746 = AND(3640, 3635, 3308) +3747 = AND(3644, 3635, 3309, 3640) +3748 = AND(3648, 3314) +3749 = AND(3654, 3648, 3569) +3750 = NOT(3721) +3753 = AND(3722, 246) +3754 = NAND(3728, 3692) +3758 = NAND(3729, 3694) +3761 = NOT(3731) +3762 = OR(3291, 3732, 3733, 3734) +3767 = NAND(3741, 3717) +3771 = NAND(3742, 3719) +3774 = NOT(3744) +3775 = OR(3304, 3745, 3746, 3747) +3778 = AND(3723, 3480) +3779 = AND(3726, 3723, 3409) +3780 = OR(2125, 3753) +3790 = AND(3750, 800) +3793 = AND(3737, 3500) +3794 = AND(3740, 3737, 3428) +3802 = OR(3479, 3778, 3779) +3803 = BUFF(3780) +3804 = BUFF(3780) +3805 = NOT(3762) +3806 = AND(3622, 3730, 3754, 3616, 3758) +3807 = AND(3754, 3616, 3559, 3622) +3808 = AND(3758, 3754, 3616, 3498, 3622) +3809 = BUFF(3790) +3811 = OR(3499, 3793, 3794) +3812 = NOT(3775) +3813 = AND(3654, 3743, 3767, 3648, 3771) +3814 = AND(3767, 3648, 3570, 3654) +3815 = AND(3771, 3767, 3648, 3517, 3654) +3816 = OR(3299, 3735, 3736, 3807, 3808) +3817 = AND(3806, 3802) +3818 = NAND(3805, 3761) +3819 = NOT(3790) +3820 = OR(3312, 3748, 3749, 3814, 3815) +3821 = AND(3813, 3811) +3822 = NAND(3812, 3774) +3823 = OR(3816, 3817) +3826 = AND(3727, 3819, 2841) +3827 = OR(3820, 3821) +3834 = NOT(3823) +3835 = AND(3818, 3823) +3836 = NOT(3827) +3837 = AND(3822, 3827) +3838 = AND(3762, 3834) +3839 = AND(3775, 3836) +3840 = OR(3838, 3835) +3843 = OR(3839, 3837) +3851 = BUFF(3843) +3852 = NAND(3843, 3840) +3857 = AND(3843, 3852) +3858 = AND(3852, 3840) +3859 = OR(3857, 3858) +3864 = NOT(3859) +3869 = AND(3859, 3864) +3870 = OR(3869, 3864) +3875 = NOT(3870) +3876 = AND(2826, 3028, 3870) +3877 = AND(3826, 3876, 1591) +3881 = BUFF(3877) +3882 = NOT(3877) diff --git a/testcase/c3540.bench b/testcase/c3540.bench new file mode 100755 index 0000000000..af3bfd6f7c --- /dev/null +++ b/testcase/c3540.bench @@ -0,0 +1,1749 @@ +# c3540 +# 50 inputs +# 22 outputs +# 490 inverters +# 1179 gates ( 721 ANDs + 788 NANDs + 92 ORs + 68 NORs + 223 buffers ) + +INPUT(1) +INPUT(13) +INPUT(20) +INPUT(33) +INPUT(41) +INPUT(45) +INPUT(50) +INPUT(58) +INPUT(68) +INPUT(77) +INPUT(87) +INPUT(97) +INPUT(107) +INPUT(116) +INPUT(124) +INPUT(125) +INPUT(128) +INPUT(132) +INPUT(137) +INPUT(143) +INPUT(150) +INPUT(159) +INPUT(169) +INPUT(179) +INPUT(190) +INPUT(200) +INPUT(213) +INPUT(222) +INPUT(223) +INPUT(226) +INPUT(232) +INPUT(238) +INPUT(244) +INPUT(250) +INPUT(257) +INPUT(264) +INPUT(270) +INPUT(274) +INPUT(283) +INPUT(294) +INPUT(303) +INPUT(311) +INPUT(317) +INPUT(322) +INPUT(326) +INPUT(329) +INPUT(330) +INPUT(343) +INPUT(349) +INPUT(350) + +OUTPUT(1713) +OUTPUT(1947) +OUTPUT(3195) +OUTPUT(3833) +OUTPUT(3987) +OUTPUT(4028) +OUTPUT(4145) +OUTPUT(4589) +OUTPUT(4667) +OUTPUT(4815) +OUTPUT(4944) +OUTPUT(5002) +OUTPUT(5045) +OUTPUT(5047) +OUTPUT(5078) +OUTPUT(5102) +OUTPUT(5120) +OUTPUT(5121) +OUTPUT(5192) +OUTPUT(5231) +OUTPUT(5360) +OUTPUT(5361) + +655 = BUFF(50) +665 = NOT(50) +670 = BUFF(58) +679 = NOT(58) +683 = BUFF(68) +686 = NOT(68) +690 = BUFF(68) +699 = BUFF(77) +702 = NOT(77) +706 = BUFF(77) +715 = BUFF(87) +724 = NOT(87) +727 = BUFF(97) +736 = NOT(97) +740 = BUFF(107) +749 = NOT(107) +753 = BUFF(116) +763 = NOT(116) +768 = OR(257, 264) +769 = NOT(1) +772 = BUFF(1) +779 = NOT(1) +782 = BUFF(13) +786 = NOT(13) +793 = AND(13, 20) +794 = NOT(20) +798 = BUFF(20) +803 = NOT(20) +820 = NOT(33) +821 = BUFF(33) +825 = NOT(33) +829 = AND(33, 41) +832 = NOT(41) +835 = OR(41, 45) +836 = BUFF(45) +839 = NOT(45) +842 = NOT(50) +845 = BUFF(58) +848 = NOT(58) +851 = BUFF(68) +854 = NOT(68) +858 = BUFF(87) +861 = NOT(87) +864 = BUFF(97) +867 = NOT(97) +870 = NOT(107) +874 = BUFF(1) +877 = BUFF(68) +880 = BUFF(107) +883 = NOT(20) +886 = BUFF(190) +889 = NOT(200) +890 = AND(20, 200) +891 = NAND(20, 200) +892 = AND(20, 179) +895 = NOT(20) +896 = OR(349, 33) +913 = NAND(1, 13) +914 = NAND(1, 20, 33) +915 = NOT(20) +916 = NOT(33) +917 = BUFF(179) +920 = NOT(213) +923 = BUFF(343) +926 = BUFF(226) +929 = BUFF(232) +932 = BUFF(238) +935 = BUFF(244) +938 = BUFF(250) +941 = BUFF(257) +944 = BUFF(264) +947 = BUFF(270) +950 = BUFF(50) +953 = BUFF(58) +956 = BUFF(58) +959 = BUFF(97) +962 = BUFF(97) +965 = BUFF(330) +1067 = AND(250, 768) +1117 = OR(820, 20) +1179 = OR(895, 169) +1196 = NOT(793) +1197 = OR(915, 1) +1202 = AND(913, 914) +1219 = OR(916, 1) +1250 = AND(842, 848, 854) +1251 = NAND(226, 655) +1252 = NAND(232, 670) +1253 = NAND(238, 690) +1254 = NAND(244, 706) +1255 = NAND(250, 715) +1256 = NAND(257, 727) +1257 = NAND(264, 740) +1258 = NAND(270, 753) +1259 = NOT(926) +1260 = NOT(929) +1261 = NOT(932) +1262 = NOT(935) +1263 = NAND(679, 686) +1264 = NAND(736, 749) +1267 = NAND(683, 699) +1268 = BUFF(665) +1271 = NOT(953) +1272 = NOT(959) +1273 = BUFF(839) +1276 = BUFF(839) +1279 = BUFF(782) +1298 = BUFF(825) +1302 = BUFF(832) +1306 = AND(779, 835) +1315 = AND(779, 836, 832) +1322 = AND(769, 836) +1325 = AND(772, 786, 798) +1328 = NAND(772, 786, 798) +1331 = NAND(772, 786) +1334 = BUFF(874) +1337 = NAND(782, 794, 45) +1338 = NAND(842, 848, 854) +1339 = NOT(956) +1340 = AND(861, 867, 870) +1343 = NAND(861, 867, 870) +1344 = NOT(962) +1345 = NOT(803) +1346 = NOT(803) +1347 = NOT(803) +1348 = NOT(803) +1349 = NOT(803) +1350 = NOT(803) +1351 = NOT(803) +1352 = NOT(803) +1353 = OR(883, 886) +1358 = NOR(883, 886) +1363 = BUFF(892) +1366 = NOT(892) +1369 = BUFF(821) +1384 = BUFF(825) +1401 = NOT(896) +1402 = NOT(896) +1403 = NOT(896) +1404 = NOT(896) +1405 = NOT(896) +1406 = NOT(896) +1407 = NOT(896) +1408 = NOT(896) +1409 = OR(1, 1196) +1426 = NOT(829) +1427 = NOT(829) +1452 = AND(769, 782, 794) +1459 = NOT(917) +1460 = NOT(965) +1461 = OR(920, 923) +1464 = NOR(920, 923) +1467 = NOT(938) +1468 = NOT(941) +1469 = NOT(944) +1470 = NOT(947) +1471 = BUFF(679) +1474 = NOT(950) +1475 = BUFF(686) +1478 = BUFF(702) +1481 = BUFF(724) +1484 = BUFF(736) +1487 = BUFF(749) +1490 = BUFF(763) +1493 = BUFF(877) +1496 = BUFF(877) +1499 = BUFF(880) +1502 = BUFF(880) +1505 = NAND(702, 1250) +1507 = AND(1251, 1252, 1253, 1254) +1508 = AND(1255, 1256, 1257, 1258) +1509 = NAND(929, 1259) +1510 = NAND(926, 1260) +1511 = NAND(935, 1261) +1512 = NAND(932, 1262) +1520 = AND(655, 1263) +1562 = AND(874, 1337) +1579 = NOT(1117) +1580 = AND(803, 1117) +1581 = AND(1338, 1345) +1582 = NOT(1117) +1583 = AND(803, 1117) +1584 = NOT(1117) +1585 = AND(803, 1117) +1586 = AND(854, 1347) +1587 = NOT(1117) +1588 = AND(803, 1117) +1589 = AND(77, 1348) +1590 = NOT(1117) +1591 = AND(803, 1117) +1592 = AND(1343, 1349) +1593 = NOT(1117) +1594 = AND(803, 1117) +1595 = NOT(1117) +1596 = AND(803, 1117) +1597 = AND(870, 1351) +1598 = NOT(1117) +1599 = AND(803, 1117) +1600 = AND(116, 1352) +1643 = AND(222, 1401) +1644 = AND(223, 1402) +1645 = AND(226, 1403) +1646 = AND(232, 1404) +1647 = AND(238, 1405) +1648 = AND(244, 1406) +1649 = AND(250, 1407) +1650 = AND(257, 1408) +1667 = AND(1, 13, 1426) +1670 = AND(1, 13, 1427) +1673 = NOT(1202) +1674 = NOT(1202) +1675 = NOT(1202) +1676 = NOT(1202) +1677 = NOT(1202) +1678 = NOT(1202) +1679 = NOT(1202) +1680 = NOT(1202) +1691 = NAND(941, 1467) +1692 = NAND(938, 1468) +1693 = NAND(947, 1469) +1694 = NAND(944, 1470) +1713 = NOT(1505) +1714 = AND(87, 1264) +1715 = NAND(1509, 1510) +1718 = NAND(1511, 1512) +1721 = NAND(1507, 1508) +1722 = AND(763, 1340) +1725 = NAND(763, 1340) +1726 = NOT(1268) +1727 = NAND(1493, 1271) +1728 = NOT(1493) +1729 = AND(683, 1268) +1730 = NAND(1499, 1272) +1731 = NOT(1499) +1735 = NAND(87, 1264) +1736 = NOT(1273) +1737 = NOT(1276) +1738 = NAND(1325, 821) +1747 = NAND(1325, 825) +1756 = NAND(772, 1279, 798) +1761 = NAND(772, 786, 798, 1302) +1764 = NAND(1496, 1339) +1765 = NOT(1496) +1766 = NAND(1502, 1344) +1767 = NOT(1502) +1768 = NOT(1328) +1769 = NOT(1334) +1770 = NOT(1331) +1787 = AND(845, 1579) +1788 = AND(150, 1580) +1789 = AND(851, 1582) +1790 = AND(159, 1583) +1791 = AND(77, 1584) +1792 = AND(50, 1585) +1793 = AND(858, 1587) +1794 = AND(845, 1588) +1795 = AND(864, 1590) +1796 = AND(851, 1591) +1797 = AND(107, 1593) +1798 = AND(77, 1594) +1799 = AND(116, 1595) +1800 = AND(858, 1596) +1801 = AND(283, 1598) +1802 = AND(864, 1599) +1803 = AND(200, 1363) +1806 = AND(889, 1363) +1809 = AND(890, 1366) +1812 = AND(891, 1366) +1815 = NAND(1298, 1302) +1818 = NAND(821, 1302) +1821 = NAND(772, 1279, 1179) +1824 = NAND(786, 794, 1298) +1833 = NAND(786, 1298) +1842 = NOT(1369) +1843 = NOT(1369) +1844 = NOT(1369) +1845 = NOT(1369) +1846 = NOT(1369) +1847 = NOT(1369) +1848 = NOT(1369) +1849 = NOT(1384) +1850 = AND(1384, 896) +1851 = NOT(1384) +1852 = AND(1384, 896) +1853 = NOT(1384) +1854 = AND(1384, 896) +1855 = NOT(1384) +1856 = AND(1384, 896) +1857 = NOT(1384) +1858 = AND(1384, 896) +1859 = NOT(1384) +1860 = AND(1384, 896) +1861 = NOT(1384) +1862 = AND(1384, 896) +1863 = NOT(1384) +1864 = AND(1384, 896) +1869 = AND(1202, 1409) +1870 = NOR(50, 1409) +1873 = NOT(1306) +1874 = AND(1202, 1409) +1875 = NOR(58, 1409) +1878 = NOT(1306) +1879 = AND(1202, 1409) +1880 = NOR(68, 1409) +1883 = NOT(1306) +1884 = AND(1202, 1409) +1885 = NOR(77, 1409) +1888 = NOT(1306) +1889 = AND(1202, 1409) +1890 = NOR(87, 1409) +1893 = NOT(1322) +1894 = AND(1202, 1409) +1895 = NOR(97, 1409) +1898 = NOT(1315) +1899 = AND(1202, 1409) +1900 = NOR(107, 1409) +1903 = NOT(1315) +1904 = AND(1202, 1409) +1905 = NOR(116, 1409) +1908 = NOT(1315) +1909 = AND(1452, 213) +1912 = NAND(1452, 213) +1913 = AND(1452, 213, 343) +1917 = NAND(1452, 213, 343) +1922 = AND(1452, 213, 343) +1926 = NAND(1452, 213, 343) +1930 = BUFF(1464) +1933 = NAND(1691, 1692) +1936 = NAND(1693, 1694) +1939 = NOT(1471) +1940 = NAND(1471, 1474) +1941 = NOT(1475) +1942 = NOT(1478) +1943 = NOT(1481) +1944 = NOT(1484) +1945 = NOT(1487) +1946 = NOT(1490) +1947 = NOT(1714) +1960 = NAND(953, 1728) +1961 = NAND(959, 1731) +1966 = AND(1520, 1276) +1981 = NAND(956, 1765) +1982 = NAND(962, 1767) +1983 = AND(1067, 1768) +1986 = OR(1581, 1787, 1788) +1987 = OR(1586, 1791, 1792) +1988 = OR(1589, 1793, 1794) +1989 = OR(1592, 1795, 1796) +1990 = OR(1597, 1799, 1800) +1991 = OR(1600, 1801, 1802) +2022 = AND(77, 1849) +2023 = AND(223, 1850) +2024 = AND(87, 1851) +2025 = AND(226, 1852) +2026 = AND(97, 1853) +2027 = AND(232, 1854) +2028 = AND(107, 1855) +2029 = AND(238, 1856) +2030 = AND(116, 1857) +2031 = AND(244, 1858) +2032 = AND(283, 1859) +2033 = AND(250, 1860) +2034 = AND(294, 1861) +2035 = AND(257, 1862) +2036 = AND(303, 1863) +2037 = AND(264, 1864) +2038 = BUFF(1667) +2043 = NOT(1667) +2052 = BUFF(1670) +2057 = NOT(1670) +2068 = AND(50, 1197, 1869) +2073 = AND(58, 1197, 1874) +2078 = AND(68, 1197, 1879) +2083 = AND(77, 1197, 1884) +2088 = AND(87, 1219, 1889) +2093 = AND(97, 1219, 1894) +2098 = AND(107, 1219, 1899) +2103 = AND(116, 1219, 1904) +2121 = NOT(1562) +2122 = NOT(1562) +2123 = NOT(1562) +2124 = NOT(1562) +2125 = NOT(1562) +2126 = NOT(1562) +2127 = NOT(1562) +2128 = NOT(1562) +2133 = NAND(950, 1939) +2134 = NAND(1478, 1941) +2135 = NAND(1475, 1942) +2136 = NAND(1484, 1943) +2137 = NAND(1481, 1944) +2138 = NAND(1490, 1945) +2139 = NAND(1487, 1946) +2141 = NOT(1933) +2142 = NOT(1936) +2143 = NOT(1738) +2144 = AND(1738, 1747) +2145 = NOT(1747) +2146 = NAND(1727, 1960) +2147 = NAND(1730, 1961) +2148 = AND(1722, 1267, 665, 58) +2149 = NOT(1738) +2150 = AND(1738, 1747) +2151 = NOT(1747) +2152 = NOT(1738) +2153 = NOT(1747) +2154 = AND(1738, 1747) +2155 = NOT(1738) +2156 = NOT(1747) +2157 = AND(1738, 1747) +2158 = BUFF(1761) +2175 = BUFF(1761) +2178 = NAND(1764, 1981) +2179 = NAND(1766, 1982) +2180 = NOT(1756) +2181 = AND(1756, 1328) +2183 = NOT(1756) +2184 = AND(1331, 1756) +2185 = NAND(1358, 1812) +2188 = NAND(1358, 1809) +2191 = NAND(1353, 1812) +2194 = NAND(1353, 1809) +2197 = NAND(1358, 1806) +2200 = NAND(1358, 1803) +2203 = NAND(1353, 1806) +2206 = NAND(1353, 1803) +2209 = NOT(1815) +2210 = NOT(1818) +2211 = AND(1815, 1818) +2212 = BUFF(1821) +2221 = BUFF(1821) +2230 = NOT(1833) +2231 = NOT(1833) +2232 = NOT(1833) +2233 = NOT(1833) +2234 = NOT(1824) +2235 = NOT(1824) +2236 = NOT(1824) +2237 = NOT(1824) +2238 = OR(2022, 1643, 2023) +2239 = OR(2024, 1644, 2025) +2240 = OR(2026, 1645, 2027) +2241 = OR(2028, 1646, 2029) +2242 = OR(2030, 1647, 2031) +2243 = OR(2032, 1648, 2033) +2244 = OR(2034, 1649, 2035) +2245 = OR(2036, 1650, 2037) +2270 = AND(1986, 1673) +2277 = AND(1987, 1675) +2282 = AND(1988, 1676) +2287 = AND(1989, 1677) +2294 = AND(1990, 1679) +2299 = AND(1991, 1680) +2304 = BUFF(1917) +2307 = AND(1930, 350) +2310 = NAND(1930, 350) +2313 = BUFF(1715) +2316 = BUFF(1718) +2319 = BUFF(1715) +2322 = BUFF(1718) +2325 = NAND(1940, 2133) +2328 = NAND(2134, 2135) +2331 = NAND(2136, 2137) +2334 = NAND(2138, 2139) +2341 = NAND(1936, 2141) +2342 = NAND(1933, 2142) +2347 = AND(724, 2144) +2348 = AND(2146, 699, 1726) +2349 = AND(753, 2147) +2350 = AND(2148, 1273) +2351 = AND(736, 2150) +2352 = AND(1735, 2153) +2353 = AND(763, 2154) +2354 = AND(1725, 2156) +2355 = AND(749, 2157) +2374 = NOT(2178) +2375 = NOT(2179) +2376 = AND(1520, 2180) +2379 = AND(1721, 2181) +2398 = AND(665, 2211) +2417 = AND(2057, 226, 1873) +2418 = AND(2057, 274, 1306) +2419 = AND(2052, 2238) +2420 = AND(2057, 232, 1878) +2421 = AND(2057, 274, 1306) +2422 = AND(2052, 2239) +2425 = AND(2057, 238, 1883) +2426 = AND(2057, 274, 1306) +2427 = AND(2052, 2240) +2430 = AND(2057, 244, 1888) +2431 = AND(2057, 274, 1306) +2432 = AND(2052, 2241) +2435 = AND(2043, 250, 1893) +2436 = AND(2043, 274, 1322) +2437 = AND(2038, 2242) +2438 = AND(2043, 257, 1898) +2439 = AND(2043, 274, 1315) +2440 = AND(2038, 2243) +2443 = AND(2043, 264, 1903) +2444 = AND(2043, 274, 1315) +2445 = AND(2038, 2244) +2448 = AND(2043, 270, 1908) +2449 = AND(2043, 274, 1315) +2450 = AND(2038, 2245) +2467 = NOT(2313) +2468 = NOT(2316) +2469 = NOT(2319) +2470 = NOT(2322) +2471 = NAND(2341, 2342) +2474 = NOT(2325) +2475 = NOT(2328) +2476 = NOT(2331) +2477 = NOT(2334) +2478 = OR(2348, 1729) +2481 = NOT(2175) +2482 = AND(2175, 1334) +2483 = AND(2349, 2183) +2486 = AND(2374, 1346) +2487 = AND(2375, 1350) +2488 = BUFF(2185) +2497 = BUFF(2188) +2506 = BUFF(2191) +2515 = BUFF(2194) +2524 = BUFF(2197) +2533 = BUFF(2200) +2542 = BUFF(2203) +2551 = BUFF(2206) +2560 = BUFF(2185) +2569 = BUFF(2188) +2578 = BUFF(2191) +2587 = BUFF(2194) +2596 = BUFF(2197) +2605 = BUFF(2200) +2614 = BUFF(2203) +2623 = BUFF(2206) +2632 = NOT(2212) +2633 = AND(2212, 1833) +2634 = NOT(2212) +2635 = AND(2212, 1833) +2636 = NOT(2212) +2637 = AND(2212, 1833) +2638 = NOT(2212) +2639 = AND(2212, 1833) +2640 = NOT(2221) +2641 = AND(2221, 1824) +2642 = NOT(2221) +2643 = AND(2221, 1824) +2644 = NOT(2221) +2645 = AND(2221, 1824) +2646 = NOT(2221) +2647 = AND(2221, 1824) +2648 = OR(2270, 1870, 2068) +2652 = NOR(2270, 1870, 2068) +2656 = OR(2417, 2418, 2419) +2659 = OR(2420, 2421, 2422) +2662 = OR(2277, 1880, 2078) +2666 = NOR(2277, 1880, 2078) +2670 = OR(2425, 2426, 2427) +2673 = OR(2282, 1885, 2083) +2677 = NOR(2282, 1885, 2083) +2681 = OR(2430, 2431, 2432) +2684 = OR(2287, 1890, 2088) +2688 = NOR(2287, 1890, 2088) +2692 = OR(2435, 2436, 2437) +2697 = OR(2438, 2439, 2440) +2702 = OR(2294, 1900, 2098) +2706 = NOR(2294, 1900, 2098) +2710 = OR(2443, 2444, 2445) +2715 = OR(2299, 1905, 2103) +2719 = NOR(2299, 1905, 2103) +2723 = OR(2448, 2449, 2450) +2728 = NOT(2304) +2729 = NOT(2158) +2730 = AND(1562, 2158) +2731 = NOT(2158) +2732 = AND(1562, 2158) +2733 = NOT(2158) +2734 = AND(1562, 2158) +2735 = NOT(2158) +2736 = AND(1562, 2158) +2737 = NOT(2158) +2738 = AND(1562, 2158) +2739 = NOT(2158) +2740 = AND(1562, 2158) +2741 = NOT(2158) +2742 = AND(1562, 2158) +2743 = NOT(2158) +2744 = AND(1562, 2158) +2745 = OR(2376, 1983, 2379) +2746 = NOR(2376, 1983, 2379) +2748 = NAND(2316, 2467) +2749 = NAND(2313, 2468) +2750 = NAND(2322, 2469) +2751 = NAND(2319, 2470) +2754 = NAND(2328, 2474) +2755 = NAND(2325, 2475) +2756 = NAND(2334, 2476) +2757 = NAND(2331, 2477) +2758 = AND(1520, 2481) +2761 = AND(1722, 2482) +2764 = AND(2478, 1770) +2768 = OR(2486, 1789, 1790) +2769 = OR(2487, 1797, 1798) +2898 = AND(665, 2633) +2899 = AND(679, 2635) +2900 = AND(686, 2637) +2901 = AND(702, 2639) +2962 = NOT(2746) +2966 = NAND(2748, 2749) +2967 = NAND(2750, 2751) +2970 = BUFF(2471) +2973 = NAND(2754, 2755) +2977 = NAND(2756, 2757) +2980 = AND(2471, 2143) +2984 = NOT(2488) +2985 = NOT(2497) +2986 = NOT(2506) +2987 = NOT(2515) +2988 = NOT(2524) +2989 = NOT(2533) +2990 = NOT(2542) +2991 = NOT(2551) +2992 = NOT(2488) +2993 = NOT(2497) +2994 = NOT(2506) +2995 = NOT(2515) +2996 = NOT(2524) +2997 = NOT(2533) +2998 = NOT(2542) +2999 = NOT(2551) +3000 = NOT(2488) +3001 = NOT(2497) +3002 = NOT(2506) +3003 = NOT(2515) +3004 = NOT(2524) +3005 = NOT(2533) +3006 = NOT(2542) +3007 = NOT(2551) +3008 = NOT(2488) +3009 = NOT(2497) +3010 = NOT(2506) +3011 = NOT(2515) +3012 = NOT(2524) +3013 = NOT(2533) +3014 = NOT(2542) +3015 = NOT(2551) +3016 = NOT(2488) +3017 = NOT(2497) +3018 = NOT(2506) +3019 = NOT(2515) +3020 = NOT(2524) +3021 = NOT(2533) +3022 = NOT(2542) +3023 = NOT(2551) +3024 = NOT(2488) +3025 = NOT(2497) +3026 = NOT(2506) +3027 = NOT(2515) +3028 = NOT(2524) +3029 = NOT(2533) +3030 = NOT(2542) +3031 = NOT(2551) +3032 = NOT(2488) +3033 = NOT(2497) +3034 = NOT(2506) +3035 = NOT(2515) +3036 = NOT(2524) +3037 = NOT(2533) +3038 = NOT(2542) +3039 = NOT(2551) +3040 = NOT(2488) +3041 = NOT(2497) +3042 = NOT(2506) +3043 = NOT(2515) +3044 = NOT(2524) +3045 = NOT(2533) +3046 = NOT(2542) +3047 = NOT(2551) +3048 = NOT(2560) +3049 = NOT(2569) +3050 = NOT(2578) +3051 = NOT(2587) +3052 = NOT(2596) +3053 = NOT(2605) +3054 = NOT(2614) +3055 = NOT(2623) +3056 = NOT(2560) +3057 = NOT(2569) +3058 = NOT(2578) +3059 = NOT(2587) +3060 = NOT(2596) +3061 = NOT(2605) +3062 = NOT(2614) +3063 = NOT(2623) +3064 = NOT(2560) +3065 = NOT(2569) +3066 = NOT(2578) +3067 = NOT(2587) +3068 = NOT(2596) +3069 = NOT(2605) +3070 = NOT(2614) +3071 = NOT(2623) +3072 = NOT(2560) +3073 = NOT(2569) +3074 = NOT(2578) +3075 = NOT(2587) +3076 = NOT(2596) +3077 = NOT(2605) +3078 = NOT(2614) +3079 = NOT(2623) +3080 = NOT(2560) +3081 = NOT(2569) +3082 = NOT(2578) +3083 = NOT(2587) +3084 = NOT(2596) +3085 = NOT(2605) +3086 = NOT(2614) +3087 = NOT(2623) +3088 = NOT(2560) +3089 = NOT(2569) +3090 = NOT(2578) +3091 = NOT(2587) +3092 = NOT(2596) +3093 = NOT(2605) +3094 = NOT(2614) +3095 = NOT(2623) +3096 = NOT(2560) +3097 = NOT(2569) +3098 = NOT(2578) +3099 = NOT(2587) +3100 = NOT(2596) +3101 = NOT(2605) +3102 = NOT(2614) +3103 = NOT(2623) +3104 = NOT(2560) +3105 = NOT(2569) +3106 = NOT(2578) +3107 = NOT(2587) +3108 = NOT(2596) +3109 = NOT(2605) +3110 = NOT(2614) +3111 = NOT(2623) +3112 = BUFF(2656) +3115 = NOT(2656) +3118 = NOT(2652) +3119 = AND(2768, 1674) +3122 = BUFF(2659) +3125 = NOT(2659) +3128 = BUFF(2670) +3131 = NOT(2670) +3134 = NOT(2666) +3135 = BUFF(2681) +3138 = NOT(2681) +3141 = NOT(2677) +3142 = BUFF(2692) +3145 = NOT(2692) +3148 = NOT(2688) +3149 = AND(2769, 1678) +3152 = BUFF(2697) +3155 = NOT(2697) +3158 = BUFF(2710) +3161 = NOT(2710) +3164 = NOT(2706) +3165 = BUFF(2723) +3168 = NOT(2723) +3171 = NOT(2719) +3172 = AND(1909, 2648) +3175 = AND(1913, 2662) +3178 = AND(1913, 2673) +3181 = AND(1913, 2684) +3184 = AND(1922, 2702) +3187 = AND(1922, 2715) +3190 = NOT(2692) +3191 = NOT(2697) +3192 = NOT(2710) +3193 = NOT(2723) +3194 = AND(2692, 2697, 2710, 2723, 1459) +3195 = NAND(2745, 2962) +3196 = NOT(2966) +3206 = OR(2980, 2145, 2347) +3207 = AND(124, 2984) +3208 = AND(159, 2985) +3209 = AND(150, 2986) +3210 = AND(143, 2987) +3211 = AND(137, 2988) +3212 = AND(132, 2989) +3213 = AND(128, 2990) +3214 = AND(125, 2991) +3215 = AND(125, 2992) +3216 = AND(655, 2993) +3217 = AND(159, 2994) +3218 = AND(150, 2995) +3219 = AND(143, 2996) +3220 = AND(137, 2997) +3221 = AND(132, 2998) +3222 = AND(128, 2999) +3223 = AND(128, 3000) +3224 = AND(670, 3001) +3225 = AND(655, 3002) +3226 = AND(159, 3003) +3227 = AND(150, 3004) +3228 = AND(143, 3005) +3229 = AND(137, 3006) +3230 = AND(132, 3007) +3231 = AND(132, 3008) +3232 = AND(690, 3009) +3233 = AND(670, 3010) +3234 = AND(655, 3011) +3235 = AND(159, 3012) +3236 = AND(150, 3013) +3237 = AND(143, 3014) +3238 = AND(137, 3015) +3239 = AND(137, 3016) +3240 = AND(706, 3017) +3241 = AND(690, 3018) +3242 = AND(670, 3019) +3243 = AND(655, 3020) +3244 = AND(159, 3021) +3245 = AND(150, 3022) +3246 = AND(143, 3023) +3247 = AND(143, 3024) +3248 = AND(715, 3025) +3249 = AND(706, 3026) +3250 = AND(690, 3027) +3251 = AND(670, 3028) +3252 = AND(655, 3029) +3253 = AND(159, 3030) +3254 = AND(150, 3031) +3255 = AND(150, 3032) +3256 = AND(727, 3033) +3257 = AND(715, 3034) +3258 = AND(706, 3035) +3259 = AND(690, 3036) +3260 = AND(670, 3037) +3261 = AND(655, 3038) +3262 = AND(159, 3039) +3263 = AND(159, 3040) +3264 = AND(740, 3041) +3265 = AND(727, 3042) +3266 = AND(715, 3043) +3267 = AND(706, 3044) +3268 = AND(690, 3045) +3269 = AND(670, 3046) +3270 = AND(655, 3047) +3271 = AND(283, 3048) +3272 = AND(670, 3049) +3273 = AND(690, 3050) +3274 = AND(706, 3051) +3275 = AND(715, 3052) +3276 = AND(727, 3053) +3277 = AND(740, 3054) +3278 = AND(753, 3055) +3279 = AND(294, 3056) +3280 = AND(690, 3057) +3281 = AND(706, 3058) +3282 = AND(715, 3059) +3283 = AND(727, 3060) +3284 = AND(740, 3061) +3285 = AND(753, 3062) +3286 = AND(283, 3063) +3287 = AND(303, 3064) +3288 = AND(706, 3065) +3289 = AND(715, 3066) +3290 = AND(727, 3067) +3291 = AND(740, 3068) +3292 = AND(753, 3069) +3293 = AND(283, 3070) +3294 = AND(294, 3071) +3295 = AND(311, 3072) +3296 = AND(715, 3073) +3297 = AND(727, 3074) +3298 = AND(740, 3075) +3299 = AND(753, 3076) +3300 = AND(283, 3077) +3301 = AND(294, 3078) +3302 = AND(303, 3079) +3303 = AND(317, 3080) +3304 = AND(727, 3081) +3305 = AND(740, 3082) +3306 = AND(753, 3083) +3307 = AND(283, 3084) +3308 = AND(294, 3085) +3309 = AND(303, 3086) +3310 = AND(311, 3087) +3311 = AND(322, 3088) +3312 = AND(740, 3089) +3313 = AND(753, 3090) +3314 = AND(283, 3091) +3315 = AND(294, 3092) +3316 = AND(303, 3093) +3317 = AND(311, 3094) +3318 = AND(317, 3095) +3319 = AND(326, 3096) +3320 = AND(753, 3097) +3321 = AND(283, 3098) +3322 = AND(294, 3099) +3323 = AND(303, 3100) +3324 = AND(311, 3101) +3325 = AND(317, 3102) +3326 = AND(322, 3103) +3327 = AND(329, 3104) +3328 = AND(283, 3105) +3329 = AND(294, 3106) +3330 = AND(303, 3107) +3331 = AND(311, 3108) +3332 = AND(317, 3109) +3333 = AND(322, 3110) +3334 = AND(326, 3111) +3383 = AND(3190, 3191, 3192, 3193, 917) +3384 = BUFF(2977) +3387 = AND(3196, 1736) +3388 = AND(2977, 2149) +3389 = AND(2973, 1737) +3390 = NOR(3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214) +3391 = NOR(3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222) +3392 = NOR(3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230) +3393 = NOR(3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238) +3394 = NOR(3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246) +3395 = NOR(3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254) +3396 = NOR(3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262) +3397 = NOR(3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270) +3398 = NOR(3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278) +3399 = NOR(3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286) +3400 = NOR(3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294) +3401 = NOR(3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302) +3402 = NOR(3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310) +3403 = NOR(3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318) +3404 = NOR(3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326) +3405 = NOR(3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334) +3406 = AND(3206, 2641) +3407 = AND(169, 2648, 3112) +3410 = AND(179, 2648, 3115) +3413 = AND(190, 2652, 3115) +3414 = AND(200, 2652, 3112) +3415 = OR(3119, 1875, 2073) +3419 = NOR(3119, 1875, 2073) +3423 = AND(169, 2662, 3128) +3426 = AND(179, 2662, 3131) +3429 = AND(190, 2666, 3131) +3430 = AND(200, 2666, 3128) +3431 = AND(169, 2673, 3135) +3434 = AND(179, 2673, 3138) +3437 = AND(190, 2677, 3138) +3438 = AND(200, 2677, 3135) +3439 = AND(169, 2684, 3142) +3442 = AND(179, 2684, 3145) +3445 = AND(190, 2688, 3145) +3446 = AND(200, 2688, 3142) +3447 = OR(3149, 1895, 2093) +3451 = NOR(3149, 1895, 2093) +3455 = AND(169, 2702, 3158) +3458 = AND(179, 2702, 3161) +3461 = AND(190, 2706, 3161) +3462 = AND(200, 2706, 3158) +3463 = AND(169, 2715, 3165) +3466 = AND(179, 2715, 3168) +3469 = AND(190, 2719, 3168) +3470 = AND(200, 2719, 3165) +3471 = OR(3194, 3383) +3472 = BUFF(2967) +3475 = BUFF(2970) +3478 = BUFF(2967) +3481 = BUFF(2970) +3484 = BUFF(2973) +3487 = BUFF(2973) +3490 = BUFF(3172) +3493 = BUFF(3172) +3496 = BUFF(3175) +3499 = BUFF(3175) +3502 = BUFF(3178) +3505 = BUFF(3178) +3508 = BUFF(3181) +3511 = BUFF(3181) +3514 = BUFF(3184) +3517 = BUFF(3184) +3520 = BUFF(3187) +3523 = BUFF(3187) +3534 = NOR(3387, 2350) +3535 = OR(3388, 2151, 2351) +3536 = NOR(3389, 1966) +3537 = AND(3390, 2209) +3538 = AND(3398, 2210) +3539 = AND(3391, 1842) +3540 = AND(3399, 1369) +3541 = AND(3392, 1843) +3542 = AND(3400, 1369) +3543 = AND(3393, 1844) +3544 = AND(3401, 1369) +3545 = AND(3394, 1845) +3546 = AND(3402, 1369) +3547 = AND(3395, 1846) +3548 = AND(3403, 1369) +3549 = AND(3396, 1847) +3550 = AND(3404, 1369) +3551 = AND(3397, 1848) +3552 = AND(3405, 1369) +3557 = OR(3413, 3414, 3118) +3568 = OR(3429, 3430, 3134) +3573 = OR(3437, 3438, 3141) +3578 = OR(3445, 3446, 3148) +3589 = OR(3461, 3462, 3164) +3594 = OR(3469, 3470, 3171) +3605 = AND(3471, 2728) +3626 = NOT(3478) +3627 = NOT(3481) +3628 = NOT(3487) +3629 = NOT(3484) +3630 = NOT(3472) +3631 = NOT(3475) +3632 = AND(3536, 2152) +3633 = AND(3534, 2155) +3634 = OR(3537, 3538, 2398) +3635 = OR(3539, 3540) +3636 = OR(3541, 3542) +3637 = OR(3543, 3544) +3638 = OR(3545, 3546) +3639 = OR(3547, 3548) +3640 = OR(3549, 3550) +3641 = OR(3551, 3552) +3642 = AND(3535, 2643) +3643 = OR(3407, 3410) +3644 = NOR(3407, 3410) +3645 = AND(169, 3415, 3122) +3648 = AND(179, 3415, 3125) +3651 = AND(190, 3419, 3125) +3652 = AND(200, 3419, 3122) +3653 = NOT(3419) +3654 = OR(3423, 3426) +3657 = NOR(3423, 3426) +3658 = OR(3431, 3434) +3661 = NOR(3431, 3434) +3662 = OR(3439, 3442) +3663 = NOR(3439, 3442) +3664 = AND(169, 3447, 3152) +3667 = AND(179, 3447, 3155) +3670 = AND(190, 3451, 3155) +3671 = AND(200, 3451, 3152) +3672 = NOT(3451) +3673 = OR(3455, 3458) +3676 = NOR(3455, 3458) +3677 = OR(3463, 3466) +3680 = NOR(3463, 3466) +3681 = NOT(3493) +3682 = AND(1909, 3415) +3685 = NOT(3496) +3686 = NOT(3499) +3687 = NOT(3502) +3688 = NOT(3505) +3689 = NOT(3511) +3690 = AND(1922, 3447) +3693 = NOT(3517) +3694 = NOT(3520) +3695 = NOT(3523) +3696 = NOT(3514) +3697 = BUFF(3384) +3700 = BUFF(3384) +3703 = NOT(3490) +3704 = NOT(3508) +3705 = NAND(3475, 3630) +3706 = NAND(3472, 3631) +3707 = NAND(3481, 3626) +3708 = NAND(3478, 3627) +3711 = OR(3632, 2352, 2353) +3712 = OR(3633, 2354, 2355) +3713 = AND(3634, 2632) +3714 = AND(3635, 2634) +3715 = AND(3636, 2636) +3716 = AND(3637, 2638) +3717 = AND(3638, 2640) +3718 = AND(3639, 2642) +3719 = AND(3640, 2644) +3720 = AND(3641, 2646) +3721 = AND(3644, 3557) +3731 = OR(3651, 3652, 3653) +3734 = AND(3657, 3568) +3740 = AND(3661, 3573) +3743 = AND(3663, 3578) +3753 = OR(3670, 3671, 3672) +3756 = AND(3676, 3589) +3762 = AND(3680, 3594) +3765 = NOT(3643) +3766 = NOT(3662) +3773 = NAND(3705, 3706) +3774 = NAND(3707, 3708) +3775 = NAND(3700, 3628) +3776 = NOT(3700) +3777 = NAND(3697, 3629) +3778 = NOT(3697) +3779 = AND(3712, 2645) +3780 = AND(3711, 2647) +3786 = OR(3645, 3648) +3789 = NOR(3645, 3648) +3800 = OR(3664, 3667) +3803 = NOR(3664, 3667) +3809 = AND(3654, 1917) +3812 = AND(3658, 1917) +3815 = AND(3673, 1926) +3818 = AND(3677, 1926) +3821 = BUFF(3682) +3824 = BUFF(3682) +3827 = BUFF(3690) +3830 = BUFF(3690) +3833 = NAND(3773, 3774) +3834 = NAND(3487, 3776) +3835 = NAND(3484, 3778) +3838 = AND(3789, 3731) +3845 = AND(3803, 3753) +3850 = BUFF(3721) +3855 = BUFF(3734) +3858 = BUFF(3740) +3861 = BUFF(3743) +3865 = BUFF(3756) +3868 = BUFF(3762) +3884 = NAND(3775, 3834) +3885 = NAND(3777, 3835) +3894 = NAND(3721, 3786) +3895 = NAND(3743, 3800) +3898 = NOT(3821) +3899 = NOT(3824) +3906 = NOT(3830) +3911 = NOT(3827) +3912 = AND(3786, 1912) +3913 = BUFF(3812) +3916 = AND(3800, 1917) +3917 = BUFF(3818) +3920 = NOT(3809) +3921 = BUFF(3818) +3924 = NOT(3884) +3925 = NOT(3885) +3926 = AND(3721, 3838, 3734, 3740) +3930 = NAND(3721, 3838, 3654) +3931 = NAND(3658, 3838, 3734, 3721) +3932 = AND(3743, 3845, 3756, 3762) +3935 = NAND(3743, 3845, 3673) +3936 = NAND(3677, 3845, 3756, 3743) +3937 = BUFF(3838) +3940 = BUFF(3845) +3947 = NOT(3912) +3948 = NOT(3916) +3950 = BUFF(3850) +3953 = BUFF(3850) +3956 = BUFF(3855) +3959 = BUFF(3855) +3962 = BUFF(3858) +3965 = BUFF(3858) +3968 = BUFF(3861) +3971 = BUFF(3861) +3974 = BUFF(3865) +3977 = BUFF(3865) +3980 = BUFF(3868) +3983 = BUFF(3868) +3987 = NAND(3924, 3925) +3992 = NAND(3765, 3894, 3930, 3931) +3996 = NAND(3766, 3895, 3935, 3936) +4013 = NOT(3921) +4028 = AND(3932, 3926) +4029 = NAND(3953, 3681) +4030 = NAND(3959, 3686) +4031 = NAND(3965, 3688) +4032 = NAND(3971, 3689) +4033 = NAND(3977, 3693) +4034 = NAND(3983, 3695) +4035 = BUFF(3926) +4042 = NOT(3953) +4043 = NOT(3956) +4044 = NAND(3956, 3685) +4045 = NOT(3959) +4046 = NOT(3962) +4047 = NAND(3962, 3687) +4048 = NOT(3965) +4049 = NOT(3971) +4050 = NOT(3977) +4051 = NOT(3980) +4052 = NAND(3980, 3694) +4053 = NOT(3983) +4054 = NOT(3974) +4055 = NAND(3974, 3696) +4056 = AND(3932, 2304) +4057 = NOT(3950) +4058 = NAND(3950, 3703) +4059 = BUFF(3937) +4062 = BUFF(3937) +4065 = NOT(3968) +4066 = NAND(3968, 3704) +4067 = BUFF(3940) +4070 = BUFF(3940) +4073 = NAND(3926, 3996) +4074 = NOT(3992) +4075 = NAND(3493, 4042) +4076 = NAND(3499, 4045) +4077 = NAND(3505, 4048) +4078 = NAND(3511, 4049) +4079 = NAND(3517, 4050) +4080 = NAND(3523, 4053) +4085 = NAND(3496, 4043) +4086 = NAND(3502, 4046) +4088 = NAND(3520, 4051) +4090 = NAND(3514, 4054) +4091 = AND(3996, 1926) +4094 = OR(3605, 4056) +4098 = NAND(3490, 4057) +4101 = NAND(3508, 4065) +4104 = AND(4073, 4074) +4105 = NAND(4075, 4029) +4106 = NAND(4062, 3899) +4107 = NAND(4076, 4030) +4108 = NAND(4077, 4031) +4109 = NAND(4078, 4032) +4110 = NAND(4070, 3906) +4111 = NAND(4079, 4033) +4112 = NAND(4080, 4034) +4113 = NOT(4059) +4114 = NAND(4059, 3898) +4115 = NOT(4062) +4116 = NAND(4085, 4044) +4119 = NAND(4086, 4047) +4122 = NOT(4070) +4123 = NAND(4088, 4052) +4126 = NOT(4067) +4127 = NAND(4067, 3911) +4128 = NAND(4090, 4055) +4139 = NAND(4098, 4058) +4142 = NAND(4101, 4066) +4145 = NOT(4104) +4146 = NOT(4105) +4147 = NAND(3824, 4115) +4148 = NOT(4107) +4149 = NOT(4108) +4150 = NOT(4109) +4151 = NAND(3830, 4122) +4152 = NOT(4111) +4153 = NOT(4112) +4154 = NAND(3821, 4113) +4161 = NAND(3827, 4126) +4167 = BUFF(4091) +4174 = BUFF(4094) +4182 = BUFF(4091) +4186 = AND(330, 4094) +4189 = AND(4146, 2230) +4190 = NAND(4147, 4106) +4191 = AND(4148, 2232) +4192 = AND(4149, 2233) +4193 = AND(4150, 2234) +4194 = NAND(4151, 4110) +4195 = AND(4152, 2236) +4196 = AND(4153, 2237) +4197 = NAND(4154, 4114) +4200 = BUFF(4116) +4203 = BUFF(4116) +4209 = BUFF(4119) +4213 = BUFF(4119) +4218 = NAND(4161, 4127) +4223 = BUFF(4123) +4238 = AND(4128, 3917) +4239 = NOT(4139) +4241 = NOT(4142) +4242 = AND(330, 4123) +4247 = BUFF(4128) +4251 = NOR(3713, 4189, 2898) +4252 = NOT(4190) +4253 = NOR(3715, 4191, 2900) +4254 = NOR(3716, 4192, 2901) +4255 = NOR(3717, 4193, 3406) +4256 = NOT(4194) +4257 = NOR(3719, 4195, 3779) +4258 = NOR(3720, 4196, 3780) +4283 = AND(4167, 4035) +4284 = AND(4174, 4035) +4287 = OR(3815, 4238) +4291 = NOT(4186) +4295 = NOT(4167) +4296 = BUFF(4167) +4299 = NOT(4182) +4303 = AND(4252, 2231) +4304 = AND(4256, 2235) +4305 = BUFF(4197) +4310 = OR(3992, 4283) +4316 = AND(4174, 4213, 4203) +4317 = AND(4174, 4209) +4318 = AND(4223, 4128, 4218) +4319 = AND(4223, 4128) +4322 = AND(4167, 4209) +4325 = NAND(4203, 3913) +4326 = NAND(4203, 4213, 4167) +4327 = NAND(4218, 3815) +4328 = NAND(4218, 4128, 3917) +4329 = NAND(4247, 4013) +4330 = NOT(4247) +4331 = AND(330, 4094, 4295) +4335 = AND(4251, 2730) +4338 = AND(4253, 2734) +4341 = AND(4254, 2736) +4344 = AND(4255, 2738) +4347 = AND(4257, 2742) +4350 = AND(4258, 2744) +4353 = BUFF(4197) +4356 = BUFF(4203) +4359 = BUFF(4209) +4362 = BUFF(4218) +4365 = BUFF(4242) +4368 = BUFF(4242) +4371 = AND(4223, 4223) +4376 = NOR(3714, 4303, 2899) +4377 = NOR(3718, 4304, 3642) +4387 = AND(330, 4317) +4390 = AND(330, 4318) +4393 = NAND(3921, 4330) +4398 = BUFF(4287) +4413 = BUFF(4284) +4416 = NAND(3920, 4325, 4326) +4421 = OR(3812, 4322) +4427 = NAND(3948, 4327, 4328) +4430 = BUFF(4287) +4435 = AND(330, 4316) +4442 = OR(4331, 4296) +4443 = AND(4174, 4305, 4203, 4213) +4446 = NAND(4305, 3809) +4447 = NAND(4305, 4200, 3913) +4448 = NAND(4305, 4200, 4213, 4167) +4452 = NOT(4356) +4458 = NAND(4329, 4393) +4461 = NOT(4365) +4462 = NOT(4368) +4463 = NAND(4371, 1460) +4464 = NOT(4371) +4465 = BUFF(4310) +4468 = NOR(4331, 4296) +4472 = AND(4376, 2732) +4475 = AND(4377, 2740) +4479 = BUFF(4310) +4484 = NOT(4353) +4486 = NOT(4359) +4487 = NAND(4359, 4299) +4491 = NOT(4362) +4493 = AND(330, 4319) +4496 = NOT(4398) +4497 = AND(4287, 4398) +4498 = AND(4442, 1769) +4503 = NAND(3947, 4446, 4447, 4448) +4506 = NOT(4413) +4507 = NOT(4435) +4508 = NOT(4421) +4509 = NAND(4421, 4452) +4510 = NOT(4427) +4511 = NAND(4427, 4241) +4515 = NAND(965, 4464) +4526 = NOT(4416) +4527 = NAND(4416, 4484) +4528 = NAND(4182, 4486) +4529 = NOT(4430) +4530 = NAND(4430, 4491) +4531 = BUFF(4387) +4534 = BUFF(4387) +4537 = BUFF(4390) +4540 = BUFF(4390) +4545 = AND(330, 4319, 4496) +4549 = AND(330, 4443) +4552 = NAND(4356, 4508) +4555 = NAND(4142, 4510) +4558 = NOT(4493) +4559 = NAND(4463, 4515) +4562 = NOT(4465) +4563 = AND(4310, 4465) +4564 = BUFF(4468) +4568 = NOT(4479) +4569 = BUFF(4443) +4572 = NAND(4353, 4526) +4573 = NAND(4362, 4529) +4576 = NAND(4487, 4528) +4581 = BUFF(4458) +4584 = BUFF(4458) +4587 = OR(2758, 4498, 2761) +4588 = NOR(2758, 4498, 2761) +4589 = OR(4545, 4497) +4593 = NAND(4552, 4509) +4596 = NOT(4531) +4597 = NOT(4534) +4599 = NAND(4555, 4511) +4602 = NOT(4537) +4603 = NOT(4540) +4608 = AND(330, 4284, 4562) +4613 = BUFF(4503) +4616 = BUFF(4503) +4619 = NAND(4572, 4527) +4623 = NAND(4573, 4530) +4628 = NOT(4588) +4629 = NAND(4569, 4506) +4630 = NOT(4569) +4635 = NOT(4576) +4636 = NAND(4576, 4291) +4640 = NOT(4581) +4641 = NAND(4581, 4461) +4642 = NOT(4584) +4643 = NAND(4584, 4462) +4644 = NOR(4608, 4563) +4647 = AND(4559, 2128) +4650 = AND(4559, 2743) +4656 = BUFF(4549) +4659 = BUFF(4549) +4664 = BUFF(4564) +4667 = AND(4587, 4628) +4668 = NAND(4413, 4630) +4669 = NOT(4616) +4670 = NAND(4616, 4239) +4673 = NOT(4619) +4674 = NAND(4619, 4507) +4675 = NAND(4186, 4635) +4676 = NOT(4623) +4677 = NAND(4623, 4558) +4678 = NAND(4365, 4640) +4679 = NAND(4368, 4642) +4687 = NOT(4613) +4688 = NAND(4613, 4568) +4691 = BUFF(4593) +4694 = BUFF(4593) +4697 = BUFF(4599) +4700 = BUFF(4599) +4704 = NAND(4629, 4668) +4705 = NAND(4139, 4669) +4706 = NOT(4656) +4707 = NOT(4659) +4708 = NAND(4435, 4673) +4711 = NAND(4675, 4636) +4716 = NAND(4493, 4676) +4717 = NAND(4678, 4641) +4721 = NAND(4679, 4643) +4722 = BUFF(4644) +4726 = NOT(4664) +4727 = OR(4647, 4650, 4350) +4730 = NOR(4647, 4650, 4350) +4733 = NAND(4479, 4687) +4740 = NAND(4705, 4670) +4743 = NAND(4708, 4674) +4747 = NOT(4691) +4748 = NAND(4691, 4596) +4749 = NOT(4694) +4750 = NAND(4694, 4597) +4753 = NOT(4697) +4754 = NAND(4697, 4602) +4755 = NOT(4700) +4756 = NAND(4700, 4603) +4757 = NAND(4716, 4677) +4769 = NAND(4733, 4688) +4772 = AND(330, 4704) +4775 = NOT(4721) +4778 = NOT(4730) +4786 = NAND(4531, 4747) +4787 = NAND(4534, 4749) +4788 = NAND(4537, 4753) +4789 = NAND(4540, 4755) +4794 = AND(4711, 2124) +4797 = AND(4711, 2735) +4800 = AND(4717, 2127) +4805 = BUFF(4722) +4808 = AND(4717, 4468) +4812 = BUFF(4727) +4815 = AND(4727, 4778) +4816 = NOT(4769) +4817 = NOT(4772) +4818 = NAND(4786, 4748) +4822 = NAND(4787, 4750) +4823 = NAND(4788, 4754) +4826 = NAND(4789, 4756) +4829 = NAND(4775, 4726) +4830 = NOT(4775) +4831 = AND(4743, 2122) +4838 = AND(4757, 2126) +4844 = BUFF(4740) +4847 = BUFF(4740) +4850 = BUFF(4743) +4854 = BUFF(4757) +4859 = NAND(4772, 4816) +4860 = NAND(4769, 4817) +4868 = NOT(4826) +4870 = NOT(4805) +4872 = NOT(4808) +4873 = NAND(4664, 4830) +4876 = OR(4794, 4797, 4341) +4880 = NOR(4794, 4797, 4341) +4885 = NOT(4812) +4889 = NOT(4822) +4895 = NAND(4859, 4860) +4896 = NOT(4844) +4897 = NAND(4844, 4706) +4898 = NOT(4847) +4899 = NAND(4847, 4707) +4900 = NOR(4868, 4564) +4901 = AND(4717, 4757, 4823, 4564) +4902 = NOT(4850) +4904 = NOT(4854) +4905 = NAND(4854, 4872) +4906 = NAND(4873, 4829) +4907 = AND(4818, 2123) +4913 = AND(4823, 2125) +4916 = AND(4818, 4644) +4920 = NOT(4880) +4921 = AND(4895, 2184) +4924 = NAND(4656, 4896) +4925 = NAND(4659, 4898) +4926 = OR(4900, 4901) +4928 = NAND(4889, 4870) +4929 = NOT(4889) +4930 = NAND(4808, 4904) +4931 = NOT(4906) +4937 = BUFF(4876) +4940 = BUFF(4876) +4944 = AND(4876, 4920) +4946 = NAND(4924, 4897) +4949 = NAND(4925, 4899) +4950 = NAND(4916, 4902) +4951 = NOT(4916) +4952 = NAND(4805, 4929) +4953 = NAND(4930, 4905) +4954 = AND(4926, 2737) +4957 = AND(4931, 2741) +4964 = OR(2764, 2483, 4921) +4965 = NOR(2764, 2483, 4921) +4968 = NOT(4949) +4969 = NAND(4850, 4951) +4970 = NAND(4952, 4928) +4973 = AND(4953, 2739) +4978 = NOT(4937) +4979 = NOT(4940) +4980 = NOT(4965) +4981 = NOR(4968, 4722) +4982 = AND(4818, 4743, 4946, 4722) +4983 = NAND(4950, 4969) +4984 = NOT(4970) +4985 = AND(4946, 2121) +4988 = OR(4913, 4954, 4344) +4991 = NOR(4913, 4954, 4344) +4996 = OR(4800, 4957, 4347) +4999 = NOR(4800, 4957, 4347) +5002 = AND(4964, 4980) +5007 = OR(4981, 4982) +5010 = AND(4983, 2731) +5013 = AND(4984, 2733) +5018 = OR(4838, 4973, 4475) +5021 = NOR(4838, 4973, 4475) +5026 = NOT(4991) +5029 = NOT(4999) +5030 = AND(5007, 2729) +5039 = BUFF(4996) +5042 = BUFF(4988) +5045 = AND(4988, 5026) +5046 = NOT(5021) +5047 = AND(4996, 5029) +5050 = OR(4831, 5010, 4472) +5055 = NOR(4831, 5010, 4472) +5058 = OR(4907, 5013, 4338) +5061 = NOR(4907, 5013, 4338) +5066 = AND(4730, 4999, 5021, 4991) +5070 = BUFF(5018) +5078 = AND(5018, 5046) +5080 = OR(4985, 5030, 4335) +5085 = NOR(4985, 5030, 4335) +5094 = NAND(5039, 4885) +5095 = NOT(5039) +5097 = NOT(5042) +5102 = AND(5050, 5050) +5103 = NOT(5061) +5108 = NAND(4812, 5095) +5109 = NOT(5070) +5110 = NAND(5070, 5097) +5111 = BUFF(5058) +5114 = AND(5050, 1461) +5117 = BUFF(5050) +5120 = AND(5080, 5080) +5121 = AND(5058, 5103) +5122 = NAND(5094, 5108) +5125 = NAND(5042, 5109) +5128 = AND(1461, 5080) +5133 = AND(4880, 5061, 5055, 5085) +5136 = AND(5055, 5085, 1464) +5139 = BUFF(5080) +5145 = NAND(5125, 5110) +5151 = BUFF(5111) +5154 = BUFF(5111) +5159 = NOT(5117) +5160 = BUFF(5114) +5163 = BUFF(5114) +5166 = AND(5066, 5133) +5173 = AND(5066, 5133) +5174 = BUFF(5122) +5177 = BUFF(5122) +5182 = NOT(5139) +5183 = NAND(5139, 5159) +5184 = BUFF(5128) +5188 = BUFF(5128) +5192 = NOT(5166) +5193 = NOR(5136, 5173) +5196 = NAND(5151, 4978) +5197 = NOT(5151) +5198 = NAND(5154, 4979) +5199 = NOT(5154) +5201 = NOT(5160) +5203 = NOT(5163) +5205 = BUFF(5145) +5209 = BUFF(5145) +5212 = NAND(5117, 5182) +5215 = AND(213, 5193) +5217 = NOT(5174) +5219 = NOT(5177) +5220 = NAND(4937, 5197) +5221 = NAND(4940, 5199) +5222 = NOT(5184) +5223 = NAND(5184, 5201) +5224 = NAND(5188, 5203) +5225 = NOT(5188) +5228 = NAND(5183, 5212) +5231 = NOT(5215) +5232 = NAND(5205, 5217) +5233 = NOT(5205) +5234 = NAND(5209, 5219) +5235 = NOT(5209) +5236 = NAND(5196, 5220) +5240 = NAND(5198, 5221) +5242 = NAND(5160, 5222) +5243 = NAND(5163, 5225) +5245 = NAND(5174, 5233) +5246 = NAND(5177, 5235) +5250 = NOT(5240) +5253 = NOT(5228) +5254 = NAND(5242, 5223) +5257 = NAND(5243, 5224) +5258 = NAND(5232, 5245) +5261 = NAND(5234, 5246) +5266 = NOT(5257) +5269 = BUFF(5236) +5277 = AND(5236, 5254, 2307) +5278 = AND(5250, 5254, 2310) +5279 = NOT(5261) +5283 = NOT(5269) +5284 = NAND(5269, 5253) +5285 = AND(5236, 5266, 2310) +5286 = AND(5250, 5266, 2307) +5289 = BUFF(5258) +5292 = BUFF(5258) +5295 = NAND(5228, 5283) +5298 = OR(5277, 5285, 5278, 5286) +5303 = BUFF(5279) +5306 = BUFF(5279) +5309 = NAND(5295, 5284) +5312 = NOT(5292) +5313 = NOT(5289) +5322 = NOT(5306) +5323 = NOT(5303) +5324 = BUFF(5298) +5327 = BUFF(5298) +5332 = BUFF(5309) +5335 = BUFF(5309) +5340 = NAND(5324, 5323) +5341 = NAND(5327, 5322) +5344 = NOT(5327) +5345 = NOT(5324) +5348 = NAND(5332, 5313) +5349 = NAND(5335, 5312) +5350 = NAND(5303, 5345) +5351 = NAND(5306, 5344) +5352 = NOT(5335) +5353 = NOT(5332) +5354 = NAND(5289, 5353) +5355 = NAND(5292, 5352) +5356 = NAND(5350, 5340) +5357 = NAND(5351, 5341) +5358 = NAND(5348, 5354) +5359 = NAND(5349, 5355) +5360 = AND(5356, 5357) +5361 = NAND(5358, 5359) diff --git a/testcase/c432.bench b/testcase/c432.bench new file mode 100644 index 0000000000..ff23f0d792 --- /dev/null +++ b/testcase/c432.bench @@ -0,0 +1,211 @@ +# c432 +# 36 inputs +# 7 outputs +# 40 inverters +# 120 gates ( 4 ANDs + 119 NANDs + 19 NORs + 18 XORs ) + +INPUT(1) +INPUT(4) +INPUT(8) +INPUT(11) +INPUT(14) +INPUT(17) +INPUT(21) +INPUT(24) +INPUT(27) +INPUT(30) +INPUT(34) +INPUT(37) +INPUT(40) +INPUT(43) +INPUT(47) +INPUT(50) +INPUT(53) +INPUT(56) +INPUT(60) +INPUT(63) +INPUT(66) +INPUT(69) +INPUT(73) +INPUT(76) +INPUT(79) +INPUT(82) +INPUT(86) +INPUT(89) +INPUT(92) +INPUT(95) +INPUT(99) +INPUT(102) +INPUT(105) +INPUT(108) +INPUT(112) +INPUT(115) + +OUTPUT(223) +OUTPUT(329) +OUTPUT(370) +OUTPUT(421) +OUTPUT(430) +OUTPUT(431) +OUTPUT(432) + +118 = NOT(1) +119 = NOT(4) +122 = NOT(11) +123 = NOT(17) +126 = NOT(24) +127 = NOT(30) +130 = NOT(37) +131 = NOT(43) +134 = NOT(50) +135 = NOT(56) +138 = NOT(63) +139 = NOT(69) +142 = NOT(76) +143 = NOT(82) +146 = NOT(89) +147 = NOT(95) +150 = NOT(102) +151 = NOT(108) +154 = NAND(118, 4) +157 = NOR(8, 119) +158 = NOR(14, 119) +159 = NAND(122, 17) +162 = NAND(126, 30) +165 = NAND(130, 43) +168 = NAND(134, 56) +171 = NAND(138, 69) +174 = NAND(142, 82) +177 = NAND(146, 95) +180 = NAND(150, 108) +183 = NOR(21, 123) +184 = NOR(27, 123) +185 = NOR(34, 127) +186 = NOR(40, 127) +187 = NOR(47, 131) +188 = NOR(53, 131) +189 = NOR(60, 135) +190 = NOR(66, 135) +191 = NOR(73, 139) +192 = NOR(79, 139) +193 = NOR(86, 143) +194 = NOR(92, 143) +195 = NOR(99, 147) +196 = NOR(105, 147) +197 = NOR(112, 151) +198 = NOR(115, 151) +199 = AND(154, 159, 162, 165, 168, 171, 174, 177, 180) +203 = NOT(199) +213 = NOT(199) +223 = NOT(199) +224 = XOR(203, 154) +227 = XOR(203, 159) +230 = XOR(203, 162) +233 = XOR(203, 165) +236 = XOR(203, 168) +239 = XOR(203, 171) +242 = NAND(1, 213) +243 = XOR(203, 174) +246 = NAND(213, 11) +247 = XOR(203, 177) +250 = NAND(213, 24) +251 = XOR(203, 180) +254 = NAND(213, 37) +255 = NAND(213, 50) +256 = NAND(213, 63) +257 = NAND(213, 76) +258 = NAND(213, 89) +259 = NAND(213, 102) +260 = NAND(224, 157) +263 = NAND(224, 158) +264 = NAND(227, 183) +267 = NAND(230, 185) +270 = NAND(233, 187) +273 = NAND(236, 189) +276 = NAND(239, 191) +279 = NAND(243, 193) +282 = NAND(247, 195) +285 = NAND(251, 197) +288 = NAND(227, 184) +289 = NAND(230, 186) +290 = NAND(233, 188) +291 = NAND(236, 190) +292 = NAND(239, 192) +293 = NAND(243, 194) +294 = NAND(247, 196) +295 = NAND(251, 198) +296 = AND(260, 264, 267, 270, 273, 276, 279, 282, 285) +300 = NOT(263) +301 = NOT(288) +302 = NOT(289) +303 = NOT(290) +304 = NOT(291) +305 = NOT(292) +306 = NOT(293) +307 = NOT(294) +308 = NOT(295) +309 = NOT(296) +319 = NOT(296) +329 = NOT(296) +330 = XOR(309, 260) +331 = XOR(309, 264) +332 = XOR(309, 267) +333 = XOR(309, 270) +334 = NAND(8, 319) +335 = XOR(309, 273) +336 = NAND(319, 21) +337 = XOR(309, 276) +338 = NAND(319, 34) +339 = XOR(309, 279) +340 = NAND(319, 47) +341 = XOR(309, 282) +342 = NAND(319, 60) +343 = XOR(309, 285) +344 = NAND(319, 73) +345 = NAND(319, 86) +346 = NAND(319, 99) +347 = NAND(319, 112) +348 = NAND(330, 300) +349 = NAND(331, 301) +350 = NAND(332, 302) +351 = NAND(333, 303) +352 = NAND(335, 304) +353 = NAND(337, 305) +354 = NAND(339, 306) +355 = NAND(341, 307) +356 = NAND(343, 308) +357 = AND(348, 349, 350, 351, 352, 353, 354, 355, 356) +360 = NOT(357) +370 = NOT(357) +371 = NAND(14, 360) +372 = NAND(360, 27) +373 = NAND(360, 40) +374 = NAND(360, 53) +375 = NAND(360, 66) +376 = NAND(360, 79) +377 = NAND(360, 92) +378 = NAND(360, 105) +379 = NAND(360, 115) +380 = NAND(4, 242, 334, 371) +381 = NAND(246, 336, 372, 17) +386 = NAND(250, 338, 373, 30) +393 = NAND(254, 340, 374, 43) +399 = NAND(255, 342, 375, 56) +404 = NAND(256, 344, 376, 69) +407 = NAND(257, 345, 377, 82) +411 = NAND(258, 346, 378, 95) +414 = NAND(259, 347, 379, 108) +415 = NOT(380) +416 = AND(381, 386, 393, 399, 404, 407, 411, 414) +417 = NOT(393) +418 = NOT(404) +419 = NOT(407) +420 = NOT(411) +421 = NOR(415, 416) +422 = NAND(386, 417) +425 = NAND(386, 393, 418, 399) +428 = NAND(399, 393, 419) +429 = NAND(386, 393, 407, 420) +430 = NAND(381, 386, 422, 399) +431 = NAND(381, 386, 425, 428) +432 = NAND(381, 422, 425, 429) diff --git a/testcase/c499.bench b/testcase/c499.bench new file mode 100644 index 0000000000..c439fdb7df --- /dev/null +++ b/testcase/c499.bench @@ -0,0 +1,283 @@ +# c499 +# 41 inputs +# 32 outputs +# 40 inverters +# 162 gates ( 56 ANDs + 40 NANDs + 2 ORs + 104 XORs ) + +INPUT(1) +INPUT(5) +INPUT(9) +INPUT(13) +INPUT(17) +INPUT(21) +INPUT(25) +INPUT(29) +INPUT(33) +INPUT(37) +INPUT(41) +INPUT(45) +INPUT(49) +INPUT(53) +INPUT(57) +INPUT(61) +INPUT(65) +INPUT(69) +INPUT(73) +INPUT(77) +INPUT(81) +INPUT(85) +INPUT(89) +INPUT(93) +INPUT(97) +INPUT(101) +INPUT(105) +INPUT(109) +INPUT(113) +INPUT(117) +INPUT(121) +INPUT(125) +INPUT(129) +INPUT(130) +INPUT(131) +INPUT(132) +INPUT(133) +INPUT(134) +INPUT(135) +INPUT(136) +INPUT(137) + +OUTPUT(724) +OUTPUT(725) +OUTPUT(726) +OUTPUT(727) +OUTPUT(728) +OUTPUT(729) +OUTPUT(730) +OUTPUT(731) +OUTPUT(732) +OUTPUT(733) +OUTPUT(734) +OUTPUT(735) +OUTPUT(736) +OUTPUT(737) +OUTPUT(738) +OUTPUT(739) +OUTPUT(740) +OUTPUT(741) +OUTPUT(742) +OUTPUT(743) +OUTPUT(744) +OUTPUT(745) +OUTPUT(746) +OUTPUT(747) +OUTPUT(748) +OUTPUT(749) +OUTPUT(750) +OUTPUT(751) +OUTPUT(752) +OUTPUT(753) +OUTPUT(754) +OUTPUT(755) + +250 = XOR(1, 5) +251 = XOR(9, 13) +252 = XOR(17, 21) +253 = XOR(25, 29) +254 = XOR(33, 37) +255 = XOR(41, 45) +256 = XOR(49, 53) +257 = XOR(57, 61) +258 = XOR(65, 69) +259 = XOR(73, 77) +260 = XOR(81, 85) +261 = XOR(89, 93) +262 = XOR(97, 101) +263 = XOR(105, 109) +264 = XOR(113, 117) +265 = XOR(121, 125) +266 = AND(129, 137) +267 = AND(130, 137) +268 = AND(131, 137) +269 = AND(132, 137) +270 = AND(133, 137) +271 = AND(134, 137) +272 = AND(135, 137) +273 = AND(136, 137) +274 = XOR(1, 17) +275 = XOR(33, 49) +276 = XOR(5, 21) +277 = XOR(37, 53) +278 = XOR(9, 25) +279 = XOR(41, 57) +280 = XOR(13, 29) +281 = XOR(45, 61) +282 = XOR(65, 81) +283 = XOR(97, 113) +284 = XOR(69, 85) +285 = XOR(101, 117) +286 = XOR(73, 89) +287 = XOR(105, 121) +288 = XOR(77, 93) +289 = XOR(109, 125) +290 = XOR(250, 251) +293 = XOR(252, 253) +296 = XOR(254, 255) +299 = XOR(256, 257) +302 = XOR(258, 259) +305 = XOR(260, 261) +308 = XOR(262, 263) +311 = XOR(264, 265) +314 = XOR(274, 275) +315 = XOR(276, 277) +316 = XOR(278, 279) +317 = XOR(280, 281) +318 = XOR(282, 283) +319 = XOR(284, 285) +320 = XOR(286, 287) +321 = XOR(288, 289) +338 = XOR(290, 293) +339 = XOR(296, 299) +340 = XOR(290, 296) +341 = XOR(293, 299) +342 = XOR(302, 305) +343 = XOR(308, 311) +344 = XOR(302, 308) +345 = XOR(305, 311) +346 = XOR(266, 342) +347 = XOR(267, 343) +348 = XOR(268, 344) +349 = XOR(269, 345) +350 = XOR(270, 338) +351 = XOR(271, 339) +352 = XOR(272, 340) +353 = XOR(273, 341) +354 = XOR(314, 346) +367 = XOR(315, 347) +380 = XOR(316, 348) +393 = XOR(317, 349) +406 = XOR(318, 350) +419 = XOR(319, 351) +432 = XOR(320, 352) +445 = XOR(321, 353) +554 = NOT(354) +555 = NOT(367) +556 = NOT(380) +557 = NOT(354) +558 = NOT(367) +559 = NOT(393) +560 = NOT(354) +561 = NOT(380) +562 = NOT(393) +563 = NOT(367) +564 = NOT(380) +565 = NOT(393) +566 = NOT(419) +567 = NOT(445) +568 = NOT(419) +569 = NOT(432) +570 = NOT(406) +571 = NOT(445) +572 = NOT(406) +573 = NOT(432) +574 = NOT(406) +575 = NOT(419) +576 = NOT(432) +577 = NOT(406) +578 = NOT(419) +579 = NOT(445) +580 = NOT(406) +581 = NOT(432) +582 = NOT(445) +583 = NOT(419) +584 = NOT(432) +585 = NOT(445) +586 = NOT(367) +587 = NOT(393) +588 = NOT(367) +589 = NOT(380) +590 = NOT(354) +591 = NOT(393) +592 = NOT(354) +593 = NOT(380) +594 = AND(554, 555, 556, 393) +595 = AND(557, 558, 380, 559) +596 = AND(560, 367, 561, 562) +597 = AND(354, 563, 564, 565) +598 = AND(574, 575, 576, 445) +599 = AND(577, 578, 432, 579) +600 = AND(580, 419, 581, 582) +601 = AND(406, 583, 584, 585) +602 = OR(594, 595, 596, 597) +607 = OR(598, 599, 600, 601) +620 = AND(406, 566, 432, 567, 602) +625 = AND(406, 568, 569, 445, 602) +630 = AND(570, 419, 432, 571, 602) +635 = AND(572, 419, 573, 445, 602) +640 = AND(354, 586, 380, 587, 607) +645 = AND(354, 588, 589, 393, 607) +650 = AND(590, 367, 380, 591, 607) +655 = AND(592, 367, 593, 393, 607) +692 = AND(354, 620) +693 = AND(367, 620) +694 = AND(380, 620) +695 = AND(393, 620) +696 = AND(354, 625) +697 = AND(367, 625) +698 = AND(380, 625) +699 = AND(393, 625) +700 = AND(354, 630) +701 = AND(367, 630) +702 = AND(380, 630) +703 = AND(393, 630) +704 = AND(354, 635) +705 = AND(367, 635) +706 = AND(380, 635) +707 = AND(393, 635) +708 = AND(406, 640) +709 = AND(419, 640) +710 = AND(432, 640) +711 = AND(445, 640) +712 = AND(406, 645) +713 = AND(419, 645) +714 = AND(432, 645) +715 = AND(445, 645) +716 = AND(406, 650) +717 = AND(419, 650) +718 = AND(432, 650) +719 = AND(445, 650) +720 = AND(406, 655) +721 = AND(419, 655) +722 = AND(432, 655) +723 = AND(445, 655) +724 = XOR(1, 692) +725 = XOR(5, 693) +726 = XOR(9, 694) +727 = XOR(13, 695) +728 = XOR(17, 696) +729 = XOR(21, 697) +730 = XOR(25, 698) +731 = XOR(29, 699) +732 = XOR(33, 700) +733 = XOR(37, 701) +734 = XOR(41, 702) +735 = XOR(45, 703) +736 = XOR(49, 704) +737 = XOR(53, 705) +738 = XOR(57, 706) +739 = XOR(61, 707) +740 = XOR(65, 708) +741 = XOR(69, 709) +742 = XOR(73, 710) +743 = XOR(77, 711) +744 = XOR(81, 712) +745 = XOR(85, 713) +746 = XOR(89, 714) +747 = XOR(93, 715) +748 = XOR(97, 716) +749 = XOR(101, 717) +750 = XOR(105, 718) +751 = XOR(109, 719) +752 = XOR(113, 720) +753 = XOR(117, 721) +754 = XOR(121, 722) +755 = XOR(125, 723) diff --git a/testcase/c5315.bench b/testcase/c5315.bench new file mode 100755 index 0000000000..aeb110ca4f --- /dev/null +++ b/testcase/c5315.bench @@ -0,0 +1,2616 @@ +# c5315 +# 178 inputs +# 123 outputs +# 581 inverters +# 1726 gates ( 1031 ANDs + 1035 NANDs + 214 ORs + 27 NORs + 313 buffers ) + +INPUT(1) +INPUT(4) +INPUT(11) +INPUT(14) +INPUT(17) +INPUT(20) +INPUT(23) +INPUT(24) +INPUT(25) +INPUT(26) +INPUT(27) +INPUT(31) +INPUT(34) +INPUT(37) +INPUT(40) +INPUT(43) +INPUT(46) +INPUT(49) +INPUT(52) +INPUT(53) +INPUT(54) +INPUT(61) +INPUT(64) +INPUT(67) +INPUT(70) +INPUT(73) +INPUT(76) +INPUT(79) +INPUT(80) +INPUT(81) +INPUT(82) +INPUT(83) +INPUT(86) +INPUT(87) +INPUT(88) +INPUT(91) +INPUT(94) +INPUT(97) +INPUT(100) +INPUT(103) +INPUT(106) +INPUT(109) +INPUT(112) +INPUT(113) +INPUT(114) +INPUT(115) +INPUT(116) +INPUT(117) +INPUT(118) +INPUT(119) +INPUT(120) +INPUT(121) +INPUT(122) +INPUT(123) +INPUT(126) +INPUT(127) +INPUT(128) +INPUT(129) +INPUT(130) +INPUT(131) +INPUT(132) +INPUT(135) +INPUT(136) +INPUT(137) +INPUT(140) +INPUT(141) +INPUT(145) +INPUT(146) +INPUT(149) +INPUT(152) +INPUT(155) +INPUT(158) +INPUT(161) +INPUT(164) +INPUT(167) +INPUT(170) +INPUT(173) +INPUT(176) +INPUT(179) +INPUT(182) +INPUT(185) +INPUT(188) +INPUT(191) +INPUT(194) +INPUT(197) +INPUT(200) +INPUT(203) +INPUT(206) +INPUT(209) +INPUT(210) +INPUT(217) +INPUT(218) +INPUT(225) +INPUT(226) +INPUT(233) +INPUT(234) +INPUT(241) +INPUT(242) +INPUT(245) +INPUT(248) +INPUT(251) +INPUT(254) +INPUT(257) +INPUT(264) +INPUT(265) +INPUT(272) +INPUT(273) +INPUT(280) +INPUT(281) +INPUT(288) +INPUT(289) +INPUT(292) +INPUT(293) +INPUT(299) +INPUT(302) +INPUT(307) +INPUT(308) +INPUT(315) +INPUT(316) +INPUT(323) +INPUT(324) +INPUT(331) +INPUT(332) +INPUT(335) +INPUT(338) +INPUT(341) +INPUT(348) +INPUT(351) +INPUT(358) +INPUT(361) +INPUT(366) +INPUT(369) +INPUT(372) +INPUT(373) +INPUT(374) +INPUT(386) +INPUT(389) +INPUT(400) +INPUT(411) +INPUT(422) +INPUT(435) +INPUT(446) +INPUT(457) +INPUT(468) +INPUT(479) +INPUT(490) +INPUT(503) +INPUT(514) +INPUT(523) +INPUT(534) +INPUT(545) +INPUT(549) +INPUT(552) +INPUT(556) +INPUT(559) +INPUT(562) +INPUT(566) +INPUT(571) +INPUT(574) +INPUT(577) +INPUT(580) +INPUT(583) +INPUT(588) +INPUT(591) +INPUT(592) +INPUT(595) +INPUT(596) +INPUT(597) +INPUT(598) +INPUT(599) +INPUT(603) +INPUT(607) +INPUT(610) +INPUT(613) +INPUT(616) +INPUT(619) +INPUT(625) +INPUT(631) + +OUTPUT(709) +OUTPUT(816) +OUTPUT(1066) +OUTPUT(1137) +OUTPUT(1138) +OUTPUT(1139) +OUTPUT(1140) +OUTPUT(1141) +OUTPUT(1142) +OUTPUT(1143) +OUTPUT(1144) +OUTPUT(1145) +OUTPUT(1147) +OUTPUT(1152) +OUTPUT(1153) +OUTPUT(1154) +OUTPUT(1155) +OUTPUT(1972) +OUTPUT(2054) +OUTPUT(2060) +OUTPUT(2061) +OUTPUT(2139) +OUTPUT(2142) +OUTPUT(2309) +OUTPUT(2387) +OUTPUT(2527) +OUTPUT(2584) +OUTPUT(2590) +OUTPUT(2623) +OUTPUT(3357) +OUTPUT(3358) +OUTPUT(3359) +OUTPUT(3360) +OUTPUT(3604) +OUTPUT(3613) +OUTPUT(4272) +OUTPUT(4275) +OUTPUT(4278) +OUTPUT(4279) +OUTPUT(4737) +OUTPUT(4738) +OUTPUT(4739) +OUTPUT(4740) +OUTPUT(5240) +OUTPUT(5388) +OUTPUT(6641) +OUTPUT(6643) +OUTPUT(6646) +OUTPUT(6648) +OUTPUT(6716) +OUTPUT(6877) +OUTPUT(6924) +OUTPUT(6925) +OUTPUT(6926) +OUTPUT(6927) +OUTPUT(7015) +OUTPUT(7363) +OUTPUT(7365) +OUTPUT(7432) +OUTPUT(7449) +OUTPUT(7465) +OUTPUT(7466) +OUTPUT(7467) +OUTPUT(7469) +OUTPUT(7470) +OUTPUT(7471) +OUTPUT(7472) +OUTPUT(7473) +OUTPUT(7474) +OUTPUT(7476) +OUTPUT(7503) +OUTPUT(7504) +OUTPUT(7506) +OUTPUT(7511) +OUTPUT(7515) +OUTPUT(7516) +OUTPUT(7517) +OUTPUT(7518) +OUTPUT(7519) +OUTPUT(7520) +OUTPUT(7521) +OUTPUT(7522) +OUTPUT(7600) +OUTPUT(7601) +OUTPUT(7602) +OUTPUT(7603) +OUTPUT(7604) +OUTPUT(7605) +OUTPUT(7606) +OUTPUT(7607) +OUTPUT(7626) +OUTPUT(7698) +OUTPUT(7699) +OUTPUT(7700) +OUTPUT(7701) +OUTPUT(7702) +OUTPUT(7703) +OUTPUT(7704) +OUTPUT(7705) +OUTPUT(7706) +OUTPUT(7707) +OUTPUT(7735) +OUTPUT(7736) +OUTPUT(7737) +OUTPUT(7738) +OUTPUT(7739) +OUTPUT(7740) +OUTPUT(7741) +OUTPUT(7742) +OUTPUT(7754) +OUTPUT(7755) +OUTPUT(7756) +OUTPUT(7757) +OUTPUT(7758) +OUTPUT(7759) +OUTPUT(7760) +OUTPUT(7761) +OUTPUT(8075) +OUTPUT(8076) +OUTPUT(8123) +OUTPUT(8124) +OUTPUT(8127) +OUTPUT(8128) + +709 = BUFF(141) +816 = BUFF(293) +1042 = AND(135, 631) +1043 = NOT(591) +1066 = BUFF(592) +1067 = NOT(595) +1080 = NOT(596) +1092 = NOT(597) +1104 = NOT(598) +1137 = NOT(545) +1138 = NOT(348) +1139 = NOT(366) +1140 = AND(552, 562) +1141 = NOT(549) +1142 = NOT(545) +1143 = NOT(545) +1144 = NOT(338) +1145 = NOT(358) +1146 = NAND(373, 1) +1147 = AND(141, 145) +1148 = NOT(592) +1149 = NOT(1042) +1150 = AND(1043, 27) +1151 = AND(386, 556) +1152 = NOT(245) +1153 = NOT(552) +1154 = NOT(562) +1155 = NOT(559) +1156 = AND(386, 559, 556, 552) +1157 = NOT(566) +1161 = BUFF(571) +1173 = BUFF(574) +1185 = BUFF(571) +1197 = BUFF(574) +1209 = BUFF(137) +1213 = BUFF(137) +1216 = BUFF(141) +1219 = NOT(583) +1223 = BUFF(577) +1235 = BUFF(580) +1247 = BUFF(577) +1259 = BUFF(580) +1271 = BUFF(254) +1280 = BUFF(251) +1292 = BUFF(251) +1303 = BUFF(248) +1315 = BUFF(248) +1327 = BUFF(610) +1339 = BUFF(607) +1351 = BUFF(613) +1363 = BUFF(616) +1375 = BUFF(210) +1378 = BUFF(210) +1381 = BUFF(218) +1384 = BUFF(218) +1387 = BUFF(226) +1390 = BUFF(226) +1393 = BUFF(234) +1396 = BUFF(234) +1415 = BUFF(257) +1418 = BUFF(257) +1421 = BUFF(265) +1424 = BUFF(265) +1427 = BUFF(273) +1430 = BUFF(273) +1433 = BUFF(281) +1436 = BUFF(281) +1455 = BUFF(335) +1462 = BUFF(335) +1469 = BUFF(206) +1475 = AND(27, 31) +1479 = BUFF(1) +1482 = BUFF(588) +1492 = BUFF(293) +1495 = BUFF(302) +1498 = BUFF(308) +1501 = BUFF(308) +1504 = BUFF(316) +1507 = BUFF(316) +1510 = BUFF(324) +1513 = BUFF(324) +1516 = BUFF(341) +1519 = BUFF(341) +1522 = BUFF(351) +1525 = BUFF(351) +1542 = BUFF(257) +1545 = BUFF(257) +1548 = BUFF(265) +1551 = BUFF(265) +1554 = BUFF(273) +1557 = BUFF(273) +1560 = BUFF(281) +1563 = BUFF(281) +1566 = BUFF(332) +1573 = BUFF(332) +1580 = BUFF(549) +1583 = AND(31, 27) +1588 = NOT(588) +1594 = BUFF(324) +1597 = BUFF(324) +1600 = BUFF(341) +1603 = BUFF(341) +1606 = BUFF(351) +1609 = BUFF(351) +1612 = BUFF(293) +1615 = BUFF(302) +1618 = BUFF(308) +1621 = BUFF(308) +1624 = BUFF(316) +1627 = BUFF(316) +1630 = BUFF(361) +1633 = BUFF(361) +1636 = BUFF(210) +1639 = BUFF(210) +1642 = BUFF(218) +1645 = BUFF(218) +1648 = BUFF(226) +1651 = BUFF(226) +1654 = BUFF(234) +1657 = BUFF(234) +1660 = NOT(324) +1663 = BUFF(242) +1675 = BUFF(242) +1685 = BUFF(254) +1697 = BUFF(610) +1709 = BUFF(607) +1721 = BUFF(625) +1727 = BUFF(619) +1731 = BUFF(613) +1743 = BUFF(616) +1755 = NOT(599) +1758 = NOT(603) +1761 = BUFF(619) +1769 = BUFF(625) +1777 = BUFF(619) +1785 = BUFF(625) +1793 = BUFF(619) +1800 = BUFF(625) +1807 = BUFF(619) +1814 = BUFF(625) +1821 = BUFF(299) +1824 = BUFF(446) +1827 = BUFF(457) +1830 = BUFF(468) +1833 = BUFF(422) +1836 = BUFF(435) +1839 = BUFF(389) +1842 = BUFF(400) +1845 = BUFF(411) +1848 = BUFF(374) +1851 = BUFF(4) +1854 = BUFF(446) +1857 = BUFF(457) +1860 = BUFF(468) +1863 = BUFF(435) +1866 = BUFF(389) +1869 = BUFF(400) +1872 = BUFF(411) +1875 = BUFF(422) +1878 = BUFF(374) +1881 = BUFF(479) +1884 = BUFF(490) +1887 = BUFF(503) +1890 = BUFF(514) +1893 = BUFF(523) +1896 = BUFF(534) +1899 = BUFF(54) +1902 = BUFF(479) +1905 = BUFF(503) +1908 = BUFF(514) +1911 = BUFF(523) +1914 = BUFF(534) +1917 = BUFF(490) +1920 = BUFF(361) +1923 = BUFF(369) +1926 = BUFF(341) +1929 = BUFF(351) +1932 = BUFF(308) +1935 = BUFF(316) +1938 = BUFF(293) +1941 = BUFF(302) +1944 = BUFF(281) +1947 = BUFF(289) +1950 = BUFF(265) +1953 = BUFF(273) +1956 = BUFF(234) +1959 = BUFF(257) +1962 = BUFF(218) +1965 = BUFF(226) +1968 = BUFF(210) +1972 = NOT(1146) +2054 = AND(136, 1148) +2060 = NOT(1150) +2061 = NOT(1151) +2139 = BUFF(1209) +2142 = BUFF(1216) +2309 = BUFF(1479) +2349 = AND(1104, 514) +2350 = OR(1067, 514) +2387 = BUFF(1580) +2527 = BUFF(1821) +2584 = NOT(1580) +2585 = AND(170, 1161, 1173) +2586 = AND(173, 1161, 1173) +2587 = AND(167, 1161, 1173) +2588 = AND(164, 1161, 1173) +2589 = AND(161, 1161, 1173) +2590 = NAND(1475, 140) +2591 = AND(185, 1185, 1197) +2592 = AND(158, 1185, 1197) +2593 = AND(152, 1185, 1197) +2594 = AND(146, 1185, 1197) +2595 = AND(170, 1223, 1235) +2596 = AND(173, 1223, 1235) +2597 = AND(167, 1223, 1235) +2598 = AND(164, 1223, 1235) +2599 = AND(161, 1223, 1235) +2600 = AND(185, 1247, 1259) +2601 = AND(158, 1247, 1259) +2602 = AND(152, 1247, 1259) +2603 = AND(146, 1247, 1259) +2604 = AND(106, 1731, 1743) +2605 = AND(61, 1327, 1339) +2606 = AND(106, 1697, 1709) +2607 = AND(49, 1697, 1709) +2608 = AND(103, 1697, 1709) +2609 = AND(40, 1697, 1709) +2610 = AND(37, 1697, 1709) +2611 = AND(20, 1327, 1339) +2612 = AND(17, 1327, 1339) +2613 = AND(70, 1327, 1339) +2614 = AND(64, 1327, 1339) +2615 = AND(49, 1731, 1743) +2616 = AND(103, 1731, 1743) +2617 = AND(40, 1731, 1743) +2618 = AND(37, 1731, 1743) +2619 = AND(20, 1351, 1363) +2620 = AND(17, 1351, 1363) +2621 = AND(70, 1351, 1363) +2622 = AND(64, 1351, 1363) +2623 = NOT(1475) +2624 = AND(123, 1758, 599) +2625 = AND(1777, 1785) +2626 = AND(61, 1351, 1363) +2627 = AND(1761, 1769) +2628 = NOT(1824) +2629 = NOT(1827) +2630 = NOT(1830) +2631 = NOT(1833) +2632 = NOT(1836) +2633 = NOT(1839) +2634 = NOT(1842) +2635 = NOT(1845) +2636 = NOT(1848) +2637 = NOT(1851) +2638 = NOT(1854) +2639 = NOT(1857) +2640 = NOT(1860) +2641 = NOT(1863) +2642 = NOT(1866) +2643 = NOT(1869) +2644 = NOT(1872) +2645 = NOT(1875) +2646 = NOT(1878) +2647 = BUFF(1209) +2653 = NOT(1161) +2664 = NOT(1173) +2675 = BUFF(1209) +2681 = NOT(1185) +2692 = NOT(1197) +2703 = AND(179, 1185, 1197) +2704 = BUFF(1479) +2709 = NOT(1881) +2710 = NOT(1884) +2711 = NOT(1887) +2712 = NOT(1890) +2713 = NOT(1893) +2714 = NOT(1896) +2715 = NOT(1899) +2716 = NOT(1902) +2717 = NOT(1905) +2718 = NOT(1908) +2719 = NOT(1911) +2720 = NOT(1914) +2721 = NOT(1917) +2722 = BUFF(1213) +2728 = NOT(1223) +2739 = NOT(1235) +2750 = BUFF(1213) +2756 = NOT(1247) +2767 = NOT(1259) +2778 = AND(179, 1247, 1259) +2779 = NOT(1327) +2790 = NOT(1339) +2801 = NOT(1351) +2812 = NOT(1363) +2823 = NOT(1375) +2824 = NOT(1378) +2825 = NOT(1381) +2826 = NOT(1384) +2827 = NOT(1387) +2828 = NOT(1390) +2829 = NOT(1393) +2830 = NOT(1396) +2831 = AND(1104, 457, 1378) +2832 = AND(1104, 468, 1384) +2833 = AND(1104, 422, 1390) +2834 = AND(1104, 435, 1396) +2835 = AND(1067, 1375) +2836 = AND(1067, 1381) +2837 = AND(1067, 1387) +2838 = AND(1067, 1393) +2839 = NOT(1415) +2840 = NOT(1418) +2841 = NOT(1421) +2842 = NOT(1424) +2843 = NOT(1427) +2844 = NOT(1430) +2845 = NOT(1433) +2846 = NOT(1436) +2847 = AND(1104, 389, 1418) +2848 = AND(1104, 400, 1424) +2849 = AND(1104, 411, 1430) +2850 = AND(1104, 374, 1436) +2851 = AND(1067, 1415) +2852 = AND(1067, 1421) +2853 = AND(1067, 1427) +2854 = AND(1067, 1433) +2855 = NOT(1455) +2861 = NOT(1462) +2867 = AND(292, 1455) +2868 = AND(288, 1455) +2869 = AND(280, 1455) +2870 = AND(272, 1455) +2871 = AND(264, 1455) +2872 = AND(241, 1462) +2873 = AND(233, 1462) +2874 = AND(225, 1462) +2875 = AND(217, 1462) +2876 = AND(209, 1462) +2877 = BUFF(1216) +2882 = NOT(1482) +2891 = NOT(1475) +2901 = NOT(1492) +2902 = NOT(1495) +2903 = NOT(1498) +2904 = NOT(1501) +2905 = NOT(1504) +2906 = NOT(1507) +2907 = AND(1303, 1495) +2908 = AND(1303, 479, 1501) +2909 = AND(1303, 490, 1507) +2910 = AND(1663, 1492) +2911 = AND(1663, 1498) +2912 = AND(1663, 1504) +2913 = NOT(1510) +2914 = NOT(1513) +2915 = NOT(1516) +2916 = NOT(1519) +2917 = NOT(1522) +2918 = NOT(1525) +2919 = AND(1104, 503, 1513) +2920 = NOT(2349) +2921 = AND(1104, 523, 1519) +2922 = AND(1104, 534, 1525) +2923 = AND(1067, 1510) +2924 = AND(1067, 1516) +2925 = AND(1067, 1522) +2926 = NOT(1542) +2927 = NOT(1545) +2928 = NOT(1548) +2929 = NOT(1551) +2930 = NOT(1554) +2931 = NOT(1557) +2932 = NOT(1560) +2933 = NOT(1563) +2934 = AND(1303, 389, 1545) +2935 = AND(1303, 400, 1551) +2936 = AND(1303, 411, 1557) +2937 = AND(1303, 374, 1563) +2938 = AND(1663, 1542) +2939 = AND(1663, 1548) +2940 = AND(1663, 1554) +2941 = AND(1663, 1560) +2942 = NOT(1566) +2948 = NOT(1573) +2954 = AND(372, 1566) +2955 = AND(366, 1566) +2956 = AND(358, 1566) +2957 = AND(348, 1566) +2958 = AND(338, 1566) +2959 = AND(331, 1573) +2960 = AND(323, 1573) +2961 = AND(315, 1573) +2962 = AND(307, 1573) +2963 = AND(299, 1573) +2964 = NOT(1588) +2969 = AND(83, 1588) +2970 = AND(86, 1588) +2971 = AND(88, 1588) +2972 = AND(88, 1588) +2973 = NOT(1594) +2974 = NOT(1597) +2975 = NOT(1600) +2976 = NOT(1603) +2977 = NOT(1606) +2978 = NOT(1609) +2979 = AND(1315, 503, 1597) +2980 = AND(1315, 514) +2981 = AND(1315, 523, 1603) +2982 = AND(1315, 534, 1609) +2983 = AND(1675, 1594) +2984 = OR(1675, 514) +2985 = AND(1675, 1600) +2986 = AND(1675, 1606) +2987 = NOT(1612) +2988 = NOT(1615) +2989 = NOT(1618) +2990 = NOT(1621) +2991 = NOT(1624) +2992 = NOT(1627) +2993 = AND(1315, 1615) +2994 = AND(1315, 479, 1621) +2995 = AND(1315, 490, 1627) +2996 = AND(1675, 1612) +2997 = AND(1675, 1618) +2998 = AND(1675, 1624) +2999 = NOT(1630) +3000 = BUFF(1469) +3003 = BUFF(1469) +3006 = NOT(1633) +3007 = BUFF(1469) +3010 = BUFF(1469) +3013 = AND(1315, 1630) +3014 = AND(1315, 1633) +3015 = NOT(1636) +3016 = NOT(1639) +3017 = NOT(1642) +3018 = NOT(1645) +3019 = NOT(1648) +3020 = NOT(1651) +3021 = NOT(1654) +3022 = NOT(1657) +3023 = AND(1303, 457, 1639) +3024 = AND(1303, 468, 1645) +3025 = AND(1303, 422, 1651) +3026 = AND(1303, 435, 1657) +3027 = AND(1663, 1636) +3028 = AND(1663, 1642) +3029 = AND(1663, 1648) +3030 = AND(1663, 1654) +3031 = NOT(1920) +3032 = NOT(1923) +3033 = NOT(1926) +3034 = NOT(1929) +3035 = BUFF(1660) +3038 = BUFF(1660) +3041 = NOT(1697) +3052 = NOT(1709) +3063 = NOT(1721) +3068 = NOT(1727) +3071 = AND(97, 1721) +3072 = AND(94, 1721) +3073 = AND(97, 1721) +3074 = AND(94, 1721) +3075 = NOT(1731) +3086 = NOT(1743) +3097 = NOT(1761) +3108 = NOT(1769) +3119 = NOT(1777) +3130 = NOT(1785) +3141 = NOT(1944) +3142 = NOT(1947) +3143 = NOT(1950) +3144 = NOT(1953) +3145 = NOT(1956) +3146 = NOT(1959) +3147 = NOT(1793) +3158 = NOT(1800) +3169 = NOT(1807) +3180 = NOT(1814) +3191 = BUFF(1821) +3194 = NOT(1932) +3195 = NOT(1935) +3196 = NOT(1938) +3197 = NOT(1941) +3198 = NOT(1962) +3199 = NOT(1965) +3200 = BUFF(1469) +3203 = NOT(1968) +3357 = BUFF(2704) +3358 = BUFF(2704) +3359 = BUFF(2704) +3360 = BUFF(2704) +3401 = AND(457, 1092, 2824) +3402 = AND(468, 1092, 2826) +3403 = AND(422, 1092, 2828) +3404 = AND(435, 1092, 2830) +3405 = AND(1080, 2823) +3406 = AND(1080, 2825) +3407 = AND(1080, 2827) +3408 = AND(1080, 2829) +3409 = AND(389, 1092, 2840) +3410 = AND(400, 1092, 2842) +3411 = AND(411, 1092, 2844) +3412 = AND(374, 1092, 2846) +3413 = AND(1080, 2839) +3414 = AND(1080, 2841) +3415 = AND(1080, 2843) +3416 = AND(1080, 2845) +3444 = AND(1280, 2902) +3445 = AND(479, 1280, 2904) +3446 = AND(490, 1280, 2906) +3447 = AND(1685, 2901) +3448 = AND(1685, 2903) +3449 = AND(1685, 2905) +3450 = AND(503, 1092, 2914) +3451 = AND(523, 1092, 2916) +3452 = AND(534, 1092, 2918) +3453 = AND(1080, 2913) +3454 = AND(1080, 2915) +3455 = AND(1080, 2917) +3456 = AND(2920, 2350) +3459 = AND(389, 1280, 2927) +3460 = AND(400, 1280, 2929) +3461 = AND(411, 1280, 2931) +3462 = AND(374, 1280, 2933) +3463 = AND(1685, 2926) +3464 = AND(1685, 2928) +3465 = AND(1685, 2930) +3466 = AND(1685, 2932) +3481 = AND(503, 1292, 2974) +3482 = NOT(2980) +3483 = AND(523, 1292, 2976) +3484 = AND(534, 1292, 2978) +3485 = AND(1271, 2973) +3486 = AND(1271, 2975) +3487 = AND(1271, 2977) +3488 = AND(1292, 2988) +3489 = AND(479, 1292, 2990) +3490 = AND(490, 1292, 2992) +3491 = AND(1271, 2987) +3492 = AND(1271, 2989) +3493 = AND(1271, 2991) +3502 = AND(1292, 2999) +3503 = AND(1292, 3006) +3504 = AND(457, 1280, 3016) +3505 = AND(468, 1280, 3018) +3506 = AND(422, 1280, 3020) +3507 = AND(435, 1280, 3022) +3508 = AND(1685, 3015) +3509 = AND(1685, 3017) +3510 = AND(1685, 3019) +3511 = AND(1685, 3021) +3512 = NAND(1923, 3031) +3513 = NAND(1920, 3032) +3514 = NAND(1929, 3033) +3515 = NAND(1926, 3034) +3558 = NAND(1947, 3141) +3559 = NAND(1944, 3142) +3560 = NAND(1953, 3143) +3561 = NAND(1950, 3144) +3562 = NAND(1959, 3145) +3563 = NAND(1956, 3146) +3604 = BUFF(3191) +3605 = NAND(1935, 3194) +3606 = NAND(1932, 3195) +3607 = NAND(1941, 3196) +3608 = NAND(1938, 3197) +3609 = NAND(1965, 3198) +3610 = NAND(1962, 3199) +3613 = NOT(3191) +3614 = AND(2882, 2891) +3615 = AND(1482, 2891) +3616 = AND(200, 2653, 1173) +3617 = AND(203, 2653, 1173) +3618 = AND(197, 2653, 1173) +3619 = AND(194, 2653, 1173) +3620 = AND(191, 2653, 1173) +3621 = AND(182, 2681, 1197) +3622 = AND(188, 2681, 1197) +3623 = AND(155, 2681, 1197) +3624 = AND(149, 2681, 1197) +3625 = AND(2882, 2891) +3626 = AND(1482, 2891) +3627 = AND(200, 2728, 1235) +3628 = AND(203, 2728, 1235) +3629 = AND(197, 2728, 1235) +3630 = AND(194, 2728, 1235) +3631 = AND(191, 2728, 1235) +3632 = AND(182, 2756, 1259) +3633 = AND(188, 2756, 1259) +3634 = AND(155, 2756, 1259) +3635 = AND(149, 2756, 1259) +3636 = AND(2882, 2891) +3637 = AND(1482, 2891) +3638 = AND(109, 3075, 1743) +3639 = AND(2882, 2891) +3640 = AND(1482, 2891) +3641 = AND(11, 2779, 1339) +3642 = AND(109, 3041, 1709) +3643 = AND(46, 3041, 1709) +3644 = AND(100, 3041, 1709) +3645 = AND(91, 3041, 1709) +3646 = AND(43, 3041, 1709) +3647 = AND(76, 2779, 1339) +3648 = AND(73, 2779, 1339) +3649 = AND(67, 2779, 1339) +3650 = AND(14, 2779, 1339) +3651 = AND(46, 3075, 1743) +3652 = AND(100, 3075, 1743) +3653 = AND(91, 3075, 1743) +3654 = AND(43, 3075, 1743) +3655 = AND(76, 2801, 1363) +3656 = AND(73, 2801, 1363) +3657 = AND(67, 2801, 1363) +3658 = AND(14, 2801, 1363) +3659 = AND(120, 3119, 1785) +3660 = AND(11, 2801, 1363) +3661 = AND(118, 3097, 1769) +3662 = AND(176, 2681, 1197) +3663 = AND(176, 2756, 1259) +3664 = OR(2831, 3401) +3665 = OR(2832, 3402) +3666 = OR(2833, 3403) +3667 = OR(2834, 3404) +3668 = OR(2835, 3405, 457) +3669 = OR(2836, 3406, 468) +3670 = OR(2837, 3407, 422) +3671 = OR(2838, 3408, 435) +3672 = OR(2847, 3409) +3673 = OR(2848, 3410) +3674 = OR(2849, 3411) +3675 = OR(2850, 3412) +3676 = OR(2851, 3413, 389) +3677 = OR(2852, 3414, 400) +3678 = OR(2853, 3415, 411) +3679 = OR(2854, 3416, 374) +3680 = AND(289, 2855) +3681 = AND(281, 2855) +3682 = AND(273, 2855) +3683 = AND(265, 2855) +3684 = AND(257, 2855) +3685 = AND(234, 2861) +3686 = AND(226, 2861) +3687 = AND(218, 2861) +3688 = AND(210, 2861) +3689 = AND(206, 2861) +3691 = NOT(2891) +3700 = OR(2907, 3444) +3701 = OR(2908, 3445) +3702 = OR(2909, 3446) +3703 = OR(2911, 3448, 479) +3704 = OR(2912, 3449, 490) +3705 = OR(2910, 3447) +3708 = OR(2919, 3450) +3709 = OR(2921, 3451) +3710 = OR(2922, 3452) +3711 = OR(2923, 3453, 503) +3712 = OR(2924, 3454, 523) +3713 = OR(2925, 3455, 534) +3715 = OR(2934, 3459) +3716 = OR(2935, 3460) +3717 = OR(2936, 3461) +3718 = OR(2937, 3462) +3719 = OR(2938, 3463, 389) +3720 = OR(2939, 3464, 400) +3721 = OR(2940, 3465, 411) +3722 = OR(2941, 3466, 374) +3723 = AND(369, 2942) +3724 = AND(361, 2942) +3725 = AND(351, 2942) +3726 = AND(341, 2942) +3727 = AND(324, 2948) +3728 = AND(316, 2948) +3729 = AND(308, 2948) +3730 = AND(302, 2948) +3731 = AND(293, 2948) +3732 = OR(2942, 2958) +3738 = AND(83, 2964) +3739 = AND(87, 2964) +3740 = AND(34, 2964) +3741 = AND(34, 2964) +3742 = OR(2979, 3481) +3743 = OR(2981, 3483) +3744 = OR(2982, 3484) +3745 = OR(2983, 3485, 503) +3746 = OR(2985, 3486, 523) +3747 = OR(2986, 3487, 534) +3748 = OR(2993, 3488) +3749 = OR(2994, 3489) +3750 = OR(2995, 3490) +3751 = OR(2997, 3492, 479) +3752 = OR(2998, 3493, 490) +3753 = NOT(3000) +3754 = NOT(3003) +3755 = NOT(3007) +3756 = NOT(3010) +3757 = OR(3013, 3502) +3758 = AND(1315, 446, 3003) +3759 = OR(3014, 3503) +3760 = AND(1315, 446, 3010) +3761 = AND(1675, 3000) +3762 = AND(1675, 3007) +3763 = OR(3023, 3504) +3764 = OR(3024, 3505) +3765 = OR(3025, 3506) +3766 = OR(3026, 3507) +3767 = OR(3027, 3508, 457) +3768 = OR(3028, 3509, 468) +3769 = OR(3029, 3510, 422) +3770 = OR(3030, 3511, 435) +3771 = NAND(3512, 3513) +3775 = NAND(3514, 3515) +3779 = NOT(3035) +3780 = NOT(3038) +3781 = AND(117, 3097, 1769) +3782 = AND(126, 3097, 1769) +3783 = AND(127, 3097, 1769) +3784 = AND(128, 3097, 1769) +3785 = AND(131, 3119, 1785) +3786 = AND(129, 3119, 1785) +3787 = AND(119, 3119, 1785) +3788 = AND(130, 3119, 1785) +3789 = NAND(3558, 3559) +3793 = NAND(3560, 3561) +3797 = NAND(3562, 3563) +3800 = AND(122, 3147, 1800) +3801 = AND(113, 3147, 1800) +3802 = AND(53, 3147, 1800) +3803 = AND(114, 3147, 1800) +3804 = AND(115, 3147, 1800) +3805 = AND(52, 3169, 1814) +3806 = AND(112, 3169, 1814) +3807 = AND(116, 3169, 1814) +3808 = AND(121, 3169, 1814) +3809 = AND(123, 3169, 1814) +3810 = NAND(3607, 3608) +3813 = NAND(3605, 3606) +3816 = AND(3482, 2984) +3819 = OR(2996, 3491) +3822 = NOT(3200) +3823 = NAND(3200, 3203) +3824 = NAND(3609, 3610) +3827 = NOT(3456) +3828 = OR(3739, 2970) +3829 = OR(3740, 2971) +3830 = OR(3741, 2972) +3831 = OR(3738, 2969) +3834 = NOT(3664) +3835 = NOT(3665) +3836 = NOT(3666) +3837 = NOT(3667) +3838 = NOT(3672) +3839 = NOT(3673) +3840 = NOT(3674) +3841 = NOT(3675) +3842 = OR(3681, 2868) +3849 = OR(3682, 2869) +3855 = OR(3683, 2870) +3861 = OR(3684, 2871) +3867 = OR(3685, 2872) +3873 = OR(3686, 2873) +3881 = OR(3687, 2874) +3887 = OR(3688, 2875) +3893 = OR(3689, 2876) +3908 = NOT(3701) +3909 = NOT(3702) +3911 = NOT(3700) +3914 = NOT(3708) +3915 = NOT(3709) +3916 = NOT(3710) +3917 = NOT(3715) +3918 = NOT(3716) +3919 = NOT(3717) +3920 = NOT(3718) +3921 = OR(3724, 2955) +3927 = OR(3725, 2956) +3933 = OR(3726, 2957) +3942 = OR(3727, 2959) +3948 = OR(3728, 2960) +3956 = OR(3729, 2961) +3962 = OR(3730, 2962) +3968 = OR(3731, 2963) +3975 = NOT(3742) +3976 = NOT(3743) +3977 = NOT(3744) +3978 = NOT(3749) +3979 = NOT(3750) +3980 = AND(446, 1292, 3754) +3981 = AND(446, 1292, 3756) +3982 = AND(1271, 3753) +3983 = AND(1271, 3755) +3984 = NOT(3757) +3987 = NOT(3759) +3988 = NOT(3763) +3989 = NOT(3764) +3990 = NOT(3765) +3991 = NOT(3766) +3998 = AND(3456, 3119, 3130) +4008 = OR(3723, 2954) +4011 = OR(3680, 2867) +4021 = NOT(3748) +4024 = NAND(1968, 3822) +4027 = NOT(3705) +4031 = AND(3828, 1583) +4032 = AND(24, 2882, 3691) +4033 = AND(25, 1482, 3691) +4034 = AND(26, 2882, 3691) +4035 = AND(81, 1482, 3691) +4036 = AND(3829, 1583) +4037 = AND(79, 2882, 3691) +4038 = AND(23, 1482, 3691) +4039 = AND(82, 2882, 3691) +4040 = AND(80, 1482, 3691) +4041 = AND(3830, 1583) +4042 = AND(3831, 1583) +4067 = AND(3732, 514) +4080 = AND(514, 3732) +4088 = AND(3834, 3668) +4091 = AND(3835, 3669) +4094 = AND(3836, 3670) +4097 = AND(3837, 3671) +4100 = AND(3838, 3676) +4103 = AND(3839, 3677) +4106 = AND(3840, 3678) +4109 = AND(3841, 3679) +4144 = AND(3908, 3703) +4147 = AND(3909, 3704) +4150 = BUFF(3705) +4153 = AND(3914, 3711) +4156 = AND(3915, 3712) +4159 = AND(3916, 3713) +4183 = OR(3758, 3980) +4184 = OR(3760, 3981) +4185 = OR(3761, 3982, 446) +4186 = OR(3762, 3983, 446) +4188 = NOT(3771) +4191 = NOT(3775) +4196 = AND(3775, 3771, 3035) +4197 = AND(3987, 3119, 3130) +4198 = AND(3920, 3722) +4199 = NOT(3816) +4200 = NOT(3789) +4203 = NOT(3793) +4206 = BUFF(3797) +4209 = BUFF(3797) +4212 = BUFF(3732) +4215 = BUFF(3732) +4219 = BUFF(3732) +4223 = NOT(3810) +4224 = NOT(3813) +4225 = AND(3918, 3720) +4228 = AND(3919, 3721) +4231 = AND(3991, 3770) +4234 = AND(3917, 3719) +4237 = AND(3989, 3768) +4240 = AND(3990, 3769) +4243 = AND(3988, 3767) +4246 = AND(3976, 3746) +4249 = AND(3977, 3747) +4252 = AND(3975, 3745) +4255 = AND(3978, 3751) +4258 = AND(3979, 3752) +4263 = NOT(3819) +4264 = NAND(4024, 3823) +4267 = NOT(3824) +4268 = AND(446, 3893) +4269 = NOT(3911) +4270 = NOT(3984) +4271 = AND(3893, 446) +4272 = NOT(4031) +4273 = OR(4032, 4033, 3614, 3615) +4274 = OR(4034, 4035, 3625, 3626) +4275 = NOT(4036) +4276 = OR(4037, 4038, 3636, 3637) +4277 = OR(4039, 4040, 3639, 3640) +4278 = NOT(4041) +4279 = NOT(4042) +4280 = AND(3887, 457) +4284 = AND(3881, 468) +4290 = AND(422, 3873) +4297 = AND(3867, 435) +4298 = AND(3861, 389) +4301 = AND(3855, 400) +4305 = AND(3849, 411) +4310 = AND(3842, 374) +4316 = AND(457, 3887) +4320 = AND(468, 3881) +4325 = AND(422, 3873) +4331 = AND(435, 3867) +4332 = AND(389, 3861) +4336 = AND(400, 3855) +4342 = AND(411, 3849) +4349 = AND(374, 3842) +4357 = NOT(3968) +4364 = NOT(3962) +4375 = BUFF(3962) +4379 = AND(3956, 479) +4385 = AND(490, 3948) +4392 = AND(3942, 503) +4396 = AND(3933, 523) +4400 = AND(3927, 534) +4405 = NOT(3921) +4412 = BUFF(3921) +4418 = NOT(3968) +4425 = NOT(3962) +4436 = BUFF(3962) +4440 = AND(479, 3956) +4445 = AND(490, 3948) +4451 = AND(503, 3942) +4456 = AND(523, 3933) +4462 = AND(534, 3927) +4469 = BUFF(3921) +4477 = NOT(3921) +4512 = BUFF(3968) +4515 = NOT(4183) +4516 = NOT(4184) +4521 = NOT(4008) +4523 = NOT(4011) +4524 = NOT(4198) +4532 = NOT(3984) +4547 = AND(3911, 3169, 3180) +4548 = BUFF(3893) +4551 = BUFF(3887) +4554 = BUFF(3881) +4557 = BUFF(3873) +4560 = BUFF(3867) +4563 = BUFF(3861) +4566 = BUFF(3855) +4569 = BUFF(3849) +4572 = BUFF(3842) +4575 = NOR(422, 3873) +4578 = BUFF(3893) +4581 = BUFF(3887) +4584 = BUFF(3881) +4587 = BUFF(3867) +4590 = BUFF(3861) +4593 = BUFF(3855) +4596 = BUFF(3849) +4599 = BUFF(3873) +4602 = BUFF(3842) +4605 = NOR(422, 3873) +4608 = NOR(374, 3842) +4611 = BUFF(3956) +4614 = BUFF(3948) +4617 = BUFF(3942) +4621 = BUFF(3933) +4624 = BUFF(3927) +4627 = NOR(490, 3948) +4630 = BUFF(3956) +4633 = BUFF(3942) +4637 = BUFF(3933) +4640 = BUFF(3927) +4643 = BUFF(3948) +4646 = NOR(490, 3948) +4649 = BUFF(3927) +4652 = BUFF(3933) +4655 = BUFF(3921) +4658 = BUFF(3942) +4662 = BUFF(3956) +4665 = BUFF(3948) +4668 = BUFF(3968) +4671 = BUFF(3962) +4674 = BUFF(3873) +4677 = BUFF(3867) +4680 = BUFF(3887) +4683 = BUFF(3881) +4686 = BUFF(3893) +4689 = BUFF(3849) +4692 = BUFF(3842) +4695 = BUFF(3861) +4698 = BUFF(3855) +4701 = NAND(3813, 4223) +4702 = NAND(3810, 4224) +4720 = NOT(4021) +4721 = NAND(4021, 4263) +4724 = NOT(4147) +4725 = NOT(4144) +4726 = NOT(4159) +4727 = NOT(4156) +4728 = NOT(4153) +4729 = NOT(4097) +4730 = NOT(4094) +4731 = NOT(4091) +4732 = NOT(4088) +4733 = NOT(4109) +4734 = NOT(4106) +4735 = NOT(4103) +4736 = NOT(4100) +4737 = AND(4273, 2877) +4738 = AND(4274, 2877) +4739 = AND(4276, 2877) +4740 = AND(4277, 2877) +4741 = AND(4150, 1758, 1755) +4855 = NOT(4212) +4856 = NAND(4212, 2712) +4908 = NAND(4215, 2718) +4909 = NOT(4215) +4939 = AND(4515, 4185) +4942 = AND(4516, 4186) +4947 = NOT(4219) +4953 = AND(4188, 3775, 3779) +4954 = AND(3771, 4191, 3780) +4955 = AND(4191, 4188, 3038) +4956 = AND(4109, 3097, 3108) +4957 = AND(4106, 3097, 3108) +4958 = AND(4103, 3097, 3108) +4959 = AND(4100, 3097, 3108) +4960 = AND(4159, 3119, 3130) +4961 = AND(4156, 3119, 3130) +4965 = NOT(4225) +4966 = NOT(4228) +4967 = NOT(4231) +4968 = NOT(4234) +4972 = NOT(4246) +4973 = NOT(4249) +4974 = NOT(4252) +4975 = NAND(4252, 4199) +4976 = NOT(4206) +4977 = NOT(4209) +4978 = AND(3793, 3789, 4206) +4979 = AND(4203, 4200, 4209) +4980 = AND(4097, 3147, 3158) +4981 = AND(4094, 3147, 3158) +4982 = AND(4091, 3147, 3158) +4983 = AND(4088, 3147, 3158) +4984 = AND(4153, 3169, 3180) +4985 = AND(4147, 3169, 3180) +4986 = AND(4144, 3169, 3180) +4987 = AND(4150, 3169, 3180) +5049 = NAND(4701, 4702) +5052 = NOT(4237) +5053 = NOT(4240) +5054 = NOT(4243) +5055 = NOT(4255) +5056 = NOT(4258) +5057 = NAND(3819, 4720) +5058 = NOT(4264) +5059 = NAND(4264, 4267) +5060 = AND(4724, 4725, 4269, 4027) +5061 = AND(4726, 4727, 3827, 4728) +5062 = AND(4729, 4730, 4731, 4732) +5063 = AND(4733, 4734, 4735, 4736) +5065 = AND(4357, 4375) +5066 = AND(4364, 4357, 4379) +5067 = AND(4418, 4436) +5068 = AND(4425, 4418, 4440) +5069 = NOT(4548) +5070 = NAND(4548, 2628) +5071 = NOT(4551) +5072 = NAND(4551, 2629) +5073 = NOT(4554) +5074 = NAND(4554, 2630) +5075 = NOT(4557) +5076 = NAND(4557, 2631) +5077 = NOT(4560) +5078 = NAND(4560, 2632) +5079 = NOT(4563) +5080 = NAND(4563, 2633) +5081 = NOT(4566) +5082 = NAND(4566, 2634) +5083 = NOT(4569) +5084 = NAND(4569, 2635) +5085 = NOT(4572) +5086 = NAND(4572, 2636) +5087 = NOT(4575) +5088 = NAND(4578, 2638) +5089 = NOT(4578) +5090 = NAND(4581, 2639) +5091 = NOT(4581) +5092 = NAND(4584, 2640) +5093 = NOT(4584) +5094 = NAND(4587, 2641) +5095 = NOT(4587) +5096 = NAND(4590, 2642) +5097 = NOT(4590) +5098 = NAND(4593, 2643) +5099 = NOT(4593) +5100 = NAND(4596, 2644) +5101 = NOT(4596) +5102 = NAND(4599, 2645) +5103 = NOT(4599) +5104 = NAND(4602, 2646) +5105 = NOT(4602) +5106 = NOT(4611) +5107 = NAND(4611, 2709) +5108 = NOT(4614) +5109 = NAND(4614, 2710) +5110 = NOT(4617) +5111 = NAND(4617, 2711) +5112 = NAND(1890, 4855) +5113 = NOT(4621) +5114 = NAND(4621, 2713) +5115 = NOT(4624) +5116 = NAND(4624, 2714) +5117 = AND(4364, 4379) +5118 = AND(4364, 4379) +5119 = AND(54, 4405) +5120 = NOT(4627) +5121 = NAND(4630, 2716) +5122 = NOT(4630) +5123 = NAND(4633, 2717) +5124 = NOT(4633) +5125 = NAND(1908, 4909) +5126 = NAND(4637, 2719) +5127 = NOT(4637) +5128 = NAND(4640, 2720) +5129 = NOT(4640) +5130 = NAND(4643, 2721) +5131 = NOT(4643) +5132 = AND(4425, 4440) +5133 = AND(4425, 4440) +5135 = NOT(4649) +5136 = NOT(4652) +5137 = NAND(4655, 4521) +5138 = NOT(4655) +5139 = NOT(4658) +5140 = NAND(4658, 4947) +5141 = NOT(4674) +5142 = NOT(4677) +5143 = NOT(4680) +5144 = NOT(4683) +5145 = NAND(4686, 4523) +5146 = NOT(4686) +5147 = NOR(4953, 4196) +5148 = NOR(4954, 4955) +5150 = NOT(4524) +5153 = NAND(4228, 4965) +5154 = NAND(4225, 4966) +5155 = NAND(4234, 4967) +5156 = NAND(4231, 4968) +5157 = NOT(4532) +5160 = NAND(4249, 4972) +5161 = NAND(4246, 4973) +5162 = NAND(3816, 4974) +5163 = AND(4200, 3793, 4976) +5164 = AND(3789, 4203, 4977) +5165 = AND(4942, 3147, 3158) +5166 = NOT(4512) +5169 = BUFF(4290) +5172 = NOT(4605) +5173 = BUFF(4325) +5176 = NOT(4608) +5177 = BUFF(4349) +5180 = BUFF(4405) +5183 = BUFF(4357) +5186 = BUFF(4357) +5189 = BUFF(4364) +5192 = BUFF(4364) +5195 = BUFF(4385) +5198 = NOT(4646) +5199 = BUFF(4418) +5202 = BUFF(4425) +5205 = BUFF(4445) +5208 = BUFF(4418) +5211 = BUFF(4425) +5214 = BUFF(4477) +5217 = BUFF(4469) +5220 = BUFF(4477) +5223 = NOT(4662) +5224 = NOT(4665) +5225 = NOT(4668) +5226 = NOT(4671) +5227 = NOT(4689) +5228 = NOT(4692) +5229 = NOT(4695) +5230 = NOT(4698) +5232 = NAND(4240, 5052) +5233 = NAND(4237, 5053) +5234 = NAND(4258, 5055) +5235 = NAND(4255, 5056) +5236 = NAND(4721, 5057) +5239 = NAND(3824, 5058) +5240 = AND(5060, 5061, 4270) +5241 = NOT(4939) +5242 = NAND(1824, 5069) +5243 = NAND(1827, 5071) +5244 = NAND(1830, 5073) +5245 = NAND(1833, 5075) +5246 = NAND(1836, 5077) +5247 = NAND(1839, 5079) +5248 = NAND(1842, 5081) +5249 = NAND(1845, 5083) +5250 = NAND(1848, 5085) +5252 = NAND(1854, 5089) +5253 = NAND(1857, 5091) +5254 = NAND(1860, 5093) +5255 = NAND(1863, 5095) +5256 = NAND(1866, 5097) +5257 = NAND(1869, 5099) +5258 = NAND(1872, 5101) +5259 = NAND(1875, 5103) +5260 = NAND(1878, 5105) +5261 = NAND(1881, 5106) +5262 = NAND(1884, 5108) +5263 = NAND(1887, 5110) +5264 = NAND(5112, 4856) +5274 = NAND(1893, 5113) +5275 = NAND(1896, 5115) +5282 = NAND(1902, 5122) +5283 = NAND(1905, 5124) +5284 = NAND(4908, 5125) +5298 = NAND(1911, 5127) +5299 = NAND(1914, 5129) +5300 = NAND(1917, 5131) +5303 = NAND(4652, 5135) +5304 = NAND(4649, 5136) +5305 = NAND(4008, 5138) +5306 = NAND(4219, 5139) +5307 = NAND(4677, 5141) +5308 = NAND(4674, 5142) +5309 = NAND(4683, 5143) +5310 = NAND(4680, 5144) +5311 = NAND(4011, 5146) +5312 = NOT(5049) +5315 = NAND(5153, 5154) +5319 = NAND(5155, 5156) +5324 = NAND(5160, 5161) +5328 = NAND(5162, 4975) +5331 = NOR(5163, 4978) +5332 = NOR(5164, 4979) +5346 = OR(4412, 5119) +5363 = NAND(4665, 5223) +5364 = NAND(4662, 5224) +5365 = NAND(4671, 5225) +5366 = NAND(4668, 5226) +5367 = NAND(4692, 5227) +5368 = NAND(4689, 5228) +5369 = NAND(4698, 5229) +5370 = NAND(4695, 5230) +5371 = NAND(5148, 5147) +5374 = BUFF(4939) +5377 = NAND(5232, 5233) +5382 = NAND(5234, 5235) +5385 = NAND(5239, 5059) +5388 = AND(5062, 5063, 5241) +5389 = NAND(5242, 5070) +5396 = NAND(5243, 5072) +5407 = NAND(5244, 5074) +5418 = NAND(5245, 5076) +5424 = NAND(5246, 5078) +5431 = NAND(5247, 5080) +5441 = NAND(5248, 5082) +5452 = NAND(5249, 5084) +5462 = NAND(5250, 5086) +5469 = NOT(5169) +5470 = NAND(5088, 5252) +5477 = NAND(5090, 5253) +5488 = NAND(5092, 5254) +5498 = NAND(5094, 5255) +5506 = NAND(5096, 5256) +5520 = NAND(5098, 5257) +5536 = NAND(5100, 5258) +5549 = NAND(5102, 5259) +5555 = NAND(5104, 5260) +5562 = NAND(5261, 5107) +5573 = NAND(5262, 5109) +5579 = NAND(5263, 5111) +5595 = NAND(5274, 5114) +5606 = NAND(5275, 5116) +5616 = NAND(5180, 2715) +5617 = NOT(5180) +5618 = NOT(5183) +5619 = NOT(5186) +5620 = NOT(5189) +5621 = NOT(5192) +5622 = NOT(5195) +5624 = NAND(5121, 5282) +5634 = NAND(5123, 5283) +5655 = NAND(5126, 5298) +5671 = NAND(5128, 5299) +5684 = NAND(5130, 5300) +5690 = NOT(5202) +5691 = NOT(5211) +5692 = NAND(5303, 5304) +5696 = NAND(5137, 5305) +5700 = NAND(5306, 5140) +5703 = NAND(5307, 5308) +5707 = NAND(5309, 5310) +5711 = NAND(5145, 5311) +5726 = AND(5166, 4512) +5727 = NOT(5173) +5728 = NOT(5177) +5730 = NOT(5199) +5731 = NOT(5205) +5732 = NOT(5208) +5733 = NOT(5214) +5734 = NOT(5217) +5735 = NOT(5220) +5736 = NAND(5365, 5366) +5739 = NAND(5363, 5364) +5742 = NAND(5369, 5370) +5745 = NAND(5367, 5368) +5755 = NOT(5236) +5756 = NAND(5332, 5331) +5954 = AND(5264, 4396) +5955 = NAND(1899, 5617) +5956 = NOT(5346) +6005 = AND(5284, 4456) +6006 = AND(5284, 4456) +6023 = NOT(5371) +6024 = NAND(5371, 5312) +6025 = NOT(5315) +6028 = NOT(5324) +6031 = BUFF(5319) +6034 = BUFF(5319) +6037 = BUFF(5328) +6040 = BUFF(5328) +6044 = NOT(5385) +6045 = OR(5166, 5726) +6048 = BUFF(5264) +6051 = BUFF(5284) +6054 = BUFF(5284) +6065 = NOT(5374) +6066 = NAND(5374, 5054) +6067 = NOT(5377) +6068 = NOT(5382) +6069 = NAND(5382, 5755) +6071 = AND(5470, 4316) +6072 = AND(5477, 5470, 4320) +6073 = AND(5488, 5470, 4325, 5477) +6074 = AND(5562, 4357, 4385, 4364) +6075 = AND(5389, 4280) +6076 = AND(5396, 5389, 4284) +6077 = AND(5407, 5389, 4290, 5396) +6078 = AND(5624, 4418, 4445, 4425) +6079 = NOT(5418) +6080 = AND(5396, 5418, 5407, 5389) +6083 = AND(5396, 4284) +6084 = AND(5407, 4290, 5396) +6085 = AND(5418, 5407, 5396) +6086 = AND(5396, 4284) +6087 = AND(4290, 5407, 5396) +6088 = AND(5407, 4290) +6089 = AND(5418, 5407) +6090 = AND(5407, 4290) +6091 = AND(5431, 5462, 5441, 5424, 5452) +6094 = AND(5424, 4298) +6095 = AND(5431, 5424, 4301) +6096 = AND(5441, 5424, 4305, 5431) +6097 = AND(5452, 5441, 5424, 4310, 5431) +6098 = AND(5431, 4301) +6099 = AND(5441, 4305, 5431) +6100 = AND(5452, 5441, 4310, 5431) +6101 = AND(4, 5462, 5441, 5452, 5431) +6102 = AND(4305, 5441) +6103 = AND(5452, 5441, 4310) +6104 = AND(4, 5462, 5441, 5452) +6105 = AND(5452, 4310) +6106 = AND(4, 5462, 5452) +6107 = AND(4, 5462) +6108 = AND(5549, 5488, 5477, 5470) +6111 = AND(5477, 4320) +6112 = AND(5488, 4325, 5477) +6113 = AND(5549, 5488, 5477) +6114 = AND(5477, 4320) +6115 = AND(5488, 4325, 5477) +6116 = AND(5488, 4325) +6117 = AND(5555, 5536, 5520, 5506, 5498) +6120 = AND(5498, 4332) +6121 = AND(5506, 5498, 4336) +6122 = AND(5520, 5498, 4342, 5506) +6123 = AND(5536, 5520, 5498, 4349, 5506) +6124 = AND(5506, 4336) +6125 = AND(5520, 4342, 5506) +6126 = AND(5536, 5520, 4349, 5506) +6127 = AND(5555, 5520, 5506, 5536) +6128 = AND(5506, 4336) +6129 = AND(5520, 4342, 5506) +6130 = AND(5536, 5520, 4349, 5506) +6131 = AND(5520, 4342) +6132 = AND(5536, 5520, 4349) +6133 = AND(5555, 5520, 5536) +6134 = AND(5520, 4342) +6135 = AND(5536, 5520, 4349) +6136 = AND(5536, 4349) +6137 = AND(5549, 5488) +6138 = AND(5555, 5536) +6139 = NOT(5573) +6140 = AND(4364, 5573, 5562, 4357) +6143 = AND(5562, 4385, 4364) +6144 = AND(5573, 5562, 4364) +6145 = AND(4385, 5562, 4364) +6146 = AND(5562, 4385) +6147 = AND(5573, 5562) +6148 = AND(5562, 4385) +6149 = AND(5264, 4405, 5595, 5579, 5606) +6152 = AND(5579, 4067) +6153 = AND(5264, 5579, 4396) +6154 = AND(5595, 5579, 4400, 5264) +6155 = AND(5606, 5595, 5579, 4412, 5264) +6156 = AND(5595, 4400, 5264) +6157 = AND(5606, 5595, 4412, 5264) +6158 = AND(54, 4405, 5595, 5606, 5264) +6159 = AND(4400, 5595) +6160 = AND(5606, 5595, 4412) +6161 = AND(54, 4405, 5595, 5606) +6162 = AND(5606, 4412) +6163 = AND(54, 4405, 5606) +6164 = NAND(5616, 5955) +6168 = AND(5684, 5624, 4425, 4418) +6171 = AND(5624, 4445, 4425) +6172 = AND(5684, 5624, 4425) +6173 = AND(5624, 4445, 4425) +6174 = AND(5624, 4445) +6175 = AND(4477, 5671, 5655, 5284, 5634) +6178 = AND(5634, 4080) +6179 = AND(5284, 5634, 4456) +6180 = AND(5655, 5634, 4462, 5284) +6181 = AND(5671, 5655, 5634, 4469, 5284) +6182 = AND(5655, 4462, 5284) +6183 = AND(5671, 5655, 4469, 5284) +6184 = AND(4477, 5655, 5284, 5671) +6185 = AND(5655, 4462, 5284) +6186 = AND(5671, 5655, 4469, 5284) +6187 = AND(5655, 4462) +6188 = AND(5671, 5655, 4469) +6189 = AND(4477, 5655, 5671) +6190 = AND(5655, 4462) +6191 = AND(5671, 5655, 4469) +6192 = AND(5671, 4469) +6193 = AND(5684, 5624) +6194 = AND(4477, 5671) +6197 = NOT(5692) +6200 = NOT(5696) +6203 = NOT(5703) +6206 = NOT(5707) +6209 = BUFF(5700) +6212 = BUFF(5700) +6215 = BUFF(5711) +6218 = BUFF(5711) +6221 = NAND(5049, 6023) +6234 = NOT(5756) +6235 = NAND(5756, 6044) +6238 = BUFF(5462) +6241 = BUFF(5389) +6244 = BUFF(5389) +6247 = BUFF(5396) +6250 = BUFF(5396) +6253 = BUFF(5407) +6256 = BUFF(5407) +6259 = BUFF(5424) +6262 = BUFF(5431) +6265 = BUFF(5441) +6268 = BUFF(5452) +6271 = BUFF(5549) +6274 = BUFF(5488) +6277 = BUFF(5470) +6280 = BUFF(5477) +6283 = BUFF(5549) +6286 = BUFF(5488) +6289 = BUFF(5470) +6292 = BUFF(5477) +6295 = BUFF(5555) +6298 = BUFF(5536) +6301 = BUFF(5498) +6304 = BUFF(5520) +6307 = BUFF(5506) +6310 = BUFF(5506) +6313 = BUFF(5555) +6316 = BUFF(5536) +6319 = BUFF(5498) +6322 = BUFF(5520) +6325 = BUFF(5562) +6328 = BUFF(5562) +6331 = BUFF(5579) +6335 = BUFF(5595) +6338 = BUFF(5606) +6341 = BUFF(5684) +6344 = BUFF(5624) +6347 = BUFF(5684) +6350 = BUFF(5624) +6353 = BUFF(5671) +6356 = BUFF(5634) +6359 = BUFF(5655) +6364 = BUFF(5671) +6367 = BUFF(5634) +6370 = BUFF(5655) +6373 = NOT(5736) +6374 = NOT(5739) +6375 = NOT(5742) +6376 = NOT(5745) +6377 = NAND(4243, 6065) +6378 = NAND(5236, 6068) +6382 = OR(4268, 6071, 6072, 6073) +6386 = OR(3968, 5065, 5066, 6074) +6388 = OR(4271, 6075, 6076, 6077) +6392 = OR(3968, 5067, 5068, 6078) +6397 = OR(4297, 6094, 6095, 6096, 6097) +6411 = OR(4320, 6116) +6415 = OR(4331, 6120, 6121, 6122, 6123) +6419 = OR(4342, 6136) +6427 = OR(4392, 6152, 6153, 6154, 6155) +6434 = NOT(6048) +6437 = OR(4440, 6174) +6441 = OR(4451, 6178, 6179, 6180, 6181) +6445 = OR(4462, 6192) +6448 = NOT(6051) +6449 = NOT(6054) +6466 = NAND(6221, 6024) +6469 = NOT(6031) +6470 = NOT(6034) +6471 = NOT(6037) +6472 = NOT(6040) +6473 = AND(5315, 4524, 6031) +6474 = AND(6025, 5150, 6034) +6475 = AND(5324, 4532, 6037) +6476 = AND(6028, 5157, 6040) +6477 = NAND(5385, 6234) +6478 = NAND(6045, 132) +6482 = OR(4280, 6083, 6084, 6085) +6486 = NOR(4280, 6086, 6087) +6490 = OR(4284, 6088, 6089) +6494 = NOR(4284, 6090) +6500 = OR(4298, 6098, 6099, 6100, 6101) +6504 = OR(4301, 6102, 6103, 6104) +6508 = OR(4305, 6105, 6106) +6512 = OR(4310, 6107) +6516 = OR(4316, 6111, 6112, 6113) +6526 = NOR(4316, 6114, 6115) +6536 = OR(4336, 6131, 6132, 6133) +6539 = OR(4332, 6124, 6125, 6126, 6127) +6553 = NOR(4336, 6134, 6135) +6556 = NOR(4332, 6128, 6129, 6130) +6566 = OR(4375, 5117, 6143, 6144) +6569 = NOR(4375, 5118, 6145) +6572 = OR(4379, 6146, 6147) +6575 = NOR(4379, 6148) +6580 = OR(4067, 5954, 6156, 6157, 6158) +6584 = OR(4396, 6159, 6160, 6161) +6587 = OR(4400, 6162, 6163) +6592 = OR(4436, 5132, 6171, 6172) +6599 = NOR(4436, 5133, 6173) +6606 = OR(4456, 6187, 6188, 6189) +6609 = OR(4080, 6005, 6182, 6183, 6184) +6619 = NOR(4456, 6190, 6191) +6622 = NOR(4080, 6006, 6185, 6186) +6630 = NAND(5739, 6373) +6631 = NAND(5736, 6374) +6632 = NAND(5745, 6375) +6633 = NAND(5742, 6376) +6634 = NAND(6377, 6066) +6637 = NAND(6069, 6378) +6640 = NOT(6164) +6641 = AND(6108, 6117) +6643 = AND(6140, 6149) +6646 = AND(6168, 6175) +6648 = AND(6080, 6091) +6650 = NAND(6238, 2637) +6651 = NOT(6238) +6653 = NOT(6241) +6655 = NOT(6244) +6657 = NOT(6247) +6659 = NOT(6250) +6660 = NAND(6253, 5087) +6661 = NOT(6253) +6662 = NAND(6256, 5469) +6663 = NOT(6256) +6664 = AND(6091, 4) +6666 = NOT(6259) +6668 = NOT(6262) +6670 = NOT(6265) +6672 = NOT(6268) +6675 = NOT(6117) +6680 = NOT(6280) +6681 = NOT(6292) +6682 = NOT(6307) +6683 = NOT(6310) +6689 = NAND(6325, 5120) +6690 = NOT(6325) +6691 = NAND(6328, 5622) +6692 = NOT(6328) +6693 = AND(6149, 54) +6695 = NOT(6331) +6698 = NOT(6335) +6699 = NAND(6338, 5956) +6700 = NOT(6338) +6703 = NOT(6175) +6708 = NOT(6209) +6709 = NOT(6212) +6710 = NOT(6215) +6711 = NOT(6218) +6712 = AND(5696, 5692, 6209) +6713 = AND(6200, 6197, 6212) +6714 = AND(5707, 5703, 6215) +6715 = AND(6206, 6203, 6218) +6716 = BUFF(6466) +6718 = AND(6164, 1777, 3130) +6719 = AND(5150, 5315, 6469) +6720 = AND(4524, 6025, 6470) +6721 = AND(5157, 5324, 6471) +6722 = AND(4532, 6028, 6472) +6724 = NAND(6477, 6235) +6739 = NOT(6271) +6740 = NOT(6274) +6741 = NOT(6277) +6744 = NOT(6283) +6745 = NOT(6286) +6746 = NOT(6289) +6751 = NOT(6295) +6752 = NOT(6298) +6753 = NOT(6301) +6754 = NOT(6304) +6755 = NOT(6322) +6760 = NOT(6313) +6761 = NOT(6316) +6762 = NOT(6319) +6772 = NOT(6341) +6773 = NOT(6344) +6776 = NOT(6347) +6777 = NOT(6350) +6782 = NOT(6353) +6783 = NOT(6356) +6784 = NOT(6359) +6785 = NOT(6370) +6790 = NOT(6364) +6791 = NOT(6367) +6792 = NAND(6630, 6631) +6795 = NAND(6632, 6633) +6801 = AND(6108, 6415) +6802 = AND(6427, 6140) +6803 = AND(6397, 6080) +6804 = AND(6168, 6441) +6805 = NOT(6466) +6806 = NAND(1851, 6651) +6807 = NOT(6482) +6808 = NAND(6482, 6653) +6809 = NOT(6486) +6810 = NAND(6486, 6655) +6811 = NOT(6490) +6812 = NAND(6490, 6657) +6813 = NOT(6494) +6814 = NAND(6494, 6659) +6815 = NAND(4575, 6661) +6816 = NAND(5169, 6663) +6817 = OR(6397, 6664) +6823 = NOT(6500) +6824 = NAND(6500, 6666) +6825 = NOT(6504) +6826 = NAND(6504, 6668) +6827 = NOT(6508) +6828 = NAND(6508, 6670) +6829 = NOT(6512) +6830 = NAND(6512, 6672) +6831 = NOT(6415) +6834 = NOT(6566) +6835 = NAND(6566, 5618) +6836 = NOT(6569) +6837 = NAND(6569, 5619) +6838 = NOT(6572) +6839 = NAND(6572, 5620) +6840 = NOT(6575) +6841 = NAND(6575, 5621) +6842 = NAND(4627, 6690) +6843 = NAND(5195, 6692) +6844 = OR(6427, 6693) +6850 = NOT(6580) +6851 = NAND(6580, 6695) +6852 = NOT(6584) +6853 = NAND(6584, 6434) +6854 = NOT(6587) +6855 = NAND(6587, 6698) +6856 = NAND(5346, 6700) +6857 = NOT(6441) +6860 = AND(6197, 5696, 6708) +6861 = AND(5692, 6200, 6709) +6862 = AND(6203, 5707, 6710) +6863 = AND(5703, 6206, 6711) +6866 = OR(4197, 6718, 3785) +6872 = NOR(6719, 6473) +6873 = NOR(6720, 6474) +6874 = NOR(6721, 6475) +6875 = NOR(6722, 6476) +6876 = NOT(6637) +6877 = BUFF(6724) +6879 = AND(6045, 6478) +6880 = AND(6478, 132) +6881 = OR(6411, 6137) +6884 = NOT(6516) +6885 = NOT(6411) +6888 = NOT(6526) +6889 = NOT(6536) +6890 = NAND(6536, 5176) +6891 = OR(6419, 6138) +6894 = NOT(6539) +6895 = NOT(6553) +6896 = NAND(6553, 5728) +6897 = NOT(6419) +6900 = NOT(6556) +6901 = OR(6437, 6193) +6904 = NOT(6592) +6905 = NOT(6437) +6908 = NOT(6599) +6909 = OR(6445, 6194) +6912 = NOT(6606) +6913 = NOT(6609) +6914 = NOT(6619) +6915 = NAND(6619, 5734) +6916 = NOT(6445) +6919 = NOT(6622) +6922 = NOT(6634) +6923 = NAND(6634, 6067) +6924 = OR(6382, 6801) +6925 = OR(6386, 6802) +6926 = OR(6388, 6803) +6927 = OR(6392, 6804) +6930 = NOT(6724) +6932 = NAND(6650, 6806) +6935 = NAND(6241, 6807) +6936 = NAND(6244, 6809) +6937 = NAND(6247, 6811) +6938 = NAND(6250, 6813) +6939 = NAND(6660, 6815) +6940 = NAND(6662, 6816) +6946 = NAND(6259, 6823) +6947 = NAND(6262, 6825) +6948 = NAND(6265, 6827) +6949 = NAND(6268, 6829) +6953 = NAND(5183, 6834) +6954 = NAND(5186, 6836) +6955 = NAND(5189, 6838) +6956 = NAND(5192, 6840) +6957 = NAND(6689, 6842) +6958 = NAND(6691, 6843) +6964 = NAND(6331, 6850) +6965 = NAND(6048, 6852) +6966 = NAND(6335, 6854) +6967 = NAND(6699, 6856) +6973 = NOR(6860, 6712) +6974 = NOR(6861, 6713) +6975 = NOR(6862, 6714) +6976 = NOR(6863, 6715) +6977 = NOT(6792) +6978 = NOT(6795) +6979 = OR(6879, 6880) +6987 = NAND(4608, 6889) +6990 = NAND(5177, 6895) +6999 = NAND(5217, 6914) +7002 = NAND(5377, 6922) +7003 = NAND(6873, 6872) +7006 = NAND(6875, 6874) +7011 = AND(6866, 2681, 2692) +7012 = AND(6866, 2756, 2767) +7013 = AND(6866, 2779, 2790) +7015 = NOT(6866) +7016 = AND(6866, 2801, 2812) +7018 = NAND(6935, 6808) +7019 = NAND(6936, 6810) +7020 = NAND(6937, 6812) +7021 = NAND(6938, 6814) +7022 = NOT(6939) +7023 = NOT(6817) +7028 = NAND(6946, 6824) +7031 = NAND(6947, 6826) +7034 = NAND(6948, 6828) +7037 = NAND(6949, 6830) +7040 = AND(6817, 6079) +7041 = AND(6831, 6675) +7044 = NAND(6953, 6835) +7045 = NAND(6954, 6837) +7046 = NAND(6955, 6839) +7047 = NAND(6956, 6841) +7048 = NOT(6957) +7049 = NOT(6844) +7054 = NAND(6964, 6851) +7057 = NAND(6965, 6853) +7060 = NAND(6966, 6855) +7064 = AND(6844, 6139) +7065 = AND(6857, 6703) +7072 = NOT(6881) +7073 = NAND(6881, 5172) +7074 = NOT(6885) +7075 = NAND(6885, 5727) +7076 = NAND(6890, 6987) +7079 = NOT(6891) +7080 = NAND(6896, 6990) +7083 = NOT(6897) +7084 = NOT(6901) +7085 = NAND(6901, 5198) +7086 = NOT(6905) +7087 = NAND(6905, 5731) +7088 = NOT(6909) +7089 = NAND(6909, 6912) +7090 = NAND(6915, 6999) +7093 = NOT(6916) +7094 = NAND(6974, 6973) +7097 = NAND(6976, 6975) +7101 = NAND(7002, 6923) +7105 = NOT(6932) +7110 = NOT(6967) +7114 = AND(6979, 603, 1755) +7115 = NOT(7019) +7116 = NOT(7021) +7125 = AND(6817, 7018) +7126 = AND(6817, 7020) +7127 = AND(6817, 7022) +7130 = NOT(7045) +7131 = NOT(7047) +7139 = AND(6844, 7044) +7140 = AND(6844, 7046) +7141 = AND(6844, 7048) +7146 = AND(6932, 1761, 3108) +7147 = AND(6967, 1777, 3130) +7149 = NOT(7003) +7150 = NOT(7006) +7151 = NAND(7006, 6876) +7152 = NAND(4605, 7072) +7153 = NAND(5173, 7074) +7158 = NAND(4646, 7084) +7159 = NAND(5205, 7086) +7160 = NAND(6606, 7088) +7166 = NOT(7037) +7167 = NOT(7034) +7168 = NOT(7031) +7169 = NOT(7028) +7170 = NOT(7060) +7171 = NOT(7057) +7172 = NOT(7054) +7173 = AND(7115, 7023) +7174 = AND(7116, 7023) +7175 = AND(6940, 7023) +7176 = AND(5418, 7023) +7177 = NOT(7041) +7178 = AND(7130, 7049) +7179 = AND(7131, 7049) +7180 = AND(6958, 7049) +7181 = AND(5573, 7049) +7182 = NOT(7065) +7183 = NOT(7094) +7184 = NAND(7094, 6977) +7185 = NOT(7097) +7186 = NAND(7097, 6978) +7187 = AND(7037, 1761, 3108) +7188 = AND(7034, 1761, 3108) +7189 = AND(7031, 1761, 3108) +7190 = OR(4956, 7146, 3781) +7196 = AND(7060, 1777, 3130) +7197 = AND(7057, 1777, 3130) +7198 = OR(4960, 7147, 3786) +7204 = NAND(7101, 7149) +7205 = NOT(7101) +7206 = NAND(6637, 7150) +7207 = AND(7028, 1793, 3158) +7208 = AND(7054, 1807, 3180) +7209 = NAND(7073, 7152) +7212 = NAND(7075, 7153) +7215 = NOT(7076) +7216 = NAND(7076, 7079) +7217 = NOT(7080) +7218 = NAND(7080, 7083) +7219 = NAND(7085, 7158) +7222 = NAND(7087, 7159) +7225 = NAND(7089, 7160) +7228 = NOT(7090) +7229 = NAND(7090, 7093) +7236 = OR(7173, 7125) +7239 = OR(7174, 7126) +7242 = OR(7175, 7127) +7245 = OR(7176, 7040) +7250 = OR(7178, 7139) +7257 = OR(7179, 7140) +7260 = OR(7180, 7141) +7263 = OR(7181, 7064) +7268 = NAND(6792, 7183) +7269 = NAND(6795, 7185) +7270 = OR(4957, 7187, 3782) +7276 = OR(4958, 7188, 3783) +7282 = OR(4959, 7189, 3784) +7288 = OR(4961, 7196, 3787) +7294 = OR(3998, 7197, 3788) +7300 = NAND(7003, 7205) +7301 = NAND(7206, 7151) +7304 = OR(4980, 7207, 3800) +7310 = OR(4984, 7208, 3805) +7320 = NAND(6891, 7215) +7321 = NAND(6897, 7217) +7328 = NAND(6916, 7228) +7338 = AND(7190, 1185, 2692) +7339 = AND(7198, 2681, 2692) +7340 = AND(7190, 1247, 2767) +7341 = AND(7198, 2756, 2767) +7342 = AND(7190, 1327, 2790) +7349 = AND(7198, 2779, 2790) +7357 = AND(7198, 2801, 2812) +7363 = NOT(7198) +7364 = AND(7190, 1351, 2812) +7365 = NOT(7190) +7394 = NAND(7268, 7184) +7397 = NAND(7269, 7186) +7402 = NAND(7204, 7300) +7405 = NOT(7209) +7406 = NAND(7209, 6884) +7407 = NOT(7212) +7408 = NAND(7212, 6888) +7409 = NAND(7320, 7216) +7412 = NAND(7321, 7218) +7415 = NOT(7219) +7416 = NAND(7219, 6904) +7417 = NOT(7222) +7418 = NAND(7222, 6908) +7419 = NOT(7225) +7420 = NAND(7225, 6913) +7421 = NAND(7328, 7229) +7424 = NOT(7245) +7425 = NOT(7242) +7426 = NOT(7239) +7427 = NOT(7236) +7428 = NOT(7263) +7429 = NOT(7260) +7430 = NOT(7257) +7431 = NOT(7250) +7432 = NOT(7250) +7433 = AND(7310, 2653, 2664) +7434 = AND(7304, 1161, 2664) +7435 = OR(7011, 7338, 3621, 2591) +7436 = AND(7270, 1185, 2692) +7437 = AND(7288, 2681, 2692) +7438 = AND(7276, 1185, 2692) +7439 = AND(7294, 2681, 2692) +7440 = AND(7282, 1185, 2692) +7441 = AND(7310, 2728, 2739) +7442 = AND(7304, 1223, 2739) +7443 = OR(7012, 7340, 3632, 2600) +7444 = AND(7270, 1247, 2767) +7445 = AND(7288, 2756, 2767) +7446 = AND(7276, 1247, 2767) +7447 = AND(7294, 2756, 2767) +7448 = AND(7282, 1247, 2767) +7449 = OR(7013, 7342, 3641, 2605) +7450 = AND(7310, 3041, 3052) +7451 = AND(7304, 1697, 3052) +7452 = AND(7294, 2779, 2790) +7453 = AND(7282, 1327, 2790) +7454 = AND(7288, 2779, 2790) +7455 = AND(7276, 1327, 2790) +7456 = AND(7270, 1327, 2790) +7457 = AND(7310, 3075, 3086) +7458 = AND(7304, 1731, 3086) +7459 = AND(7294, 2801, 2812) +7460 = AND(7282, 1351, 2812) +7461 = AND(7288, 2801, 2812) +7462 = AND(7276, 1351, 2812) +7463 = AND(7270, 1351, 2812) +7464 = AND(7250, 603, 599) +7465 = NOT(7310) +7466 = NOT(7294) +7467 = NOT(7288) +7468 = NOT(7301) +7469 = OR(7016, 7364, 3660, 2626) +7470 = NOT(7304) +7471 = NOT(7282) +7472 = NOT(7276) +7473 = NOT(7270) +7474 = BUFF(7394) +7476 = BUFF(7397) +7479 = AND(7301, 3068) +7481 = AND(7245, 1793, 3158) +7482 = AND(7242, 1793, 3158) +7483 = AND(7239, 1793, 3158) +7484 = AND(7236, 1793, 3158) +7485 = AND(7263, 1807, 3180) +7486 = AND(7260, 1807, 3180) +7487 = AND(7257, 1807, 3180) +7488 = AND(7250, 1807, 3180) +7489 = NAND(6979, 7250) +7492 = NAND(6516, 7405) +7493 = NAND(6526, 7407) +7498 = NAND(6592, 7415) +7499 = NAND(6599, 7417) +7500 = NAND(6609, 7419) +7503 = AND(7105, 7166, 7167, 7168, 7169, 7424, 7425, 7426, 7427) +7504 = AND(6640, 7110, 7170, 7171, 7172, 7428, 7429, 7430, 7431) +7505 = OR(7433, 7434, 3616, 2585) +7506 = AND(7435, 2675) +7507 = OR(7339, 7436, 3622, 2592) +7508 = OR(7437, 7438, 3623, 2593) +7509 = OR(7439, 7440, 3624, 2594) +7510 = OR(7441, 7442, 3627, 2595) +7511 = AND(7443, 2750) +7512 = OR(7341, 7444, 3633, 2601) +7513 = OR(7445, 7446, 3634, 2602) +7514 = OR(7447, 7448, 3635, 2603) +7515 = OR(7450, 7451, 3646, 2610) +7516 = OR(7452, 7453, 3647, 2611) +7517 = OR(7454, 7455, 3648, 2612) +7518 = OR(7349, 7456, 3649, 2613) +7519 = OR(7457, 7458, 3654, 2618) +7520 = OR(7459, 7460, 3655, 2619) +7521 = OR(7461, 7462, 3656, 2620) +7522 = OR(7357, 7463, 3657, 2621) +7525 = OR(4741, 7114, 2624, 7464) +7526 = AND(7468, 3119, 3130) +7527 = NOT(7394) +7528 = NOT(7397) +7529 = NOT(7402) +7530 = AND(7402, 3068) +7531 = OR(4981, 7481, 3801) +7537 = OR(4982, 7482, 3802) +7543 = OR(4983, 7483, 3803) +7549 = OR(5165, 7484, 3804) +7555 = OR(4985, 7485, 3806) +7561 = OR(4986, 7486, 3807) +7567 = OR(4547, 7487, 3808) +7573 = OR(4987, 7488, 3809) +7579 = NAND(7492, 7406) +7582 = NAND(7493, 7408) +7585 = NOT(7409) +7586 = NAND(7409, 6894) +7587 = NOT(7412) +7588 = NAND(7412, 6900) +7589 = NAND(7498, 7416) +7592 = NAND(7499, 7418) +7595 = NAND(7500, 7420) +7598 = NOT(7421) +7599 = NAND(7421, 6919) +7600 = AND(7505, 2647) +7601 = AND(7507, 2675) +7602 = AND(7508, 2675) +7603 = AND(7509, 2675) +7604 = AND(7510, 2722) +7605 = AND(7512, 2750) +7606 = AND(7513, 2750) +7607 = AND(7514, 2750) +7624 = AND(6979, 7489) +7625 = AND(7489, 7250) +7626 = AND(1149, 7525) +7631 = AND(562, 7527, 7528, 6805, 6930) +7636 = AND(7529, 3097, 3108) +7657 = NAND(6539, 7585) +7658 = NAND(6556, 7587) +7665 = NAND(6622, 7598) +7666 = AND(7555, 2653, 2664) +7667 = AND(7531, 1161, 2664) +7668 = AND(7561, 2653, 2664) +7669 = AND(7537, 1161, 2664) +7670 = AND(7567, 2653, 2664) +7671 = AND(7543, 1161, 2664) +7672 = AND(7573, 2653, 2664) +7673 = AND(7549, 1161, 2664) +7674 = AND(7555, 2728, 2739) +7675 = AND(7531, 1223, 2739) +7676 = AND(7561, 2728, 2739) +7677 = AND(7537, 1223, 2739) +7678 = AND(7567, 2728, 2739) +7679 = AND(7543, 1223, 2739) +7680 = AND(7573, 2728, 2739) +7681 = AND(7549, 1223, 2739) +7682 = AND(7573, 3075, 3086) +7683 = AND(7549, 1731, 3086) +7684 = AND(7573, 3041, 3052) +7685 = AND(7549, 1697, 3052) +7686 = AND(7567, 3041, 3052) +7687 = AND(7543, 1697, 3052) +7688 = AND(7561, 3041, 3052) +7689 = AND(7537, 1697, 3052) +7690 = AND(7555, 3041, 3052) +7691 = AND(7531, 1697, 3052) +7692 = AND(7567, 3075, 3086) +7693 = AND(7543, 1731, 3086) +7694 = AND(7561, 3075, 3086) +7695 = AND(7537, 1731, 3086) +7696 = AND(7555, 3075, 3086) +7697 = AND(7531, 1731, 3086) +7698 = OR(7624, 7625) +7699 = NOT(7573) +7700 = NOT(7567) +7701 = NOT(7561) +7702 = NOT(7555) +7703 = AND(1156, 7631, 245) +7704 = NOT(7549) +7705 = NOT(7543) +7706 = NOT(7537) +7707 = NOT(7531) +7708 = NOT(7579) +7709 = NAND(7579, 6739) +7710 = NOT(7582) +7711 = NAND(7582, 6744) +7712 = NAND(7657, 7586) +7715 = NAND(7658, 7588) +7718 = NOT(7589) +7719 = NAND(7589, 6772) +7720 = NOT(7592) +7721 = NAND(7592, 6776) +7722 = NOT(7595) +7723 = NAND(7595, 5733) +7724 = NAND(7665, 7599) +7727 = OR(7666, 7667, 3617, 2586) +7728 = OR(7668, 7669, 3618, 2587) +7729 = OR(7670, 7671, 3619, 2588) +7730 = OR(7672, 7673, 3620, 2589) +7731 = OR(7674, 7675, 3628, 2596) +7732 = OR(7676, 7677, 3629, 2597) +7733 = OR(7678, 7679, 3630, 2598) +7734 = OR(7680, 7681, 3631, 2599) +7735 = OR(7682, 7683, 3638, 2604) +7736 = OR(7684, 7685, 3642, 2606) +7737 = OR(7686, 7687, 3643, 2607) +7738 = OR(7688, 7689, 3644, 2608) +7739 = OR(7690, 7691, 3645, 2609) +7740 = OR(7692, 7693, 3651, 2615) +7741 = OR(7694, 7695, 3652, 2616) +7742 = OR(7696, 7697, 3653, 2617) +7743 = NAND(6271, 7708) +7744 = NAND(6283, 7710) +7749 = NAND(6341, 7718) +7750 = NAND(6347, 7720) +7751 = NAND(5214, 7722) +7754 = AND(7727, 2647) +7755 = AND(7728, 2647) +7756 = AND(7729, 2647) +7757 = AND(7730, 2647) +7758 = AND(7731, 2722) +7759 = AND(7732, 2722) +7760 = AND(7733, 2722) +7761 = AND(7734, 2722) +7762 = NAND(7743, 7709) +7765 = NAND(7744, 7711) +7768 = NOT(7712) +7769 = NAND(7712, 6751) +7770 = NOT(7715) +7771 = NAND(7715, 6760) +7772 = NAND(7749, 7719) +7775 = NAND(7750, 7721) +7778 = NAND(7751, 7723) +7781 = NOT(7724) +7782 = NAND(7724, 5735) +7787 = NAND(6295, 7768) +7788 = NAND(6313, 7770) +7795 = NAND(5220, 7781) +7796 = NOT(7762) +7797 = NAND(7762, 6740) +7798 = NOT(7765) +7799 = NAND(7765, 6745) +7800 = NAND(7787, 7769) +7803 = NAND(7788, 7771) +7806 = NOT(7772) +7807 = NAND(7772, 6773) +7808 = NOT(7775) +7809 = NAND(7775, 6777) +7810 = NOT(7778) +7811 = NAND(7778, 6782) +7812 = NAND(7795, 7782) +7815 = NAND(6274, 7796) +7816 = NAND(6286, 7798) +7821 = NAND(6344, 7806) +7822 = NAND(6350, 7808) +7823 = NAND(6353, 7810) +7826 = NAND(7815, 7797) +7829 = NAND(7816, 7799) +7832 = NOT(7800) +7833 = NAND(7800, 6752) +7834 = NOT(7803) +7835 = NAND(7803, 6761) +7836 = NAND(7821, 7807) +7839 = NAND(7822, 7809) +7842 = NAND(7823, 7811) +7845 = NOT(7812) +7846 = NAND(7812, 6790) +7851 = NAND(6298, 7832) +7852 = NAND(6316, 7834) +7859 = NAND(6364, 7845) +7860 = NOT(7826) +7861 = NAND(7826, 6741) +7862 = NOT(7829) +7863 = NAND(7829, 6746) +7864 = NAND(7851, 7833) +7867 = NAND(7852, 7835) +7870 = NOT(7836) +7871 = NAND(7836, 5730) +7872 = NOT(7839) +7873 = NAND(7839, 5732) +7874 = NOT(7842) +7875 = NAND(7842, 6783) +7876 = NAND(7859, 7846) +7879 = NAND(6277, 7860) +7880 = NAND(6289, 7862) +7885 = NAND(5199, 7870) +7886 = NAND(5208, 7872) +7887 = NAND(6356, 7874) +7890 = NAND(7879, 7861) +7893 = NAND(7880, 7863) +7896 = NOT(7864) +7897 = NAND(7864, 6753) +7898 = NOT(7867) +7899 = NAND(7867, 6762) +7900 = NAND(7885, 7871) +7903 = NAND(7886, 7873) +7906 = NAND(7887, 7875) +7909 = NOT(7876) +7910 = NAND(7876, 6791) +7917 = NAND(6301, 7896) +7918 = NAND(6319, 7898) +7923 = NAND(6367, 7909) +7924 = NOT(7890) +7925 = NAND(7890, 6680) +7926 = NOT(7893) +7927 = NAND(7893, 6681) +7928 = NOT(7900) +7929 = NAND(7900, 5690) +7930 = NOT(7903) +7931 = NAND(7903, 5691) +7932 = NAND(7917, 7897) +7935 = NAND(7918, 7899) +7938 = NOT(7906) +7939 = NAND(7906, 6784) +7940 = NAND(7923, 7910) +7943 = NAND(6280, 7924) +7944 = NAND(6292, 7926) +7945 = NAND(5202, 7928) +7946 = NAND(5211, 7930) +7951 = NAND(6359, 7938) +7954 = NAND(7943, 7925) +7957 = NAND(7944, 7927) +7960 = NAND(7945, 7929) +7963 = NAND(7946, 7931) +7966 = NOT(7932) +7967 = NAND(7932, 6754) +7968 = NOT(7935) +7969 = NAND(7935, 6755) +7970 = NAND(7951, 7939) +7973 = NOT(7940) +7974 = NAND(7940, 6785) +7984 = NAND(6304, 7966) +7985 = NAND(6322, 7968) +7987 = NAND(6370, 7973) +7988 = AND(7957, 6831, 1157) +7989 = AND(7954, 6415, 1157) +7990 = AND(7957, 7041, 566) +7991 = AND(7954, 7177, 566) +7992 = NOT(7970) +7993 = NAND(7970, 6448) +7994 = AND(7963, 6857, 1219) +7995 = AND(7960, 6441, 1219) +7996 = AND(7963, 7065, 583) +7997 = AND(7960, 7182, 583) +7998 = NAND(7984, 7967) +8001 = NAND(7985, 7969) +8004 = NAND(7987, 7974) +8009 = NAND(6051, 7992) +8013 = OR(7988, 7989, 7990, 7991) +8017 = OR(7994, 7995, 7996, 7997) +8020 = NOT(7998) +8021 = NAND(7998, 6682) +8022 = NOT(8001) +8023 = NAND(8001, 6683) +8025 = NAND(8009, 7993) +8026 = NOT(8004) +8027 = NAND(8004, 6449) +8031 = NAND(6307, 8020) +8032 = NAND(6310, 8022) +8033 = NOT(8013) +8034 = NAND(6054, 8026) +8035 = AND(583, 8025) +8036 = NOT(8017) +8037 = NAND(8031, 8021) +8038 = NAND(8032, 8023) +8039 = NAND(8034, 8027) +8040 = NOT(8038) +8041 = AND(566, 8037) +8042 = NOT(8039) +8043 = AND(8040, 1157) +8044 = AND(8042, 1219) +8045 = OR(8043, 8041) +8048 = OR(8044, 8035) +8055 = NAND(8045, 8033) +8056 = NOT(8045) +8057 = NAND(8048, 8036) +8058 = NOT(8048) +8059 = NAND(8013, 8056) +8060 = NAND(8017, 8058) +8061 = NAND(8055, 8059) +8064 = NAND(8057, 8060) +8071 = AND(8064, 1777, 3130) +8072 = AND(8061, 1761, 3108) +8073 = NOT(8061) +8074 = NOT(8064) +8075 = OR(7526, 8071, 3659, 2625) +8076 = OR(7636, 8072, 3661, 2627) +8077 = AND(8073, 1727) +8078 = AND(8074, 1727) +8079 = OR(7530, 8077) +8082 = OR(7479, 8078) +8089 = AND(8079, 3063) +8090 = AND(8082, 3063) +8091 = AND(8079, 3063) +8092 = AND(8082, 3063) +8093 = OR(8089, 3071) +8096 = OR(8090, 3072) +8099 = OR(8091, 3073) +8102 = OR(8092, 3074) +8113 = AND(8102, 2779, 2790) +8114 = AND(8099, 1327, 2790) +8115 = AND(8102, 2801, 2812) +8116 = AND(8099, 1351, 2812) +8117 = AND(8096, 2681, 2692) +8118 = AND(8093, 1185, 2692) +8119 = AND(8096, 2756, 2767) +8120 = AND(8093, 1247, 2767) +8121 = OR(8117, 8118, 3662, 2703) +8122 = OR(8119, 8120, 3663, 2778) +8123 = OR(8113, 8114, 3650, 2614) +8124 = OR(8115, 8116, 3658, 2622) +8125 = AND(8121, 2675) +8126 = AND(8122, 2750) +8127 = NOT(8125) +8128 = NOT(8126) diff --git a/testcase/c6288.bench b/testcase/c6288.bench new file mode 100755 index 0000000000..0a5a493e66 --- /dev/null +++ b/testcase/c6288.bench @@ -0,0 +1,2488 @@ +# c6288 +# 32 inputs +# 32 outputs +# 32 inverters +# 2384 gates ( 256 ANDs + 32 NANDs + 2128 NORs ) + +INPUT(1) +INPUT(18) +INPUT(35) +INPUT(52) +INPUT(69) +INPUT(86) +INPUT(103) +INPUT(120) +INPUT(137) +INPUT(154) +INPUT(171) +INPUT(188) +INPUT(205) +INPUT(222) +INPUT(239) +INPUT(256) +INPUT(273) +INPUT(290) +INPUT(307) +INPUT(324) +INPUT(341) +INPUT(358) +INPUT(375) +INPUT(392) +INPUT(409) +INPUT(426) +INPUT(443) +INPUT(460) +INPUT(477) +INPUT(494) +INPUT(511) +INPUT(528) + +OUTPUT(545) +OUTPUT(1581) +OUTPUT(1901) +OUTPUT(2223) +OUTPUT(2548) +OUTPUT(2877) +OUTPUT(3211) +OUTPUT(3552) +OUTPUT(3895) +OUTPUT(4241) +OUTPUT(4591) +OUTPUT(4946) +OUTPUT(5308) +OUTPUT(5672) +OUTPUT(5971) +OUTPUT(6123) +OUTPUT(6150) +OUTPUT(6160) +OUTPUT(6170) +OUTPUT(6180) +OUTPUT(6190) +OUTPUT(6200) +OUTPUT(6210) +OUTPUT(6220) +OUTPUT(6230) +OUTPUT(6240) +OUTPUT(6250) +OUTPUT(6260) +OUTPUT(6270) +OUTPUT(6280) +OUTPUT(6287) +OUTPUT(6288) + +545 = AND(1, 273) +546 = AND(1, 290) +549 = AND(1, 307) +552 = AND(1, 324) +555 = AND(1, 341) +558 = AND(1, 358) +561 = AND(1, 375) +564 = AND(1, 392) +567 = AND(1, 409) +570 = AND(1, 426) +573 = AND(1, 443) +576 = AND(1, 460) +579 = AND(1, 477) +582 = AND(1, 494) +585 = AND(1, 511) +588 = AND(1, 528) +591 = AND(18, 273) +594 = AND(18, 290) +597 = AND(18, 307) +600 = AND(18, 324) +603 = AND(18, 341) +606 = AND(18, 358) +609 = AND(18, 375) +612 = AND(18, 392) +615 = AND(18, 409) +618 = AND(18, 426) +621 = AND(18, 443) +624 = AND(18, 460) +627 = AND(18, 477) +630 = AND(18, 494) +633 = AND(18, 511) +636 = AND(18, 528) +639 = AND(35, 273) +642 = AND(35, 290) +645 = AND(35, 307) +648 = AND(35, 324) +651 = AND(35, 341) +654 = AND(35, 358) +657 = AND(35, 375) +660 = AND(35, 392) +663 = AND(35, 409) +666 = AND(35, 426) +669 = AND(35, 443) +672 = AND(35, 460) +675 = AND(35, 477) +678 = AND(35, 494) +681 = AND(35, 511) +684 = AND(35, 528) +687 = AND(52, 273) +690 = AND(52, 290) +693 = AND(52, 307) +696 = AND(52, 324) +699 = AND(52, 341) +702 = AND(52, 358) +705 = AND(52, 375) +708 = AND(52, 392) +711 = AND(52, 409) +714 = AND(52, 426) +717 = AND(52, 443) +720 = AND(52, 460) +723 = AND(52, 477) +726 = AND(52, 494) +729 = AND(52, 511) +732 = AND(52, 528) +735 = AND(69, 273) +738 = AND(69, 290) +741 = AND(69, 307) +744 = AND(69, 324) +747 = AND(69, 341) +750 = AND(69, 358) +753 = AND(69, 375) +756 = AND(69, 392) +759 = AND(69, 409) +762 = AND(69, 426) +765 = AND(69, 443) +768 = AND(69, 460) +771 = AND(69, 477) +774 = AND(69, 494) +777 = AND(69, 511) +780 = AND(69, 528) +783 = AND(86, 273) +786 = AND(86, 290) +789 = AND(86, 307) +792 = AND(86, 324) +795 = AND(86, 341) +798 = AND(86, 358) +801 = AND(86, 375) +804 = AND(86, 392) +807 = AND(86, 409) +810 = AND(86, 426) +813 = AND(86, 443) +816 = AND(86, 460) +819 = AND(86, 477) +822 = AND(86, 494) +825 = AND(86, 511) +828 = AND(86, 528) +831 = AND(103, 273) +834 = AND(103, 290) +837 = AND(103, 307) +840 = AND(103, 324) +843 = AND(103, 341) +846 = AND(103, 358) +849 = AND(103, 375) +852 = AND(103, 392) +855 = AND(103, 409) +858 = AND(103, 426) +861 = AND(103, 443) +864 = AND(103, 460) +867 = AND(103, 477) +870 = AND(103, 494) +873 = AND(103, 511) +876 = AND(103, 528) +879 = AND(120, 273) +882 = AND(120, 290) +885 = AND(120, 307) +888 = AND(120, 324) +891 = AND(120, 341) +894 = AND(120, 358) +897 = AND(120, 375) +900 = AND(120, 392) +903 = AND(120, 409) +906 = AND(120, 426) +909 = AND(120, 443) +912 = AND(120, 460) +915 = AND(120, 477) +918 = AND(120, 494) +921 = AND(120, 511) +924 = AND(120, 528) +927 = AND(137, 273) +930 = AND(137, 290) +933 = AND(137, 307) +936 = AND(137, 324) +939 = AND(137, 341) +942 = AND(137, 358) +945 = AND(137, 375) +948 = AND(137, 392) +951 = AND(137, 409) +954 = AND(137, 426) +957 = AND(137, 443) +960 = AND(137, 460) +963 = AND(137, 477) +966 = AND(137, 494) +969 = AND(137, 511) +972 = AND(137, 528) +975 = AND(154, 273) +978 = AND(154, 290) +981 = AND(154, 307) +984 = AND(154, 324) +987 = AND(154, 341) +990 = AND(154, 358) +993 = AND(154, 375) +996 = AND(154, 392) +999 = AND(154, 409) +1002 = AND(154, 426) +1005 = AND(154, 443) +1008 = AND(154, 460) +1011 = AND(154, 477) +1014 = AND(154, 494) +1017 = AND(154, 511) +1020 = AND(154, 528) +1023 = AND(171, 273) +1026 = AND(171, 290) +1029 = AND(171, 307) +1032 = AND(171, 324) +1035 = AND(171, 341) +1038 = AND(171, 358) +1041 = AND(171, 375) +1044 = AND(171, 392) +1047 = AND(171, 409) +1050 = AND(171, 426) +1053 = AND(171, 443) +1056 = AND(171, 460) +1059 = AND(171, 477) +1062 = AND(171, 494) +1065 = AND(171, 511) +1068 = AND(171, 528) +1071 = AND(188, 273) +1074 = AND(188, 290) +1077 = AND(188, 307) +1080 = AND(188, 324) +1083 = AND(188, 341) +1086 = AND(188, 358) +1089 = AND(188, 375) +1092 = AND(188, 392) +1095 = AND(188, 409) +1098 = AND(188, 426) +1101 = AND(188, 443) +1104 = AND(188, 460) +1107 = AND(188, 477) +1110 = AND(188, 494) +1113 = AND(188, 511) +1116 = AND(188, 528) +1119 = AND(205, 273) +1122 = AND(205, 290) +1125 = AND(205, 307) +1128 = AND(205, 324) +1131 = AND(205, 341) +1134 = AND(205, 358) +1137 = AND(205, 375) +1140 = AND(205, 392) +1143 = AND(205, 409) +1146 = AND(205, 426) +1149 = AND(205, 443) +1152 = AND(205, 460) +1155 = AND(205, 477) +1158 = AND(205, 494) +1161 = AND(205, 511) +1164 = AND(205, 528) +1167 = AND(222, 273) +1170 = AND(222, 290) +1173 = AND(222, 307) +1176 = AND(222, 324) +1179 = AND(222, 341) +1182 = AND(222, 358) +1185 = AND(222, 375) +1188 = AND(222, 392) +1191 = AND(222, 409) +1194 = AND(222, 426) +1197 = AND(222, 443) +1200 = AND(222, 460) +1203 = AND(222, 477) +1206 = AND(222, 494) +1209 = AND(222, 511) +1212 = AND(222, 528) +1215 = AND(239, 273) +1218 = AND(239, 290) +1221 = AND(239, 307) +1224 = AND(239, 324) +1227 = AND(239, 341) +1230 = AND(239, 358) +1233 = AND(239, 375) +1236 = AND(239, 392) +1239 = AND(239, 409) +1242 = AND(239, 426) +1245 = AND(239, 443) +1248 = AND(239, 460) +1251 = AND(239, 477) +1254 = AND(239, 494) +1257 = AND(239, 511) +1260 = AND(239, 528) +1263 = AND(256, 273) +1266 = AND(256, 290) +1269 = AND(256, 307) +1272 = AND(256, 324) +1275 = AND(256, 341) +1278 = AND(256, 358) +1281 = AND(256, 375) +1284 = AND(256, 392) +1287 = AND(256, 409) +1290 = AND(256, 426) +1293 = AND(256, 443) +1296 = AND(256, 460) +1299 = AND(256, 477) +1302 = AND(256, 494) +1305 = AND(256, 511) +1308 = AND(256, 528) +1311 = NOT(591) +1315 = NOT(639) +1319 = NOT(687) +1323 = NOT(735) +1327 = NOT(783) +1331 = NOT(831) +1335 = NOT(879) +1339 = NOT(927) +1343 = NOT(975) +1347 = NOT(1023) +1351 = NOT(1071) +1355 = NOT(1119) +1359 = NOT(1167) +1363 = NOT(1215) +1367 = NOT(1263) +1371 = NOR(591, 1311) +1372 = NOT(1311) +1373 = NOR(639, 1315) +1374 = NOT(1315) +1375 = NOR(687, 1319) +1376 = NOT(1319) +1377 = NOR(735, 1323) +1378 = NOT(1323) +1379 = NOR(783, 1327) +1380 = NOT(1327) +1381 = NOR(831, 1331) +1382 = NOT(1331) +1383 = NOR(879, 1335) +1384 = NOT(1335) +1385 = NOR(927, 1339) +1386 = NOT(1339) +1387 = NOR(975, 1343) +1388 = NOT(1343) +1389 = NOR(1023, 1347) +1390 = NOT(1347) +1391 = NOR(1071, 1351) +1392 = NOT(1351) +1393 = NOR(1119, 1355) +1394 = NOT(1355) +1395 = NOR(1167, 1359) +1396 = NOT(1359) +1397 = NOR(1215, 1363) +1398 = NOT(1363) +1399 = NOR(1263, 1367) +1400 = NOT(1367) +1401 = NOR(1371, 1372) +1404 = NOR(1373, 1374) +1407 = NOR(1375, 1376) +1410 = NOR(1377, 1378) +1413 = NOR(1379, 1380) +1416 = NOR(1381, 1382) +1419 = NOR(1383, 1384) +1422 = NOR(1385, 1386) +1425 = NOR(1387, 1388) +1428 = NOR(1389, 1390) +1431 = NOR(1391, 1392) +1434 = NOR(1393, 1394) +1437 = NOR(1395, 1396) +1440 = NOR(1397, 1398) +1443 = NOR(1399, 1400) +1446 = NOR(1401, 546) +1450 = NOR(1404, 594) +1454 = NOR(1407, 642) +1458 = NOR(1410, 690) +1462 = NOR(1413, 738) +1466 = NOR(1416, 786) +1470 = NOR(1419, 834) +1474 = NOR(1422, 882) +1478 = NOR(1425, 930) +1482 = NOR(1428, 978) +1486 = NOR(1431, 1026) +1490 = NOR(1434, 1074) +1494 = NOR(1437, 1122) +1498 = NOR(1440, 1170) +1502 = NOR(1443, 1218) +1506 = NOR(1401, 1446) +1507 = NOR(1446, 546) +1508 = NOR(1311, 1446) +1511 = NOR(1404, 1450) +1512 = NOR(1450, 594) +1513 = NOR(1315, 1450) +1516 = NOR(1407, 1454) +1517 = NOR(1454, 642) +1518 = NOR(1319, 1454) +1521 = NOR(1410, 1458) +1522 = NOR(1458, 690) +1523 = NOR(1323, 1458) +1526 = NOR(1413, 1462) +1527 = NOR(1462, 738) +1528 = NOR(1327, 1462) +1531 = NOR(1416, 1466) +1532 = NOR(1466, 786) +1533 = NOR(1331, 1466) +1536 = NOR(1419, 1470) +1537 = NOR(1470, 834) +1538 = NOR(1335, 1470) +1541 = NOR(1422, 1474) +1542 = NOR(1474, 882) +1543 = NOR(1339, 1474) +1546 = NOR(1425, 1478) +1547 = NOR(1478, 930) +1548 = NOR(1343, 1478) +1551 = NOR(1428, 1482) +1552 = NOR(1482, 978) +1553 = NOR(1347, 1482) +1556 = NOR(1431, 1486) +1557 = NOR(1486, 1026) +1558 = NOR(1351, 1486) +1561 = NOR(1434, 1490) +1562 = NOR(1490, 1074) +1563 = NOR(1355, 1490) +1566 = NOR(1437, 1494) +1567 = NOR(1494, 1122) +1568 = NOR(1359, 1494) +1571 = NOR(1440, 1498) +1572 = NOR(1498, 1170) +1573 = NOR(1363, 1498) +1576 = NOR(1443, 1502) +1577 = NOR(1502, 1218) +1578 = NOR(1367, 1502) +1581 = NOR(1506, 1507) +1582 = NOR(1511, 1512) +1585 = NOR(1516, 1517) +1588 = NOR(1521, 1522) +1591 = NOR(1526, 1527) +1594 = NOR(1531, 1532) +1597 = NOR(1536, 1537) +1600 = NOR(1541, 1542) +1603 = NOR(1546, 1547) +1606 = NOR(1551, 1552) +1609 = NOR(1556, 1557) +1612 = NOR(1561, 1562) +1615 = NOR(1566, 1567) +1618 = NOR(1571, 1572) +1621 = NOR(1576, 1577) +1624 = NOR(1266, 1578) +1628 = NOR(1582, 1508) +1632 = NOR(1585, 1513) +1636 = NOR(1588, 1518) +1640 = NOR(1591, 1523) +1644 = NOR(1594, 1528) +1648 = NOR(1597, 1533) +1652 = NOR(1600, 1538) +1656 = NOR(1603, 1543) +1660 = NOR(1606, 1548) +1664 = NOR(1609, 1553) +1668 = NOR(1612, 1558) +1672 = NOR(1615, 1563) +1676 = NOR(1618, 1568) +1680 = NOR(1621, 1573) +1684 = NOR(1266, 1624) +1685 = NOR(1624, 1578) +1686 = NOR(1582, 1628) +1687 = NOR(1628, 1508) +1688 = NOR(1585, 1632) +1689 = NOR(1632, 1513) +1690 = NOR(1588, 1636) +1691 = NOR(1636, 1518) +1692 = NOR(1591, 1640) +1693 = NOR(1640, 1523) +1694 = NOR(1594, 1644) +1695 = NOR(1644, 1528) +1696 = NOR(1597, 1648) +1697 = NOR(1648, 1533) +1698 = NOR(1600, 1652) +1699 = NOR(1652, 1538) +1700 = NOR(1603, 1656) +1701 = NOR(1656, 1543) +1702 = NOR(1606, 1660) +1703 = NOR(1660, 1548) +1704 = NOR(1609, 1664) +1705 = NOR(1664, 1553) +1706 = NOR(1612, 1668) +1707 = NOR(1668, 1558) +1708 = NOR(1615, 1672) +1709 = NOR(1672, 1563) +1710 = NOR(1618, 1676) +1711 = NOR(1676, 1568) +1712 = NOR(1621, 1680) +1713 = NOR(1680, 1573) +1714 = NOR(1684, 1685) +1717 = NOR(1686, 1687) +1720 = NOR(1688, 1689) +1723 = NOR(1690, 1691) +1726 = NOR(1692, 1693) +1729 = NOR(1694, 1695) +1732 = NOR(1696, 1697) +1735 = NOR(1698, 1699) +1738 = NOR(1700, 1701) +1741 = NOR(1702, 1703) +1744 = NOR(1704, 1705) +1747 = NOR(1706, 1707) +1750 = NOR(1708, 1709) +1753 = NOR(1710, 1711) +1756 = NOR(1712, 1713) +1759 = NOR(1714, 1221) +1763 = NOR(1717, 549) +1767 = NOR(1720, 597) +1771 = NOR(1723, 645) +1775 = NOR(1726, 693) +1779 = NOR(1729, 741) +1783 = NOR(1732, 789) +1787 = NOR(1735, 837) +1791 = NOR(1738, 885) +1795 = NOR(1741, 933) +1799 = NOR(1744, 981) +1803 = NOR(1747, 1029) +1807 = NOR(1750, 1077) +1811 = NOR(1753, 1125) +1815 = NOR(1756, 1173) +1819 = NOR(1714, 1759) +1820 = NOR(1759, 1221) +1821 = NOR(1624, 1759) +1824 = NOR(1717, 1763) +1825 = NOR(1763, 549) +1826 = NOR(1628, 1763) +1829 = NOR(1720, 1767) +1830 = NOR(1767, 597) +1831 = NOR(1632, 1767) +1834 = NOR(1723, 1771) +1835 = NOR(1771, 645) +1836 = NOR(1636, 1771) +1839 = NOR(1726, 1775) +1840 = NOR(1775, 693) +1841 = NOR(1640, 1775) +1844 = NOR(1729, 1779) +1845 = NOR(1779, 741) +1846 = NOR(1644, 1779) +1849 = NOR(1732, 1783) +1850 = NOR(1783, 789) +1851 = NOR(1648, 1783) +1854 = NOR(1735, 1787) +1855 = NOR(1787, 837) +1856 = NOR(1652, 1787) +1859 = NOR(1738, 1791) +1860 = NOR(1791, 885) +1861 = NOR(1656, 1791) +1864 = NOR(1741, 1795) +1865 = NOR(1795, 933) +1866 = NOR(1660, 1795) +1869 = NOR(1744, 1799) +1870 = NOR(1799, 981) +1871 = NOR(1664, 1799) +1874 = NOR(1747, 1803) +1875 = NOR(1803, 1029) +1876 = NOR(1668, 1803) +1879 = NOR(1750, 1807) +1880 = NOR(1807, 1077) +1881 = NOR(1672, 1807) +1884 = NOR(1753, 1811) +1885 = NOR(1811, 1125) +1886 = NOR(1676, 1811) +1889 = NOR(1756, 1815) +1890 = NOR(1815, 1173) +1891 = NOR(1680, 1815) +1894 = NOR(1819, 1820) +1897 = NOR(1269, 1821) +1901 = NOR(1824, 1825) +1902 = NOR(1829, 1830) +1905 = NOR(1834, 1835) +1908 = NOR(1839, 1840) +1911 = NOR(1844, 1845) +1914 = NOR(1849, 1850) +1917 = NOR(1854, 1855) +1920 = NOR(1859, 1860) +1923 = NOR(1864, 1865) +1926 = NOR(1869, 1870) +1929 = NOR(1874, 1875) +1932 = NOR(1879, 1880) +1935 = NOR(1884, 1885) +1938 = NOR(1889, 1890) +1941 = NOR(1894, 1891) +1945 = NOR(1269, 1897) +1946 = NOR(1897, 1821) +1947 = NOR(1902, 1826) +1951 = NOR(1905, 1831) +1955 = NOR(1908, 1836) +1959 = NOR(1911, 1841) +1963 = NOR(1914, 1846) +1967 = NOR(1917, 1851) +1971 = NOR(1920, 1856) +1975 = NOR(1923, 1861) +1979 = NOR(1926, 1866) +1983 = NOR(1929, 1871) +1987 = NOR(1932, 1876) +1991 = NOR(1935, 1881) +1995 = NOR(1938, 1886) +1999 = NOR(1894, 1941) +2000 = NOR(1941, 1891) +2001 = NOR(1945, 1946) +2004 = NOR(1902, 1947) +2005 = NOR(1947, 1826) +2006 = NOR(1905, 1951) +2007 = NOR(1951, 1831) +2008 = NOR(1908, 1955) +2009 = NOR(1955, 1836) +2010 = NOR(1911, 1959) +2011 = NOR(1959, 1841) +2012 = NOR(1914, 1963) +2013 = NOR(1963, 1846) +2014 = NOR(1917, 1967) +2015 = NOR(1967, 1851) +2016 = NOR(1920, 1971) +2017 = NOR(1971, 1856) +2018 = NOR(1923, 1975) +2019 = NOR(1975, 1861) +2020 = NOR(1926, 1979) +2021 = NOR(1979, 1866) +2022 = NOR(1929, 1983) +2023 = NOR(1983, 1871) +2024 = NOR(1932, 1987) +2025 = NOR(1987, 1876) +2026 = NOR(1935, 1991) +2027 = NOR(1991, 1881) +2028 = NOR(1938, 1995) +2029 = NOR(1995, 1886) +2030 = NOR(1999, 2000) +2033 = NOR(2001, 1224) +2037 = NOR(2004, 2005) +2040 = NOR(2006, 2007) +2043 = NOR(2008, 2009) +2046 = NOR(2010, 2011) +2049 = NOR(2012, 2013) +2052 = NOR(2014, 2015) +2055 = NOR(2016, 2017) +2058 = NOR(2018, 2019) +2061 = NOR(2020, 2021) +2064 = NOR(2022, 2023) +2067 = NOR(2024, 2025) +2070 = NOR(2026, 2027) +2073 = NOR(2028, 2029) +2076 = NOR(2030, 1176) +2080 = NOR(2001, 2033) +2081 = NOR(2033, 1224) +2082 = NOR(1897, 2033) +2085 = NOR(2037, 552) +2089 = NOR(2040, 600) +2093 = NOR(2043, 648) +2097 = NOR(2046, 696) +2101 = NOR(2049, 744) +2105 = NOR(2052, 792) +2109 = NOR(2055, 840) +2113 = NOR(2058, 888) +2117 = NOR(2061, 936) +2121 = NOR(2064, 984) +2125 = NOR(2067, 1032) +2129 = NOR(2070, 1080) +2133 = NOR(2073, 1128) +2137 = NOR(2030, 2076) +2138 = NOR(2076, 1176) +2139 = NOR(1941, 2076) +2142 = NOR(2080, 2081) +2145 = NOR(1272, 2082) +2149 = NOR(2037, 2085) +2150 = NOR(2085, 552) +2151 = NOR(1947, 2085) +2154 = NOR(2040, 2089) +2155 = NOR(2089, 600) +2156 = NOR(1951, 2089) +2159 = NOR(2043, 2093) +2160 = NOR(2093, 648) +2161 = NOR(1955, 2093) +2164 = NOR(2046, 2097) +2165 = NOR(2097, 696) +2166 = NOR(1959, 2097) +2169 = NOR(2049, 2101) +2170 = NOR(2101, 744) +2171 = NOR(1963, 2101) +2174 = NOR(2052, 2105) +2175 = NOR(2105, 792) +2176 = NOR(1967, 2105) +2179 = NOR(2055, 2109) +2180 = NOR(2109, 840) +2181 = NOR(1971, 2109) +2184 = NOR(2058, 2113) +2185 = NOR(2113, 888) +2186 = NOR(1975, 2113) +2189 = NOR(2061, 2117) +2190 = NOR(2117, 936) +2191 = NOR(1979, 2117) +2194 = NOR(2064, 2121) +2195 = NOR(2121, 984) +2196 = NOR(1983, 2121) +2199 = NOR(2067, 2125) +2200 = NOR(2125, 1032) +2201 = NOR(1987, 2125) +2204 = NOR(2070, 2129) +2205 = NOR(2129, 1080) +2206 = NOR(1991, 2129) +2209 = NOR(2073, 2133) +2210 = NOR(2133, 1128) +2211 = NOR(1995, 2133) +2214 = NOR(2137, 2138) +2217 = NOR(2142, 2139) +2221 = NOR(1272, 2145) +2222 = NOR(2145, 2082) +2223 = NOR(2149, 2150) +2224 = NOR(2154, 2155) +2227 = NOR(2159, 2160) +2230 = NOR(2164, 2165) +2233 = NOR(2169, 2170) +2236 = NOR(2174, 2175) +2239 = NOR(2179, 2180) +2242 = NOR(2184, 2185) +2245 = NOR(2189, 2190) +2248 = NOR(2194, 2195) +2251 = NOR(2199, 2200) +2254 = NOR(2204, 2205) +2257 = NOR(2209, 2210) +2260 = NOR(2214, 2211) +2264 = NOR(2142, 2217) +2265 = NOR(2217, 2139) +2266 = NOR(2221, 2222) +2269 = NOR(2224, 2151) +2273 = NOR(2227, 2156) +2277 = NOR(2230, 2161) +2281 = NOR(2233, 2166) +2285 = NOR(2236, 2171) +2289 = NOR(2239, 2176) +2293 = NOR(2242, 2181) +2297 = NOR(2245, 2186) +2301 = NOR(2248, 2191) +2305 = NOR(2251, 2196) +2309 = NOR(2254, 2201) +2313 = NOR(2257, 2206) +2317 = NOR(2214, 2260) +2318 = NOR(2260, 2211) +2319 = NOR(2264, 2265) +2322 = NOR(2266, 1227) +2326 = NOR(2224, 2269) +2327 = NOR(2269, 2151) +2328 = NOR(2227, 2273) +2329 = NOR(2273, 2156) +2330 = NOR(2230, 2277) +2331 = NOR(2277, 2161) +2332 = NOR(2233, 2281) +2333 = NOR(2281, 2166) +2334 = NOR(2236, 2285) +2335 = NOR(2285, 2171) +2336 = NOR(2239, 2289) +2337 = NOR(2289, 2176) +2338 = NOR(2242, 2293) +2339 = NOR(2293, 2181) +2340 = NOR(2245, 2297) +2341 = NOR(2297, 2186) +2342 = NOR(2248, 2301) +2343 = NOR(2301, 2191) +2344 = NOR(2251, 2305) +2345 = NOR(2305, 2196) +2346 = NOR(2254, 2309) +2347 = NOR(2309, 2201) +2348 = NOR(2257, 2313) +2349 = NOR(2313, 2206) +2350 = NOR(2317, 2318) +2353 = NOR(2319, 1179) +2357 = NOR(2266, 2322) +2358 = NOR(2322, 1227) +2359 = NOR(2145, 2322) +2362 = NOR(2326, 2327) +2365 = NOR(2328, 2329) +2368 = NOR(2330, 2331) +2371 = NOR(2332, 2333) +2374 = NOR(2334, 2335) +2377 = NOR(2336, 2337) +2380 = NOR(2338, 2339) +2383 = NOR(2340, 2341) +2386 = NOR(2342, 2343) +2389 = NOR(2344, 2345) +2392 = NOR(2346, 2347) +2395 = NOR(2348, 2349) +2398 = NOR(2350, 1131) +2402 = NOR(2319, 2353) +2403 = NOR(2353, 1179) +2404 = NOR(2217, 2353) +2407 = NOR(2357, 2358) +2410 = NOR(1275, 2359) +2414 = NOR(2362, 555) +2418 = NOR(2365, 603) +2422 = NOR(2368, 651) +2426 = NOR(2371, 699) +2430 = NOR(2374, 747) +2434 = NOR(2377, 795) +2438 = NOR(2380, 843) +2442 = NOR(2383, 891) +2446 = NOR(2386, 939) +2450 = NOR(2389, 987) +2454 = NOR(2392, 1035) +2458 = NOR(2395, 1083) +2462 = NOR(2350, 2398) +2463 = NOR(2398, 1131) +2464 = NOR(2260, 2398) +2467 = NOR(2402, 2403) +2470 = NOR(2407, 2404) +2474 = NOR(1275, 2410) +2475 = NOR(2410, 2359) +2476 = NOR(2362, 2414) +2477 = NOR(2414, 555) +2478 = NOR(2269, 2414) +2481 = NOR(2365, 2418) +2482 = NOR(2418, 603) +2483 = NOR(2273, 2418) +2486 = NOR(2368, 2422) +2487 = NOR(2422, 651) +2488 = NOR(2277, 2422) +2491 = NOR(2371, 2426) +2492 = NOR(2426, 699) +2493 = NOR(2281, 2426) +2496 = NOR(2374, 2430) +2497 = NOR(2430, 747) +2498 = NOR(2285, 2430) +2501 = NOR(2377, 2434) +2502 = NOR(2434, 795) +2503 = NOR(2289, 2434) +2506 = NOR(2380, 2438) +2507 = NOR(2438, 843) +2508 = NOR(2293, 2438) +2511 = NOR(2383, 2442) +2512 = NOR(2442, 891) +2513 = NOR(2297, 2442) +2516 = NOR(2386, 2446) +2517 = NOR(2446, 939) +2518 = NOR(2301, 2446) +2521 = NOR(2389, 2450) +2522 = NOR(2450, 987) +2523 = NOR(2305, 2450) +2526 = NOR(2392, 2454) +2527 = NOR(2454, 1035) +2528 = NOR(2309, 2454) +2531 = NOR(2395, 2458) +2532 = NOR(2458, 1083) +2533 = NOR(2313, 2458) +2536 = NOR(2462, 2463) +2539 = NOR(2467, 2464) +2543 = NOR(2407, 2470) +2544 = NOR(2470, 2404) +2545 = NOR(2474, 2475) +2548 = NOR(2476, 2477) +2549 = NOR(2481, 2482) +2552 = NOR(2486, 2487) +2555 = NOR(2491, 2492) +2558 = NOR(2496, 2497) +2561 = NOR(2501, 2502) +2564 = NOR(2506, 2507) +2567 = NOR(2511, 2512) +2570 = NOR(2516, 2517) +2573 = NOR(2521, 2522) +2576 = NOR(2526, 2527) +2579 = NOR(2531, 2532) +2582 = NOR(2536, 2533) +2586 = NOR(2467, 2539) +2587 = NOR(2539, 2464) +2588 = NOR(2543, 2544) +2591 = NOR(2545, 1230) +2595 = NOR(2549, 2478) +2599 = NOR(2552, 2483) +2603 = NOR(2555, 2488) +2607 = NOR(2558, 2493) +2611 = NOR(2561, 2498) +2615 = NOR(2564, 2503) +2619 = NOR(2567, 2508) +2623 = NOR(2570, 2513) +2627 = NOR(2573, 2518) +2631 = NOR(2576, 2523) +2635 = NOR(2579, 2528) +2639 = NOR(2536, 2582) +2640 = NOR(2582, 2533) +2641 = NOR(2586, 2587) +2644 = NOR(2588, 1182) +2648 = NOR(2545, 2591) +2649 = NOR(2591, 1230) +2650 = NOR(2410, 2591) +2653 = NOR(2549, 2595) +2654 = NOR(2595, 2478) +2655 = NOR(2552, 2599) +2656 = NOR(2599, 2483) +2657 = NOR(2555, 2603) +2658 = NOR(2603, 2488) +2659 = NOR(2558, 2607) +2660 = NOR(2607, 2493) +2661 = NOR(2561, 2611) +2662 = NOR(2611, 2498) +2663 = NOR(2564, 2615) +2664 = NOR(2615, 2503) +2665 = NOR(2567, 2619) +2666 = NOR(2619, 2508) +2667 = NOR(2570, 2623) +2668 = NOR(2623, 2513) +2669 = NOR(2573, 2627) +2670 = NOR(2627, 2518) +2671 = NOR(2576, 2631) +2672 = NOR(2631, 2523) +2673 = NOR(2579, 2635) +2674 = NOR(2635, 2528) +2675 = NOR(2639, 2640) +2678 = NOR(2641, 1134) +2682 = NOR(2588, 2644) +2683 = NOR(2644, 1182) +2684 = NOR(2470, 2644) +2687 = NOR(2648, 2649) +2690 = NOR(1278, 2650) +2694 = NOR(2653, 2654) +2697 = NOR(2655, 2656) +2700 = NOR(2657, 2658) +2703 = NOR(2659, 2660) +2706 = NOR(2661, 2662) +2709 = NOR(2663, 2664) +2712 = NOR(2665, 2666) +2715 = NOR(2667, 2668) +2718 = NOR(2669, 2670) +2721 = NOR(2671, 2672) +2724 = NOR(2673, 2674) +2727 = NOR(2675, 1086) +2731 = NOR(2641, 2678) +2732 = NOR(2678, 1134) +2733 = NOR(2539, 2678) +2736 = NOR(2682, 2683) +2739 = NOR(2687, 2684) +2743 = NOR(1278, 2690) +2744 = NOR(2690, 2650) +2745 = NOR(2694, 558) +2749 = NOR(2697, 606) +2753 = NOR(2700, 654) +2757 = NOR(2703, 702) +2761 = NOR(2706, 750) +2765 = NOR(2709, 798) +2769 = NOR(2712, 846) +2773 = NOR(2715, 894) +2777 = NOR(2718, 942) +2781 = NOR(2721, 990) +2785 = NOR(2724, 1038) +2789 = NOR(2675, 2727) +2790 = NOR(2727, 1086) +2791 = NOR(2582, 2727) +2794 = NOR(2731, 2732) +2797 = NOR(2736, 2733) +2801 = NOR(2687, 2739) +2802 = NOR(2739, 2684) +2803 = NOR(2743, 2744) +2806 = NOR(2694, 2745) +2807 = NOR(2745, 558) +2808 = NOR(2595, 2745) +2811 = NOR(2697, 2749) +2812 = NOR(2749, 606) +2813 = NOR(2599, 2749) +2816 = NOR(2700, 2753) +2817 = NOR(2753, 654) +2818 = NOR(2603, 2753) +2821 = NOR(2703, 2757) +2822 = NOR(2757, 702) +2823 = NOR(2607, 2757) +2826 = NOR(2706, 2761) +2827 = NOR(2761, 750) +2828 = NOR(2611, 2761) +2831 = NOR(2709, 2765) +2832 = NOR(2765, 798) +2833 = NOR(2615, 2765) +2836 = NOR(2712, 2769) +2837 = NOR(2769, 846) +2838 = NOR(2619, 2769) +2841 = NOR(2715, 2773) +2842 = NOR(2773, 894) +2843 = NOR(2623, 2773) +2846 = NOR(2718, 2777) +2847 = NOR(2777, 942) +2848 = NOR(2627, 2777) +2851 = NOR(2721, 2781) +2852 = NOR(2781, 990) +2853 = NOR(2631, 2781) +2856 = NOR(2724, 2785) +2857 = NOR(2785, 1038) +2858 = NOR(2635, 2785) +2861 = NOR(2789, 2790) +2864 = NOR(2794, 2791) +2868 = NOR(2736, 2797) +2869 = NOR(2797, 2733) +2870 = NOR(2801, 2802) +2873 = NOR(2803, 1233) +2877 = NOR(2806, 2807) +2878 = NOR(2811, 2812) +2881 = NOR(2816, 2817) +2884 = NOR(2821, 2822) +2887 = NOR(2826, 2827) +2890 = NOR(2831, 2832) +2893 = NOR(2836, 2837) +2896 = NOR(2841, 2842) +2899 = NOR(2846, 2847) +2902 = NOR(2851, 2852) +2905 = NOR(2856, 2857) +2908 = NOR(2861, 2858) +2912 = NOR(2794, 2864) +2913 = NOR(2864, 2791) +2914 = NOR(2868, 2869) +2917 = NOR(2870, 1185) +2921 = NOR(2803, 2873) +2922 = NOR(2873, 1233) +2923 = NOR(2690, 2873) +2926 = NOR(2878, 2808) +2930 = NOR(2881, 2813) +2934 = NOR(2884, 2818) +2938 = NOR(2887, 2823) +2942 = NOR(2890, 2828) +2946 = NOR(2893, 2833) +2950 = NOR(2896, 2838) +2954 = NOR(2899, 2843) +2958 = NOR(2902, 2848) +2962 = NOR(2905, 2853) +2966 = NOR(2861, 2908) +2967 = NOR(2908, 2858) +2968 = NOR(2912, 2913) +2971 = NOR(2914, 1137) +2975 = NOR(2870, 2917) +2976 = NOR(2917, 1185) +2977 = NOR(2739, 2917) +2980 = NOR(2921, 2922) +2983 = NOR(1281, 2923) +2987 = NOR(2878, 2926) +2988 = NOR(2926, 2808) +2989 = NOR(2881, 2930) +2990 = NOR(2930, 2813) +2991 = NOR(2884, 2934) +2992 = NOR(2934, 2818) +2993 = NOR(2887, 2938) +2994 = NOR(2938, 2823) +2995 = NOR(2890, 2942) +2996 = NOR(2942, 2828) +2997 = NOR(2893, 2946) +2998 = NOR(2946, 2833) +2999 = NOR(2896, 2950) +3000 = NOR(2950, 2838) +3001 = NOR(2899, 2954) +3002 = NOR(2954, 2843) +3003 = NOR(2902, 2958) +3004 = NOR(2958, 2848) +3005 = NOR(2905, 2962) +3006 = NOR(2962, 2853) +3007 = NOR(2966, 2967) +3010 = NOR(2968, 1089) +3014 = NOR(2914, 2971) +3015 = NOR(2971, 1137) +3016 = NOR(2797, 2971) +3019 = NOR(2975, 2976) +3022 = NOR(2980, 2977) +3026 = NOR(1281, 2983) +3027 = NOR(2983, 2923) +3028 = NOR(2987, 2988) +3031 = NOR(2989, 2990) +3034 = NOR(2991, 2992) +3037 = NOR(2993, 2994) +3040 = NOR(2995, 2996) +3043 = NOR(2997, 2998) +3046 = NOR(2999, 3000) +3049 = NOR(3001, 3002) +3052 = NOR(3003, 3004) +3055 = NOR(3005, 3006) +3058 = NOR(3007, 1041) +3062 = NOR(2968, 3010) +3063 = NOR(3010, 1089) +3064 = NOR(2864, 3010) +3067 = NOR(3014, 3015) +3070 = NOR(3019, 3016) +3074 = NOR(2980, 3022) +3075 = NOR(3022, 2977) +3076 = NOR(3026, 3027) +3079 = NOR(3028, 561) +3083 = NOR(3031, 609) +3087 = NOR(3034, 657) +3091 = NOR(3037, 705) +3095 = NOR(3040, 753) +3099 = NOR(3043, 801) +3103 = NOR(3046, 849) +3107 = NOR(3049, 897) +3111 = NOR(3052, 945) +3115 = NOR(3055, 993) +3119 = NOR(3007, 3058) +3120 = NOR(3058, 1041) +3121 = NOR(2908, 3058) +3124 = NOR(3062, 3063) +3127 = NOR(3067, 3064) +3131 = NOR(3019, 3070) +3132 = NOR(3070, 3016) +3133 = NOR(3074, 3075) +3136 = NOR(3076, 1236) +3140 = NOR(3028, 3079) +3141 = NOR(3079, 561) +3142 = NOR(2926, 3079) +3145 = NOR(3031, 3083) +3146 = NOR(3083, 609) +3147 = NOR(2930, 3083) +3150 = NOR(3034, 3087) +3151 = NOR(3087, 657) +3152 = NOR(2934, 3087) +3155 = NOR(3037, 3091) +3156 = NOR(3091, 705) +3157 = NOR(2938, 3091) +3160 = NOR(3040, 3095) +3161 = NOR(3095, 753) +3162 = NOR(2942, 3095) +3165 = NOR(3043, 3099) +3166 = NOR(3099, 801) +3167 = NOR(2946, 3099) +3170 = NOR(3046, 3103) +3171 = NOR(3103, 849) +3172 = NOR(2950, 3103) +3175 = NOR(3049, 3107) +3176 = NOR(3107, 897) +3177 = NOR(2954, 3107) +3180 = NOR(3052, 3111) +3181 = NOR(3111, 945) +3182 = NOR(2958, 3111) +3185 = NOR(3055, 3115) +3186 = NOR(3115, 993) +3187 = NOR(2962, 3115) +3190 = NOR(3119, 3120) +3193 = NOR(3124, 3121) +3197 = NOR(3067, 3127) +3198 = NOR(3127, 3064) +3199 = NOR(3131, 3132) +3202 = NOR(3133, 1188) +3206 = NOR(3076, 3136) +3207 = NOR(3136, 1236) +3208 = NOR(2983, 3136) +3211 = NOR(3140, 3141) +3212 = NOR(3145, 3146) +3215 = NOR(3150, 3151) +3218 = NOR(3155, 3156) +3221 = NOR(3160, 3161) +3224 = NOR(3165, 3166) +3227 = NOR(3170, 3171) +3230 = NOR(3175, 3176) +3233 = NOR(3180, 3181) +3236 = NOR(3185, 3186) +3239 = NOR(3190, 3187) +3243 = NOR(3124, 3193) +3244 = NOR(3193, 3121) +3245 = NOR(3197, 3198) +3248 = NOR(3199, 1140) +3252 = NOR(3133, 3202) +3253 = NOR(3202, 1188) +3254 = NOR(3022, 3202) +3257 = NOR(3206, 3207) +3260 = NOR(1284, 3208) +3264 = NOR(3212, 3142) +3268 = NOR(3215, 3147) +3272 = NOR(3218, 3152) +3276 = NOR(3221, 3157) +3280 = NOR(3224, 3162) +3284 = NOR(3227, 3167) +3288 = NOR(3230, 3172) +3292 = NOR(3233, 3177) +3296 = NOR(3236, 3182) +3300 = NOR(3190, 3239) +3301 = NOR(3239, 3187) +3302 = NOR(3243, 3244) +3305 = NOR(3245, 1092) +3309 = NOR(3199, 3248) +3310 = NOR(3248, 1140) +3311 = NOR(3070, 3248) +3314 = NOR(3252, 3253) +3317 = NOR(3257, 3254) +3321 = NOR(1284, 3260) +3322 = NOR(3260, 3208) +3323 = NOR(3212, 3264) +3324 = NOR(3264, 3142) +3325 = NOR(3215, 3268) +3326 = NOR(3268, 3147) +3327 = NOR(3218, 3272) +3328 = NOR(3272, 3152) +3329 = NOR(3221, 3276) +3330 = NOR(3276, 3157) +3331 = NOR(3224, 3280) +3332 = NOR(3280, 3162) +3333 = NOR(3227, 3284) +3334 = NOR(3284, 3167) +3335 = NOR(3230, 3288) +3336 = NOR(3288, 3172) +3337 = NOR(3233, 3292) +3338 = NOR(3292, 3177) +3339 = NOR(3236, 3296) +3340 = NOR(3296, 3182) +3341 = NOR(3300, 3301) +3344 = NOR(3302, 1044) +3348 = NOR(3245, 3305) +3349 = NOR(3305, 1092) +3350 = NOR(3127, 3305) +3353 = NOR(3309, 3310) +3356 = NOR(3314, 3311) +3360 = NOR(3257, 3317) +3361 = NOR(3317, 3254) +3362 = NOR(3321, 3322) +3365 = NOR(3323, 3324) +3368 = NOR(3325, 3326) +3371 = NOR(3327, 3328) +3374 = NOR(3329, 3330) +3377 = NOR(3331, 3332) +3380 = NOR(3333, 3334) +3383 = NOR(3335, 3336) +3386 = NOR(3337, 3338) +3389 = NOR(3339, 3340) +3392 = NOR(3341, 996) +3396 = NOR(3302, 3344) +3397 = NOR(3344, 1044) +3398 = NOR(3193, 3344) +3401 = NOR(3348, 3349) +3404 = NOR(3353, 3350) +3408 = NOR(3314, 3356) +3409 = NOR(3356, 3311) +3410 = NOR(3360, 3361) +3413 = NOR(3362, 1239) +3417 = NOR(3365, 564) +3421 = NOR(3368, 612) +3425 = NOR(3371, 660) +3429 = NOR(3374, 708) +3433 = NOR(3377, 756) +3437 = NOR(3380, 804) +3441 = NOR(3383, 852) +3445 = NOR(3386, 900) +3449 = NOR(3389, 948) +3453 = NOR(3341, 3392) +3454 = NOR(3392, 996) +3455 = NOR(3239, 3392) +3458 = NOR(3396, 3397) +3461 = NOR(3401, 3398) +3465 = NOR(3353, 3404) +3466 = NOR(3404, 3350) +3467 = NOR(3408, 3409) +3470 = NOR(3410, 1191) +3474 = NOR(3362, 3413) +3475 = NOR(3413, 1239) +3476 = NOR(3260, 3413) +3479 = NOR(3365, 3417) +3480 = NOR(3417, 564) +3481 = NOR(3264, 3417) +3484 = NOR(3368, 3421) +3485 = NOR(3421, 612) +3486 = NOR(3268, 3421) +3489 = NOR(3371, 3425) +3490 = NOR(3425, 660) +3491 = NOR(3272, 3425) +3494 = NOR(3374, 3429) +3495 = NOR(3429, 708) +3496 = NOR(3276, 3429) +3499 = NOR(3377, 3433) +3500 = NOR(3433, 756) +3501 = NOR(3280, 3433) +3504 = NOR(3380, 3437) +3505 = NOR(3437, 804) +3506 = NOR(3284, 3437) +3509 = NOR(3383, 3441) +3510 = NOR(3441, 852) +3511 = NOR(3288, 3441) +3514 = NOR(3386, 3445) +3515 = NOR(3445, 900) +3516 = NOR(3292, 3445) +3519 = NOR(3389, 3449) +3520 = NOR(3449, 948) +3521 = NOR(3296, 3449) +3524 = NOR(3453, 3454) +3527 = NOR(3458, 3455) +3531 = NOR(3401, 3461) +3532 = NOR(3461, 3398) +3533 = NOR(3465, 3466) +3536 = NOR(3467, 1143) +3540 = NOR(3410, 3470) +3541 = NOR(3470, 1191) +3542 = NOR(3317, 3470) +3545 = NOR(3474, 3475) +3548 = NOR(1287, 3476) +3552 = NOR(3479, 3480) +3553 = NOR(3484, 3485) +3556 = NOR(3489, 3490) +3559 = NOR(3494, 3495) +3562 = NOR(3499, 3500) +3565 = NOR(3504, 3505) +3568 = NOR(3509, 3510) +3571 = NOR(3514, 3515) +3574 = NOR(3519, 3520) +3577 = NOR(3524, 3521) +3581 = NOR(3458, 3527) +3582 = NOR(3527, 3455) +3583 = NOR(3531, 3532) +3586 = NOR(3533, 1095) +3590 = NOR(3467, 3536) +3591 = NOR(3536, 1143) +3592 = NOR(3356, 3536) +3595 = NOR(3540, 3541) +3598 = NOR(3545, 3542) +3602 = NOR(1287, 3548) +3603 = NOR(3548, 3476) +3604 = NOR(3553, 3481) +3608 = NOR(3556, 3486) +3612 = NOR(3559, 3491) +3616 = NOR(3562, 3496) +3620 = NOR(3565, 3501) +3624 = NOR(3568, 3506) +3628 = NOR(3571, 3511) +3632 = NOR(3574, 3516) +3636 = NOR(3524, 3577) +3637 = NOR(3577, 3521) +3638 = NOR(3581, 3582) +3641 = NOR(3583, 1047) +3645 = NOR(3533, 3586) +3646 = NOR(3586, 1095) +3647 = NOR(3404, 3586) +3650 = NOR(3590, 3591) +3653 = NOR(3595, 3592) +3657 = NOR(3545, 3598) +3658 = NOR(3598, 3542) +3659 = NOR(3602, 3603) +3662 = NOR(3553, 3604) +3663 = NOR(3604, 3481) +3664 = NOR(3556, 3608) +3665 = NOR(3608, 3486) +3666 = NOR(3559, 3612) +3667 = NOR(3612, 3491) +3668 = NOR(3562, 3616) +3669 = NOR(3616, 3496) +3670 = NOR(3565, 3620) +3671 = NOR(3620, 3501) +3672 = NOR(3568, 3624) +3673 = NOR(3624, 3506) +3674 = NOR(3571, 3628) +3675 = NOR(3628, 3511) +3676 = NOR(3574, 3632) +3677 = NOR(3632, 3516) +3678 = NOR(3636, 3637) +3681 = NOR(3638, 999) +3685 = NOR(3583, 3641) +3686 = NOR(3641, 1047) +3687 = NOR(3461, 3641) +3690 = NOR(3645, 3646) +3693 = NOR(3650, 3647) +3697 = NOR(3595, 3653) +3698 = NOR(3653, 3592) +3699 = NOR(3657, 3658) +3702 = NOR(3659, 1242) +3706 = NOR(3662, 3663) +3709 = NOR(3664, 3665) +3712 = NOR(3666, 3667) +3715 = NOR(3668, 3669) +3718 = NOR(3670, 3671) +3721 = NOR(3672, 3673) +3724 = NOR(3674, 3675) +3727 = NOR(3676, 3677) +3730 = NOR(3678, 951) +3734 = NOR(3638, 3681) +3735 = NOR(3681, 999) +3736 = NOR(3527, 3681) +3739 = NOR(3685, 3686) +3742 = NOR(3690, 3687) +3746 = NOR(3650, 3693) +3747 = NOR(3693, 3647) +3748 = NOR(3697, 3698) +3751 = NOR(3699, 1194) +3755 = NOR(3659, 3702) +3756 = NOR(3702, 1242) +3757 = NOR(3548, 3702) +3760 = NOR(3706, 567) +3764 = NOR(3709, 615) +3768 = NOR(3712, 663) +3772 = NOR(3715, 711) +3776 = NOR(3718, 759) +3780 = NOR(3721, 807) +3784 = NOR(3724, 855) +3788 = NOR(3727, 903) +3792 = NOR(3678, 3730) +3793 = NOR(3730, 951) +3794 = NOR(3577, 3730) +3797 = NOR(3734, 3735) +3800 = NOR(3739, 3736) +3804 = NOR(3690, 3742) +3805 = NOR(3742, 3687) +3806 = NOR(3746, 3747) +3809 = NOR(3748, 1146) +3813 = NOR(3699, 3751) +3814 = NOR(3751, 1194) +3815 = NOR(3598, 3751) +3818 = NOR(3755, 3756) +3821 = NOR(1290, 3757) +3825 = NOR(3706, 3760) +3826 = NOR(3760, 567) +3827 = NOR(3604, 3760) +3830 = NOR(3709, 3764) +3831 = NOR(3764, 615) +3832 = NOR(3608, 3764) +3835 = NOR(3712, 3768) +3836 = NOR(3768, 663) +3837 = NOR(3612, 3768) +3840 = NOR(3715, 3772) +3841 = NOR(3772, 711) +3842 = NOR(3616, 3772) +3845 = NOR(3718, 3776) +3846 = NOR(3776, 759) +3847 = NOR(3620, 3776) +3850 = NOR(3721, 3780) +3851 = NOR(3780, 807) +3852 = NOR(3624, 3780) +3855 = NOR(3724, 3784) +3856 = NOR(3784, 855) +3857 = NOR(3628, 3784) +3860 = NOR(3727, 3788) +3861 = NOR(3788, 903) +3862 = NOR(3632, 3788) +3865 = NOR(3792, 3793) +3868 = NOR(3797, 3794) +3872 = NOR(3739, 3800) +3873 = NOR(3800, 3736) +3874 = NOR(3804, 3805) +3877 = NOR(3806, 1098) +3881 = NOR(3748, 3809) +3882 = NOR(3809, 1146) +3883 = NOR(3653, 3809) +3886 = NOR(3813, 3814) +3889 = NOR(3818, 3815) +3893 = NOR(1290, 3821) +3894 = NOR(3821, 3757) +3895 = NOR(3825, 3826) +3896 = NOR(3830, 3831) +3899 = NOR(3835, 3836) +3902 = NOR(3840, 3841) +3905 = NOR(3845, 3846) +3908 = NOR(3850, 3851) +3911 = NOR(3855, 3856) +3914 = NOR(3860, 3861) +3917 = NOR(3865, 3862) +3921 = NOR(3797, 3868) +3922 = NOR(3868, 3794) +3923 = NOR(3872, 3873) +3926 = NOR(3874, 1050) +3930 = NOR(3806, 3877) +3931 = NOR(3877, 1098) +3932 = NOR(3693, 3877) +3935 = NOR(3881, 3882) +3938 = NOR(3886, 3883) +3942 = NOR(3818, 3889) +3943 = NOR(3889, 3815) +3944 = NOR(3893, 3894) +3947 = NOR(3896, 3827) +3951 = NOR(3899, 3832) +3955 = NOR(3902, 3837) +3959 = NOR(3905, 3842) +3963 = NOR(3908, 3847) +3967 = NOR(3911, 3852) +3971 = NOR(3914, 3857) +3975 = NOR(3865, 3917) +3976 = NOR(3917, 3862) +3977 = NOR(3921, 3922) +3980 = NOR(3923, 1002) +3984 = NOR(3874, 3926) +3985 = NOR(3926, 1050) +3986 = NOR(3742, 3926) +3989 = NOR(3930, 3931) +3992 = NOR(3935, 3932) +3996 = NOR(3886, 3938) +3997 = NOR(3938, 3883) +3998 = NOR(3942, 3943) +4001 = NOR(3944, 1245) +4005 = NOR(3896, 3947) +4006 = NOR(3947, 3827) +4007 = NOR(3899, 3951) +4008 = NOR(3951, 3832) +4009 = NOR(3902, 3955) +4010 = NOR(3955, 3837) +4011 = NOR(3905, 3959) +4012 = NOR(3959, 3842) +4013 = NOR(3908, 3963) +4014 = NOR(3963, 3847) +4015 = NOR(3911, 3967) +4016 = NOR(3967, 3852) +4017 = NOR(3914, 3971) +4018 = NOR(3971, 3857) +4019 = NOR(3975, 3976) +4022 = NOR(3977, 954) +4026 = NOR(3923, 3980) +4027 = NOR(3980, 1002) +4028 = NOR(3800, 3980) +4031 = NOR(3984, 3985) +4034 = NOR(3989, 3986) +4038 = NOR(3935, 3992) +4039 = NOR(3992, 3932) +4040 = NOR(3996, 3997) +4043 = NOR(3998, 1197) +4047 = NOR(3944, 4001) +4048 = NOR(4001, 1245) +4049 = NOR(3821, 4001) +4052 = NOR(4005, 4006) +4055 = NOR(4007, 4008) +4058 = NOR(4009, 4010) +4061 = NOR(4011, 4012) +4064 = NOR(4013, 4014) +4067 = NOR(4015, 4016) +4070 = NOR(4017, 4018) +4073 = NOR(4019, 906) +4077 = NOR(3977, 4022) +4078 = NOR(4022, 954) +4079 = NOR(3868, 4022) +4082 = NOR(4026, 4027) +4085 = NOR(4031, 4028) +4089 = NOR(3989, 4034) +4090 = NOR(4034, 3986) +4091 = NOR(4038, 4039) +4094 = NOR(4040, 1149) +4098 = NOR(3998, 4043) +4099 = NOR(4043, 1197) +4100 = NOR(3889, 4043) +4103 = NOR(4047, 4048) +4106 = NOR(1293, 4049) +4110 = NOR(4052, 570) +4114 = NOR(4055, 618) +4118 = NOR(4058, 666) +4122 = NOR(4061, 714) +4126 = NOR(4064, 762) +4130 = NOR(4067, 810) +4134 = NOR(4070, 858) +4138 = NOR(4019, 4073) +4139 = NOR(4073, 906) +4140 = NOR(3917, 4073) +4143 = NOR(4077, 4078) +4146 = NOR(4082, 4079) +4150 = NOR(4031, 4085) +4151 = NOR(4085, 4028) +4152 = NOR(4089, 4090) +4155 = NOR(4091, 1101) +4159 = NOR(4040, 4094) +4160 = NOR(4094, 1149) +4161 = NOR(3938, 4094) +4164 = NOR(4098, 4099) +4167 = NOR(4103, 4100) +4171 = NOR(1293, 4106) +4172 = NOR(4106, 4049) +4173 = NOR(4052, 4110) +4174 = NOR(4110, 570) +4175 = NOR(3947, 4110) +4178 = NOR(4055, 4114) +4179 = NOR(4114, 618) +4180 = NOR(3951, 4114) +4183 = NOR(4058, 4118) +4184 = NOR(4118, 666) +4185 = NOR(3955, 4118) +4188 = NOR(4061, 4122) +4189 = NOR(4122, 714) +4190 = NOR(3959, 4122) +4193 = NOR(4064, 4126) +4194 = NOR(4126, 762) +4195 = NOR(3963, 4126) +4198 = NOR(4067, 4130) +4199 = NOR(4130, 810) +4200 = NOR(3967, 4130) +4203 = NOR(4070, 4134) +4204 = NOR(4134, 858) +4205 = NOR(3971, 4134) +4208 = NOR(4138, 4139) +4211 = NOR(4143, 4140) +4215 = NOR(4082, 4146) +4216 = NOR(4146, 4079) +4217 = NOR(4150, 4151) +4220 = NOR(4152, 1053) +4224 = NOR(4091, 4155) +4225 = NOR(4155, 1101) +4226 = NOR(3992, 4155) +4229 = NOR(4159, 4160) +4232 = NOR(4164, 4161) +4236 = NOR(4103, 4167) +4237 = NOR(4167, 4100) +4238 = NOR(4171, 4172) +4241 = NOR(4173, 4174) +4242 = NOR(4178, 4179) +4245 = NOR(4183, 4184) +4248 = NOR(4188, 4189) +4251 = NOR(4193, 4194) +4254 = NOR(4198, 4199) +4257 = NOR(4203, 4204) +4260 = NOR(4208, 4205) +4264 = NOR(4143, 4211) +4265 = NOR(4211, 4140) +4266 = NOR(4215, 4216) +4269 = NOR(4217, 1005) +4273 = NOR(4152, 4220) +4274 = NOR(4220, 1053) +4275 = NOR(4034, 4220) +4278 = NOR(4224, 4225) +4281 = NOR(4229, 4226) +4285 = NOR(4164, 4232) +4286 = NOR(4232, 4161) +4287 = NOR(4236, 4237) +4290 = NOR(4238, 1248) +4294 = NOR(4242, 4175) +4298 = NOR(4245, 4180) +4302 = NOR(4248, 4185) +4306 = NOR(4251, 4190) +4310 = NOR(4254, 4195) +4314 = NOR(4257, 4200) +4318 = NOR(4208, 4260) +4319 = NOR(4260, 4205) +4320 = NOR(4264, 4265) +4323 = NOR(4266, 957) +4327 = NOR(4217, 4269) +4328 = NOR(4269, 1005) +4329 = NOR(4085, 4269) +4332 = NOR(4273, 4274) +4335 = NOR(4278, 4275) +4339 = NOR(4229, 4281) +4340 = NOR(4281, 4226) +4341 = NOR(4285, 4286) +4344 = NOR(4287, 1200) +4348 = NOR(4238, 4290) +4349 = NOR(4290, 1248) +4350 = NOR(4106, 4290) +4353 = NOR(4242, 4294) +4354 = NOR(4294, 4175) +4355 = NOR(4245, 4298) +4356 = NOR(4298, 4180) +4357 = NOR(4248, 4302) +4358 = NOR(4302, 4185) +4359 = NOR(4251, 4306) +4360 = NOR(4306, 4190) +4361 = NOR(4254, 4310) +4362 = NOR(4310, 4195) +4363 = NOR(4257, 4314) +4364 = NOR(4314, 4200) +4365 = NOR(4318, 4319) +4368 = NOR(4320, 909) +4372 = NOR(4266, 4323) +4373 = NOR(4323, 957) +4374 = NOR(4146, 4323) +4377 = NOR(4327, 4328) +4380 = NOR(4332, 4329) +4384 = NOR(4278, 4335) +4385 = NOR(4335, 4275) +4386 = NOR(4339, 4340) +4389 = NOR(4341, 1152) +4393 = NOR(4287, 4344) +4394 = NOR(4344, 1200) +4395 = NOR(4167, 4344) +4398 = NOR(4348, 4349) +4401 = NOR(1296, 4350) +4405 = NOR(4353, 4354) +4408 = NOR(4355, 4356) +4411 = NOR(4357, 4358) +4414 = NOR(4359, 4360) +4417 = NOR(4361, 4362) +4420 = NOR(4363, 4364) +4423 = NOR(4365, 861) +4427 = NOR(4320, 4368) +4428 = NOR(4368, 909) +4429 = NOR(4211, 4368) +4432 = NOR(4372, 4373) +4435 = NOR(4377, 4374) +4439 = NOR(4332, 4380) +4440 = NOR(4380, 4329) +4441 = NOR(4384, 4385) +4444 = NOR(4386, 1104) +4448 = NOR(4341, 4389) +4449 = NOR(4389, 1152) +4450 = NOR(4232, 4389) +4453 = NOR(4393, 4394) +4456 = NOR(4398, 4395) +4460 = NOR(1296, 4401) +4461 = NOR(4401, 4350) +4462 = NOR(4405, 573) +4466 = NOR(4408, 621) +4470 = NOR(4411, 669) +4474 = NOR(4414, 717) +4478 = NOR(4417, 765) +4482 = NOR(4420, 813) +4486 = NOR(4365, 4423) +4487 = NOR(4423, 861) +4488 = NOR(4260, 4423) +4491 = NOR(4427, 4428) +4494 = NOR(4432, 4429) +4498 = NOR(4377, 4435) +4499 = NOR(4435, 4374) +4500 = NOR(4439, 4440) +4503 = NOR(4441, 1056) +4507 = NOR(4386, 4444) +4508 = NOR(4444, 1104) +4509 = NOR(4281, 4444) +4512 = NOR(4448, 4449) +4515 = NOR(4453, 4450) +4519 = NOR(4398, 4456) +4520 = NOR(4456, 4395) +4521 = NOR(4460, 4461) +4524 = NOR(4405, 4462) +4525 = NOR(4462, 573) +4526 = NOR(4294, 4462) +4529 = NOR(4408, 4466) +4530 = NOR(4466, 621) +4531 = NOR(4298, 4466) +4534 = NOR(4411, 4470) +4535 = NOR(4470, 669) +4536 = NOR(4302, 4470) +4539 = NOR(4414, 4474) +4540 = NOR(4474, 717) +4541 = NOR(4306, 4474) +4544 = NOR(4417, 4478) +4545 = NOR(4478, 765) +4546 = NOR(4310, 4478) +4549 = NOR(4420, 4482) +4550 = NOR(4482, 813) +4551 = NOR(4314, 4482) +4554 = NOR(4486, 4487) +4557 = NOR(4491, 4488) +4561 = NOR(4432, 4494) +4562 = NOR(4494, 4429) +4563 = NOR(4498, 4499) +4566 = NOR(4500, 1008) +4570 = NOR(4441, 4503) +4571 = NOR(4503, 1056) +4572 = NOR(4335, 4503) +4575 = NOR(4507, 4508) +4578 = NOR(4512, 4509) +4582 = NOR(4453, 4515) +4583 = NOR(4515, 4450) +4584 = NOR(4519, 4520) +4587 = NOR(4521, 1251) +4591 = NOR(4524, 4525) +4592 = NOR(4529, 4530) +4595 = NOR(4534, 4535) +4598 = NOR(4539, 4540) +4601 = NOR(4544, 4545) +4604 = NOR(4549, 4550) +4607 = NOR(4554, 4551) +4611 = NOR(4491, 4557) +4612 = NOR(4557, 4488) +4613 = NOR(4561, 4562) +4616 = NOR(4563, 960) +4620 = NOR(4500, 4566) +4621 = NOR(4566, 1008) +4622 = NOR(4380, 4566) +4625 = NOR(4570, 4571) +4628 = NOR(4575, 4572) +4632 = NOR(4512, 4578) +4633 = NOR(4578, 4509) +4634 = NOR(4582, 4583) +4637 = NOR(4584, 1203) +4641 = NOR(4521, 4587) +4642 = NOR(4587, 1251) +4643 = NOR(4401, 4587) +4646 = NOR(4592, 4526) +4650 = NOR(4595, 4531) +4654 = NOR(4598, 4536) +4658 = NOR(4601, 4541) +4662 = NOR(4604, 4546) +4666 = NOR(4554, 4607) +4667 = NOR(4607, 4551) +4668 = NOR(4611, 4612) +4671 = NOR(4613, 912) +4675 = NOR(4563, 4616) +4676 = NOR(4616, 960) +4677 = NOR(4435, 4616) +4680 = NOR(4620, 4621) +4683 = NOR(4625, 4622) +4687 = NOR(4575, 4628) +4688 = NOR(4628, 4572) +4689 = NOR(4632, 4633) +4692 = NOR(4634, 1155) +4696 = NOR(4584, 4637) +4697 = NOR(4637, 1203) +4698 = NOR(4456, 4637) +4701 = NOR(4641, 4642) +4704 = NOR(1299, 4643) +4708 = NOR(4592, 4646) +4709 = NOR(4646, 4526) +4710 = NOR(4595, 4650) +4711 = NOR(4650, 4531) +4712 = NOR(4598, 4654) +4713 = NOR(4654, 4536) +4714 = NOR(4601, 4658) +4715 = NOR(4658, 4541) +4716 = NOR(4604, 4662) +4717 = NOR(4662, 4546) +4718 = NOR(4666, 4667) +4721 = NOR(4668, 864) +4725 = NOR(4613, 4671) +4726 = NOR(4671, 912) +4727 = NOR(4494, 4671) +4730 = NOR(4675, 4676) +4733 = NOR(4680, 4677) +4737 = NOR(4625, 4683) +4738 = NOR(4683, 4622) +4739 = NOR(4687, 4688) +4742 = NOR(4689, 1107) +4746 = NOR(4634, 4692) +4747 = NOR(4692, 1155) +4748 = NOR(4515, 4692) +4751 = NOR(4696, 4697) +4754 = NOR(4701, 4698) +4758 = NOR(1299, 4704) +4759 = NOR(4704, 4643) +4760 = NOR(4708, 4709) +4763 = NOR(4710, 4711) +4766 = NOR(4712, 4713) +4769 = NOR(4714, 4715) +4772 = NOR(4716, 4717) +4775 = NOR(4718, 816) +4779 = NOR(4668, 4721) +4780 = NOR(4721, 864) +4781 = NOR(4557, 4721) +4784 = NOR(4725, 4726) +4787 = NOR(4730, 4727) +4791 = NOR(4680, 4733) +4792 = NOR(4733, 4677) +4793 = NOR(4737, 4738) +4796 = NOR(4739, 1059) +4800 = NOR(4689, 4742) +4801 = NOR(4742, 1107) +4802 = NOR(4578, 4742) +4805 = NOR(4746, 4747) +4808 = NOR(4751, 4748) +4812 = NOR(4701, 4754) +4813 = NOR(4754, 4698) +4814 = NOR(4758, 4759) +4817 = NOR(4760, 576) +4821 = NOR(4763, 624) +4825 = NOR(4766, 672) +4829 = NOR(4769, 720) +4833 = NOR(4772, 768) +4837 = NOR(4718, 4775) +4838 = NOR(4775, 816) +4839 = NOR(4607, 4775) +4842 = NOR(4779, 4780) +4845 = NOR(4784, 4781) +4849 = NOR(4730, 4787) +4850 = NOR(4787, 4727) +4851 = NOR(4791, 4792) +4854 = NOR(4793, 1011) +4858 = NOR(4739, 4796) +4859 = NOR(4796, 1059) +4860 = NOR(4628, 4796) +4863 = NOR(4800, 4801) +4866 = NOR(4805, 4802) +4870 = NOR(4751, 4808) +4871 = NOR(4808, 4748) +4872 = NOR(4812, 4813) +4875 = NOR(4814, 1254) +4879 = NOR(4760, 4817) +4880 = NOR(4817, 576) +4881 = NOR(4646, 4817) +4884 = NOR(4763, 4821) +4885 = NOR(4821, 624) +4886 = NOR(4650, 4821) +4889 = NOR(4766, 4825) +4890 = NOR(4825, 672) +4891 = NOR(4654, 4825) +4894 = NOR(4769, 4829) +4895 = NOR(4829, 720) +4896 = NOR(4658, 4829) +4899 = NOR(4772, 4833) +4900 = NOR(4833, 768) +4901 = NOR(4662, 4833) +4904 = NOR(4837, 4838) +4907 = NOR(4842, 4839) +4911 = NOR(4784, 4845) +4912 = NOR(4845, 4781) +4913 = NOR(4849, 4850) +4916 = NOR(4851, 963) +4920 = NOR(4793, 4854) +4921 = NOR(4854, 1011) +4922 = NOR(4683, 4854) +4925 = NOR(4858, 4859) +4928 = NOR(4863, 4860) +4932 = NOR(4805, 4866) +4933 = NOR(4866, 4802) +4934 = NOR(4870, 4871) +4937 = NOR(4872, 1206) +4941 = NOR(4814, 4875) +4942 = NOR(4875, 1254) +4943 = NOR(4704, 4875) +4946 = NOR(4879, 4880) +4947 = NOR(4884, 4885) +4950 = NOR(4889, 4890) +4953 = NOR(4894, 4895) +4956 = NOR(4899, 4900) +4959 = NOR(4904, 4901) +4963 = NOR(4842, 4907) +4964 = NOR(4907, 4839) +4965 = NOR(4911, 4912) +4968 = NOR(4913, 915) +4972 = NOR(4851, 4916) +4973 = NOR(4916, 963) +4974 = NOR(4733, 4916) +4977 = NOR(4920, 4921) +4980 = NOR(4925, 4922) +4984 = NOR(4863, 4928) +4985 = NOR(4928, 4860) +4986 = NOR(4932, 4933) +4989 = NOR(4934, 1158) +4993 = NOR(4872, 4937) +4994 = NOR(4937, 1206) +4995 = NOR(4754, 4937) +4998 = NOR(4941, 4942) +5001 = NOR(1302, 4943) +5005 = NOR(4947, 4881) +5009 = NOR(4950, 4886) +5013 = NOR(4953, 4891) +5017 = NOR(4956, 4896) +5021 = NOR(4904, 4959) +5022 = NOR(4959, 4901) +5023 = NOR(4963, 4964) +5026 = NOR(4965, 867) +5030 = NOR(4913, 4968) +5031 = NOR(4968, 915) +5032 = NOR(4787, 4968) +5035 = NOR(4972, 4973) +5038 = NOR(4977, 4974) +5042 = NOR(4925, 4980) +5043 = NOR(4980, 4922) +5044 = NOR(4984, 4985) +5047 = NOR(4986, 1110) +5051 = NOR(4934, 4989) +5052 = NOR(4989, 1158) +5053 = NOR(4808, 4989) +5056 = NOR(4993, 4994) +5059 = NOR(4998, 4995) +5063 = NOR(1302, 5001) +5064 = NOR(5001, 4943) +5065 = NOR(4947, 5005) +5066 = NOR(5005, 4881) +5067 = NOR(4950, 5009) +5068 = NOR(5009, 4886) +5069 = NOR(4953, 5013) +5070 = NOR(5013, 4891) +5071 = NOR(4956, 5017) +5072 = NOR(5017, 4896) +5073 = NOR(5021, 5022) +5076 = NOR(5023, 819) +5080 = NOR(4965, 5026) +5081 = NOR(5026, 867) +5082 = NOR(4845, 5026) +5085 = NOR(5030, 5031) +5088 = NOR(5035, 5032) +5092 = NOR(4977, 5038) +5093 = NOR(5038, 4974) +5094 = NOR(5042, 5043) +5097 = NOR(5044, 1062) +5101 = NOR(4986, 5047) +5102 = NOR(5047, 1110) +5103 = NOR(4866, 5047) +5106 = NOR(5051, 5052) +5109 = NOR(5056, 5053) +5113 = NOR(4998, 5059) +5114 = NOR(5059, 4995) +5115 = NOR(5063, 5064) +5118 = NOR(5065, 5066) +5121 = NOR(5067, 5068) +5124 = NOR(5069, 5070) +5127 = NOR(5071, 5072) +5130 = NOR(5073, 771) +5134 = NOR(5023, 5076) +5135 = NOR(5076, 819) +5136 = NOR(4907, 5076) +5139 = NOR(5080, 5081) +5142 = NOR(5085, 5082) +5146 = NOR(5035, 5088) +5147 = NOR(5088, 5032) +5148 = NOR(5092, 5093) +5151 = NOR(5094, 1014) +5155 = NOR(5044, 5097) +5156 = NOR(5097, 1062) +5157 = NOR(4928, 5097) +5160 = NOR(5101, 5102) +5163 = NOR(5106, 5103) +5167 = NOR(5056, 5109) +5168 = NOR(5109, 5053) +5169 = NOR(5113, 5114) +5172 = NOR(5115, 1257) +5176 = NOR(5118, 579) +5180 = NOR(5121, 627) +5184 = NOR(5124, 675) +5188 = NOR(5127, 723) +5192 = NOR(5073, 5130) +5193 = NOR(5130, 771) +5194 = NOR(4959, 5130) +5197 = NOR(5134, 5135) +5200 = NOR(5139, 5136) +5204 = NOR(5085, 5142) +5205 = NOR(5142, 5082) +5206 = NOR(5146, 5147) +5209 = NOR(5148, 966) +5213 = NOR(5094, 5151) +5214 = NOR(5151, 1014) +5215 = NOR(4980, 5151) +5218 = NOR(5155, 5156) +5221 = NOR(5160, 5157) +5225 = NOR(5106, 5163) +5226 = NOR(5163, 5103) +5227 = NOR(5167, 5168) +5230 = NOR(5169, 1209) +5234 = NOR(5115, 5172) +5235 = NOR(5172, 1257) +5236 = NOR(5001, 5172) +5239 = NOR(5118, 5176) +5240 = NOR(5176, 579) +5241 = NOR(5005, 5176) +5244 = NOR(5121, 5180) +5245 = NOR(5180, 627) +5246 = NOR(5009, 5180) +5249 = NOR(5124, 5184) +5250 = NOR(5184, 675) +5251 = NOR(5013, 5184) +5254 = NOR(5127, 5188) +5255 = NOR(5188, 723) +5256 = NOR(5017, 5188) +5259 = NOR(5192, 5193) +5262 = NOR(5197, 5194) +5266 = NOR(5139, 5200) +5267 = NOR(5200, 5136) +5268 = NOR(5204, 5205) +5271 = NOR(5206, 918) +5275 = NOR(5148, 5209) +5276 = NOR(5209, 966) +5277 = NOR(5038, 5209) +5280 = NOR(5213, 5214) +5283 = NOR(5218, 5215) +5287 = NOR(5160, 5221) +5288 = NOR(5221, 5157) +5289 = NOR(5225, 5226) +5292 = NOR(5227, 1161) +5296 = NOR(5169, 5230) +5297 = NOR(5230, 1209) +5298 = NOR(5059, 5230) +5301 = NOR(5234, 5235) +5304 = NOR(1305, 5236) +5308 = NOR(5239, 5240) +5309 = NOR(5244, 5245) +5312 = NOR(5249, 5250) +5315 = NOR(5254, 5255) +5318 = NOR(5259, 5256) +5322 = NOR(5197, 5262) +5323 = NOR(5262, 5194) +5324 = NOR(5266, 5267) +5327 = NOR(5268, 870) +5331 = NOR(5206, 5271) +5332 = NOR(5271, 918) +5333 = NOR(5088, 5271) +5336 = NOR(5275, 5276) +5339 = NOR(5280, 5277) +5343 = NOR(5218, 5283) +5344 = NOR(5283, 5215) +5345 = NOR(5287, 5288) +5348 = NOR(5289, 1113) +5352 = NOR(5227, 5292) +5353 = NOR(5292, 1161) +5354 = NOR(5109, 5292) +5357 = NOR(5296, 5297) +5360 = NOR(5301, 5298) +5364 = NOR(1305, 5304) +5365 = NOR(5304, 5236) +5366 = NOR(5309, 5241) +5370 = NOR(5312, 5246) +5374 = NOR(5315, 5251) +5378 = NOR(5259, 5318) +5379 = NOR(5318, 5256) +5380 = NOR(5322, 5323) +5383 = NOR(5324, 822) +5387 = NOR(5268, 5327) +5388 = NOR(5327, 870) +5389 = NOR(5142, 5327) +5392 = NOR(5331, 5332) +5395 = NOR(5336, 5333) +5399 = NOR(5280, 5339) +5400 = NOR(5339, 5277) +5401 = NOR(5343, 5344) +5404 = NOR(5345, 1065) +5408 = NOR(5289, 5348) +5409 = NOR(5348, 1113) +5410 = NOR(5163, 5348) +5413 = NOR(5352, 5353) +5416 = NOR(5357, 5354) +5420 = NOR(5301, 5360) +5421 = NOR(5360, 5298) +5422 = NOR(5364, 5365) +5425 = NOR(5309, 5366) +5426 = NOR(5366, 5241) +5427 = NOR(5312, 5370) +5428 = NOR(5370, 5246) +5429 = NOR(5315, 5374) +5430 = NOR(5374, 5251) +5431 = NOR(5378, 5379) +5434 = NOR(5380, 774) +5438 = NOR(5324, 5383) +5439 = NOR(5383, 822) +5440 = NOR(5200, 5383) +5443 = NOR(5387, 5388) +5446 = NOR(5392, 5389) +5450 = NOR(5336, 5395) +5451 = NOR(5395, 5333) +5452 = NOR(5399, 5400) +5455 = NOR(5401, 1017) +5459 = NOR(5345, 5404) +5460 = NOR(5404, 1065) +5461 = NOR(5221, 5404) +5464 = NOR(5408, 5409) +5467 = NOR(5413, 5410) +5471 = NOR(5357, 5416) +5472 = NOR(5416, 5354) +5473 = NOR(5420, 5421) +5476 = NOR(5422, 1260) +5480 = NOR(5425, 5426) +5483 = NOR(5427, 5428) +5486 = NOR(5429, 5430) +5489 = NOR(5431, 726) +5493 = NOR(5380, 5434) +5494 = NOR(5434, 774) +5495 = NOR(5262, 5434) +5498 = NOR(5438, 5439) +5501 = NOR(5443, 5440) +5505 = NOR(5392, 5446) +5506 = NOR(5446, 5389) +5507 = NOR(5450, 5451) +5510 = NOR(5452, 969) +5514 = NOR(5401, 5455) +5515 = NOR(5455, 1017) +5516 = NOR(5283, 5455) +5519 = NOR(5459, 5460) +5522 = NOR(5464, 5461) +5526 = NOR(5413, 5467) +5527 = NOR(5467, 5410) +5528 = NOR(5471, 5472) +5531 = NOR(5473, 1212) +5535 = NOR(5422, 5476) +5536 = NOR(5476, 1260) +5537 = NOR(5304, 5476) +5540 = NOR(5480, 582) +5544 = NOR(5483, 630) +5548 = NOR(5486, 678) +5552 = NOR(5431, 5489) +5553 = NOR(5489, 726) +5554 = NOR(5318, 5489) +5557 = NOR(5493, 5494) +5560 = NOR(5498, 5495) +5564 = NOR(5443, 5501) +5565 = NOR(5501, 5440) +5566 = NOR(5505, 5506) +5569 = NOR(5507, 921) +5573 = NOR(5452, 5510) +5574 = NOR(5510, 969) +5575 = NOR(5339, 5510) +5578 = NOR(5514, 5515) +5581 = NOR(5519, 5516) +5585 = NOR(5464, 5522) +5586 = NOR(5522, 5461) +5587 = NOR(5526, 5527) +5590 = NOR(5528, 1164) +5594 = NOR(5473, 5531) +5595 = NOR(5531, 1212) +5596 = NOR(5360, 5531) +5599 = NOR(5535, 5536) +5602 = NOR(1308, 5537) +5606 = NOR(5480, 5540) +5607 = NOR(5540, 582) +5608 = NOR(5366, 5540) +5611 = NOR(5483, 5544) +5612 = NOR(5544, 630) +5613 = NOR(5370, 5544) +5616 = NOR(5486, 5548) +5617 = NOR(5548, 678) +5618 = NOR(5374, 5548) +5621 = NOR(5552, 5553) +5624 = NOR(5557, 5554) +5628 = NOR(5498, 5560) +5629 = NOR(5560, 5495) +5630 = NOR(5564, 5565) +5633 = NOR(5566, 873) +5637 = NOR(5507, 5569) +5638 = NOR(5569, 921) +5639 = NOR(5395, 5569) +5642 = NOR(5573, 5574) +5645 = NOR(5578, 5575) +5649 = NOR(5519, 5581) +5650 = NOR(5581, 5516) +5651 = NOR(5585, 5586) +5654 = NOR(5587, 1116) +5658 = NOR(5528, 5590) +5659 = NOR(5590, 1164) +5660 = NOR(5416, 5590) +5663 = NOR(5594, 5595) +5666 = NOR(5599, 5596) +5670 = NOR(1308, 5602) +5671 = NOR(5602, 5537) +5672 = NOR(5606, 5607) +5673 = NOR(5611, 5612) +5676 = NOR(5616, 5617) +5679 = NOR(5621, 5618) +5683 = NOR(5557, 5624) +5684 = NOR(5624, 5554) +5685 = NOR(5628, 5629) +5688 = NOR(5630, 825) +5692 = NOR(5566, 5633) +5693 = NOR(5633, 873) +5694 = NOR(5446, 5633) +5697 = NOR(5637, 5638) +5700 = NOR(5642, 5639) +5704 = NOR(5578, 5645) +5705 = NOR(5645, 5575) +5706 = NOR(5649, 5650) +5709 = NOR(5651, 1068) +5713 = NOR(5587, 5654) +5714 = NOR(5654, 1116) +5715 = NOR(5467, 5654) +5718 = NOR(5658, 5659) +5721 = NOR(5663, 5660) +5725 = NOR(5599, 5666) +5726 = NOR(5666, 5596) +5727 = NOR(5670, 5671) +5730 = NOR(5673, 5608) +5734 = NOR(5676, 5613) +5738 = NOR(5621, 5679) +5739 = NOR(5679, 5618) +5740 = NOR(5683, 5684) +5743 = NOR(5685, 777) +5747 = NOR(5630, 5688) +5748 = NOR(5688, 825) +5749 = NOR(5501, 5688) +5752 = NOR(5692, 5693) +5755 = NOR(5697, 5694) +5759 = NOR(5642, 5700) +5760 = NOR(5700, 5639) +5761 = NOR(5704, 5705) +5764 = NOR(5706, 1020) +5768 = NOR(5651, 5709) +5769 = NOR(5709, 1068) +5770 = NOR(5522, 5709) +5773 = NOR(5713, 5714) +5776 = NOR(5718, 5715) +5780 = NOR(5663, 5721) +5781 = NOR(5721, 5660) +5782 = NOR(5725, 5726) +5785 = NOR(5673, 5730) +5786 = NOR(5730, 5608) +5787 = NOR(5676, 5734) +5788 = NOR(5734, 5613) +5789 = NOR(5738, 5739) +5792 = NOR(5740, 729) +5796 = NOR(5685, 5743) +5797 = NOR(5743, 777) +5798 = NOR(5560, 5743) +5801 = NOR(5747, 5748) +5804 = NOR(5752, 5749) +5808 = NOR(5697, 5755) +5809 = NOR(5755, 5694) +5810 = NOR(5759, 5760) +5813 = NOR(5761, 972) +5817 = NOR(5706, 5764) +5818 = NOR(5764, 1020) +5819 = NOR(5581, 5764) +5822 = NOR(5768, 5769) +5825 = NOR(5773, 5770) +5829 = NOR(5718, 5776) +5830 = NOR(5776, 5715) +5831 = NOR(5780, 5781) +5834 = NOR(5785, 5786) +5837 = NOR(5787, 5788) +5840 = NOR(5789, 681) +5844 = NOR(5740, 5792) +5845 = NOR(5792, 729) +5846 = NOR(5624, 5792) +5849 = NOR(5796, 5797) +5852 = NOR(5801, 5798) +5856 = NOR(5752, 5804) +5857 = NOR(5804, 5749) +5858 = NOR(5808, 5809) +5861 = NOR(5810, 924) +5865 = NOR(5761, 5813) +5866 = NOR(5813, 972) +5867 = NOR(5645, 5813) +5870 = NOR(5817, 5818) +5873 = NOR(5822, 5819) +5877 = NOR(5773, 5825) +5878 = NOR(5825, 5770) +5879 = NOR(5829, 5830) +5882 = NOR(5834, 585) +5886 = NOR(5837, 633) +5890 = NOR(5789, 5840) +5891 = NOR(5840, 681) +5892 = NOR(5679, 5840) +5895 = NOR(5844, 5845) +5898 = NOR(5849, 5846) +5902 = NOR(5801, 5852) +5903 = NOR(5852, 5798) +5904 = NOR(5856, 5857) +5907 = NOR(5858, 876) +5911 = NOR(5810, 5861) +5912 = NOR(5861, 924) +5913 = NOR(5700, 5861) +5916 = NOR(5865, 5866) +5919 = NOR(5870, 5867) +5923 = NOR(5822, 5873) +5924 = NOR(5873, 5819) +5925 = NOR(5877, 5878) +5928 = NOR(5834, 5882) +5929 = NOR(5882, 585) +5930 = NOR(5730, 5882) +5933 = NOR(5837, 5886) +5934 = NOR(5886, 633) +5935 = NOR(5734, 5886) +5938 = NOR(5890, 5891) +5941 = NOR(5895, 5892) +5945 = NOR(5849, 5898) +5946 = NOR(5898, 5846) +5947 = NOR(5902, 5903) +5950 = NOR(5904, 828) +5954 = NOR(5858, 5907) +5955 = NOR(5907, 876) +5956 = NOR(5755, 5907) +5959 = NOR(5911, 5912) +5962 = NOR(5916, 5913) +5966 = NOR(5870, 5919) +5967 = NOR(5919, 5867) +5968 = NOR(5923, 5924) +5971 = NOR(5928, 5929) +5972 = NOR(5933, 5934) +5975 = NOR(5938, 5935) +5979 = NOR(5895, 5941) +5980 = NOR(5941, 5892) +5981 = NOR(5945, 5946) +5984 = NOR(5947, 780) +5988 = NOR(5904, 5950) +5989 = NOR(5950, 828) +5990 = NOR(5804, 5950) +5993 = NOR(5954, 5955) +5996 = NOR(5959, 5956) +6000 = NOR(5916, 5962) +6001 = NOR(5962, 5913) +6002 = NOR(5966, 5967) +6005 = NOR(5972, 5930) +6009 = NOR(5938, 5975) +6010 = NOR(5975, 5935) +6011 = NOR(5979, 5980) +6014 = NOR(5981, 732) +6018 = NOR(5947, 5984) +6019 = NOR(5984, 780) +6020 = NOR(5852, 5984) +6023 = NOR(5988, 5989) +6026 = NOR(5993, 5990) +6030 = NOR(5959, 5996) +6031 = NOR(5996, 5956) +6032 = NOR(6000, 6001) +6035 = NOR(5972, 6005) +6036 = NOR(6005, 5930) +6037 = NOR(6009, 6010) +6040 = NOR(6011, 684) +6044 = NOR(5981, 6014) +6045 = NOR(6014, 732) +6046 = NOR(5898, 6014) +6049 = NOR(6018, 6019) +6052 = NOR(6023, 6020) +6056 = NOR(5993, 6026) +6057 = NOR(6026, 5990) +6058 = NOR(6030, 6031) +6061 = NOR(6035, 6036) +6064 = NOR(6037, 636) +6068 = NOR(6011, 6040) +6069 = NOR(6040, 684) +6070 = NOR(5941, 6040) +6073 = NOR(6044, 6045) +6076 = NOR(6049, 6046) +6080 = NOR(6023, 6052) +6081 = NOR(6052, 6020) +6082 = NOR(6056, 6057) +6085 = NOR(6061, 588) +6089 = NOR(6037, 6064) +6090 = NOR(6064, 636) +6091 = NOR(5975, 6064) +6094 = NOR(6068, 6069) +6097 = NOR(6073, 6070) +6101 = NOR(6049, 6076) +6102 = NOR(6076, 6046) +6103 = NOR(6080, 6081) +6106 = NOR(6061, 6085) +6107 = NOR(6085, 588) +6108 = NOR(6005, 6085) +6111 = NOR(6089, 6090) +6114 = NOR(6094, 6091) +6118 = NOR(6073, 6097) +6119 = NOR(6097, 6070) +6120 = NOR(6101, 6102) +6123 = NOR(6106, 6107) +6124 = NOR(6111, 6108) +6128 = NOR(6094, 6114) +6129 = NOR(6114, 6091) +6130 = NOR(6118, 6119) +6133 = NOR(6111, 6124) +6134 = NOR(6124, 6108) +6135 = NOR(6128, 6129) +6138 = NOR(6133, 6134) +6141 = NOT(6138) +6145 = NOR(6138, 6141) +6146 = NOT(6141) +6147 = NOR(6124, 6141) +6150 = NOR(6145, 6146) +6151 = NOR(6135, 6147) +6155 = NOR(6135, 6151) +6156 = NOR(6151, 6147) +6157 = NOR(6114, 6151) +6160 = NOR(6155, 6156) +6161 = NOR(6130, 6157) +6165 = NOR(6130, 6161) +6166 = NOR(6161, 6157) +6167 = NOR(6097, 6161) +6170 = NOR(6165, 6166) +6171 = NOR(6120, 6167) +6175 = NOR(6120, 6171) +6176 = NOR(6171, 6167) +6177 = NOR(6076, 6171) +6180 = NOR(6175, 6176) +6181 = NOR(6103, 6177) +6185 = NOR(6103, 6181) +6186 = NOR(6181, 6177) +6187 = NOR(6052, 6181) +6190 = NOR(6185, 6186) +6191 = NOR(6082, 6187) +6195 = NOR(6082, 6191) +6196 = NOR(6191, 6187) +6197 = NOR(6026, 6191) +6200 = NOR(6195, 6196) +6201 = NOR(6058, 6197) +6205 = NOR(6058, 6201) +6206 = NOR(6201, 6197) +6207 = NOR(5996, 6201) +6210 = NOR(6205, 6206) +6211 = NOR(6032, 6207) +6215 = NOR(6032, 6211) +6216 = NOR(6211, 6207) +6217 = NOR(5962, 6211) +6220 = NOR(6215, 6216) +6221 = NOR(6002, 6217) +6225 = NOR(6002, 6221) +6226 = NOR(6221, 6217) +6227 = NOR(5919, 6221) +6230 = NOR(6225, 6226) +6231 = NOR(5968, 6227) +6235 = NOR(5968, 6231) +6236 = NOR(6231, 6227) +6237 = NOR(5873, 6231) +6240 = NOR(6235, 6236) +6241 = NOR(5925, 6237) +6245 = NOR(5925, 6241) +6246 = NOR(6241, 6237) +6247 = NOR(5825, 6241) +6250 = NOR(6245, 6246) +6251 = NOR(5879, 6247) +6255 = NOR(5879, 6251) +6256 = NOR(6251, 6247) +6257 = NOR(5776, 6251) +6260 = NOR(6255, 6256) +6261 = NOR(5831, 6257) +6265 = NOR(5831, 6261) +6266 = NOR(6261, 6257) +6267 = NOR(5721, 6261) +6270 = NOR(6265, 6266) +6271 = NOR(5782, 6267) +6275 = NOR(5782, 6271) +6276 = NOR(6271, 6267) +6277 = NOR(5666, 6271) +6280 = NOR(6275, 6276) +6281 = NOR(5727, 6277) +6285 = NOR(5727, 6281) +6286 = NOR(6281, 6277) +6287 = NOR(5602, 6281) +6288 = NOR(6285, 6286) diff --git a/testcase/c7552.bench b/testcase/c7552.bench new file mode 100755 index 0000000000..c1c3bd4652 --- /dev/null +++ b/testcase/c7552.bench @@ -0,0 +1,3835 @@ +# c7552 +# 207 inputs +# 108 outputs +# 876 inverters +# 2636 gates ( 1310 ANDs + 1904 NANDs + 244 ORs + 54 NORs + 534 buffers ) + +INPUT(1) +INPUT(5) +INPUT(9) +INPUT(12) +INPUT(15) +INPUT(18) +INPUT(23) +INPUT(26) +INPUT(29) +INPUT(32) +INPUT(35) +INPUT(38) +INPUT(41) +INPUT(44) +INPUT(47) +INPUT(50) +INPUT(53) +INPUT(54) +INPUT(55) +INPUT(56) +INPUT(57) +INPUT(58) +INPUT(59) +INPUT(60) +INPUT(61) +INPUT(62) +INPUT(63) +INPUT(64) +INPUT(65) +INPUT(66) +INPUT(69) +INPUT(70) +INPUT(73) +INPUT(74) +INPUT(75) +INPUT(76) +INPUT(77) +INPUT(78) +INPUT(79) +INPUT(80) +INPUT(81) +INPUT(82) +INPUT(83) +INPUT(84) +INPUT(85) +INPUT(86) +INPUT(87) +INPUT(88) +INPUT(89) +INPUT(94) +INPUT(97) +INPUT(100) +INPUT(103) +INPUT(106) +INPUT(109) +INPUT(110) +INPUT(111) +INPUT(112) +INPUT(113) +INPUT(114) +INPUT(115) +INPUT(118) +INPUT(121) +INPUT(124) +INPUT(127) +INPUT(130) +INPUT(133) +INPUT(134) +INPUT(135) +INPUT(138) +INPUT(141) +INPUT(144) +INPUT(147) +INPUT(150) +INPUT(151) +INPUT(152) +INPUT(153) +INPUT(154) +INPUT(155) +INPUT(156) +INPUT(157) +INPUT(158) +INPUT(159) +INPUT(160) +INPUT(161) +INPUT(162) +INPUT(163) +INPUT(164) +INPUT(165) +INPUT(166) +INPUT(167) +INPUT(168) +INPUT(169) +INPUT(170) +INPUT(171) +INPUT(172) +INPUT(173) +INPUT(174) +INPUT(175) +INPUT(176) +INPUT(177) +INPUT(178) +INPUT(179) +INPUT(180) +INPUT(181) +INPUT(182) +INPUT(183) +INPUT(184) +INPUT(185) +INPUT(186) +INPUT(187) +INPUT(188) +INPUT(189) +INPUT(190) +INPUT(191) +INPUT(192) +INPUT(193) +INPUT(194) +INPUT(195) +INPUT(196) +INPUT(197) +INPUT(198) +INPUT(199) +INPUT(200) +INPUT(201) +INPUT(202) +INPUT(203) +INPUT(204) +INPUT(205) +INPUT(206) +INPUT(207) +INPUT(208) +INPUT(209) +INPUT(210) +INPUT(211) +INPUT(212) +INPUT(213) +INPUT(214) +INPUT(215) +INPUT(216) +INPUT(217) +INPUT(218) +INPUT(219) +INPUT(220) +INPUT(221) +INPUT(222) +INPUT(223) +INPUT(224) +INPUT(225) +INPUT(226) +INPUT(227) +INPUT(228) +INPUT(229) +INPUT(230) +INPUT(231) +INPUT(232) +INPUT(233) +INPUT(234) +INPUT(235) +INPUT(236) +INPUT(237) +INPUT(238) +INPUT(239) +INPUT(240) +INPUT(241) +INPUT(242) +INPUT(245) +INPUT(248) +INPUT(251) +INPUT(254) +INPUT(257) +INPUT(260) +INPUT(263) +INPUT(267) +INPUT(271) +INPUT(274) +INPUT(277) +INPUT(280) +INPUT(283) +INPUT(286) +INPUT(289) +INPUT(293) +INPUT(296) +INPUT(299) +INPUT(303) +INPUT(307) +INPUT(310) +INPUT(313) +INPUT(316) +INPUT(319) +INPUT(322) +INPUT(325) +INPUT(328) +INPUT(331) +INPUT(334) +INPUT(337) +INPUT(340) +INPUT(343) +INPUT(346) +INPUT(349) +INPUT(352) +INPUT(355) +INPUT(358) +INPUT(361) +INPUT(364) +INPUT(367) +INPUT(382) + +OUTPUT(241) +OUTPUT(387) +OUTPUT(388) +OUTPUT(478) +OUTPUT(482) +OUTPUT(484) +OUTPUT(486) +OUTPUT(489) +OUTPUT(492) +OUTPUT(501) +OUTPUT(505) +OUTPUT(507) +OUTPUT(509) +OUTPUT(511) +OUTPUT(513) +OUTPUT(515) +OUTPUT(517) +OUTPUT(519) +OUTPUT(535) +OUTPUT(537) +OUTPUT(539) +OUTPUT(541) +OUTPUT(543) +OUTPUT(545) +OUTPUT(547) +OUTPUT(549) +OUTPUT(551) +OUTPUT(553) +OUTPUT(556) +OUTPUT(559) +OUTPUT(561) +OUTPUT(563) +OUTPUT(565) +OUTPUT(567) +OUTPUT(569) +OUTPUT(571) +OUTPUT(573) +OUTPUT(582) +OUTPUT(643) +OUTPUT(707) +OUTPUT(813) +OUTPUT(881) +OUTPUT(882) +OUTPUT(883) +OUTPUT(884) +OUTPUT(885) +OUTPUT(889) +OUTPUT(945) +OUTPUT(1110) +OUTPUT(1111) +OUTPUT(1112) +OUTPUT(1113) +OUTPUT(1114) +OUTPUT(1489) +OUTPUT(1490) +OUTPUT(1781) +OUTPUT(10025) +OUTPUT(10101) +OUTPUT(10102) +OUTPUT(10103) +OUTPUT(10104) +OUTPUT(10109) +OUTPUT(10110) +OUTPUT(10111) +OUTPUT(10112) +OUTPUT(10350) +OUTPUT(10351) +OUTPUT(10352) +OUTPUT(10353) +OUTPUT(10574) +OUTPUT(10575) +OUTPUT(10576) +OUTPUT(10628) +OUTPUT(10632) +OUTPUT(10641) +OUTPUT(10704) +OUTPUT(10706) +OUTPUT(10711) +OUTPUT(10712) +OUTPUT(10713) +OUTPUT(10714) +OUTPUT(10715) +OUTPUT(10716) +OUTPUT(10717) +OUTPUT(10718) +OUTPUT(10729) +OUTPUT(10759) +OUTPUT(10760) +OUTPUT(10761) +OUTPUT(10762) +OUTPUT(10763) +OUTPUT(10827) +OUTPUT(10837) +OUTPUT(10838) +OUTPUT(10839) +OUTPUT(10840) +OUTPUT(10868) +OUTPUT(10869) +OUTPUT(10870) +OUTPUT(10871) +OUTPUT(10905) +OUTPUT(10906) +OUTPUT(10907) +OUTPUT(10908) +OUTPUT(11333) +OUTPUT(11334) +OUTPUT(11340) +OUTPUT(11342) + +387 = BUFF(1) +388 = BUFF(1) +467 = NOT(57) +469 = AND(134, 133) +478 = BUFF(248) +482 = BUFF(254) +484 = BUFF(257) +486 = BUFF(260) +489 = BUFF(263) +492 = BUFF(267) +494 = AND(162, 172, 188, 199) +501 = BUFF(274) +505 = BUFF(280) +507 = BUFF(283) +509 = BUFF(286) +511 = BUFF(289) +513 = BUFF(293) +515 = BUFF(296) +517 = BUFF(299) +519 = BUFF(303) +528 = AND(150, 184, 228, 240) +535 = BUFF(307) +537 = BUFF(310) +539 = BUFF(313) +541 = BUFF(316) +543 = BUFF(319) +545 = BUFF(322) +547 = BUFF(325) +549 = BUFF(328) +551 = BUFF(331) +553 = BUFF(334) +556 = BUFF(337) +559 = BUFF(343) +561 = BUFF(346) +563 = BUFF(349) +565 = BUFF(352) +567 = BUFF(355) +569 = BUFF(358) +571 = BUFF(361) +573 = BUFF(364) +575 = AND(183, 182, 185, 186) +578 = AND(210, 152, 218, 230) +582 = NOT(15) +585 = NOT(5) +590 = BUFF(1) +593 = NOT(5) +596 = NOT(5) +599 = NOT(289) +604 = NOT(299) +609 = NOT(303) +614 = BUFF(38) +625 = BUFF(15) +628 = NAND(12, 9) +632 = NAND(12, 9) +636 = BUFF(38) +641 = NOT(245) +642 = NOT(248) +643 = BUFF(251) +644 = NOT(251) +651 = NOT(254) +657 = BUFF(106) +660 = NOT(257) +666 = NOT(260) +672 = NOT(263) +673 = NOT(267) +674 = NOT(106) +676 = BUFF(18) +682 = BUFF(18) +688 = AND(382, 263) +689 = BUFF(18) +695 = NOT(18) +700 = NAND(382, 267) +705 = NOT(271) +706 = NOT(274) +707 = BUFF(277) +708 = NOT(277) +715 = NOT(280) +721 = NOT(283) +727 = NOT(286) +733 = NOT(289) +734 = NOT(293) +742 = NOT(296) +748 = NOT(299) +749 = NOT(303) +750 = BUFF(367) +758 = NOT(307) +759 = NOT(310) +762 = NOT(313) +768 = NOT(316) +774 = NOT(319) +780 = NOT(322) +786 = NOT(325) +794 = NOT(328) +800 = NOT(331) +806 = NOT(334) +812 = NOT(337) +813 = BUFF(340) +814 = NOT(340) +821 = NOT(343) +827 = NOT(346) +833 = NOT(349) +839 = NOT(352) +845 = NOT(355) +853 = NOT(358) +859 = NOT(361) +865 = NOT(364) +871 = BUFF(367) +881 = NAND(467, 585) +882 = NOT(528) +883 = NOT(578) +884 = NOT(575) +885 = NOT(494) +886 = AND(528, 578) +887 = AND(575, 494) +889 = BUFF(590) +945 = BUFF(657) +957 = NOT(688) +1028 = AND(382, 641) +1029 = NAND(382, 705) +1109 = AND(469, 596) +1110 = NAND(242, 593) +1111 = NOT(625) +1112 = NAND(242, 593) +1113 = NAND(469, 596) +1114 = NOT(625) +1115 = NOT(871) +1116 = BUFF(590) +1119 = BUFF(628) +1125 = BUFF(682) +1132 = BUFF(628) +1136 = BUFF(682) +1141 = BUFF(628) +1147 = BUFF(682) +1154 = BUFF(632) +1160 = BUFF(676) +1167 = AND(700, 614) +1174 = AND(700, 614) +1175 = BUFF(682) +1182 = BUFF(676) +1189 = NOT(657) +1194 = NOT(676) +1199 = NOT(682) +1206 = NOT(689) +1211 = BUFF(695) +1218 = NOT(750) +1222 = NOT(1028) +1227 = BUFF(632) +1233 = BUFF(676) +1240 = BUFF(632) +1244 = BUFF(676) +1249 = BUFF(689) +1256 = BUFF(689) +1263 = BUFF(695) +1270 = BUFF(689) +1277 = BUFF(689) +1284 = BUFF(700) +1287 = BUFF(614) +1290 = BUFF(666) +1293 = BUFF(660) +1296 = BUFF(651) +1299 = BUFF(614) +1302 = BUFF(644) +1305 = BUFF(700) +1308 = BUFF(614) +1311 = BUFF(614) +1314 = BUFF(666) +1317 = BUFF(660) +1320 = BUFF(651) +1323 = BUFF(644) +1326 = BUFF(609) +1329 = BUFF(604) +1332 = BUFF(742) +1335 = BUFF(599) +1338 = BUFF(727) +1341 = BUFF(721) +1344 = BUFF(715) +1347 = BUFF(734) +1350 = BUFF(708) +1353 = BUFF(609) +1356 = BUFF(604) +1359 = BUFF(742) +1362 = BUFF(734) +1365 = BUFF(599) +1368 = BUFF(727) +1371 = BUFF(721) +1374 = BUFF(715) +1377 = BUFF(708) +1380 = BUFF(806) +1383 = BUFF(800) +1386 = BUFF(794) +1389 = BUFF(786) +1392 = BUFF(780) +1395 = BUFF(774) +1398 = BUFF(768) +1401 = BUFF(762) +1404 = BUFF(806) +1407 = BUFF(800) +1410 = BUFF(794) +1413 = BUFF(780) +1416 = BUFF(774) +1419 = BUFF(768) +1422 = BUFF(762) +1425 = BUFF(786) +1428 = BUFF(636) +1431 = BUFF(636) +1434 = BUFF(865) +1437 = BUFF(859) +1440 = BUFF(853) +1443 = BUFF(845) +1446 = BUFF(839) +1449 = BUFF(833) +1452 = BUFF(827) +1455 = BUFF(821) +1458 = BUFF(814) +1461 = BUFF(865) +1464 = BUFF(859) +1467 = BUFF(853) +1470 = BUFF(839) +1473 = BUFF(833) +1476 = BUFF(827) +1479 = BUFF(821) +1482 = BUFF(845) +1485 = BUFF(814) +1489 = NOT(1109) +1490 = BUFF(1116) +1537 = AND(957, 614) +1551 = AND(614, 957) +1649 = AND(1029, 636) +1703 = BUFF(957) +1708 = NOR(957, 614) +1713 = BUFF(957) +1721 = NOR(614, 957) +1758 = BUFF(1029) +1781 = AND(163, 1116) +1782 = AND(170, 1125) +1783 = NOT(1125) +1789 = NOT(1136) +1793 = AND(169, 1125) +1794 = AND(168, 1125) +1795 = AND(167, 1125) +1796 = AND(166, 1136) +1797 = AND(165, 1136) +1798 = AND(164, 1136) +1799 = NOT(1147) +1805 = NOT(1160) +1811 = AND(177, 1147) +1812 = AND(176, 1147) +1813 = AND(175, 1147) +1814 = AND(174, 1147) +1815 = AND(173, 1147) +1816 = AND(157, 1160) +1817 = AND(156, 1160) +1818 = AND(155, 1160) +1819 = AND(154, 1160) +1820 = AND(153, 1160) +1821 = NOT(1284) +1822 = NOT(1287) +1828 = NOT(1290) +1829 = NOT(1293) +1830 = NOT(1296) +1832 = NOT(1299) +1833 = NOT(1302) +1834 = NOT(1305) +1835 = NOT(1308) +1839 = NOT(1311) +1840 = NOT(1314) +1841 = NOT(1317) +1842 = NOT(1320) +1843 = NOT(1323) +1845 = NOT(1175) +1851 = NOT(1182) +1857 = AND(181, 1175) +1858 = AND(171, 1175) +1859 = AND(180, 1175) +1860 = AND(179, 1175) +1861 = AND(178, 1175) +1862 = AND(161, 1182) +1863 = AND(151, 1182) +1864 = AND(160, 1182) +1865 = AND(159, 1182) +1866 = AND(158, 1182) +1867 = NOT(1326) +1868 = NOT(1329) +1869 = NOT(1332) +1870 = NOT(1335) +1871 = NOT(1338) +1872 = NOT(1341) +1873 = NOT(1344) +1874 = NOT(1347) +1875 = NOT(1350) +1876 = NOT(1353) +1877 = NOT(1356) +1878 = NOT(1359) +1879 = NOT(1362) +1880 = NOT(1365) +1881 = NOT(1368) +1882 = NOT(1371) +1883 = NOT(1374) +1884 = NOT(1377) +1885 = BUFF(1199) +1892 = BUFF(1194) +1899 = BUFF(1199) +1906 = BUFF(1194) +1913 = NOT(1211) +1919 = BUFF(1194) +1926 = AND(44, 1211) +1927 = AND(41, 1211) +1928 = AND(29, 1211) +1929 = AND(26, 1211) +1930 = AND(23, 1211) +1931 = NOT(1380) +1932 = NOT(1383) +1933 = NOT(1386) +1934 = NOT(1389) +1935 = NOT(1392) +1936 = NOT(1395) +1937 = NOT(1398) +1938 = NOT(1401) +1939 = NOT(1404) +1940 = NOT(1407) +1941 = NOT(1410) +1942 = NOT(1413) +1943 = NOT(1416) +1944 = NOT(1419) +1945 = NOT(1422) +1946 = NOT(1425) +1947 = NOT(1233) +1953 = NOT(1244) +1957 = AND(209, 1233) +1958 = AND(216, 1233) +1959 = AND(215, 1233) +1960 = AND(214, 1233) +1961 = AND(213, 1244) +1962 = AND(212, 1244) +1963 = AND(211, 1244) +1965 = NOT(1428) +1966 = AND(1222, 636) +1967 = NOT(1431) +1968 = NOT(1434) +1969 = NOT(1437) +1970 = NOT(1440) +1971 = NOT(1443) +1972 = NOT(1446) +1973 = NOT(1449) +1974 = NOT(1452) +1975 = NOT(1455) +1976 = NOT(1458) +1977 = NOT(1249) +1983 = NOT(1256) +1989 = AND(642, 1249) +1990 = AND(644, 1249) +1991 = AND(651, 1249) +1992 = AND(674, 1249) +1993 = AND(660, 1249) +1994 = AND(666, 1256) +1995 = AND(672, 1256) +1996 = AND(673, 1256) +1997 = NOT(1263) +2003 = BUFF(1194) +2010 = AND(47, 1263) +2011 = AND(35, 1263) +2012 = AND(32, 1263) +2013 = AND(50, 1263) +2014 = AND(66, 1263) +2015 = NOT(1461) +2016 = NOT(1464) +2017 = NOT(1467) +2018 = NOT(1470) +2019 = NOT(1473) +2020 = NOT(1476) +2021 = NOT(1479) +2022 = NOT(1482) +2023 = NOT(1485) +2024 = BUFF(1206) +2031 = BUFF(1206) +2038 = BUFF(1206) +2045 = BUFF(1206) +2052 = NOT(1270) +2058 = NOT(1277) +2064 = AND(706, 1270) +2065 = AND(708, 1270) +2066 = AND(715, 1270) +2067 = AND(721, 1270) +2068 = AND(727, 1270) +2069 = AND(733, 1277) +2070 = AND(734, 1277) +2071 = AND(742, 1277) +2072 = AND(748, 1277) +2073 = AND(749, 1277) +2074 = BUFF(1189) +2081 = BUFF(1189) +2086 = BUFF(1222) +2107 = NAND(1287, 1821) +2108 = NAND(1284, 1822) +2110 = NOT(1703) +2111 = NAND(1703, 1832) +2112 = NAND(1308, 1834) +2113 = NAND(1305, 1835) +2114 = NOT(1713) +2115 = NAND(1713, 1839) +2117 = NOT(1721) +2171 = NOT(1758) +2172 = NAND(1758, 1965) +2230 = NOT(1708) +2231 = BUFF(1537) +2235 = BUFF(1551) +2239 = OR(1783, 1782) +2240 = OR(1783, 1125) +2241 = OR(1783, 1793) +2242 = OR(1783, 1794) +2243 = OR(1783, 1795) +2244 = OR(1789, 1796) +2245 = OR(1789, 1797) +2246 = OR(1789, 1798) +2247 = OR(1799, 1811) +2248 = OR(1799, 1812) +2249 = OR(1799, 1813) +2250 = OR(1799, 1814) +2251 = OR(1799, 1815) +2252 = OR(1805, 1816) +2253 = OR(1805, 1817) +2254 = OR(1805, 1818) +2255 = OR(1805, 1819) +2256 = OR(1805, 1820) +2257 = NAND(2107, 2108) +2267 = NOT(2074) +2268 = NAND(1299, 2110) +2269 = NAND(2112, 2113) +2274 = NAND(1311, 2114) +2275 = NOT(2081) +2277 = AND(141, 1845) +2278 = AND(147, 1845) +2279 = AND(138, 1845) +2280 = AND(144, 1845) +2281 = AND(135, 1845) +2282 = AND(141, 1851) +2283 = AND(147, 1851) +2284 = AND(138, 1851) +2285 = AND(144, 1851) +2286 = AND(135, 1851) +2287 = NOT(1885) +2293 = NOT(1892) +2299 = AND(103, 1885) +2300 = AND(130, 1885) +2301 = AND(127, 1885) +2302 = AND(124, 1885) +2303 = AND(100, 1885) +2304 = AND(103, 1892) +2305 = AND(130, 1892) +2306 = AND(127, 1892) +2307 = AND(124, 1892) +2308 = AND(100, 1892) +2309 = NOT(1899) +2315 = NOT(1906) +2321 = AND(115, 1899) +2322 = AND(118, 1899) +2323 = AND(97, 1899) +2324 = AND(94, 1899) +2325 = AND(121, 1899) +2326 = AND(115, 1906) +2327 = AND(118, 1906) +2328 = AND(97, 1906) +2329 = AND(94, 1906) +2330 = AND(121, 1906) +2331 = NOT(1919) +2337 = AND(208, 1913) +2338 = AND(198, 1913) +2339 = AND(207, 1913) +2340 = AND(206, 1913) +2341 = AND(205, 1913) +2342 = AND(44, 1919) +2343 = AND(41, 1919) +2344 = AND(29, 1919) +2345 = AND(26, 1919) +2346 = AND(23, 1919) +2347 = OR(1947, 1233) +2348 = OR(1947, 1957) +2349 = OR(1947, 1958) +2350 = OR(1947, 1959) +2351 = OR(1947, 1960) +2352 = OR(1953, 1961) +2353 = OR(1953, 1962) +2354 = OR(1953, 1963) +2355 = NAND(1428, 2171) +2356 = NOT(2086) +2357 = NAND(2086, 1967) +2358 = AND(114, 1977) +2359 = AND(113, 1977) +2360 = AND(111, 1977) +2361 = AND(87, 1977) +2362 = AND(112, 1977) +2363 = AND(88, 1983) +2364 = AND(245, 1983) +2365 = AND(271, 1983) +2366 = AND(759, 1983) +2367 = AND(70, 1983) +2368 = NOT(2003) +2374 = AND(193, 1997) +2375 = AND(192, 1997) +2376 = AND(191, 1997) +2377 = AND(190, 1997) +2378 = AND(189, 1997) +2379 = AND(47, 2003) +2380 = AND(35, 2003) +2381 = AND(32, 2003) +2382 = AND(50, 2003) +2383 = AND(66, 2003) +2384 = NOT(2024) +2390 = NOT(2031) +2396 = AND(58, 2024) +2397 = AND(77, 2024) +2398 = AND(78, 2024) +2399 = AND(59, 2024) +2400 = AND(81, 2024) +2401 = AND(80, 2031) +2402 = AND(79, 2031) +2403 = AND(60, 2031) +2404 = AND(61, 2031) +2405 = AND(62, 2031) +2406 = NOT(2038) +2412 = NOT(2045) +2418 = AND(69, 2038) +2419 = AND(70, 2038) +2420 = AND(74, 2038) +2421 = AND(76, 2038) +2422 = AND(75, 2038) +2423 = AND(73, 2045) +2424 = AND(53, 2045) +2425 = AND(54, 2045) +2426 = AND(55, 2045) +2427 = AND(56, 2045) +2428 = AND(82, 2052) +2429 = AND(65, 2052) +2430 = AND(83, 2052) +2431 = AND(84, 2052) +2432 = AND(85, 2052) +2433 = AND(64, 2058) +2434 = AND(63, 2058) +2435 = AND(86, 2058) +2436 = AND(109, 2058) +2437 = AND(110, 2058) +2441 = AND(2239, 1119) +2442 = AND(2240, 1119) +2446 = AND(2241, 1119) +2450 = AND(2242, 1119) +2454 = AND(2243, 1119) +2458 = AND(2244, 1132) +2462 = AND(2247, 1141) +2466 = AND(2248, 1141) +2470 = AND(2249, 1141) +2474 = AND(2250, 1141) +2478 = AND(2251, 1141) +2482 = AND(2252, 1154) +2488 = AND(2253, 1154) +2496 = AND(2254, 1154) +2502 = AND(2255, 1154) +2508 = AND(2256, 1154) +2523 = NAND(2268, 2111) +2533 = NAND(2274, 2115) +2537 = NOT(2235) +2538 = OR(2278, 1858) +2542 = OR(2279, 1859) +2546 = OR(2280, 1860) +2550 = OR(2281, 1861) +2554 = OR(2283, 1863) +2561 = OR(2284, 1864) +2567 = OR(2285, 1865) +2573 = OR(2286, 1866) +2604 = OR(2338, 1927) +2607 = OR(2339, 1928) +2611 = OR(2340, 1929) +2615 = OR(2341, 1930) +2619 = AND(2348, 1227) +2626 = AND(2349, 1227) +2632 = AND(2350, 1227) +2638 = AND(2351, 1227) +2644 = AND(2352, 1240) +2650 = NAND(2355, 2172) +2653 = NAND(1431, 2356) +2654 = OR(2359, 1990) +2658 = OR(2360, 1991) +2662 = OR(2361, 1992) +2666 = OR(2362, 1993) +2670 = OR(2363, 1994) +2674 = OR(2366, 1256) +2680 = OR(2367, 1256) +2688 = OR(2374, 2010) +2692 = OR(2375, 2011) +2696 = OR(2376, 2012) +2700 = OR(2377, 2013) +2704 = OR(2378, 2014) +2728 = AND(2347, 1227) +2729 = OR(2429, 2065) +2733 = OR(2430, 2066) +2737 = OR(2431, 2067) +2741 = OR(2432, 2068) +2745 = OR(2433, 2069) +2749 = OR(2434, 2070) +2753 = OR(2435, 2071) +2757 = OR(2436, 2072) +2761 = OR(2437, 2073) +2765 = NOT(2231) +2766 = AND(2354, 1240) +2769 = AND(2353, 1240) +2772 = AND(2246, 1132) +2775 = AND(2245, 1132) +2778 = OR(2282, 1862) +2781 = OR(2358, 1989) +2784 = OR(2365, 1996) +2787 = OR(2364, 1995) +2790 = OR(2337, 1926) +2793 = OR(2277, 1857) +2796 = OR(2428, 2064) +2866 = AND(2257, 1537) +2867 = AND(2257, 1537) +2868 = AND(2257, 1537) +2869 = AND(2257, 1537) +2878 = AND(2269, 1551) +2913 = AND(204, 2287) +2914 = AND(203, 2287) +2915 = AND(202, 2287) +2916 = AND(201, 2287) +2917 = AND(200, 2287) +2918 = AND(235, 2293) +2919 = AND(234, 2293) +2920 = AND(233, 2293) +2921 = AND(232, 2293) +2922 = AND(231, 2293) +2923 = AND(197, 2309) +2924 = AND(187, 2309) +2925 = AND(196, 2309) +2926 = AND(195, 2309) +2927 = AND(194, 2309) +2928 = AND(227, 2315) +2929 = AND(217, 2315) +2930 = AND(226, 2315) +2931 = AND(225, 2315) +2932 = AND(224, 2315) +2933 = AND(239, 2331) +2934 = AND(229, 2331) +2935 = AND(238, 2331) +2936 = AND(237, 2331) +2937 = AND(236, 2331) +2988 = NAND(2653, 2357) +3005 = AND(223, 2368) +3006 = AND(222, 2368) +3007 = AND(221, 2368) +3008 = AND(220, 2368) +3009 = AND(219, 2368) +3020 = AND(812, 2384) +3021 = AND(814, 2384) +3022 = AND(821, 2384) +3023 = AND(827, 2384) +3024 = AND(833, 2384) +3025 = AND(839, 2390) +3026 = AND(845, 2390) +3027 = AND(853, 2390) +3028 = AND(859, 2390) +3029 = AND(865, 2390) +3032 = AND(758, 2406) +3033 = AND(759, 2406) +3034 = AND(762, 2406) +3035 = AND(768, 2406) +3036 = AND(774, 2406) +3037 = AND(780, 2412) +3038 = AND(786, 2412) +3039 = AND(794, 2412) +3040 = AND(800, 2412) +3041 = AND(806, 2412) +3061 = BUFF(2257) +3064 = BUFF(2257) +3067 = BUFF(2269) +3070 = BUFF(2269) +3073 = NOT(2728) +3080 = NOT(2441) +3096 = AND(666, 2644) +3097 = AND(660, 2638) +3101 = AND(1189, 2632) +3107 = AND(651, 2626) +3114 = AND(644, 2619) +3122 = AND(2523, 2257) +3126 = OR(1167, 2866) +3130 = AND(2523, 2257) +3131 = OR(1167, 2869) +3134 = AND(2523, 2257) +3135 = NOT(2533) +3136 = AND(666, 2644) +3137 = AND(660, 2638) +3140 = AND(1189, 2632) +3144 = AND(651, 2626) +3149 = AND(644, 2619) +3155 = AND(2533, 2269) +3159 = OR(1174, 2878) +3167 = NOT(2778) +3168 = AND(609, 2508) +3169 = AND(604, 2502) +3173 = AND(742, 2496) +3178 = AND(734, 2488) +3184 = AND(599, 2482) +3185 = AND(727, 2573) +3189 = AND(721, 2567) +3195 = AND(715, 2561) +3202 = AND(708, 2554) +3210 = AND(609, 2508) +3211 = AND(604, 2502) +3215 = AND(742, 2496) +3221 = AND(2488, 734) +3228 = AND(599, 2482) +3229 = AND(727, 2573) +3232 = AND(721, 2567) +3236 = AND(715, 2561) +3241 = AND(708, 2554) +3247 = OR(2913, 2299) +3251 = OR(2914, 2300) +3255 = OR(2915, 2301) +3259 = OR(2916, 2302) +3263 = OR(2917, 2303) +3267 = OR(2918, 2304) +3273 = OR(2919, 2305) +3281 = OR(2920, 2306) +3287 = OR(2921, 2307) +3293 = OR(2922, 2308) +3299 = OR(2924, 2322) +3303 = OR(2925, 2323) +3307 = OR(2926, 2324) +3311 = OR(2927, 2325) +3315 = OR(2929, 2327) +3322 = OR(2930, 2328) +3328 = OR(2931, 2329) +3334 = OR(2932, 2330) +3340 = OR(2934, 2343) +3343 = OR(2935, 2344) +3349 = OR(2936, 2345) +3355 = OR(2937, 2346) +3361 = AND(2761, 2478) +3362 = AND(2757, 2474) +3363 = AND(2753, 2470) +3364 = AND(2749, 2466) +3365 = AND(2745, 2462) +3366 = AND(2741, 2550) +3367 = AND(2737, 2546) +3368 = AND(2733, 2542) +3369 = AND(2729, 2538) +3370 = AND(2670, 2458) +3371 = AND(2666, 2454) +3372 = AND(2662, 2450) +3373 = AND(2658, 2446) +3374 = AND(2654, 2442) +3375 = AND(2988, 2650) +3379 = AND(2650, 1966) +3380 = NOT(2781) +3381 = AND(695, 2604) +3384 = OR(3005, 2379) +3390 = OR(3006, 2380) +3398 = OR(3007, 2381) +3404 = OR(3008, 2382) +3410 = OR(3009, 2383) +3416 = OR(3021, 2397) +3420 = OR(3022, 2398) +3424 = OR(3023, 2399) +3428 = OR(3024, 2400) +3432 = OR(3025, 2401) +3436 = OR(3026, 2402) +3440 = OR(3027, 2403) +3444 = OR(3028, 2404) +3448 = OR(3029, 2405) +3452 = NOT(2790) +3453 = NOT(2793) +3454 = OR(3034, 2420) +3458 = OR(3035, 2421) +3462 = OR(3036, 2422) +3466 = OR(3037, 2423) +3470 = OR(3038, 2424) +3474 = OR(3039, 2425) +3478 = OR(3040, 2426) +3482 = OR(3041, 2427) +3486 = NOT(2796) +3487 = BUFF(2644) +3490 = BUFF(2638) +3493 = BUFF(2632) +3496 = BUFF(2626) +3499 = BUFF(2619) +3502 = BUFF(2523) +3507 = NOR(1167, 2868) +3510 = BUFF(2523) +3515 = NOR(644, 2619) +3518 = BUFF(2644) +3521 = BUFF(2638) +3524 = BUFF(2632) +3527 = BUFF(2626) +3530 = BUFF(2619) +3535 = BUFF(2619) +3539 = BUFF(2632) +3542 = BUFF(2626) +3545 = BUFF(2644) +3548 = BUFF(2638) +3551 = NOT(2766) +3552 = NOT(2769) +3553 = BUFF(2442) +3557 = BUFF(2450) +3560 = BUFF(2446) +3563 = BUFF(2458) +3566 = BUFF(2454) +3569 = NOT(2772) +3570 = NOT(2775) +3571 = BUFF(2554) +3574 = BUFF(2567) +3577 = BUFF(2561) +3580 = BUFF(2482) +3583 = BUFF(2573) +3586 = BUFF(2496) +3589 = BUFF(2488) +3592 = BUFF(2508) +3595 = BUFF(2502) +3598 = BUFF(2508) +3601 = BUFF(2502) +3604 = BUFF(2496) +3607 = BUFF(2482) +3610 = BUFF(2573) +3613 = BUFF(2567) +3616 = BUFF(2561) +3619 = BUFF(2488) +3622 = BUFF(2554) +3625 = NOR(734, 2488) +3628 = NOR(708, 2554) +3631 = BUFF(2508) +3634 = BUFF(2502) +3637 = BUFF(2496) +3640 = BUFF(2488) +3643 = BUFF(2482) +3646 = BUFF(2573) +3649 = BUFF(2567) +3652 = BUFF(2561) +3655 = BUFF(2554) +3658 = NOR(2488, 734) +3661 = BUFF(2674) +3664 = BUFF(2674) +3667 = BUFF(2761) +3670 = BUFF(2478) +3673 = BUFF(2757) +3676 = BUFF(2474) +3679 = BUFF(2753) +3682 = BUFF(2470) +3685 = BUFF(2745) +3688 = BUFF(2462) +3691 = BUFF(2741) +3694 = BUFF(2550) +3697 = BUFF(2737) +3700 = BUFF(2546) +3703 = BUFF(2733) +3706 = BUFF(2542) +3709 = BUFF(2749) +3712 = BUFF(2466) +3715 = BUFF(2729) +3718 = BUFF(2538) +3721 = BUFF(2704) +3724 = BUFF(2700) +3727 = BUFF(2696) +3730 = BUFF(2688) +3733 = BUFF(2692) +3736 = BUFF(2670) +3739 = BUFF(2458) +3742 = BUFF(2666) +3745 = BUFF(2454) +3748 = BUFF(2662) +3751 = BUFF(2450) +3754 = BUFF(2658) +3757 = BUFF(2446) +3760 = BUFF(2654) +3763 = BUFF(2442) +3766 = BUFF(2654) +3769 = BUFF(2662) +3772 = BUFF(2658) +3775 = BUFF(2670) +3778 = BUFF(2666) +3781 = NOT(2784) +3782 = NOT(2787) +3783 = OR(2928, 2326) +3786 = OR(2933, 2342) +3789 = OR(2923, 2321) +3792 = BUFF(2688) +3795 = BUFF(2696) +3798 = BUFF(2692) +3801 = BUFF(2704) +3804 = BUFF(2700) +3807 = BUFF(2604) +3810 = BUFF(2611) +3813 = BUFF(2607) +3816 = BUFF(2615) +3819 = BUFF(2538) +3822 = BUFF(2546) +3825 = BUFF(2542) +3828 = BUFF(2462) +3831 = BUFF(2550) +3834 = BUFF(2470) +3837 = BUFF(2466) +3840 = BUFF(2478) +3843 = BUFF(2474) +3846 = BUFF(2615) +3849 = BUFF(2611) +3852 = BUFF(2607) +3855 = BUFF(2680) +3858 = BUFF(2729) +3861 = BUFF(2737) +3864 = BUFF(2733) +3867 = BUFF(2745) +3870 = BUFF(2741) +3873 = BUFF(2753) +3876 = BUFF(2749) +3879 = BUFF(2761) +3882 = BUFF(2757) +3885 = OR(3033, 2419) +3888 = OR(3032, 2418) +3891 = OR(3020, 2396) +3953 = NAND(3067, 2117) +3954 = NOT(3067) +3955 = NAND(3070, 2537) +3956 = NOT(3070) +3958 = NOT(3073) +3964 = NOT(3080) +4193 = OR(1649, 3379) +4303 = OR(1167, 2867, 3130) +4308 = NOT(3061) +4313 = NOT(3064) +4326 = NAND(2769, 3551) +4327 = NAND(2766, 3552) +4333 = NAND(2775, 3569) +4334 = NAND(2772, 3570) +4411 = NAND(2787, 3781) +4412 = NAND(2784, 3782) +4463 = NAND(3487, 1828) +4464 = NOT(3487) +4465 = NAND(3490, 1829) +4466 = NOT(3490) +4467 = NAND(3493, 2267) +4468 = NOT(3493) +4469 = NAND(3496, 1830) +4470 = NOT(3496) +4471 = NAND(3499, 1833) +4472 = NOT(3499) +4473 = NOT(3122) +4474 = NOT(3126) +4475 = NAND(3518, 1840) +4476 = NOT(3518) +4477 = NAND(3521, 1841) +4478 = NOT(3521) +4479 = NAND(3524, 2275) +4480 = NOT(3524) +4481 = NAND(3527, 1842) +4482 = NOT(3527) +4483 = NAND(3530, 1843) +4484 = NOT(3530) +4485 = NOT(3155) +4486 = NOT(3159) +4487 = NAND(1721, 3954) +4488 = NAND(2235, 3956) +4489 = NOT(3535) +4490 = NAND(3535, 3958) +4491 = NOT(3539) +4492 = NOT(3542) +4493 = NOT(3545) +4494 = NOT(3548) +4495 = NOT(3553) +4496 = NAND(3553, 3964) +4497 = NOT(3557) +4498 = NOT(3560) +4499 = NOT(3563) +4500 = NOT(3566) +4501 = NOT(3571) +4502 = NAND(3571, 3167) +4503 = NOT(3574) +4504 = NOT(3577) +4505 = NOT(3580) +4506 = NOT(3583) +4507 = NAND(3598, 1867) +4508 = NOT(3598) +4509 = NAND(3601, 1868) +4510 = NOT(3601) +4511 = NAND(3604, 1869) +4512 = NOT(3604) +4513 = NAND(3607, 1870) +4514 = NOT(3607) +4515 = NAND(3610, 1871) +4516 = NOT(3610) +4517 = NAND(3613, 1872) +4518 = NOT(3613) +4519 = NAND(3616, 1873) +4520 = NOT(3616) +4521 = NAND(3619, 1874) +4522 = NOT(3619) +4523 = NAND(3622, 1875) +4524 = NOT(3622) +4525 = NAND(3631, 1876) +4526 = NOT(3631) +4527 = NAND(3634, 1877) +4528 = NOT(3634) +4529 = NAND(3637, 1878) +4530 = NOT(3637) +4531 = NAND(3640, 1879) +4532 = NOT(3640) +4533 = NAND(3643, 1880) +4534 = NOT(3643) +4535 = NAND(3646, 1881) +4536 = NOT(3646) +4537 = NAND(3649, 1882) +4538 = NOT(3649) +4539 = NAND(3652, 1883) +4540 = NOT(3652) +4541 = NAND(3655, 1884) +4542 = NOT(3655) +4543 = NOT(3658) +4544 = AND(806, 3293) +4545 = AND(800, 3287) +4549 = AND(794, 3281) +4555 = AND(3273, 786) +4562 = AND(780, 3267) +4563 = AND(774, 3355) +4566 = AND(768, 3349) +4570 = AND(762, 3343) +4575 = NOT(3661) +4576 = AND(806, 3293) +4577 = AND(800, 3287) +4581 = AND(794, 3281) +4586 = AND(786, 3273) +4592 = AND(780, 3267) +4593 = AND(774, 3355) +4597 = AND(768, 3349) +4603 = AND(762, 3343) +4610 = NOT(3664) +4611 = NOT(3667) +4612 = NOT(3670) +4613 = NOT(3673) +4614 = NOT(3676) +4615 = NOT(3679) +4616 = NOT(3682) +4617 = NOT(3685) +4618 = NOT(3688) +4619 = NOT(3691) +4620 = NOT(3694) +4621 = NOT(3697) +4622 = NOT(3700) +4623 = NOT(3703) +4624 = NOT(3706) +4625 = NOT(3709) +4626 = NOT(3712) +4627 = NOT(3715) +4628 = NOT(3718) +4629 = NOT(3721) +4630 = AND(3448, 2704) +4631 = NOT(3724) +4632 = AND(3444, 2700) +4633 = NOT(3727) +4634 = AND(3440, 2696) +4635 = AND(3436, 2692) +4636 = NOT(3730) +4637 = AND(3432, 2688) +4638 = AND(3428, 3311) +4639 = AND(3424, 3307) +4640 = AND(3420, 3303) +4641 = AND(3416, 3299) +4642 = NOT(3733) +4643 = NOT(3736) +4644 = NOT(3739) +4645 = NOT(3742) +4646 = NOT(3745) +4647 = NOT(3748) +4648 = NOT(3751) +4649 = NOT(3754) +4650 = NOT(3757) +4651 = NOT(3760) +4652 = NOT(3763) +4653 = NOT(3375) +4656 = AND(865, 3410) +4657 = AND(859, 3404) +4661 = AND(853, 3398) +4667 = AND(3390, 845) +4674 = AND(839, 3384) +4675 = AND(833, 3334) +4678 = AND(827, 3328) +4682 = AND(821, 3322) +4687 = AND(814, 3315) +4693 = NOT(3766) +4694 = NAND(3766, 3380) +4695 = NOT(3769) +4696 = NOT(3772) +4697 = NOT(3775) +4698 = NOT(3778) +4699 = NOT(3783) +4700 = NOT(3786) +4701 = AND(865, 3410) +4702 = AND(859, 3404) +4706 = AND(853, 3398) +4711 = AND(845, 3390) +4717 = AND(839, 3384) +4718 = AND(833, 3334) +4722 = AND(827, 3328) +4728 = AND(821, 3322) +4735 = AND(814, 3315) +4743 = NOT(3789) +4744 = NOT(3792) +4745 = NOT(3807) +4746 = NAND(3807, 3452) +4747 = NOT(3810) +4748 = NOT(3813) +4749 = NOT(3816) +4750 = NOT(3819) +4751 = NAND(3819, 3453) +4752 = NOT(3822) +4753 = NOT(3825) +4754 = NOT(3828) +4755 = NOT(3831) +4756 = AND(3482, 3263) +4757 = AND(3478, 3259) +4758 = AND(3474, 3255) +4759 = AND(3470, 3251) +4760 = AND(3466, 3247) +4761 = NOT(3846) +4762 = AND(3462, 2615) +4763 = NOT(3849) +4764 = AND(3458, 2611) +4765 = NOT(3852) +4766 = AND(3454, 2607) +4767 = AND(2680, 3381) +4768 = NOT(3855) +4769 = AND(3340, 695) +4775 = NOT(3858) +4776 = NAND(3858, 3486) +4777 = NOT(3861) +4778 = NOT(3864) +4779 = NOT(3867) +4780 = NOT(3870) +4781 = NOT(3885) +4782 = NOT(3888) +4783 = NOT(3891) +4784 = OR(3131, 3134) +4789 = NOT(3502) +4790 = NOT(3131) +4793 = NOT(3507) +4794 = NOT(3510) +4795 = NOT(3515) +4796 = BUFF(3114) +4799 = NOT(3586) +4800 = NOT(3589) +4801 = NOT(3592) +4802 = NOT(3595) +4803 = NAND(4326, 4327) +4806 = NAND(4333, 4334) +4809 = NOT(3625) +4810 = BUFF(3178) +4813 = NOT(3628) +4814 = BUFF(3202) +4817 = BUFF(3221) +4820 = BUFF(3293) +4823 = BUFF(3287) +4826 = BUFF(3281) +4829 = BUFF(3273) +4832 = BUFF(3267) +4835 = BUFF(3355) +4838 = BUFF(3349) +4841 = BUFF(3343) +4844 = NOR(3273, 786) +4847 = BUFF(3293) +4850 = BUFF(3287) +4853 = BUFF(3281) +4856 = BUFF(3267) +4859 = BUFF(3355) +4862 = BUFF(3349) +4865 = BUFF(3343) +4868 = BUFF(3273) +4871 = NOR(786, 3273) +4874 = BUFF(3448) +4877 = BUFF(3444) +4880 = BUFF(3440) +4883 = BUFF(3432) +4886 = BUFF(3428) +4889 = BUFF(3311) +4892 = BUFF(3424) +4895 = BUFF(3307) +4898 = BUFF(3420) +4901 = BUFF(3303) +4904 = BUFF(3436) +4907 = BUFF(3416) +4910 = BUFF(3299) +4913 = BUFF(3410) +4916 = BUFF(3404) +4919 = BUFF(3398) +4922 = BUFF(3390) +4925 = BUFF(3384) +4928 = BUFF(3334) +4931 = BUFF(3328) +4934 = BUFF(3322) +4937 = BUFF(3315) +4940 = NOR(3390, 845) +4943 = BUFF(3315) +4946 = BUFF(3328) +4949 = BUFF(3322) +4952 = BUFF(3384) +4955 = BUFF(3334) +4958 = BUFF(3398) +4961 = BUFF(3390) +4964 = BUFF(3410) +4967 = BUFF(3404) +4970 = BUFF(3340) +4973 = BUFF(3349) +4976 = BUFF(3343) +4979 = BUFF(3267) +4982 = BUFF(3355) +4985 = BUFF(3281) +4988 = BUFF(3273) +4991 = BUFF(3293) +4994 = BUFF(3287) +4997 = NAND(4411, 4412) +5000 = BUFF(3410) +5003 = BUFF(3404) +5006 = BUFF(3398) +5009 = BUFF(3384) +5012 = BUFF(3334) +5015 = BUFF(3328) +5018 = BUFF(3322) +5021 = BUFF(3390) +5024 = BUFF(3315) +5027 = NOR(845, 3390) +5030 = NOR(814, 3315) +5033 = BUFF(3299) +5036 = BUFF(3307) +5039 = BUFF(3303) +5042 = BUFF(3311) +5045 = NOT(3795) +5046 = NOT(3798) +5047 = NOT(3801) +5048 = NOT(3804) +5049 = BUFF(3247) +5052 = BUFF(3255) +5055 = BUFF(3251) +5058 = BUFF(3263) +5061 = BUFF(3259) +5064 = NOT(3834) +5065 = NOT(3837) +5066 = NOT(3840) +5067 = NOT(3843) +5068 = BUFF(3482) +5071 = BUFF(3263) +5074 = BUFF(3478) +5077 = BUFF(3259) +5080 = BUFF(3474) +5083 = BUFF(3255) +5086 = BUFF(3466) +5089 = BUFF(3247) +5092 = BUFF(3462) +5095 = BUFF(3458) +5098 = BUFF(3454) +5101 = BUFF(3470) +5104 = BUFF(3251) +5107 = BUFF(3381) +5110 = NOT(3873) +5111 = NOT(3876) +5112 = NOT(3879) +5113 = NOT(3882) +5114 = BUFF(3458) +5117 = BUFF(3454) +5120 = BUFF(3466) +5123 = BUFF(3462) +5126 = BUFF(3474) +5129 = BUFF(3470) +5132 = BUFF(3482) +5135 = BUFF(3478) +5138 = BUFF(3416) +5141 = BUFF(3424) +5144 = BUFF(3420) +5147 = BUFF(3432) +5150 = BUFF(3428) +5153 = BUFF(3440) +5156 = BUFF(3436) +5159 = BUFF(3448) +5162 = BUFF(3444) +5165 = NAND(4486, 4485) +5166 = NAND(4474, 4473) +5167 = NAND(1290, 4464) +5168 = NAND(1293, 4466) +5169 = NAND(2074, 4468) +5170 = NAND(1296, 4470) +5171 = NAND(1302, 4472) +5172 = NAND(1314, 4476) +5173 = NAND(1317, 4478) +5174 = NAND(2081, 4480) +5175 = NAND(1320, 4482) +5176 = NAND(1323, 4484) +5177 = NAND(3953, 4487) +5178 = NAND(3955, 4488) +5179 = NAND(3073, 4489) +5180 = NAND(3542, 4491) +5181 = NAND(3539, 4492) +5182 = NAND(3548, 4493) +5183 = NAND(3545, 4494) +5184 = NAND(3080, 4495) +5185 = NAND(3560, 4497) +5186 = NAND(3557, 4498) +5187 = NAND(3566, 4499) +5188 = NAND(3563, 4500) +5189 = NAND(2778, 4501) +5190 = NAND(3577, 4503) +5191 = NAND(3574, 4504) +5192 = NAND(3583, 4505) +5193 = NAND(3580, 4506) +5196 = NAND(1326, 4508) +5197 = NAND(1329, 4510) +5198 = NAND(1332, 4512) +5199 = NAND(1335, 4514) +5200 = NAND(1338, 4516) +5201 = NAND(1341, 4518) +5202 = NAND(1344, 4520) +5203 = NAND(1347, 4522) +5204 = NAND(1350, 4524) +5205 = NAND(1353, 4526) +5206 = NAND(1356, 4528) +5207 = NAND(1359, 4530) +5208 = NAND(1362, 4532) +5209 = NAND(1365, 4534) +5210 = NAND(1368, 4536) +5211 = NAND(1371, 4538) +5212 = NAND(1374, 4540) +5213 = NAND(1377, 4542) +5283 = NAND(3670, 4611) +5284 = NAND(3667, 4612) +5285 = NAND(3676, 4613) +5286 = NAND(3673, 4614) +5287 = NAND(3682, 4615) +5288 = NAND(3679, 4616) +5289 = NAND(3688, 4617) +5290 = NAND(3685, 4618) +5291 = NAND(3694, 4619) +5292 = NAND(3691, 4620) +5293 = NAND(3700, 4621) +5294 = NAND(3697, 4622) +5295 = NAND(3706, 4623) +5296 = NAND(3703, 4624) +5297 = NAND(3712, 4625) +5298 = NAND(3709, 4626) +5299 = NAND(3718, 4627) +5300 = NAND(3715, 4628) +5314 = NAND(3739, 4643) +5315 = NAND(3736, 4644) +5316 = NAND(3745, 4645) +5317 = NAND(3742, 4646) +5318 = NAND(3751, 4647) +5319 = NAND(3748, 4648) +5320 = NAND(3757, 4649) +5321 = NAND(3754, 4650) +5322 = NAND(3763, 4651) +5323 = NAND(3760, 4652) +5324 = NOT(4193) +5363 = NAND(2781, 4693) +5364 = NAND(3772, 4695) +5365 = NAND(3769, 4696) +5366 = NAND(3778, 4697) +5367 = NAND(3775, 4698) +5425 = NAND(2790, 4745) +5426 = NAND(3813, 4747) +5427 = NAND(3810, 4748) +5429 = NAND(2793, 4750) +5430 = NAND(3825, 4752) +5431 = NAND(3822, 4753) +5432 = NAND(3831, 4754) +5433 = NAND(3828, 4755) +5451 = NAND(2796, 4775) +5452 = NAND(3864, 4777) +5453 = NAND(3861, 4778) +5454 = NAND(3870, 4779) +5455 = NAND(3867, 4780) +5456 = NAND(3888, 4781) +5457 = NAND(3885, 4782) +5469 = NOT(4303) +5474 = NAND(3589, 4799) +5475 = NAND(3586, 4800) +5476 = NAND(3595, 4801) +5477 = NAND(3592, 4802) +5571 = NAND(3798, 5045) +5572 = NAND(3795, 5046) +5573 = NAND(3804, 5047) +5574 = NAND(3801, 5048) +5584 = NAND(3837, 5064) +5585 = NAND(3834, 5065) +5586 = NAND(3843, 5066) +5587 = NAND(3840, 5067) +5602 = NAND(3876, 5110) +5603 = NAND(3873, 5111) +5604 = NAND(3882, 5112) +5605 = NAND(3879, 5113) +5631 = NAND(5324, 4653) +5632 = NAND(4463, 5167) +5640 = NAND(4465, 5168) +5654 = NAND(4467, 5169) +5670 = NAND(4469, 5170) +5683 = NAND(4471, 5171) +5690 = NAND(4475, 5172) +5697 = NAND(4477, 5173) +5707 = NAND(4479, 5174) +5718 = NAND(4481, 5175) +5728 = NAND(4483, 5176) +5735 = NOT(5177) +5736 = NAND(5179, 4490) +5740 = NAND(5180, 5181) +5744 = NAND(5182, 5183) +5747 = NAND(5184, 4496) +5751 = NAND(5185, 5186) +5755 = NAND(5187, 5188) +5758 = NAND(5189, 4502) +5762 = NAND(5190, 5191) +5766 = NAND(5192, 5193) +5769 = NOT(4803) +5770 = NOT(4806) +5771 = NAND(4507, 5196) +5778 = NAND(4509, 5197) +5789 = NAND(4511, 5198) +5799 = NAND(4513, 5199) +5807 = NAND(4515, 5200) +5821 = NAND(4517, 5201) +5837 = NAND(4519, 5202) +5850 = NAND(4521, 5203) +5856 = NAND(4523, 5204) +5863 = NAND(4525, 5205) +5870 = NAND(4527, 5206) +5881 = NAND(4529, 5207) +5892 = NAND(4531, 5208) +5898 = NAND(4533, 5209) +5905 = NAND(4535, 5210) +5915 = NAND(4537, 5211) +5926 = NAND(4539, 5212) +5936 = NAND(4541, 5213) +5943 = NOT(4817) +5944 = NAND(4820, 1931) +5945 = NOT(4820) +5946 = NAND(4823, 1932) +5947 = NOT(4823) +5948 = NAND(4826, 1933) +5949 = NOT(4826) +5950 = NAND(4829, 1934) +5951 = NOT(4829) +5952 = NAND(4832, 1935) +5953 = NOT(4832) +5954 = NAND(4835, 1936) +5955 = NOT(4835) +5956 = NAND(4838, 1937) +5957 = NOT(4838) +5958 = NAND(4841, 1938) +5959 = NOT(4841) +5960 = AND(2674, 4769) +5966 = NOT(4844) +5967 = NAND(4847, 1939) +5968 = NOT(4847) +5969 = NAND(4850, 1940) +5970 = NOT(4850) +5971 = NAND(4853, 1941) +5972 = NOT(4853) +5973 = NAND(4856, 1942) +5974 = NOT(4856) +5975 = NAND(4859, 1943) +5976 = NOT(4859) +5977 = NAND(4862, 1944) +5978 = NOT(4862) +5979 = NAND(4865, 1945) +5980 = NOT(4865) +5981 = AND(2674, 4769) +5989 = NAND(4868, 1946) +5990 = NOT(4868) +5991 = NAND(5283, 5284) +5996 = NAND(5285, 5286) +6000 = NAND(5287, 5288) +6003 = NAND(5289, 5290) +6009 = NAND(5291, 5292) +6014 = NAND(5293, 5294) +6018 = NAND(5295, 5296) +6021 = NAND(5297, 5298) +6022 = NAND(5299, 5300) +6023 = NOT(4874) +6024 = NAND(4874, 4629) +6025 = NOT(4877) +6026 = NAND(4877, 4631) +6027 = NOT(4880) +6028 = NAND(4880, 4633) +6029 = NOT(4883) +6030 = NAND(4883, 4636) +6031 = NOT(4886) +6032 = NOT(4889) +6033 = NOT(4892) +6034 = NOT(4895) +6035 = NOT(4898) +6036 = NOT(4901) +6037 = NOT(4904) +6038 = NAND(4904, 4642) +6039 = NOT(4907) +6040 = NOT(4910) +6041 = NAND(5314, 5315) +6047 = NAND(5316, 5317) +6052 = NAND(5318, 5319) +6056 = NAND(5320, 5321) +6059 = NAND(5322, 5323) +6060 = NAND(4913, 1968) +6061 = NOT(4913) +6062 = NAND(4916, 1969) +6063 = NOT(4916) +6064 = NAND(4919, 1970) +6065 = NOT(4919) +6066 = NAND(4922, 1971) +6067 = NOT(4922) +6068 = NAND(4925, 1972) +6069 = NOT(4925) +6070 = NAND(4928, 1973) +6071 = NOT(4928) +6072 = NAND(4931, 1974) +6073 = NOT(4931) +6074 = NAND(4934, 1975) +6075 = NOT(4934) +6076 = NAND(4937, 1976) +6077 = NOT(4937) +6078 = NOT(4940) +6079 = NAND(5363, 4694) +6083 = NAND(5364, 5365) +6087 = NAND(5366, 5367) +6090 = NOT(4943) +6091 = NAND(4943, 4699) +6092 = NOT(4946) +6093 = NOT(4949) +6094 = NOT(4952) +6095 = NOT(4955) +6096 = NOT(4970) +6097 = NAND(4970, 4700) +6098 = NOT(4973) +6099 = NOT(4976) +6100 = NOT(4979) +6101 = NOT(4982) +6102 = NOT(4997) +6103 = NAND(5000, 2015) +6104 = NOT(5000) +6105 = NAND(5003, 2016) +6106 = NOT(5003) +6107 = NAND(5006, 2017) +6108 = NOT(5006) +6109 = NAND(5009, 2018) +6110 = NOT(5009) +6111 = NAND(5012, 2019) +6112 = NOT(5012) +6113 = NAND(5015, 2020) +6114 = NOT(5015) +6115 = NAND(5018, 2021) +6116 = NOT(5018) +6117 = NAND(5021, 2022) +6118 = NOT(5021) +6119 = NAND(5024, 2023) +6120 = NOT(5024) +6121 = NOT(5033) +6122 = NAND(5033, 4743) +6123 = NOT(5036) +6124 = NOT(5039) +6125 = NAND(5042, 4744) +6126 = NOT(5042) +6127 = NAND(5425, 4746) +6131 = NAND(5426, 5427) +6135 = NOT(5049) +6136 = NAND(5049, 4749) +6137 = NAND(5429, 4751) +6141 = NAND(5430, 5431) +6145 = NAND(5432, 5433) +6148 = NOT(5068) +6149 = NOT(5071) +6150 = NOT(5074) +6151 = NOT(5077) +6152 = NOT(5080) +6153 = NOT(5083) +6154 = NOT(5086) +6155 = NOT(5089) +6156 = NOT(5092) +6157 = NAND(5092, 4761) +6158 = NOT(5095) +6159 = NAND(5095, 4763) +6160 = NOT(5098) +6161 = NAND(5098, 4765) +6162 = NOT(5101) +6163 = NOT(5104) +6164 = NAND(5107, 4768) +6165 = NOT(5107) +6166 = NAND(5451, 4776) +6170 = NAND(5452, 5453) +6174 = NAND(5454, 5455) +6177 = NAND(5456, 5457) +6181 = NOT(5114) +6182 = NOT(5117) +6183 = NOT(5120) +6184 = NOT(5123) +6185 = NOT(5138) +6186 = NAND(5138, 4783) +6187 = NOT(5141) +6188 = NOT(5144) +6189 = NOT(5147) +6190 = NOT(5150) +6191 = NOT(4784) +6192 = NAND(4784, 2230) +6193 = NOT(4790) +6194 = NAND(4790, 2765) +6195 = NOT(4796) +6196 = NAND(5476, 5477) +6199 = NAND(5474, 5475) +6202 = NOT(4810) +6203 = NOT(4814) +6204 = BUFF(4769) +6207 = BUFF(4555) +6210 = BUFF(4769) +6213 = NOT(4871) +6214 = BUFF(4586) +6217 = NOR(2674, 4769) +6220 = BUFF(4667) +6223 = NOT(4958) +6224 = NOT(4961) +6225 = NOT(4964) +6226 = NOT(4967) +6227 = NOT(4985) +6228 = NOT(4988) +6229 = NOT(4991) +6230 = NOT(4994) +6231 = NOT(5027) +6232 = BUFF(4711) +6235 = NOT(5030) +6236 = BUFF(4735) +6239 = NOT(5052) +6240 = NOT(5055) +6241 = NOT(5058) +6242 = NOT(5061) +6243 = NAND(5573, 5574) +6246 = NAND(5571, 5572) +6249 = NAND(5586, 5587) +6252 = NAND(5584, 5585) +6255 = NOT(5126) +6256 = NOT(5129) +6257 = NOT(5132) +6258 = NOT(5135) +6259 = NOT(5153) +6260 = NOT(5156) +6261 = NOT(5159) +6262 = NOT(5162) +6263 = NAND(5604, 5605) +6266 = NAND(5602, 5603) +6540 = NAND(1380, 5945) +6541 = NAND(1383, 5947) +6542 = NAND(1386, 5949) +6543 = NAND(1389, 5951) +6544 = NAND(1392, 5953) +6545 = NAND(1395, 5955) +6546 = NAND(1398, 5957) +6547 = NAND(1401, 5959) +6555 = NAND(1404, 5968) +6556 = NAND(1407, 5970) +6557 = NAND(1410, 5972) +6558 = NAND(1413, 5974) +6559 = NAND(1416, 5976) +6560 = NAND(1419, 5978) +6561 = NAND(1422, 5980) +6569 = NAND(1425, 5990) +6594 = NAND(3721, 6023) +6595 = NAND(3724, 6025) +6596 = NAND(3727, 6027) +6597 = NAND(3730, 6029) +6598 = NAND(4889, 6031) +6599 = NAND(4886, 6032) +6600 = NAND(4895, 6033) +6601 = NAND(4892, 6034) +6602 = NAND(4901, 6035) +6603 = NAND(4898, 6036) +6604 = NAND(3733, 6037) +6605 = NAND(4910, 6039) +6606 = NAND(4907, 6040) +6621 = NAND(1434, 6061) +6622 = NAND(1437, 6063) +6623 = NAND(1440, 6065) +6624 = NAND(1443, 6067) +6625 = NAND(1446, 6069) +6626 = NAND(1449, 6071) +6627 = NAND(1452, 6073) +6628 = NAND(1455, 6075) +6629 = NAND(1458, 6077) +6639 = NAND(3783, 6090) +6640 = NAND(4949, 6092) +6641 = NAND(4946, 6093) +6642 = NAND(4955, 6094) +6643 = NAND(4952, 6095) +6644 = NAND(3786, 6096) +6645 = NAND(4976, 6098) +6646 = NAND(4973, 6099) +6647 = NAND(4982, 6100) +6648 = NAND(4979, 6101) +6649 = NAND(1461, 6104) +6650 = NAND(1464, 6106) +6651 = NAND(1467, 6108) +6652 = NAND(1470, 6110) +6653 = NAND(1473, 6112) +6654 = NAND(1476, 6114) +6655 = NAND(1479, 6116) +6656 = NAND(1482, 6118) +6657 = NAND(1485, 6120) +6658 = NAND(3789, 6121) +6659 = NAND(5039, 6123) +6660 = NAND(5036, 6124) +6661 = NAND(3792, 6126) +6668 = NAND(3816, 6135) +6677 = NAND(5071, 6148) +6678 = NAND(5068, 6149) +6679 = NAND(5077, 6150) +6680 = NAND(5074, 6151) +6681 = NAND(5083, 6152) +6682 = NAND(5080, 6153) +6683 = NAND(5089, 6154) +6684 = NAND(5086, 6155) +6685 = NAND(3846, 6156) +6686 = NAND(3849, 6158) +6687 = NAND(3852, 6160) +6688 = NAND(5104, 6162) +6689 = NAND(5101, 6163) +6690 = NAND(3855, 6165) +6702 = NAND(5117, 6181) +6703 = NAND(5114, 6182) +6704 = NAND(5123, 6183) +6705 = NAND(5120, 6184) +6706 = NAND(3891, 6185) +6707 = NAND(5144, 6187) +6708 = NAND(5141, 6188) +6709 = NAND(5150, 6189) +6710 = NAND(5147, 6190) +6711 = NAND(1708, 6191) +6712 = NAND(2231, 6193) +6729 = NAND(4961, 6223) +6730 = NAND(4958, 6224) +6731 = NAND(4967, 6225) +6732 = NAND(4964, 6226) +6733 = NAND(4988, 6227) +6734 = NAND(4985, 6228) +6735 = NAND(4994, 6229) +6736 = NAND(4991, 6230) +6741 = NAND(5055, 6239) +6742 = NAND(5052, 6240) +6743 = NAND(5061, 6241) +6744 = NAND(5058, 6242) +6751 = NAND(5129, 6255) +6752 = NAND(5126, 6256) +6753 = NAND(5135, 6257) +6754 = NAND(5132, 6258) +6755 = NAND(5156, 6259) +6756 = NAND(5153, 6260) +6757 = NAND(5162, 6261) +6758 = NAND(5159, 6262) +6761 = NOT(5892) +6762 = AND(5683, 5670, 5654, 5640, 5632) +6766 = AND(5632, 3097) +6767 = AND(5640, 5632, 3101) +6768 = AND(5654, 5632, 3107, 5640) +6769 = AND(5670, 5654, 5632, 3114, 5640) +6770 = AND(5640, 3101) +6771 = AND(5654, 3107, 5640) +6772 = AND(5670, 5654, 3114, 5640) +6773 = AND(5683, 5654, 5640, 5670) +6774 = AND(5640, 3101) +6775 = AND(5654, 3107, 5640) +6776 = AND(5670, 5654, 3114, 5640) +6777 = AND(5654, 3107) +6778 = AND(5670, 5654, 3114) +6779 = AND(5683, 5654, 5670) +6780 = AND(5654, 3107) +6781 = AND(5670, 5654, 3114) +6782 = AND(5670, 3114) +6783 = AND(5683, 5670) +6784 = AND(5697, 5728, 5707, 5690, 5718) +6787 = AND(5690, 3137) +6788 = AND(5697, 5690, 3140) +6789 = AND(5707, 5690, 3144, 5697) +6790 = AND(5718, 5707, 5690, 3149, 5697) +6791 = AND(5697, 3140) +6792 = AND(5707, 3144, 5697) +6793 = AND(5718, 5707, 3149, 5697) +6794 = AND(3144, 5707) +6795 = AND(5718, 5707, 3149) +6796 = AND(5718, 3149) +6797 = NOT(5736) +6800 = NOT(5740) +6803 = NOT(5747) +6806 = NOT(5751) +6809 = NOT(5758) +6812 = NOT(5762) +6815 = BUFF(5744) +6818 = BUFF(5744) +6821 = BUFF(5755) +6824 = BUFF(5755) +6827 = BUFF(5766) +6830 = BUFF(5766) +6833 = AND(5850, 5789, 5778, 5771) +6836 = AND(5771, 3169) +6837 = AND(5778, 5771, 3173) +6838 = AND(5789, 5771, 3178, 5778) +6839 = AND(5778, 3173) +6840 = AND(5789, 3178, 5778) +6841 = AND(5850, 5789, 5778) +6842 = AND(5778, 3173) +6843 = AND(5789, 3178, 5778) +6844 = AND(5789, 3178) +6845 = AND(5856, 5837, 5821, 5807, 5799) +6848 = AND(5799, 3185) +6849 = AND(5807, 5799, 3189) +6850 = AND(5821, 5799, 3195, 5807) +6851 = AND(5837, 5821, 5799, 3202, 5807) +6852 = AND(5807, 3189) +6853 = AND(5821, 3195, 5807) +6854 = AND(5837, 5821, 3202, 5807) +6855 = AND(5856, 5821, 5807, 5837) +6856 = AND(5807, 3189) +6857 = AND(5821, 3195, 5807) +6858 = AND(5837, 5821, 3202, 5807) +6859 = AND(5821, 3195) +6860 = AND(5837, 5821, 3202) +6861 = AND(5856, 5821, 5837) +6862 = AND(5821, 3195) +6863 = AND(5837, 5821, 3202) +6864 = AND(5837, 3202) +6865 = AND(5850, 5789) +6866 = AND(5856, 5837) +6867 = AND(5870, 5892, 5881, 5863) +6870 = AND(5863, 3211) +6871 = AND(5870, 5863, 3215) +6872 = AND(5881, 5863, 3221, 5870) +6873 = AND(5870, 3215) +6874 = AND(5881, 3221, 5870) +6875 = AND(5892, 5881, 5870) +6876 = AND(5870, 3215) +6877 = AND(3221, 5881, 5870) +6878 = AND(5881, 3221) +6879 = AND(5892, 5881) +6880 = AND(5881, 3221) +6881 = AND(5905, 5936, 5915, 5898, 5926) +6884 = AND(5898, 3229) +6885 = AND(5905, 5898, 3232) +6886 = AND(5915, 5898, 3236, 5905) +6887 = AND(5926, 5915, 5898, 3241, 5905) +6888 = AND(5905, 3232) +6889 = AND(5915, 3236, 5905) +6890 = AND(5926, 5915, 3241, 5905) +6891 = AND(3236, 5915) +6892 = AND(5926, 5915, 3241) +6893 = AND(5926, 3241) +6894 = NAND(5944, 6540) +6901 = NAND(5946, 6541) +6912 = NAND(5948, 6542) +6923 = NAND(5950, 6543) +6929 = NAND(5952, 6544) +6936 = NAND(5954, 6545) +6946 = NAND(5956, 6546) +6957 = NAND(5958, 6547) +6967 = NAND(6204, 4575) +6968 = NOT(6204) +6969 = NOT(6207) +6970 = NAND(5967, 6555) +6977 = NAND(5969, 6556) +6988 = NAND(5971, 6557) +6998 = NAND(5973, 6558) +7006 = NAND(5975, 6559) +7020 = NAND(5977, 6560) +7036 = NAND(5979, 6561) +7049 = NAND(5989, 6569) +7055 = NAND(6210, 4610) +7056 = NOT(6210) +7057 = AND(6021, 6000, 5996, 5991) +7060 = AND(5991, 3362) +7061 = AND(5996, 5991, 3363) +7062 = AND(6000, 5991, 3364, 5996) +7063 = AND(6022, 6018, 6014, 6009, 6003) +7064 = AND(6003, 3366) +7065 = AND(6009, 6003, 3367) +7066 = AND(6014, 6003, 3368, 6009) +7067 = AND(6018, 6014, 6003, 3369, 6009) +7068 = NAND(6594, 6024) +7073 = NAND(6595, 6026) +7077 = NAND(6596, 6028) +7080 = NAND(6597, 6030) +7086 = NAND(6598, 6599) +7091 = NAND(6600, 6601) +7095 = NAND(6602, 6603) +7098 = NAND(6604, 6038) +7099 = NAND(6605, 6606) +7100 = AND(6059, 6056, 6052, 6047, 6041) +7103 = AND(6041, 3371) +7104 = AND(6047, 6041, 3372) +7105 = AND(6052, 6041, 3373, 6047) +7106 = AND(6056, 6052, 6041, 3374, 6047) +7107 = NAND(6060, 6621) +7114 = NAND(6062, 6622) +7125 = NAND(6064, 6623) +7136 = NAND(6066, 6624) +7142 = NAND(6068, 6625) +7149 = NAND(6070, 6626) +7159 = NAND(6072, 6627) +7170 = NAND(6074, 6628) +7180 = NAND(6076, 6629) +7187 = NOT(6220) +7188 = NOT(6079) +7191 = NOT(6083) +7194 = NAND(6639, 6091) +7198 = NAND(6640, 6641) +7202 = NAND(6642, 6643) +7205 = NAND(6644, 6097) +7209 = NAND(6645, 6646) +7213 = NAND(6647, 6648) +7216 = BUFF(6087) +7219 = BUFF(6087) +7222 = NAND(6103, 6649) +7229 = NAND(6105, 6650) +7240 = NAND(6107, 6651) +7250 = NAND(6109, 6652) +7258 = NAND(6111, 6653) +7272 = NAND(6113, 6654) +7288 = NAND(6115, 6655) +7301 = NAND(6117, 6656) +7307 = NAND(6119, 6657) +7314 = NAND(6658, 6122) +7318 = NAND(6659, 6660) +7322 = NAND(6125, 6661) +7325 = NOT(6127) +7328 = NOT(6131) +7331 = NAND(6668, 6136) +7334 = NOT(6137) +7337 = NOT(6141) +7340 = BUFF(6145) +7343 = BUFF(6145) +7346 = NAND(6677, 6678) +7351 = NAND(6679, 6680) +7355 = NAND(6681, 6682) +7358 = NAND(6683, 6684) +7364 = NAND(6685, 6157) +7369 = NAND(6686, 6159) +7373 = NAND(6687, 6161) +7376 = NAND(6688, 6689) +7377 = NAND(6164, 6690) +7378 = NOT(6166) +7381 = NOT(6170) +7384 = NOT(6177) +7387 = NAND(6702, 6703) +7391 = NAND(6704, 6705) +7394 = NAND(6706, 6186) +7398 = NAND(6707, 6708) +7402 = NAND(6709, 6710) +7405 = BUFF(6174) +7408 = BUFF(6174) +7411 = BUFF(5936) +7414 = BUFF(5898) +7417 = BUFF(5905) +7420 = BUFF(5915) +7423 = BUFF(5926) +7426 = BUFF(5728) +7429 = BUFF(5690) +7432 = BUFF(5697) +7435 = BUFF(5707) +7438 = BUFF(5718) +7441 = NAND(6192, 6711) +7444 = NAND(6194, 6712) +7447 = BUFF(5683) +7450 = BUFF(5670) +7453 = BUFF(5632) +7456 = BUFF(5654) +7459 = BUFF(5640) +7462 = BUFF(5640) +7465 = BUFF(5683) +7468 = BUFF(5670) +7471 = BUFF(5632) +7474 = BUFF(5654) +7477 = NOT(6196) +7478 = NOT(6199) +7479 = BUFF(5850) +7482 = BUFF(5789) +7485 = BUFF(5771) +7488 = BUFF(5778) +7491 = BUFF(5850) +7494 = BUFF(5789) +7497 = BUFF(5771) +7500 = BUFF(5778) +7503 = BUFF(5856) +7506 = BUFF(5837) +7509 = BUFF(5799) +7512 = BUFF(5821) +7515 = BUFF(5807) +7518 = BUFF(5807) +7521 = BUFF(5856) +7524 = BUFF(5837) +7527 = BUFF(5799) +7530 = BUFF(5821) +7533 = BUFF(5863) +7536 = BUFF(5863) +7539 = BUFF(5870) +7542 = BUFF(5870) +7545 = BUFF(5881) +7548 = BUFF(5881) +7551 = NOT(6214) +7552 = NOT(6217) +7553 = BUFF(5981) +7556 = NOT(6249) +7557 = NOT(6252) +7558 = NOT(6243) +7559 = NOT(6246) +7560 = NAND(6731, 6732) +7563 = NAND(6729, 6730) +7566 = NAND(6735, 6736) +7569 = NAND(6733, 6734) +7572 = NOT(6232) +7573 = NOT(6236) +7574 = NAND(6743, 6744) +7577 = NAND(6741, 6742) +7580 = NOT(6263) +7581 = NOT(6266) +7582 = NAND(6753, 6754) +7585 = NAND(6751, 6752) +7588 = NAND(6757, 6758) +7591 = NAND(6755, 6756) +7609 = OR(3096, 6766, 6767, 6768, 6769) +7613 = OR(3107, 6782) +7620 = OR(3136, 6787, 6788, 6789, 6790) +7649 = OR(3168, 6836, 6837, 6838) +7650 = OR(3173, 6844) +7655 = OR(3184, 6848, 6849, 6850, 6851) +7659 = OR(3195, 6864) +7668 = OR(3210, 6870, 6871, 6872) +7671 = OR(3228, 6884, 6885, 6886, 6887) +7744 = NAND(3661, 6968) +7822 = NAND(3664, 7056) +7825 = OR(3361, 7060, 7061, 7062) +7826 = OR(3365, 7064, 7065, 7066, 7067) +7852 = OR(3370, 7103, 7104, 7105, 7106) +8114 = OR(3101, 6777, 6778, 6779) +8117 = OR(3097, 6770, 6771, 6772, 6773) +8131 = NOR(3101, 6780, 6781) +8134 = NOR(3097, 6774, 6775, 6776) +8144 = NAND(6199, 7477) +8145 = NAND(6196, 7478) +8146 = OR(3169, 6839, 6840, 6841) +8156 = NOR(3169, 6842, 6843) +8166 = OR(3189, 6859, 6860, 6861) +8169 = OR(3185, 6852, 6853, 6854, 6855) +8183 = NOR(3189, 6862, 6863) +8186 = NOR(3185, 6856, 6857, 6858) +8196 = OR(3211, 6873, 6874, 6875) +8200 = NOR(3211, 6876, 6877) +8204 = OR(3215, 6878, 6879) +8208 = NOR(3215, 6880) +8216 = NAND(6252, 7556) +8217 = NAND(6249, 7557) +8218 = NAND(6246, 7558) +8219 = NAND(6243, 7559) +8232 = NAND(6266, 7580) +8233 = NAND(6263, 7581) +8242 = NOT(7411) +8243 = NOT(7414) +8244 = NOT(7417) +8245 = NOT(7420) +8246 = NOT(7423) +8247 = NOT(7426) +8248 = NOT(7429) +8249 = NOT(7432) +8250 = NOT(7435) +8251 = NOT(7438) +8252 = NOT(7136) +8253 = NOT(6923) +8254 = NOT(6762) +8260 = NOT(7459) +8261 = NOT(7462) +8262 = AND(3122, 6762) +8269 = AND(3155, 6784) +8274 = NOT(6815) +8275 = NOT(6818) +8276 = NOT(6821) +8277 = NOT(6824) +8278 = NOT(6827) +8279 = NOT(6830) +8280 = AND(5740, 5736, 6815) +8281 = AND(6800, 6797, 6818) +8282 = AND(5751, 5747, 6821) +8283 = AND(6806, 6803, 6824) +8284 = AND(5762, 5758, 6827) +8285 = AND(6812, 6809, 6830) +8288 = NOT(6845) +8294 = NOT(7488) +8295 = NOT(7500) +8296 = NOT(7515) +8297 = NOT(7518) +8298 = AND(6833, 6845) +8307 = AND(6867, 6881) +8315 = NOT(7533) +8317 = NOT(7536) +8319 = NOT(7539) +8321 = NOT(7542) +8322 = NAND(7545, 4543) +8323 = NOT(7545) +8324 = NAND(7548, 5943) +8325 = NOT(7548) +8326 = NAND(6967, 7744) +8333 = AND(6901, 6923, 6912, 6894) +8337 = AND(6894, 4545) +8338 = AND(6901, 6894, 4549) +8339 = AND(6912, 6894, 4555, 6901) +8340 = AND(6901, 4549) +8341 = AND(6912, 4555, 6901) +8342 = AND(6923, 6912, 6901) +8343 = AND(6901, 4549) +8344 = AND(4555, 6912, 6901) +8345 = AND(6912, 4555) +8346 = AND(6923, 6912) +8347 = AND(6912, 4555) +8348 = AND(6929, 4563) +8349 = AND(6936, 6929, 4566) +8350 = AND(6946, 6929, 4570, 6936) +8351 = AND(6957, 6946, 6929, 5960, 6936) +8352 = AND(6936, 4566) +8353 = AND(6946, 4570, 6936) +8354 = AND(6957, 6946, 5960, 6936) +8355 = AND(4570, 6946) +8356 = AND(6957, 6946, 5960) +8357 = AND(6957, 5960) +8358 = NAND(7055, 7822) +8365 = AND(7049, 6988, 6977, 6970) +8369 = AND(6970, 4577) +8370 = AND(6977, 6970, 4581) +8371 = AND(6988, 6970, 4586, 6977) +8372 = AND(6977, 4581) +8373 = AND(6988, 4586, 6977) +8374 = AND(7049, 6988, 6977) +8375 = AND(6977, 4581) +8376 = AND(6988, 4586, 6977) +8377 = AND(6988, 4586) +8378 = AND(6998, 4593) +8379 = AND(7006, 6998, 4597) +8380 = AND(7020, 6998, 4603, 7006) +8381 = AND(7036, 7020, 6998, 5981, 7006) +8382 = AND(7006, 4597) +8383 = AND(7020, 4603, 7006) +8384 = AND(7036, 7020, 5981, 7006) +8385 = AND(7006, 4597) +8386 = AND(7020, 4603, 7006) +8387 = AND(7036, 7020, 5981, 7006) +8388 = AND(7020, 4603) +8389 = AND(7036, 7020, 5981) +8390 = AND(7020, 4603) +8391 = AND(7036, 7020, 5981) +8392 = AND(7036, 5981) +8393 = AND(7049, 6988) +8394 = AND(7057, 7063) +8404 = AND(7057, 7826) +8405 = AND(7098, 7077, 7073, 7068) +8409 = AND(7068, 4632) +8410 = AND(7073, 7068, 4634) +8411 = AND(7077, 7068, 4635, 7073) +8412 = AND(7099, 7095, 7091, 7086, 7080) +8415 = AND(7080, 4638) +8416 = AND(7086, 7080, 4639) +8417 = AND(7091, 7080, 4640, 7086) +8418 = AND(7095, 7091, 7080, 4641, 7086) +8421 = AND(3375, 7100) +8430 = AND(7114, 7136, 7125, 7107) +8433 = AND(7107, 4657) +8434 = AND(7114, 7107, 4661) +8435 = AND(7125, 7107, 4667, 7114) +8436 = AND(7114, 4661) +8437 = AND(7125, 4667, 7114) +8438 = AND(7136, 7125, 7114) +8439 = AND(7114, 4661) +8440 = AND(4667, 7125, 7114) +8441 = AND(7125, 4667) +8442 = AND(7136, 7125) +8443 = AND(7125, 4667) +8444 = AND(7149, 7180, 7159, 7142, 7170) +8447 = AND(7142, 4675) +8448 = AND(7149, 7142, 4678) +8449 = AND(7159, 7142, 4682, 7149) +8450 = AND(7170, 7159, 7142, 4687, 7149) +8451 = AND(7149, 4678) +8452 = AND(7159, 4682, 7149) +8453 = AND(7170, 7159, 4687, 7149) +8454 = AND(4682, 7159) +8455 = AND(7170, 7159, 4687) +8456 = AND(7170, 4687) +8457 = NOT(7194) +8460 = NOT(7198) +8463 = NOT(7205) +8466 = NOT(7209) +8469 = NOT(7216) +8470 = NOT(7219) +8471 = BUFF(7202) +8474 = BUFF(7202) +8477 = BUFF(7213) +8480 = BUFF(7213) +8483 = AND(6083, 6079, 7216) +8484 = AND(7191, 7188, 7219) +8485 = AND(7301, 7240, 7229, 7222) +8488 = AND(7222, 4702) +8489 = AND(7229, 7222, 4706) +8490 = AND(7240, 7222, 4711, 7229) +8491 = AND(7229, 4706) +8492 = AND(7240, 4711, 7229) +8493 = AND(7301, 7240, 7229) +8494 = AND(7229, 4706) +8495 = AND(7240, 4711, 7229) +8496 = AND(7240, 4711) +8497 = AND(7307, 7288, 7272, 7258, 7250) +8500 = AND(7250, 4718) +8501 = AND(7258, 7250, 4722) +8502 = AND(7272, 7250, 4728, 7258) +8503 = AND(7288, 7272, 7250, 4735, 7258) +8504 = AND(7258, 4722) +8505 = AND(7272, 4728, 7258) +8506 = AND(7288, 7272, 4735, 7258) +8507 = AND(7307, 7272, 7258, 7288) +8508 = AND(7258, 4722) +8509 = AND(7272, 4728, 7258) +8510 = AND(7288, 7272, 4735, 7258) +8511 = AND(7272, 4728) +8512 = AND(7288, 7272, 4735) +8513 = AND(7307, 7272, 7288) +8514 = AND(7272, 4728) +8515 = AND(7288, 7272, 4735) +8516 = AND(7288, 4735) +8517 = AND(7301, 7240) +8518 = AND(7307, 7288) +8519 = NOT(7314) +8522 = NOT(7318) +8525 = BUFF(7322) +8528 = BUFF(7322) +8531 = BUFF(7331) +8534 = BUFF(7331) +8537 = NOT(7340) +8538 = NOT(7343) +8539 = AND(6141, 6137, 7340) +8540 = AND(7337, 7334, 7343) +8541 = AND(7376, 7355, 7351, 7346) +8545 = AND(7346, 4757) +8546 = AND(7351, 7346, 4758) +8547 = AND(7355, 7346, 4759, 7351) +8548 = AND(7377, 7373, 7369, 7364, 7358) +8551 = AND(7358, 4762) +8552 = AND(7364, 7358, 4764) +8553 = AND(7369, 7358, 4766, 7364) +8554 = AND(7373, 7369, 7358, 4767, 7364) +8555 = NOT(7387) +8558 = NOT(7394) +8561 = NOT(7398) +8564 = NOT(7405) +8565 = NOT(7408) +8566 = BUFF(7391) +8569 = BUFF(7391) +8572 = BUFF(7402) +8575 = BUFF(7402) +8578 = AND(6170, 6166, 7405) +8579 = AND(7381, 7378, 7408) +8580 = BUFF(7180) +8583 = BUFF(7142) +8586 = BUFF(7149) +8589 = BUFF(7159) +8592 = BUFF(7170) +8595 = BUFF(6929) +8598 = BUFF(6936) +8601 = BUFF(6946) +8604 = BUFF(6957) +8607 = NOT(7441) +8608 = NAND(7441, 5469) +8609 = NOT(7444) +8610 = NAND(7444, 4793) +8615 = NOT(7447) +8616 = NOT(7450) +8617 = NOT(7453) +8618 = NOT(7456) +8619 = NOT(7474) +8624 = NOT(7465) +8625 = NOT(7468) +8626 = NOT(7471) +8627 = NAND(8144, 8145) +8632 = NOT(7479) +8633 = NOT(7482) +8634 = NOT(7485) +8637 = NOT(7491) +8638 = NOT(7494) +8639 = NOT(7497) +8644 = NOT(7503) +8645 = NOT(7506) +8646 = NOT(7509) +8647 = NOT(7512) +8648 = NOT(7530) +8653 = NOT(7521) +8654 = NOT(7524) +8655 = NOT(7527) +8660 = BUFF(6894) +8663 = BUFF(6894) +8666 = BUFF(6901) +8669 = BUFF(6901) +8672 = BUFF(6912) +8675 = BUFF(6912) +8678 = BUFF(7049) +8681 = BUFF(6988) +8684 = BUFF(6970) +8687 = BUFF(6977) +8690 = BUFF(7049) +8693 = BUFF(6988) +8696 = BUFF(6970) +8699 = BUFF(6977) +8702 = BUFF(7036) +8705 = BUFF(6998) +8708 = BUFF(7020) +8711 = BUFF(7006) +8714 = BUFF(7006) +8717 = NOT(7553) +8718 = BUFF(7036) +8721 = BUFF(6998) +8724 = BUFF(7020) +8727 = NAND(8216, 8217) +8730 = NAND(8218, 8219) +8733 = NOT(7574) +8734 = NOT(7577) +8735 = BUFF(7107) +8738 = BUFF(7107) +8741 = BUFF(7114) +8744 = BUFF(7114) +8747 = BUFF(7125) +8750 = BUFF(7125) +8753 = NOT(7560) +8754 = NOT(7563) +8755 = NOT(7566) +8756 = NOT(7569) +8757 = BUFF(7301) +8760 = BUFF(7240) +8763 = BUFF(7222) +8766 = BUFF(7229) +8769 = BUFF(7301) +8772 = BUFF(7240) +8775 = BUFF(7222) +8778 = BUFF(7229) +8781 = BUFF(7307) +8784 = BUFF(7288) +8787 = BUFF(7250) +8790 = BUFF(7272) +8793 = BUFF(7258) +8796 = BUFF(7258) +8799 = BUFF(7307) +8802 = BUFF(7288) +8805 = BUFF(7250) +8808 = BUFF(7272) +8811 = NAND(8232, 8233) +8814 = NOT(7588) +8815 = NOT(7591) +8816 = NOT(7582) +8817 = NOT(7585) +8818 = AND(7620, 3155) +8840 = AND(3122, 7609) +8857 = NOT(7609) +8861 = AND(6797, 5740, 8274) +8862 = AND(5736, 6800, 8275) +8863 = AND(6803, 5751, 8276) +8864 = AND(5747, 6806, 8277) +8865 = AND(6809, 5762, 8278) +8866 = AND(5758, 6812, 8279) +8871 = NOT(7655) +8874 = AND(6833, 7655) +8878 = AND(7671, 6867) +8879 = NOT(8196) +8880 = NAND(8196, 8315) +8881 = NOT(8200) +8882 = NAND(8200, 8317) +8883 = NOT(8204) +8884 = NAND(8204, 8319) +8885 = NOT(8208) +8886 = NAND(8208, 8321) +8887 = NAND(3658, 8323) +8888 = NAND(4817, 8325) +8898 = OR(4544, 8337, 8338, 8339) +8902 = OR(4562, 8348, 8349, 8350, 8351) +8920 = OR(4576, 8369, 8370, 8371) +8924 = OR(4581, 8377) +8927 = OR(4592, 8378, 8379, 8380, 8381) +8931 = OR(4603, 8392) +8943 = OR(7825, 8404) +8950 = OR(4630, 8409, 8410, 8411) +8956 = OR(4637, 8415, 8416, 8417, 8418) +8959 = NOT(7852) +8960 = AND(3375, 7852) +8963 = OR(4656, 8433, 8434, 8435) +8966 = OR(4674, 8447, 8448, 8449, 8450) +8991 = AND(7188, 6083, 8469) +8992 = AND(6079, 7191, 8470) +8995 = OR(4701, 8488, 8489, 8490) +8996 = OR(4706, 8496) +9001 = OR(4717, 8500, 8501, 8502, 8503) +9005 = OR(4728, 8516) +9024 = AND(7334, 6141, 8537) +9025 = AND(6137, 7337, 8538) +9029 = OR(4756, 8545, 8546, 8547) +9035 = OR(4760, 8551, 8552, 8553, 8554) +9053 = AND(7378, 6170, 8564) +9054 = AND(6166, 7381, 8565) +9064 = NAND(4303, 8607) +9065 = NAND(3507, 8609) +9066 = NOT(8114) +9067 = NAND(8114, 4795) +9068 = OR(7613, 6783) +9071 = NOT(8117) +9072 = NOT(8131) +9073 = NAND(8131, 6195) +9074 = NOT(7613) +9077 = NOT(8134) +9079 = OR(7650, 6865) +9082 = NOT(8146) +9083 = NOT(7650) +9086 = NOT(8156) +9087 = NOT(8166) +9088 = NAND(8166, 4813) +9089 = OR(7659, 6866) +9092 = NOT(8169) +9093 = NOT(8183) +9094 = NAND(8183, 6203) +9095 = NOT(7659) +9098 = NOT(8186) +9099 = OR(4545, 8340, 8341, 8342) +9103 = NOR(4545, 8343, 8344) +9107 = OR(4549, 8345, 8346) +9111 = NOR(4549, 8347) +9117 = OR(4577, 8372, 8373, 8374) +9127 = NOR(4577, 8375, 8376) +9146 = NOR(4597, 8390, 8391) +9149 = NOR(4593, 8385, 8386, 8387) +9159 = NAND(7577, 8733) +9160 = NAND(7574, 8734) +9161 = OR(4657, 8436, 8437, 8438) +9165 = NOR(4657, 8439, 8440) +9169 = OR(4661, 8441, 8442) +9173 = NOR(4661, 8443) +9179 = NAND(7563, 8753) +9180 = NAND(7560, 8754) +9181 = NAND(7569, 8755) +9182 = NAND(7566, 8756) +9183 = OR(4702, 8491, 8492, 8493) +9193 = NOR(4702, 8494, 8495) +9203 = OR(4722, 8511, 8512, 8513) +9206 = OR(4718, 8504, 8505, 8506, 8507) +9220 = NOR(4722, 8514, 8515) +9223 = NOR(4718, 8508, 8509, 8510) +9234 = NAND(7591, 8814) +9235 = NAND(7588, 8815) +9236 = NAND(7585, 8816) +9237 = NAND(7582, 8817) +9238 = OR(3159, 8818) +9242 = OR(3126, 8840) +9243 = NAND(8324, 8888) +9244 = NOT(8580) +9245 = NOT(8583) +9246 = NOT(8586) +9247 = NOT(8589) +9248 = NOT(8592) +9249 = NOT(8595) +9250 = NOT(8598) +9251 = NOT(8601) +9252 = NOT(8604) +9256 = NOR(8861, 8280) +9257 = NOR(8862, 8281) +9258 = NOR(8863, 8282) +9259 = NOR(8864, 8283) +9260 = NOR(8865, 8284) +9261 = NOR(8866, 8285) +9262 = NOT(8627) +9265 = OR(7649, 8874) +9268 = OR(7668, 8878) +9271 = NAND(7533, 8879) +9272 = NAND(7536, 8881) +9273 = NAND(7539, 8883) +9274 = NAND(7542, 8885) +9275 = NAND(8322, 8887) +9276 = NOT(8333) +9280 = AND(6936, 8326, 6946, 6929, 6957) +9285 = AND(367, 8326, 6946, 6957, 6936) +9286 = AND(367, 8326, 6946, 6957) +9287 = AND(367, 8326, 6957) +9288 = AND(367, 8326) +9290 = NOT(8660) +9292 = NOT(8663) +9294 = NOT(8666) +9296 = NOT(8669) +9297 = NAND(8672, 5966) +9298 = NOT(8672) +9299 = NAND(8675, 6969) +9300 = NOT(8675) +9301 = NOT(8365) +9307 = AND(8358, 7036, 7020, 7006, 6998) +9314 = AND(8358, 7020, 7006, 7036) +9315 = AND(8358, 7020, 7036) +9318 = AND(8358, 7036) +9319 = NOT(8687) +9320 = NOT(8699) +9321 = NOT(8711) +9322 = NOT(8714) +9323 = NOT(8727) +9324 = NOT(8730) +9326 = NOT(8405) +9332 = AND(8405, 8412) +9339 = OR(4193, 8960) +9344 = AND(8430, 8444) +9352 = NOT(8735) +9354 = NOT(8738) +9356 = NOT(8741) +9358 = NOT(8744) +9359 = NAND(8747, 6078) +9360 = NOT(8747) +9361 = NAND(8750, 7187) +9362 = NOT(8750) +9363 = NOT(8471) +9364 = NOT(8474) +9365 = NOT(8477) +9366 = NOT(8480) +9367 = NOR(8991, 8483) +9368 = NOR(8992, 8484) +9369 = AND(7198, 7194, 8471) +9370 = AND(8460, 8457, 8474) +9371 = AND(7209, 7205, 8477) +9372 = AND(8466, 8463, 8480) +9375 = NOT(8497) +9381 = NOT(8766) +9382 = NOT(8778) +9383 = NOT(8793) +9384 = NOT(8796) +9385 = AND(8485, 8497) +9392 = NOT(8525) +9393 = NOT(8528) +9394 = NOT(8531) +9395 = NOT(8534) +9396 = AND(7318, 7314, 8525) +9397 = AND(8522, 8519, 8528) +9398 = AND(6131, 6127, 8531) +9399 = AND(7328, 7325, 8534) +9400 = NOR(9024, 8539) +9401 = NOR(9025, 8540) +9402 = NOT(8541) +9407 = NAND(8548, 89) +9408 = AND(8541, 8548) +9412 = NOT(8811) +9413 = NOT(8566) +9414 = NOT(8569) +9415 = NOT(8572) +9416 = NOT(8575) +9417 = NOR(9053, 8578) +9418 = NOR(9054, 8579) +9419 = AND(7387, 6177, 8566) +9420 = AND(8555, 7384, 8569) +9421 = AND(7398, 7394, 8572) +9422 = AND(8561, 8558, 8575) +9423 = BUFF(8326) +9426 = NAND(9064, 8608) +9429 = NAND(9065, 8610) +9432 = NAND(3515, 9066) +9435 = NAND(4796, 9072) +9442 = NAND(3628, 9087) +9445 = NAND(4814, 9093) +9454 = NOT(8678) +9455 = NOT(8681) +9456 = NOT(8684) +9459 = NOT(8690) +9460 = NOT(8693) +9461 = NOT(8696) +9462 = BUFF(8358) +9465 = NOT(8702) +9466 = NOT(8705) +9467 = NOT(8708) +9468 = NOT(8724) +9473 = BUFF(8358) +9476 = NOT(8718) +9477 = NOT(8721) +9478 = NAND(9159, 9160) +9485 = NAND(9179, 9180) +9488 = NAND(9181, 9182) +9493 = NOT(8757) +9494 = NOT(8760) +9495 = NOT(8763) +9498 = NOT(8769) +9499 = NOT(8772) +9500 = NOT(8775) +9505 = NOT(8781) +9506 = NOT(8784) +9507 = NOT(8787) +9508 = NOT(8790) +9509 = NOT(8808) +9514 = NOT(8799) +9515 = NOT(8802) +9516 = NOT(8805) +9517 = NAND(9234, 9235) +9520 = NAND(9236, 9237) +9526 = AND(8943, 8421) +9531 = AND(8943, 8421) +9539 = NAND(9271, 8880) +9540 = NAND(9273, 8884) +9541 = NOT(9275) +9543 = AND(8857, 8254) +9551 = AND(8871, 8288) +9555 = NAND(9272, 8882) +9556 = NAND(9274, 8886) +9557 = NOT(8898) +9560 = AND(8902, 8333) +9561 = NOT(9099) +9562 = NAND(9099, 9290) +9563 = NOT(9103) +9564 = NAND(9103, 9292) +9565 = NOT(9107) +9566 = NAND(9107, 9294) +9567 = NOT(9111) +9568 = NAND(9111, 9296) +9569 = NAND(4844, 9298) +9570 = NAND(6207, 9300) +9571 = NOT(8920) +9575 = NOT(8927) +9579 = AND(8365, 8927) +9581 = NOT(8950) +9582 = NOT(8956) +9585 = AND(8405, 8956) +9591 = AND(8966, 8430) +9592 = NOT(9161) +9593 = NAND(9161, 9352) +9594 = NOT(9165) +9595 = NAND(9165, 9354) +9596 = NOT(9169) +9597 = NAND(9169, 9356) +9598 = NOT(9173) +9599 = NAND(9173, 9358) +9600 = NAND(4940, 9360) +9601 = NAND(6220, 9362) +9602 = AND(8457, 7198, 9363) +9603 = AND(7194, 8460, 9364) +9604 = AND(8463, 7209, 9365) +9605 = AND(7205, 8466, 9366) +9608 = NOT(9001) +9611 = AND(8485, 9001) +9612 = AND(8519, 7318, 9392) +9613 = AND(7314, 8522, 9393) +9614 = AND(7325, 6131, 9394) +9615 = AND(6127, 7328, 9395) +9616 = NOT(9029) +9617 = NOT(9035) +9618 = AND(8541, 9035) +9621 = AND(7384, 7387, 9413) +9622 = AND(6177, 8555, 9414) +9623 = AND(8558, 7398, 9415) +9624 = AND(7394, 8561, 9416) +9626 = OR(4563, 8352, 8353, 8354, 9285) +9629 = OR(4566, 8355, 8356, 9286) +9632 = OR(4570, 8357, 9287) +9635 = OR(5960, 9288) +9642 = NAND(9067, 9432) +9645 = NOT(9068) +9646 = NAND(9073, 9435) +9649 = NOT(9074) +9650 = NAND(9257, 9256) +9653 = NAND(9259, 9258) +9656 = NAND(9261, 9260) +9659 = NOT(9079) +9660 = NAND(9079, 4809) +9661 = NOT(9083) +9662 = NAND(9083, 6202) +9663 = NAND(9088, 9442) +9666 = NOT(9089) +9667 = NAND(9094, 9445) +9670 = NOT(9095) +9671 = OR(8924, 8393) +9674 = NOT(9117) +9675 = NOT(8924) +9678 = NOT(9127) +9679 = OR(4597, 8388, 8389, 9315) +9682 = OR(8931, 9318) +9685 = OR(4593, 8382, 8383, 8384, 9314) +9690 = NOT(9146) +9691 = NAND(9146, 8717) +9692 = NOT(8931) +9695 = NOT(9149) +9698 = NAND(9401, 9400) +9702 = NAND(9368, 9367) +9707 = OR(8996, 8517) +9710 = NOT(9183) +9711 = NOT(8996) +9714 = NOT(9193) +9715 = NOT(9203) +9716 = NAND(9203, 6235) +9717 = OR(9005, 8518) +9720 = NOT(9206) +9721 = NOT(9220) +9722 = NAND(9220, 7573) +9723 = NOT(9005) +9726 = NOT(9223) +9727 = NAND(9418, 9417) +9732 = AND(9268, 8269) +9733 = NAND(9581, 9326) +9734 = AND(89, 9408, 9332, 8394, 8421) +9735 = AND(89, 9408, 9332, 8394, 8421) +9736 = AND(9265, 8262) +9737 = NOT(9555) +9738 = NOT(9556) +9739 = NAND(9361, 9601) +9740 = NAND(9423, 1115) +9741 = NOT(9423) +9742 = NAND(9299, 9570) +9754 = AND(8333, 9280) +9758 = OR(8898, 9560) +9762 = NAND(8660, 9561) +9763 = NAND(8663, 9563) +9764 = NAND(8666, 9565) +9765 = NAND(8669, 9567) +9766 = NAND(9297, 9569) +9767 = AND(9280, 367) +9768 = NAND(9557, 9276) +9769 = NOT(9307) +9773 = NAND(9307, 367) +9774 = NAND(9571, 9301) +9775 = AND(8365, 9307) +9779 = OR(8920, 9579) +9784 = NOT(9478) +9785 = NAND(9616, 9402) +9786 = OR(8950, 9585) +9790 = AND(89, 9408, 9332, 8394) +9791 = OR(8963, 9591) +9795 = NAND(8735, 9592) +9796 = NAND(8738, 9594) +9797 = NAND(8741, 9596) +9798 = NAND(8744, 9598) +9799 = NAND(9359, 9600) +9800 = NOR(9602, 9369) +9801 = NOR(9603, 9370) +9802 = NOR(9604, 9371) +9803 = NOR(9605, 9372) +9805 = NOT(9485) +9806 = NOT(9488) +9809 = OR(8995, 9611) +9813 = NOR(9612, 9396) +9814 = NOR(9613, 9397) +9815 = NOR(9614, 9398) +9816 = NOR(9615, 9399) +9817 = AND(9617, 9407) +9820 = OR(9029, 9618) +9825 = NOT(9517) +9826 = NOT(9520) +9827 = NOR(9621, 9419) +9828 = NOR(9622, 9420) +9829 = NOR(9623, 9421) +9830 = NOR(9624, 9422) +9835 = NOT(9426) +9836 = NAND(9426, 4789) +9837 = NOT(9429) +9838 = NAND(9429, 4794) +9846 = NAND(3625, 9659) +9847 = NAND(4810, 9661) +9862 = NOT(9462) +9863 = NAND(7553, 9690) +9866 = NOT(9473) +9873 = NAND(5030, 9715) +9876 = NAND(6236, 9721) +9890 = NAND(9795, 9593) +9891 = NAND(9797, 9597) +9892 = NOT(9799) +9893 = NAND(871, 9741) +9894 = NAND(9762, 9562) +9895 = NAND(9764, 9566) +9896 = NOT(9766) +9897 = NOT(9626) +9898 = NAND(9626, 9249) +9899 = NOT(9629) +9900 = NAND(9629, 9250) +9901 = NOT(9632) +9902 = NAND(9632, 9251) +9903 = NOT(9635) +9904 = NAND(9635, 9252) +9905 = NOT(9543) +9906 = NOT(9650) +9907 = NAND(9650, 5769) +9908 = NOT(9653) +9909 = NAND(9653, 5770) +9910 = NOT(9656) +9911 = NAND(9656, 9262) +9917 = NOT(9551) +9923 = NAND(9763, 9564) +9924 = NAND(9765, 9568) +9925 = OR(8902, 9767) +9932 = AND(9575, 9773) +9935 = AND(9575, 9769) +9938 = NOT(9698) +9939 = NAND(9698, 9323) +9945 = NAND(9796, 9595) +9946 = NAND(9798, 9599) +9947 = NOT(9702) +9948 = NAND(9702, 6102) +9949 = AND(9608, 9375) +9953 = NOT(9727) +9954 = NAND(9727, 9412) +9955 = NAND(3502, 9835) +9956 = NAND(3510, 9837) +9957 = NOT(9642) +9958 = NAND(9642, 9645) +9959 = NOT(9646) +9960 = NAND(9646, 9649) +9961 = NAND(9660, 9846) +9964 = NAND(9662, 9847) +9967 = NOT(9663) +9968 = NAND(9663, 9666) +9969 = NOT(9667) +9970 = NAND(9667, 9670) +9971 = NOT(9671) +9972 = NAND(9671, 6213) +9973 = NOT(9675) +9974 = NAND(9675, 7551) +9975 = NOT(9679) +9976 = NAND(9679, 7552) +9977 = NOT(9682) +9978 = NOT(9685) +9979 = NAND(9691, 9863) +9982 = NOT(9692) +9983 = NAND(9814, 9813) +9986 = NAND(9816, 9815) +9989 = NAND(9801, 9800) +9992 = NAND(9803, 9802) +9995 = NOT(9707) +9996 = NAND(9707, 6231) +9997 = NOT(9711) +9998 = NAND(9711, 7572) +9999 = NAND(9716, 9873) +10002 = NOT(9717) +10003 = NAND(9722, 9876) +10006 = NOT(9723) +10007 = NAND(9830, 9829) +10010 = NAND(9828, 9827) +10013 = AND(9791, 8307, 8269) +10014 = AND(9758, 9344, 8307, 8269) +10015 = AND(367, 9754, 9344, 8307, 8269) +10016 = AND(9786, 8394, 8421) +10017 = AND(9820, 9332, 8394, 8421) +10018 = AND(9786, 8394, 8421) +10019 = AND(9820, 9332, 8394, 8421) +10020 = AND(9809, 8298, 8262) +10021 = AND(9779, 9385, 8298, 8262) +10022 = AND(367, 9775, 9385, 8298, 8262) +10023 = NOT(9945) +10024 = NOT(9946) +10025 = NAND(9740, 9893) +10026 = NOT(9923) +10028 = NOT(9924) +10032 = NAND(8595, 9897) +10033 = NAND(8598, 9899) +10034 = NAND(8601, 9901) +10035 = NAND(8604, 9903) +10036 = NAND(4803, 9906) +10037 = NAND(4806, 9908) +10038 = NAND(8627, 9910) +10039 = AND(9809, 8298) +10040 = AND(9779, 9385, 8298) +10041 = AND(367, 9775, 9385, 8298) +10042 = AND(9779, 9385) +10043 = AND(367, 9775, 9385) +10050 = NAND(8727, 9938) +10053 = NOT(9817) +10054 = AND(9817, 9029) +10055 = AND(9786, 8394) +10056 = AND(9820, 9332, 8394) +10057 = AND(9791, 8307) +10058 = AND(9758, 9344, 8307) +10059 = AND(367, 9754, 9344, 8307) +10060 = AND(9758, 9344) +10061 = AND(367, 9754, 9344) +10062 = NAND(4997, 9947) +10067 = NAND(8811, 9953) +10070 = NAND(9955, 9836) +10073 = NAND(9956, 9838) +10076 = NAND(9068, 9957) +10077 = NAND(9074, 9959) +10082 = NAND(9089, 9967) +10083 = NAND(9095, 9969) +10084 = NAND(4871, 9971) +10085 = NAND(6214, 9973) +10086 = NAND(6217, 9975) +10093 = NAND(5027, 9995) +10094 = NAND(6232, 9997) +10101 = OR(9238, 9732, 10013, 10014, 10015) +10102 = OR(9339, 9526, 10016, 10017, 9734) +10103 = OR(9339, 9531, 10018, 10019, 9735) +10104 = OR(9242, 9736, 10020, 10021, 10022) +10105 = AND(9925, 9894) +10106 = AND(9925, 9895) +10107 = AND(9925, 9896) +10108 = AND(9925, 8253) +10109 = NAND(10032, 9898) +10110 = NAND(10033, 9900) +10111 = NAND(10034, 9902) +10112 = NAND(10035, 9904) +10113 = NAND(10036, 9907) +10114 = NAND(10037, 9909) +10115 = NAND(10038, 9911) +10116 = OR(9265, 10039, 10040, 10041) +10119 = OR(9809, 10042, 10043) +10124 = NOT(9925) +10130 = AND(9768, 9925) +10131 = NOT(9932) +10132 = NOT(9935) +10133 = AND(9932, 8920) +10134 = NAND(10050, 9939) +10135 = NOT(9983) +10136 = NAND(9983, 9324) +10137 = NOT(9986) +10138 = NAND(9986, 9784) +10139 = AND(9785, 10053) +10140 = OR(8943, 10055, 10056, 9790) +10141 = OR(9268, 10057, 10058, 10059) +10148 = OR(9791, 10060, 10061) +10155 = NAND(10062, 9948) +10156 = NOT(9989) +10157 = NAND(9989, 9805) +10158 = NOT(9992) +10159 = NAND(9992, 9806) +10160 = NOT(9949) +10161 = NAND(10067, 9954) +10162 = NOT(10007) +10163 = NAND(10007, 9825) +10164 = NOT(10010) +10165 = NAND(10010, 9826) +10170 = NAND(10076, 9958) +10173 = NAND(10077, 9960) +10176 = NOT(9961) +10177 = NAND(9961, 9082) +10178 = NOT(9964) +10179 = NAND(9964, 9086) +10180 = NAND(10082, 9968) +10183 = NAND(10083, 9970) +10186 = NAND(9972, 10084) +10189 = NAND(9974, 10085) +10192 = NAND(9976, 10086) +10195 = NOT(9979) +10196 = NAND(9979, 9982) +10197 = NAND(9996, 10093) +10200 = NAND(9998, 10094) +10203 = NOT(9999) +10204 = NAND(9999, 10002) +10205 = NOT(10003) +10206 = NAND(10003, 10006) +10212 = NAND(10070, 4308) +10213 = NAND(10073, 4313) +10230 = AND(9774, 10131) +10231 = NAND(8730, 10135) +10232 = NAND(9478, 10137) +10233 = OR(10139, 10054) +10234 = NAND(7100, 10140) +10237 = NAND(9485, 10156) +10238 = NAND(9488, 10158) +10239 = NAND(9517, 10162) +10240 = NAND(9520, 10164) +10241 = NOT(10070) +10242 = NOT(10073) +10247 = NAND(8146, 10176) +10248 = NAND(8156, 10178) +10259 = NAND(9692, 10195) +10264 = NAND(9717, 10203) +10265 = NAND(9723, 10205) +10266 = AND(10026, 10124) +10267 = AND(10028, 10124) +10268 = AND(9742, 10124) +10269 = AND(6923, 10124) +10270 = NAND(6762, 10116) +10271 = NAND(3061, 10241) +10272 = NAND(3064, 10242) +10273 = BUFF(10116) +10278 = AND(10141, 5728, 5707, 5718, 5697) +10279 = AND(10141, 5728, 5707, 5718) +10280 = AND(10141, 5728, 5718) +10281 = AND(10141, 5728) +10282 = AND(6784, 10141) +10283 = NOT(10119) +10287 = AND(10148, 5936, 5915, 5926, 5905) +10288 = AND(10148, 5936, 5915, 5926) +10289 = AND(10148, 5936, 5926) +10290 = AND(10148, 5936) +10291 = AND(6881, 10148) +10292 = AND(8898, 10124) +10293 = NAND(10231, 10136) +10294 = NAND(10232, 10138) +10295 = NAND(8412, 10233) +10296 = AND(8959, 10234) +10299 = NAND(10237, 10157) +10300 = NAND(10238, 10159) +10301 = OR(10230, 10133) +10306 = NAND(10239, 10163) +10307 = NAND(10240, 10165) +10308 = BUFF(10148) +10311 = BUFF(10141) +10314 = NOT(10170) +10315 = NAND(10170, 9071) +10316 = NOT(10173) +10317 = NAND(10173, 9077) +10318 = NAND(10247, 10177) +10321 = NAND(10248, 10179) +10324 = NOT(10180) +10325 = NAND(10180, 9092) +10326 = NOT(10183) +10327 = NAND(10183, 9098) +10328 = NOT(10186) +10329 = NAND(10186, 9674) +10330 = NOT(10189) +10331 = NAND(10189, 9678) +10332 = NOT(10192) +10333 = NAND(10192, 9977) +10334 = NAND(10259, 10196) +10337 = NOT(10197) +10338 = NAND(10197, 9710) +10339 = NOT(10200) +10340 = NAND(10200, 9714) +10341 = NAND(10264, 10204) +10344 = NAND(10265, 10206) +10350 = OR(10266, 10105) +10351 = OR(10267, 10106) +10352 = OR(10268, 10107) +10353 = OR(10269, 10108) +10354 = AND(8857, 10270) +10357 = NAND(10271, 10212) +10360 = NAND(10272, 10213) +10367 = OR(7620, 10282) +10375 = OR(7671, 10291) +10381 = OR(10292, 10130) +10388 = AND(10114, 10134, 10293, 10294) +10391 = AND(9582, 10295) +10399 = AND(10113, 10115, 10299, 10300) +10402 = AND(10155, 10161, 10306, 10307) +10406 = OR(3229, 6888, 6889, 6890, 10287) +10409 = OR(3232, 6891, 6892, 10288) +10412 = OR(3236, 6893, 10289) +10415 = OR(3241, 10290) +10419 = OR(3137, 6791, 6792, 6793, 10278) +10422 = OR(3140, 6794, 6795, 10279) +10425 = OR(3144, 6796, 10280) +10428 = OR(3149, 10281) +10431 = NAND(8117, 10314) +10432 = NAND(8134, 10316) +10437 = NAND(8169, 10324) +10438 = NAND(8186, 10326) +10439 = NAND(9117, 10328) +10440 = NAND(9127, 10330) +10441 = NAND(9682, 10332) +10444 = NAND(9183, 10337) +10445 = NAND(9193, 10339) +10450 = NOT(10296) +10451 = AND(10296, 4193) +10455 = NOT(10308) +10456 = NAND(10308, 8242) +10465 = NOT(10311) +10466 = NAND(10311, 8247) +10479 = NOT(10273) +10497 = NOT(10301) +10509 = NAND(10431, 10315) +10512 = NAND(10432, 10317) +10515 = NOT(10318) +10516 = NAND(10318, 8632) +10517 = NOT(10321) +10518 = NAND(10321, 8637) +10519 = NAND(10437, 10325) +10522 = NAND(10438, 10327) +10525 = NAND(10439, 10329) +10528 = NAND(10440, 10331) +10531 = NAND(10441, 10333) +10534 = NOT(10334) +10535 = NAND(10334, 9695) +10536 = NAND(10444, 10338) +10539 = NAND(10445, 10340) +10542 = NOT(10341) +10543 = NAND(10341, 9720) +10544 = NOT(10344) +10545 = NAND(10344, 9726) +10546 = AND(5631, 10450) +10547 = NOT(10391) +10548 = AND(10391, 8950) +10549 = AND(5165, 10367) +10550 = NOT(10354) +10551 = AND(10354, 3126) +10552 = NAND(7411, 10455) +10553 = AND(10375, 9539) +10554 = AND(10375, 9540) +10555 = AND(10375, 9541) +10556 = AND(10375, 6761) +10557 = NOT(10406) +10558 = NAND(10406, 8243) +10559 = NOT(10409) +10560 = NAND(10409, 8244) +10561 = NOT(10412) +10562 = NAND(10412, 8245) +10563 = NOT(10415) +10564 = NAND(10415, 8246) +10565 = NAND(7426, 10465) +10566 = NOT(10419) +10567 = NAND(10419, 8248) +10568 = NOT(10422) +10569 = NAND(10422, 8249) +10570 = NOT(10425) +10571 = NAND(10425, 8250) +10572 = NOT(10428) +10573 = NAND(10428, 8251) +10574 = NOT(10399) +10575 = NOT(10402) +10576 = NOT(10388) +10577 = AND(10399, 10402, 10388) +10581 = AND(10360, 9543, 10273) +10582 = AND(10357, 9905, 10273) +10583 = NOT(10367) +10587 = AND(10367, 5735) +10588 = AND(10367, 3135) +10589 = NOT(10375) +10594 = AND(10381, 7180, 7159, 7170, 7149) +10595 = AND(10381, 7180, 7159, 7170) +10596 = AND(10381, 7180, 7170) +10597 = AND(10381, 7180) +10598 = AND(8444, 10381) +10602 = BUFF(10381) +10609 = NAND(7479, 10515) +10610 = NAND(7491, 10517) +10621 = NAND(9149, 10534) +10626 = NAND(9206, 10542) +10627 = NAND(9223, 10544) +10628 = OR(10546, 10451) +10629 = AND(9733, 10547) +10631 = AND(5166, 10550) +10632 = NAND(10552, 10456) +10637 = NAND(7414, 10557) +10638 = NAND(7417, 10559) +10639 = NAND(7420, 10561) +10640 = NAND(7423, 10563) +10641 = NAND(10565, 10466) +10642 = NAND(7429, 10566) +10643 = NAND(7432, 10568) +10644 = NAND(7435, 10570) +10645 = NAND(7438, 10572) +10647 = AND(886, 887, 10577) +10648 = AND(10360, 8857, 10479) +10649 = AND(10357, 7609, 10479) +10652 = OR(8966, 10598) +10659 = OR(4675, 8451, 8452, 8453, 10594) +10662 = OR(4678, 8454, 8455, 10595) +10665 = OR(4682, 8456, 10596) +10668 = OR(4687, 10597) +10671 = NOT(10509) +10672 = NAND(10509, 8615) +10673 = NOT(10512) +10674 = NAND(10512, 8624) +10675 = NAND(10609, 10516) +10678 = NAND(10610, 10518) +10681 = NOT(10519) +10682 = NAND(10519, 8644) +10683 = NOT(10522) +10684 = NAND(10522, 8653) +10685 = NOT(10525) +10686 = NAND(10525, 9454) +10687 = NOT(10528) +10688 = NAND(10528, 9459) +10689 = NOT(10531) +10690 = NAND(10531, 9978) +10691 = NAND(10621, 10535) +10694 = NOT(10536) +10695 = NAND(10536, 9493) +10696 = NOT(10539) +10697 = NAND(10539, 9498) +10698 = NAND(10626, 10543) +10701 = NAND(10627, 10545) +10704 = OR(10629, 10548) +10705 = AND(3159, 10583) +10706 = OR(10631, 10551) +10707 = AND(9737, 10589) +10708 = AND(9738, 10589) +10709 = AND(9243, 10589) +10710 = AND(5892, 10589) +10711 = NAND(10637, 10558) +10712 = NAND(10638, 10560) +10713 = NAND(10639, 10562) +10714 = NAND(10640, 10564) +10715 = NAND(10642, 10567) +10716 = NAND(10643, 10569) +10717 = NAND(10644, 10571) +10718 = NAND(10645, 10573) +10719 = NOT(10602) +10720 = NAND(10602, 9244) +10729 = NOT(10647) +10730 = AND(5178, 10583) +10731 = AND(2533, 10583) +10737 = NAND(7447, 10671) +10738 = NAND(7465, 10673) +10739 = OR(10648, 10649, 10581, 10582) +10746 = NAND(7503, 10681) +10747 = NAND(7521, 10683) +10748 = NAND(8678, 10685) +10749 = NAND(8690, 10687) +10750 = NAND(9685, 10689) +10753 = NAND(8757, 10694) +10754 = NAND(8769, 10696) +10759 = OR(10705, 10549) +10760 = OR(10707, 10553) +10761 = OR(10708, 10554) +10762 = OR(10709, 10555) +10763 = OR(10710, 10556) +10764 = NAND(8580, 10719) +10765 = AND(10652, 9890) +10766 = AND(10652, 9891) +10767 = AND(10652, 9892) +10768 = AND(10652, 8252) +10769 = NOT(10659) +10770 = NAND(10659, 9245) +10771 = NOT(10662) +10772 = NAND(10662, 9246) +10773 = NOT(10665) +10774 = NAND(10665, 9247) +10775 = NOT(10668) +10776 = NAND(10668, 9248) +10778 = OR(10730, 10587) +10781 = OR(10731, 10588) +10784 = NOT(10652) +10789 = NAND(10737, 10672) +10792 = NAND(10738, 10674) +10796 = NOT(10675) +10797 = NAND(10675, 8633) +10798 = NOT(10678) +10799 = NAND(10678, 8638) +10800 = NAND(10746, 10682) +10803 = NAND(10747, 10684) +10806 = NAND(10748, 10686) +10809 = NAND(10749, 10688) +10812 = NAND(10750, 10690) +10815 = NOT(10691) +10816 = NAND(10691, 9866) +10817 = NAND(10753, 10695) +10820 = NAND(10754, 10697) +10823 = NOT(10698) +10824 = NAND(10698, 9505) +10825 = NOT(10701) +10826 = NAND(10701, 9514) +10827 = NAND(10764, 10720) +10832 = NAND(8583, 10769) +10833 = NAND(8586, 10771) +10834 = NAND(8589, 10773) +10835 = NAND(8592, 10775) +10836 = NOT(10739) +10837 = BUFF(10778) +10838 = BUFF(10778) +10839 = BUFF(10781) +10840 = BUFF(10781) +10845 = NAND(7482, 10796) +10846 = NAND(7494, 10798) +10857 = NAND(9473, 10815) +10862 = NAND(8781, 10823) +10863 = NAND(8799, 10825) +10864 = AND(10023, 10784) +10865 = AND(10024, 10784) +10866 = AND(9739, 10784) +10867 = AND(7136, 10784) +10868 = NAND(10832, 10770) +10869 = NAND(10833, 10772) +10870 = NAND(10834, 10774) +10871 = NAND(10835, 10776) +10872 = NOT(10789) +10873 = NAND(10789, 8616) +10874 = NOT(10792) +10875 = NAND(10792, 8625) +10876 = NAND(10845, 10797) +10879 = NAND(10846, 10799) +10882 = NOT(10800) +10883 = NAND(10800, 8645) +10884 = NOT(10803) +10885 = NAND(10803, 8654) +10886 = NOT(10806) +10887 = NAND(10806, 9455) +10888 = NOT(10809) +10889 = NAND(10809, 9460) +10890 = NOT(10812) +10891 = NAND(10812, 9862) +10892 = NAND(10857, 10816) +10895 = NOT(10817) +10896 = NAND(10817, 9494) +10897 = NOT(10820) +10898 = NAND(10820, 9499) +10899 = NAND(10862, 10824) +10902 = NAND(10863, 10826) +10905 = OR(10864, 10765) +10906 = OR(10865, 10766) +10907 = OR(10866, 10767) +10908 = OR(10867, 10768) +10909 = NAND(7450, 10872) +10910 = NAND(7468, 10874) +10915 = NAND(7506, 10882) +10916 = NAND(7524, 10884) +10917 = NAND(8681, 10886) +10918 = NAND(8693, 10888) +10919 = NAND(9462, 10890) +10922 = NAND(8760, 10895) +10923 = NAND(8772, 10897) +10928 = NAND(10909, 10873) +10931 = NAND(10910, 10875) +10934 = NOT(10876) +10935 = NAND(10876, 8634) +10936 = NOT(10879) +10937 = NAND(10879, 8639) +10938 = NAND(10915, 10883) +10941 = NAND(10916, 10885) +10944 = NAND(10917, 10887) +10947 = NAND(10918, 10889) +10950 = NAND(10919, 10891) +10953 = NOT(10892) +10954 = NAND(10892, 9476) +10955 = NAND(10922, 10896) +10958 = NAND(10923, 10898) +10961 = NOT(10899) +10962 = NAND(10899, 9506) +10963 = NOT(10902) +10964 = NAND(10902, 9515) +10969 = NAND(7485, 10934) +10970 = NAND(7497, 10936) +10981 = NAND(8718, 10953) +10986 = NAND(8784, 10961) +10987 = NAND(8802, 10963) +10988 = NOT(10928) +10989 = NAND(10928, 8617) +10990 = NOT(10931) +10991 = NAND(10931, 8626) +10992 = NAND(10969, 10935) +10995 = NAND(10970, 10937) +10998 = NOT(10938) +10999 = NAND(10938, 8646) +11000 = NOT(10941) +11001 = NAND(10941, 8655) +11002 = NOT(10944) +11003 = NAND(10944, 9456) +11004 = NOT(10947) +11005 = NAND(10947, 9461) +11006 = NOT(10950) +11007 = NAND(10950, 9465) +11008 = NAND(10981, 10954) +11011 = NOT(10955) +11012 = NAND(10955, 9495) +11013 = NOT(10958) +11014 = NAND(10958, 9500) +11015 = NAND(10986, 10962) +11018 = NAND(10987, 10964) +11023 = NAND(7453, 10988) +11024 = NAND(7471, 10990) +11027 = NAND(7509, 10998) +11028 = NAND(7527, 11000) +11029 = NAND(8684, 11002) +11030 = NAND(8696, 11004) +11031 = NAND(8702, 11006) +11034 = NAND(8763, 11011) +11035 = NAND(8775, 11013) +11040 = NOT(10992) +11041 = NAND(10992, 8294) +11042 = NOT(10995) +11043 = NAND(10995, 8295) +11044 = NAND(11023, 10989) +11047 = NAND(11024, 10991) +11050 = NAND(11027, 10999) +11053 = NAND(11028, 11001) +11056 = NAND(11029, 11003) +11059 = NAND(11030, 11005) +11062 = NAND(11031, 11007) +11065 = NOT(11008) +11066 = NAND(11008, 9477) +11067 = NAND(11034, 11012) +11070 = NAND(11035, 11014) +11073 = NOT(11015) +11074 = NAND(11015, 9507) +11075 = NOT(11018) +11076 = NAND(11018, 9516) +11077 = NAND(7488, 11040) +11078 = NAND(7500, 11042) +11095 = NAND(8721, 11065) +11098 = NAND(8787, 11073) +11099 = NAND(8805, 11075) +11100 = NAND(11077, 11041) +11103 = NAND(11078, 11043) +11106 = NOT(11056) +11107 = NAND(11056, 9319) +11108 = NOT(11059) +11109 = NAND(11059, 9320) +11110 = NOT(11067) +11111 = NAND(11067, 9381) +11112 = NOT(11070) +11113 = NAND(11070, 9382) +11114 = NOT(11044) +11115 = NAND(11044, 8618) +11116 = NOT(11047) +11117 = NAND(11047, 8619) +11118 = NOT(11050) +11119 = NAND(11050, 8647) +11120 = NOT(11053) +11121 = NAND(11053, 8648) +11122 = NOT(11062) +11123 = NAND(11062, 9466) +11124 = NAND(11095, 11066) +11127 = NAND(11098, 11074) +11130 = NAND(11099, 11076) +11137 = NAND(8687, 11106) +11138 = NAND(8699, 11108) +11139 = NAND(8766, 11110) +11140 = NAND(8778, 11112) +11141 = NAND(7456, 11114) +11142 = NAND(7474, 11116) +11143 = NAND(7512, 11118) +11144 = NAND(7530, 11120) +11145 = NAND(8705, 11122) +11152 = AND(11103, 8871, 10283) +11153 = AND(11100, 7655, 10283) +11154 = AND(11103, 9551, 10119) +11155 = AND(11100, 9917, 10119) +11156 = NAND(11137, 11107) +11159 = NAND(11138, 11109) +11162 = NAND(11139, 11111) +11165 = NAND(11140, 11113) +11168 = NAND(11141, 11115) +11171 = NAND(11142, 11117) +11174 = NAND(11143, 11119) +11177 = NAND(11144, 11121) +11180 = NAND(11145, 11123) +11183 = NOT(11124) +11184 = NAND(11124, 9468) +11185 = NOT(11127) +11186 = NAND(11127, 9508) +11187 = NOT(11130) +11188 = NAND(11130, 9509) +11205 = OR(11152, 11153, 11154, 11155) +11210 = NAND(8724, 11183) +11211 = NAND(8790, 11185) +11212 = NAND(8808, 11187) +11213 = NOT(11168) +11214 = NAND(11168, 8260) +11215 = NOT(11171) +11216 = NAND(11171, 8261) +11217 = NOT(11174) +11218 = NAND(11174, 8296) +11219 = NOT(11177) +11220 = NAND(11177, 8297) +11222 = AND(11159, 9575, 1218) +11223 = AND(11156, 8927, 1218) +11224 = AND(11159, 9935, 750) +11225 = AND(11156, 10132, 750) +11226 = AND(11165, 9608, 10497) +11227 = AND(11162, 9001, 10497) +11228 = AND(11165, 9949, 10301) +11229 = AND(11162, 10160, 10301) +11231 = NOT(11180) +11232 = NAND(11180, 9467) +11233 = NAND(11210, 11184) +11236 = NAND(11211, 11186) +11239 = NAND(11212, 11188) +11242 = NAND(7459, 11213) +11243 = NAND(7462, 11215) +11244 = NAND(7515, 11217) +11245 = NAND(7518, 11219) +11246 = NOT(11205) +11250 = NAND(8708, 11231) +11252 = OR(11222, 11223, 11224, 11225) +11257 = OR(11226, 11227, 11228, 11229) +11260 = NAND(11242, 11214) +11261 = NAND(11243, 11216) +11262 = NAND(11244, 11218) +11263 = NAND(11245, 11220) +11264 = NOT(11233) +11265 = NAND(11233, 9322) +11267 = NOT(11236) +11268 = NAND(11236, 9383) +11269 = NOT(11239) +11270 = NAND(11239, 9384) +11272 = NAND(11250, 11232) +11277 = NOT(11261) +11278 = AND(10273, 11260) +11279 = NOT(11263) +11280 = AND(10119, 11262) +11282 = NAND(8714, 11264) +11283 = NOT(11252) +11284 = NAND(8793, 11267) +11285 = NAND(8796, 11269) +11286 = NOT(11257) +11288 = AND(11277, 10479) +11289 = AND(11279, 10283) +11290 = NOT(11272) +11291 = NAND(11272, 9321) +11292 = NAND(11282, 11265) +11293 = NAND(11284, 11268) +11294 = NAND(11285, 11270) +11295 = NAND(8711, 11290) +11296 = NOT(11292) +11297 = NOT(11294) +11298 = AND(10301, 11293) +11299 = OR(11288, 11278) +11302 = OR(11289, 11280) +11307 = NAND(11295, 11291) +11308 = AND(11296, 1218) +11309 = AND(11297, 10497) +11312 = NAND(11302, 11246) +11313 = NAND(11299, 10836) +11314 = NOT(11299) +11315 = NOT(11302) +11316 = AND(750, 11307) +11317 = OR(11309, 11298) +11320 = NAND(11205, 11315) +11321 = NAND(10739, 11314) +11323 = OR(11308, 11316) +11327 = NAND(11312, 11320) +11328 = NAND(11313, 11321) +11329 = NAND(11317, 11286) +11331 = NOT(11317) +11333 = NOT(11327) +11334 = NOT(11328) +11335 = NAND(11257, 11331) +11336 = NAND(11323, 11283) +11337 = NOT(11323) +11338 = NAND(11329, 11335) +11339 = NAND(11252, 11337) +11340 = NOT(11338) +11341 = NAND(11336, 11339) +11342 = NOT(11341) diff --git a/testcase/c880.bench b/testcase/c880.bench new file mode 100644 index 0000000000..409ecfb945 --- /dev/null +++ b/testcase/c880.bench @@ -0,0 +1,477 @@ +# c880 +# 60 inputs +# 26 outputs +# 63 inverters +# 320 gates ( 143 ANDs + 150 NANDs + 29 ORs + 61 NORs + 26 buffers ) + +INPUT(1) +INPUT(8) +INPUT(13) +INPUT(17) +INPUT(26) +INPUT(29) +INPUT(36) +INPUT(42) +INPUT(51) +INPUT(55) +INPUT(59) +INPUT(68) +INPUT(72) +INPUT(73) +INPUT(74) +INPUT(75) +INPUT(80) +INPUT(85) +INPUT(86) +INPUT(87) +INPUT(88) +INPUT(89) +INPUT(90) +INPUT(91) +INPUT(96) +INPUT(101) +INPUT(106) +INPUT(111) +INPUT(116) +INPUT(121) +INPUT(126) +INPUT(130) +INPUT(135) +INPUT(138) +INPUT(143) +INPUT(146) +INPUT(149) +INPUT(152) +INPUT(153) +INPUT(156) +INPUT(159) +INPUT(165) +INPUT(171) +INPUT(177) +INPUT(183) +INPUT(189) +INPUT(195) +INPUT(201) +INPUT(207) +INPUT(210) +INPUT(219) +INPUT(228) +INPUT(237) +INPUT(246) +INPUT(255) +INPUT(259) +INPUT(260) +INPUT(261) +INPUT(267) +INPUT(268) + +OUTPUT(388) +OUTPUT(389) +OUTPUT(390) +OUTPUT(391) +OUTPUT(418) +OUTPUT(419) +OUTPUT(420) +OUTPUT(421) +OUTPUT(422) +OUTPUT(423) +OUTPUT(446) +OUTPUT(447) +OUTPUT(448) +OUTPUT(449) +OUTPUT(450) +OUTPUT(767) +OUTPUT(768) +OUTPUT(850) +OUTPUT(863) +OUTPUT(864) +OUTPUT(865) +OUTPUT(866) +OUTPUT(874) +OUTPUT(878) +OUTPUT(879) +OUTPUT(880) + +269 = NAND(1, 8, 13, 17) +270 = NAND(1, 26, 13, 17) +273 = AND(29, 36, 42) +276 = AND(1, 26, 51) +279 = NAND(1, 8, 51, 17) +280 = NAND(1, 8, 13, 55) +284 = NAND(59, 42, 68, 72) +285 = NAND(29, 68) +286 = NAND(59, 68, 74) +287 = AND(29, 75, 80) +290 = AND(29, 75, 42) +291 = AND(29, 36, 80) +292 = AND(29, 36, 42) +293 = AND(59, 75, 80) +294 = AND(59, 75, 42) +295 = AND(59, 36, 80) +296 = AND(59, 36, 42) +297 = AND(85, 86) +298 = OR(87, 88) +301 = NAND(91, 96) +302 = OR(91, 96) +303 = NAND(101, 106) +304 = OR(101, 106) +305 = NAND(111, 116) +306 = OR(111, 116) +307 = NAND(121, 126) +308 = OR(121, 126) +309 = AND(8, 138) +310 = NOT(268) +316 = AND(51, 138) +317 = AND(17, 138) +318 = AND(152, 138) +319 = NAND(59, 156) +322 = NOR(17, 42) +323 = AND(17, 42) +324 = NAND(159, 165) +325 = OR(159, 165) +326 = NAND(171, 177) +327 = OR(171, 177) +328 = NAND(183, 189) +329 = OR(183, 189) +330 = NAND(195, 201) +331 = OR(195, 201) +332 = AND(210, 91) +333 = AND(210, 96) +334 = AND(210, 101) +335 = AND(210, 106) +336 = AND(210, 111) +337 = AND(255, 259) +338 = AND(210, 116) +339 = AND(255, 260) +340 = AND(210, 121) +341 = AND(255, 267) +342 = NOT(269) +343 = NOT(273) +344 = OR(270, 273) +345 = NOT(276) +346 = NOT(276) +347 = NOT(279) +348 = NOR(280, 284) +349 = OR(280, 285) +350 = OR(280, 286) +351 = NOT(293) +352 = NOT(294) +353 = NOT(295) +354 = NOT(296) +355 = NAND(89, 298) +356 = AND(90, 298) +357 = NAND(301, 302) +360 = NAND(303, 304) +363 = NAND(305, 306) +366 = NAND(307, 308) +369 = NOT(310) +375 = NOR(322, 323) +376 = NAND(324, 325) +379 = NAND(326, 327) +382 = NAND(328, 329) +385 = NAND(330, 331) +388 = BUFF(290) +389 = BUFF(291) +390 = BUFF(292) +391 = BUFF(297) +392 = OR(270, 343) +393 = NOT(345) +399 = NOT(346) +400 = AND(348, 73) +401 = NOT(349) +402 = NOT(350) +403 = NOT(355) +404 = NOT(357) +405 = NOT(360) +406 = AND(357, 360) +407 = NOT(363) +408 = NOT(366) +409 = AND(363, 366) +410 = NAND(347, 352) +411 = NOT(376) +412 = NOT(379) +413 = AND(376, 379) +414 = NOT(382) +415 = NOT(385) +416 = AND(382, 385) +417 = AND(210, 369) +418 = BUFF(342) +419 = BUFF(344) +420 = BUFF(351) +421 = BUFF(353) +422 = BUFF(354) +423 = BUFF(356) +424 = NOT(400) +425 = AND(404, 405) +426 = AND(407, 408) +427 = AND(319, 393, 55) +432 = AND(393, 17, 287) +437 = NAND(393, 287, 55) +442 = NAND(375, 59, 156, 393) +443 = NAND(393, 319, 17) +444 = AND(411, 412) +445 = AND(414, 415) +446 = BUFF(392) +447 = BUFF(399) +448 = BUFF(401) +449 = BUFF(402) +450 = BUFF(403) +451 = NOT(424) +460 = NOR(406, 425) +463 = NOR(409, 426) +466 = NAND(442, 410) +475 = AND(143, 427) +476 = AND(310, 432) +477 = AND(146, 427) +478 = AND(310, 432) +479 = AND(149, 427) +480 = AND(310, 432) +481 = AND(153, 427) +482 = AND(310, 432) +483 = NAND(443, 1) +488 = OR(369, 437) +489 = OR(369, 437) +490 = OR(369, 437) +491 = OR(369, 437) +492 = NOR(413, 444) +495 = NOR(416, 445) +498 = NAND(130, 460) +499 = OR(130, 460) +500 = NAND(463, 135) +501 = OR(463, 135) +502 = AND(91, 466) +503 = NOR(475, 476) +504 = AND(96, 466) +505 = NOR(477, 478) +506 = AND(101, 466) +507 = NOR(479, 480) +508 = AND(106, 466) +509 = NOR(481, 482) +510 = AND(143, 483) +511 = AND(111, 466) +512 = AND(146, 483) +513 = AND(116, 466) +514 = AND(149, 483) +515 = AND(121, 466) +516 = AND(153, 483) +517 = AND(126, 466) +518 = NAND(130, 492) +519 = OR(130, 492) +520 = NAND(495, 207) +521 = OR(495, 207) +522 = AND(451, 159) +523 = AND(451, 165) +524 = AND(451, 171) +525 = AND(451, 177) +526 = AND(451, 183) +527 = NAND(451, 189) +528 = NAND(451, 195) +529 = NAND(451, 201) +530 = NAND(498, 499) +533 = NAND(500, 501) +536 = NOR(309, 502) +537 = NOR(316, 504) +538 = NOR(317, 506) +539 = NOR(318, 508) +540 = NOR(510, 511) +541 = NOR(512, 513) +542 = NOR(514, 515) +543 = NOR(516, 517) +544 = NAND(518, 519) +547 = NAND(520, 521) +550 = NOT(530) +551 = NOT(533) +552 = AND(530, 533) +553 = NAND(536, 503) +557 = NAND(537, 505) +561 = NAND(538, 507) +565 = NAND(539, 509) +569 = NAND(488, 540) +573 = NAND(489, 541) +577 = NAND(490, 542) +581 = NAND(491, 543) +585 = NOT(544) +586 = NOT(547) +587 = AND(544, 547) +588 = AND(550, 551) +589 = AND(585, 586) +590 = NAND(553, 159) +593 = OR(553, 159) +596 = AND(246, 553) +597 = NAND(557, 165) +600 = OR(557, 165) +605 = AND(246, 557) +606 = NAND(561, 171) +609 = OR(561, 171) +615 = AND(246, 561) +616 = NAND(565, 177) +619 = OR(565, 177) +624 = AND(246, 565) +625 = NAND(569, 183) +628 = OR(569, 183) +631 = AND(246, 569) +632 = NAND(573, 189) +635 = OR(573, 189) +640 = AND(246, 573) +641 = NAND(577, 195) +644 = OR(577, 195) +650 = AND(246, 577) +651 = NAND(581, 201) +654 = OR(581, 201) +659 = AND(246, 581) +660 = NOR(552, 588) +661 = NOR(587, 589) +662 = NOT(590) +665 = AND(593, 590) +669 = NOR(596, 522) +670 = NOT(597) +673 = AND(600, 597) +677 = NOR(605, 523) +678 = NOT(606) +682 = AND(609, 606) +686 = NOR(615, 524) +687 = NOT(616) +692 = AND(619, 616) +696 = NOR(624, 525) +697 = NOT(625) +700 = AND(628, 625) +704 = NOR(631, 526) +705 = NOT(632) +708 = AND(635, 632) +712 = NOR(337, 640) +713 = NOT(641) +717 = AND(644, 641) +721 = NOR(339, 650) +722 = NOT(651) +727 = AND(654, 651) +731 = NOR(341, 659) +732 = NAND(654, 261) +733 = NAND(644, 654, 261) +734 = NAND(635, 644, 654, 261) +735 = NOT(662) +736 = AND(228, 665) +737 = AND(237, 662) +738 = NOT(670) +739 = AND(228, 673) +740 = AND(237, 670) +741 = NOT(678) +742 = AND(228, 682) +743 = AND(237, 678) +744 = NOT(687) +745 = AND(228, 692) +746 = AND(237, 687) +747 = NOT(697) +748 = AND(228, 700) +749 = AND(237, 697) +750 = NOT(705) +751 = AND(228, 708) +752 = AND(237, 705) +753 = NOT(713) +754 = AND(228, 717) +755 = AND(237, 713) +756 = NOT(722) +757 = NOR(727, 261) +758 = AND(727, 261) +759 = AND(228, 727) +760 = AND(237, 722) +761 = NAND(644, 722) +762 = NAND(635, 713) +763 = NAND(635, 644, 722) +764 = NAND(609, 687) +765 = NAND(600, 678) +766 = NAND(600, 609, 687) +767 = BUFF(660) +768 = BUFF(661) +769 = NOR(736, 737) +770 = NOR(739, 740) +771 = NOR(742, 743) +772 = NOR(745, 746) +773 = NAND(750, 762, 763, 734) +777 = NOR(748, 749) +778 = NAND(753, 761, 733) +781 = NOR(751, 752) +782 = NAND(756, 732) +785 = NOR(754, 755) +786 = NOR(757, 758) +787 = NOR(759, 760) +788 = NOR(700, 773) +789 = AND(700, 773) +790 = NOR(708, 778) +791 = AND(708, 778) +792 = NOR(717, 782) +793 = AND(717, 782) +794 = AND(219, 786) +795 = NAND(628, 773) +796 = NAND(795, 747) +802 = NOR(788, 789) +803 = NOR(790, 791) +804 = NOR(792, 793) +805 = NOR(340, 794) +806 = NOR(692, 796) +807 = AND(692, 796) +808 = AND(219, 802) +809 = AND(219, 803) +810 = AND(219, 804) +811 = NAND(805, 787, 731, 529) +812 = NAND(619, 796) +813 = NAND(609, 619, 796) +814 = NAND(600, 609, 619, 796) +815 = NAND(738, 765, 766, 814) +819 = NAND(741, 764, 813) +822 = NAND(744, 812) +825 = NOR(806, 807) +826 = NOR(335, 808) +827 = NOR(336, 809) +828 = NOR(338, 810) +829 = NOT(811) +830 = NOR(665, 815) +831 = AND(665, 815) +832 = NOR(673, 819) +833 = AND(673, 819) +834 = NOR(682, 822) +835 = AND(682, 822) +836 = AND(219, 825) +837 = NAND(826, 777, 704) +838 = NAND(827, 781, 712, 527) +839 = NAND(828, 785, 721, 528) +840 = NOT(829) +841 = NAND(815, 593) +842 = NOR(830, 831) +843 = NOR(832, 833) +844 = NOR(834, 835) +845 = NOR(334, 836) +846 = NOT(837) +847 = NOT(838) +848 = NOT(839) +849 = AND(735, 841) +850 = BUFF(840) +851 = AND(219, 842) +852 = AND(219, 843) +853 = AND(219, 844) +854 = NAND(845, 772, 696) +855 = NOT(846) +856 = NOT(847) +857 = NOT(848) +858 = NOT(849) +859 = NOR(417, 851) +860 = NOR(332, 852) +861 = NOR(333, 853) +862 = NOT(854) +863 = BUFF(855) +864 = BUFF(856) +865 = BUFF(857) +866 = BUFF(858) +867 = NAND(859, 769, 669) +868 = NAND(860, 770, 677) +869 = NAND(861, 771, 686) +870 = NOT(862) +871 = NOT(867) +872 = NOT(868) +873 = NOT(869) +874 = BUFF(870) +875 = NOT(871) +876 = NOT(872) +877 = NOT(873) +878 = BUFF(875) +879 = BUFF(876) +880 = BUFF(877) From d70bedf74adb0c7d499a9b1890b07100a054a411 Mon Sep 17 00:00:00 2001 From: xNTsai Date: Tue, 10 Jun 2025 04:40:01 +0800 Subject: [PATCH 51/58] add: fault simulation --- src/base/abc/abc.h | 4 +- src/base/abc/abcFault.c | 8 +- src/base/abci/abc.c | 467 ++++++++++++++++++++++++++++----------- src/base/abci/abcDar.c | 23 +- src/base/abci/abcPrint.c | 2 +- 5 files changed, 367 insertions(+), 137 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 8504375344..23968369f3 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -187,11 +187,13 @@ struct Abc_Ntk_t_ Abc_Fault_t * pFaultList; // the list of faults int nFaults; // total number of faults int nDetectedFaults; // number of detected faults - int nUndetectableFaults; // number of undetectable faults + int nUndetectedFaults; // number of undetected faults int nActivatedFaults; // number of activated faults int nTestTriedFaults; // number of faults that have been tried Abc_Ntk_t * pGoodNtk; // the good network Vec_Ptr_t * vGoodPis; // the good network PIs + int * fUndetected; // the number of undetected faults + int * fDetected; // the number of detected faults // the number of living objects int nObjCounts[ABC_OBJ_NUMBER]; // the number of objects by type int nObjs; // the number of live objs diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 7210bc5dcc..2e2585b59c 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -141,7 +141,7 @@ void Abc_NtkClearFaults( Abc_Ntk_t * pNtk ) pNtk->pFaultList = NULL; pNtk->nFaults = 0; pNtk->nDetectedFaults = 0; - pNtk->nUndetectableFaults = 0; + pNtk->nUndetectedFaults = 0; pNtk->nActivatedFaults = 0; pNtk->nTestTriedFaults = 0; } @@ -1812,7 +1812,7 @@ void Abc_NtkCreateFaultConstraintNetwork(Abc_Ntk_t * pNtk) pFaultNtk->nFaults = pNtk->nFaults; pFaultNtk->nDetectedFaults = pNtk->nDetectedFaults; - pFaultNtk->nUndetectableFaults = pNtk->nUndetectableFaults; + pFaultNtk->nUndetectedFaults = pNtk->nUndetectedFaults; pFaultNtk->nActivatedFaults = pNtk->nActivatedFaults; pFaultNtk->nTestTriedFaults = pNtk->nTestTriedFaults; printf("[FaultConstraint] Copied fault list to faulty network\n"); @@ -2303,7 +2303,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) Abc_Fault_t * pFaultList = pNtk->pFaultList; int nFaults = pNtk->nFaults; int nDetectedFaults = pNtk->nDetectedFaults; - int nUndetectableFaults = pNtk->nUndetectableFaults; + int nUndetectedFaults = pNtk->nUndetectedFaults; int nActivatedFaults = pNtk->nActivatedFaults; int nTestTriedFaults = pNtk->nTestTriedFaults; Abc_Ntk_t * pFaultConstraintNtk = pNtk->pFaultConstraintNtk; @@ -2322,7 +2322,7 @@ void Abc_NtkCombineNetwork(Abc_Ntk_t * pNtk) pNtk->pFaultList = pFaultList; pNtk->nFaults = nFaults; pNtk->nDetectedFaults = nDetectedFaults; - pNtk->nUndetectableFaults = nUndetectableFaults; + pNtk->nUndetectedFaults = nUndetectedFaults; pNtk->nActivatedFaults = nActivatedFaults; pNtk->nTestTriedFaults = nTestTriedFaults; pNtk->pFaultConstraintNtk = pFaultConstraintNtk; diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 947f8789a0..90914bd643 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11602,7 +11602,13 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) int first_time = 1; Vec_Ptr_t* vPatterns = Vec_PtrAlloc(1000); - + pNtk = Abc_FrameReadNtk(pAbc); + pNtk->fUndetected = (int*)malloc(pNtk->nFaults * sizeof(int)); + // initialize to 1 + for(int i = 0; i < pNtk->nFaults; i++) + pNtk->fUndetected[i] = 1; + pNtk->fDetected = (int*)malloc(pNtk->nFaults * sizeof(int)); + while(1){ pNtk = Abc_FrameReadNtk(pAbc); vPattern = Abc_ExecPBO( pNtk, first_time ); @@ -11614,6 +11620,86 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) if (first_time) first_time = 0; + // clear and rewrite atpg.ptn + int undetected_count = 0; + pFile = fopen( "atpg.ptn", "w" ); + for(int i = 0; i < pNtk->nFaults; i++){ + if(pNtk->fUndetected[i] == 1){ + undetected_count++; + // write vPattern + fundetetedsize vector of 0 with only i = 1 + for(int j = 0; j < Vec_IntSize(vPattern); j++) + fprintf(pFile, "%d", Vec_IntEntry(vPattern, j)); + for(int j = 0; j < pNtk->nFaults; j++) + fprintf(pFile, "%d", j == i ? 1 : 0); + fprintf(pFile, "\n"); + } + } + pNtk->nUndetectedFaults = undetected_count; + printf("[ATPG] undetected_count: %d\n", undetected_count); + + fclose( pFile ); + // restore + printf("backup%d\n", pAbc->pNtkBackup==NULL); + dupNtk = Abc_NtkDup(pAbc->pNtkBackup); + if(pAbc->pNtkBackup -> pFaultList != NULL) dupNtk -> pFaultList = pAbc->pNtkBackup -> pFaultList; + if(pAbc->pNtkBackup -> nFaults != 0) dupNtk -> nFaults = pAbc->pNtkBackup -> nFaults; + if(pAbc->pNtkBackup -> pGoodNtk != NULL) dupNtk -> pGoodNtk = pAbc->pNtkBackup -> pGoodNtk; + if(pAbc->pNtkBackup -> vGoodPis != NULL) dupNtk -> vGoodPis = pAbc->pNtkBackup -> vGoodPis; + if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) dupNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); + if(pNtk -> vTestPatterns != NULL) dupNtk -> vTestPatterns = pNtk -> vTestPatterns; + if(pNtk -> fUndetected != NULL) dupNtk -> fUndetected = pNtk -> fUndetected; + if(pNtk -> fDetected != NULL) dupNtk -> fDetected = pNtk -> fDetected; + dupNtk -> nUndetectedFaults = pNtk -> nUndetectedFaults; + printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); + Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); + pAbc->nFrames = -1; + pAbc->Status = -1; + + // strash + pNtk = Abc_FrameReadNtk(pAbc); + pNtkRes = Abc_NtkStrash( pNtk->pFaultConstraintNtk, 0, 1, 0 ); + pNtkRes->pFaultConstraintNtk = Abc_FrameReadNtk(pAbc); + pNtkRes->vGoodPis = pNtk->vGoodPis; + pNtkRes->fUndetected = pNtk->fUndetected; + pNtkRes->fDetected = pNtk->fDetected; + pNtkRes->nFaults = pNtk->nFaults; + pNtkRes->nUndetectedFaults = pNtk->nUndetectedFaults; + Abc_FrameReplaceCurrentNetwork( pAbc, pNtkRes ); + + // fault simulation + pNtk = Abc_FrameReadNtk(pAbc); + extern Vec_Int_t * Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char * pFileSim ); + ABC_FREE( pNtk->pSeqModel ); + Vec_Int_t * pValues = Abc_NtkDarSeqSim( pNtk, 1, 8, 30, 0, 1, 0, "atpg.ptn" ); + int * fUndetected = pNtk->fUndetected; + int * fDetected = (int*)malloc(pNtk->nFaults * sizeof(int)); + for (int i = 0; i < pNtk->nFaults; i++) { + fDetected[i] = 0; + } + int counter = 0; + for (int i = 0; i < pNtk->nFaults; i++) { + if ( fUndetected[i] == 0 ) { + continue; + } + else if (Vec_IntEntry(pValues, counter) == 0 ) { + fDetected[i] = 1; + } + counter++; + } + printf("[ATPG] update fUndetected\n"); + // update fUndetected + for (int i = 0; i < pNtk->nFaults; i++) { + if(fUndetected[i] > 0) fUndetected[i] -= fDetected[i]; + } + pNtk->fUndetected = fUndetected; + pNtk->fDetected = fDetected; + printf("[ATPG] update fUndetected\n"); + int detected = 0; + for(int i = 0; i < pNtk->nFaults; i++) + detected += pNtk->fDetected[i]; + printf("[ATPG] The Pattern Detected: %d\n", detected); + + // restore printf("backup%d\n", pAbc->pNtkBackup==NULL); dupNtk = Abc_NtkDup(pAbc->pNtkBackup); @@ -11623,6 +11709,9 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) if(pAbc->pNtkBackup -> vGoodPis != NULL) dupNtk -> vGoodPis = pAbc->pNtkBackup -> vGoodPis; if(pAbc->pNtkBackup -> pFaultConstraintNtk != NULL) dupNtk -> pFaultConstraintNtk = Abc_NtkDup(pAbc->pNtkBackup -> pFaultConstraintNtk); if(pNtk -> vTestPatterns != NULL) dupNtk -> vTestPatterns = pNtk -> vTestPatterns; + if(pNtk -> fUndetected != NULL) dupNtk -> fUndetected = pNtk -> fUndetected; + if(pNtk -> fDetected != NULL) dupNtk -> fDetected = pNtk -> fDetected; + dupNtk -> nUndetectedFaults = pNtk -> nUndetectedFaults; printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); pAbc->nFrames = -1; @@ -11639,6 +11728,10 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) pNtkRes = Abc_NtkStrash( pNtk->pFaultConstraintNtk, 0, 1, 0 ); pNtkRes->pFaultConstraintNtk = Abc_FrameReadNtk(pAbc); pNtkRes->vGoodPis = pNtk->vGoodPis; + pNtkRes->fUndetected = pNtk->fUndetected; + pNtkRes->fDetected = pNtk->fDetected; + pNtkRes->nFaults = pNtk->nFaults; + pNtkRes->nUndetectedFaults = pNtk->nUndetectedFaults; Abc_FrameReplaceCurrentNetwork( pAbc, pNtkRes ); // &get @@ -25911,135 +26004,249 @@ int Abc_CommandXsim( Abc_Frame_t * pAbc, int argc, char ** argv ) ***********************************************************************/ int Abc_CommandSim( Abc_Frame_t * pAbc, int argc, char ** argv ) { - Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); - int c; - int fNew; - int fComb; - int nFrames; - int nWords; - int TimeOut; - int fMiter; - int fVerbose; - char * pFileSim; - char * pLogFileName = NULL; - extern int Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char * pFileSim ); - // set defaults - fNew = 0; - fComb = 0; - nFrames = 32; - nWords = 8; - TimeOut = 30; - fMiter = 1; - fVerbose = 0; - pFileSim = NULL; - Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "FWTALnmvh" ) ) != EOF ) - { - switch ( c ) - { - case 'F': - if ( globalUtilOptind >= argc ) - { - Abc_Print( -1, "Command line switch \"-F\" should be followed by an integer.\n" ); - goto usage; - } - nFrames = atoi(argv[globalUtilOptind]); - globalUtilOptind++; - if ( nFrames < 0 ) - goto usage; - break; - case 'W': - if ( globalUtilOptind >= argc ) - { - Abc_Print( -1, "Command line switch \"-W\" should be followed by an integer.\n" ); - goto usage; - } - nWords = atoi(argv[globalUtilOptind]); - globalUtilOptind++; - if ( nWords < 0 ) - goto usage; - break; - case 'T': - if ( globalUtilOptind >= argc ) - { - Abc_Print( -1, "Command line switch \"-T\" should be followed by an integer.\n" ); - goto usage; - } - TimeOut = atoi(argv[globalUtilOptind]); - globalUtilOptind++; - if ( TimeOut < 0 ) - goto usage; - break; - case 'A': - if ( globalUtilOptind >= argc ) - { - Abc_Print( -1, "Command line switch \"-A\" should be followed by a file name.\n" ); - goto usage; - } - pFileSim = argv[globalUtilOptind]; - globalUtilOptind++; - break; - case 'L': - if ( globalUtilOptind >= argc ) - { - Abc_Print( -1, "Command line switch \"-L\" should be followed by a file name.\n" ); - goto usage; - } - pLogFileName = argv[globalUtilOptind]; - globalUtilOptind++; - break; - case 'n': - fNew ^= 1; - break; - case 'm': - fMiter ^= 1; - break; - case 'v': - fVerbose ^= 1; - break; - case 'h': - goto usage; - default: - goto usage; - } - } - if ( pNtk == NULL ) - { - Abc_Print( -1, "Empty network.\n" ); - return 1; - } - if ( !Abc_NtkIsStrash(pNtk) ) - { - Abc_Print( -1, "Only works for strashed networks.\n" ); - return 1; - } - if ( pFileSim != NULL && Abc_NtkLatchNum(pNtk) ) - { - Abc_Print( -1, "Currently simulation with user-specified patterns works only for comb miters.\n" ); - return 1; - } - ABC_FREE( pNtk->pSeqModel ); - pAbc->Status = Abc_NtkDarSeqSim( pNtk, nFrames, nWords, TimeOut, fNew, fMiter, fVerbose, pFileSim ); - Abc_FrameReplaceCex( pAbc, &pNtk->pSeqModel ); - if ( pLogFileName ) - Abc_NtkWriteLogFile( pLogFileName, pAbc->pCex, pAbc->Status, pAbc->nFrames, "sim" ); - return 0; - -usage: - Abc_Print( -2, "usage: sim [-FWT num] [-AL file] [-nmvh]\n" ); - Abc_Print( -2, "\t performs random simulation of the sequential miter\n" ); - Abc_Print( -2, "\t-F num : the number of frames to simulate [default = %d]\n", nFrames ); - Abc_Print( -2, "\t-W num : the number of words to simulate [default = %d]\n", nWords ); - Abc_Print( -2, "\t-T num : approximate runtime limit in seconds [default = %d]\n", TimeOut ); - Abc_Print( -2, "\t-A file : text file name with user's patterns [default = random simulation]\n" ); - Abc_Print( -2, "\t (patterns are listed, one per line, as sequences of 0s and 1s)\n" ); - Abc_Print( -2, "\t-L file : the log file name [default = %s]\n", pLogFileName ? pLogFileName : "no logging" ); - Abc_Print( -2, "\t-n : toggle new vs. old implementation [default = %s]\n", fNew? "new": "old" ); - Abc_Print( -2, "\t-m : toggle miter vs. any circuit [default = %s]\n", fMiter? "miter": "circuit" ); - Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" ); - Abc_Print( -2, "\t-h : print the command usage\n"); - return 1; -} +// Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); +// int c; +// int fNew; +// int fComb; +// int nFrames; +// int nWords; +// int TimeOut; +// int fMiter; +// int fVerbose; +// char * pFileSim; +// char * pLogFileName = NULL; +// extern Vec Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char * pFileSim ); +// // set defaults +// fNew = 0; +// fComb = 0; +// nFrames = 32; +// nWords = 8; +// TimeOut = 30; +// fMiter = 1; +// fVerbose = 0; +// pFileSim = NULL; +// Extra_UtilGetoptReset(); +// while ( ( c = Extra_UtilGetopt( argc, argv, "FWTALnmvh" ) ) != EOF ) +// { +// switch ( c ) +// { +// case 'F': +// if ( globalUtilOptind >= argc ) +// { +// Abc_Print( -1, "Command line switch \"-F\" should be followed by an integer.\n" ); +// goto usage; +// } +// nFrames = atoi(argv[globalUtilOptind]); +// globalUtilOptind++; +// if ( nFrames < 0 ) +// goto usage; +// break; +// case 'W': +// if ( globalUtilOptind >= argc ) +// { +// Abc_Print( -1, "Command line switch \"-W\" should be followed by an integer.\n" ); +// goto usage; +// } +// nWords = atoi(argv[globalUtilOptind]); +// globalUtilOptind++; +// if ( nWords < 0 ) +// goto usage; +// break; +// case 'T': +// if ( globalUtilOptind >= argc ) +// { +// Abc_Print( -1, "Command line switch \"-T\" should be followed by an integer.\n" ); +// goto usage; +// } +// TimeOut = atoi(argv[globalUtilOptind]); +// globalUtilOptind++; +// if ( TimeOut < 0 ) +// goto usage; +// break; +// case 'A': +// if ( globalUtilOptind >= argc ) +// { +// Abc_Print( -1, "Command line switch \"-A\" should be followed by a file name.\n" ); +// goto usage; +// } +// pFileSim = argv[globalUtilOptind]; +// globalUtilOptind++; +// break; +// case 'L': +// if ( globalUtilOptind >= argc ) +// { +// Abc_Print( -1, "Command line switch \"-L\" should be followed by a file name.\n" ); +// goto usage; +// } +// pLogFileName = argv[globalUtilOptind]; +// globalUtilOptind++; +// break; +// case 'n': +// fNew ^= 1; +// break; +// case 'm': +// fMiter ^= 1; +// break; +// case 'v': +// fVerbose ^= 1; +// break; +// case 'h': +// goto usage; +// default: +// goto usage; +// } +// } +// if ( pNtk == NULL ) +// { +// Abc_Print( -1, "Empty network.\n" ); +// return 1; +// } +// if ( !Abc_NtkIsStrash(pNtk) ) +// { +// Abc_Print( -1, "Only works for strashed networks.\n" ); +// return 1; +// } +// if ( pFileSim != NULL && Abc_NtkLatchNum(pNtk) ) +// { +// Abc_Print( -1, "Currently simulation with user-specified patterns works only for comb miters.\n" ); +// return 1; +// } +// ABC_FREE( pNtk->pSeqModel ); +// pAbc->Status = Abc_NtkDarSeqSim( pNtk, nFrames, nWords, TimeOut, fNew, fMiter, fVerbose, pFileSim ); +// Abc_FrameReplaceCex( pAbc, &pNtk->pSeqModel ); +// if ( pLogFileName ) +// Abc_NtkWriteLogFile( pLogFileName, pAbc->pCex, pAbc->Status, pAbc->nFrames, "sim" ); +// return 0; + +// usage: +// Abc_Print( -2, "usage: sim [-FWT num] [-AL file] [-nmvh]\n" ); +// Abc_Print( -2, "\t performs random simulation of the sequential miter\n" ); +// Abc_Print( -2, "\t-F num : the number of frames to simulate [default = %d]\n", nFrames ); +// Abc_Print( -2, "\t-W num : the number of words to simulate [default = %d]\n", nWords ); +// Abc_Print( -2, "\t-T num : approximate runtime limit in seconds [default = %d]\n", TimeOut ); +// Abc_Print( -2, "\t-A file : text file name with user's patterns [default = random simulation]\n" ); +// Abc_Print( -2, "\t (patterns are listed, one per line, as sequences of 0s and 1s)\n" ); +// Abc_Print( -2, "\t-L file : the log file name [default = %s]\n", pLogFileName ? pLogFileName : "no logging" ); +// Abc_Print( -2, "\t-n : toggle new vs. old implementation [default = %s]\n", fNew? "new": "old" ); +// Abc_Print( -2, "\t-m : toggle miter vs. any circuit [default = %s]\n", fMiter? "miter": "circuit" ); +// Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" ); +// Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +// int Abc_CommandFSim( Abc_Frame_t * pAbc, int argc, char ** argv ) +// { +// Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); +// int c; +// int fNew; +// int fComb; +// int nFrames; +// int nWords; +// int TimeOut; +// int fMiter; +// int fVerbose; +// char * pFileSim; +// char * pLogFileName = NULL; +// extern int Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char * pFileSim ); +// // set defaults +// fNew = 0; +// fComb = 0; +// nFrames = 1; +// nWords = 8; +// TimeOut = 30; +// fMiter = 1; +// fVerbose = 1; +// pFileSim = "atpg.ptn"; +// Extra_UtilGetoptReset(); +// while ( ( c = Extra_UtilGetopt( argc, argv, "FWTALnmvh" ) ) != EOF ) +// { +// switch ( c ) +// { +// case 'A': +// if ( globalUtilOptind >= argc ) +// { +// Abc_Print( -1, "Command line switch \"-A\" should be followed by a file name.\n" ); +// goto usage; +// } +// pFileSim = argv[globalUtilOptind]; +// globalUtilOptind++; +// break; +// case 'v': +// fVerbose ^= 1; +// break; +// case 'h': +// goto usage; +// default: +// goto usage; +// } +// } +// if ( pNtk == NULL ) +// { +// Abc_Print( -1, "Empty network.\n" ); +// return 1; +// } +// if ( !Abc_NtkIsStrash(pNtk) ) +// { +// Abc_Print( -1, "Only works for strashed networks.\n" ); +// return 1; +// } +// if ( pFileSim != NULL && Abc_NtkLatchNum(pNtk) ) +// { +// Abc_Print( -1, "Currently simulation with user-specified patterns works only for comb miters.\n" ); +// return 1; +// } +// extern int Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char * pFileSim ); +// ABC_FREE( pNtk->pSeqModel ); +// Vec_Int_t * pValues = Abc_NtkDarSeqSim( pNtk, 1, 8, 30, 0, 1, 1, "atpg.ptn" ); +// Vec_Int_t * fUndetected = pNtk->fUndetected; +// Vec_Int_t * fDetected = Vec_IntAlloc( Vec_IntSize(fUndetected) ); +// for (int i = 0; i < Vec_IntSize(fUndetected); i++) { +// Vec_IntEntry(fDetected, i) = 0; +// } +// int counter = 0; +// for (int i = 0; i < Vec_IntSize(fUndetected); i++) { +// if ( Vec_IntEntry(fUndetected, i) == 0 ) { +// continue; +// } +// else if ( Vec_IntEntry(pValues, i) == 1 ) { +// fDetected[i] = 1; +// } +// counter++; +// } +// // update fUndetected +// for (int i = 0; i < Vec_IntSize(fUndetected); i++) { +// Vec_IntEntry(fUndetected, i) -= Vec_IntEntry(fDetected, i); +// } +// pNtk->fUndetected = fUndetected; +// pNtk->fDetected = fDetected; +// return 0; + +// usage: +// Abc_Print( -2, "usage: sim [-FWT num] [-AL file] [-nmvh]\n" ); +// Abc_Print( -2, "\t performs random simulation of the sequential miter\n" ); +// Abc_Print( -2, "\t-F num : the number of frames to simulate [default = %d]\n", nFrames ); +// Abc_Print( -2, "\t-W num : the number of words to simulate [default = %d]\n", nWords ); +// Abc_Print( -2, "\t-T num : approximate runtime limit in seconds [default = %d]\n", TimeOut ); +// Abc_Print( -2, "\t-A file : text file name with user's patterns [default = random simulation]\n" ); +// Abc_Print( -2, "\t (patterns are listed, one per line, as sequences of 0s and 1s)\n" ); +// Abc_Print( -2, "\t-L file : the log file name [default = %s]\n", pLogFileName ? pLogFileName : "no logging" ); +// Abc_Print( -2, "\t-n : toggle new vs. old implementation [default = %s]\n", fNew? "new": "old" ); +// Abc_Print( -2, "\t-m : toggle miter vs. any circuit [default = %s]\n", fMiter? "miter": "circuit" ); +// Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" ); +// Abc_Print( -2, "\t-h : print the command usage\n"); +// return 1; +// } /**Function************************************************************* diff --git a/src/base/abci/abcDar.c b/src/base/abci/abcDar.c index e7874b0eae..c875e61d63 100644 --- a/src/base/abci/abcDar.c +++ b/src/base/abci/abcDar.c @@ -3555,7 +3555,7 @@ Abc_Ntk_t * Abc_NtkDarHaigRecord( Abc_Ntk_t * pNtk, int nIters, int nSteps, int SeeAlso [] ***********************************************************************/ -int Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char * pFileSim ) + Vec_Int_t * Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char * pFileSim ) { Aig_Man_t * pMan; Abc_Cex_t * pCex; @@ -3603,10 +3603,31 @@ int Abc_NtkDarSeqSim( Abc_Ntk_t * pNtk, int nFrames, int nWords, int TimeOut, in else // comb/seq simulator { Fra_Sml_t * pSml; + Vec_Int_t * pValues; + unsigned * pSims; + int i, k; + Aig_Obj_t * pObj; + if ( pFileSim != NULL ) { assert( Abc_NtkLatchNum(pNtk) == 0 ); pSml = Fra_SmlSimulateCombGiven( pMan, pFileSim, fMiter, fVerbose ); + printf("[ATPG] Done Simulation\n"); + pValues = Vec_IntAlloc(pNtk->nUndetectedFaults); + for(k = 0; k < pNtk->nUndetectedFaults; k++){ + Aig_ManForEachCo( pSml->pAig, pObj, i ) + { + printf("[ATPG] For each co\n"); + pSims = Fra_ObjSim( pSml, pObj->Id ); + Vec_IntPush( pValues, Abc_InfoHasBit( pSims, k ) ); + // printf( "%d", Abc_InfoHasBit( pSims, 0 ) ); + } + } + printf("[ATPG] pValues: "); + for(int i = 0; i < Vec_IntSize(pValues); i++) + printf("%d ", Vec_IntEntry(pValues, i)); + printf("\n"); + return pValues; } else if ( Abc_NtkLatchNum(pNtk) == 0 ) pSml = Fra_SmlSimulateComb( pMan, nWords, fMiter ); diff --git a/src/base/abci/abcPrint.c b/src/base/abci/abcPrint.c index c351a39978..a1c4a18c22 100644 --- a/src/base/abci/abcPrint.c +++ b/src/base/abci/abcPrint.c @@ -2172,7 +2172,7 @@ void Abc_NtkPrintFaultStats( Abc_Ntk_t * pNtk ) printf( "Fault statistics for network %s:\n", pNtk->pName ? pNtk->pName : "unknown" ); printf( "Total faults: %d\n", pNtk->nFaults ); printf( "Detected faults: %d\n", pNtk->nDetectedFaults ); - printf( "Undetectable faults: %d\n", pNtk->nUndetectableFaults ); + printf( "Undetected faults: %d\n", pNtk->nUndetectedFaults ); printf( "Activated faults: %d\n", pNtk->nActivatedFaults ); printf( "Test-tried faults: %d\n", pNtk->nTestTriedFaults ); } From 9f2e3e8b01a8e5410290861630e4406b20c0bed8 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Tue, 10 Jun 2025 21:38:04 +0800 Subject: [PATCH 52/58] simulation objective function modification --- runPBO.cpp | 61 ++++++++++++++++++++++++++++++------------- src/base/abc/abc.h | 2 +- src/base/abc/abcPbo.c | 7 ++--- src/base/abci/abc.c | 52 +++++++++++++++++++++++++++++++++--- 4 files changed, 97 insertions(+), 25 deletions(-) diff --git a/runPBO.cpp b/runPBO.cpp index c0f2c6222c..1ec04557f7 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -70,20 +70,16 @@ int write_opb(const std::string& filename, CNF* cnf, const std::vector& obj exit(-1); } - file << "* #variable= " << cnf->num_vars << " #constraint= " << cnf->num_clauses << "\n"; + file << "* #variable= " << cnf->num_vars << " #constraint= " << cnf->num_clauses+1 << "\n"; file << "* #XY_start= " << xy_start << " #XY_end= " << xy_end << "\n"; file << "* #PI_start= " << pi_start << " #PI_num= " << originPI_num << "\n"; + int fa0_start = pi_start + originPI_num; if (!obj.empty()) { file << "min: "; - for (int coef : obj) { - if (coef > cnf->num_vars) { - std::cerr << "Invalid objective variable " << coef - << ": must be <= " << cnf->num_vars << std::endl; - exit(-1); - } - else if(coef < 0) continue; // Skip negative coefficients - file << "-1 x" << coef << " "; + for (int i=0;i 0) continue; // Skip positive coefficients (already detected) + file << "-1 x" << fa0_start+i << " "; } file << ";\n"; } @@ -107,7 +103,7 @@ int write_opb(const std::string& filename, CNF* cnf, const std::vector& obj return pi_start; } -int add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int& originPI_num) { +int add_pbo_constraint(const std::string& filename, CNF* cnf, const std::vector& obj, int pi_num, int& originPI_num) { std::ifstream infile(filename); if (!infile.is_open()) { perror("Error opening OPB file for reading"); @@ -121,6 +117,7 @@ int add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int& o bool first_header_found = false; bool second_header_found = false; bool third_header_found = false; + bool forth_header_found = false; int parsed_xy_start = -1, parsed_xy_end = -1; int parsed_pi_start = -1, parsed_pi_num = -1; @@ -170,7 +167,7 @@ int add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int& o } } else if (!third_header_found && line.rfind("* #PI_", 0) == 0) { - second_header_found = true; + third_header_found = true; // Parse "#PI= X #originPI= Y" std::regex pattern(R"(\* #PI_start= (\d+) #PI_num= (\d+))"); @@ -186,6 +183,22 @@ int add_pbo_constraint(const std::string& filename, CNF* cnf, int pi_num, int& o exit(-1); } } + else if (!forth_header_found && line.rfind("min:", 0) == 0){ + forth_header_found = true; + assert(parsed_pi_start != -1 && parsed_pi_num != -1); + + buffer << "min: "; + for( int i = 0; i < obj.size(); ++i) { + if (obj[i] > 0) { + // Skip positive coefficients (already detected) + continue; + } + // Write the objective variable + buffer << "-1 x" << (parsed_pi_start + i) << " "; + } + buffer << ";\n"; // end of the min line + + } else { buffer << line << "\n"; } @@ -401,7 +414,7 @@ void execute_solver(const std::string& opb_filename, const int pi_start, const i } sat = true; - modify_opb_by_lits(literals, opb_filename); // Modify the OPB's objective function with the literals + // modify_opb_by_lits(literals, opb_filename); // Modify the OPB's objective function with the literals std::cout << bitstring << "\n"; std::cerr << bitstring << "\n"; @@ -419,8 +432,9 @@ void execute_solver(const std::string& opb_filename, const int pi_start, const i } int main(int argc, char* argv[]) { - if (argc != 5) { - std::cerr << "Usage: " << argv[0] << " input.cnf output.opb [pi_num] [origin pi num]\n"; + std::cerr << argc << " arguments provided.\n"; + if (argc != 6) { + std::cerr << "Usage: " << argv[0] << " input.cnf output.opb [pi_num] [origin pi num] [obj variable]\n"; return 1; } // else if(argc == 5){ @@ -433,7 +447,20 @@ int main(int argc, char* argv[]) { int originPI_num = (argc > 4) ? std::atoi(argv[4]) : 0; assert(originPI_num <= pi_num); // let originPI_num = -1 be the signal of appending constraints std::cerr << "Pi_num: " << pi_num << ", OriginPI_num: " << originPI_num << "\n"; + + // obj_var_string + std::string obj_var_string = argv[5]; std::vector obj_variables; + for (int i = 0; i < obj_var_string.length(); ++i) { + if (obj_var_string[i] != '1') { // detected before + obj_variables.push_back(1); + } + else{// ==1, undetected + obj_variables.push_back(-1); + } + } + + int pi_start = 0; CNF* cnf = parse_cnf(input_filename); @@ -445,15 +472,13 @@ int main(int argc, char* argv[]) { int end = (start-1 + cnf->num_vars)/2; std::cerr << "start: " << start << ", end: " << end << "\n"; assert(end - start +1 == cnf->num_vars -end); - for (int i = start; i <= end; ++i) { - obj_variables.push_back(i); - } + assert(end - start +1 == obj_var_string.size()); pi_start = write_opb(opb_filename, cnf, obj_variables, pi_num, originPI_num); std::cerr << "OPB file written successfully\n"; } else if (originPI_num == -1){ - pi_start = add_pbo_constraint(opb_filename, cnf, pi_num, originPI_num); + pi_start = add_pbo_constraint(opb_filename, cnf, obj_variables, pi_num, originPI_num); std::cerr << "OPB file updated with new constraints successfully\n"; } diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 23968369f3..345eb5ac76 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1137,7 +1137,7 @@ extern ABC_DLL void Abc_NtkAssignLatestPatternToConstraintNetwork( extern ABC_DLL void Abc_NtkWriteTestPatterns( Vec_Ptr_t * vPatterns, const char * pFileName ); // Pseudo Boolean Optimization Related -extern ABC_DLL Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int ); +extern ABC_DLL Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run, char* undetected ); ABC_NAMESPACE_HEADER_END diff --git a/src/base/abc/abcPbo.c b/src/base/abc/abcPbo.c index af62f9b5aa..def573615a 100644 --- a/src/base/abc/abcPbo.c +++ b/src/base/abc/abcPbo.c @@ -2,13 +2,14 @@ #include #include #include +#include ABC_NAMESPACE_IMPL_START -Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run ) +Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run, char* undetected ) { // extern void Abc_NtkAddTestPattern( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); - + assert( undetected != NULL ); int pi_num = Abc_NtkPiNum(pNtk); // int good_pi_num = Abc_NtkPiNum(pNtk); const int good_pi_num = pNtk->vGoodPis ? Vec_PtrSize(pNtk->vGoodPis) : -1; @@ -45,7 +46,7 @@ Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run ) dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe // need to compile runPBO.cpp first - char *argv[] = {"./runpbo", "atpg.cnf", "output.opb", pi_num_str, good_pi_str, NULL}; + char *argv[] = {"./runpbo", "atpg.cnf", "output.opb", pi_num_str, good_pi_str, undetected, NULL}; execv("./runpbo", argv); // If execv returns, an error occurred diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 90914bd643..5b3e90f9b7 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11570,6 +11570,20 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) Aig_Man_t * pAig; Gia_Man_t * pGia; + Fraig_Params_t Params, * pParams = &Params; + memset( pParams, 0, sizeof(Fraig_Params_t) ); + pParams->nPatsRand = 2048; // the number of words of random simulation info + pParams->nPatsDyna = 2048; // the number of words of dynamic simulation info + pParams->nBTLimit = 100; // the max number of backtracks to perform + pParams->fFuncRed = 1; // performs only one level hashing + pParams->fFeedBack = 1; // enables solver feedback + pParams->fDist1Pats = 1; // enables distance-1 patterns + pParams->fDoSparse = 1; // performs equiv tests for sparse functions + pParams->fChoicing = 0; // enables recording structural choices + pParams->fTryProve = 0; // tries to solve the final miter + pParams->fVerbose = 0; // the verbosiness flag + pParams->fVerboseP = 0; // the verbosiness flag + Vec_Int_t * vPattern; // set defaults @@ -11602,16 +11616,24 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) int first_time = 1; Vec_Ptr_t* vPatterns = Vec_PtrAlloc(1000); + char* undetected_str = (char*)malloc((pNtk->nFaults+1) * sizeof(char)); + assert(undetected_str != NULL); + int undetected_size = pNtk->nFaults; + undetected_str[undetected_size] = '\0'; // null-terminate the string + pNtk = Abc_FrameReadNtk(pAbc); pNtk->fUndetected = (int*)malloc(pNtk->nFaults * sizeof(int)); // initialize to 1 - for(int i = 0; i < pNtk->nFaults; i++) + for(int i = 0; i < pNtk->nFaults; i++){ pNtk->fUndetected[i] = 1; + undetected_str[i] = '1'; + } pNtk->fDetected = (int*)malloc(pNtk->nFaults * sizeof(int)); while(1){ pNtk = Abc_FrameReadNtk(pAbc); - vPattern = Abc_ExecPBO( pNtk, first_time ); + printf("undetected: %s\n", undetected_str); + vPattern = Abc_ExecPBO( pNtk, first_time, undetected_str ); if ( vPattern == NULL ){ Abc_NtkWriteTestPatterns(vPatterns, "atpg.txt"); return 0; // pbo unsat, done. @@ -11694,6 +11716,13 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) pNtk->fUndetected = fUndetected; pNtk->fDetected = fDetected; printf("[ATPG] update fUndetected\n"); + for(int i=0;inFaults; i++) detected += pNtk->fDetected[i]; @@ -11724,8 +11753,25 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_NtkAssignLatestPatternToConstraintNetwork(pNtk); - // strash + // strash & fraig pNtkRes = Abc_NtkStrash( pNtk->pFaultConstraintNtk, 0, 1, 0 ); + pNtkRes = Abc_NtkFraig( pNtkRes, &Params, 0, 0 ); + // resyn + pNtkRes = Abc_NtkBalance( pNtkRes, 0, 0, 1 ); + int RetValue = Abc_NtkRewrite( pNtkRes, 1, 0, 0, 0, 0 ); + RetValue = Abc_NtkRewrite( pNtkRes, 1, 1, 0, 0, 0 ); + pNtkRes = Abc_NtkBalance( pNtkRes, 0, 0, 1 ); + RetValue = Abc_NtkRewrite( pNtkRes, 1, 1, 0, 0, 0 ); + pNtkRes = Abc_NtkBalance( pNtkRes, 0, 0, 1 ); + // compress + pNtkRes = Abc_NtkBalance( pNtkRes, 0, 0, 0 ); + RetValue = Abc_NtkRewrite( pNtkRes, 0, 0, 0, 0, 0 ); + RetValue = Abc_NtkRewrite( pNtkRes, 0, 1, 0, 0, 0 ); + pNtkRes = Abc_NtkBalance( pNtkRes, 0, 0, 0 ); + RetValue = Abc_NtkRewrite( pNtkRes, 0, 1, 0, 0, 0 ); + pNtkRes = Abc_NtkBalance( pNtkRes, 0, 0, 0 ); + + pNtkRes = Abc_NtkStrash( pNtkRes, 0, 1, 0 ); pNtkRes->pFaultConstraintNtk = Abc_FrameReadNtk(pAbc); pNtkRes->vGoodPis = pNtk->vGoodPis; pNtkRes->fUndetected = pNtk->fUndetected; From c66ce4261fef74eb0aa96027587743e81d620677 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Wed, 11 Jun 2025 23:16:24 +0800 Subject: [PATCH 53/58] dump pattern file periodically --- runPBO.cpp | 2 +- src/base/abci/abc.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/runPBO.cpp b/runPBO.cpp index 1ec04557f7..1ce17b09d1 100644 --- a/runPBO.cpp +++ b/runPBO.cpp @@ -390,7 +390,7 @@ void execute_solver(const std::string& opb_filename, const int pi_start, const i bool sat = false; while (getline(&c_line, &len, fp) != -1) { line = c_line; - std::cerr << line; // Print solver output to stderr + // std::cerr << line; // Print solver output to stderr if (line.empty() || line[0] != 'v') continue; std::istringstream iss(line); diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 5b3e90f9b7..730df96055 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11660,6 +11660,18 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) printf("[ATPG] undetected_count: %d\n", undetected_count); fclose( pFile ); + + // write all the pattern so that it can end earlier + pFile = fopen( "atpg_tmp.ptn", "w" ); + for (int i = 0; i < Vec_PtrSize(vPatterns); i++) { + Vec_Int_t * pPattern = (Vec_Int_t *)Vec_PtrEntry(vPatterns, i); + for (int j = 0; j < Vec_IntSize(pPattern); j++) { + fprintf(pFile, "%d", Vec_IntEntry(pPattern, j)); + } + fprintf(pFile, "\n"); + } + fclose( pFile ); + // restore printf("backup%d\n", pAbc->pNtkBackup==NULL); dupNtk = Abc_NtkDup(pAbc->pNtkBackup); From dcd165564215c6960239a3f9219a07fe65927668 Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Wed, 11 Jun 2025 23:30:54 +0800 Subject: [PATCH 54/58] remove debug message --- src/base/abci/abc.c | 8 ++++---- src/base/abci/abcDar.c | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 730df96055..e17a5edeca 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11673,7 +11673,7 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) fclose( pFile ); // restore - printf("backup%d\n", pAbc->pNtkBackup==NULL); + // printf("backup%d\n", pAbc->pNtkBackup==NULL); dupNtk = Abc_NtkDup(pAbc->pNtkBackup); if(pAbc->pNtkBackup -> pFaultList != NULL) dupNtk -> pFaultList = pAbc->pNtkBackup -> pFaultList; if(pAbc->pNtkBackup -> nFaults != 0) dupNtk -> nFaults = pAbc->pNtkBackup -> nFaults; @@ -11684,7 +11684,7 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) if(pNtk -> fUndetected != NULL) dupNtk -> fUndetected = pNtk -> fUndetected; if(pNtk -> fDetected != NULL) dupNtk -> fDetected = pNtk -> fDetected; dupNtk -> nUndetectedFaults = pNtk -> nUndetectedFaults; - printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); + // printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); pAbc->nFrames = -1; pAbc->Status = -1; @@ -11742,7 +11742,7 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) // restore - printf("backup%d\n", pAbc->pNtkBackup==NULL); + // printf("backup%d\n", pAbc->pNtkBackup==NULL); dupNtk = Abc_NtkDup(pAbc->pNtkBackup); if(pAbc->pNtkBackup -> pFaultList != NULL) dupNtk -> pFaultList = pAbc->pNtkBackup -> pFaultList; if(pAbc->pNtkBackup -> nFaults != 0) dupNtk -> nFaults = pAbc->pNtkBackup -> nFaults; @@ -11753,7 +11753,7 @@ int Abc_CommandRunPBO( Abc_Frame_t * pAbc, int argc, char ** argv ) if(pNtk -> fUndetected != NULL) dupNtk -> fUndetected = pNtk -> fUndetected; if(pNtk -> fDetected != NULL) dupNtk -> fDetected = pNtk -> fDetected; dupNtk -> nUndetectedFaults = pNtk -> nUndetectedFaults; - printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); + // printf("dupNtk -> pFaultConstraintNtk = NULL?%d\n", dupNtk -> pFaultConstraintNtk == NULL); Abc_FrameReplaceCurrentNetwork( pAbc, dupNtk ); pAbc->nFrames = -1; pAbc->Status = -1; diff --git a/src/base/abci/abcDar.c b/src/base/abci/abcDar.c index c875e61d63..509c240d8e 100644 --- a/src/base/abci/abcDar.c +++ b/src/base/abci/abcDar.c @@ -3617,16 +3617,16 @@ Abc_Ntk_t * Abc_NtkDarHaigRecord( Abc_Ntk_t * pNtk, int nIters, int nSteps, int for(k = 0; k < pNtk->nUndetectedFaults; k++){ Aig_ManForEachCo( pSml->pAig, pObj, i ) { - printf("[ATPG] For each co\n"); + // printf("[ATPG] For each co\n"); pSims = Fra_ObjSim( pSml, pObj->Id ); Vec_IntPush( pValues, Abc_InfoHasBit( pSims, k ) ); // printf( "%d", Abc_InfoHasBit( pSims, 0 ) ); } } - printf("[ATPG] pValues: "); - for(int i = 0; i < Vec_IntSize(pValues); i++) - printf("%d ", Vec_IntEntry(pValues, i)); - printf("\n"); + // printf("[ATPG] pValues: "); + // for(int i = 0; i < Vec_IntSize(pValues); i++) + // printf("%d ", Vec_IntEntry(pValues, i)); + // printf("\n"); return pValues; } else if ( Abc_NtkLatchNum(pNtk) == 0 ) From 19d89f902e0990b2244be4c7ccab238f7193f71d Mon Sep 17 00:00:00 2001 From: xNTsai Date: Thu, 12 Jun 2025 20:34:55 +0800 Subject: [PATCH 55/58] add: insert_tp faulty only --- src/base/abc/abc.h | 1 + src/base/abc/abcFault.c | 79 +++++++++++++++++++++++++++++++++++++++++ src/base/abci/abc.c | 16 ++++++--- 3 files changed, 92 insertions(+), 4 deletions(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 345eb5ac76..ffec09228d 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1134,6 +1134,7 @@ extern ABC_DLL void Abc_NtkFreeTestPatterns( Abc_Ntk_t * pNtk ); extern ABC_DLL int Abc_NtkTestPatternNum( Abc_Ntk_t * pNtk ); extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ); extern ABC_DLL void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ); +extern ABC_DLL void Abc_NtkAssignLatestPatternToCurrentNetwork( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkWriteTestPatterns( Vec_Ptr_t * vPatterns, const char * pFileName ); // Pseudo Boolean Optimization Related diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index 2e2585b59c..f4a2e12703 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2183,6 +2183,85 @@ Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i ) return (Vec_Int_t *)Vec_PtrEntry( pNtk->vTestPatterns, i ); } +/**Function************************************************************* + + Synopsis [Assigns the latest test pattern to the fault constraint network.] + + Description [Takes the latest test pattern from vTestPatterns and assigns + it to the first set of PIs in the fault constraint network, + preserving the faulty PI assignments.] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkAssignLatestPatternToCurrentNetwork( Abc_Ntk_t * pNtk ) +{ + Vec_Int_t * vLatestPattern; + Abc_Obj_t * pPi, * pObj, * pConst0, * pConst1; + int i, nPis; + + // Check if network and constraint network exist + if ( !pNtk || !pNtk->vTestPatterns ) + { + printf("pNtk: %d\n", !pNtk); + Vec_Int_t* vpattern = Abc_NtkGetTestPattern(pNtk, 0); + for(int j = 0; j < Vec_IntSize(vpattern); j++) + printf("%d ", Vec_IntEntry(vpattern, j)); + printf("\n"); + printf("[FaultConstraint] Error: Network or constraint network not found\n"); + return; + } + // Get the latest test pattern + vLatestPattern = Abc_NtkGetTestPattern(pNtk, Abc_NtkTestPatternNum(pNtk) - 1); + if (!vLatestPattern) + { + printf("[FaultConstraint] Error: Latest test pattern not found\n"); + return; + } + + // number of PIs in the test pattern + nPis = Vec_IntSize(vLatestPattern); + printf("[AssignTestPattern] Number of PIs in the test pattern: %d\n", nPis); + + // Create constant nodes if they don't exist + pConst0 = Abc_NtkCreateNodeConst0(pNtk); + pConst1 = Abc_NtkCreateNodeConst1(pNtk); + + int test_pattern_index = 0; + // We only want to assign the first nPis (good circuit inputs) + Abc_NtkForEachPi(pNtk, pPi, i) + { + if (test_pattern_index >= nPis) + break; + + + // Get the value from the test pattern + int value = Vec_IntEntry(vLatestPattern, test_pattern_index); + + // Replace PI's fanout connections with constant node + if (value == 0) + Abc_ObjTransferFanout(pPi, pConst0); + else + Abc_ObjTransferFanout(pPi, pConst1); + + test_pattern_index++; + } + + + // Delete the first test_pattern_index PIs from the current network + for (int j = 0; j < test_pattern_index; j++) + { + // Always get the first PI (index 0) since after each deletion, PIs shift down + pObj = Abc_NtkPi(pNtk, 0); + if (!pObj) break; // Safety check + Abc_NtkDeleteObj(pObj); + } + + printf("[AssignTestPattern] Assigned latest test pattern to current network PIs as constants\n"); +} + /**Function************************************************************* Synopsis [Assigns the latest test pattern to the fault constraint network.] diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index e17a5edeca..d6bb4b3897 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -11499,15 +11499,19 @@ int Abc_CommandInsertTp( Abc_Frame_t * pAbc, int argc, char ** argv ) { Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); int c; + int is_constraint = 0; // set defaults Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + while ( ( c = Extra_UtilGetopt( argc, argv, "hf" ) ) != EOF ) { switch ( c ) { case 'h': goto usage; + case 'f': + is_constraint = 1; + break; default: goto usage; } @@ -11519,7 +11523,7 @@ int Abc_CommandInsertTp( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } - if ( !pNtk->pFaultConstraintNtk ) + if ( is_constraint && !pNtk->pFaultConstraintNtk ) { Abc_Print( -1, "Fault constraint network not created. Use fault_constraint first.\n" ); return 1; @@ -11532,14 +11536,18 @@ int Abc_CommandInsertTp( Abc_Frame_t * pAbc, int argc, char ** argv ) } // Assign the latest test pattern to the constraint network - Abc_NtkAssignLatestPatternToConstraintNetwork(pNtk); + if ( is_constraint ) + Abc_NtkAssignLatestPatternToConstraintNetwork(pNtk); + else + Abc_NtkAssignLatestPatternToCurrentNetwork(pNtk); return 0; usage: - Abc_Print( -2, "usage: insert_tp [-h]\n" ); + Abc_Print( -2, "usage: insert_tp [-h] [-f]\n" ); Abc_Print( -2, "\t Insert the latest test pattern into the fault constraint network\n" ); Abc_Print( -2, "\t-h : print the command usage\n"); + Abc_Print( -2, "\t-f : insert the latest test pattern into the fault constraint network\n"); return 1; } From 5335da8da2be5e2d5072253ee55598a22d2044af Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 13 Jun 2025 03:26:56 +0800 Subject: [PATCH 56/58] build xy circuit --- src/base/abc/abc.h | 2 +- src/base/abc/abcFault.c | 67 +++++++++++++++++++++++++++++++++++++ src/base/abci/abc.c | 73 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 141 insertions(+), 1 deletion(-) diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index ffec09228d..ec7fd1cd05 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -1136,7 +1136,7 @@ extern ABC_DLL Vec_Int_t * Abc_NtkGetTestPattern( Abc_Ntk_t * pNtk, int i extern ABC_DLL void Abc_NtkAssignLatestPatternToConstraintNetwork( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkAssignLatestPatternToCurrentNetwork( Abc_Ntk_t * pNtk ); extern ABC_DLL void Abc_NtkWriteTestPatterns( Vec_Ptr_t * vPatterns, const char * pFileName ); - +extern ABC_DLL void Abc_NtkAssignPOPatternToCurrentNetwork( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ); // Pseudo Boolean Optimization Related extern ABC_DLL Vec_Int_t * Abc_ExecPBO( Abc_Ntk_t * pNtk, int first_run, char* undetected ); diff --git a/src/base/abc/abcFault.c b/src/base/abc/abcFault.c index f4a2e12703..e9df047005 100644 --- a/src/base/abc/abcFault.c +++ b/src/base/abc/abcFault.c @@ -2262,6 +2262,73 @@ void Abc_NtkAssignLatestPatternToCurrentNetwork( Abc_Ntk_t * pNtk ) printf("[AssignTestPattern] Assigned latest test pattern to current network PIs as constants\n"); } + +void Abc_NtkAssignPOPatternToCurrentNetwork( Abc_Ntk_t * pNtk, Vec_Int_t * vPattern ) +{ + Abc_Obj_t * pPo, * pObj, * pConst0, * pConst1; + int i, nPos; + + // Check if network and pattern exist + if ( !pNtk || !vPattern ) + { + printf("pNtk: %d\n", !pNtk); + printf("[AddPOPattern] Error: Network or pattern not found\n"); + return; + } + + // number of PIs in the test pattern + nPos = Vec_IntSize(vPattern); + printf("[AddPOPattern] Number of POs in the test pattern: %d\n", nPos); + + // Create constant nodes if they don't exist + pConst0 = Abc_NtkCreateNodeConst0(pNtk); + pConst1 = Abc_NtkCreateNodeConst1(pNtk); + + int test_pattern_index = 0; + + Abc_Obj_t * pNewPo = Abc_NtkCreatePo(pNtk); + Abc_Obj_t * pNewAnd = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNewPo, pNewAnd); + + Abc_NtkForEachPo(pNtk, pPo, i) + { + if (test_pattern_index >= nPos) + break; + + + // Get the value from the test pattern + int value = Vec_IntEntry(vPattern, test_pattern_index); + + // Replace PO's fanout connections with constant node + if (value == 0){ + Abc_Obj_t * pNewNot; + pNewNot = Abc_NtkCreateNode(pNtk); + Abc_ObjAddFanin(pNewNot, Abc_ObjFanin0(pPo)); + pNewNot->pData = Abc_SopCreateInv((Mem_Flex_t *)pNtk->pManFunc); + + Abc_ObjAddFanin(pNewAnd, pNewNot); + } + else{ + Abc_ObjAddFanin(pNewAnd, Abc_ObjFanin0(pPo)); + } + + test_pattern_index++; + } + pNewAnd->pData = Abc_SopCreateAnd((Mem_Flex_t *)pNtk->pManFunc, Abc_ObjFaninNum(pNewAnd), NULL); + + for (int j = 0; j < test_pattern_index; j++) + { + // Always get the first PI (index 0) since after each deletion, PIs shift down + pObj = Abc_NtkPo(pNtk, 0); + if (!pObj) break; // Safety check + Abc_NtkDeleteObj(pObj); + } + + printf("faninNum=%d, po_num=%d\n", Abc_ObjFaninNum(pNewAnd), Abc_NtkPoNum(pNtk)); + printf("[AddPOPattern] Assigned latest PO pattern to current network POs as constants\n"); +} + + /**Function************************************************************* Synopsis [Assigns the latest test pattern to the fault constraint network.] diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index d6bb4b3897..65fb0207c4 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -185,6 +185,7 @@ static int Abc_CommandFaultConstraint ( Abc_Frame_t * pAbc, int argc, cha static int Abc_CommandNtkCombine ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandAddTp ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandInsertTp ( Abc_Frame_t * pAbc, int argc, char ** argv ); +static int Abc_CommandAddPo ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandRunPBO ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandLogic ( Abc_Frame_t * pAbc, int argc, char ** argv ); static int Abc_CommandComb ( Abc_Frame_t * pAbc, int argc, char ** argv ); @@ -1012,6 +1013,7 @@ void Abc_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "Fault", "ntk_combine", Abc_CommandNtkCombine, 1 ); Cmd_CommandAdd( pAbc, "Fault", "add_tp", Abc_CommandAddTp, 1 ); Cmd_CommandAdd( pAbc, "Fault", "insert_tp", Abc_CommandInsertTp, 1 ); + Cmd_CommandAdd( pAbc, "Fault", "add_po", Abc_CommandAddPo, 1 ); Cmd_CommandAdd( pAbc, "Fault", "pbo", Abc_CommandRunPBO, 0 ); Cmd_CommandAdd( pAbc, "Various", "logic", Abc_CommandLogic, 1 ); Cmd_CommandAdd( pAbc, "Various", "comb", Abc_CommandComb, 1 ); @@ -11552,6 +11554,77 @@ int Abc_CommandInsertTp( Abc_Frame_t * pAbc, int argc, char ** argv ) } +int Abc_CommandAddPo( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); + Vec_Int_t * vPattern; + char * pPattern; + int c, i; + + // set defaults + Extra_UtilGetoptReset(); + while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( pNtk == NULL ) + { + Abc_Print( -1, "Empty network.\n" ); + return 1; + } + + if ( argc != globalUtilOptind + 1 ) + { + Abc_Print( -1, "Please provide a test pattern.\n" ); + goto usage; + } + + // Get the pattern string + pPattern = argv[globalUtilOptind]; + + // Create vector to store the pattern + vPattern = Vec_IntAlloc(strlen(pPattern)); + + // Convert string to vector of integers + for (i = 0; i < strlen(pPattern); i++) + { + if (pPattern[i] == '0') + Vec_IntPush(vPattern, 0); + else if (pPattern[i] == '1') + Vec_IntPush(vPattern, 1); + else + { + Vec_IntFree(vPattern); + Abc_Print( -1, "Invalid test pattern. Use only 0s and 1s.\n" ); + return 1; + } + } + Abc_Print( 1, "Adding pattern: %s\n", pPattern ); + + // Add the pattern to the network + Abc_NtkAssignPOPatternToCurrentNetwork(pNtk, vPattern); + + // Free the temporary vector + Vec_IntFree(vPattern); + + return 0; + +usage: + Abc_Print( -2, "usage: add_po [-h]\n" ); + Abc_Print( -2, "\t Add a test pattern to the network\n" ); + Abc_Print( -2, "\t: Binary string of 0s and 1s\n" ); + Abc_Print( -2, "\t-h : print the command usage\n"); + return 1; +} + + /**Function************************************************************* Synopsis [] From d79ce8b0d578bfc4d7d2f4a32cd92d6a420fc3cc Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 13 Jun 2025 03:30:17 +0800 Subject: [PATCH 57/58] add kissat --- .gitmodules | 3 +++ kissat | 1 + 2 files changed, 4 insertions(+) create mode 160000 kissat diff --git a/.gitmodules b/.gitmodules index 603fdb92bf..4281dc6e01 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "pbcomp24-cg"] path = pbcomp24-cg url = https://bitbucket.org/coreo-group/pbcomp24-cg.git +[submodule "kissat"] + path = kissat + url = https://github.com/arminbiere/kissat.git diff --git a/kissat b/kissat new file mode 160000 index 0000000000..f7e57764c1 --- /dev/null +++ b/kissat @@ -0,0 +1 @@ +Subproject commit f7e57764c19cf35198830575492dc9d80e872b55 From cecd6c29ca80c85b059765f33a6d35bf5481201f Mon Sep 17 00:00:00 2001 From: ArthurNieh Date: Fri, 13 Jun 2025 05:50:20 +0800 Subject: [PATCH 58/58] parse and solve diagnosis --- Project_25S_diag/bin_reference/atpg | Bin 0 -> 4231432 bytes .../bin_reference/c17-003.failLog | 5 + Project_25S_diag/doc/project_diag_25S.docx | Bin 0 -> 103342 bytes Project_25S_diag/failLog/Info_failLog.xlsx | Bin 0 -> 18784 bytes Project_25S_diag/failLog/c1355-001.failLog | 124 + Project_25S_diag/failLog/c1355-002.failLog | 84 + Project_25S_diag/failLog/c1355-003.failLog | 4 + Project_25S_diag/failLog/c1355-004.failLog | 16 + Project_25S_diag/failLog/c1355-005.failLog | 124 + Project_25S_diag/failLog/c1355-006.failLog | 121 + Project_25S_diag/failLog/c1355-007.failLog | 84 + Project_25S_diag/failLog/c1355-008.failLog | 16 + Project_25S_diag/failLog/c1355-009.failLog | 58 + Project_25S_diag/failLog/c1355-010.failLog | 84 + Project_25S_diag/failLog/c1355-011.failLog | 84 + Project_25S_diag/failLog/c1355-012.failLog | 70 + Project_25S_diag/failLog/c1355-013.failLog | 92 + Project_25S_diag/failLog/c1355-014.failLog | 52 + Project_25S_diag/failLog/c1355-015.failLog | 41 + Project_25S_diag/failLog/c1355-016.failLog | 22 + Project_25S_diag/failLog/c1355-017.failLog | 20 + Project_25S_diag/failLog/c1355-018.failLog | 124 + Project_25S_diag/failLog/c1355-019.failLog | 8 + Project_25S_diag/failLog/c1355-020.failLog | 124 + Project_25S_diag/failLog/c17-001.failLog | 7 + Project_25S_diag/failLog/c17-002.failLog | 7 + Project_25S_diag/failLog/c17-003.failLog | 10 + Project_25S_diag/failLog/c17-004.failLog | 13 + Project_25S_diag/failLog/c17-005.failLog | 8 + Project_25S_diag/failLog/c17-006.failLog | 2 + Project_25S_diag/failLog/c17-007.failLog | 2 + Project_25S_diag/failLog/c17-008.failLog | 2 + Project_25S_diag/failLog/c17-009.failLog | 4 + Project_25S_diag/failLog/c17-010.failLog | 5 + Project_25S_diag/failLog/c17-011.failLog | 5 + Project_25S_diag/failLog/c17-012.failLog | 5 + Project_25S_diag/failLog/c17-013.failLog | 4 + Project_25S_diag/failLog/c17-014.failLog | 5 + Project_25S_diag/failLog/c17-015.failLog | 5 + Project_25S_diag/failLog/c17-016.failLog | 4 + Project_25S_diag/failLog/c17-017.failLog | 8 + Project_25S_diag/failLog/c17-018.failLog | 8 + Project_25S_diag/failLog/c17-019.failLog | 8 + Project_25S_diag/failLog/c17-020.failLog | 7 + Project_25S_diag/failLog/c2670-001.failLog | 4 + Project_25S_diag/failLog/c2670-002.failLog | 15 + Project_25S_diag/failLog/c2670-003.failLog | 10 + Project_25S_diag/failLog/c2670-004.failLog | 60 + Project_25S_diag/failLog/c2670-005.failLog | 2 + Project_25S_diag/failLog/c2670-006.failLog | 72 + Project_25S_diag/failLog/c2670-007.failLog | 1 + Project_25S_diag/failLog/c2670-008.failLog | 4 + Project_25S_diag/failLog/c2670-009.failLog | 79 + Project_25S_diag/failLog/c2670-010.failLog | 85 + Project_25S_diag/failLog/c2670-011.failLog | 282 + Project_25S_diag/failLog/c2670-012.failLog | 93 + Project_25S_diag/failLog/c2670-013.failLog | 56 + Project_25S_diag/failLog/c2670-014.failLog | 35 + Project_25S_diag/failLog/c2670-015.failLog | 145 + Project_25S_diag/failLog/c2670-016.failLog | 78 + Project_25S_diag/failLog/c2670-017.failLog | 51 + Project_25S_diag/failLog/c2670-018.failLog | 196 + Project_25S_diag/failLog/c2670-019.failLog | 88 + Project_25S_diag/failLog/c2670-020.failLog | 81 + Project_25S_diag/failLog/c3540-001.failLog | 1 + Project_25S_diag/failLog/c3540-002.failLog | 1 + Project_25S_diag/failLog/c3540-003.failLog | 1 + Project_25S_diag/failLog/c3540-004.failLog | 1 + Project_25S_diag/failLog/c3540-005.failLog | 119 + Project_25S_diag/failLog/c3540-006.failLog | 13 + Project_25S_diag/failLog/c3540-007.failLog | 42 + Project_25S_diag/failLog/c3540-008.failLog | 8 + Project_25S_diag/failLog/c3540-009.failLog | 95 + Project_25S_diag/failLog/c3540-010.failLog | 3 + Project_25S_diag/failLog/c3540-011.failLog | 15 + Project_25S_diag/failLog/c3540-012.failLog | 63 + Project_25S_diag/failLog/c3540-013.failLog | 3 + Project_25S_diag/failLog/c3540-014.failLog | 4 + Project_25S_diag/failLog/c3540-015.failLog | 23 + Project_25S_diag/failLog/c3540-016.failLog | 24 + Project_25S_diag/failLog/c3540-017.failLog | 3 + Project_25S_diag/failLog/c3540-018.failLog | 75 + Project_25S_diag/failLog/c3540-019.failLog | 8 + Project_25S_diag/failLog/c3540-020.failLog | 5 + Project_25S_diag/failLog/c432-001.failLog | 310 + Project_25S_diag/failLog/c432-002.failLog | 1 + Project_25S_diag/failLog/c432-003.failLog | 1 + Project_25S_diag/failLog/c432-004.failLog | 1 + Project_25S_diag/failLog/c432-005.failLog | 2 + Project_25S_diag/failLog/c432-006.failLog | 1 + Project_25S_diag/failLog/c432-007.failLog | 1 + Project_25S_diag/failLog/c432-008.failLog | 1 + Project_25S_diag/failLog/c432-009.failLog | 1 + Project_25S_diag/failLog/c432-010.failLog | 1 + Project_25S_diag/failLog/c432-011.failLog | 1 + Project_25S_diag/failLog/c432-012.failLog | 1 + Project_25S_diag/failLog/c432-013.failLog | 2 + Project_25S_diag/failLog/c432-014.failLog | 2 + Project_25S_diag/failLog/c432-015.failLog | 1 + Project_25S_diag/failLog/c432-016.failLog | 19 + Project_25S_diag/failLog/c432-017.failLog | 2 + Project_25S_diag/failLog/c432-018.failLog | 1 + Project_25S_diag/failLog/c432-019.failLog | 2 + Project_25S_diag/failLog/c432-020.failLog | 1 + Project_25S_diag/failLog/c499-001.failLog | 31 + Project_25S_diag/failLog/c499-002.failLog | 4 + Project_25S_diag/failLog/c499-003.failLog | 12 + Project_25S_diag/failLog/c499-004.failLog | 13 + Project_25S_diag/failLog/c499-005.failLog | 8 + Project_25S_diag/failLog/c499-006.failLog | 33 + Project_25S_diag/failLog/c499-007.failLog | 200 + Project_25S_diag/failLog/c499-008.failLog | 32 + Project_25S_diag/failLog/c499-009.failLog | 54 + Project_25S_diag/failLog/c499-010.failLog | 348 + Project_25S_diag/failLog/c499-011.failLog | 48 + Project_25S_diag/failLog/c499-012.failLog | 6 + Project_25S_diag/failLog/c499-013.failLog | 106 + Project_25S_diag/failLog/c499-014.failLog | 24 + Project_25S_diag/failLog/c499-015.failLog | 18 + Project_25S_diag/failLog/c499-016.failLog | 223 + Project_25S_diag/failLog/c499-017.failLog | 98 + Project_25S_diag/failLog/c499-018.failLog | 88 + Project_25S_diag/failLog/c499-019.failLog | 197 + Project_25S_diag/failLog/c499-020.failLog | 156 + Project_25S_diag/failLog/c6288-001.failLog | 24 + Project_25S_diag/failLog/c6288-002.failLog | 44 + Project_25S_diag/failLog/c6288-003.failLog | 14 + Project_25S_diag/failLog/c6288-004.failLog | 9 + Project_25S_diag/failLog/c6288-005.failLog | 25 + Project_25S_diag/failLog/c6288-006.failLog | 33 + Project_25S_diag/failLog/c6288-007.failLog | 95 + Project_25S_diag/failLog/c6288-008.failLog | 16 + Project_25S_diag/failLog/c6288-009.failLog | 11 + Project_25S_diag/failLog/c6288-010.failLog | 51 + Project_25S_diag/failLog/c6288-011.failLog | 69 + Project_25S_diag/failLog/c6288-012.failLog | 28 + Project_25S_diag/failLog/c6288-013.failLog | 59 + Project_25S_diag/failLog/c6288-014.failLog | 165 + Project_25S_diag/failLog/c6288-015.failLog | 94 + Project_25S_diag/failLog/c6288-016.failLog | 108 + Project_25S_diag/failLog/c6288-017.failLog | 152 + Project_25S_diag/failLog/c6288-018.failLog | 123 + Project_25S_diag/failLog/c6288-019.failLog | 173 + Project_25S_diag/failLog/c6288-020.failLog | 106 + Project_25S_diag/failLog/c7552-001.failLog | 3 + Project_25S_diag/failLog/c7552-002.failLog | 173 + Project_25S_diag/failLog/c7552-003.failLog | 160 + Project_25S_diag/failLog/c7552-004.failLog | 207 + Project_25S_diag/failLog/c7552-005.failLog | 26 + Project_25S_diag/failLog/c7552-006.failLog | 167 + Project_25S_diag/failLog/c7552-007.failLog | 109 + Project_25S_diag/failLog/c7552-008.failLog | 60 + Project_25S_diag/failLog/c7552-009.failLog | 592 + Project_25S_diag/failLog/c7552-010.failLog | 11 + Project_25S_diag/failLog/c7552-011.failLog | 82 + Project_25S_diag/failLog/c7552-012.failLog | 223 + Project_25S_diag/failLog/c7552-013.failLog | 131 + Project_25S_diag/failLog/c7552-014.failLog | 109 + Project_25S_diag/failLog/c7552-015.failLog | 98 + Project_25S_diag/failLog/c7552-016.failLog | 813 + Project_25S_diag/failLog/c7552-017.failLog | 113 + Project_25S_diag/failLog/c7552-018.failLog | 705 + Project_25S_diag/failLog/c7552-019.failLog | 176 + Project_25S_diag/failLog/c7552-020.failLog | 531 + Project_25S_diag/failLog/c880-001.failLog | 20 + Project_25S_diag/failLog/c880-002.failLog | 3 + Project_25S_diag/failLog/c880-003.failLog | 6 + Project_25S_diag/failLog/c880-004.failLog | 2 + Project_25S_diag/failLog/c880-005.failLog | 56 + Project_25S_diag/failLog/c880-006.failLog | 8 + Project_25S_diag/failLog/c880-007.failLog | 1 + Project_25S_diag/failLog/c880-008.failLog | 1 + Project_25S_diag/failLog/c880-009.failLog | 9 + Project_25S_diag/failLog/c880-010.failLog | 41 + Project_25S_diag/failLog/c880-011.failLog | 5 + Project_25S_diag/failLog/c880-012.failLog | 18 + Project_25S_diag/failLog/c880-013.failLog | 19 + Project_25S_diag/failLog/c880-014.failLog | 17 + Project_25S_diag/failLog/c880-015.failLog | 51 + Project_25S_diag/failLog/c880-016.failLog | 27 + Project_25S_diag/failLog/c880-017.failLog | 1 + Project_25S_diag/failLog/c880-018.failLog | 16 + Project_25S_diag/failLog/c880-019.failLog | 24 + Project_25S_diag/failLog/c880-020.failLog | 24 + Project_25S_diag/patterns/golden_c1355.ptn | 95 + Project_25S_diag/patterns/golden_c17.ptn | 40 + Project_25S_diag/patterns/golden_c2670.ptn | 167 + Project_25S_diag/patterns/golden_c3540.ptn | 130 + Project_25S_diag/patterns/golden_c432.ptn | 52 + Project_25S_diag/patterns/golden_c499.ptn | 98 + Project_25S_diag/patterns/golden_c6288.ptn | 74 + Project_25S_diag/patterns/golden_c7552.ptn | 321 + Project_25S_diag/patterns/golden_c880.ptn | 97 + Project_25S_diag/sample_circuits/c1355.ckt | 630 + Project_25S_diag/sample_circuits/c1355.ckt.uf | 181710 +++++++++++++++ Project_25S_diag/sample_circuits/c17.ckt | 16 + Project_25S_diag/sample_circuits/c17.ckt.uf | 0 Project_25S_diag/sample_circuits/c1908.ckt | 943 + Project_25S_diag/sample_circuits/c2670.ckt | 2161 + Project_25S_diag/sample_circuits/c2670.ckt.uf | 4455 + Project_25S_diag/sample_circuits/c3540.ckt | 2157 + Project_25S_diag/sample_circuits/c3540.ckt.uf | 156880 +++++++++++++ Project_25S_diag/sample_circuits/c432.ckt | 291 + Project_25S_diag/sample_circuits/c432.ckt.uf | 17595 ++ Project_25S_diag/sample_circuits/c499.ckt | 630 + Project_25S_diag/sample_circuits/c499.ckt.uf | 13510 ++ Project_25S_diag/sample_circuits/c5315.ckt | 2598 + Project_25S_diag/sample_circuits/c6288.ckt | 4867 + Project_25S_diag/sample_circuits/c6288.ckt.uf | 30635 +++ Project_25S_diag/sample_circuits/c7552.ckt | 5997 + Project_25S_diag/sample_circuits/c7552.ckt.uf | 36470 +++ Project_25S_diag/sample_circuits/c880.ckt | 634 + Project_25S_diag/sample_circuits/c880.ckt.uf | 12550 + diagnosis.cpp | 174 + diagnosis.sh | 6 + gen_diag_dofile.py | 99 + 216 files changed, 487790 insertions(+) create mode 100755 Project_25S_diag/bin_reference/atpg create mode 100755 Project_25S_diag/bin_reference/c17-003.failLog create mode 100755 Project_25S_diag/doc/project_diag_25S.docx create mode 100755 Project_25S_diag/failLog/Info_failLog.xlsx create mode 100755 Project_25S_diag/failLog/c1355-001.failLog create mode 100755 Project_25S_diag/failLog/c1355-002.failLog create mode 100755 Project_25S_diag/failLog/c1355-003.failLog create mode 100755 Project_25S_diag/failLog/c1355-004.failLog create mode 100755 Project_25S_diag/failLog/c1355-005.failLog create mode 100755 Project_25S_diag/failLog/c1355-006.failLog create mode 100755 Project_25S_diag/failLog/c1355-007.failLog create mode 100755 Project_25S_diag/failLog/c1355-008.failLog create mode 100755 Project_25S_diag/failLog/c1355-009.failLog create mode 100755 Project_25S_diag/failLog/c1355-010.failLog create mode 100755 Project_25S_diag/failLog/c1355-011.failLog create mode 100755 Project_25S_diag/failLog/c1355-012.failLog create mode 100755 Project_25S_diag/failLog/c1355-013.failLog create mode 100755 Project_25S_diag/failLog/c1355-014.failLog create mode 100755 Project_25S_diag/failLog/c1355-015.failLog create mode 100755 Project_25S_diag/failLog/c1355-016.failLog create mode 100755 Project_25S_diag/failLog/c1355-017.failLog create mode 100755 Project_25S_diag/failLog/c1355-018.failLog create mode 100755 Project_25S_diag/failLog/c1355-019.failLog create mode 100755 Project_25S_diag/failLog/c1355-020.failLog create mode 100755 Project_25S_diag/failLog/c17-001.failLog create mode 100755 Project_25S_diag/failLog/c17-002.failLog create mode 100755 Project_25S_diag/failLog/c17-003.failLog create mode 100755 Project_25S_diag/failLog/c17-004.failLog create mode 100755 Project_25S_diag/failLog/c17-005.failLog create mode 100755 Project_25S_diag/failLog/c17-006.failLog create mode 100755 Project_25S_diag/failLog/c17-007.failLog create mode 100755 Project_25S_diag/failLog/c17-008.failLog create mode 100755 Project_25S_diag/failLog/c17-009.failLog create mode 100755 Project_25S_diag/failLog/c17-010.failLog create mode 100755 Project_25S_diag/failLog/c17-011.failLog create mode 100755 Project_25S_diag/failLog/c17-012.failLog create mode 100755 Project_25S_diag/failLog/c17-013.failLog create mode 100755 Project_25S_diag/failLog/c17-014.failLog create mode 100755 Project_25S_diag/failLog/c17-015.failLog create mode 100755 Project_25S_diag/failLog/c17-016.failLog create mode 100755 Project_25S_diag/failLog/c17-017.failLog create mode 100755 Project_25S_diag/failLog/c17-018.failLog create mode 100755 Project_25S_diag/failLog/c17-019.failLog create mode 100755 Project_25S_diag/failLog/c17-020.failLog create mode 100755 Project_25S_diag/failLog/c2670-001.failLog create mode 100755 Project_25S_diag/failLog/c2670-002.failLog create mode 100755 Project_25S_diag/failLog/c2670-003.failLog create mode 100755 Project_25S_diag/failLog/c2670-004.failLog create mode 100755 Project_25S_diag/failLog/c2670-005.failLog create mode 100755 Project_25S_diag/failLog/c2670-006.failLog create mode 100755 Project_25S_diag/failLog/c2670-007.failLog create mode 100755 Project_25S_diag/failLog/c2670-008.failLog create mode 100755 Project_25S_diag/failLog/c2670-009.failLog create mode 100755 Project_25S_diag/failLog/c2670-010.failLog create mode 100755 Project_25S_diag/failLog/c2670-011.failLog create mode 100755 Project_25S_diag/failLog/c2670-012.failLog create mode 100755 Project_25S_diag/failLog/c2670-013.failLog create mode 100755 Project_25S_diag/failLog/c2670-014.failLog create mode 100755 Project_25S_diag/failLog/c2670-015.failLog create mode 100755 Project_25S_diag/failLog/c2670-016.failLog create mode 100755 Project_25S_diag/failLog/c2670-017.failLog create mode 100755 Project_25S_diag/failLog/c2670-018.failLog create mode 100755 Project_25S_diag/failLog/c2670-019.failLog create mode 100755 Project_25S_diag/failLog/c2670-020.failLog create mode 100755 Project_25S_diag/failLog/c3540-001.failLog create mode 100755 Project_25S_diag/failLog/c3540-002.failLog create mode 100755 Project_25S_diag/failLog/c3540-003.failLog create mode 100755 Project_25S_diag/failLog/c3540-004.failLog create mode 100755 Project_25S_diag/failLog/c3540-005.failLog create mode 100755 Project_25S_diag/failLog/c3540-006.failLog create mode 100755 Project_25S_diag/failLog/c3540-007.failLog create mode 100755 Project_25S_diag/failLog/c3540-008.failLog create mode 100755 Project_25S_diag/failLog/c3540-009.failLog create mode 100755 Project_25S_diag/failLog/c3540-010.failLog create mode 100755 Project_25S_diag/failLog/c3540-011.failLog create mode 100755 Project_25S_diag/failLog/c3540-012.failLog create mode 100755 Project_25S_diag/failLog/c3540-013.failLog create mode 100755 Project_25S_diag/failLog/c3540-014.failLog create mode 100755 Project_25S_diag/failLog/c3540-015.failLog create mode 100755 Project_25S_diag/failLog/c3540-016.failLog create mode 100755 Project_25S_diag/failLog/c3540-017.failLog create mode 100755 Project_25S_diag/failLog/c3540-018.failLog create mode 100755 Project_25S_diag/failLog/c3540-019.failLog create mode 100755 Project_25S_diag/failLog/c3540-020.failLog create mode 100755 Project_25S_diag/failLog/c432-001.failLog create mode 100755 Project_25S_diag/failLog/c432-002.failLog create mode 100755 Project_25S_diag/failLog/c432-003.failLog create mode 100755 Project_25S_diag/failLog/c432-004.failLog create mode 100755 Project_25S_diag/failLog/c432-005.failLog create mode 100755 Project_25S_diag/failLog/c432-006.failLog create mode 100755 Project_25S_diag/failLog/c432-007.failLog create mode 100755 Project_25S_diag/failLog/c432-008.failLog create mode 100755 Project_25S_diag/failLog/c432-009.failLog create mode 100755 Project_25S_diag/failLog/c432-010.failLog create mode 100755 Project_25S_diag/failLog/c432-011.failLog create mode 100755 Project_25S_diag/failLog/c432-012.failLog create mode 100755 Project_25S_diag/failLog/c432-013.failLog create mode 100755 Project_25S_diag/failLog/c432-014.failLog create mode 100755 Project_25S_diag/failLog/c432-015.failLog create mode 100755 Project_25S_diag/failLog/c432-016.failLog create mode 100755 Project_25S_diag/failLog/c432-017.failLog create mode 100755 Project_25S_diag/failLog/c432-018.failLog create mode 100755 Project_25S_diag/failLog/c432-019.failLog create mode 100755 Project_25S_diag/failLog/c432-020.failLog create mode 100755 Project_25S_diag/failLog/c499-001.failLog create mode 100755 Project_25S_diag/failLog/c499-002.failLog create mode 100755 Project_25S_diag/failLog/c499-003.failLog create mode 100755 Project_25S_diag/failLog/c499-004.failLog create mode 100755 Project_25S_diag/failLog/c499-005.failLog create mode 100755 Project_25S_diag/failLog/c499-006.failLog create mode 100755 Project_25S_diag/failLog/c499-007.failLog create mode 100755 Project_25S_diag/failLog/c499-008.failLog create mode 100755 Project_25S_diag/failLog/c499-009.failLog create mode 100755 Project_25S_diag/failLog/c499-010.failLog create mode 100755 Project_25S_diag/failLog/c499-011.failLog create mode 100755 Project_25S_diag/failLog/c499-012.failLog create mode 100755 Project_25S_diag/failLog/c499-013.failLog create mode 100755 Project_25S_diag/failLog/c499-014.failLog create mode 100755 Project_25S_diag/failLog/c499-015.failLog create mode 100755 Project_25S_diag/failLog/c499-016.failLog create mode 100755 Project_25S_diag/failLog/c499-017.failLog create mode 100755 Project_25S_diag/failLog/c499-018.failLog create mode 100755 Project_25S_diag/failLog/c499-019.failLog create mode 100755 Project_25S_diag/failLog/c499-020.failLog create mode 100755 Project_25S_diag/failLog/c6288-001.failLog create mode 100755 Project_25S_diag/failLog/c6288-002.failLog create mode 100755 Project_25S_diag/failLog/c6288-003.failLog create mode 100755 Project_25S_diag/failLog/c6288-004.failLog create mode 100755 Project_25S_diag/failLog/c6288-005.failLog create mode 100755 Project_25S_diag/failLog/c6288-006.failLog create mode 100755 Project_25S_diag/failLog/c6288-007.failLog create mode 100755 Project_25S_diag/failLog/c6288-008.failLog create mode 100755 Project_25S_diag/failLog/c6288-009.failLog create mode 100755 Project_25S_diag/failLog/c6288-010.failLog create mode 100755 Project_25S_diag/failLog/c6288-011.failLog create mode 100755 Project_25S_diag/failLog/c6288-012.failLog create mode 100755 Project_25S_diag/failLog/c6288-013.failLog create mode 100755 Project_25S_diag/failLog/c6288-014.failLog create mode 100755 Project_25S_diag/failLog/c6288-015.failLog create mode 100755 Project_25S_diag/failLog/c6288-016.failLog create mode 100755 Project_25S_diag/failLog/c6288-017.failLog create mode 100755 Project_25S_diag/failLog/c6288-018.failLog create mode 100755 Project_25S_diag/failLog/c6288-019.failLog create mode 100755 Project_25S_diag/failLog/c6288-020.failLog create mode 100755 Project_25S_diag/failLog/c7552-001.failLog create mode 100755 Project_25S_diag/failLog/c7552-002.failLog create mode 100755 Project_25S_diag/failLog/c7552-003.failLog create mode 100755 Project_25S_diag/failLog/c7552-004.failLog create mode 100755 Project_25S_diag/failLog/c7552-005.failLog create mode 100755 Project_25S_diag/failLog/c7552-006.failLog create mode 100755 Project_25S_diag/failLog/c7552-007.failLog create mode 100755 Project_25S_diag/failLog/c7552-008.failLog create mode 100755 Project_25S_diag/failLog/c7552-009.failLog create mode 100755 Project_25S_diag/failLog/c7552-010.failLog create mode 100755 Project_25S_diag/failLog/c7552-011.failLog create mode 100755 Project_25S_diag/failLog/c7552-012.failLog create mode 100755 Project_25S_diag/failLog/c7552-013.failLog create mode 100755 Project_25S_diag/failLog/c7552-014.failLog create mode 100755 Project_25S_diag/failLog/c7552-015.failLog create mode 100755 Project_25S_diag/failLog/c7552-016.failLog create mode 100755 Project_25S_diag/failLog/c7552-017.failLog create mode 100755 Project_25S_diag/failLog/c7552-018.failLog create mode 100755 Project_25S_diag/failLog/c7552-019.failLog create mode 100755 Project_25S_diag/failLog/c7552-020.failLog create mode 100755 Project_25S_diag/failLog/c880-001.failLog create mode 100755 Project_25S_diag/failLog/c880-002.failLog create mode 100755 Project_25S_diag/failLog/c880-003.failLog create mode 100755 Project_25S_diag/failLog/c880-004.failLog create mode 100755 Project_25S_diag/failLog/c880-005.failLog create mode 100755 Project_25S_diag/failLog/c880-006.failLog create mode 100755 Project_25S_diag/failLog/c880-007.failLog create mode 100755 Project_25S_diag/failLog/c880-008.failLog create mode 100755 Project_25S_diag/failLog/c880-009.failLog create mode 100755 Project_25S_diag/failLog/c880-010.failLog create mode 100755 Project_25S_diag/failLog/c880-011.failLog create mode 100755 Project_25S_diag/failLog/c880-012.failLog create mode 100755 Project_25S_diag/failLog/c880-013.failLog create mode 100755 Project_25S_diag/failLog/c880-014.failLog create mode 100755 Project_25S_diag/failLog/c880-015.failLog create mode 100755 Project_25S_diag/failLog/c880-016.failLog create mode 100755 Project_25S_diag/failLog/c880-017.failLog create mode 100755 Project_25S_diag/failLog/c880-018.failLog create mode 100755 Project_25S_diag/failLog/c880-019.failLog create mode 100755 Project_25S_diag/failLog/c880-020.failLog create mode 100755 Project_25S_diag/patterns/golden_c1355.ptn create mode 100755 Project_25S_diag/patterns/golden_c17.ptn create mode 100755 Project_25S_diag/patterns/golden_c2670.ptn create mode 100755 Project_25S_diag/patterns/golden_c3540.ptn create mode 100755 Project_25S_diag/patterns/golden_c432.ptn create mode 100755 Project_25S_diag/patterns/golden_c499.ptn create mode 100755 Project_25S_diag/patterns/golden_c6288.ptn create mode 100755 Project_25S_diag/patterns/golden_c7552.ptn create mode 100755 Project_25S_diag/patterns/golden_c880.ptn create mode 100755 Project_25S_diag/sample_circuits/c1355.ckt create mode 100755 Project_25S_diag/sample_circuits/c1355.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c17.ckt create mode 100755 Project_25S_diag/sample_circuits/c17.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c1908.ckt create mode 100755 Project_25S_diag/sample_circuits/c2670.ckt create mode 100755 Project_25S_diag/sample_circuits/c2670.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c3540.ckt create mode 100755 Project_25S_diag/sample_circuits/c3540.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c432.ckt create mode 100755 Project_25S_diag/sample_circuits/c432.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c499.ckt create mode 100755 Project_25S_diag/sample_circuits/c499.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c5315.ckt create mode 100755 Project_25S_diag/sample_circuits/c6288.ckt create mode 100755 Project_25S_diag/sample_circuits/c6288.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c7552.ckt create mode 100755 Project_25S_diag/sample_circuits/c7552.ckt.uf create mode 100755 Project_25S_diag/sample_circuits/c880.ckt create mode 100755 Project_25S_diag/sample_circuits/c880.ckt.uf create mode 100644 diagnosis.cpp create mode 100755 diagnosis.sh create mode 100644 gen_diag_dofile.py diff --git a/Project_25S_diag/bin_reference/atpg b/Project_25S_diag/bin_reference/atpg new file mode 100755 index 0000000000000000000000000000000000000000..cd269960ec35290764df3ca3404561dca98a9375 GIT binary patch literal 4231432 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

CMG$F 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 RRS%8akqY^0%;{&Y=FS}A} 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 ~ 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%0Dn?NnZ$6 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%0DM7P1{J)q?G4DbZYYbRptj#p-BU9h?1lnvOQl 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%0DAm(!Jsk=`&c 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

4J5OXux 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

a>*(95QI}i3h4D* zCo^^SSTAD%HJjlk2){g_=>%!Y^;ioIIGQ4n(}}q9YPyH7810@|iL~Anlzp-)2pKL( z{Zdh(urDG=Of{jLQmpDU%YYvhpP38u6d!7hM4GQORfxLdOR*xy47kvK&?6vjcD~1>W7?v;8&?1_+DsXs;^f5tnZ{3jhD;;!Mrc#UVFagH9{PA;z?b7HZ1B@_(!G zBU9X-61iCo|3<{Oiz92)4uAUphnhoqVnc3LvzKC%GN2R^jc(MXMS*Tq&5cm~GW0IP zWju>ct?ovZLDybxh4(%el4BTmx>46&LgG#XyX4}*-KZC-hwOHv3U$WhK2A4kaX>oP`V>9dL{MdY+*)X9a_Mf=8WwQ6QA?h3f*T6T3nV~EljM3x zH>xwf;*hU_vrS8IoJmY~qt^`>PGc-2P9r%Xj)eMNlnhK;ia(E+SgiVua=Pe=K;o{hT8R+3n|i z0(X4zCaRxvhXkB{&bJWYehwRj`#F>4~=cyNK_H*{`+%>3G9o}3Tz3KDpR zMv>&w1(HXiZomEog57@o4cjZ;1XZ5K?UI%zmoAVzDs}ty2h-3gApsB48iR|ICdu`X z0y(=inxU%TG}aQVgv4}#+>hNLSWj2@_9P;uMA@F-Pg*_%obuBX&;?`1Ee{y`m$#8` z3m~$D#MZDed3@E@+IIxycQd^AxRBh;xMS>#gMgm|_PL7(8=GDa>e?S3kL~ZklX4jX z$7LKKm|WV}$H>Pu_UV9ht~KYHN5q3F>*Cg2OOs0*`#cLcwf{O6_;PTAK^aE^lr%}M zhZuX}aTK3b;B3_rtc1k0vB%*<7S{7Id`}UPQX<0XU2)`Wqvvm!H~1Ug5wLRb`(pA{ z?~7Gz0`H5tme4y@VGVwU~Cc1cVPVuCQTP+gsaWC=Y2HbX#z-+u%mE_Vn#qa3coLWk-TP;fc zX^2B4{Vi^HwKTbOPSH{iJ>2d7g^HF;Kw3-V;-pD(JtU{H{(y=W;B?j!9A^^KIkmH? zk2T7t;X8_mloC}fc>cyJjA*4Cm_^Y^59{!1z}Pzn!0%0nY$dUGNX#|%JaoF{NAN!F zLh=K~9b?zQ*M{;susbduY;1Z>D%<1MT}zWo8~Y9mIMrf5y2l*cWKdov0ZN)A*F%h5Z#Fo)!8xKOSP6+~V_*1O zX_QysdxMCS5)n?*d#D!Q#$jQB9~LfwD|m{JeK|i=Yywk!;WWh;xzH$I1`%io!B%;N z18kM0^u{0446tTOxdaFxOFvi@$Wj}~@6aF+7?u3LZp#3m!elQ(hug#^~oTW50VETyFlI!kHMhOR#ae=&szv6gAL zRl%jC$)&TD-(tHzE8k8sRd5|ad6EPuX_8zI$?Cplqh43t!0X{ ztAr>BNwr0b+s_$>#axxi_ar5TZn~e-`)%jFjnmKhX})@IrIMtVRlvE-kavNvu|kw_M^-S;{9ne7h9i!CsiBaPP`3;1BTvA{_o`{!RtR#L7wtm9JfjlrEKlGE6 zt~wwzBNC-ck}EJE_i*Ce0r~NUnDr*o5RgWb2t{6r=mGhi%}xpyg77Ml0($j;JgbVK zH0=T5!v{3E1M)FX;p-Q&#g`!5d_a>sAn)D@Ki(7z6U8A6m&zWVd7whU1M;TpsTCt# zb-t~J)u&W^x?qk|zYgRzUV-9cN29;d9?CkC!e65E7M~Jfz=pz~R(UZdCBhFBpT^@5 zWnFywAF!Ay*MLro#0-nsZt(_y^?mJ3qfKbOJ1&YtFzdA}f0PEr64-}uBZo0;RKnvkG zU6NdZ;!}&lA25Aq8P~??}E|k-Z#}`#SK2eU7HzK`@b# zc{RDkr}`B~QxXWJiIhi^TYOg9$W02M5eUs)l6s#*g(6S!p;)E-@(8&25j^^O;74#B z_5+a6e+1)x1GEC(Z@7?rlX2%qa4{M)`5v&NE*|_NxD{mGuZi91VV=AV z@*gCyi(qo;AHjFY$L&PEACS(qR<6f;T*O+I$E_wVB~32=IUlNItOi2O=oS4hn5L@wM1V}`#WML}E)$s3G2#*Tg+ot3h{s=Iiwv45oGxjl|B zY*$4**#)=0Byg8ta%p4#PCl-&g;z`GS}o?`3<{E7g4IMA2iH`x zUwboP>;p8$=?amaBz6oD*2ez$ZA9-mcu#O4d75#@*zLL@GZq1R&BcR_eLi5W&enwY z1oPxkkk668WrE42jeU)LTw{M1kj87QG;EO$s%N3)7>5s|iXo z5}>3>ay`V@tKUXx><`W;EkS8xF>UM()x4}x&If5R5h*3g*wz^`b}h)HjEq(#J8DzF z*st_N&G{H2r%22;^BBA52++TQ_fIY)BN%s#9a{+bK?0OC zNv?+&dq#EC)$`!o&=RbK#I&(rz$7E8>{|h2 z-wi_?YCxn8iJd@99#_2S_~H_ zO_J*&#_shdQq&lnN3{eiAu(<2P@k7I%7O45PDDzHGB$q2VC({jR{WS2WZ24~%QmZl zOC0w1rUA@npR51Po#+1eU*uhQ>VZqaLFkad<0N#;Z%DU0a4EV$h@0g5J=u7u zF?fP{>^IH}TW5m$pGapQ<4jP8G;?rg;8OcL_3RE@UPZL548+|XxEw=_+=0vA2-zLD zczqbS#9*r(8o10O0cYT{2^x6d!bahN3#Cewoc#`7(9Z9P0=aj$YHIUu4HU@P*d0b5 zfu2ur8Ka?H7s%{TG^N+zeanU93yeDj^3$_0jdu&?e{r#BaDkixvM!MKQGbaitKwFV z1ZELTu0Vk#AGbg*4oK%(2TmBGB}os%ZLF3imoAViS->ff&*XYlaIb-~jRYuZl3Wid zkQ*Zbe+tewT7u(DV!A+X!b?5Y^ACJYn37YXY(M!+Sln6%d&RG41?!;zmVa9n$njsP zg4n?M|F-l0EdCcMg_|yr?Y0|Y4it5VZuusntqbIhF{T(zzFR3Vbkha$Y9pt>IV0)h zOTjB98hjjFAiv+~%qTbolDR}ld>c9Sr^EZs$S;F4?#Xf0#6Z4E?pppl8;*; zM+BsEt^W9+_A;o_i>T+vrKHKF3*=Z9a0=ujGfWj+RZtp}03}V5>mdd5%G0Q^eZYBE zOHkTaOc%&i_e|C(XM?nmh?Ej#`^Y=6xK#r(@x{}r(Wo5y-gZ?WLw{BU@?%h_rL5&V zcftQ6n@P@{!rF7p5DD2_Pl$MKnCKIoIPDKT`@1#%NMGNl6LF5y}1aav5L zg?tnnVlnQtkU0p1pPd33jioVp3*#cT*_j2L0$E^|R|WSWD4&u5B~6m+AqDa=n$NorjtvVb z2}&D_=>pjeKCCANq*6qrlqlOT@*qOi5tuUNr)UVm*voeXj6MEKw3;0t(v`$UhvYGK z-wrV5FnEu3A^8I1jk+ATzK-GJcjFDs&RA&RQ!ny$t@QyO zY*Djd4$^|3+GGTJ0eZe9U4N6VScZC7)lfz5!uKB+QLA*L!|DNl27 zSfIQL>_-<5E>Gdqm3RBwGoLe=Cu0$K5-uZ}U~=j56h}U8c`6c+&b2NK@`79c_h4}cF2e}VW9+*xBAklw&Tt`VGwvAs zBsScV*}yuvc(Ab}K-R`CR@}!tIUeL0BoIq5xwNqp$j3EyazHxQ+HlMx7J(|?!|kY+ zCYLsLNfvO7{oZ{;1$Ub$NG~T1+etsv*pFj1k}L{NWi3HzV=-;)oTeVuD6>GyAtI$j z8G9(+dJF4kAsJyuq5e>KU4#Y#C^7br2fRYiThr$ z1-^S-B)IYp`;V6^?^(bXT#9fj@33wjuDo}E+$VG_sdg*x(qB-kP)H&Xy8^gWzzTiF zTKW(A6F|!YsX{2ra^+R!DHjS;=Cy=vP@Xot8z@hUAAw&li1a71f%)>3r&-@3d&j|h zx(mtSj63D&_2p>ARs!4L;=$!3>ay`V@#U`V5`vRO>T7u(DV%peC zYT^VX(qqGn5x6)d%GhbyRCzbUUafw_XB7O)`v)iw`{n&~I-2KpAax{N^ASy5c|*{} z9|+&)TqL;ij>0BD^vgR3@XIbmSKck9)i3W`K(-UQm{hx!_sMvlpxSU8$eDnw^UM1L zCS0ks-vsiLmgUN;%2Q!@rd-9!2dca$4hG88*mkf?(F1t5g3FjjUm&_K%&XHlt~R`z zx{zGJxKo~%>_g@40<5o#2bU-MhEJEL$`Lrd9y~bheVAbUD(w z))wrIv6iHd;r1UbO)g!Y_OXCdo+7a-jf49Olzd1pCry&;A?0ZqUe3r0;MCO;tc1jL zdD``sk2T5;@a;-ON{I-k@6)mBqCg=`8BK@x5?s9MLVu%9zRoF3WM~=qMm?OqQOBx_ zHUsgI3>ay=wVf9M2`0qaEL zQWC6$#B`SW9`~?DSq7v^M5L6cCW3b96&7u9AHNMJ%h1rAwsEDQc86L~m&XRLx~P)rtg>*1=GCGc z+!>n3Pj`my&d~f19NCh0Xij^`TlW!`J2a=Q=-r|DMuhAR&EJMQzHtH61q{uzKL`xX z&p-p0KsE{w&3T8qI^WH6R$a{hD9^MxZ}JhCHvbV7M9ze|dAN+um{tv}y7*u(u-DuK{x z{;SRoFR$ZJqlBf9arh|dv^W@JcBFCWYG%5TtDsS` z3KXAcPMlkOYJKH|TN0+Pgo`7uM0D|a=N~8VED+igDWF#upWBhPGQ(gHMm?a(Ej~?A zmDm;wKv?;JCb#%Z|JV|geexX;_PZoie5g?5DL$mDRUDSx+cfUlaTE4(6I#x@7RZ}gmRni1VD>x=(5m(!Yz{_AT=en7 zlUQa6>~;rw?vt*Yd6Rf88y}BDydW+{f|Iyvje0Ls0dQ59qLbLLm6wy)5=dJ@f61G~ zkele$Vm(ZMAVUb{fZd^GH~bLMYMH4(ULurbIf-gbBOU14svve*Ag~@t-t8&Lt3pS8>bjr$J(h$4rP<5;mk* zBB-U6Q?UaM-$cxu?@X46_(r|kPj@APR>aAdYe9l;;$1l(^_Bv$uBoVV06}$8Hfsnv z-GrzsjlosWxKjdr_G^haqR1A7;BQ+)@a4Qk-)Z^mzT_kACFp$BHLP7@(Cx;#S%lN4 zW8gjocU|dQ#ssq#251(2Q}v$on*9b27Z$Bst81J2Ct$0SbIKhGcU`YJ{X>L)gS?E$ z8JKsj>x~>=0_Tz0QxT@uj>P5?KHHD`Gj-Y73irB^-hZ&Hwyy28fcM41qGO(@?>8A=(I_f5S*6&3MBE9}NpLo{J$nbPR)tCtZ|Ax8f zvepXW^>vfv&|U*XMs0rbiV*s3&8TDc1n=3%jE0_`*yQ-27HSkh2@;M_V}7zlNH35w znwX1}P)pDBtsdSiK!wyQhV~0^gHatVPAt`E&A9kBx$Hu z)GFcM4)KuPU4*DrvfzAjA1jZZK&b?>dPvATQ`AZ=w1nJM=6gh~v{*`*)tnT(^}8Wz zl`cRT7a|fMR5qRx5b}2=5X&W!p+W}F0;fuJ0`ZgaC3vl>F(t|U4?gyyUdk4l$}#BZl=a!k4VIYQ}aV|JYX0pB~eP+#Un68L`92ostVq(`XKNO%+78 znF_b!NQC=}iqCw!53RK*kvZRnL(fv>j*o-?$^`P?FKwSqRL0hI&6h8gm zv_40MQGN8}t4koIQ6(slst;smGVdTGUt6M3io|4j_-hP;Kad=?J|EG;M>5}VB2Zlr zX)A5m@@cmFOXSNDBNuXwERcq6u0+OWHum-)f(jw+FT6C$*p@&A=G?#F$qlHDiBt*u z-X)0S(4O#KugsF~3<9RWB)cd{2>lkBT%y?Bv({?3_Mivvve^HKf^c11pNN5X_ zJiC#k?Wa%&7pL}yb~RByUTOQ%q3v)1@})ga0*Q6f@-jN?h0fYaV5|AkAk#i$7S zsG0Ue3E(0v2fun5V`J$H^i%xJ8liwS)JiiAG`eZ2GIj|91yKYs#@6>@QUY5pBi~!~F%Y8nSWouwPMoNBENuLv_n& z`oS6J-~1e8TIJu4hZp?i{{Yh3{sh`y^q0j(D~)sVe}RW7{sdC+cs>toFxy{zJ_7Aj z@H-%{_@6)rv~lP7dw5vsH+$ou3rA?J8r8=_9zj+~$T#nm* zf3p^ldBXk!3f>nXSC9=&EY6bTifCIh3(5RcpavmZoQCcYc2>#!)L`#PjkVYo^TF z3X}hFM4T9ns|2}53M-;967DNvnynBbbDR-g5C171bsr!kzfbA;kBU)y7eo`-={N*0 zDgWfz^?f4q5y{Q*L?Y>ySkfbsPbE5e85VwIrYhPNq6N3wiko~E@1Qb^tH$*(vFHXB z+epRLAvmNnN2$20Rj`X2Z6`PiKRJzz`L&8-f%8z5$C!h0(0Jxeg_UzLk(`hT^{tex zT9Y@&kTp97`wd4hWKK51Z{t51Y%sAnCln#MA&yGRG(21YW)MgP#L2?vDJ$A5^&1J} z62j8-h(uZ-$8^~R+IAzn9sW}o=l_M898Xd0p>+LCgy5)3Rv5G5FjVa|!WZH{sVepv zm^!+Ol>8yyIc9cMs_JTjQqVXQ!R$7|YvDgB=oXA8PsL1pW;vB1;|SxQoEu=O>`Z$e zi>orbbCF*{I7gFWAkqe(2lOQWitf;A6%>mVNSQA(bm{@9!EHc~vBK{kQ1~deTg%+T z#n8HtH=!c=%a@Uk2I{A=9AOWbi~L~!llXU74j&+DG`0A_f2F=hG!1cD+eO(JiiPrn z*I#L)5KY7Q!S=s+A5$jb{1EQ{^EuG+@k6A)&2l_M@I$P>MrBhpRX+xC{;zOuY12qX z3i)p|M>tXZknF$F&nKG3hEs1S)gOaj^``#(RHiEm>k-5-Z8v5TGB0yNZ&G5E(XP*d zZ!fk?*ynB%IkWlKKW)Sn-~-sGWe8^|55E2`@Xjos^)K?t&G7r5`IyS?&NP(wG_5ya-sCz@B2_-gQQz=yihHA5k{PB5$Nr6Q;3hI4 zzaspg30&D!)W%Z-lcj31dC5sUn)#&^^aLY(9{!URQUX}gH|R8EzFL_6QDp16kR-iA z!7B<9Oor%2Fk3{yWo=mVgTnNWq{nJ$dJ;(tA1X-yNNAasR`B$_2zx_e`bQpnwX{;s z@aqNXA4z|%r4{_eZPe+Lh3Owj|E{H#a)wV7q<g7>3ukoj9-`bQqM2_^@p zTMZ+UnDc8v`bR2g6TLv)hqR&QP<;S9O^c}&qfy#RIR zLMme_u6eB(YT-h5;Iq@_wUxVNcgWUJ?!Ls&jN_LQm5A?*?Y9%Zxf2WPbrt(1agS{T3<6Zls_oKh*Fy9qbWV&G@07zdT-y zWi{uArvBJiAXyymY=0a*wBUyve|MaKn$?OQ+W0e;BL><0(AIwg8%k8l{Rc=}FMjCc zf1R{F#SfkRok`mOe&{07cHTznM)Es>9WW$U3GO*2(z}qjblgLaQE`9UA#M^!ZodL!#_(9_t8y4=hyA z&X=Ete0XD52roXfBRu0lJ1RTh#$cyRM72h#G|GJ!emv`Ox^gF<^@=tLY`i8Rs5@ODf|uKwBW7W0Br%~4X-gtb5oO?K$v=tx`&4-WI`0|z z7JwuvERi-I6))!;Q#WYeBIYZ6=3q>8}R;I=_u-YOL8IQWQ*hoRGXYC>J3#hVsPh%a?pu$7M9iJ{KDqw zNjUY#RB25Pc?{4bgS!mV2z%gFl1g+#tk=o;lNG!Xq`-+|^{-&3H&q-zCIX46H)0eG zkz5w-Sk9MUr5w#=$td3_qaMH}(BN7=v^qEr;v9dh*+L9NgS)`rXjO5N`%l8ZT_WBLS5342543v<6;mf=PGsk7J^j?>>8Y zS<1M+<>>wy?q2&lcBfY$AKI(hYgc7A-Mx+v&98WE+6CBW@5Gj?)INLvyvk#_u=As(&Hqur4js?5+Q1XYQqhuH+F!qbU#Er}xOwc7WX zT#dd;i01-U57S@L0kmT6o5j*UdgFY7nEdLQbCC;y;$%h;hw9tk#Nmn;;H1@FjMeG0 zIp*;@GI6^KgW9dJMAJyU1mPtAot9@j z>Eer!zZpya$Rp%iH@zx!hQE!Ve=oX!O@8uOOAy^q&UjdB`tWm| z#n?f@=mw0qX$D5YEvIvCT_%hN>}g)|oyER)$(L@BXh{x&+=C!>Ee7JS&7_zyHOqS<G004*7WP7lxAm+w5O+ z82N1A`-w56LHX0&XDgp&jK0KDwBw!ErhNr{HqCllG+*vx4=;Q8>{jF8O%vr_cKYnL z@bKF9c)F9@XVY$M7Hu8pwQ1KppS>EOMLXO1*u$c|-@NSWvrE1}f^>%=Sjlp}lN;?X z{NtSa1!mISXP3dB)FOnwh;(QujgN5H5oxMd}`GJ7`Rhq0v9%NuH4X24V9l8AcPdwoDxn26U2o z43()(`lB~GMLmYg)X2|lVN6wz5i<3;5NMsI9wTMyt|>UXc)ARw-;`*XdJgNqjTw?> zt7B#AoN_oWZ>D;Tlc~2}!~Vvz)MFu;`lkuEm0n?=Jd<#)5Dx+zc8RC>w7>~u&V-1;FB?Go7 zu40@mQ=e}dCX7<*v7Jmk(I2TzRgWEH>IHf%tsXne)YWZ~yt3*s*GX-872}>VwfI8B zsDeWK%GBC8f8D4kw3Wh)pnYsRWp{|3NU-Wa!ez>6+HnBQ(j7SxcTRX&B{JMh0Bz{Xn$qoxdfF9!uG z;uf~S#^nTB6mwffx(w~w34xY|f5iaSmJB^R1Uc~p z{QCy5a~lzt+A{QFC17LWKOuk_cv)`Lk)d-}VYSF&_^%9L$paCsx-xY5v-rkg2mBAX zm}7vwKfyxvWaxo;h|qrkUUCV-j6Z=0)t8|c;(+}O|K9@G3slq_$j~=V0n2|IgD+f; z0oEg9jD|9F86qajz`s%eOP>M*G?JlX1+Yx`w+vv5v6Yw6ScVokiA45*f4>0sBN?ZO z4E^y%V9&#UVgQ?f?^KOU8G3FD;<5z(uWGDNzhT{k(Nu{Jt(8!uFG2XmB?(Wrj}bs~89EOEu@dnUnjc&$!Je+M$ek=1dJ@~5FrEyoWB|X5 zqY{l4GBjzaS{)?o0c#S#f6aobmNGOxpITllbAj~^;Pvp;iqT4j7TxaX9|vqw0RQ+T zjMG|%cEFc19R5mRYXkT{9Z)s1W$0Bb3t@aeun#qE?w^J5b7bfv2wz@=|CIo?m}*-a z8Cuu_>^}TGXf-(9j`3!{k6deuVvC~2$_s;#8cZttDz#saswzC9Y|ZVkM|<@&TGaUs zr|)zyy2%h~f=zldx=ZuNY?P3G&@+g1@$zWZAob7<(gJ*kV)T^Jw0;W>(r4KSq?dX` zgG2|J8NF2~+0x{y*GGotR7OG$K<7tVugRsduM91Sqk`on_+QnShcl<246X5)WBk8> zc@R?-r?T~_ME6&XRXY*#$Um_4Bpl+6AE82>v9qPIT84B4J#|eia&fI{w1rF^R|0lh zrylV`^EuWE8n3IQMdHf?`av_Acy3`c7dZ&xPg96((ca@Y>i#Hh&FtYYyqpH_1ui5% z#b8B*AHXj)K0MBkakG2_*!BnTjr4PoWf$BJLmUNmPUCN~e2H-2E$l{DQJua6c2DDU zSd0koSQln*Y4^svG&HTK`nWi1>KvKy>ZS4A+Ab0UyfmXm1opJXRs0TlA^)gd3==AH8nDG0=P|t^HA4$)bg(N`!M7uCfw0{r ziSW&Mm0~<@cbW$MN8x=k0F}o8+30Ln#qNsoYk1!bKqJdQs*7z;fx>}X0fZd3i+Jzvj{TI^kiC;idFP{CvKKj35_Rr|ePhJ_>4KXwN z*cbLWO~>a@@Rh4XL~ipVmHq4**mjgF_wRtjFFNIGu>8|_(!Ov9Mad8E!~nGUX9UyV z9^EBE$cpf;7J!!EJ(%&7-4SoiWfr`1G!*$UCNzx!RIWtejec)L+ueL-tsiO zFS(EkCw!`n3>s!1n2yBV0e0WTMP#Ffs3ODd&iEB$vqb%hMZmb60rC*}#+8F;NKDp~~FMT<74K_9+da-jheI-#%8t#(W?pSTU*KU_rir0N;FZVv?Cwr6kjiTuA|B{D7*2Dv2NL`dPsz?mFP z0}YFOVk0iXW1D@Yw-Al++!~h>dXjZ^!N}g&ZVyC9s0W~d8fJCrWijny?Be|W@?QGn zA^3gUl|bd-{=M{JG*J2f2>TB3DvIyznZ0}OZ0;ryAcO=6fe`5>K(5p0+&;?PX zE4@fBLQoMA6lsc}0wPUNKv0?jQpJX-SP*}pR7L&Xb7sp8=>NOVb7yAHdFRZ`nYw3Z zXSWxriKRsBjaseuL+}p1%DfSG_$tJ{Yn8+za0f*0_r$U~YK3ruhVeeDdD4wqFHT3) z-C)x%?R>Entw1N*480PBHaU_I%wMc!l7gO924*?Ql|0&re* zxq9@9+XTbDaooCrTcEeV+Hn_qDRy2OpIW)_l;jhzPP%N7^+JUxVVvS>%%p010jn6} zj5QR+r_Hu^fK+#!vg;XtnH)awF=3puhT-<4FnA?BK8+P3?jagEKesw`z}{T2ntE)$ z>CSr_PkM|m)T4O?H-sKw5A-1PSuv4S5YL*7uVW{n<+b9rg~f^SEnm;2>t1+XVf-Bb z#siqnaUFM&mQ%l2H}MAV8xZxjD^A4K!xnAhvQ-|dqmMv6<8oMSdQBUbZxv$yYW0KN z;u84cFSocn^Ku7gyI$Ve>(RuoSaCQCidt3zfTcVz<9II5o0}TxRqGgXO}GqT+IhHo zg)kRr+@C#BE5BKdd+FJD05DJf3ofn=DfF6k`$$mC1^;;uL()ZD;s}VjX|2Q;5Z8gV z#ba|SaouQTam(72(;S}-~paT7270RVY*F1k? z)q{V;2&l!ZCL73~);n12Rt3L>haoZCdUO+td*@ZezGF=^f}#gNgL48G(D0b|4ZQPd z{1y8GP9!B$$8=z_J=`LO6uOKG`8)O>APKS-?Cm)qQsZFR6vjWXf8neO!W{?Zn}5O0 zl6f)!#77aSzR#j%fkHEQK=O3<1yd$aZ!|UKOHkrBPD2|DN%aXPWQv%ENiKsXI$FT< z+@R|_zU(AOSJL`zu-0QYfcoYDikP1&L4}sIa=#c9qrsc%@wqDEvwA^rl(eD_32t1= zz<~D?;;-w()t@W9uI-s$7gNA*A9$CX%+8}u>j<02XmjLsn^2wW6;!V9N}GA&b67Zd$LfOW}}J2lNET{SslA=NVZ6u1djD z%d{>rq0S-#5*fS4Q9mJz7P+bkLk_JVCJ_>>WiOBv3WqGBs{ssYw~WX=;3hZ)r33s; zi$0SOvS?AK=&dX4X}ydR(lws$gJ&`?WUU|sy*y`fFl3#CY}1;xl3X1=$l=rM(xLjM z^)y^Wg^@OaUDIl@n(#ykSr2eHVGVI9oM1&GY_c1&o?}cStkdw6gE2%gtpaN)F0J2G z!vJOH6A(-*<8^ZTY$h?pG}*=T3sBS`028dr3`u2px2*(u8uX?VT#mp?atgXrQ+jkt zq>x32JDV0Ap&hb*+0FVy*mS~IK`||Iu|tr<>-G?Z!Xb;!DmE=T5jtcw-Afb-n@+eT zD5gbj$lAcM8Zd>zcm{)Tg5&Q3 zj$_7F;S)rmu<3-OK|zf&Jr9RJWS7Dri_X0@EjnE|WYI~uAr6~PxIZYSMQ+GC%&{J1 z3WY<~XoM3Sx8Ny4k{hxHF{TuUW6ltUC?Tr}4AQ1$AZ`MeE5VA#&>v!oX&r<~+qBNW zO>lBfcYV+RyA;NAH+G2c*Haz9)+Oj<`g@hJlL|m+o{;>){{B{fyl^ zR|%u((OiEQW%fZI9%&GaVd=aBW$vZeGrW4catcy8ABB8xwu7f>3-a_ zt{`k$y>F8{4NIT|hfZ9~N=)g*+@>6h&OtOSI&Bh<@xTpn*mS~EP2!S^_e(ikFGv&$ zhpg@)a@SR&v>vEPZdzq>J8+ojA*(7=^uCWB9DW`*wAk^1aL9U}DfB!V`!uSMyMf~p z9V1dza+@xZ0=<#@mr zvff}yMT^=Kg-xprY{Qrv;F^|3o(WS}b5F%kSnn-JgaphDkQTDYN`$`3?pAgWvU{Wm zNz+_%Ll#j?>;6QdXTmkDAqB}jRfs5kID7%&kd>57E*%MITEFg~Fdga^;;`w2%NHds zxgo1Ehksy~!XYb=LT)W+!(?fu^*)Ecencl7$(fh!~)=&-~=kRaM ziBg8$?ul#<(jhWG#}Tx#VIq3n-@bcRJCp!o~i!YAmxlQKC6K2VwMMlouoYdlaTq$S?{b zY&zkgwJA(4O3LA~b%;V??7L}4WgpAs-G~RB=)G`Fhcb=1tve9CLVKbU1*-<8^oNU$ zZ*UW=*Eu|y>2o>~{Ux{|YXOI&J5jiNXL9@9PwwXkBUenJW8ts|WjE!A4vNF}6NGV3 z!Qn}qBDooph3{j^s|Y7>7rLBoB-ULw$$W{OUX!^R>I6rHJt4T+%Q%!1A&gj_5=IEi_nn;Z^Vr9e+` z+=GlH7sDuAb(zJSVM3{H1SB$6NL|P!1DuM5fdF?c{fJ3~1gq_XB%Q*z;Q?J$VTjR_ z$gyw}oSQQ`6%6ajeFUUusEUr@bj#G&gD^RSxY@MDCaGc!z!f>{1TwrPFEt_~OJ zPn5Fk(n(#WW$q{8H$h2Y*R)=KnCL{oO$>)08$etNCs@4@#zG!$$oiQviytA%F2)cA zi>X1xrHwHv1|}YiV2={{Id->=A~D1?*$r7lQPluUux2o1G{-OUJ4u=O3z%dmGA*(l zVbuV%X&r~#l&tb(1LbkBk7!D^E3%C_<04uj$5;y&tCr_+!?+Y&lnT#Wut);|O?)xP zZ?pX72tsL#K-kB)F%;z}^L_voYqO7#89ICk%Q4n4ohPN}tRk${zzbO!Pmr4pS6TSF zRLCkf8o_)BVyz9TX|)=JDHI7Bq2&t&Oc@X z@lZlkg=t-%K*}>F(zu~ZOJAl^^ervZ+RpX``nH*(uU(<$!NW|r8H!9`!sRU#od_X| z!m1+3A&Wkars#8Sru96_pwH_m`gEJgJgjrkP!%0&f`v8fo{oZ3bbJ|Bp4^B#K1=zd zR|Z1XyhRiy3eT2w6ce`!1s)xEq=*u-=s+h$hbcjRcLaB`xWfqIJ>myQL@HbiQRv!O z0Dz9EkHd7NkfKwF&?*iSbI^1Y<_^dI0ztfnJ%dVG6)qMZ)5z@)I*NlZ-llqrWEE$( z*Hj7*hKqWEFhyq$g{*N$h@3o~-0AH8#cp^80pk`DJ?$8U+i=N=a#X%pU++=QyjoU> z?u7(i=-fUZk9rW2nV)YpM3KToyNzSi4?PX5b7re#AxE--*XYCK{cMEKj{0PLzezbW!UKsJO2Z*#-^ieY& zhR=dgANOyp*PvB%)|UvaU6b5*y%Gb5g=E$v?StPo#uY z7K)Uf0F_h9!gz9)F8=4@yfU>xN{_GmR0$J16m_9USijMhC{zFmJ4vCrI7yWQ)l*9< zOGQ%OxJliI@uveI#xNI0`LFoF_ln8)QNp^6&m!dxobuUHgc)Ld9L}Wv`SKJgGA^U1J>rPX>xm5} z82Xe-%1xQ9tPvu*MGZ>J$VR*9jY0N4AdKb=yT6hk7!GQ!>^G2&q|6IA>dHJ2NGA5< zec$1WvRbp0!u;w{VgmfB7~ANFB_{vm(&ztGa4IK?0#yJT1xl^Wex^vf_$1D~r;B57 ztn@t*Ep;z4f|fc&*o%^B)JM24!cI0Qp}1_Ex(B}@RtxmQy$k>3()@`L(o#7Aq`s9B zLh2u|pD8NPcem34E#nAC@B}mfwE*>(k1pYv0(4h_K1SRVR60wQem?dw7yAXYMc9ll zFgQmgPTSoI#+7Dwi{0mnU5|AfSKpoSLVOCU@e>^G zV?&X^HVg)L=rKg@xm5k(u1!(^fh8iGy?re9}vsXHfun#wYukIzX~b~`bej*O#M zMl!&C?@bN%^W7R$)<93vPa_IsWyH4v3>$oC5nVB!zRt~U>?y>Vv+M3S!NN`)x_fZr(Am;lZ{I;%sX#1r8k=8lnV@nVFVI*- z<$B}eqa*8$zCb?_;2!VkriD9n{>i1Uankn>5%hqo;w!gtfE+0L1N1CfH;JwgJp_kE z=b;xQXmE>Nkko*hu91zwEr|{v{0Q;PRa&mE<&&W1XoeYUpn_ITK76%VNsbCuP8Oo$ zC_EO=v$O!cLP07>{}RiTB2JtNUfvrc4r;KM$h|`r?WvnNt_Ra~#oQQaX$nfB&y0@+ z^4u<6cGzh6Czr0`G*NciK*VJy+#6=yUHGh~g z&h0?IAZw3+VJ#gP*@0#!`5kC>RSJuNlTm}S7^?K?jvc5DYA!Cq?DV)<*vD{4E6z{! z6GW(yl{HY%^Dt>;{33WpdQsLcqny5#6s+p@t@KOiTRZO&a@))K2ZcvDIZs-JN=rya zr8#qNNw3oCfErOb19ZcDq9A>2o(38{;B*z~naJ|HPIN!ZLlFJ0?m0Wo?Vd>mF|N-C zVifKs=;tT|-bSvU`U9Rk1O|%s5J-CUkM&IkUO_!yv)+7epg2kM&ctg$4R2F`+u4R5B z3;W%8h{*koETPAno^vHGDmx=iSByC4Cks&%0@pvM<)?VbGzFDav(p(pD%_bOL_biM zI9Oi=!(41G?%J3n^G+2a8`L6B_VHAJe{$)YIk8B>6=zR$0_E>~h(9cd_%N zIK}oxnQtITk1}4d{obyNt%n-7*m|&`V&_K@(jah+lZ>Ce)}V5+OL4XP+4BaSjc5fk zop^rBd=c@yJ}kHob4IBP&jwE~Zjn(8Eh)j;?$|O<&M7FwCIBwtZ>_>-0BEG(_06D* zn4WvYD-n0JD33Hd{s|#mg~IYVOw}jl;)dX!iB2SCRVecs-b*Ns1LJaO-TC#C7gR1( z3?_2YF`fmW6zPA!+4iBX8NVpKf%b|bD@NbIEjmc7>d0c03KrSo3^eIgX4Bc`cT3t3 zDd{eyyi6kbW=nN~ZESKTPCVSgE_Sva4|4E7T6htb(fzpfMVi~0j_UQzw=0gW0({Ru+~ z#s{ycdb~hU|3t^J9a(;L=EbHqjP6|2PHs`@8x^&{xV2U%?H9E(sNPV?dCf6YFUqaQ z#-3s{9Vbmi9gP@GouS$<>U2;!`c=26@1dw4G`YK9{}h=XuO7C8qK9U!0t{z4RDj{k z$%8YT=@FXxwd{)5Axjuyrjv}{ukQnuv-3NT%znRiN9xgZx;L%RGl3M}-`$1ocjIq$ zij%YhL)=rKp5CCbupaSGE`1wRE(x(C)_{6+%zRpg`pAS8;5h?vhG={aC!dGqL3#SWF9|+@qIGnnHmeYbdSLmDCufnb>I+28BEAiz3 z_|qNveyf`WYATC>aUl~IG@~W$!nnH?7vdhB{QxTKjMx!tM?DNXIy((s13ijI=&Zg$ z(xI~*3x&82i17~`&h>GLv>K7@DN8JoQpynL-_o_^>#QuOsT_@U_9i+}#xu~_Cl1or zSwA3IXEX}9I-}@%NZpG_=^w#a=*0B3@eV-VkScgcT?NuTLu!R!>dVfMI#2E@D8vz< ze#hT>XY#+z4Eb*An>d;o^4+Y-Gs9Du8AQ66gGpkYF6(HoebB+-ktOIQqPOHGI|uZK z0`In7(lYx`>c9N1!^)dahL&-r zc?Knm6q?^(2-jl+HT88nQK8s7c+&&SnP^?~%g-)J+z%@E*Q!o`OM7q)K7d4meul%f zdk3n50bro8iU-O_;6x{i_BTv6F=Y&q;>?4^JfTHEO=THqlwXi6YLsK2#K~Xa^w^_; zezmm#l`}!+7+uL*sFG8m+>CqBOMt$sl4pT*PbEjpn@LsCA+`h53J>w<*Ft+xz(qH0 zXCZ>IaEJ(vkp*>gZ>QHy<0bEfq`aj!M9WQabw~%rSlbDpTG0 ztHM9eAQOlZ>j?5&e-}_$89GB)=iVOrwLeudj)kz>hznKNJcqw{DQ`na|%j(DZPT`m^n~TclN4qsk0PS5T&6b z$S-IHs1Z{I3QFHS$O848Gh6xvebmLevs}_z6m$uwDUEa|@u!7Dpz;t$?1+00U2bQH z+YVj>J)uPmaat7^;@03E<18S?1vuOZUcr1O8jP`t^A}_Qj`PLXat8V zKO?g8o8UrpqG-+VB71-M4?05q3_Jm9D$79SSH%TY{yh0V3?EP9Y7_qVu3#Rgd)s`r zOrd4V*u zhaaen^SUW=lY``(f+NyK&4)t3FjC>Lz+#A4^1WdJL5KE;E);7f-W9J3zc&6&2rbfT zBVKcajE-=;c%lnI4w`sq2>%iMn-EAOHJd2JEQDIEflT~T*`<+U5vZ*9nU|=+(mnVp zJW9(rg>j{(gZ69b7|=Y1(j78JCVrGfB6xTifK>j63*p48>7^1~#Yu%8j$p~vjh`V+ zl;PJVPzyzin~At(fm(@1*oYk0t$K&7d*l)M;`vf#Vscf&RPsD z&Z_FR1t$+l1JIaCf*RhgGg`{aZzC6*ODl-&n0Cto?&?25KX)BQTHB^$`HgiviKKf; zx^>WvwNI?RjX;A_XmCq`IOoLk3$)fvR5w;&>!KAM0Cnd**i$anU5Y1l#+Z8z)D_NX zG}0?fay6&m&dsBqOEOC9sUoB9A{+=8ZkWrxZ%q1jp%C>DrsxD zvWvZ$M`P3ID|vr{YUHi%G_;Fgd2=~`9~!Jb1Ct>!Gddg%-zhs|pI_X_Y(l3oF3qUmA1a?*M0fkHqUa=n|gf&wxgaJSjpulPM-5 z;BquBE9pzzy7$KN=@xj`uoswq{#|9TmXoiR?(!)G*i=wgIoP&33K~bHyRjAaVm;gr z)b2HOt>pKx54l)(?OcJrD>@F;Y7W+)b?D1$tQ%TP>+;gxxb)LUaNAT}OV02le+e|t zJvlz#rfn!Q0~sXDv!Toi)YRAQMAE6jc-tM!XTw?|HYW2=E{&?~q@R!VjfL(EU`v7e zM*)rXJ5tqqu+PoKj0EZgSjFkrhF!ktaj}(t;YCLCjtjAiu6rOsKgn)~MpYk;D#M(I zof1y$yk6{eh|SGx9F{1kQEp}wCJiNhiqY^85Jm1u^#?aqr$)V0CvpvwCa}f{)j^|n z;`)6lAE;at?&7OLr6G9R7t~)1>(cp;DC@h}I&O<@g#~gCPu7FIjr6frLf227L`3 zOu}*?To=0(9f^*IR$c&9PCt{E185DEfvpDW4yP;lt)bC9*mt1Y-k_!|*ZT5x`?!mB zb(@Bx%*A+6jaT6C7)6h=Far%2Xo8V}*e^SnH?j~nIY>9*V8YEfEZV^pdK zT|JFBs~k!Gl58EQTnEmI2QsjIsgf+BdrnXE9JbkaLp~NdvHhO&y_*l;X5S}P$AnoY z?<67a0Ab{;y07MI#brKWB-0zz%Q{@=a-NBPFD=P|QI=P`P}8 zVc7SGi|=Y{O*sQ9+Spi7xqRM;)A}7DmVi3lScaK^;NW^~QY%*rmV@1N8vb%k=ZH6Ys{RC80gc1J&3FhZ`YPh}U>e$2MKlUakAO>m=TF%t~D+3mooq0yS49sQx&&pTeiqDuppOvAX+x^cm zlNLzWm0YhSZD1!CyVK#~%}TgQ3szu|hv@Gx?$K{NyENdx0jf3HG6lt9J?Jqwvw3!N zON1NC0>m(~Ga5gN!~MfeWpvRc+!q@2QoEVVMG}yDFUwJv+YB1hQ-*M+jD4E{11Ni= zkdKh{6x_6zgV?}Ioa1o3kwkRaj?44$*b@!^NBo-*NF=T9iOt9jVQq36roWho1C=u# z&+9}?H2Hz80_qS4i-CfFa%sDq*shI-?+J=fQXq;L)Y|asNk43<+nj|%zd-8bNWjAl zN5T|Wf?kyl5E-k{KI!ax`uXj1KX5#-&>Iw(3VVsD598?638aF{-ndNFmuPWsz9nD` zg+a@?(er!VRW~_zWUn9(;C!VK@%2>LA z&@&djSCLMijr~w+$r)TEY9z~m<{2x;*I~UGi-bkaSo#_>*73)&oe9jrjzoX7Jm{vc zXW~qev=P`JL5+8?{tfr_d$4^_!EuezFKX$WHuQ2@3Dk(j&{eM_ItG%o-Mt;U#r=zg z$oLqQ_N!BAep4Eb*gW<_VaX&4n&Gho*Ol}&wwGN-+&xa*@?OeY0Ows~WG+SxKPl9y zL<;K)$KA*2bpLh(c{qg#BOEcsJTVtQFI-b391+dS7y1>Eu3+@$nV=G+7 zc(n)A-A-Tf8{t@zWXR#$B%C;sLtC8&IGc&%p5p zE^o*eT`0=VX+g0H{_FTRA+-2hl4T~}l3Y7+WgLaWap@K>A}-n{T3WS9N1iesgGCEMyA64KxCm5~G4%3K zAba<2*82~eq93vu$euK@b;8u3NX2?IkbP`I z>zegL&c)dYV$73PPHE9dQ%mdVN?RN$ZNdK~?JGG1*>3!9D`aN4%%cnUnvR~vidn9s zkH)Q1Ap3yMjJ`NFVa)$*otGz_l08o4A0z@ZWIT=Gf$R+vM6Z##a)Jo3+y!jLVnFm- z0m}~kcCaf1DfcZILnrVAvVWYwy6J6@Zq83&-F*0Bgl_Z&bR*I>jg{gjWWx9z4mTEh z^+a@{+V1hACE}Z7P*|ortN$=B8Prsch5;e1K6dPv2gRrkhh@-w77ojx7gIzdLhZd^iI?CPbz~%aGF}BWm7|f2zTz5>dbqVxB&m!Qe76jL&ZP2^b)A49F1fwnTS15Eg&O5oIY82%Y#gq z2vpAbmWOCW@zw^T@D(XToOGo6IqUeZ(NkG8(pezsoYO!?XcTa}5v1P}G3=qQeb*{S zUwdtQnNj`v0G>uimj$wykMH>7xF}rLqT|QV7sr1s3r_;!g8JznEvq~FVgsiu&YV!U z5MCh*G_ZBwIX1p-3Jz}yG_oii>M`BXd>UK2^-P*jm(G6=G~vU*&{fBGA1DG%ovQ=m z>oy#VxJ|>lz3v=e_Xf^g4m2&SuaAtc`!{8+nS)*Z{e zezfGHrKpUf#g}Fb2k|M7Q4kD8OG9y!{pLe6QUOpnwCY z+kZR+Opdz7)v{p1n2+yh2_I=hE}&G_wR2oH35n^I`zilq#Rnb>6XUN}4oVd)Esj9o!oz7Agr^Jce}o6-CX^PcD50 zR9+?M$>Ft$y1^E!=rq`gy1^E!=``4h)TUD07B*40p%k}GO{Df%oZBPpy}deI)5&20 z%RjBhDy&D`Gzj!2I&e6UKeP|oX#AT-A9v8$_!*fwtRXx8^gN-fP+lOPvJ%f(F|zyC z-I9e#t$=fh)d3wKUZ@S;G5SV}^#{RHpz4(o23lGfRhSMeKK&{_b+Fh0z(2XP(>>S{ zzzzqsJC>yM^Rbie!G3rJ=lz2^we8*5_4i=uH2K4zE_Cvc!qTaZ&fbHiQ|WJlI^-U# z+4kY!tREZ93n}$u)k{NR&|30rP?#cm0qjZp<>ZQ{ zFe{$1#Ynssd!A-==htB>-5L!a(O0weQj_^eCQ&Lb>jgN3Edki5$u^Z4~OT3*gc=seK?_Y0+?elSB(MOt*~sXoe8j;ECf{S@`Gb{Llbj%t z4#=WC03KMRBrar$U;07r>v4R;TB6B2;H=9_FzcYCv|@`F{uzKR>d|Q-@i^#X@Hd`t zi!F**z?t^J9jZBQYH;f!UhvqQd{K`5o{GzD3M%kMu(uLq3aO&#p3OlK+^Zf%HzDp( za89`bko8F+5$sj<1a}@^00c90AT$Pryvl zgia*o7BumbnsOQMU4#FUixI^S;ic{16?MLm6q`WZ<#Key*bVqzd=N){K7JJ`fOjDW zU&c&?s$#q04C!F9RK*$w#7zJch<*_@C?We*NP3`nB6u=Lh&&H}07|EX)6ijJFPxDZ zOp)sRAk-D|jn6WO#;zELT|%m{r=@rn?1#YWLu^(kyG^bDzPAb1Az{&QKBC6c1l&|QRMRw=%-ws z9!z!QeNxRH3BV;VZ+HOCu?8HMs&xYZaLl|YhQD7VU3eatHT1kxol%9dI$*8-1ShT6~&bKfq&KF$e^$ZJtU-8UHm zzXjr!hvG`0#uzEEoS{}he=-;B8j1L84J@Zh)rDzhs9_869f68q*7pG2V1JGj)6!6V z6vW&QL_ZHjnvO)ZHPrC@K;g|~F~>tuVh-v@s`BRy)nhVJdY)oRc_L-oZb5(ZrY;D!g{7Oz1^4K+H+)Sy^Ph(h>l4REK`p!0@$ zYFAK$ssfPVfmlr%lpIhSFa&UNICWX{^FX935g76w`fI&_YWAMc-G3qg(_E0lZyHeZ zo^m?;%iyghK98Vj{Ra0H!8QT)cS2Cde;>U4UVP2(98f<_GW3A)HF)29@e{^;2*veJ z>wvjh1_orJw`K*@&oebfM&mvwFaBJ1kuZY5{i=5H!2<&7=yNzq85mg;PJIG%&I0Xv zU~(B6P_NDpaDuWMcv-}!NmOY5n1JfO2gWUsg2Gsf5dTx{5z{~RZ z)-dEd_=KFw3OLMaD1$Y;T&nmVapegXLfT}PX?~dF8Jzz&>LEz{x=pbOKsddpi6TwV& z0V41xruv|5swJ~SJb%iX;MFHS3s3l|0r*+fchS5RxN{O01x+>hy2%*XAHbn5Sdab* zzoWSYdsN=&$0%#6wfHy`0p(&iD=CJjB9Yc>ga~Gs>er70TIx>lKOzieK}%)K{ia%l zTPK!t9{fu=So!p7fetIQu_syKXUgo-Hd1FtOcbz3cg^;vK% zGLqoLZvtLRKR)xPn<`(cppM@Uyg`2aA@i^Zc-B;xayui_H1HO<@txs|LCZ|_MGdq9 zD&Ok>yyJoN@Wr4trYgV60UZV4oCngw7lYn5mHNXOnXUowj|b8tlemnP%Ry6(dB7Rt z5@WER27g@vdPrr^IY>I=WV{{#9dm&6jLFkrfZ-QS6;-s1-So4#*6umlrx&+zG%D59Cd34l-9zbtvN`d=aRt9+FFJ6}yaDY#vnKV<|2b z?C5#%*QM2ZOQ+RN*Ptp^%qeX-0IGW+tr7+e2&x|%I!Uz$;6V?h=LQB%464OHIG|Ag z%<(`xL2~xB-WWbVsFFT%5?&4HJ03hjZ;X67sH)#^1Rn+JTn?lNFla+ih5I<5YXF$A z^!j~E4?h}tB&ZtW9+}%*5ui$YNZnFCeF$nXLTcjVfS!XI0npV0@!%X$7YuI~QZwgE z4Ic*Rl$`Jg!Gl676N@WOeJN1uJtWK2N@tlZpw8cmjBJb?=Y^2!bH`EY zAHe61&7p+|%`$v_NKMOfGE*ARn)kv*fRXz`YNh1}?g-R?oXETNaXO@K<#+Tk1<-{a zoI=j6*ce*e4=F+lH3DsEt(;G(`M8zjB5w!qpcjo3AV+9q38nUZY-ojl3)HV3k`i!0 zHI<4w>ntR!Jh+{}U$+U)1tYBqV^H0#l$t~zpsD~wx{DHlvoO>J`ziHZ6Q|p@0k4nC z_qFc~X$&8$)L~?S%P=0$rT+o{_QtJFwL-W+iYA|3meh!GXYiM^rJFAJT-eg^)Z z|A^xxv0tebTix+5uMk!6kLV~d;LosE($qrW3kkeHJsv)1^&5ziR0f5>vV=#>H~bQ zoYQ#=_=EovhesW9oOEVc`EOlubnq?kx4bwWQu3&icqJ1H!xNT@$H&Pii9B(b>+%2Z zdQUt>&Hjv~Ze7$GYYcdge~IGPW8z!KXLwP3VBp;!u`2q-QZJTu z7ICitwS|zp$l<$ruN?~O34E6$c*9cH-$d^`0@xW(C=~`zc(KL_iYRpk25e5|DgZZK zd3YQ`wz=piwG5l)nV$!nNebZatabX5#V0vR75WTDK?szUz^m@_OX0~?uws-tUsC9G zb9?amyL{hx!rd8zH;Sw>F+bb$x=Wou_MlOp|l`-P5x=R67*F$=# zJH=x7x+pbkij##dfIfUL9M91y3p=CKfkzz$Oa?03Lq=rw8m8;up(yptSO>WdsCPYN zL}nRzIZCBth~~_m0_tZEd3RwvZ6aHEY9$W+%nLDgnA8@o#0jPQ& zG9t4lV3-UR39BuzE3wS3Kn?Ja5t(IVgRr_?RBGfDpq}@TUh0l!8QwOm`onn1f;R%X z=U%u7FtSfr^~rFw@HtSIJY+;>KdFoxrJ-T<>oBKS!34aUj{iN)fRWFJ)i|t6IrWM_ zHTIBqXO`hB!s?0l9l<>S9egib1Q@wFtoFa=6l*3>i#=pSX2*@h{QE&zec=uWn}FKu zAtN-)$ctgMd5a_S3!tug$h$Mk@M~d}8z1lFve}6+ec*pjGhk%MRwI@>RaOoCq2#b7M6fO_0Rax&zIKqoRambO(7teVKwC}#ontcRpxIiTsbnmpJ6 zy$Qev9>^2tOt36-xvh?#ky_@LfZq8Jc;xzmBW|+QY-~v6%*5j{Vln)ERXCYBWUH19 zLK;*XfOa0p&kQNrfq!o+(K(>uj{rLLKj6Bt7cXWiQSKA9K3R!ZfZT$=NoNMpsITWE z9{<@{Umt2L-s2|>CpV*F@fF4sK>tWF=q!nUi?Ntu#8MhTTSjgAGbBQIP8E;;e?<}I zsTx91{nmdl5E7qf;+B6?O&sdj8j^xk!A(BN#t~$ylwl{95~30X>Xvo_HF5XFltec$ z#tn2wpkfik5Jsbo)h(f>80to$un5%!WeIX5JxAmxBe!a9lxvK=7&5S?G~hD~^~4j= z8on3s1Na-&k3jD=N8ww=3bw&d9*q%FehtR=#B4~+ddz&)P}6ZID*psML=OjvCtDLB zKRy0XZHz)cT|gd!#MN;&8>-OGXxKkNsqe+1kQ0#}lBrfkAu55iIGx>w`gxfxWFMfO z%o(SnpJLcT=^7ac@yn2jAmMcE&kgnW5ajX|P}X~~yHPH68GkfXuj}|~ulxYqPdr2x zA+(6!40U36Sjg|dyygMu11mby8g_Sk85KFr&R*0gA&rHST4*Rd?4;rl&AHw)zwgW20fKsOd_Uye-QS){e)OGcM8n&0p zxekymE-buW`%KmNep~YwfVarw=Owdo;>F-NSi|Kykhc(vJ1Dg`q4~cB%hpFXItV}7!E>d*yt(HEzhpGC++6Ud?g0jIZ>#wg^1IelgGK;w6wFgDK(LKZZ8g=GFn7yKpx6&E0ikmV<_U-0bmulutIfK5ayA*gP2aFC;bnw}HM$!TQSp!(knPG4UR)P|f$9z%5EBZDV?b$|x}`YI>T zACiiY`6zKwFz$M^&gxA<7I%wEqlUH#sr5meN$TXXFaYIpfVfclu2by|s!EkGK{W)T zwTGfXSU*Wnr-SP6kD%5*U=DNv!fKw3F7b0v6-TUsLVtzh(OJ;@kV!OtKJje&9~H~9j^p`FD_wOfk}bq2G)CxqJzuaGQ8 zy`t3FD4@mxF*hfQS4a6n9gyRWM)8T6*tux^^g4#`9As25$k;N z+L#?)$6B*TMGLjxG{!bW6Z;+bzws|c2UpWY!56Tkc4Bg{$gxngNSvl>M>(TOQJ8b8 z;(u2%+*7=?L||{}7@zL1EJ4%T3HT}}jfw#$-NiJ#6*=7?0d-Im{Vc#mrHlH4dzd1 zk8<>sDKjwt8$l|dzD4UNRjmTHzUQKQJeivsKRKe#0a|9wlX=TQ7#>z+w?p9<$Xuh8 zgYOUgqxc*7xvvzf0{%i7ZKGO^DWK0IUQv=q_fNw5z6Ai!%IGiKqnoS*^Ub>ei?K&T zEt1hKuqHP4fq671AaIo=ERm`%c5(7uikGB zKL-7*%hRn%$Np5R`b99J%m0D{{6x@Wl)IMJ^m)}WdsO4dnq*ZJ^+VufOOA(CMjB+ap`yW?ELpp z&!z%;J-hNor|}mk|L;9J1aw5te&hw*xuUBY8NfHi-`Gb5u-u;g(ouBW2SIpXV1R%67sPayq8?Q-?LkO1>u`P-{JANXD@j>Ah>5&xq)^X zyoG+>WX4-~q)isdjkO&^BsFffNKz$pfLa3wsMa`;jzC3#~{$CCLF;C=8nz9B_>rpZNVP=Fi*#w23?KupgxdA$V2u0^1~;_~Eg1n^9g zR6-dfu4kJ3cpd~E0_B_+heA%oe>Y9WoJFho8>oDhoIFU5a|?+%5naV-}cnE;6JrJeEpu0?yW!goHYd}R+c1!IebDAcv-as=<2CU+} zP~S9pMW7V2DIo1#m~PE%P$bjj&G}IxOt~2Zz$h0aSzVrK@~hv%8ngg_7d;Sb%ri~S zm~Cs&I{@tVK%_O_H2L#-WcxIj7d?PiufA#W{<6sS9UxQ{R}U;E;F=~+^|ZMK%3=VN zBoMb@&onuiTRiP&CDY{3-$yY>wgvKjSESIUOPD4r*Rch6o5#T$=}GfUlZ`)j;?D=~ zIWN9vnr!`Pl#c%vc<*@e^Sh?WOV31_CfC8xNg(+poNo!uUCc90Uh&Z|O}73uib2v& z$J-A0>ymn=$-z@>Ev+ngm59&MJkw<9SDpAR!E5iwcTJON^_;Q~0*}7l?Z|gclgZCJ z{5jxd`+V0lc_I|n`CA9xMxXDRCf|M7*8IcZ9ryXJX|iU?Xl+7oyQax<=h2dyg4~{1q#7PaJk#WN^lYI&c%yRgC5nzZpGi4u{~)nHM@U&r@MlZ~gLN0kD-3h}svoO#bQIS)%n*&NJH9w3&7 zI@dIL=1l+|0dt58@J*8|mV!4O^lX=>RikZ}FipOB1Ate-+~fhYbk{U_?nmVB0GOY+ z0M9h}b>Xn?mp_1Y(`D-!jLYDeCO@1Ut&w@E3sDSzT~O|{oSbKxoY=`h)&{C&P9%>Z zu4!`HRtMM@pwT&j{*dIFCauRD^g2NRscTA0pddWrpY56pp-9x z_|ZerAncna*OJ!$2GhhNPTe9r)8yJiXtM=DFXQsG%Jc;0nkMVFM8#wP(Jm)Sr{kI? z18b2^e;~%@MDesk>UAulFijSI5OZcWU~6(hdG?5a!ZbOtH>B~v13C)H7hYnp5r z2L2adLp5_$ttZ;SyQayLc)BAC16$I=>o)J2Ci{@RzAl)JT!3$yJdQhM*$wo*E>CLB zxu(gYeNoUcU{3P@T4}Cnvgcd?UIgVIi$EA%&i`PHRhToTi1x;3DP(Q{^x|DF;K>H zlXp#%yIw=Nu7WACAlChx+e=QlSz!MgG&@@C#VdG5 z55yUWzqbD&P;lql=yf_V4q8R_XuI5=eX!*{4aiF_o-QKstSFA;t?}6|r`PzO;tt?x zxmL!A;3J8FuSeK=o5d&CIU*1Bz#9zuHP}}qy`GDqPozY@3Rd}=(Y5gidWB4{ZHe-= z%Xh-&lRUK2EnlZRy%<*d*uqw@bkhKd1P5`Uu`n1VAxu$Ea_qj*}y-Nv_o zrBpeBB?yEs{y&A6h%-re2fU%*9l#0rPbJ}5|1KPxsxrXNGXVQL%C{-c34Mr{D=8s~ z+i$NFk0QQXihc+eJ%P=7NNB<=Y?y(BAMn3S2@UlUA{du~0w~2=uyYTtFGK}H79?7b z?${5>l=`s(kvqhz2^Xa<%M_wlB-H2(OkETB8aob_=KcjSW(=Vpe!JWRzb42leyT zVxsj4pClS@juI(9>_LmI_;C0~q7fLcOG*<5%BEG0DO_oyJ#_-AtkNWV2m90QJ(K8q zmVKW6x%Qvz&$IL3Rfocrp0-P}Ki{s)ezrY;{b%iI>@TvHvj2j;jr}F|N%mi~|73re zU3dz~S#H;7f2G}#{nd6a_Se`W*?-ku#Qtmc7WUWLr`ca;UuJ*39fzHpg)3c&zry*x z9zQWRUEhdLWBRT5R_x!7U%~z#@x9sqGkyyDcj9-!|3qeWt}H627;&#ia<67!2`ba@ z;#rmSm`e?Dnn7iRttxHpFL6;~SZ7mIX&+Mp8WE$3Q>9~U)*75Q(Ey7;{Ee?5Q!=~w zdYsWw<^Je1=K~@OtbQ(A6rWxgr}A}a`N`W z3*%KLt7DYUk>E{o`Hu06c5+vls_2=Zd=9+jE?-izIN0D}+`3g+5Lo0AM$P zSViy15tX6a7u0t@;7|?9=xL89f_YKs!d05b{tg-fH475qnB4IkL^iRe;@AaJh9s)U zz3>L+fRIc&3n{hhUcnqx0L+w!9)Zxn1L0=4SS9Hy&?8r~cGz zmm4C`yWmss2%XX(ghD5m5C7Q&7oQJ@oa8FGo&zUO#gCLouA2MIDQ9Y}$pL(9cGhV~ zOR0@lvI)B<0z3Cx2TMl$P!_O#z9Vd_wUkJeT$dxTS8>D#PuU$g0PIToo=r;H(5!gI49BhA%ggj`utt)ArU5~(? zTYPFh$D_!XIEUTmU|n`g7Vus0(%@Z#?q3Eb@nBFe>mkI zGDreDIs$v(S4VCc4j>Oj=TROW?uWYtU{^ae&=F!9;%(x*y9n{fzdeJlAhZh zwkZI)nM)z}xUBRIrg;c<3zin+0H<*bS79RMDBg~j#fC-?Yl;>9>w}_2v5`?TO2vqB zxHk8f$I=VSXz4kkMFV6Rm^#yJ(ay!#nEIvXh%IvDYl=W+Yv2p>B%}&nTa}&zONDbJ zOQEjHnguDnE4>vXVnyNf40{9mQsMM@b_@3B+dZe#^#c0|_OtD0*@TsOWB*0_UG|sSXW3t7n=>i?OLkHAm)q6Z zUtxD=f2BQ+{Z;m2_Se|&v%l8Huo9sdCzirQDf3y86`|sF$ z+23M+$^KUR7W>=me6vZ;cKaLlci1=Cf7dQBhv+-)>g?~byRiSB{S^D}+b^-d$KK8U z2lf~2@3Zf)zu!)pOYuLn>#_fl-GluD_DJ>*+KbpfWN&5vuzi;OBld0fKeqGEqxhfL z6&=3~`$z4^9DgqR$Lw{Ee~A6#_D_y)Jx%dHwM#mFOZb)2Z5jVK2cl*C91g_D`1Kqp zBy&+&Dy0{Zxk%ZS(u>Jlq~%KKsWKO-w^Dj3nM+46EpzGUWn?ajUZ_JCv^+CKMjvW{ zT^+QC)hsJj!4I$lzd8E!$H2%Fa76B`+c-`wRTiTy-$7z7l>LU{C?u&4hxL2k)hPyn zb&Q4bQGD^Xic~GD8$2y_$;pqSt@UPYsj@oht@Y!G{~5(+haU>Y(aZH_I~>k(2;U0E zV*7a)B;x4h9<#etr$j(djGZovpC{@}#68m&MH+yEL>@83*8qJ(APPh#LT^@?IGg1{ z2+s+?3qcw8fLJ+CO7&^w5QEBkAj+2{m58_pNlTNYx*ul+5Tz-BzK2MWdjO_9^FCRO z*0MpO$Mqx1bgA;S3^8yxfmz#eB_D)tW=oZZGYjaR@)=i-7PeLPd%V9epO&iYK74|e zgnf>;w9JK4O}nL2-R;H@-cEf{=*?azxVc0|Z*S#R_e!a*Z!^U;f?p!NT;<$ybuX30 z4pVN4sjK@{sYVXRran+hv_uR7>lnJa*GX0BA-xJ|nv<`q`z_Su^ZJdALBzjF@!5%} z?p;!Kxu~mqx(jlu`y;6e{bmS?vCd`b>gH_g>c(Tup`YRw9iU?bqCjLKT-{$vwe1Om zLD&Bc#MS-1RBt!bk_tj&S`t?`sl=)7%Tg7h>=7YuYv0uVpu3zqZ|; z{W|tT?ANpN;AFDGRqNZg`MQA}#ePFOKl_dBV(d4z%d_9qKFEGE`xN_`_BZS|w=c8b z(jLfuD|;mSt?kL|x3TB3-_B0r^xE4&__?3CV2TO>S$G>Y(id7|p%TVPH04{CC(B6X zrMTC?xM^p$!GpTkSSUp1ZHx^!@w3z$C%`(72p91;T0xf3ths8#Lg4-cIfQ7;(nrs< zqSbzUc3$H#As#{mDT@M7HYcd#j$1(yzgWo;5K_nG>1DhK(z`K*t5vo8AbR0y)$Fy| zV53QXUOkoFJQmFy^8&Z?H%k7u#dAp(EgGAN9@1ZA7tl$mf}5X zS7-k*yDR%c?cwYXvtM9;guR{pk@h+EN7;ASf6~r}vzrQ6A8nUmf1F)|{Rwtk_Mfu* zus_uv&Hgm|S@vhxudzSV-oySJ`v>;t+1J>gZ-;SDUubw&TGP&u(cRjichCWJ$@66l zy^IuRKW2*L9oQL!;kRR3-2dP&>yfdJ4_wYoZ{8%&mNBHiATe{(bL-@nWDIph9UYsX z-o}P_ioP#LbV-*YcY`dPS+ZEhY)67syKW1Js=6ljq79nj&-4`Etn%WemOYl{*hKocxBg zs06$hfdZoPf~7$bTce`gx;<_#>CKKB)e7>vcqQ^ahHZnj^7e;teac>qstG*ql-PR{ z-#e(CZxT3G@o5;zUamf zMd+bljb>^NrU;5C|A7-k#*9r=?jrO&w?<1<{<=;^76B{OV?QJ5{Gl3cRr}Q;&W5Z9 zUSp3R%4)(di-{mrf9+YYrPcmsT}Y%{#3LgasvJEIQ1d>VKTWnBbL4bAM~IYnE8}({ z^g>`K_~jpjBZ|@yv7oG8AH^$zS3%r_zp;%9PP40C^K&Rja#LEqgXMl`clZh}*2p5L z_0R{waH`&lA*o5|IfUmRk&=v;_9;)X9q!H(?wjx;;gi{)i8`$saeroJHpo1 z89TsJ`$Ubn6Xtu2bpY^A*gT(N(cs;A(3NC|?m@`%XH%@fg~EJO@r@g6L?39?yVam8 z$qwCgh%z(khAGy^y=_6aDFu)|r?m#BjBqTzd7&%G4qb{eb#HPGXa7ImzB{mrqI-L0 z@7?T8ZbA}TfQt}92SXszd+*YuiBc6srGqqSQdE#$q>2bgks=@<(xf8@2%;1LMS2$j z0YT(@&Y3&2_aeUU`^V4kk4^5*^PHKp({|38vWNVf*0Wlw-R7VaTQqbh`46X6a2*C& zG<=Y7Dec7i$`h<$20p`Xh4kQcXC*e*fC$fo8GzO&w$zNra8R_P1#47X72<@v8d6!{c5&5>$3xcBoO??dJHI0*< zWGtCo0%)a%#cFx8K9Zc3>8Hv*K~L}b+F&B7HpZsX*F36pQ#7Vd*lOW>(Ycw%FRJ|N z5f8!hH3`;La#CA+yyz;}U7a`&2UCIDb&g+D|J@_3a;kvzkjzYQ<%Db>h^S{A^{1#jw6M@+J-!dk@G-t+?#2 zo+Rx@OuqVSq&SEz_=Pl)Jk*NFzG`7pjY#U$AI?(W;i$2o<@qEFZjNSTpG8haezcd^ z9?=P44_p=_%^5jiSFP(2Lv^TRNCXxgK#TG%lu_4##Co6e3f~f$nW`H1LcY(Wov)`9 z9|GNm>k!Gegdb7TzN`L;;AY+bL&(+o>La9JHGiFml3Mds`{i3Vro+C9I()DuE#18+c_ z-sIlOygE0;_elF9UMZyZYk+!cSS<$4yk;sC+%N5^LUBd|pZXZ*z-&DFVQJ@zjS#;r z#|jwWJHt33-Foa^9GvGn7R;yuuS3HV(tZK693*lT*G(-d;<6o=!gosAA1%fLZai@e zE`GoubQXy&@`@w`Cu>MjJmQc%f~WFbklE7V$*huDDJw3?XwI0DuVaYfyR3Ae1Jxjr zR4|HidRO#FL{zZwc3bt11=Fon=f#SGUVO1i^_YPl189uCYToGB=P{bOQRsAWMf+vDTJY2q{XkcP-(i)mfBTeXi7NW_UIG96L08kB=b%T@Bnhe|v zPdGx_0Fr+)q&4~S0GiJ_k9dn9AAY!+NN$LfOsFR5K@4QO7}O+Z3ur>MH$;<)a{%rJ z?OR+{8j928$+Y?rB0WMbQ*v1t(waOd;1!7ou@R-rLy*Z6i#4HSLN%F1n#=%E`YPMe z2jTHep=`pT9;74w5kYujH_u14Ze(YoC&~QE9n`WWwzIjK6m^hNH(b4OSx-}nr9Qfk zX4%qqMhKk0BF6xjL|_R5eGIm;owo`h=u?Dm*O;VomXyVko=#RKeunxO@%f&&vr~Js zJP%=B`(C!4Iur5HbP~LZKX>T|B^^97A-WjqPDk6B)f(e15{rKU9T+Z`BuQAcSP#>? z*^UnbWTsaHwSl46q=+e8WbostRbLCc06E4jn<&0MaDn)G+fF;o&RcyEGQtSfBSA_> z_-^3TPv2X%GbA1rfN|O2HLqVLdXkez|6mqHOUPObmle z!NhUZa(gpjQ&|UA-3>O?{UE1Y#q38&Q{4_niR=lWAH~#yVlqwjkCjriLC9o4@)d@3 zQ{DN!S9CJCFnW%=b#qGNl z@f6jISTa?8mgAp|%!{QnID8R~e`6cm?AeblEz0rVZ;PAlbQA0NAJNTy%x?NJIR5Id zqQ3rf4fetVCaB2%Lsjqa1~ zxpW%dj}ea`m>WqJ#AQ_`S@vuAYRj08#JxEadc7!}0jr~!(-6F7hMPJ2`+(a>=g$#Q z;#o*{1=NdRR#U+^QG6I+%IL9xrfXQ)xuydsSgKVdH*TcUS^dI`nxq2rccAk5y2ag%#LQx z81N<;uF9QB(wRRuQsjj6Qb3;*%#Weq8Pdss!xgAv?gey2!~av}kyO<}-{Q~M!pO#c z`;Z^LPwc3^?a(ikd>6HAp>1ziuQIz50=coPUVu+tB1eW)9pe8`-Mw4eMY8WBq@NC? zc0shh5mxlqFCi;4u0}(fX~n#P7G%GR6f@Idy1o^b{eBmGV-O8|B?33%vUnsipPIaC z($lRNYUMV8N@|Z~PuPqF_267Y;4LGygrs`oJYC-z%kB`NBK9NwjJQG~X38DQo(NC- zO2`xfT#6`baU(hH3`f3(eiN*icc8IH4M9GzVyLV0s6oIKE2cl)J)uLOy?8W*Zr*MG zQ_s+0CcXiKQMKtJLPpOv6 zZLG{nV$eoqP5t9)#TSulQRvsJgkqV*Xy{Eu#u<5i% z6!!VfMGx$NnpuI2#D>+%qns}l{JtFi`4W#-!oRDIJslrl!u#hTq&(nS(?)F9Ln3gQ zUw2}t+%w;Qh?pDs>^D8OxB~P7BySpNZsKvP=*8N~XCK3>#6gZH;Nqv0B%#dM*af4J z{WqML#eJm69CHgps_Z`JS8QIU=V=OwH*oQ4ce=@PvlI@W%#YTRC3z`|Pen(8^7vuI zc@Mut{qInuXI^$he@MKGi&?6gdspVdk%cG>VGl)VB<-Al#sR<4R?v*4CEQ*yq@@OW zR0=lI8gHQbj2#-*NEfXKcnz`Kq6DKhqA*M&?Oz5ZhmbUolNlM(jr7%Gn9W2;eu9z+ zG7V9AYbcq}hDeGA_Wpop^_}%b|Be|h?IR)NF(1ioZzhsgK9aj$=MsFRU69gbTr+T4 z`6xx@BN4W=C4jXAK0~1Lkyy6#bql=8_apqG#?&y49_(*Ek_X;UABoR)w%ov% zrb#faBlO3`NlQKyL^(a;kOaOPKvl;o214yHk|g0!A4z)KIordl=r4oX)6mP4LRb!DB+y<$_G-! zb{4gS;}|hoa4Cw$t~~otirUV(&s8n5Is@zJ%CirogzXHfZ7Uzi7+{lJdB#iI&S!Hh zT!$QW9Y*N zon5cUb*UWPR#ylOC&8Y;xqV5xm4k?GydqS~jaP)*h4zZ1A$QwqNNlD^NHaN{Q_@}$ z?PhWORG7CMGW_8c*$)+xi!K6Sydsw> zMvI@J<~e%E)88T!j8|lIb-%ceU>i~l$!mnWUXjX(Da0!>2NU1ME3)uvjK~1NGPo*H z1h+`mctzeJuJ(##m=ndESHbIKxW+3IcQ;b}1?hJHjUt%UG+vR*zeftn=uZGG*Kmko zPsQ^DuLz!tqypQ!-~~@!5kE>Hm^s=jlKEJq_>-dSjw|ILWsdfWe3K(aBp^6RL$Vm* z!OVeIL}iZgiqwjY5;eeWWcX!>Z@eNjuWGy^u}34B*azf+Bv6UD+AH!4akW=uB{mQe zXCAIk4cB-@a%PDZH6XnW&~AeHF^pH_h0M`{D&}cG*EIY;WgbaYU5zQns&SRPB2ecn zR%iH@+fieYjmj(Xxo!WL-OtXbW(efQu6hA_V@mdls1A|5B2Vt3O?CgfR|I7@_dNBN z@QVD@6IrRfA_veq><^Km@rrysB|^N9=KM7R58<-L<3`TJAJ;2Ft=uNicts9Bv{~ve z1V$nOB{henv{&RI7B5i5IRHOxC>*i&iZsQy1Qvo)6>xo`EW?dT+jvE8Kx5Y{LS3Ef z6`4SHPv{WHil+?#;a-vd)-!~8MW~Ai85`PEbb-&yLOt?|e@0EXOdm4_E0`1=p8eD6kZ3=C}2^rJnTZ9g*6@Zs*R@qAEz+5{TUNBR#U z#24TM`eFQwOC@PM9}m8=#YVuT0aYY;8^vclA1!xaAryk!Xi2%7aO3&7kMvy6$F>00 z{(w0qoNYWGsRbj%Twu$>apU>;7I8n>^AUlA`F{ZV3nZ@^>2S}-f|jVj$nkhw{FIU; z9`k&xoB|7d-4|G81^?dOoO}Bzr#E!;7OlAMD-W zc47}ejt6RVr3Qqx6i*FAvH$ODDNaXWhbR)=h-(`z>k!stxoas3)yDfv{s`a{fj<#w z)>0h1g<}ftAUv*r5K{w}|7|Tr`gK^$OM)fwrwaX`q#s*L(Y#R5PtX#C?qMWJ!l8Zw ztfi>(lUn^`jRH2)&@WNMA$|g^rJzlFmQ571mSW@?%u(+^$PY&FR}!Rj+_e<%Ve5i* z1wjwOS(Jvmmg2X|u&v?;z*fh_*(QG{f>}#ZW{Iu*1jRupOC-*Cg<~zn>RrLL6itD> zs3Q?(Eydu9*hEWygkHeq;gP6FxamdK(KTJS}%+c9BQD4T&qi~k0wG`t}5XnW} zMU?-rmg3J&mgv73`=3E^#g`oZvOdMA&<268+L}eY=|2#Di*y=3@ zBSF&QZz~w4G)8@vyTIN@5kBA&)hie_96*Miq3}UL>`9gVu@wwg9;y8)R#pfVAwdZ( z)d~i>mC>ZMvDK-j8C#v}rnc1|l6}<{5*;ZL(oCi$QMEz=D;Qo`Yw?N?>m3kA5s6ZA zZS^SZx1(hr)_h<~bR_?G$YbmMj2pnLfQb$?!40yJoaKzf?yuZsUih;5g@HV29!Hr7W*qrt!p*ANqS=Z()Pj^q~5NRAwo5RCx z&i_`!!)#7ktP?s$rlJc>>`8eFn{(>05Sx=UbZyQKKUty@9>W@qe4mKRs)0M#=5(my znwj`#%Xpcz4#XXrET3fwZF7D}eT7Y^u{jS>kctF0XTuGaI12a?u2^WsDN6bkj7i&^ zr%24$oL}{mA{C@^MkFT|ttp$MstD=HdH>Jr|+Af&3PL-8Jn{~qL*#X=MeZjF6%ie6Jv9}+{`07Be*X?&jWhQ z=3I?$!jAzq&ET%h`S0YdO<5W^F`kw>z~-Fu4jx9&#Lw-j9M*{lEQrf$O&YhSCo(oC z)nc2#|3B^N57M^HOwtxJ@lRv)kwQl_gxH(~u)s`y2ZfH3#_LI0V{;A~jhShL+yW%G zFr;nH|UOQm;W2! zb;D)dp(M1;SqL9oT@7>ukgleG zS*oI6oIucNBV-1D!lsd1U|AA*7-4gs8G)RnM+&hypQ#LkG%Kcll5kn+NF`%)cCG-y zk_fM&F`3OJ&}{oW6vOiXUp9nXL@+id<)=-cu{k$lRY3u8#v*XCmI}g{ZGUU4EeZo( z251$*#VI~xb1usv#cl+DuO($!!i~*246iWP=B$AOyY3Pb&&`jf*v96Z*+Gf~U`gS) zu{kRv?kC%v*DiQPO`uI6*~UnR+nk5Hdc~W-h8vtD9K;T@g~Bpk4%-2Bc=mDVfj)bP?JIx_m@q9L$mjMnjXJ z^-IX#XUR$4%#vsOAx2C_O6zfL!DaQQ6wNI84@BobhIsyiz~Enk8=xtc8vwX#HZA zy#IZC3Is7)J%ROe<@GFi!f`*>B5M+`>8`w~hz!~UJ%@~iZU#eUGd6v98>dRO;9p7?_<5}{-D2U`;A0Ug(EO~tG7*PeD zulj(RP&u{6jk0$K-i#KnAgCh+6USA=*t-}jQ|Sh}4W$LRXq-`F&?LV9HSFznyFFU& za?sXLO!KI0%-hZWGD>`kkb{8aa)xx{OrGEuYY=jkpbZ3>#;In>DVfm5IUK~mg3H)V zOqTbNv3OX@0g*z0aQ6;$>_rW&5;U!W%i2m&n_2P`&!C~TM0kIVJ*lBd(%GFQ|N4UZ zik$TUgcg(F*TA`bNxGGXh;A%zs^!M==60bi@Ayw}w&rn2oTo@gGkJ_t(zE0pDyjUk z1RgH}7pLS}-Vdfmai&>`!155zk7s7dsXm!ma;j5Lw!BY3(pcVqjKht#y#JybZFzgf z<3?NFg>D2b?uFjT!>;cv*e$(jutk8{kSYa zJEhGm`KmK9A`!s_H6;CnyR+og5mU%4`OtbHmiLL}k)jL)+v0kaB8VqhV|l+yTy1$T zxfsQq(cn!qTw{4(&JrcELV5|Hl?1bz#`2B?Od0(Rpu-vtvAn5xo?v;S&5=~qv!BO^ zs$VRQ5>*3>W3YW^2ECOq+dBY-VrF~W;@dT3c~?UqS6Wq@spnU-y{ci8<^5lZ?eCU1 z3TQJ9kYvky?*!zLw!G`1CfM&IMPqqqIF2O^sK{#&xCNJWj;i(zs@lf#rrK%~Xe{qj zv;8b}6@hn+)E$!2miM>UqnHwl^t0d!iCA0SD@I|(0Ax}Dmm`XWzD%WUEbq?H*q!aA zChJ<>Yw7L@oiSP7bR?STmH($29%gwzKHE!07m)L)FNNiuc2bDtO&YqE_r4og(1^#d zoQc@~ipxqv9kf{k|2Fc{wY)E8iegex5G!c1OwSV9@_vRSY(kCY{j3`aEbn#;{h|@z zzPLu1Na$BECT)4QATeWkpWPlMmVoqy5gGMRTi)R{?*Ax1MPS+{s+6$2=OY8z&YptA z`9~Z5BY+>t2T>c84fwBU5^8zp`;~OU8u-qWQNi_W?;GW#*z(>7MGxV!vQU{A%e&e) zG2$YEZxNIT=rPOtg=?7HL44_ODVzsh|6W}cHf3p`$9x-V;0rmvw@Y*H(Gg`8ZD;Xm%jE3BAB* z&?+D6i4t_8LOCE+T-l&i{?{|ng3gC{0Z3aT%T{^r#eUHpL4Ayn8I%f}MwEeJXyc$-Lw+2Yf1huQps556MCa~_9Oh5#$@D9Lx5HO$9~kdUjg1XgjgaN ztDN%FCeT>r7sg|y8#uYAVi15!C23}Yr+g790)VRms!ebXiqBZ(6E8%G)(C!GOUk^2 z8>_qz1~INxKD26#7!BssaJI3^XMGSUmI7NFjvK2y8F4?^D$iLUMmz)b3MB6s>2Rw& zJC0BHBgX@{_$ehxJZ6;_#>gY{yxTa(12e(-s`&*yPYXzN!NpcN-6*TP%BN-~n9506 z<=3#{K4cC2?&~pPFeKi`#fgTjf#>#Rzl+icd^eLC9_-{QGf^dicJlwQn!NljYzsux zXK-DjBu3$g57$oKdJiLXDW+rmi_4lqps|w!T>xf9cyW!X0nh)on!NfNzY=T(>DMR* zO8T+YQJGmQfo(PPITUfYolM7{S~gLPojl?sEZ{2$ zd0+$=k|3qy+R2~dGiFx&46J&alPVNtEh>paylP4TT7q$_Dl9|BfxboUgu2Lz6_as;wfNgc$D8~F`E#)TSIa*;jVRB3NeLPrzxvLtkWy~qs1`@KEh=qS!*K68tXJ2akX{20%HN< z6vS1;aE*1kvu2c-1?k#=8W7BC8tb$!V9My%0QJ;xh;_>K`|ms3p%zJ1EigPBa8qngv`(AuB$F8P!modf zJkr)_Khy*}Kh!YR>DH!E;vgz&V+6LwWgVfaeVVGSu}-PB+5{Twv_Z3ImKuq`$wulT zNonhJMhibvmI7XDC>*i2PEYlX7S|zj0Pu05+%{<&>vTFacCAxtvaWU7l+}i*nR(&q<08ckzzNVQFD_0|(yw4l z+B&^QV#YeX-Ow*;gVe-`ti=Y%Cv_D6NBJoN2X{~g!aA)wH)xa=L*i_m{)GqNA7A1} zau@vh7c~jBPGj0oLxFV~Jr5OJTc;nrp{&z4plCN-IOzbTXspv#XQRYB2p&&RT0oCk zr-N4d#e85Z4DMQ|;jioetGu--O9Kao(8ItwT}Kb2=Y@Yis9dxq5m*J6m5DUYMo(m{ zQ>w)_f&YKnQ#?`%G{{FI0$8VQFy2U^6YfK-(=1g1UIy(3Y225THP&gJ0WqQzLi~`E z!x+-m>3O&%dmtnaK_dxb>oiNc7*PU2m2q)oPqa=+g;4ACDen6{g05wCzQ@6N?u#1V_w5nYM>i|Y$J3xqe1KRS1U@;8Ggrs{Nl<6 zt<$ojV+5T@_y>?jMwYG9?WO%94vJ;Or4nT8l-?9L1QOi9@1F;)(`VrMO`%5$u}+Ws zk;@Gr+mz%_kxIroz48VsQ%8jN)|kBF5@4Ms6@Za58sJnz_>Bn0I;H%y2{hK}n{}hb zU2wJ`aJQCn=ZsGbj1dn3p9XZ1V9##EXROns)9~$g1p5{Qm6ef%8|ySPDzR&wPPm3| zmxEb6oNcVr&YNRI9biqvabumvBJL+!r!Cq>i3~tTKys3i4!2G}`z=Z=0`{fBN#Zf< z)bkXLZ-VQThyR45Bf+@`i5Qd>Tc>pMw{^-?PLHos<{jFNPDG1r5Y3N^OEbhe<@ROg zM)n2zj(|PvOO(+oz*D)GBx7hc%U5z*6C5g(OJ?|WFXjB+PB>2{k91m&ixRy-9zqfS z4oE8eT2rtKNN3MhznB8-LybRq!i=Ud0&n2O!>Ok%3Q3*L;c`t@~5FVIp- zlls1+e(@Vb|D@Qj(T045>(smCj27{TECCneDs^7Es8h!}!FK0qIth# z(RkVV>xs!A?+zE)et#q@qZQhGZFa;kv7d$D&@2YPb3+2WU-n^h5m^2 zLpPx6LL}i2wLr70774F5a#Agb&>wuc?}dFZd+;!SZdaNaPoSx0Dt48GNP^Qz_!5do zO5SX`hE5SZ+gNyKz|$KR}-6WT=$A83#|FMCe70NZ%B|-%G~J+4FI<_d{Sl zM8}dc4dHLn3GfN!v-J7RE7Bt%5pcn9N+MG#+1;*5rc?o3&rmoOKHE5>oqRq-!`WMV3j8+5upmq`NYy zxqC@02HQl`MA98r8h)>mEi2)}O+{0PD#a)A>hH+(GBu)-uGFSDYDLk}6iLtTLDrS2 z6P+11&FP8C)XBUEUilc@TTdf8J~A6`>0^jSn*gKk7M?=zSk&(_i79|X3K zj%&`=1@k2PaI|$pguF;`q*5FuNv~4r@I=|Vdz?;RfFOGS?W-B0R`eabUIPzP5o5kw zGVeGbUrHQKJ2nyuW_u+f%BG+nz;oe8LoWtk-r^1Vfp9$P5FOg^DgS@XzZw4nI~E~JlRvei?;_1u`qEbNVmkxH%%_`j62oLcY*tDC89Id@ zN}})wc|-+rPaLm_l!wV&>G5S54SoYj2KUrvuorgt)YIVOl85n)ls7aOE*ak#r%hKF znS&xeB42u~vnW_LZPDE}^W$IoREi3tbCAyci=X$1g5}Z{!N2!F?*G$5TNEsx_89*0 z{Q>MbD_9}zH~2^Q@y}7jD|3=k{VT;owsN|%__v*~b`^OVi_A2pT!H})6e|IPfh z_s0e{$Ji-0h`*gR;uWq%6KLJC;Y#%e>4BD;y=OvtNQQp|7!j;n5NHKsk*-a|F7Y% zi2q472jPpEaR;JLtU&Gl1%HGmPv^YRBJQxCt45w8IR7s0h@Uod`-;9i95*R4ei)8U zlEuKTh|8Lfh~#wq5sFY)#xL!HM%ENyTSJ&lgv`_);`-rBLCILjfRKK`ha1j>l~6!& zhD&E5PB|vdEZ~a_XBlzgsJDq*D4nuprPu^)x4}t*>UI%cs(>G<>LZdiog1AxCJOyY z+@?Z<5KF~#$icX+_7^n%@gN`)m-QaWS3FD5Hv3Uc^a|M!oL@t#ye z*d`)rLo2w&Bil!929hTLLoM?4^c0_n_h6tE`D%{sc$z!|@D+i`H{t>y`SPUZ@r%fg zd=r-^ZfLZK?8G;j3ViYukgj%#XR)FL)DE~L{SfgF>m#xbdA~(uiq+fhkphDa;22`j z53Glnit+nEd+<)oupwX}AuK;%GBn&?l?j_ljexM}fs!7j!8b-D7e>9X3eS)T*J0$R znFtVh=Hpuek&F3TB8fSP7P-`JGB*aVOH>(L)(=#83Rz{RxfCO^AT+l|78u&cH&FMt($o+QakD^6m4WZ_JI~Z0YYTh3R(>3oYveyS7U?>rd6VRI&0EveFYY1WIN% zK}D)vSyqSCyuXN$^z^$hi_uX;e1VRF*ltI`G3bthZrqOI^dtq|L5xU8rdXlNXr z=_vB%LXv|3jx+=>SZ+r#YaJ{@gvs4*GDB0hqbPPWMqB`P z)8G^(l30P~@%2B5 zw9#VI0du~(ViXh*^ec{ zV)RGEaU#`Z+5v;2#Tkg)QevsXO@!iCDsfM#Dg$~-RT-%G14j!5D??u7qv?jYaH@H~ zj1ZaPG0Cua8=Q>vZI>-8S3npP6dymxBUmYD3vr12UVVxPD~fPL1iEC2I8^`Q(Y|2;B}k>{612fgz%3v zCWk>=k%2ys6u&@b8TmAx(k4{NJdn<+pCI!!LXH|4`V|zUuPDWTBD0W3McM@TI5Ed^ zPMn5eAispe3l}RQS#Tufk4lyt=kYUSLRB;OQrmx<*Z17@_&LBy-q*6i8QERXUnNetv(5iRKseEO0M+t%}pyT#5z~1usRvzcA zvnolM1y~~Ctee7L^*C=piV~5ffmL+nH|9cW-8|0a9oR@ocne@{Tzp%9Xxk5YgYzF4 z?+0wKi@!=wGt}c89u$m!I{8W!qr9lwC4@_*-&+qGwua?Bm_c+~Wq9ijSJO^R)?A$2`MOf!?KC6%Zs|3Ir zVFXFNhVU&vjSBIj$GKh`jiMzOFKHH5&cmpVKjU$F*9xjI0N7B%xp+Mf&|$=1^*Enn zt1xx#@`kg{f7cn%S_E$+$ki|do#7roOQ!yi0)mIm&5n=rI{BA+nJKS; ze&;cfOK_FMeiI^PJb&g)d@|O7dOc6T;*1yonN z397CzVY%0dfORcL0Gwn9A8=(F*bh0d)9XZ?MSK4g;Brk6+30ZWq#^dID>wj;n%izb z$22Utg>fn#BF0DA4$hfX%v)f2HfvRw$;l}u&fcuoKgfIvtmJSecan;UgDox8a!$Pl zSTBY%-A>n2e+F^_=U3#(8SM9Zf%FjB%;SSYsymVuOZ4jdG2RRh?>5O}1aN_YU2U zW%4k>`J)(~eFDNiq$Ied(0Eg1tBVShwAfyoUsX(N4e%|7Lr)vzthImmKvhZWN8p#k zIFgBR38;nf=^f{7X!Hn#SZJgY;~@|aj1?)nmynA6`IzRZL@QuqW*0h%vD109qV<0QK1&$XNXW zR4PgH0o3I=BSd2ezl}@2PH9cVFJV4_O7YkP@}jlBeE>Dnhe~`$n7E|dfA|3Eq^`EO zW!RLoO3{1()fW5buBCzVXtm&LQ zBg3uq81lD3XnT#w*)BZF`aTAS(p#PSHNY6Oawg`+WK!An=Ynxy)Rl3$ZO&`_pNhvE>KeVuTJ&lN>CmV(;G6tL%L3ANB6 zuE|-{7c7Y&Q^k^56>x^8Q=sjsT`RbQ`i z>;!%YI(7y^l07`62>+mG;2%_n_{R_WM{ZGd47CvuhyNk6 z92G|p?${}cZ+Q|{`XA`7W2eqT^!>6Sc+GHGhpECD$Ig%V4881x@ID%ozYxJVcBqj_ zn^5D}sdE4_A0uRik)dBf!7#^;a%{k-vlKoJ`2$#&!(}c|)~FP13A+CDFMAUet zpYiE5f~Q4h1tYI!h5K|;GGPT7X@_QAjJqTS5iSx_&bjDQ(#xxRy z$%aHaxjvmPYmn4pfa?u`YXX(3>(kja4c+cRFisd2M`L_CKLrqt@##!iY%x=M@s^0f zrK+s)>6~%d@ag=9nQ$V>RQxGP>_?Qi@#z$6B~@&VfHfza8-VfYocz{S^4)>;G4jTz zlbZ^`_;i{rkW7-Z!JKbmGd`UHE*n0bX@_hk$^Bq{Z{jvSo!xhXv0Vpt+r(ykI=g=M zDETz|(NW-1&*s^f3$IW3bdI+5D%}eKE9&Cfr*jNu4(ClhV2xc|`*gmK_p10i1MBJH z+NZO#a8Um-z$Ur4_UQ~97QuahTn22Fi))`wkKP`I?+5n1!HrKR%`eE?%LxCSFe(>G z)yMVeM6N)y_J4~3EH0NIRsGUForUMnz>0uTLbF_-&i0N$6&eC-MmSdwY; zH(quOmPUenYl>wW9?R4d}Pv_lE!KXb1?7SIUYc(hMv@^-JNL3kptJcM&`8lTSVN6}nZr?Vcb3uH@x z9Sk7~gGb@hKAjQS(GL# z_;fxi>QQn22A2FzmmJ5*ouu*Uv>q6tm;tZ~hcn$y*Z6c^eLWa)ZBUzp(OsX8#1bRw zlw}tX28EIMv0R@{85k&XG8nTBi{3M?PiIInqFDoQgC@8>omnr!8S@>&Piu_pcd%%* zPbU*ONA7{)Ii#~e^#RA+S$J^#~Jo_sM z??y>*cR|BR;v|lu|{?7ww4o0dHYB0KxBRNLD9YJ7PA&wyui+Dd&K& zG@O)n-91}moazjngGjal+oy3gO6#<#Ch7E6q>Rr{D2>S2KkF?Jyz{ZvdcJMvMc&8Aj2}r|1=2MLPA~!4ffqdbMN27*)1y&zCmM>=px(3`(BY)!TuFKXj(~Z{Q&%w z;qc;O#d+3lyeP=|19&7A6lFaxKvt`e`Mb{vrDeVv0C{(8LK&G{7dPBBP?KlZ0kt4u zPlW#Qxp&(ldmVqTDyY3xF5u7gq88Q&kHcg~!aOVxIgMN-qA1n56l%!V(s`pUwe0?g zbO@=iot~mRgWpQ02{p^92%oDl)iwB-a8x>pnb0`D1i0G}_RvFc2NK7ulc*)*Z1EEa zw+!h3kq*-z?&@N>zOIl(sHQ5hi_&Q^5k~osSb~O&6_c(QccV&;+gP{q3G}Q8T7z&Z ztD&C8V>x+Gp}Tkmj9!LCzm&2W$cRt)N@nBttBN_!a=OmP15O9)vv8Tx<|!4mpygbB z9ZKu~?SP?DUIeomt1#x$*k4`%deboIiG+%xisg(MgXZKrE<`3=>XFZ)$by;PiHfX_ z<*dpBoeF_bO0z;N;>7pu8h>EWM*1}Z-coZUE5pWa!mF0^E8c2M>J7pWLt=dtsh{O! zKZ{p5#WWLy1%^aADO)#Tw&jd%4-Gd0+-C@!t&~MU))LG4V-geo9i=$z$OTreJ zg=(?%kXtihh2^|}@ADEO)NtPNmj+5 z+QjC1%=UA_CYh4aWpB5f%mXYY$?jnGAvVX&)_B5R%Q-sARkZip3-;e-gsMr5@K;?g-R*&f_G(29Zx8JRe~c zlT=lU2`#XW<0A~z%LA-s2)C)S_)7hR^j`Nk&z69StpT>z1mT&E#TyBuJ2Fo9$3*kh!WvF=fdmN{FkS>2l z4~|PcBWu7-#IqSMl?1HTcwSr3{>e7_YPS z46>yc7;hUEHFlAf7N8`qwkzyM#(x0pV}q0WLHuj`mIp<#2H4IpTvG8WD=DFj*GbI* z)(J39YnJd0!t6*wU9WQv>mB4hg!|Anhdj3G6`6&l8O^ZuL1qJ^P&i8|ORU7}b|l_0 zvI+>z!%6(gpu7yG+TQC-zm4ba4BF6eD))3D)IM15um%cF1MTy0s);q2rL5`zuai;` zTI>e*OgP^}9poQeZi&Pk(vCTb`2PUci+6*{09Ciwoj_Y(>vgVWhpt%wCTfE4WylHa zh}YTUK)5)r}8*%_r?STb%KY%xng)+sm&je zlMLa+fp*%DrFaBV6kaSU7r3J397_#qu6^J#Mpl3d8JMGB4%=G^`E92g_H+HllEvJIyOY7Ox+DpP)jSEOe0qPD>5`5Fx|WotIH8e^|LKyJvi2+xGe`Uq?L zjJ=ituP2#|;F21WpAxR^wTzf1S&jfH8-dU=oTTlwK6em*cVGiFuEr3@WbtSqWU$Qv zqK&qF_{~P!OJ@bLSp4i489%VnF2us}4H_C$6XrE(Du4XO1D1UWxstkL45}EOu@wYU zCMNVh*5JiMBr7h4qgX1f&wUtUoDgV^^NYh`f6i;mtKBtyx?wQr+LaTbu4R*!#;*JW&l6%-c4{j{8pL=QoD&pHdWzoIl?AtZ zL>7en4(I{Fi3A(FayeWzGX6Z;BQ7Os?8;#!BgE4PE}r!zV0&g3}dCac-2%xbm z4_*wZo@`fA`xW*TsHE-6IaT0>X?uz4?7Pu>A&~RyG-xyvoF(tuVl!gfNy(+`g2sIr z`M{a8Sc)GJdQKxshj>~cnlL6|G^%dmx)CVo>CVx0iWZ58V{uufDI#76k}x`fnpz?q zgp@GL@vOla24FmctCY+9_AkUUA|E}LO~HxTu~9W)juV-R<8l#KJA`#0I%}xVMb5Y) z9*$%%koPsJjzvm5oedFecJe<|>C6SZh$yUCp0$I>hR({lAJ2Y-k-4b2Ls~iMlJsnQ z^cx8WqYL9bmb1RZ`}L$#Ie(sjpVbjD6OhG7VcGg6V5dG z0ci8XsjPTW$bjuVK+IrR+a=mGV~s;RaatHT{4r!w2|r^v0|7ExEP=pwWDy zn-{KEsqhXEWI3QU4TCbm^(y5WjhAUFfSnDYG>R;k>DsI0If;0NfiYII!o5nd@IJjj zdAkt!=bFO>BaBz6&zH6$?E~ScA+bKjt274dVmYRpAUrfA(#iEI75fbSqIB2M@8MF< zZL-MqD*3*{qm=@qs$p?7#;Zil!}Th?I!`fWN6@>INL$J&<5i-!rR!B{hnyvnoQ^-U ziOu!cc$GT4Y+EziA%{F zuTsgWQpx87R)}!c#(0%z^CKxKYXYlhKT) zseNlq6j1yNfh}`!?Nz#fb$Yy2D)w&S7~6@pssI&H7blL zj92N662a)^gRmxy#Jaj(rQ_XD412*iVp!DJjaRAv_sF)Z!0sBH)Hhxwu^RnQ^i7z4 zxI!8}6|d`6>VicsG8K%Hn&oH8j~vH z*zE+b(&53-W+}k6hQN7dyh_iaO3VEKzt;rUtCTSVn%!lD-!Pc=D%H7c3ol%A>2W0;!E5az)c#rF=hoL{C7&49rn5$9R>pU$w+E z5EdB{7gD%aDPv}we*wb&a8kHeX~dtlI0M2xLo%)QF|ShT1h0s}%PC2Kf?Cr1hrl&A2A&Th1ZB0`)Wvw@9B3V$a;AOf9LW-4y_>Gt8Ae|}nBEs8|@K)}M zs$%jx<0xlgRn+9(2p*y#xsPz|Nh|xi6o(KXDFXckx)qNT1U9 z<=QP2k4@l{?UqK(vA`abj$z`GZvVkhp#xE(-SWiVTi;4WO&Z+LbKa)oS#ADlIzFdj< zA7JMVP7;r8k2&=*mN@r&?YtT zQiOldGw=_pL;T}5Qsy635t2d?!N01{J-LbRh?4Cx94e@nu{rnTv!-gb^lXCo?Q70G z`Tn%pRAaWs@Y9*?F|R(b#R^DWCrSDd@}~l2KMx|zxhK>NY~q^jF)w7qT1Et7*PobmYnSGsx6E0Dm+DQ>sB0jy(A~6Q1J+7!M4KqcPiK zisgpJ>>8mXPd3L|%#=BW6!~$fDr>gK^vrA6*dDV3b_9`RL;Pt*?9No~>?ollPqtvd zM(N6KzlJWhu8mXaS2Y>JUL+heLyA(-tk#QR%;F?vjFciBE~T5<9`kT$P(B&hGlVO7S~^7AV?#}{y z&c*fi80iG_rW3FpF0Qx745=85e>AX(F0Qx7)GHRmmje6T#r5`>%5V~LdG7;u$i?;c zm@BVIgWR>vcbBdx5vzhg>Zj>?;1j1u1tD+Oy>Zq z+=l??YJ%AwllqaZx{?im_G(yi@543HY>(-321XclI_JT<6VBx1%=Vaji(%~%GtQPG z5tk}Cj*~k{vpuHbI}wUm8m#)^Ot;fD+hbN>yCp~b8mK+P=)xR%5{ac7Od12itS}Nk zmb*R10~=bd0^=*gqW6ruJtmfBaee@JToc^wF&EZhch_$Sml65_U5(9=CrieIl>kOk z7|T8Kao;lDSUg(lxe{s*mGbh0*|E3_Lw_|Rp)1QA;KUoFTFjc#anpx;Rqi` zNpN>T!%4F}=Ir~yM_UAZmEq7cnC&tBu+NqsY9H{EVI0Xsvpr_#U$(eO1iT+rVmz*L z9c%G8^5iI7(+MEt4JWxyFd7-M6O4^sJ3I6(v$_hl$21&;Uz4$VFX`F^v7*||l{gWG7TH%#D@F3sbQl$xMfM%yXfXN*cC_Z;O^kzOZ zq=yLiMFuf>j0k2r^u$Rhmo<9L?bvTvPFw>#;ir`Vd0pqw~(J!U! zKTL=IwI1EwBe2rrU|^*L%j`oogysbn+3$NAnNjG_N81zK$ zbm*n$!RQ2VfFZnrHM7Bl^mOPS=v?JQFlK31$haDd>{lPLxC+THfN#|t$;zmiPAsy| z^IU`?odDs2A+bJ+ghlopKJ+S*#GOFp;+?*e;ha5Ej+h1#u|4y{GyX8SS4YNkWu$|*Tn z5~1aB1&c#ZhrUS>nCZ~#**#2>uYlQ+*jyZDI&{EJ)UP23AFX4O)cS;(4lU?K)tU=% znIXKz%}Ot_zr7lS?Ev>^f;%1R^2&~e>oX59XjwwRTE{JG*V>4r5Xb> zIXyicdar6Q$`T;e4JW!S!%T-xm=mlnuYlSsoX$N@08Vbh5aF$XwI2~GSHip6rLD(2h z;#UThkvko_trVX75NH>}sT5x@i#TaahrWVCisfIRWs1{Tz~yaX4dr8zee`%lQ3%|c z;d~QykgumhTTX^5t-yWF@KxQ`)1mFVBf>!dhiig69r`8CI+HUHK3`+}f^-+zH#-T! z27tQ^f%D8vhZe*N7kLuk8BK7fL${VghW>%@M+Vc=p|$SXB3--`IdQ2*z}1?|T~CLO zJf*5(8E_gH9%r8UW2Qq>i{k`Xkh&NmS2R5ximf(cD4>Z3<|vqBrb9Dzix3MzSZhdJ zNbabO7TI^6?iKq$I2lgjL5Nvo@5L(Kn;FJy~zHn7TEOyR*@$#-H{;m zkUSEkR~$Zygz;3FZEZ2VKtSsKXVA(pKj_1-ETu2pMeh7y{&cwM57H1^)*)`2!TG@` z9L*r7Ab5_3)F4664-RkP5kFIXmK#9W6;9IggC*g6mnVQ-(0FiuaO)M)=`D9>bPSZ^ z`N99k*_+4vRQ&PdGw1z2_uO(XuI*aFwG%g7dn9h6>=Ge`vSi=0?};o~vSeSAEM@tW zWXVpJWKW_*p^{KU==XfR=FIE7-_rN{ef<8I_cG7t>~rSKyk4)FSwxdZX0f9?8zuxCle{KU|*UCru)KRFtA{6gzP#l z5R#6io$+UM$#KUUYGbNl2{&w29!S2^I_Xcj}=9j==w< z1QiSR@zbCcfcGs6nVgFS`)AMzr-fc89~`HuYawnX8JV-)89n%En8AZoUF-B3L5=cXl+Af?+ zFJg8m*G`y|y;M6b7FFSlIZyE)M?(^FhizzPQaZel;bhzOz#TJ(Rhi+ZydY;-;B@`WP|fjntP`%^hVvrunx2&ka7V^GVIhP-p=bLSM`823Q&?@ zr!MnKV*>`I+ZjktK@&(tmD;WhNdb~bmYw>M_XsrO#F!2@N0>=8e@|WGwZG*s`Z16V z0ZOy~)Q`RVS&U}z2#}M4vPFLCtEJzgHobEc%=O;#Dq&{a1uGV2M5c35x+;NY@~N#$ zQ%^JWP2RpAv6BF_VsPb%PSvKF-WP{mr*8GGE-^{g1=^Gt+*{A@w;06#Q zh$D#(x=uaemB%43l<#){&mf9vJ4R1=bLW}}Rs&gQBTz{s(M|o%`(YqXyg=B4K#m1r z89nFa%?c?Ad@sXYCzRWrjTur~<>Tjq4n9i#+4~GuFT_YhkIM;X@{o{wDBAIra{OE{ z^EdCqS3}IG3RVqba-0tq)41L6h*UiCBF;_u=?F|d?v2C58PcJn2xp~3gWRxMj(U9; zetI=kaFldt9ek{GX#Ex($%6lzE!7M_6kD`(Xw2WVX=brb^Gbfa7xxuF`-*hv_bJGO z{s&>)9LPPz7f6R1yoB^~z`vly^gl!p=}>y;Gjt_@wS_R~6NF)wNQb75b5tu3UKi2` zBE3Z)(bAy-1tX+G-+!dly9l!K0l}iBLmOuyrtP2|iKcQkL^|}^J78S`Tt_uT)&-VfInSb(#H@K#})!&oaF`uG{VQ&)qr(XyhYLq{{1E~JkE|K4&mXGWw$n;;^gex`4O z;O4Z2N3ghz!$c?zUMM^>N*RRLIE2vS9Xbm$~rY`QHN-G#-`h;*ns z`eq;Ck>?;W&I5U=<1H@FE?$wHJ0f6uuF#7bUz% zhq7SnG>7jEY=DFp=}^}9T!T*qHY>obbm(qNQ%LKjoq-K5h0~4k z(VQaSVI{Mb4$YznL^^aFH^mW2zk!c2#OCT0>CnUmcqrz>e>q_klcuLHkPf}~1_)aL z?ia!Weypr?=(7Y6egJsU5(4Sa{H3OUX(vgm3~(j|ZXZrYq(grm3!7#w23DnLCZ}hm zLoea@cGLbKb%-VgPliZ`Dq?!a^fy4A5>4kvM5IIMuy=)-AA+?$iWx|UKC9>#=m-es zqDY!b6-bA=&@Pu-V1)D7V$;Je(xD7T(J0w~Z7eI04lS;X91MW}Sc`EMwHXzM%*6{BM=;Dh2-X5HR!6f;W{HI(7=ECY?k*5c zMU(hVW6I6(;RuFSvytzspv7Q#i)d~h=_06*4kZ*tZ+ir^ve8tD)vr>H8q%T63y_Q2 z;I@tCOVmE!N{8OSIzSHuca-o=-?q}B17|VT&jGl|5`5tgj$p_z5CiXe`0ucoUvbu0 zzJGZX^c#Rb3W4iPq(h&UMt1)OsPp+X5lDx=O@pG-9RWE7v(lkWO<~Rk->Mcd??i5Q zD;-)})(oOe!RaDAeyrp}q(gaYxoS8_3g(D(Xgv(pc7bqQ zNZd%#(xF>59rX(ce@By|r9-!0#3TfxS^+rIJ>;qNt*)$e=&2`T)Z<{)djK<#4$%n7 z(jj`qDVOGF6&uySxp@Snyp2O;NybtT)3V|XAH}01*5f(8K;zE@X+E5Di=RzjIuzav z-pBCXVj(jdu`-s+-SJkZVOD?VMe2M9Hd z1L;stWY=*imm(cHNx2QAL$5u7^%Y|L1e}c&O$&-%q(cWYg;g8)90PQU;En`~bZF^T zwA)qq-;|&t9U4;ARdIz-bU2RHcSqbzik1$2HXr+6Kx*@EVjvy* z5?31O0bslt#R{ZD@05*Evw$tJ_dgT4S5S)jif^ZiUrakS{sUVXlhTK0D|bh zpv=5a8D2?+veF?MZCt{vbm%ku{tfPy@YgcmmkzDRA1fU?*CB>!Ig21T97iwGq0fam z-23iv!>9pP9b)dJIIVQ(A&3+yxi&yLN<0P~(kq2qHE zGggANmY7sr+-+r~LnDPb**iNq%#0IYot8MQbclqdl+vGYe-p~_Sm{vp#vu-y@lnWs z;7op!eCg2LTp`YFNg(9{)RzuDg*hUXr5=z*0qRSKmaKL-=FUKR2B`rkaXys*cfJf4Aur=TItZpS55dMKu!jzFCE(cf{_kg1#(kRD;?TLZR$&h&Os1P zj2uPL^WaS9qMV6zhtWw8t^)zn6~q!L(8xQoFX^~cZ^W(OIA8`u1XAty$s|!p(d;^ z9oi3>I)zPxev|-b!dmGNKNr4qXfDoAB1Rdwio`Vi(3cMJbKy&eW|xPY7mOBgZHUSF z;gR59VjA~tJR%kERDg7-$zY{Yt{$M5aMv_BlJR;?PDW3ciNWfk__G%At*1CIqoU>Y zTJ|s0`j_xNX(9a=;r8{qer;IYqn6RvLAV!9vai?5D>3m%hjck^`+B8YmvYpiJ(RR% zjBan0En{>qoNO8UClsR|L*N(TbQm{V>CX5SY#F0?Tmm1wWvnR9-J;<0qJnGs`yX4z z4!{!ffUqg7Nl~_p_1p%bE4(if^f2AEC0oXpt-yHz@D8Ck29hmfQ1S;G!zk0TOKcjB z?Jd*&1G7sk$2d>bLulS5Mqx~usY+Ctye-Twv3qkpH9C^SyTtm!$6R$4gwgXUAipE{ znybA3;Mg$QCDuFzwup9@SdHR%DE(bxbmOh;5~Dw|ON{==F0s#hLk)-oFT**HP$k%1 zV%4DNKE>0@n}VDNYfb>2n8A9J0m9YJxRKF<=|+ciQ=VjLK#~|4FbHEZs)ITq=<4AbSdH zsm6$)9z5yRW2ZSKCOgQot-~uGK3xFyBDfvFvV)8t4Dy#9WDR;5;yif1Cjn#!S=%A# zv>V{Rl`u|Ac92!rg8fhMK5HS}gA$V+WOwiqxdBX<^n)5fv+N*SdnKf@04o@Un@D5_ z*<4a>R|2Dku=)n6Uipj)T8DokU^4zea_Ly`-YhGGk)QyGkBg~bAU9^+{=2%cn@hRl>^Sk%!r=|-h6$@I5L562@f+oZc7 zq6cr29t}jcNuMv`sZZdsi_-0P5E0NXO&r-K&GFi8(n~|QY40N7-)sokCY|yUMkfmG zAye^i&JaW>+oV&6d7O+c2&kCAvQ7F(0UxgpthV5^O`2*zxpZ4*#q0T8ybC+v*YgQ@ z0kj4$Wy^ZA`27ceiVsUcn(~gznu@M99sYAD!u`~%>=JVKd@LK*z=FP>v}kS zhSF+)U%@+$;&BOl@H=h*PQ{_%Bcg(9`uiX6xY?y}v5K%MtVvPcao2F%80BFAJzi!z95jikG62m4a%8)@#JZ)RDbx6w1~dLu>ay20A<_^K#K)-aQB(Kcv9NK6kMQK zf|Q#T9`?nvu5`qUXLwn>c(`E6#E}=z@`seV2ahmtCoM%{w;XK{xq%BB8v|-3a1z0Gdve3}j_Mu-X$~&ilP@CkE@fI?F2fszRYAnD z0-kFqXfcXVUM`<(fDJQz_5nIXa0d0H zFiuNeF5%^2RSMpfEu_m+V)AlXu@nb&0()6-9u(!}@>)S?uz`(;!c8Rdayj!Ugh(^M zSS+l{K`MB;++6Fb^}u!r&Q&Zgm&~8UsFT1h2~Oc7vx=9?(@%%gJrL5Omvbo@*Cr+V za`^f9iSeh!^lP6^~X2wqv#PUwrp4@t-Igm-VCv)j!d-Ab+I0qG>##2c8 z5%E!t+K3a9?aA~QxWtw1$?app9Kn~-VL2*}fU_gplV6!&=zskOJ=mUnDLY;}IvwO0 znc5 zVKYIKlpl^OK~oeaZP}iD;CWY70HLmsC>AF9f^xe(dCFUkdKIj`4`6aj$@b*g$B_BA zL7V$;YOpOUT0imIgC{IQOPTP|YCm=iR z0rnFD_XKKHpM~woU*M=SJpqiF!s2LTdva_Uq{GT++Me7uD~?M6Q*Xn^9vj4{z7rN| zFFs&ndvdX2AtveH!Ms82E|fT{rfGX}si7uaO$Pp1;LHPHaBNS``ix0LmjG6la1Jlq zlh08j$oAx}&xM(!Uk0w?%QdmB0JcVAlkLf8 zAb_Go^nQFCCY6o(r3hY{dljts?f5=;ngJ-A$bzEg=g5mt|c6)LY?7rjp zivddsaJxNu-awc*BU)V>*mD7Hw&N~Y2 zz7+mz38R5YQ}+qBC$D`NiGKm`WE4T0{$+3PJC}e*=L#5qT2`<J8~gQOw2J+y@#jZ1i%YIpt++T zjoqI7@+_R2e;14lPuW6qQv`J+xA)D1ZG%%7v{FLl@kh2N_wD9yPp$((LrV&_CpTGU zUR6$KV1q1fdW30byFEF4%YXe%2kZR@G41x`Ga8Cin#61c>ku*JIn~kIlkYFmxkz#9sOs#3Nm zU&qr%9!@9V1EV;aiEPS{kjeA1Vu!&b5EclD=T(6z18qB@F%Y z14bgNH71z7r^KEp%SfuEOwrhsURAnylWXFdtQr2Q6IPu;7%n7=g-Q3V8J@3;W1zrV z@ciTWKN4|ZZ3F&LFP z2jEH}aCe|q4b}{K=A#_j!T3^G9F43Q%CtgeWX-Vd;Se+R4bbn{Ai!u2@>H%)o3_B1H=dUHOwgGO}48KDX_lGUOb_p(PhVVb=&ELZR0%25kP4r;R@Khf> z)^`EM*NP-))4%MRq3S&Z%m+ph%L>*EJ>T=Q@D#9T2{%n(*9@tcz_PXRtH9a|Zr2R= z97H`B-fs~UBC-As9T7sSL0*jeL?J+;Z6_)YlZ^lu+55soX5u% z3PKt5>%p!W@)pKR%!Sw`JzNCAt{F-wKiwk0OA{x^s$DbuG%REissp@9bUdTp9bOWnxVi4re5@6U|$E}?V91> zZ>}mu2hwji)10zqsQ)yc*2myacc7a}Fnz_Y8D89uE>{m= zGa+Q+!OE@~+P{t1y8(RN5@gMAD%K2PdIF$%7S{X(aw@WBXp$OZ2A%a_eG$#%HNgQTn(_ILA##rV2Vc)*$Baq7XKD{F?%j$coS(t?Gl~_g86I5@d2^b2P=Udj(({_Zw6I+>Y{m4-DG5e(VQ~cqbtG$seS;8B zbI{remB$}hGfY}&PPlZ2fiTLFf;GeQSIx`CSpaOc#Z8Ye?QGW!doc0j*WW&{PCbZe z*9@J`Dl@zK6D+qrawr4BeQSpAan~H>*C_~=sZpLS$eQ6T9OKA@R3c>Oes0$cV_}Hu zG=cxClmrhKG=Y>gLzDKVV>$zYj}i`*LDmc@kRWiO<^x|9#nDWZHN(0Rj@k*rF(L81 zDtgUuyQ)$@gK#^VWM)%YE2dF-muYWTfq3QQ#)6;~Ff+Xdyx6qqmy!182lL0cwK(V|0C_;CG|LbthX6oZsv77c7hK8~5o@ODv zgK(?ZZ8<5d_R`?3SAno0nq(Eb*9&6++HWzd*sTGN93!!R~TG>;0d>F<9ib~iQ0t`}ibSd*eCb}y$1 zE6T%rL^@8@A&T8|;ngGKqn zaoA{m(l-}*Awu6=;`u<|Tn4{I-%Ni*-%Ni*-+UGChOdy|aX9B9<<9Dx?_etXGkpKF zi2jXXU*BBqB}YAkm@>g}K>Y{7*3hYCN2T%$bekaMjz&~g-~3Ct2z~Q4Fq64p$;1(T zbNv>s>H@46#iZ6#?tDY1;oZY(G<@H&h>i*1aZc7NST6utBXC>*Pju#CCAtgHA%Qax zZ1v5Wub49FH_Yd%!ulC_>RUk2``s1fPn4suEm; zV9_`8gF^nIZ=QzD-Q>{;u7?B=eRFeIIOx&vf15B)OZ3f6a0u%nczp$ zA+;UYmx4#@o8QE>mFIw6kHSqPqHq4ADITzg8l(N;I0O3eAQkAFPokR^0ajXYu42(Q z7s!bVp@20NoWe(D75e7x*tOdQguz0hqWCFUee?I7(G5VDYf1O%o2#Oo0)6wwr^AY# zfSq7}WkcMjZ+`tNSN#a=Pr)g~efs95Ibk8629IABI8y_GzL^Gx;AwSf2z`3;kG=qD z#H+plX$9hEr7~rNe^43t2lXNT5wbrT;zx0cC_;d={E(3nO+gm!6Cgbb6Bk-ad_+*R z0O`X;_Z^4Lr4s?tq^e47L8!YFl72*dRH5pR);H5*;1X8^NF%UShQd{D5*3!C;s~Mz zNNZbZroZ+d^gw_#W+YxodI)$U;hgH!;Y5H`co<$~q&He(G2MU&B0!>tOuK}N0BP|$ zOwbR)=Q{~Qzx;sF0we-NfOLBc5{tz%kQ0tGqB-CTR6izJD?p;Ipk3mL0O{Tsgsu*s z1`_%u%Bl#EGGcbE^=m+T3gcB`hybbEe7t<#0yskm6opA!1W3Klh17>2Y!?#6!le5I zNEP!s>T9qrKY$r6Kx$MDnGZFC=pW7$T_OzxNbz*AZxJvm2x~ODy~&>lkRB@nuX~AZ2Y6GNgAwSR^E_FA*R$XzG(Tfv`tNl&3&|^f)Y6 z^cjG^2|-#l5Fn-Pg{lv~h$#b{sQ`{f1W1+eb_fJWsawO$)a5{b!UhQhNCO@hHUvnE zA>bgAZiA1G#O{jn2LhxLc#l%LdL%x^63$P72$1?ra!vU6fGsDS!;1iEJT-zSod+&3 zBz*+TlMLrru3765xcz^wqOMt>Z5LHXYbY*#C1W{$U}Fg9<_%c^(p?OKEI?WeY?Yx*4C zdkG41C<3ILn3V+rB)a8?nEDz%?%o%~3XnqF+gauW0aD9`xG9i=6nI&y5^$VBzaFdr z>CIYrbyf%1AevwWNRyYwm~=Y;?@gQ_t5$%tABQAxLT>|~5gm^RkkT%3O+;%!SZ^Z= z1W2`#{oEb_cG5-?2#|XI;h6B(f!zwiTLIGg@39MxN}I6-=5BC)b65e=GX)&Qi-S_Y zDiCg-2rEE(9xpUrPd5bCRKkk@=?;mayTZS}4eR$6D?kck1E`(|aF!7Ib7!&wq$ii+ zmAM+=I!h1%QgICRJd}I|=z9xm9(}k+iU8@-On=b14c5agZF?}2lM?|_$ql$4h#s;0 zV3m$$@*pV!q`8>dGqWyOuSPS2L01GwyO#Q+=pax>N70p>iQPHHCoKeFO%#cX6$p?z zq-NPMH=G07QlSz{i2!NvaWnCA zwt=w6k^%wJxP_)ooF9N)v$*LIrk$+-X~{ZV??VNQdj&_|!8>*a{);II9xiCU zDFP(23gHZI0=`E$6vABzdIcI@ijpAq~iU4Upjv|b~yD_a$17X4UU)p^v5j!P0WfK#D)b4!uiy%Y`#hwk;79hEv=^+|zKbZ%8eM8Byk2aB1rU~*X+UW{{S<(; zx|Au}+2bf*`RVw`iHAZDSqWbHK9kd^T>WFbn2GV~7Q&}R1#Ug zSNmtQdq?LWJiHIk64D)6plAzhMioAV!V?0Y$QXx#>cZqX#0^Gq^8e_g!aEBuwV4Sy{(UtLjeNO#0*_)7TSCP&4675_ij z|CO&hHAcnN(1};6Dfn=&xNhGdkmOWF8z|&poab#k~p89t&$Kl}i6VC`{uzYwvu{usRLwvfvaVlJvUvUWZcM zX^+Z)GikI>a|7ku6;J&xHrp+Q$o7WZm_@i44_SB&yb8qS;&Fo6I&TJN2!v!;!pwON zcoWM}{F;gTH0);X?WoT19z+loM`xpt;58HXb=d7QL8-|gEQ}`cYbJfJQ>g3r!>+eK ztk!|B$&yt1g z5EtWk&y4qDstZC>AyF1o>@w<`?OgZWtr!Qp0_<-IW~7g$sX|;Y*L{B-M&*eBXIX-# zl+D?9agXcx1RBKHm?ti)<1M@uW~SZ_`WH5ck;TMS)bY6j_9M6`zGjF?`YM<=iA|5N zk;TL%Io>zVD-&A+B+!X)W;kG3Ok94)%Q9Y>@FjtjBb>vtk$qfY$Lm=aXHp_s-2m7N z0Z#IcxMGesHr~g(1M3suB(I1of%q%OC~ovgz@`T{2?OFvJ6@^gzA#`luyq06dN%O# zj`vSB>}tmIs}BJ?5#S{6h^ypyRq8k<{;R-l2KXr)`4d;w@fP96I_gq7p$p0n=a+96 zzcL&z<`qAGC4rR-@cGLTzP95P&K)-KHvslRfLFwPGOoVk?cV9*-GL3XxEYQ^>*<~H zyyL}I^fNgPgatx+f_g#LsWB+&k!}QCLp{TO)`C@tKqB4p@>3z0v@6HPZ2#Xk1T&+S3<+T^2l+@wXiB+jf{Sg}PyO3}>o<=qgkg%d@!m zUH9JBka;W$gHTFH+#-gw&UN!wHV>e#140ubam^S~`T@x5ZrA;JlWRIi4-f|3M;g-> z`Muz}<**ZaaX+-(bPyI2iQkkaCMG#C?xlet^#PGKg0TC(nBvMHxp|Ivtdi-k&RGzC z6%xI~RftK89B=%GJ}IU<)_-t8#x?y_3H6HN@%=r%>&pmr1j~%L+%fJXnCL!>c$`Y0 zG>}mI^iobu(9mJr$`rT4@g5&)<_=CrP>22(J+>cK%yAWC+)NJSY12SkLR2n3$ILm8 zow*0BW-;#B_c3wV2*#m*v;2q3tAi)6M~qwlVb^5$7f}C>rc*IgXfcfW;&#Tkt^S8Y zr)X%*+yk>uxQOJbIyB|MkNp_>aNOk>w@)oIZaU9`|FVQ(ri4+U+Ov?vIL}=^ABQvG z-RATKb+piF7NkupGjp-$7U*LJ3}+!&YlKOYh)8BP&mHUeuZ;a*ofRh68WoVUZ3Ihk z%{{lwX2*2tzd?=ZX-i3iw@=C)@;)o-8d4GnMTJDQ3@^@U{0QIAUe zt><<G#))7|vn&f)=-dzN+bGLA{+ zVOSz4n!&`hc&4OEk6{=;Qq+XTfHrMZ>N@>+ZFX4EY9rhnQv8>3JEd}I^;A(;fiYwO zTppggR+@rHD5Vf~Qt9-YA8QDiLzN%LgjD)%?yzj|JAu5NrUE=qZ}}?c3EJ*Xc^6ZV zYw*5nAu|OrL3g;7I-!;`Ag-Kn98@=>@V!|ovNJ>JSZwHrM;S^kngXK|D-~#Dr2-_b z$#Ikn%#$CEjq8N~W__3@HfvjoHpg4-d~9MQ)`_t_Z=e{-Z+dZ;fKAi9aEwhJ?ZqF( z|LHn5HhHX9;$3|Q@Au>}Ui!WWG(-P*0PESYUg;0PiB&~w!Df-fCWVU@#x;cWD^}%L ze*kkuI^==Y&~lK`Ei4Sg7HD#Ur*0yO{I8=`mmy|d7QX^pAX;s^1U}dn=+hfGZVJI) ziwdsk?|;|=4Llp8rU{$EniRzrsLWbVQ65$kX%$tF*a8*F;BiLx3sk1(Jaa-(+T5PH z3U9Xf;V#OBA$gc8)2*Q~+&LB(uPUP|gv64&{P4+stwLC3C#g_&mI|4wU}+j5`V`5X z{=zTQ{a%A55_RM9oflD-&2Tl7Uraj9 z-~Z^%H^z9XwXi8^lcMzIQ#f{p@-T!*H<6>DH{YA#aYknf#A7Js5m#t@8dB9h?iZs{ zmTiU5CcbT&!6Q%~w9t%yEp-Hb7u*Lcf%x_rHXyj_knI})phO}` z=e*C?W30>vLaLB>UHzacG7$7XlouAa2@4A1^J?!s$jvye=RkN#NGt;g(JD3mQSBAnjfoQKT=xNC5Ru+M z@`_d7@g=plTNxWDJssGb0H;-Qd|BLvxyy7^y$;x>0H;-Md_^3Ll7hJb#eV|WX~Frp zsrW&U(e%v-5aMBww(GKDjt&okCKS#*8CmHPnE1h^c!tK(2AIWrJ5Pj|qf3HVj>snG zWbY9Foc69kPEK*?2KabEa9$Y3zX(0ZH?B#nJFq^4^J8f6*4iu5AjX8B1Z=v557BZk z{x$6-cTomk4QyS2AASiXuZD$ZTv(CNSsw!SE#VZuou3rGFT{M&9 zjO92dI$q~8c!3TAW3;eLSD|@xe72C+axBiTLksGKAgmM;C2D5i@wq}?*~cA2+6}^C zAyGJ=R6OMEouW*q_!WekLYl=@LsEtKuE``%&@O?jfR3*k^5$jtTP)uYEPdfj)o`gf z7d&x~uNCrg;Fvc3EEx4H%P6Pgn})n^a6gW21OILo)AW?6P}>_cpoYAYPlXf>p?VAm z6NzLx771qJM}@q1HoA%iRJ{z?ssN`Idi;!#R|2aTuBW}gjuFlc&!yuPdi+;E%|pG1rA`0XL@jUHjMLazWqH6leM$E4jM z@9RviS)soSLi^~LvS#@hF?BC73R(^A63Ba;;!lRWzdFUJ1*jZ76~6N+SVY`ploEeB z%bedr-smHaT1kmH!>A#mOG{F( z_!}Yb*7>mMI)y+;wj>oIsaO2pA@AUFAFlzdPJoltD?S|dUj51MdhLMqusFYA6-&M1 zjDEe317W(5O#dVqSNxDtEUPkuQDWE|`zv;cf~Ys+;|mJG6-6VT%1Y9!_@Na@ zsO67!Fy%?Y@I^%ZJ3juV5Y)^3jPMv%Fzk)T4kjjL9lF6BhIB+10+6SIV6`yCZuA`LBd^Y(cX6%*4T?jWK~K8g>OL>kJN&fcurSgSmt z)MxPANr|qdmdr8-h2pgMmpcJS-h8+XOvj|e{eeGWQh(ACFx>l1M=>c!^DdZ`Cr@}d zF6SFarAj5tuwzcKk4< z7b}Fv;PqfD1TI=fJYxT{La4GIW)84ISg|io4MF%RHvaw+zp+B#DA)?&$F(FBSjlYx zO9QH3w5ydVP)nt(DS=LhHD;?f(H!e4qa?D%%#GKIK8DCo!8w8>R2(rjT7hi!? zQ)nehIWIg4InNJqPLT6G7&G+*1e!`QKSKS$=6rYpa=r}SA6v+*S8dM6ei2rM5kTvM zAbb-|vN^8_U9P?Y?6$>C&aI^Zt%d&|EDfkwd5i5u8^O|`F^a*K2J}3!r2+p4EDc8F zBqA&g=75=;jE}(5pb#Vzqz@kf-*@1gf2i{5iQ|vRr7_cjVe2wfw z|B?sw!OM`;I0!xF% zN#?MX_3+&R=bWX6=RAm|L9>Qt8F3o;Im;1C11gDF8q8ZCQokaG*tf6}gmbP@X~fc? zb!!YR@F@f+#lo6$8(11N9O9}Pz+MoXLPU~aX|NdGrV|J~EJ;~Q1L}8yrNPL}uwq5< zcfngkTrM6bD3%6KcZ8)XI2(a)vz)-vV9wjFIsxws1W|Ex=yQBTTN;#I5K?zQh#M0{ zincVEJKa%vKqzEMfu%vk%wbgt-YqSp>7@~2Y0#MdvZcX8NL?%qXcW*cg%V4HTIE7& z6g*~2RGi;*l4)yckP%%~EDhS$#R?E14nH7Nw57q4El5&d0`H3D29^fRp2AS-j)kZT z&eRrF_Wz|cVrf7Iw7MFC)|23wskmZk(7QAqhc*Da34ux%SQ^C7z*GGuKsvd}WPoDO zTx()!kY_Q*%@ts56c$$!v&7P1(~Dpo2II7_A_%ZF$UGS_Uk4aJ&L$R=Hisl@Ee&Yc z(Jpbt(xBg~NTLjUo|hQXqFK1Nn@S6!Vc7s#8eD!@sXP>W7X<1j0lB6O36=)KaS{QO z-T`5*khr!C36=(VpuJ$yryy(>5@jK4}ano+n}2TYxek5V>BU};b~V8hZN-S7~T^owA&A~rq3fu+ICLwFg&TMxj; zFv5Ar;kh$e8oUnW2PL9s;bQ^e99}F9Udf0Xk_q2{kF5c2Ee$roxQ+2sz|ID^wKVu= zwX3+%{|2VtmiVouLB|EYr9lp0c>>&88hj7KY5Z*Eu` z9Q#TcQU?%vN0Y?Tpl%Q^EDeec2{BX80evY230?xGo50fGY)j~+faz`cI1o(|OM~BV z=mwK6fN6$XXgC5A`h#N`g?%l2piA8dRPVGL{AnfW08N zSQ@VZ| zjfF%n=)lro_5f%h(J!2CAPf}}C8z1HSQ?D%icr?l;CxX`8bNWEfU-eCamNjUilxED zej%P0ILAQ!`M>C5X)ydJ2__13{gXUpB%v$jGNEpg3SE0$bSQ=zrW_p41 z1E|-8&XxwIm93>grT6`|iF*h8AK*+~u%$r+6P5;DFzj)*%Ys!)nA{#zKtBtt`iG@K zwPyZ%qYbFtgieFAZ$tn~gT0Hf{hUVPF(6D85_$O~SQ@mQZnCI90^u_uncP`RgPISS z3erbGI4>lA7jT+lX>jxrBt+(xBh*uo?=&#As3}>MBu|21Kxy2DExHmIl1kB1;4EVl5d>E~70C zXa>WU1|$#pzgZeg!xVJ!{LwZq)8Dm-ey zIaTO^x0VKt@hIr#@NQ=zGX=4h2J3499|&xe#dUQGZ!Hb-{fKKi;4u&IvSCP%+L$Rb%9oWZ~QEDgSfxQwyek(jYGNC&AmTN*T+W-SfUv!y|0{QtM5K@(&v zur$aDPK2dF`bbNIe!n15(#@{H7%IBiD_9tar9uC!o@#|C-iFgt5HoH8Lbv3@6mpNz z@wD1@34E|__Jvpz{BTroO@IGGH`^}`J0fUE=fo&!lcMNmcb4`PTAorNK)l zVmPB^1uFB~h8R8~&m1_;jc!b7Sj}+V;dpBFT7a8{(3}WX zGdyr5VmJcqjNqI}s~K*(6ocD!V4)e237C>t&G13Y8Ff|=3JZx6i6ou#&f`oE{R9Zj zg~aQi2UU^P48J)CwbC8@VG@Sv5m~(Az1svyO#@+hG>NO7nW7o~_;HkWD`>}s8ss5@ z3eE7t%~0@PL5rDb3m#B|s6{i}=;avo3Kd%CL4aZsh?_$+!ymSGd{zxGo)Z?g39s2m zGu&z;&Vr=4I)TtfNW5kf&G5y;Xl68wo&>^lBE3cpE1KcKrTx3RR|8uY;G!AEW(2Ox zL%>c1xYZ1I-4`w+YKHlZDw^Tf(6fo7 zYvH2-kxkB7s{+liciG1~0_!fg(Um|mJhwb9_M^nc0-HoQKZXW}X81gI(sTUFfvuMC zq8Xl!Efmq5fr;6KJCq8a}29ajw{;z#iPjDkhPZ8gJ#*D6Cg3c`0ndXp;EYKAx0#PW+G`U`ky zUQ|R@Gu#fxos1*SBftw0C&**SYK9x;_q$G25NcRbpc!6s+PpY*D`4#c+-iom@AJbC z12)d${DuuQ!^N7%n0j9V!fGLz{^@ImSpXrL;YITl6ZO|%pQ8|5QPjyrGt2@369Ssy z9mR1%6o~ra`4Du#nbL9ymLtSNGko+H6Pqp$!sF2-Gf+V@{8Kr{r2RYyEr=APZAj1z zKaJ6hlj{e<8__X|X87JTWk_>D_~1U0)eN7@=NQfJb`ZX>q(C!V;#oY?gVBuVfL#(? zG{a-F;_dkl{2#{b$YeEIGyLNK5Rw2E6$00aXohpt!%MX)z}nFS*8S4zBwF`NOAyxm z(xQZQzqDRa?jFp@tnQZfh4)6Icxd^J6(rakMvf9?DJ>Sa*g(CKR7eYhogUHD@ zl$*KKfj3asmp$LF;4F9jJHWq%@ZA;=MBDmpCLA$^Aek1zAOX%q@*`zHw5@4tI?O2# z{3+q+wcv=hbqJ30Xaek2!70{Y&-dwj52?^HfIHw=+d3LQ?%VS{8(t6AwsO(_k9)oc zEs9r{5#B)sa{L!1exq&WC?2%u`{BDWDkDPWg5%2>hr zK%e;w_{D!qg}-QG7ca)27VvLFac!jmbIABiqhxbSe>D`1|edf9NusQ$_t>=NT zEShBXnK2tN1N|J>UW=Q&c0PeE_feYI-$7taELrg)=VkFfrEybYbxpHoF>?N5waA=b zglVqM2LIe}&Ii;-Y|baVicqED{iKC78wA^&pUDtXA0vR)O+jcKO|m(!oe_k7z}~R9 z$+^|UQa1k|G_h2y9O-wW7Dy?21aXN{l>Vq{M=#)EYD1T)K`H9Kho{WneoYN{-}Y;2 zO_g%53Je^v{W=%=eDSGNTe^5?IDftS27eVB$zQklEBWdu{Ig2Yyf74z?bmg;qSizy zx@!nx5~XM(WJR`L7pG8GDcT)KpcEzEeNPR=BQyHjItzAic%K{l%lI3jp>HqE5ZAexLiC=P?VxYGb!dA0)E1B z0;T9P{V)xL_Z@<$IQn(^h*pX=S&u&QK15$|5u|9P=ptOKTNZ>$mJ}#Oi!6>&4dC6| zLjS#Cc_303r6@g++NDsU6uku#w%PDlEm3iPhfAidQnWC-swhQEcwu!IAuc>1RJ2m` z$|71y-vcka)HbkD@?raRsdC6qcKAPKF>bj3OKE%^Vc4ZD2)ZePwwBMc<570KV04^5-#h|&?Of=Yj{dN|VVJjGigvFJ_EK!O+|0ABg3t(Im zRs;b`(Z<~|Ld1T6u>#ICJ9RBn+P5WHs}wccuZimySbJ|x!>CvjKJ6ujd}x-4N(-Vf zs!S+F&*8YIDHQt%1bSNna!nZ$l%jQ#V+?622y2DJwPi?9igsEZHlza}d@Ur(LZB4A zfb-M!Zvbyuf*Ev0DY^-he4TC?Uc_*w8Yp{#QuGK7Vmxo8?bl7x8KzDJ{TUl1P>OyZ zu%Q&4jj1tMbLaQV=GtSPWma;hlSCOE)HEc*HK=>h=Bude$*G!uF4hY`LsF-*O5{K>AFW*%rraT}NyN_g* zqCMLBOOWay)V8ERDLSq+hEOuO_i2&MHM4=LRw;UPPS|9(1E~F@=~RqBDf$u)zu~cW3RoXTGpRZ_4}R=c zDY~wJKVI(v|Fndm+;SC~e2Y@_$OmSaaBhO?t+FL#rKo9Ts}wEtso#Kkz$z(BR*FV2 zp%mSJJ!G<73#^vHUH1odq|j+_HxjluC`E^)@m~k?Kv*UusvVyM zrDz`f;Z$~ja8O7lcUCDHUKL}Wpi3a!5)!{lI89NCF3FF)rdy4H4UStrP>Q~A8&ia$ z@GomI(+;8(T~Sb}TEJe6!tYaxF2FUB-9Q)`O^Q~Ep7<%Orh@QZG-(NSl_;es5v)>_ zRxkH$za}qMiqhmVS}FSfWBWC&o+|!P5YuCS`}J|W2vXW*!uSQH=wZw>tWvc6mzb0_ zhDUQa=Kw7ptx|Ms9HvR#;XTkoW(s1JqVIJ?DJB7%ZE<~s!ds*C;roaE8yBzqMr#1?kk~S%d z?y}~eF^ckVf}nWnF`~Qt9eaZ*FV_SrlU&s7k}mn4rxH<0)?IQ>;=+)OM3qTif;$kP zyF9ZuPPL9CvF@@aeEzjdT0$G$<$b%PsaB*HIZtDm{yLuOYQ4LJp}U;nvhK3%W^^=v zS8GN5wz|tnNKSN@zqP?kL~nuDE;wfe71!!64;RAodJ5iuT1e9`y^dOG6Mbway479s zC}MS&(_yNkUFTywU3B0QcD2%6U%Q#e$Jbr*RL?C4AFI18eHa{F7d}nlI5+wWO2g_d z50<0_S66`jg>aAvR(JXRQKUNo*i6AWlU8@R^&LEH9|8MZa7w_G#Of}SpF_cqf^c3) zlt?7$oLA~PV!8!F)=z9!dAahSDzduEcZMTOGWbtO7^X*L@ru{wAC&Pq5ZXnPxZ0U1 zy34|EAXkGxn=I5I4-r)8E{k_V(n~?x_5f-SwdgMUwRF@mDzrY002d_?H;3phS7fuS z&^nlY!Mr*e2^oAPu(g6)-6g#h&ANn!0#ce#0kYvLaTYO z%=|l^;f7$mEG*MitnP9guASqk`hqY*NR+6V*wC)lAEx@XItPTMLZWa!3A)R31su~U zwt;X!NSC>4eBC82)3i&V=q`t5@XK-wz7KsCRcg+K=q`KgKuzZcqkv@vy35I#@Ss}B?xVaWF85tyZpT*w2g!h1@>luTixZE(|+U32ezDWZg?)8 z=q`Ib8)JIUP7uDbk!VA*y33ECq~Ve3XAu6pk7RY1HL<|pg-^N-c%i{XCTDe*b$j{? zpVA;aNhB(hNzUpn6CfzOPfTh@x2CrPIbIO$1?THWRD znm8VZBKjZj&xOOqwYtk0FUF{Ui1Rh@bHoYqD7wq7VShZi3qlA>aldiwuGRrN%!^a! z1ePzrt?qJRb-(L90qhxz^BXqMUG~I%qFnENP9Zxv?}TNp5D zgo{Yqkf6J)@vX_1E(1apB5~!KJ9MUMHp98wC-}rNIan50=ysu&Zg)tPrV1iU4XHeUquu) zdfzHdq@R57zExUQDEAFCj@4b#8X@JvP2>z}rLPff@dDUF8z{u~et@}2H~7C!Nmkwl z%&L{%YmT}Y3-4(b($xsJYNZM|-Jm8saQ_(y8=^_}{*r+|5mpm$Zf^>B<%Mg|LEgocA@vE+`al{JnnE#&0$91Hk&hfRaAHtw;v+h)*EUqc z`1T(D<<)7O%v+Ex%Bd>r>RF87iioZ%3op zyWxM>V!AOAOxVY?Gq8I|T>y473fIkvG*WXkDcX7FgsUDxHaK$sH5N_z%|Rbn}vr6*!jPPX#>QHxJ%ZzRs4cm*-m2d6Pb^BP5O;HR`#rhZuUgilvM zy$S9|aOtwJ21u-~y#?=MwKW$0lO$+*#-7pMoI$Qy0`JupGMO`YZS9>K=BQo3P6<8) zaWl!Rzw=Q{Nrl`zZ#(J=NdNqs=;!2l?Gk6`qos?%&hErYIzP2@=(9SgB(m+g6jmb<+-V1PXB$Gr<|qNYzxEzmk2)Ly|FOx*b+YPrA!va52U-gnu9S8sU(a&#B{1-ihsexQ<_!9Qw-+ddZw1%MqM9WWNk8O51Y5i!j~dDwfX5JpGga_YOnMXdJi=`! zwWeHZy}ZBQa8N;q;{L!ZI$u4F);sOBE*qJ)xVP@!Kx zLL;H6&|kgQs8C{bfa?}8xk8U{H#AlDyZ3p$STzyROaW^qF}W}Xz3GhuO5xYQZL+AT z&}>|x@fd|l8_sdy-x7y&Ri0}!v(C$=*dVUNN&W9iwf%-})o?Zt^Cx(fVjSxg^5xm7F^zSdqUojuVCV0R%*LkxzM zo>`}n#y=tTCJ3{HG@D2Z>4Qas>39@gtxMAQYl2#q;!90T%;~WK4!3ygRIpx% z4nrL!vM!1`-a0yDt}|$Tg-UhdS9Jx)d#pOr*Asxw6b4myE z+8oAqrY5W9c+cWMQhgkZvzBEB=v;K@Rnl0uYRB%RY zxxQeH1!J19I2yk1E^({QPUEF!fkWbI9G(OtEMn@-_}D=~KBSuBOUn{B=||};phL5E zW60XzcvtG-m=a?DijQl==6;-+-vpa=aUP=$dk0QNPEt(L+4pFb1ZU#rS$g7r$NQpC z*u?fYuquReYz9B(cuOaRO!#KNT1t4HL?@oXS>f$5=1^|>0~;#g4SoUV9wUCrq@D?E zzJ%xLeB$qpw{x~1|7XCq1o)PY7*lb=qF3KB;lBa)eSp*aJkbexr|0?MZv#_bNcm{{ zYvRKpuf;-N)0-VwQh<{%CNTkv^O+%jMD*jpstC@vZY6%EbFHVom6>j@NL;5A>EIXb z)&-64u}aJl@|L9uaX38yzQZU2(;Sy*nz=#e|C}N)?1CY0z#y2&fTTab$4A8GrjC6A z)3wBgA@7B0cx-mU|0}{MCiA*Agk~Y{dS4KJ0(eyjJE^n8Ryc$7I-tNBeb3tq`461m zm@^llvc`wJZ9Po?(uIJPv$*E=;T{}f=9G|kJGnT*zD1+%*v&0qaZ@QyJ3jkk=3=jdSXM zfe^dTRv8zFK8%PX5vMXO+Kj5q1x68J(ZjAX^vH>FeC$rcfmpgSuxACQ?ECm0_XeH4 z^D?k5QMjh&HCIz5Rt$R!FQ94P0Aq}0sn{WNu?@F&*c%N+tDX=4RTeW9Z$?FCH4J;N zXTTV|3ykB@ER$JcCH>}hI*-i!0)pBfRb+nCm~wM`ZNlECiRdp`Kr0$e<&iFe+BfVq z%#2xkRnT6Hrb?`wU%xo1cA) zXZ_Q#_xyB}eH*|%mY`xYW4WJrBJ8cqjdGlU|0RoQQ*lf<752{4UZH;gK77E|3D;Td zUYxU(cq{DfpNiro0W4?9EM_heO6XeIck3YITsA?muj`^0Lc8pF4(Ma+AY z+dXL@wZ|#9ex(q1!@=OZBRuJarXKR0+>bZbV7E)EtKJ7`jS#t`<(ohc)FO9OZl!hs zIxaBB!yLYSB(aF=HD2$iUqJXl{pilHklx!X%@gtW_CrlUA-b za|Eu`2BD^qB>Yy`6xO6D`oTYjh7{%DCP6u= zIz&Hs<-E%o&4A(fztp0E0ahH&slmznSC?mfE=D~C-?|pjbpm*t^G|zhkOS0N;D!M_(HV?`YKH+DCva1O z?bYQoCdH`PQIO`~a&>tNWZtDr%hl!A%HTuq%Rd z70cD-nTMf2qw{8h;{s?3ADLC?)V7ayRS^&>2#JcqOqJeVUH*v&t7s6KT9O$r%9Fq> zp@GhHhk8`D*v|L|InyKQTt!d7P_W0^5Zcs0BOLRb0O`>JXoTkjTO~M!Fr?TYuYv>> zTW;Lm=*DknxWtvK%loVh za|E}d!*Wy{0cR&u*PoG{FSR!x3kSmT9g9jz=)u+HZ5m->pdSaX3Y;?nnF+2gPx%B{ zYYhKZ7SnGNL9Q;RhfKSK%GKp%U&d5q418uv82aT0jJmp9ZY}?lPV?Ig){*EiQ>bc8 ziuTrW>IK>*p4?iVO0(NL@bQlOCD1b|mvU=)BE-;I=K@+p81soCx0XLt2(|Dez*gCqKHT2!n-0c?xbVkD&*A3c$re;GRIO8r)i* zs~sBWGca}vi=&ZS%ZK2_VANy@g+tyoC(KNJ8T9Kmh%wbpSg5_tb%c#u%c~|ClFsq9 zR(ar@6_hwH&=VfVnYWN_Q@Xk$u&RXf17Pr{Lf%LyTqzO#BCu8xUT!T{P;)YFBEapfXC8!Rt1BIh#N8_v&>|S63P@xWXhB&$(*swQ)ZPRvy90QArUD<8cdl&QlwBse$V@^z1F_R z$M^gGSl6+hXT59OYp=E5cfU(!10$Da`L~v@-(;yGlmk|UaMcC+*7Bjn)xE^B8L*cP zu5T@$zX4C>>xdpqkY7S`Yk4^yx}+CRN*{EZpI1z|81%LGB%u?Nr1#|$HT@(|3QyS^ zWTrd@`gux11@ziM-&)>nIo_JL0XoOx2&6|(dNSy=!|t6*D02ZXL>#}U%)!q4AM8G; zNU}Qcdhv4j{3huoICs9}33?TT*R&vY8kF>E&}kKgtp^Et2iSNm1Rs3c5N%Q|jU|0O~`quJ^?<9zugomNrPDD`M zX>Kh))D}Y_FXD?5#*LuHioUhnrkhY|0&HLipU`{}(zljRYz9JmfL%1f+*)4mLO@L= zBLGd+u;eF2RTq*^ww*yqLeWcrS}BgM%xjW9vYl-!a9IdVeoaB>5J%!_sq>|z zFKlNaMxY!B#yf^ZZwLR@^6Y)FD0m;>hnnEuTK>#wTqM33@n30-$G7(w)44%Xl>{ew z1hj&u!T2qX<=MNGL zdjhUOe;%}#43*~}b8Gpp^VD+C>I1?+O%j1E5eR4~?UD;sBU{sfE!Mai5vrf{t>wLL zc(1=5U>&+2Q{P%XzNoDhR=h~JH$za3Noz-QYk8d(YPeZFfe$nsYD#l!`A5Ha)t?4@Q5;7y(cD`8 zFwAQ{1!12d@w&=C&`EmOajs>98U%!^@g!bNnf(EuxA3OdzKGXf`76_L_xQmv_;m~l z*czWMwAFT@%WvLRAj5b|?FpXHKWzQuov|L&QUBP4A4PUSVVY*UuxoCNw+jR5-5$SP z*qcW|GYE>`F6`dzaw@Z37(513li4n;$`KJuk?I1aq#tSitUQPbE`Gc40?K6**K8Ng z^>SH2{?l=3SriM1-!ANtD!=C*K=-!`p>ep=|aa2BRmyp@u*rRNiLK zP`|z_rh~A;kVp!X?%6Z6UlSHP!201n%=kUS$7j%Hzk_z?e^UKDLyIraKpDjMs>}K-!qi1YE)W%dlY3q}=b2nb^hiQCKU z8M3bQBrO7AjUiE){5``n&!RYA0{qbsOt1QTh7;eQ0WO1a)38{K*)#mr0VQTN9_<-^ z|Hx&g%>6T*pdhGm%SuDqGgRqh*w{0aY~V6U)&sKpllDq`wRU_N%8TM}V zq(#o*BmqIy)a)5v{yMDE7Xns{aIPCGBx%oZ>SwR)PXlY<<9g3mWd-snl(g7?-@=O#3+0gjE0)!?-}|fc}3_7tQX;` z3H6>~|!=lWTiO|PoL*N3cTta%!&<|JBSw#Vsk0u@@QdjVy=R!QKPDn`(4;wlJwiCYvjTe0@L&Fjm<%&ASrJ$@liutZ++Q%FUO;>s zoz@#Gde3mSFe4Hrn?CH7X;OFER!cmvu9Y+BBErL0jq92)1P$Bp5a1fuL$iy z?GZ=!_Y8OQdZaNR%#I^*wfsH9)&qDF*MPCbu;@MG?-|Oq#U%eNz$2RA?-_1fjS1@t z;_qtAfBB1$-ZRX&8OHaozeTd=sm-73#=Ak zbT=$|@1)I9?-^zka)mV#v`L1_^N-mxbl)51*}+;4!WvET_Y4cptCx$l57=>ys}Z64 zS??L9VI{_|zZ+mBT+$WfepXDqXUNhds#aIIz$!{inz2;z~;eY!whcjfsi+zq*har9#N6HR63Jaquh1CXojG^ z1jG+@UyhQ@z0J1=@kWD|lf2QO<*cx?ppq%?&c`%Cw-3!i+BCNhwZVrc>h_^Eu(iRc ztNB|*gmC*%-pf!u%(;UK7=Ku6p>+`Y_8~H^44T`A-b%%@a1x?_MX+*0s4R~^zCWy# zuQADp-(mlVpa`qzmQmvmYY+x;5hTe2yoljE`yUEm{9&zZ6k*O&z@Imqj>Iwkus$B_ ziVnbf8l0qx(0?6VzI~{`BQcl^13Zkt{;Hej#xqWCkqVDexi>vk*86%dNhCeyJ z$69I73N&2$Ig28E`_Rp^5pf6UlhJ@I{~se?`NLun><_EjQl$28AENd}2kK91si%tf z9EDj33i*@N9iQXu*jLCOK8-i^^N4=|!FrNvsTJ~X2hrMH5&foyWG%wALVoi{QBfBW zQcecpy?B!L9M!fW`gAR@tr}M=?=Fd%ka61EhkgcueO~1niOFpbxRJ?@*Qq~2bX*@}neEcj3 z=>n{e##PC+&nqhC|H0=KRV#JqXXpUjK6DtO`1TT^Sp()eQ{;`X7G zKk$St1Kq!UsPlGj%>^h4!Frw=pT->jQT7;Yu5432DYK_R7CG9g0CFNZ(kh$~%1r+e z)%%TeMQZ0e=o>iN>PiA1>}ZRIkSIQIi_4C-M&fBMk~j`MB#R7~$p0iy;eQsYe|q9u zIOIDL4$zIGtqs%DINB<^3teR#ZB-c$wsEwz6-6hNC}{5<6&3G;@S!I8j<%Mpi;7K%{z*fUUK(j`A6iQP<=cna zBX{Fyi)I07Q!3+V>xpTuu>Znzi;$+gT}+|1qpgV;s>ab)hm)=-j}-OqlZtCmmOfvP zu9r^BqL_1Jd+@qwuID%kj<)JF1UMA&%QeOw_y4JlakN$WC?=I1Ncy!&-jk|p9BsWm z3(w?PfR_z{dc$|Lm0<#A<={0OgCVHulLX1FW*luL{ET821f!f`ai=oNINJLA2gs@q zMsveTLx7{LHG3eYJHXL~KtoH__Dz$mcCH#2hjb#-Ll$G@37l z4^im$pP#^3_03r)y-w5Tn74Toy2#v z)y!wZ(N?)eF(%0)V4fs4%}~Cht+AyeO4?0eca1bYi6KW@E#LOiXT|yY!w4$9a-Njm za>ljr@Up-v`#7C;L?5%9Uw?H~{x1M)>Eqhb*7n^o!JYmlut7eqZyzeVMJ@K_3}Em3 zxOTL)bzFp>dbttUXFg7+9nlJwQ!?bqKLYHek84L;=c>kd_{p2V?)tcPv^DeXh$>&! zzfpe#um0N6*7)tN!pj1y?Bn!pY_z`REUz3@_zS?=Xk1Ol#?jX4O<_eE2*NvtG@N=$ zJKCaGue1p?j<(wSJq<@&gI;sREWq+}{P~82@NCPIwdzjXKGe9RNBRYXzv4;8(N-^C zE*x$3d_KlZnSymhJ_K$7RRbj#j<$}ja22Tv2v5h8)L41Va%MO8B((*h+dU*6FmSY$ z5d($_CP#tr?mZ;!XzPd8G4;LdN)SHQBoS!cARwZ{QDz*bvZJm2z`irMakP~s5s%y@ z#NQx{+bQ1B*3voNLzey~);b7^#64mhZC$MCjqOq(R3Q?-{S`?&+WKdqHvpS~(Doh@ zeM%m^VB3$@jEM$<*6AROA`+KLNn(?HlyINDlzo+TlTT<7n$fO>7|tf;Nt*X6Q;TxpB0$;BlO}EdXQV|73X&m3Fjs3R?g!?zft3I{~69Uf$faLz2&7_ z)e_NeA^UE=h&Tem#dwlhUiNq$Z;GNJ`^i6C@gE53@b*qK{wC5;iF33?1np>xb}!1& z7H_ra_92R58%tVT#yi@g6%5}#)V~3J3;tAbF}|@7LHeNnFZ$78c2ESG;75x5^) z(e9~ymIO?9o};a1_%62irk~MdaI{q(=L*`wl)C71Ny2UzIW=@1bE4V$u7 zIT{Q7$I9SBY7k}+=^vEHx6mKbJi-NCXP{F3^Tzo0p=YzZ;s~PIgBK4`RT*r8M5#=x zl?Sgg1EV4zn!=Fy+z!*L=fR6ke!SavuX^@^2raRx!hK1cqlyN+0U`upOm$ znmWnDmBcb8s_(WUqImj!VRq|P$i+7oo?EY?_^sV~bwDcP*6Y(k7%OrbqUIo2)97*3 zZoRTk#E@Tu=zSWJ^h?g8*>5rZ`H1M+tryRX+O5~SqcEY`M?lwZy=Z44?MoEnx%Hxr zp|tNHM!WTD`vL}$%quNX6oE@4*HIqYt=B_S@hHif02>&>CL(CJUeU&o&<lGX03K|PC4+sT`w2L~{TuJoV!|E(ZRtHwc$F*CpgGa(VP-Pon9etd(DzWm? zDbdnZ_%L9j46faJ(K}e}0?Dmc$0r|D~YzZa25U^upqo!DV$gLF?@J%r>Cnj%LyzG;hdSm@y)@2s3*S?u<9ng zaqE?(M?}eg30NB+*KWOvUJVO6Ig|r|y+b(3m;0!BwOg-;@lwJ52OuloVz3Zzff*`CfOnG746n*@HMaOM?v`2khnQG10}9Iz9gO(QMC-(82<>W6wG9q#;sS+Kk$?k z1f!H;siC6XdX1{>^-etyni&#_Qp+fE>$U%OSmoCXgh7TxJ@1j=)@xWMZ&1ttVSyq2 z$W8NZLO{e`D@>b0X%lGNdM)f1Q?d^r_LND+b>UJNw_e}oz+-m_s2fZoQh!_S)$UU_%J! zj_2ALw_a1;^hVcg5Ef}6QjxSCU-%@5Pfo~!XwY%3O`bwhbUW=;v zPd85eo*L23tHlBYYM-jG!{1_kr)$>*J8u?qxx!Zb)i; zdTzb=R6i{_5z=Ny z#}qNR_3B&H%dQv*749Kvw_Yc5c*hitL1>{#BJeQ2d5=9CbbkHYRmT{;f%P}IaqE@3 z5cA9=#Lpp&iyH6Ns~J??axK8EhQO_2+$KA^+OMQu>f(y@P|)s*z}Rz7HX1Mb z!Xmn;G)_SqG78%6P>agJSO<XBhcPLCYdo zK}(l}rcuzUi(rj{wgPHc{Pn-F5QLg@a1`Bf3rA#_)cLdMcbsqgU<6!)@LLF0U#g{6 zbIzEG)=or{YzPd=!Gvoy=QGbl#Rx=5SrUZG@g%M0+*b=(Hw4yF<7$L;xv&@mGp&Ml zI0&queG0b?VNiXA0u_Jbf+~5f7)sv$`Lrc}>Ki~GA<;UL+?vLLF8Qp6cx~-L^kEIj zE`;lnzxG&6^hAV|mqEB0PtqlSw*ac24*6z9VEL-#T0u+2{68pYsah%FTqrB)N;^Q7 z(UsDF;OMw%M5G4Cg8*IWOho-Jx>D**QGCw%2Jpc$#~B)3X^$N)bJ_v#tU11}G<+~D-a_<5f~Y#O8vTjamF|B(Di(sU zKAse>D?NQ9BEACQpeFgc(xU%G#d$=#>2)UQw;+>@oA9S9{b@}9WnF1)7bMmxjeMq-xHmA?82GV2e%#=TXenKblb*2CKZ0Jg#8xv!awDA#e1c4u6Ust;OVpK`X3#<^~ zJmv7hk#wc6d>&TmYXE!Nq&K?K9(i1aw*}V8$F;6>#=l!-S&iM!t({NuY6qVN{?QN@>4I*0lVbmT35QdUqs2b@j-P2LDfH?b*1xDVm$n0 zUSNfMTY5X4Om{mpIan^XIq}ERd+&Hx)x^3Ov;!E z`yYffB%>=$_T@rX+F>*fV8N8N@aH*7;=crxT#N}tk`O`G`WBHP}J4;JWgloddzWk}p3MpydNmk~AgTY=D-NZc}tq;;kHa(R6_ z0)&b8khHF}`ZF<+m;>1@17SUpxJ*it)|LLWEhaJ&=>Q1F?vbQ*rC;S#jG;Ks8b$9H@eb#G3ZK{g0_jMX6Q;TxzUxjXc`sP0Wi+}PnP#kX7 zsIv{7b)~A8^`%5RpZ5A@Jy^R8lXazOn9!9LhoLeT`xIE$4U_wWD(DqK>q;v;>&^6u zxD_HBf@)-XgQzn$(v=pi6H(*7BnXuaiL&uX(3O^Z+M82f0HKW`snTg(X~Ses(m)W# z84_hDIZvZ2ZAO}v1z;@IEMHeTJ2S9ti2q7ssvnH5w8y!aI0fvFIQ$-6Y4_n#VdJHo z2_enUir1B5VZNLrVDXc418+4;9rPGm={m(-t=|kT} zf_rqOpV1jCVGGh?N>_Sj9jZYp%>br4qtYye+>J`J>5HydgOn!`K@ z1m0hznd5Dh{E_TwlS}&V15}#d7lSE_VN=#BN2AgVb-|_!(VdBOl$y>s9ozmi6sUkk z8mLt6Pob^6EUoAAM8tALv$m2)5?6-KK}4xtA4d67qMjpT;$~VBt29p{MqNroXCTW`8dxici@QW9{X|d>A91_VO}*Ywcw|^o7x0 zhN172vJs-1BUo?J1ERH;dvXEmhUifmlJrXsqxonQ{h2^?t-a*AN^38-%)oNSo(8(s zUea1$+Dj6gqqUb?lX1)-&m!hB0+&Wkr98CuvKdZur3}Iybs~Zy%qD`? zUfvt025-NR&xh(phK9MUcjUu)>gd zyK=uK(%Q?f$aY`{_=ijyrl%?56{lWlkS>65JD$YN&P=1dED0+xnf$ON9z{^C;g=x| z723;RlR>QrT9f-webGjH8N^BSJgT(pfdm6gBJK{Oy{!4JW=#iUzF~2n80}@X8Zjkn z3kY8t5^t@H_Hy4FF+pQNo&n((A}ywlHQLKreLU@@l?$6j1P|BR%b~ZS9i#NA!1DXJ z)?UtE42=`vRe?QaaIL-M1)@69hxYPooa7QmzJ@=q6Pce3t-a(IpCUthdHsthbL4Cg z=Mhq96|)I~st{$W7B-~4{Pc>KUvUsB8WQ!YM}qcp?Z?pX(V%DoLTf|X#7*OAFKL@5 zZ32z<^5`h90OJt*o=L{F=295#<#=cs6|uc2T2h?d6jHU~fT!Y6EX*I9y$= zy&M{Z&X71=fcGH|wY%3OT6JYFK8s|5xuf2SDx7Y4}6CrP0NwRp_OFjZnlM%F+RWWlBQ5L|Tl9Ylwfl6YumwW=C zQb2q8d;16zWpl9GQ3|dtr{L{=4BE@#SZ9$mIT(LN$CK1V1?^?+{n*eE=|lWkMI=9O zMS}LS0A@3mv=@Z$h?FKft-YKxET%|TK)7`eNoy}Jcg0G2AUY-^RyWxYyy364mv_rX z6kZZoIfEPRrMm;`oBD`vP8b(8UVB;jF+9B80rocpZWW`wY`q4niAezG#1oYE^4OP1 zz6!`@jjEM8YcFYw5wE?ZeFSSSX=lOOOWJe@J1e?QYcFXBk=pLZu*e1NWk6PX)DpE3teJ%VkS|9Sz})eIOX^W%>7` z;tG-s1wPJjdelV$jP~-x9mQD$e2w9ZBaYEt)`s!PZeWKDPEtkEPpDV=Z!=IG%%`TG zMk6AS7Zt6Hz?#eee%$k^X=X&-Uz5qz{9ivceGX?V9gu#2mj8;8uQZt~;+{`U>+Sgm zZnGvv#5j;=AaHxC-bJSt6Xr8i>H}fl!T>0qeF!=LTF$Bk&~3#UqsB(dc?YJ?@+jn- zB3W`TFs&Ow1=8RL?a{~f*>~xxO*Q1rJQY|JAKw~} zC;HqW{y_s5`1Xs_Xjo}eMwfpFa)m0LzcS85}<6oilC zNxDA%GDk3Y_bO2P0Q5y51}NtFs6T zbn2!g@G>J<;KHlF*B4b>Hu8s{>B0jXkamkBdI`7`B?bH-<%cLM8&lBUA9o4Nr1@ z>x2&n5V4bl4Wi;GWV&+_9&dg`>{*S-Q3O}vgzq^mmO=7Azyc7>Ddhw|`3KI?9Z``P zP^y8a5*&PHa#(N)>q)_<=0(GEt+4fUVbq=4UKA#tDEtK) zJ(PYRYy!iJt>9OqBjR;P?nlyRlVAm{w1Vs5$zTGaXK6?-^6`yUaB%0SSOsje!B-Ie z3X9$j(YGSv0I*{QU+bs;!U~oh2>%Db1WL$ROG+=(kiN2lFGt}20EE1TM2)9N^#-64 zH5x@lX@E~^g7+5ko2N4JNUYS?65&r|zE|)h*!95;&{b*S(v~x8q>Gy@AhSPWhme%d zsF(^bXE`^ghs9pPX9Jr@_yNM%BUreEm5m-ZX%oPky>KPVS+Xt6Ot~Mi-}y;O=8TE( zR+*2+vcjKimQNyzbcbX-t_#4ol7(wo&W^=c^JGPQ9*s$oDMD6Ph#O!z;fJs= zDF?8|J%n!aL3rD8E`JI4AI$-_izo2yap8m3!_-9ZGZKJaCj6<)yAz+CTY-)^4hrK6 znQd4G9HSD?LF)Nhg2;5I9&lW5v)^YQv7C=OyNdJ`m zs*$Gf)0R{5Loa=#2o?qiUiy(RLkyp@oMSk@;?fiXR*Z1fU5sC}oFlzrD*vZ}HSp7S zfs5tv@0OGE4X?F30qbtkXL_9a<}+E4W)dsF?5pT}Y+ji(1I+h*X;q&`Y5uXCHcPR2 zrAllB_L-3uVEne_ygJY;%@JTHP5Mma_b6P{dgL^6Q`ggkAG5O1+$HVbL93R8v$U`X zIM#3YCW6vsFA9u`BC7RB#j_g>I2Yi`gk~(OjE~Lz1?jQ{oX+W@YEU&KjEX3#F^0Wk zQ+#^BmFh+q^{A*;paNv32AtcSV=CPkKOJMZ{HE!vUb@A8Ixc6yfb;PyI6I_r?({J( z=i>pVTW_3VQaMlg*oW{B7%m=g-axZ+1K#%YW2|(*IW#k@x-v^KQ_jnH8pCjVe0ePP zb=2@B2~+iBtWv;vv42#ht8dZ;+8jl?f+2hHxroU2F%~BsfxV8v!$)2~KZs1UB@P#| zvZ#+e2@TvmigMNo*{>~$s&w-ZyCObaU~DQHeL~2te<7?$yFvKDkm#3}16}eIt`;cq zDkfF5r)aMeJGEESP1>&Z_s`kn~eSyn+82YP9Q zr%f_y3~muMO=NweCrVcDhXlYS`N$Fcjvtm+`J;|5nUI#7Y$aqK$Jxm=*@z}*tM*2Gc8 zr!gb4GJA$&XT0HZn?3?&8Di7C!cPPbVdW+x>z6;ENtZZwW>?jr0hsL`D4W?E9lH?T zvDDgwz?||R*=5gXLAh52oFcH?m2w$)tF>eiVsLH1nb8c3pWTT6L1X;7mw!>yDAp$d zr}FO*@jDp*7#6pkB7BCizYJp1m4y8pf*PY~B*2(@3@saq0IX~XBthk)in&;;leJi?ia%ipRYlpZf+kDpDpJwZyFGM{8v6p|)kQrsgORFP>IKioui-NZ_PD%J zahK9n0HKy9Np8--L#r`duOP1{BfMCWtw3l`B=uJ6MsJ0`0#0zJdXnT@z(#5zf=>~` zf5VIV_%II;ITzR>lb*Nz;eP|pzi^60PomroY`00T@Vf!$=}T&W$g`HM%U;;SfuNJMEj-GBBoj+R6NsSRaqLksTr*H=tj~6WPL{bbCdrCmRwK5mTm6?3 zU`88sdc6WCcO>maV6PZy>`^hC7<8J3z4QZs4fWHLT}wDa(0TSvwN#dKfXz2J8!m>6 zS=rd%Sbz?y!#JVI@i^XiAjz-r=b&K+=%6~B5_G!m!{ki(CH%Q+a5gatheCEYaz^Jo zVToh}HSno-Mf&Aa@MM1-wj0fXgGXS+4Ngz4haU^ux3@$^EnrRJaLFV-;tb=es{J_G z=l<#rR{uDrItLB!3_6)E;KYwQbt(vR4T+*W(l24Vb8oM{n?cxRNIZ9`?9K+A#zWO? zBu|0xhavF<&jkz7;cxg_*v^jyhfFAgPahCe^>5Q55dBe(<-*rtNIwL#!((6+*DPfZ z622R@m*De0F7-3OnrK{2k9;f|j=FYb_;BRhyMxf5NIaXWQq!?$IE!m1HutJF6@ zkUG&Mo?tuuu|wzVHiNK>NVFbPue$(~;4i$+iipbY6bP4$B!24#zM?5Ro$ZW=3nZ3g zmxZ|^LRv{oO17N^PkE9Gf>4S`TyQ0cPGQ4eIrgkw5iyCLk$NCBGm=#8m~_dpE7psM zX+-J;!XP6_k*fcQP2HoeJ#e{l9wcXg@V+J~v%2u61Uq=!6+HQD1h$iKu02n&>C^oM zA+vFjS6O_f1MH%~If=3>Wzs;n7YIkie;}kQr-d*{DgHA*B1L#|f?a!&D;@!%L_Ep2 zPz`^OU~hAv8UUebJV{NybGxIlTUpjHeA#M^1Y<4&>uKpfN>A&5da7!}Z{$D8vAqB3 zX<*h$%&fgEYtrwoS}-0)`ioi^{pbF|?v=A2-=l|)sUq`b2=EJER$GMWKPtMtkE94p*N zI+?ND8-u(jAy_x@!L4|Op%?JAUNcuLLi8F9N%|!cdGqv~EYSh`YbB?Jbb2?5h{J$S z8gh^>=H)w}!_UZkw4SpG%vuh2K8Ih%{j;~RkVb@C0mVVETuwljD2HpyY;>rZm2OcE zLv?ly=9t7OjZneoHp2xz;W{!KoseXudz8aaqh*El32|B@bnv-!?{Bz)EKCd1taOud zxU+Q1Vbzcc*^UEm3URpw6x>rf4ckCO>{tAn+eFM`UGq zh;&v>P$K>S^sk1M2)-UTJW(cbv+^ObI@6&drj&(O*ATiiIuws?`T{M{UASnt=hTQO zkEVPQ!D{jqbr(ZP(y0wQ<;I9^r6EbbyzX*k;S_XNBDZcpW~7r^)w-Fa^UVu5>jHNQ z!c0otngp|*M>r@m(&?0H-K^4CHXzEJZQ$+lx!k&8`6zcY#j7^V0q0Af$3z#%yNbxa zDFK&S!Fi-}XggL>h)$1MrXVn!wux~g*S~)#5ha0_(;TmfOW>+4z$D^%Krd-HZ4+0O zNvbLMSRx|x6vf1yroE}qQC(>jQ0W7}<$2QssTdIfuQw z><(~*A!I;}(iFfe=C4krPmtYg&=wggm(Y`S+37^}*aGltL!jcww5&g!JgHdmo(1DC z!=fU^vHo$2w1up26$};xZZFB@Vp(PH=Eq7EyqnT4|Q#c2cY-@i3Q#4^d|I2VHZb(!vb?lYcR64n^ zZ=_z5yFl1Sr2G&p*ajhS-s3#G^NKpLHAXMIm=H()g+Dim%p-$s5EAE?;OSkFJ4xqO z68!uUIoFdIW(Z0$FRv4ONoVDEF(s@Du$qLkFoh4mm>B+hxahY@uxAAJ84OlK8CsktNI_Xrp4wtl4 zvvRlDr!*n(}B+?4)v~N4x4@?<_a}zBvuGG?GIwc$W$F&kD%(V zo;k8mNo*Ey9$gNv2HgK3)G;I;5?lh6Uz>ol^G)x8YXerVcqV7cyOqR*pcA-^FPBN? zIIw2KG1a~&F&cD=jPoA3wIFOYBueLz3I&~_xxEhm5rngbq}q?RJc*Tq&V?nOq&pzQ zYUp}$73hyLDM@ScJ2-VgG@UcAU{BD)C~_ zsfH5~?v}hD6eUuc?3iTPPM<=s!KA*c145&FB+(`+@gdvEn9(cvYasN!M-r0?+D@a! z-pn!ug!k`}M4PC@TDCL4ud8-i8$sB4k0d6wv7PSGnA&Om1j5C5NoL8;3lEwBD(jUx z8ws#7)1HkLLit~gVFmvhKH)EZ^jnMr*c5NZQ>Sf;?-s|FxH2MYAXq(VSZJH#N#pSL zZieW#8d7gcZBtzQE?%X5feqKVe3Q~^o8tOo;EWOxa{w=nr?5@2@xP?h;bgN=T%5#6 zg!;AbQ&7Jy!tDmWI^4#SBQJt(d;d8euktf9tLb)U}?w8cYHt(w@e%dWuqdtb8DP&qBd*)&wA+fb_dC-!4< z3ONg-7r-mr_Ia(Rb(Z80k)Ad^YhsDe0@%LCtCR^6+>WBSA(eHe%Gb?5d)C^#i+ZFIE2+d>~lXy zM7gvHeWu#qQgeuuC(*7UCnTenp2kihbH%7|GD>IYv-tiKiMt?J#b|T+3PV|>Gh}E~ z3_WxJuI*l2Cratvrbgz`2+db1oCdy$t9hcZj9MKBJw9nRn_cf zon)Dvs>S;)Coh&#F1&Mq6ND5O!Q;|+aFS$py5fTOTTTJ#jKe7-af%|8_PMm*a$H%E z29izjyrFUmOXt!U9ONMHR)}m*3ApA8E-9VOfQdgCVYG(R?6;f>(%FZDMG~<9_)^VL z`z@!MbY=r45uYP`qv16BE$4ZepPRD{-LvjQWIlSfLc*rPrtV4aqOUea8`Z^!o=u8{ zgtOBr0X8$%cA_^h4v_|BqseqHX{+m@l5SEKh6`Xy}**7B0 zZHc(HlqN4pOQLPBvm^6Zv}`UqQ*aJCPZe>Q@eWwyeI|Fp_RKUEbJ2-{^PN+zU4$8H z!P;n;x#$eRIpVwp2LnZs$w44L5X$9O=qaZOP%7UQgj*U_ZIz3T2%KM>F}UZ41SF$D zvLJW@7`@_b#(6pkC<>&!MwNhk8wMo^=WeQM5pL^GbJKGtY#N{Crxn3j!Sh}5d3wJe zFj3OC9fKj^p6@wQX405{9)5>%PsiJ?f5@-#b+N5x);98+n!aX_SOPsDqbDm^hR#*wI1sG)Jvcn`>x8%a5ds4B-w^wb^02ZexYr+fm6fp5PeERvNz%Sh4$x6Tl7bS zl(#^zA)C`HlC~$Blz^H)q%rj}6E>AGrFSQMXicwPe;2dGVZ)}ZRgUJ>v1d0H;E29L(A(4; z=G8I%tsocFMRgQpULBP{G{#<3=u!usRsIG$!H-RCB;fZ5(Ns056-24)Fa)5NO$f^L zA!$kcvgv`CY;B3?r;+@BJ}0GYMC$mH0o*y*AlkSgCaP>5;eIozX}TvHU?<+cCA`=) zb8F(a$aixL23>RhPbgpRCvfdR3;s{~M<`9wOV)_H0dX1`UO=#BQl<)d#rpaxjsdA~ z5X6Z5kl|0@k0`05_4r!>kquB@11}@E>Em!pmej-Q^k_hoGSF&*ggpb|_<>An9RB&` zfJpuPQ3nMdknZ8M*5aN)F$hwIlcY~Ldq##^?S^9;gxCcdkvn{N zj8!OWg4h7)a|3_r!xOB5xJ&Z~KxYj6jSo+;K5A`?8-Nl}EY4OEELlXq9VlA1Z3!ZS z2ED0H`a$ z=Lk-uPnMF>$%pt^p!lrx(RvaNHn;2*Oq_wp_f3M570v_3G3KRH7^fd2elua5S9-=$ zrBkSTKpa5yF%8K-C^LmWDxE%uZSe=Ne+^EWL=VRa*K5~pk^XtS#1L4tWKAOrQ3WU_ zouA<%S(XOlNyEC~=Tb^K*)cIU2G+{p-2AE(Wu#LfQ$X|vHp1YPK5bF)!Av*+GdK{I z84{I3s+`JGThx)x<$s0P2EtdGq&ln2mpH0PY9KQ{hh7$0LtXH{hSGTflNvoYe}a8S zr{Efj^o=&qlO&yO(}E(I9y$co0+d3LLg%i61SPaXa!Vn`Q(5Nw#U0 zEMD%_1UQf>5~9)%WN=C^(~w|P`}N-u z(Gi5chD430NNiO5&P%Qs4RER^sPUGjd8VNJ#;7(&QM`se1lJhVZiZ{S-$~{{#Qs21 z{-R z?SyhsMS2d*ro`p~7^B+U(7#z-5&x#fB+2xRYR~@!!gxf@yoaETYM%(f3&bjbo8t+_ zsFs>YJjkeaY9kn+pvu;tNd1qN@F1hwxhrFel&cw@6a-awV^sTc1V$JntqQQ3gsbLe zqgxo&7MdJU>0buc&QGt6YCC>~Gg3-F7}y9uy*8?yUe;CVKLEDSPp^$?uhoyJ*4_qe zmq~AoYH23%jcPl+;VRN)Ft7R2v{7yJNKEXdCP~*EP5=?S+GwNN8`zt1lRXZsB;jiC zXrtOpsEKb>OY@DitAb{XYIo1aM_QDwJN`&2uWwXaacx-8jAf1WF>O>kdy_Y)mJmio z^o?rIwT-GueL)x%&o`=Febq~M+E1sAYEL`_H7&Kl9Y38ms;v)WS1xDP7DlEvs*PY9 z%jGQPW7?>;T7s(@umNGJoZ6^%)DW*LyZGs}QSFm=A}ZZGemZSbn{K){1V1$C0@|qd zG7b&csP;2pdl9(9WD5GhH>y?rK&UaQJ+#zI_cx_^F)p1ks=c+wv%Jj?!efR+zq}l@ zQEdTC(!Nn`$0uT{Pz}LsbH8-jsP;q$q%%gf5$FquJ{sWzlZ+aXTT)FE#;CT$dy2gg z%suh!f;0wVkN_Yu-7X;Oexv3eAQSBR}!y+HBVg^?- zv{CKY<1Xh@2YAakjw(Kl8Q-Y3H(Z=jOZEYCEV1cH;wOTKuzGD9quL20RUH7y?D%M@u5&xLR_;oKIrKT}PwI%!E zrC$|{x`xGVXN+nq_5tA)fL#qCjRY9geg$(bISk+wLm&w%A7fOzqcGNUav3P=4XvX~w9whR=pk?WrMHB7r0);m>qp ztGa2U+NF<1m9#a$HW04fxQxT7_U>~rmHrU0AN};&sP-Dn=UA`)C$N7E{s5!eYRfVC zf+Tab#`_<^D~&d)U0oh;M8c~8t7&j!R9j^NMnwz6wZd z&GL)r%2kUHv2lSk(zf+$v3J! z`$xZCf&r_^1s_i@16^{d}WN@CZ;*DyvSgv>;gjeE8@kX^{V5HCogty~K z@kX_)@#>fZ!isnjOG?QBGsI9hi>*lVJ4hv1xp==S1+s?!VnUCeFSzMvHVqV#gYi6EZnCvKrJUJltOl49b;6^s?d8EZQCldjvLEDVsKY1}Cp22ePIRtAOO?Ae8 zchxJKbbBl1&9z@=6&jCi-=#v0;(hj2>6X`2{_+!eMf5jTO~)g0f5H~%&zA`2So5d_X5 zZ4<+YmzyF@6H__Mr^0}v{QRZ(>glzoU^eqqWnBD}^*TNZPkt%Vy*suSWVf3{JgF5jfB|jKw!K91B4^T{w91``xM`GeSsKQ(6u8Psg)bVp0`XfkrWWMYiN$ui z$^EmaLmXmwLQgt750cRHh`MSL)}b^W|pBN)m-hVkCyobe1 z0f3bZp;d7l7x5Vu7r-m#zs`uSkzGU3S{f=7JXv?0He`D8I>6zEK*f>FTBLFeNT&sC z1?6l|mKz$CDUKGFPAMG3%FjXh*3h_QEUoNg9ik!`DwVoBk*E9>l%PqaxB=BDMbrv|14x1m)y@IlZ{;R)3859XAnnj!k=x1%%^tA zFdR<*QiR8dJPPcT!CCK+Jh=p~I(S2n3MAPPQ0- z6j)({vl(ylyXAPj&g=c;j?&4A*D7&jL;PuG$ZUC=j0y1ZQW1ss0@l~Z$?`TCHp3sm zs|aT{1=vg=iHql{hgc1G~J;o);qBu^{C%YC-IO`b2EzBtb&j(ie-Y8f(H-X<@W z&is+M!8Bx=_jjCO{_S{N?LWMM zHyDJ`hD0S$o08<^mJ@>}o!jt3M6WWWp4>ZYqshn54KV*%^d4?vX?rkmQO1XB8A`JoqPqF#8@!OnNflL^nj0r1cK_B){5_JG)H2{Sgu;XyL}08$5YpC;_7=%Q0*-tvs`eInK`2Tj z9;d1am^32byblLCyaA~LLZf&|W_igbrZnlXiK$vlHpKfV^_y|(=A7w0px>K=KfdoN zTDX{-b7=SC`<^N_5yNW}^7?}E+eZDejs}IfIVZXUI$%K%1o-2I(~&sF_tf=rF`Q&u;#q@}RFU4s)SbSOjMlyduL;10 zBe3aeVXR*8qqsPXg^ z3(9*qWvlIP3&2B;Jc{UZ8dC2&ZGZb)GbFtQ%!WKpDo0a#ZGYQ-c|=S^L=M3D<0)JT zRYX*Rx<%O3Zz-<^@aCsGUs@o6((opPGIO`2Ou@>Su|8=r?va#AI7wj>s3``+y{UW2 z<9bTx-zXi-qgJKGjuBQo51bj2X1HT7jGPhe5oI*P+29Oa9zl|m2-Xt^fN9NecoI@w zL-bt@$*P2F&2Y7AVeu3qq|6Grc@Q|gB58ZyLOD^avcRfqTs80W#j@cu;;GgLd6EB1 zz}Vh*CXC6Hkgv(COxRSJlqM%o5USc}@Qgy7xFYqp0~o#e21ic;VvCx5Lo<>|TEQ#j zuy&l}d>@I3>Ax8lpgAIGCfFY2EB?qFlVOMVXQC!PCVQ`A<8I_Z$=~hXKcnW z0Fkc~j^o^M{GU+1J5VdTe9(QDBYJN81bU$&5d>CU!Z?O9NOxp0cqjOXCY_REW zb{@xtHocMI2VgBECN++S?sih3Ca3gU5%y?Q?NZpB)7|d`{|&Q%(||8%icsh==lh#V zz+E8j8@lbu4U5RtZ7kx>IxDi{#y4b|3b?SL&@W{H>5j@yHki3~!j9Fw;grIQjEd9% zgcd}n=8{a$bzwFn-f?!+QWARs9z+!GaHeGahNMW?8MjnorURcJFD5Jb<#geDxO-EV z+xt`CyW=_Om(RfHgIU(YMPuSPunUB9K0Ky)*G5lSaNYtK)6fs|h}hKr)qi{mUm*S0 zDkAE;CuL-Me;lMsCpa7}trB=-T37!5jQf`cb~A*S*6}Y8aNcqT;r%M0Y#X;lMFAbJ<~umSpl7|fRfO8s%EV99Ouxv0Q=pwS+D8F@cLr3EPAC!y5A}wm5MR3)c)F{0i`vA$$x8X;~q-miiT}^nEco zBXAaySY8=omUA6vt+E)vCkQPa9<#T>iHZBF_%+WdFfgp?`~*Re7j+dK>S3FNs=i7FT$@F zrY7h65m7-8leG-d>kWxb?m~a!s~>luHZEEVf2*M_UcjKd37FgNn>Q>gyP4ZH}R)FHtWb4)SmaI)ICXksbe9@{11|(?H$5Mf7@HYz&cmohHb8s}jmbkqP|tnuKsNQ< z6ROfI3OFCm#n>H=n0HMY`sF30t+(4Npgi8#1gL_L+b48}+=`fQ;}iaf9KF=EOLjX2 zGShr7ZQ`la-vpfX_}D?-MvODitA_lEimC`F0?u-{T#z{c<~M|&eZpz@UwaYHXC;8o z8UjgBSt~KW1e~X^zL9Of=w(M_qrtDU?r+HX$B?Jy+#Fz}O_qw2+{Q|?niXZF7y=_UxlLAvr>H$`e5bXI=k zk#d4iz>ug+*o9rQh1)gg46BdgR0dej5V+^413cEupz|AEv$8E1-3*JxsEPlBpfd-C zs5BzvC=ezP=?@a1UMAfF1?gR>F0yj*ap!4#&`cz`0e`j><*`=> zooTQeAd)2?Be!dy_)@&cB!A-W z_OYG3XCq9KCBUpiY`;+KUebLn@WgsQ$tc^Y-pggCYzKOGoq<=6{R2_a$+lC%#Y<@< zz)A50`Xt_60#{D>n3oDCm*LNP;`sS8XS40xtr1fh?FW98I5e14MuFG2qs4dG&heqH z5_AoOTUwA%_(9uocZHRZj6-q$iQtWhe7|Ev9k-qG*bH((N&+iKIFIiD;}>nGH!N+b zU1URG%}n}G#UGIWZQGgj6uP1t;``~eUSBaGlHiQ&h`C}Sz}bfIFHa`9sRX$boFdmT zYp(&g#Sm0)GofgL)0MnWe+%#@Lr@aR{)FLBBf(kv0m^U<;4MuMp@Dr-z7`420BmVx z`eE3@BdEINq@&Ng2kZc}n>_6l0aRJTlAkXw0iVCRvlE;(cfyMK0$8ucGr1^=xg^0^ zy~>+>hJrOYo~fot%G}+W;2e1wet~HkTLIRNc&0z)^7*Hm=r}jadxDRHdLfRk4oTfd z9jC1>ryPz$1_U*#xJL9x`2cXsI?jy`(ddtYQQWZTEu+jh+@~EUwg4}JrvN^y38LCo zoHn>E9p~+@qiO;18Zcgssh3){Tr>@IaGY6irAu|NMiW6Egy2NpIkXEDp*@35@u7ry zQsf;e?M7XqFiS_wRs>aIZvNyW`|t{^W>Gq8|ia1MO}cRfM+O#Y(GT$Qj%cvr(pzIEX+{ zEzFtaBp;)BFWTMrtMP4>1ztU#!#CRH#Zs%q%W4E#FM-fCj>N4ZLjMd+5P4fjd(B7a zlwn|uH!Pmz11m6p=j|o!FN-UsjI{)Wm6{|1FaJ$*bjaD+)yrxRu)`YnX1=vkutDk* za)!ba2i3y548qNLQs|d;F_E`(z^-r#t(f>WralB!b1q6~7`*c39Uidz{D8JA3b6b= zgkP|&b|;0LyVyWl4FI;dhp?(T$}uzKtmul`_5e8G9zw}A7-8=P>@8m)i^%}z#}Oo- zvxb^ig_tEF=dG3Kqm5wfF)UtGsvRb?)`7JUr8x=4m3Wrgt#%?=`$JA?xFff0tV}W? zs9L9y#jFz{=cUWYu@D&L<5?^#kxv0S1PaqGDO4BxoxCTd(*)W!s|)CT5ZGFV{*&!f zti`>2_~-q$Jae#!D_?yOz8XFWU!=urOp1y68D5TTAB_<%UlAE5ClLe2J-Gc0gU zJ%fpR52PPPupG=GYSF9k#m@HKn4m5KyJm1+@8%@UUxqK753&7a^QhP;D8Uh|WSWQA zwMoGS%MuQsC0Qi9 zz1B@+fVD;BB!pH0T2nLBOCtlUEPB2GtOerRYfKiP)XCGaqs;JuRW$&76tD>hl`}!H zNL||FN9fa3Bh8fE3dBS!+&w4fgYuCUqqaO|)Ksp8O%IO-dnP(J^(HJ_>C4#(mrOU#$EFW@A$@WnIW6ef=O zayI)Uc+iKG&qz{7&ffcSc4}Q$e2dthG$LR3;W1Y34zBnU&>aK!^Wh0r_(R-qgFLe% zuw40;4^Oe?VmVtBP?b1XvIzciwliEC*VUkRMyS7>ZG(#0R3Y=_?D2OZVkG1bMdUk_ zYAj`DzMLKNJXB|hnFnYw!P5ygU(Qmq*c5NRoP8Pg#uV`_!V#0ed^vj(7rMzSh`&x4 z=ViW}O^5F=+;Nx$5g3y5DKqosY!#UF6a-ev;CybRa18fR$uQLf)+`QJLd=)5NibfL z-N5K)SWEm|@a60=s52%2n`Llre)HvQB`6zL0o!J9N}sl<_;R*M75I|};hZ5+Riw&E ze>uA+YfRh%!Nz04^;Ml^zMLI{@!@|tn;tt5dO98h`w5*w9j%!!XOB;G#WTQK7@Sgg z=WqJU*`??3itPc$0K?*T80X~HY=aUsg=eqzYqh89C!I#>)visIqb z7(Y-ru7Q{$H98^6C>*zEL(kShe0>CK*dbtA;ka@pCc3tW?xrC*o^Y*jEWIZz-bI9z zqd<5!o}@oT%>^y8T&OYc!Lq47^)J1N36J~+Jv9@#l5D7BQA0)h8 z6o-J82yz2etUG?G$M)e-GDd~A3B14ahaRo)!UsA(F1e)tKEV0IqtNIcG;B(%ax~5# z(uHG!%J3UOTd7*c`NP*eVq8!M)lraf{y_CDm3=d62v-h^aV%UH94NoL2|7*W^-M*? zsP&AhC@K0RFKS9H>Vbst8#HHcMD$3T&}XW#PR${zAH$|2wdQ%{kmmek-yzKg9Cyt_ z`o#!VQ*t4r9n#Eh5EGvwcDF|29n!poXqzzYkY)q)V)Xw%5N;q?uaGnz>TpP7w3%>7 z^Tw4hGqRx^xez=i^|rI!*Ji>Y%|8Vq%%~1l9mCWPX&##&7G04^Yaks66soe1<&;PE@%<+Os|IvR+$s=c@V5>-vZOm^fg?|Ax=0LC6H)N=ti6AMM8{kq# z=CV!P$fMuk-4;^6&>NN85e-MS6yKhh&{BM9eArT)gKyVTxLn#y?kXk$PjF9|vq&o(GuK=lU5?PA~X(?8~H4%4PVxgAe0z}MXgj`E; z&JS5?9^}6a#|7k?PtROS@mow&GVmXR^f}4PNOmnnDGPLWEyaUZW(x2G9HY-z2G>#? zj1d8SI@~LeCVsh=;v6hb7sgm5g^;jMiDrG%xc@Fw|_;7^OwEx&&pYboPTfqw9=_ zs>_cipvnhBCm)QMd@y6l$J6#>J3eYtx{BodorzOq=3(7#wizpE_$}*j??GLJzWL38h9e#Fc+RL#Gi50a%B*k!~GIV(>n-|`QGfAI1e9|R(qrx zp5xkoA6w1zop5>B@$f5P;IcBAaWC~_yk*-ydy+0C zwS`BV;XX6sr&mQ#_rc|N$9;f7H4$wP@w+!>L{FOxD}hHMs(&ZKh-e(~f2ssTZ4jF} z07V$Ti%KwCM|}Sc)cpY5=s=VrpkRx!APXY?E$9pl25Rg{kYlg8h*MMf%1M$5>U5#vS!k0RuII`Mwtd&6*T^|8LJr_jN6lj@5&Ry+|`!GwL zV2Do#y|TqtVWxevanSR|3o`|&zXN=m zWie|lvR}Zl>9;#{T^#7VCQU#(V+tx)Jdr4y#xe<BwV9194>KdTcC0$B^p|^6|3a#%hx4nDLYJegw29LOLgjv!99jrLnEIME%3q*sRm1p;d<`P+^025yfp$ zzcrf55`;X^>X2?!$g$(>eNq3>7QrNP0caf@z1Wo(qIq_K*QF~&UkB#_B!wX?!2#p! zDLQ|YWL++8%q|-9*Ws8RBK0$PO)td4apUZ%y8g2vOK!}6w+-%ZB+Ey5Z6FH+80dkM z%-J{>yz}{}PxpcNdoq9%$l1+fekz7<#NVRNqcX*l5LCfj8uOpQ<@VyyIiNQsCiF-q zk+ZLf`SUSTAcDF9(A^3$lg!yS#{5@Mltsuu(1utcSY3>9?(92a{%Guy6aI;yO%3^l zJ_P*ewh8}Rpe+yiE3j&NBIZAe*nv%mKIU(v(Vqd^>J0cPGe``i@&t=X73n+x|P zmL~Z-D8`)p&2EfOEC>+RVrF!a)*Ww6SNaG7!V5+}sn|TaQCw zBBg<-=}@A!P)9O-ncFMkeT=#BNDIK)IjGnlnZC?@HR8STjcNErZUCU41*zyVoKczE z8EasFGD?m-3feQ4ZgPZ4=RH^}oBc(Kzv3s8&XM^*y>~L?%1S5#n^OD*XB(p$`4*^s zM7naSBSWBanVrwxp5lLs2}_1IlJyeohr~}>QZhTAy+6etjz*UNsuPeS`J6Mw*(Xx` zk1>i8X$toOJf@_u0jXrBICrks@iUX%BE3NG=P*=dfLZKa8!_1@@(Ab?k}z6;MR^fd zc8>4Yo|LZU0kG78q+KNqV*{$-`_Ev_`)2@bO$M3P)Ztq(j64VXGnXQHQ&7#8#3SPc z{A0!oOf)35WxSx++1R_4dyD@7CUA8_z*<=z{z>E!xQv&w^(ot&q&x1hKho&*p_t5E zj~$$i(l890TlWTt!-(_(2(cs5WINf2G>w@Zk^XXJFd{9ZAn~U!Lf)jM1xU4S0{ql4-$~hcDC|?q_}v;CNm817D@4)_l~@T8sY^G`=76>pY|XMEjuTNWbX9_oHf}-my+A zxS#VPFsZ7>#jSAg2K-O0QLSjNxW=mdJ(*i(VRW^`X%SWa-t5mG%Tx;gQ}9Gy zVCFWILD}Q>;$B&}V!4K)nA`lC3FFZ04|r=pL(p0|`paZD^arwkehBG%1!&hf`hrmW zBYr7NYYzlzgd=m2ir$8o%KH@xEM) zRsN+cxk|4_-`-J)zlt^6rv!-`&!C$4@f|odqdab2OPPa?EuB;}N4#sN{jD3b1Y3MI zq%Nm_hSX8}PhOlUq*^4sPg2pP6H-+9OLcbsrcBiW&Ta5SJ|d}?kS^ER&9TDh8aUr* zNk)g~2)(<`uEUnm5D-T?fXJRDyLZa>(m6L_9F!q>5r9{dK_&p#YyXCGGt?^3);szJ zh9dQj8xTNT=X2d7DD68y{M7*@a-o*GW&VbuEUHu9Hs~~dBWoh=&8iALxxHD}FM-_n zDvbXKtwkbDjwx?76bs~2%V$I~8q9@$DGI~H#j|3n{Ln~tT`p44{lRrFp2)WdrQXG$ z8pMNR@zl>r7vo{5plbO0Fc?vJv#W==&CcecK(NX1}&qGjg z0ZHR|5w`(yLtXf}0iy)m z8zB4Mlc^5Dp*+adlOeJJk|#dk!)}0NgyJ_zb z%^dPFG6vCT@b<%U!=f89DC%FfxpqaXM?Vi~^B9D(kfcSN+vd6-%RcmbAg*(OlJw7Q zbA1~AR)xz>&<{9Fdwd0$hqeC;mgo_aj}wpqwp~Ob(K+}+vZB8#jo9h_)vw@Ajhdtq7?t?r&N=} z-gh)qcC0l`J%g%IKGKRsnR{ja}#TAelc!Xlk?y*+> zr`ZV28KBj0^hsp5R{k>@ux6lL?C8&j;vezv#e%Z#AoX|Te_Hu@xQB=*)QkW|&m_0C z@{7*O63TQ^#9wRW<*=a8eu-rdz{d_0$5&|O zr_@GheuUG02Ov*q<;xh+p^{uB4!qZv(iq^7*(!O3I*c z#qaw*(Cc*$1iemK4u9jd2L*b4Ad&VeX}Q&I$da-=qq{*;!D!lOq1wvMYfMbETABar3B=_$%mdN!gvX0C|f} z31xQ^Hd_+=CZ*P=f3EC~U5m?;K>C!VCM3DCd-YpcY6qP6;)%2%$(7w*N74R;M;Um8 zWOV4t?w=c=q>3P(^=hG zQw|`J3$Z$^Ews&VK))1~ zP!(tS3l=R3r8M7XkB84DI~B4bwodO6S%1SKrH zhn5DQK>$4JKwlH&T4+yVsk@#6;%oJ-aXi{iR5@|OG?TP|4&nUd7qe1xB z7+Vp;z+0nLymA*dkmh)qk2ug=uLPTq0^)~?XMDqI9-w)NpqeiSlK6q~$)XGjy!*_7 z;2rPa5=p$UO~p5S9Q0m)O9V|@5JXrO>clHY0pe1N=8K>eyP~P&dkIS|{yM`~v4t4= z$D?0l+P1(~xYXjpceL_IJo!?K;RjQM{mvwI&Ann!g z9g^lSQ@EuTMep||pqm`YEn@21I8_xxEM-B3Tf`KBOR$JZ;&zfnOeH*D)lXzJS|HL) z!%_n(ex;(mk#g5lmF&6KMDn`P0)D96=63^xF2M7^oU9AL~+lv(afyH08*q8 zBez$?2RzBb@?12t2C0;lNWJ_{WaJ8cBbjYTr2wM`x#K4O&fApyr=Qsm1fz!&esL~E zlyJ(L#CWWFP#VWN5F&FyM{Pih+3ATF`-G(mky%QAWKLT|>~E=q$ef0QWdU3|j?xgB zZwRDFBZfc~|Fi@RA|i8?RLV-E#+SnrMyBLjpi)4Ps0fRSH!Hz1i;~s|R9E9uu7rfW zH1uxX0jS)KnR09-&(UOB$EqCF@}c5QI9yWhrdZ~?^n#Lt8!Y-`7wLiw#e{wou4C~; zeqsrep(S(6#qBY_LsQc-od^0NhmqEXghH~GN8jU1Xf+w$z4+(C8}u~>C?2%~bq%7r zpx2zY5uQ-5Toh_D$vw>5=#OBYQ}mioAVr#J6R6@3qg5<=?LaDJB~nwiz!U1VAE^{z z^t$^;O74tKx@3~EAh=Azg{BfCS#cVF@9^D6+rG_)H@hF z{RPcGoJ-RKG|$t9GIr;KW@A@xO&Gi3rPI}Epq+z9r@Pn@;$nADVz=@D zy@4eh0H}){YheisKUDlFtiO`jjdLKxu5o$*l6p0F%4p;O#O^&{Z0uNN7m6LZRPH4> z5UOa^TA2%$p#eRt^wa&eVJQ;Ka+SmldD(8-^!aU5m&~tWWIyEW_ zf6R58bMI&QK(5{jUR#cltDk(@3vx9_tAe4u+#^^}NGqk^!Nzx5sbgp2gI0>eR4QHs z`!RL7`(l}W0H{fkftA9nV@E$zH9$aXfz$v`q$&RBUp@q%u~HAk{I0{(1=9)is~zSz zF)=kdO}tYceUEQ#6_m0O_~%O5cc?~D%CgFWhJr#wQO@)m)X8n5vetvhOxdJyGml1cjl>mzqG<~G`E%4bh{7g!(W zrb6YDT&h)P)cL7pVzG?p-^1zoMQ=ma^kdo59*CrVbp(?jWn%v3KVTNdLEI!fk*gTO z^MzJE=6^K`L3$nTOD#?FOO;4H4(6;_Im*(}Bkf_&tH%6icV`MxZwF`(S^7|%tUM@F zDpvXp1Vcx84QUyy5cm{Le}Z(ecX1#Vo&e1@ahYOPHm@QrgR>~|u%3V*-3+hR4jtuX zq-D;I`E#(y?>6|Rdw_O5=@Jz~Z-~?Sm!~T#O%Da_F-tegx1+prw9ExD|9dP279lSI zFxP^Vp|^?o1vs8TguD;hrAhWb-TSYLtE%{5o zpOC*;yj7UL)?WfEcLdDG>CruiWthJv;-np&y%POjJVMj_3iB6bh57679xM?CUAM%m zfGiJDoXcN12u7H{COn=YAblH<_k?Jhzl>~~zqY-eDIh%!$Qcgp@>dnqo}=KKUIE%_ z(j_V`f6c_=1*%B@0NP$lFOG(o((EIbil_9ZM6}1$YAX?~P1h-q8JM`Y4h4fF0s9HE zBLO@_(QUf;bPJAO1+@_#J&j4$7GL2=01tNbNIdySz>L*~eMl0!=HGuA33%&i?16A- zdTo4kBLNHgVKp+G*N`-WT6H4uzGn14T zf@YKQmt|p6R{1PNl>)5^9zD+`B_S>;kHgp0_{9sEn^1=i1k@#ExnV(4%0ZsF^L{ri z_!;yrs6$WE#wC|(wE!zt#K!ITFu}%2cPX@SPq#*TZ-Th*@kHh`gsu+VxQX@;?rKdy z)BFl;9A$+z?q%%mAYE6(s}@<7QJk}J<<^4c>d>)|Cn!`X|zDrz&HIOXmd!Hs5l$f9s5hDG`$M6^_E`9#@&Ra6blPu!Vv-nSsGV>!>7D3{< zT**GYbkDf$Q^ntS3i*VFu!aMnqLp!h_>-9Rl(uaf&}wqsi{a#Cq>4Y3M=IL3eMlvH z67^1+8MJL5CY1tA+g26}#Xqk>Uomzx2Lux|j2&^cj|5GY{p9|IMZN6jP5Q|8+s^Ud z!hw|^foC(G$S2gaY%1kn*U#hLNZZf59g}XyK}>-RgWm)u*UwwA7l&ViRK=2$`*|;4 zk*U51z6r<|Sx9m}&wmOA!1nVRUV}S0fxiXV+burq=gEfIu%E|32mL(R9vQ!&T41df zf!AmSgA!dhm7IGXdlIO34ufQk)n0gI8~oET;J6C3J$Q6<6Ii6)Aw=0Tac6@TZ&QF| zqy6u`4xU*1UuSKC{ok+whh~2a`;SLo1X;Q*zC!!oJdgGtPA9kjXElNS2X#miyXN12 zvHx3ZrmL47n!LtGXaApHg^PXQyoRK9jGeRp-LXTEVcF(L^+uwp!tJb+{>V~w5K9>e zW-nM)!Igwd8IIJK;YfTL8EH4M+=4!=CPi~OiayHG{CXGRT0`#B`{3Giby=dYkjLa~ zYDL9!bJ%M`p&Lf^%D@taJ60hLC1;<_^oYOMmDwMl*@>X~c7E}?j{$1+;F=Uu1^l!= zp$d>O;;;&cU5;$=Eu{R2CvpWfE2^ zB-tvU@%Mq|zW`uMvZQbt!K1q36R)I2fpt&&)aFK5cNx0KZNfocESPKw(#aM~^5$;4 zV3Ly#BAbpXK7dmcv>~HEORyolC)c$h8+FfAogjG#9{mjU@g%-N8#4Yf*bov=ZbKHn zlrHQmlh`%?{)-JMo{^;vI5fRBJ~|t+VIB^9hjS*vtfwGEp$$oU1lvbIs_IDfdU~m1 zLvkyms~&I`8^S>yu^}DcV(zsvag*FG1NHT8oo%+nzt{|GjuRO}q_G#&046P(uolJG z-ZEhAKoiFHCb+RZiZytP2${*5z4Rm)xN%kvg@w^$&?TnFa?Mz#& zO(RJEg4Yp;c6MgX51HyGX2v34U=bJ|6BTD?t^u8D)3rfsXz7LQOqELmA)NuZ!h%9O zlM1>BxdXHzmR`utoLGV*Xz0^K0A3`BTG0Fo?aae70C2-K?e7Tu{TQIH$-;CnEY8l1 zL&rhn9suA^fIkjR0s(P$)@kfn*Vnp2hFONdRJJ zZUxTdOV}A%>zrG1EojJ&(?GJ>@fZdLZFW2l-y)Bj+f@7j)^SLI_yqWb0?`9K=x_?h z7Koc{@%b|u-36UAgXV;P8MCG$K50TwIamD31{0Mt+dfi!Ix`=}d*GHL2|#;*5&|%1 zl@*yd+CK3CSlG%JWqtv0Uh_O(RlX!`r#2(XPr)rV`9@>-!*OP*$mAuJd0zc!I=P;} z)=iF3tg&1is0fFzWq?Lr1gRQt|CnN~rBLyrIQ~_d6Gy@7tirMMAX=|gKszQrk0({J z%~5Vc0_e_+0CX3QBUSPDUc{<|YL#`>S^&MJRs0?EF5?OYr`1aA5pEL4z}v3zD$W7~&8fL=)yUFGMX)7%K^R`DHN zo=g9~NCeG%H~{UE>oa~!r6i1d9CaX!d$`G4GdsMj0b&wq63OiGH9CN2Vo_?Oc_iY$ zi@Ta&p3Z@z`dU5xf0~<3`RXPU-}_)bsM-w{eKNH>?F>xE^}^6a3?53rPNp3fUwyLpHhOOyng&y_ zz#>vrdpo`}f$ac+&g$vr>>o(p$eE5w(8vhwy@m-5x;zPB=s`;NHf_W?rF(nxA#CAG z<Ho+NEpNsZQ@=#L z{+rSSS?QY~I%JD|i(!105`9N6WQUwwoU$8PsJ<lOz4_4enoiQj-c!xz7}-*DZ#Ltczv zPAeu2sJ<`__)j#dO_}U=2v?*cp$BfsP^3+<;c!5ebK+K`m1@tKQvQL(NU9#@31>!F zi(?24v~oW-!OKz?aIoyJMEf?lab` zAzkuM*{rpVY_ketufZCkq?PhDFvz7i>Yhwfa!+lY28%v?59~phX)T-VNz?KY>$G+^!km}!oaB-@7o;m5G0`0og`Y-U zi)GLGtPYIaXWIKL50~&Ew~rSLQiHi(Qp1%2DG0`j44OGMgW>$ahLKJ4&kr6>-p&j&d}xBgm&$2@Wg@g;BQcdj z+MN&}5fos*Ujwwtx#C7sNvy-d9MTph`6Q*4&Z0`;O@67I0lYn=wDzt%X2SGMl21gd zyuq04fGX?#ouWA1bOI1jC1Pw+3<|@k4dug6nEGc@4P4g^BeorEE?xdt+s2Hy?HSV=NZlI5L2Mf*m|=fLWvKGi zJa0Et!Ula~U_#qgjhp4pg_BuTqh-@r-dd~%Ku$bzYnEz#B&u!$y--f%q6o=}Vl|`< zoA+`t=e^P`gG!2?f!oZEM%4t+3n|GJS5cDm zA@U|*Z6%a+cTT3F!`n8X{G$&;j>`LOQ5y62zzee!7o&Y=Azas{FNTZCt1?WAz@xAE zN><}-3!=+~eflY`&&zu*HBFs4*}JEGn&RMiB@5v&yO!bdoHX>!8S4^pvx(?(U<$>$ zBba}Ji|d8wtn=YICprh!p46oA-Q=P8wieaEs_$ZQzO>xeC6h{abpwVJDO zrd$8Hut#^}`kb6Job?^4sJ-QLvZS*5in8M9iLquv*6A-bi>aqro2Z;O*Pz(|OSb=f z(_$;RJ+Z`yB_mKQnbbeYFO~ECVoZdfeRvs;DA#@AJUQyEMZcM{|4IylWNHaaauhWWDpWZ&u7GKQ9qrT9RL{9P65<)u#W!Ik4T63% zNeuQWYEX8cPg)m~pmKUQMzSCwzg&v_tf;Z4P$UzQeshn?dIWQBl`D9#T0c7URAcDfige?678v6876}0>;l?k~oCr#A> zP7+d@5}X^Q)W8?Yr1wjyMr zR9+0S$}7zl!borPd|z4!U)q3%Erc9D2dR2p#Or^bsU1t~O3>Q>QjyQ;i#`ULIvbCh zio8pbfd8R>zH~nhPDb0lE@p{X8{Z27Qhr=TuJVSmeje$q#asvL=jQ+sjfeGf!QaO+ zSr3fH0*p@$xvq4~q#k%5E@fme!>nbL)haoQd|c3sdZ0!nGvM-v^|?@eU2ip7Ijjfr z-oia&KLvhMoD>;;NIh^N*29NuCG}d=<|?N)MirTK6LAg_>(HBpA4$i$RFclsteQ@y zlae>88q%Y{>x(7@tJu-jSN_qHuwh)~M9^QTJS*y*GtG>deF=<=nXwjfV`e9-p%SX8 z>HAZpRNoaWNAyhl(ol5uPY9iXYCQ+9cUn-_NdC*W2E;R7N)ZHINw4N zYLB5fDgxH~;|0Fd9@kok)E-qhewcSD4g5%N_65ek53`U21K+HT$*F)zm zsFX`5g$+;XjU>NR&Ldb-!R)rBK9+exz-|bT2s@xE*xwIncAt0F^XaPO9*~>i^na3L zoq`WzZ|S58PQMZ6`jEF}95NBX&RlPWAqtJN6K{Gu^)}#$hU%@gmyJ_2hyE9zbdd5^ zqJvcVc5e(WJD`PLNG^_%vVSD$Eq0s#68c9u6|ps<@;gy)R&6t)aNM#<{lq1_^1+6T z9L6U?!j~BT!4GUg>$jIT07IQ+_6Et%aZfFSpMxsDh{zoB+JY2XI>tY=@?xpwB`lq8 z{4q=7fB%2+2z>DSXx$(Hb1)z~$p(OtEGp?ipfmnd zNoeXr7Kucssm~adjQ%ekfxDXh{G) z-*rOX(;ud&7CpVG@2034?XcpNo>7U_hr;@WFBxRbdt#QaYOnKhr(pIF;I|3BsYd|b z$OQofDVSNTcr6+eDQc6103#RDagzywykk)@O`o4-*1P|i1Tp=wt?N()z}U8LWu_XM z{|sMP_$a|mHJq#(kjli=1@*BOkBV;4JX83tqYx@uFeWUW(D6eduTatql})n#u-_;C zNOj@Hy-aoC^1|hdkr&iorj>VX$8<&h?RX?Fa70(~f(-47pzw7+h$`pYt|o}T*EZEv z>MubM9Z=;JS%r${c5lkc6saZ7C*(ipYI2%Cjm{M8(5Ur>?IFwdf2gkVS|hDdi7d(Y z6?ZetfDDNlH%92QxW6Iq>$b?D1>U@_S&Fk#A6f|i=*3)^lJ_91qLJSB_nWF{pM@k; zMQ6hfz@y(bW-6{dD)MXK5tkdu!YNfR%TLFm72nGko28n7o^1K=VvA0UKEG7XS=T_Z zFGjo<-ZT}{9pqpEl8WVDtE-_qvsC;R-|IinbZB1thes!?Vx;L`aNTJcD&EeUdm>Bi zBO7y?`1Wr#lLS|I>-`Wzt@f1m#tg_(6%G`RTp>TDdaC!akD!i7@jk~6^~?W@CG;w% z(u7P^xvus)V2Y9T&Sdibqh6C_mflHn1sC*A7H>r3{p*;wqg|HNhaWWR*kyhx9K*W=Q0Sj-XB`am;NT~#-lYFB=$@x=IzT(G zH(99nQ?iJM!q@50Sw`<;|I05^i++N;wy5(D{tKSq#XhXNWWGJ{51wCLpNwBB=gOh5 z-pI4>d|*0Z)ea#x%(D_3=2;P&{8D-Au*?Q^b$xU@YPXN6i@_yH5q6Cx>vrRzpFpp} zDE2?=Na+a;N}ncqdMR0w^m?*tRRSh_om!%w!~DGWzx*;)aoIUWuN4me&q2$phfW&I z;-Q76k9HYZnT^>Y6U!~tX`wz^&bhxK_romi#MU1Ip0#ZJ z)Gq8}eEK}@0J{xi z@(-iae>c`Q9|jXS8vycdIbFI?D>mUc(YK=N za~lBu(On=%<@Llc5t3}ys4S_1Q!#QW0XXIQft;5Pnt7 z74J6#yiZvnNfo`Mht$@|HNKYGIs+rNQR9C=~jk)%baTun;yY& z>>XgWp7nbWZT@j=lI6HxU78pPFXOcg=x+9Ie%TD@wt$R6X_7pkE4$(HHevz~S?L6T2QZO8QZo`{oejVkXlYiG zIbvEc?_i5Zyq@o!{~V4%`kz>Go*MyQ9`wD1V@!X)^s)cRr(Nw)p+4bzZE<5ohyP+p zX!sn!aD3$!+FOS)4K_^1k(V_F|42@kk5l%{I~Cv{A!=ro^;qiWlk~k!`=Z(sqm@Jd z6MV9MGWQIupkx{|12EoLLrh^NU(CMc0+=~bWM26)aBQc_a99F zF0gm(kF?yxE?vG##;zzZ$*80UaxyH(Cm zbW^;`N_*3=L7lUb2N)_T(jf!BFc(xEht3D-z8TzI8S*WD(7UivV-3ywdnMzm};4 zi~SY&m{fO)k5d08SE8o=&G~sPMv&oS-&vV5p4${c9Eiq*6X_&0) zX|Xc8Dcj3)?!zD)EyBDJrmmT31NDFDBj4FDi*>|8Oa=4gskPQ09x9-o>lZ)XXH7I?rXw!V_7`QOM@Y zS`IP%1yiu~2>ET^^_l7;^4lTKgq35Rb~b_;M7WMw4^C~;o*r+)RA0d`yPir?cxcB= z&ruA5ghy=K;5h5eUf#fuW9lmKOa9=QD}E}EV9|2?N~g1@!e}Buk0tqVlJP=g0B_y_ z0|+IpNrEQ@sF0bG015NpWmijp+I|vK`)z=DQjDL?m}=~uo+ z)LA0`5B-vY-3M{n#}ID^)`oW>Ka(Q41EX@vug_BH<+azkuUR$mB!Hr$|LkJq>};5- z(i&-hGCIvPZLfn>>rEIH=1b+xI7doCr%y5z51IbbO6DJ3_gg|1Zxs_a5{DS^>!Q~=W$SP*pTs${&^QdmNVcCbV`wocV1)6 z+#lAT|4Unc0|t`d&n)yCxSgeJG|&M5=+S$qfmXLb14F#AICrcW$f5x^WEjk8mBa`j z#9ZIjS6qnE%Zh2qX8eL*DW)kVkRYb!=PBwDD~7f&;e?UA5#NZIPu}nqPiUKC#qf`Q z`w+zB6`P6x_wp1LF8_Qurq)@AoNOa!ze(QlFV_AS-K5%0V)X{tVG?$8-?e2%Q!mQ&^P`jwL`)~suq;=Z^m0G51F z^JPT)=3@-+^RvX*zKUJw+&?$SLb%ON&k#uesv@P<&1s7J?50_WY`XhFAfMq(ap-pq zx}{wIx6(rRM?do?JgV2~JD8c*d~f23boCqP|80-+#^WSC=yLc^X{uMcr%v~R;3uqD z@G$6x>_7FjOm#8H&f-cm3#}-S`J_&bO2hsl9QP9L4C=qOT8}(t;Isb$FJ$G!z!l_R zGbzHe8)Jf-ZFp#QBs_)YL1X}>;L93PfCpl0URFvF17=_0C^T9w{ojIBbA;p9nZ9aj zIg&f3VZN02h}^BZX8dSzyje;%`4$*F!-tbwFOdkDCMJpg$d z(~!iqy*((2_0cPw0kQ<~^lHdU-Qc3~@>@wR=++uW0h7faS_sAI74gC;q z0lH&w*k>W^%$kGM@}i4m4Da<1lzRAFPZjY4k9cE%mTLnfsQz*PZ**5FyA~k2Z+%oC ze5rc7aPeaN?_%CJSP6S6Xt7q9l4L;5>cf}byyH|YVaPJyMxNtxV9v<~F3ES`%? zOfdF_wG@#p-X%?a^&lWeEQHr0Xu8Nt<=y-V76`2N-T<7g<*=woL>0niUxU?KO<%~Z z4*D=1#}0_r_;TuKYWo=~FB?nb)31&$z;aC9tkMH8bF<$lee4@dM8;y#GqBW1+ADl1 z^}T+ulUB9L=nU%O2i^O8Pt_``n?JAlegp!Z)Sphm1W=`n3yWZ2q8dyxZlp`!56aUz zy#w}Odwq$NvBk=08({IHTPBZy)ZjpFt z>@CTGLm51g+Jh0ofkJBRwZQhlT5xS(DOy^jPwVOs>5>j8S~`f0&z%o5C1 z(?~|@{s2`-7-S)s^0=lt_g)w?tuIMG0;Xp2r+twh?m`%zfx{H~)KJ18q|3ayIFfum zT$fpj4MW8%5Qc94`^`;J+YWlndhG%edA$_$Af}xG!F{5fy~=Ha#r;}8m^lEA+%s>$ zf?7SSsFb08Tb{w6NBqhl)W#F(xB+nx(xbZRQG|R{8WXJxXxHNr%}XJs=J{bbT+uWO zwMBqOW1hQztMPg-xUJVx+O5}9L70OlatFN@Qj*u7fwmRTNxT-0LSBmik1hAyS9lPE zUY^ORAmjDBL9DMuxzwxtG9XmJ6M2zyi$)3lggJG2CKsmLuo^W5VOqgNqK_n(0CGmd2RDx}%|EI2Q4q(HBCUk|@t6TN-|+8#Vk zoi5PEAIS)^a!)##;%#n~Us2K!)@i4OVKvGN!df1L>Ubi5gnA9a+5pZi9m(i52y16J zcXy;fuL)rt4%&D;Ckdf->tg$ zjd!WKUqyfXOeqSON|7vS*#f8mnyC znx{>~NLl_f-C--sHq5vuJF1E`sSiX4fA}j`?@@Eu6br zl0HZ1jmg^0uYU!quv><~qRKWa!-j`8+&%oEP}M>}^|yHK!ehAkrAqS-!Lk>W;Z0Av ze8w&C?t1?#9e9_8xR%2sQPcd=Zw)0E?`199#9Yf-tSdU8W$*SgXCg(K0@L1cFmA%8 z%JT-tvcvoXy&@t}-vCfQ0vQw2$lwZaHPHHiXnvfo!TA=ir*f=?`Og9LHyQig%>usmGxBVYm1*q(~1M6+2GWdGl&IO zw2G@cr%%_abl>=%QV2crUc(CAptD=z->=5W zfc(F#Ea(H`ubde(|8F}ORi$r_H#+Ref7$(Ax?#O)9iWf<;g=j_Q@T;TOA*9uCUNP; z_3D9`&2%W;q~23>XFe$1tX=_{_1R3-(#`92z<2IU4@Y#CzWcO&6jY+tX{z)+%`X76 zH0(s@Za7%A>e)i!kb|Ppj5;N-)kDstEFR64iP=c%_$Sd0st_$R>?st5>c!Crz!O>b zF|>2O&?-g!0e2%`w}N{IOVhF{%N$!!Hk#jplZ@tstU6KuwA>Uy>U#hmOqMMaC-)+k zDHqMJFK9Wo;2a1?wjfB)z-yjEn_~&ii~8GBakDx2^=i;QCS3w&=uM;kEq+8XFX)}1 z9kBGoV+&eF{bMf%LNaooFg$?}IR)_IsNZpVAfyIp=URFoL=FY$5cSK}3*yxQfGY`N zyfnXpV+-QZ^EeG299z&i>en9;`1=q*qsYR*8>fbZVQ%pWx3fZ9?9+Ny$Q881< zj@XtcH_BtETD56}BWsy``XlSR>?7TvF#EjE9ke$~lcSHv7z3Ye0Gjkb524WuLU=o*E8*?Ulqv zI6NkBF8fqj=BavM(^WvLW9fymPf1)fCPE4T=wLy?sTasTxqVWMkiMYZY3YTs&#ilc zc#Q_&S%MfZ&95-~?2yRGA*IMZH%<%ueGi~@WT9pai_1QprUstx0^lG)poJI1W7jgsL?US zfgvgVG@PeelFk!)(2UwX8j*VgwB?qb+>ELNaL^FC$}fAZCpf(W;9tqmh-7}bW>j;! z*k;s)A$Jdd0|p&V0IDk?=(X?|ZhpCDR3~8wno*N(4!r9ONN+MQYMNiCXhvOC3zh3| zV8%NR#!c8B{Gfdkw14V1P)Y5d zqc`cK_D?a3586NFQ7qU#vhAPh@3Z{_zij)bGlFQ_Id{Q(+s?Tk-?^1rn|98ZWC+?h z=R$(Cb3`f9&S9)nqi3dT)oAGfWXP}4No0oXP%g}nUmQawO)rayP&|>6lM#KJAs0Oi zcojI;u_Rqq=s||O=29eIE6_SvdUA%$1=wZC3wL;e({};<02!*0%rBQAYthAK$aDC| zw(EaNjj2(9>NoIOj>mBG%Vo%hlgSWd$oHzFQ39&of!7f{5;e`QQ)I|7?O}#WK|59P z7!DCaHkTn+48evH%4r5rYXTV)qx;%lF+=`@WXV6!6SAP}W#vO<|F!_>b~jiCk*yQi ztg@GVi2VB$oS(BK-Bsv;vcK&Q`h3uqS$eXvuL0O8JM(lUIK2(vpUKdhWPUki_oa(f z_JEMPhyUdEs5%a)u85$Yg~xF7%PIRVVF;AHYi-PU*9nlGWMI@ZzfPg-hu0zd3n^X4CsFA2&2513+jEPb92(*Z>0t7tyIWeQ`F=vFz{=Ne=wjC^c$aaiuR@s$j z!Rx=_oL(UyY417G17$Z|4tfR9@+>`B*)r8@d#q(jd4kg&0KSq856(w4_~n!>!$nrv zV@b9-yDC<#+yJN^h1W#K%`c~Hndh=O``Yid@oqUF>&d{VX?~qT*%xDRkUl^RG-Nm! zH(_(iUUX54NYrHjI)gyQL>23Ry>n&9N8&p%Bziua+u(6qZ;UW%L>2oS3*O3(iEP99 zE&48ih9?4L!y;YH*6@(eT)if?i=%?ddk-m-|L!P+80F_g#V|=1-2%5o5U~tTWT6C3 z#wRZI$4&<6b2xuzNqVW!gCsqlv*!mvJ7MX`N%~%xC|CJU|E>h5E5Y+xcp~da=9f#- zFX&>EbW_OP!=Le7ifRO?z80^W9XG#Rl5Q7rJDS1LPXY1*85lLquTvyxvoVPA zDqy~J93q5lE=j-HtVN>U57$EkGA5?{^xDqyGY%f-*DM2BQ1+*lLS?6-0j(?Nq7dMT z3|;^>TYj!)tFtMb3oJ>G5PG2OE77*o-9hVX>B-8L6Q^wX`LjWa;Pe=PCz0VL$kP0B z%6^S5R@n>r$CjT`zjjKlK2xLrDv6;7FoNIh!)IuDIGZ@Yz@JRXLN)Y3{+$dJ8 z>=FRSL|!b0Bi9xJv^o(e<%h23&a#kC%YANAekf3R5ri!FkqOA~Xb{z_Vj4sjB2RNb zC^h&U82mnq-LsqZ@LNk0%oehWF%81H3O0*54+pkor30=Q{tGrx;==uf008h{$ zI)K9}WdJA`5NbXsxk2FFpq+h?19m z{8D%lCE5P}pqsUcMqQ>fK?#y<|Nq)6wPNz=E&yC*L8kxDOd)o~470nnT4;7>PDi$w1Od-e$m}>!&}_V{H`W+gb+vLwA%=z+3}%|`Xu0*@^i9Xz!@p!~Og#>$o{!fu$IUON>@;Br zl-+KB;N3Pr4v~RT)BHMxvY)&hUBMF2P8B?cgK-l!r|kGTBT=6ZP)hJr9rJ=9g3UAz=uV zeTip+r8@x9gA9zC=GQ5dJ)Je^gTOrHI3&zubIP83ZcHTVxo~}*K*q!NjI!UYLS?Uj z&hq!KGoyOPYlX@_oPq4y9xRuU?K6bPDSN|J2w7h^-)TwuTcHQauC)U6k)VyU^kikr zVmoU_Ce_3}@xbXNc&#SGkBmLPoU&!Dn^pFM<3YAfmI536c*@<0f@XQ~BPSnDWK{M#1mA;CCHENBgSYpsr{<~<{R29c# z0_WPnHOl*n*+SO@?L12_)DB+rWgw&z09`F8YzJQsx(K-qv_Y0$s2%*+^dMdn0C<5Q z#!K@nYzHUYGJ$!p4%-8N*8=nvS*TgV;@ZJi911-D1%P7&g>qdxc*3zjQVtTa0-i)k zwjJze2D)efKudxWB-wWGtvKkM$)~RYptl8?b}%!Aw1dsKJyp`^>E2r9FMZ3j7IvQ< z+SD;cV6&$~z-$V6VG-0|E3gi@m`c9`=MODO&k}lIQ#X7G6TJnr-IktgQ(pntRbWR^ z1reue;TfDkDZhkqNx>^{53hXZI&lc|n z12T#XjGE@xDQxP?MG>RdfLY-eI36wV|Y1h*ZIwe>IXrM&Ou;5r)+EOej4PdE_B_<$nfO` z2DY^ftXVKHaK?8*$3L)k7krd#?e;ASW>Nxc_vC|S;J{kDT?mmk1AbX+R}2o;+Ug!(_+H<6&n%?iufjoQtB5 zN1~?rb&3r6Beq5B=D>7x91>=-xeWQj5lkL#NQ9Yh|F_vei@Hc z^4w7*bvIqjxppQrq98fkuGkK&_CpInb6x32fNe-*4$-RE_oc;`mtO=higYZFC)pRe zmZ36&IEydxU$O^7qr76!TyEuttTgk}8=q&&Ont1|W((mcPR8T!jluts_^tUJuaCEb zX-htis0-oHAAado^vjl+ZmpFXNmp*1GCMtO3*nVP$+L^kVl!*vVA^FxlFLj-c#=4n zRt&3_5?cr>5G?N-_+`t?UWCY&nQ!5}Ei*sjJNKm@k+vu^`R9dYW*sDiN|7?dSgBUE zdj`W`cQs6?{;5e7R{t4WFd@(%;_k!~dH*XAUG;xB8|m{H+{as*{*(Y${XaT4vHE{& zYPulxJAkhu%LYN)>i>R0+v>j}4%Q?{@5Ae$L%Zt#CLBY(75qB00SY=E6F67>k1Ua; znCAK{(CS-yq3SsacNJjuJx1g~4pNf5}BIH)k?zi+p)&DFU^GFTo@c=we5aXr! z6;}TVcd4TKUyEJY;_rt5eMuH-*08whKlT%jIj7v80r-QUP_C=~;}4}9NyU+f!jV0;Fg&tVj2ezZIeh1o5mY!^Fp90ub z|94zxaQZZOemb7Wb0qW2Sz9?+#ai3hA$Jcyvq40i38=mVuge`bznrywRTzTmzvQTx z1WOMBZpM7!9TWY>(eqtjRjP{h1V*_%`d0yGlU^f_6-|N zu=E~4j*)>;)BHMxvfGyexh%AE79PXFxCxt6cJB%)B2l*j=wbpH6IJZ?snUOac`e!x zH^TW2JW}Z}1&lCeKUHkNrBXXJ#x6`f7ohhOfl>$3)m%!*t?A}c!cc;_l#n~v&8385 zoOw8b^7c2vknG&S7{5uabVcU;^P{Tfm^)G8I<~@RrE3~b!JkystQ72bCA45U@t6Th zHlE0%j723O_43a};j9AJI+kMYxjZ9dF*vXHuec&bojEkBE&{oog(yS4*`JcH6jxAR z56aD?j-}``X8ekqIB)akedsAFVi+hRLtdfY>-IuzXLpca~Ds!3^=tqaYoI^WT=FR|!4H$xrS?wU^TrjUYV2nw*o@ z0_<|~69dt-0ZzBVs{wtM8AoCwQ5S(4OW={17_%W44||KC zul)LrU{;_6*b3!GDrVz3P^Oc5J4IWwF&R^@jK&gB-VJ#JvoZN^ zrC823f%3iM6|-S-at0jp$F?;UU>8gq8Qajoe-`~eU9<%*0>Tq{YB^OMn2k|5M_Jc^ z^SPF!pAmYHlV?wXE-wbHi=`*$@8{orac!XqrIc4(#2xm5)3Auat z5A#neJXP_^$78tp<&-^L7y@N)ZljHNT>-g)42+uQ*C~`;=@Hn~k-$9bI2bo!bIP8C zP2(bG0YGmN$e5^NHL<%NW}|v*jG%rE=O6Ki*Cbb(bjDAJv~J+8V5l+8uA8a zqbKG7Sk8(f>?QFSUNIXcCtm=T{B2kW!kl~vCfu5h!JUyEF9b_lvU%@O)q&Zl&mp0n zaK6QobWx!PIe8K-@`Io~Vd=>^nJ4GDoSc7JOmKPu!0(WuBFX%6Ihlt9yPTXKa`*6G zZy8e`0jdw+^{3{@C%e9?Q$G}g zEr9J#WHw=!bvcrxJi1VMRS>=Wt0y3hkfc2d!X(u*Q69^*!TLu$k&h&BL6YWt0UztZ zxtS&D&x9T%X=N;f)t7-VH-W>tNLwqG_nqQ|#(*0LLK~;gN?>IyV*<6yQ zbTbll2e@`2kTEee!H@j%jv_sB-*^ey!BE+di_H+)i1lXZtRVPZ68wIP-SjJ<>x`9|6m7BnOI8 zWC)G1Qmyuk4TjL(LSNdgBx7z#7()9QO9Skgg46J%@HfXlEby z)l1;l?LoVYbP1drLfd`JS4?x=AGCWdz0eR^XLY@ZTSqln>(B3&52zdjv<(6J( z2<^=MLA*8ru$>^rOY4^5fJ4eC1}U@wIfTLm@P+G*S;fU9;``iDnIy0p*(Q?}_d^e@f; zt%jv1o3io%J5zS%B^iR#9Ra?I4An{ImosH@4z4w2^+N6*{^d9u6uKLeDC4VbJ z4xr9>BC8n-+o-*Me7d>;uD4rCa-+5cju+(++G8L;X(6sr`wos`;}F_xP+leVGm5s2 z+OKejEu--PDCoG-8>-BIX4PCkZnH}&P9^|bWloP0UJE+_xCK3#D7QGmyip(n}w zayeO!V76wXU&!6V?}XD8rva*0GlQjn$IC~2C2E>qr^w08 zdm?G81Jl59h!C>5oIK*TERm=?!L=)ajEONDjnlDQ#ydu3-@eNzyUk^xvgb8`Mn`~U zG}$Vz0h?9!o4DgtzX<17ElJlFx-}aq5Vs1n^_HHjY#w*&lzpfLPR#~RAHhp?hF{G{ z=9g18?@M%MqhrY3!>?L3U1b5P&&KO~$IUON?5l(!FdJX>PB-552ILMhFlw4#r%?9K zxY0?E2WE!jkT8?YDZ5ysbdji+!}Wav8532k;!>FxUfBx9b{m|3#v|5%DPX*3_EW`H zza&FwZNCSw3X-BJ9tRY&LDzo_p-BWJ1D|XNjR(vsuMd>l;i5OP%n;gHU0^m&F@)9~ zx8~@F;n!n$BC{9^Yc?9=IPj@(ontA`540q`QRqQVZhHXfJ_@vnmY$rGw*c&N@;$Y13M6oPIbLhY zu$yFlxt#n9U98zS5_0$O|Js|bz9#nxyiyT-!_6<3laC8SkdqI9Eh>`a=Cx(HUauBWdm&r`6=9CLV4@=sVBT{aB7|%%M=fubB@*>!xNaqoF;T@v z(l(BXJoN@-l!k`$@rcP|HWQOa*MGE>BwYWGwKsv&seJ#(@AJ%@Iro`o3^T@HWO*!) zUG^n2vSr3LO^h|WNC=70hNO~;NsFCImWnJTT1i4hD3nTz(k7`;+Wg<|>ptf^GwSpC zeE+Z4Z(gtGn(Mx{d%N!S+~?fV_%50$rRLlro$ZKcU@#A=R~I&D@)PM%ea!xh`h*2T5HI zs`=Kue~#vpL7s1VXV2#SX1-JCf2F9y*B;;V7 zC#pr;$m0+W+Q=bX{7yNm2|#NqtRn9`*0^rS8Cq~aC@LlENCNp zM8Rt#2ljZ;t$@gLRAAODV*jO$tQd;|KMa`@frg}+YC#(rdU=vqv@U>ZqbMaO!Mn>> ze1sZl2y$Eeq>Zqqq>Yg3y}K-_k+;D4Zg%j7^!U!~_8~T^u(C=(=L|6Ip+iU0w>#ed$=?43_+R%V{lPz1)@@Icd}DVPVltoD_1nX`eo5*JQez*5 z_S?hCuRZ_w+QWUSXnUxIJ4B@~_u9jXH$49MpXIAv51#ef1GkFsk*?p7BH75|*M3#Q zO*ff`J?VpD4%!qSp|wULd*kp6Ro=_e@}>pdmSB@?CdhMrmQ`2yo`cr<1H0=_g16r1 z7j;ni47cBj=hVPgJRoNs2Kbx`9bwBN7C2}=DZYdDWx#(%y!N^Tb&A?)1M&PHKch`7 za8UUuxWAfsHpw#4T>+6ERAAODV*kZKe}5D?ngp4<0}V+t)dB~73SZh2JIg^`NkQgB zrS8YasIe~YiY24<2FUN?Cl1QbIGgBMA}aN4vP^I@`8CQvA(Vvb2n5BGNzGt>3h7xA z76+w4Wz#1s?>mna!$F%2HV!)dO5>nyz5koM|L@~}-Rb~=gYLpJ3*NFc0Yv%=-UG*h2Y@h@T2IT?*x60&$G@@AlS8iV-9xTgZCcJW+#cH z^#a6Sp~~+f?eE%d5ov$dcE;#pB4m99$?pT{VAr-<+hWQ-i0s-!unCBtNnEgN`%#-> zigj*P1Fyc%zi8Jsb&O}E69n>nq1dkNmg_wuBf*>K^Do-9tx_)0kSU`?19+IOGYm6Jrss(KAxg2c~A2k!IKo345g`c`}JI*~7l3*4s(_;Rt^HQ;hoJir^}Fvw3HU?pI9v*D zod)?2pJfdYzBkmya~@J+IPO5lPgIKzwbwv6mxCi3-^LpUqI&P zKtqgBEf{K7T!l##?SxT`DfmfFRO%2sj>3BB!|9mLwE{U8KN&&!(x8l>q-HF91h!0S z!w__zMXb4Y5gum1ELoRFSvo>`kbZhLwt&Dm^tKR;9OIz=rB-7+8m2D1JZU z^Q$!R10-$-$oqVjRb2R9m43nR8XpJml+Q0(rM&DqsL~G-i;0|-hR7@87pg=yv7kz8 zlj2utgP1mske&~#IuNzG0rU^Fi3L?E-$w9fPfs_%{Uu12H3K5^sKBgQ#QsZ_&OCq| zJr9|kfrc2NT2Q48vxlmnCQjj?@g)N5w?7I;070>+=Hr;Q_QH8o+nWM)>@4S3O z7`+ZBf$yGjOda0 z{sDfT5&z?_P1YuwYjA6T*U0Bz)cx+Bg%tuKu)0E^H-(rli&(7t{iVq0z5X39-f0k; zO%*2Is07__-XC7%PeNclg<^Jt?l+3PImy9W5IA&^CBOS^Tf@7}_eTi)evu`=`(1Z1 zQL*~0G`K?seqQw?Y6LUl8h_0k#1CI?u8x<^xXfpK9{3A9tmVxGiK?N!0nUORx#ab+ z=6hcyH0f($?s}T+j0l3}`(_QW?g06IpJnwFzSn$9;4W6{aq!mq{G!dbA5-fuexk>d zM9z8-!pEp^E!o6^<~yDgzxhs%X%BLWr(ypKqE^aiO!DzF+Qfq9d%GxjJ@Uu3i<#)! zLZllNm^F*oe`&tgJdeI?0%YzCG?+J03!3j$wG+jnwFE*>P>?wZ&Iet4847tn$e-aS zJ#uh9h*a-U_4!2|lvjKP4tnHqSLCb-5S~hf=42BK z98@mn@E!Ee+XL-EPMr>6bst2njR3C%+Qb3}-MEkno`Vj2A<;y493sC^fmySN{TBy4 z*%sAZ3Z+vGKcm6CiCW;GU7Mq0BDEES+Eb7@QKu}Jau!DYti>eDdXdr-xp48Atj^2bSZI8g8iMOFsAuFtdDP#_rJm&hln{WDb-Ugx2t)dS#as$`3_KfV`;w7!M)Y{R9E+bsa?$uc`!QVM3tg)&1e#Nb`Lc+`#`l?$Ie&SzxWG&NAP9}33KMTs zg7JN1F)s%*AuyLhF}uO|-gujrgQpK<&W=Em;)K#=^`?|zrO%}WYcoX9tB~QR|a4B)qFD|ZUUU*u2tarr$HV-A=corZa)0`CQzsQoT86)AF6H1W8DQ{FY`r$$GVG_T5=lX1#n&= z_feV-9_!)-T~1#Qf%8#J*E4M^<6Ers&bi=i>vso7GPhFU#Q$6W=>dH&b)@W4-M1-KBsWzT00%FBgJRd zH-UYtFXCmcy`z73C36pfvyj{DYg=DIjH9!!$V?FZ*@pj#+& z8pOQa?UPg`X6}`VvCMTxEV0aG+>IeE9qdc+3k?M?$lNDRSk(u$rOzpvxm@%X%v^V{ z`}iV3=AzG;%-sOaByz_bDwMf}gNrFXESm$)!{kcDChJ|C+D8%i{R+zVdnyEtvbILH)z$6wX|0=ht5599Bu# zE{mU0Hm@?acj9r=I?rJ>0H+zb_tLcQoUc3`mdsrVPLG(b=bXPyPLj-B56+E&ZlTOQ zi4^5Mg~Jo#oP8(9GFQ|&ALsVKCRo@?D+iAh%G`)|64hQ%Kkzw4Gxtt^h-b2mPfsJORL2b_lFO2oc%-u+Rc;wPp$fs+^LO6JVxmF_@v z4ez)T$CEMf+%+XO@tisXwCPZ}n`$n0zJiJ8{Lx@726>gwveJa_O+1H|1OH|4cKQ6G z6VLBIKtJ!Vj2^*_kd(820Qijx8Qf(f7EC;=k>XE0|N0=%9^|}pApsu`1fe!SQ~ZoJ zv0&m^`$H;t6VH03yy*HtWHc3+HH+APnRx!%5IK4PGD`yuNi)@giRZ?8j##u_0QD6L zGACyC)02}!dmu7Z`4e0sYjtRlbOI77b#auqL&K7sbE&la6SzhE(Kx%;J7yME=4Om^ z!?C0-GUQp?%Ho_pfl7N|OrmH!iXBYa=;Ui~pa~Yi_-ZjU2vpi$+{&AAbDX^cM_Q?I ztFQ4NXeq?ICy%=8#qrw3yEOwOQ-3?YvG*gw9{zrn! zI2vbLnCctqD*s|_!|E);T@VG;rGPZ z9h#U`*tP#tBM&#tQlkJTo|*CmzQ%vbYT6Lo;m%Z@TazT4D{uc#jYqFTs-UrbSfYGI z;xAvL$j29~9(>oCK&5rSB%T_7eqKx-zg&8&S5`%yT3EM!3k?F5mWjD8^KpEVIV~~x ze`+lJ*b$AZcbYnz=WDRKq(0hXW7Qgzi+67bR9eAzwrC`uFkd>^>1%Kp5ey2A*#vED-@a6R+3Vyj0}46>ncRW`eRA zS-!T5--!;2*Si5v1fCyn&wdlJzfDr8#C_{%xWx2o@rbiB;&k*gfUe#ExWxKc@b3Zh zOT=Hm_oDN4eEfX;i;v%f$MywQt2ZrGzj>H715vSCUCHP-lH*Q=Z?3B{|F zeh|uOW%q^LQmaHxySQt5#Hkkpt@g>xrSi0{kdRg>!yuH?!Jg}Bb&Z>iN$%-DE4L)C z(et&gln}J;gHTSM{U+pG&3n{borccCW?iDtSD?^s_9iJ6$H%LV)k@8WNXpj!N_C8u zo<#hedY0-~J%crp;?A>G#~PR1PQ39$ajIj@G-lB5NCVIQ9#S1^rL$5~6g~pgu})d$ zBjxV~5Ug8{C6+So0mw8?Elc@IQAF6JWHsU!a1&m~rX?E??}!W8IyOtoB0hH)beoqH z`wQLz-Xg6p>1nyJe_6@l#N$HHZJ9Qncw`V{a#AJUCmSQN9ZkITZ$`ZHO?n=}+x;CE zloOe6akQc1VuP101N!m|(!aE{t63^G8*R$>km}@=OeS6qQk|XD4B&Qa5+W$KE@e!X z_Mxo0lr`CCit_1_VUiv~adass$sIOc#cgn@9oEmY(mxAW%6@afw^Wr2- z#!)kvy81N`zOu5Cy1}u!hmu(EA5ew>n#b_(gq7CkCiqtGP%8gZd1C)nn9o-9a6d!otW3s9B?*gz?64$(;U=AUT%E*05>`VCK}<7B70t z$&X8BYnVw{rp9y}Sq>)5IX8!rS-Oj3=KsDqLFM#}E6%2{g=9uAKxK8E3zda&lFs*i z6^T$~Roe#MlX1lv{aNw^NN+_F3g>O+~eCMNt2^k zw!X3Yv3$pdigl+5v!tG~cH_FfoSl}WZI-o*p;x!jYN5dOF3tiTky^XPstIB?dmwtK<^~z zuXAv9Y8#g6CvDmN6GnvMc=Su!ksAU0&Whl2(K20Cr#rF#VC_1NvouO7YnhdugC|`Q zh+k&C_Y(v31-;Dr5!GMd4a|CPzs!;M2~1(r0&)s?Fa%R zqTg+YSdOH6T(o*^B($RhCPdTYVY*ZJ9D1qA(Mr2vx@#&&o@vqbQ=pSud_DqqMC<(l z&XxKTSep^8gX>7UT~+)C1n!Au&_JJJA(X+~Xw`=h>D8rw180782=15b)~{^byg0Qy zY7a-Cza(dMv>9Gp?KZ$=eXox;*@ILMOk`8p5?zl^f^-`sY1UT&oVssZcoKa(XU3njJ2eFh@sBng;n?bcR>&h2|%Qo;9}(=4p*A>6zzH zDCm?e22lX?>8vIA3SWK=BlZ%-igw^eHtT)7Xq;cwbh8I3MF0~o)5P%`F#WsAnD{#| zA((XEUUZBRRR8Kl<;Wxa`4%ku{q zQ=J0=W8jKJM6)%Nl!^Z|Fsdj&YZlgA`E^Z|+(({_K5s+PRA}~8e2z1Ju(VB}pJD`sWmg6_Y@TXt$*ZBugMI+Popo!kPi0O!V`0Fi=7`mqfqmgm_XUP$~Ki zj_>wJOXAe1Mzkab_#UN-)2r(%`*Nf(duwrI^q6GySA?ZTRrc3-KAJyFN~ZK|KZ{b? zG7-q0`~~>eOQAL+KjsI9zxoXL{Y1alzvyRm#8e=^m#OR9C?It$SmEYJv)QF^Ut|7j zlES4$;!;_^UxsL=STa+3G2jtH1+ZGOtd@|t-ID3S$3-QwJKvAK_d`kKpJWC8WQm2W zZsb2>$uz6{eSR(_9{R7!O2DmXSMnlf$Zrgk@UMI=>y1*#URC$)f|IfekIdI zO{4%@xXN0Dm3@B5kRJ)`#)?0y)kx$j!IGrE@Nb5PV}g<&HUb~~o4|IwNs(XN2%HZD zq_LT#O=kzw*|g+T6ogbUyZXh9`_53(Jp5-dTv~`(>jb6_`Hz+7KPETV=Si2T40~B= zvRM?@lPzV!h*hmR8s)jOJpWPqzCfEHkG-Qb*;INu&^GMZFC*@!%kv)zZw1=MxUkoh z=09qG8)zH$r>D`X_m}5CYU>BQESm;VOW6BL^B=XVlPxJXac{#6A^&`N{v)AtpiSdu z*-=Ymel5*^)Z~TpvCMl*lTMeRTBcbtW#vWmrePU(Y(!_;YROEQchkps-VpuhYWV9m zOQyy64v-V%b4YN80-3;WzCX% z1D5eUGt4quHN;WRa%O2g9!vLLwaeU&t|rC8jp)7VlzoKwgS+rG(7I*U5l_dmyjQ)l zZxXMJ<$bRPW$z{48B6+J4Kp4mzUVE;H_CXCxQ(TIuf`b%iC-6It6rC-b5fVma0l#U zmSi87vKeVK(e=Iv4JvoI0LPxd*9N9y0HLsGlyNE~*zBKL# zp>jcfyc*QIkzP}PS$W2~1l8Njy;U?k+g82J+*?P7=7v=7Rx&{@5zX7IRPXi@C=-p~ zscP>lBv2`uP6HhzP$TNlK(++xM+eeCjs%)VbH?FJT1N@Aj@H8-TJKI0$cd(`Ko<#I6&<`8fm{i6i?&>f6y!;ud-NMz-r2jG1oERht3fPZ0zIN@F^B1WwFG)b z2Yni^diRq+uV{Z-8z_O^(Pp$ZSOR^bU((u83G|I_r?p`cxH`Iq)<#R9U$h^sT`z(D zD*J`g$lcAdMeqg+QksNJAJx-VqoAE*s=Dz2? zb*vd!M+|v0AHCR+*YS-%Ye)!}4~B*eL}Q2>@){@q0h1!-vOg%L&a7=%3@?Hd-@zp z^*&pj$O{tl>Fwb4=Z|H{;6Db$9E zFl*sAAb(_RH1Nq5F=U;Ek(HbVbB)c8Rc}hj{DxKNrMYubNcBG_<#8kVvd|$=S#B?| z?h47QVF7s;?JSv0x2ua7{uBdSix}|I*z9wZ(=#TGM=3xxvqQ#YsH{5Z$ohX~1kMEl z#E^+<%)}I|ZTfEriD#F5*fRk|7Rm`zD76CeQ`Y+DKtE~dS;f;}y^Se=D=EYRP_wLp z`bd@&S8OP0lHcqD>yh6FrRb-`sKd@Xs{cbmeaNR8g;`dAOwRjn4i#HXh7`vvYtwQ> zSl=qP-KUutvu0cY*~TVSUl-w-E<$EIPg|!BBk^mcIJ4s-P+q-Vup-P3=n zDX%EWvDzFp{BTGOtScI$#vZcNzx9lh`wLgGuT31z6i43s6- zTY#=UEwC;YGma))Vl4-B^%p{U2x}Ba@RVw}NNiBl8&GQ{sKNC!#ym=EJPxYSFywwq{9+J!rWJN~(b4A_@~tFGM`6;wH5-G*Jn07(7h!o5%J$gn8?rx* z|ETa%5Tlr`CG364{70il0~5kddu=abE^o3{-^%@KwtPzTYJ&} z^~ovG7`*HoZvdVvtH5oP&* zf~!vv9V}>EFQB6Z?Sl)+>`6c!JzCo7=Ns61rfwuO_{X3`^iT9;fsP0H)Gi`zJfd0H zn9Og2u{Xr-HlVKFNx~rzB7!;sU48X)w0>To!4q&6Afhv#rxKx^xQIz2`id29ol*;} z$JM>clK5H%H3;uw>Tgy@P9za+3 z-N`f%Iy!_WxQ^hiE-Cnaz=+@x{f1Bo(F;P})qm`!d?jorqeR5QyL(7ifc9ZY&RuU& zLqX}KzLhw@piKCB$ zmZM*(KwaL`?h5XB_yeFgnhhDMN~@$9zC| z6)2AW^b697NAxd3A?^y@(JMcp%yWPdFBiOO+~x)9j^^F*uI6z_n+Gy5CJ|-$v{h|; zg8D4ZQsH(EuSCD%80N06!_zFc>rzZb84BNF+1bN!^0Oxt`r#L%rpkP2YJv*iX(c}W z1VYwN)^%f5c%~KRqhoDlP7Z^6mkB0XnH@&qW!!sAFv-d+@u61XStgilWlnJs&AldA z!phuokFCP9twauVsaED8eC;@VpC!-J)2z$_d}%s-zX_JHGJjm5RQLfCyu`}<(}wUI z6Rc!qE`A5`78uJ_t;`KiBUKMt={t5{Kh4Tqa2JB}tYkj0sc&WOoq%{BGQq}H=9RxA z_^?Svb4y(@rJbXuh09y+vB!}`hQbvs`{C=cAh-dAH3`3v9P7(;FH2J4h?Ud}U*WeS^6p$nQvev zUbq=)Y`6@Epz$*q&{-D{O;aoJ46bIjazXFo^UV05cVSowH?tD6I42tm=0smW>2KGg z3YuGqjp4)AY|sm0yy*^-)WS-94OcW+t3Y2H<5fNjo0nOM1FlA-J3!wPVyI zetrV+eG2+lG2Wj8pqFVSzJCL1;t$ZRh(n&dbMvd6O@oblH7KP#Y`p zXc_SC1O34m?+&_pTPyLY1K_O&eO-*VdOq~pS&2)KFzXG_--_`r!`6Sey_I;o0`D`> zPsDf&@vcDl3M;X~eq{1b(jN;7;1mm|gOzw{26$yauMp$i`73N@TZxA@AT5nSzbxR@ zzwX9?Dx8DXy~cb!*2)KOpwBmj5LX53zHmn?u_?Ag*jTM85SZ!{f3iTiDjzZJaKV*E4JP(xj;#EOf}St;v7@IH<4f9;I;yIP55iFwR$}GnJ^N+Rax3Cz+&u2>{V1F(t;F8=F1)0#1$dXo_!oMkY35mp z$8lgq_Aa0xz0*#-peceN5ESg@SC@xM~^a{RlZ7TbOB|3R|?a6 z#U=d`RQ>Q1mir6DGoMUDEv_`3HhR-()lhD$Ob`RjM>xG5USqOW0=;xy?0@8h7g}!j z70`Vn6Wk?1#@+tN_)-%@#@kefsbwaot*y*;O%YsfQq5xhy$1*Sss?GTm9 z0W;ho?nhkLYmESX40(HYU<^#1H45(BQBOd{S~Ea?z-L)Uu?SPC+o!|bI_curA+VkR zZ{0=wwH%H*>(bj$&^y4}7x4Fqezhdu^pI2A6 zXM;6ZKRz09T?%rO7;EftRMQYWXa?Tu>;!TTpJnkyK9$-Fry#;Zb@mq+!bXC3bHHZ~ zJ)z@G*u->ucI9&*u_;ng{fiktPe$IoyWt@@NfynTNMT(ZQ*P6(O10A=`c)u z?3+;)o-2jgxK1};=Jicy!TKX$r#^{UZ+N6W`ZJuV#43FMA3rbe>wiHsqx7x)la*B) z`hOc+3bTSXTtzlq|^VybE?hI>uStM#q2It_~ zN_{dD*&FMAjRPgtLl9l)i>nGZz)biCeeD?YnHy^pSX%>j>IXP)fI2Y&Bj2!_Uk7GJIGkJW-#=$x*8Y z$n|2Z^q;}HMGwL}#A*j}$AA^xfc@$417$ent`t=dB9n8{IghFlT}w`Z1nNg`y9b5- zPzm;{&7+60wbcIU=umKpys%AOHIp-!_lDd!kQ1%u+)~Db9Zb+ zXo#UGa z*|WJ@=qW2DlyNq9B1?Xigvy=GtF+1!_LuTpqT^;a?7t#meb?*-^RC86eL zb5~)t7=Bvf%R8HUB82#!kx>5G+)r3tYs>QbyWVGWmo7od)>T|L#Zu$W=5}e00(!Rm zZajBiefBl0eTVKUyk57zGo)6niBlW#^ZF=YDrG2+tA}T%a2{=wSEV(c_=Pv<>lP)b zBM5)u%d0B)&W7QQx@46E^%JOn`W)*hn`xC*FF|pWp1U?dm3S&nRl?6iM9d;kDdl@X z=I&Hk8j(^Z`C|~C(_ak7o0bUY;b)XS6Px|9RS|w(^YzYaz#1E{#awP3JZTDVkxKsT zZ0_ARU>x0&L1*~wZ0?O*5N)k+C$?EjoXhRH6Gi)?gmTVRdHW}reMwixWb-AMd^0f1 z5>UAbxQj3Rnw0glbGeJ|g6g(Jt}X64mwO{NB*WW2{&eV#Awv$&O{y&ZO-tLoyh#o(hRpoxY9@*BM86gJo2+6kBWOf zjqktXX9`3be5D7&P}!yTc1n<%oC5Zp7l~A7YuT+UOvW?cCols5d(}lE2XBOxJ$ihK zEmmFw`>l&a%5OtH-_kSl(fh#47hwNTRHVw>sUX9er>g zJ_7@4B*u~T$X7I(%rhnt4y%61GX&gE1kzSLil56bgDTXHW2KQfk+2DkyBGM@OUl!X^C_2 zye{Hf$Dwju!uK&e_$0WTyO!T$NlF=ox+f9b4TG z{`^2jT6C4N6JX|7{lv|#dIqc)0=A^4N*~TJe$%fH2&uQh`Y2#a_KZw-#&BNe&cJ6d z!T&vwkr*nKW`=&(<&tr`2r`uVEFM4NSEvUxW}f6;%OCoAOsboL-#L(>mdqQ?0 zt6=a?JvC&jfe;#7R50NUI6CDIo{!-@#165lpJ5o${p zUxfRn!J8TIr7Fq}9E_54@sa^{AW2yY{+d8WMvk(tk3u|&mi}c$yvV!`{=q;ds0&s0 z(Z^vdZ0UPnF&_Orgw6$m(p<~dEP(<@vUL4yA(T?GrN`reDf@|D;17w(AS++kRS6|mL#LZJLIQWy4`DwShl)zK^zPeTRRsd|0wFO}q8k?9;nJ3V6;qXV;C1x* zs)X|r(ox3Je`5hM0OV@|)=X>T2zXanOIN`r=}kV}Ofaz5%FS1sTdR)jz`FX9CBz9` z{Vg_i?PbE;eVjYEB)Ixv=s5bX2t|f|36a+!;tBx|0YPx}36eh)O`GX`Q!6W*(PzYT;T4XXX zQ*-p?zf*=3N1p=4)ttfES3Ji^p8SjC(ti_PrY#7P=?HX%Vvm7fM7tvLhcGuo(9s2; z4OKLw ztBE@vzFH&+@s^X|O9c{l^-F*e5B5)^O+r_%6`4_j=V6@^5sItt!CC?jtPyWSQXbL0 zu`7Tl-jXWxDBzX_gqKL#xW>UrDS^cCEJ+|KuI`WL;*L-p{l4HYV5@Ez(LF#4l@dwF zyX5Po+RW*-RY@W4c=%{g@W4&zHwYfBMhbCPZxhKHb*Z}@bXOC1Jp4_OBy@Fc!Cw|g z+|?ffMm%^+lr{W}_%DMP+ z^dW)7UA;#jDXzYy4!MR>7iqQ+Y-Ym$sK=}j+FyX+>U$w){~)|_b*VyvqpucxgupGA zQu7T!Jo~Q)@k?Hyw-R-9_N9cxUELeF-2zNUH>l5qk`U3=fI9+R{UG)GLB!Sl8Unpm zq^FBCd5%7Zb*rP-ZXv9?mCcGPS@aIT9UTX{tEV?)9N#vgnQIy`YT}NEUk8e#3Gp;c z@CyPBetBbZy9iv_m|7bFU0tRL(@N;*Z32nA`hegMG$ogKMBf425$Ni$$ZW;h*U`sB zh7_FtXhB`BiQ)K{5pEXvVS8FIbV9g^P*w|fp=hNxLG4W2!ladN#-#B>sWx9(c7kZ|>Ys|oV}G4z0mPP#vFCd|?M1V4%KA00MuSHCB4(Lk8FT`b;;=P-_t z9ewu@icA5t7fBp%0gdQa03H31Fn13n{t+NXcELMdLwqDQCS3jaFv2p|Qf8e{cr&`q zJK#|qSyV!F*J` ziS`-*!i_+&H%r6?BWaWbbSDDiu45udclB_=w+nnu;LE5GbZtnY{i_(5GJ=G==s@~q z#;mWS*OGuPXe9B5fav!mTkA&=H{5k&i1RE5-V7J{hLCYJH@55^Fy`nMH&dju!2SYn zpFxupLEQklniTs^5&stN!$FBuyZWspx6U4xSV<}ED zly0QR96-AOOhjQSKmhRav_hs zg~dUFqfZO`3((c1yL!;ggf9tPCop;s4Y){@{ka%8E`-yp@}DKn@w1p<5*&R!UjB&a z#ek0J;1tk(#0|F$&fsDchXF?~euy}?YwZ@VF}>aAlRQk|B!M?SMq?Cl1iG3OG^fR+ zpIbz{!VRo9Pn0I0XzXKxK6NY0XEC6oNyZ`ya+qOa0dHH|7)7h8WRmRYlsm|b1GFoEiQ|+& zBRU%pNf&0f8N`PH;)s;s?+JcpCMk6UK7JQvngina6|!WH5@Wm*9G|6NLV0gDMmG>_ z-fZm%6{|w>cq=zf=SVtFOAa@#V9tr7WsB`PcQXd!u5P@M+=Bv%N4)alEzb5=5)p5y zMgc;}J|~2eqTgu~HG2W#uo;;pw=?SFvzTcTFyFd|@CHD%JjYYtM6XPWRZYb)hgl}08ylp=u6iSH{80<(AEtixnTowZjIZ|h~47P zQ!pa1k-(;}(ilY?f$$7aaBOW0=^FtZeRM0~Kj3ic(BwqN)qB6F6j0MF;hhd6JDnv z$vBd@ose6f_G}S(Xdjs*MD(Jav_jm~q}%I6BzF(V{Qx7{EQ)#8FcQ{@speC1o1cHd zmmnSo$}o}+9**b={tY0eT!Qm5UPsq@m(buN1)n64SN~#70_f^?`xzghqrVqO+|_>y zzV!gP#IYI#j;TE$YC>ebe2*0OAi1PCddvId^3;<(V+SMQ;c6^$1;&3yK{7Ew0J@qK z`xyvgP!N%wqW=PRr|=s85@eH)*|A)_jgVg{Mz?kny)hq!aN}8eGjTz zCc)A70b=6Ol{jycbv5scw0YAc)_fqKQw9P4a*C!2U0qA?PX!XknZnah>Mly(pj9|> zR+}9x@mq0j8^tcIrQH2&{~|aZO#5y@SI=hKS_tT9l3hI$a*mkA?#Tnh-~W*bAl=o) zL2>nwIWVwW3~Uh*lF?rlka-)R{S}y)i2{x2?SPJ+FU)ryB>pKNX1IcPokx5OcHXd1 zeTeXqM<}yVD7+xl=1rn_)9fmiOeJQ6H?`uWGZ1XvWr{l&0{dn~l1w?N|^4~&!cmWHB1k48nI`f$X(lM8B2skbeLPQ8?D?by@_=QnZ2Zeuzkm8PhyshkaD+ zo&bsitO64);}hnT z5#E?+^R7i~X@KAe0Xv9criu_-BZ5!Ei!zSj=v)@V;(emD5T$NED(L=&H2yju-cOLq zSPMBqQRjAwtN; z!z?sg5O8`LrtK+09`q#RA_3bv85Fs;93kIwlZ8w9L_YEYFB-vbl8ZB0@Peuv<50I|^Qjk4xtfSBm@r5WDnXY&q46g~)cOW~1< zw+?E9#~Ttc#{i1W6$39UM$Scbx9^6 zqVs^mH35-Xio7Nw{e^H1UWm8%3t?hC%KdRE;fw}^Wa2o!*rF!p(14f~<1Gr?ewztT zy`1FaY(_*fru%@dQ0y8a@?-;Y|rpUHvtAuL^-E_Hbd< zepd)LgMi&V5YS|5pcR}Da_O3E1tee(9ys1$=t#lFfao{!*$RHC4e?U%Fv<$ltOOJ@ z7ttgE-b->bk>JB$yRAs1T|#?z38X|slZl;Nz=)nK^veMwo*!O@XC_#%o+IRi_Vz3> z^NCE#wqhP)FBAfKc#={Lgr|k@@Fo(*RtMo_A&}?lbEzQg6~d*{NT^>5gkwS=&($4P zGp^=<_F0he84J!E)Lx>s=aP2@&`tpXU$p=ao!tP~;1zEeP6knq=NxT*A`u0Jsh7<# z-W~wY=5=k32%sOO7%%X_CXz_-@-Tap5Gr5EA}0X@hTvlb^1d?6MI;)2LBn1M@rWjh z#&Z=RaaVT(ZoeS5YIma}l7MF|z_A|!=<55Ze^g@bnGf_Uk-kNw$-}(t3J$(Eb|Cx? zFe00;*nSbp9&la#h7{Ol7Fcv2^SPW`b`1pm5h!*Y27%BP1V?!2F^3`Jyr{>~yrYO6 zHlpV}LfFg(!5%9-QZb_^kGBM2V^0W=^Z=ni2-QKrs1AawKcn1gvGEnrO(H=mV!=s> zh$b2KfZO|pxx6>YBt-O+!0~Vj5L;ao`9(xF3Zd$?AjH4RG`!V^a(P!1et?5;*meUG zOES>0Ck9RUHy~aC9touuMhPfZhBr`zWc1U3Si6B@_Y;v9$B?-e5St}q$sF8}#oMD1 z;ga#Bx5VexFwFyw-DW1~QBi#csH;C1L1qns^C5xYHhm$eeFJ&>0PSByg*@*4p;CAa51!|Zpb8&A+PozQyAdGRyhjJyVbbVK(_4?U z+RcPK5=S-AsY>EM1McdRfOftx<0g|y0yYzX+oObh>rEsyBH>mc48(U}B0|6`JixJW z3?{yxc`HPgK?INHDE*X3j~8hY9Fax|Qf`+pN8U#A=K^QXqFFLguz=W60mVKIL9C%f zWd2N&7n1B8U_9Gr15E{r?HZuiuDO@$l)$#NlwjrY?A2I~cqk&E~>{rEt_1&vS&y6`y?&%!qbC#&<7-%&X^YUY3VFS?LtU4h4bN+2JWMc-V|XLw0r2 zVCIdD8fyu`4V~BB*u1U>dqYbo-f|QOyqX7_2I4imIK}1#ERN<)IQSmKT;zeb)!=0| z5NzJ(f=8X8V&AZU*&)Q@hjMocb0bjfYluif9r)=YA^!w4qDjDGX+TF06#dbnzxPrm z_BRe%Z;3cXB0|9YrX`sNA!2_m%xCLUKhl7Z%!n|tZ3Gd#X(#lfkilbPCYtwm;Ki}A z%mo+LHa`pO3c=?6A1I}HNPasJyXzq)p9IYE1%FQ@4i z2L$$BNrPl!@(740nV{Hl?=wL=L}b0_pY9BD2FU28x&o~R6f1}>RN>tSHt%*oJC&61 zt__>_IKbN_m(w4FN^j9V!SWd@yj`GTAjhceXnq<2V|Z!eq+qU2BfK>MeZ>TzyyXDz z@2!IRXL zQ`fSf@MQ&v5ZadYli{-1!zPn6kDb*iT#&p|8+pS#0O*&bp&GP^cCW7EtGl@c(6LfuYDEbmqQ%= z9Z(FJ+n8Z9B_0CY?gu7Z`E{VziX5qkhlI((vvvZVAv{vCM+gEIYcfM?`6lrkf!VvL zxf0OcD4JjG0s4w)lIrTG-U4AC2oXW?*bD?r;om0Y`{<7Tc`_T-1wcH{5y~0i@)Pd3#6FDbOsB*X%`F`a%%T@!thHOms-a z6GM)@yf+nvFM~0!g0*?gC?3v$hjzH1_U;2jkI(k9LYU)#V)cYJhE|sZ@=HSgUdU`$ zu1-0K$PR*x$MNq2{X`^4MdFJ=<&^Nw5Iqm{jI{`BUViFf^iLQu)Ir%k*4SL+D&2{%3wLcVc^Qy>as z@o(0(vl7(h9vw43`Lh;Z{}B#G{*KprleZ_x3G7h8=x{o|&=U)fP{TiUaR7aI_;v_~ z3IIyJ(>z%%!6s+PSI6T!xtLt2sLa9((C6$v-vtR_^DQ@V2r ztwQ)h+sdx^?nMD2*>WVLZvRIlcl(jBr3aC4wOcq66OKi~Mf1N!Qu7wL|4Nt~?M0Lt zMo_#&GpmmbKShFtvc<>pF@ioEa%!r>LqA$QfSdM0;+RC*qi zBc3w+RQ{~RBR+{!wa}7D4Ro^eg zZ+}F*4_K-E22H47tg2Ulc#Hodb4w6!kmzvBk&deMjCF}IGD6jyf;RgyM1IG17XL~K zq#y19RZ8W!S1ReN;R}y=axq`1cg*tz9yblDiPu3Dt|k+XRTIB~@Nd=Be`Z^}gNBac zDww^~i!4@E13;BTO?g#HU!^~fT<3anvC=*axuCS+swizbij+1zBq;47?u61V;!Y@S z-<>Wl?eueqx2_j&Bq+4BPrcHn9l1z?r^=+*Gk%Qgz+#0AKvx=^~^gaKQUi8(@> z;H>jN7 z^FbBA=2{^BrSHv`G$ljLz(Ofkr?XqFFQGuFU{Lk$55lcm*WxP|@Jy9n(oVC92GRtOPkyqgs?m10gfSz*$l;?TMv9|m; zl!LZxYJ?inmWc#y+1QEooF*LWIZZgH^u=wt-p`14x)*P(fgCBE=%D8`M$mI6?+&SR z5E<<$##&3|QB_3E}#s_#D{Xbrjel^B5e9zy(&ziY)q2Gxhm)T+johF`yI zl#6X|ij?p=Pu)GHwAJBASe9_x7SQ@wF#BuCEGz4-6nLY z346uWCX~s|xuA>g6p9VkCoo(O@gj+JUQNIJMd3x#z4VXp9+;;W^O4^nDkZxONVS0j zC#X_GOAu$eYS!8jQf0rwOEsQe%tfN0N*-o;E>dhsaww52 zTq&2qkg;*s7RJ{b(T~I3uPHp(jAq~ClDXw8CQA|JD3#s<>Hl-5$#<-`I|WNY+d?cD zCpku4G)|(oGb5MRw$R&|u;(o3?YwbP)w>z-eCNdzE2km zuc1EFby$&Mi>&e9${cVuz zJaFK3iZ8FI_|_-!ei>Gc9b49NR1!U~LV3H%Yi4q)>h(d-lk<;6zQ{zf=i!1tdLC{& z`aMs}H;n%l+lvXrhY+pxk3^jC6YEbNaNY(B(DZ>w^38jU>*6G`{9%ay#w!zkjS*>_ ztTJwjuTL9rTZE^mj7jk|O*l`b-vc8_|A=xTj9irO1sKta=DQiT9N6^g%|yO`M?Ux$ zbHj~HNRb}5aK0z(^70+u6BoZh^kdIJtniP4DwX6KtR#O5zht9lcg4iY6N(2;LF z+2UqmgZ4Q_T{1j__wJ#4smNKbOhjHneqa4ZRKuWtQGOSq_=@It?O~JT^aS)&Ii8JJ z$Nv^=T(nL@$6sWfhK|3;It?AaH*+!Tv_c&}Ha1**!{QW@d-8QtwEfI%4!Irs9f}s8 zOP1Sm~Wnt0YDB>Rc_>oK~H)vbcgRQ>*9VPPv-Xi%~kRVExqU$zL&C z)r411tY4t*$obga3kW7B9xh3ks{<2Pl}N0ei2ga z|4$LpNL<14pa_|#e=EZB?J@b>24?6mfQ+Y{Sq@;yTWcD=16<9vnA&srWqSFD?I1WO zF_?-z2Gc#XQ-E%|F{&laE7zEZj)tt%MQrs54=u8KgohScJ;Fo%nVjq-6!B2*KBa$# z;{9mZ#l@TQ!~ZT`s{g+#US{oIi+4UEsffgcngB@ga&qk#@AIa3nc5!sz3k;9R=mSO zO%{C=Zw&;bcxxRCsg>JJtBj5B`@p_v6lB?5Go8>N6Gu$wh-gpj_=Ik(yDb@~~K}qVK?*^b9j#s5FO}D*;eX)}` zVBZrG{@)xAu@e8wVK~-ugOY%i$Fb3uX2$7bD&C<%rT{;(!-yI)cI|u`eL)PF{cap zql!N{GOV})i2un$Oo!S%6fx@p&mX&oE;V7#AG^mEC$g5q<$L}v7|!s*UcD}e{kRu< zY(lvKv5S||T1BP>*$O67WOC*2FG)JYVnlln`!7BBaM zn(WC=4C?QDP-TtL9wb>~P%eWL4r8OwKHA8EOUN376S+`9YguDZh^-8FnLaukQT`mK zcE4sSJ~kPu2dX5-7#aaXG8x(i4Y+tP8LD>_g>c&rldxDJ41v1%C10uYyNcp3nS7OB zaTV5okO|z6!g6tE#lnWMnKEn-g3M665y5$ilCTr>m}UD$a;fWNTA`@VGS@i2Cu zXDn9Zdtpo*o6^2xGY08G930y}iNHutFE#|62US}54_LZM5j_n1H@+dos;~tif7arT z=fr*k6?8RqK*?Z;(T!7)PNhuu(z{2bQ>5Z@>1yCzH802h^a#if@NC9PY$B)$k2BjCB3gE6nyF1s!a>{ZWGAcLBm{S2?Qcthfp$!z04mzf54bwh0dkbE1Oq z<$rHxT6?SV$Eu^wU^Mh1K#llGt{Mr%_*dVzztO71Myt{7AYCon1FB;fBK;oy2#ifu zBk3Ez+=JUfYh}5r!rcktia9sLOW?BRk7Bw~9PNsq=e7S*{Hh%PQ|mI4^V4&sDGJ5Q&cXwtbqf)3mX zTh$wjgG>!Q zBe7<%4jO(lSmlYP_dl8djl*RmMCA^yd2!|G_$n_zVV#3~hztB=8J^jm&8tcUy3F7UAcxBw7o;*V45lS-w z!6RfZ7b?9SwEuk3ltJv2$Qo#iud`c184p&aHW&9Ec}iWE+FaHI^V-B?ieGAbn3AD_ zYgGERu=w2;V=*;k5@anN{x_2GKQ{Kb*=Dv)4%ajrd)T;>jlIK}W+M-~PP=dnq~?+0 zCOqHU*gKM8HufI!cBPKgp{=-rc~jfSM&O5~Uz6nJwfVLe_Wh1}`+PZV)_;iL$q=^` zu@J$ct(#I?y~N{ut^8Sww=?mJuXAMEE`DcSG(wcBB(>_$sQ0wBIuEQ=9ootS2UX{J zm8#cdn0mv5;@43w-8|FR2Bw=`C{)riv@<8N3aq*~uB@jmhhY%*b^wi6R9zAmHvF85 z`A82kP@0!hS6vpDvY@Lu6jSeS#M;`gjUd+1h&AwzU^QrrVKrE7Y@C`6ks6+2tP#xz zRT@z%i4YxMa~$MN^yFd#>>H3X9p7(ObdWDw`76vjml&U@5V*#475_gsEO}tecMY>) z`G0o}vtcaECW_JL+ zh1mc@Z?P2C=6Tj)y+yVaUuab#y#+O-w-CE>ND94$u@mbpOgPqCnDD>!7M~*C@m{>K z-eM-=6@Q?f^cFm!AM_SpE>wEb3C!xAHY4Mdz?+UhTY3wYwBK8pa{_#vI0T(XSrZI; z3rfnsR38?nExOnx9t!<$m*COD|5q+STmN^L;P$S##LY;2Wv?(}3)i2Kcv-k|7}cBWT#Sh$+7S9MspdR2#W46uIcWmC$rmKDV%1X9?s?aq7Cg6+v-Vbbj=G)@d zDK~9IS$EUz%wFmGsb+69-`^X}HhZT%{k_wiI$WaZUOL@uw&tnwXYaIB#rSv?>IxtW zg1-=pnUM!ek`(a%bwMDLrTrN5gCz+k@BeX0!VJ`1=c>nGPkY(BBFNrbehQ`nxhMtm z{!39o;O7to28b;Sh^fu2%%vG)cRaArR)c4_1-8{M2UdUR=1$!a? zaXWQbsB)1#$zh@TMfN0zg|fUoNtIse>(Kwl+LyrDT=oB-@AooywtFpchZ$omgGOWQ zGsrR#CfO1ig$89$ijWjaC0mw~7$udY5|LCYNs%P=(5m$*mEx)Nw5R|3vwXkj-npaa z`8}`yeZA&>=X~yGJLi1P=d7ReHJ@*lJXtx_@tQ9y=X7hISaXSygJS|Qa&Sz*lan_P za^6xocBI||a@d;@9y>8QtSCh2-Oi~WFk^r+Hd`E-?cJsT$_4hw7H%UZG#38*PCyr^ z5W5ulw1=B4>!PR^UW#1C9^WoSMjE||qlHRtSKcy$RKEiz+VzWX!O$Oh%gWn|_gD?I zE?Ifg`Mj*W>9E;guMuaj>!<`f_qYfWKq+$%%Sq-QOF%;YcgRmuW2( zK>mr=M3cB7?*gArU~j-Lf1s4;V@v)i5C2`ok4#4m&53hj-vE!T+b+b;tL81lh7OFu za&aQOfbzGFXAq#Q&khWD|K9PWjinLL=^f8E;6Tf>nO9!sm=)mbzCt2tEo2J*k(%%w z&pd!m?|4=`9p!jvx^!B{Lm5a~6*B2b70kP|*np4iIl2JK8vGKkK`MSLSA#Gsj|J!Z zK!hBHH}bP6{477QOfOFpS&h0_tU~Qd+A=UkT{JiT!JsLC$Qm$=npe_f$yZj=x6c6$Gc7#k1|-NBGwWRFVs{@2 zCs`SOf>l%JCw!S~BI&##*<|Cl_Hhhb0~%&pn)WKgoZ^@8HgNpXQ1R`obr_&*N#4<^ zoOQsR1*ogIcCBxrhkL`j(h4F6QIhnkCHmO4zPEtKe#b7!W35k?;O$zUq%j2i6-=fp z6T8;eHbt8TRfoSe&ue{jZ=}E0CsktC`gB#^U+de4s-SK>@<=~p&QmdVN^=Lq@RWwu z&3Q^g3)J3}Mvqi^QyNM7QyN+F#xml>p#ifNjNHxmVgopn>Z=LWS3XHdYZ5Yt@XS~F zXK;zp%E%XhhM5-i^#~F?8f^WQYmRP`a*b*hsZ=D`2^fyW>oP0!7*G+E)(<#f00SyX z+X0ogLLYi-g)zgytEx({eq}SDYz-A&`A>c&wy44`r~ z2($92onI*v7|WMhLyz!{J=T)@r5e@^1Jw5GRz@6Y|V~;kZ z5A`OIU$AqrMrrK0#R+rIg+R30c*q_3rP6G@}J4nFLf!OshWr+q&CD`|VBuq#-!!$J-Y%k=v=cJts2kVVVy;QAFp9vbzm5 z2hCm|s4t_DB3YYQA2?gmg&e4p{cs@76Duz1;Xo7GexSoyX{^WAKnQ4#JU!@Qt6#Do)-1ZNY9ZG1&aUB8W%KQov+0b6cmC36W&l=iT;K>jPs}#vk zX=Pqk6fn2pm+#QM(Z}*#?(uDe6G+52uLKM9L9O&ODM&cCUBJtF|24+ZCwjL|XJSx{ zU))d?bqF6LCC!mHSh&s8zKXNC1I}AgIoF<%5TPjGqNcYdQlc5X&Dms=fLD`3=3H>v zwo#h<1-|%^9{*1GCyIZVrK1HOCoPtszr-`Jq;Ep_F9!56IlBhor3aw8N158ZF9np# z^qhTKPDcj^%w|AuiNk%~!`&ifU_ujdPtk{fKJl0+Yh7<{Rponh?|*W=PlL(d4e6?* z=-BmEOL5IO@OAIT7rWl`@K2eU+z^1ub$nb6L-s_u-oKqoQU{`o5p3dW~a9@+dl{gg*`(=g>3vDPv3 z!Pk8nU)(;%;GZ&6p6dZRefxOeg{b!Nw^JU)#};KQ~}Tay@M@m_6%_e6eV7-&LqWiY{`vD;|#s(IUJp&V?Z zEd<8%8^j)Mg>Ck9zThq9@2z|E0|lC+e*_D+jbKr=BB6(#!+*!|&m85})-Qn?HPFR- zVRt-tqKzMJ?@xgMZA0SD2BqtElSHKrI!iXNicDk=1vi%j0jkP}cjw&b5A{YS1byjkckH3<>Mw_k&3=fhHj zUHnWtH9=JPXQ~`>@2CHuAcqIR9fyI_OSg zxhi>u*g^Z*y#WFIRSvC6GC9Ax^YH&UeBl1~sw*JVUD6+u1iE-7a`alfJxvuW^cAa? zuBAvjP;D%1+6Em)^_WsRR**^%^u^VMj9C)1N=#yG%!F0 z_>(hq7x0{>Utss|7XK7$W)H*@bOv8{5WaX=^Ddl1XA1jCuU(=3IQ(q#N$^cirkELc z4pg4b~xEj4}Ql2=_MMJWw`FtQ|t2_Jo zKwD8?+FbSvf$EwanK!%;I7>G-O=#Z)yw?#z)~jf{8rvOEZUXgSL1+S=S2_ubXs?vB zm)hDk zNqG)Mu{*mby&QQiNHXZVAWBBNAQBbrg8qetcFzUNRx`2Aj5YT&#^w%UC@u@E@nl$i~AXfRoc)c zsNKd{SX)rdt>p{=^fZ>U;lHz-Lhv2|F7CDXV#^^y&vG<|gv8v9zf&uu=&a>z05r_> zu$=Koh~<2W6%1T8nheXCfg=Bx(pk$n22{43P58&N9QvOvXBB8(cu<^+?a}+yiR;m+ zCb&nZfBYVu64YDpav*wiN!uP>(&*8TK+a<-$GU-AA;)ipevd9h=+Vu$t{JODU3?q* z2N6+^PIwilN2h;~Gw#uaShm8^qf4@{$vH75V158)H|1x0^uGXQ571NwSvbcCxp`WU zwmB`WTedmbUGe{GbE5M9Z<^Cs$fV|kn}o)pN3Ss*=N>czg?@n?CB;Urkw_kUpup?V zNpGqnuSb_OnrI2K*#<6}KDLRL)+;ZY|A!_jdHdTYdLd-^O|%3F*s|ZF(~s0d`$jj> zZVW^djeOeAn8Oc<#o8tIpYc2Q=(NMn>u9vK?=7**w*P49(MNQYq`$;2hX62{Ek%J$ zP}a7my`sK0AnG%ClYst_4i=||lv-BiaB4`>+QH(~kfe*UHt`g?oKr*ZLh4|ZYMaJd zNcAh#Uyl=JSdVk+AT9(b=PIFHJ30U;oAX>2h-UQJF&vUtyxLsbv{>>R@VINu!g^er zEjpO3kK${-MUX6RgKTykSDS`Qn?I`iGC4P%6EMB-Lv2O3`we3N<$|J@zOXKzKj)1U z5R0!|Xb}jJ?&0m@}z=m9nsBgU@QHxOrS(MJNlL9H~~ZaYs%Ua@in# zwil*nLO+6850E{o%&gH|6w3@1w)0A3rU1Gq4)-Pxce)sgiJUpfm;%Ma5f1)1rC$Os z<(89)CUHx}%z=WNvZZzsrSso?nym^-jx&i{D^}A*sw_HI4<{`vc0!OfbZ$d}w zp+PsQVEWaOg$O&uZ44+E+8k*Z-VnD^eHP(Qyd!_0@qT$e6$=?-*Yi%zKR7F`T?oO$xOul(7Vo_a3BR$J9Gqx{0h z>K8JXjlzT&zqpO@#e)|*ied5zdr@J?^ulwlYFf#!u7QAtnT*zEYN7D10c80Dg3!pv zyBp9l#SK3(HGM292!0|#Z* zpJjEAbM)&0%0h9<`>)}R9K+nK#)C+mz60@pUY0C1(ZI6}z)L_mM;V{xGrkAVC{9qK z#k7EV4$zT`YwK>GhwB|73B5itV7>;lqvF~!4>eZ4HoT9^JOdO|<`U+IqiMZS^{s)N zt}N>Ns$Br6f3AjgjN!Gsl58JgMpg|fPXzWK_e!~0m9O{I@J_MJa>l~yHv-J-3OTbd zMyB1FF2fu0|1{L>GQ2DO?;Pp`U1m9VfnX02j4Ppw3h=|b`ynS%{IY8bo)C4d#2Plr`JE+G2Ww~ML_}H?kgL)floov|$FLTVB zz;b`X7k5zm@sAjx?V#x3Ol${5m!OvEph#Hn9jT^yZUs}Ms@M+dLO_{+F8+z)A7<(3 zpx!4f&_R8SCwEZaGN6wc8NS>xl@F#~210i#zPJIBN>R5Q68ndKO)x9*{Bg6Cpq&8S z4``U_(GqiVQDM6PX{Jir4(|;>xxAA3)Dgpj;blS_h8i;x(5-Q}lRVrxBG*K!4mYNg z;!XDT`xtoA->t8hSt7X7->omx-#uKhnl4;J=Mg6H;fjr7`n`uMcB9u?Qok2@2JPjg zb!E%hUuin-}6tEJ5C z?)np;;h{QR>&ioQ65{Qy6EJFbU6TIpI$=idu8Vr;82*5Il~t78T|c|2iXuE;ls(_$ z?XC+OySpxFySq+l66^1-(}5qFzxliCLV?}&b56MCRH@|ImeWL1WaJv0@dcqjninD% z^9A_f7yI~o0Og{gb89FXZmU%;bL!CG zl>Oq(7vSU=G5Q8ytds_sV?FWa2D?CJvWZJilWM}vaX0KLskeMzMi!u9W&xc(B395T zb7ya?RpJ-73%;1|Rp5oo%Z8cAf_hV!FHxp;Ni`$!+^&4>M(b2S!^{GF^N}FFk$?5U zJvNGKH?Ho-&pdh0a@;O+Ij_J?yAYdVifbo6r+~|CYdFqnvB6V?dDCD5qM*EKuq6Fy zuv9JD(t23U4=bf8>@;|C3v~~4($2hI1HDwvIk55Yym8DBTT;XB&>wGOFQ7>EftK z5(XA4;*{wKT<*$aL$&$#zl{x>?v@rBT7Wm44FPJAGO%6wbU<0Dfv;GTrLO#WyyT2c z>ktmIl>*Cs8DHGh-i3dn&Xusa(OI?FuDqOcDa<;X?N-YF=UDz> zmX5CcLBOdi-+(7~b zbDK&p^xM@`K*P)fl3F7{i(Eq{T_ES3R|4>W(pXb?2v9D({Vz*F=UmwrFT4YEf#TZQ z|A&X$UvWbd5v1`0pr=+yN#MX4f1J`ft(EVMT!D7dyOh)AO?uOD3ZWCoK2c`YoO;GG z!{FoSB1B*Vx+@NMnumKpEhiFL0$jzjlinl1^C!I<1oyO)UOn0tH|eD}5pw6B_%9se ze^N4U`-E=!>Nv_d@;0fFoN@E}1WEdRf{gNu;`)ToUdMr8@O8)Gi|vHs_x&BQzyT~h z=9A#!^Mhs)o?BHdTb%a-8fG5wlS7bTKiLsk=&88YK}8BQ3#1SGKK{oK+~>|7J7S`) z%#UeDOwx8oOwvXEj+g}U7n)F&JWPZjBtb>n<$^(gvT42}XW+c$f_9*Q#{P0a&VXi) znFiz|k4Obr>%Q4zafKd@ixSxx1uwg_4SJMIJDg>d`!#-6B9ayD5U}Ww!+=VzN6v$Cyz-?x{9y2lI10 z77Z~|^E&U~QYXvnyhD#SFy?+>MU>Wd%Aa_&MM9gh|73y*4iDB^0K!TG^Pm$NKvBy2>U&IZ;RrL~=U zu}2$|r{y+JLuO2t0Fdi|xk%}4bkEd;6H+2X2jud_wXkxKHh_h5qI7? zRQ8xS>>q&5!~6bdgs3q-984@|R2fWs2ZN@%iFD#I^ywhn;olDD648$6^BRBCn(_63 za@S8U4CK`g!b>OC>C^+I^NC3|jRyN@guH$xBw?1kxC*^)kZ!W$`-g~t?pez^j=mzW zWbw?bUl>9wxuH=IUkbLxD&E@NPC$L;P}{S+#h{3`yU_f>0rN4C6O~0DKL>%cmBn4J zaT$9owt^y>MP6%+0Diht3cyxTA;@D_rYVA0ZsFY6aP%Ijx6t-5?jHi`I%Qx-05d%K zZBQPb-O~u*Sct}E7+hYHg1B8^xqI-%BY?Z{PubOGIx-nM0w`y-nS@RIB-xz8v%jih zM*wx&EB{|(`G;9L`sIfJrxC!Tc=8C~X$D{fZ~<1f^FZ!)#TR?_^WKRX0rW<~WE21E z0;y&+p4C)(pkW_#Kj{r6dkP$#B0hGp;{=cH?(4r$_S@?FXmXh#5RIbGfepz|tY&H-6_WoEmq-m%Ou z0+_Sfm@5FS9fv#J!`-Qt6WMyNF?*ItX6y*yBjEWXfd6&bo8HXI%igQeT>b>dH7duh z3D)fx*T8s9@S9>HEyNarA0k7S~wnTl~)QO7yl}7T5k+*Zg~n z=xN3M6(z2MiVHp66>Yi`)_4@%=B^8%oV)q=>0;njJ6T6h+&wRdxV&NTA8k}!Yr(TX zAG;VB?LQu8Vpz<0oOZnzs713xUpv8j6j08lo^~}k+kyKUpoJKd(kCJhc*t>H za2G0W=;|5990Byy5~*aXOHya$`<@sYDp^)LzZR?IN{?CXtaUx^76jEN%F8yK)@69X zXlEMJAJAQKxWhc$pz0VYosBD#6wj`9z7D+qZ>ya%SQd_+yn#KP4=})`k8O#+k}NN_ zDE%36G@)y+4VW5Tun+VEqZ{iQ+XKpVVy}i~*SKdIH~1{MA{ude4*}2v$nFq)vCR;L zHNbr0^shldGYijcD#z|O-3Dlw>B#`cgV|kxxcA}9XJ+yVtELH>-FU8x**G8^}tWo@3zVv+Cu@d5J?u-{!QCVQ@wK780gj|ZIq;1MU`rSCvWSjx$0 z|0aEUT>@Gdk1`2~Iy{s2EsEe}4r~dDV(;lc%%~7QVV|YZh1Z0P)7Z;lqd}Z(>Z^1cRN4vD zZx=}++tXaH1InEI^VvP72h1aiSLo}I(H%OBTqAFWDsv2adY~}o81!|4w*E2b$tdc7 zEflF58vrxCjkuM63_9bAU~|!Xv{dzkp!a^8l()8|n2amEbg|U@mBBnZD()`1$V4_l z+MWd>?M!iDkmeSt?p(3{*>buBDWkX6BTbHmA=y@BmmoPD$s$Qodl_Le`c#o*Up{G` z(I-m;_d(@djW^0c%up3>7a%$U8dc{sSe{_gO9FMKAw^DP4XM zo^e|O-*82{@J|m+ zHW~90GBn##A@jX-kyOC^1isM<(QgH}s-P0hMlK!a&RCS7p$q`$oO>nwAEf6iYLx#2 zln0A6#^WNh2c~%_EN8DV6ut;~a+JQcUt%9qp5jia^BmsZTh-k0-ay2e$!_j+(Mz!; zHnfHR+9SQU3hts5;+~u*6=at_GJB{yB<7ud`woYyab_LWiv#TMR5(kNMFmX8LF1W9 zZ5L%`gPIp!s_b%Vj|7TWnMgO4bO~#ObSFs{^AcN?mz)}h{z0bGH|vpJw19&#?7BN# zbAigR&i6UUfIi}UFJ>Cq^&#i`E=b7v=3H?v;xT~PSm|va{xzUn4@v5-LJNVLcs`0* zaU1%DUmeg`+)L3(wF30WZBlZUZ?T7K!*qCT@Yp!YR!NqG>!9dfMZx!5E+;OJ`l9xd z0@O0-uqvO^rgu1sZK7WwC~rPe$OQEZ^lMDNKxd%Q(fR#?cjz^;CX9C&-YN1f^yU3Q z^2lq@J6O5pJD)bCqv7rnwEPYDr%6wYjg<~n!XKx!7*KZGtS7l``iBc?I!402+g_BV z3W(cY)LfF-cs_~z|Acy?k9D4}5Z{>mlQL{f7GaLob4 zLeR%L&rZD{ZR8qbOPf!{tMgQ0p7T^$p7T^up7WHX?>xOCj9do6SE^v^09TXX^0P?} zP$l~gP(}L=P!9XUh?ar-GfO2~)&Vx@eOm7109A9}0jlc01C+FNfRdN)1;41E5-LP| zd%#=CYjscQn(GHL#Z3jq_F2b_uFRx-f?97v{`DMEllO1G^ zfed!p6i@=g;lK?EF2VlgC1V0+E-(3Cp;q6a~x^{n3(sqAR(sqAR z0}D)OT~@#xhLCkC+HRcu3Mku{LF0_tIC%pUG(hp*Yn5}`Lf6#jU%}j=EUX`E04TG# z=S^l|A{Tt)n6nhmn)6k_<1rfTPyUl}|MUK2&bq4{vlx`O+#;ohn-BQol)moC)zgnD z^{XYB)WHc2_4H#3O@@(fcg7CVt2kx;fMk<8B%zA@jsW~T-1z)CxVR_r#fz_W5gIS1 z@XKDBKMR@JBeaD!^{m8ew?_X!b1~qdt)D<+_7FLdiaDh z0Oewn7vIo+B3^XUKC%0&&y%`+<*vp~iK%iZ9m_TOcR6OP^09l1FMp#AC=7Tz3gazJtk0z3L5X=TBGiwl? z!HhdL!j_J$M;np=`!b=rcQ|Gk5=Z7ph2r{c{y3$_0Ob;)*bExia*?E-mzYTb7j&r3 zn+Bw9yb)DnbV9p{)7~ot>BDeZ-umfg$C`!(o9a}rH*NbU(!{aZK+cM^(&TU ze_l(~KpMZLN^RJdD!*e}zWEZzEC-jbZj`LpZI3M;Z+)ec*v!3dw$`i(4ZPBrw}3TQ zX>CVYX^`qAu_e?55g*bZm?7~Y6c>W?vJHZ{H-iPHQOq0Zjx$jw)B%SkUx775a2cz- zZHqeF<1GO*qs;>6*U5Mhxgu6mL&ViIi3qkhkRh$W&S-B3J>|QZCst7Qm?MoQpMYuOAfqNxA8#kZEvlpzfX5;|c}rx2JqQB833?y{;#W z(wS);vVd`4Ankr&AbV+bdH~^mFI|-OV?U%H3{*S&HsY{-WSrvSlY#M9} zgh>YZu$pVY@tHssqM#;WB3Iswt21T_ne7`ELR-#l^5|fW6V*2)j}68|b0?4U(&$Z3 z!u|A8Uf9~;k5l?Nc(MDTh2aWo9|)OE^v~T_B^X)*hL~w4`D&-&QWOk~5$S79@+7C3 zq~WvIV9X!51UK|3YuoZ00m_DKZyV+5{E1Q0@|S^T{F7;0aG|cq0)PFAQW-&ZBPBdwlxuKi715mP~oFAuS`i;aVN@&}9V6bNSK`Aa1xfaGZY`Ji5;S1;kJh9h9 zPCaX{=zR`3O@IH1?G?Y{-qS-)N3mac$Um<`TqP*`t6bfwg#AA1$=$?qi&7>xN;S#< zbnCUgmW?wd;magSx1}^0BOka<{=%&$2w=Vh%wGeW9k6futniinr3`acEP1M1TikzP z+D)rcO!BpE)oNft%dMHquECv$Lr_|k@x?`dG4wL|#OWOzq-Y874JxOjFQ+}AVJ4$` z?2c0CK|K0_+j?$Bri34AZ)!=|RkBlE(k#jwZjC63q2R zlQMCLA5GT2PK3pcCWWB9(PXd#!T_MrT3y_z0K${eBptGd8cmXr=+PwAXZ&dL1FQ{|9ZkLoJ!%feI)#e2 zi)9@EuF8l2mP4*UhGod{b9WxidOi^)m#P^^l z?oZz~5tfY+pO(G}6%K_QU`3SHj`*Ars;Wd+*%6;aNZAqJm0%G);=2vy#v{JIm?72y zmtU~|P9JOaO+4NjF=j%!`2o`t(0S`5&$iMhdbsksciNKUfyDIIQt4Tsq=7`_ljm`p z%H2ZVULNQiw}9LaTH+Xvx?{36W{6`r>W=9sNsN--LbKYX+S+B4%*)g-l@n_gr&@S0np?yP1 z%Pw6u_6;SY9*%&4`Ozs-QW)uLC3OLmOKJ<3R1xk+2JUb`7b)&VKJJxe zaWjAKhZl$f>fVPhwkQhef<;X*RdSsS8m=LMpsidd|2zC*vWZ8HPgBfpJkL}KBYg=U z0vcw9ICFIi5}2ffm+=#uP`yh6=ACOK2iCnMj^eW|!%U4~Eh&NvBqp*H<-1lNX^}QSC(*YALR5RGmj_7DyjIPK+DXlHO6bhp7qhwhhHfNZK|k z&5qxwG`b5;@zQ`91|e@xmV&lxkv9X%rb5@3M>VPepn%49EwT@+;sGGj$VPD5wqIkAZ{Ruq3QKj?X?!RbMp`YP~l$R~tbH~Juc4DKzbhP6|fdvz5qt5cW zfZ17b8Mpz=xIGfKH`*ZyJleVU58R)O#1lABK_5HXX*gEPj^f8+MmrQhR_sB16t?si! zm}(QM$tDf{`Z2|viQn!}{p>)xEudkhMQi(uc%TalJ$^yJ6yujEif`@bazNSaz38=2 zHROE`pv@H5Hj(unt}Q<9ccj>C6Un;*6ZA|ax6R`a$o-+#3ORBI)qZu%N&NEdL@8=J z)T%sQRqM*OAq!A6)Y7Uqp&5u_YYMCdN^6H&<2_o5VY5Rmi9@qPtw+EjdZ_geR1y!h zR$?_^KDbO!-nPhAc)TSr4`G=#=NU6t@oau~1J6IoIhOfi4n03FV7|pKqaTrep}ssY zu1dT@O^c2ha-G<)Ek2jy%^4#j(Ry1bz4iZ7LC^j_CRUEyGjWuS9Q3aeCTIIsN!$Ka z#1v;qfEl`*Mo zQaYFOG*IAT*qzh497)@AIg+;La&CBvDkLn&Y3wTI z6(HfZ@d+kHlYu!{=^Oew&IXk0q1P&she6W2D2bE0v}_kio&=s>%-#(Jl7AS-&!C|z zv*}}vNXH{)z-MngkXx&X9z6%(qy2*kt)hvCS(w$6)MGgPFE8#_*cNKO1!+F;Z z(CJ&{ZHwZ^Xq~*5sz!EckyqJyA}ycIkfNO@}F#!n*THkb`B)&E{Ym zxN)gcG@kUEBPvT|9#-D^7rEwjV7N!{#Ve?EQ5z4Y4!;Jsz5ypNOg8bT{t<4Bx~hVi zs1mGis0pY~8fI?r?{5>=B?y98`%eRZjYKC8ZzhDYhzG&lq4yA&Y+|zYuM{&5&z^B2 zW<-;QnHxm31(eJ3{RYOYLgL^Au)^m$zby9x8da7>QkK^RYf4;WVJ_86aAq)x5Xm-^ z5*MJ6g|=h-aU7s0l%uuM-#m_9#9`=83>9l$jSepkw;`Y`-HSHN{NYJsx&i8r#TWYO z=7vHG@lOlW5`$MRmC9(*7`sn1l?OO!^fMCIQlcKAm~7&@aa5|g7tfw56DPL$XOvlZFh7g2w0Q;D&P}kLcFN1z&JWBBZj=OjV=fZF4(Ffy@z&`pq{Jus z@~@o48JlSQc*mxIlpTbK>-*HHRfPPZ+>w@7h)JkZUwMTX#XQ2mIph%?pGG`xpNZX) z3V1P^3)1=1VwlfNXQi_A&|Z+ z(Q^iTbY8Z`P!V~wWZhMH+rsR`yiu4tyW6AlpTPLJFoWm0CM_;M*MY{*Pk@`d%}-m9 zaDHAK955?^`Q3P_4C|4f2Q*4=e>J5NC_tLEm7my_8GsIEKakyj;)|{DdN?i^9)evO zI%i&mgvlpvPt-~^3D+RbOJ&)Hkp^g(dBDsL6EC#>$g3!eEpfO*fm>!Bw467Me^AGZ z4h<&WfXKJJzrgH1Wo8R@1(>miBW%w~NdgsY=(U=ND?sARaZ)&TW>7dq3y0!LV`c^v zSX%DPAOo1N)?9BLv;(K(X9hQ_u(+9l5R^AFnB6~ME`>%$No^(GLZW8|6bu+YGbm?QJ+szU+$RJ< zZWg}ShAxKLID~4lNrM|Zr#>Zu$8=zrkfh<= zqMhQ~8OM!)a+Vvt$~wR;$l|V=6fW9ZZOnbZdVjPOmz{BZ&9ivD=coD^G{o*;?}Vu+zcIAZ{=l8YY%wwq?r06VTvuU7^c|r@*-?= zhBv`{0wnF@GH?=5u7H>KsS#X+Q&P#(QFAr%#UmhkcMDrSpOU&_FIhg(z4TME=?bJ8 z%C)|q)q&BZVde&VID@z@!Q?pdkTKUFLEGl^>ERQu1(emH_Yz4DDyO89*gov;mc%e) zf^cgsEDk9jTRvZc50?+Q2ETj`F;nVmQ0OQhFC;kh*<521u7g28ESgw_S^~-n(TiZB z6>86EtB^z)LZKhFIHt4mu?kHCA6AIsg?)vB%)~0>1r28&0fSpW;;zOQm;K4Nqk66{ zkudqh^Yh!1%uYOS(IT)W{3f7b=7FNW9SJJ>VB&5>KS%2Qic?{66t!o>^T z{LPNJAHN*AT&%_Rb-CAT+7!R z8ZhTWqs!t>kX`BN851KuHT|V?$)-xOMuU?3y3g>>CLmYVtlGZr1fahCa9>Awbf5mS{FO$--_T354Fw>Ib zM}iyr``xgyjl>;Wq+MC-90w@3t8bt!4{16f@ACj%uDtDv{6-Jg79aO@QfyIu-N{>w znXRI%RlN^#->UYgxXf=KbIn)y#XW^DZeh!jO|P$`{XvsYlp{tZo4PY`eTJ%Kv(N(2 zFtb3Gzb95`V4-ds9diMG>8AL$ubTiUXIZ20;RU3xQlXgE3zdZ}fTesV)!9%zyHD-{Vz9>Gk-17EY(A9yZVQ z0OdSr;JC@_ilFKz70;G=Z{Yd;;vd?QBVEvRe}?a;PYZcK{z~AAM?}B)J?3OE2XWCj zO7t>%Ba|zb74?f1z=E1e=8mb3Sr1D0S$z4ulRa{kO>BQVm|#A_^Ia91J`exxp@ifRbHA4!-7^ z<*J4)&uj2AoFiXy5#UK99NsjXT)G246sZi`8@&i97eBo*HM%!y#A(|b$t7Rtjkf;f znA*z6w$_9j)tk_ox|BVJ4?iH6e%YgY^rEtd{60l4DaZj?sxq^6oewB0bu$_eHRYTJ z$m;+=j|~?)w#S3Udbo$Ap0kp>kiDXOsx8HPAr!xZU#Rtb&Q&m~GqW zYng3J=y!?Cwk7r(-A!f!w0a-Z?s0r^-I5Yf7DK{j?MX6~Z^9z9s?y0I%{*A0p+4U2!T}ek?YVI-!)8%eVWg|`5c%vg@{nND+fnW ze6K{&^bF=}D6qt2^$P0Cu=+|6Y_DJo4F)cFMj3Zh#+b3v)U?UqLe?p1K&+(6X zzx_AzTL*JVK6T%sKz^{c0Q7Ay8TrAcq(NZG<1-5$Q{D$+RA}d^(6`_hMeuy5#LRaJ z2IzHCh?xgnXx!BS^KYn>sJJ8jf~tD67O2Fr7qQ<-FOG_7{uCK(jvY$+yyMf&2Hoij z_{Ly?6mXH`@1~$e9T!Rg-xTC1aawikf>TmVQ;5^%kve(MCvvK;K)~uv-~S`!URY zq4G#&f_BFrr}Pmp;k^>VHqGMSF; zRXO0~N?PK!iLRfT-WyB6aHv`GS~AS3Hz9EH3?*;jlh?Z~Y8(>Nr(hh?0wmzU{(#0Ia>GZl z$@v5;cRfI9;_@*PP`~fujK@TUFR!Hil!@Gl7PDs|x(R$H`}!OOeQaDG#p3!-n?e*Z z1dv7zr!8sgv^5C1;HWZ=bJ{{sf@SC3kiT+)$j2rff1J|!^G+`xPMgSMoVEa>oHl8| zPWwIO{g&n}m-`JkZBe19AX{}Dp$NXymVkDe3Pes)Av%=QD90-Z*n(~JyK8P#ab10JqvxN#OyGEh+B#lITgNMD>v*M(;CL^Aw6IFE7VuS^ zGzy>muPs1hP79hSK z=3|BRQK+=?67i0<+kO>LZebE5ZM$thboOZ~V9lVlo;C|lpTYmadL(=0S|F2T(m8(>)3Z+;e>+(+S(HilC~!tL`<>1`wGo#B*axvarT76T@dFp=MxUZ z2u@c{I4Bnr+5U-R4qPl&U{5&w4r=MYal&B(P|(M6%cm0#lC~!tByCSPJpLxR)2I^; zeUBNlMrGK&xPsfgP6B&zEw*q+CY=Iq9=Q=DG?@v#`GsQ!0&}|3H)KPgZSWC*ay`7u z@-W+b;%c0v0JO#+$q!D2^2aItw}g|uQBiYmTZpp+7VgDhXNiT4)+cK6NLIkq0m?_kQag6EaW0_oEoy3dV^Gj&Lqe)C zeJh-9%m^TFS}Dai&@awe9*dZm;8uxUG$z=Djv)~8USOTLNW|L#;eL-+-fUJZw$UM> zp$1X%dxlawB(&2QSzM7n-k5Jd^|ta#^Yutvs#($C#jJCmlRSJij_L?`C>em`4#0X; zX>A?#1eBXBMgMYn9IQa|SK5`GW)cV2kQibVWiQh@J)|7k~ri?g+7TO}QRm&H|L`~%5dMB_w!Cl)M3 znmryM(b{E>2ha{&A9?xL%yM@5ZRg zXqDb~V@2Z{9(+K*&X{MyM#8m_J5-QIEOVml)%w>o-Z;()p^o5xe^ivVo zM&eH{Z>8rX)Re|I+L%xVTHhGR-H-ik`V{gvX>*UKjo12Q|B~h!2uH45v6;3)))MJ+ zWV(p?Tq{)gbD-X+JZ=5#E5p+anLSD7X2-Y; zs9%2UEC?^^WS}@7iSq29Z%mdr3F&jU2f^svWJJ=nv;fb38_ zCPjs_7g9Mo{nLX-3kGrAt8TewQ zsXDCE`NU%WoS@0a@BNmG5;l~(6QE(HC#8>o>rg-*?IW3c*B{$G1}G~{iqJSIW!ti3 zle|M>lG)|0xEX-w-D>i7^TITah~DP~JQt;LMD%_yjr&bzO>@n&;OoAOFIN3VFgMvG z>+s{r<|{l0swQ?2@;#toCWFR9Ms*f9QEeqQTyaj9KGsdt1(da(0KZIbB6BD=#1ZBKx{~*q{Qk7nyyGVp<|chrJVTZ+ulPR17+d2_Q8 z!(RMzx|5LfbD5Kn#5LjVka-x-X(|(qm_JVGu5uZNSt!bH5PnAag-7xeBexwTnAsz7 zrgEaS6#6)&Cje#bC4w1)o2xFt1#Z2hs4f&V;H8&xDw~RkY*jlK%WHW z)o}*8%cEbUqyEfK)*EvWQ1?rGv4Q3uh%(SRNSJ&gyYMhB7+4JhRi&(fW&j#y9w^}V zh!+g>ac53Cb}{kONc>fJV1m4Gk|kUZn;JSa5;VDQ)S-Cpq0ju4fd5<4|IVY>Qu@_d zfw$`AzLT0x4k6SH6Rw-VUr-I2=UiJNYX$L6lVPB7kb2(Eh*6aNYIRYK4Os&{* zH-;8$9}Cdg4+qt6=Zju;#&83m+vl`e(l!vX74W2$7SUy~> zGubh(0@_(|SNgjD?BPl|*cpSAgPk$-;W;x7;zq8S;+O$X2!|Fvqb~PG^@1^x@|ZFF zd`;|(As;NLAR^!6pEr9*A=nwiPVnMEfFHv>3y`wsInX`Hj6tN?8H2>-mzgopIgK(i zhH8Jh<^>gQ{pXJ?95V*G|H_*&`1b`=fWk|Z#*Vt0t?@Gdj8n&EUSMu17`!R?eA@u%2>X!^|su_o6T zEZF1Z(m?^x5=A~UOM;>0O@MW0wv{9*^09ne`@9xMHdS@&3OWGF zmP>C3<#LG$YF}Q-;}N+8YE)4A)_!q53VL2rjEO{Nhd>;80S`gQXGsvcT~d^^T~ZV= z#aR-*jU~l35VyTZY^kR&?ii~JTPNncq)3cVrn01{TukJ^MOcPY>U^KN_x({ziaUWq za|qrN#FC<sVTr)F~?D%fXI$7?^oV zZ|5o70OfkPhUH;U_Af;5>;}~R0AJiA-GwUW=!+^1-CEm`K==!Od*F{Ga|+LJcPX|k ze|%cy0YHfdt@4Fm=YKZMG&$=o4Vbq0?Khn4qK};x4gi$xf#samYOAP?LyMlF8+YT7`y1)$2HYdhP8{e zkm1|KjZ8yrU+iKsNN5-mTGs>pKQK?=_#Az#T^sp?>Cu>#t+8{We9Dx*bJTwtC0 z1>xiMB8{hMPh2lAuUjb`Z6}f;))! z@Xv7NWyd7_*J}&*Bdx0eB4ZN!Qa6!?RZNj)$0TxGtjw5%BB*1>B%!aD8#4)v3sr%7 zVpo`H%mS24@H07yX7W0r?dB<-9lva4Md8!wl%6+!@sGTHi(DI}v90Ml(D<#%7L>Fm zDHzmlDth2b4`cj-X)t|k?bZU6b(5oa@Up`(vuF&cdk((X%l^JUYG&~-BuqY$-FJD4 zxeU+UaZIlPG|W6OvuKF~H|bjLt#psRy|mRhvRC7@9y{y%L$8QgZ z9j#R+#lj02==6woIfTbu4*wJTqEMVk5;l6H49+A;+MY?0v^|sLy(l#2+!mPpLC9hi zZB2L_plnWic$pt3_X@TfQ=oW*d=>WqPdXZ$N%Eqyy)#LYwr7$gZOecaqJ zN5RP`f4d+ScvSTm{uEh^bTH9pl7fj-k%`Eg({UTsy`q*~%Df2F6-I(7m)nt2oQZr& zR~gga4|F2t@Hf25nEpYajij+~9eEb@j~^#0N82smYiu6I}QGJ&&YXO~gk4U$j z$7dccMT^IriFy}hNgE3=jMJQnItmOr6O}ooS-^Y;MsDyiZN=MABN!`Te2DjzKZ}IP zCrMjd22Eq&3{^eqiaIc(vjGh=547T6iPsXilC61&^TIDx72oD@6`;QD@&Yj7rE{^e zO~@?-{sOR?8^>d=fu*8h8xyI3H#0?6h!X96T|NRQ-;%wnqJ)7C^2cXA=@%k|po6#q9P*M1JRN5b_qj7FU2=8YOxq8!RsC#T6u2 zoV@}arIO%r@LG$@uTqqk^$07#%R3_7<6SmVld}_};GOv47c4*0#|}e}0Lq0+Cx*E+ zW8(JhsjDHir^rguU!dr=RruHjn)-i!z=cMrZ~ z%>Nozn@aIz@`-%S%w%&6&l&1-ZIS&BXqahXzb_&|_B-V4YovH;Z^C`IN@I)XEI_$* z$7u0{Zm*9(E#sDy?=V4|I}X~^#9L_O(lRIhwAd{7_%Hysmd$MFNpg+ zULDZA!e5!pl^F3p1E~8AzIXz0ZV!#bCwWD5pfi{ih!C`hJSP%)lt3FFW`cDBnZ2l| z&L+;g*Cv~^&A6GO5DN5|syd_29mq_lC!tg;nd7|_o|AUEAXgn-<5Qwss zRU4nxNI<#hBnxPVFF>1{0X@`7#M&^=r5^Lm(3Ds~ntcMCYr!AUhBS0G~Zp4>* zu7}%I+9p?K=1mo{et(r{At&uD*NgyGVw{|b9&NvUTA3x=3|>)(LVW~ZXjaY3yFj48 z$)wPISvD_lnlwSeWD~Q_>B;6DJojRem_CL4O=FesqWOhc1dM$#pwKbAnx81$jE=6U zv;_gT${^QgPzzA5wINz2nTw!ndqCY1eEGWKpVO`NTc!P54~Xl@Pm;`?c=lJBaPItZ zN;j6vILtz!eOLTU+V|rpn$4Sexc35yj>^f_())n2_FkB0sBd%E{0iur_EJ=<{i*-p ztx>pvC3C449cPlxO3eEb)f8AVYi2Gr*rdF~s)w7<+2b_?xYi^!O{{VaG~iP|^opXS zW{IhC+4Q}HG1ep%Bv!7}LXIn&%$HGqlOW5z3ty)zwysV+s$QwwOjh${CEHu2K3nM(7Cch8UvwwtM*w_%NS|#=qX;ML^_w3z)7fpxbLEFbF{ptmhsj zMo11^6yvZfg7gn8kR0-d3unozMGWK*P)q#n>MSGUgI~!g1Ba)Mzgf zJC&}!Pj?tlE>3+Jy@^aiF)mcR7Cv6x?NMX4nBu}p!f)s+AP>cf2{XoQa!UsqQRg9e z|1&73D?dA`xExTwT37-5ruCSkr;8Yktk^+g=wb_$xmyc$lKTLx|6(p-L5<7T^J_k zFcxoeKvkr??7CAokC)yRkhOjf_k3CTAmJ&@=U8`|0Ib?dYxSN7C@*o+EgxJ+W!9bK zt`Ov9_$p%_2DVWiwta2$rRqyyY4gzy*G_$ zZ~;Lr*R)bb)>`_2ku)xh@MGfYVJ%N GVuoW=Xb*KH{#g^jV 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

&@of>y3XZ|N9ER8zuP;R->TeV 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

  • 1aQ7ETpRR%R`>P&RZyEn?JLw6-~#=AGpYD;%5 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

    g#bWyFG8o?0Dm*o`>IP)Q&@`=iYUi3s#mS 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

    G#X*Gbm|XFVAN)ZbK>4)lYAiMDry4 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 z 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 literal 0 HcmV?d00001 diff --git a/Project_25S_diag/bin_reference/c17-003.failLog b/Project_25S_diag/bin_reference/c17-003.failLog new file mode 100755 index 0000000000..06a38f6c0f --- /dev/null +++ b/Project_25S_diag/bin_reference/c17-003.failLog @@ -0,0 +1,5 @@ +vector[5] 23GAT(9) expect H, observe L # T'01100' +vector[5] 22GAT(10) expect H, observe L # T'01100' +vector[4] 22GAT(10) expect H, observe L # T'11011' +vector[3] 23GAT(9) expect H, observe L # T'01000' +vector[3] 22GAT(10) expect H, observe L # T'01000' diff --git a/Project_25S_diag/doc/project_diag_25S.docx b/Project_25S_diag/doc/project_diag_25S.docx new file mode 100755 index 0000000000000000000000000000000000000000..67c681a9dc8dac0550fe66821f9125e19ea196bf GIT binary patch literal 103342 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≪jdged~!2BP=_SI(oK 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

    s+s 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%0A+sLS1=I)`SO}!VpkBjb5 zNvjn@J62d(F{Hf`Pw9*UbD1|Y-_vQQuTeOmd+qzvUdQMkWsQnjUQ=TtoxzeGliY}( z6uMVi@409zLA%*&#a3?HO7=?j1%h6Fk)bO)*DW_Fwokb?=}7USjMMYb!+<)+-;9n<(bVz%toJS)S~u?1HSZCTEk+0L@WaR{EWE;en|e8{ZI?(!nEo zTB(w@^-MIIB&W%*mu9)kgXK~3CGz!k(<1Zktiwjg#FLDW$v29ysQt+``9rxvu8|WJ z<_b_<*+}27xZSe#%yHpuMZKb`T`{20S6Qnjsn*v~PAha|a=el<6B{AZkr*ABZVXh` z4j^^wRX?hVROPA~)e}{9C3r?3QYD6MJ(DDygn3~h7>LG}V-hSMTQC1nUL-G<110tq zqf*&aHz;I$N}B1U*9gtYh~?afFC((~(|h;O;OkLU0|G69hj;af>A&p#Iz(0DD;*mvkDCy68C>Gcn;$NUsV zJRa*>9`nn&T?AgkoO`p|=7M{okkPTG+v&!MA2=nW&8Jqa&Of^kk8w{M-IR*nId;0g zl!ljl@;U98nX;W*74YaScjimCimO2^0ft4q<*pRIPo(uH(gqS~PfnnxPw>v#6wo+X2%e4d z7JAP;d$=26^z3YX(@s81p8OHHoV*X}=`zoSy2I4Mh z3HYRpyKMe3RYxZ`gXdHUTLP$pRi&%I^vqI8?CL&;4Rn0%!JpTIuEbdLw-QW3&+Sb5 zM0U@m1?NV=KfB4hjYs=j*_V6TZjJL|#^3-6(e6M*h5|7#-H!}zMzCB!mrl#?N?aJX zI{RL3Gki`#TT-HQwKQ9LSuY;hfo!0IfX3jL3*&Ymr{EX)A&wyg;l(=yCN>X(&L6G{ z;WMvr!V_t^a?WMO#>I5vWT`dcv}aX4V#t@GdmE3Pm?c4opNbog8r_v3LZU?(?R)~g zMCmwLdg`|y7TK>Pk?dEiPk17%(~0xx-l7!dI_pE*QjEU&Ue#AqhEMD)=0>L` zzCPu2hu-$cRp|`Lbaq4?&=IaEy zk?v9Vm(P#cSw0{voU^p3WY`k!gwl} zpbj?(X^%@u1DR>K4))=6P(M;jWn-*J7o?p-RU1p^F?Y*0GL7V{Z{!!o4hk8<2R4iu zT5lm(gr#Aj(YaVLb{@NpJ;k&=LnB#Dr0N+9O`F7}c2p1Qbn09xSW4YM6*MM!yj85i z=qkG&WNLu@!JCD`uR?dst|jCvjJ)nro2Z+xL8>8hER)0h#J9S$zjD7$Y+*RlaHNfg zOsgq$bbA6tArq7^FEZfkBK-#HWi9M~sZna4>W5fG{#9KE^J2ypyxi4QyGq*3nu%)52Y)8tfl zRvCp=EE=_VTFrQ&4S9T}D0M0FeN({?-BAUrEx+lcjb9C+CO-$&){={PhDRf_YU`8A zWd3o;_arc8`@!1}+ge($7oQQfv>qi@RSF-rmv6fl_jp@dE`}jA^V4TUm7>ieRen%C z#U6++6h&s0G0v3a53Ia2dt7m!b148T8zMMA-N!mI4lsDU9VuAXiS3?b9N9lqJRew7$FCx&K7uW8iUzQXbjx>}X_z zL;SaKS!~BklEl;(>t%6;2v`qwveGQNC%})ri0@kw6uv zTB-U7KsITk2tlZud&+j6>Q>Z`nsQ~oL;Nn@y>6e5=}$sc4v7hUtV0De!n-O(J{@&? z_Z2Cp_nt#OXKp@ZQaSr&t8n0t+?q6yzU@^SWs_5WcMbLS*87JfeUl_2-qy`|SJqo# zJYG?+OXG19^5BP0QbR);IQ`yenZqL1w{g3~%jFVzsaN9Avl&?6Jgnlu7H(leJ~#Hu zlh+_r|MPxU$Jp6j=hxN~o4(yt)m`gjdwE6}(c0QkaR8pZA)<0k#;)F}Mg3JAZ|NMrOQVnWl^cx@n|TWzNA$5pT2K!C z{0I6jF#%WUa(pK0XpR#H7=n4@u8s@0zsgxUp4jwnY<+t;6#e`Ed#&?ncac(R2vMrB zNhdTzNGF>_lv*n)oz~`5RD*IVT0}^-6iPi>ONyjHRC?0dbWo{r2%S7brJ}?9cI)|k zKiBp9e*c-7>wV44b?r4f_v`h#U-#U%Gfx!;6X4>RAIDh)e}gphiLA&_DDvPoZ+l7%s6HfQ$iDeEnAmeOcmX1ScMuy{{PPc*}s z2i`QjZ|&|zPmc%!GSuUOL_o@|{SvsUd{mWx5Ibd%gWbKK{`u@9n098(BpFTH%@3y0 z>pZV{Rd8q$XZ34q(9H2Qv*P`NZ!NBLz(Mt`s|MW?M)M#}l_#=euYL$_w%A1elfsk3 z+^)%G62Ym&;2tDBh?bhTB`o^FUY2(+H8N&>277&s2BjoV+b<_(6AWzIJl3onho#Ja?)Y}`8U_FtIQO{@(I z-?H|TY+>NxvCL(Q_=ij5?e`z9Y&1gW-Gz3L!ZZD6V~h@p*_k!jKW_~zhN1_ zpfIGCd&e+|W+%{Rtukg>vcAW#rPOdLGvT=Bv!@Y%dD4pSB(hB84St+?;o63H$19oc zCwD@qibP6SkCCh|gMvS-t87aB5<6mHNIw^?2tz2+oi+gOya=~FKWXheJHJ2o(&Xzr zgWXlVM0ne&dhC`?k(Dn!X8D8vz(Da6-`U<-A4E+kDPf7WJ&ZADDiyhw#ZJB6e~H>s z+F8s|T$C)&W>IPBXwe(Ny+LLWx0CSZHOB{o*sZtw^2+*Ggn49y zjVjL>?MOe8HyN%JQ1Zlko$+hYRi9KI@n7z){-ee}9WF2_>)#06x?VQ+)g`#mJso~E z_WH=En&8*2GT2zvQ?A@aUe7(dS@Auu+=1MSINaxyCV`LYx?d>hakqF{9e>C&6zo3~ zYq}^bMC5##4v2TdQR9e-jK}bn> zE}gPE3p)&td*!A@u8N*4MOy@%rt2gf#rS8EB0h_3+FbjLguNXpWB>tzrk~f&(Sgacy|}Gc1iOEw?B~Ufc85Xk}iEOs-E&6C%@k1$sDV=vV34ANFR^ zYX}p9N0(&|ghRVbS3)u!SGt~MMdV7bYb8~SGz&mWiryS7l^N?qal!9Ygr<32(JeOOqTpY|2z!(Vi5vu#;arx27{%m!oO2b1Ct z4YR83E~IhlAs8*9e-A2_l^R`wi>$q6ufzU)M#@O|VTPHLJ7#^P411p7)*9Qp4XYpb zhTR~zBg}-0zE(DO6RAm6=HTkq?+Uq&1kqjKC6su8wSE0vtfH%+^0>)t)nnDVpP%%> z?p6#Hy9Lv1@tK|CPU4I^5B&uZ@`&tJnhgThf%~^p7Va@izdm60{Y~g-{OTX2RoZ7J zW}5RkDc{2l*J9Sa@9uh(%OdL_jX?_CE4kb zC(oW%9VBBQVabG%X*dDzdsO5^7v{m@k+S~V3vOxykx>#cmaKB-F{0kst6$<0!?fPA zq+CzO3n~|J;r2CEIV5Cl@3ZWkE$$2}zwa0ATjmN)KQ)Z`c#tlNiu7HMAtjMicztjA z!nlEP7U9kQ=z2rym$HTuVk%ipf0Ovr>ST_ZWl{d{qfO@w0`6jES84AJU{i&mkA>b?_Hs7pbx_vQmn2pUZp>m^O!1 zHt5;+08eOk!RNOd1FoZ0FZ$uEQ2+hQvK~EBp7p!FQ+q)?oW>u_b!^d3l8;%}f)Nj3 zzu}JB4;V*ah9zu?@YU|s50pjL-1>h-BBt{1J%q&$pl=YU6MRt`Q3c=pn^Hs(i7`JT zqZ36Dn$IO-qP;Oc`*lu)m+s&H6MGlomgp9G@kNVgJ_$|S%^!=G|Bg7*PT*vXN->ybE|Mf!LvpUQzybD?zh-Nt zxAW?VA~V_T@N@Co>rU4ny3Yz~{NnkKw%q}%e)JnAZo%)VC^aD-C|Q1I8&#%_#LK_? zk8>=0vbK*2z^rBI-e+Ib1~yl211HzT{y@78pno57VaJMPZtqrZnt4@?$klF)7e0pG zc}sz<%&ygg?au`3r18v2gaXd+b-M1c`nd0#zchuUv?ZCh@f5Nz>-MKLtX8Fj@jENw zmxg7%$}NVtO66%P)=cF8;nm=MVNtF%sMPbS#dX2ONqH>$O*Jpi3^LWP zW<2^(WZBR$<<=so9{G;5!&VFnO!qhhA4eRzL{dK2Rnj;!T?8#vnZ=`mW8}YCp`921 zX-D)SYK-_a7Q{6`7)J)TE%n6?Lws+e`jEzUiHuailBl1sI!K;9`IGHfyJE^~h&M0o zA6EX7h2Oascf@7OGi=E(7%UqNJ)+9B4;<*e*dcfAP2YY!7^IpV`W}~+d zyOK!~XTxM8g&a($SC(yAqg%E(1h?9~+Fg5BzHVr}5!)Hd-fT5{6D7{!P@P8Cpvv;Y z=&#`0Ba#l?v5BJu<|7;%1$pBHEOIJ`bRmC^E4b~ZV|nmOn&#^9br{-Gt}XA3#O1P^ zhQ>f3)38`+nH%P43+E?abb78+ck}j%IM`T{`XSy3^X6W#qE&+P#^;S%_AHNahnN1% z0v(rXJ1N_-xNnHwf0~=ed0XjveEc!t*OgTin#04{YE>=%fWuNii1&lNQC5zAlL73; zaot9{iIKqyL5=!+Lgpa2(Lm!e_d!V5AT7(iqV?_SeBe(3pJ5-%#Ul%%+`Ovtpi=9{ zoo3#u!12cHOZ+@${x_p<3OD#RXk3Z}4Jh`#9G%-2s3J91GZOhw|E=MTjeYRO@d#M8 zBovXQv#n+d=XVOO+Rr9aO7oUh*W@ZnLu zju2mGiQnsKVV{lLo5j}IJ-4}cZ)eVP(gk??v_7>3iq(QU7Uj%k(OkZk(jDWik)7qf3neRJ zwo`6_C314^^g``I_jkMBiBh1*&FFOIHV;;B@2w$<7PuD=6ty_=G}?Idt*#pddJ6t(S3R2nmq~<+D>W zKjx*y#$10!Gyd5=L&)ZA<{v`b3GOfndnX=)(%Bg!s|2+#l9`Ks2z~K;e3J-M$iho) z!Mtk62`6f6Ds|d7^>ewO4-%?27Y_^v4;Kx(S)X2n_Gh~zcJ<7W z*T>B@k2)qx3C4W_iC4N0at|pFst+20{$n-Ey$vLx7uplZKL*RPs+l|Srq)FsfE@&t z*GEm0qzlD9_cO6G)&`VjgD2ZT8_&Mg9?}n&k8qDn(ZL66FE&?fsZb7L-O@rLU!9M^ zmzHdQiKn@XW{;Pjicku}@ocg2^G@IkWGrIJpXiGBjj6%&WjJ^c|HA=zwxmSXZ2Non4}S}T#>~p zhl@DXd0&42!kaMv+a#R7Bq`CK6ID=r<=pordX|rq#zvZE@R!|}w&=iYtqH_Q6I(|S{8yJo+C zm}=d*c(qtYxc4N3cr;#VcI01fK=1dX*W9_{O1Sh#biW2xi?s`0FbDl32!3?5L@&xH5GR2q48=ZGNevcINmcvO@ zN`A=~Zz#$B{h|NG(A2GW>Zq;_^(}vnuyQc#)Ti=LUxmj!ce46sH`3qX>pgRS{tYs3 zfBTSpP^%(ExQP+!@x|&cG#@KN(v4;f=~nW2izc3Q2+``pluX|BU@O%}nlVA@d%DXP z8RkAjeUvZN%NipSo9dI6esa0}yO#Y*YHJ%$*w=!6 zb-&V`PM2B++Z+n?ew*dc9}buJBv=S{>SaVPX74gj3qA*TMutJ#B$g0F9E4lkQ7 zr`5k|h^!i}2uUf}@%rjS1|M7zNP2}Um4#uzr=VK#1bRUG5E zj0#bw?mdI5pnlR>mzjD#aivd_eEUn$OBqXjOIj7pF%hAjnoD){+od`QGR8~ai}jXS z3Ve9SwKYa{;(~r`wVuzO$^7H;59JMP`mt@+=cCh?_P+5{s`;x7#lZIu=!TRVZ1i^q zzl%QvdK*LJArPobxW^OYczlLV5JF` z6pk&qu71p`tt1Q+>JI&UH|*CvQn-3&a1xfl-e1Pb+80psJfr>DnZz~!qMdtxCN{N* ze6d-&LbN>sZ*{h!1<5a`B`Q`~&JB;mvisM5n{D|EsQ_HkAlslI^h!TUBiM=rRV2?1 zZbjP8Eh0~RxdrP|w z+@Y^WAwJ~7*o_``j>i>*$Ypct!rSu_YAF)I5+CoGxHP)@Hz!^0GXs8fwxMZz1)vxk zf1&QKKf7q+xDMM-^{L%i%!<#WG0!oyKMYc2MK*sts8g5-+#3_vGZ;?) zhcG_%_M4u#vU+oqV;kCswm>llKk0_zT^C zNKmR=N8cSbz0VK^Kgul^c@lfX3m&x}j!+fI7JIox)sX18nPxgRR*B}lY3-=hb?o_U zZOJ*pB}u%A^YKHKh@ae62Rn|#JH9oU`eQ81FdhOvK7IRuO&W6y_Ap&Za$0dBbjnEW z;NN9U_O8#J5PqcmdhmAA$l}*A;!Wx3s-*8b^n3rfG!MDWv?;hvh zE=Rvx->jFGt4dROd;xI7@ht)20xQ(EUy=jA-fP-er`^>bdhOLDH1@UCELC>3;8#9n zK8M#(5sPvNnI*2_qcY&*HMZe6*RG3qZS^Km>ToXNebFUc^=COZ*fjyx)QGPSV(i;VNZX%&oRd( zvQ`UO+LKQ0cyK>(+D(?K{II>$1}0-^O0d2A&6fM(VYewFP7IgLBt3OBH2BE#_zsj3Y_v)>5=L}Aan8TmaC;a&^w$~Xy`fF6 zU7iiKr74*$3+L!Jo@qqh?e*|2%)gaEz|;9JBy=*~+(G~8Bo}W&WY)}lxXpeq^Hk#? zP$gBtRe@H(_WGKlguzzZN%>+v^AnX*=0^1Q!Q=jS>X}~jz`|AUE;sBLr_~-!?34Mg zqUOk9yt$pAYyKooy%(V_OfhU*=qX*ZF_pwv)flre=C>H};m}?)yr5A201G*_c;Qy; znl77p1?y0oLr&9ppIL>3DI2UD2u;kulkP-N=H)-l&J^xNV>0YRQe{5<@M?^PI9;^- z8U0cxMlSQd)v?y&^*+Dhz3tw8)dH8R<~K{XOIAy-pWG1%^*7>;pLmYW7+JFXa*cW( zvnqC36P`G0e^rF6e$MSW`7WXz9$H-=AD#*$82NL)pi@QQC$2yE+&kYT@tfov>sG+6 z@3B+q?)kY|a$o&p-y;*Q*ezV|4>lJoHe0u@#VWs{vSA%{T|-4RaR_yK%jbg6C7xchiS`|i4b;ed2Nx9mP8pb;|1=Fj5K`tTk_xWJkGLv+=yo!(LT z*JDZiIrbQ0tC%NkYn}6~TS+bj=W_4rIn_hfmG>(gxtS*xVVvmm!#N8AIcHXR4*#nE zCC)wVY3$LEuldeKiW=S>I-X^lhC6d=9E z&ev0Rvu!uUKpg7A?!6_#sdxervtFojbuHmu{8AjBr-et}OO}zcBEkNp-9|z~Tm7iE zbFm~n+|azH*F7_e^IKhpTAGPv587S+b^sQ+@%;>psPE9Y*WX&e@upd@&(29(yRCAU zOv5IDdheH(%{ShmYUA&&EnDBsPu8=t5TM2wh}`)3?$`|pCm*|z>RHxa{{wYFcM2gf z(U|y(7I~ub^&GjEmFvI?A1LjRxm5ZGQ|}-{Ybc?~;}A^!7B)G06Xdq&=dGLj2O1HR zEfksR6`(b9cU3a-I4yG>e`BOd2*IH_RWS|bfL@Kyz#%SLnype zY2~GPb!z9e&Tq~(?gmH31|n!E$d8urAW=HUcGd#*%#)Orv00s6q1L4__0=g!$2^|T zob2Y&I=UVWYvkR$CsYBq&L{l|a6M%IoQIbxd?zbDW5prMe;~pUNS=#xL#+GDSd-ci zI%@C9uM?zXKk2hN`RYG@MKNzB<}G{cJU%P9zm_Y!Xc_KWXO*c`j_QE)2~o{AX$M0U z3X<%@VWSs-wkpOA(~KtSASloKd0c}WTP+aLEDSptFA;(C3UGhPYAn0XmQPF?COq%Z z2SYLQQkAkt2Ra6sx1RF9EPl;awmQ_~mny7``6%;pE{weW<~2IB4L`5@JypD!p>hKR zg->NX1zCHprR5||&E`<#@}i#r?bO=Q>hL3lRkrmzOyq@W1d02k^Bp!95q)=w6c)|t z$t&}BleR1*i_0&9uLoETU)mD+HY$g|HqibN%y%eQIPt!UVb%|;jifqcukgE)R-0e0c5yh1`otL$W7J&8E|Qg^&=>t#;aH5$d}K#UEC($H>7mIB)QuH#ZR1tF z!%qPnI^6!-uJbv2vb3kPs+$SD;!@Ke(n#C*YEDsFJDT~>khDp2E24I>_<&l{M%|5 zp{equEq-T1dhGf1^r91XmK7Vkx>f&hJ@6RP`mpoxsp=8wg@HE)T-v(HG5)^GV281`tae!5A;3Z zI9Uu18ampaEwK+u0ng0?ujDu?EquVEzt(Mfx4+8jdt8x8gm?b&)eQLUCdR#9S(#iQW^@A;c&QB)2MC0>uUQM6u z8b(&0s){wrvf3&zVe_BImLM*=eU>p?vCzeFdHhU%4nj7J$J}Qj4tj@`m-t751b({O zGaqdY(`E&p#c#{aFxqJQ;Ug&#B}EF9e($YzBi&7d(e?Zr&xy#t{MANDk=@cvD;3_4 z{`Xg|B%it6VoBQ<_3xN=zIHIiN1UGU#DV2MQPxG=o+mRtNxOHRdM(N!{W5>Db#mLHvkkU45Py2Hxre~Csi$UdvW{mAG z>Ltu1{@Kg%)!@piw|8((R?gy8ip(ojbH>kio?gB6-s@bvAJjd>i62{DOLg*jWIG2m zzf}7c*tWvhYT6zlW5oTI%fU}c`y`G*mqN920f;Tm6h&a*vkDF(x>}dS6F~=H(0sZuEowO_4h`%`(H5+ z8@2oQa8Z;k<66NK)Ld>Ws|kV(orbdC?yKA7D%&3dyNk=Wq2+Cp9RjG~@@pl6b2dTO zs8~#3?bY(~@G^7LLtTIB>N8M9HFjqVN4dOmR=vFq1KRrF1anE(7UQ5?iI%mRQv42I z*vJ0j)P`ZY*j9RC{KAloEukR4{X38Fbfchrrql>kseio^$AavyQc%2PKHPOzV)w-wDsDpa@Va zbW{6s+io!>H|4pJU8>}+aH&%CXnLuIGIRd+Pc(bq&u=nq5jw>|eok%XSgA;vlO-WJ z8=)KSX9j1)XGcT4S2$;_+~m3qdpuo#Ioa@jn$N4-Ok=3XuvMS(wNal2>otr-Xm%KU z3&=wMXmP=BVxF{C$XNS%irpeiUyvJ(BUCe(!0Ag+$(ywymmvRWqTY?b%`{KbZd@72 zl4IVRm`@?36Vkwrryq@&V9^JxSIH5p>sf!4vDOL73Uob7wScQB@do=ZJMS*nYIwK2 zQ?VLvC-@pZMN6=NA{6PrL_vXzulsvna4Fd)CV^ihsTGlssmLdaYl|DmBW3?w8Whk; zr;LmDpFB$@Xbk(L+ze^X#$$<4D*O@!(`YR1pL)@N2f@BX12HIIYUZah{6}Y zQs6}PV{CpwQNz>YqU=baCl|yMfOF*wCLQ4P8hrj9lyR|W%!1E4TK4_2%^G%`?;Ly;|l{-Q^GLy0~8|b?NMc zm130^^;V5?D{r@MYy*$(R;B~<_{QI^=YGn`a1N-N{V{3Le#O)HyjW3Vcv2U>=p_5F zI0-i>VjKD9eD8_c*D$3+_=)V7o}=@E%~4*{U+dZ&bvGTl7q(XwI^S4**FmPJBSahEP)xOZBcdzPs~Z`#SmTBwlw{JL zZ4u@6v%X>Ikjr35HqCp6Z?R!4WqYRCtL3_N=AbX~ zPF~OG#_O))4*%HlrVwol$xA-p?-s__qqH1}ZPt8~>*BXuRrG#>exmSz+L^w%mA^$qwnc3aM4kFxhSHVZ@FQiwW6mH2~1 z`L&k!-Nlq5mbI?q4xv>$G8 zLfU(GVI=T0|GE49>ZOStCXY$L9Pb>F*QTjxdPfQZeX>kzFF0@oA5Q`H6n+eZ)+B`G*9Z6-X=V^J31RaTR+0@!mrYGvKu?B96l0G zVBT;pdM~a;wwwUt2o(IS@qSRc>gt@cNV>j8Om@~ysKxtp*qW) z6XbCFht8S3K!n>q5wU8BX5oNu)=GIye_Vg;>lHnvWA98r{u+&0XE5=Naz$~~gll|y zWgL?em5iS(>xlh91Fi5aUl@}+nn}4DV)xB~?!mA9>s_1!@v+%GS!hR6 z$H5tL8S+*1-K7UQM908)XiaM9^5Bx{K>Sg&9ok8q*N~r;|4qtS|3juV-UYTYHofZN zYZ7eWpU~SJ-YYbK3>KCy0u*(l&4=Jani8Rc1UJv}Ea&BrIU9`m)VZUeZ zXD4BgPyMBP8*gM0#y6koWMXb&ZDP}4q%e0))sS1yuWz*2GJm)3c(s2PK>vyG(?t#S zYU7wSnW!v0XblgR&3MIsdqOV#gdEw`F~0uHsr^Idu+FTZ_0Z#*MuCa#880$w=6Eul zGM0jsGK;d65}k5GW`|X6V7$wqqCH>LUHl*}Vf<0v#>2^dd+%Cg$Nz}vSy5tjv%J3I zX`8&Dx}@3Ez5T3;xAdwkvRK;~*K43jK+LkQ=ccmm(1p^o+1TSfKH?a0yhXJ^b(Fio z-%8Tlr*va|<8&i+gK=YZlLkQtUnZj|)m4n%D5g#nGiZ(6XtXmMtol0MOrBSKHv`*% z)>91aT5PGt;opQFs;sN!iELLU+G;ZLtEPU=Q1P%fNC&EUsN5%erf;2C`-WbKo8(uw zA4}yxslAfi>)q+A2&>55sSmV)g6U7&#%eji+dUZQAD3alqvBklf)>&bESYOHO z%zwf^TA$77Ri|h@-Ze4FJqG#cGjsm);OC@0zPHnIHno|-ES-dGkVEPH%f@VK`5WxU zi@;;BT-SC+$q!pCi_M+48;fbhqCM!(1L zSONdp0x`4dvX#@5lK{e>HzJ7Srv7o|gJ=Dmvu0?E&)0tpUsac7_C5Vu?%`j-d#&HD z18nZqaT+cHZKl#Xg`m6Ix;KGR?8~d16$;K}`e~q}0Mo%#)1;W9n!*})ecE6{BSlxE3A|aa4 z<_c;? z+H9VKebuvh)`NB8IjR7T58~p58uCV2@Y$WsrQIFLmGkcEc-ns7&Rxx=&82Aos|-mG zeS}~rse|Chbcc7GZC1b|Ky74-X%$Iv6DqhKEaBc4r%j)e&Nb3rCS<`>MzemX)?~z} z?BA$-OV^$kGRr)6jxs$91*YN~|FuHG(WlqDs)$jg z8QXP7X&reRbz9lILSeCIj~~FUu3t-U#y%!>b4v84y3HikHpkpl$3tdWuN7|1%Gi==}Bjx~jTQjRDqf3+Fb( z@7>b^Elsves3e4BHs_o7_YK|rS|8}XHQlnTQXi5ZQZKR|B8?6nN-WAy;tCc}_E0Y8 zNC)B$oKOno=p8R^zw_FyuFyLc+4OdwkX&z@Wj;xe4h)ql;dxdL$J^+`drmk}d>ZPb z?s@O?aI>!*cnbTzWg0Lb^WKN56LGd$U9%F@*|DdToIb8lbc4@x9~CD~=c7x_)tUf5 zr2laj74CKy6-7gvOU4B2PaqtPCrs*(PIlRt1IDdOH?LZ9IU}Z~xH?596U$Dtmr4_4g{o{cIIlobVmAw20^hTEuqb)Qc6E30H`*1)q|?M_|ej#=>4=H7lKaqx|B zqH@uL*3a_WXRmJcJ*L8iD>(;&2n-i(im<7`+?wNh<0u^IV;I$Q)sk5Gvc}Y1>FKh7 zY&HJ5YwVIJ>|S7%W^VGnJ4J0hO*DTR_ODE>qfX(6|Iqn`X;0{WSY%4sKo1c~^@Dy| zWnxiX*N{zv`1G8@naSfY`ZQ+v58zn2fHoH2(D7}DliuxoMZk#`BkMi0HuLo_pQE2u zQzSv6P1^1Mf+JHl@0clW++QDm_lJlU_)1S2sZ3b9Ka@EI-X!p*3iPA8o4m7vUJPMw|FphilnPSq$zPE6G({+C7AVd=?3h}712}J6K!_^CbdMB z8Z6R=%%Q}zb?oDW;S4gv_P=08^T6?Y^n#=>8`1SY>R5lQnv$jlvR)TaP7k` zqXhZ7A7OKghLMIF7azkwUZ`Tt^C^Ejs)tAM46bs0EYup3{c5%m@p-WlhJKC0C!aLn zt3qYkKMACyV$NcWC@eaxu=1}@+ z0j#*hPI^HktlW2>-wqM;jE}e2O;0>#x=G~kGV5(#A=e*^o%E%|aGOSLzPBPTOL?V< zR*}NuQn8HkAyIjh&_E#4RxbvZeA%a;r(mnwzO4B(t0OtPSSpiEo2@<#H-{gj&s{Up zCBn{FRoM_@y3wY3J}l~AhnhM$FFP z^e8$y>mmxP&Sn?{pJ-0qj&UI?QnLf82H%OHxzxybT>BW zO1qH55Q2)1${HGyjJZ|iU06GOQB2@VxRcdQgCBIa!@AhSyHdx$_AzY_G=FTxKJCGle!9i?j(P|53nDyhQMpTcD9> z3~$D>1e%pe0`2&oa-8*7R`Ks&6!Bz)H7tx@N39Gk0pv0EkpG=g@u#zs{Lbk0mo?dS zr4*aSuB5Fjb00w|x(z)>@38DTx4J+wX(c(FgcKgz4hfICEsndhVZJ`avw)l*sv72_ z2wFayM`x(`LbD>nPcLfEHvyo0-Vk6lE0V+l~bZUPXrg^rKOqOc@-!W z63E3a7)E(4a&F(AQx624M=XVF^&oQA(N||^POz2AbTl|4@IW_G9R^x{Rzpuqu1imh zYW-)0EuvB;PYTZ%R!!=d4os!QtdEQBX5BQxa2a-pzg@_}E3zfJM5r|U%Nyp$z>tNP zd#iL@c%w?s0S=FlK$j5VUy4!vMxdAHNT6SGEF3Bton|2CRDr%%&99=J68A3%r%d!v zf2E-L*z1_99C;B=aU>z6e@R9BQk-nY*mtWy>NkC{_b(Ms#t=jVL)n|9lj9?t!lFrN zP!zPhHwxxU%g)Jr!lC^ zc_Hpo);SUX!`%vSnxk#shD3^jVs4g;mK>8?6#P?cf6mT!+knaG>N;llV`yUMWFW2D zQ-{b$K5rtoM@q5l;oYfJ#ULIGi(tu7Ev{{B7yryCjaT)eztozt;ji)E=|6ut@iT}c zjk_fHbIH4(8}+(yJc-t4`ycC*kA-$iCw-45abUFP^M#CQr;Wy<|A%vipZ;*3C}sA; zVOIhb$wIdppPyt=(pu-(ERUV;TjqMX@6A@SWm7GO3VE^mvW@CpFKkVPZnNxbcHmO@ ziY{`z>Z`St{2cf7`Ql3?Pvk1Ca>r!9N*$=uvIzvuG(KTvImGHlr4AjKNg&R?b{l{e zy>PCc7o%=RudQkxIAkuI_j~-2DHDQ}w6Z=T94k6!cRq3sH03F!jjsIuOwBkDFlc{@ zh+*oxL{oQcN%vXatnr*Uy1xv1gnqw)-v#-8!S27@h~rZo{)6I~OUsQ=Mi~v#oj$@5 z+T(h8-dLpMTmz%lO^9AoU>L<4R<*oXN)MOIeGd{$)e>jg4AK8;PapBQ$2F+m0+;H* zPwBMN7mgL>Vtq?u&wo8nI&i^JG$0xz62!o-24^r|)z?51U#I_nadI-!R&*0%#HR(Ir6nh{V=AwN*8b(q<1U3YjM*FE#g7)hJ0FCPkG}p^Vh93`m7R6gi9Ab(BL~!& zJfCwoxqXf4BU7N7?+nyURCZ5NUOJ8=@$0t{ZSFl9@gDbr7`;+5emdjdj7zCWJhsiQ zGjWy}(O)I35)mQ6{nytQeI@2~H{H3Q(wiP z@awLh-+zSOJ5OI2bSzw{tu@(OL^ir<84=fOO_|JK-sS*D&pAJr`<^cRPMpchU3Wk} zz>o>bH6Wk+_8E=>Q-r&LG@(0S3mPr(1`SVBF0Iydy&?>cC$b1zEL&NOmu{OcrmXAX z!RgbQA;RJ?izbmB76L&p)qab>yCHjYfq`hY-!)zt|GN9P@Oud^8y9JDPGbsFiQCv; z`2A2ODOME|KK5%W>4i_JVC^=6DCSd@U~R7PlxTL*i*s_AG+YbB0IdUAowFn*4_2r^ z-q&!0i`xc4`J}T`8^5Q|Qa`rGAS+}>RQfdta(=78*U~>+WzTdYhCmLVc@-`S2^{X2 z5y5ZDx*aJZOO5u+B!i5nzS+YK2u=#Mrgy;Qcy7@}Xd8@W;l{LfA-vFDS#=!&n06j} zv@9RD0_D%I+?e(F(gZQ-{2_D$Q0xP?Er!C zC=-ylzx2L}W?+uMW?&BA1uN0eD^AcvgEFAwpk_Q|FqNe!_$b%^s@Egfhg3+&NG!l) z?LB^BR(W8&QgL4H>Y1TrpgIKQ7C8aw;7S1|-P_g|K$Tk<7`kQFkGI^G1UN!~xL~Zj?Y(w?J-@}oW zxY@U#rzWEOZSb6T3T;*s75ohWy|sr3_-(Hm3~3$=doiy{;3jO=9ton@ zSaS^amx8&om<4=s+f?be!>hqj5(1)A@JXTV7b2u#@?NHWZ>j}1fGNR!fSJM6D=JG5 z&ox{RZ$c7+WQVv4QOstC(vVltfWnGiOhkZi3up(z-9ZCk?u_72cY1KJEjSKH78pnt z29PXONQa@qMmRQ2S$HpON-_ebEprLdf#QQwpt3MbxGl^zD!2%nJGY34JJIGzzQdOr z%+=d_ft(>v5bdwF<3elAKYB6m-;e>qbW88KlH7K~whs(H2-f#jrLDPWkxBjRB$?{+ zBv}bUg{Fv-L#IJ<&<0TnJaRCGCE+NKB~}fprAQ4)?}!8D{J;Uu{NLu6^F6o7E~kc) z9W-SrH`D|i2s|)hFSr19Lk-jLd0t-yR;Epifs0+YWY(0nvgmKyIB^3HPll2ts*9EJO~vp8iY&mlS{*umKI1ZKgbU6 zH5jvqJ{o@_1B5XV4RO9Ce6}6+rlf3bH zLW&50kgqw}6nXfRG_T$SP48MWiqpfcNT%!iP&g5O#)?BH7R)reTKg9&=&0lLc)pwCMaAkU8+;M66_N_)b> zWIU6?q^_Z1(iGY35+9!d4Wghqlg0tkk`3a676NJ61kys7&5lO`Mn$mg;37n8L=XgE z=3XEz&C(ETI~wK?-g6ci(8z1WvDRQ1ItIY{pR@yEwu%Kblwb%=4#0XRK$_UWNJUIw ziXsv)b`b|yP*#BegG`bDEt&z`vuW`Te8hJs0m^^J7b1%a2H8oMjf41F>z>=l|J^0H zJY(%ML(%1i4lZn$yDyM^a%_-)g!RV$N=?+3tXvYdWB~J7@_~tgFd2H~A+P3TAvp8W z5VUzU2xeVUvZN=B2ndr12ooVi0aOErqAM-BB8(H zoRloxlBg~H6GRMD`4&*+RzQ`b;!y(i_5#cWN-cWDom_-hzyuD7qZtSV!4T5&NtV*s zAUo(8h#49Ul80Nu1f!xsFS+AEXfQPb%nVfmR4yP*t^ijq0Q%NIr+C*4LuA9#XTh0x z^}zZD@(`>#ShBP(ARf8^S!RHeas<{_1=eQ=);|LE;fVn2GlB6f1;C7!xM12|Daec4 z5D>2G7Z8bS6zJs!2pmem01l>L;*wT_f~1T=`Otcxn_K{$MH!@tCjbT^Fu{UF!657j z#feM8Yia^wix8!EMtFqM5DWkStp5c-Mi|(Dmc(Sq{|i7d0086v1%Ua>{|BH*@_zu3 zhs(m=0RVvh7XTap0Av6F%>M?!yNKYL8uq!jO_~6$4$37N*#RhyKwAI=WB>%r00j5|1YEscVqyMLkXJ&IkQYL- z7GZ*5S6T%yH*G(7f`&;ELh~Mm0?0fF?gMNQ1CWv|fD7Ruq6tX?3_B1;q$218H1BWl z1fuUrra)SS9A@8ZtJntp3JAvtP%};-D}d|70M{7+uA>567m`(gAdyKzFoCul2DIgf zU2x3*wq;bHE&Bj%`908<87=9e@wovhv!II(RiOum6eWQqt&?P>hJjR2z%=0gfE!{3 zt>a;VNf90+VXSjOfJ^|M8#jA|A+=gcs=TmoO)CXCg#vX z#6$4mHZay7f&~SGXv|JCrExw#N#X!4B0F0GS_q6yfQy9LM`;Hor_=x7qr_hi4h(KEv5OS$f8jn(TlYQDA%3}1bI&$C<>q; z{zu=F0ew%FaR`{O659i#Q1mrFe-XrQmYfd{8m;8feCxFib@fn5&{7m<$wBL`ndLAnmC_ zUPRL|hsY)oNn0q!LAyXcP(hfnB9KE+FzEF;2#g5=>iC=&kX=Orj0`|_!L-rA52+wb znEb{SqQV9iM$ec8!iE6^A7IdwGNrSV{_B%X4%HJ1qCssth6(@~3I~LD3&;u`;5HV4 z*#bx|8VsU{0f=w_%tDbF{1PEELaj&!2r?ls3jt!!v4dL_GD~!>2fSy9#y=+p-p2r2 z!UxQmAOhDI;0(N;1DxjHx5#B%55eBRGNvQ11+J-q&l5(I(EUPFVwaTzt{qC!mXQVz z(j0+VXg>f|^d1nD&oBZ-6fiRg2DqCn00=n*rXwiV6NfY4QvV)00@gM^3Bw5q}5JsqFQkb->&vMZ3Cz%P90s1p( zQ(&8j06kq<17=sizqma~#t0hGI431b#RwVEkP8aXFaU*p1DLX601{jPE-OIM)qyy+ z+Df49fX~GQU@`;#o&pG}9`G5K5fu0=AZYe5QaJMnisEYkJ|sZUQe{!k0RFeN9jDbj z11~ax@31h+o08TBrQq>_`9R4+>?gjU@$R9$U>8)=>SjN4ivB^kaSy^ zv?4b6r6ni$E$AzVgg_mJ0j7x#76rqQz;s;Fxs2ctQZNBclHvvpGbjUouO8vj1`@jva*nS&lQ>#zTD*Oud+YNMU8WhCWSN*Y%j*rAfpEZm zV+j3jekmjiLvn!;>DNywlu2xLQcsVlK5EjIDA<{+ytK%DSDa3408~GS)|#x3bo|by zIJk;Q>N*i5d7acNg#!SL19Z%^f-6G#c0RkU;fqu?hLxbP}(ku>)K$sw03Yb3t z10QG?TqCdH0zeTY0c@MhmLRG957Xbf0>jNoavxy)6(BYafY2OdOW^gP2SZ+BFfs@K zWMmHg3G6<)(=dm*(=kW5Gcbp^GYy1a(lCD!m4%`2$pG;yScF|NfkUxD;9zXp=ulB9 z7z!ESG0DIMA#s4v#?eNH#nEF#f&hP+%kW?9y=7EX;rs7ROG%f)2t)I1f9L#X&x^Mb*B-+SwQeedh@y{^5M zvo}t(2D6g{>^^o7FGmxCH^x*MW0&?z&H{)X&>(_`35b8wC7g!^6w9-H5y7+N65a_I zt#Ka^`#%j7A=t(vKmN_|m~BkVIzNc3Q+;#{d;AT^Q9XS1CGR5<$nZ%`%0xDWpaRp7F#lEA&P$ zuSJ+JZA++8+mQL1&<|n&&6!C?ncSarDrS0B5~c!G?r8%Y1SYN2GWi(9ot(0l>FyL403uZ_HINR<%c0O0n!qxDUp>7g z9Fc>l>80)g_t5wxC*pt$yh^21eZzFF`i2=#wTc-}jhiV^wTdYbxCK=QjM)8bU(Nt< z9|MGx;_NB#1N?rGPNwkU99N+wolMRb=xt@zHNp;oED8drqg^Ml;WWYqv42nHpopuc zqljyeJOQM@5mzR`{BKHlqkHAD;d`YhVYZLvXh;65>k#06^p|&wTrIFQwZLyOMo5cX z1hA4%zzST|#sM83BD*9}s~fGp%Y?|4kur0$aIY!1F{hKP#e9rwi)v%eA_j(7xJxM3 z(~Gm#XpCu$K_=X9SZqjasEw&}s7+|vS=eI_u&xQ(w z4uWv=pWd*RCkg3-F}J8eFX8Qw1keSI3)Ymz1o^ftaJN#X_o%SqPt)i2U zJ@YIJE;7ym8iVsfAY2ROY&yPbYDI@>B#zhTFfzvR5a6FAEQdm5vev=Z8VQnHc%Vyo zU746piaKZ;S&#v75!(p_W#)TpzW1(B-FOKi&-YdXQ*UtwpA@DIKZ7KQ?c~B0#`z&< zpdK|)k~Q+V70aUEJz90r!qF(KWb_v zKB?()du;4kXCL8KU_;OvoB^T$>MF;8+<+0q_^InE)NDf;LVE8B0~wfy3cL%yBPYeR z_PjqN%^+V=*G;7g0q>iAoj?}&^#CTL`0s-e_#iX<_rVE#glO{C$wIiN&H>#b8a2Sw zuQTB`<6j{OT+ZcW5Q}%|TK?*QZW(a1aSD(z{0Jh%)lpWad#S2cdYF;EDD$Ju5{$bO z#0ALM&`rK2eBY_totmz64F;oawZVI!6ph-wR7a!yhG*Na{kmum@v-J<7wF_@KmuUYkGkg9z zJA2MLFMHufQ@xmW(^QWVUkl69*Z?;#%Y4Aow)o2WX>g6T+biD$~e<$mMXC zM+hl`1z)$ot;Xp<;qdDKebAIzdjoB=W*(<6LS=WZ$Tob% zIWxUwGDg(4Jwr0R`^77C3?{tM@G7XD*v;H=End&FHf>gik?;naBSNTG7jJtGEN3gl?1|_O*PM*F2-Ll8^0(- zDx9Tu*cwy|XT9;%N!i;tj29?OB^eErEuV^QmG}h9C%2a3AA&(x*bAndD!cg^b{gTE z_c110kaVuOa*Q3SH%sXxnF2FL?CkkAT^05?i5A$j`Wn!v`QZXPO#ncgHZK|FX zA{pyo&x~~?C*GmLb>^X%b@pmH9uBa<4DkXD zl-cR@19`8krnbJ3@ZFm$?Iviwf~NH1THEIDwf6eIAK=gSYGXxg0KDHa(v^*Y%xg3P z;o9T&pg#B~2pUMT>`F(d{7SnK;MuFJ zP4}#<4e}K1Swfd?qb1HW6yv1?-uhcPYzyJ$;w*#fXsUre05B?v*WDJwcSE?!zc7x! zULq_vLn;Cf_b*=jaj#wFBTII0n9H7N^Nc;(h7(9mCieJsF81(s9`>wt7WRZ68ep-Z zS75I4X1G;CEL<+(9hq!GD;Z-#9hnv#X5Eg*y@AjBmggbNolgu4Rqk46#>z{$X1 zL3RZ&F*^jz%x(fkWmg8vuxo<(*e$>mue0Fz;1amcxD?0<9t|wbW{L21<#B8yusq{W zx5YKn_u8|2AzTM&Bq@wu8+hRH(n5PFJTq-`Y zy8idTrJ6v%6+W`?pTMR5K+sA^MbHcYFmTQmF!Xkba4YLL7E*p&Y;^L;7y@bm+|w75 z4se{#l>&J9B*X^92julcS(NT#Sro)X9p?j76{ifUhA4%qBZ{xUh%%pybxp*(budoq zx)Khs2h?0cF(fSILMd~MAab|>=rvpiaByP4jnW{vplJv$mmrWTo&m z3tYHFoCKtvS4($s;d{w?nf5Nt9KtR|oZuzN1w@3mh5)26^Q{TD{?hvV3EK%z|` zMt|UJc_5h7<5({vK#P*woc;qCaG(Gj0MX^o-fK?+m$Czw0qS}g13JvzYu5rpt$;k- zON2u=UH=~^fUW<18blr^1ENgLUY<=-{JsFFkgA}U`J}w%sU)S09foCsnqbtOLG`hU zZ|UjkYVh=zIh^c~joM&|*9|~9gWPj*eJwB3259(Dla{Uo&=3yLzyr|01<D;=-D5&#X*e>7CkrLThl8sfc_5~R1X$!N!MK$#i;S&=wzd6Jg}Sg>3P zOkA!9X5MN9G5{dK3=qT(NHzU0j0qRrx$Ff14aoovnE(yZ01Y_+4ed0gP8e{+(3IQ690UBxn8u9@e4gp)3*X}RV8~#_@BS@IblSn{- zD7@uyB&>iMoaJF8{Os?A)B!4V04fUM_~Qz|?l%CtuLtZtu)G>z3ul3?J^=RX0@!XW zV7dvI)<-J-F1{_c+YjOT4eV|TkQ5aF2|y}61%inMa)lK*TM$T&sAC6`I$7Yr2{`Bk zf-V6Z0l4fPaE=!+^aV%^b);e?08x$in=GG%PjHch0=Qm6B%Cav6mFN$1ZPV~gkyk( zK@DW0Kuw&5^n?CYatlZVXc=&(Zpa zY5$=D8=yiJGz51943r8mP%*$jp`dG^hIoO18p3rBP(cAKEfH8+Ij~}2d9Ry+V3h$a zfaq#~t$G1ykq1nF0;Zn=7N83_0w9qWAdeIfOc4-_DvUBfdgUCA>o zUCxOEutg5Q7EJ(KR0MMkse=WEOu^1CMQgwo zts&f{|H;AlRETms9HJ2q7;}6YL^VDGA{P(zDLL%y@6x&06NR+ESg(tLfB~3|t8R;V zfPf8vB{~Dqy#)de0Q86irU8zB1Jj3qGYA2zcL8)z0d)8YY(Ah~EO7P!a5gcZNA`cr zK)7&@5jgk^99RGr00;vHF8c}u-3|zEDu=} zcPJt=1jhmWtpFf{0MO&=1QhsN5(8R5|2YJpfij?h2B3jb{5yzh4tsf6`bS1d00Ogd z1)yIW0{S&|z#_BM)kc+)ZhewOXrmjLR!G_C5NdbnqzPh@K_d! z##kDO>R86Qia6I0kO&E!TlHjqf*ODV4uFCUfI`DpGUT2eWg0sm2$GL!9zy@X7 z{?F5Z3-ClOFyH?M6y6sHmLbT79+2r-z0Qdi{@_ZoK%iF)=@zRnOCZ=Wdj}EEoujz# zJU7t)LXdEQ`kN4-0TrNu8K8j}pg|Czff}Fz6QBW{kVlr6)7b*}98}e_1ghp)4psN8 z_^<9j5$Fz7a8gNBaneaNsJYnTBrNRtLWf8j@fxdSlPnl1{-ePGddzTeJh3sz+YniT!a{9tw(z7olU##5A;3kN)_SQjQ-Vc0_YasB=p(O@Om*eF^*M zKYgch{Z4VT8h&}I^aM&>_4sO^etJy%UMqaD-3?0Cy_>|ho8Y$lRQ7L}Y(NQR04qu` zk>kg1Zh5S)vWhkWe@9U82W_#3nWC%&Vyw7gti==r(X6TBM-UjwYidy&ASEl2VJjXM z!KXS@Fh`AEB@G394ps_XqS(spn7z0Wd^Rf%d+Qg4!@{bAbZpjq+txA^tHwNo-m1ea zJi{bXFv@x|eiqEH^>okbNvi8<_?gN1Z3!&;s*MugLJ6Fp^alv6N{4wvBt z=o8a=@`cp!qxtXxC}l@#{L*MYgPkq^@_@|dYVhehU91OH+tu=sUdr$_^q{!NE9~nl zs@PK;nIQ+Uq$!;+eh&=Gb*}Dy!JuRXx)Ge9NOw+AK_i05zmu>NbK>Icy4 zRp`Zv`1Xrs=%!IL9kCrm6l_Jp@ff0>{nxJa6a05uvS#h0#0lLXzFO6}DiQut^z2Kq za- z;nP%+4RM2FO4d>(f~cf|ID*+pMjG;TA8cqourdgzhUH{O|Ax{`F%f&GMzv?hUK@ou zG!RWOQzzC_sh>(&^g=r0$an_4YI?yn{ck#>^g5HCLow@YcxTt1m#w|68KH%ex?7{a zV4=^er*_|U82Z#KPTAc{SI`x)q7LN1XEejPnQl&Ey36N-$(s zRm>DX8e9WfZAtH~hsog^+}s`nbDrp;2t2nnL%nrTy|ouSJqXi2nr5rWKlMYw0_!33 zYpC<3PwBKNFSHp`98ow$qJ(LR1#^2b3H!-kP2*2Yqw%iA#IB|oI3~YvO!PgK3xt-S zcb*DJl#q5Ju!Byyf~Kj>zmqS0rw`dh4gIUc|5q91hKVScI4WcphDsGTLX;$r-Did0 zr;R`05oLqXFF*p@z)9-Qz#h?!>vc@(Gg7jlD-mFr&JK&uj-t{~=J~+%R9BGTCozm# zwO8X?zl&6|Lu#D3YQNdHfgqmVCZo8W)TEb2N$gMtek+iL5^k2YxPcYBf%S6>1#XLB zn$8Hr28x4InjfbUvl|4R@vZf!v}q}?=95|xPg|^>wJ@VEG@wf&_}?8G?i2Kl=WwH19M!1p836^R}`F{ zxGTljD;pw{t2~oyQhY^JlsXZNr>uO%WE}7{PP5@DfeqYoPjd3Mn1iCr@E%7JBL|)m_AfYIkFfPZbHTN;w0HMbW-L3Exd*`l}d<-zz5-V}-APjb)1+V?!0gO2$eQlLn>J zvLY)~5-U`|P`1S%W+B-iibli@V`vPr4O$7=2x59>CpcxNK)=bM+1pUqZ#YRsDt(hD z*|uTWwnZ%*Qjm(ZK(4IBmRwGCt2%*_k^3H^2qu9CBn7IZ9 z_tjUO(FF5xJ}&+CoymUnn5GQ`)blCy^YMNScscXQJcsfxF4v_G6`wAv@LjSJJ~>5| z8I%u-3JOY6yux_DE=)JP!_`YE7QydHX1PYyt<0RVfzjR9Di*JM_4MTxLxm@ngXhy7 zPt>8dIFh?CMo*k_fnt2wHKC9gYD4Xm>W{t8%|-|o2l?BgEp_5ow4)d5?~+5F8I@AF zXw$Z|5h^bdN=l&w{t8FmFJagpASPIiit$ip6;UQ_Ta|As0p%8pn-sAxo)Rri<9?dP za-Dw4;7F+D6Gq9Ptl|?P$`DS-5X~=9iua|2_R9dF^eU`yH+mUcjuE4TKjJ&#y&wuY zf+|7~o0%$!nJU4WDn&a1)NgJj7>b zBidO1J%Gf>+lcMW=az*q6L41Y~e7Z&&lrZH%^}ZCvauvIKP$wwb_KGH2 zEQRz6Yh|5Hb4`+LEiiwWI)6w!e*}|kg9Utw9x})d?~f9?i~4#+ZEq$oUR#1T=Rq&( zLE5uQ5%Q8fM3LNW;Ov#m|4;Sro;sUglexT7-ngMZY<(7_8oh9;dff8B_&!*lPKd*p`8#+hR-nG1romRD;Fd|liJe%%5* z_YD$Ve2bsm+;jt?k^T!OLD|#K|BQR^_S+r*?336?bF{4ZvJakl&cNK`UFPY-4C{R|-4S^~>l7}WR3S-QRr|N4ThC2@Y8bc~ zFfYlC-ICmVY*pbGdz)=#)=%0LWEn6oEB-ho8&Le+IRe2m^?l9*Nj-b)E_6%2)KYn1 z*7_;(Zqw46{+7k#ST43V-oWqJ{p!G6<*TsIzD%E(Ug27Ei>#iJx$qO(8)~;GDzsPI zu>>3Vtrb)y_|o{EF&}gfXg*MPCVtCW5a4OG`qf#R#kg|czGaXQ#fSP7lu>iM=sUfG zY}(Gg_S*iuUcH^#)MG+@HQrJ^F}G^go$p|3Oud-k_Wq)hRu75z(xXSdBKBj@qkO}r zI{s~F=bskuNy65^WsQ#c>Z3?~%Ai}frjUh8*VxjOx5$O%k7m@QZanSV`3^z>H?S9c z0y!0yFLKcFljr-wQ5WcHv%m3bY%>#z{lWNEH+Ndq?im@Ihjcr(5qb|ArCt4gQPp05 zO#KzPc(1X&9&lbkd++g=@(_%|1kW`;VF@R$!ldpjqztEch;bse>a z69f3i9Nyyz0knx&<+IK!cMyN|3~`_Ngn-Pv{pW7qC+&RAbxt%Ai9+gxJ@?&RIevw@ zhbazoM~(?J#M^RawDSb^E<8;(Zi`c)X&f+%B+!>*Iij_;ebPVb1!zS3mc_e>R}1tv-whb#LnV`e$OgToZZngy}y zC=aw8r-MW(SNsyaleMNT&p*0Sxn(2Z>``+rIU{_*L4`7#R3= zMlgeXZ+u+3miRDvFPJsbbax-}Rr+<-NF!b7UBi~3{UjCRBP`^o=k~>gfa8z0t4iSy z%AB9E^F(Za{F3bHxBxFT6=nStHMqZO&{e%?ZeC<`xQ6l~)t97skZ#7u@*RQsTV+|D z85F@!FpVc$2rIievRa$&QXIrryo?@_?5}UoNHJ*B5^qf7jMJh(sS zIhx8WeZmm=gs@P`|Ljh3WVtKw@tXEAe#G)#;_Pn~{~}{b$o<3tPA?ebelv-&zl((l;E%L|u) zpg`C`)68s1rhljtKg;HbUGn{uJ zryT@y(?5S^AW|5lZx}5`D0oeN-3{I`(uc-NyDhc}va+&DO5XMs*dG09o-xeYAk>0Y z8=qHr?@Zo{Ue<0`B(o-%vgl#+97c%+#Svn@L}O3=m2%CcI_f5eD$nyP3O6eKyJ96P z8OiexFW0|=bu^jU^v1%`#kJEEYeW>3N)#@_Rk;YNGD-I=QAD3!qc5&}8^}P^_;snx zGFIMa7!7wwb_n;x z(gs!N7^R?cg#4#ekw?|Z=s$KY0zA(L2M2%rNFQ4+?Ja%Ib?Qiv2??{9B!1E|T3 zdN&qY-C^{SF$&sF+GMbipVQOfPg~2%*vfm-P#LDblsMrW92~%@sHo)XGDTRiDt5;; zApV1_!$jkG->htH(MOt_oA>wk%d}Js!%{AempatyNLZY$Kyg?a=k9o)^B3WW|6b&P9m^R_;CXp@IWI3S(K4{{Ww~%ne+ej9lgq{Zx}W14lanbnj6-)!WM)K9Udr2kEjA>>Nq{j|#Wla# zsJ-rIJ!Eys|93)BLohxDnn#Y!;`8(!zJLJ8<@jrl3@sVo=uyT#xFH~pU0yD63$g(7_&9e zS)HaKgMP*WJrffaX4R-~ycxRV{)+}{NJ}I3+Wf4DhCdq7SLErdpm~nnTG!B^qxvrk zM>h8M_QGYm?E(tOUb#81t(}(RT5D-(ZI}lbVtVDObRq`hNln!JFAsAX-KJ0i)ahP` zr&7_;kx6kAZ&10b#||L&XP#ZO$6ui^jP;G;o0ysgR~k?$mFlQ>*D=LfC>DSBetM0y zi(!P8r?0OM7JsQa%L8L<_1G#!jZZu!=YRY5tzKB!0ZGXEl@j-B22fj7O`)$ufw{Rk z9vR=!K)0+=EX|a|48Qs-Ih1Y3Ef`@1yZ3 z9TV6%c$EzA=B8psu>I&*<3pbApLn(Zvujb&Cw&@Y1xfG4Lj*U8O|TatSU<^z-dzb! zS6o;&O|kA5ecC))X!VSO&;0r|D*BAZ4=7b7y;jRS?0n{5qEN#iVF-k$fNCGoD2QHm zXk`UqB#82;|5yF@4)K@DEyTn9?O^G0g52ubKB=X2S9Lt7$wb*!n+mYk&Rr!VzDx3|0OI5*5tlM6@Ll6sZe-wCoM> zPQ8C>+bDf+wDh|$@`-bv<5ajt^X3;Pp7ZUAXDSsYl);knbNZ0;fbD{(MGE8FqJ2-aL$) z(_8*=LG^X-W!#lsL1a#Zz-7Bdt*%~Pi3hp`O?6*guLO#gIzN8*zeH9a1snfn@DI3U zYMeTRc|yIRMab>%a#p9#k25kMv55uuSp}Db=89wYb2n%Y&w>qCytib>rp>qmTFjJY-16~Lv&Tck>x?d{n7ML96QXFn7`WIui= zpdaZng4K$`W3qlQHd!m?KE#1(7K9t0PrUYHhMNzVygQ)_me|?dg>J8xcQCg+WqKW_ zM9={(wlWo2C3jKU!ca_0`zhnH4iPJ^{LSaJq|Ib@>s`0ie4trje=ljM7lwzpJgKv4k)NshqklzE(^YSzhE# zMcsq{UF8L`PPQ}TZ!`7OkE?e*K@Vrho(Fa5Imh7hzgtZeBP$`-`#UOF(2R%>nq@_1 zyV zJGbvS%E(+*Vf)sTRpXDWAQf9uFIu8><(9E|JUKBzFJ+z7VGC9UJeuL+xV6ffz=dTfmacsS!c>`)uOB0kZ(Y3@oa>W)D z!%)QjWNN4Z6`FP_OzozLt7*i1)zXgp*C_KITgb6;eR$Pq@N?=?q|DfAld!3plrT|r zn7vcC%&g)E*4i)Msp_Btvk*|p+4o$vMXTbL9*s{OsNeg+mpS4V4tnP+3;BY~O^*yh zrvzEk*Z|4W`I;RKZ z^H;O}GIe&7&vMSe!#rMCnHrGJk1BGBPo%->+1I}uq6C&Vgz;N*xC67rZU<_q^yvRR zE3isF9qe) z^JtXSu{N$wij5MD4TNKPu2ipSm7%nyw4*suYU7ClOLMkni3^jCIevF|)Sus#^&e@C zewE#5Q0zM&lY5FA%gIpt6=bJjixU4(+^aAOSzFRY`eX@SxW2<*s8+A7*l+u5zsz@aS(b$ZC6C^v61g zUu60U(Iu~jIV7=}3sOE4oGc{bk+kDhJ;5AMtcF$mb#gZu^%tz$! zoO?d<+x!e^eHNB#Y;RPDT>JuXLS)KOhQ>%B`&8oVP0Z zm#+0R&1VrtzcQ;@FKzPvB42K{zHF8l$_G`g8{%OuuV>ojD|F6aIJ-#ueWB0{@0l<@UyvE=!|dc zQG0U$vfGuOtNtfXpk}%5SN(*-ci!BXYCQ&1`UQ~6J-xiw(r5L(b=x zK-K&2>*Ba<8}Tj&3X1*^3JUT6TNk}w`}jDyIe7o8iJyZPQp`p&w{B6+2{GQs+As1) zRVte;yiskj1|RL%=|eJ0tG+4NXK{TIe3W_CSfyk>>o%`UtKFLDuqDo^sdU&i*R3>o z@_01Tu|O&70;^cEe!MJyCFAL#JGorx3cfxPJ=YJoUiVo(tP^dGy}vyAsz{LEWL}Hy3;R_JOV9_s1SROXznVV#}_R zS38J~IlsIOBq6e{_NgB-@BH}w*w^pj?;kF53mNI{)61;^&&TaO;<{sB!;yi#)3r`F zfA6bPYrp2;oA*1CDWOw=jP84})v+B%4?+GL2OF0Zu40E;q8+zC&wn02{H{Rl^bZ*& zd|Xnw^YFX9>wuZu)4#t(cyvDOrSw$zAH>{lti1`8uns$Rdr#Z85E{~OI}sTYfIK-p zuF&d~!fkbadwsCOi+r3%|K`p>RNEr^U^}I%H3dzU41LI7x{$rhKmF{7~OSxKD^FXd| zSK&q+JmB~C)-A1>NVP4AgH{N3c|GiM0C@p?SU<$d=|bocX)CiG$E0o6R@?qcSg=9i^e`!ap2;m(Lb zZQ*Kcep0v=jksZ;*o-6z2^$M7B1-)#kmf=)vV8?d^49L!xtj^dIi zR+cgJf&a7p-iYB1VyWj#&~^G;Pd6nCA}{oAU%aRD<}TZE@ycc7WKB&K~c`TZ%omY;l;MQR(uy4`o)iJi1(vb@5wS%I^uvcY{rdyY5`QIo~_= z2%(!+&sdQb%3~LyTteWroL#I1ba4D0@I)dHw!dn0eWQOAdApnV)XFB?e?c9cKf@0+ z;@8pR`t{*P_LN*w3gO9ef6jY#LQ}s~C;Espyq2ehTxee^qU^hRc+TIE^t*FuDYPq6 zNH(OsC&vEvU6%`TZQwGF^00`qJ7)ASB^LHBB;>QeV-?aShIasc!A0oOtXq!7POw1Bd&hC$y@*8vY*&pVO=#Yd1XT{J}5@) z6U&J+(<`~t%An2srh-t|IUj-nQz!~KXmjOw%kG1g9^(OX%SGn3_ML~Ehu}6I4P^IA zH|ReUh8dhwljt$tImu6eq+W?y$6)Ak&gu7E4&F+L=|X!j=b{7&YGp}#ELklmi(QvB z)(UqczDJ0C@|hy*7OC0_(pI9Jc+I@e@tMiQ_ImWCDf(R2^c2e?X+l~mO`C80G;RRr zFpd8S8$IXyE;V%%9_le0wrY$q@Z=krYRJb-q-Mga?^)E3p4B8A`Un72O_ zu@$NnDeP@vU7pv}maFPBw8K;FSm)ex5$-c9!$8crDXIizjW8 z-ZiU~ooVc+KT4Sock-WXn<&A~adwa!=8v8%(M|8UW-s*KAU*=CTdzw6A?jv7a>52i7XkIvdYpp3pLJEuB ztrCGL@4h))T|s~9?9ZrYig5%n-}$C#XxaF^MH|;$J~DXQ@=xzd8-^&WQjgF1tJI&{ zx0}4X9@E!9zdR3DSM!rTZMjGVP9$VKuOK*xt{|WVB8?T6lEE$G;Ok=*DPB?b>3^3( zMKjmMY9PN~!AD{v2{Ux67wMZtj}PL|bf;nbx%UZpL=NFAN7FbRN7|cYWFLOUL8QKP z`ks`4RjL%k9qyjbnv?mgs0AZ^Roq*Eh>_1*jvIza^@(@R28)jrri@Z)49z8M1xw5=qd`7;Eox(O$ zMhX)mdDZK~WM*2K6`RAw>KAI{^5@~4Udztu#4J>DQd5_xY7yVqGk~{_vef~9yWLh4 zg9m5pP1!7#>;(D^Rh7i9qt{`*(Oh9w=Y_7#8U?-T z&bI|Ug6J{g1t=ZPs9sPvs%MZ!b)v#T)!a)cj7%3($bb2_-YL3_%=4#(wt^F4YwEPW zWKRz4GqzlvYtJB{(`>1&9XnX%UlhOuwPIl_`&(A5DAu!C=&2I~DEd7rXX5*V*VnUeZ(v{~rI$c24WAlzjg>E3q9uIXc)3%HCoYN>1l6zG9WX zU0;A0^__Ybo|HN+n|C5ACh&lH)H0lN-kK{m6|?PjbEXN;F49g4W$U59c3&K3FWLE+ zdH+kyW6yQES>+1a@jtRRgQ|*5~J4T0*F;q9;Q0PN*@e~-##QX^|CIYa3V4uW} z{BXGpZ<1$<4&;$D*|^V&+*%x>nDJM_Ds1X)a}lgM7^2u zLqSUwhoiaxTOoSWbJbvT+cgWWROWA2_CZ^ge^#eGjU7MuEbq6ZTcM?kQx0f9vrc*8 zj@k7SjSd~vQ>wzD!z;pfPhc`=^Gk9+{+|4()I3994HsI=r1Q5!fpCX+;dXlr{7RMK zN_{_4QZcZ^iwMOQvYoN;R1G?3bn#|V&@y+4HrqJQvQ(h#tf@(wZ zKK|4bn%wl&{*H(YK{&?`mTMJEh6}xc|0jAls8b@-wlWTTRU~6&KR75Y>xu zw^|-5m73nba3y(N4N6Q3fk=w75G;O=uhf_=YlhPFT@K7rhO3$JQXPkeAL3JBDzs2? zmbv{_HmsN;zYeojX>~F(ZsnwrlHs z@l|*3dTF%!PeMr@EQQGQzFWJeSUdI-PyTRb0_rgm zaew<)0p2^pq{oalmXExliryD~-&=iE18zC}WBcB!5n4?uB~Tlf!6-FC`18=8hbE5b z;uOR!Z&>b#>7=3ak?XH9ZLvyXW4?HiBR5g;3aC?pUUdWihhi*(o1Up)hbtHn zK8JEcl3^tXc3JeknDJq_KXZQ0!1x{)b)DBy0+GwZlTGcS+*~f#YA3gK zQS^MZK3~57-J4D?4AmV(LGya}NSc&UCllThjl}_~-RV3NemzlIxR>{0#_8!d=;SEj z5j5ZC2-at-B_}au02R=m#JbnZ+G)BId6n({^Kaj+>&>`x$Q{1g)emZpx=!3T7ep$b z*M((j2+*SfONz`R4C3oH@o9*ToSD+*Tu~|)t1U8Jq*_qR2&xn#TB03TtTiz|(5%{f zT5{~}ik)Dlw@VW!zhVf*v;XvcJ&w2$yU%FCkQWsc6cfgPUHB|@+_nH!BlFf?PQt;d zPokKEYIIdb*C+^%Z2oC}1vyok#F`r>m*S(y*Oz)qYw*TU?o>L+KwQ>;TT+Zja#_*? z&HtAG)ZCv#D6Gvw%hp!){*3tiPTi;lgAR99GvooB z0rIgLuc5C&sa&V6m5oK#oKW(|LZ`&xSa3oD{09_uBK7>kbO7ph3MO2b+`wh7n}Z9=KT!Y_&>+Y$T(Rk*>x zdvzY9<=Tc&Z2Y^~B22wjsN=SYIhbNpmcqpt#4&&P6G+4rY#$V`iX9T&^kPmH+N56g zp{z$;Q%qytIT5K8?xCeaMS@(nh7SmBd=ea7!mu+#1OwQcU0uI(GG(4DQcjC?r^s@M zxdwgCn9lz+f^pBWNGj2~AQ(A*zKqK9t)Ql=NJW?~aE-x;V@-PYyqRAx@R_Q>m0DKn z*!@o<134J0BkjBQHqp&r8={8AF;n}R_#56>R}>p1?*uLmzTvf8LM`(OA+S5`)TrS@ z92(WgoO3--g+Lj96=Be?Xlx3u&*#@aYPxivioJA6m5@<1A-gg?{Nr&Va9ITHdQIoy zdmV_S8tnnQ?EDe*iD~m7XB~xo#}YSWqN_!pzTaC}j%Uh!WT>pt-(IYgXBHKz>ql*^^U%E$2)UqfW*!Vffdo~QPfj;LMt zmmcHbW{uQkSS+-A4q{l8=6ue}f5v$vU3Utm386STz=%yh5M|1!3yi&{mKx7W8e1gP z#QK#o4k9X+kj~NeXA|oy@^;dg%^DjSF)60uGJgCSj@zSL_V!MWV=l|-lTvAVra`gj ziE{-x(kl#Vah;d1Z?^yQ&maT}JIR;lpcJuuhpsf=CE%}nwST$kx+V$v(9BEw4)cU| z#ah^ZSN%a+o_%sw_xsCiM4yrcI=0eBY0W-dYFZ|RAkJ`nTw$3(;HjK)jRJ%$zp&ry z>*yB}YHG)uSyo`b7*%m2w&c4|BPjG&RnwZ3AdSkKt1Yt=o|}`43I>yW;77LV;>Mp~ zQKeBWB>cr4FTd$pkSU~cZyAP??m+RRMGsqHqO1-yo^Z%NA5 z@uzOkh<$O?*s(M1DhI#$JyR!NVP%dFw5q(}-c7~zOF)|HhR=zkI0g0e{c_oP@O>kL z&Dz@dcvsl%8@Gj>uPx*E1u4Y=5AX?xDa1ZbnhJcbCsd~SfG1_wi?ekmoP|S1Wc@Y} z?SO39L5cs{bTcRQ92x72J~T}ySh&cmH3nHCYteL(rB(6GXbn`HocEk*9Cw5gGTN#I zfx6d?5HmTB6<&^KoC0us+1R?v@jpJ@k<$5o)S+uTS%=TQh%lvivoU4v>pHA zzfmy|6Z5!Q==i;%T>WC&J&7Ghv@|stV4;R(cRHi=TTO$jt{^y?A`GH^n_?N6F48$})Re(*8{^_m6SmLgcvieIRM##f#ea`& z@QJriK4S{QpS<@zOK?yNrz(ucfcUeYW3FvvMD!Mh;kzApCuBKf2*JsxOn@7&Ew#x$ z?^=ANbuw{{V}~t#WGc)_zSO@5b&ZFYl2WW=;{R#yEu-VgwXIPz$IMKz9Wyh;%*-4! zGc!A8W@e_u%&{FaGcz;AOs~@2=cYTS-+SZx{oOsrR;fywOWGPsu%x+Hz31%cghkB0 zPflV7KULtrdhjU2*vkJ%Hg3Cv9q3-5m0x3n6w~chw30OZEw;Y8#TN=`bR}ZLVs8&Q zS^>0_dpS8hy4&-3N<)`W`xC{g68~Nc4R=&RS7zY(Vb}G7RWKdN!FT*17~7ORN_t3F zEO* zCXK?21Np+j&4YKdH03|kKK|Hvb)M|IV8P9ajy!J6%ip_272Du4z^HM`@}um7c}k%P zJkAWV-P4Y!Lr`Rxyud;bT3E#t+n#Gyn{DD#t;o^}N0Wm&BTBBv4H!Z|)KldrjPIw> zqbFXs$!Cx8d1ba$vz83IPMw!XL@V68{&q|m;oq3nKZw!IGqk0>{mL5C^>Vr;xT$l% z2_tFhGy!r>(8CMv0vB-$yFFg72!i0<4%H3+q)B+d$@03vjswSybo0{VeF zPC4$pEv|xe!eZ!yFMEfe$RMZfdPM~jMF~EQn^iS2VXP_>kXhSn%Qvg-Tfo8IU}X$4d6Ex2}63cPnYYW^HLz2^2~}iD7T9%VpEg2_l3b%M@s|g|-OTG%F~9 ztBjJG!~N{~#CJu$P^mVA-DOgQf;C;zO9+L`>#l7W13PX@Q{R*xD$MP!W;Y6{HUr@a zyHokWxnos@5<3)nL6F(cX;xv10T!pHXbs~WzZ7zJ`v<~QRq2FW^60Z4C8Dv47oZ>7o1;l5J%f~6O#P0T90ko!YUl~p;{Ip$^}Dl0gA8Wgvjiv}ht>`k5@49TF10lR`(Q^u z(T0E<9M$-ZqxXT|iEyErMsw7#Lv!j<7{u zGl$6(?LAuu!_Gl$^k%`xAJeQX(rcn@pL(7FCZr~>tVogZd4^iTwjpc&2*k`&G(RnK zzdX_+X$-7{if~-Cm0Er`DCpgP8_27dA_cX2)Z#*?yDDf+PLPGWgd0827urR0|`*`18Jn2sCyDrnPI#ONrr& z6oAgOPZ;ZO)++!EQzzErAW!jH`2|skft^VeinTGO*irROR3@nCJ@lI96jvkJYtBo~ zS%{>*e1*|!Z4V0Mxl2l1hG2&`bjytntc1e7*f{i?4Jv1i1Q{7f;tB=RN%N|0%^#7~ z6&4JR9THWQai2ELa-2P-=0iK5J>upv`Wp>lbvafPYW!uSa>_h)iZ_~tZPeMu@-$fm z;46&iD*VjLiIeX%830CoO!x7e=9jR37Y)0_eHe|)L{+9b^F- zYY_9wF^V-pdVQ({>=>ZPZq8UDn%7JL8j*>rSj?E59U9{?@`$?uN&UsE0-pL#$T2=YaS~NZGOVE<}z1L5Q8M_y&y; zu-CKD+>vx-C#0(LWv=DWvll03(51)RD^vJAq2K(whWd2~f}k_1Xv2E^Hu`Ok5bks^ zfTO2}Z;l|Ctcnd!$3#uhG$pH@H)23yz*X?ys^zJ(k zbE-ATeSY01is?&W#`{-VuTv=T0-14PL~7KhqLc$2rRbKf+4o$R%9)(H+fDqRyM~@k@=|z16b*r8^C@S6_CP%3-qEd^0l4~WlpbB-nDrHyhLI`!42geV?UmECT=PP2-Sh-SRGd{5Pop{ zN1})+E(G#Z`Jc+#SP{fFn~!)4m#TRKHtTgi2FAxh;?j3;no~nYL>j*L8xT8v1p-p4BmwW(RBvsbRijGJ&+zONz8KHsxCg6O)f(80dk@Ia9v^`Lk2{TR zPS32Hhv+KpaWl{M5hrlXK?IJ}HWHw^`KO7W0zNltU~(XkecvUoAYlX(Vn@Il*l5l` zas&`T2?b8fIJUH+L9p70UBHf;$C>Ah2etP6F;rM1oYdYWKO&N?XWIlGJYeGxraJ5* zZ4zE%5!7QC>(9jQJNuF1+d(LBoP$r@W7Uvo5D{?aF?o(ogmhfpFw*nQUAbk}Z8xvR z&IzajBgxonLXC$3T>=J-DtkJUk3HA3t|S(E=hB4Tl&7)t{IMX&&8j?%#&mB}C*Wgj z_F~++jP}&r#gGNpH^uoC1>~Xy@u2;jv8g_?ewo`ZD*mL)$`)Dbc(Y=%vlcaaW=D#XoI9$qN#859tvGnQ)6Dh}YEdnCs}W1S3B` zGOQqGK?Kv$)25Jh8Nai`k5B_!FBmOfigi?NTB6t{{sQxH4l=Mf zVBZkYuSX^yZ+?DygN%0x0zET&oHI>KAP^-2quXir`!~CDgS3VFqmt$^@y)NFRP{Om z7B{+s6$|akc97b>hDI05gQLWR{`BEUd&6Nw4Z^9GIv8#77@AHh{d}l*+j<6u%CRgY zWXN4f{G2{rV84=|Bfedh4(t=Zj16}*htxSqwQmZqF@HmVOm_-IrW?zu)@OFbO74J2 z?jZ<6+i_C}_S zZTrfi7O*N~Q@)0J!KAAX9r%C=FJnx3m6WgwiZNLqnb|TdwYn=)T{1r=6a7TMx%(`R zsb}mmb~qQ-p}1t^IK*VK+pMuRrK{Z0_>0O0WH0&{z(UY5W0;>J1h$Kxryju$QciWq z^d8NgtFxV=iXo2Bn$9$tF}@bBNuz;kZ303Xqf9Sn)V$A1aho%Det*&hBgBqj?M##L z?h7J+r_(lA>3NY|r=2r-1`mC!OB<(`vzbdGN5VFmkOR1~TR9{%^*P&!ppGnWKPPM! z3ID)BcxpSP~dlgabT zZO>-Y3&+*j<_pvP(JYB=%ks+F*!JELR+Hn+YWnf&VTTQ$)@#R$yTkL@wL`YIU4d$K zBf;x-v5B_T-Tvw2di3YdPoh7z?Ht~AU)`S`Na{SaN}TSD8~J?dTRl3w-Cf_#9;#mU z?hj2SdR`x8`Eco8el&aVc5tj)o;Q^HbS#~8dYsLkzRotD>ul*Rj~;5tw2m$(`?R{< zjOr3Ry&c`&pP8@T-t4`4yEGraxICT?FR!|=nY3GTZR^ehNKeT=ZEs`TdVBtjtHpj09FaA$O`=&tf=*)Z@|A*dG9-JOr6Umt>GTeIG2js%YO zoMNF|UAS&O9(IQltXcYS=Vw>D>?hO7+_fIJjz-()V&9~scs%B>mPlv_3V2c z2cL%5^}2a)h~T4L#kHO0v8Jl|#HPxYzWsm`(tDSJ?z8A!l0JR=2<_1^%eVHZYpl`K zSJdWTKTw@vv8{Zw+HP(MTZ?w3^%PP`p038k+G>G$j479lxoHtP^6>nxnKN;-8vV1q2%SO zsZmru!Y#L)ge9Hp7$5@PEkk-@?XWDf87&>GItBg?iJK@%&wyz5SzuC`zLye`-E*lI06G4@>45{g z8s9bn&!-G%2h9I!2RVBiTZjLn#>j|~w&G8DL-Zp zC29ybO^EvP#``(5Wm{$|HYN)ru|GX^Qu!e#6Yz%&6of{F$MtwvZJkc{;Bq0|xBAX1 z3^njkv)h7;p9SgipeEg%qK0y2CQ7q#AavbUc`#^3ZC7_#)-c+>Wi;TrXpgzc$UZd; zb^yPxmo@LV-o5N@P(ii()iXD}K#01*?o^ z{QR~YyPL;)Ql$h;!3psa+Ru#0MJPP-F((C1Z}i%fVT}!fPjzz zIsSO-z}m@5-^d=oul(bc1MShMf&rus%`2`1iL?L&CSfvCxyn;@U}ZIf(<*8Y>g+?x z7T9-u?{ivBJg+)@Ws~a9KMgMhya*-DT@6-$itBvzlNg|GNwe<9Eo$+FBlaJNpd$__ zsqT2iy^n`vlWC)9%gS?^a@-0oH$4q^6=yXtJPtFwKbVv zIFu2x{tW4Rhj;~(gmMTX;Sjk#D4gAXI8Z z&W08XnS_Yor>lL}B+OGhT)Jx}Ut%v>gYZ=N3fj4mA&n%?lLhr&KKh`idy|Js#(xCH zg$-R{G|OIo9K3+o7YA%6aoM4(+VtRk}<6q1EU#mKY9R zV>fUqduPyXuo!^Qd7J3!5+oq*yfNUJBzAHI-pWlTaV5OZ81(h z);i!5-fpzkIUsht@sN{UDsCVy|p#1_N!fYD{jEl`C@(T<5tsiO+LN!L84BI0bbL+nViA^uTUq3REm70uR3?GsBj0t1s%`EzFp*n3@{ z=PXr(YZ4xcM?d_fpq_V|Qv93G2a}OLDBv;+v~er9pA62e9W;mwC_sn@`-#OHa>S$r zm7Ct7jehZEA7V-&K%(cX5CfTt4PVS2vhh)y2NzPHGw{KF6L4!&xJ4HAfOwh)Kargi zMu&aTzh&ERu z6zsYl&Ml)I=ZDTf3-lpsHuQ~#LZkbZG*~Zd97w^yHVLcFvg12y@mDN`dnw-MJ8JlG z2EZ;=@wixXQq$*|QWzewJq$0ww%0t_`#IHn>3}ThaN{nmqQ)c?r2Doddpvv-gKdwb zBe1TY0_$<{PVS2#IUnY;!rs_8JE35Py!K?k+;bEI{S-zkiR)Tb8c+jqtJoj>&_A$i zQ`O6O&$pzYSmM}sRhkx9t8va@h`dt6J9T1|S|CqJOJbV}T$tk#-`Il(i}7GU6W`R1 zA`ssQkcP|!k*Z;SoF8y%H%9uqzbH zCa>4WQM=CVPO*fwsAwHI=pK7%AHO&cf2Vz3Q=Ud>KbDvC&Ke$BeCd;BDr~qOK4(Hw z0K>%pZg$lwDMSiv{PZ}CJMguR3i08n45%mIUc&n=In=WLZ*rBo-I&!*svc!MAnMPWg32M68sW`Wi zLq0@7IQvOsO;V7qGRW|NbtYR78+&RZCODXxxgdAEmQPG@pO{A;J8fv>9eIs@nOJPf z&3=X2qEbxR(D2;Li8oA#YlRjGWObfOCO+X4TrP9qlvh1$?hkR*;V$~Xsb{#(7P&Ni z4Da<~gUp;E7yc~F48XsF*jnSl1vr52I|J_ro7N4Sua5L)EDWXEpf3YlrPm#lsOnIE z35`JSO}0{iNAqzwf3hy^B`JKnd+NNT%4Cu~A*C8`&3ff+O=CTlJ}{jZS0K5}I6jp1 zdAMAEyT2?Zc>R&x`N~mjVJN}V;-07_%jfQwF4f^cKpq4=DLF3nQBpW8o=>z(>0sRr zZ7J6FtayU8-tMS4wucryAou24R_DdBu$rzY$5^C|zSIxxI}b@K@)m}o97#WK9M)W- zVrPm!w%KE>)R!u_mtNEvsmEx8FsI#T0HTkzTdYWJzM%{7^Fk=*AnNf_psN7*Ww&lF zuh&A{JLv`q>9B5HGry#w<`EW$d#$?-x-7c)4raHJT*0!B%yAUhXRb-rbt)i(qDT)^ z6iMtdn{6lh(9{H}N5_;&6VbZtUbbz#&&N6*y@NjDMZQ7)XM;gqw9Dx!| zf`*x(f`O6b+ZO&HGsK>cL71Oq^*isU)HE92b-ur7^92c`6OAIzxxWh9gr?~Dk$Zo2 zgQiQI>+I#~hd5P$4E+&Yg3mb@Bq(0J+aq zA!!(DNJ`e zSa9|CIapAWWRU6?A)Wauufi}{S14aYl}0&b1WxD3la26sXx&FWl$tc*;W8^4w2UQJ zqxS8LSjpm%uA~K|j74^rG)E(T`ZY(R7V$8&j3r3Jh!U$#N!io5o{ZH|xN#O zw(B6^7;?&URP(A*OvbJ>EA*A_D1N&SCz#)&fKM<(F5huM?E1;P>h=46=uUBl3rurC zmhPvloF7|6v$hdI?VWk=Y^$4``@;hlG&wV(pa!-j@yiY9>JTR?^W2icfr_(n(w069 zwuRMUNoyice}ey+p$VA|Z4u#t%$yt|x%=qDj%c;R*M#H}%V=1-*INS&o#$Ocbe-qZ z!>-L<-K;k5wtJ7MO!)kb$+r9OAa@&N2ae?T+V_x6(xD}3dWnUQPcXp*XclOY8M?5w z8_(Y!{H{Uw$-G9GHjNfXprqEPrH#0`271A?iYPBAL{p?4QX>1P0Uu11w`X#H zBRnJEMap6(6H=OmC6A&WTO+O!KNK&YApMbG5S{?YiEb`;}06chmN=K}l5;>5rmEza1NF=-amIG|%`_mt!Uf+DBKGK~uot#9f&>J$2?1Ef zJsKwTJ(g-HptU2xEKzza6(%8AA`TZ&;p4;pS~TD9pkI4I*eChC_ioue`depMNA52 z=D?50f``Nx2Wf$dU*7I&Jq{=T3`#fpY`7`POw=C`O^WCF@SNOvzxAq~<`p4!Wamrj zg$~&tpqx~heR^8h753fxF`-Jl+lKZ-_)CP3QKQF~@iW$Aa^T2$Z}hPqiV@zk$j?2C zAA9I=P+PQufjNr1$jHRWPVX>7*@>m6l$&H6>O64jJciIML_p(;+9vG^F7)}NU{WSg zfqM16nMx!tDz0H_lR)>5iV8k_h?4O2!u^H`Gy-zv+rvJC>9O)P429N~y%vOAOUZVH zQW01TV^Kdy0BhfS6{W#@ulm_hS(vm*;uOP{z+f|<-Szf}HFqRi6gRXMK!oLnrheT& z#o*f!y&|j*Cxgp!prJOkl}UOf8&bGT)Mk89_KD}CHH|A=dtu^x*L~q?i`S>cYctq> zM-%CVZ*?~wl5I?Gc0ho@`?mSn=VklzxXBJ>-rg;L@?L-NfXIk}+ zqAomjEu-hY%TE;ey>uNOPJ;qNO&7x!s-*C`!QtTIl)G`tO@!yFq;AP^!fr3=u%+5w zL^IcA{t+)E02W^7*NhRJm8}ZB#SkQElbPf4z0vj-4!|SHd zp}#DeL*ctzi8W1&cCY%7t}K#l;&UUPZ2~@SB5>}nJjP4r_0W-yr&QD3f|&*|rL8N& zJ45E%8le;|0+Q!#bUczHN^%86(38#<{q8fz1tvQkMHJOXThE|JJn)LtO){$4)KSTV z{7b=>2r{gk>jP`0%V>aUwa&GJF4Nu)))ug}?)v679?ehGcdq5_Cp0Y_+B(wGw{KQ; zmb2{1@gpfTt@B=SQ$TO`x^QdQFs4jV$j!28l3aOM)wXU{*YE{Jwie;boHt*>F3qHL z4aI6YQer-NO%irJZhiE>k?=j0n}Zo~el`a;<}zIcpPNR^0hv?HxLJCUtm)X2^1ned zL9VD~kN@P=n+kSJHAc3NuTCo-b2HzoMEDfe3}fhnCmk2-DxEscdkgkJOx)-_<%OLy zL5rmwCaj!RGMkJ~*h|fDWLHzU@kso@lX|DZ;x}v3-XgkMN+6uz(@BQlB|LBw_I;JS zIysgg1}zdjuwIFlIvFoIN@L<)>E8SlGFL;hBuyN*ygp!l^OW+sO2xj}7{{1(#VmEa z*TT4!fa1~S6RS0YhambU*%(!sexot>7q+A>4W_I!R$54CmSHbR$@`H->tTB!ty=Dy zy1;Sny1E493iXEG&F1klY|zad8t<^fbfSCsrMwb)Yfno}LbN1lBG(CYVU|)?a{iBT zMIklQ5sPaw+{PXeVIvfn9I5gZPDa6|C<~1{f)t#m)@Dj`8&f8)G}rUxR@0%l44S)B zHmuC?UP80p)XCo}PjoNk72=SqkxYo$Vk>OT-TF_|kHHLsYsQ3(p^g&(ks)aj2ct8YOsr@WxOH za(>P6azrp1C5Rw2N>G02l(=!5fiS0b0ztR50zni%Z_`|XzaW3*Dcd$(H$5X&3h_s$ z4EzX-CXf?E*&mMg{|5u)g+@!^f=0{B34$S-5C}pv%^g||hX)kJo-5#ikt=}u^Zv7T z|EbQO@&jQ;G6P}c|HS;P&FebN_$9j^hYPb7@P@+9nJ>HglRCv025T_Mly__&SfPiwtNw3wNv83V8l4zzmpi0w4 zYO{oXs4Pi;l+j?cUiSU~qS#7Y^@!02G{{BtTNBNwQiLePb%Uig!)IFS;Yl>XgUyB! zErvjN>*0R19xqwaeXC3$-+ z+9k$-(wi3JV$D}9OB4SS3`((BH_QnA5!8Fwvy!mON2b%%EBq%&E$tgkN-OyloGlRH z=&k(xRpVzcqO@%+DgDntq|C0iP~|_tdnQ1s3Ml^weyhacJ2vQ3?@bXce#?(Ky}ZM1 z$prI(!g|E}WITMEh1pe%K6kfd_z&9MViNfXhMPPM0Xi-}M%TPfe{fwgyRnneW!tS2 zAk59`25OWDUjHC5>{7)YOeS9lHFtZQ;PtZ2tY}{YP0CguB0p*wv1R8a$UHl4pR4CI zyWrKD@VI>1j1Up#SKfLe?4&PVlu*@4KXiaOheCmm3vyg2$_|5dw_$y8B$Ih4*DBAz zp;!iMN33YV@sFrsrGxXs`9T!0YZLFbMJTKs8JE*mXWUw#kXSxhWNuMnM8>?T(i7`P zk@!yPX2?g=TD8}eWiOW4-^Vo(s_6X2>~ooaIHWHB<&z0%*xG#=vvzv8h+%4JYkn@b zo8B=mLU2T%u?HC!A;~wLcE%$M4|>vcSD6%VrtY01yMXdtDo*Wo%PLjrvM#b+>)5ij zs%122Au=~<-WVv6zzz=*oArZ~jHl;KU5uq6?N-TAm%xhkILN{mr59^Xwv_PvLnv8o z(!_QhyAS7}el`0ll){|f7H;Q6$lG|L&p%J<)slq8tMx9H*2k+TC(gc^l)5XhOz*n# zJWZT@FXjVf!|pD<(041c?BS?;;W#$TGR}Jg>Y%iClviJ52t&d>&&N%FW(uJc(SM67 z{3iQwlLcBvH*VI+ouq1bjys{2f%S^EN^eIw+VI&h6-WDkjLv93b^7vk=Nb1r^=mH) zNAz)ZuRSSBh=KnIO_GtdW3GF+3u|?fxK{qgweH*V1KryUrQ1vcP~M) zucEW`Yh1r#rAeIXP;*D-*gYZ-=k>hXYh`&=R_wLKBh(F}#w^ECG-BzH1(#Bpwk9mc zJU1`4?B_?TMKTW6;+QM{&cPCP%+QQZ3b_O~xBb&Oyzd9yq2G_BSbTQIgH;!kOE6{{ z50!>Rj&xu{`G5`H;z?0y@5sN+ZjCq!qTBqqa%4>3v8g&%akw0OkN4^@%<+7jcIBHD zbwwm!7$I@t7TYsOf4=I_#(X(Huhiir@1#2n#Q!ezXw4CuED=Awn_H%o?DcKMpnkV( z%HZjnfp^@5)awmaG+O6k9=@h-Fg+K16!?w1yEOY%8q@5NtRW_4R%pPr279A5H0D7_ zVKJrTfjdFnEZ6EtCwWn6whVLq7`?2RnDO2bu>I}c$TuQW@l&~8-W3~6!K@lNyzWxb z=%d!C8qtX6{JtOEizMx$8AKd)L0dlLdf$Rxx*_qVdm+2O##6M>XeC?E1r`Fs&bx7~ zmT^NW)855km$7nYx3hDWE7Kry=^KS^UTg`huA@5bk_fWAE^3eJOLtW01C^DCC=&yv z^+;3~SSi1la`K!S-4(Q0`bc0AIF<0q(GII>Qm0*py7*lMU;-T8$hJnz$0Ll*O#jGh zkGJ}gb8eVPcgKbGnY)L2VAy(Zy*V|!OQ84V$bxVCfz3N*Afq17Wvg$@lB__H1##C& zZWi>)kP}PxsK=B3E5dHo1f!uDS&@?dowoIiU)x;E8gbfklfoj$ow_TM^);IH5AWwE z0-xton;!_ZPe1S;MEjiCzs7S_+zPh7ePPiG)&Y9cmg7xmA`icn;=w!LM>#8!@)}^O zUt+c!nQ5>igo5im+{IdXLcFuSN{>u4R~oxFWyKzT;rl@kE;G4%jJNwxNHY|i9)p61 zvd8muz4$uWw02A(9iHIRr=0?`I|xQz1?4wy%z0p|?hoOwSi6jC)jp|Vvo~q#Y-_)S zZnc%I{b{l2@au|m_%IiZr8UcjzNdScrnyAla=4cM=eDokoVq>8w1rfa>2!`1u9j7Z zLM<39SMhgoUQKsycUR4-_6xEH?nnYF7Ri9yX3m$6+ewQ(-c7TFx{kHIkC1N?lil?FR94^@1-5HU9e;LY>0HUhiv7!;msRj^l4DoJD-AY%e4C)iYK-+xZ7XA(FV7?y z*Dgx~ir8F=z1&q97AE5Q;SvzFdMxvU*ko-0_4n~k&S@lK1!D%Z2q zRn)B@*$@TZMK2sHBs*03`9q0)6BY_Skx+xrr3W+>5$PNWoWmg*AY5%S8^~ z?bC75dRudyp$RWV(MxKyS$JWj0~1roLEM2kAQ&dq$|j#i3`M`3D8_$37&s2>ubza0 z8kl__YJ%uT-Jc7WrsfJoWblEQd4?Z_;w_dl#0ZE16DGGh7C*3%d6*uqQ^hm0JAueY zUxYa$wRjxjWZaB&Ml_x(+98Qiil049`elG=&w@ni+7>-s;{nyk_iIMrkR!h}IXw4bo;dOsKv7N&Sm!g8~Gb!sAUze^M^T;X|6W~yJA}+>ajtbgQ z>nY7}#T|B;_Kb$gG8h%1HgewthjLm$CLs_++GZg65k#mc!(`R(5m)pPHB~~bigM|M zp)NJXjut#uqASf!MX2q7MU7}xzM`Bf+fine;m<_A38FO zM3)rc$SY2e))@v}dpL78-X}zv%T4P39!k70V-?AI@Fa9t#Y4?GO#6`=?6r9I8PLLB z2M&?b9pNM9oFzd^6oIlpqPfSZQKVf8@}N|ldBog(8HM4Llr;0KJ5uolVY&u`BPZcx zy<`*g$|N%`oNS){Kg!YK_vcqDZs*H438K*QvVnPvzzZ83S5hc~0fX@Gb zLBSDO>y9^~3@dY*tU@eTZ4b{G1J5#_6zc_e>_B^69gq-4D^*5XjpSD7J?&4=UbnI4 z1Gp(X4XF21^a7@tZPV=pk=;Kj(^8OLTA5ZZrwn_QTFOYF0y{QC5enF}rRQ!wA3EpG zV4eH2J~2B#-l*%Xly}x@+I7Hsbao(sG-$6)VlcADyq3mNnFx(abgg7%II5U}8B%Jf zl$Q6kFay^&+B%g07&Vb>H!wV9sO9^@mcAwfG!>VuhLjAU`ZNu?Om0c=oWP~EKL2Qn z!ke5t-X~uFRF3KzTGm`?JY$;=x0to_%+p_%@dG%IIR)&KiC{}1~&G8^cTWBFkp%tAV8M?yRV42QJEEb)S$b>NBGz~tmV{P zJYlT-*AV5{m^7G~%rA6I!3$BAf+@)dRg&nAv$U>$n@+yB3`d4!e*Dx64{Hu*#m5F1 zt;sDCwBOu}M&Txr_@OcN3K_4l9#zf?6%+2iMeZcB&pY2$b8$^!Nfa`a;1eg(_Py&Ha69)NZsFD;snS%Iz}?7_Hkz6L`_hM$ltqVpG!FibRbNuDOq0WR>LxeHt!xMcxAn z9u^Z9=f$sf8{Z@FbFaO%2vHX&Lu!;h0Y08+c%yy#*O`DVMy0|Bpta+GH4Wn565OSJfXx@K`vAWKiMfo}BO z&#IRLOrN&V@e_!knUJSdNyoyMVCQ4<)XD8k^{9gSSQhsaCxHE4fNB~lQT7J1!|*}@ zCi(4MjYH6?W2mRi3xuf3x{_ssj98oB!x~ zk#&BIZHqTvH{NXHA6~o8-2+b-w)fL)NE!q z-YHepJi~_B+xD32f$z5?Iaj)*aAALW{ zqCOxH&XF$=3$t1QqirJ7zpTo({;zuF$j9N{4M?E?=oLOduYS>3b?uET9e$BnX@7qG z-=XnOHH#Sk5(XftLTtQjtaX{%WUR;yAr(u0aO9GJZ^0H7mogYuGdElB*ejxPJfH}D zdy;Q$4-(d9s4X_lDK(eF#Cyjp1L6JjVh$SC+t)>lI{6I`t6_Ct)Z=@v1oY(zN_n0T zD}8u@P37V!Cben;ebTTPhuQ~&EXS{BmgFXrN3gDf&fDau!X0qzJ2b&2x)g*UP`{C|Z{lteQ%0pLvlIN~oXAoc_}-2a0YY-*%uXk`Bfo%;8} z--r^qbG+jS+RVV-#=*weQCG#x!OTXNk)EE3hLN6uURTIo&*dj~+1bJH z_ac7xvHq(RQYPSk_qhJMh~M4O{u05>`Im^lJE#2}{!iNeFE9|0q8{+Sk@$ZX@K3(` z-vwyu|1RJc`~7z*ztg^d$w@Q#>nZ+00{os>i3s~e{8M%j{m1^`3nsM#2g3=^k0_d@9=-F;QtPP_xW$|zt;1= zqyM>-`a8Ni^l#{23#;D+{BzFyy8!HnzpKE%&7g9U;DCYZXCFlaas>whB8&ozT|oa2 DWhlQj literal 0 HcmV?d00001 diff --git a/Project_25S_diag/failLog/Info_failLog.xlsx b/Project_25S_diag/failLog/Info_failLog.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..e47b8837842e8b6a5091b022ecf6e3cddffa00d9 GIT binary patch literal 18784 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 +#include +#include +#include +#include +#include +#include +#include // C++17 + +namespace fs = std::filesystem; + +struct Clause { + std::vector literals; +}; + +struct CNF { + int num_vars; + int num_clauses; + std::vector clauses; +}; + +CNF read_cnf(const std::string& filename) { + CNF cnf; + std::ifstream fin(filename); + std::string line; + while (std::getline(fin, line)) { + if (line.empty() || line[0] == 'c') continue; + if (line[0] == 'p') { + std::istringstream iss(line); + std::string tmp; + iss >> tmp >> tmp >> cnf.num_vars >> cnf.num_clauses; + } else { + std::istringstream iss(line); + Clause clause; + int lit; + while (iss >> lit && lit != 0) { + clause.literals.push_back(lit); + } + cnf.clauses.push_back(clause); + } + } + return cnf; +} + +void write_cnf(const std::string& filename, int num_vars, const std::vector& all_clauses) { + std::ofstream fout(filename); + fout << "p cnf " << num_vars << " " << all_clauses.size() << "\n"; + for (const auto& clause : all_clauses) { + for (int lit : clause.literals) { + fout << lit << " "; + } + fout << "0\n"; + } +} + +// Generate all clauses enforcing: sum(x1 .. xn) ≤ k +std::vector> generate_at_most_k_cnf(int n, int k) { + std::vector> clauses; + + // Variable IDs: 1 to n + std::vector vars(n); + for (int i = 0; i < n; ++i) vars[i] = i + 1; + + // Create a selector mask for (k+1)-sized subsets + std::vector select(n, false); + std::fill(select.begin(), select.begin() + (k + 1), true); + + do { + std::vector clause; + for (int i = 0; i < n; ++i) { + if (select[i]) clause.push_back(-vars[i]); // ¬xᵢ + } + clauses.push_back(clause); + } while (std::prev_permutation(select.begin(), select.end())); + + return clauses; +} + +int main(int argc, char* argv[]) { + if (argc < 3) { + std::cerr << "Usage: " << argv[0] << " \n"; + return 1; + } + + int n = std::stoi(argv[1]); + int global_offset = 0; + std::vector combined_clauses; + + // // First pass to compute total offset for non-shared vars + std::vector cnf_list; + for (int i = 2; i < argc; ++i) { + CNF cnf = read_cnf(argv[i]); + if (cnf.num_vars < n) { + std::cerr << "Error: CNF file " << argv[i] << " has fewer variables than n=" << n << "\n"; + return 1; + } + cnf_list.push_back(cnf); + global_offset += (cnf.num_vars - n); + } + // const std::string cnf_dir = "./diag_sample"; + // for (const auto& entry : fs::directory_iterator(cnf_dir)) { + // if (entry.path().extension() == ".cnf") { + // std::string filename = entry.path().string(); + // std::cout << "Reading CNF file: " << filename << "\n"; + // CNF cnf = read_cnf(filename); + + // if (cnf.num_vars < n) { + // std::cerr << "Error: CNF file " << filename << " has fewer variables than n=" << n << "\n"; + // return 1; + // } + + // cnf_list.push_back(cnf); + // global_offset += (cnf.num_vars - n); + // } + // } + + int global_shared_start = global_offset + 1; + + // Reset offset for mapping + int offset_tracker = 0; + + for (size_t file_i = 0; file_i < cnf_list.size(); ++file_i) { + const CNF& cnf = cnf_list[file_i]; + int V = cnf.num_vars; + int non_shared = V - n; + int local_shared_start = V - n + 1; + + std::unordered_map var_map; + + // Map non-shared variables to new unique indices + for (int i = 1; i <= non_shared; ++i) { + var_map[i] = offset_tracker + i; + } + + // Map shared variables to the global shared region + for (int i = local_shared_start; i <= V; ++i) { + int shared_idx = i - local_shared_start; + var_map[i] = global_shared_start + shared_idx; + } + + // Update offset tracker + offset_tracker += non_shared; + + // Remap and add clauses + for (const auto& clause : cnf.clauses) { + Clause new_clause; + for (int lit : clause.literals) { + int var = std::abs(lit); + int sign = (lit > 0) ? 1 : -1; + new_clause.literals.push_back(sign * var_map[var]); + } + combined_clauses.push_back(new_clause); + } + } + + // auto clauses = generate_at_most_k_cnf(n, 5); + // for (const auto& clause : clauses) { + // Clause new_clause; + // for (int lit : clause) { + // new_clause.literals.push_back(global_shared_start + lit); + // } + // combined_clauses.push_back(new_clause); + // } + + + int total_vars = global_shared_start + n - 1; + write_cnf("combined.cnf", total_vars, combined_clauses); + std::cout << "Combined CNF written to combined.cnf with " << total_vars + << " variables and " << combined_clauses.size() << " clauses.\n"; + + + + return 0; +} diff --git a/diagnosis.sh b/diagnosis.sh new file mode 100755 index 0000000000..4dc3b064e4 --- /dev/null +++ b/diagnosis.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +python3 gen_diag_dofile.py "diag17.ptn" "./testcase/c17_pa.bench" "generated.dofile" "./Project_25S_diag/failLog/c17-001.failLog" +./abc -f generated.dofile +./diagnosis 22 diag0.cnf diag1.cnf diag2.cnf diag3.cnf diag4.cnf diag5.cnf diag6.cnf diag7.cnf +./kissat/build/kissat combined.cnf \ No newline at end of file diff --git a/gen_diag_dofile.py b/gen_diag_dofile.py new file mode 100644 index 0000000000..081250e787 --- /dev/null +++ b/gen_diag_dofile.py @@ -0,0 +1,99 @@ +import re + +def parse_pattern_file(pattern_filename): + patterns = [] + with open(pattern_filename) as f: + for line in f: + if not line.strip(): + continue + parts = line.strip().split() + if len(parts) != 2: + print(f"Warning: Skipping malformed pattern line: {line}") + continue + patterns.append((parts[0], parts[1])) + return patterns + +def parse_diag_file(diag_filename): + pattern_po_overrides = {} # pattern -> dict(po_idx -> bit) + gat_to_po = {22:0, 23:1} # gat number -> PO index + next_po_idx = 0 + + pattern_re = re.compile(r"T'([01]+)'") + gat_re = re.compile(r"(\d+)GAT") + + with open(diag_filename) as f: + for line in f: + pat_match = pattern_re.search(line) + gat_match = gat_re.search(line) + if not pat_match or not gat_match: + continue + + pattern = pat_match.group(1) + gat_num = int(gat_match.group(1)) + + if gat_num not in gat_to_po: + gat_to_po[gat_num] = next_po_idx + next_po_idx += 1 + po_idx = gat_to_po[gat_num] + + bit = "0" if "observe L" in line else "1" + + if pattern not in pattern_po_overrides: + pattern_po_overrides[pattern] = {} + + pattern_po_overrides[pattern][po_idx] = bit + + return pattern_po_overrides + +def apply_overrides(base_po, override_map): + po_list = list(base_po) + for idx, bit in override_map.items(): + if idx < len(po_list): + po_list[idx] = bit + else: + print(f"Warning: PO index {idx} out of range for base PO {base_po}") + return ''.join(po_list) + +def generate_dofile(pattern_file, bench_file, output_file, diag_file=None): + patterns = parse_pattern_file(pattern_file) + diag_overrides = parse_diag_file(diag_file) if diag_file else {} + print(diag_overrides) + lines = [] + lines.append(f"read {bench_file}") + lines.append("fault_gen -c") + lines.append("fault_sim") + lines.append("backup") + + for idx, (pi, po) in enumerate(patterns): + if pi in diag_overrides: + po = apply_overrides(po, diag_overrides[pi]) + + lines.append(f"add_tp {pi}") + lines.append("insert_tp") + lines.append(f"add_po {po}") + lines.append("fraig") + lines.append("strash") + lines.append("&get") + lines.append(f"&write_cnf ./diag{idx}.cnf") + lines.append("restore") + + lines.append("print_io") + + with open(output_file, 'w') as f: + f.write('\n'.join(lines)) + print(f"Dofile written to {output_file}") + +if __name__ == "__main__": + import sys + if len(sys.argv) < 4: + print("Usage: python gen_diag_dofile.py [diag_file]") + sys.exit(1) + + pattern_file = sys.argv[1] + bench_file = sys.argv[2] + output_file = sys.argv[3] + diag_file = sys.argv[4] if len(sys.argv) > 4 else None + + generate_dofile(pattern_file, bench_file, output_file, diag_file) + +# generate_dofile("diag.ptn", "./testcase/c17_pa.bench", "generated.dofile", f"./Project_25S_diag/failLog/c17-001.failLog")

    uJQ;u|y^nI+lpb9Wi%C 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%0A&B{W`XRfkxq7ujh>g;3S3s z{z|5BOI(XbE7vi-ldAZ`lZ!dW+mky}Y(C#$huInD?C%ak8+@1Dx_Z}pyfYk8goS;g zBTn~un)Towhs6bDrG$sV^>al%75!FDCtyp5ODi9ZoG0B;Wvyl(XDe%&+UDP3ddRj)BwnEeiZAM96&=JQCuHQ z2}Xvl$#No-^CQz+i!~Gqz1U;Nsq(aPVo{R8@Q0FRn-*%ssB`+_e*6ER32rGi3^mlQ zYtLFwUn~&V%a}7=w+eq0gp+;_Hn;B+k2xK0j;K0}b<+n~R*jMQ)`%$?fIN;l()2{g3rDhW**Vs!{53jfEAm07q z>@YMbVB@29i&ws;=dJYKJH{W6u)zk!HHYeOMoX=+U_S9({L4zyT2BSUL$yCWqI>$m zESR8K;i=;+Mr~FiJ;^zTQL(NRcqUAh1XDYx6w{7{o%|bLgs6QA+pTa2C-)HDqoksM zGHOZWA#oo^|C8y@pD_JT#@#R@33Tr<;+2c#bupPvF)+$|F2!c@Ub^vxdhm0rI`DO> zfJcF=;YpC#)M-&-Gt7C7!lv$NRnBJX(7ct%y6-|6gBT0+3vjBfskV4@eu}B)?2b`( z|4>22c8MdPK)U5&Gk5tys<6W>m3=ItFwNv(I`seatbH_Xvc-`z7cEX*klcd=cQU)a z*?gw*0Be81Bl2}TAV@PwZG_ta|ls}Cva8L$~bS37q zu&Q(fwdtXSMWwhheMTP1K0u)-JVurp4)RazkD20joDr=J(h&Y&84#5xEhe_9F50Iv z3G0bi5ORxQ5uP+u`SUn0SDbu(K%d+3BxdsT0ilK1%P0XvsM zC}j(*`%az)!90m;&Ykw?ZVJm!EXXDetCVUf)xf5rC72U2a^%M@h@|i!poNW9S8C1r ze7WdQZq(5Q1v>uKg9Mje-mC#nOW%jzzRNC1^fOK5>AS}{f@;T=I)B>r;iHNx7Pr@; zwALOK|I1(FtCkNLB|voJ*@iR#S7DTve?#+ExnmO0p<)lr;7qa~u`3d#f?5F6bAB(1QYZHJhwA#o-ij`TPQ5j~LVFpx!A< zpCxQ!(FURE_L+NIZPvRp4@;iK~or=v#sxogf#tbrGpRW*6lQr}-TXj~ws6=@x2E2+P1sO5#k^jk#u&M$5Q_9iFgGG6vn~P6o zovHLp!0Y%?u};pb#T~Ji*xJ=K zYG6!XWU!6~;!9l!5&Ctg0qUg6MA8BQ4M+Bf13Wq#kZ==6{Tx_Sy*`t=5(sH&wnrR8 za#Tn1cZcfO=B9_hOrV+8wvgXfd!BjT{T4z zHM0{UL{kx4{b9S4eXD@WIQKjhlSR_Rpm}!7o|Jo+=`ZwK)0)Oq(E6fr5=gtmPi1@3 zOB>Q_zQ`U7d=I=EtvD#4k;mTf%=-Qhyz@BEJLia-W z<)4JNC+@#CUzG_PNjQJxEH6XkTC(l|U>?*vY#wODr$39yu?D7|efuXl3~p!!&1hZf zR1K;I+=!a{I`3kv9qJhQR0E_Z6;bn5ip)uhf9)Dd4~Cf_K8uG4H^*goUCO^rYHfn? ztF&PYiRzL}42FWQhYicrs7T0UPXO*EqxFIl700nln_GVP5B6@3KO?QaM;|5Oru!aT z^=*PFD6dXzP^je}m0^s8*#t$}4KzmAco7~~u(q`siPTX5Y;zO?N+RPop&nsamH9ZW zHR!U}FOJ55a_YDFBkT~_y58>`nAicAHm~JfWq)*@cas%KCbhmrVizFKSV-pr#*qTx z{PkRRx#G$P%Zx9ovQVO$@9AE+6d@AzJ`wCLQ=&S^wMbWS)Q7UiSZTcGE)(4$Gybpo zq0At_>W6}}tRn$!ESaPH2`wY?N*&f5JE75WuG2m}=)O`qdo{bXb!c~RDlNFs^1!3Rkx$miM7X}ji9xxU&!)3abM&?Gmn}B14YKh&t+Pz-;bYM* z3PfX4T3-^>Z0Ic7vE7u_c@#VjEDCIYnv&ALZ;m#0x|SIj8@ix`TL-n`C00(khIYQG z!u9MLwdV;8{%u-;uCL;iO(>ZSc64_O&$6AHTUWNj?y{wG2E!ppS50om0m2@HE$<`4 zc3iXpV~IgDH}~c^?V<&5=_gdRf#V~zC?B-A=VJ6w;&nyB*_l%yb{)5ZnKYV8NB|_T zv&`S%8@o2mZycTz8M+7z)cxNM*?G*(+4%0=K_0ew!LEK4pmD9_ax+@gq$MM+2d!L) z1~9xv$w!nr3MZ_=a7U)HY>ancc%7{bu70%XyYX&9hpO-3*mI&+8eG*GVhID*H|SzN zgMZfGAF{iVOZ!AGlk@#k$2bH6EG2Z{$0+0-y{GN^p~!feh#oqAJ%7lSwY7jt5jFmA*{L^T#6;i0B)2M?~q0h7%c++2!}Ru zd^@pc;8lR-ErOIb875Fj{@5-ZW#%vts(;=YvWar%HeTR3*ZQ9uN&jD;p)+ z17mwb`_Q-ZgK{!RWiFgrCvBdTmCM%T4y+ywwfL5{3EnVFQ428vim`<_f-_t8x-Drn zk379POK5PlwB z&>NUk{j~Qek}yz;P%I2YvbzkP7|Rade#Zt|1^p2rNFl?$jqFPvTs(Ex)ryZp$e{{M zc>Kp7!$v1O8ji-iIM8zT3!bv2HP+426n?3;3TC^8pHQe)Cs`opiLd;GxA5P+}U)*&Witd1~b$xlg{4lrRvxNT7IiP6T)HC}gIE z@-~^JwLy8?Ak7sZfxqL*wrXK#tcJ~1r{(v6c%?a0@JdYMcwmS&b#!wzx@vQ}TRdP{ z!~tD$Vdd^Zpe#I*s@dR({X6xtLDM*-iMpp=DpD08ti&5Lyqwm!8Q!WVk=)7q0z^J%jhim)a;62yBP001znvritFyY&6&>St7rV!7 zr5e3ue2yF}+Zdw%JF4&Ke3)qIQ3_(!FI|IgmLHMeyn zS)=+XJ}-`LN6!gUH(L&mBYc5p=$jalPDj5XKoF8JCJ8o3O7i#6zx`V)FI8E!Yj12o zAl>8~Pme8;xa?iKDs$z^m6?|p9Al^CV@rBh?BRj%qP*V;S||Ce17e$f2BvvlwRay1 zuD%ayP~ME$!X_VQPOb|%ins_3jbcCEp=3w1;Cc{G8VM^k6xG57^PlOcdI7ho20ze* zI9g~HqhXp#o3ixPR||_3fkF^>sIdml#}mkhF!UQ4u-cFNYBWT(+mMmrOXOE=!;O#o zq7%2&mb({h;uffI71bfIq?1V4C)!dV?6A????n5i;KaK?BQH^}o!aG#+?s(0!wq(= zSsc?Cw&k8gANWeE6zjoQ^#(8WkL>HKg|0O`tMehscnJ9ajCSbyJd3|h1ZwF!iZH6M zUY~*DiM+{YNc2p?j7>9wd(&7)9zU=m`G<}2i;;=bKgc~v098+aBPtcl@_%@AsF#e)ZMYr?a!;li6RQtuwOD-PMoM9>ae4 zSNL)_vI!qq_D^%1?`Eghi>gn_E-=X~qUGWVl`5LDW!nRt&0XRz;hB*mn|a)WIu_ke zxi50acA4%&P5mP&UzF~-@AINxTX=Rc)Fmd&Nz)C)va`3$5(5q-#alq6;IwgW((^#r zDuHk=^)1~?GG#z>{guD?r7$eJ*8U#oN<`z+#jxp8#z;|&zpHf1O~(sZ{khjweg7C$ z-@Kcj*gs_Q6aEhw`&|G2!69{#Fk;oq1q zv4nrqVwKSu_OBM@8B0E0A5YPBe);+jY(%UAaquB7%D0Vg|1#_M94Dz!k&Els+{p73 zy!hwX_H*YK9bC&5{Jc~>1Chu3<$CcjG8Zwd?AuXylYb7eb5FL!EQ=&ST(ZzdQv2Gs zpJCB3{)s55gzmt2;HMl9{KLg_(-8zP(t1|q$ETfxou2g4*mbtwBCNMPfer_NzHisd z^WUdetLf{dr5d=!>hSImA6Y)~NpT+!u)v%c@(nk0ax}4TE`;(LX%9HAjnf|E0dGw2ZSNT? z--khec(Bi3?%psc&CF_|9Vp8lI>rGgLHhBasjsgw4~~&Q9u6l`Jlxg)yO$9`V(#Rc zaBlxu-o^eRwl2>3Gd<_=L>LJoL76Jcqp`F&<(n}Z7pCJQsQM?GozLUjv36#Mq{sVW z4GdZK5STuY3!YjRy41q{CRr6a9*@{6U=pGwdT!aGj}x8F#gUZwvCsHAD%G#Rh}MG! zJ!#yu4`p8RkcJ%Odx+K+zcPqZ3?qdKF%d&R@0)h72`gEK@3;);AVXMQ8P`tyuPx-m zZZC+7G7MlhC@C$#A%)mV$VNBf(l(EG#J3|onYZb0g2{l&ynJ~cm~fe4oWUVv4dm?YhdiIMKrT^T(Ku$HDkp0Eu9O^)2F z*yX78a0)tQeIo79n+ zn;gn+q9cN>7s9E&{MpMOdm5pT_%pTX5Q@gmEsEP|0S83-DROl1Z|q;Js0@Z4?OvfV z6*L}}@!wzODISI0=NY2HTf1U!I-4G7p@^I()$;B&UP%25LjtDbX5;WTi?r{FRb_wR z^@5I-2@dxed#zT_$zJb+P>%KL7d@oVEF+-puwexud`8GbY*A?Idwf0reQ|X;L4=GB z!Ipoc<&&d?Voe*ywO+hlV5Y@Q346VM(T(yzBr6F`ZR;f(t`kUBaqdo52IK+G$sTC%oQ$=_ z(#gjb>CBK@&M41J(d-b^Q2wc4KT>L+L;RqXw6MfOW-|&zgWC!zNi@>J!vP2|97v%D z3vXv9Cu=&Hm)Pegc6j@jFtukLl|#w>cZh90b;2*f?Nk=~aUO<3Zl)CJZlN(vxxird z5m|{>6>yQpYmk~&B|V2$!q-v3X?8RL1H5rbuEu6i5Sc}lOW z;dqj2IGTqbz&8?5VdgCED(7K>@4NvB5)%Z|ELOrOF2&|1qSerfjbYt5m>MZcysDWnvDz)^1L_}#LS9Ymm9?U#}25r(czIN zXRRT9a!+{pNpNto@Ng{q>PYPe^C>9@=cs~5ZhduWZL(*KUo92!g71f5fWQ`(sZtOz zW}jmLIlw`cW3!73IvYW`w_@()a(}eTg_A}{g<40CstJ@5zy;XvWbfnfbwYRqadcTY zCg@oeQZ~s++^Bj$(>R`2k>#)O4Lne%+N!kQ2T^5#crJ=7#CBn4Ol5xZPMyZ78M7v# zoo=9PK@NqOD09l-(hLa|e95ZFP-26M#i*+rIOl3gJoCs7-%MQ0)(iXo3MiIGi8y5& zQdA>ssBeN7%bAHlO%23knyp|og8ri`k`43Ur?cx1xL#SFV7xu`IGsI|ZN5pqhTEw& z6|&*5b{GMMCx>)*o zTxx`P__QxL?4VsXCBJHyP2uB4l}$ZI&n=3=MZy0wyV!Uhn>ibTsApC9u1MyxL;fbwuvn zJWM6g47hi6G**c4L1idxdIzE$H% zGL90~4KPXA;?lT_RtmFc5azU0RMZDs>s)*SCaiVCrm2MJwc5V}dh+x&%5^8SzQmIf zL%|HA1f6^rJZ`<3MAr0Chd(bz?38Vjkk<%Ahh*3!0I@dd;mSr3rX=xyS9{ITNTB-6 zFi~QGZbCMai9ugqm%l>B%F-S@@saXZM0u?E3G&y+7b}9|wKp9q6^|$=OTS-Prcufd z>uqGd*1LiIf?j%#XK3^S)l%>go*qI|909cm@a}8|G|*4B@$!=d95=evmQ7&aH@I{G`hd zuP!dpx95<%JSfeqho2|pazUbkSwNU{s&UDwSHb+0ZB*UVl^7HE_sEOzP&55%e)>oX zJ}{X9-8NF!Kvb{2zMye^p1N)MnJ8RDsic*{eW(S`FOjtC^#d^1Uw9ytuD>tY)q5AI z2qh)MTq3t$WcLKx63~kh0pgRJs}SG?9c7YnaJ$f~;Bj?w%@XB}&cW&f&x|Z7wX4ODgF(k|a)BbY=oLT)v90cWO^oq|?M z@f1$^4-jfvLAgH?NeXeFNDe`293LTVTav|?#knOjX>XXnow@)2nt%4Xy?lV=r{n{4 zS9x|@@=oXPUiTcpR2{Gk|NXZjx3pin6>Rwc+HRX@&8}|`*fy^Q6nz2jnV&`yftLYHD2i2hg-=SSvfOU2k7d{&_`kDYZ&Ck zhxy_Hcb#Y^_bh6Hd9*alk@b85V?X*xB1Nl8%~uz$7LnAqWPNQRT($gGnRGDPe5{-J{3G&Lb#f;{2n+k01U6 z@j+3z%5dHKUA#yULviK<_j1>I9wIhL(c&4JjxUYEV>d;+NBIe{k7A`WBbT*58h8#*H`9sn%kU&KG4?j^8CaOwO}#wxUgzaO2De= z`-iO!5DFa4DnSAOlbGq_l9Cqcc+%_p zlJr8HS)8599D7WR%haQEw{qdI)xSFHf=#mcz=oUsqzn19j4H$H9 zBbu$JIYvInWib>cqHogTwIUf!I~H8fPG-v+V}Rb?Jw{@F0I`vTa}x5!MR9toXaFg6 zX$2X=9=dCATNE1_Q&WOCIqNm(sg5$6(-FrJ-n>X2q-Z=!Hek~G_;HVllNK)$VL1I*uq`>ZEzeZo6*dY;t@$O7 z*Q+!Eku7ybeaN<4udXV=a;-No`)gI=o*0U5cRwYEg67bY2HioKy1T*dB=iwE{Zo(N ztWx5+lEL>xE-1umLCCSZTFy=}odM}aPM2!s& zjhb61lQ6c3ozDN|eKPOZ=I9+Axwc;r&G|0tMB&u5m5t5yWV3JPmh zydn65?Nm_Z*2Do};Ht?0(LeQRo&tg#EiD|okn9$NAgH&l5!(>`bTO-^qNM~Grk_Q8 z11?(8aHmqHynhhrxPJkw2w(z)OqmnY`9N~!w&WH7HtUi|B+;CDg^>IFA~-CgOl-(^ zPMHbsTR>4ozC!jTKw+*jIb>S#VxRR9{=PMt`|`E+D|E;)l>IRPl2A#CluEMAo>ss# zOdxnm-_edN4{{5Wd}8o-6}EW*SFHw+EFEePCt{zF2uFQ+hbSoDi#TEI$b$YS4r86UL~5sY0_=_mLTu>O zrPd%IwA$`3&q~{8uW6H3pNPRAymDZ+>c&A7o%tV2XMQPOcz0BGf=$^v+?@5aUf`Inf$TT#Zht%ozC9Yaa5nLCshzU(vfOjpM*BXR;$XTr>+C7P!Q{ zwF7%9uK0-$;i_?^6b6lZ`cLQO4D9ID%M+NE;EsAI2|^o^60rnz1i#k`-ZJF9>F;CI z`*+&YSASesKZdlYHyYhtf`Vk4r7Y=bLPTEAqz-#8?liPqA~T2t-zDS4=WeNptfbnr~!t%3WHEYpK~C_ zcas!7e(_3MgmC#G<+3#(aV3O3x^f)i>De{&E z)tW$)-K7mxzNH_SK??bK?twTtTBg1@sH?u3El-gv5vjk^Z@hP&`a>#t-5rj;`Eqcs ztOB07gI0SA0sF=z#`ZNVli%QUUP#xD`P<*gKH@)k`qN} zyKtf$;Rp~E=r=~w=;9k-5;tV4=|GACr;FniT9u!oN;FNGNXB4Pdb|4moXt){=h6&Q zenWaWF0>p?{ACt1+frmsir7WIU%3=^(V{axSy%q4tii5RkxT1w_2u-UCNpe6Jc4BZWdw>`ZnJv{|R^^&D|BNgIGN2t| z0$~U6z6`oJzdn<21zkl1i``!^A8Px$4qy9CX=L`lWhGwN@eTm97EvT1Bu$1b=mj-z zU8UH$Ym*bo9?~-kICcBgFdQ6cU+bdZz{4Cpl;P8Ev>YxTmaSQ{zy!MP8OMr!N1A^A z$=PE4W|5W6LQUpt72+^2`)E5MaM~cZf!ET^gOE-GW`Uf?3-PF>(hLcozkRaP z+dP*(q;+{}B6aO|Rh}ZCI8jB!+Tfx;l>qsX`l$dh}HhXc0j-=VSV)9F94f4e-D!5`t6b~^*wGU)*+28T%e*RSKi6L%qpFS(JKU!WLev3|Eek!whn z7@>w9PK9?2jxpv0l{PFUL^?xfGoE!%liFEePJwtdw)tYS{q(d(dwFM)o}2dBH}m$r zO?LTq!Fgqe6W05KpX^%_-aL&~qh#7IeTxQu+9oK#LeQcg1@drdL&hd+GUU1GlT74g znB`TS;X4OW3b3Zx@Va3jLB+$_Y!4|)s∾|>D{ZTa7zo5 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