postgresql17-docs-17.4-150600.13.10.1<>,pg0p9|ґn{/v)̀1? i*''hCW q]UTieTǙKeeTBRta^9T‡h2H|!##bM4t^q:N1W6Е .auėtRY [L$n⬧s.r dë$3x9"+X$HK:j2G@[mYɏh㈤xbgb"wd'|i7t}d@?nb>;?ϰd ( J $=^i  N ( ; pU u˖(˵8˼F9F:FF G H"$I5(X9Y9\:]M ^>bcfdeflu vzO`djϬCpostgresql17-docs17.4150600.13.10.1HTML Documentation for PostgreSQLPostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the HTML documentation for PostgreSQL. The start page is: file:///usr/share/doc/packages/postgresql17/html/index.html . Manual pages for the PostgreSQL SQL statements can be found in the postgresql package.g0h01-ch4d;SUSE Linux Enterprise 15SUSE LLC PostgreSQLhttps://www.suse.com/Productivity/Databases/Toolshttps://www.postgresql.org/linuxnoarchTC=o1AO-Z*(oyPoka$jG'(8v+Q]l-Y< UHJMR6Z= \y84,)Gz"k:^OVYB0EL!4$v~G@#'y I\7ו!N4#;k#ycO$ ;,Z8|s 3n"#n@0I8Z#]`h .9(.aa;-V9|CI̥  bYlFE" T  j k $Ck9&b&+||589$v84C< tU@/'-r1P"{/'55 1<$DE sW _> @7d : j%+k ~3h0 =*a"' .  *9dX1!E0 E@8 `L3D;KM%a=Yr,̈QT6  A<;Cx%L_;""-b(=fFo7r?4KRB'R_ YL.55t*JO$ /7*}!i+ %/l^;i"O:7X&3 =uBfU=1y65~sq$6%KJv )[PXq- 1#V(r c {\"?t(V)c-C/{t .l\?%iEC[VZrj&d}U' &Z$G[%"2n&(F_d AUR#o ,@, \8~ xz%(" \o^''8]*?8  9: "Lfpr'K{"?7N{Y1dsQ#:;: '(`3kY >6(Js{hX=8L>(ro4!z:$CC; U Mri>& :H4rg &CM)h%D n(iV)i» Kk+&2I%-q_>!dwD+^ v \:bgbL5-g"1zbfMDXbN)a! 6/38%'Xg?-uGV[(9 4<Lhra 9(<r# -dHZ f>"_$('7 >]T5u- # O$*y L ' 1 @Z@_"L%SX)n?ҙ1%C /}0kKmX8ssk;l0t+.%f$ S#xf%b6 Uˍ I^Q!! !'MH RZa+@FD\}*+2j{+ r, D6-YzkSS'2A,`>CF=g}AA큤ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggga8f273063b15590c54ea5a2ba1b30b3ac8c8e6bd024801307fd96d4dd671a04343637476cf97bc65c3f36ff1d75a2d85b4522f5b97877f92512aa5394a1e56461bf0d1021b9f5861cc8951c8440404bdf79cfc5b065542d50dbc19eea7ced2c47e3436151d690f053023a4e54795506578469aefab9c4d47ab01650b6af0f44c89f591070159c91f9b8b30003cc052b6d5a4adbf0859a709687b4bc415183c02d26acae044c58cdf4ba5f44990a9d0cd38933d876c03391b951d504f856838cd646a06499c435a525002a2d0f5fd79f2a0d54b7039b80342e3798514c25fb8266894fb61d48a696c607aa3108e4b3dc2531f8c53e39687f61871025fd8713124abf3e791888cf24ba59ab2fcc85fbc651ecd77a085302d6ddc9207ad3fa80741a3e8f30c2eaf0a1abf1f8378ca3235c9a023f9a7815611ebf9f940b72630351c2159e8d561c59e0f81cd1a7798ec8708039c6f35cd3819be91b16ce66aa2ccbe37ae6bcc37205f4c78827d193b2442a8df3d6852078586e8e6bf4734a2138bf64bccb92c916e2aa406745c67f01ba4c5d404bdccacb1f03599ce7f14c2878dd1dcbe0e9b92f63357ef3023f0dadcf3a337585d74f1cf2ce4eddcd1d886f759d83bc712d39a13ffa2194196614561294a04eff23785dd8f1f42b0c059bfb3eb96363dbb46c99b6beace5215cb9c17d6dceddd03517cfc755083a50c30878e88589efcf8e815d956e2476c652194c08c48db84206dbfe97576412c78f37fb28cbe50d2de3e314e12fc525437a66994354cdd2ea3d1223d30b4532a3d563544e49b6229d0ae31694e94eacde133f05f474fe8fd9ccb7e39cc8c819e937473a89fc43dfbbefac0f262a9e47b022c3e4edd1b3e5afc4525c963d6f01d48b61251d542055c0b4505aae2bdf2c315e0a705996e92751e5630d23f8dd96c0f4d2ba9dd4172cce2fa4bdfe20a981f9038979098788211b5340f00135de67a3f7174ce3f21d199093710824299668bbea59457881d0a2ddf0e2da49800efd8d605a9db79ea9a16b48a472984398421d572ec58ea1ac4ffc6b87e07c12c40d92a2a65937ee4f9c36e86375554760c15200bc039f6b29e183c7100d89e57bd268be360eaacd5bc64a713e10be2ab21f805f6345890e8e7ab4f26d150b937eabc151e86043e92ee3ab7640c39d5236a2c303e1dd43b12cd8cfe49a24c9ee4072d4bfe52c7ed132884aa89949dd0bf7f4588ab6afcc91f717009b4419717230d1463257d97ff077d1390fdbe54ac61deccd821ca37db6cfd1e66a96c84ee9cd7fd3301417b961d4c4d84134376146f6aea598fa565e0410da9bd2cdd5a4602c7c26f8ac5f77d8fa2b34b8c77ecafa48faac4683bb6ea86a467cdaaafe4099d9803eaa38c33350d67fc820e1e5a30dbba5ddaf8137ecf99f8ee3a20c17dcdb3bc88148033e662b4bbab5a70f5ebada2e7c8d21a55b81724287528e36819c98ed94f5f55bebdfa3b037dd7064efa91f332c234cb14924a8e7eae2618f1755aa629362783e70325cd62fcf40aeb5fae3f339bc0ea9cef0c4a353dc358b00d329f0402b39cee2f91117c13ce8a706446e0863c86960e4321e9504861f16bc9ae7c1013555d78d06a925dcfde90149bf152f9846208c60ab25f849ec74e8b3a9e72d61e153a067404d21989245ff9c770157be6088dd9bf50a3aa4749e0b41a4a91c42fe9340db40c9b8b06d7d846fe3a77db8d3b59c08af6fa9925c2957a9b33ceabb065615b0cde3877a4e4540d61330c2ce8f3489a721133eb3a2ccd7885f9c87fff437d31c42b49c6b891fdd946c2ea8cbaf13e795c7fbe196e795c1836a82591e7d429441efa4533174b8ac2208f97869d0893a809035deb8e65978735168b46b0a3f380c2a2b21183d0b571499febcdc297c46e82731b0efa264df29890e80581a638d777b5275fcdaee8e690f8cb8df4d8ddd7116cb28a9f7352acbb173693553dd219e43d4892387ca0f3ed16afd4df4f2950a652cbe2e4f8c9561d6868d8ab3f1aa38a73d3bed56feaf556e6ab0c094827f3de2247351928906164b9b72e07a8a572156c4780259029f369ef5b79624bf613bdd7ca50f3dcd2df6f6b97a1448e0c7f364b9197d8fd8c8e92ba85202aee61e8db34d36148e260455153018ada7750a01a333201fa4031997105ec048dbf321a1e46b4b36ed8077bffde8bf6e7cc4f2d6c8bf713f70b6cfdf75f6c545a131f088ff5f2cf241791136a5c6b80fb6c538ad6a1a3e1f0def257c61cda67c15572affb4c3ace3eaf43c040aa111fa3ffb8068fd71cbee2bdbd6a24d1d5dadb2cf75517ffad89fe7412ad5c184f30b21f206a87e1ce9a31b16b2f8452b896b2850d44a396963c810036150a4fae2163109c81ca237d3f495b754eeac56436bb87443b8dbfe896c805ace2e791461ccca6d0ef0fadf1fc72d58ae8480d0ee87b493b194124a57d552571d31909b4bc4ed6a3044a004c335f805c47c4a03c2443a19f98f9c5bcab557444a35da3442b8abb9f5c56a0d7e285af7f3cbdb9c1ad7e0effb4561af6638698cfde775dc0bc586c9af9b0314ea042ac21a7c409af6b2bf9429bc582c20768326f60907c23dc711ba10695446289484e4f73e6b562ff6d5f0979617787f706e531e9084ea65f9fd3d9923ddeb729388d8c2db4f6c9bf4547f7ed3505069446f62fe16b237d422114665bd10255e2c429ab3a5b77dbc571101e8c89f3c48e2abeb3d8a2cc57c6224e536f539d630c660e23f5b89dcd71f6d993aabefb1eed9f40c249a8bee5ee213f87e5e53f53054fe19a2fc69af17d4d22ab0fcad28c183ca2d27e0640828f284d62cb97f49446015ce76d0d9347a077191f8d77f5d467fb15b69f66ebfceefd4aad265857ab2095b637784f18317514d22f3d36e040f71d4155f909a9ba3d1f391356f75922fe0b813841acabffda28344d29fb064641a039214da9e5500cd1a599a81727c73ece77c3499e17bcda432e588909cc7ebbf6b62fd27154b25f2ea40d8ec4334c4de95839ff71c5bef1299c9a18eb24f54f81b001c2eba932e279d92c04e4f19414a505fa6babfb0f602b2cc4f2f9c31f267c493da07b7a1c9e687a4347ba4449939a32e2ad06eecc85f456e2ebdc3f0a51fc1b6ca3ecc050ef9128ed09ab8b0fbb7fa5e82042a48f166f1f0d1b81281951a71b17bc8838235de26fd4809943e7c93ad01dffb99e3eeccd8ad40c87fa3c00675d107e7e3c293bd9bb4de84cf0e1576a83ce1ea45e204f8d6808f07a86f89c5eaedb9740f7ad171172aedbe1a63bdf1f0657d29069bcb982001034508e07bb3542b267bd5c36062ba79236744fe6e1019136dbd69bb75e38afa532d3afb2b00a37e48977be972abc0dbf9a065f7fc5a0c3959c5bfb8176f39f0602cb8ac9e694d4e1781ee5f4ed946abad1ce9d5731e185e81c2af2206c2127c73315620ccafa8525e544371362523f379a8985ceea03970eda7ed21167173427357ed862fa32e0506849643252ee61156c74bfbc4b9f280aee31410f6c6d8bdc2e726aecbeffd20a34d3f67b4c61e74f6df432c924350f53aca5d5dc19240389424b89bd875598c975fbe6dc51365fa7b080d076bfb08fc3103172894967c3583b6ea2488551971efe7011a3e331a5ee11fabf20678d302c305a3798f2325fcb6e8316cd854af04ee0cd4947e3948d4c45516f6afa1590522a5a36c73b14db8af0a9b2094068c0c50097d829cad11f6fb2ae1461728955cc986906f58ccaeb483d134e755cfce94d90abc445337fc091a2ab05acdfaf14426d577ffa5fe907d7bdff595d2c42dc0f65769417510b752684a48d3a11ab30d09cbfd666aff443217e28a70589d4a0726ebf4506f37a38655b7e8f3206c71679e620e117c5c79554c83dec7174ce80d926f17aed8f267f4741490a2ec3ff53b55a97acca8997297be6713d1cca0178475efa1124f170e558ad5679a7b4f1ea0e2f17e156a77b3ca90e3d99453a0f9b4a9aac8676143aad6b379f063a05f2e06255b35fe23e2214fd79b1451e0d6d2360ad948ce2bdcecacbe71325ee8694dda6cdf252ccc5377f74964afe1064d18701f8fd8b704d9a32686b725fa0cbe09ef4133d4e7cb515f653f81e1a3a44e9090f427626c2286553dcc8d4e62f6f453b134c53ab407790d1853f2641a29cd0b83cc7335662408697a6ff15106ac69b3443a1670af25afd591e73e204452592ae7d20e2a76eec565240a87ec47e4bc4688673731b55b7142eacd8dd95e9581c758e2a0f26dfaffe27874ff54470e5bfcf9f51b4aad0f36f3caa3e9270d4fe7dcddfba92bba7cca9f42fdaf042ab4b44c4f4aca45675057ccea02725f77dead512656705ff5295e7116971da56702a8978adcd864afa21c1a774f3315f40885d1f539b623dd1a8c01627b6106546b5b973f772622d985f572cc9ca5c0c9260f37679d9740908ef8c554cbfb0422d133f5733415fdc0b02e77ad945e361d5bf01c7a8a8a6a01b3407d2fea5a0bf8040fafefc77ba33262e7bdc2d0af756d9c474b915bfd500ba913a94f0907902bdc1f9692b3bbf7b8955f2223d8518ba9da6502c8ffc6f0acd2526db92183ad76737ce3a827a64bd1805ac354051ad903cb16a8c85f19c876482d1659c9b1b9e38054e3acab5fd9bca44fb1ae8fe4dc1cc9dda4cc98a3b181a96da705eb1a711f7f2d1db993f03981eb2bdd4b1ac7a7bf54ea99a5fe22166863c4cab94a64cb5a6ffa4702c5135b0116c896c8a8ef796cfb985e23355c406301c92eb0455986c6ce05328862a54fcb10b293d95b2dbe8d3c699bc756891d4d99a2969982601aa8a973b131a7ecec23967966f6a211171962f1d53f3018c8b88f3d2badd089813761a3f2288abdb1f9ea906d02a6c7fb36cca01b72d2ee61fc72389f06ac10e36d237e56521cabeb6435e1c0fca8276cae26fa542bb5db61ee46593d1a58b1f815cc393b875830920416cfd89f7cfd7c60abbe1731fe71a542ee0fdeee12462c7a01f135239c75a9d8c5073b44db1aeeb96681b219fc836640b7114392b09da3ed8c0ef352786210f70a2c520a7d221fd5ad4f37b4ed577f718a3249c135da712cb9f492eb76997b0f442d0734cf196a1e49c88215f2aeaa111609ee33092ba9ecfd957f4053b5275954bce41721a8fd47d58f1df7ef930e6fbfc668208ac2aab7d4d007f8438d316775fac1ff6957490907525901aa990a41e79274b27750203deb1b49237dbcfad9fd8bc58846512e374375fcfafa009680acb3c801097a33071a551f598e38576aa78aed545710a6a393be5462ee1346147a155d606c0e63d07f703c3af3d94fc8383affbcdb461e345c3c4161a8b8fae7e15eeecb47486c66b2b528687e7247e9a84025200d9ab899c13048185d5ec58966f0210d66621294935f6c0e9cfa994e749aaf859935293b9e3729d399cea855b8e2eb3b131096c3e1c6dc5874a78fa8c9391110c287edbc85a7ac16477a757e7a97a807b0b4369cdb491174f0f8373d462c6f9caf8d20399307d953fafab47a6ef8039d3c49522160821f6ac74949ec80bc6efa3a2057aa723bf236ad1533d44bd3b20b7d256e7acd80020a46732b2005fc22038a689bc6b0373e3d4515b61e83a7b48f3d505a8de3874777956c5ca3a573c40f24445d28c32ea4fa254cfa53cb2f725b9a064436dd40dd761076531b8c60dac23fc731fd81f8fe38644316205351ef393dcef26c2d5978da7d880d48f2d9831ea8791e08c1ab5eb7fd4ae29e14ca8b1fe984423d8e59db7641939589d180260d8414d03d554476d76a3bb4928869b48611a2cf3dcf8001b15ad5f849f20e2496f37e19c2f83a4fb2c6d10a76a33ab11fd72f36f4eb545aa254d4bcc4d1dee016684bc33aa82fbc05641c1963a27aa411d685948d8b068ef0d024809b9739783fc962ec08954dd814f8b2f9e014a1f0c3d8b8f23820f0c5976aa0afcc0eeb358f3b879255993b2e103953c49dc291a9c980d9696f167e06691327f86353fbeec5ee76dd7e8c9cc96934b2b7ffabf2e56cd1809d0091715109ab64ae803a737d1ea393813a5e7ed375e11adb1a1ce09c1c67d899fcbd79fcd04284eac7e5e44a9c51b9f640233c7ede44e43d4fff2350764fbd838627e23418b3cb4e4bbb141f7049c92ca140a9aff04a134edc30601e3353f3aba60f782601f90e5c4d98050d1b487655b7fcbf2454d2f5938076bc9d9bfb01cc5b615c07e61505698ba2f6e0644327832856a54af39d1dc86b65b8e8fdb2d09f407e1d00e397bc006e650fed0301a1ed5b33212cc80dafc178b26bcd85a2e53d92b6a5687e327a64f98307e2cf677aa6290dd839d1669e57cc8c6886eb770065c9ad757d9648d9265c25c5e086f6f04e97be9eb7ff29713f02696b0926f70be1ec66a7bc55d9f08c3689dfa0bf77ba0b6ab4ce52f05309f5a0b6dabab4130cfc12ec4357202404f3ce61fbdf7232065e0fb7a808799f9ab17c6f9913eef357bff134b48dbf63f7ef0f9f9df6a719916ca7eea0c0314ff075d7de0e5d63a7375c341f2acfff88af3e8daf1526d554e8b57510a7ab354af66bc08b59af8e2ff71cd8304a4c82ab968fc97439f7c9c54a7b48f16c10def9022c0dcb03bdff94b368f1847e659711c2eeceb73de2fc3d501bf89feed2feb3cc4217da86326212cd2ac45ae26b22e9938ba6d9f4e953cce8e8f515adbbccdbaae071c69532c3a38ecaa017d7362a1dce0c39f3a7cddbdde29d8547fa16c9b08d6a902a3d35a2130957ad8fe01de1d01446c44fde439e268b8175fa5029db3ed60efbccd2bf9f701d1da1fc945309e95ddb10665dafca38ead7fc108a5864b378a3190d0fa19d934efd4e7bf8933a9eeb7ff3dbde29d51e6a189c4c8d5cb7727a14c3955972a51de49bf58cdcf808586e6811bac02db84c2571834d2e3fc85b9f69dd40397731522f22df90b1cc453b9e8850da653f8aa4a86cc75aea2dedad5c0811fee0def2c26c972a8e3e4999c954c44b0822f0953d58721a7f6efe4c35a3422ad76d66515b0430e979722e3a62e997adb4f3c8077a3c1e30cd18af03b23b4f6be7477592aea85be1e9107d7e7fbbaa4aebd2b9bc2c48b3dfa98421d183d24292884d63f4b6031749ba430e89d9b60c330f6bd05410f775088b6d3fe9ea1631d101ae2531a4adcdc27c199924e397341cd6c95d56fceca92dc36e6d9e149b2f89e429284f4ce87f7369681d66c039808112412094525e75b6f41d51105ec325fd00913e643318707110deac13d48fd5c5bd6d0a1acce48285d785787f9708e9bb27bf5b2ca47f311b09e0fbbc9de944a59f22e2958a0bf61687baeec9d78fa8eb2c13a025a10083ad17cf4beb11ff5a75e8e8532525a5efc833a466cf91fb64ef0aaa367aa805748f6acc21bf77b2d519a40bec1a10e3c222aa7bda068353679a56f442c88f066eb86d7a37fbb72ed725916e79dae2ec92cb26f6f2dcc7f268d3f32afe5abe0fe070e49af98757e9de046b3722c3684ed31e4b27fc600aa616456bd16a7132b54465bd6819be99fb9afa258f1ce64e77b188ef326d1b3dd027514d186fb9539a2fc1f6ef91749c389b33f49d5a5240ad6474a02b1324b2854a7194aafea381c9c91e2443a590c69a6d93a81be1225ba124ecec78ade64a70dc2430099472fbb05d11585d8ef5da2340636971b2c8ae97f53ea0755b6b02871914aa717ec18543aecbf95606fd4c789aede9ba075b1a8cd1673471cdd6138e17713089ec68ac323f8c17abda54a879d16445c5a0bb577d06622cd9fa861403a789f344892f6b9119c08e61a23d974c1ab08f159c1731f7c4d6d67da984d46cf4c73833267de5ba1a0d13da3cbc26247fa3cae29b0d9c29092941ab5015334d622d41a5c7a949ed22986a85ebf545174cc0685c32a45022fa0a6ed76feff3b9fc16fe28652c1de4e22ffb6cfd96ef52588c722904f5c200ae2df625266f387379745b5643c3f7a7c204ac6d6cf019fa71f6fd6196316f13de30b4f675420a753127fe4a852a50a9ced05059bb2e1b90bb8ad80275ce8144b255fedea0022d9a905805ab163b236137bebb34fec66863fc24076bfedabb7206cc84e4eec7c5f94d25cb0b8ff8922dbb52b4620af92ab8b9e6c254d2086c2f994527103d5f478cf5fdf29473a5d879a72e2797b291b5c47fd257b950f6d2db2bcba622d77543ad29101d0834d68b41a1e24d5ecd89f8a06faaf985a848c1670daa98622ff6cf9d4fc66cbfdd28453445d26280f8c42d4b09b12e60dc7b1b72de3ea8b46f3679e5fbec406bf22728287e20c80210c5b0e945c171ec124097bf5bb914fb8f58d6cb372fff9d6dc8af45d8f8e9e956da8a347976d8e7a8677dc8f1399948c5ac36e0f7d8fbd886ee1acacf7e9186b7c8afa634c076fed00c1e575700cce0f8ca937a38df786418145ab1489b413ae3f106dcb94b7ea63f027de039cef1eea244345fca3f117721928f7cab6b4f9a6b3c0eed907205037f9083bf653b0fbac5c0c44956aa26b30ed930d5d27be0af55518283417d5dafada262dbcd13aaae7c5adb9c8ab0799ca0c22f0e8ca932d2476ef6804fdc5d7c99a35baa8dfbee5a889cb3f3881662b85a2f5e05fb71f59c7d266d4031f53653ba3fb86b42cd8cb87a9dfb2283eb0c31e4624b0f31d6c82c2a11b5d366d084c0bdd5d56436ea75eb17aac49f74ea7301a95d5778c1221a1db86ce8113caa88d2393afd39ebae45dd925d9b68fd4d3e09bc2d80e982c33c024516a3d8b7713d7dac88ab497a341179d14809fab4841adcabc4ac7586c9809a934b39284ebfb18325ccdcf9d28d31d16f2866519414a42c2f5f5cf56f844be859c65f4347a290d4d701aa94c409c9232b790f002b2a4f1810f6ddea0be83c0ab37bc962c9ac35ca5859d15cbb0510ea06f8cb81c36fa965ebdbaf26350c6c76b625cde5e2be0f4dc8f586d0e9575dc8f0e9acb58f049b1f8fab0a342677faeb0560201a89f7815f13df58f261bfc9d72dc8a212131cc3de74339ae8bdd8c68280f6f1983f0575e74fe8ecaedc1d5b1ad19c9fb9c34333a992c29175b4d916f441c973707e174b4af5514aca99b0428af3b24d61b714d0e65dff52868a85ebed84d53607fe55528d4bcacedb3ce36096654f5ba31429d01009125fa74f74e9639371dd6bd8af4ee82fd08665bc201e0630751f0c0b58e484cab77ece06efa107f7c045520cde5e2a5fffcd63f85036d9d461c786be9ac295b6b420da3515cd0f5c2ce971a65e359803f8a763d95bc19e5b1fe7895d69e9b77a6ec9eb03febaa797d41d4f623b1396259a6810cf488af11ddb4475e788003e8b519829f8c0161aba4a335466720b796ed3abd19a5407cb7eaa5919754832c1e48206b138fba042605d4e8d9fae0a7ffd2413dbedaf049987e15cfe1fb0a253bf26ae51d68bbad7ff3ef0eaf5a20ddd6592683b9878242f3bda1c8f3cea991501145b1a455e313cda9634444b56ec733e36c573f415c4370a3d8cc23559939ca85abbb1ff1e009506e34bcb0ba931092e793313b46d58e46e66b44ef57854184c61374dade8361cd19081ff3e4b0f102ea36d0a4efffefdb13bed1292898ba006c0ed16acf135455ffc0ddc2ce5f3cc770a4c58b2b4c1ac0eb7988958c5b876d3ccd69dcc11798fad689fbb34b98235a90b594a12108da5fb34599b9faa5de86b92404d24facd4bcc62d66e8b5a886500f5e1d8bd194b4dac13075b0b88b2820e02c6eb6e42da008ee19fac31d94af428949d4846128849387c1e7d9d641f553fce387b7ff9858e38f43d3b9164f19f101dbb30a54460d6a5e2211b6dfd48b37858a1e12fbd6f7e4a18d9aada9a19d79a35f51a11944e311afde5a1046ab3ce591cb7b57b1110e790b29709b5cad925e97e6f9b1c2f32509e4820eb31a7158b01d83825e49ce2f40a921bb0c9b4c6ddeea51df12f0eff092f0abaef55d7c2e8c98ea919bed2bcfb7fd2964322273bc4716cd3d99c85d3957fd7c8d6ba4bd23820240d6093c64c8b0be85f0a31b35761adf6dec0b312f7ea1359e7293f56f63a24cdb9f34223b149b30acfd9c2ce35ff692ed05a970c8d94fd6d72217f59328913c58b170cee920f508562bb6ae26b2849bee6dfad2ba3fbb221f3260f12ac38692f703b142bee9df8107ec5ce0d3bfca07a6ecf5127a91d7a1895964e0fa8724e09df20ad4eb75951e1a91d2e3b3b09a9a81e044bd93664f0e3d44f69c9e201badfd901340263b72eb4f0a23f156b477fbb942e037e6e03bb4ef4e007834de1ab9149913bb86d16b674561225c75a6d36431c05222a483f86581fe8a66b86e994027f73fc6f071df5037818eb4c6ce4d1274fe23e8ed066977c3e62cbdc6d666ef1561688f6737f0463c12ed8e262fd4b5629b1c467e3b80701def442cabcbcbb4c14778a9a4426b271226fcc8bf42d403370a81ff946c84612d6413fd9c52a1c9a58d052828e7db145e1c8eefeee405bbbed7eb8a0f97371857751357fc9d3c6274c50a6759b51103eaff22f8dc249d1cd36560f029defe2e7935dcd5ce9dfec7f0dde93adbe7bd52afe7a2c337ceaf5e1254ab2d98e68a457873c4fdbfee2f5fec575b2ca6356b465e6899215bbde45f07a437351a81ee2cca6eb807783391f4df190069360813f9011b30f47eb0cd24c47fdcbfe9f678157be1865195d0a811e174d96141ffd55c1ae693920923f7929aff1ed27728b8a12dab972a10a3783123e40547380552aa55256c1faf3f5e58500b35249e4a040e58836dfe2c71f4b9ab007da7c7df902e3c427bb1b85c38db9a90eb69bad97d82b17bd09ff5bfd32be8800a49a839b2735741b57705651fa6cb5b496c497bcc17be0845211a1aab3536b6fa1bf83f338607844d3b7fb545dfa11b7e211e5d3c1c194f339fe112df013a68129c8697bcfa19a9fb3ab4d3b7de0722ccd44724170cb719b439441d33936fecb8035dcb95d0842bb0c2f8c6ebe123325bb0e2ad518165d56f4435db1bc46ecec27142960238ae8defc719ae0319db9cced1470774c1154dc5c4472b4a549c7f01659df36c6808f4d4ca903091c62f69afbe640126c9d327b6c77f983f1c728ff23dfd01ef2603fcc3e52ce1684a20b19fc0e14e2c9a8e8a6913e3102b26390041e3fd64b14a7e0eeabb974360e399aef1b6544be432c0110c78b5c59b1f5cb7bedfc502d6a922281026321a50694546233ec9e9e3cd4673155da4b209e3c5e5a04ff0d2c2572bc3ffdb39ccae653e514a855e8de77e635351653da6b119fa78424529ee24d31a3f6fe57dad0ad633d22f6fe46ad45aa1c670777ac53b56f65871485ab9f68a220d4914fac332841857a427f8ee846e2f357baf364e3cc14f5885911ea820e1ae6e484a1ba40c194fc7f627612ac17deb54acf8426e29bdcb5c28da1f39e07c4249a0e3b369073a49ecdc3dceb42289951f8ec46c625014127682d4be3749ef19daa92536940a2c7d693ec443c8834c80dfcd4655a314097ce0fd04008c541b5d2ea7a8f2c6d6c30a918b65c873d6d6517f769ff3f51524275ef7e7d73df6030d61b8965198b55445317d16e7f4a86e49649306c1448d1cdf18cf16be3db803b17e73015fac2e94fe1971193e8833fea460938fdb1ae50dbbc49e35664990032dea7d8e40291a6112213c6317ba284c797b02b9306fd144bc6d764352b62f52f607861617aabe574c3cac70b9a4d79da3cddec18b72a9da11909379d7f7dd44754ecbc0221da6e36f60b37aae036543d3bdaf1c05f9213125eabe5d3fa77ed82b466d0e2e15ec3546ecaa0c1139d72d622b5a0376ae82595ce7876581f968bcbd2eefc3b657b637370d5e7775aaacb8fc395bd3ee295d4fe529edc2c22f99477776af697f4950dece9a28c7ce6256e282e57fb4398b539d9a5ebe090a09ecb282f7ea29ce503f89a4de432f3b87260e42ad5276f771e09d98e968c0a7ef1a731431eae5b8c70957c80dde9866292ffd4498b82a1a6185a67527d561a1c57758919565e87320d298885301a87d7afa031cadee48a8d4417f11f6b9af0c5ade3dfa2dab53d629212aaaf8e25cd0342480fd635d67b25285f835423f5de21b91d686f8a632b670e9f26492cea9ed80fad7def6feab37a81e09faec8fe5f34010c3a00d511cf54613ad255121dec757e4bf1ade0b278d0d733e22a549893196dc8d8f08a121d17010d9cf4d971af2f6690a26bafbf4292f3ede42bb0cb1ae26cb87535e4996334cc378522ba1bade43f8417067f6db33d905c54e7de2c7ee0a62229f34e580f1ac323be05ccc8eefa77e51d136ce863992bc78ff79d72e8b6c8b231d248aaf607bb37a0dce0dae16f1ab0fcabb3decb3beb2cc3e8fed4d54fc9796426514eb07fd03c3fa6f627316d1d2dd24e5d605d053651cd8a64fb00bd427d3e0e35ffe13b44331458054774c767367299f4f3ab252554697bb9bb2d68a00b251e557eedc8a50319331bf7d259ce9bb45b6b749cc1655f99062d1d1ec7f4056b3b52d8c2e709ded7cf55ce1da1c17bd40551ab1a7e4d709e99cf60620e4f0a98e0af2552877114a2bce050e209388d978d23e566b669c7f6493bd1643ea4492dbf75463323aa20298e1dd12a230e2aa636873bf902da368e8e8fe8b0326c3e10ee118dae3d8e44a80a49863c9527f8b21decc4aac9e0f689b5eeff259edca350baa6bdef9c70127657ac774b2a776d919a54388d86e810d4626737c7ce4534231d55adfd1e56b9108770a832cf07c8b31ef0f0707ce8f756a1699bf16ff17152e2080a1a0de08201f36cef7a68acd8a0f1e6e8f380aa275bacd53a9944d845f92e686d1403e8549dd80af08e9206d421cdb6cb49e4cbb5561687f2b754f340bb26b2b3956d4340de3d394207fb3512b486b59c9bb764d6be6417e944519ce7e00c76be1743cefc1d54f188b104b73700f636492e852b117862ba4b7388d7e4c87c42efaea1cbed3281c0d2c7495effaa564bd05bc048e37d6966c1ea9d1532f3c5acea9cd0a7ac56db7d09fc2a56528855125087d00d613a15d54b6ca944670de33ce6774a24174f223852069bb38f09bb6794fd399d97db1c35cc854e94588deeae40fea88829d1153e92c1c82a2645acb78987674c8378fb647dd72b2c96ce46988aa1a5079701e47063aaa927d8a665f68ae3aa10f6a111a52999e7f7c81945f3382703ed821f56a0e0d4b456175fe37f23130ebb68f36990e78737049c24f56dc8fb08d9a4054d05604af8b7969ca9f7e1cb5af3921110b11b098bb69bdda84e8351ab21f51eb11fe353f782038fa648a16a2a969a25f70ba7f4185b15bea4c33e9d7ff9623b5ea98825f5f57555afcb4911dbcb1f447b5fba67e9269460e4e1f2f0b44b39c8e929995321055bc59b6f15e6d494e152d3d0f3d22ef1fd929dc885cb8f326f4e5da168c1e76ed21fab6ecbe5ce2c3951555ebc0aa4cf70d961663f574469106ad530661374b0abe31f4615fb00a774ac8b129516ff92ce8f1657beb5bd78ecb0ada58586259f7344cf418c8dd59b1eae59f6e1b027bbaf21edc611d46ab045981ca05a845de6ed988604243a836f0a44891b657d2bb427ffcd31284e9f3435cd7a527e3ff919dd331d46b39047155e99e8de3fdd7e13d16211039f28a5aa880c91bc6bcffe0cf691a0d265dd42222a625e76163c3c31c0bbad0b3d5b155d3a944c50c48325293dccf4dfe95b62d659dbe9c171b2bf95bec4fcd39fd1e5664870e0268fe46c01473c6a4fd4877c07fdf7c8712a4eb31d0b2c9925dddc4ba4b9c4d697b0c4a300b437064d14460f1920ee39b7ef0643181f7da92f82156d52335fd24c0822a67b8ddf90b2a0592d58c949529ca915db3c59b5ee410955ee5f800a5b244beb93242554a9c4263fc21d09e693b6ea622251cb3a9a0e16ee25511bb830fcc09183d40e6edcfab25dbe0c1af85479f7162b4eab72c2b74d26ced66301692ee6e057df31547c446c67ebfa3b5b688b6fc654df2c98826fb6590c09e96cbba6c853cc4338e8d24dfccd9a065f7e16f6ef29ae321adc96ae4b0ac52cbffaad01780cf11d529d3585a2617913aa783690e35b41e2736edea3b3399119aaa5107ca695ba8835376e5f0ae9d5fffd7b9999cc5892a01fc6650d00549c636116cf171d810e9af9659d1527c841b61efa5f3c04961a09ec462b9a559ab14cd8bee9bbd991b4753781c681cef60381f3b23fe0fb6eb7e85e55f99227032c887b99fd67c9df2cfeebcec6dc1ef4862453b4bd64865c5f91c9f4f8908cf26bb48a10720d11160e1437567d14efb21ae701332c425557c06d7e3f1aae7cd17a0021bbdc5056115f561158ce3a97ba70a883b79b9eb8a08feb476136de48b3525ca37c4b91d4cf6fd2af8459d4f7783c3ae0e244220749f62e67c0ed9d75fd5d83eabc37a1a3bfee65019312338dc777efb258b576dfa51c1f86d2638b05d7af2c7dbac281cde46cf243facb5293b3286f427f2289dfb4d202912ec5008b32f0163c3a3a94445f52facfc9a8008e189fe3895c2bc22a6c6c1b313b9408c93f03db81c9cf610d222223e13fef6de9ad76591d39326731063ebefcb2b9104247d27387a5e43d151d8455209846f51907a298d5b45bddf9686cb4d8916881136046f55c13f76e8cfb826b3a7009a4672856692a8575325643a9c3eb9083d77dc263e5b3117d80d53e8fbf3d0ec1140130ad5ec9006d0479ebe4be7b13835e48fb967067e1fee9a82c864dc848e7f4ade91c0ff282c8a91fdd53e469a29bcc20aceefcc56c306855b01aa36a23dde76f5c06999ab7b9affe7898a45a5320ef30ef7f552fb6f6accd960aecdb460a9df799f5ccab84632fa4a9e51be4547456cec127d83164033bf552d17ed365d2efe8a7891a21f4d3f6b23a98f2785091fc8247a40e6ca47a3cf5c49a1d5ef03021e27bcd7bb2a5d7b66be2fd9f019fa1f9c9f04cafb391cf309a20026eafef8d466e6155e060029e50da5df58c65f6da412e6fcc8938bca7c41b36bdd4f79bbdae7ea1e809f337c9b4eee96c34e311443fdb91cb4a12e373049cc3ed6ebabad7eb67a352aebd4ff75f08955f9f8938389a230ae5d0fa175e949516987614eaa6473738960279d025f0a4953b0f7a70a140a6c50561b9fc493eb41cfc20f2c5637a9713e9cdea691095c13b847f8b2428ce97070aa64a811545bf9dd8e3a8b8174b510cd757ad36851d7b7e87f687de5571a212c1be8df873507600e2eeff1c17e5502aa7ccd90aed30a3b63568f40a53ecf14191390b136fa4e2bdf2f63b9f1724780a2ba6f90f453a3df9d0a81c23cca7ac6dd2641cf68e3c7080969f096c0ec2c0842fe2fd261254b22431a7061df7919e9de861477283f25949efe56558e59cd40575660e13257fce49d597f8730c7143467dd9ff0854e801e8e547410ac873a9fe6315c7dee3a959182823ddc7582bdf69e2fd50b1613d2eb140e8bdf0775aea56ea6dc164df5133226e61ba44b0faa0534717f717d17a0ef3e5b47317242d289d8d85a7ea42206d8a17400bdc5630e5d7074efd352096603704799dc042af72dec88ea21a6baaec61ec9b7e851e0916a92489047f13cba46392beb86899b53fa4444ddf95165418368a1706eacafbcd491ff39cd66e31ad66a2655ecd1ebe6d8031cc2c7ef527d10337b264abdc302f6e8f75fe42d480a07fd57a631880c26d986eb1cc52aab482429fe9c9b07f4a7372381d429a28bbbe045d7da9ce47cb16f156b8fc9d82b51421639f357b08182ac2652cafdcd784a1afa9dcf031d27e954ef1265f1c8dbda2dc577cb63fd66cb773bd51c6b9761ecc33530f1b852b267f6e0a5fcb8346d2ba63d55de4203300a13cfd610ec260f44d30dc530944bc81018c09865bd5509eb08b888a119eab063f0551d2add131a53fcd8a3eb2a695d374ab8fc5785ea4f87ea881f998a26b912e1ab130ca20201fa2115a7ffa4b9830dd6b7a1773cfe0568b7c99a6e2e3a3bba24607e6586f83ae3347ae5cee270fd3bc51c2ae3e0cddc8f999e89d0639927832004a3ff04e844263ed14f9538182ae2ff6b2cb922486e5aaae8c3247cd0ebc0354dcc977dfffa1c232cd56884b8299002956f288f8f39a65eade59e656110d517591e7ef12ac3763e80eb8a06eac5bccac3ddc687934904e502cc197957b29d503ab7b43ee190ac72aff2d745fb554d271abf66a8c2ef1b434da60f9d6b55745ca3f7af4a10d98a00e79548d2a379d37d5102f0dc20fabfd9c917524a8b8211eb9d22893d7418cf3b32f24166c3651980e6f0f596a815001dcc53e4c45670a73b64bf3d4f8e9d995e752420f52c84ff15554dd37ff4ae777de4330e94ce2d66566248d3c81282667610628b24444aeabc2e3a163d3f167e1f3e15345b9397ad0b51b2f14545d54e457b11670525957b480fbc63eff999c60cd3f7e31ce1367174805da4edc86591cb2de0769ee9a476b6b05bda15ff25db7f6fd28bc5143503acb41dbb52c7a84d21adfdab148a932fa93979f560454704ae1b32dd2453b0d442c54453cafe16229a069c484e415b1bfd9c0cf4166b920a58e3ee086c5083e145c2d887778e3abb51a37be2e0992e424eacaddaf2ca86792c8b2dfdc638ff69dee66db8a6e4bb8c83ba7ba1fc572d2a72455ad2b48b0e4ad2215d8cdc7d8958ff6ae65c000cc43d465ceb448203b4db76d581c10a0329649379277737e6807e73be1aeeb10a00079c529fe70d9290ca25c0454449ef53cd1f53503aeb2ac19c5e625f0d86ae44022d41fbffc6560f6d46161f6bc1ee333c3f5b158347d35558b11e09a1ad3175409a0dbfc019b934c2a0ec6764331f980c21f292bde9026ccf10fe82af5db73a2e598bb3a2608df696bf4cdc372dedd2273b4bab0daa80cf4a988250840ad41477cb85c4c0f46d0b02987c7c645b802f2f1b23363ff8a5c2ba5c9f891c4519a8c332c45694d3d95b32bc06ab0aa99449429c82649995b99299ec29032b56e44d83f2e420bc63d031a07cf811c3abedb1d02bbe882224a27d77684ca673f11a96afad32131e0d5b852a78332742f5a40ff58cf452fecf549ec475c5e7885b62b8c47bf77ec7a97d19d5df3ef05053001f4e63cb90e26dda7f09dfdc47d007b9912c53864142861ba58c0f060652cb85e79410566782cb02b0428702399ba6dfac3d19cde57b7ac3ca4680442835388e0fffdd2029f2d712c25ff1509b661808974c2df755c17e616e64693f2cbe7a58071f4ed451838d0bc3721c9f4f2835f7d3fc60ea5d9a398c165445abac89843bd9c70f267c6a4468db4c2c1ef1c00d468251fe7a4faab3ce9d97e9b49f2689be62c9e55ee014e929251ed5f025cce8be19674c68159253156a81cc7274c739864d30f321e420f30208fbe951e4a54f53dc7e7ece1c2c9376657d3a33ac51e52904c5b0ba3b7e136225b0b6d58d569533b06402ab69a11987cc3ac7569294a1a77138f81f4dc6120f3289313fa9c2dc0d752c191ef2b0c9088dd5f1445ec442a5899fd2ddf59ff071d0b5a6a623f8cb73c1b947e51fdba394e3fd7fb1fb610997ad066e5e0b30ebb02ec8adb0cf9691bb1f4f08c82f0b3515b542a0dfab94979da95b84849bb49d3187fec4e48f2366680646761dc4280f1fd2efaa7a81d1e4aa4b5d32f0be56f618304d8e7a0a3dfe90bd11252f1ef3abd39b5161f810a05f2a8c394499fc0c1dcae42ddf148ce8eb00d01e985f0a472fb2da0f5e034a816ed0d0981bb69db9497000d707903e18db4ba96cf6719606f6d229e6f3f68d1f3f35bfec19b421164ffb6fcd8556ce198e2ad88c7ecdc235c509ab76ace965764176fe8392e164d94d09e7bc9fef693dee39adc1e0a92e081c52bddd67fde5702ac341a3dd353959816d280a06b47bd7d71d11d0e8aa494831527a17a61772a7b593707562e53251515e4dbaf703612d34886f6dfd5429bebd2dca10ebd01cf8bf35d87b31b23933948ed30fbe92c4ea89266ee9c8dfde1d91df41ed3713cea925e219b3b93f44e0bb736de590cbee64acc6b055eb2805e32f2cb694ce3949edeca3570c47ca5a92876e95672dc420b98391d48971042071e8270932d1f2438f4c99a8420fb314b16e599acec9644d7126a03e6ce65a20f74138114e896f3eb51dc21a650a6648e5ac58e2f6075479df424f3f7438532bc88694575bfb5a297829cc71e1f0c00cf8f892366cbe4e017e2dfc4a3c371cbcc616ea5b2c2bc567edd307e0d48d92ca025bf42ceaa7999bbc1aae9ec9635a3da5c7a82939875ca773d663a36264bfca4542d30462a7ea60c0573fcf6f9cbfaec5300f6bb137516bb08d8f34a799f816206dc43e9d1e5ef891a21a7b4ff24cb4cfad6f4b7cdbbeb9cebb3c462844a91886f217c35d3430325f740b909ecf3dcc5285201d1bade7ae8e992d8de3e05982508065fa2973422671f1224e9bf66f92c74e5ef6c6c9bfa4ca9fa47dd43c7be45064f78c70ea32f9a38280877ac560c12a77688bd8602379ef465b835af87e4e71435b60503153235d74411869ec2c2450e6cbb3117221f53a0061ffb071d349d7563659819cc74899e2e3feff07867af3b673d1dada03e55244551df937e3db1b151ea0a93eee9f1cae729b8aa23186b0173100d36279806c5c2f1b7caf380eb78420b6490a7c65078662bd5f6d5f480675bec4d3b4757941f080e6b988bc88ec97f44759c6c510d3190865e7a8e988d5e257da1e63ee683ef8ed9434406db6b8a75e2c18cf934fbd309e92fddab28a7f269209c691c61be7a16bd3682f6d5c5a10ee38813c5567fa1c40fc127137fea170fd41df05e995964b6c74063edf7fca9fb75bb640c86b85b1207f6ceaa4d6cb40a1bf18158ccc312f4d72d47cd6190c1822826f1d56bdc2792d58ded7405dba314ca78692c5468570a0832ef38a4c9d9d168d01cfd297ea83369e7793a2098dbde6ee5fefafe63fffe48fc4e7d6a8a6db501b864507f61c206fed218af8ab6160733374d89fae8c0b3907c89fa5dba3ce231bc47332711b803bde246cca42086b7ba4d405d8f988e89839d28ddf713f2be0b78c4385521eececa5fc233a95affcb411bb1186c9872818669e56ae17c2986c3b81c4a6332b74f36397d0e9d888920a981e4159fecbcc2b28fafffd9edb94cc2ce3e5f1d6df5f7a56006e1652cc6507304296bdf6121814cc491a94b0e3d11a443765b34248754e49be4ceffdcdb9bf37edb79aeb2008f531ebe7974065fbf5098fd64325360cedea94f908262fb47a19ddac16af4ecef4f1b783a24f87605290931faecf6af9fc6bfa8d08d8a1787df525dee48db0cb5ecdbaa25a00be601d61036d632934d128813f88a06505518229df5c251e3f976c433e97c71ba16691b5b60bcc8e1d9642b916fd505db036c998b3ef81099a6359a7e60becc803dc625cc2ab040126f04a51f2fe4be3e1d63020b7ecb493d99af93a7621ee7dece9eb16224557ac4c2bccd08022f50d77615f8b2740164a0d168bb4a4e4ac23a4e2642ba77e0c11b008f9d5037234f821804cd4e8811b112e3816e07fb43b18f4a1ffc2f78134eeef9a3bc828506a064a7bae013a776d012589fd26c4a9b7ef7a329c92371bc7e1de8aa925b96a429a156b22f1d96ceb93246a6157da9ad0ff2d57fc9551ab16d04e94ad11102852944a5775e253d1eae4227d44e3145656fdd68a22282e95d4656fb0b833340d7b3629b2cc4af533e8e6f05b7f60518f8dac851e16ef1cfa48fafb1b04d0fb53773fbb528d29fb4bccbbf1c1ee29dff11a1fadc460cf297547153948475bd8228e94cac8a774326973b13d5b2e4baa3c5f337e5ea10f623ad60c1b7c421a479e9439946c54933819bc256d67a41cf24285cdd6ffb2cefb966793d3a658c6d21ee433a466ecea5408936d591e81a66b1962121aab9769582bc4911e239066714992a80079bd2370711dfc0baf6413a9b408bcb2f795142ba65473c7e4f738a2cb6001ec0ae890a620c6fa56e5bdcc73277e07c7211f73f1f10f7a35b96d917f5ae3b2caf4cd5104b08c3395b65fd74cfc1b1f413ed463bb622d0709048167535036e716561de09dbb6c4cca1c2c8ded3813aca108c992b9866dcb54f91dfb326bf6740f6f5611bc6108174c28861868f83ef2e92071f6aa7918ee581045efd5db4cc1d779d40ab05ad7f947804bbb490291bd3f95620bb8198d9c80219ebd62cebf767a49abbcd68bb66b1419d0aac517abaa835b4eeb8c5ff712546a74809d9efcacaa6725247aeda0bd24f0727a642ac5660b4989f389e73073a454384f6afa56f08c3495d5b26762df9af85b218458e64c42cd79405fb286886d41092c921d247f940a0c722c8a20d6ff92b130f45ce76fb93770d210ca9e970542944d8c614adddff862c66e71dcd8f060dc0ceea6f1a5d269e8a90a186e2b022c9a391bfb86faee4385aa8017c0c04e2eb1ba1c34327e3e4315bae2d62780824769e133de704e1d9f1a3f4733c15c9568c27e3fd3202527d068d5a41b97a16f07453bfc33120cc7cd644bb8e279473566ae7d563bc540e344eb7542c5473a4645d101569bd6311d0f2368c13ea343a97cc8cd4ae026485f62b6f63709a3716749370938ef5fd86ba974b5b6101d7b82afed32b7a64e835148cbd5dd6c0c9effbcb89efe4827721c98742d6fc8e3172acabcd40c50dd66e70775f68673c754d114a29bdd75c04918c3f69833ca703d3c3924909b82526ea1fc6baf7eebb4492bf7742c6b883d4e7df768f0ffb7834a560c48e52befa352110b7eb9799c73ec8d64fbaf2f6f696c7dd2f4131b60315e973eeb692e150c7ca5b026558cc0a14095e38a3d6c34bdfb627abece068bb1c554a0fa5dd13a22f725d0e0a00fcc5acb1761d42c09c277e68bc4575f6ecc9f1e5251b7c1e0281d15d1b352691a8155f196276b89b5852ba1c01cd0299e971b68e1546a4f51b13dcdc721a0ce6d6ef940d045b8ff2bc8ab92661a250d6780d37b3ee23c4c3eb0f5af50d18c53ae2aaea988313cb67deaed8aa346a77fd6e476c2f55b43ae3696a8dcd6c2b866df073542c2d671c08fee41e08f646187075c37aee7e3523af0fbfae19cb4dd48e3218c856db481e42cc63a24c5c62ccb43eb71d0af73b8aaca7e36d75a9a8c647a00e31d3f91aadefb1a48bb919d72c53c8f4dc8d4ababaf15a84f4afacd557ef869d51e4ed44f6af495db9462aea84c6be6ba00c00da1ef6cbfe89a02524fee9d451e4448bb744f73a2c2731117031b79c3cfa51ab472c629185b4857cd98f77d9c0ae5d5165b00eb88324a37cded15a1ecc708f5a17c717d58e09d7bdfc2dd9c9f528d2c82ace1b471d896c3f62f8ef8764140e070f2936f03c1af4cd9f0f2938dcde7c2cb5f36c22603d2635f74270680987bb14cc919d9d44e3df07579130a8a19f551c05129e9f7db187a7b1cd770e67312b0cd0c8860607285bdba82365d887b0cae1d2221aeeafe094ca30e2b1f5cfd9c9efb4cc68d71ac2e00e7a70df05b0163c211e984c3b946e1afb0393f25825bece62cf8597d1cab8c621120b0a636e46abe51ff4b418b425a36bb74dca6e2bd3018ba304c87ae98ba152e3c975a53565359b29c554174ad4a54f2a2ed16898a8413dc82fc9526cb7a3e35c0c345d73fa8a59526854f612dea17242e49d752a125ed357b5f3a7f3443fab4f1dbdbbfd018b2c8d9c5ba533e65b3ffae6d87c2329af9c2da98ddbc830f81d47a9e902d04dd92a9c0b3af4d1f5cfb78db5822e886a8e47c39bceb74dbcd4f0ab69902ec7fa1d83e59fc8796df07bb129948b27d70ce25e57d65b41dc05b3eca13ab0400c95a81fa374cf75a41d44319bdbb07e58e41108c818c3be510c40880903107e6ee6cacb9328aeec3510021b66805944d80d10da2c420c9325ab3b58f43317a215003d2f009537dccf842c2233127846ee84a51d64f379c8d8c8551d6d25d9f619831f071d7c8e91ab783afbef9de312be86509e5065b2de0305c98f0d7cbc9d7108ad3bfc3a4ebdc32674b7d20c022dfcbfb3076375bf3209f8dec1428faadfdbb99b7c87f0d93159c94c83b5a7f0361a4f74899e6c529c8086b49a7592e03151f6e3ab3e357bea39049fedc36210007587fa729261b4c1f5d28a25dbb5ea9dfc99e93f3a5f6a5df6f8a5e6ce4aaed43b494255f334c54e09827099f53614dee7c657c94f816c8550b7b3f75734b3e2faa58666af20faf19d86ba287781439dc564b0ed97ede4325a175203daa3d42fd957bdb1304fd263752b483884c79489a729974f25315511e57520ad3a6dd82458c3c161025b111ea9844dbd19dc55fabf858af1b310a68bd42d795e2cf529c4a0737ea6913e633acd09e4257c06fbd968ca79cbaf126401e715e28dfc52d36b3b4a3bffe1fe0553c6574d4fec25b7d958b4ca8e3a1a634c3db6145f35a83f0d387d32a66dc733926cf2cb9cc6669c660eb19ad336970c0215297790a4610c986fb460854b2ee3dafc1fd4a8069e454146b6d466d5ec98ec93ae1c5222962dcd0991e6dfa1448f5091721c60171a93120d0dc665f18484b796371fc8406829e81dba32563724f467f000c9b228dc5123b2269c90cb8ae3a47cab9dafddb3034ab1fa03fe6d1affd651aff35dd864352e173d7fe275075753f697eb3a1657dc11764d8870fa429a0d29df8c9b3abb34b1f35352a1d9ddae81ab5f2d90a60cb31157690a38e16e6784a98c0688d1190384fe3cb83a001c11637cf9416a555309b15f726b361acfad6f1371d2aae65bf9e6b3fa7925271613a43510de3e5a2333d64ac4bfebec45c9d0bdbb5a2fae1da06180fdbaf147ac02d73357c948971bcbe9a2a7c5c39f64cedcf3990ee65b6b108d3187b556796def0a193903a5e8bd86899dd79325490ad74ee7002f847eeea08b8cd99c2a2af2efe70373b7fe7c612bf1018318ea87faf369a0a9804dfb2c98c4fef8f6232a20d1877323bb09d5eb244d9cbde5e59b3bdd4de61c4d4f3bdcdfd72d1677bfaf9510e7e8be1edffeb24d3a3a7b122958f9efc925a5feef6ab41e842753ec4ee9b607b2e0bf975b7e5c5415961bf288fa1653d6830856420c05ecf960cc05f944db16b334db4253fa86587212d4507e823e92465af2db83654b6c95f781a4a6bcedf2ba9183c57b16c6ad8230cb0f6dd2958ca2a9fedcf32d124f0b41abcfa87d43f21093f18733224bf58647693dbfc34d93ab935fb5d6813f7db12fe463dbd7b8618531b904ea95e292a015e8463ec82470320f8078f05f578b159aa6d829301f54f62b37378df2d2e9ca7e427eb3e85d72e0d04f86ad8509fed521b848e4de0994b2f345e69a0e1d6f2cbf1e70916f49c55f7b377a11e38d9b2653cea48eec6e2aa2f923fe1b615552d671a8419fc2dc50a5e7165a58007164462a570f9cb0d33fe2fd909146c7040bf811609069b5487b76d7c8f0501cb75fa706d662b2baf846967194e944964abb0aa683b35ea9347d3fc250276be4459508a2f1fe78638e40271713ffb10f6cf65415c633176a66f18d77cdfa4dc0a64e923ea800c2b8c7ba8afde945759f7eb69d9a6926a115076b86491e2e596174c6104316c7a1f24666ea5baf044a8fa5641db44fd93578030481011dacdf3f5950797491b12fd26774b3bcdc791a81e14278145d05901baa56e16b59cbe9db4468ff7e69f9d2814c3605457cb0fe445fe9972cc3cbce19763eb0409c22c3ffb643f4e0a48981ed38fe216f0a5bd94ac375e6f9e39b9f90b08978ffc87af48aeeaac061e48667b495437cdc54f90a57abe42a6bb88ae06fa9804cee7ea0b3e5d18bf047cf7dd88c13392c134c234c84ab7f1f5b2d55956dee08d96d332a22a61fff7d19335d5959938171c342973dc6441b2ef176041643385485481f723f3d4d3e36332baf3ce5ce55e33671af478d30390a26321320d213cf6c8a39accc9d4cf9b63da3521b9dbefc882e5865c3d4cf0e7bf64b7eccd203fb8b7d0c6b1be45e9fc1f11d0208160d66feaa6b415bd4586e727354efc021d04569efeb7d477e1edc1d35a943b23bec88a9e0f0cc8da055582b1b77bd1f1047069df475bd0bef74911c81cd64b6edbb45d6d5789cab6d0d591e21dbc3dd99877532f8f41075647d2f9f392d485872629b15e97865f59e9a2b422b83087f3621b7c42109704fd6a76e63af3596503d20ceaaa32e64da1f19ffd7ccd612eef7298c1f4ade8be26e3a2dd6dd7448936407e805136eea9d401e1b34d91eea53de0b7a0b7cca8191bc98d498faed29507a0d1b676b74dcacc3bc19f67c51a0ada63040b6d3b9b0063b1fef2fb7ae4b1f8ea1d3122559930264aa4525ce08d288473f51fc278932f4b139d2d62392f348e4a0794be107c6de21a355b7ff846c74639cf43d3fc0681d1a26950cad8a88df3fd8ec4f3c24acf08f2e5ccf45abae832aa4c9f723da40168365a14114a467eaf74a69d339758af15838391a821c58b041793c092764537f9fa6cef6ca879b51b3b36aa54874099bc4c4bcb45661d08d8af5e85a2f0599bceec64ed922d79e207c1e07dd30563968292e22182629670fa2c5bcec7d75798f8f4ecb2facb99c692afa56a4412a2fb3da049edad4b39e7567cf77fb1db9a22beeee1902bbb767bf7ece55773531b78fc27fa253a471c92411285c964c23e37e8d63ad1b9e61ca83f13c863dd3a52a56611203244b900a6c878a7c0a034247b0c23f5acb0bd74d9c3e7a369c99a615f89fdefe8ab50d3ce442753a441a2b8fb14ffa70b0387ddc86d0fa8ce38a9e400d9904a17a446fe389169941ef5ca4530bd7bcd164e0f1500c9fa8914f5f0d23f0a8e187a80d15ae8b32cca6fb4a808d56c266c62bbca04d3e45ba2042980ffeddd56ceaaca9403cc9b94a35d2d11c11e8af40083984cd2f97ab30b01c7691f1b69d86f1d7834372e13e78c7ed4cbe51e9902616b2514e2aebb13686315a4d88741893bf3a3d1a6b905c94431ff797c1adb3de1b365dad73a9fb0f1fcbdb043e6d837e86919d1b787118cda0d5ce62429aef292a966f86637854848d80e3917b80b5f235f9df31228f338bf95e50b603c69a5a497a8933b7a6936f7736ed22e30a9002c8d883f0aac0f9cefe7cbad3d6e89e96a066b7fcc1338fd4940cba9e4551722a59754ec0a54ea096b48c805237d4e400346aad8af07843d140a71c8c75c43be11f47031af08cbe945faface509404445a37e14eb87b872d851b7f7f6c918a7a56b486c7e737887803599bd2ad50305382c28d1e523e2fa2db6a2ba3986c1ce6dcb8d0690deaa02bb197b6b247229d0eed500e4970b5230b0c0dbfe829ba676f3c4df643f2290c629bd103648680d950a007bce61742ac3e91adc3d9e366c19fba7072815dc725ab01e7703160d4572eeb8096705a142313b6727e41a60b7d74b1b6ae9d81f69481b06f6d6ed06dc6f8bae214432e9966dc2a64cce97a43b69f3fa57554a0bc3795453c85efa474e30ea2e3ddd7eab3240fd397b6f539a0770d5db6a6806a3959a38fa2856de607e68746fca6d4fc611a9c0492fcf9d1613350eca88eb59835b00adb56a6fcdfdaaa00c23c35ddfb47abc5e3f024eac43462781ac8c62ed29a87e57b8485e1a0e87f10d551fad8d9b7066955018254193e3c41460b881095a09ddfc05ff50da946807b3b4f2d6bfcc99ae6e0ae5d45600f63522a9d3977906db6f71fbdcaf3397e803237ba1048a87d5bb2f117e06259595912e8e21e1bb192aa84f9f8ed6a81952a310a2b624d27194e17c3b6407617f1ed5b287b6eb94cf0024dc4cb8bee3a34675c2cda106bbee563d546f3a01ff88d99a68036e22c0c1099aa80e6413b4aa6d9195dfe2e16a1fdb8638f51ef1c374c2d0c166e747349b5de08e0d16cace7c7aecf1b695976c2f6df98babc83a464a150bc497730716eeda22d5652aef30dff5fb1f33cb924025e6cafb6f594a5f0ac070a7462465144d51d7dd907a782a76aa5644cf0751fc4ac7d0c680c1b5000ceb661064dda98a0f657c66ceb7793a6d8379c41033d7ce297bbd0704881167f9a8e574e92c84a2abfd452c1dbdb1711366ca5453df7a5bc6825a5fb9d34a758b24252844184d2bb3f1d55b485970a902d5b6cf5949050fe612766b7059b8520bd753ef380a757c8a495cc69672fcadab83b4ae5c2a8b49c7d7f4ac66c87fec15b0de64725ea778d22124ba52c42107b82cdff244ac387adf0d28d13fe61e4e430a150d6887a88021f6070154256b437963bfba42e766a401d660337d21d037639e77393a68508bbcf85fb806e60d0baead9ab8f3af916544ccc7ff03c135b8cadebc24069c82197e5fab5b46d3a2a4ed7f820ebe4ab687fcba75c1509e1e81fc89f637bf3a53aa9e747e05027a327fdd218e9eb746be863eda8c1a35c55cf8fd54f7a77bd3f8017ac6e8ecbae0e3f492ef90ecab9c0f5c3c8607dcd50defa13375f1b04af9204ef722c498a393270c3dae12ec3112b74b8280c313bd01400b03583cd6f3cd6687dd7fed89818d54ab6188930ef9db81f0b7e05753841be365f16f1892320f0fb46c4b35d221f815fa0a703daf58a313f5554dfb366c2f021b73ac071abba5aae5cab874c13641110f46094ff0e8e3bd91ef898c9f77f90340560020e0e384f37dd162349610c6bc4ef51a3fcb78020a5d5c21c5c99edfca9b3d3e00e8bc8afc3c0f2242344b211634c6173ff18a9de276135517eb2d20f64f98c121769041248b11c581709e632cc28d6e250923b53a2233e3e8af82b0acfb96057eef86c3405056d43f7b2f8078868f0b03f492192fcd2ce717e20b83eae3d2b6b94eed3b903caacd1f7c0cda7efc6b137461a6a04ed7e4436161cb0ab2023c3fe7c17bffce8f42067a4170a00d75d01bc88e48874cd5777c815299413c53d1e77591560e8abda60db856bc37ac000124434b1a04bc2a3b0b090ccff646e3caf0c9221975fbfa28312bdf83b37ed9ed9bd6a01ff392d1c3a3798c7b096aa16d5b2fd7b335d54f53745629897a3bb2ad0dfe7ab618cf4cddc614cdc04bd0147537ce7c080ad3689d9e7044052760b5a9cbfd10c2141be2bef9022c37be7e5deb8d3407d0bc61a1b04067db8a5fedfa6ba0f2da98775296247a3980a984e59e7414c3163923c7ce448292328c6031c49e072bcc3c17fda6dba7ed5c76f3e37c87386a5e416cf8fe537c39502d383650925328e999e6a7782cb5c89d3aab5f86fda363b98862842d8ea67e540803490d6d8dc15670acd66b3d6012aade871949aec04b7b461a9cf0f90cc8dd41b216003aabd3b0274140b995ffdd5e3581921e5eb39f7269f834464a2c884be14a206cb288600fa6fa2064584a8eaf584558e924024da03771cfdc846d955d7c9241b2a535d4a1a4d30f097a96b7eea0b18c3689eae0eac1e570b65a28e30c4335672556c37b31a14006b3a025089529f0dd66515b66494ae126f41e27b420c88f3cf9f6e92611e6dd7cdadc13f6e9e12e519e14e23894f87adcfde4e27b68522df58e48793614a72f5b48ee2499bb27a4e2114cd18b33441233759c247cd6ef533c11817a40d3707a411193fe62da9585bfc2278dba6012a2b2202b86dc0624c391a83aab06cfd38b8df5d5fea1c8441ac35f1bf94a9d1e525a498afbd102d461d43b2debd820fcb540190f5b1e5f6b109dcaaae1734bded828cae4ae72f1b6092fa9eee6a5e69fc12ac4c37a8c3f1b89a5b88e570a88245ed0d9ad8b638423de93192972c721a6c7c2385d5c3dc8536c7e635b12d45d42c0372845e30b05e451d9c3150050796d812302d5da2afd1e3879566e84ca49613d6a961b508f12bb86d64cdbe10eb2d1d0d6c9ffe1ffe990bf024b8b839d72b17709d5c3c66ef0a895f3bc2c35f3f5a33722d92b26a209dd24f2c68af0e41920705667fb0c98a59f8d50168cfa52b50d02abbe66150bd4192d1096e10fb900618a2a598187f7575e037d7bdb3d3e292a4edf4798aa6d94f5afbc7c08415898f2fa3655e9d12f33e06a4cdf28be57ba9dcc9a7d901faeeb58c7b7996c6d945002270053ffe1994f5dbf00a1d63630214e8034a4d41d15fc930aab3460d1e0cadb2272cce297aa878a23b59f103358cc4d5f112665303eda75fb6b3b66f73a70cfa74b4e9522921318063c9028c401028f1c9c1a3a9fc678bebe27e651f4f46f33e17fa4d7942664555a71816a9fa5c6e39916dd8a26db5947ebb4fb1b73ed6e83696895130d400b1d27e1406ab4291771e5924330b61b991cb8b54e5902be811a49dfc79186f06d1f659ad3866e05074fe28df4ca70ae058a94b2e139f237687c972769d381cfd8887dd19fc9de8db7aa3d9bc77908392446a016c36ede777c67a44d9ed7afb735753225dc3732b7a5f7c73deda99bf3bd085e350dd5d005f9ac5d272d2c6018411056ffe97526c33f19b2a7d9aa921a8e7a9b85ca154a35cbca25fc13b5520f8e414312e43a5ee50c0d2ea466e7ebe1598e8b4cad59533cced2afbf15621bf126e1e1e96d823bb1dc9bfc45ddabbe4dedf6d283694a5e57c80c62d57cf9ab5db196cfb4b26ba391f954987bd82ce7ec52f73c9a69740666dccf87422ee942ff4e370c5948d64044eac20d87bd7d2a5df82120cd619411331924471ca6bc4502e2d0efbcfae3a247be9dd1c36e98a08e6bb3490fac9cac0b3cb00a7739a9d884b599173ad8e6cfc95f61ff9eadc27bdfe64e2ec945233666585ba24aa557f463bb7eae45848838c2b6bf6415f08fd40a310845cfb701e36535dcccf5173a871c72a20224a935fb01a10634632ae74ae2dbcc5db24616ede5c6e20598faac50015ab4a6f0e8e4d5ec9e0fddd66c62d7cefbfef724d748ddbd2761f01b4f72b90f98c7b8816efb96eb07485679e41e2322db2c94321a4accd8b4326ef9f124ecdda1dc0dac012892a36170391a8eeb5e76d33dcbd69167075eb6e399f2fda282c4baa90f25d3a97905c329eae3a9601c613c0dd8967a2ab6e5315f47e2e18c34934c0b0eaada06aaa2f7b6e9a91639b3bfc08ac8808c19e9bea8b0002f06124047f1817fe3256a82b95c92902df553e5ad33000633b7d409113505da9c59d0e6b887b101a950857a0548ba926205313cffb840d4ef472c7d113f9b7164dbcf0906a7cd68106995af681b24044a193786f9e9974ee32f2f7529f4b782e2720e6851e73c4b235a5fcd1eedbc3b11acb7eb22112629f043a42515deccf0113ea0b7fbf6246d90dec4c64eda920ed947d83da56fb274f38b27172ac12ff89ce42b9ebbd0304c10e69b078365594edcfe6b9c65ba5c5811aa04ea78bad331612e31ea755d92523cdf987c2b3157f5f55ed2d16c66c065cef0cc78e8c5e38907166885100ed785d3131f288040b3efe7e1ae90f1ee6be5a5317701ea9a09092ad3eb01a1bcbc12d84a1d395047a6e45d81229ca9b4e47f0577ef3d3fa33bbfd30f1837fabe1e3f550520df57c7819350e9b7d52fae2bf45c9fc4345cc1d6b3e295d24c846625e774625be918b166b9c724325d1a50eef878299db0d0f4f2df3ea50f0a7d8c371beb5825b9fd239e018696507cce5f3b25a4fbbe8c24fb98c8942b766fb16118a033dd2cff455cb447baf11cb549367e5b3b3da94851e70c2e867b9f76bd113d81ee8b0590a8530f481fb75b651f48d39bfa448362ad54c035e6fb69df7767c1aab4eb783a8820f0e12ef329da8aafb3d4b962266cc215a373e90b6800570f062c9da5c0ea1e4f830dfae3a0bbf03886106e0197238cf235277a25ec160a75a84683fc48bfabd3e91dac08bddcd8a1340d6be62fa0d313286eb7f21be43d302e47165a5529ee5bf30976a163c3feb7b53aa16e3c9b6938f6c854808ed0889e99bd4b909eca94139c0e6070518e85ba81fc6e055fc2759e58628eb1fc8145b06c4f494608ea1d33ec9c570ba9c34a6454925ca5725a392f75e76d13b57ab01317450bf1785d4c0149f846f06ec86dee9261149627da6b5d1a445394624a2ed034ec5d95679e3f5761557010c9e86d1b5e1e0f863a38d0c0be7e8717ed106b72de3ad7368be4151a4197ea654cec7be305e71c83d0c72a014ddfbb957c3d20a44b8ad21ae9ffdebccb0342929975bbd63503c441e98c0464a37df2650144279a99a268aa4e3349ce6dff0b6d875a612ca8eb234475497c1b37892a23e104a8c02ef6a34297e6541ec7f95daa8a37dd8191c386c0cb7e64205110a2155e47b5524b3971271504254ca964ffa6d9f3616f70fde9c77e9fbe09b69bec006c72db18c9c4e77a27beb1d8ce65a02013645ce4a125762a633526ffe78db7ed7bdc59c06c31298f27a740e05fe9585dcb9284e6d3d852d176d1ef18c4b63120dfaa7cc4d8585012068a805fe81f8dbd58de7992c013f21ae73696bc9b193be2d70f0313e9314acdba5534f1bad4c352ed3f39ba2a6adfdc7adf901b51136530f627879b495cdf29c8ffcbaa9c4c7640be5abc8e5a7d7a64f53c86894b075b187382cde31142eaa53627d8030753f02656c2b362082f6ada4b2b083149edec75f595d1a76cb6992785704c19e40f25cf1daeacb36a58cb64abccae532e60d9279b21137749e81f2cd2da1bb19fb894c81f4bcac4a4ff59647e5de3cdb1b47896b64c7d6c2ad6724537aecf0a6a4bbcb5a9c18339aa7a0f3b4bac6d18cc84d1c2f7fb6089493c7d43c10714fd78dd43a5dda04fa53f140a35eae28ba7625402193e4af6ea3faf92d2bbbe2887388439f2c5bd2fbcb4c40ece10f1c90a865935f9f60adfdd232e5a1737c01e13b121181c5d118a98a7d48703bfa9fa9a68b5d0457ae48e560734d6431f9bb15819f8aaa9f3bda7a6a39e55bdeaefdd07c728c69d94f3576bb6da1aff8cce9c1e4ee7307c9927927085c6e8a9108626c676f05990d4d9edf457c2a5554937c8d3bba0d9c9c217db42471bb4a99622d5361fb4a2c74c805b90ed2e63d18f5bd3794c9ddc2a08841a3c2f3af053377e9ada9adeb739a520f4a9412af93b80af604932cd34f114de2c5bfa46766d6c60dd51bb197bf05871de777662b33356286b328870733d44a8b2688be9f35ada54a70fe687843d4bb8bc61a65cf110ce5ead42228541ad36a5df54fe65515eda8f36877def5d68dfaf6ae98acdfb9753a0072833fff734bbe69c21df7a1eb125f32805a7640b501e1ff56fb6a852844a48461b63aa8401b3b1b5b9c5374337b70c11c4d1a0b595dd66ca19da9cb41c54e66cd29ba33c16a871131a3f4e88631182524b59c16be0df5943491b9b72c7d541dc919e3efc0ae66c1825feede7ddccc956f6b731c48ed4d0058151c772379f116283710e362601e48cabc9732f8784d527d8748eb154dce0d44b0261a9b315054712bc721d742ddafb193e19e5da2a4e292b543311c2f1b6479b8141ec22c9daee3682ad4f356a1ee4feb42433b89b07e0a9dda63cc3914550726dbdf2f7ef9177949616353179c2b8b0d8852d366036fa55b067200ba87a3cd446f71bc27c67bcbabbc8291d536970ff29a0b7aa26ef49f9362939b0648549ed8b057ecee3e3bb40fc25849ab48510a6c1d2c0cf68b8eeccf99840b4dfc647d99f9b900b7e168470abbc1fd5deb98fe5dbc448caae0fbfa19059454c702870c20dfd59f78b5c905b3bfa5b48e82e69e7edf45405018cb296e8dcfbfc8063a50de3a7b3e182a8f1f2243656f2ec42a48366fb3dab5549c7ef18d879ce14b29268e97e3615f8f0f46bc55d71719102f900566bb158756751b8b1dc5c320b3de7dfbb548b9d5da881eb3a308dab80863de24ea58a868cd5cb26adbd9dd9c124d70ee1864ca3e249aab59544d84b01426a44062c8f8848f6e65d5533eec24b287f4799090aea54ac5138a2c67086d3b58d51b10a220d57f71a5574172a9015cd3250bd08c050b7f85fa3d56e77c928c39c5891239680ead0dcabd26bc7737ab913e19ba4a3032226da774d93330419a74f25726b6ffba5298f7bff0ba5f9537c2235c7dd7d9f38d4be89db0ad6fdc8186b3964e4385c72df754ae2bd0b2f2c4bbe119c0f89c1a5b003078d704f295bd1c313db1e7f8153800544627d726e4b64ca8f84163f7dd9fce7cedc5ff56bc16efb6553d33a1294e83214938fc53c8b69cb02278bf90ebff6101e183049cc7ec4146e4c262fc6c46a1fe4b50d2753df322e76f9bf3fac25bbeef6a477e59f845f581f4ff0184ac20a740f7d903627bf9fd1cb1abce62de2654973acfd0e2622e4bfd40387ff657f2214f53379b7e0ce6f019f6c17a9ca95edf9b8dd3a4dbb45186d586c43a3c22a43240ba94f4c2615237249a7bd9f8ad57ae1704227e138138bd600ea0157e118c992a89581ae786621211158ea05cde0c91e30bad869c34160f6953c1c333c1f5c59cd3f2d5efdda6d3c0ff508e0a757cfa2dc3f1e3b0fadb936194267373dd19eeaa19712e8cc51c33a70fe6240504533ecd12645eb783a28cd4663fbaa06082e16a5f41089ffafcac0d1488919c3c95a3f39c4adcae722c2f8edb920b9f1c88d49c072a4d7c9ae54f22f172968bd90295ccad84d3982c29bad4f90db4784efd64a2315bbbd7d301fdc03df432cd08a33c889b5d3d24b869d222b191c7b0b8bad6069b7e1f0d6e8fa797dbfea4707298a02fe5b4be8cc74b3e63c789135728430621c6002332f54292429042c9cf7a3ad685ab13120fe7a37706e79f88b160981b8d5ffe496d9edaf90e5756fb0056c05d4f16461968a8252e9c4152df98cb28fed534db443f1ea1060fb7adc81ea3f8f5ea5eceab91e62597bb91142df74c4b6372e777c3d8e3bb2e39b6447bd5f3a4f0d436dcbb95e95cfa58cdd2647c5ec5695796484738489fecb80ce2a65230e280cc78327fa7522714d66b06ca253049d0bbb2ad737a4f6c91991be91ccfca4db0e19229da7c4269bc10ec3cf246d75ad2e7fc0e5828c0b3179f5286e6bf173b1c29ed72cc1d397cd5f164a9b3de1a4a64a66ffe966019fc4b128d76981caedf1cd3157946e31ef1d8af90408da335a885d5dccc655ed6c3e167f89d1dd231c21a1a99b53551fdcb526aa93020e92dc9e47865cfe44031c4b2f651af3364a54ea5d17941bb9ed2b46ffa17ab19d1081897086cabf5f5960423bf4616b22f2c8f393c8af792a38cc112aa6ede004ac48344419cb1b6aa3ff153dc48459aa32a320f46aae3d058dddd59213958cbce38253234e1756237083004fe8ed6e4e3cdaf01a15ee6e56759a90d17ab6c23a0c980530f33a2466f969a7332ba252d3ddcbad79c643d187e976ec782796e94f02349035dafe12a5943e11a8010753f67c61ca72ff7500a54253a3a1430f15eb50579480d39de486e5cf4c825c23a193c552c51b424d2af8f5b77e311c0459eb0d31939adcaf52a745158e6ba307c4947e1d0a7645817b59b5629a681fcb2600f4578542ecedf366427f180e640ce1af51c3fcf79f855e9112bb2c273b4c2bb4308b141940ee7031bacae384080ecee1110b54af38839c66278718d691cb036a3a8b40fa5ee64d8b5ad6fed91eea9c389d0898d18225f31d2b9cda5b5ce59276616a238a562102ba18fbf2b42f7a64d2b36d653fb2cd01946976b464156791ce7ed16e7baae61d02f0d5c8bcd9d063a9a437e0585b07a517b42cf98554dda47910f00205dfb513f0696c5d3e3cff284920e1eef74aef3628ad714c6f228b45ea68000088c5ec552cf2a6e882b83f55448c6db8043a42cceccec616f502ff29c716c4f5efdefc95dfbd7d36fd740e66aca7aa61470cdeb529c59663329678f6365677aeb2867fb1b50140837a4205cf5cdc3643f38b5fd60cee61c67069052096f67f6c0182bfd88a0e7c1dab1ff155ddb13ed86a47ec28ff843ddd9f19f04ca0f40d7723ab56adf60c5a9d4222bda2adf92af9cdcd545cb75eb39ecf117a0b08ae1f6fdb59c98e9fa4f8b3ba229a057d247dbcc95dec5826800d8823f864033c7353f592198c56c853946c0f246468f4dcd3695ea8d95e64606cec9792735ff93be18189e903f4fd29b82dc5a5b0169b9784ef4363e61683a479f2aaf8d38a80e349c5defc8498fbf4698a8e430e28356d117b4fccf79058eaa60f9e07d11eacfab3c715b37b906922907ec4774a567a3d5780a8048a4e719086a1d28626a15cec2f30e92a02cb03c603abf6cc854990bc4be6742ea9ba15061f2e60293e0ee6ede4e98fa09953ec1a77e44010d63992d343d45b5820e85e918173fe2c7efce0c26ec7f7f3aea7419e85043aca88207143b8be762f7134efb4c004200c3ac521224a97cf4ff540c85fa52939e8a7a6b45a4de4947b74898d5f920991884ee4b55753d152982ef11ff7c0c103acd4ccd4224fc05d023e931f81c057aaaff048adb2c091cf363330c0b64530d1d0557f5b15e084e20bffdf5a404ad88b9528923bd11facb48de63ff9b47968e730c04e8874c61ed57d6a6cd17417229a9a186154fc586085a992b5fe2c325c767cbb69893852d564bbc2ec28e91297dbe90ab2e4841c2ab5d1f4b5dcac138e97d8cc88220d94c7c1ade13e4e5d844cf12e0bf54785b7563615b56d34fced87dc29cfee56f38d3323a6c5bfd541256ddb5be4f0b80fb67cd0da4495b9ee6dd552daec562a7fbc1e474b133838a59aa9d1be700c7fe9d7bb0cf6d35871fd6c1e93b11482e9302a778a1a1048c2120ad6a0da71b58463ba9ab708232fbefe9ab6c8aba750c067a54cfe70cac2925f7d168712839c1d11eab4bbca978ff76e229c789ed30a869c619b42da8b096b2e073c24cd147bffdbb30676183abb283a475bb7c8980b69bcec48e15589681d3104acfc41b97dc6106f55bbbccbde5cdcad9df0381a09db5cbbbf25308d124de758bab2f48b6fb938f67199df51ea580d4ee903983a470ce08c9eda699d343bfa5c35ee452409638a38029c6d10f1b1591a777a01ceaa8fc74a879c984cd0fe06a0acaf43abf01d1aaba97b469c7251f1c7e0bc976161d2ed67aedef2987b5d32da31bc3c98a82ac2e2c305ecfe5058ef9365ee38a2697ed7b906bf0d7899e20979f4c8c961296038054d2b82dc41265571479ba7d4b4868aeb02466127238ba9607cf7f84d1622a765c10ce7cae2961b7958fa12745df981616f5bf2c49cd9a0f163a55a36ed214232aed4b7d3a8cf34b893f6551d8fb6f2743a543493087864841e406d9e6f0a99a9a16c20110ec34a61b448c087ef164922d1e2b643477d66b810531a1ea39b9c98c0e131eebb3f666aa7a6793c0b2e5d5b1b006924cd05f78b9ee3ab2fb943178730f063346dff7f48f91a08a3e31ff40afc4f489406cecec40a611defaea1707711850eb0a99430a26cc08ca37f7ca796a116d9fdc64ef2966270c19c9d11d0abedb36c9c9bcdcaf3be495dac291b46e7daa23b4e17686d54f4b6f5102a92aeb8d4cb3d16e80aa16f340906d1777a8ac0b3780d2dfe25a7ffc64fc615a4791f96dbf94265304daae6b83c56394f2a5391c112dbe3af33ab97a4717f81245d11970b5eaa98a5b8e76bbd46ed9b44cfb37c1387f63292b4fd62b45ac949f823124b334c5e8b321ed5043cfa4fb3e2409e1bc4be1337e8c90bc0fd3b7dd5a5d993dd3c6b16fbd1827de4acbce1b71314b8e3f9e98a9b50b8280c72b0af85a1aa9ee7263fd654cfe09ebb86ee917360a01353acc86c81a055803382b37e3ced3aef062cdefb6e3c017ba5a0ff57d73bca93b5288a1e8c4fc9dbc160b2c391701bdbc62ea2155449a65faa2e7a4ecf3f63cb3be3348aabc506f398d6cd741547b3f462528cc4f5b836c2feaf88361e81fec02623b140bc440a7f957e9ad0177e58d825ea43415b6788d8f8cd56e18d505577c1a00f6c7822f377b28f85af86a60f2afeecbb2f55aea8fa505c52310885350ec3b92c5294642dae1880712b68f1ebf3318d0c83caa7b261b70138701c3f39459bff2b00705a50f52bcb4d39574def65b98802d2bbbd368709169245f6ff61c9494a96e08443f1db811c93af04d482887fe988a46d7f903d6da5785d946df71e3e30417443924dd621fde7e5833d372e6bca50635cf0aec29e8da32cad6de990cb2d6dcb6fe1abe05688486be8bbe6e152d1b2f3df5fee09e7add3a91c465abd4f75bdf218eec26c907db39a522cc3ad7d04b474de4d20f08c5fd72c6bbeb7fcdf3b8ab1b40876b9b3f2be7f15c66b48c54beba596776d36c905afbf5cc73e8a1bb46ea2e19623f28082c8bf03ca42cc452a340eaf85e9025b4427e1409c584179799568d9a6a588afb167b10151eb47dfd00c380b102ff71f430facce00a8cb7625dd75d0ac03f14c92ca66c1889fb6705ebb473ebe875f9ff4efa57f9538284bb144abcec130936ce42074673c427678df491d820f56e46d0c9b40cbf995831a2331fe0701928d1c30e116948e11137e1b07e49f5db90eec73e00d0266402b9bdea024068fce90f29e868af485d28aa893703ed89847fb3302cddb9b519278399808f5dd0c979f4cc860ae3c5ecc584d00aaae8bdd1d6c274489d3d605dc7034e97599d0d23d3d1096b835029562e104c7d93f378e28026ebc8b549003d3baa294a9d94c25e44071a4a7c1a43b924fdc693fe121abfef8c40d1b1e949a2aa064c8bd57142b4a0e525a1de2475e29c783f53263004a629d869a1c11de08fe852660fd0272c66b23dfe050d5e2222bc36d5152ae170ab1764ad088780285014d6fa9037326eb67908624279ea53f50fab030db115030a1fcd4632b406cd7f09023a7391e8b5324766a4c014ae13d0a38b8d50ac20d059d8111d35228df4192a4d1da18545b293775403b0f11e681430575f43678b7effb533b63c970e69eaf0bb3ab46398928385e5a58a1343b9097c753d7508e8a210f36a858d18521fba146e1f6edc9eb5faad56c533cba508f3bcc0a986d3fb86e253a15c24cf88f9a0548ec804354e676e2915b104438d5fb058fcfcb324bd913accd54a3d963190e98176168714a310756b7ce822925bb553728fc66282e1e86fe551f7986c1ceab6896b9a989c16d8375e212f1da2d1a1c350b0cd18396702dd79d24ec27a9a3d82c5a1c2985b89d88c560e9b32529fc5fd8ce6042374ce330d075f310c66b0bb33f1c8abad7dbf784ad92bf9a77956783981f433581376ca3abdf9833e5b6aa9f0202e9caaca233f49e95672a2b063c7136f6c73df0b2faf856779ac9df4fbb7ae49f48c1009df9247415e02e02c0836edbc9821c183fa0846cc9797b7903eab648b7285c741f0957690f4d89c211b21aeb650908125b8f8868978fea07b8590681cc124bfdd76e5eec831be38fcc36bce3a314b46c76733f85ede2c9e7f0bd343741adf2c856938c104c7fb722423b45f261cfcb31e5e28e78039d573704f391667ba8da5ab455b8d75fa8cf047df80de477945c6e5605ad7f6ec1885d659f0bfe3b6cf4ea8e4c81cee27181472a7d03a1c7547bc82a14807482dc1bed4ed3bdc33e243e1504ce0741db84991eebb81388d24ca409f7e5aa7676a2772c97a9f8863f10c8ed8385cce1c27a1b715ecba42e89afc8ee8887352de92f084bdd205f3d2e936ee1793d6e10884918a759f9790d54fec557dacc888ebee8d5b588d31ae06f6f7eb4c6c79d4d011f6d4119fd5f98a27f590b1d033b5e9cb806182322cb326accc4ec088c748e298348cc7356fa3b05ab3f03d49e8fff85762d8400986f1bbc8536c3be4c26ee2e5ad6cf717a62a79bb7f55d950c32f345954671be999f264c3359222d795a7e49963129274b41835c771f4151aca2210f777c0599688d5289191da1485d91a6b8563a9a9d9054d16861448fbf983d2e20b9e1fd8ab7dea68e100d6fd5f40c4fd632bd6ba828c7ed9f0d0de598049d14051dee2d58e975bd37d1beb6aced2cd8938fdb309e98e854bc9b0fd782b53fc6b481eef68c5c32bfb1d27833275dbf6c6ef0d57250e95fc67002984d5b7faac9124d70ff8a8cdb123fbd85014c8f23f3506addb0fd44f085570a52361b5b6f54cd7c4fc1f37d73670d973e611a2ea6910c22b4e9cdd5d1985183c8875fd9435f3de8ea5993f556258ff4892bb263022c369390eae29dd126f25f2dac712a097c1549d1bf8d2c8c0ed7a14ef7dd476e70aadcc28126194b04d2c2150eaf0c801dce30f63fc89df4a8fb17197bc6ebe245de4e18fadfcdfb333df26e92d08210c48e76e7ddbd5a5c74d9ddf3af6b3695766a4f2fb2111a2be85c5602be4984ba66310c7fe2cc683cf60babc62c2b2776540818a5c6f54ff78433473938082eb2dc5b70bdbaecc8667849442e8b799a5eb0578e6c15a141f186f78df6c5328dc03f24bdddacb9d6934ccf355c52be303b9a5d75def9f8168576d5eded667043fcbbb1f92884d06e78459fbeaa183846526d7ff910bb1f54aa19079255b0aec5976a7d5093d0cf6db086f48a50829f5393422cdfb7a8ec4a8703ca5287bc3473416d2b6daa32faeb7130a06772542eadcecf8e6a003a6e82146a4aa8caf18b5de9cb133de8825cc01a4102c39ba4b8a70aaf1345dea9334df8327a8d63f75f552971a739c84064b45a12a96ef0db4727b99b78fe59b2bf4ed5418f2e2918142ad7f3052cbb7e5ac853119b348b69efb384e8ef726f0b3c55dfa96941144642a9b2384dea57ce6a40ee05cb70a686821db370970a5fdabc8a0b26ef5bb65cc82da520ead4c9e53ee5e7615209d994f4ccae68128c0256d0fd456b17aa4524abda9fe7f91c85e8f5e0baa7bfe5817a10578d53317d797bf4d6fa95eb44b8e4b00cca2ef3afd4fbf6063d8693d6d125b7ddeaafdd14e5e77964c5b2d4cdf5c4b84fa538912123a70667b657e5f5379ba442805d18144a0a10005eaa376daaffdaf8ad4b04d6c26163a8454afdf2d6d6fe65c24ed28939e42adad57bc70122d7cced556b6703f2c9c8c95c96ba4fcb9bcd7e0f29177f75300b2315f0793e8412752595befd5948841993c31bdd12d119402b0ac95add4ce68d14397ab2d33a735d67a8a0d325660dae85420b2bf533f6f5ffcf86d95a5a031794dfb9f71825ac41ca3526e2c427305481776dba90a00003dfea61c44ad7b4d15fda02592b8eaefde64ae9d6a57dcf2fd84be471d8370daa9b6fc7ea27a2724d505830c5387de1ed3eb19e3ac04180d749f3bcd62b88c7a9a7f2a66eaef0d62efc4ed5fd21db4cd7c91f5f96d78e24e07f9bffb868061b2c51eff6009b8c40f210e01883a6419aa690c0eb657fb94605fae4884fff92825f808466bdb3a13ba2471106f0df867d741695a6c0aac57c65569047402f9aefc5c644d758a5cda1a7d9bc6860f763153ca7fc867f81d0047c6fc6d5b269f674e6ec0bdb3db3e5e4db7d6e8286ece754c86af2890b24502a6a5bfc7635b2706319f51831dd28a24ceb3a95281d729d4addd3de267ca8b4fe7ff433c2f7f5407822d54c864daf574da925e34a38f97c16491a34c89649523e38f84b6c9a6f0a5df82e8c690e436ab1a78e04bd1ed8a16fc7a22bc88994c3c30dca28b0af418196993a96af6087517bd8bfd491e1d9e2aba9df3835271e781de87f196f9e94a299ba2c1991ddf0f59b8ef1be13ec68783e14060e4080bd03139c15f8b3863a9a8824f6ef7747a0fc18245d488b388645e1bb02a6fb645d512987b8fd5efa858f7bdec4e2dcab8670e6a57219468812f82792212349164aaa469407f55992c8d7b496bcbbad3dab78727aa52f42f5b55812b8aeb40ea6130b5434b2b5ed4f8f4311f0f5d6cee9c7bc131144204c58b675d3405ca2de156a5c125e7dd5844f8416f8eaf30351373fef40854a0fd9bdbe5bf006be17accb4acb03fc2474c015db939fb04ae2a9f8f3da91db8d59357f25edd1b712a6db2523e01df51ab601bcc3701dc1314973308f883c5bfb745f119ca7a3d359623d4f220330b6f456caac0b023d1651854e9e358a3bd7df78cc2306b7357e140c2097d4cf03f69b971023b32cdb37b00a0450591f13d541fd2eda7020dec4ac4a7cc18e2013f55071df33011ff0991805c41f9eab118f7c8507834c2a099f1c4bd9f6fcce5ac19cb4ccb7ef696369522b864ffd4aa72ad4518d4d9980072bb110c697b781610c49f89906b17bfc773f2b17b6406431afa1b4f2ffb6267cb6ec45f41a9ffa8a7a8ec29568d592c769da6f96fdb0bad42e5ca4ca55db423f5ee8955898db65481366e9d15d691d7985b0f1ed3809091b8d0c16f824930482bbbb90dbdda5d2bd33e505189be17e4cde56761064e54e677424a52e8f2695ec47f7eb748eb6698f5597d7f26592dc97708ad7b60f0454ebb469f047e565818a6aa832c23158b9ef9b93dc93036f47ec58b4eb0fc404e9ce1f2ad5b0da3e25571b5b29dc5931ae1a047513cdeb5f2b27a36f3a24e06fa6d45c63658e199e679b6d9f252a994b1173c003ea06aff9a801a42ffd7e1634d96d01f8a0a147f5f28266008b3b4721291b0b365e01e13cd03f531f8d69b71ba7f0fe1c330ed9ae3e4618c8846df2278a1ee26cd449c6f4237095a5d58253732dd1f049812473daff55097ad2b3060f06747fc6be331b013f016c7d947a3c8e0da02b531e4c0be238b49c1c2605523bfc9aa1e0c497b25b82333499d24c17e4bf85102282546ce390fe6ab1dcbd247304357deee14ab6f9da0fd56e61671067a960d4aa38e18b2fea5e2f10d505fb92a6dc2370db162883b4215ebdefe83116b44bdfe21b70499fa85c3fc9819af5b52e983715a95aebc229b6912117cbe904edef2bdf12241b67cf1628971cd11afd8d84caa24a2d93514264fdc0283b60eb6fd25725a38d7a829def059cdd3bb6345d73f952911d8e6d4538f7fa67185dc565f2203a4dd7f3a9d945b022ec5c648e118eb595c8b9eb8b3af7b855ea8067328ca7ef367a0b2981eede8eb63bbb324a715b12563fc17c0cb3473dd9d04ba1676fce5450825f58aa32a5eb3939be2b7f3c644ce0168430da8eb1431107d527b740338a0806ee6c02b0838f46106aabee119d215b17f12a9bbb99e9d21ea0c0277221f2ea0c46b056d6beb3c31ee307f53e361ab8aad894bba4b82cf3221810992fdec0990a4347a45864cf9f2e2015285266351fd8efce69bdf1dfa6a87032f1cbd49539dfe463d838045db1e9aa2eae114fae3fd192a9ba58e784a8f58e275f19b7dd3b75185ca3b65f6b4f7a2ec2cafd36e28a70f9a813e6680ad3d45f5574b37a003fad6181676ebc382ecaad6a49b3302a4a2717071a1608baf7d8ff9d604a789a6fcb5dd99776bf4885a694c1c6b5930192c43e1c72ccbe83d9551698626eda32feb477c5bf5a4beba1a0af99fde0f362cb245d1b1cf299c2d57aaa00d1e89781984a0d3a327258da3f5e307722e95269914bd858649e4a60c5b3e55bce0fdd4e5fa4ad87bc3acb37975800d11f35648b8f417a3715f748a9d3ef64ffef91eda3156b42982983155ee7267ca4eb17a08ba4a505f6c88c8d4268c605f05de764306aa5cb082e64c2d6d4c57a61968c376dacdb60ea2720b7dc2f2faff38a964106565a150ed19d701892cb428e7c92f5a47a44ffab29888d901854b3a1ccc514958d2c79469538fb55c62a3a763a144cdc03b12d845ecf2ed8be3a0a4f1809ef991cdb74a20a7cd15ce75b8c5535314c0944d7b96cebf10b4c38c1a53cf7f30d226eb82dda08be4c1a7802978788177bbb130e8a1b380fcd18c906cf7c4cf4a40d36deb6db48b2f4b404eaf8bb088cfdefabb26f96f94440ecb3eb5fdd7de4115e7d407c8b8178af9b06d2e940f63a5061ff2c10c8d5ec52727961f14eeacbdba8035c773e7a9a61250196d65b5e99affbf0374fa06849697daaee2d636638f2b0fc37e10ad55609f1fe54750ea1d8d82db74d5925999c83042aff2f61c87f7ef97f3b519ca47cbaee7d7cdc6bbd808abeb0af28599a6ca44f153dc466960201127fe41b8c44354d4dabc0da1c079b448b2e746c280d71657fdef0e0bfa4fd5aca9c003832c30f6484d0aa7b14ea6db5d8877515bfc259046e7474691a66334de7fa93ba75013575d4c44d032f4c0e10c691d9330314da1685547d39d6881691d29709c1443b947c9a10d11cc5150fbb09f918f7fdf85799a365b6027f859658ed93b7ac3a1de81b9a4e98c3fc895987d04898248d6c035eecd57ed665a222ec5df17317b3dc002b1413544753dc41a6c5858521e0ac74fbadb81a78278736ccba956411c5271117074e6664cdd88ef53211426d85580f53b088fe698d8589a29cda0c2c9364a4289370e4736c139def0e209d16c8c5c7045f7d2581506353fcbc7779d4f92aa6cb8b46d6ecc9f30587763e8a1ea7c2ff2c2bffed4b1e476614243179c964199a389e53b88ef84694a026068f49488431e80614c180617275ea985031773543df0b947e3b2a94cbc5fd7e36ef75a85de7ce425ebb23e056d08da634e95232c2a8355ff22995e4e0544b5b979735f67a9f691cade8e58c186d7b989e196605d37c211f13f324704cb76ee712c1e34f7412d0877e90ff5c42b50a576ff098074e2e026b49b835e8881b78f04398b29bd086e7141c5d1fce547a1afcccb746c77c4f2e7c3d484bc075917a47cfa3942a33b0ed17b7501afe72237d3606559fa4a9e4c5a45bc11a75df7e58eb56ee69b266af822afdfe85464e449fe48621ecb6121613c3793986037081985be592159e2422d5aaaa8552f1213ccc70e4e212e5514531a38cce45a423f4a15616140d6e77a08a1941690ff5871081e23f2b92255bcca70be7e0412826fbcc42e1a335ebf9c9f4659ef6bda7db3523c1c3935a5012095ba1440aa57a963c1f13844672242c22016e1c8a6315211ae7acd26fc273f2d6e73068d999b0b8a06905a71577bfe707c7751836084e160e645023cc26bb74566030e33f489c9a2f0c2d514718d5eaf60364e1c397df86a3b3e0750676fbab1fd1b20fd11dfc89e3275f3e1b021f501d504e54454098bb753ac54bb152ec32ee7caf151dc741c78dd6963bdaadc4ead1082a2b58e8149dab24aa942055a02c4fc2069e0bb50573c4238741fe9913b06375c700f6d23f640d8e1a9d91dfb3c7fae25dbce2e19cf0803ff912905a258ce810daecbe613e403f2e97d50d8fa0355da4a94b4dd2a7051e6e4fb39657de8956d97a94f653c6b5330e5b45cb7448163cb2d133d692fb3e9138b32b49773b958c2a2a3783ef63a816a09efa22b62b497d10ce11647e6bb47c5ae54ff8c4500115b82edaa6bcceaa0de8d215eb4fe32646bfea5d1eb9a42ebb9bd87b3e6c174e8fa75cc9d783651eefb687c0311682a517adc17178ccc55a561140e8f3f25fe0cabeeddaf1c193ad544cf8224a9645caeffea6e29b737ed271d14805de80a9b6fcecd7dd9b3124b925ec122858c6a28ae0fb28fc3e3a70f4ddbe993124ea85265e5dfe0e2fd68ee4db7c2ea123f1b26c1a1a5d01c3344751b5befeec415e19cc0b52387608ca2df8fdda0424f93a980a7b256784edd09b928f958a355384b1fabbbb7acdd500234be57b1e51618c3f590d34ccaef8c7eb8288e5707093b78797220dfb0d9d255d4161024edb1bb79dda785515268cb10212671da1983008ed705ee3866617a5c092653f27daf9d5830d02248b14cfbb7fec8a18f064183d9d1dde41f21fe1173fa316207621bf30d8b39c8f3350acc6db45435f09e35f9294fa031b38c9a1464fd54d2fd5d33c34a4d9a9d4be47d3e46fc82b02d52244b51e897a82d7dc6c9b995045922e829d46133b891ab68f9cafcb04d99ae80dbb83cfdcbeb56cf451bb77e3de252577b5f03e59eda8aef84652ef28220b8d251a3f50526beb5d1de48671ef567fb12f5d02421065bfbb671ef02d2ef7c8178312fb94f908ea4e5986aef3523a8c2eb77fac28b37977768e10580f2ea4c867c46840b31dbac522187bd7483cd55d8639d71f180a1cd49612482f2272b3f2fdafdb10840ca85898d1f65ce90c3d71bd904b24a4812f73076c1a1183781a77f393d602f61028d9e763d45036d4c06c56c74e0f2210d77ce8ebb4034217880f027f7e0bce61ac0efd3b6a08c083ffb1fde38e78726e32c4aa988c3ee11dbd4548f463baf31983273512724e451b4e6908bfa479b9eb80bf445fe93c5fb5afe07ebc1520beb66e5b16c4749dfa391dbadcac58213d4e450d8ee4dfd8996db2a95f7c9b86c42b15741014b961987dc1f5625367c1efc64fe99a65c716b9c35da498a8b0ac69c61864b05816f88353b023b63535f720306e21ce1f5219e1c548303f53aaf0f92f5b2c644609402ffe80c29da109087292eacd3d4f2ac39f4b9b8fb30514591a8eb5753258599e95ccbe5f71a9e9f43148c4387a197a01b04cdd2bfad9744eef6d769589087651438bbfbbac94364cf8a1880090db88a82c6207999cb3b33176e67027a5fcabb14e362ee55809b281e96cbd59eef2304f9b26052fa9b6e28bb0e2a7b5b786a9c6a62ffc3570db3dcedd80bd4d581c025fd52020e4b468340b7c837878abf6e3aae4ddaaeeafeca949ccae81549454d824d9f1e02588bf7ea4efbc28cc78bf6b78afa1b9e1553ee876a26c5990ddaa5100b9761b81b2ba561b70446664c2297db80feb8f8e34742d0f2d90e2dbaeb0a5d009fa2bcc947fab4463a71de044e616a336237bae090a657c588030504f632239edf7068f72fab206cbbcc8e2a66ea3e7321dc9dd4c9e7e02653449dd3d63d7ae8d737e6f2e9433fb479ac6057d471e832dc9dc7e153ab1e4c8e8cd7ba05747ae32ea5786c704d32cbe50bc857dc11886968b8ce57f46201cfa756367960e42198657b2bb6a71f11458ba325e5fbb96b5bbc49a97ae762dd3c7f2dd106a4e77dd93a25baabcf88c3a5beaf7e915fa1670af9c0259b7d95ce3379908ee50c9e6130579804b44625ee7ed2d4743d5d984fd4b26bebca3185f7dbfff922aaa21b67a82c6be11a01e8370101fb40254116a3310d9c790d77ea21988ae2eb09f314fc05235191e1c132b266fdeb3c90a72e3a0c27de062df690ffe08f16e1ea3a5a41e42a8a8b01673ccd003ec950e705191914a615ac63b6f654a421c20fcee140d729a67246aaccbcec0e68497e15dfd3618c5da1295f6c6ca99cb203b7d57374f0483b2de616f2e9647713afb85e170840bd8dbe152c3ae53a60685a2c67945fe1fc56d87aed0ee495ee1a4c20dacf5269dadc41e987c0298922226d0cb513cb81d62d69983dc1e5ef03653e8fe00eb162075571d679977a8df91b53c5f32add8230dd337f5f666bdbdbd4e77a31cfe3df1ad2d26735544ebfb1c46cfbf199123bc1b1812fd02b54df17fe83523553dc501c0672cd16ddc06b3d64ed79ebfcd32136f556eacfa8adfcf16abcf2839e35c9ee6942ccd350caa366cc7e1d2a96ff88186742bbc8066acf541f7bd4fdb122e65be6e642e65f57370d3f425aeade4cbccb63116fd58d9010f6cb1517608b3cf88793728dbd51d568ec681e81c7b7154c037364548f5731906a0d50059254332e22cb86fa8c0c443f59e1266e2d30a7b9bb0ff04d515daa8dfdaf18fd9de44b5e9914d79d4cc315df291e8595486e09d32807ba714fb8d152ff231fc1bdb2aef6ff2543810650df47e7e1149e59df7b51f85dde6863798eda5ccc12bf7761c3b62566155af809cb10e2d5f1e5f20274dc79b6de7d070b7d3cc8f91164fc5cd46b8ccfa57870a4cc8e0d95717979e84f66cfff3e57aed3108cd5d14a94f090ede763297d743ca7fd7aefa706a7debbdb0834714ebfef2e83a4efdc9b63d89868540e67031330e01580e34f5d88abafcf30639b5e467752231b653571eb1864c1458802103d06691979976dbe78ffe5c70775bea9ecd603586f8c1d6ef242c24dc76b7c434188b4b6869aac0a456dfd2b3a382cc101d765075f43d1735bf56e626cd2bda296cf2c99ef9c9412aaf8350c0ead7a847a88f207d7f5d174b4ca522a7bb3b1e1c8bdc973e65d1590b38f710c119a612261ca0619c13c8a9304bea3a5cf34c0e65b87cc27e9d9389389a9b27df01196d04f4ac3a87e92afb0e70cc9266d4d6240a48781c998b7eb9c2e5d096f0d824e20c25b0a243d36684521e6d077f9ef4ff5108b2306d584fd3a5c3f2d17839f6a447f4e9f7e626006c391262dedf91ce40f025c8998371dc7fceca9f4feee4995126b40e3111225827a4188cfe968ad1c579d3e66cba2b2503a92b45dced813e8409dfdafcc78fafc9e5e13ff86d4db0fe673fd63e02c5b877f6a40ee9f0c5700645c3e4e8193e92ead179bb759c932d7b56ea31fcca190100f4421d1621756eff339fe8252ea05d0cddee6c70fbeb809d22d000cf8a9db137011857398177622a78bc6a1c58f0038f2fed095ba9fb3749eee214c6067fcb644a3102fbd5f113f73a61f1790ca0ad5e14a2ecb0de18f9d7b47c91de8101b3da41758dde7b656950f5a23d127b0b22d6d8efdceb30c1ef3dd5d84b77148a9472f42b7275798aae9dc1aab41debb529b96c1ee65c59883d0f469e366b15797af3163b5b4ef0a92e2a2374df34350b6136ab67b9f32a1201b207b48783465d8615f8eff83fbf47d78d3718a49334c1f95ab96afe9c88af960f06cad3bc49fbc1ad85d9b84aad1a1d44406d3e644e6c2f6fc1ec9b93b02fe950949cf5bf31783d542395fad6ff81fe070e7c1fb40e4e43f218b55e35fe76f5b5b60a8f2f4b4c6ddc54768a087e7e2779e9607c62644fdacdf5aa102e476dc713e4bd6c22244f35c75f714aaea7085558c9cfb5bd8ea285a777a59e3de2445c78f9f96d4bcb1fb2de01c85fb459a79ebbe738d24cc470dc2dce52bd0acc590d489e8cee24744dcb422a982ecb383f5e2042ae6ff6f4f97ba043e0ca5c30d786e0922f142ddbcf4c2c4e5957a077bf988901f9dbffd62fa7c9542ef861bc6afc82c1a44400ce2236925de9ff5895476a32b4916c65b349fde47fd714f498d6b1b25f07c20867fbdb6da821d6f1632594175afb238695992162607e2a5ae11c708c1760ec34361e6bf046e0de578ea3ead47c5b4bf1d28fb4d4c6538b0b57102e0efe565283eaa069a1fba1040c3d5d984be4eea6780d422918392afe442797a42917b77fb2c4c8f054d2ed5c798ae997e73ba9c86c201d8715b445852724963e16b9baec080a629238b921a2a7935ebbfa474e83725f71d3f7cca84e2dd90a4a28576b6153146f3d3eaa7129cbe74f1d5232edc61efa69ed10b5ec97bf247e7149af1d28d929fe12758594dc776c18161071271a5701670adfde2a5f425f259292026a0ccf024be39b92a379ff8b7445ccf91e0eff19c186547e1292a6e59ab8e6a802f70b095cc677f8acbe515887280a8b54fbd3707865d74b8097918948bfc6dc7c161b4663e719f49212b3e1a27d5c0fd81f85510ca8f0a45b5d330bef41a42268637da09ba2064d099a59704551d06330917f69fd8b07c0b54bd2874815ee0ad2342359eed43d726c8db870e9c5ebdb2307d88f0f6b170619cbaa70936f0446924559d4fc5366c7ecff8034df8682c9400a80b36a25c0146d2678a7661fe5474147be7e7eb3923a10fbd2406586bdb2dec55930c4e05cc8fa5cc9d8b689ed261a167ab59e29062ec43d73b823f0cf1a3c42cb458477a471b180d1afbb3529f8c104728d591333c4a3988e1703f5ccd0b2cc17ec3325de5b64253c7d4ace095fe2e2ab012af2e8d32f8a5569c7c0e065e8c4765807a1d373444c9d675bf7227f42c080941c27743c111d4b9a71aad5c4f33f1d2a3a6860e4818a8f40455ece0a88f949664c4703cf2d9dd0cf2f140fec92c46f782730b048108b05c0f09eae7e3670fb874a2cdc75dd901131c004f718b626252147d0c2c3202fd31067a6906824efe4d7433a3d92e7956aa4e14ee3f95e6631ea56e63a59be76d82cff969c09dd0fa631965697b52f179c01948350057ae3fdf3202a2362905661222560d8fb55594bbd3da68e5bf5b51d51702ba466b06cde4d16c32080cf3804b3958961b6f2bd99cf3da72c0a663894a79fadb13c1b80def4bdf58437629b4a2baa5a0758cdb1aff128d4a29ddc7edb723c9f2c9b8d7d4dec5932b5e4073bcfa248ce6b3f0ff117f5146248b4b38c6727ef12805dec8df09017819a817bb31017fc5806a3c8cd67ab3b38b0c4d3e224ef4c9d4bd0b58e78001fd55480f5ace490bfb93b931a695a4ed90ba978c5c0efe0ed3820fe5f576db7dcea450ae87c05b3f058f6496e6f6230646bb3cbd286ed91d0ee1ec8aa3bd8fb099a672b458307c8a7df8e57554b8f71508f4bbb291654db0bbaf5e8bc8c8b917b9673c08e9581a922616d6f7d77e359dab92ac841d46b8a6e93ca7dcf6ff4cf1eec90a12f9401d80a14b626c16cd1f08601e1c3a75213d1794a15165a35eeaf0f0d9d75d0fd76a70f891f59d0f8c86f5d1ebe4f96fe5a41f2ec6e434cd6f8dbffddd2af499ede3aa5f15694e9a4fabc8cbe506d96cc8afb767a0b712e1da3a15e204f94bfba15ccd038096927f244bff9d1ee81f3681fb0e0fa3581c878733f2db3e0636834209d055e96b5eba99bc24d53d1f23362013efd48e03708caef253c2d4ced8a88c2719bf046d3f498468af2af49e154dca60f4bf447b82f802d416a3bdf03b510d6da27b399a2aa89d7a1fc314354c1f736f8811f1519238657bdc48767011acbe05d226203ef43dd69c5da47e206c4ff08c83ebef950a8dd41d98eb0e7edb662d90358d40458d890be58ccf9027c1d71ea0c54953125592c9386fe4c0a278e6cf2503927227f1b471393f99f24986ef3303449fcc6bab11c5912aaa4f1f83e974341fef02a5862fab4eea39e7a3ec9efea0e7e2de20e2684ba82d8edf7ecd52e2a9b2508d70b61870b2a81b44fc9d1f82c5756c5164b3f1d4a3fb122ebe4dce7d49600d0a2e9bb8fb0faa4a8c32c873c63b0e934f06c80fc86b15c38e0c3354bdbcec178cee4fbdd69dfe4e04d1e4eddd7c237776c90b97a8c96de449dea6487b55d4d8ee3f8a83bd95859eb35fa0a5a032d5927dfa462371b31669e301d32972a54d28721e7f487644fed8ba319abcc99d58c12945424da59b479ecfb156f4c622c4f67eb5c3ad32aff5a60d6ffc5252794490e8ee411af689e346bbc480144b317e490d87bebda32016ff9433d1fbfbf24a7687a323f828aae997c967f17850efad6603033a2b6dc046fadcb75da038ff472c662b570a86cbf2b9ed1c6d0b57ef193f48f7ab8844760b90ebcf6b39fc67359cfcd1c5d3fa76e606908464c2aff74cc9977af2f56b0174aee75ea127db722390e05306822d96a730335626eebd66d29834d271835db529154c3d8053678ca3520dc5c38415e34908f989cec116156b4ef82259832b8b19b2f240bc5fe2ad813dc98db2716e2fef575979794b8af32c8d3d91ae41d04529b4c1dfad661ae4a8ff22995e528f57be057d0d91c04a6a5bdaf730ff14e9783a04aaaa7bfc5a1af18f090da05c5f1e8a6471dd61180c27de288f64d51033865d4252dc620222a84441154fe8087516dbe9f4c588ba243fc6cbb5a89cbc143fdaffa203fd5ad7d7b857c0eff338a5717962f6ee65f196b25e669d6473c55c782566e389b38f59847899280140f48e576067362b3ede4e7ba188da44a05223d9477a33b4e4e816e8f9d53c92b384a876e44524a1900e0a7a0ec95beaf2d815097fa07e25cb177dc8654666ed70e4f48f419172d571972a8c03617756d3d8e08b4a482ba38461a66b42dc490ffb87cf6c1b55537fa6e6a5052661948c793702483814527ce2b3d5e936ca345ccbd439783f96f368a9d51b19ad7650b9dd32449101cba8c2b83baa0e6172c1dd27fc5430184b85a604a08ce005f21abe93feccf5e31559451ff2840d1cd2139790e52bd6f04141285a60eb9f00dd7987547254f094d8eda8dca811be6e50be163a916aad559f0f43966e39d0fcd9a470a0d975643b272a3de335a9711c2789d1766482d1c250c790de716024bb0d1a4ee7ad226748cbe389eccb4bc50ac47cf1b880e6dcb84eb625a82e9082be2accab38e769dc5029eab054ca5cd89495965371112fb93b7d7a5451e82b3f0870cf5ef0785bcb43e7e8709858eddc6fae1647f906e4f230b05ffd517cade57777c64d5d03828d1df6ed70922439a926e9eda87165fead4a95baaa0dc27d56e71039ab269569b2b4ea5e5d2ac6be7b9b3d869514de996f9067ec8e74b9286b425423afe41bf4f60c9366f420780cb32fcff3ee0259182c0ed1e0d797cfbfa5f78079acd8a7e4cc299b35d664f4b12f6b24435e4e3717058abbf731227b28eefa2314696329811150e80bc0554bfdb3c345f653524ec28e4bd9f79584046f8ce894bc9f154a0db8dc6054f46fa158e31ce262a8ba49a1e743e24a141df889521816799e8223ccb5d7a42dd83ebebde27ffc6f153db850c58fea7ac0bc4d449e8441e0f1d736d0f0bf56130c5ea49d6ae9060116170c586f14fc74e4cc34c58ba11d2d606591f99a780c62744d5a546ceca1cc1d10d8fb0f26257d3fdb406c41aa3a2636a8e73ac3caffea1a802588059318477975c637b2a4a1424776508bfeb31bcaa95a05e04f6da1e63c7d1a56e0c061140482ec9cae004da4b2f32bbd5362ad3065699ea95177ce815eb6fa3df2be3d427d462521ac6eaa9dd6bddb10312c12348729c5ef2c512e33189bb05c2080353676fa5f011d0c2fa9a7d853d6a1b7ab31ff2882ea1739c245aead0d83a59cb91e893267ec35216ab26e71f0b339ef82cab9978cb95ec653df734f17e95e444c4c90041edcaba6f2a51d2b2dd83e83a3a05092379e20a924628d16abee2d820884f75ecc0347ada293d361ed670bc1e6ed0f05a8f11814401f0f58687b7f406bc560f555915405dd24da4b7bb06baa865c0896192e939df90f02dac6bccecc176e77acc78ad033220629452786ba9d097014712839dcf176a54d4290d6baaa9d5b8b9cb2a441338db1ba860c54737e70cca7b0b57adde3754d1220bfc6756d40a209e7a3a633719c6a6aabf60b04995d7e344956094fb9fbddc9fd12be21d86e276ceb10760a2859e71769f4b72f80ac36771434c075fbb84a8b551113b25a4265c0c8490ec79a80478de2b06519c43e773f8fa3585c98e5d949516a3224cdcb625d019230b3311f206582f8cf519db9cbbfe11eecc48b25cafed0ff35ca802a3d191d6df709f53034261bc810ff657ad879ce882d83a433cf338e956b02ce9ac5b78ca67f357acba985befa932f10a2d12ee730e9a711bf31928cf70c41e6311b4de4f36980b9785db4db385fbe1a3e0b1f2259c368b56084cfec2721934f76a70bd723852aed9f5ba6e0726def22b5f23db17d4768df9691968e0dfa5d96442e712884dffcc2a6a842c3b8f05091cd024810bcb3e3f85e00b13e4548cbf1e6fb7494fe0fbe3d1d77c3818f384f659e4957bcc8042b6977329eb5df3216c403f5ef6805c6339eaf9cf9a8dfb7f75d8fb6bbae9aee9efd9e386691df004946fc2ca37f2be6765e1f293a06502542b0f2e24b85ab1f45cf39bd3ee8cd0185d8c72c74b38e3aac6047710c69f3162b1e98a956f82b38f79ee348153ab647d8ddf8d6d0928825c28dda14c22169eb9f1c8ebfced21e4700d1f9972165e04fb5455a1575c23fe4343796884bca557809b487c15d3e7df462803f0d7cacad4d11165e6c4086586a58f777458b153fba0e4c55b1dce9f7ebef4b71db158326f3359dc6dafe133a3030cb638db85265ccef1215fbe8c7166dd28388996fd46ab5ce5be78b74bd1d6747e69a5d7137868f1992d5cc65490b9d35c741d96fa5d242a8545554ee9f073c4dd206ea77c7fd9ae91a14fa5766487c983de2f965f5e1ecdec764e1d6d88a6c0b7ed4d10894a6a5cbfae5e1b5ee6135a8b6fef02fd2c1420435983d35877909d31349cfae22b3156d5e95d960a1e3329e22c5f43b4f6f0d87f957bed0ccbab14604d236c053a1e7354f7259f95a23c95bcec5da873f92bc4f1b7cf767f717e4cb912fd3f64a6dc9d5b532525439b6ad4c9948d407091e461aa4e9fa5335885c45681feb7eece3e4b052f92cf7a4ae0f4874e13d97a1a01ad498dfaaf787097fb10cf5fd0ec2960d6ccfcdf8e0cd981649beedfd140b2853feb05c1f61f16791dde51113e327c3021b7e0d8fa3e46fd8fde54b774a44207a8da7a454054897e4c70d9e4d813919d00dc991464f944c49348d12ef4e340523d87da421f8db4b49cc99e6558fd687bc7985ec79c21bd128611a76b3e1f962908e26c8af2d43b4a6e05855e9324a3f82d0123d985ba9e9d6ce07002bfbd8235066b7f23fb632b4f885aa00301f177e1c559a6cf74d997678dd7f95b2ca5e081369fcf3afb33a975ad3d735069975453c769d68dc6a7a1333d758b95ea71589614485eb34d8ef607569b77461614cd27dacb3faf2dd51d92141dd315ed804078d56c7cf33667ea73664f2179af2131de5b560aa4ed258fa4261b54d4b71998809cace8d4ba40d3abb3cdf5242cf520b22eb03f0f29bbd97516f54aed34f91f18ac782aec46e007c6a90cc06a8658fcb1b781a964c2e48856b3bb858f73b81f659c141a4be4729ceb5f66e3a6b9db2c3a8c9f4e508c14bbd28460afd8ffb240fb929ed66e959766a67e6a5c9bb3e6d1acb74337e82086474c4350cf67c75b4eb4fe409a215ffaa2da708e09357892424c350c7fda3b70cb78d796c5c9794ab606a2f718b59897b3902e9dccd6b13751e5dd6e7fa7c9f1581f223c158971d885c5e26eb58027860f6c3a9b30cd577fa3d927783ddfb466b6ca7c6e5aaefbd6727ff129ab91c81f7ad2804138d82a94fac6720d819fca615f9e7ca3edb124757f445e45d76b4683b4f2f12dd636cde647db7934f3cc96a1b379293263f4254786a539f8b865b3aa06c1ae2bd0fa457064829541cf46da3aff79f22cb4612afddeb3d19a8282f2290e17c1d8e0241c6201c3e0ad016b792698d8e095616b39d0890331936216c4b99722e3c563947b37194f7822f3093a2bdca63abe61b05bd1e0873f4e34e13a30be1c1c84ace42e0a9577323de6a209074b36454b45cf066cb84443521ab827947ed811ac460b2b1d203303ae83f7317f2ba6358a3324ab6d9ed46353766a43bc1ba2bf3c12a1f8600eae25587f05531d49f148d5a407d1bdb03fd7198ceba43be87928c6b67b2c6074301330dd7a2663302c59a7b1560be7eab65811e617911f2c1d131599d1dfe26fbf0ceedaaf00963597287b3a3720855ef9fd48c6ceffe3d2ed5f8bfdd4cd4a806c866174e4abecf4e92eb7929143bd48dabaae80198fe6f0e5acd50cfc0de6ee80c3698628cc08585495bffcb4565822a5058545f23211b031bb777231558f13a5764ba017203191573bbb3a25b161bdb7a93e41747df69337f2e162eb999fd2e8f7505e613749e4790dbbf50afc91b4fa032ba77ea49d2b6d95fb8afe9b215acf5b45463ce50b141344e2f6c042bc1b30f54780cdf985760675daa26a1fc1bc743578af060bfc8eb84b49ca28e8ba26026e8bb1d72f265327497885a7186469a62da41310156574c97b1e01564c8f16b670f7bb8791086f2c6354d4956eacfdb47e1aea267fc624d658dc7d7ba92247fa2482eb36d4960a017428aee9d91d8107f54437c49739e6df1df8d183e75c2f9de67891c08199da90a3c66eed8311f4bfdac5f1a50e74b219e650aed5bbbfd25de78969e9f3b2277926874a831a3e6edf755735bb45d82a10fdd769680c7095b5c2fe95a3f965ec525175a0c89d3395571b1a6d825938715c98b8dc3bc5c2ffc6e552934eee3695826ee14aedb6df817f55d7791110f5543d0e919451be5937aeb3474ce36e328f9bb9911ab4f19427bc95f48f93405b9de298eea8d20a67c4f78b0bbf62ab28baccc41c519c5714be597109f82a13910e0ac5e7167c95abf5c6198bf66b4c56f00ad53726ab67ca1821ab5b12efaf936708a1aafa815a0bb9b728dce401f70c75c937d2757b9528a9a1c2ce693406774e985def0b693030663a46dd6eb148dddfc321d42f1a18283174367775bfccd8c0abce6e0f83e3dc5d34877c4224d9399d189b3b0567acbed7fda27e4141ba5065b8fde98364cc5a7a06a4b76d90308f5b21866ccf25e3fea591e8b6bde1ea6a94f360846d32e70b546770d610ad68f820204a60ed223df40da01e4fd3c68eab3fdfddfeaad8e5ed235ba5261906f2a272645170ed47a0ee22f84e92b166243931c53aa2eba36a37c5420114ff91cc73f4520145c90ab9874b300cf1c0aa74e31ef5331a734af8b8fed75c7f9807d475f1202401cf27c4a74a921c0f90e31a8b5f36e93c593da4f292146a762659cbffcb405043c07f8545c13222d1ab1ef20b3cb6f4425833f28aedd0d55c25bfab52d1d6ed1843e74e8b8c45a9c44e883560bb436ce15da9b243e241a6fe127a4b67424985c34027a96605f1f755d37404a0d4e74256f193e397314c31eeb51b968eb3fb0cbb603e00270374c79cc4d27ffca16e5a5231e0f8e0f951ab7f93fcf1b1a93576abb10d47df379d6c8cd06bc5aaccd0431788caab9b320e3b94e9c0f70392f68c1ffa5477eda2eacf99c7ad75d7e7555a9774c27bdd70f0fe34d0d7bf0e07a31d650c08ac84eedd7f90553f9422237c34fb6a78b152e221a4a3fe4f5ba2447b3977c938a2ca7441dcd06fecfe4ac46c011ae0c4d88c397a1dbafc585110321b78ce5e0e4d0ae28c76b4619ee8ca4f37401e93df67ab7ba871ae243e41bfd1141c376da347e11dffff0050d9dd24900d1bd2a6a9e2571f74c155540256849e415b4afcdf249359dc742c7807bcd07077032a4469b3a1e1189b222bfc6c8f12e973e6ae9e3122818cef8e6047ac1a849d1dc0ca91837b8e5585c8f4f6078d2a20453ada2183e81f2376f020b404219d159629af7b407019cd31772909bccb2873ad36e9arootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpostgresql17-17.4-150600.13.10.1.src.rpmpostgresql-docs-implementationpostgresql17-docs     postgresql-docs-noarchrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)173.0.4-14.6.0-14.0-15.2-14.14.3gv@g;g@ggmE@g<}g4g(@g@fLf@@fV@f|fTuf8@eCe@eqe@eKx@e@@e%@d,@c@clcGc>@c6@c5c,N@c@c@cb@b@b@b@b|bV@b[@aaza@apa\>@aUaQ@aO@`@```q`OL@`Gc@`/@`#_S__@_F@_mmax@suse.commax@suse.comobs.coke518@passinbox.commax@suse.comobs.coke518@passinbox.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.commrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.comaaronpuchert@alice-dsl.netsarah.kriesch@opensuse.orgdimstar@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.comdimstar@opensuse.orgmax@suse.commrueckert@suse.demax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.comaaronpuchert@alice-dsl.netschwab@suse.demax@suse.commax@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.comada.lovelace@gmx.demax@suse.commax@suse.commax@suse.commax@suse.commrueckert@suse.demax@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.comgmbr3@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.com- Upgrade to 17.4: * Improve behavior of libpq's quoting functions: The changes made for CVE-2025-1094 had one serious oversight: PQescapeLiteral() and PQescapeIdentifier() failed to honor their string length parameter, instead always reading to the input string's trailing null. This resulted in including unwanted text in the output, if the caller intended to truncate the string via the length parameter. With very bad luck it could cause a crash due to reading off the end of memory. In addition, modify all these quoting functions so that when invalid encoding is detected, an invalid sequence is substituted for just the first byte of the presumed character, not all of it. This reduces the risk of problems if a calling application performs additional processing on the quoted string. * Fix small memory leak in pg_createsubscriber. * https://www.postgresql.org/docs/release/17.4/- Upgrade to 17.3: * bsc#1237093, CVE-2025-1094: Harden PQescapeString and allied functions against invalidly-encoded input strings. * obsoletes postgresql-tzdata2025a.patch * https://www.postgresql.org/docs/release/17.3/ * https://www.postgresql.org/about/news/-3015/- Apply postgresql-tzdata2025a.patch regardless of whether LLVM JIT is enabled- Fix build, add postgresql-tzdata2025a.patch- Disable LLVM JIT on loongarch64- Upgrade to 17.2: * Repair ABI break for extensions that work with struct ResultRelInfo. * Restore functionality of ALTER {ROLE|DATABASE} SET role. * Fix cases where a logical replication slot's restart_lsn could go backwards. * Avoid deleting still-needed WAL files during pg_rewind. * Fix race conditions associated with dropping shared statistics entries. * Count index scans in contrib/bloom indexes in the statistics views, such as the pg_stat_user_indexes.idx_scan counter. * Fix crash when checking to see if an index's opclass options have changed. * Avoid assertion failure caused by disconnected NFA sub-graphs in regular expression parsing. * https://www.postgresql.org/about/news/p-2965/ * https://www.postgresql.org/docs/release/17.2/- Upgrade to 17.1: * CVE-2024-10976, bsc#1233323: Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference. * CVE-2024-10977, bsc#1233325: Make libpq discard error messages received during SSL or GSS protocol negotiation. * CVE-2024-10978, bsc#1233326: Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE * CVE-2024-10979, bsc#1233327: Prevent trusted PL/Perl code from changing environment variables. * obsoletes postgresql17-jsonb_jsonpath.patch * https://www.postgresql.org/about/news/p-2955/ * https://www.postgresql.org/docs/release/17.1/- Add postgresql17-jsonb_jsonpath.patch as a temporary build fix.- Use cmake(LLVM) < instead of <= to also allow building against LLVM 18.1 and newer 18.x versions- Upgrade to 17.0: * New memory management system for VACUUM, which reduces memory consumption and can improve overall vacuuming performance. * New SQL/JSON capabilities, including constructors, identity functions, and the JSON_TABLE() function, which converts JSON data into a table representation. * Various query performance improvements, including for sequential reads using streaming I/O, write throughput under high concurrency, and searches over multiple values in a btree index. * Logical replication enhancements, including: + Failover control + pg_createsubscriber, a utility that creates logical replicas from physical standbys + pg_upgrade now preserves replication slots on both publishers and subscribers * New client-side connection option, sslnegotiation=direct, that performs a direct TLS handshake to avoid a round-trip negotiation. * pg_basebackup now supports incremental backup. * COPY adds a new option, ON_ERROR ignore, that allows a copy operation to continue in the event of an error. * https://www.postgresql.org/about/news/p-2936/ * https://www.postgresql.org/docs/17/release-17.html- Upgrade to 17rc1 https://www.postgresql.org/about/news/postgresql-17-rc1-released-2926/- Upgrade to 17beta3 (bsc#1229013): * bsc#1229013, CVE-2024-7348 PostgreSQL relation replacement during pg_dump executes arbitrary SQL * https://www.postgresql.org/about/news/p-2910/- Upgrade to 17beta2.- Upgrade to 17beta1. - Allow LLVM <= 18- Prepare for PostgreSQL 17. - Make sure all compilation and doc generation happens in %build.- Require LLVM <= 17 for now, because LLVM 18 doesn't seem to work.- Remove constraints file because improved memory usage for s390x- Use %patch -P N instead of deprecated %patchN.- Upgrade to 16.2: * bsc#1219679, CVE-2024-0985: Tighten security restrictions within REFRESH MATERIALIZED VIEW CONCURRENTLY. One step of a concurrent refresh command was run under weak security restrictions. If a materialized view's owner could persuade a superuser or other high-privileged user to perform a concurrent refresh on that view, the view's owner could control code executed with the privileges of the user running REFRESH. Fix things so that all user-determined code is run as the view's owner, as expected * If you use GIN indexes, you may need to reindex after updating to this release. * LLVM 18 is now supported. * https://www.postgresql.org/docs/release/16.2/- Upgrade to 16.1: * bsc#1216962, CVE-2023-5868: Fix handling of unknown-type arguments in DISTINCT "any" aggregate functions. This error led to a text-type value being interpreted as an unknown-type value (that is, a zero-terminated string) at runtime. This could result in disclosure of server memory following the text value. * bsc#1216961, CVE-2023-5869: Detect integer overflow while computing new array dimensions. When assigning new elements to array subscripts that are outside the current array bounds, an undetected integer overflow could occur in edge cases. Memory stomps that are potentially exploitable for arbitrary code execution are possible, and so is disclosure of server memory. * bsc#1216960, CVE-2023-5870: Prevent the pg_signal_backend role from signalling background workers and autovacuum processes. The documentation says that pg_signal_backend cannot issue signals to superuser-owned processes. It was able to signal these background processes, though, because they advertise a role OID of zero. Treat that as indicating superuser ownership. The security implications of cancelling one of these process types are fairly small so far as the core code goes (we'll just start another one), but extensions might add background workers that are more vulnerable. Also ensure that the is_superuser parameter is set correctly in such processes. No specific security consequences are known for that oversight, but it might be significant for some extensions. * Add support for LLVM 16 and 17 * https://www.postgresql.org/docs/16/release-16-1.html- boo#1216734: Revert the last change and make the devel package independend of all other subpackages except for the libs.- boo#1216022: Call install-alternatives from the devel subpackage as well, otherwise the symlink for ecpg might be missing.- Also buildignore the postgresql*-implementation symbols: this is needed in order to bootstrap when no postgresql version currently has valid symbols provided. Once the packages are built, OBS could translate this to the pgname-* packages and accept the ignores; during bootstrap though, there is nothing providing the symbol and the existing buildignores do not suffice.- Upgrade to 16.0: * https://www.postgresql.org/about/news/2715 * https://www.postgresql.org/docs/16/release-16.html- Upgrade to 16rc1: * https://www.postgresql.org/about/news/2702/- Upgrade too v16beta3.- Copy postgresql15 to postgresql16 and upgrade to v16beta2. - Don't create a unix domain socket under /tmp anymore.- Restore the independence of mini builds from the main build after the -mini name change from April 4, 2023. - Adjust icu handling to prepare for PostgreSQL 16.- Overhaul postgresql-README.SUSE and move it from the binary package to the noarch wrapper package. - Change the unix domain socket location from /var/run to /run.- Update to 15.3: * bsc#1211228, CVE-2023-2454: Prevent CREATE SCHEMA from defeating changes in search_path * bsc#1211229, CVE-2023-2455: Enforce row-level security policies correctly after inlining a set-returning function * https://www.postgresql.org/about/news/2637/ * https://www.postgresql.org/docs/15/release-15-3.html- bsc#1210303: Stop using the obsolete internal %_restart_on_update macro and drop support for sysv init to simplify the scriptlets.- Include -mini in Name: to avoid conflicts in the source package name and OBS internal dependency tracking.- Update to 15.2: * CVE-2022-41862, bsc#1208102: memory leak in libpq * https://www.postgresql.org/about/news/2592/ * https://www.postgresql.org/docs/15/release-15-2.html - Bump latest_supported_llvm_ver to 15.- Update to 15.1: * https://www.postgresql.org/about/news/2543/ * https://www.postgresql.org/docs/15/release-15-1.html- Update to 15.0: * https://www.postgresql.org/about/news/p-2526/ * https://www.postgresql.org/docs/15/release-15.html - Move pg_upgrade from *-contrib to *-server. - Drop support for the 9.x versioning scheme.- Update to 15~rc2 * https://www.postgresql.org/about/news/p-2521/ * Reverting the "optimized order of GROUP BY keys" feature.- Fix source URLs- Update to 15~rc1 https://www.postgresql.org/about/news/p-2516/- Create mechanism to specify the latest supported LLVM version. Automatically pin to that version if the distribution has a newer unsupported default version.- Disable LLVM JIT on riscv64- Update to 15~beta4 https://www.postgresql.org/about/news/p-2507/- Update to 15~beta3 https://www.postgresql.org/about/news/p-2496/- use %version requires for the contrib package for now as 15~beta1 is actually smaller than 15.- Add proper conditionals for lz4 and zstd- Upgrade to 15~beta1 https://www.postgresql.org/about/news/postgresql-15-beta-1-released-2453/ https://www.postgresql.org/docs/15/release-15.html - Refreshed patches to apply cleanly again: 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch postgresql-conf.patch postgresql-llvm-optional.patch postgresql-plperl-keep-rpath.patch postgresql-testsuite-keep-results-file.patch postgresql-var-run-socket.patch - Add buildrequires for lz4 and zstd support- fork package for postgresql 15- Upgrade to 14.3: * bsc#1199475, CVE-2022-1552: Confine additional operations within "security restricted operation" sandboxes. * https://www.postgresql.org/docs/14/release-14-3.html- bsc#1198166: Pin to llvm13 until the next patchlevel update.- bsc#1195680: Upgrade to 14.2: * https://www.postgresql.org/docs/14/release-14-2.html * Reindexing might be needed after applying this upgrade, so please read the release notes carefully.- boo#1190740: Add constraints file with 12GB of memory for s390x as a workaround- Add a llvmjit-devel subpackage to pull in the right versions of clang and llvm for building extensions. - Fix some mistakes in the interdependencies between the implementation packages and their noarch counterpart. - Update the BuildIgnore section.- bsc#1192516: Upgrade to 14.1 * Make the server reject extraneous data after an SSL or GSS encryption handshake (CVE-2021-23214). * Make libpq reject extraneous data after an SSL or GSS encryption handshake (CVE-2021-23222). * https://www.postgresql.org/docs/14/release-14-1.html- boo#1191782: Let rpmlint ignore shlib-policy-name-error.- Remove postgresql-testsuite-int8.sql.patch, because its purpose is unclear. This affects only the test subpackage.- Upgrade to 14.0 https://www.postgresql.org/about/news/postgresql-14-released-2318/ https://www.postgresql.org/docs/14/release-14.html- Let genlists skip non-existing binaries to avoid lots of version conditionals in the file lists.- Upgrade to 14~rc1 https://www.postgresql.org/about/news/postgresql-14-rc-1-released-2309/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items- Upgrade to 14~beta2 https://www.postgresql.org/about/news/postgresql-14-beta-2-released-2249/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items- Upgrade to 14~beta1 https://www.postgresql.org/about/news/postgresql-14-beta-1-released-2213/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items - disable postgresql-testsuite-int8.sql.patch: it seems it is not needed anymore, need to be double checked.- bsc#1185952: llvm12 breaks PostgreSQL 11 and 12 on s390x. Use llvm11 as a workaround.- Upgrade to version 13.3: * https://www.postgresql.org/docs/13/release-13-3.html * CVE-2021-32027, bsc#1185924: Prevent integer overflows in array subscripting calculations. * CVE-2021-32028, bsc#1185925: Fix mishandling of “junk” columns in INSERT ... ON CONFLICT ... UPDATE target lists. * CVE-2021-32029, bsc#1185926: Fix possibly-incorrect computation of UPDATE ... RETURNING "pg_psql_temporary_savepoint" does not exist”. - Don't use %_stop_on_removal, because it was meant to be private and got removed from openSUSE. %_restart_on_update is also private, but still supported and needed for now (bsc#1183168).- Re-enable build of the llvmjit subpackage on SLE, but it will only be delivered on PackageHub for now (boo#1183118).- Remove leftover PreReq on chkconfig, we stopped using it long time ago.- boo#1179945: Disable icu for PostgreSQL 10 (and older) on TW.- Upgrade to version 13.2: * https://www.postgresql.org/docs/13/release-13-2.html * Updating stored views and reindexing might be needed after applying this update. * CVE-2021-3393, bsc#1182040: Fix information leakage in constraint-violation error messages. * CVE-2021-20229, bsc#1182039: Fix failure to check per-column SELECT privileges in some join queries. * Obsoletes postgresql-icu68.patch.- Add postgresql-icu68.patch: fix build with ICU 68- bsc#1178961: %ghost the symlinks to pg_config and ecpg. - boo#1179765: BuildRequire libpq5 and libecpg6 when not building them to avoid dangling symlinks in the devel package.- Upgrade to version 13.1: * CVE-2020-25695, bsc#1178666: Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers within index expressions and materialized view queries. * CVE-2020-25694, bsc#1178667: a) Fix usage of complex connection-string parameters in pg_dump, pg_restore, clusterdb, reindexdb, and vacuumdb. b) When psql's \connect command re-uses connection parameters, ensure that all non-overridden parameters from a previous connection string are re-used. * CVE-2020-25696, bsc#1178668: Prevent psql's \gset command from modifying specially-treated variables. * Fix recently-added timetz test case so it works when the USA is not observing daylight savings time. (obsoletes postgresql-timetz.patch) * https://www.postgresql.org/about/news/2111/ * https://www.postgresql.org/docs/13/release-13-1.html- Fix a DST problem in the test suite: postgresql-timetz.patch https://postgr.es/m/16689-57701daa23b377bf@postgresql.org- Initial packaging of PostgreSQL 13: * https://www.postgresql.org/about/news/2077/ * https://www.postgresql.org/docs/13/release-13.htmlh01-ch4d 1739894064  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~17.4-150600.13.10.117.4-150600.13.10.1postgresql17htmlacronyms.htmladmin.htmlamcheck.htmlapp-clusterdb.htmlapp-createdb.htmlapp-createuser.htmlapp-dropdb.htmlapp-dropuser.htmlapp-ecpg.htmlapp-initdb.htmlapp-pg-ctl.htmlapp-pg-dumpall.htmlapp-pg-isready.htmlapp-pgamcheck.htmlapp-pgbasebackup.htmlapp-pgchecksums.htmlapp-pgcombinebackup.htmlapp-pgconfig.htmlapp-pgcontroldata.htmlapp-pgcreatesubscriber.htmlapp-pgdump.htmlapp-pgreceivewal.htmlapp-pgreceivexlog.htmlapp-pgrecvlogical.htmlapp-pgresetwal.htmlapp-pgresetxlog.htmlapp-pgrestore.htmlapp-pgrewind.htmlapp-pgverifybackup.htmlapp-pgwalsummary.htmlapp-postgres.htmlapp-psql.htmlapp-reindexdb.htmlapp-vacuumdb.htmlappendix-obsolete.htmlappendixes.htmlapplevel-consistency.htmlarchive-module-callbacks.htmlarchive-module-init.htmlarchive-modules.htmlarrays.htmlauth-bsd.htmlauth-cert.htmlauth-delay.htmlauth-ident.htmlauth-ldap.htmlauth-methods.htmlauth-pam.htmlauth-password.htmlauth-peer.htmlauth-pg-hba-conf.htmlauth-radius.htmlauth-trust.htmlauth-username-maps.htmlauto-explain.htmlbackup-dump.htmlbackup-file.htmlbackup-manifest-files.htmlbackup-manifest-format.htmlbackup-manifest-toplevel.htmlbackup-manifest-wal-ranges.htmlbackup.htmlbasebackup-to-shell.htmlbasic-archive.htmlbgworker.htmlbiblio.htmlbki-commands.htmlbki-example.htmlbki-format.htmlbki-structure.htmlbki.htmlbloom.htmlbookindex.htmlbrin.htmlbtree-gin.htmlbtree-gist.htmlbtree.htmlbug-reporting.htmlcatalog-pg-aggregate.htmlcatalog-pg-am.htmlcatalog-pg-amop.htmlcatalog-pg-amproc.htmlcatalog-pg-attrdef.htmlcatalog-pg-attribute.htmlcatalog-pg-auth-members.htmlcatalog-pg-authid.htmlcatalog-pg-cast.htmlcatalog-pg-class.htmlcatalog-pg-collation.htmlcatalog-pg-constraint.htmlcatalog-pg-conversion.htmlcatalog-pg-database.htmlcatalog-pg-db-role-setting.htmlcatalog-pg-default-acl.htmlcatalog-pg-depend.htmlcatalog-pg-description.htmlcatalog-pg-enum.htmlcatalog-pg-event-trigger.htmlcatalog-pg-extension.htmlcatalog-pg-foreign-data-wrapper.htmlcatalog-pg-foreign-server.htmlcatalog-pg-foreign-table.htmlcatalog-pg-index.htmlcatalog-pg-inherits.htmlcatalog-pg-init-privs.htmlcatalog-pg-language.htmlcatalog-pg-largeobject-metadata.htmlcatalog-pg-largeobject.htmlcatalog-pg-namespace.htmlcatalog-pg-opclass.htmlcatalog-pg-operator.htmlcatalog-pg-opfamily.htmlcatalog-pg-parameter-acl.htmlcatalog-pg-partitioned-table.htmlcatalog-pg-policy.htmlcatalog-pg-proc.htmlcatalog-pg-publication-namespace.htmlcatalog-pg-publication-rel.htmlcatalog-pg-publication.htmlcatalog-pg-range.htmlcatalog-pg-replication-origin.htmlcatalog-pg-rewrite.htmlcatalog-pg-seclabel.htmlcatalog-pg-sequence.htmlcatalog-pg-shdepend.htmlcatalog-pg-shdescription.htmlcatalog-pg-shseclabel.htmlcatalog-pg-statistic-ext-data.htmlcatalog-pg-statistic-ext.htmlcatalog-pg-statistic.htmlcatalog-pg-subscription-rel.htmlcatalog-pg-subscription.htmlcatalog-pg-tablespace.htmlcatalog-pg-transform.htmlcatalog-pg-trigger.htmlcatalog-pg-ts-config-map.htmlcatalog-pg-ts-config.htmlcatalog-pg-ts-dict.htmlcatalog-pg-ts-parser.htmlcatalog-pg-ts-template.htmlcatalog-pg-type.htmlcatalog-pg-user-mapping.htmlcatalogs-overview.htmlcatalogs.htmlcharset.htmlchecksums.htmlcitext.htmlclient-authentication-problems.htmlclient-authentication.htmlclient-interfaces.htmlcollation.htmlcolor-when.htmlcolor-which.htmlcolor.htmlconfig-setting.htmlconnect-estab.htmlcontinuous-archiving.htmlcontrib-dblink-build-sql-delete.htmlcontrib-dblink-build-sql-insert.htmlcontrib-dblink-build-sql-update.htmlcontrib-dblink-cancel-query.htmlcontrib-dblink-close.htmlcontrib-dblink-connect-u.htmlcontrib-dblink-connect.htmlcontrib-dblink-disconnect.htmlcontrib-dblink-error-message.htmlcontrib-dblink-exec.htmlcontrib-dblink-fetch.htmlcontrib-dblink-function.htmlcontrib-dblink-get-connections.htmlcontrib-dblink-get-notify.htmlcontrib-dblink-get-pkey.htmlcontrib-dblink-get-result.htmlcontrib-dblink-is-busy.htmlcontrib-dblink-open.htmlcontrib-dblink-send-query.htmlcontrib-prog-client.htmlcontrib-prog-server.htmlcontrib-prog.htmlcontrib-spi.htmlcontrib.htmlcreating-cluster.htmlcube.htmlcustom-rmgr.htmlcustom-scan-execution.htmlcustom-scan-path.htmlcustom-scan-plan.htmlcustom-scan.htmldatabase-roles.htmldatatype-binary.htmldatatype-bit.htmldatatype-boolean.htmldatatype-character.htmldatatype-datetime.htmldatatype-enum.htmldatatype-geometric.htmldatatype-json.htmldatatype-money.htmldatatype-net-types.htmldatatype-numeric.htmldatatype-oid.htmldatatype-pg-lsn.htmldatatype-pseudo.htmldatatype-textsearch.htmldatatype-uuid.htmldatatype-xml.htmldatatype.htmldatetime-appendix.htmldatetime-config-files.htmldatetime-input-rules.htmldatetime-invalid-input.htmldatetime-julian-dates.htmldatetime-keywords.htmldatetime-posix-timezone-specs.htmldatetime-units-history.htmldblink.htmlddl-alter.htmlddl-basics.htmlddl-constraints.htmlddl-default.htmlddl-depend.htmlddl-foreign-data.htmlddl-generated-columns.htmlddl-identity-columns.htmlddl-inherit.htmlddl-others.htmlddl-partitioning.htmlddl-priv.htmlddl-rowsecurity.htmlddl-schemas.htmlddl-system-columns.htmlddl.htmldefault-roles.htmldict-int.htmldict-xsyn.htmldifferent-replication-solutions.htmldiskusage.htmldml-delete.htmldml-insert.htmldml-returning.htmldml-update.htmldml.htmldocguide-authoring.htmldocguide-build-meson.htmldocguide-build.htmldocguide-docbook.htmldocguide-style.htmldocguide-toolsets.htmldocguide.htmldomains.htmldynamic-trace.htmlearthdistance.htmlecpg-commands.htmlecpg-concept.htmlecpg-connect.htmlecpg-cpp.htmlecpg-descriptors.htmlecpg-develop.htmlecpg-dynamic.htmlecpg-errors.htmlecpg-informix-compat.htmlecpg-library.htmlecpg-lo.htmlecpg-oracle-compat.htmlecpg-pgtypes.htmlecpg-preproc.htmlecpg-process.htmlecpg-sql-allocate-descriptor.htmlecpg-sql-commands.htmlecpg-sql-connect.htmlecpg-sql-deallocate-descriptor.htmlecpg-sql-declare-statement.htmlecpg-sql-declare.htmlecpg-sql-describe.htmlecpg-sql-disconnect.htmlecpg-sql-execute-immediate.htmlecpg-sql-get-descriptor.htmlecpg-sql-open.htmlecpg-sql-prepare.htmlecpg-sql-set-autocommit.htmlecpg-sql-set-connection.htmlecpg-sql-set-descriptor.htmlecpg-sql-type.htmlecpg-sql-var.htmlecpg-sql-whenever.htmlecpg-variables.htmlecpg.htmlencryption-options.htmlerrcodes-appendix.htmlerror-message-reporting.htmlerror-style-guide.htmlevent-log-registration.htmlevent-trigger-database-login-example.htmlevent-trigger-definition.htmlevent-trigger-example.htmlevent-trigger-interface.htmlevent-trigger-matrix.htmlevent-trigger-table-rewrite-example.htmlevent-triggers.htmlexecutor.htmlexplicit-joins.htmlexplicit-locking.htmlextend-extensions.htmlextend-how.htmlextend-pgxs.htmlextend-type-system.htmlextend.htmlexternal-admin-tools.htmlexternal-extensions.htmlexternal-interfaces.htmlexternal-pl.htmlexternal-projects.htmlfdw-callbacks.htmlfdw-functions.htmlfdw-helpers.htmlfdw-planning.htmlfdw-row-locking.htmlfdwhandler.htmlfeatures-sql-standard.htmlfeatures.htmlfile-fdw.htmlfunctions-admin.htmlfunctions-aggregate.htmlfunctions-array.htmlfunctions-binarystring.htmlfunctions-bitstring.htmlfunctions-comparison.htmlfunctions-comparisons.htmlfunctions-conditional.htmlfunctions-datetime.htmlfunctions-enum.htmlfunctions-event-triggers.htmlfunctions-formatting.htmlfunctions-geometry.htmlfunctions-info.htmlfunctions-json.htmlfunctions-logical.htmlfunctions-matching.htmlfunctions-math.htmlfunctions-merge-support.htmlfunctions-net.htmlfunctions-range.htmlfunctions-sequence.htmlfunctions-srf.htmlfunctions-statistics.htmlfunctions-string.htmlfunctions-subquery.htmlfunctions-textsearch.htmlfunctions-trigger.htmlfunctions-uuid.htmlfunctions-window.htmlfunctions-xml.htmlfunctions.htmlfuzzystrmatch.htmlgeneric-wal.htmlgenetic-algorithm.svggeqo-biblio.htmlgeqo-intro.htmlgeqo-intro2.htmlgeqo-pg-intro.htmlgeqo.htmlgin.htmlgin.svggist.htmlgit.htmlglossary.htmlgssapi-auth.htmlgssapi-enc.htmlhash-index.htmlhigh-availability.htmlhistory.htmlhot-standby.htmlhow-parallel-query-works.htmlhstore.htmlindex-api.htmlindex-cost-estimation.htmlindex-functions.htmlindex-locking.htmlindex-scanning.htmlindex-unique-checks.htmlindex.htmlindexam.htmlindexes-bitmap-scans.htmlindexes-collations.htmlindexes-examine.htmlindexes-expressional.htmlindexes-index-only-scans.htmlindexes-intro.htmlindexes-multicolumn.htmlindexes-opclass.htmlindexes-ordering.htmlindexes-partial.htmlindexes-types.htmlindexes-unique.htmlindexes.htmlindextypes.htmlinformation-schema.htmlinfoschema-administrable-role-authorizations.htmlinfoschema-applicable-roles.htmlinfoschema-attributes.htmlinfoschema-character-sets.htmlinfoschema-check-constraint-routine-usage.htmlinfoschema-check-constraints.htmlinfoschema-collation-character-set-applicab.htmlinfoschema-collations.htmlinfoschema-column-column-usage.htmlinfoschema-column-domain-usage.htmlinfoschema-column-options.htmlinfoschema-column-privileges.htmlinfoschema-column-udt-usage.htmlinfoschema-columns.htmlinfoschema-constraint-column-usage.htmlinfoschema-constraint-table-usage.htmlinfoschema-data-type-privileges.htmlinfoschema-datatypes.htmlinfoschema-domain-constraints.htmlinfoschema-domain-udt-usage.htmlinfoschema-domains.htmlinfoschema-element-types.htmlinfoschema-enabled-roles.htmlinfoschema-foreign-data-wrapper-options.htmlinfoschema-foreign-data-wrappers.htmlinfoschema-foreign-server-options.htmlinfoschema-foreign-servers.htmlinfoschema-foreign-table-options.htmlinfoschema-foreign-tables.htmlinfoschema-information-schema-catalog-name.htmlinfoschema-key-column-usage.htmlinfoschema-parameters.htmlinfoschema-referential-constraints.htmlinfoschema-role-column-grants.htmlinfoschema-role-routine-grants.htmlinfoschema-role-table-grants.htmlinfoschema-role-udt-grants.htmlinfoschema-role-usage-grants.htmlinfoschema-routine-column-usage.htmlinfoschema-routine-privileges.htmlinfoschema-routine-routine-usage.htmlinfoschema-routine-sequence-usage.htmlinfoschema-routine-table-usage.htmlinfoschema-routines.htmlinfoschema-schema.htmlinfoschema-schemata.htmlinfoschema-sequences.htmlinfoschema-sql-features.htmlinfoschema-sql-implementation-info.htmlinfoschema-sql-parts.htmlinfoschema-sql-sizing.htmlinfoschema-table-constraints.htmlinfoschema-table-privileges.htmlinfoschema-tables.htmlinfoschema-transforms.htmlinfoschema-triggered-update-columns.htmlinfoschema-triggers.htmlinfoschema-udt-privileges.htmlinfoschema-usage-privileges.htmlinfoschema-user-defined-types.htmlinfoschema-user-mapping-options.htmlinfoschema-user-mappings.htmlinfoschema-view-column-usage.htmlinfoschema-view-routine-usage.htmlinfoschema-view-table-usage.htmlinfoschema-views.htmlinstall-binaries.htmlinstall-getsource.htmlinstall-make.htmlinstall-meson.htmlinstall-post.htmlinstall-requirements.htmlinstallation-platform-notes.htmlinstallation.htmlintagg.htmlintarray.htmlinternals.htmlintro-whatis.htmlisn.htmljit-configuration.htmljit-decision.htmljit-extensibility.htmljit-reason.htmljit.htmlkernel-resources.htmllargeobjects.htmllegalnotice.htmllibpq-async.htmllibpq-build.htmllibpq-cancel.htmllibpq-connect.htmllibpq-control.htmllibpq-copy.htmllibpq-envars.htmllibpq-events.htmllibpq-example.htmllibpq-exec.htmllibpq-fastpath.htmllibpq-ldap.htmllibpq-misc.htmllibpq-notice-processing.htmllibpq-notify.htmllibpq-pgpass.htmllibpq-pgservice.htmllibpq-pipeline-mode.htmllibpq-single-row-mode.htmllibpq-ssl.htmllibpq-status.htmllibpq-threading.htmllibpq.htmllimits.htmllo-examplesect.htmllo-funcs.htmllo-implementation.htmllo-interfaces.htmllo-intro.htmllo.htmllocale.htmllocking-indexes.htmllogfile-maintenance.htmllogical-replication-architecture.htmllogical-replication-col-lists.htmllogical-replication-config.htmllogical-replication-conflicts.htmllogical-replication-failover.htmllogical-replication-monitoring.htmllogical-replication-publication.htmllogical-replication-quick-setup.htmllogical-replication-restrictions.htmllogical-replication-row-filter.htmllogical-replication-security.htmllogical-replication-subscription.htmllogical-replication.htmllogicaldecoding-catalogs.htmllogicaldecoding-example.htmllogicaldecoding-explanation.htmllogicaldecoding-output-plugin.htmllogicaldecoding-sql.htmllogicaldecoding-streaming.htmllogicaldecoding-synchronous.htmllogicaldecoding-two-phase-commits.htmllogicaldecoding-walsender.htmllogicaldecoding-writer.htmllogicaldecoding.htmlltree.htmlmaintenance.htmlmanage-ag-config.htmlmanage-ag-createdb.htmlmanage-ag-dropdb.htmlmanage-ag-overview.htmlmanage-ag-tablespaces.htmlmanage-ag-templatedbs.htmlmanaging-databases.htmlmonitoring-locks.htmlmonitoring-ps.htmlmonitoring-stats.htmlmonitoring.htmlmultibyte.htmlmultivariate-statistics-examples.htmlmvcc-caveats.htmlmvcc-intro.htmlmvcc-serialization-failure-handling.htmlmvcc.htmlnls-programmer.htmlnls-translator.htmlnls.htmlnon-durability.htmlnotation.htmloid2name.htmloverview.htmlpageinspect.htmlpagelayout.svgparallel-plans.htmlparallel-query.htmlparallel-safety.htmlparser-stage.htmlpasswordcheck.htmlperformance-tips.htmlperm-functions.htmlpgarchivecleanup.htmlpgbench.htmlpgbuffercache.htmlpgcrypto.htmlpgfreespacemap.htmlpgprewarm.htmlpgrowlocks.htmlpgstatstatements.htmlpgstattuple.htmlpgsurgery.htmlpgtestfsync.htmlpgtesttiming.htmlpgtrgm.htmlpgupgrade.htmlpgvisibility.htmlpgwaldump.htmlpgwalinspect.htmlpgxlogdump.htmlplanner-optimizer.htmlplanner-stats-details.htmlplanner-stats-security.htmlplanner-stats.htmlplhandler.htmlplperl-builtins.htmlplperl-data.htmlplperl-event-triggers.htmlplperl-funcs.htmlplperl-global.htmlplperl-triggers.htmlplperl-trusted.htmlplperl-under-the-hood.htmlplperl.htmlplpgsql-control-structures.htmlplpgsql-cursors.htmlplpgsql-declarations.htmlplpgsql-development-tips.htmlplpgsql-errors-and-messages.htmlplpgsql-expressions.htmlplpgsql-implementation.htmlplpgsql-overview.htmlplpgsql-porting.htmlplpgsql-statements.htmlplpgsql-structure.htmlplpgsql-transactions.htmlplpgsql-trigger.htmlplpgsql.htmlplpython-data.htmlplpython-database.htmlplpython-do.htmlplpython-envar.htmlplpython-funcs.htmlplpython-python23.htmlplpython-sharing.htmlplpython-subtransaction.htmlplpython-transactions.htmlplpython-trigger.htmlplpython-util.htmlplpython.htmlpltcl-config.htmlpltcl-data.htmlpltcl-dbaccess.htmlpltcl-error-handling.htmlpltcl-event-trigger.htmlpltcl-functions.htmlpltcl-global.htmlpltcl-overview.htmlpltcl-procnames.htmlpltcl-subtransactions.htmlpltcl-transactions.htmlpltcl-trigger.htmlpltcl.htmlpopulate.htmlpostgres-fdw.htmlpostgres-user.htmlpredefined-roles.htmlpreface.htmlpreventing-server-spoofing.htmlprogress-reporting.htmlprotocol-changes.htmlprotocol-error-fields.htmlprotocol-flow.htmlprotocol-logical-replication.htmlprotocol-logicalrep-message-formats.htmlprotocol-message-formats.htmlprotocol-message-types.htmlprotocol-overview.htmlprotocol-replication.htmlprotocol.htmlqueries-limit.htmlqueries-order.htmlqueries-overview.htmlqueries-select-lists.htmlqueries-table-expressions.htmlqueries-union.htmlqueries-values.htmlqueries-with.htmlqueries.htmlquery-path.htmlquerytree.htmlrangetypes.htmlrecovery-config.htmlreference-client.htmlreference-server.htmlreference.htmlregress-coverage.htmlregress-evaluation.htmlregress-run.htmlregress-tap.htmlregress-variant.htmlregress.htmlrelease-17-1.htmlrelease-17-2.htmlrelease-17-3.htmlrelease-17-4.htmlrelease-17.htmlrelease-prior.htmlrelease.htmlreplication-origins.htmlresources.htmlrole-attributes.htmlrole-membership.htmlrole-removal.htmlroutine-reindex.htmlroutine-vacuuming.htmlrow-estimation-examples.htmlrowtypes.htmlrule-system.htmlrules-materializedviews.htmlrules-privileges.htmlrules-status.htmlrules-triggers.htmlrules-update.htmlrules-views.htmlrules.htmlruntime-config-autovacuum.htmlruntime-config-client.htmlruntime-config-compatible.htmlruntime-config-connection.htmlruntime-config-custom.htmlruntime-config-developer.htmlruntime-config-error-handling.htmlruntime-config-file-locations.htmlruntime-config-locks.htmlruntime-config-logging.htmlruntime-config-preset.htmlruntime-config-query.htmlruntime-config-replication.htmlruntime-config-resource.htmlruntime-config-short.htmlruntime-config-statistics.htmlruntime-config-wal.htmlruntime-config.htmlruntime.htmlsasl-authentication.htmlseg.htmlsepgsql.htmlserver-programming.htmlserver-shutdown.htmlserver-start.htmlsource-conventions.htmlsource-format.htmlsource.htmlsourcerepo.htmlspgist.htmlspi-examples.htmlspi-interface-support.htmlspi-interface.htmlspi-memory.htmlspi-realloc.htmlspi-spi-commit.htmlspi-spi-connect.htmlspi-spi-copytuple.htmlspi-spi-cursor-close.htmlspi-spi-cursor-fetch.htmlspi-spi-cursor-find.htmlspi-spi-cursor-move.htmlspi-spi-cursor-open-with-args.htmlspi-spi-cursor-open-with-paramlist.htmlspi-spi-cursor-open.htmlspi-spi-cursor-parse-open.htmlspi-spi-exec.htmlspi-spi-execp.htmlspi-spi-execute-extended.htmlspi-spi-execute-plan-extended.htmlspi-spi-execute-plan-with-paramlist.htmlspi-spi-execute-plan.htmlspi-spi-execute-with-args.htmlspi-spi-execute.htmlspi-spi-finish.htmlspi-spi-fname.htmlspi-spi-fnumber.htmlspi-spi-freeplan.htmlspi-spi-freetuple.htmlspi-spi-freetupletable.htmlspi-spi-getargcount.htmlspi-spi-getargtypeid.htmlspi-spi-getbinval.htmlspi-spi-getnspname.htmlspi-spi-getrelname.htmlspi-spi-gettype.htmlspi-spi-gettypeid.htmlspi-spi-getvalue.htmlspi-spi-is-cursor-plan.htmlspi-spi-keepplan.htmlspi-spi-modifytuple.htmlspi-spi-palloc.htmlspi-spi-pfree.htmlspi-spi-prepare-cursor.htmlspi-spi-prepare-extended.htmlspi-spi-prepare-params.htmlspi-spi-prepare.htmlspi-spi-register-relation.htmlspi-spi-register-trigger-data.htmlspi-spi-result-code-string.htmlspi-spi-returntuple.htmlspi-spi-rollback.htmlspi-spi-saveplan.htmlspi-spi-scroll-cursor-fetch.htmlspi-spi-scroll-cursor-move.htmlspi-spi-start-transaction.htmlspi-spi-unregister-relation.htmlspi-transaction.htmlspi-visibility.htmlspi.htmlsql-abort.htmlsql-alteraggregate.htmlsql-altercollation.htmlsql-alterconversion.htmlsql-alterdatabase.htmlsql-alterdefaultprivileges.htmlsql-alterdomain.htmlsql-altereventtrigger.htmlsql-alterextension.htmlsql-alterforeigndatawrapper.htmlsql-alterforeigntable.htmlsql-alterfunction.htmlsql-altergroup.htmlsql-alterindex.htmlsql-alterlanguage.htmlsql-alterlargeobject.htmlsql-altermaterializedview.htmlsql-alteropclass.htmlsql-alteroperator.htmlsql-alteropfamily.htmlsql-alterpolicy.htmlsql-alterprocedure.htmlsql-alterpublication.htmlsql-alterrole.htmlsql-alterroutine.htmlsql-alterrule.htmlsql-alterschema.htmlsql-altersequence.htmlsql-alterserver.htmlsql-alterstatistics.htmlsql-altersubscription.htmlsql-altersystem.htmlsql-altertable.htmlsql-altertablespace.htmlsql-altertrigger.htmlsql-altertsconfig.htmlsql-altertsdictionary.htmlsql-altertsparser.htmlsql-altertstemplate.htmlsql-altertype.htmlsql-alteruser.htmlsql-alterusermapping.htmlsql-alterview.htmlsql-analyze.htmlsql-begin.htmlsql-call.htmlsql-checkpoint.htmlsql-close.htmlsql-cluster.htmlsql-commands.htmlsql-comment.htmlsql-commit-prepared.htmlsql-commit.htmlsql-copy.htmlsql-create-access-method.htmlsql-createaggregate.htmlsql-createcast.htmlsql-createcollation.htmlsql-createconversion.htmlsql-createdatabase.htmlsql-createdomain.htmlsql-createeventtrigger.htmlsql-createextension.htmlsql-createforeigndatawrapper.htmlsql-createforeigntable.htmlsql-createfunction.htmlsql-creategroup.htmlsql-createindex.htmlsql-createlanguage.htmlsql-creatematerializedview.htmlsql-createopclass.htmlsql-createoperator.htmlsql-createopfamily.htmlsql-createpolicy.htmlsql-createprocedure.htmlsql-createpublication.htmlsql-createrole.htmlsql-createrule.htmlsql-createschema.htmlsql-createsequence.htmlsql-createserver.htmlsql-createstatistics.htmlsql-createsubscription.htmlsql-createtable.htmlsql-createtableas.htmlsql-createtablespace.htmlsql-createtransform.htmlsql-createtrigger.htmlsql-createtsconfig.htmlsql-createtsdictionary.htmlsql-createtsparser.htmlsql-createtstemplate.htmlsql-createtype.htmlsql-createuser.htmlsql-createusermapping.htmlsql-createview.htmlsql-deallocate.htmlsql-declare.htmlsql-delete.htmlsql-discard.htmlsql-do.htmlsql-drop-access-method.htmlsql-drop-owned.htmlsql-dropaggregate.htmlsql-dropcast.htmlsql-dropcollation.htmlsql-dropconversion.htmlsql-dropdatabase.htmlsql-dropdomain.htmlsql-dropeventtrigger.htmlsql-dropextension.htmlsql-dropforeigndatawrapper.htmlsql-dropforeigntable.htmlsql-dropfunction.htmlsql-dropgroup.htmlsql-dropindex.htmlsql-droplanguage.htmlsql-dropmaterializedview.htmlsql-dropopclass.htmlsql-dropoperator.htmlsql-dropopfamily.htmlsql-droppolicy.htmlsql-dropprocedure.htmlsql-droppublication.htmlsql-droprole.htmlsql-droproutine.htmlsql-droprule.htmlsql-dropschema.htmlsql-dropsequence.htmlsql-dropserver.htmlsql-dropstatistics.htmlsql-dropsubscription.htmlsql-droptable.htmlsql-droptablespace.htmlsql-droptransform.htmlsql-droptrigger.htmlsql-droptsconfig.htmlsql-droptsdictionary.htmlsql-droptsparser.htmlsql-droptstemplate.htmlsql-droptype.htmlsql-dropuser.htmlsql-dropusermapping.htmlsql-dropview.htmlsql-end.htmlsql-execute.htmlsql-explain.htmlsql-expressions.htmlsql-fetch.htmlsql-grant.htmlsql-importforeignschema.htmlsql-insert.htmlsql-keywords-appendix.htmlsql-listen.htmlsql-load.htmlsql-lock.htmlsql-merge.htmlsql-move.htmlsql-notify.htmlsql-prepare-transaction.htmlsql-prepare.htmlsql-reassign-owned.htmlsql-refreshmaterializedview.htmlsql-reindex.htmlsql-release-savepoint.htmlsql-reset.htmlsql-revoke.htmlsql-rollback-prepared.htmlsql-rollback-to.htmlsql-rollback.htmlsql-savepoint.htmlsql-security-label.htmlsql-select.htmlsql-selectinto.htmlsql-set-constraints.htmlsql-set-role.htmlsql-set-session-authorization.htmlsql-set-transaction.htmlsql-set.htmlsql-show.htmlsql-start-transaction.htmlsql-syntax-calling-funcs.htmlsql-syntax-lexical.htmlsql-syntax.htmlsql-truncate.htmlsql-unlisten.htmlsql-update.htmlsql-vacuum.htmlsql-values.htmlsql.htmlssh-tunnels.htmlssl-tcp.htmlsslinfo.htmlsspi-auth.htmlstorage-file-layout.htmlstorage-fsm.htmlstorage-hot.htmlstorage-init.htmlstorage-page-layout.htmlstorage-toast.htmlstorage-vm.htmlstorage.htmlstylesheet.csssubxacts.htmlsupported-platforms.htmlsystem-catalog-declarations.htmlsystem-catalog-initial-data.htmltableam.htmltablefunc.htmltablesample-method.htmltablesample-support-functions.htmltcn.htmltest-decoding.htmltextsearch-configuration.htmltextsearch-controls.htmltextsearch-debugging.htmltextsearch-dictionaries.htmltextsearch-features.htmltextsearch-indexes.htmltextsearch-intro.htmltextsearch-limitations.htmltextsearch-parsers.htmltextsearch-psql.htmltextsearch-tables.htmltextsearch.htmltransaction-id.htmltransaction-iso.htmltransactions.htmltrigger-datachanges.htmltrigger-definition.htmltrigger-example.htmltrigger-interface.htmltriggers.htmltsm-system-rows.htmltsm-system-time.htmltutorial-accessdb.htmltutorial-advanced-intro.htmltutorial-advanced.htmltutorial-agg.htmltutorial-arch.htmltutorial-concepts.htmltutorial-conclusion.htmltutorial-createdb.htmltutorial-delete.htmltutorial-fk.htmltutorial-inheritance.htmltutorial-install.htmltutorial-join.htmltutorial-populate.htmltutorial-select.htmltutorial-sql-intro.htmltutorial-sql.htmltutorial-start.htmltutorial-table.htmltutorial-transactions.htmltutorial-update.htmltutorial-views.htmltutorial-window.htmltutorial.htmltwo-phase.htmltypeconv-func.htmltypeconv-oper.htmltypeconv-overview.htmltypeconv-query.htmltypeconv-select.htmltypeconv-union-case.htmltypeconv.htmlunaccent.htmlunsupported-features-sql-standard.htmlupgrading.htmluser-manag.htmlusing-explain.htmluuid-ossp.htmlvacuumlo.htmlview-pg-available-extension-versions.htmlview-pg-available-extensions.htmlview-pg-backend-memory-contexts.htmlview-pg-config.htmlview-pg-cursors.htmlview-pg-file-settings.htmlview-pg-group.htmlview-pg-hba-file-rules.htmlview-pg-ident-file-mappings.htmlview-pg-indexes.htmlview-pg-locks.htmlview-pg-matviews.htmlview-pg-policies.htmlview-pg-prepared-statements.htmlview-pg-prepared-xacts.htmlview-pg-publication-tables.htmlview-pg-replication-origin-status.htmlview-pg-replication-slots.htmlview-pg-roles.htmlview-pg-rules.htmlview-pg-seclabels.htmlview-pg-sequences.htmlview-pg-settings.htmlview-pg-shadow.htmlview-pg-shmem-allocations.htmlview-pg-stats-ext-exprs.htmlview-pg-stats-ext.htmlview-pg-stats.htmlview-pg-tables.htmlview-pg-timezone-abbrevs.htmlview-pg-timezone-names.htmlview-pg-user-mappings.htmlview-pg-user.htmlview-pg-views.htmlview-pg-wait-events.htmlviews-overview.htmlviews.htmlwal-async-commit.htmlwal-configuration.htmlwal-for-extensions.htmlwal-internals.htmlwal-intro.htmlwal-reliability.htmlwal.htmlwarm-standby-failover.htmlwarm-standby.htmlwhen-can-parallel-query-be-used.htmlxact-locking.htmlxaggr.htmlxfunc-c.htmlxfunc-internal.htmlxfunc-optimization.htmlxfunc-overload.htmlxfunc-pl.htmlxfunc-sql.htmlxfunc-volatility.htmlxfunc.htmlxindex.htmlxml-limits-conformance.htmlxml2.htmlxoper-optimization.htmlxoper.htmlxplang-install.htmlxplang.htmlxproc.htmlxtypes.htmlSPI_commit.3pg17.gzSPI_commit_and_chain.3pg17.gzSPI_connect.3pg17.gzSPI_connect_ext.3pg17.gzSPI_copytuple.3pg17.gzSPI_cursor_close.3pg17.gzSPI_cursor_fetch.3pg17.gzSPI_cursor_find.3pg17.gzSPI_cursor_move.3pg17.gzSPI_cursor_open.3pg17.gzSPI_cursor_open_with_args.3pg17.gzSPI_cursor_open_with_paramlist.3pg17.gzSPI_cursor_parse_open.3pg17.gzSPI_exec.3pg17.gzSPI_execp.3pg17.gzSPI_execute.3pg17.gzSPI_execute_extended.3pg17.gzSPI_execute_plan.3pg17.gzSPI_execute_plan_extended.3pg17.gzSPI_execute_plan_with_paramlist.3pg17.gzSPI_execute_with_args.3pg17.gzSPI_finish.3pg17.gzSPI_fname.3pg17.gzSPI_fnumber.3pg17.gzSPI_freeplan.3pg17.gzSPI_freetuple.3pg17.gzSPI_freetuptable.3pg17.gzSPI_getargcount.3pg17.gzSPI_getargtypeid.3pg17.gzSPI_getbinval.3pg17.gzSPI_getnspname.3pg17.gzSPI_getrelname.3pg17.gzSPI_gettype.3pg17.gzSPI_gettypeid.3pg17.gzSPI_getvalue.3pg17.gzSPI_is_cursor_plan.3pg17.gzSPI_keepplan.3pg17.gzSPI_modifytuple.3pg17.gzSPI_palloc.3pg17.gzSPI_pfree.3pg17.gzSPI_prepare.3pg17.gzSPI_prepare_cursor.3pg17.gzSPI_prepare_extended.3pg17.gzSPI_prepare_params.3pg17.gzSPI_register_relation.3pg17.gzSPI_register_trigger_data.3pg17.gzSPI_repalloc.3pg17.gzSPI_result_code_string.3pg17.gzSPI_returntuple.3pg17.gzSPI_rollback.3pg17.gzSPI_rollback_and_chain.3pg17.gzSPI_saveplan.3pg17.gzSPI_scroll_cursor_fetch.3pg17.gzSPI_scroll_cursor_move.3pg17.gzSPI_start_transaction.3pg17.gzSPI_unregister_relation.3pg17.gzdblink.3pg17.gzdblink_build_sql_delete.3pg17.gzdblink_build_sql_insert.3pg17.gzdblink_build_sql_update.3pg17.gzdblink_cancel_query.3pg17.gzdblink_close.3pg17.gzdblink_connect.3pg17.gzdblink_connect_u.3pg17.gzdblink_disconnect.3pg17.gzdblink_error_message.3pg17.gzdblink_exec.3pg17.gzdblink_fetch.3pg17.gzdblink_get_connections.3pg17.gzdblink_get_notify.3pg17.gzdblink_get_pkey.3pg17.gzdblink_get_result.3pg17.gzdblink_is_busy.3pg17.gzdblink_open.3pg17.gzdblink_send_query.3pg17.gz/usr/share/doc/packages//usr/share/doc/packages/postgresql17//usr/share/doc/packages/postgresql17/html//usr/share/man/man3/-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:37479/SUSE_SLE-15-SP6_Update/e1149e1d6329ab12d18161b95175a454-postgresql17.SUSE_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linuxdirectoryXML 1.0 document, UTF-8 Unicode text, with very long linesSVG Scalable Vector Graphics imageASCII texttroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)++klKIb(utf-8c3c7826c569773b7a752058d1bc1bbcd07d27ba0b4726ad406c0c5cf94e7bfa4?P7zXZ !t/']"k%n凛0#J:fW3sO> kiC7e.*{Pc.UY8&r gC6-Ĵ!UN-*cm埥fE}yv 2>s0\:of@JR`́+4{0bnfr:@&WY=ias(OhpY'q?3:a@) ")t(.ԊK(xgHzzٸ}=Yro6,QߞF}!d_ͮ< J8e6cZ`)&7em"9zݍ`МiA-ՁwVc&4-nVr*fQYg4_G>y |r1/\** \~b<|\*HpOQidGK,&Xst 0pl3Qr'RQPJs/\F2' x w\3RYݵ޺`lMdmbֱewsl͜']Dv6^vW@`W&x/igԎN% cCKE.`Hd3~Qx&Q,LJOCܪ­vSH;QRׇ-\ jdGTw,Jy8Um$$JUVx6_bXzrh]CМe"t<"~*ogc砝B*X7 j>tfBM&M7u1*#tv?Mzk)2Ÿ6Jx)TֆEchTx>nŬ?t 6xOlKsquEFD59] sg gZk.ھRmon#)ҠTw4*(@#ACFg\o,~ Z޲K İ.UiA PqCF6 C{цE@ 1yu>+!od-˭3]#0N4"xLݞ܍2](,^|G#Voe~0j>Ow2ȤwPPz ߽?ff~w¥/кCbZEel|b^mI+K\?}-a^Ke1Wk4>m48RB3`\zѻGimTULlwI[ׅĠtLeB){ؿtT@"Gʚ `U f\N4' zΒ2|N $ں6vV'w-sZSflOѢ>Ez{mŔ~.M1fZl$'MdHG]L3C?s ihO1lĞ{+].WQgWLS5PlwgtJN{8 y7gX'+@U}A=qimW XCn`7m2n h_īr7EvZ-Vsڜ4AD.M\% g~t?fRnfˋ+!-ՙ N8)ٙo;n%.R*QC 9_K 2"q@v]N*[G"utҳܤo8CjnI<0AHSXZ0/g~5yuH3Bawa< 2eb13X 9ς 1.3< !kzj!nȄnY3f$4&0ESQ'GFhCJ,0G E#*Fi&vzg(cY?U1ܷ2)5Rn >S>̝(=:4pLsHEG^M_qS9\` Mx ?! nb&1b=.n(AT)UJwoVz-<=lLVΜQcCpyF':P^Gɡ ;{Ogαscɠ)k2^—Oߍ}&+\?2AsD@f̸20FjhoNh \FQ,k:^w/wQ4_wro4BL '؛T_+' `vC+Z4ȃ5Q=.YzD=0:/jSR 8}q~dUKBw6$xJ';$c)߰ +y (!ANmMXBfl M@"l1B%+ ϐZҞʹW7Yf!]pTpԴ!x5 2:.㜿ߟ}z< lIP57N8d_69XBVgբaϓj-u%QkVpGgpNˤ sB+o3|1z3mugm~Elcѯx6o=^VV߇yڔܰa3Yz&pWi ` Ņ=[V]^+{h\>sRRtkiIbihlmUH;8Ә3iV"iWMc`lۂs`q}Vnw5O+AJ~4T^N }$h_t>gDx*[M+WX^0.U(H(,ʟX2ߠ ' (L,V6sf' <>$2A= UoZ3!D*ΦDPe } Ѱ?Z(ƻ hn .jo$dSe8D\6U6î fz{դ$Omhl?;KQz.7FmR`m%82'Du-R~)sm4rxO,rlS,w֡=dBX%FH&9s+27vJFlQ 9,·%]r![.Ԫhzz_c4OJ?/qr[`3Q=\,3#us |Aɵkq%l"R~2=ُl6GAK#סGS5uyak%ڵ&O O/5Id7Yff ө3iR(r$řG Ĭ9erbdޟaW^tЋ kޘc%!h~SvL馼LL-'4ZZ;D!$3e,]DiP*Zt熳`/e09 2g*Ʒfq@ՠGzhv;L5 0GSD5E(oɷQ[Ä{ORwXQJ!M:,7XoBfLQg:ȟPΖiv1^|B8>hW L,(6tX"6Q!\3a'?c5 cL"nM>5& { 6j,z#M[ڪeҍYI]|}I"]b1S=RZX$:3R:z e *xχOLn6߂)Z*~+xK&HUd8s0 % @(4l(ܚ"D,Ok/2ՃN@P0YX Io@qvX w)h-P0!UpTN悱~ q˥¥jFtD|)2:qD`Y3J8e'3]CG9;l֓EXrT5t@";=,|:X /` |G ==^涟L b;oJ/aCv*8;,G ړ9`$n\sD9r뻷P.jY2'f:+;1%(,Eh""шcxA=rA7̟SX:lFt jiw>/~ Pxygi W1sRvJ,9\7Y]ц |$,ht.7|x04Iǔ-EϾ[mn];KfSӋw@񣽟ޡZ R]}(>D=A+2xg9|st'tm)ZC%\@v`$`^ Q-)jPRgBu #τySo;.x2"7-Ӫ=ٍJ"}91FE;=:V`/ jOk3O1;6tGUx\! Sqmiߛٵ.TJ&"_CS.e0Tִx7-M׿h~6 .ݰ=jnRumySm~ )sR] g,Rw,oWT߻@4 R6V6+ :v7M" r,Z(l#TCG64&0XJcu FiYkO %u^az5қufה桂FeMH|\t^]Dv1#WF UˋN#>۲dCU)e\cRaN]k$6b{ OQh}9OjcvþVaK'\m,l*rK߮1[eSn+w/,Lՙ=kRjȓMnmٳ!qϺ":9yo/&M^'O HoKnG6Ut+G/z n~Z-~g>V(s  z.C@yX}^Rs@QkA[۴uˏdոT^ ;fw)M.5 [Ћt_͸>6ч?bՂyiL8iPCO@8;s4& 7K7આ]Sh+~s[ߐ+&dnp?t+Ѩ>ufUpl6(dQ4<. Q_gG@26JSɬ7}xS'A¤828ߘQt [2ho*[.=|I ?ɳ%׹>l9t~ѭ/iձe^l#Zw`f{%Q˿6W[2)E5{0;O]wi UL/J|!1Os+ YZ