# SageMathCell online https://sagecell.sagemath.org/?q=hfulnn # xQ'_3. (16,3)=1600, Moore bound=3857. # Component with polarity of the cartesian product of the quocient of a quadrangle by a polarity by itself. # Found by C. Delorme and G. Farhi. Large graphs with given degree and diameter.IEEE Trans, Comput. c-33 (1984), pp. 857-860. # Ord.: 1600 / Size: 12800 / Diam.: 3 / Avg.dist: 2.87467 # 16-reg.? True / Degree histogram: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1600] / Girth: 3 # # Aut.group.ord.: 1 # import networkx as nx delfah=Graph(r":~?X?_?_??@_??@?A_?_?_?_?_??C_?_?_?_??C?G_?_?_?_?_@?D?H?L_@_@_@_@?D?H?L_@?Q_@_@_@?D?H?L_@?Q?U_@_@_@_A?E?I?M_A?R?V?Z_A_A_A?E?I?M_A?R?V?Z_A?__A_A_A?E?I?M_A?R?V?Z_A?_?c_A_B?G_B?F?J?N_B?S?W?[_B?`?d?i_B_B?F?J?N_B?S?W?[_B?`?d?i_B?n_B?F?J?N_B?S?W?[_B?`?d?i_B?e?n?r_C?D?E?F_w_w_w_w_w_w_w_w_w_w_w_w_C?D?E?F`D`D`D`D`D`D`D_e@D`D`D`D`D_C?D?E?F`Q`Q`Q`Q`Q`Q`Q`Q`Q`Q`Q`Q_G?H?I?J`^`^`^_e@^`^`^`^`^`^`^`^`^_K?L?M?N`k`k`k`k`k`k`k_e@k`k`k`k`k_K?L?M?N`x`x`x`x`x`x`x`x`x`x`x`x_G?H?I?J_jAEaEaEaE_jAEaEaEaE_jAEaEaEaE_K?L?M?NaRaRaRaRaRaRaRaRaRaRaRaR_G?H?I?Ja_a_a_a_a_a_a_a_a_a_a_a__P?Q?R?S?x?y?z?{ASATAUAVA`AaAbAc_P?Q?R?S@E@F@G@H@c@d@e@f@}@~A?A@_P?Q?R?S@R@S@T@U@p@q@r@sAJAKALAM_X?Y?Z?[@@@A@B@C@g@h@i@j@t@u@v@w_T?U?V?W?|?}?~@?AAABACADANAOAPAQ_T?U?V?W@V@W@X@Y@_@`@a@bAWAXAYAZ_X?Y?Z?[@Z@[@\@]@y@z@{@|AhAiAjAk_X?Y?Z?[@I@J@K@LAFAGAHAIA[A\A]A^_T?U?V?W@M@N@O@P@l@m@n@oAdAeAfAg_]?^?_?`?x?y?z?{@_@`@a@b@y@z@{@|_k?l?m?n?x?y?z?{@l@m@n@oAFAGAHAI_k?l?m?n@R@S@T@U@g@h@i@jAAABACAD_]?^?_?`@E@F@G@H@t@u@v@wANAOAPAQ_]?^?_?`@R@S@T@UA[A\A]A^AdAeAfAg_k?l?m?n@E@F@G@HAWAXAYAZAhAiAjAk_o?p?q?r?|?}?~@?@c@d@e@fA[A\A]A^_a?b?c?d@@@A@B@CAJAKALAMAWAXAYAZ_s?t?u?v@@@A@B@C@}@~A?A@AdAeAfAg_f?g?h?i?|?}?~@?@p@q@r@sAhAiAjAk_s?t?u?v@I@J@K@L@_@`@a@b@p@q@r@s_a?b?c?d@Z@[@\@]@c@d@e@f@l@m@n@o_f?g?h?i@V@W@X@Y@}@~A?A@AFAGAHAI_o?p?q?r@M@N@O@P@y@z@{@|AJAKALAM_f?g?h?i@M@N@O@P@g@h@i@jASATAUAV_a?b?c?d@I@J@K@LAAABACADA`AaAbAc_s?t?u?v@Z@[@\@]ANAOAPAQASATAUAV_o?p?q?r@V@W@X@Y@t@u@v@wA`AaAbAc_C?x?|@@_C@E@I@MBG_C@R@V@ZBGBH_C?x?|@@_C@E@I@M_C@R@V@Z_C?x?|@@_C@E@I@M_C@R@V@Z_C_D?y?}@A_D@F@J@N_D@S@W@[_D?y?}@A_D@F@J@N_D@S@W@[_D?y?}@A_D@F@J@N_D@S@W@[_E?z?~@B_E@G@K@O_E@T@X@\_E?z?~@B_E@G@K@O_E@T@X@\_E?z?~@B_E?\@G@K@O_E@T@X@\_F?{@?@C_F@H@L@P_F@U@Y@]_F?{@?@C_F@H@L@P_F@U@Y@]_F?{@?@C_F@H@L@P_F@U@Y@]bGbGbGbGBlbGbGbGBlBobGbGbGbHBmBpBsbHbHbHBmBpBsbHBwbHbHBmBpBs_\BHBwBzbHbHbIBnBqBtbIBxB{B~_GBIbIBnBqBtbIBxB{B~bICBbIBnBqBtbIBxB{B~bICBCEbI_G@_@c@gBJBKBLcJcJcJcJcJcJcJ_\CJcJ_K@l@p@tBMBNBOcTcTcTcTcTcTcTcTcT_K@y@}AABMBNBOc^c^c^c^c^c^c^c^c^_GAFAJANBJBKBLchchchchchchchchch_KASAWA[BMBNBOcr_\Crcrcrcrcrcrcrcr_GA`AdAhBJBKBLc|c|c|c|c|c|c|c|c|_P?xASA`BQBRBSBlBmBnCsCtCuC}C~D?_P@E@c@}BQBRBSBvBwBxCNCOCPCbCcCd_P@R@pAJBQBRBSC@CACBCXCYCZClCmCn_X@@@g@tBWBXBYBrBsBtCQCRCSC[C\C]_T?|AAANBTBUBVBoBpBqCeCfCgCoCpCq_T@V@_AWBTBUBVCCCDCECKCLCMCvCwCx_X@Z@yAhBWBXBYCFCGCHC_C`CaDCDDDE_X@IAFA[BWBXBYByBzB{CiCjCkCyCzC{_T@M@lAdBTBUBVB|B}B~CUCVCWD@DADB_]?x@_@yBZB[B\BlBmBnCKCLCMC_C`Ca_k?x@lAFBcBdBeBlBmBnCUCVCWCiCjCk_k@R@gAABcBdBeC@CACBCQCRCSCeCfCg_]@E@tANBZB[B\BvBwBxC[C\C]CoCpCq_]@RA[AdBZB[B\C@CACBCyCzC{D@DADB_k@EAWAhBcBdBeBvBwBxCvCwCxDCDDDE_o?|@cA[BfBgBhBoBpBqCNCOCPCyCzC{_a@@AJAWB]B^B_BrBsBtClCmCnCvCwCx_s@@@}AdBiBjBkBrBsBtCbCcCdD@DADB_f?|@pAhB`BaBbBoBpBqCXCYCZDCDDDE_s@I@_@pBiBjBkByBzB{CKCLCMCXCYCZ_a@Z@c@lB]B^B_CFCGCHCNCOCPCUCVCW_f@V@}AFB`BaBbCCCDCECbCcCdCiCjCk_o@M@yAJBfBgBhB|B}B~C_C`CaClCmCn_f@M@gASB`BaBbB|B}B~CQCRCSCsCtCu_a@IAAA`B]B^B_ByBzB{CeCfCgC}C~D?_s@ZANASBiBjBkCFCGCHCoCpCqCsCtCu_o@V@tA`BfBgBhCCCDCEC[C\C]C}C~D?_G?j@_@c@g_G?jA`AdAhDa_G@_@c@g_GAFAJAN_GA`AdAh_H@`@d@h_HAGAKAO_HAaAeAi_H@`@d@h_HAGAKAO_HAaAeAi_H@`@d@h_HAGAKAO_HAaAeAi_I@a@e@i_IAHALAP_IAbAfAj_I@a@e@iC?_IAHALAP_IAbAfAj_I@a@e@i_IAHALAP_IAbAfAj_J@b@f@j_JAIAMAQ_JAcAgAk_J@b@f@j_JAIAMAQ_JAcAgAk_J@b@f@j_JAIAMAQ_JAcAgAkbJCKCNCQbJCiClCobJC}D@DCbJCKCNCQbJCiClCobJC}D@DCbJCKCNCQbJCiClCobJC}D@DCbKCLCOCRbKCjCmCpbKC~DADDbKCLCOCRbKCjCmCpbKC~DADDbKCLCOCRbKCjCmCpbKC~DADDbLCMCPCSbLCkCnCqbLD?DBDEbLCMCPCSbLCkCnCqbLD?DBDEbLC?CMCPCSbLCkCnCqbLD?DBDEcHDadadabhCEC]D?Dac?DaE\dadadaE\E`dada_K@l@p@tDcDdDec?Efefefefefefefefef_K@y@}AADcDdDeepepepepepepepepep_jE]EaEd_j_j_jE]EaEd_jE{_j_jE]EaEd_jE{E~_j_KASAWA[DcDdDefCfCfCfCfCfCfCfCfCdbE^EbEedbE|F?FBdbdbE^EbEedbE|F?FBdbFOdbE^EbEedbE|F?FBdbFOFRdb_P?xASA`DfDgDhEAEBECFDFEFFFMFNFO_P@E@c@}DfDgDhEJEKELE`EaEbEtEuEv_P@R@pAJDfDgDhESETEUEjEkElE}E~F?_X@@@g@tDlDmDnEGEHEIEcEdEeEmEnEo_T?|AAANDiDjDkEDEEEFEwExEyF@FAFB_T@V@_AWDiDjDkEVEWEXE\E]E^FGFHFI_X@Z@yAhDlDmDnEYEZE[EqErEsFSFTFU_X@IAFA[DlDmDnEMENEOEzE{E|FJFKFL_T@M@lAdDiDjDkEPEQEREgEhEiFPFQFR_]?x@_@yDoDpDqEAEBECE\E]E^EqErEs_k?x@lAFDxDyDzEAEBECEgEhEiEzE{E|_k@R@gAADxDyDzESETEUEcEdEeEwExEy_]@E@tANDoDpDqEJEKELEmEnEoF@FAFB_]@RA[AdDoDpDqESETEUFJFKFLFPFQFR_k@EAWAhDxDyDzEJEKELFGFHFIFSFTFU_o?|@cA[D{D|D}EDEEEFE`EaEbFJFKFL_a@@AJAWDrDsDtEGEHEIE}E~F?FGFHFI_s@@@}AdD~E?E@EGEHEIEtEuEvFPFQFR_f?|@pAhDuDvDwEDEEEFEjEkElFSFTFU_s@I@_@pD~E?E@EMENEOE\E]E^EjEkEl_a@Z@c@lDrDsDtEYEZE[E`EaEbEgEhEi_f@V@}AFDuDvDwEVEWEXEtEuEvEzE{E|_o@M@yAJD{D|D}EPEQEREqErEsE}E~F?_f@M@gASDuDvDwEPEQEREcEdEeFDFEFF_a@IAAA`DrDsDtEMENEOEwExEyFMFNFO_s@ZANASD~E?E@EYEZE[F@FAFBFDFEFF_o@V@tA`D{D|D}EVEWEXEmEnEoFMFNFO_K@l@p@tBP_K@y@}AABlFr_KASAWA[FrFs_KB^BzCICfC~_L@m@q@u_L@z@~AB_LATAXA\_L@m@q@u_L@z@~AB_LATAXA\_L@m@q@uFV_L@z@~ABBu_LATAXA\_M@n@r@v_M@{A?AC_MAUAYA]_M@n@r@v_M@{A?ACCI_M?OAUAYA]_M@n@r@v_M@{A?AC_MAUAYA]_N@o@s@w_N@|A@AD_NAVAZA^_N@o@s@w_N@|A@AD_NAVAZA^_N@o@s@w_N@|A@AD_NAVAZA^bMCUCXC[bMC_CbCebMCsCvCybMCUCXC[bMC_CbCebMCsCvCybMCUCXC[FVbMC_CbCe_OBMCsCvCybNCVCYC\bNC`CcCfbNCtCwCzbNCVCYC\bNCIC`CcCfbNCtCwCzbNCVCYC\bNC`CcCfbNCtCwCzbOCWCZC]bOCaCdCgbOCuCxC{bOCWCZC]bOCaCdCgbOCuCxC{bOCWCZC]bOBuCaCdCgbOCuCxC{dcEgEjEmdcEqEtEwdcFDFGFJdcEgEjEmdcEqEtEwdcFDFGFJdcEgEjEmFVdcEqEtEwdcFDFGFJfrfrbeCBCSCgFrbPFrfrfrbPBoFVFrGxfrfrfsGuGyG|buFsfsfsGuGyG|e{FsH?fsfsGuGyG|cIFsH?HBfsddEhEkEnddErEuExddFEFHFKddEhEkEnddErEuEx_ODdFEFHFKddEhEkEnddErEuExddFEFHFK__@G@vAPFtftGvGzG}ftH@HCHFftftGvGzG}ftH@HCHF_OFtHSftGvGzG}ftH@HCHFftHSHVdeEiElEocIDeEsEvEydeFFFIFLdeEiElEodeEsEvEydeFFFIFLdeEiElEobuDeEsEvEydeFFFIFL_P?xASA`FvFwFxGQGRGSHQHRHSHZH[H\_P@E@c@}FvFwFxGZG[G\GoGpGqHAHBHC_P@R@pAJFvFwFxGcGdGeGxGyGzHJHKHL_X@@@g@tF|F}F~GWGXGYGrGsGtG{G|G}_T?|AAANFyFzF{GTGUGVHDHEHFHMHNHO_T@V@_AWFyFzF{GfGgGhGlGmGnHTHUHV_X@Z@yAhF|F}F~GiGjGkG~H?H@H`HaHb_X@IAFA[F|F}F~G]G^G_HGHHHIHWHXHY_T@M@lAdBPFyFzF{G`GaGbGuGvH]H^H__]?x@_@yG?G@GAGQGRGSGlGmGnG~H?H@_k?x@lAFBPGHGIGJGQGRGSGuGvHGHHHI_k@R@gAAGHGIGJGcGdGeGrGsGtHDHEHF_]@E@tANG?G@GAGZG[G\G{G|G}HMHNHO_]@RA[AdG?G@GAGcGdGeHWHXHYH]H^H__k@EAWAhGHGIGJGZG[G\HTHUHVH`HaHb_o?|@cA[GKGLGMGTGUGVGoGpGqHWHXHY_a@@AJAWGBGCGDGWGXGYHJHKHLHTHUHV_s@@@}AdGNGOGPGWGXGYHAHBHCH]H^H__f?|@pAhGEGFGGGTGUGVGxGyGzH`HaHb_s@I@_@pGNGOGPG]G^G_GlGmGnGxGyGz_a@Z@c@lBPGBGCGDGiGjGkGoGpGqGuGv_f@V@}AFGEGFGGGfGgGhHAHBHCHGHHHI_o@M@yAJGKGLGMG`GaGbG~H?H@HJHKHL_f@M@gASGEGFGGG`GaGbGrGsGtHQHRHS_a@IAAA`GBGCGDG]G^G_HDHEHFHZH[H\_s@ZANASGNGOGPGiGjGkHMHNHOHQHRHS_o@V@tA`GKGLGMGfGgGhG{G|G}HZH[H\_Q?yATAaEc_Q@F@d@~H~_Q@S@qAKH~I?_Q?yATAa_Q@F@d@~_Q@S@qAK_Q?yATAa_Q@F@d@~_Q@S@qAK_Q?_?z@a@{HP_R?zAUAb_R@G@eA?_R@T@rAL_R?zAUAb_R@G@eA?C?_R@T@rAL_R?zAUAb_R@G@eA?_R@T@rAL_S?{AVAc_S@H@fA@_S@U@sAMGw_S?{AVAc_S@H@fA@_S@U@sAM_S?{AVAc_S@H@fA@_S@U@sAMbQBlCsC}H~bQBvCNCbH~bQC@CXClH~bQBlCsC}bQBvCNCbbQC@CXClbQBlCsC}bQBvCNCbbQC@CXClbRBmCtC~I?I[bRBwCOCcI?bRCACYCmI?bRBmCtC~bRBwCOCcbRCACYCmbRBmCtC~bRBwCOCcbRCACYCmbSBnCuD?I@I\bSBxCPCdI@IebSCBCZCnGwI@bSBnCuD?bSBxCPCdbSCBCZCnbSBnCuD?bSBxC?CPCdbSCBCZCndfEAFDFMdfEJE`EtdfESEjE}dfEAFDFMI?I[c?DfEJE`EtI?IddfESEjE}I?ImdfEAFDFMdfEJE`EtdfESEjE}GwfvGQHQHZc?FvGZGoHAfvGcGxHJfvGQHQHZI@I\fvGZGoHAI@IeIzfRFvGcGxHJI@InfvGQHQHZfvGZGoHAfvGcGxHJfwGRHRH[fwG[GpHBfwGdGyHKfwGRHRH[I?I[fwG[GpHBI?IdIyfwGdGyHKI?ImJBfwGRHRH[fwG[GpHBfwGdGwGyHKdgEBFEFNdgEKEaEudgETEkE~dgEBFEFNI@I\dgEKEaEuI@IeIzJLdgETEkE~I@InJCdgEBFEFNdgEKEaEudgETEkE~fxGSHSH\H~IZIyfxG\GqHCH~IcIxJJfxGeGzHLH~IlJAJSfxGSHSH\fxG\GqHCfxGeGzHLfxGSHSH\fxG\GqHCfxGeGzHLdhECFFFOH~IZJYdhELEbEvH~IcIxJJdhEUElF?H~IlJAJSdhECFFFOdhELEbEvdhEUElF?dhECFFFOdhELEbEvdhEUElF?cIFzGUHEHNI?_OGJG\HVHbI@_Y@A@h@uIDIEIFI`IaIbI{I|I}JDJEJF_U?}ABAOIAIBICI]I^I_JMJNJOJVJWJX_U@W@`AXIAIBICIoIpIqIuIvIwJ\J]J^_Y@[@zAiIDIEIFIrIsItJGJHJIJhJiJj_Y@JAGA\IDIEIFIfIgIhJPJQJRJ_J`Ja_U@N@mAeIAIBICIiIjIkI~J?J@JeJfJg_^?y@`@zIHIIIJIZI[I\IuIvIwJGJHJI_l?y@mAGIQIRISIZI[I\I~J?J@JPJQJR_l@S@hABIQIRISIlImInI{I|I}JMJNJO_^@F@uAOIHIIIJIcIdIeJDJEJFJVJWJX_^@SA\AeIHIIIJIlImInJ_J`JaJeJfJg_l@FAXAiIQIRISIcIdIeJ\J]J^JhJiJj_p?}@dA\ITIUIVI]I^I_IxIyIzJ_J`Ja_b@AAKAXIKILIMI`IaIbJSJTJUJ\J]J^_t@A@~AeIWIXIYI`IaIbJJJKJLJeJfJg_g?}@qAiINIOIPI]I^I_JAJBJCJhJiJj_t@J@`@qIWIXIYIfIgIhIuIvIwJAJBJC_b@[@d@mIKILIMIrIsItIxIyIzI~J?J@_g@W@~AGINIOIPIoIpIqJJJKJLJPJQJR_p@N@zAKITIUIVIiIjIkJGJHJIJSJTJU_g@N@hATINIOIPIiIjIkI{I|I}JYJZJ[_b@JABAaIKILIMIfIgIhJMJNJOJbJcJd_t@[AOATIWIXIYIrIsItJVJWJXJYJZJ[_p@W@uAaITIUIVIoIpIqJDJEJFJbJcJd_U?}ABAOJbJk_U@W@`AXB}KE_U@N@mAeBrKEKF_U?}ABAO_U@W@`AX_U@N@mAe_UDyEBEhE{_V?~ACAP_V@X@aAY_V@O@nAf_V?~ACAPCI_O?V@X@aAY_V@O@nAf_V?~ACAP_V@X@aAY_V?\@O@nAf_W@?ADAQ_W@Y@bAZJl_W@P@oAg_W@?ADAQ_W@Y@bAZE__W@P@oAg_W@?ADAQ_W@Y@bAZ_W@P@oAgbTBoCeCoIAI]JMJVbTCCCKCvIAIoIuJ\bTB|CUD@IAIiI~JebTBoCeCoE~JkKEbTCCCKCvKEbTB|CUD@KEbTBoCeCo_OBTCCCKCvbTB|CUD@bUBpCfCpIBI^JNJWbUCDCLCwIBIpIvJ]JlbUB}CVDAIBIjJ?JfbUBpCICfCpbUCDCLCwbUB}CVDAbUBpCfCpKGKcbUCDCLCwKG_\BUB}CECVDAKGbVBqCgCqICI_JOJXbVCECMCxICIqIwJ^bVB~CWDBICIkJ@JgbVBqCgCqKFKbbVCECMCxE_KFbVB~CWDBKFKnbVBqCgCqbVCECMCxbVB~CWDBdiEDEwF@KFKbdiEVE\FGKFKtdiEPEgFPKFKndiEDEwF@IBI^JNJWdiEVE\FGIBIpIvJ]diEPEgFPIBIjJ?JfdiEDEwF@diEVE\FG_\DiEPEgFPfyGTHDHMKGKcfyGfGlHTKGKuK{bPFyG`H]KGKofyGTHDHMICI_JOJXfyGfGlHTICIqIwJ^bPFyG`H]ICIkJ@JgfyGTHDHMe_FyGfGlHTbPFyG`H]fzGUHEHNfzGgGmHUfzGaGuH^fzGUHEHNIBI^JNJWfzGgGmHUIBIpIvJ]fzGaGuH^IBIjJ?JffzGgGmHUKEKsKyfzGaGuH^KEKmLBdjEEExFAdjEWE]FHdjEQEhFQdjEEExFAICI_JOJX_ODjEWE]FHICIqIwJ^djEQEhFQICIkJ@JgdjEEExFAFUJkKEKadjEWE]FHKEKsKydjEQEhFQKEKmLBf{GVHFHOIAI]JMJVf{GhGnHVIAIoIuJ\_\F{GbGvH_IAIiI~Jef{GVHFHOKFKbLQLZ_O?hF{GhGnHVJlKFKtKzf{GbGvH_KFKnLCf{GVHFHOf{GhGnHVf{GbGvH_cIDkEFEyFBIAI]JMJVdkEXE^E_FIIAIoIuJ\dkEREiFRIAIiI~JedkEFEyFBKGKcLRL[dkEXE^FIKGKuK{LabwDkEREiFRKGKoLDdkEFEyFBdkEXE^FIJldkEREiFR_Y@A@h@uKHKIKJKdKeKfL?L@LALHLILJ_Y@[@zAiKHKIKJKvKwKxLKLLLMLkLlLm_Y@JAGA\KHKIKJKjKkKlLSLTLULbLcLd_^?y@`@zKLKMKNK^K_K`KyKzK{LKLLLM_l?y@mAGKUKVKWK^K_K`LBLCLDLSLTLU_l@S@hABJkKUKVKWKpKqKrL?L@LALQLR_^@F@uAOKLKMKNKgKhKiLHLILJLYLZL[_^@SA\AeKLKMKNKpKqKrLbLcLdLhLiLj_l@FAXAiKUKVKWKgKhKiL_L`LaLkLlLm_p?}@dA\KXKYKZKaKbKcK|K}K~LbLcLd_b@AAKAXKOKPKQKdKeKfLVLWLXL_L`La_t@A@~AeK[K\K]KdKeKfLNLOLPLhLiLj_g?}@qAiKRKSKTKaKbKcLELFLGLkLlLm_t@J@`@qK[K\K]KjKkKlKyKzK{LELFLG_b@[@d@mKOKPKQKvKwKxK|K}K~LBLCLD_g@W@~AGKRKSKTKsKtKuLNLOLPLSLTLU_p@N@zAKKXKYKZKmKnKoLKLLLMLVLWLX_g@N@hATKRKSKTKmKnKoL?L@LAL\L]L^_b@JABAaJkKOKPKQKjKkKlLQLRLeLfLg_t@[AOATK[K\K]KvKwKxLYLZL[L\L]L^_p@W@uAaKXKYKZKsKtKuLHLILJLeLfLg_Y@A@h@uFVJU_Y@[@zAiBuMC_Y?n@JAGA\MCMD_YGOGXHBH^IXIaJKJf_Z@B@i@v_Z@\@{Aj_Z@KAHA]_Z@B@i@v_Z@\@{Aj_Z@KAHA]Fu_Z@B@i@v_Z@\@{Aj_Z@KAHA]_[@C@j@w_[@]@|Ak_[@LAIA^KK_[@C@j@w_[@]@|Ak_[@LAIA^_[@C@j@w_[@]@|Ak_[@LAIA^bWBrCQC[IDI`I{JDbWCFC_DCIDIrJGJhbWByCiCyIDIfJPJ_KKbWBrCQC[KHKdL?LHbWCFC_DCKHKvLKLkbWByCiCyKHKjLSLbbWBrCQC[FVMCbWCFC_DCMCbWByCiCyMCbXBsCRC\IEIaI|JEbXCGC`DDIEIsJHJibXBzCjCzIEIgJQJ`bXBsCRC\MEMabXCGC`DDMEbXBzCjCzFuMEbXBsCRC\KJKfLALJbXCGC`DDKJKxLMLmbXBzCjCzKJKlLULdbYBtCSC]IFIbI}JFbYCHCaDEIFItJIJjbYB{CkC{IFIhJRJabYBtCSC]KIKeL@LIbYCHCaDEKIKwLLLlbYB{CkC{KIKkLTLcbYBtCSC]MDM`bYBuCHCaDEMDbYB{CkC{MDMfdlEGEcEmKIKeL@LIdlEYEqFSKIKwLLLldlEMEzFJKIKkLTLcdlEGEcEmIEIaI|JEdlEYEqFSIEIsJHJidlEMEzFJIEIgJQJ`dlEGEcEmFVMCM_dlEYEqFSMCMqdlEMEzFJMCMef|GWGrG{KJKfLALJf|GiG~H`KJKxLMLmf|G]HGHWKJKKKlLULdf|GWGrG{IFIbI}JFf|GiG~H`IFItJIJjf|G]HGHWIFIhJRJaf|GiG~H`MCMqf|G]HGHWMCMef}GXGsG|MDM`M{NCf}G^HHHXMDMff}GXGsG|IEIaI|JEf}GjH?HaIEIsJHJif}G^HHHXIEIgJQJ`f}GXGsG|KHKdL?LHf}GjH?HaKHKvLKLkfuF}G^HHHXKHKjLSLbdmEHEdEnMEMaM|NDdmEZErFTMEMsNFdmENE{FKKKMEMgdmEHEdEnIFIbI}JFdmEZErFTIFItJIJjdmENE{FKIFIhJRJadmEHEdEnKHKdL?LHdmEZErFTKHKvLKLkdmENE{FKKHKjLSLbf~GYGtG}IDI`I{JDf~GkH@HbIDIrJGJhf~G_HIHYIDIfJPJ_f~GYGtG}KIKeL@LIf~GkH@HbKIKwLLLlf~G_HIHYKIKkLTLcf~GYGtG}MEMaM|NDf~GkH@HbMEMsNFf~G_HIHYMEMgNOdnEIEeEoIDI`I{JDdnE[EsFUIDIrJGJhdnEOE|FLFuIDIfJPJ_dnEIEeEoKJKfLALJdnE[EsFUKJKxLMLmdnEOE|FLKJKlLULddnEIEeEoMDM`M{NCbuDnE[EsFUMDMrdnEOE|FLMDMfNNN]__@TA]AfHPIGMD_^?y@`@zBuMGMHMIMYMZM[MtMuMvNENF_l?y@mAGMPMQMRMYMZM[M}M~N?NMNNNO_l@S@hABMPMQMRMkMlMmMzM{M|NJNKNL_^@F@uAOFVMGMHMIMbMcMdNCNDNSNTNU_^@SA\AeMGMHMIMkMlMmN\N]N^NbNcNd_l@FAXAiMPMQMRMbMcMdNYNZN[NeNfNg_p?}@dA\MSMTMUM\M]M^MwMxMyN\N]N^_b@AAKAXMJMKMLM_M`MaNPNQNRNYNZN[_t@A@~AeMVMWMXM_M`MaNGNHNINbNcNd_g?}@qAiMMMNMOM\M]M^N@NANBNeNfNg_t@J@`@qMVMWMXMeMfMgMtMuMvN@NANB_b@[@d@mMJMKMLMqMrMsMwMxMyM}M~N?_g@W@~AGMMMNMOMnMoMpNGNHNINMNNNO_p@N@zAKBuMSMTMUMhMiMjNENFNPNQNR_g@N@hATMMMNMOMhMiMjMzM{M|NVNWNX_b@JABAaMJMKMLMeMfMgNJNKNLN_N`Na_t@[AOATMVMWMXMqMrMsNSNTNUNVNWNX_p@W@uAaFVMSMTMUMnMoMpNCNDN_N`Na_m?z@nAH_m@T@iAC_m@GAYAj_m?z@nAH_m@T@iACCI_O?m@GAYAj_m?z@nAH_m@T@iAC_m@GAYAj_n?{@oAIKK_n@U@jADGwOD_n@HAZAkJlODOE_n?{@oAI_n@U@jAD_n@HAZAk_n?{@oAI_n@U@jAD_n@HAZAkbcBlCUCiIQIZI~JPKKODbcC@CQCeIQIlI{JMODbcBvCvDCIQIcJ\JhODbcBlCUCiKUK^LBLSbcC@CQCeJkKUKpL?bcBvCvDCKUKgL_LkbcBlCUCiMPMYM}NMbcC@CQCeMPMkMzNJ_OBcBvCvDCMPMbNYNebdBmCVCjIRI[J?JQOFOObdCACRCfIRImI|JNOFbdBwCwDDIRIdJ]JiJlKzOFbdBmCVCjMRM[N?NObdCACICRCfMRMmM|NLbdBwCwDDMRMdN[NgbdBmCVCjKWK`LDLUbdCACRCfKWKrLALRbdBwCwDDKWKiLaLmbeBnCWCkISI\J@JROEONbeBxCxDEISIeJ^JjOEOWbeBnCWCkKVK_LCLTbeCBCSCgKVKqL@LQbeBxCxDEKVKhL`LlbeBnCWCkMQMZM~NNbeCBCSCgMQMlM{NKbeBxCxDEMQMcNZNfdxEAEgEzKVK_LCLTdxESEcEwKVKqL@LQdxEJFGFSKVKhL`LldxEAEgEzIRI[J?JQdxESEcEwIRImI|JNdxEJFGFSIRIdJ]JidxEAEgEzMPMYM}NMOEONdxESEcEwGwMPMkMzNJOEdxEJFGFSMPMbNYNeOEOW_cBPGHGQHGKKKWK`LDLUODOMgHGcGrHDKWKrLALRODO_OmgHGZHTH`KWKiLaLmODOVbPGHGQHGISI\J@JRgHGcGrHDISInI}JOgHGZHTH`ISIeJ^JjbPGHGQHGMPMYM}NMgHGcGrHDMPMkMzNJgHGZHTH`MPMbNYNegIGRGuHHMQMZM~NNgIGdGsHEMQMlM{NKgIG[HUHaMQMcNZNfgIGRGuHHIRI[J?JQgIGdGsHEIRImI|JNgIG[HUHaIRIdJ]JigIGRGuHHKUK^LBLSOEONOqcIGIGdGsGwHEJkKUKpL?MgOEOngIG[HUHaKUKgL_LkOEOWdyETEdExMRMmM|NLODO_OmP?dyEKFHFTMRMdN[NgODOVdyEBEhE{ISI\J@JRdyETEdExISInI}JO_ODyEKFHFTISIeJ^JjdyEBEhE{KUK^LBLSdyETEdExJkKUKpL?dyEKFHFTKUKgL_LkgJGSGvHIIQIZI~JPgJGeGtHFIQIlI{JMgJG\HVHbIQIcJ\JhgJGSGvHIKVK_LCLTOFOOOrPCgJGeGtHFKVKqL@LQOFO`OoPAgJGSGvHIMRM[N?NOgJGeGtHFMRMmM|NLgJG\HVHbMRMdN[NgdzECEiE|IQIZI~JPcIDzEUEeEyIQIlI{JMdzELFIFUIQIcJ\JhdzECEiE|KWK`LDLUdzEUEeEyKWKrLALRdzELFIFUKWKiLaLmdzECEiE|MQMZM~NNOFOOOrPCdzEUEeEyMQMlM{NKOFO`OoPAdzELFIFUJlMQMcMzNZNfOFOX_`?{@b@|N{N|N}OMONOOOgOhOiOyOzO{_r@?@fA^OD_c@KACAbCIFuOE_`@H@wAQN{N|N}OVOWOXOvOwOxPGPHPI_`@UA^AgGwN{N|N}O_O`POPPPQPUPVPWbuG@GRGmH?IGMHMZMuOF_r@?@fA^OGOHOIOPOQOROjOkOlPOPPPQ_d@CAMAZJlN~O?O@OSOTOUPDPEPFPMPN_v@CA@AgOJOKOLOSOTOUO|O}O~PUPVPW_i@?@sAkOAOBOCOPOQOROsOtOuPXPYPZ_v@L@b@sOJOKOLOYOZO[OgOhOiOsOtOu_d@]@f@oN~O?O@OdOeOfOjOkOlOpOqOr_i@YA@AIKKOAOBOCOaObOcO|O}O~PBPC_r@P@|AMOGOHOIO\O]O^OyOzO{PDPEPF_i@P@jAVOAOBOCO\O]O^OmOnOoPJPKPL_d@LADAcN~O?O@OYOZO[P?P@PAPRPSPT_v@]AQAVOJOKOLOdOeOfPGPHPIPJPKPL_r@Y@wAcOGOHOIOaObOcOvOwOxPRPSPT__?z@a@{__@G@vAP__@TA]Af__?z@a@{__@G@vAP__@TA]Af__BfBoCNCyKXKaK|LbP\_`?{@b@|_`@H@wAQ_`@UA^Ag_`?{@b@|_`@H@wAQ_`@UA^AgbZBlCKC_IGIHIZIuJGN{OMOgOnOyP`bZBvC[CoIGIHIcJDJVN{OVOvPGbZC@CyD@IGIHIlJ_JeN{O_POPUbZBlCKC_KLK^KyLKbZBvC[CoKLKgLHLYbZC@CyD@KLKpLbLhbZBlCKC_MGMYMtNEbZBvC[CoFVMGMbNSbZC@CyD@MGMkN\Nbb[BmCLC`HPIII[IvJHN}OOOiO{P{b[BwC\CpHPIIIdJEJWN}OXOxPIb[CACzDAHPIIImJ`JfN}O`PQPWb[BmCLC`MIM[MvNFb[BwC\CpMIMdNDNUb[CACzDAMIMmN^Ndb[BmCLC`KNK`K{LMb[BwC\CpKNKiLJL[b[CACzDAKNKrLdLjb\BnCMCaIJI\IwJINhN|ONOhOzP|b\BxC]CqIJIeJFJXNhN|OWOwPHQEb\CBC{DBGwIJIdInJaJgNhN|PPPVb\BnCMCaKMK_KzLLb\BxC]CqKMKhLILZb\CBC{DBKMKqLcLib\BnBuCMCaMHMZMub\BxC]CqMHMcNCNTb\CBC{DBMHMlN]NcdoEAE\EqIGKMK_KzLLP`PzdoEJEmF@IGKMKhLILZQCdoESFJFPIGKMKqLcLiQLdoEAE\EqIII[IvJHdoEJEmF@IIIdJEJWdoESFJFPIIImJ`JfdoEAE\EqMGMYMtNEN|ONOhOzdoEJEmF@FVMGMbNSN|OWOwPHdoESFJFPGwMGMkN\NbN|PPPVg?GQGlG~KNK`K{LMN{OMOgOyg?GZG{HMKNKiLJL[N{OVOvPGg?GcHWH]KNKrLdLjN{O_POPUg?GQGlG~IJI\IwJIg?GZG{HMIJIeJFJXg?GcHWH]IJInJaJgg?GQGlG~HPMGMYMtNEP{QVfVG?GZG{HMHPMGMbNSQDg?GcHPHWH]MGMkN\NbQMg@G[G|HNIGMHMcNCNTQCQdg@GdHXH^IGMHMlN]NcQLg@GRGmH?III[IvJHg@G[G|HNIIIdJEJWg@GdHXH^IIImJ`Jfg@GRGmH?KLK^KyLKN|ONOhOzg@G[G|HNKLKgLHLYN|OWOwPHg@GdGwHXH^KLKpLbLhN|PPPVdpEBE]ErMIM[MvNFN{OMOgOydpEKEnFAMIMdNDNUN{OVOvPGdpETFKFQMIMmN^NdN{O_POPUdpEBE]ErIJI\IwJIdpEKEnFAIJIeJFJXdpETFKFQIJInJaJgdpEBE]ErHPKLK^KyLKP{QVQgdpEKEnFAHPKLKgLHLYQDQedpETFKFQHPKLKpLbLhQMgAGSGnH@IHIZIuJGgAG\G}HOIHIcJDJVgAGeHYH_IHIlJ_JegAGSGnH@KMK_KzLLN}OOOiO{gAG\G}HOKMKhLILZN}OXOxPIgAGeHYH_KMKqLcLiN}O`PQPWgAGSGnH@MIM[MvNFNhP|QWQhgAG\G}HOMIMdNDNUNhQEQfQwgAGeHYH_MIMmN^NdNhQNdqECE^EsIHIZIuJGdqELEoFBIHIcJDJVdqEUFLFRIHIlJ_JedqECE^EsKNK`K{LMNhP|QWQhdqELEoFBKNKiLJL[NhQEQfQwdqEUFLFRKNKrLdLjNhQNQeR@buDqECE^EsMHMZMuN}OOOiO{dqELEoFBMHMcNCNTN}OXOxPIdqEUFLFRMHMlN]NcN}O`PQPW_q?~@eA]PtPuPvP}P~Q?QXQYQZQ~R?R@_c@BALAYPmPnPoQ@QAQBQrQsQtQ{Q|Q}_u@BA?AfPwPxPyQ@QAQBQiQjQkRDRERF_h?~@rAjPpPqPrP}P~Q?QaQbQcRGRHRI_u@K@a@rPwPxPyQFQGQHQUQVQWQaQbQc_c@\@e@nPmPnPoQRQSQTQXQYQZQ^Q_Q`_h@XA?AHPpPqPrQOQPQQQiQjQkQoQpQq_q@O@{ALP`PtPuPvQIQJQKQgQhQrQsQt_h@O@iAUPpPqPrQIQJQKQ[Q\Q]QxQyQz_c@KACAbPmPnPoQFQGQHQlQmQnRARBRC_u@\APAUPwPxPyQRQSQTQuQvQwQxQyQz_q@X@vAbPtPuPvQOQPQQQdQeQfRARBRC_q?~@eA]C?_q@O@{AL_q@X@vAb_q?~@eA]_\?q@O@{AL_q@X@vAb_r@P@|AMHEP\_r@Y@wAcE_P\QDR\_r@?@fA^_r@P@|AM_r@Y@wAc_\?rGGGbGtHSINIiI{JYbfBoCNCyITI]IxJ_OGOPOjPOPtP}QXQ~bfB|C_ClITIiJGJSOGO\OyPDP`PtQIQrbfCCC[C}ITIoJDJbOGOaOvPRPtQOQdRAbfB|C_ClKXKmLKLVP\bfCCC[C}KXKsLHLeP\bfBoCNCyMSM\MwN\bfB|C_ClMSMhNENPbfCCC[C}FVMSMnN_bgBpCOCzIUI^IyJ`OIOROlPQPuP~QYR?bgB}C`CmIUIjJHJTOIO^O{PFPuQJQgQsbgCDC\C~IUIpJEJcOIOcOxPTPuQPQeRBbgBpCOCzMUM^MyN^bgB}C`CmMUMjNFNRbgCDC\C~MUMpNDNabgBpCOCzKZKcK~LdR\Re_\BgB}C`CmKZKoLMLXM_R\bgCDC\C~KZKuLJLgR\bhBqCPC{IVI_IzJaOHOQOkPPPvQ?QZR@bhB~CaCnIVIkJIJUOHO]OzPEPvQKQhQtbhCEC]D?IVIqJFJdOHObOwPSPvQQQfRCbhBqCPC{KYKbK}LcR]RfbhB~CaCnKYKnLLLWR]RrbhBqC?CPC{MTM]MxN]bhBuB~CaCnMTMiNQbhCEC]D?MTMoNCN`d{EDE`FJKYKbK}LcPtP}QXQ~d{EPEqE}KYKnLLLWP`PtQIQrd{EVEmFMKYKtLILfPtQOQdRAc?D{EDE`FJIUI^IyJ`P\Psd{EPEqE}IUIjJHJTP\Rpd{EVEmFMIUIpJEJcP\Rvd{EDE`FJMSM\MwN\OHOQOkPP_\D{EPEqE}MSMhNENPOHO]OzPEd{EVEmFMFVMSMnN_OHObOwPSc?GKGTGoHWKZKcK~LdOGOPOjPOgKG`G~HJKZKoLMLXOGO\OyPDgKGfG{HZKZKuLJLgOGOaOvPRgKGTGoHWIVI_IzJagKG`G~HJIVIkJIJUgKGfG{HZIVIqJFJdgKGTGoHWMSM\MwN\PuP~QYR?R]RfS@gKG`G~HJMSMhNENPPuQJQgQsR]Rre_FVGKGfG{HZMSMnN_PuQPQeRBR]gLGUGpHXMTM]MxN]PtP}QXQ~R\ReS?buGLGaH?HKMTMiNQP`PtQIQrR\RqR~gLGgG|H[MTMoNCN`PtQOQdRAR\RwSKgLGUGpHXIUI^IyJ`gLGaH?HKIUIjJHJTgLGgG|H[IUIpJEJcgLGUGpHXKXKaK|LbOHOQOkPPgLGaH?HKKXKmLKLVOHO]OzPEgLGgG|H[KXKsLHLeOHObOwPSd|EEEaFKMUM^MyN^OGOPOjPOd|EQErE~MUMjNFNROGO\OyPDd|EWEnFNMUMpNDNaOGOaOvPRd|EEEaFKIVI_IzJaR\ReS?_vD|EQErE~IVIkJIJUR\RqSNd|EWEnFNIVIqJFJdR\RwSKd|EEEaFKKXKaK|LbPuP~QYR?d|EQErE~KXKmLKLVPuQJQgQsd|EWEnFNKXKsLHLePuQPQeRBgMGVGqHYITI]IxJ__\GMGbH@HLITIiJGJSgMGhG}H\ITIoJDJbgMGVGqHYKYKbK}LcOIOROlPQgMGbH@HLKYKnLLLWOIO^O{PFgMGhG}H\KYKtLILfOIOcOxPTgMGVGqHYJKMUM^MyN^P\PsPvQ?QZR@R~gMGbH@HLMUMjNFNRP\PvQKQhQtRpSMSYgMGhG}H\MUMpNDNaP\PvQQQfRCRvSJd}EFEbFLITI]IxJ_R]RfS@Sgd}EREsF?ITIiJGJSR]RrSOS[d}EXE_EoFOH?ITIoJDJbR]SLd}EFEbFLKZKcK~LdPvQ?QZR@d}EREsF?KZKoLMLXPvQKQhQtd}EXEoFOKZKuLJLgPvQQQfRCd}EFEbFLMTM]MxN]OIOROlPQbuD}EREsF?MTMiNQOIO^O{PFd}EXEoFOMTMoNCN`OIOcOxPT_d@CAMAZRVRWRXRgRhRiSYSZS[SbScSd_v@CA@AgR^R_R`RgRhRiSPSQSRSkSlSm_i@?@sAkPsRYRZR[ReRfSGSHSISnSoSp_v@L@b@sR^R_R`RmRnRoR{R|R}SGSHSI_d@]@f@oRVRWRXRxRyRzR~S?S@SDSESF_i@YA@AIE_RYRZR[RvRwSPSQSRSVSWSX_i@P@jAVRYRZR[RpRqRrSASBSCS_S`Sa_d@LADAcRVRWRXRmRnRoSSSTSUShSiSj_v@]AQAVR^R_R`RxRyRzS\S]S^S_S`Sa_O?c@BALAYHYP]_c@\@e@nC?P]QvSz_c@BALAY_c@\@e@n_c@KACAb_d@CAMAZ_d@]@f@o_d@LADAcb]BrClCvIKI`JSJ\N~OSPDPMPmQ@QrQ{b]CFCNCUIKIrIxI~N~OdOjOpPmQRQXQ^b]ByCeC}IKIfJMJbN~OYP?PRPmQFQlRAb]BrClCvKOKdLVL_RVRgSYSbb]CFCNCUKOKvK|LBRVRxR~SDb]ByCeC}JkKOKjLeRVRmSSSh_OB]BrClCvMJM_NPNYSLSzb]CFCNCUMJMqMwM}Szb]ByCeC}MJMeNJN_Szb^BsCmCwILIaJTJ]JlO@OUPFPnQAQsQ|b^CGCOCVILIsIyJ?O@OfOlOrPnQSQYQ_b^BzCfC~ILIgJNJcO@O[PAPTPnQGQmRBb^BsCmCwMLMaNRN[P]TJb^CGCOCVMLMsMyN?P]b^BsCmCwKQKfLXLaRWRhSZScb^CGCOCVKQKxK~LDRWRyS?SEb^BzCfC~KQKlLRLgRWRnSTSib_BtCnCxIMIbJUJ^O?OTPEPNPoQBQtQ}b_CHCPCWIMItIzJ@O?OeOkOqPoQTQZQ`b_B{CgD?IMIhJOJdO?OZP@PSPoQHQnRCb_BtCnCxKPKeLWL`RXRiS[Sdb_CHCPCWKPKwK}LCRXRzS@SFb_B{CgD?KPKkLQLfRXRoSUSjb_BtCnCxMKM`NQNZS{TIb_C?CHCPCWKtMKMrMxM~S{b_B{CgD?MKMfNKN`S{TOdrEGE}FGKPKeLWL`PmQ@QrQ{drEYE`EgKPKwK}LCPmQRQXQ^drEMEwFMKPKkLQLfPmQFQlRAdrEGE}FGILIaJTJ]RVRgSYSbS{TIdrEMEwFMILIgJNJcRVRmSSShS{TOdrEGE}FGMJM_NPNYO?OTPEPNdrEYE`EgMJMqMwM}O?OeOkOqdrEMEwFMMJMeNJN_O?OZP@PSgBGWHJHTKQKfLXLaN~OSPDPMS{TIbPC?GBGiGoKQKxK~LDN~OdOjOpS{TZgBG]HDHZKQKlLRLgN~OYP?PRS{TOgBGWHJHTIMIbJUJ^bPGBGiGoIMItIzJ@gBG]HDHZIMIhJOJdgBGWHJHTMJM_NPNYPnQAQsQ|RXRiS[SdbPGBGiGoMJMqMwM}PnQSQYQ_RXRzS@SFgBG]HDHZMJMeNJN_PnQGQmRBRXRoSUSjgCGXHKHUMKM`NQNZPmQ@QrQ{RWRhSZScgCGjGpGuMKMrMxM~PmQRQXQ^RWRyS?SEgCG^HEH[MKMfNKN`PmQFQlRARWRnSTSigCGXHKHUILIaJTJ]gCGjGpGuILIsIyJ?gCG^HEH[ILIgJNJcgCGXHKHUKOKdLVL_O?OTPEPNP]TJgCGjGpGuKOKvK|LBO?OeOkOqP]T[T`TfdsEHE~FHMLMaNRN[N~OSPDPMdsEZEaEhMLMsMyN?N~OdOjOpdsENExFNMLMgNLNaN~OYP?PR_ODsEHE~FHIMIbJUJ^NfRWRhSZScSzTHdsEZEaEhIMItIzJ@RWRyS?SESzTYT_TddsENExFNIMIhJOJdRWRnSTSiSzTNTsdsEHE~FHKOKdLVL_PnQAQsQ|dsEZEaEhKOKvK|LBPnQSQYQ_dsENExFNJkKOKjLePnQGQmRBgDGYHLHVIKI`JSJ\gDGkGqGvIKIrIxI~gDG_HFH\IKIfJMJbgDGkGqGvKPKwK}LCO@OfOlOrSzTYT_TdgDG_HFH\KPKkLQLfO@O[PAPTSzTNTsgDGYHLHVMLMaNRN[PoQBQtQ}RVRgSYSbgDGkGqGvMLMsMyN?PoQTQZQ`RVRxR~SDgDG_HFH\MLMgNLNaPoQHQnRCRVRmSSShdtEIF?FIIKI`JSJ\P]RXRiS[SdTJTzUBdtE[EbEiIKIrIxI~P]RXRzS@SFT[T`TfcIDtEOEyFOFuIKIfJMJbOMP]RXRoSUSjdtEIF?FIKQKfLXLaPoQBQtQ}dtE[EbEiKQKxK~LDPoQTQZQ`dtEOEyFOKQKlLRLgPoQHQnRCdtEIF?FIJlMKM`NQNZO@OUPFdtE[EbEiMKMrMxM~O@OfOlOrdtEOEyFOMKMfNKN`O@O[PAPT_u@BA?AfT?T@TATHTITJTpTqTrUIUJUK_h?~@rAjS|S}S~TETFTGTgThTiULUMUN_u@K@a@rFuT?T@TATNTOT\T]T^TgThTi_h@XA?AHS|S}S~TVTWTXTpTqTrTuTvTw_h@O@iAUS|S}S~TPTQTRTaTbTcT~U?U@_u@\APAUT?T@TATYTZT[T{T|T}T~U?U@_u@BA?Af_u@K@a@r_u@\APAURa_e?v@CA@AgHVMF_e?v@]AQAVLDUXbiBrCbD@IWI`JJJeOJOSO|PUPwQ@QiRDbiByCKCXIWIfIuJAOJOYOgOsPwQFQUQabiCFCoCsIWIrJVJYOJOdPGPJPwQRQuQxbiBrCbD@K[KdLNLhR^RgSPSkbiByCKCXK[KjKyLER^RmR{SGbiCFCoCsK[KvLYL\R^RxS\S_biBrCbD@FAMFMVM_NGNbT?THTpUIUXbiByCKCXMVMeMtN@T?TNT\TgUXbiCFCoCsMVMqNSNVT?TYT{T~UXbjBsCcDAIXIaJKJfOLOUO~PWPxQAQjREbjBzCLCYIXIgIvJBOLO[OiOuPxQGQVQbbjCGCpCtIXIsJWJZOLOfPIPLPxQSQvQy_eBjBsCcDAMXMaNINdTATJTrUKUa_eBjBzCLCYFuInMXMgMvNBTAT^Ti_eBjCGCpCtMXMsNUNXTAT[T}U@bjBsCcDAK]KfLPLjR_RhSQSlbjBzCLCYK]KlK{LGR_RnR|SHbjCGCpCtK]KxL[L^R_RaRyS]S`bkBtCdDBIYIbJLJgOKOTO}PVPyQBQkRFbkB{CMCZIYIhIwJCOKOZOhOtPyQHQWQcbkCHCqCuIYItJXJ[OKOePHPKPyQTQwQzbkBtCdDBK\KeLOLiR`RiSRSmbkB{CMCZK\KkKzLFR`RoR}SIbkCHCqCuK\KwLZL]R`RzS^SabkBtCdDBMWM`NHNcT@TITqUJUYUbbkB{CMCZMWMfMuNAT@TOT]ThUYUhbkCHCqCuGxMWMrNTNWT@TZT|U?UY_eD~EGEtFPK\KeLOLiPwQ@QiRDUa_eD~EME\EjK\KkKzLFPwQFQUQaUg_eD~EYF@FDK\KwLZL]PwQRQuQxUsd~EGEtFPIXIaJKJfR^RgSPSkT@TITqUJd~EME\EjIXIgIvJBR^RmR{SGT@TOT]Thd~EYF@FDIXIsJWJZR^RxS\S_T@TZT|U?d~EGEtFPMVM_NGNbOKOTO}PVd~EME\EjMVMeMtN@OKOZOhOtd~EYF@FDMVMqNSNVOKOePHPKRagNGWHAH]K]KfLPLjOJOSO|PUT@TITqUJgNG]GlGxK]KlK{LGOJOYOgOsT@TOT]ThgNGiHMHQK]KxL[L^OJOdPGPJT@TZT|U?_eGNGWHAH]IYIbJLJgUa_eGNG]GlGxIYIhIwJCUgUv_eGNGiHMHQIYItJXJ[UsgNGWHAH]MVM_NGNbPxQAQjRER`RiSRSmgNG]GlGxMVMeMtN@PxQGQVQbR`RoR}SIgNGiHMHQMVMqNSNVPxQSQvQyR`RzS^SagOGXHBH^MWM`NHNcPwQ@QiRDR_RhSQSlgOG^GmGyMWMfMuNAPwQFQUQaR_RnR|SHgOGjHNHRMWMrNTNWPwQRQuQxR_RyS]S`gOG^GmGyIXIgIvJBUXUfUuVAgOGjHNHRIXIsJWJZUXUrgOGXHBH^K[KdLNLhOKOTO}PVTATJTrUKfuGOG^GmGyK[KjKyLEOKOZOhOtTAT^TigOGjHNHRK[KvLYL\OKOePHPKTAT[T}U@e?EHEuFQMXMaNINdOJOSO|PUe?ENE]EkMXMgMvNBOJOYOgOse?EZFAFEMXMsNUNXOJOdPGPJe?EHEuFQIYIbJLJgR_RhSQSlT?THTpUIe?ENE]EkIYIhIwJCR_RnR|SHT?TNT\Tge?EZFAFEIYItJXJ[R_RyS]S`T?TYT{T~e?EHEuFQK[KdLNLhPxQAQjREUYUbVKe?ENE]EkK[KjKyLEPxQGQVQbUYUhUwVCe?EZE`FAFEK[KvLYL\PxQSQvQyUYUtgPGYHCH_IWI`JJJeUYUbVKgPG_GnGzIWIfIuJAUYUhUwVCgPGkHOHSIWIrJVJYN^RaUYUtVWgPGYHCH_K\KeLOLiOLOUO~PWT?THTpUIgPG_GnGzK\KkKzLFOLO[OiOuT?TNT\TggPGkHOHSK\KwLZL]OLOfPIPLT?TYT{T~gPGYHCH_MXMaNINdPyQBQkRFR^RgSPSkgPG_GnGzMXMgMvNBPyQHQWQcR^RmR{SGgPGkHOHSMXMsNUNXPyQTQwQzR^RxS\S_e@EIEvFRIWI`JJJeR`RiSRSmTATJTrUKe@EOE^ElFuIWIfIuJAR`RoR}SITAT^Tie@E[FBFFIWIrJVJYR`RzS^SaTAT[T}U@e@EIEvFRIZK]KfLPLjMFPyQBQkRFUXU`e@EOE^ElK]KlK{LGPyQHQWQcUXUfUuVAe@E[FBFFK]KxL[L^PyQTQwQzUXUrVUVXe@EIEvFRMWM`NHNcOLOUO~PWe@EOE^ElMWMfMuNAOLO[OiOue@E[FBFFMWMrNTNWOLOfPIPL_i@?@sAkUUUVUWU]U^U_VAVBVCVgVhVi_i@YA@AIMFUUUVUWUoUpUqVJVKVOVPVQ_i@P@jAVUUUVUWUiUjUkU{U|U}VXVYVZ_h?~@rAjMr_h@XA?AHR@Vm_\?h@O@iAUFORaVmVnb`BoCXDCINI]JAJhOAOPOsPXPpP}QaRGb`CCCbCiINIoJJJPKKOAOaO|PpQOQiQob`B|CQCsINIiI{JYOAO\OmPJPpQIQ[Qxb`BoBzCXDCKRKaLELkPsRYSGSnVmb`CCCbCiKRKsLNLSRYRvSPSVVmb`B|CQCsKRKmL?L\RYRpSAS_Vmb`BoCXDCMMM\N@NeS|TETgULUUU]VAVgb`CCCbCiMFMMMnNGNMS|TVTpTuUUUoVOb`B|CQCsMMMhMzNVS|TPTaT~UUUiU{VXbaBpCYDDIOI^JBJiOCOROuPZPqP~QbRHbaCDCcCjIOIpJKJQOCOcO~PCPqQPQjQpbaB}CRCtIOIjI|JZOCO^OoPLPqQJQ\QybaBpCYDDMOM^NBNgS~TGTiUNUVU^VBVhbaCDCcCjMOMpNINOS~TXTrTwUVUpVJVPbaB}CRCtMOMjM|NXS~TRTcU@UVUjU|VYbaBpCYDDKTKcLGLmRZReSHSoVoVubaCDCcCjKTKuLPLURZRwSQSWVobbBqCZDEIPI_JCJjOBOQOtPYPrQ?QcRIbbCECdCkIPIqJLJROBObO}PBPrQQQkQqbbB~CSCuIPIkI}J[OBO]OnPKPrQKQ]QzbbBqCZDEKSKbLFLlR[RfSISpVnVtbbCECdCkE_KSKtLOLTR[SRSXVBVnbbB~CSCuKSKnL@L]R[RrSCSaVnW@bbBqCZDEMNM]NANfS}TFThUMUWU_VCVibbCECdCkMNMoNHNNS}TWTqTvUWUqVKVQbbB~CSCuMNMiM{NWS}TQTbU?UWUkU}VZduEDEjFSKSKbLFLlPpP}QaRGUVU^VBVhduEVEtEzKSKtLOLTPpQOQiQoUVUpVJVPduEPEcFDKSKnL@L]PpQIQ[QxUVUjU|VYduEDEjFSIOI^JBJiPsRYSGSnS}TFThUMduEVEtEzIOIpJKJQRYRvSPSVS}TWTqTvduEPEcFDIOIjI|JZRYRpSAS_S}TQTbU?duEDEjFSMMM\N@NeOBOQOtPYVoVuduEVEtEzMMMnNGNMOBObO}PBVoWF_\DuEPEcFDMMMhMzNONVOBO]OnPKRaVogEGTGxH`KTKcLGLmOAOPOsPXS}TFThUMgEGfHAHGKKKTKuLPLUOAOaO|S}TWTqTvgEG`GrHQKTKoLAL^OAO\OmPJS}TQTbU?gEGTGxH`IPI_JCJjTeUVU^VBVhVmVsgEGfHAHGIPIqJLJRUVUpVJVPVmWDgEG`GrHQIPIkI}J[UVUjU|VYVmW?WPgEGTGxH`MMM\N@NePqP~QbRHR[RfSISpe_GEGfHAHGMMMnNGNMPqQPQjQpR[SRSXgEG`GrHQMMMhMzNVPqQJQ\QyR[RrSCSagFGUGyHaMNM]NANfPpP}QaRGRZReSHSogFGgHBHHMNMoNHNNPpQOQiQoRZRwSQSWgFGaGsHRMNMiM{NWPpQIQ[QxRZRqSBS`gFGUGyHaIOI^JBJiUUU]VAVgVnVtWWgFGgHBHHIOIpJKJQMFQUUUUoVOVnWEgFGaGsHRIOIjI|JZUUUiU{VXVnW@WQgFGUGyHaKRKaLELkOBOQOtPYS~TGTiUNgFGgHBHHKRKsLNLSOBObO}PBS~TXTrTwgFGaGsHRKRKmL?L\OBO]OnPKS~TRTcU@dvEEEkFTMOM^NBNgOAOPOsPXVnVtWWdvEWEuE{HSKKMOMpNINOOAOaO|VnWEW`dvEQEdFEMOMjM|NXOAO\OmPJVnW@WQdvEEEkFTIPI_JCJjRZReSHSoS|TETgULdvEWEuE{IPIqJLJRRZRwSQSWS|TVTpTudvEQEdFEIPIkI}J[RZRqSBS`S|TPTaT~dvEEEkFTKRKaLELkPqP~QbRHUWU_VCVidvEWEuE{KRKsLNLSPqQPQjQpUWUqVKVQdvEQEdFEKRKmL?L\PqQJQ\QyUWUkU}VZgGGVGzHbINI]JAJhUWU_VCViVoVuWXgGGhHCHIINIoJJJPUWUqVKVQVoWFWaWggGGVGzHbKSKbLFLlOCOROuPZS|TETgULgGGhHCHIKSKtLOLTOCOcO~PCS|TVTpTugGGbGtHSKSKnL@L]OCO^OoPLS|TPTaT~gGGVGzHbMOM^NBNgPrPsQ?QcRIRYSGSngGGhHCHIMOMpNINOPrQQQkQqRYRvSPSVgGGbGtHSMOMjM|NXPrQKQ]QzRYRpSAS_dwEFElFUINI]JAJhR[RfSISpS~TGTiUNdwEXE_EvE|INIoJJJPR[SRSXS~TXTrTwdwEREeFFINIiI{JYR[RrSCSaS~TRTcU@dwEFElFUKTKcLGLmPrQ?QcRIUUU]VAVgdwEXEvE|KTKuLPLUMFPrQQQkQqUUUoVOdwEREeFFKTKoLAL^PrQKQ]QzUUUiU{VXdwEFElFUMNM]NANfOCOROuPZUvVmVsWVdwEXEvE|MNMoNHNNOCOcO~PCVmWDW_WedwEREeFFMNMiM{NWOCO^OoPLVmW?WPWn~~~~~~~~") delfahnx = delfah.networkx_graph() # List of graphs to process graphs = [('DelFah ', delfah )] def count_k_cycles(G, k): count = 0 visited = set() def dfs(path, start, depth): nonlocal count current = path[-1] # Early exit if we?re going too deep if depth == k: if start in G.neighbors(current): # Normalize to avoid duplicates cycle = tuple(sorted(path)) if cycle not in visited: visited.add(cycle) count += 1 return for neighbor in G.neighbors(current): if neighbor not in path and neighbor >= start: dfs(path + [neighbor], start, depth + 1) for v in G.vertices(): dfs([v], v, 1) return count # each cycle counted twice (once forward, once reverse) def algebraic_connectivity(G): """ Compute the algebraic connectivity (Fiedler value) of a graph G. INPUT: - G: a SageMath Graph OUTPUT: - The second-smallest eigenvalue of the Laplacian matrix of G """ L = G.laplacian_matrix() eigenvalues = L.eigenvalues() eigenvalues.sort() if len(eigenvalues) < 2: return 0 # Trivial case: empty or isolated vertex graph return eigenvalues[1] def domination_number(G): """ Compute the domination number of a graph G using MILP. INPUT: - G: a SageMath Graph OUTPUT: - The domination number (integer) """ p = MixedIntegerLinearProgram(maximization=False) x = p.new_variable(binary=True) # Objective: minimize the number of chosen vertices p.set_objective(sum(x[v] for v in G.vertices())) # Constraint: each vertex is dominated for v in G.vertices(): p.add_constraint(x[v] + sum(x[u] for u in G.neighbors(v)) >= 1) return p.solve() # Print properties for each graph in the list print("\n Main properties of the graph\n") for label, graph in graphs: print(f"{label} | Ord.: {graph.order()} / Size: {graph.size()} " f" / Diam.: {graph.diameter()} / Avg.dist: {graph.average_distance().n(digits=6)} \n" f" / 16-reg.? {graph.is_regular(k=16)} / Degree histogram: {nx.degree_histogram(delfahnx)} / Girth: {graph.girth()}\n ") #f" / Alg.conn. {algebraic_connectivity(graph).n(digits=6)})# / Domin. number: {domination_number(graph)} ") #print("\n Symmetry properties of the graph\n") #for label, graph in graphs: #print(f"{label} vtx.trans. ? {graph.is_vertex_transitive()}") #print(f"{label} edge.trans. ? {graph.is_edge_transitive()}" ) #print(f"{label} | Aut.group.ord.: {graph.automorphism_group().order()} " ) # Compute the distance distribution from a given vertex v in graph G # Returns a list where the i-th element is the number of vertices at distance i from v def distance_distribution(G, v): from collections import Counter distances = G.shortest_path_lengths(v) distribution = Counter(distances.values()) result = [distribution[d] for d in sorted(distribution)] return result print("\n") for label, graph in graphs: print(f"{label} distance distrib from vtx. 94: {distance_distribution(graph, 94)}") print(f"{label} distance distrib from vtx. 95: {distance_distribution(graph, 95)}") print(f"{label} distance distrib from vtx. 96: {distance_distribution(graph, 96)}") # Counting k-cycles for each graph print("\nNumber of k-cycles for k=3 up to 4") for label, graph in graphs: print(f"{label} ", " ".join(str(count_k_cycles(graph, k)) for k in range(3, 5))) print("\n") #