openmpi_4_1_6-gnu-hpc-docs-4.1.6-150600.3.2.1<>,˰fje )ʪ*ug9,TB3>;?xd# 0 c );U[dP  < $( c (b m( 8 9 : FGGG(HRI]X_Y_\_]j^bvcdefluv z(,2tCopenmpi_4_1_6-gnu-hpc-docs4.1.6150600.3.2.1Documentation for Open MPI/SHMEM HPC version 4.1.6OpenMPI is an implementation of the Message Passing Interface, a standardized API typically used for parallel and/or distributed computing. OpenMPI is the merged result of four prior implementations where the team found for them to excel in one or more areas, such as latency or throughput. OpenMPI also includes an implementation of the OpenSHMEM parallel programming API, which is a Partitioned Global Address Space (PGAS) abstraction layer providing inter-process communication using one-sided communication techniques. This subpackage provides the documentation for Open MPI/OpenSHMEM.fjBSD-3-Clausehttps://www.suse.com/Documentation/Manhttps://www.open-mpi.org/linuxppc64le  :  : [   ,$   B#il    y @O L % } \ A  L V\  8  xtx _  64lD ]y ' 9  >Z b*  l 5 W  g ] lt <  R   XBrg , C }  ?   > ^ o . [ b i D"9SN# 8 W b oO ' + {") mW >c t   J "#!""= "  < 2i Z $   T ^RD"j00 = / | #G,}<  r}|% b YH z H:t $# t JQ#$  %#M%Cp *Kf xo) ^Y V w g Zw !$  / < ee } }.bh3u G > J  wG,  < ) 2d  { Y v>E!f c E#"#"""#"""#"!H" +n""!#$"""""!#""""#"""!#""jd c#s#[f') {   @  @/AAA큤A큤fjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfj592830b5d11f465483da0de56b167fdf405c7105a82c53f0f5a0397f9ee04508d08ae8d9c3ae215e87741038ac1ef7734d0d8537912e6aa6323bc4a0dccca452c80680bbd79e95190211b16d8729884dc4f1acd068ee61624adb1bdacc1f263a73cf271995c2fe9fbc02662db3c3912549f596090772b0be39b6eaf9a4048333587e1e0a37e383a72eb40460313dc91bf8dd66910a20543a6a2a00069439fee3587e1e0a37e383a72eb40460313dc91bf8dd66910a20543a6a2a00069439fee326310fe0e2c6c8f2dd1c3c9fe96a35a11503559634bcf225cff53501d88c1ce273cf271995c2fe9fbc02662db3c3912549f596090772b0be39b6eaf9a4048333fe8fb2c8a351d5704833cddf125d1ccef8cb1cc96ad1eaae1fb64009d49f9188ac297ad53918453039f7ae1ded10ff9558a3ed0a206993b9feff46a9b7d350a7babc90e891e78f763c1be260f60bdf81c71eb4c9a10b99ac888686312d87cebe6dc43b074dfb8cec3c727225164781b119f6eae9f263ebc2c63f0f07b6ae4d59fe8fb2c8a351d5704833cddf125d1ccef8cb1cc96ad1eaae1fb64009d49f9188bd97ec0268902922b95f7978712db0150899a7c8392b6ded93c758ac9098671aac297ad53918453039f7ae1ded10ff9558a3ed0a206993b9feff46a9b7d350a7cdac289afa57d4ef7ee519bf8f8c0f82a1e00a83e4b053499be4c6113cc7c77a73cf271995c2fe9fbc02662db3c3912549f596090772b0be39b6eaf9a4048333c3985e4653b9fc3795d4e375f3801df9f5bd7942d6d84f35d447c0a47bf5af5a734432af1fb7cb39d32cc19447e717d6d711c7ff6076faa3e523348f20ddf5bdc38ac12057cf10fa144d1d7fd596d278155384e25b3aca9dd98a6acdb53dbc218bf6ab10c4e23ede06d1130dca994880d5539a492ea4d8e8b914b3e4ce358490a9e3fb179b46bb954f0698bb1583f4afcecc9a32140e7c18249e2a0094dcadd61b0399f7760827b336db00e751972eee0bdd3b98cc47bfe0d3ab6e9ec68a779073cf271995c2fe9fbc02662db3c3912549f596090772b0be39b6eaf9a4048333848eae95db855e29a76319afe5c7bfa4d71c6495879ff41254d5b60ff5e7b0691b84f15403d00415d2f5737c023c101c55e22264eee9de55ec0155da15df34608b8476937a31516ac1cdaca5a80aa981c0c20542c6519485516ce34650291bbfe484a0265ed4a758dc74cc844fb681c277fb3885bb54f8f4330ee5aed206f07a5608b2639121ccd03b78a08d71fc3ab0e4ceb5883df3821baa727431b8a2cc7373cf271995c2fe9fbc02662db3c3912549f596090772b0be39b6eaf9a40483330502cc1fcd97cc82f8374d46166ef0f496e56ed50717b33752a25e684463810a8eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9637199d0c9601e3f6ba42026825856d2e35d98f6c2a894f8a76906d2a3e828a3b48eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a963b15ef663bd8bbd0361819b0418421600e6286fe20222086f2be04be2e5a8c6ca8eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a963cc792982963577853f02a6cfefb09c78adced0307df06be36d5061de03768bb407a51242d68bc72b8aae0b156f4873f6314fd9f7a6c2aa9e8bd1284abf5ac1e2e077db15d87f44df04f31ee9710678dd3cdccd93bd8ccc970757ab2523e6e3b1e259ebaf384804ecd3a26b05ecca09e1934acdd6bcb191cb882ebc0fdcd06ce001f2f84ae9463613822a2e0b8395953af489d27d5f53a08d025fa038a8d197e170d683d4d2d97d9d61eb4dd84195e07424a50f59b9f59841d93b32c014401d93139ea6074b3d8347e5817b1964873c14cf31f82a80ac3f03d4361a1a349063b5db4dcf0a4be173ceaa3d1cfc79f6944c9a918b30d9f6e54e6e9d2f415e6b7835f5fde59a09e7382215ea4ab89538cb71dfda908c80ca46a2642ab175e8b28f1df17591bf60a402ab43e234d3948a6302d8e5a8fcd386ad8bd5f87c192f6972a163b881b9c833f87006974c5535b5026bd6231123fa18028d1b722de20d316c1628c4affacd72257716fd274542cb4162600badd9358e73f6a771f6d242659180995bffe7c16dd5b7bec6737f00f9495771a77b2ee7e343df841e52563ba34cf33a0ff0bc256709bb64b13c0465484409d518811573b3d57baa912576b7aac3987f70c2987183fa66d79d360e2ea5bba344c98bfcdf15d6a3c4a20936d644a87ecdb59930a2e66b8fa84bed8b22ff57739d524145eed3d72e1f8349c2db977f9e00825c7c134ca73e933d1613b4b2776fd1a10ac2c81c9f5578eee64e329d1203f752f3772f764734a506e7b59d650097cf202178734fba92ea8995cd12d572abe3741adf932599680a89425731824caca7dd58a91520866ccc9d0b6c718edb8e5167f2fe10e56441bd3904c347ceb3a1e10f6d350cb9ad5f28f6b8ed6d760898f6f8349590caf23d8076d0a385680960b56f1ebfbc8643b710d67b620e616c456e2c35286699aa74e9bfecfa211f41b85017a210386987d52bd00cb5e76eef5b04ebdd84c99340cb35b01bb7c64d72a71b8fa34a207fb401ec27b6aa600526ec571fa9ec1983f918e2d937a6ad52293e77f89c7809eac0fe0b9eb1cbf80b81793f61f1bfbafe9a5cce2dda2cb0f7ddb836cf31175422ae227c4516b5365645d3a600e51d8cc73ecfcb1c81d33823453fd157358a83060cb4abb0cab6891abef12c2442a02255423c71c0482e07899aad4b786affeaad21bbe149d9e39065948881f1985f98b43b4e699363b139906691841a19b6c30cc184cbef224156ca3175aac646dab054aa7e57be4f0260a9085a81f7f87e16c70996c22a6993d232f9c2fb3e3370629286cea71a7cbaada5fca495b81569a33d77d2b7c497e5a0e29dc5ad6c071f1dc68fa3647c492c4d8123bbb6c5bd263ede72e63c176945b8a2a59bc10bab33cde2d792216fb191db34164abcaa878b185de4f7f00dbc7cdb9a0c39ce26de1eae4071d70c6797e7a1b2f774fdcc2ec31f458a858f5998fa252259e2daffff61f0e6f6467c127ac30220971fd48862b146d7db992fe101a5f2f8fd1ab11f748c46ef68c310964c66ea31fe7305884883b54c470b1f24582e15ff9cecbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304ac185125d7f63b5acd59659bf075df443205d961ca4359edd673f14d3222bbd86c06fce1aacd61980c7f59aa6adc1c7647bc2028e7a3bb7ef8cca5235a5343da6b6af1bad5c866299f602fb2f3c3c822dd132d8318cd5459e311c57e102c992166dc0768f6de867492a4314502a56645ce305e1151e93578708132143fcb2228836266216f68c5d5f40a207750f248e463cea25e639ef09ab3ce719844ab61ec7857ffdca088921de21660bf78bce5bb2c0bc20759c7db2797a2486443fcc4946dcd2190f3a2e9642cd60347c0a8600379491653fb4aae6ab506718e764409d8d479768b44705476b8cff228d19ba322ecc3a6ad6192d1b9cc1f38cd3fbe061d3700406dc83db154bbf5b9f57096edd9ce4aed871880c949c126a8ccee0f888cede55ab904d94560be9cddaef59e9312775ef639ba4c95828c26479aa71e9aa7816d6e50d0f678e46af4050532c978a133046bad003eafb870454dab4928d96ea6c2e546f9c46dc3c4c6ef1239ae77ebc8113c3f08badfdeff56cbc1a11227385fc5774646f4691238d080d4ec33bd76d97fb486ef3250036b75b8d21f79769dde56118873de52f7ba452976402c06ce6f9138928db9c5c4142a675cd0b764880016a709830690a364a1dc4fc00267029fd174c8dee1b8335b342ab9d2a631eb55743beaa7afd79eb8f2f5bb070e561a3d340cbf64790de7ab51c071bc56db4a89f4234953659bdcedef852fe59360cdd738452895afcaaa42fcfff1a3c63069affac62e8e179fca936d0786d4a3ba3c0618c35ad90626cdc4e42d81dba0f792a5564a4f91248a076662fc8214db071c2064c2e8afb03facd0dec1c42e8f26819ffe01b807bd30d638476f5b34102ab1de3cfd1ada69a796376f440290d0965db123b881a0c6f035fe92c839bdd8f3ce3def691c5dec9f66a6a3b93b98108dee07a0b23b04f391ae8cff381b4eb5bfff09df4ee41b708b73b90b3ba110512184ae07a3fa39a1717e3410344dfe9f107e31c4be409c0e7e41b68e642b289137ad9f7eb6e1d669ec09432198b827a23728f53fce5669d02e5b5e053573fe392fedbe48e839cfce93a5e47fdf579967f9295afebd2851ea0689b580352f0900edac99a4bd6d643c8b2b03ec205a44744c310e937a3a54049ca059c64fbc054950b1b8e581b6e81062d6a67ab5ffb81507816981cac725d754671b317598d46d8d8faa4f1656985ec1daa69e199a1b82802bf9ca309a33646ca1d55ab8ac3426db196230b1371bd7a82169ea37639c766f0f8b723fc924abc3c6703086fa480c77e93f88f0fa169134e29067cdd6ee6118e5b5c33dabc8fb3b48a527dc836f83af4ec45a5d2a128be5055daea74bbcd66c70d85211ea61be7ef3863160c06f4fd32cc2346912fe1221f5079b4fb5a12ac4bf3c04edb689563fbde562aafde2f93dee5b4ad4b6244636ee2fea4f99a1889f9c4314b0e561b6af18590e8bbbf53e234ceb4ce525d37a058b76155f98a7553ce86548e47ffb7d264c7c16901e08ccd84432a7d77c8bfe3a150b13bd6ea78394bb53c7967c666b51b00097056c45f9d00b47e554d9f1620650694707d080751cb3407ff5ed2e3ff921caecc5712b62a992d91f5f3a2ea4c4a9bd018b5218697c64b50ecaebbfa3c228be5962589bfb5dad4d687f6be9cce1ba26e73cd8bbc02fd18c9335baaad8d02f2793b030fa592271fd446e0cfe3df21dc710ee15ffe7d56db8b00687ee859378a737d0a155a8a33ae58c7f3bfc30933c236e1236063a6d1eceb7abc57957c538effb76597767cb58fc3333107355cb132270b1943e91c35925b12f416f83a7c1b5182e6b4a5e5112c3ea131e23ac29f0ecc6ee6c7ccb26e742d3e95e607b4ce3b92e40f435fc403e2eebd409da1b68bd80d75819b966fbeb82c21734aff83c22e800b4ee7fd31a89c250aa0bd3a1f0a81da816d7ba21f8c043b14f07978f799ab68dbc8bc707f738b1b391e07c1ed50109142d6cd282322fcea377fda4b605f7fedea0d1cd67d9bb448bb6fc845aa2aba407797472609f4a0188a60d754459e11f750223464d4f37e39579891777f823d51cef50d0f1d3a26812c248b0f9e9128f78603a54422f512c2b23d68ac6e5d9be9ae3cb64a0ea997e42e6b21e74a8cbb686f4744c2b284605afce9f4d9721413ce553d6219c78f2ec5ad50191ee313aa565cad15fa00f51fbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304aa04e687665109afb6f2ae09f53de6cbd8545d027fba338997ab6fee780d1cf20b35686e178f831643f79240ff6190a5f8e7bb0cc672f5c3fe316c4e8792c33518eca10bcb9e0507aec3b551eebc8ea71de71b67677142564024d95f8591ebfbe6940f0a8af32df17bcd34779a32824127a8c5298697d14ff4d9cb3b9ac07006b112000e8e6ccb76ea881d9c249f2887e6c789b619de59898326729b8c622f1b9ac70e153b68f9b1fc4296a771cc5fa89050ba2d587b874c4750d646c32aeac5b2d9614166476e7255a25c461465b05bf86966b8649197a8b5684c0e10504ea09c78b1a7ca7882e0cf8065c66284c9064c2f4a748a366932b90be57d29dd41dd5e5c038e66221a5eceedc02af80b70168d1549f6a950ff8d011558d288c5c7fab1c7abc7cfa53de62063255bc31259e0d6443f6ac615cc7b52ef8f3e3b631dea163a78558460d21297cbff1b99dc4c72139092d0651e47282c9e3d1e84becdda886f6e577d634a256e3b5ead9046565fe3e42140041541436d1e0985df6c7596f14f9095a34f16c331a667475d691e95e4b2c0e5db7e0cd995d4e3505a195e0c2e33cd605c03de316acb460d57652a05cb2a01b1cd3845c9b82c7cfdfcc4daef14318cfedd6a97956f822ae3de49ad7d438218b13e83cdea13b88d1962d3ee00e6483ba74591ef7f06a69f092e33ceaf07c67ae5c343f39520b680bda5bcfcf83771e0be26eeeb05918e644c851814d2424be5abe53ec3457cef5d54c35540a21197fe632b7d92479dd6b36afa7775e234fdbb80e3d3f784e036fb400b811f2bcc06da1ee72e31033b099e60547ff9ff7aef462aa7a2585a3ac04677a48a6eaf32e3488163ef3f5990a42f0ba27808c66b820598f5b4e83ca138434005d2ac49c2e5d2fde4a781f8cb21a542f2c15b59eca2806b000d8b4215057afaa82e240c1b268a37069f3250d26aaa087321d7c9326334f92eecca82822b6cb275b9ab74f45e7d00f51782b2d45bdb1657e9eefd2e863306c44b92f04b82657fbaf70a9153ad645d9497a859871fd36ba289d3c7ee9594d1c1cff4171f144205486d3dc68fe8bf05a573bbd9f05e7da4fb4a2a609e3c9e4a5e8c41362668a2438ba237b5030b6964d72a66d83b5e2025e5b90c635b38aad00a53d8d355546182dd3252f8070c39a3dea4a9da9a450f645655f4abe39794e19d04d914323cacb496e901db0f2254470ee57825088619585d05128b4534311e5a4d6f374af7014c24e2a56926355e84232af5b0b7043d1b5113280f5c1ba49fca83e781aa78455190fc0f5ac84e9ccf909e1c63c8ccb5ff6b6bee3f46b072772448e96016efa731e489065a2fa1f94d9c9dd2805b3635f3dbea1dd8373e9d2d0c780b0866cca6a2bf2a5ed0a566d13c072043847b1cb9c0bef2091440e851c45be4854ac70319c7e49bc5984983b625da2fa0f39d9aae17fbaa33d798924fab9d1a439acc4c59fb75753a971529992c5779262ef8d6dd65452c8a468ab42d928ff516b4edba7949a5d7d56629010b7e6a5ec19db0a5a8c8187acfe9045d3b984337fb1de8e7d209c665374a37d808c1da91a97ffe7ceb98090211f4ba1de612aa223a59131497b766879a667476154ce2a7b52af0175b4920ae9b30f6d143945659bf85938cbc42c444ed25ef258ff46e72f39d035cda0a448fca31e82467c41efc9be570c7326383250c543821d6bcd4ed1c25e6550ca68c3a5f80f52126d46ecdc0f6a2f60dbd20c0e8bf0a02a318bf3f6cc7f51eb270acc89701ecde348c0d4cfb7ee46c9632c52f32b0954dccd640cddd0b82a0cea52de5b8e60082c1faf0c0e8ac49ec372b15524304389c80ecc2fdffa3f446a3d904aefa8eea7bd8a9265ae459deb09ac832d917edbbd3a5e5da62e52b6972a28e8a836834ca316b16da4a8d35e323068d778ddf6c7d151b9c025ba645464f8ca19bc56e8f042a1e33ac9f4ee7a471a314570428a5b7c2b8c25f11992b8eb20ec4138939e2b163853dcce45e3e46bb1e73d7fa08b2c00b48ddc7b317dc6e72c4367cb5b6d6cbea1169ab7265a35dc156d078b52ed8236b502ee2b238980d551f865d7b6d5b0fa41783a23704a418f3f15177ad207de82e7b117865d095c16ec5869ed3b43285d1907098e52a3f74a5fb68a341573cf6b5b449991fee3373326e9974b28a9796b35559b5fbff600e278d5425d6ed1b429095518c4172bb7c7f053b89a62a18f952531faeca3516df3a412036ac198efbb6b2471b271a8f9c862a0432eaaf2d1b66d6854ea9072f1549a335896adb221027109d8fe319a57ed05067e8dab9a00b7b81063509aad2bbd8a9a558c185e391377a9e033e6bd7e3b72428f61c73234f298982cf942e7b6adfee5972ed27ee85943c01c5fb2a6755a8f6d47a409d25cba5c04304f8c12de6709daff645164a068d9557b9d0477eacb28482f1ced24dc87d82522a42f6b886fe57367f2b95e7501e72f3268ee7e879d45b89faad5a918fa0c6349613732141660052bf6c6583843676b08b6bd5a3d7df82936c65756c0f76f927df113fb74ee8583a4c56fbb80025063865ca2a98e341eb5c21bb99df96edef2ced969b298b19d9e09bf6af3a591dcc6680d40289ef431d5f28d708052021048beb051c5e9d155fec374b1af93aae8c569218f39e55f49f3156839b2c31f993561d38e560b73cc5f8a551fcda5e9d641f693e2caf619653fd5cebdc048ec8c5bb9c449e4c506a51c91e11e7657acee0cc9b56f8aaa78a2daf74c581372a48f1f0fc9834d34533e608ea972c7e65a73ee682e12cd25d8f0ed3aaa88f58c94d65b7c4154b212d30e1f48acbd8126acde1e79e444e58faed743e1445b7eafbbb7e31bf03b1572712fc9d29b37e301286ea1dd14e9775d1e67804e96c5e65bf26790828a386aa4620b0c6d8d9bfefa2bafe2a2750d24a74f928c105e884fbfc878eabe6af444e83019d78b9cff2a8d6f3fe59962fd6802cf5599e24d5c0cf11c1ca3a0f3c91ebe22a37d795bcfed941d43e6feaf07947837322dda2f0a147bd5d51940a284a0bd0fdc7299c8702680947602037629c3ef6b2adfea263dac0e2755dcba1fa9035abf9b2507790243cd5ee74d070f3566aeed6cbce120b4875ec2b52fa77de8a6e7ca4098a00d85ea816c444918851a10f98be8d91142cba0135b54bc62b0af412f7bf5fd2c35bb5b4076a2c478ebe01cd3d64fcd924d8cf4939c166e8d9de5c9194f16537c9c0277fe0bb3d88a5699218e7c7d12e6f7d35becc74cd705ba88ac9c2e0da21339c08d782f76ece32f1035491f81b11e2d3fb03ef354c95fe188a4cb0c1f79521484595198df818f548e47155a75b34f27b587aeb0152e49680fe9cdabec40a36c0a01d00c7523db59dcd545bf33e10d02648097a453c7886c83583ca999c48353a381d65b5b246d576cffdec49920e0918a2ff69358c621136efb2f15949f6f82f8c2bcc67ac84155a5ec3b1be8273cc0a245bb48e270a45bfa44b4afc8e29ef4a1c24e6242f6215e26d2e74454f869e4256f74016880f9cc803168de4284ebcda3ea61bb166073a9a6841671512d3f01c699bdac87c997ad9020e70a5258ea9107964e3f1ea352388d80e9454d2e2a20275180f669014ab08824123048a8e47187bf1d03cad5465f8666b2e5adac73df891edefec17dea15731ead1db44335fb7e7f54bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a89820ff5d10c1d798d926f318c392ec694b884a9c9307698d91163f042bbcf976a802cee32c8b33e28997209655fa50e0658ab60502b7fe88171e5ec56da6d172d431bf0329022ca09366017fd5e546bfb05696205901819501150534577debfbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a967dfe8a1504cf314b7dfa419d503674f8515aa10a3241e0d614287ecd5bf1f33f4395183c93b44bf0f33fad9138beed43e6b9281917c42cfc41e8517b5e73c9131fc34f883a838c90e80eacda6c192deb230d913d3c8cf3e4c9a7d1a0dda9ccefac5e8ec0570ffefdc102511b528f4ecb93f2c0e656fdbb2cf4b0ea128efcbe2be33eff54f787da575b4be3327b183e3b75fc1626a4f4a3665b847063400850faae14a8b869b27d60482487d5cf3b45f9334956a483b892a2ca936ecd509af8a81c916f2ca20deead241ffcd77e4b6cf4c458d52f3b93e0d8fcd1893b9dd3e9f45b9f96e8c6cd1a928123c61a1f350fad34357af0dcbd17eb927eab1bde0c42792b75de62f9b46c0d0236cf5b95678f433dd623fd0ff84765b4a0f411d30486725f5b45d9651d65c63a4a27a511882096bf3323b2bdc620cd1569f3d1893e57048d68e6be2f9d3da364c2bec9b2015a1c0ae072e085690d912b4b9520a2b66fa5f4283ab0e07d746e2c0b27ea36afefeb3362d50b901a85b24da969884b12df0662ed21fa5d69bb42ce7c62b025457afea1abdfbc15179f3c36eedbfc7bf71291bf1eea04d35d1ae9042f5bba91c6609b153ff178293b37c781dc1992542ab8a78b8e93442df355d38c39a1d099eaaa152b96006f3b57299b0dcbd665ee4219f991abf5af6c263744a6f1f75ebbd0a711b315cb0182b44448294d46b00cea375e828656b6f73790b9c4cc7c2a5348b77e35a9b821f0a375c8d21d8b430c0e0e3dd4f4c7abd8e07c3ff9108f23ffebdec446b3586e469442ad80c45d82b2a5f0d6c0edcac7db5501636ca56e50900372990ef15b777af99e8fac286300db01850bc5489ae83d5ef9151262c7c0bdb113fb390434ee9c8266ef9696473e1fbdaf97af386cf8cd3135c88b36a9c10054dceea4fbf49c3be36c5a749cd31f71b3aae1252b590eac03544569c15ac628d4d45046abc9be3bfde515a7bb0effd593b4cd97701c5268dbe41559c662522f4c4d9d2b59f3bbdcab1adc6e63c5bce8893aad6d89996ca5c9659a1d4409358ccc27552dab4e212c3722106d9cd47d1bc1275a945d7aadd1673bdd577c9e7118636a7164731ceb930d2433b892d45af1595a2be1ab5265403c76466388fbbc0c09bd6bc7e34cde2363bb4d25382f6d5fb9c20a9546e47f9bebaaa52ad2fd8b7f47483353c222fffcc67b0afbf5613485b1e933bef6044c873ad4bf59c4cd896eed7673a9092ebb0c1abc0bcfe250f33a5bbabf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304ac9a444bcd711f81f765c33a30a9f89ffa3ec907f3bd0d574183479c3c8e1519111260bcd61061ee0a32b7a8ac35199763e1e7f68605a3c12c533ed470e3bec2857b4f3b10dc1d749b8e05e0196ae1b04be4db29b95fe2d9421e157c43d1e82571ef5fcededcbb0b66725fbba506fc64e469b33e2ffc282eb510f15aa63023e41bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a4711b6d165c40dd89baa9aadb043ed3e56d8d2f915a7e13564ff33d11adc964c65d1e9ffc4ee0360e0abe312a18e1557c32f9af2f1bd6f944f78df0a602b65ef59429b2cfefcf527c714c28dd99646b5d9654d26912c16b4500326ccbc6b6d6208a9c7b1a269032aab2996ee79a4656c77e0ff599cbd9c2649786d974fb617d6d1b63d37c3c3339bd59f7fb6e17a88e3f42f22e43a43a96004b2f995b06af0a74cff2d38d876a3b493576aab065d7b7709bc4a30b46f92ac72caf7faabc5d4c82dcef360f2e27386a32b8cc4d0eb3ab9b08ebbf522d3a83a3013d8096e829733b2279b2dfb114728ae6ae2e3ed84f786feab235ef9affa9bda7669e6ea98f2565413dcb1a21ec838e1806258ac5b7f2290b60df5dffe5b8892c5617cbebe890bcee5baedf5a9bc7d6e5caee9997189cdea83d22a731c3aa4e95cc55aa52a717d3747c787d2d252dd2d3c3d6b8c7cf29f837b9bc49a542f39983c6448c80d29aeac9ecec56f7bb15ea2dd5ae89ee158fd1142c70ed5dc7806e96b61adfc4a9520c2e99ac65413e86aa2f1da4d201906534b999a0d8e10393543184ab2d87f718358cdf9939e9d8e0f834903d2dd3203d5c1c1235be94eb43dc85e218ed25ab2272780d505410e25908980fa00cb6c0214edefb616cb1b1d051f5c9d58cbf66c0babb46aaa48676a6dd765e3cad5bb829b91dba8cb214d823bb6cfe135dc2703c2621c136fee1286bed6cc6c4c055c6dafd91c6dd75a2f87e3143411f216fe4cc01e400f3b13f9ebe3fcfd730e09dbd5f0d9b1524b1af35cb69560ce6ec4b3a27a550ac4d4db58e5dcab6ed5ad0d6f32ac567a8a4b53424f6a6a0a0e030e3ce0ad39d59b868569fdd9bc65c3cec36ba9c04d0d418693076bff520f559bafe567ac82b0ab9e5c0035c8764ad36412c7bacfecc49592bfd7422704b9c2bc654a5a58a5a6a2b8146184aeec4222156bc396f28d8f12b91e394fefd768dbc493c9438993159b286ff70ba4d5ba20df2f83a4f64e6ab2620c1a986c875befd5a41a6435af37b7ca025d863037a08bde0d8bb5ffd7d9bbefa96fd2d0815504821821f4c660c6059d289b3305e57bc9fb46bfa046f6c2fe0babe9af4f224d4f6db2f923a9a8d765f3c68ae5fc29e816c0d3daa3563e2d6ab5a54fb06f909ea1006a00a7b2bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304abf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304ae455ea06f9856bf78cd807e7ab2f7b888dfb48905fa0f528da80dc478794b4f47c7d4e5325efa1c64431e31c31080394de1dd53279dc76906e2101e8d0921a684471b6cfb4c2290a6352fb6cd7b422b9de2cd570e9fcb4f1d2a7534eed60b48a20345b46e76d6c744ecb6f27a417e1fc83bd5e1d773402527525e0aff9f414aae91a358bb8eccdae4adda2530cd6de2d0c10cf532f5553797715fb7a2a2ea93377fc53e4e873468cde3f37d30ce0893932e218f422fa64657615c9a9bc0a4b73ec60745b3f17a7ddec9ae0df6f220cd3bea1e210520a6789caa3894020b936c6bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a2f505f7a4301d153ed13dc09d25bca7e13682e13bca7bdca0fc2ee52fe23d2d8978d3584e4da25dbb0b2a6fdb4a127d72b832f316a83595faceab0436534f235bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a4d6d2c723f8f8a8107ceadeaa2a5f9f05b9826b21ffacd9469c13bb859629beb605fda912dedb24a2ade2796ccfbdeb32f21be794ab89074df07df27e3011b9cbc068f3986679106dfdbee8e3faf469d83464edb3cf1a19e401b6b8d545def9314fc9d9809b9a8137cc4aa9ea6007217a5a4361f863b6f8140a98ec42284f7d5719e2f316513e3b165be5937f03bce6e3eb51ff745fd5326426bf0af15735195fac85ba1643103ddadde6ea1cd2142cd1eb7697b4d564c7721a149e0f5d6c8a196b6ddcc944c1a3de6fca2c9349d919b1d1c9db80c86969477815d98b1841aa24457218d74c0fc0ed5959957b33822626f6c6740047003bc5eed6934059085349ae45406d8fa1455c5d347cc10ced064fff3547d798cd0d6eddfd978f10ca7d7a71944e48f12459679f71ebbc0005fc06b73c2b7294983bee8ec24e9c747b1bc783057de90cbc3372698cc55f2cadf7f7b1d69b8b0deb1a2de2699d137d7fb2355348c5b6ecfeedf96885436398060670cc72eca8d4ebbe62298d45b01c57aaa6912ea82172d33b01ccc99de2e8c23018421a839e7473c9e75b592dfdf3ca253ea8436d50f8dc8ce5176be94f603a4af787c0172e6f87d8d1f86b63f9949f63657523a5e5eb47a5c00d88e7a1ca40064a9c9729da7f03f6341987400b81da9ccd381b3a349fbb344a8c7e3699b887bb4dd51447d38619c4d13d6cf478598029c96dfb154ab330c41290cd5bd383a0acfe850fe80d58d892804c40408d7ed7a956ee5585346e6f73722c08eac3fd6f57c934e58c5b4536d234de38818af2543c057ef534635d23ae11668b3509fdc8e7300895ad4ca59614c27c6a3483bb72852bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304abf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a00728f83f5f6f52c0dab4f40925a3284cba1a8faf661051f503422d6cb6e0728a4cf27fd5a3a2daa82720a0ad7aa7793071a6917a382843855579b2e1cef455342cd6f1e0045f26561670a968a93ba9009a18435b79f93b65c22f1906ad4c95660b79df2267e140ff07924fda661ab5a894c27d492bc16295cbcc7c4d97b935b3a14bff212e22161d6f7d55baceabba3cd5cb595bfdb3d42cbc580cd69c2a442ad98c2733b28c6dbcff67eb8944bb5e03de0197b9d2cb5931baa43250c462f6301c22e285271c3c466c237995d97cf136515191fca1210e5b9fa79068125d470e2bd16ad773902c78dbc641fbb9edd47f4e4583c6cf36677817a0903ff79ba7173311f04a1965d2ea7213ab359abbafa552a347e3d08cb2cccabb4528ed5b2c728a30d2b42e54d08feed84944eb098ee4a4e051c7515c0498829c3e1df1594c443090477708ff8c79ac5563efc634fa7d7b746b68044880cc3ca0b47bbb76c159d68915cfb88bab0ca0e5c16960d0eee462f219e092d22d303c40813b29e7cf9cddb7ba6c4a98810d88291569b8077f45d62a356401330d9ddcc111c007010cc777c4fcf11fb5f54ce9ec30c2e0be2658cb414d641d4d3860ba64545d4a9e9eba055707d4a996a6545680d4b6ddf20ce7e633d3c6e97b048e9a2864e9e429cd0e179afe208c7f9b980aa317a0a9f1cafd90747b36455724c74a82097d50a29851dba2875272008e14ccb663428edf1d8c26844c69335ce7172126d2b7922d90f42f00e82bff93c141f4b6ad2f68a6758fd6b7414c9b2c0dd404d42551557e8a5340eedf264837ce64290a3329d48c470fec0a56cab443589805d3a9c82f358c4830ff0620f010db497adda93cd0c068cabafd2f89d4b2d6c0b513765a005747ead88c480b98cd51b0774179442dcb051d20973e5667073c8d459fe73ac544a5b952dcdcffe0c9700bc37c1700a7362a6a4ebac9a5712ce1bffd384edd2f5e459c9772619df443d23bcfed21d03689ca7ed49608c9c27e9703cb8462bb5b4754e42c44e562d075623ad665fd2c1a71d12ed026f0bd0dd326d9832748c33b4adcf400c33625e420907c9ec43618c7923f0485fb7272598605b93d0858dd3704d747ccf2e5d5db15f708c5df64d152532e3c8f2f8e52bf6c3d80f4aa48af14dfee68a79e3e348c46889ac456ed533426b12d21cb24ea45f751344d488a63040cc56f93a082b270cd91303557326ee1341abed1c5fa56f8b0cf3f5e776a723cdf4b54f6868159fad40a16c152c1be80a065f16b0cdba3a5e1ec3c8952dd5be8235afc653df3341c398bd85579e31730999938c7185e5a1008c407b176db19809e11b2eb01f0475e2a998230cd9986e50b467493f7beb358718138783633db06aa40799a5a0b5262ae68d5eefe393d4743d0f2d16179ff21d605754e3a0f28e52c38b7eb060da022a77897bde4e71f20263e7627a99fb8eca13c94a3693f6d076464fb35e81137f2973b7291f1bfcb1fea05bccbc426cdd6eb4ab2df5334c6a5b3647e34c3e3b639ffc247fc9a94bc63fe0057d609827806e1d3cf8017d4823b0593e694c7d8f3e21192862f39b13e91d7cf238302aa3e476ccfae1e99e6cb7fc687802c0108d369161046629a82da4e603f8012307dfe3346a05e409fb47766cd225a6a8aa3899f68c211d5e58e87d2b42e8f3334d9faf283aa5adc37009f68fd1cbdd986770a4573258ae646439d9108c2cf03643698255c1e65f4bd47e18181cac598f9321261ca65a47c657a2453c905a1f649d7a499298003a5e7fb456b16e0a4b221163be7e57e2c3018ae8a13abb4e483f2bb6f18c7e17d11a207ff58ca28051ed9fa470ec7eb7875fd82e8152d95748cfe7a19bb4adc66aa90060fb2c56763a98cbf0808c9ea0a3d1275080348908512348d8136ed61818fd83fa70ae4853e354086977fedb97b9d8b0ad3314f542132c73ab0fda35b20fbc0ba1dea14dfd0bdb156fe6621466f2c3ee6243a7940fdda664399e548219c953c20599c44be4f2f263565634d88f15588a5c28acfd38490bda74e23eea8d1f781c08a845ca2168329e339c0f344d3500bf515b50e80feab8933958f53bf9076b8f2bd696332efe5fe7c6879ba8a6b76115d65f2b1e6ee2014a5abe8b5e80dc9357ddd4aaff230a5952b9fc3c38cb5691a3859535993067151d913cff9e24ed667fece25d4903f79835b716673b4e16a02e15613cf8f93f6b7c83f44da8c72583d495fcb78c1a5569934b919d58d7fa3ca6d6df3b43d87edd3d29266d38170c149cafdbe6c403aa19925c10a747240af0bb18b3cf675ae32b1d80004bd9a8baafe85c5aeeb6f208ef06b303d8d5dbbe5b2c8cac848a8ffa3b69741a87536c98a5275cd65102f0307e7707a40dd915e4896e0113eb7c78d4464018eacbc030cd6bfcb39de0ce35e16cb7a4a0ab2f4755c3533229db731c58ad6b229fbf6927f71c6a7ec5f5a17a71dcef243be9646b28b20cc4212b65723161ac0dda677b7a850bf4873d1e2825bd7842ea2645b502c299bab21c6086fc86d61d9608f6668fcf7c1233adbdc765290a29cb3e25f6fdc22d762c5d12e9e35a63fabf9267651e4d6145878d8689abbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a952542304d316741ec22308b0e1e96c75cde2ef1da5668c62bd5446a9b5682e533a664acc7f7f257a8369c01b93d0ebb8656eecf6d09b359d41ac462c1ecbbfb5c625e1d5f299ad7386c984f5467630af8f3a0ba4132715322b539f8b451b036add31f13aac4758ce7e5c3cdaf8e829185ed84c9d962a3a766dbf0718f5fe1214bd4e8321e465f73131a5f84155720b3f4ff757293ab46fedd32595da6d99cb35767c4e214ffc5d29109c87686acda0232fa3e87288391d92bd0c86c09687a0cee5c5baed03222b28a19588331a0bb52ada0ec313579bee395f4b5fad228cf7aa8cb7d3f5fe04a791a0d32b67205f4dec1648e7b8d81e4713f7135d9ba543c2d4b59188730b0b3e02ffe0be3cadf9810fa33307d54009ff1ed07b7a95d65b4d0102de420709fa6f51be7cb35252a5a38131ba3aada830b90c9cb321ebcecdb4bd2812343387b30f6613630f62b57f71b9051f54a709d1873e77f62851481766a6dca5c0b0fa4a8ea6b4979d35d262909d0face2e3346d261f93618f1c21b9559e0aebea67f0237a159bb493e132b2c1d5b0c09d02bf466e0dfc2e30e03002e52e728f5ce2e35608f6f3c8d84f273a22ec61a856b43702e1d124c8c76b51d9f6f5a2d2cd8c8351c733f90d49715c64c0df4fca9fa17d8e2703bc9004b55f8bb682fa36cb4b8ebb03301234f1abd7633037286ef0d1f7361da0e94cd7a5ca67d647e798b5650a6b5cf3212c72e084d82e5403cfdc88f6fba38d142939a70811b73bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a7fe3a8c4932d1a363329adf5f6bc474e20064f59253b9fdde29946b8a4e662966b4226e030455dfac64dd658aaca678c9e218578ce441061cbf1609293bc31b1774ad5fcc9bd6ef0e95ab8e9514e10bbc199d950b42b3b8058a9cb5e276e599615036d71f8fcf0f545e8f5683c37733cef9a1d50e771a80068358286f55502b71aba7eb7fc50bc713822a5a323e2c68300a89afb689bf3b8d9bd4d2a70ea51ea384898d8d4deeaba0a1fa55f99588c9076c47af84f87be9c7d0699208a14bd3c9a69609113155a09e9dedfea3b3910bb025d2d9fe0ba7005ecc9691d2d7341665a63489850a3e391d634aa9c38a2c552cf59785f0c4f2fd2d9d65bab79032aeeb04eb398eabea873154f8fe1b258493c445c7c86697b008497068b2862df1dfd966ec6dea5aa6f71e3d3a45878dba2452c38b220196e79b1b6b63f2073bec74f9680c5825132b9fd3fd32cd231d9636688431704e9d5a56a89c952a8653cb7e5255c1b18b18ee8d3bd63d3f18bbde3aba9e1020fa957a5eb913f3f9571e7d02d970c2f56451466a28b1887e4375d7279db5bfc7ff514e5420618baeb7bf46cf8361dc223575ba28354804e8266546ca46ee5c0f127850ea24bd1c3544a627e47d57df5b54cacb105ad4887fd386b54236aac5f963751aa3a8a8ca3a3d69a0cbfda3c84e53f750d7aec5a147c6f7618f1bbe5ee9c27083a68f046dbea6b0b186533552560cba54c72e066a48acccd0752962c00d707b1e7fbe3a1f9e79190a5c3ea6c1b9ca82a7b516e800fcfaed5bef67a8c0c297656837bafee470d5abacfb0993e07b1f514acb667aa3d27becd737f30653013877fc0f6477257b794353d98cf7ba89cc266538e340961cd6079d715b8d0d2846df8cb08b81a531735ca77c7382a1a10351b9970f158558beeb595302d7e44a85965c9bfe7f5b0cb07b543b37c41fa3d0dea908d9c59db7c77eacff07ddd6dea6f9d27904ffa7efd6d1e6f863047e1fee8b3ee2d227829a95c7966134f18db3ef8fd04ab14d260ddc6eb6fc52e37ee7f973020e12776d26adcf781dd656c0fee1b8d38d3d9ee2d8aa54745317f3bd582837f5403ca4f2ce2d1a620bc842017fe8713ef0702437755aca949dadc2af3330c863394bb3477e0deb4af925d35473ca418fba044db46bc78c2b7a1f467558ff22704242eb894924a26dffe080cb9fe3c9cbfb2690c6cd737d3046e674442c482d912f782db892083f57d8c70c9c9a0493b2ce77ed1d70a71fbcdb8e95d3763c43d9fda28d144a5fd128bf64ec8c4cf0bbaed5b71f439e330edbfb93f37c1ac74b93dca484860fd20212efb1f2dda1edb0006dd4e7833709e42c10bc95a8b44507bdc3fe8f1ed0f151711cc65e64d04a7fa598c09fd3b3714bd2431479ab7dc5a3d88c5d4d8b65b2bdc6eed62f304e1e0db0c007bac399a4c9db1f8bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304ae22278e5bd7c578bda17e63f84bebc3c52cf669d00fc53af619653a1eadc4c608b1741e478e88485b4eed901ad1904297f00f36594955f29b39ab194f29da2cce3d34558393da4b3af3d13886029c657ac086bdf4e3d162220443822e93b71150515e407cd6323b94136c227da6321286f53a05606cc0d075bf18657399b99feb1c748eb54dd9c72eeb385765c8a9ebc4faef1ab136de34dd98e0b60145c28530a9d4811e5f3e9c792e1129c7586e2ef1c8b1845deee2dba85f7118b275635d67a19b92321c0aa71b5d5734dc2495cb888447a3eabde9d38ea3145c9d5da1c14871bfac1a5e204f1b30606f41b523e74c9764226974c38bd384d8dfaedd596bbbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a59b16367546239df1d2a1f2f0a7437c5960c179022985d22a8303260924aca00e74321da0df9f0c2a5d3aa85c8175cadafa48bf29dcaae5464ea4137488eb8b4b1a381714f1aa091e8263765f859f281787e01f57dce157bce115ea638505fbf8a3236aa4da38656827e504fd017d16b528d827a3532b55db6ba7cb066dc5f8c6cdc34400453cdf293aee7aaf366842be48b139e49114bbd27fc4a2e3d0801e8cad5c1f29d680eb97413fb589ebc612f6898100079625c0cbd5183b9200adb9b0fdf9a7ff56e110184416f551a66ca6d5254601bfbf0eac6a8f61fa0217f2bfa5abbd1bf9cb21ccbaeceec8444680475f4963dba5c99f9cf0b74c9920193551fcc9b737a447ecc548f6c47c7e486787a135920916d523314215c5f8ebc1fe1c5ef4b96a8a0d2a28395947c5dcbdde7a1f6a086366e9eef7a65d30dd20ec6279e25fe411164ccb9ffa6c9bc8cabe25fb37f262bc2e08f10f471988dca3b520761b6f054830c0718570338902c7c70639128f7f31c57405259628e3e87c78ad383c1f2e3486ccc02595ecae40748bb823cec7ae629c49a1bf27090221bc918cc750f5f536dd6fe85e5565ca0da979e6e22386f45c030fc2cd6405ac7a9307c14005decdc968d5e136175369c08771d7413cca2e3a7c51b5c1724b3a8dad667902ce44abc40a186a9180c256ca885c326f0a6358d26df54819774ea6dd47412a052a35323814a0b6bb9b3e061098225152115028efac63570a126779b8dc725eb052e8e7bdc9e3adaf265429298bfe7e18abea0479cd3a6a493decfce423a0990a8ae3539df548ad0c0edf2c82872bc921d55de0883c1d34778ff8338523b44263c4367e00fd1c9cc30aefb7577a99a24ab580529fb039148d0822ada33d9be82c54f5cca910bf176990e253392fb99014449dded37d435e779b94f3e0b478fd187577e4f4450c4e908b393659865a1f95e4938e45716a9073225cb900e17799ae5f5345384063a87635ebcc38c7557dc3980b85660c5478a6837929dfdd6d0497f90eb40e21e729962cc1cb2f465eaba11f13c4d1e178deb76da1edc49205941d75a5adee8b2ce6e2ffc835f417c3e776c24daa2a5def26632a08ce234158924a90005146232a4667e00cc7b7539fda68bbba5203c028f2861fccef7f141befbba95f4f205bcd34c9f573bab0bdaf1660eaf4eaa7680a05be84616462e2163476a3de31c7763d8cec5f2933d72566e99d7966d3703b613665d79710beb6fef845ad1236cbcd9f9969c004cf660ce5699e0174b7f59ee5859ab7edd24d907b0649b1c61689a222188addb755e181a23d3c04be4e79efb97129829aa3ca4949aa36e8c637292e51926924f8c75f55558fefaf491eb718c7fff5cfc1cfcb238025eb0086967b2eda2a03c6f5d2fe9fa805bb49ff2dcdcc9ce42cade7e4c57f2c6b07801d01162ec366571dd9e9b1d46971d745b8020adf3f6defbb48a03bc7493e5fcf9fbc41f84409c4b100e15c3801bd486b3271d83778473690cff11816fab400d3cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b465f6a633704773e0fd78e7f7c4b5d4c7f2fa0f36612bfae07cf44e95d359b89355d5a2f817896f00d6021ebc4db0986c94aba56afac8bfdee7e0f74fef7141e573cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b46d771af0c81cba8f093814535ec9252e8368392e361d362f54f66bb731d18b48125dbf6beb90f83efd5102b9d8df0651fb90b1a6f15031ba59728a099453e3dec25dbf6beb90f83efd5102b9d8df0651fb90b1a6f15031ba59728a099453e3dec25dbf6beb90f83efd5102b9d8df0651fb90b1a6f15031ba59728a099453e3dec291701bc6595d78254f03db2ddc16a656848a7aa3d9fa32bef3a5fca29de7e8dc49e117c767c4fcb8bbe8848686739994baec50422d09e55f6c778522a94f120351f93094ba62b96d5cedeb6cc944b9c849b22b69ba56bf0f8ce08abed8581b11d5f8b3716470c39ac414f069fa24f6e58399371a16df38ec6b80dd0663f5247965e0f71520d5a2420ddd875471ce255b46faf58aecf4384f3ce10e8640d5610fadd63f49b6124e5cc2f52d96ddaa05d45b847168c9204cc01da9687c3f2cc22f4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f61b67d5e135ddaf068b9e2a12ba9795db8e85d59e0f9da6e81f87a5528fb8d7af74ce11cb84713472b787ef03697e673ecc0137add01301a5c2a256f34e04b8e25c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970095e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f5e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f000880302e4fa88df786388982c767bacfdcc520e246bfd8b65036e6db2009e9ab8ea2b6f3564b56d1f6d3457cdb2a8d9b19cd13ae0751f403e603bb0ef478d86487ba5aa868c595eded2018ff4088fc2d9bc1539d15dfb94d2606db0de619ba7eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e92c37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c2435505731767eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e92c37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176a648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b95d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfa5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5e3a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e2452156487ba5aa868c595eded2018ff4088fc2d9bc1539d15dfb94d2606db0de619ba6487ba5aa868c595eded2018ff4088fc2d9bc1539d15dfb94d2606db0de619ba83907c122e8b7589cb24b268f1166969bf9de4e73542ac0101d01579c6258b531755e909f125075a0d00ca42c57d76b4cd83a9517a6ec2691df464b3f7cedd84a648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b95d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfa5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5e3a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e2452153cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b46ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6f4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6f4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3a2239ac9b263950aca8cc378746f604a8da61da03621e355bbd34c0464917ff83326ebef8367a0c19b913fce0982888fccff66d5e142641e225d6d32cd8fddecae7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfe7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfe7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adf61ca902f2e4c6c5b1a635e998780b46f05d556676325ab9857da2613cc14d59f3478306c7935aa01083e8ae6492331ce34ceed026877ff47252bb19900621a937b1725d2b1c0de368e6c16c5b47fcdb1a03f8a351976d3a8514da29de3dba70c719cca7092539d90ac8c1d20cfa8c799465deef6c4ec18ca9398442dc0d59531052104b69d3bfc635531636f1b26324acc77964035aa0e35d43af23086b3de27b717f1d13967b17fa7e1d072b51e38f9341dc7cc603e66a8a866eab4bb39d41f258d15f8c568d732dfa1ce0879bc33525c994476dce4eaa3955d055356cf60c8389204ba5eb6766df7fa1f2cb1cff266e3cfc7f02113bc0b5027919979b9bc93e8867e069d1373f77bee67047bf1c6e6696655147079e985158dca3d7c8326cc5d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfe6fa68b2cb38e80936386e5bf4760d533a42b1bf0c4c617ed57406221759b110a5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5eace676a2f899b95d04229e9e0f2f67ae78861176133db36fc0660b710db666603a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970097decbf1794f0c5b8e39c65fcf1c4bfe7354d66d2339a39af56a482c2f6f6d5bac37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e245215f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcfa5daff91bb87d4112651e32b8b9740ce55ebe8bf336822fabcb4ba5de17cfeaea5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3a5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3a5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec37c73a9cdf56a9a0b2edc3b396d39b44be34c2e38900bffd4b283944b44a39013052104b69d3bfc635531636f1b26324acc77964035aa0e35d43af23086b3de27e7d218683784f07912c232868f13268231683e231f99fcb4f1c310a145106baff877f8a60e492f66dc99ca8f83b5dd34c2b917ea43cabde4dd538e8d81d55e6ca648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b99dabca4d89ad83986a828905c3be349d3e1d576eb3368fabecdfb4146c0077885d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adffe0f5394684361c434e4020191d94a10e285e1310343d90063cb12c07e1b182da5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5eace676a2f899b95d04229e9e0f2f67ae78861176133db36fc0660b710db666603a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e245215f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcfa5daff91bb87d4112651e32b8b9740ce55ebe8bf336822fabcb4ba5de17cfeae5d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfa5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5e3a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970097c73a9cdf56a9a0b2edc3b396d39b44be34c2e38900bffd4b283944b44a39013052104b69d3bfc635531636f1b26324acc77964035aa0e35d43af23086b3de27e7d218683784f07912c232868f13268231683e231f99fcb4f1c310a145106baff877f8a60e492f66dc99ca8f83b5dd34c2b917ea43cabde4dd538e8d81d55e6ca648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b99dabca4d89ad83986a828905c3be349d3e1d576eb3368fabecdfb4146c0077885d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adffe0f5394684361c434e4020191d94a10e285e1310343d90063cb12c07e1b182da5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5eace676a2f899b95d04229e9e0f2f67ae78861176133db36fc0660b710db666603a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e245215f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcfa5daff91bb87d4112651e32b8b9740ce55ebe8bf336822fabcb4ba5de17cfeaeaac5c31ccd5c3a07ed92b6bad9ee21c9031b6eb01c6fd3d4d6ad90f8bd6b6ab6fc26dc575a7058af23fe093876e75baee17c6844a1b8bfc3acce84f0537090bef1f7e84fd1500ceaf3c5a029750947cfdfe5246b5d505c59b3c10ba9c127113f285654d0c3df267c1b3a5cf2c076b8dadea537456f42205a539098b2718dc7e572b642c550ea2d3892fe4dedbc943bd13784ecde5ff1d11f6a03588676375f1084a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970095c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a69700984a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a69700984a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970095c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a69700984a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587ee6260c08b3e36162ffcd1852f42466707b23105b5fb09f6bfe38314f703eae3898eca84fc6923983c1af532bc1d33169899b5c92fe75621a9e5dc13c4c3af83a3cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b465e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f5e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384ff0452c1270935ecfced05be0470d3aa997f5784a4483798e7a3ac5679744dc283039ced0061c9da0bf0c7acea2c0b1898a4d9b9ecbe8816c3dc5b3d3652879615d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6eb434c05f604bd26a755ba249339f7cf6f97596c299238d598e41b48f038a0fe51086a44c3b284a9fdb949829677c0444a5f64dbec62226f0628cba350a43919ebbad0059f0614b0011ed91a8d003aafc71cc1fcbed379537316d839ba5a99a918748af9dd04e4106ed3fb531ecb17d753dcdd30b9d99445aea245348d113213869b059a1c00d216d13ae111c38ba49d268852545a7fe493fcdb40a6af720fc23a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca3618250811df931331d92fa66ab3a50418183f7a63760c67540384e6b1cf91c2b84a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a697009bd99ea561fadccd3bfc46ffff42b2530ea7a65909ab2554f6b5c50a7f0936315f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcf462a13d46eb66fbe3cda804c45c681b7a4738d756ec7369a3b00e37945b0344728345ac2b7ff883f742756791ea62e8c78b303925a443c1b49714ef33c935432000880302e4fa88df786388982c767bacfdcc520e246bfd8b65036e6db2009e9d9a660fb1d71e71fe63e46517eac812923e42350ea0b0c1851fbf41c89a767275e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f6cf055e63d9b5f1f656650bdd2c2e1a77a2dc101c8d29000b1517b80cffeb8a0f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcf3cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b463cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b462f6288a1b58376f3f46ad30b27b5a806dc065453d3a98435707352db0c80fb28a16c48d5c6c6f0e5c42be5fb59fe79b97d219326ebf36d2173e9da74ea8e399c9166805782398ae0dc4ea614810f331bfa88cca7750a9ebb05b86e394e8b700342a4b41a2ad474734f472406119dc49423e6e6c111e95b61d4473ab79be498773eb4859edbef6d6416f06fbc650b60c3ed272f43ebac835c7c59b27ba900acda14d6695e2f9260511ea2a30f581e64604c4bbf631ef7ea0a7095491ffe883091004c68441d3f2fc055e0ade7a4e80ca3e38eae024b9487ab10c3489fdbd411e2mpic++.1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenmpi_4_1_6-gnu-hpc-4.1.6-150600.3.2.1.src.rpmopenmpi_4_1_6-gnu-hpc-docsopenmpi_4_1_6-gnu-hpc-docs(ppc-64)     openmpi_4_1_6-gnu-hpcrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.1.63.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3e%=4.2.3. - Fix minor issues and add some minor performance optimizations with OFI support. - Support the "striping_factor" and "striping_unit" MPI_Info names recomended by the MPI standard for parallel IO. - Fixed some minor issues with UCX support. - Minor optimization for 0-byte MPI_Alltoallw (i.e., make it a no-op).- Drop support for TrueScale (bsc#1212146)- Update to 4.1.5: - Fix crash in one -sided applications for certain process layouts. - Update embedded OpenPMIx to version 3.2.4 - Backport patches to Libevent for CVE -2016 -10195, CVE -2016 -10196, and CVE -2016 -10197. Note that Open MPI's internal libevent does not use the impacted portions of the Libevent code base. - SHMEM improvements: - Fix initializer bugs in SHMEM interface. - Fix unsigned type comparisons generating warnings. - Fix use after clear issue in shmem_ds_reset. - UCX improvements - Fix memory registration bug that could occur when UCX was built but not selected. - Reduce overhead of add_procs with intercommunicators. - Enable multi_send_nb by default. - Call opal_progress while waiting for a UCX fence to complete. - Fix data corruption bug in osc/rdma component. - Fix overflow bug in alltoall collective - Fix crash when displaying topology. - Add some MPI_F_XXX constants that were missing from mpi.h. - coll/ucc bug fixes.- Replace btl-openib-Add-VF-support-for-ConnectX-5-and-6.patch by btl-openib-Add-VF-support-for-ConnectX-4-5-and-6.patch to add ConnectX4 VF suppor- Enable libfabric on all arch - Switch to external libevent for all flavors - Switch to external hwloc and PMIx for HPC builds - Update rpmlintrc file to ignore missing libname suffix in libopenmpi packages - Add patch btl-openib-Add-VF-support-for-ConnectX-5-and-6.patch to support ConnectX 5 and 6 VF- update to 4.1.4: * Fix possible length integer overflow in numerous non-blocking collective operations. * Fix segmentation fault in UCX if MPI Tool interface is finalized before MPI_Init is called. * Remove /usr/bin/python dependency in configure. * Fix OMPIO issue with long double etypes. * Update treematch topology component to fix numerous correctness issues. * Fix memory leak in UCX MCA parameter registration. * Fix long operation closing file descriptors on non-Linux systems that can appear as a hang to users. * Fix for attribute handling on GCC 11 due to pointer aliasing. * Fix multithreaded race in UCX PML's datatype handling. * Fix a correctness issue in CUDA Reduce algorithm. * Fix compilation issue with CUDA GPUDirect RDMA support. * Fix to make shmem_calloc(..., 0) conform to the OpenSHMEM specification. * Add UCC collectives component. * Fix divide by zero issue in OMPI IO component. * Fix compile issue with libnl when not in standard search locations. * Fixed a seg fault in the smcuda BTL. Thanks to Moritz Kreutzer and @Stadik for reporting the issue. * Added support for ELEMENTAL to the MPI handle comparison functions in the mpi_f08 module. Thanks to Salvatore Filippone for raising the issue. * Minor datatype performance improvements in the CUDA-based code paths. * Fix MPI_ALLTOALLV when used with MPI_IN_PLACE. * Fix MPI_BOTTOM handling for non-blocking collectives. Thanks to Lisandro Dalcin for reporting the problem. * Enable OPAL memory hooks by default for UCX. * Many compiler warnings fixes, particularly for newer versions of GCC. * Fix intercommunicator overflow with large payload collectives. Also fixed MPI_REDUCE_SCATTER_BLOCK for similar issues with large payload collectives. * Back-port ROMIO 3.3 fix to use stat64() instead of stat() on GPFS. * Fixed several non-blocking MPI collectives to not round fractions based on float precision. * Fix compile failure for --enable-heterogeneous. Also updated the README to clarify that --enable-heterogeneous is functional, but still not recomended for most environments. * Minor fixes to OMPIO, including: - Fixing the open behavior of shared memory shared file pointers. Thanks to Axel Huebl for reporting the issue - Fixes to clean up lockfiles when closing files. Thanks to Eric Chamberland for reporting the issue. * Update LSF configure failure output to be more clear (e.g., on RHEL platforms). * Update if_[in|ex]clude behavior in btl_tcp and oob_tcp to select * all* interfaces that fall within the specified subnet range. * ROMIO portability fix for OpenBSD * Fix handling of MPI_IN_PLACE with MPI_ALLTOALLW and improve performance of MPI_ALLTOALL and MPI_ALLTOALLV for MPI_IN_PLACE. * Fix one-sided issue with empty groups in Post-Start-Wait-Complete synchronization mode. * Fix Fortran status returns in certain use cases involving Generalized Requests * Romio datatype bug fixes. * Fix oshmem_shmem_finalize() when main() returns non-zero value. * Fix wrong affinity under LSF with the membind option. * Fix count==0 cases in MPI_REDUCE and MPI_IREDUCE. * Fix ssh launching on Bourne-flavored shells when the user has "set - u" set in their shell startup files. * Correctly process 0 slots with the mpirun --host option. * Ensure to unlink and rebind socket when the Open MPI session directory already exists. * Fix a segv in mpirun --disable-dissable-map. * Fix a potential hang in the memory hook handling. * Slight performance improvement in MPI_WAITALL when running in MPI_THREAD_MULTIPLE. * Fix hcoll datatype mapping and rooted operation behavior. * Correct some operations modifying MPI_Status.MPI_ERROR when it is disallowed by the MPI standard. * UCX updates: - Fix datatype reference count issues. - Detach dynamic window memory when freeing a window. - Fix memory leak in datatype handling. * Fix various atomic operations issues. * mpirun: try to set the curses winsize to the pty of the spawned task. Thanks to Stack Overflow user @Seriously for reporting the issue. * PMIx updates: - Fix compatibility with external PMIx v4.x installations. - Fix handling of PMIx v3.x compiler/linker flags. Thanks to Erik Schnetter for reporting the issue. - Skip SLURM-provided PMIx detection when appropriate. Thanks to Alexander Grund for reporting the issue. * Fix handling by C++ compilers when they #include the STL "" header file, which ends up including Open MPI's text VERSION file (which is not C code). Thanks to @srpgilles for reporting the issue. * Fix MPI_Op support for MPI_LONG. * Make the MPI C++ bindings library (libmpi_cxx) explicitly depend on the OPAL internal library (libopen-pal). Thanks to Ye Luo for reporting the issue. * Fix configure handling of "--with-libevent=/usr". * Fix memory leak when opening Lustre files. Thanks to Bert Wesarg for submitting the fix. * Fix MPI_SENDRECV_REPLACE to correctly process datatype errors. Thanks to Lisandro Dalcin for reporting the issue. * Fix MPI_SENDRECV_REPLACE to correctly handle large data. Thanks Jakub Benda for reporting this issue and suggesting a fix. * Add workaround for TCP "dropped connection" errors to drastically reduce the possibility of this happening. * OMPIO updates: - Fix handling when AMODE is not set. Thanks to Rainer Keller for reporting the issue and supplying the fix. - Fix FBTL "posix" component linking issue. Thanks for Honggang Li for reporting the issue. - Fixed segv with MPI_FILE_GET_BYTE_OFFSET on 0-sized file view. - Thanks to GitHub user @shanedsnyder for submitting the issue. * OFI updates: - Multi-plane / Multi-Nic nic selection cleanups - Add support for exporting Open MPI memory monitors into Libfabric. - Ensure that Cisco usNIC devices are never selected by the OFI MTL. - Fix buffer overflow in OFI networking setup. Thanks to Alexander Grund for reporting the issue and supplying the fix. * Fix SSEND on tag matching networks. * Fix error handling in several MPI collectives. * Fix the ordering of MPI_COMM_SPLIT_TYPE. Thanks to Wolfgang Bangerth for raising the issue. * No longer install the orted-mpir library (it's an internal / Libtool convenience library). Thanks to Andrew Hesford for the fix. * PSM2 updates: - Allow advanced users to disable PSM2 version checking. - Fix to allow non-default installation locations of psm2.h.- openmpi4 is now the default openmpi for releases > 15.3 - Add orted-mpir-add-version-to-shared-library.patch to fix unversionned library - Change RPM macros install path to %{_rpmmacrodir}- Update to version 4.1.1 - Fix a number of datatype issues, including an issue with improper handling of partial datatypes that could lead to an unexpected application failure. - Change UCX PML to not warn about MPI_Request leaks during MPI_FINALIZE by default. The old behavior can be restored with the mca_pml_ucx_request_leak_check MCA parameter. - Reverted temporary solution that worked around launch issues in SLURM v20.11.{0,1,2}. SchedMD encourages users to avoid these versions and to upgrade to v20.11.3 or newer. - Updated PMIx to v3.2.2. - Disabled gcc built-in atomics by default on aarch64 platforms. - Disabled UCX PML when UCX v1.8.0 is detected. UCX version 1.8.0 has a bug that may cause data corruption when its TCP transport is used in conjunction with the shared memory transport. UCX versions prior to v1.8.0 are not affected by this issue. Thanks to @ksiazekm for reporting the issue. - Fixed detection of available UCX transports/devices to better inform PML prioritization. - Fixed SLURM support to mark ORTE daemons as non-MPI tasks. - Improved AVX detection to more accurately detect supported platforms. Also improved the generated AVX code, and switched to using word-based MCA params for the op/avx component (vs. numeric big flags). - Improved OFI compatibility support and fixed memory leaks in error handling paths. - Improved HAN collectives with support for Barrier and Scatter. Thanks to @EmmanuelBRELLE for these changes and the relevant bug fixes. - Fixed MPI debugger support (i.e., the MPIR_Breakpoint() symbol). Thanks to @louisespellacy-arm for reporting the issue. - Fixed ORTE bug that prevented debuggers from reading MPIR_Proctable. - Removed PML uniformity check from the UCX PML to address performance regression. - Fixed MPI_Init_thread(3) statement about C++ binding and update references about MPI_THREAD_MULTIPLE. Thanks to Andreas Lösel for bringing the outdated docs to our attention. - Added fence_nb to Flux PMIx support to address segmentation faults. - Ensured progress of AIO requests in the POSIX FBTL component to prevent exceeding maximum number of pending requests on MacOS. - Used OPAL's mutli-thread support in the orted to leverage atomic operations for object refcounting. - Fixed segv when launching with static TCP ports. - Fixed --debug-daemons mpirun CLI option. - Fixed bug where mpirun did not honor --host in a managed job allocation. - Made a managed allocation filter a hostfile/hostlist. - Fixed bug to marked a generalized request as pending once initiated. - Fixed external PMIx v4.x check. - Fixed OSHMEM build with `--enable-mem-debug`. - Fixed a performance regression observed with older versions of GCC when __ATOMIC_SEQ_CST is used. Thanks to @BiplabRaut for reporting the issue. - Fixed buffer allocation bug in the binomial tree scatter algorithm when non-contiguous datatypes are used. Thanks to @sadcat11 for reporting the issue. - Fixed bugs related to the accumulate and atomics functionality in the osc/rdma component. - Fixed race condition in MPI group operations observed with MPI_THREAD_MULTIPLE threading level. - Fixed a deadlock in the TCP BTL's connection matching logic. - Fixed pml/ob1 compilation error when CUDA support is enabled. - Fixed a build issue with Lustre caused by unnecessary header includes. - Fixed a build issue with IMB LSF workload manager. - Fixed linker error with UCX SPML.- Update to version 4.1.0 * collectives: Add HAN and ADAPT adaptive collectives components. Both components are off by default and can be enabled by specifying "mpirun --mca coll_adapt_priority 100 --mca coll_han_priority 100 ...". We intend to enable both by default in Open MPI 5.0. * OMPIO is now the default for MPI-IO on all filesystems, including Lustre (prior to this, ROMIO was the default for Lustre). Many thanks to Mark Dixon for identifying MPI I/O issues and providing access to Lustre systems for testing. * Minor MPI one-sided RDMA performance improvements. * Fix hcoll MPI_SCATTERV with MPI_IN_PLACE. * Add AVX support for MPI collectives. * Updates to mpirun(1) about "slots" and PE=x values. * Fix buffer allocation for large environment variables. Thanks to @zrss for reporting the issue. * Upgrade the embedded OpenPMIx to v3.2.2. * Fix issue with extra-long values in MCA files. Thanks to GitHub user @zrss for bringing the issue to our attention. * UCX: Fix zero-sized datatype transfers. * Fix --cpu-list for non-uniform modes. * Fix issue in PMIx callback caused by missing memory barrier on Arm platforms. * OFI MTL: Various bug fixes. * Fixed issue where MPI_TYPE_CREATE_RESIZED would create a datatype with unexpected extent on oddly-aligned datatypes. * collectives: Adjust default tuning thresholds for many collective algorithms * runtime: fix situation where rank-by argument does not work * Portals4: Clean up error handling corner cases * runtime: Remove --enable-install-libpmix option, which has not worked since it was added * UCX: Allow UCX 1.8 to be used with the btl uct * UCX: Replace usage of the deprecated NB API of UCX with NBX * OMPIO: Add support for the IME file system * OFI/libfabric: Added support for multiple NICs * OFI/libfabric: Added support for Scalable Endpoints * OFI/libfabric: Added btl for one-sided support * OFI/libfabric: Multiple small bugfixes * libnbc: Adding numerous performance-improving algorithms - Removed: reproducible.patch - replaced by spec file settings.- Update to version 4.0.5 - See NEWS for the detailled changelog- Update to version 4.0.4 - See NEWS for the detailled changelog- Update to version 4.0.3 - See NEWS for the detailled changelog - Fixes compilation with UCX 1.8 - Drop memory-patcher-fix-compiler-warning.patch which was merged upstream- Drop different package string between SLES and Leap- Add memory-patcher-fix-compiler-warning.patch to fix 64bit portability issues- Link against libnuma (bsc#1155120)- Initial version (4.0.2) - Add reproducible.patch for reproducible builds.ibs-power9-15 1718272316     "#$$$$$$*$$$$$$$$$4$$$$$$;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^^^^^     !"#^^&'()*+,^./^123456789:;<=>?@ABC^^FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^^^^  &'+,-./01238<ADDFJ/LMOT<DDFJ/LMOT<DDFDDD4.1.6-150600.3.2.14.1.6-150600.3.2.1manman1mpiCC.1mpic++.1mpicc.1mpicxx.1mpiexec.1mpif77.1mpif90.1mpifort.1mpirun.1ompi-clean.1ompi-server.1ompi_info.1opal_wrapper.1orte-clean.1orte-info.1orte-server.1orted.1orterun.1oshCC.1oshc++.1oshcc.1oshcxx.1oshfort.1oshmem_info.1oshrun.1shmemCC.1shmemc++.1shmemcc.1shmemcxx.1shmemfort.1shmemrun.1man3MPI.3MPIX_Allgather_init.3MPIX_Allgatherv_init.3MPIX_Allreduce_init.3MPIX_Alltoall_init.3MPIX_Alltoallv_init.3MPIX_Alltoallw_init.3MPIX_Barrier_init.3MPIX_Bcast_init.3MPIX_Exscan_init.3MPIX_Gather_init.3MPIX_Gatherv_init.3MPIX_Neighbor_allgather_init.3MPIX_Neighbor_allgatherv_init.3MPIX_Neighbor_alltoall_init.3MPIX_Neighbor_alltoallv_init.3MPIX_Neighbor_alltoallw_init.3MPIX_Query_cuda_support.3MPIX_Reduce_init.3MPIX_Reduce_scatter_block_init.3MPIX_Reduce_scatter_init.3MPIX_Scan_init.3MPIX_Scatter_init.3MPIX_Scatterv_init.3MPI_Abort.3MPI_Accumulate.3MPI_Add_error_class.3MPI_Add_error_code.3MPI_Add_error_string.3MPI_Address.3MPI_Aint_add.3MPI_Aint_diff.3MPI_Allgather.3MPI_Allgatherv.3MPI_Alloc_mem.3MPI_Allreduce.3MPI_Alltoall.3MPI_Alltoallv.3MPI_Alltoallw.3MPI_Attr_delete.3MPI_Attr_get.3MPI_Attr_put.3MPI_Barrier.3MPI_Bcast.3MPI_Bsend.3MPI_Bsend_init.3MPI_Buffer_attach.3MPI_Buffer_detach.3MPI_Cancel.3MPI_Cart_coords.3MPI_Cart_create.3MPI_Cart_get.3MPI_Cart_map.3MPI_Cart_rank.3MPI_Cart_shift.3MPI_Cart_sub.3MPI_Cartdim_get.3MPI_Close_port.3MPI_Comm_accept.3MPI_Comm_c2f.3MPI_Comm_call_errhandler.3MPI_Comm_compare.3MPI_Comm_connect.3MPI_Comm_create.3MPI_Comm_create_errhandler.3MPI_Comm_create_group.3MPI_Comm_create_keyval.3MPI_Comm_delete_attr.3MPI_Comm_disconnect.3MPI_Comm_dup.3MPI_Comm_dup_with_info.3MPI_Comm_f2c.3MPI_Comm_free.3MPI_Comm_free_keyval.3MPI_Comm_get_attr.3MPI_Comm_get_errhandler.3MPI_Comm_get_info.3MPI_Comm_get_name.3MPI_Comm_get_parent.3MPI_Comm_group.3MPI_Comm_idup.3MPI_Comm_join.3MPI_Comm_rank.3MPI_Comm_remote_group.3MPI_Comm_remote_size.3MPI_Comm_set_attr.3MPI_Comm_set_errhandler.3MPI_Comm_set_info.3MPI_Comm_set_name.3MPI_Comm_size.3MPI_Comm_spawn.3MPI_Comm_spawn_multiple.3MPI_Comm_split.3MPI_Comm_split_type.3MPI_Comm_test_inter.3MPI_Compare_and_swap.3MPI_Dims_create.3MPI_Dist_graph_create.3MPI_Dist_graph_create_adjacent.3MPI_Dist_graph_neighbors.3MPI_Dist_graph_neighbors_count.3MPI_Errhandler_create.3MPI_Errhandler_free.3MPI_Errhandler_get.3MPI_Errhandler_set.3MPI_Error_class.3MPI_Error_string.3MPI_Exscan.3MPI_Fetch_and_op.3MPI_File_c2f.3MPI_File_call_errhandler.3MPI_File_close.3MPI_File_create_errhandler.3MPI_File_delete.3MPI_File_f2c.3MPI_File_get_amode.3MPI_File_get_atomicity.3MPI_File_get_byte_offset.3MPI_File_get_errhandler.3MPI_File_get_group.3MPI_File_get_info.3MPI_File_get_position.3MPI_File_get_position_shared.3MPI_File_get_size.3MPI_File_get_type_extent.3MPI_File_get_view.3MPI_File_iread.3MPI_File_iread_all.3MPI_File_iread_at.3MPI_File_iread_at_all.3MPI_File_iread_shared.3MPI_File_iwrite.3MPI_File_iwrite_all.3MPI_File_iwrite_at.3MPI_File_iwrite_at_all.3MPI_File_iwrite_shared.3MPI_File_open.3MPI_File_preallocate.3MPI_File_read.3MPI_File_read_all.3MPI_File_read_all_begin.3MPI_File_read_all_end.3MPI_File_read_at.3MPI_File_read_at_all.3MPI_File_read_at_all_begin.3MPI_File_read_at_all_end.3MPI_File_read_ordered.3MPI_File_read_ordered_begin.3MPI_File_read_ordered_end.3MPI_File_read_shared.3MPI_File_seek.3MPI_File_seek_shared.3MPI_File_set_atomicity.3MPI_File_set_errhandler.3MPI_File_set_info.3MPI_File_set_size.3MPI_File_set_view.3MPI_File_sync.3MPI_File_write.3MPI_File_write_all.3MPI_File_write_all_begin.3MPI_File_write_all_end.3MPI_File_write_at.3MPI_File_write_at_all.3MPI_File_write_at_all_begin.3MPI_File_write_at_all_end.3MPI_File_write_ordered.3MPI_File_write_ordered_begin.3MPI_File_write_ordered_end.3MPI_File_write_shared.3MPI_Finalize.3MPI_Finalized.3MPI_Free_mem.3MPI_Gather.3MPI_Gatherv.3MPI_Get.3MPI_Get_accumulate.3MPI_Get_address.3MPI_Get_count.3MPI_Get_elements.3MPI_Get_elements_x.3MPI_Get_library_version.3MPI_Get_processor_name.3MPI_Get_version.3MPI_Graph_create.3MPI_Graph_get.3MPI_Graph_map.3MPI_Graph_neighbors.3MPI_Graph_neighbors_count.3MPI_Graphdims_get.3MPI_Grequest_complete.3MPI_Grequest_start.3MPI_Group_c2f.3MPI_Group_compare.3MPI_Group_difference.3MPI_Group_excl.3MPI_Group_f2c.3MPI_Group_free.3MPI_Group_incl.3MPI_Group_intersection.3MPI_Group_range_excl.3MPI_Group_range_incl.3MPI_Group_rank.3MPI_Group_size.3MPI_Group_translate_ranks.3MPI_Group_union.3MPI_Iallgather.3MPI_Iallgatherv.3MPI_Iallreduce.3MPI_Ialltoall.3MPI_Ialltoallv.3MPI_Ialltoallw.3MPI_Ibarrier.3MPI_Ibcast.3MPI_Ibsend.3MPI_Iexscan.3MPI_Igather.3MPI_Igatherv.3MPI_Improbe.3MPI_Imrecv.3MPI_Ineighbor_allgather.3MPI_Ineighbor_allgatherv.3MPI_Ineighbor_alltoall.3MPI_Ineighbor_alltoallv.3MPI_Ineighbor_alltoallw.3MPI_Info_c2f.3MPI_Info_create.3MPI_Info_delete.3MPI_Info_dup.3MPI_Info_env.3MPI_Info_f2c.3MPI_Info_free.3MPI_Info_get.3MPI_Info_get_nkeys.3MPI_Info_get_nthkey.3MPI_Info_get_valuelen.3MPI_Info_set.3MPI_Init.3MPI_Init_thread.3MPI_Initialized.3MPI_Intercomm_create.3MPI_Intercomm_merge.3MPI_Iprobe.3MPI_Irecv.3MPI_Ireduce.3MPI_Ireduce_scatter.3MPI_Ireduce_scatter_block.3MPI_Irsend.3MPI_Is_thread_main.3MPI_Iscan.3MPI_Iscatter.3MPI_Iscatterv.3MPI_Isend.3MPI_Issend.3MPI_Keyval_create.3MPI_Keyval_free.3MPI_Lookup_name.3MPI_Message_c2f.3MPI_Message_f2c.3MPI_Mprobe.3MPI_Mrecv.3MPI_Neighbor_allgather.3MPI_Neighbor_allgatherv.3MPI_Neighbor_alltoall.3MPI_Neighbor_alltoallv.3MPI_Neighbor_alltoallw.3MPI_Op_c2f.3MPI_Op_commutative.3MPI_Op_create.3MPI_Op_f2c.3MPI_Op_free.3MPI_Open_port.3MPI_Pack.3MPI_Pack_external.3MPI_Pack_external_size.3MPI_Pack_size.3MPI_Pcontrol.3MPI_Probe.3MPI_Publish_name.3MPI_Put.3MPI_Query_thread.3MPI_Raccumulate.3MPI_Recv.3MPI_Recv_init.3MPI_Reduce.3MPI_Reduce_local.3MPI_Reduce_scatter.3MPI_Reduce_scatter_block.3MPI_Register_datarep.3MPI_Request_c2f.3MPI_Request_f2c.3MPI_Request_free.3MPI_Request_get_status.3MPI_Rget.3MPI_Rget_accumulate.3MPI_Rput.3MPI_Rsend.3MPI_Rsend_init.3MPI_Scan.3MPI_Scatter.3MPI_Scatterv.3MPI_Send.3MPI_Send_init.3MPI_Sendrecv.3MPI_Sendrecv_replace.3MPI_Sizeof.3MPI_Ssend.3MPI_Ssend_init.3MPI_Start.3MPI_Startall.3MPI_Status_c2f.3MPI_Status_f2c.3MPI_Status_set_cancelled.3MPI_Status_set_elements.3MPI_Status_set_elements_x.3MPI_T_category_changed.3MPI_T_category_get_categories.3MPI_T_category_get_cvars.3MPI_T_category_get_info.3MPI_T_category_get_num.3MPI_T_category_get_pvars.3MPI_T_cvar_get_info.3MPI_T_cvar_get_num.3MPI_T_cvar_handle_alloc.3MPI_T_cvar_handle_free.3MPI_T_cvar_read.3MPI_T_cvar_write.3MPI_T_enum_get_info.3MPI_T_enum_get_item.3MPI_T_finalize.3MPI_T_init_thread.3MPI_T_pvar_get_info.3MPI_T_pvar_get_num.3MPI_T_pvar_handle_alloc.3MPI_T_pvar_handle_free.3MPI_T_pvar_read.3MPI_T_pvar_readreset.3MPI_T_pvar_reset.3MPI_T_pvar_session_create.3MPI_T_pvar_session_free.3MPI_T_pvar_start.3MPI_T_pvar_stop.3MPI_T_pvar_write.3MPI_Test.3MPI_Test_cancelled.3MPI_Testall.3MPI_Testany.3MPI_Testsome.3MPI_Topo_test.3MPI_Type_c2f.3MPI_Type_commit.3MPI_Type_contiguous.3MPI_Type_create_darray.3MPI_Type_create_f90_complex.3MPI_Type_create_f90_integer.3MPI_Type_create_f90_real.3MPI_Type_create_hindexed.3MPI_Type_create_hindexed_block.3MPI_Type_create_hvector.3MPI_Type_create_indexed_block.3MPI_Type_create_keyval.3MPI_Type_create_resized.3MPI_Type_create_struct.3MPI_Type_create_subarray.3MPI_Type_delete_attr.3MPI_Type_dup.3MPI_Type_extent.3MPI_Type_f2c.3MPI_Type_free.3MPI_Type_free_keyval.3MPI_Type_get_attr.3MPI_Type_get_contents.3MPI_Type_get_envelope.3MPI_Type_get_extent.3MPI_Type_get_extent_x.3MPI_Type_get_name.3MPI_Type_get_true_extent.3MPI_Type_get_true_extent_x.3MPI_Type_hindexed.3MPI_Type_hvector.3MPI_Type_indexed.3MPI_Type_lb.3MPI_Type_match_size.3MPI_Type_set_attr.3MPI_Type_set_name.3MPI_Type_size.3MPI_Type_size_x.3MPI_Type_struct.3MPI_Type_ub.3MPI_Type_vector.3MPI_Unpack.3MPI_Unpack_external.3MPI_Unpublish_name.3MPI_Wait.3MPI_Waitall.3MPI_Waitany.3MPI_Waitsome.3MPI_Win_allocate.3MPI_Win_allocate_shared.3MPI_Win_attach.3MPI_Win_c2f.3MPI_Win_call_errhandler.3MPI_Win_complete.3MPI_Win_create.3MPI_Win_create_dynamic.3MPI_Win_create_errhandler.3MPI_Win_create_keyval.3MPI_Win_delete_attr.3MPI_Win_detach.3MPI_Win_f2c.3MPI_Win_fence.3MPI_Win_flush.3MPI_Win_flush_all.3MPI_Win_flush_local.3MPI_Win_flush_local_all.3MPI_Win_free.3MPI_Win_free_keyval.3MPI_Win_get_attr.3MPI_Win_get_errhandler.3MPI_Win_get_group.3MPI_Win_get_info.3MPI_Win_get_name.3MPI_Win_lock.3MPI_Win_lock_all.3MPI_Win_post.3MPI_Win_set_attr.3MPI_Win_set_errhandler.3MPI_Win_set_info.3MPI_Win_set_name.3MPI_Win_shared_query.3MPI_Win_start.3MPI_Win_sync.3MPI_Win_test.3MPI_Win_unlock.3MPI_Win_unlock_all.3MPI_Win_wait.3MPI_Wtick.3MPI_Wtime.3OMPI_Affinity_str.3OpenMPI.3OpenSHMEM.3_my_pe.3_num_pes.3intro_shmem.3shfree.3shmalloc.3shmem_addr_accessible.3shmem_align.3shmem_alltoall32.3shmem_alltoall64.3shmem_alltoalls32.3shmem_alltoalls64.3shmem_barrier.3shmem_barrier_all.3shmem_broadcast32.3shmem_broadcast64.3shmem_char_g.3shmem_char_get.3shmem_char_get_nbi.3shmem_char_p.3shmem_char_put.3shmem_char_put_nbi.3shmem_clear_cache_inv.3shmem_clear_cache_line_inv.3shmem_clear_lock.3shmem_collect32.3shmem_collect64.3shmem_complexd_prod_to_all.3shmem_complexd_sum_to_all.3shmem_complexf_prod_to_all.3shmem_complexf_sum_to_all.3shmem_double_fetch.3shmem_double_g.3shmem_double_get.3shmem_double_get_nbi.3shmem_double_iget.3shmem_double_iput.3shmem_double_max_to_all.3shmem_double_min_to_all.3shmem_double_p.3shmem_double_prod_to_all.3shmem_double_put.3shmem_double_put_nbi.3shmem_double_set.3shmem_double_sum_to_all.3shmem_double_swap.3shmem_fcollect32.3shmem_fcollect64.3shmem_fence.3shmem_finalize.3shmem_float_fetch.3shmem_float_g.3shmem_float_get.3shmem_float_get_nbi.3shmem_float_iget.3shmem_float_iput.3shmem_float_max_to_all.3shmem_float_min_to_all.3shmem_float_p.3shmem_float_prod_to_all.3shmem_float_put.3shmem_float_put_nbi.3shmem_float_set.3shmem_float_sum_to_all.3shmem_float_swap.3shmem_free.3shmem_get128.3shmem_get128_nbi.3shmem_get16_nbi.3shmem_get32.3shmem_get32_nbi.3shmem_get64.3shmem_get64_nbi.3shmem_get8_nbi.3shmem_getmem.3shmem_getmem_nbi.3shmem_global_exit.3shmem_iget128.3shmem_iget32.3shmem_iget64.3shmem_info_get_name.3shmem_info_get_version.3shmem_init.3shmem_int_add.3shmem_int_and_to_all.3shmem_int_cswap.3shmem_int_fadd.3shmem_int_fetch.3shmem_int_finc.3shmem_int_g.3shmem_int_get.3shmem_int_get_nbi.3shmem_int_iget.3shmem_int_inc.3shmem_int_iput.3shmem_int_max_to_all.3shmem_int_min_to_all.3shmem_int_or_to_all.3shmem_int_p.3shmem_int_prod_to_all.3shmem_int_put.3shmem_int_put_nbi.3shmem_int_set.3shmem_int_sum_to_all.3shmem_int_swap.3shmem_int_wait.3shmem_int_wait_until.3shmem_int_xor_to_all.3shmem_iput128.3shmem_iput32.3shmem_iput64.3shmem_long_add.3shmem_long_and_to_all.3shmem_long_cswap.3shmem_long_fadd.3shmem_long_fetch.3shmem_long_finc.3shmem_long_g.3shmem_long_get.3shmem_long_get_nbi.3shmem_long_iget.3shmem_long_inc.3shmem_long_iput.3shmem_long_max_to_all.3shmem_long_min_to_all.3shmem_long_or_to_all.3shmem_long_p.3shmem_long_prod_to_all.3shmem_long_put.3shmem_long_put_nbi.3shmem_long_set.3shmem_long_sum_to_all.3shmem_long_swap.3shmem_long_wait.3shmem_long_wait_until.3shmem_long_xor_to_all.3shmem_longdouble_g.3shmem_longdouble_get.3shmem_longdouble_get_nbi.3shmem_longdouble_iget.3shmem_longdouble_iput.3shmem_longdouble_max_to_all.3shmem_longdouble_min_to_all.3shmem_longdouble_p.3shmem_longdouble_prod_to_all.3shmem_longdouble_put.3shmem_longdouble_put_nbi.3shmem_longlong_add.3shmem_longlong_and_to_all.3shmem_longlong_cswap.3shmem_longlong_fadd.3shmem_longlong_fetch.3shmem_longlong_finc.3shmem_longlong_g.3shmem_longlong_get.3shmem_longlong_get_nbi.3shmem_longlong_iget.3shmem_longlong_inc.3shmem_longlong_iput.3shmem_longlong_max_to_all.3shmem_longlong_min_to_all.3shmem_longlong_or_to_all.3shmem_longlong_p.3shmem_longlong_prod_to_all.3shmem_longlong_put.3shmem_longlong_put_nbi.3shmem_longlong_set.3shmem_longlong_sum_to_all.3shmem_longlong_swap.3shmem_longlong_wait.3shmem_longlong_wait_until.3shmem_longlong_xor_to_all.3shmem_malloc.3shmem_my_pe.3shmem_n_pes.3shmem_pe_accessible.3shmem_ptr.3shmem_put128.3shmem_put128_nbi.3shmem_put16_nbi.3shmem_put32.3shmem_put32_nbi.3shmem_put64.3shmem_put64_nbi.3shmem_put8_nbi.3shmem_putmem.3shmem_putmem_nbi.3shmem_quiet.3shmem_realloc.3shmem_set_cache_inv.3shmem_set_cache_line_inv.3shmem_set_lock.3shmem_short_and_to_all.3shmem_short_g.3shmem_short_get.3shmem_short_get_nbi.3shmem_short_iget.3shmem_short_iput.3shmem_short_max_to_all.3shmem_short_min_to_all.3shmem_short_or_to_all.3shmem_short_p.3shmem_short_prod_to_all.3shmem_short_put.3shmem_short_put_nbi.3shmem_short_sum_to_all.3shmem_short_wait.3shmem_short_wait_until.3shmem_short_xor_to_all.3shmem_swap.3shmem_test_lock.3shmem_udcflush.3shmem_udcflush_line.3shmem_wait.3shmem_wait_until.3shmemalign.3shrealloc.3start_pes.3man7ompi_crcp.7opal_crs.7orte_filem.7orte_hosts.7orte_snapc.7orte_sstore.7/usr/lib/hpc/gnu7/mpi/openmpi/4.1.6/share//usr/lib/hpc/gnu7/mpi/openmpi/4.1.6/share/man//usr/lib/hpc/gnu7/mpi/openmpi/4.1.6/share/man/man1//usr/lib/hpc/gnu7/mpi/openmpi/4.1.6/share/man/man3//usr/lib/hpc/gnu7/mpi/openmpi/4.1.6/share/man/man7/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:34207/SUSE_SLE-15-SP6_Update/37b5ee2fb738091744826d2b9d8d3f83-openmpi4.SUSE_SLE-15-SP6_Update:gnu-hpcdrpmxz5ppc64le-suse-linux  directorytroff or preprocessor input, ASCII texttroff or preprocessor input, UTF-8 Unicode textAlgol 68 source, ASCII text, with very long linesC source, ASCII text, with very long linesC source, ASCII textC source, UTF-8 Unicode text, with very long linestroff or preprocessor input, ASCII text, with very long linesC source, UTF-8 Unicode textl(n!Bbutf-8417825cf0c9962fa2646758c4a595b4cb646dd872c7e705da1467b8b57dd2350?P7zXZ !t/K3]"k%)N4zSN80GfvXT(3 "n/"זN[p#YlzOp9Î&z A^n)v+f_pCx_!yusZzQd$~UiXYה'3{;mD d/|HaE`d$ط/[] bbsS*gZa!ɵA^Sv 9]Hz*b&\3ҞeUǑ被 ¾@hu/CYJ>H%b?DB@BXƞ+"XvEl,XhJ!c9pV8(N?*v⃝_B]ձs,.6 |I/i/|#)?h27+X:wpH2quɶA83֠>>y~;'a3ցN$)Wn-mLηytEp}P7>Q3sol+xʽ uS?"+F> "k i)׼2\mᤥwb60>v`u X]U~O [T%/ >)ӈkLUANVbZ;sR91_׎33WZ@?.!OA8[n8:yi'a\E>&p8F;)ɶ vbKc(Vp<  |K`ZdU4֎T'G'vTlk{ςGvmܾ cJV/%fz~lAV CfѬd3b,`Un#y3? b%7iC7iMw& \`[*5xZy$M/fAV{'GZn޺\>1 WY찔^cM#?J<쎽OMӁ+4* $;vF:PLAU9_%uB&}E0H/A&id,j˶hKCkf:iؐ"tZ _Q5"AL޿yt4d:MP$XOhcF-J%P.Tܫ0؄V5"Műs`j o2$K EA߇шyy!ώA1yx{me)T I9+c! \KA6-OfYu ͮod8|V ->l8q87*Q fK84Q~$|њ;ψM)kr=㫠o6vٔ*?>iY1.l)TrEoxpkEKwߒ'iJ?Z2.ߢɣ}x[:3u7:K`j3ǔp ,m>GJ mw,jh\CW_p3w&e9LJwlF$. ̍6Ki:95abG"uzC&]x%t}J9᫵20q ]yQZ c\Œǧ vM82M`,*Ş7>ZA2$&h`Spnvfx!\2|'h %ً41a1_&!q8RNs`ń4=ɦDPL$ -O3'fmsZ= c^o3߯7s !(fabB$H>-<  @W؃E[LI|y>!nktBHŒL]8CWwl cl̥MchkbQ]V^ZwIL}5oz5O!*O QL_Ԧ݋s}g%p 83[ 2K/n# v| `r֗F7C!HU4=i04p.k4L[R>w]^g:18,3~/,<(JZ-;jJ39*7&D$e+!$9ۀ J2tsゆ}hL 3EVI;Nu0xd5;E6vt/5=MaЅ2fSbNXsTa֖7z@8dFt痻1[ OwWSʾ}Ϳrjvc[./ `.diCtP>v&t \MI:9*;x‘xe\AgOO#[-:P)3F >g]ڠD[!9|1W[=@WyHOҴ<"Gɓ](^7,DOwjc{%|2V[Wu vE'>N?'d3ȪK+t!>PR1f@c_k݁i@n"E",| Ib '4Z!?pHT( P$)=ƽ @8 xQbT + 2j},mBo~"f3ӈ)-{.EJ}n b/Ea+Qk7EUJ#hXmpn%]0ҏ-zc BTqx&4e"$Tu.XRex};Y%y8+ (^{5<&t"$9[q.#l\oRL r x`okVq꺲izҷz7_/K?!?ly CUCTHY=uTg&8dj+*PNJf=&Z`9G+*tB.7-duf-0ҧ~]N5aWόX_@hJzq6ޛ]ؙJ eem!5w?ט/pe{uK*`EQyF$s/r@XeG=VRJ d9Z}plS.Po- o y(IԤ=YvV+ EV6Mc{6{X=5DH=#q(fJ?oٻeo۫ 8K¼N;OFSeYK@_'VO .'_yjamuwDqtZ}*>Q`_T=A!8bۻ;] C1"ށ49I,H خu$xċFpo >ˡDwqU _9 7 DXs&] dJfdS`B x*R'Q7KSP/O>֝dF)- M Y{O*t[R>sS2J<[ݽBTۣ 󌅼gZ3ĭ>T6Vvщ2jejJ0tyPq_R֟Ca?X' Bqx#|}~b~ӱVqn|j QOexKb$Sygzpbغ*y9wbE`שB6%4+Q`,'%|vSOI^8zh2 XKE&Qhﵗ]cTMUUUW8Ʉ&G^?Lj Q &(Ҥ~q!㦧m+fԞiΩ6ҬtUET1ja8#?D_f 2=a/77ɥp@uxJD?3'76{u㓨MK}ґo.xȡա݌~ZZΛɒR$:9'~<)K F^[*.P"KG"|D9Mؘ,q痐eEj 㨄e Jp4Y]- ș%s@3>~r ;56v}hcrStfJpMHȌAng=o`Η ,Āp>'Cqgo BM˘aG扨נ>N_%*"41cWA"ڨ=,  Q'sK|Ag!~ںQ-sYH>lvbvZ  TΪ5ۂ""I~jH۹9dž7bM na{Y8]ШC4a'³` D볩'ȅZ]6g:O㚠lrklv皣M|[qeCd̙:"z՞(oÍ6_O$䧠Ϣ$ߣOJߤ h9i2XԄgdH;;RqW 6b_x.^Be4Y,tڔFa"@_25)_{0}zBvc_%<&{$]+z<#&I.)͸-^9gw̙+ucQ^񓕒嶫9 $oX0Io}mv,y<+(<%MavQgC[/^15tҪd~ WYf"q "[]|>mȎFnz\\}qS FXe I! ~k|\78@:KzZ 4_ $Ш?{4x91< :7.X+q9<-\swZ=騎sCK !L( >//bL lfsu%ywG +,4CXo= jIWz\ @nAt02- B-Њ2iSO'qqe|*跽A[ox҈7A'vcaTjrU+^޷@Thn UUQQòΔ!`Yq|Č;n%lN,XЕԉo9oZ;mN3mODkFv>9{ύX V}Yѯ|ܐ1q>\ gt݄2WOX YZ