luci-0.26.0-93.el6.centos$>PykP~)'r>@?d  S 1\bg ( . 4 &@   L""˹"(8$9t:=P>P?P@PGPHYIaXcYc(\ch]kt^h"bdrewfzl|tuv,wxyCluci0.26.093.el6.centosWeb-based high availability administration applicationLuci is a web-based high availability administration application built on the TurboGears 2 framework.X_ac1bm.rdu2.centos.org$}CentOSGPLv2 and MITCentOS BuildSystem Applications/Systemhttps://fedorahosted.org/cluster/wiki/Lucilinuxi686if [ "$1" -eq "2" ] && [ -f "/var/lib/luci/etc/luci.ini" ]; then installed="$(rpm -q --queryformat="%{V}-%{R}\n" --last -- luci \ | sed -ne '/^[[:digit:]]/{s|\(\S*\)\s\+$|\1|;p}')" new="0.26.0-93.el6.centos" # NOTE "new"/"old" used loosely until settled old=$(echo "${installed}" | sed -ne "/^${new}$/n;p"); old=${old:-"${new}"} echo "${installed}" | grep -q "^${new}$"; taken_over=$? # 0~true old="${old%.[a-z]*}"; new="${new%.[a-z]*}" # drop dist tags [ ${taken_over} -eq 0 ] && orig="${new}" || orig="${old}" # backup f. tail # settle down old is not newer of the two and viceversa if [ "$(echo -e "${old}\n${new}" | sort -V | head -n1)" != "${old}" ]; then temp="${new}"; new="${old}"; old="${temp}" fi # dummy (non-bisection) + optimistic (don't trigger on same-ver reinstall) breakpoints=" 0.23.0-1 0.26.0-53 0.26.0-72 0.26.0-89" # neutralize newlines for breakpoint in ${breakpoints}; do [ "${breakpoint}" = "${old}" ] && continue check_order=$(echo -en "${old}\n${breakpoint}\n${new}") if [ "$(echo -e "${check_order}" | sort -V)" = "${check_order}" ]; then mv -f --backup=t -- "/var/lib/luci/etc/luci.ini"{,".rpmsave-${orig}"} || : break fi done fi /usr/sbin/groupadd -g 141 luci 2> /dev/null /usr/sbin/useradd -u 141 -g 141 -d /var/lib/luci -s /sbin/nologin -r \ -c "luci high availability management application" luci 2> /dev/null exit 0/sbin/chkconfig --add "luci" || :if [ "$1" == "0" ]; then /sbin/service "luci" stop &>/dev/null /sbin/chkconfig --del "luci" rm -f -- "/var/lib/luci/certs"/cert_rnd.* "/var/lib/luci/etc/luci.ini".rpmsave-* || : elif [ "$1" -ge "1" ] && [ -f "/var/lib/luci/etc/luci.ini" ]; then installed="$(rpm -q --queryformat="%{V}-%{R}\n" --last -- luci \ | sed -ne '/^[[:digit:]]/{s|\(\S*\)\s\+$|\1|;p}')" new="0.26.0-93.el6.centos" # NOTE "new"/"old" used loosely until settled old=$(echo "${installed}" | sed -ne "/^${new}$/n;p"); old=${old:-"${new}"} echo "${installed}" | grep -q "^${new}$"; taken_over=$? # 0~true old="${old%.[a-z]*}"; new="${new%.[a-z]*}" # drop dist tags [ ${taken_over} -eq 0 ] && orig="${new}" || orig="${old}" # backup f. tail # settle down old is not newer of the two and viceversa if [ "$(echo -e "${old}\n${new}" | sort -V | head -n1)" != "${old}" ]; then temp="${new}"; new="${old}"; old="${temp}" fi # dummy (non-bisection) + optimistic (don't trigger on same-ver reinstall) breakpoints=" 0.23.0-1 0.26.0-53 0.26.0-72 0.26.0-89" # neutralize newlines for breakpoint in ${breakpoints}; do [ "${breakpoint}" = "${old}" ] && continue check_order=$(echo -en "${old}\n${breakpoint}\n${new}") if [ "$(echo -e "${check_order}" | sort -V)" = "${check_order}" ]; then mv -f --backup=t -- "/var/lib/luci/etc/luci.ini"{,".rpmsave-${orig}"} || : break fi done fiif [ "$1" -ge "1" ]; then /sbin/service "luci" condrestart &>/dev/null || : fiDZSL%+,$$B% % D < 9 9"'F'F;!!    _!!   xx33++++   h h $rri Y  ">Tjj/ E E6NddI!6!6_ <<<kkK__ ""==== S88 f f q{7":":$$!R!R    ))~~xZZ]pp1MM HHV+H,H,xx == ) )!DnZvZvddWE[E[[ZZOggeeeO^^8.|xionweAb-s$2~%6@ %Fya'6 G^,i1W5 u6} uG.Xz O-e>- @#VE% =<j : $Jl* k['9X3\ [  } y  Fgg5)8)8Zyrmm , ,!F')큤AA큤A큤A큤AA큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큀A큠A큤A큠AX_TX_TX_TX_TX_TX_VX_UX_UX_UX_UX_UX_UX_UX_UOX_UX_UX_VOX_UX_UX_TX_UX_UX_TX_TX_UX_UX_TX_UX_UX_VOX_UX_UX_TX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UX_VX_VOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UX_TX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UX_TX_UX_UX_TX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UOX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UX_TX_UX_UX_TX_UX_UOX_UX_UX_TX_UX_UX_TX_UX_UX_TX_UX_UX_VOX_UX_UX_TX_UX_UOX_UX_UX_UX_UOX_TOOOX_UOOOOOOOOOOOOOOOOOOX_TX_TX_UX_UOOOOX_TX_TOOOOOOOOOOOOX_TOOOOOOOOOOOOOOOOOOOOX_TOOOOX_UX_TX_TX_TX_TX_TOOX_TX_TX_TOOOOOX_TOOX_TX_TX_TX_TOX_UX_VOX_UX_UOX_TX_TX_TX_TX_TX_TOX_TX_TX_TX_TOOOOOX_TX_TOX_TX_TX_TOOX_VOX_UX_UX_VOX_UX_UOX_UX_UOX_UX_UX_VOX_UX_UOX_UX_UX_VOX_UX_UX_TX_UX_UX_TX_UX_UX_TX_UX_UX_TX_UX_UX_TX_UX_UX_TX_VOOX_UX_UX_UX_UX_UX_UX_TX_UX_UX_VX_U5b4a180ec42b5e9862d33f18f7c20383a428e1302684fb906b5aa43db2940c94aa2401f90a785a3fdad47b0e2873b35f8de22ea96f24951344f06a7136329bb1bac17f8048f3b391717b75c752ab0070cc78d419cceaec85f8fce7add1c717d13ae0e78c4f4fe1aac1a941d23d404adf308650191355d3652ab584542cb5b0f13b9b9fb5c1a066acd809609ed312cadd20cf9ca6f3ac042c798af9f18b661a1f434e1921b577337a570421c5c95f8c36b431fb6ac86dbea949f1693158610f42c61f4c087cd0e9f0aba5b8b127dab157e32d449c5cdfba50d102f1eeff01309201ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b3e8a900556b252c38881874a41a9c3e75cdce017b7d7a521c8835670fb658d953346f9108345b1a71ddc5a5c626bbb977c84adc0d440f00d9459737ee124c9b3f29b902a88e4fd907ae8b5ef6a1fb2ab34bfc24f3af5d566d20e55fc6e48c6a572f79537c77fcc039a703020df8191e7cd8f168c2f4627daaa7825520f2af9a028bb4e7a75ec2ab9f551fc8918fbe7e248486b883ae3ad3d69be3c5f5cc058de38b1da0edf2a1ed914ff0d13e2a3937bf849ada54baa84801c07d47bebcd937c38b1da0edf2a1ed914ff0d13e2a3937bf849ada54baa84801c07d47bebcd937c3bd093d41d85f9c541f1e953d04a0225b82471f7e3be59aab5ea9abece208838a06542b74a7b0e96bb8c44c05324a7e05a48ed7631748591eb4793d7dd17fa62a06542b74a7b0e96bb8c44c05324a7e05a48ed7631748591eb4793d7dd17fa629193738be7da3cfceee00d52d0595f0b0fa7590335852e5b35e06ea0df698ab50fcade7723f832d2dd24bfaa2eda7298b3efb3b51f85381c539ccfbaac0b3f6c0fcade7723f832d2dd24bfaa2eda7298b3efb3b51f85381c539ccfbaac0b3f6c963a42e37b09dc38a2333fc80f87c244341fe7083beddf8ebc5f0881e17e13ecefea39db10bc7234a1ff8a72cb02d522f2c49e6a765854d8b92e258442bb2c81dde828ed41b2ff6dab1b50f13b8bb1b8af0c141c226570b2c2e01c5c11bd6b1cdde828ed41b2ff6dab1b50f13b8bb1b8af0c141c226570b2c2e01c5c11bd6b1c126506a6dea2350216152e603f6c7dee4a834111739c8950a5c687539919a72725e2efa7e56456fc7cb215a24601408f9d6a0d2ddd04588c6395e78d7277af3825e2efa7e56456fc7cb215a24601408f9d6a0d2ddd04588c6395e78d7277af381735d619a5c0ac25f0fea7a29707440c11da716e335246636fedb3c5101ffe42d7f6773a3304587d9031623602aec7e9b3294da15b7f59f68698fb359cce9d03d7f6773a3304587d9031623602aec7e9b3294da15b7f59f68698fb359cce9d03a37da695f108350982cea9cc9b4179fc7b94be7ace9c1cc9929ea1d417cb8ad68ca133bd003d6c8d5d5be41a5ba7fe8820878782d2c210fde9d4f48c8f132eea8ca133bd003d6c8d5d5be41a5ba7fe8820878782d2c210fde9d4f48c8f132eea30706dba0134eaf426a0a1fa5e8f2fbc23a06ac4318c546d1a935b0fced4b6d5cbe903cdd7751a7e2be9ca4e63f1cf8a693de3acd2d16071abb5f8cd55be221ecbe903cdd7751a7e2be9ca4e63f1cf8a693de3acd2d16071abb5f8cd55be221e7ec2d551618f1f79cf06880d052220fdc29e3a33c998e839b4ee57f12042a00d29102dbffce321870b55727088e76c37fbf63d0f8f23cedc26787472c42b317729102dbffce321870b55727088e76c37fbf63d0f8f23cedc26787472c42b3177c0366e284cc8aa7e94aea01be7a64e35b6f92ecc2a6a96a39a3b05f167a653b1e8ac1f3edf74d029e08375c5d8b00cdd17bb3948f3f4a0f8e27ddf67962a6ff0e8ac1f3edf74d029e08375c5d8b00cdd17bb3948f3f4a0f8e27ddf67962a6ff0ba227fcba0a961f6eee8c1bb6012bba8fc84c697b0f20518ee623972fdeaa7eb53bb1f78a3d556de440dd65da89451eff24193451156ff234160c55ce1fbbef653bb1f78a3d556de440dd65da89451eff24193451156ff234160c55ce1fbbef658a5080fbe9ec139fcccf622e5ec705200efb835b6b033606c3169f2715ba57b7da818e0c092fee2f0205cef5439dca1b3c700069eb2949209de7785c06166667da818e0c092fee2f0205cef5439dca1b3c700069eb2949209de7785c0616666fda598be422b3e5fcea6070b010702cdfed6de683f33f2235a6007470b65ebca4c9de54571f1c24e5f329d9d6156c1067b2c9d998e3475a92ece8b8f79cf265f4c9de54571f1c24e5f329d9d6156c1067b2c9d998e3475a92ece8b8f79cf265f252999f31c5a45af4c8ab5f81ed04b1215aa06223fd998674d11589a63443f8817715538e0cf7488921980534fa5717fda19e7d11a8817bb0dd648605b08031417715538e0cf7488921980534fa5717fda19e7d11a8817bb0dd648605b0803142e38d8ede63b63d56c80f5228d7caac11b05d60bf4984280fdc0baa495c9c97de7cde6e51da32ebc83c0beb9ff8fef2b7ba944c0b8b888c12fad03b96a6533b3e7cde6e51da32ebc83c0beb9ff8fef2b7ba944c0b8b888c12fad03b96a6533b3633c37c50c8707f32eeef393f73034d15f6c5781d2fd612e28233da8bb18088c96c686d999361336174d1d9184936d75d52de7398bffa3ad7358aec0bb9042ea96c686d999361336174d1d9184936d75d52de7398bffa3ad7358aec0bb9042ea460b1080a509473dee962af412ec8505a568ce0aaed35d50915fdc36df4e7321a3689a4a7d8fe97ca735a55f825736607ba2174623366aa940885ea871035e4ba3689a4a7d8fe97ca735a55f825736607ba2174623366aa940885ea871035e4bda6b84611751704bca30ab609a4ee55cda7c6215d59e5e4bafe0ec7e04933409c64893f844d85753fdff07a5e55aae837342bfed5a533985829c4004bc00b25fc64893f844d85753fdff07a5e55aae837342bfed5a533985829c4004bc00b25f42cbc5b3663cb19a1d22f077e3bcafebe6c9b0d91287f6103bf0b45e45592e22910a0bebf9b6f7aa5988a7bb01d5a0f4b3569aae6b8de023609b823c905d1496910a0bebf9b6f7aa5988a7bb01d5a0f4b3569aae6b8de023609b823c905d14962be748e87db2b027fd342baa4de2edd29c98a3b42883faf6b40e55a26c527fb41c69e3224abf1d64741fcd4ba6fd5bfb753f318f7a0b2e952f7547b062a4ee151c69e3224abf1d64741fcd4ba6fd5bfb753f318f7a0b2e952f7547b062a4ee15679635a123c0853228edaba8d21add076f6942fbaeb3d0b51704857e3ceca9d0a025c42a9d7cad02e17e93db87601eaec3677d19f28b8a6388ae341f21777bf1a025c42a9d7cad02e17e93db87601eaec3677d19f28b8a6388ae341f21777bf1515f0e3f676a739036157e9718171511ebe2da72921ff6abde37e22dfebd712eb36139ec4372229b0a768f95c0a19c214c4042ba96bd44d8615cbc804f3d82f9b36139ec4372229b0a768f95c0a19c214c4042ba96bd44d8615cbc804f3d82f98aab34805444160035f5289f5725bb28236c32edc78a971b8a3e3786542991686309c327152379f03756c8149f7c6ca0a7ec762d57f82d8dbdc23e414ec16f4d6309c327152379f03756c8149f7c6ca0a7ec762d57f82d8dbdc23e414ec16f4d3118d831a52c45b7ce1065a1e5363440b858ee7e87284ab6b39ee7b65135744887a4e6724bd805b6915ecab8d073bbcfd2c990611639a666821c3bb5b429942b87a4e6724bd805b6915ecab8d073bbcfd2c990611639a666821c3bb5b429942b88569b96b80a22df02711616884647040f6224f62af32122d03cf2ddf873d1e896c5025bdbb8022e7b10b5e79d4d1a4369e4e48a82f9f82b3f786f184d0d465896c5025bdbb8022e7b10b5e79d4d1a4369e4e48a82f9f82b3f786f184d0d465883b4d954222e836a02e7ab2be5cdba2c9a145c525f6d68de6d847686539826ec40f54e195b30bb0741c53351fb6edce722f042731a9e615c1c3c34b0c038b70140f54e195b30bb0741c53351fb6edce722f042731a9e615c1c3c34b0c038b701d666b97e5752359119d820b335c6dee7f014b410e843685195c50a1cd43232d261bb93cc0d68a9f8533264b3e88a477b751a9c95fe7a8505c32a64db48be71d961bb93cc0d68a9f8533264b3e88a477b751a9c95fe7a8505c32a64db48be71d9ebcc382d4ba5cc2e5cc143c833da3b1d34da4332dec85cce876b801ef95e7106931fc8951588354e6289056dcb694e468a207ad73823c2e1422e19c8885b3012931fc8951588354e6289056dcb694e468a207ad73823c2e1422e19c8885b301290cf11ef404d08c749cfc9eb3e10454eb8f584ed83c31fcb9ca5fb69edbd9212f6f540905273287b5299d54eadb0b44bf16756607285b2ddcade2a1502de30baf6f540905273287b5299d54eadb0b44bf16756607285b2ddcade2a1502de30ba2b19cb91942d1c66b527ce8b288cfcc03cdbe3b7e8d24ef39df6d9c5b6be459a2863401e1bc160eab5671de6b353465e6722e0ce7060f1ca79b838d69b5487392863401e1bc160eab5671de6b353465e6722e0ce7060f1ca79b838d69b5487393c6cd67bac3e091b9efdf09bb5d2c7a5ec588d8ea6a1b9c336d5afff8caba7a56b277fec5c042ba02d9174694947512efaf4a8bac7c477df968ca667b935657e6b277fec5c042ba02d9174694947512efaf4a8bac7c477df968ca667b935657e83b41310afbc2a7e41760535b94f2cdcb8f3a2e4237ec4f1f1403448878b1738e9a792f0ca1f45f43c65c4c978ccd4e11d138fd38dfc0a1fd9fceabe88a82d48e9a792f0ca1f45f43c65c4c978ccd4e11d138fd38dfc0a1fd9fceabe88a82d48f2a47cdc091c1dfb0d89edc2bf4e9469fcfd11d45a2d0da20599772a68763d861152ae2343948cbb1f49a6e0c222062419165dbe1df77091c96548d791a3a5631152ae2343948cbb1f49a6e0c222062419165dbe1df77091c96548d791a3a563cd4b0541d2771d22cc40c2dd0141a9fa73bb2343b34cb04d055be75b76a27e8accf2f41ecc87249c0dd99a808ceac30a20edd0a2b211e3891071839a5b9a7adaccf2f41ecc87249c0dd99a808ceac30a20edd0a2b211e3891071839a5b9a7ada196917a8188e6409623cd795eab3859d2a7dafefd9e818ef3f51b2f7aea23c14e00cafaa4c841937566f87c39e6ec615b1ee985dcfaa330fcf1884660240db09e00cafaa4c841937566f87c39e6ec615b1ee985dcfaa330fcf1884660240db092b2d4df8e7611a645c5aeac203d67f07fbdf1eccb46e2da11b0fcc9f27849933d43da468272ca21ef90ba9c4e2caf568d296cf010a8e397c759ce7386b6dd123d43da468272ca21ef90ba9c4e2caf568d296cf010a8e397c759ce7386b6dd12382b53d300074793bdca0bf8086506335bfd87da11c3e53b5a815fd914a416ba7248de3541ca67f64d0404cce68428c0655883026a5af08e277e4e10491b82ad8248de3541ca67f64d0404cce68428c0655883026a5af08e277e4e10491b82ad84205bc80baab4df39384e94f5e82aa504f8abcc403997491ed80f2c41651e486b2d89d440e1d5846d4a57f0d54ca13d86f8c3d14b6c3fa11d71c01ddeb6c0294b2d89d440e1d5846d4a57f0d54ca13d86f8c3d14b6c3fa11d71c01ddeb6c0294b622e9a97b291d6f61af08a53e687946014a9a0e1d221a558e2e00f4135be51b0c3516159e0d15fd5deb6e8f1482d6d7a8e08baffd6b3ac40746d2a2754424f90c3516159e0d15fd5deb6e8f1482d6d7a8e08baffd6b3ac40746d2a2754424f96c87dfe8981fa041c699b9b7fbc820d7499d1f18f66aa327bc64799041130f30776f4f6fdb6ba8ff8cc6b8f7cc4dab8720b51227eb3daeed6db217a169f16089776f4f6fdb6ba8ff8cc6b8f7cc4dab8720b51227eb3daeed6db217a169f1608988b09199f7e3ca5f01bb35e78c52a82a3e096b971abf3482bb947f5b9c2f9cb5d4bea61f7a89712cb8355c2ddb2f92d68d65abde4cd15b6ab65f7bb2de179457d4bea61f7a89712cb8355c2ddb2f92d68d65abde4cd15b6ab65f7bb2de179457fb9024bf57bc4e26ce6c1396ddd885ee57fd4c6aabe3841e0e84b7f0303bff611c14f99a34fae759ee41efa23d523ac1c62d9db5949f2a880624dd89098c099d1c14f99a34fae759ee41efa23d523ac1c62d9db5949f2a880624dd89098c099dfd1791c69c351458109ce5621d1cb32af857806536e9fc2a1fa2bf18e26fe41c5e49f372fc6bb6d6143acbc8d0de3d686af654968fe2f0bfbd0e6e5a7a7752c95e49f372fc6bb6d6143acbc8d0de3d686af654968fe2f0bfbd0e6e5a7a7752c96842d046466a5d27442da38b4fe361e696f83641f8028daa4e5dd97cec3b0a8dbe851808ecd8ab77aa86f379d06915ce74c395e92ebbf2b982eff77b090a4cc1be851808ecd8ab77aa86f379d06915ce74c395e92ebbf2b982eff77b090a4cc16d643fa95d976ed8c2c0287bfe782289d3835cef85d5e2f60e81cc1d4beb7bc8e1d590306f82216aae2c728b282fbe2dfa738142ede03e2cdd74b6a2b02f2482e1d590306f82216aae2c728b282fbe2dfa738142ede03e2cdd74b6a2b02f248249a39909908102801a38044a80bfaa99eb1421502d314215e84d9f2e2b7abd5fc4f0a4b970a8d065cae6004019f744e6693018b0d530880db1c150877d0d2ff5c4f0a4b970a8d065cae6004019f744e6693018b0d530880db1c150877d0d2ff58ea586873ed890e7ac6ef0409eb04624f8480386c2319e47c9c9e95e65ee19b328c15d219d4bbcd44684c15b1654b73ceecfcf32f7c813cfdbbca838cba1e8ec28c15d219d4bbcd44684c15b1654b73ceecfcf32f7c813cfdbbca838cba1e8ece3033b6761be7634c4f7e2cb92f337f6dc03bbbe45c86ce7fa28356bfea471bd0555f871f4b09d0da046115ec78fe6b315e767091d9a40ae54c86fa348c009ee0555f871f4b09d0da046115ec78fe6b315e767091d9a40ae54c86fa348c009eedbbc404d17c7fe421d208a3359e4a3d58d6abfa59efdaede657bf9d866024d71478290651c08beae2c91e2334593fe0a1475a2fed44edc1e206c6a4890958ed8478290651c08beae2c91e2334593fe0a1475a2fed44edc1e206c6a4890958ed898eb6606282f6638ba07e762ea452e54278868776a71e42e408d3f9a87d70edbcdc7bc4d3106179166c9df2dda3821ffb82170c91ac4bcde904fbadb7f300d7acdc7bc4d3106179166c9df2dda3821ffb82170c91ac4bcde904fbadb7f300d7ae4d4e42ccdfb4ae78bcf8859feaca778506c37a6cec7dcf767c0ed934621bb5e5339793078fe1911e3d87180507345142d212a2b03ae68ee9b578610cf1bafd35339793078fe1911e3d87180507345142d212a2b03ae68ee9b578610cf1bafd347be7f0af441a39fd769907805fdff264b84023e5552d449c4b0a1e4fed026e972c2cf3125de23d8b8691906de8adc4022145d6460c8480d0adceebc3db693ce72c2cf3125de23d8b8691906de8adc4022145d6460c8480d0adceebc3db693ce593f78a8009b35116174d50bbd37d5f43bc711b63b039dc7818e47868ebbca9d6ba2299286aef21c555288ed9b26c4fe4571bcd1873ad788eac6664badc751696ba2299286aef21c555288ed9b26c4fe4571bcd1873ad788eac6664badc75169e26020270b932a6f85d2f5f1476d3ae4221f737e33948d670e489b4c1e23554955d83b7c11f7d5866472c63a21f6c407715af049c7e946ffb189a052dfd9957555d83b7c11f7d5866472c63a21f6c407715af049c7e946ffb189a052dfd9957556892592cd569c213dd0399840f59779d87b5c8e50f82d4a6d10f78dde94787e4117a24109d74409a4f8ed6a1493f2dc7865b0e9877d8ee5c9133b07e637c2a24117a24109d74409a4f8ed6a1493f2dc7865b0e9877d8ee5c9133b07e637c2a2ebc6af978a49456b82308fd2e7b23d4109c9b640d3df6051149edbff6c3ec08ffb2b943506f1b6940acde49e6570d607732e4780f978ca27f15fb4c829336eacfb2b943506f1b6940acde49e6570d607732e4780f978ca27f15fb4c829336eac7f1b9d54ba7945b52bff74e8bbfa82000c186e3137a9c3ac255a23eb08c6e5beb3dcc705d355c3924061b406abcadadba327af705d023835f0c52da18248bf1ab3dcc705d355c3924061b406abcadadba327af705d023835f0c52da18248bf1a9f620a5c0a8aba0d3ce62d247345c7d437fe7fafddc546b295bbbed8cb3ee8247b5acdba83ad3a9202850c425106de5ddceb7cc291f8e0f804f1078a5468d6a37b5acdba83ad3a9202850c425106de5ddceb7cc291f8e0f804f1078a5468d6a339187a12f3fd69748ad96e53931aaf6d449fb800a74bc77c08d3a953a188b87859651d1f30f69b5f5db7ee7577f386aec408aa39abbada37b9cb62d62adb307b59651d1f30f69b5f5db7ee7577f386aec408aa39abbada37b9cb62d62adb307be9d229a39fb9e86c7bbdd3279af5c3a9ba3d0cc317f9e76bdf3388225948c3ea48d4cc8cc7e8a7c904ec7779e27901ff0dd65e61978189d47658633ba79d60e148d4cc8cc7e8a7c904ec7779e27901ff0dd65e61978189d47658633ba79d60e1dfddc3d2140ee4abc3854f1bfc7d5c8d7d40bd594d489e7254733061a9de2430290da9ca3fd1d736ba52914b9b9e1712460a6ed111295a13a882bab3ea4021bd290da9ca3fd1d736ba52914b9b9e1712460a6ed111295a13a882bab3ea4021bd2cac4a28e68e6138ac3c9c6283de571fe1ad26d3250024a42607fc5c4f8d1c90c6e0ef23696b902a2d705c7ea51a2f801966daf1101ad17307a9b20cffd706e9c6e0ef23696b902a2d705c7ea51a2f801966daf1101ad17307a9b20cffd706e933346300a8ed7d1d5d1d9dff4b44f4c4a3416ea1f27a54a83609b390e3ee47ca6bfc678196f58faaa7c5842f6a016cbe1796e68383381aa5bd7a26d32fd574db6bfc678196f58faaa7c5842f6a016cbe1796e68383381aa5bd7a26d32fd574db9b8c659de36f1149bd6d402b78afa49dc6f410da6606f74867d1ebf33d5fc3e495561382d700eaf22f81fd75adf44f2c4dcf71f68193fe0ec6dc07dfa8dd02e195561382d700eaf22f81fd75adf44f2c4dcf71f68193fe0ec6dc07dfa8dd02e160309a101b2843576406c1d584cc3492b433cd9158914ee7a9e9195d1372d5c82439f8522dede93d68d16b0c9b7b89831b5f54fdc3327dd0dfd21a7c7040119a2439f8522dede93d68d16b0c9b7b89831b5f54fdc3327dd0dfd21a7c7040119a349d182ef37b80eac7154ceffb38998ed7d82cdc3162f5be33a2dfd1bdbb278fda1f45233242aa969cec9a9bdbe4fe7c409495249a12f005fa108b7e3eaa25eada1f45233242aa969cec9a9bdbe4fe7c409495249a12f005fa108b7e3eaa25eab28d2296b937d17f1493e9b83d6f698dd3184e042f1ae187e20ac1a228c7033344fe037e4bbbe5396192b32222bb40430ec2b63d4cb514bf8e1614fafaf7e94d44fe037e4bbbe5396192b32222bb40430ec2b63d4cb514bf8e1614fafaf7e94d6f45dc12e5513755b80b72ff41e4eda6e20dd231967bae9dbbd0e8d074665208dfd50f411c93a9a0cc7f8409c08efbfddee5c95c32c545a05b47b9e3e1add8f3dfd50f411c93a9a0cc7f8409c08efbfddee5c95c32c545a05b47b9e3e1add8f3fa8dcec00cf13099b626c14bf90f6f518da89d8746badf5086edef1c48100b95f55499fa834a7a4acea80a462bf6a0ce85f179d7a03d961dd37be0ccd339e94af55499fa834a7a4acea80a462bf6a0ce85f179d7a03d961dd37be0ccd339e94a2539b65855a24ae30f600df23d2cabfd62c0aca481041d6d6cbbd5102bbbfa69046d406961491ed74213bca94b0f15a8be16dd18b587ce68c44a425bd9e57a0c046d406961491ed74213bca94b0f15a8be16dd18b587ce68c44a425bd9e57a0cf9f3e0d2d86df21e47aea10610849021c6a62a521fdc609baa082ccd1b76e2f0fe4eae8685e689da504a286a4ab3d80e3a9403fde4a83d1e8886fc278e35f28cfe4eae8685e689da504a286a4ab3d80e3a9403fde4a83d1e8886fc278e35f28c9dcfb0d38bef409fbd31155faddaad6a25dedebb5fda03adb4dcd293f949a296190d42a28d9ecfed4f616b809400ac85bc06436f56efbaab5d65a6366ed302be190d42a28d9ecfed4f616b809400ac85bc06436f56efbaab5d65a6366ed302befebd70156413f83af99ba3920577886bb5bf72c4698a5cdbdbcb069f6380d28b033a7973c0cf31200f164f48afd1aae901433f6ea8da2591538e4e7909869e37033a7973c0cf31200f164f48afd1aae901433f6ea8da2591538e4e7909869e375aef95657cfc447df93291db9d37e098bb3b08ac98629eaf03ec48ccdcd4d60b5480826437a4dd491a1906fb59e9eea534bd5a4e59e527674bd1cbbbd318befa5480826437a4dd491a1906fb59e9eea534bd5a4e59e527674bd1cbbbd318befa98280b6fdbe7f564b964f308d201688029fb7de4e859d0bffc99f24f8f6d4624787211cab31f809ad9f50a1e4ad666d1215f08c89b285608ae0cd611ec507d86787211cab31f809ad9f50a1e4ad666d1215f08c89b285608ae0cd611ec507d86102f0afa617b9a6b743722cc351de04babd1d2ecf2db289ff3c9ee505c82e9cf52b6ba2dbc67658c8b1c11d02b0385cba02da1006fd9f271e2540b3d0e230efa52b6ba2dbc67658c8b1c11d02b0385cba02da1006fd9f271e2540b3d0e230efa2ee9dc8d806c0b5edefeb551b2b0e273f6161e4cf91e79231d45e67a9ffb83b36302a9a81caf99b55f462e0bed287695f6120ad74a2caf015dcb322e8ee82a4c6302a9a81caf99b55f462e0bed287695f6120ad74a2caf015dcb322e8ee82a4ca7bc703efc0ed1f633765478634d62fca7d2bdf2cd1ace121165a08319d1c0ff20b1047d0c702e8e5683e01e3143b3becfd292e1ed54516972a6c2067fa96a1720b1047d0c702e8e5683e01e3143b3becfd292e1ed54516972a6c2067fa96a17842cd6a2d4df925e8cec58a7ab9aa431b309cc7df9e490aa3a1509db3721653ace2625c0f2d391dfc8f8de29d559563e3f8521f7a757ed90764212b76b5da89bce2625c0f2d391dfc8f8de29d559563e3f8521f7a757ed90764212b76b5da89b15d09df258a1bcf8565498bbe1163de421a743cb1fd571dc3bd86d37e15ab9637541dc7ea90ea40efb5e016c4c49aec61bb42129b8a31db95454835606b1dc037541dc7ea90ea40efb5e016c4c49aec61bb42129b8a31db95454835606b1dc03266e554114b294817eacabf28a067d1adba55ea73191d103a50a97dd688c07f7ae07265dd5349ee680ab687ec1ccc6cd4a45d9170b08438191f39b7dcee7dbccae07265dd5349ee680ab687ec1ccc6cd4a45d9170b08438191f39b7dcee7dbcc3eeb82634e1896d41054d4c540e341d447db53c46953a88f182207b7f7ba7db8cad456445f8ebc09b1b4d408a6a98074f14b709daafc79b3c978c56ea37bd1d0cad456445f8ebc09b1b4d408a6a98074f14b709daafc79b3c978c56ea37bd1d0f7ff302fd49cbfcfc2b3c1c9c891c6bf1d6fc1712bb2ebe5b00a8d64b709411df2f6f0eb5e0e8e856d58e210d9ae9b374e9713957580c87618768b1a820fa618f2f6f0eb5e0e8e856d58e210d9ae9b374e9713957580c87618768b1a820fa6183bd093d41d85f9c541f1e953d04a0225b82471f7e3be59aab5ea9abece20883884426da340b3a08124e44596f68ff24643ad668cc427b90b0cf8547f7a05c94b84426da340b3a08124e44596f68ff24643ad668cc427b90b0cf8547f7a05c94bc25ab3ca08d3c84d7ce0a8ddf1dbed93bc494545ba9ed8788a13ed30b53a34b2d89de818c663ce6ea6e4b0312570994abcc7e0ebae5df451f5e6ea24bdbf3644d89de818c663ce6ea6e4b0312570994abcc7e0ebae5df451f5e6ea24bdbf364444405358dad92df56ff072dba25cd6c0ed10a7853713ba3de35e16a14daa558e0545d1e8fdb29453e3b80cfc7f2d51978a924288cf270f6b4f5e71986badb3e00545d1e8fdb29453e3b80cfc7f2d51978a924288cf270f6b4f5e71986badb3e06fcdd2edaedc8e365ccc81011e67f7c8d82faec5d397b83f704cfed3e510218cb93cd084da6f2e02bbe4b6eb127bd9edeac5278799eda3abdbd8e7628d6697acb93cd084da6f2e02bbe4b6eb127bd9edeac5278799eda3abdbd8e7628d6697acbab6953b875945aa9958e6c036cc991e3ff7be7541ed3f5ed353921971afb3efff268878b2c965ee44118bb51439b7e25e4ba2e7a33075e7a79adab70ddec844ff268878b2c965ee44118bb51439b7e25e4ba2e7a33075e7a79adab70ddec844c7e2ef775f2470320fd236a7fdb055fd5974dc20115697fc4c276d6175517cf6178c7a43ad15deb6e1904d3624e49c6660623049010fb8a6cb60db5bca230aa0178c7a43ad15deb6e1904d3624e49c6660623049010fb8a6cb60db5bca230aa08ba15560241431b5ddd0b94258eaac1618f88490133ca102798161dbf5f339ef8b347e019e38d1f126b3b921ad25555a2f154236121fa1d0098dd1833ec43dea8b347e019e38d1f126b3b921ad25555a2f154236121fa1d0098dd1833ec43dea86268d30baf6263b84e371748590843ee943bb77a83f50585d5a53d8cb1085ff795a3700d01fd765f3c3e67e4c7937362eed558485c85b3e1699e58e17424ded795a3700d01fd765f3c3e67e4c7937362eed558485c85b3e1699e58e17424ded43c84aa57b9d794146af9c15c4b07a2095fc04ca90592cdff1c18eb8f7a3a2aecfc42ca622f8393befeb1c818b4739f442e6d41976cdd46b60da0cef2530c990cfc42ca622f8393befeb1c818b4739f442e6d41976cdd46b60da0cef2530c99000da64980c3024cd7614893cfdf055ee9a2c8deda53f8c3cffa57c10123cf32ad17c9cf6a573c7bcb35b90cdb39c526e364e2e637e95520f983da3d88ca4df9ad17c9cf6a573c7bcb35b90cdb39c526e364e2e637e95520f983da3d88ca4df9ab7a110bad459758622127944aca1e18553f3fc3f480933790489a66d0ab58031d1685d55f8cec7c15745249a355a664ed4de201fd0f7fd43a19edbb432692886d1685d55f8cec7c15745249a355a664ed4de201fd0f7fd43a19edbb4326928861de1937370511368345806c96f5536f5d92a57c01556b822c200d28e51fd6139c2f464c1ab5106b62631e0c9f85475d51bf4a7060ab9e218bf7cd45dfe18d465c2f464c1ab5106b62631e0c9f85475d51bf4a7060ab9e218bf7cd45dfe18d465cd6089c3b7cdf7649ec2077cb78d8789bdb6dd9b4f2934909edda521deea77ed097fa000b590fdfed9162fd7e0db48f8b81a9c050d515669e21676898930f24f097fa000b590fdfed9162fd7e0db48f8b81a9c050d515669e21676898930f24f72e7c038f4a7de3db4c5ca236f5f19cc01936f4004ce3ca1da9f11c19ffc0e439bdd9b59e1305c703ec776f0f5711b83df1b1bc8be0ee90bfbd70e71c544e1ac9bdd9b59e1305c703ec776f0f5711b83df1b1bc8be0ee90bfbd70e71c544e1ac8aefe68b9046ff4939f07f35f05a79453f74f0ad88652c02357cee569231ef54241a45b77e39099319b680bf8eedf12de3fe9282527b95cb23f0801afc8211a7241a45b77e39099319b680bf8eedf12de3fe9282527b95cb23f0801afc8211a748d60cb926c6f808296b7fa4b0fa7cc4ee3a2d4703b3d3bcd530301d68842f81eb3f132112e648265e980cca610d9274df7c6cef0256a6c23c8fd21c2191f410eb3f132112e648265e980cca610d9274df7c6cef0256a6c23c8fd21c2191f410c9c904b38d3f272eb36142541c2184f6334b5f3da49acf1d133320637b15312bf8dac0d583ee8bfc3d052ad06f9731044017893ea3ea65c137d20ca56365a034f8dac0d583ee8bfc3d052ad06f9731044017893ea3ea65c137d20ca56365a034653384cdec194ffb9a1fc8ef62fac95f8a9f0f6beffe8c2d4be8fc65187ab503f32d306bb72d760f173fb77a2d0d401617a42752c52f21a43062863fcaa85307f32d306bb72d760f173fb77a2d0d401617a42752c52f21a43062863fcaa85307078f822e67fee74d487e57fb15a363303e1db73b35698d218368524b32d6f418b32d156cd45feda47530504b715c08918c66d5f8480886a8c24e4d3e3612743ab32d156cd45feda47530504b715c08918c66d5f8480886a8c24e4d3e3612743a75b3923880fbc4f8f1fafd0f9301a537d61fab91ca7b1dda9713aa3525aa163786f3df335870e31b6625799f9c55b95e17c5163e1d95605c6c916231d1f00cf486f3df335870e31b6625799f9c55b95e17c5163e1d95605c6c916231d1f00cf443d932e36422f43a423644b045c3a0d491416a568be928c9bddcfe57ce91d51abcfd9450203b6be90552d54de6798339c15e4c70b83284c69435c799b5b4a40fbcfd9450203b6be90552d54de6798339c15e4c70b83284c69435c799b5b4a40f35b3c58eb20c4d6a08516618d7f1df71316bd70a6f7f597040dfc5dda54a10cb8eea46c536d32e86a58ed5c3f38d3b002b6587964774bed85253f265d9bd6c241e5cefdf557907f6291e05dd9fe357d3306aafbcb1131e25a4790970cf6237e738a509b75561f917c3d7edf1f2edd9d1c9765188996751a3c0f0bdafe5e0423754a93ee55f720ae3b54907f5def625e15c2bf019c24e0af9f9a8cd00c46ab1a99a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964cf0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4aa2ccfdc001858222885a9df39200840ac7a3f479ba889727d32a10398db7918a4f907b912e024625d36b8af307f1043e6ebc97074e31216175d14bb74c370dc3cb36e80beaf2a527d463da552a5c679a46c4ff8c881318a194bb0ccb61cb2d5ca42b23e21050a0f0f90c1f7a443b8087a409771611eae402861959a793be38e853f9f6be37d5c395c125a53dbf39c697fc3e5fd44a5f09f0d99710910f840dd650a34bad4a30a4b5b0a1bac46183e16c545442193bb822135c040daa8bae49d0b714a956eaa534038df27e0b43d08f529aa0895316b9b5de15a2705c1a47cf9ee8ea86d36177a3faf0bedbbfa70031350e721a7f0fab8526be36093ab666be97822182bb6da3d1295aeb92a1c14c42419e325559abf461268a17c5210c19a9721fc8c6a6e5db5e2b802fbb671fa104ee32e29b1701a35a8fc65ded848cb984b4b6a25595686705dab08245c0a5e4ef5852173d9cc4b5ae1b6e89f31b7780632bf9e90c9df5f2c6af0f6d5a2ae4c4011471df1b2e03598faae60a1613d5cf7bc063a83085d86e5c2b56ce5076fadf6489ea93de3ac44ae9fa69e4c7a39ab291e80f7aaf4c55925407436653f949791694831419f27fa4a83b10b2f735a8971ff17e939740c7b4469e60d7ecbba091971fd72a9940a9fb02d91cf4d7813feacb5bc1c572418a4035c66191f95e1500dd3462764f916f683b1b06a78a3fe8d8529a433dce1c9b9152af258a84042741feea52e78ee0aeea6a438fd5b59fcac2a3b71bf8b7f7affee67f19707d3514c565805efdf2e5801ea6b4186a3bed176e197540e9c2b688f78c0cd43c60298ecd353fcd54745bb6e83a3ffa6b0fb19e1936fbd34922fbaf2352268c029b1b0384477b0e94a5e651a0af6b7a2a1d3dd74e7d87f386222130f684ad9c976d3658a0b49e6829b119d624d8bb6ebfd54de6781aa7c49011f6319a4e68b113f2c7e54d97c8e13f42513543ab0402c125cb9f05cba1cbc52866a97f4c9cfe240f672c48f7cf41d0899ba4c71ff165440be87e8a660cb7d1d00b641b7209da983e7b97f5f40466e1109dbed4a10d75a26ae3c9e8abd822578e0880ab474eeb037544f9d4ad41381ef69efb0d41d7e976a3cb64ae5d0c62a6b617571a4ea026747642b43bca73b8dcd39fda1a34344f726e30318253058339cd27415634bbc639ffd62dcb4558985a7ab0e964709bb58cd6379bf79ca71de46a65539051a2108e1445ba8d2ec1fb3bfa5ecafad935e526a3cae09c4639b402b792ce87e56458b6701630f9fd1f04940748e48876c8ea877b559cf07b879fefea393ea09c85991fecef8d0df4130f7cb146f49003a84700a4deb7e5f3485553509448ea1b58b894a6dece4a158e759af730f324f9e9e3b36f32abab550ed8e961459052dc6a9ca57e587cbd89105322af6b87cb73d1b59f0e8b4ea4bf8135db0209c66f39c915bc343fb2d375175780311b23be085c4a11be9f7b92f419aa0231f1466476248f76f778d5bff1c3898c8930d3df088e612f6fa83c15c6b0b7b9ce56f04e8002ac161fe9532fcff6961fdc3eebf0c7d8f7f5a84afb7a7d9f85949a40094f0acbdde5950edaad6a73829bdbc71cc9eecd1fdeaaf21411f380c65cc41468aca1e069bd6a6300547393e9350807de058d23b8b94838e509c0f6505cdcc1390fda7e0c56cec8d3da43b24f4fa7c4170b2b2c067004ce87d841e24bfc97ab32ac8775bea86337f08bd3e598acdc452c3408953560568affda91c1378404ed5ab5a61f2090ba4204ba7a4098b0ed955a25dc19818261f2f10b380aeb492d6962f8696c7b2d7aceb1f6fb24b12eaea1322e5fb3789217e892770b753ab7b2bd6fc64cb81b74a116cd9bb35da33b47781769051882b1cdd68a9a3eaee18d8d9074ddeaf61c4ae63ecfe0d07a386a6b8f852d61678ce2dd427429bd5dabafcb91fe9fad064c988fe93b9a4ee64e78e43bdfc7774013e1d1e3eaee4c37a8a03a4ef5618173e56a8a91d27a8a5ed8b1c09ee1e9fb2f5070ab1e70da7a2979db26ace9575c4b1f8ec4ed1b97f7763b56f37f7c7f87c8c0b9a1021f07fc2379f99497f5a2414664835b4cf4f2dd9598637a99ce8327abf54c0999260998ffe4df439067ca91cb2d1fa96ca0c5e4f8c64c0c6847305ed12e52b3eac39289252faee80d5fda1081e53622c48be1663941c34aa91e91b4f97ee349f003bf6f55d3b060a8f7a8f9a26cb299110e83b010c75fa93a5a01cdfd4293265be5f7104b5d671ede826d94624a9e80a0048b41160ad82d68d55a7cee7500ff47b8f9b9375398a6cbc80eafc46e2170614a3b44d302669724935e8b45e79ef016d47533f5f5e89e2dcab450f354631c8b92187c2dc93b7e318f296d4b535db1cd87dc7785b666e60beddeba764c95109415217f36bd3f566a309232c8ccc6f62d5307e3642142909b8dca372945d2abfbbe505dc52ebf465efe8dcde1bc4d185efe68a1ca92c1f8efd60d8312607dc8b4bc88e23e980525478c066c1f6cd7fcadbf906969c262e11e562cad6ba8f03b09ac7d90b1e0a20f99a90dfdd8a4906fc14e1742bebc68d78bb08d350557c0f3c2564455b5a75964b2d2c8e2c7ab0325cfe6af6df70922a273511ffff7a9adc9ea8cad449c39b480fff95999d0d521415251cfb41f6333f458272a5a54c177c2bb0e7fbcd7b3d484fe44b5ff2583b2e5a4ca3add542c3535f6c4c9e0c04c3d47b290833ff9fb4688bc54e9f9e4eea9799da2ae531f0695369e38f236d91ce7c9f0336b578c5d71c2325018568d1323ab3e939f48be353a6d9b98bb6e8127b7bda8085e2923fcd3f43991ca4982cf33fd15eeecf5286e6f74315f4c26e9b5ba9a81747e8cded4583b3a01075f41c0018d07409b11f334c0b651c18ea1262de47c958f1c55cd73ae1298203ddc4b339607a54e5757ea7cd001bde2436792f558e4ad962d34f732ccc7ac4f60f906a9e15b801141c19f55e2c743f4a1d97e33331600d3c8e9a4e7e70ec164b34c42e874717e736bd0898f0a19ee8c606b35a10904951e0a27da1896eafe33c6e88cb7bcbe455f05a24a3b0f474e2891ab3746f751e317f7750300b653dfa59d93248f00b6426fb7acbfc55c02e1d32fcf2af5800f0204a952aad0d572c217c8fb468cf7e5ef38d5b5104f6a9c99d36c51fabdd3e290c6a7fafb8252e6f34627d37d133ee9381a7880e543c53cdbea7e37fce8da22413e338f63f6d3349c7d6f7fdceea3f7d03e49f06e021b42a30a7a1f340211764fd0175b935260f4f118b71f3f8d991f1c98176367d694c67682fc130b5181faa370489ab34a256dcd0210e598efaaa89055569a4e8b4d11dc9ce933ade05544a38d7eb98a7cb3bee40b45e5529dfad6759bc4bce572375e7a3d4681f8845cac7589a1995888b3538b36e4998483ee1160acda632f93bde7ed61a45ffaeca5f30f39c5d0e7f8d4eea081530bad71f7a321ab17a96d32ae1d7da399c5a652f7c8ef5017f3b6787c2e18c5821a7ebf74be3894909eeec33a663212e8c8cfbb70cb97a25f928e435170a9fdbf135a402dd5b075d0898f8525766aa8e80a2b0a18914f365a95bd62122cf802e254c7604acdea331cc30965dbd04c66c424f7a075688ed3e1151b67ada50d18bfbcd8c24bbf850e69a2c8b637683be10c1c09fcb754b15040c82bd08bc570a03d9aed1cdd3058f1206a2768aacc9ee32b01c698904032cc0c0fdc5210fd424bf58b7c915623698ffce3cf68aacc9ee32b01c698904032cc0c0fdc5210fd424bf58b7c915623698ffce3cf687f439b07fa1f0c51efc84c2eaca42150393736557c570936b8d16335bd3214d1c5ef169692ff1eb72d9f065d135f52bfdec35226674ae64c7ba4592833d9e1831dbda3667f443e976f6018558232ae3e4223c3724ebe023fa4b422c109ff9d5b70fa6b0952a2e692cce280ab6d4fe24fc1c8f3ae2aa3469ed3bc998a188c00def49b49b09adc4f78517a343dcb7d8a265391bc8a0570a2e5b037866a9cc8e0b7b0efd564f7672855271223b886d05a44742fe883ff9abeac52bbf013f93c4c2e5c51d2ae6918572e77eb7a365f69ab2134fe2468a895a732cc29812d305ee5877ee5f8afc2d06bf79da9056ad672743f8c496ea9fdea5fa25f14d1a12c4d2520a3b1a52d315e501b87e3fe1df85f27a35e24d84b86a166c48d12ff88cd7c33a00424a8169c9fe3fbb432e1d4b465e1947bbe65cb9b152762f2d973f1212de2a6a0f3223f80b6f27f67746d07180ce2fc1cbc88115226e0abe65a32891e899324f322c9968cfe4700849041add2d0a229b748f506339aab5832a4fe1ceb62b93f34e43913f6be5d9e7799744b6db55e9f5ace0a48f14019ed75725135499a8cf71bc042d4dfc31d580c38078cb1cf93cb695ebb662a99fc3079bb06a314c8729d049568a23c298be7b7909173bc76e104a96dc0200011ce4c8231201b8ba2049b6473c445512c484684c021ab24b9e01aef2a59b35e8e43cbb94b08817c86bc9d1b05d15804cb021758eb47165e5ce8ef2d44f00774cceb1c51fddbf3f542473c7412b1db29d8420a6e0ebbf71c3083166b90cfecefcdf871ebd48f121656a791bd72fce139b0cdfa27cd6975fb99dfed3c1654900bd5afcfce05415d36d7586c5fd1645ac428bc5cf8d15fe6c62ac33ba7ff0c6ecb02ba723792ae5e0faea0c96b6af7f4b6377f611cae0abc250c02b6aeb9eee9a924ee127cfa5e05823a3e0b21531fff65779582448c27513f29d1259f3651174c8e3bd6722789e4f880ae2c99ccb44bcfffb5afd535d25e9ff7a3e9561fcbb547b0540a9b913b7e49d201ea9c10af412e2243223a098140d6cf4d7eac733ac5f0c192087e28c4c020eeeecf59842395aa67adc362596e7744ae1cdd686d07918521a9f08491f61b90667dd2298494556073b302f73b6f63e2d3c43ab24af299422e485559620941d8e8b59bf81ead9e52fa91425e4ed01b8c62f9b4ed78c354dab8037f38681ce625f0c89bf81ead9e52fa91425e4ed01b8c62f9b4ed78c354dab8037f38681ce625f0c8740230fd4ea5234edb022142e723bb3651328adb48f3b85162c00c469e6800515a04f523772a0887451e8194e7158299fdca6fae3d58192cf5c1c23bfe09795d5a04f523772a0887451e8194e7158299fdca6fae3d58192cf5c1c23bfe09795d63f739ef798596adcd2b8319a1561a7dcdd2b43af30f6d7d4697f46dd19635e82c9c154736dbc6765cb2c1fb6b93b2b15bce9ff66e7fbb94f87305a715d2bfa6e5ac24e9d4fe974fe66b85a18d15c4fd4039d9345093061c59b164db575896db110e8e15511ad849007e4f8b685cb990f1cb86b7f472708c48a3731d01f08e52a28669e1a52cf3e60521cec677471373fee5c30de3d7033782c9487659d2fcea50d4599a4b4c44727a9085cfad14e0a4939317d4f44eba2c11cfcc9ebb0696eaf433b1acea75ebc78753560466dfd6e46a53fd07ec848aeaabed2ac554753a4a80d7117b7a7b1ae77a4b9add07ce1b6f46d9b3069609704d98ad411ace47ea7580d7117b7a7b1ae77a4b9add07ce1b6f46d9b3069609704d98ad411ace47ea75429cd109a2de597644b589f0e0a5fc78e603c8ae766219323137ea51848baf14e5059db58ce5c3bb5fafe3f4b02c4e729930a4f6f5bb98f67a8cd0c714cca10ee5059db58ce5c3bb5fafe3f4b02c4e729930a4f6f5bb98f67a8cd0c714cca10ee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553a88bae69842b09124e15798904bdd74963b1342181ad994a4eb1418516cd47c3a88bae69842b09124e15798904bdd74963b1342181ad994a4eb1418516cd47c7ad32ad6307d2d44a1a5e3cf94a8545561aa8158fdab4c70bc2e951d7a2610a03115a9e359ca65e32803ebc390bd4ab427aee2da721b506bf47a779cc8d66c323115a9e359ca65e32803ebc390bd4ab427aee2da721b506bf47a779cc8d66c32a613373321625b26eca3f49dc89e3798b7bb3d70a68ea19c22ba8076a294524aaf77c134f89b64db7d6df9640b3d5195daae9bbb395984975012952244ccc043af77c134f89b64db7d6df9640b3d5195daae9bbb395984975012952244ccc04329bb497d8585cb07059483157a7b6eb4beb4e831b56ce1fa5266c565d8c10fe5e01a9a2be3d477d743e1762d11c5b9144ef04a802a8ed23ce6ffa9e02ac36369ce42a828f8e7cc644c2e096f13d70fb17d90002a700cbf40f05defc1f4d4fcce9ccc12545732877b498b11e2951bcf854a6d996ddf3a7f7ef7f78d66eee9617a0be796d09674ddf6bd79665844d7d65f7ab549faff1fb79ba415e0504258f8ff0be796d09674ddf6bd79665844d7d65f7ab549faff1fb79ba415e0504258f8ff60ea20f3ef494f2f16c99c5da401d5532a7228cde3ca9816fdd734928c39b648609d61c93f3b92abbe7ae0c1a8bc89a0269c86a21039477ffa76005dd5b8f60e609d61c93f3b92abbe7ae0c1a8bc89a0269c86a21039477ffa76005dd5b8f60e06b1a320ee4c317e84c60df978a83673b214063f066986bb5629bffd74594fc38177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b8806439b1e2d8830389bc31d1089e924f0baf48dd2504d177c72c5c08620217fc8167ae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85580dcfdfefe1b9e25b9ed1ed17f1f4dea976b066dacc890dbce0b633c49c6e3eee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855@@@@@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootlucilucilucilucilucilucilucirootlucilucilucirootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootluciluciluciluciluciluciluciluciluciluciluciluci-0.26.0-93.el6.centos.src.rpmconfig(luci)sasl2auth.soluciluci(x86-32)@  @@@@@@@     @ /bin/bash/bin/sh/bin/sh/bin/sh/bin/shTurboGears2chkconfigchkconfigconfig(luci)coreutilscyrus-saslinitscriptsinitscriptsiproutelibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1.3)libpthread.so.0libpython2.6.so.1.0libsasl2.so.2opensslpampython(abi)python-pastepython-repoze-who-friendlyformrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)sedshadow-utilsutil-linux-ngrpmlib(PayloadIsXz)0.26.0-93.el6.centos2.1.222.61.7.2-53.0.4-14.6.0-14.0.4-14.0-15.2-14.8.0XXx@XS@X>@X2X,J@X)@X%X$a@X&X@X@V3V3VIV@V@VvVvV<@VU[%U[%UHT9T9TT@T@SvSS@SS^SSS;@SǺSQ@S @Sh@SSS@R[RD!RD!R6R7R q@R@R@Q@P @PqP @P @P @PP@PN@PPPP{Px@Puc@Pr@Pr@P@@O@O@OO@Oc+@Oc+@O`@OU@OTOG{O>A@O:LOKN/NFNNx@Nw.Ns:@Ns:@NqNh@Nf @Nf @NRDNNP@NI @N@NpNpMMM>MUMMx@MMMp@Mn1@MfH@MbSMK@MK@M4/@M Lr@L+@LmL^@LRLQm@LN@LMxL=L - 0.26.0-93Jan Pokorny - 0.26.0-93Jan Pokorny - 0.26.0-92Jan Pokorny - 0.26.0-91Ryan McCabe - 0.26.0-88Jan Pokorny - 0.26.0-87Jan Pokorny - 0.26.0-86Jan Pokorny - 0.26.0-85Jan Pokorny - 0.26.0-84Ryan McCabe - 0.26.0-82Ryan McCabe - 0.26.0-81Ryan McCabe - 0.26.0-80Jan Pokorny - 0.26.0-79Jan Pokorny - 0.26.0-78Ryan McCabe - 0.26.0-77Ryan McCabe - 0.26.0-76Ryan McCabe - 0.26.0-75Ryan McCabe - 0.26.0-74Ryan McCabe - 0.26.0-73Jan Pokorny - 0.26.0-72Jan Pokorny - 0.26.0-71Ryan McCabe - 0.26.0-70Ryan McCabe - 0.26.0-69Ryan McCabe - 0.26.0-68Ryan McCabe - 0.26.0-67Ryan McCabe - 0.26.0-66Ryan McCabe - 0.26.0-65Ryan McCabe - 0.26.0-64Ryan McCabe - 0.26.0-63Ryan McCabe - 0.26.0-62Jan Pokorny - 0.26.0-61Jan Pokorny - 0.26.0-60Ryan McCabe - 0.26.0-59Jan Pokorny - 0.26.0-58Jan Pokorny - 0.26.0-57Ryan McCabe - 0.26.0-56Jan Pokorny - 0.26.0-55Ryan McCabe - 0.26.0-54Jan Pokorny - 0.26.0-53Jan Pokorny - 0.26.0-52Jan Pokorny - 0.26.0-51Ryan McCabe - 0.26.0-50Ryan McCabe - 0.26.0-49Jan Pokorny - 0.26.0-48Jan Pokorny - 0.26.0-47Jan Pokorny - 0.26.0-46Jan Pokorny - 0.26.0-43Jan Pokorny - 0.26.0-42Jan Pokorny - 0.26.0-41Ryan McCabe - 0.26.0-40Ryan McCabe - 0.26.0-39Ryan McCabe - 0.26.0-38Ryan McCabe - 0.26.0-37John Ruemker - 0.26.0-36Jan Pokorny - 0.26.0-35Ryan McCabe - 0.26.0-33Jan Pokorny - 0.26.0-32Jan Pokorny - 0.26.0-31Ryan McCabe - 0.26.0-30Ryan McCabe - 0.26.0-29Jan Pokorny - 0.26.0-28Ryan McCabe - 0.26.0-27Ryan McCabe - 0.26.0-21Ryan McCabe - 0.26.0-20Ryan McCabe - 0.26.0-19Ryan McCabe - 0.26.0-18Ryan McCabe - 0.26.0-17Ryan McCabe - 0.26.0-16Jan Pokorny - 0.26.0-15Ryan McCabe - 0.26.0-13Ryan McCabe - 0.26.0-12Ryan McCabe - 0.26.0-11Ryan McCabe - 0.26.0-10Ryan McCabe - 0.26.0-9Ryan McCabe - 0.26.0-8Ryan McCabe - 0.26.0-7Ryan McCabe - 0.26.0-6Ryan McCabe - 0.26.0-5Ryan McCabe - 0.26.0-4Ryan McCabe - 0.26.0-3Ryan McCabe - 0.26.0-2Ryan McCabe - 0.26.0-1Ryan McCabe - 0.23.0-32Ryan McCabe - 0.23.0-31Ryan McCabe - 0.23.0-30Ryan McCabe - 0.23.0-29Ryan McCabe - 0.23.0-28Ryan McCabe - 0.23.0-27Ryan McCabe - 0.23.0-26Ryan McCabe - 0.23.0-25Ryan McCabe - 0.23.0-24Ryan McCabe - 0.23.0-23Ryan McCabe - 0.23.0-22Ryan McCabe - 0.23.0-21Ryan McCabe - 0.23.0-20Ryan McCabe - 0.23.0-19Ryan McCabe - 0.23.0-18Ryan McCabe - 0.23.0-17Ryan McCabe - 0.23.0-16Ryan McCabe - 0.23.0-15Ryan McCabe - 0.23.0-14Ryan McCabe - 0.23.0-13Ryan McCabe - 0.23.0-12Ryan McCabe - 0.23.0-11Ryan McCabe - 0.23.0-10Ryan McCabe - 0.23.0-9Ryan McCabe - 0.23.0-8Ryan McCabe - 0.23.0-7Ryan McCabe - 0.23.0-6Ryan McCabe - 0.23.0-5Ryan McCabe - 0.23.0-4Ryan McCabe - 0.23.0-3Ryan McCabe - 0.23.0-2Ryan McCabe - 0.23.0-1Ryan McCabe - 0.22.6-1Ryan McCabe - 0.22.5-1Fabio M. Di Nitto - 0.22.4-2.0.b9faf868074gitFabio M. Di Nitto - 0.22.4-1.0.b9faf868074gitRyan McCabe - 0.22.4-1Ryan McCabe - 0.22.3-1Ryan McCabe - 0.22.2-11Ryan McCabe - 0.22.2-10Ryan McCabe - 0.22.2-9Ryan McCabe - 0.22.2-8Ryan McCabe - 0.22.2-7Ryan McCabe - 0.22.2-6Ryan McCabe - 0.22.2-5Ryan McCabe - 0.22.2-4Ryan McCabe - 0.22.2-3Chris Feist - 0.22.2-2Ryan McCabe - 0.22.2-1Ryan McCabe - 0.22.1-3Ryan McCabe - 0.22.1-2Ryan McCabe - 0.22.1-1Ryan McCabe - 0.22.0-16Chris Feist - 0.22.0-13Chris Feist - 0.22.0-11Fabio M. Di Nitto - 0.21.0-8Ryan McCabe - 0.22.0-4Ryan McCabe - 0.22.0-3Ryan McCabe - 0.22.0-2Ryan McCabe - 0.22.0-1Fabio M. Di Nitto - 0.21.0-7Ryan McCabe - 0.21.0-6Ryan McCabe - 0.21.0-4Ryan McCabe - 0.21.0-2Ryan McCabe - 0.21.0-1Ryan McCabe - 0.20.0-1- Roll in CentOS Branding- Further fixes for rhbz#885028 and rhbz#1173942 Resolves: rhbz#885028 and rhbz#1173942- Further fixes for rhbz#853462, rhbz#877999 and rhbz#885028 Resolves: rhbz#853462, rhbz#877999, rhbz#885028- Fix side navigation panel displayed unexpectedly when accessing index page without prior logging in after luci start Resolves: rhbz#853462 - Rectify suboptimal logrotate arrangement imposing server restarts Resolves: rhbz#887340- luci: Support method attribute for fence ipmilan Related: rhbz#1337718- Ensure luci cannot change its own bootstrap configuration in luci.ini Resolves: rhbz#991608- Remove temporary seeding file leftover/s upon uninstall Resolves: rhbz#988985- Allow for listing configured actions per particular resources Resolves: rhbz#1173942- Add authenticity check of ricci instance via its public key fingerprint Resolves: rhbz#885028- luci: Fix cluster shutdown action Resolves: rhbz#1316970- luci: Add support for Oracle Data Guard resources Resolves: rhbz#1316952- luci: Suport fence_ilo_moonshot luci: Add support for fence_ilo_ssh fence devices Resolves: rhbz#1337718- Fix luci not running after /etc/init.d/luci reports that it has started Resolves: rhbz#877999- Further fix for configuration logic wrt. SSL/TLS insecurities avoidance - Enforce new configuration of luci self-managed certificate, preserving the possibly modified content in a backup file Related: rhbz#1156167, rhbz#1156187- luci: Fix handling of binary totem "secauth" attribute Resolves: rhbz#1285840- luci: Allow RRP configuration for UDPU Resolves: rhbz#1273954- luci: Support alternate timeout attributes for fence devices Resolves: rhbz#1255207- luci: Fix defaults for dlm/gfs_controld plock_ownership Resolves: rhbz#988945 - luci: Fix allowed values for totem/@secauth Resolves: rhbz#1285840- luci: Remove references to named_sdb Resolves: rhbz#1208649- Make luci implicitly avoid SSLv2 and SSLv3 versions of the protocol, and also by default, disable RC4 cipher (unless overridden by user) at both the web browser/HTTPS (rhbz#1156167) and ricci daemon/SSL (rhbz#1156187) sides of communication Resolves: rhbz#1156167, rhbz#1156187 - Update luci self-managed certificate signature digest from sha1 to sha256 Related: rhbz#1156167, rhbz#1156187 - Force generating luci.ini anew on update otherwise intended security hardenings will not take effect with luci already in use (and avoid respective downgrade issues, both using a mechanism already in place) Related: rhbz#1270958- Prevent clickjacking (malicious use) of luci and enable enforcement of some more web service security mechanisms Resolves: rhbz#1270958- luci: Rebuild for changelog cleanup- luci: Add support for fence_emerson and fence_mpath Resolves: rhbz#1210683- luci: Add expand/collapse buttons for each inline resource Resolves: rhbz#919223 - luci: Preserve expert mode resource attributes when editing service groups Resolves: rhbz#1112297 - luci: Warn when config can't be set or activated Resolves: rhbz#1136456 - luci: Update fence_virt / fence_xvm labels Resolves: rhbz#1204910- Rebuild for new stop image Resolves: rhbz#1111249- luci: Add expand and collapse buttons for services Resolves: rhbz#919223 - luci: Add a "stop" service action in expert mode Resolves: rhbz#1111249 - luci: Don't lose nfsserver "nfspath" when not in expert mode Resolves: rhbz#1112297- luci: Add a cancel button to the services add resource dialog Resolves: rhbz#886526 - luci: Add support for miss_count_const Resolves: rhbz#917761 - luci: Add support for rrp_problem_count_threshold Resolves: rhbz#917773 - Luci: Indicate that shutdown_wait is ignored for postgres8 resources Resolves: rhbz#917781 - luci: Add support for the fence_apc cmd_prompt attr Resolves: rhbz#1010400 - luci: Don't let the add resource button disappear after adding a VM Resolves: rhbz#1100831- luci: Don't active new conf if any of the nodes didn't receive it Resolves: rhbz#1136456- luci: Fix editing services that VM references- luci: Fix editing services that VM references - luci: Fix error in fence_lpar form luci: Fix issues with bind-mount resource name display Resolves: rhbz#1117398- Resolve newly introduced issue with doubled Edit Fence Instance forms Related: rhbz#1127286 (CVE-2014-3593)- Resolve issue with custom luci launcher upon update while luci running Related: rhbz#1026374- luci: Allow & in XML attribute values Resolves: rhbz#855112 - luci: Fix positioning of sort arrows Resolves: rhbz#919225 - luci: Allow nfsclient to be a child of nfsserver Resolves: rhbz#919243 - luci: Remove bad default values for startup_wait and luci: Remove ssh_options fields from fence agents that do luci: Support newly added bind-mount "name" attribute Resolves: rhbz#1117398- Additional fix for regression with "extensionless" node names Related: rhbz#999324- Fix luci unable to handle node name ending with recognized filetype extension Resolves: rhbz#999324 - Add a custom luci launcher allowing sane Python runtime + SELinux coexistence Resolves: rhbz#1026374 - Fix privilege escalation through cluster with specially crafted configuration Resolves: rhbz#1127286 (CVE-2014-3593)- luci: Update the fence_kdump config forms Resolves: rhbz#918795 - luci: Move sort arrows for resources Resolves: rhbz#919225 - luci: Cope better with editing services containing VM Resolves: rhbz#1100817 - luci: Add support for the bind-mount resource luci: Update fence_brocade luci: Add support for the reboot_on_pid_exhaustion luci: Remove mention of fenced skip_undefined luci: Add support for the postgres-8 startup_wait attr luci: Add the ssh_options attribute to applicable fence luci: Add support for the no_kill attribute of the VM luci: Add support for the use_findmnt attribute Resolves: rhbz#1117398- Fine-tune update-downgrade-uninstall scriptlets as changed in rhbz#991575 fix and modify new suggested value in sysconfig file Related: rhbz#991575- luci: Add support for the IP "prefer_interface" attr Resolves: rhbz#917738- Fix breakage upon update due to changes introduced with fix for rhbz#991575 Related: rhbz#991575- Add the ability to block weak ciphers (revisited) Resolves: rhbz#991575- Add the ability to block weak ciphers Resolves: rhbz#991575 - Check length of secret on startup Resolves: rhbz#982771- luci: Don't remove attributes from xvm fence devs in Resolves: rhbz#1004011 - luci: Fix for option to completely disable rgmanager Resolves: rhbz#723925- luci: Add option to completely disable rgmanager Resolves: rhbz#723925 - luci: Disallow XML-unsafe characters in attribute Resolves: rhbz#855112 - luci: Add support for configuring missing totem Resolves: rhbz#917771 - luci: Add support for fence_kdump Resolves: rhbz#918795 - luci: Add support for sorting by columns of the Resolves: rhbz#919225 - luci: Don't allow nfsclient without nfsexport Resolves: rhbz#919243 - luci: Fix broken display on permissions page Resolves: rhbz#988446 - luci: Don't write type attribute for oracledb for Resolves: rhbz#1003062 - luci: Allow configuration of more fence_xvm attributes Resolves: rhbz#1004011 - luci: Fix default value for post_join_delay Resolves: rhbz#1004922 - luci: Update name for fence_egenera Resolves: rhbz#1008510 - luci: Support configuring "self_fence" attribute for Resolves: rhbz#1019853 - luci: Add support for the apache "httpd" attribute Resolves: rhbz#1061786 - luci: Add support for newly added nfsserver statdport Resolves: rhbz#1070760 - luci: Fix crash when config contains a globally defined Resolves: rhbz#1100817- Postpone fix for luci not running after reportedly started due to missed corner-case Related: rhbz#877999- Additional fix for support for missing fence devices Resolves: rhbz#917747- Do not propagate "unfencing" verbatim to configuration Resolves: rhbz#883008 - Add a guard to enforce code validity during compilation phase Related: rhbz#883008- Fix short exposure of authentication details while generating configuration file Resolves: rhbz#1005385 (part 1) - Fix hidden untrusted path and "command" (callable association) injection Resolves: rhbz#1005385 (part 2)- module_name parameter for fence_drac5 is optional, not required Resolves: rhbz#1001835 - fence_ilo denoted as HP iLO / iLO2, but the latter has a separate entry Resolves: rhbz#1001836- Default syslog facility is "local4" (not "daemon") Resolves: rhbz#896244 - Fix cluster_version mismatch upon adding 2+ nodes Resolves: rhbz#978479 - Fix luci not running after /etc/init.d/luci reports that it has started Resolves: rhbz#877999- luci: Add support for TNS_ADMIN in oracle agents Resolves: rhbz#983693- luci: Make pop-up messages act like static status Resolves: rhbz#773491 - luci: Add support for fence_scsi 'delay' attribute Resolves: rhbz#883008 - Enable the ricci and modclusterd services when creating a Resolves: rhbz#886517 - luci: Remove useless "remove this instance" button Resolves: rhbz#886576 - luci: Add support for missing fence devices Resolves: rhbz#917747 - luci: Ask for confirmation when removing a cluster Resolves: rhbz#917814 - luci: Update Oracle agent configuration Resolves: rhbz#983693- luci: Make pop-up messages act like static status messages Resolves: rhbz#773491 - luci: Fix uncaught exception luci: Fix for tracebacks when no nodes can be contacted Resolves: rhbz#878149 - luci: Don't let anonymous users access the preferences page Resolves: rhbz#878960 - luci: Fix garbled error messages Resolves: rhbz#880363 - luci: Add support for fence device attributes Resolves: rhbz#883008 Resolves: rhbz#917743- Revert the change that caused pop-up dialogs to be centered. Resolves: rhbz#773491- Correctly display the 'type' attribute value when editing an oracledb resource Resolves: rhbz#886678- additional fix for luci support for fence_sanlock (in technical preview)- luci: Update unfence when renaming fence devices Resolves: rhbz#882995- luci support for fence_sanlock (in technical preview) Resolves rhbz#877098- luci: Cont'd fix of controller wrt. unicode Resolves rhbz#807344- luci: Fix matching of unfence blocks Resolves: rhbz#815666- luci: Fix the interaction of the force_unmount and nfsrestart checkboxes Resolves: rhbz#822502 - luci: Error out if max_restarts is set but not restart_expire_time is not luci: Fix handling of subtree options Resolves: rhbz#877188 - luci: Fix value for LVM self_fence Resolves: rhbz#877392 - Remove trailing commas that cause problems for some old Resolves: rhbz#881796 - luci: Audit of resource agent checkbox input Resolves: rhbz#881955- luci: Cont'd fix of templates wrt. unicode Resolves rhbz#807344- luci: Add missing JS include Resolves: rhbz#822502- luci: Allow global resources to be referenced multiple times Resolves: rhbz#860042- luci: Fix label on fence_hpblade form Resolves: rhbz#865533- luci: Add support for fence_eaton_snmp Resolves: rhbz#865300 - luci: Add support for fence_hpblade Resolves: rhbz#865533- luci: Add back missing unfence patch Resolves: rhbz#815666- luci: Add the ability to remove users Resolves: rhbz#809892- luci: Add support for the IBM iPDU fence device Resolves: rhbz#740867 - luci: Center popup messages Resolves: rhbz#773491 - luci: Fix handling of resource and services luci: More fixes for resource/service/failover naming Resolves: rhbz#807344 - luci: Fix unfence display on node page Resolves: rhbz#815666 - luci: Add support for fence_ipmilan privlvl Resolves: rhbz#821928 - luci: Add support for nfsrestart Resolves: rhbz#822502 - luci: Fix double click on add existing dialog Resolves: rhbz#856253- Fix bz853151 ("No object (name: translator) has been registered for this thread" due to private threading) - Fix bz826951 (Prevent from invalid ID and IDREF values in cluster.conf)- Allow altmulticast port overlap and address overlap as long as both don't overlap the primary channel's values.- Fix the handling of power wait for fence_intelmodular- Fix bz820402 (fence_ifmib and fence_intelmodular disappeared from the fence device list) - Additional fixes for the RRP configuration interface.- Additional fixes for bz772314 (The ability to add RHEL6 luci non-root users as root user)- Additional fix for bz740835 ([RFE] Better handling of Prioritized/Priority fields in failover domain configuration)- Fix bz803398 (Luci shows incorrect verbosity level for sqlalchemy logging facility) - Fix bz801491 (A global resource with "." in the name of resource will throw an error in luci)- Additional fix for bz690621 (Luci Debug options for end users to enable)- Fix bz800239 (Add support for KVM --tunneled migration option in vm.sh resource script)- Update the fix for bz786584 per the latest updates to the condor resource agent.- Additional fix for bz749668 (Invalid fence configuration causes luci database corruption) - Fix for bz796731 (Error 500 from luci when try to edit a Service)- Fix bz690621 (Luci Debug options for end users to enable)- Fix bz786584 (condor_schedd Resource Agent integration)- Rebase to latest upstream version. This pulls in fixes for: - bz690621 ([RFE]Luci Debug options for end users to enable) - bz704978 ([RFE] UI: Make it easier to tell which resource a “Add a child resource” button belongs to.) - bz707471 ([RFE] Make reboot icon more obvious) - bz755092 (Luci does not expose the force_unmount option for filesystem resources) - bz740835 ([RFE] Better handling of Prioritized/Priority fields in failover domain configuration) - bz744048 ([RFE] A confirmation box before removing clustered services from conga.) - bz749668 (Invalid fence configuration causes luci database corruption) - bz758821 (cman and corosync RRP handling are not consistent and needs improvements) - bz768406 (The "monitor_link" ip attribute default is backwards) - bz772314 (The ability to add RHEL6 luci non-root users as root user)- Additional cleanups for dialogs that were not reset properly when closed.- Additional fix for bz705884 (luci chokes on working cluster.conf line) - Fix to mitigate SELinux issues (bz737635)- Additional fix for bz639121 (Lightbox dialog state is not reset when the dialog is closed) - Additional fix for bz718355 (Logging feature in Luci not working as expected) - Additional fix for bz599074 ("Use same password for all nodes" doesn't work.)- Add a note about the implications of creating, deleting, and editing service groups on the admin page.- Make sure cluster permission database objects are created properly after a cluster is destroyed, then recreated.- Additional fixes for bz522005- Additional fixes for bz522005- Fix bz733084 (Cleared options are not saved correctly in Virtual Machine services) - Additional fixes for bz522005- Fix a regression introduced by the fix for bz522005- Revert bz703574-2.patch as there is no /usr/bin/sqlite on RHEL6.- Fix bz729730 (Windows 7 IE 8 will fail with error opening url for luci cluster management) - Fix for bz522005 that re-enables the warning added by bz671285- Fix bz522005 (improve upon existing luci user access controls/roles) - Additional fix for bz703574- Fix bz703574 (Luci Configuration Backup and Restore) - Fix bz639121 (Lightbox dialog state is not reset when the dialog is closed) - Fix bz643488 (UI: inconsistent lower/upper casing) - Fix bz671285 (And warning text to Luci UI about relying on UI w/o core understanding of clustering)- Fix bz718355 (Logging feature in Luci not working as expected) - Additional fix for bz632536 (luci UpgradeTest-selinux Test) - Fix bz664036 ([RFE] Conga should ask for confirmations before executing certain destructive operations)- Fix bz705072 (Support new fence_vmware agent configuration) - Fix bz718355 (Logging feature in Luci not working as expected) - Fix bz632536 (luci UpgradeTest-selinux Test) - Fix bz705884 (luci chokes on working cluster.conf line)- Fix bz707918 (Luci doesn't allow subsequent service changes when non global filesystem resource is added)- Fix bz705111 (When editing a failover domain without restricted/prioritized, adding a node has no effect) - Fix bz714285 (Migration of VMs doesn't work from luci GUI)- Fix bz711625 (Unable to create a cluster of KVM guests)- Fix bz711625 (Unable to create a cluster of KVM guests)- More fixes for bz617586 (Implement progress dialog for long-running operations) - More fixes for bz616239 (Need option to completely destroy cluster) - More fixes for bz557234 ([RFE] luci update to handle private network/hostnames for cluster create/config)- Fix bz617587 (Luci doesn't display underlying errors) - Fix bz617586 (Implement progress dialog for long-running operations)- Additional fix for bz613871 (luci should not give ungraceful error messages when encountering fence devices that it does not recognize/support)- Fix possible exception path in the luci cluster model object related to bz624558 (replace broadcast option with udpu) - Correct duplication of the fence brocade menu item in the fence devices section related to bz681506 (readd urgently fence_brocade to the list of shipped fence_agents in luci)- Fix bz639120 (Create "expert" user mode)- Fix bz682843 (luci still tries to setup obsolete smb.sh Resource)- Fix bz680173 (Add support for DRBD resource agent in luci)- Fix bz681506 (readd urgently fence_brocade to the list of shipped fence_agents in luci)- Fix bz678424 (can't add node to existing cluster)- Fix bz678366 (fence management not fully functional)- Fix bz659014 (Luci returns an Error 500 when accessing node configuration with FQDN names)- Fix bz616239 (Need option to completely destroy cluster) - Fix bz624558 (replace broadcast option with udpu) - Fix bz666971 (Disable updates to static routes by RHCS IP tooling) - Fix bz605932 (Missing "reset to defaults" button in qdisk configuration) - Fix bz639123 (Disable action buttons when no nodes are selected)- Fix bz622562 (Need to add support for unfencing conf. generation for SAN fencing agents and fence_scsi) - Fix bz472972 (Separate the Oracle 10g Failover Instance in Conga to two resources called "Oracle Instance" and "Oracle Listener") - Fix bz557234 (luci update to handle private network/hostnames for cluster create/config) - Fix bz600078 (Warn about qdisk use for certain configurations) - Fix bz624716 (luci displays misleading error status on initial cluster configuration pages) - Fix bz633983 (Luci does not handle parameter "nodename" related to fence_scsi fence agent correctly) - Fix bz536841 (Need ability to change number of votes for a node through luci) - Fix bz600057 (Fix node uptime display) - Fix bz613871 (luci should not give ungraceful error messages when encountering fence devices that it does not recognize/support) - Fix bz618701 (Spaces in cluster name confuse luci) - Fix bz620343 (Consider renaming "Services" to "Service Groups") - Fix bz620373 (Consider changing the tab order) - Fix bz620377 (Drop-down menus do not remember the selection) - Fix bz632344 (Enable centralized logging configuration via Luci) - Fix bz636267 ("Update" buttons at "Fence Devices" tab do effectively nothing) - Fix bz636300 (Egenera fence agent: specifying username not arranged correctly) - Fix bz639107 (Add luci support for configuring fence_rhev) - Fix bz639124 (Reconcile local database with changes in cluster membership made outside of luci) - Fix bz613155 (running luci init script as non-root user results in traceback) - Fix bz614963 (Python 2.6 deprecation of BaseException.message) - Fix bz637223 (Cisco UCS Fencing Agent) - Fix bz643488 (inconsistent er/upper casing) - Fix bz639111 (Support configuration of non-critical resources) - Resolves: bz622562 bz472972 bz557234 bz600078 bz624716 bz633983 bz536841 bz600057 bz613871 bz618701 bz620343 bz620373 bz620377 bz632344 bz636267 bz636300 bz639107 bz639124 bz613155 bz614963 bz637223 bz643488 bz639111- New upstream release (0.22.6)- New upstream release (0.22.5) - Display all fence and resource agents for Fedora clusters - Add support for fence_rhevm and fence_cisco_ucs - Cleanup of cluster.conf handler - Fixes for running on TG2.1 - Allow configuration of saslauthd - Enforce a 15 minute idle session timeout - Add back node uptime to the cluster node list display - Allow users to configure the ricci address and port for cluster nodes - Fixes to cope with cluster membership changes made outside of luci- Fix CVE-2010-3852 (bug #645404)- New upstream release (0.22.4) - Steal fixes from upstream git up to b9faf868074git Fix bz622562 (add support for unfencing) Fix bz624819 (add compatibility with TG2.1) - Update spec file to support alphatag- Version 0.22.4 - Remove extra debugging logging from the fix for bz619220 - Fix bz614130 (implement tomcat6 resource agent) - Fix bz618578 (ip resource should have netmask field) - Fix bz615926 (luci does not handle qdisk / cman config correctly) - Fix bz619220 (Luci does extra queries which slows down page load) - Fix bz619652 (luci sometimes prints a traceback when deleting multiple nodes at the same time) - Fix bz619641 (luci init script prints a python traceback when status is queried by a non-root user)- Version 0.22.3- Fix bz614433 (cannot configure ipport for fence agents) - Fix bz617575 (Unclear options when configuring a cluster) - Fix bz617591 (Some fields when adding an IP address are unclear) - Fix bz617602 (Fields in "Fence Daemon Properties" have no units) - Fix bz618577 (wrong message displayed when adding ip resource) - Fix bz619220 (Luci does extra queries which slows down page load)- Additional fixes for bz600027 (Fix cluster service creation/configuration UX issues) - Additional fixes for bz600055 ("cluster busy" dialog does not work) - Fix bz618424 (Can't remove nodes in node add dialog or create cluster dialog) - Fix bz616382 (luci db error removing a node from a cluster) - Fix bz613871 (luci should not give ungraceful error messages when encountering fence devices that it does not recognize/support)- Fix bz600027 (Fix cluster service creation/configuration UX issues) - Fix bz600040 (Add nodes to existing cluster does not work) - Fix bz600045 (Removing nodes from existing clusters fails) - Fix bz600055 ("cluster busy" dialog does not work) - Fix bz613868 (Remove fence_virsh from luci UI since this fence is not supported with RHEL HA/Cluster) - Fix bz614434 (adding an IP resource ends with an error 500) - Fix bz614439 (adding GFS2 resource type in RHEL6 cluster is "interesting") - Fix bz615096 (Traceback when unchecking "Prioritized" in Failover Domains) - Fix bz615468 (When creating a new failover domain, adding nodes has no effect) - Fix bz615872 (unicode error deleting a cluster) - Fix bz615889 (luci cannot start an imported cluster) - Fix bz615911 (luci shows many unsupported fence devices when adding a new fence device) - Fix bz615917 (adding per node fence instance results in error 500 if no fence devices are configured) - Fix bz615929 (luci generated cluster.conf with fence_scsi fails to validate) - Fix bz616094 (Deleting a fence device which is in use, causes a traceback on Nodes page) - Fix bz616228 (Clicking on cluster from manage clusters page results in traceback (500 error)) - Fix bz616230 (Clicking on the join button doesn't work on nodes page) - Fix bz616244 (Clicking on the leave button doesn't work on nodes page.)- Fix bz600021 (Fix node fence configuration UX issues)- Build fix for bz600056- Build fix for bz600056- Fix bz604740 (Support nfsserver resource agent which is for NFSv4 and NFSv3) - Fix bz600056 (Replace logo image)- Fix bz600059 (Hide optional fields for fence_scsi) - Fix bz600077 (cman "two_node" attribute should not be set when using qdisk) - Fix bz600083 (Add text to broadcast mode to note that it is for demos only - no production support) - Fix bz605780 (Qdisk shouldn't be part of the main page, it should be in the configuration tab)- Fix bz598859 (Adding fence_xvm fence device through luci interface throws TypeError Traceback) - Fix bz599074 ("Use same password for all nodes" doesn't work.) - Fix bz599080 (Conga ignores "reboot nodes" check box) - Fix bz600047 (luci allows deletion of global resources that are used by services) - Fix bz600050 (luci requires wrongly requires users to fill interval / tko / minimum score / votes fields for qdisk configuration) - Fix bz600052 (luci allows deletion of the last qdisk heuristics row) - Fix bz600058 (ssh_identity field values are dropped) - Fix bz600060 (Formatting error on fence devices overview page) - Fix bz600061 (Default values not populated in advanced network configuration) - Fix bz600066 (Update resource agent labels) - Fix bz600069 (Configuration page always returns to General Properties Page) - Fix bz600071 (If luci cannot communicate with the nodes they don't appear in the list of nodes) - Fix bz600073 (Update resource agent list) - Fix bz600074 (Fix display error on the resource list page) - Fix bz600075 (update fence_virt / fence_xvm configuration) - Fix bz600076 (When creating a cluster no default radio button is selected for Download Packages/Use locally installed packages) - Fix bz600079 (Unable to edit existing resources) - Fix bz600080 (Homebase page only shows a '-' for Nodes Joined) - Fix bz602482 (Multicast settings are not relayed to cluster.conf and no default) - Fix bz603833 ("Nodes Joined" in main page is inaccurate when no nodes have joined)- Fix missing requires which will cause some installations to fail - Resolves: rhbz#598725- Fix for bugs related to cluster service creation and editing (bz593836).- Fix remaining unresolved issues for 593836 - Make sure the cluster version is updated when creating services - Fix a bug that caused IP resources to fail in services- Rebuild to fix a bug introduced during last build.- Fix service creation, display, and edit. - Fix qdisk heuristic submission.- Rebase to upstream- Added static UID/GID for luci user - Resolves: rhbz#585988- Add support for PAM authentication - Resync with main branch - Resolves: rhbz#518206- Do not build on ppc and ppc64. Resolves: rhbz#590987- Update from devel tree.- Update from development tree.- Update from development tree.- Rebase to luci version 0.22.0- Resolves: rhbz#568005 - Add ExcludeArch to drop s390 and s390x- Remove dependency on python-tg-devtools- And again.- Fix missing build dep.- Add init script. - Run as the luci user, not root. - Turn off debugging.- Initial build./bin/sh/bin/sh/bin/sh/bin/sh  !""$%%'((*++-..01134467899;<<>??ABBDEEGHHJKKMNNPQQSTTVWWYZZ\]]_``bcceffhiikllnooqrrtuuwxxz{{}~~      "##%&&())+,,.//122455788:;;=>>@AACDEEGHHJKKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.26.0-93.el6.centos0.26.0-93.el6.centos0.26.0-93.el6.centos       !luciluciluciluci.confluciluciluci-0.26.0-py2.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtentry_points.txtpaster_plugins.txtrequires.txttop_level.txt__init__.py__init__.pyc__init__.pyoconfig__init__.py__init__.pyc__init__.pyoapp_cfg.pyapp_cfg.pycapp_cfg.pyoconfig.tmplenvironment.pyenvironment.pycenvironment.pyomiddleware.pymiddleware.pycmiddleware.pyocontrollers__init__.py__init__.pyc__init__.pyoasync.pyasync.pycasync.pyocluster.pycluster.pyccluster.pyoerror.pyerror.pycerror.pyoroot.pyroot.pycroot.pyotemplate.pytemplate.pyctemplate.pyoinitwrappers.pyinitwrappers.pycinitwrappers.pyolibClusterConfAction.pyAction.pycAction.pyoAltmulticast.pyAltmulticast.pycAltmulticast.pyoAltname.pyAltname.pycAltname.pyoApache.pyApache.pycApache.pyoBaseResource.pyBaseResource.pycBaseResource.pyoBindMount.pyBindMount.pycBindMount.pyoCluster.pyCluster.pycCluster.pyoClusterNode.pyClusterNode.pycClusterNode.pyoClusterNodes.pyClusterNodes.pycClusterNodes.pyoClusterfs.pyClusterfs.pycClusterfs.pyoClvmd.pyClvmd.pycClvmd.pyoCman.pyCman.pycCman.pyoCondor.pyCondor.pycCondor.pyoDLM.pyDLM.pycDLM.pyoDRBD.pyDRBD.pycDRBD.pyoDevice.pyDevice.pycDevice.pyoEvent.pyEvent.pycEvent.pyoEvents.pyEvents.pycEvents.pyoFailoverDomain.pyFailoverDomain.pycFailoverDomain.pyoFailoverDomainNode.pyFailoverDomainNode.pycFailoverDomainNode.pyoFailoverDomains.pyFailoverDomains.pycFailoverDomains.pyoFence.pyFence.pycFence.pyoFenceDaemon.pyFenceDaemon.pycFenceDaemon.pyoFenceDevice.pyFenceDevice.pycFenceDevice.pyoFenceDeviceAttr.pyFenceDeviceAttr.pycFenceDeviceAttr.pyoFenceDevices.pyFenceDevices.pycFenceDevices.pyoFenceXVMd.pyFenceXVMd.pycFenceXVMd.pyoFs.pyFs.pycFs.pyoGFSControld.pyGFSControld.pycGFSControld.pyoGroup.pyGroup.pycGroup.pyoHeuristic.pyHeuristic.pycHeuristic.pyoInterface.pyInterface.pycInterface.pyoIp.pyIp.pycIp.pyoLVM.pyLVM.pycLVM.pyoLockspace.pyLockspace.pycLockspace.pyoLogging.pyLogging.pycLogging.pyoLoggingDaemon.pyLoggingDaemon.pycLoggingDaemon.pyoMaster.pyMaster.pycMaster.pyoMethod.pyMethod.pycMethod.pyoModelBuilder.pyModelBuilder.pycModelBuilder.pyoMulticast.pyMulticast.pycMulticast.pyoMySQL.pyMySQL.pycMySQL.pyoNFSClient.pyNFSClient.pycNFSClient.pyoNFSExport.pyNFSExport.pycNFSExport.pyoNFSServer.pyNFSServer.pycNFSServer.pyoNamed.pyNamed.pycNamed.pyoNetfs.pyNetfs.pycNetfs.pyoOpenLDAP.pyOpenLDAP.pycOpenLDAP.pyoOraDG.pyOraDG.pycOraDG.pyoOracleDB.pyOracleDB.pycOracleDB.pyoOracleInstance.pyOracleInstance.pycOracleInstance.pyoOracleListener.pyOracleListener.pycOracleListener.pyoPostgres8.pyPostgres8.pycPostgres8.pyoQuorumD.pyQuorumD.pycQuorumD.pyoRefObject.pyRefObject.pycRefObject.pyoResources.pyResources.pycResources.pyoRm.pyRm.pycRm.pyoSAPDatabase.pySAPDatabase.pycSAPDatabase.pyoSAPInstance.pySAPInstance.pycSAPInstance.pyoSamba.pySamba.pycSamba.pyoScript.pyScript.pycScript.pyoService.pyService.pycService.pyoSmb.pySmb.pycSmb.pyoSybaseASE.pySybaseASE.pycSybaseASE.pyoTagObject.pyTagObject.pycTagObject.pyoTomcat5.pyTomcat5.pycTomcat5.pyoTomcat6.pyTomcat6.pycTomcat6.pyoTotem.pyTotem.pycTotem.pyoUnfence.pyUnfence.pycUnfence.pyoVm.pyVm.pycVm.pyo__init__.py__init__.pyc__init__.pyo__init__.py__init__.pyc__init__.pyoapp_globals.pyapp_globals.pycapp_globals.pyoasync_helpers.pyasync_helpers.pycasync_helpers.pyobase.pybase.pycbase.pyocluster_conf_helpers.pycluster_conf_helpers.pyccluster_conf_helpers.pyocluster_permissions.pycluster_permissions.pyccluster_permissions.pyocluster_status.pycluster_status.pyccluster_status.pyodb_helpers.pydb_helpers.pycdb_helpers.pyoflash2.pyflash2.pycflash2.pyohelpers.pyhelpers.pychelpers.pyoluci_tasks.pyluci_tasks.pycluci_tasks.pyoplugin_sasl2auth.pyplugin_sasl2auth.pycplugin_sasl2auth.pyopyopenssl_wrapper.pypyopenssl_wrapper.pycpyopenssl_wrapper.pyoricci_communicator.pyricci_communicator.pycricci_communicator.pyoricci_defines.pyricci_defines.pycricci_defines.pyoricci_helpers.pyricci_helpers.pycricci_helpers.pyoricci_queries.pyricci_queries.pycricci_queries.pyostrings.pystrings.pycstrings.pyomodel__init__.py__init__.pyc__init__.pyoauth.pyauth.pycauth.pyoobjects.pyobjects.pycobjects.pyopubliccsscluster.csscreate.cssfailover.cssfence.cssglobal_res.cssimagesui-bg_flat_0_aaaaaa_40x100.pngui-bg_flat_75_ffffff_40x100.pngui-bg_glass_55_fbf9ee_1x400.pngui-bg_glass_65_ffffff_1x400.pngui-bg_glass_75_dadada_1x400.pngui-bg_glass_75_e6e6e6_1x400.pngui-bg_glass_95_fef1ec_1x400.pngui-bg_highlight-soft_75_cccccc_1x100.pngui-icons_222222_256x240.pngui-icons_2e83ff_256x240.pngui-icons_454545_256x240.pngui-icons_888888_256x240.pngui-icons_cd0a0a_256x240.pngjquery-ui-1.8.11.custom.cssjquery.jnotify-alt.cssjquery.jnotify.min.cssnode.cssservice.cssshared.cssstyle.cssfavicon.icoimages100wait.gifadd-blue.pngadd-grey.pngadd-white.pngasc.gifbg.gifbreadcrumb_bg.pngbreadcrumb_separator_0.pngcheck-11.pngcluster-ok.pngcluster-problem.pngcontent_bg.pngcreate-blue.pngcreate-grey.pngcreate-white.pngdelete-blue.pngdelete-grey.pngdelete-white.pngdesc.giferror.pngexclamation.pngfence-blue.pngfence-grey.pngfence-white.pnginfo.pngjoin-blue.pngleave-blue.pngleave-grey.pngleave-white.pnglogin_bg.pnglogo.pngok.pngpage_bg.pngquestion.pngreboot-blue.pngreboot-grey.pngreboot-white.pngstart-blue.pngstop-blue.pngstop-temp-blue.pngtab_bg.pngtab_separator.pngtoolbar_bg.pngwarning.pngjsadd_existing.jsadd_nodes.jsadmin.jsbusy.jscluster_list.jsencoder.jsfailover.jsfailover_form.jsfence.jshomebase.jsjquery-1.5.2.min.jsjquery-ui-1.8.11.custom.min.jsjquery.blockUI.min.jsjquery.cookie.jsjquery.jnotify.min.jsjquery.tablesorter.min.jsnode.jsqdisk.jsresource.jsservice.jsshared.jssystem_spec.jsuser_prefs.jssasl2auth.sotemplates__init__.py__init__.pyc__init__.pyoabout.htmladd_existing.htmladd_node.htmladmin.htmlcluster_list.htmlconfigure.htmlcreate_cluster.htmlerror.htmlfailover.htmlfence.htmlfence_devices.htmlfence_instances.htmlfooter.htmlheader.htmlhomebase.htmllogin.htmlmainmenu.htmlmaster.htmlnode.htmlprefs.htmlresource.htmlresource_list.htmlservice.htmlsubmenu.htmltitle.htmltests__init__.py__init__.pyc__init__.pyofunctional__init__.py__init__.pyc__init__.pyotest_authentication.pytest_authentication.pyctest_authentication.pyotest_root.pytest_root.pyctest_root.pyomodels__init__.py__init__.pyc__init__.pyotest_auth.pytest_auth.pyctest_auth.pyovalidation__init__.py__init__.pyc__init__.pyovalidate_cluster_prop.pyvalidate_cluster_prop.pycvalidate_cluster_prop.pyovalidate_create_cluster_form.pyvalidate_create_cluster_form.pycvalidate_create_cluster_form.pyovalidate_fence.pyvalidate_fence.pycvalidate_fence.pyovalidate_resource.pyvalidate_resource.pycvalidate_resource.pyowebsetup.pywebsetup.pycwebsetup.pyoluciluci-0.26.0COPYINGREADMElucicertshost.pemdataluci.dbetccacert.configluci.iniluciluci.logluci/etc/logrotate.d//etc/pam.d//etc/rc.d/init.d//etc/sasl2//etc/sysconfig//usr/lib/python2.6/site-packages//usr/lib/python2.6/site-packages/luci-0.26.0-py2.6.egg-info//usr/lib/python2.6/site-packages/luci//usr/lib/python2.6/site-packages/luci/config//usr/lib/python2.6/site-packages/luci/controllers//usr/lib/python2.6/site-packages/luci/lib//usr/lib/python2.6/site-packages/luci/lib/ClusterConf//usr/lib/python2.6/site-packages/luci/model//usr/lib/python2.6/site-packages/luci/public//usr/lib/python2.6/site-packages/luci/public/css//usr/lib/python2.6/site-packages/luci/public/css/images//usr/lib/python2.6/site-packages/luci/public/images//usr/lib/python2.6/site-packages/luci/public/js//usr/lib/python2.6/site-packages/luci/templates//usr/lib/python2.6/site-packages/luci/tests//usr/lib/python2.6/site-packages/luci/tests/functional//usr/lib/python2.6/site-packages/luci/tests/models//usr/lib/python2.6/site-packages/luci/validation//usr/sbin//usr/share/doc//usr/share/doc/luci-0.26.0//var/lib//var/lib/luci//var/lib/luci/certs//var/lib/luci/data//var/lib/luci/etc//var/log//var/log/luci//var/run/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tablesdrpmxz2i686-redhat-linux-gnu))#++)++#++#++#++)#++#++#++#++#++#++#++))#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++#++++++#++#++#++#++#++#++#++#++#++++#++#++#++++#++#++#++)#++#++#++))) ) "  !)&$&)#++    )#++)#++#++#++)#++#++)*++#++#++#++#++#++')%))*)*)*)()ASCII textASCII text, with CRLF line terminatorsASCII text, with very long linesASCII text, with very long lines, with CRLF line terminatorsASCII text, with very long lines, with no line terminatorsBourne-Again shell script text executableELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, strippedGIF image data, version 89a, 100 x 100GIF image data, version 89a, 21 x 4GIF image data, version 89a, 21 x 9HTML document textPNG image data, 1 x 100, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 400, 8-bit/color RGBA, non-interlacedPNG image data, 11 x 11, 8-bit/color RGBA, non-interlacedPNG image data, 14 x 14, 8-bit/color RGBA, non-interlacedPNG image data, 15 x 15, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 20, 8-bit/color RGBA, non-interlacedPNG image data, 18 x 19, 8-bit/color RGBA, non-interlacedPNG image data, 19 x 18, 8-bit/color RGBA, non-interlacedPNG image data, 19 x 19, 8-bit/color RGBA, non-interlacedPNG image data, 2 x 36, 8-bit/color RGBA, non-interlacedPNG image data, 23 x 601, 8-bit/color RGB, non-interlacedPNG image data, 24 x 93, 8-bit/color RGB, non-interlacedPNG image data, 250 x 60, 8-bit/color RGBA, non-interlacedPNG image data, 256 x 240, 8-bit colormap, non-interlacedPNG image data, 3 x 32, 8-bit/color RGB, non-interlacedPNG image data, 30 x 18, 8-bit/color RGBA, non-interlacedPNG image data, 302 x 211, 8-bit/color RGBA, non-interlacedPNG image data, 40 x 100, 8-bit/color RGBA, non-interlacedPNG image data, 42 x 42, 8-bit/color RGBA, non-interlacedPNG image data, 43 x 43, 8-bit/color RGBA, non-interlacedPNG image data, 45 x 32, 8-bit/color RGBA, non-interlacedPNG image data, 6 x 36, 8-bit/color RGB, non-interlacedPNG image data, 960 x 10, 8-bit/color RGB, non-interlacedPython script text executableUTF-8 Unicode (with BOM) textUTF-8 Unicode textUTF-8 Unicode text, with very long linesa /usr/bin/python -Es script text executablecannot open `/builddir/build/BUILDROOT/luci-0.26.0-93.el6.centos.i386/var/log/luci/luci.log' (No such file or directory)directoryemptypython 2.6 byte-compiled  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR?7zXZ !PH6Y:]"k%rJwMz)q7C^Um?2Ȯ6/H#M~y+r+9Dz|kjDdZ4<25OZ r #By%%eIx_ B0jR۝^spKdh{dW{=h~YCIEH>mx!Yk9I"Ж%2%Ihio8umctуr-)N_A\F݌`"[U1*4ʇ-"uNkc$H z9R N$]__a8XDb~#7uVf}qO7Bb2-VKʵQ ٹ[5N nדX"g gꑲr;$FJPWڮpN񏟇S$ٗRЪ)F9bm5i]q:d*4),s ~JgB5o qNBo0zf%+z_*G͕GRj8iGmMfd L"2͂D!x5f3k4-ˁar?^sus[}.Uj#1R~F z7ݯj) {w7yvh_Y^:Hovp>1aJ *I/|xi 6U#;ΰ'zBH+p\j!Gn|.6ӜqNa<0fjzDfiw_PYP8QnYnaӕl =pV" رFrCQx]"gΦD4f .r8w $TDe)Oq/J4-4P< }- aFrd;2N^F$5ZNLN\6y0&jBk4_ϐݖgUi6Palfeurij?|SLo-v3-{R9Qҡx k+ R㒺̞xQ{?jQR?S1&9_ q3&Y7 ^~hʹOrHnS%b5źD3Ytͪx| yq(+wi0m2K:EivGHtJAۊ#ż=2hsQk[R24O<]Eۿ{ BV BtWzw ǟ UD1N2Uz x*#IʤcSU|/E21ZxSDzFVi]^SFT 9mKwYh: >!8a VW'rvY"X3pnb!g١B^-:qyF ^GbRxՙB8.@hjZs;@5E *kaxT?FD9Bɐ:hGmr|jMA0*%^̎å5ʽK\Pp$ל&8 !omBeFT®aͫOC&a9UCzϔ3Ɋ ʫ"NASM;(aa8Ā:heʧY- %DrON*s*WBxЇ|6P>``cfdO1 -{3Cǎ}ަU0ONzճ}`&t"\]WGSǐ_%I=bG荊/!?1=⌖0VKՎ*鈴ns[9a ]+w-Jr9Kno}pCSל[v?TcP+P[w `O߬YQNf@P&}Zx̢X.n "WDSBbJiX͏H;e/se3هwnJaH+G0+M,)DlT9^&PU4jS@b7OK7zZ pWz$1d T)!>šiq}0Ƃ rE_qԩK8d} l~^ "Eb cUMcƙG:80D* K6 _8pƾ;Mݻ-q` y;:r>a;ٯ`~;6k/۷Ga%w l0)tzӟy방 g{TF"BVߢxr]Sn'=VqƃջhJ}QX\3Xr4.c6Gψx81%cƭ9&յB7v]9^p|.|n1\;HUhp@^,б!^o=!TEYk~V6l6Yd5*_i3m̈´IwE/^quʱGr`C[$a<"\40fUL@όvz iv![MmF (lm Wˈ|AڃƐ)^n#jO_C7I/ϙj tsYve XT 8(sB @GQ! +-jeuNlgWpvf%˭%Ɛcgr[U_ ?8AjC`6;bYA>GG IDxJ#t嫫0ݤ䓌@S@#3ns >\sqЈ Mq<QYAS~xx}*Gz r޾tE.ҡsIT-f$VXi1e摁}@ܶD8 0iБRfah%c]O81Jk7,pV8|\8Voa!91yծӮΠD?UT`ZH1zhZvM+xi]겉y!Hm(Z s;O4toVU_OK WL\ (l7- #ᐅZ.yp 89qqv&yoM/|G5@WVjz$z x9B{"ܟM+nG5#GP%@)[oүX*UvO9ZX1 # l5?+\\M?tjdjR1=50c֢n\^7Pω:(Cg.4%|I-C}J#e|aߒ>k4`rAbϙmˏLt UȺ[jsX7 쳦<22cص%L˔3ٷ؇,m9<}%3t-Ta*߸71߰WdRoO b=(s[ 4֓ī ھnM׊z_b;1tX҉kr{.[|(!qIq/b'( qg :=X`.w.k϶jo '6OMxMࡱ7cÃ58{mI3E^ػ/|:qMDCL_߯޽ D:cCDo(i+J hDK>S{/!@ =Rf|\3 D`+='4UYIa]mlp e Ʈ]q52[ԭGnimKܕWqG?gFVt Aŕ Z~ B+#oЂK[sRuKq*G`x&qEnn[ejH\y#(%}W]'A*^ Mw}=ݜp <3u[ɨQJy×δK6ћyGaCjzɣA7Eyz`b 49x԰N E3NxVp ,_hf1 0Ƒ fbEdU͛[~g҆;<z8o3j'Rn[|E9i Ջ)~XNHt -P O65R񈩛l>uLٽe"UyتgxYuB/yU9v[UȾ5ĜSẕM4^FșZzD?yvNt%4o, C!-~(>^KF S|&iV\Χ{0EE$USSf? Vy wZIQFKϘ^^ж#,e^[F}( D+MShET1U A5CJJsOjāؗ<1v *ڏbz9 "R1 Ͷ,~A1m]?~EK#Z.B+iD·e0K4744pJ9FJ=ky^(0mɂXMVaż?,ܤOc'&1 BΩ]ЅdTw8ߡ$jT `oܟ5D[ǫC 5S^p1W}~4W V yjrE5&H#B^ 5#LasnyM(CGn=~qNEّe:HPvNe7ULA pi<*& #nFӴNb%_;8_>GQf(m.n@=,~sС8F!u(Lo߮RY^ȹt̠$83M! :UB;9t*%Y>j`rl{;W,<ي3X+zr :⅚iR_*x&V^ʎCySU)/\BhNzȁaeaѶ-׎Z)I7 K$:C2 _D%`$?5ffx!& ^7nC+Qe6oC1ګ}+Qe\. 'zף\9u@ֵ6m96xJT@ĝx`p{t@A#0V,MEރ/N9ĚNMeW )^Md<@~_D18-rWʵ~MYi滠FeTbRoZ<9~8ql>S+;=trk흲tD}V%z寳:R%\͉")_/DX"[3ЄXW  'TY[EXَx#i0}!?3aL,Z6Vus^y.blPl HF/$nAș)F]# ;mEk͜.}q59-m&1z@ &Zk۹mmȘdx.^<w0}kc]DQ*󂺺.noqmZjbGf2Z ,Y9*]ALB+Qʙ$T55qU]jIiɜݣnkAC3=00e+s{\ڽ0b,[j g5]~XROSrl2â;Ud/8 #6޷B7 Ġa|₂LcT > r&Q.ɋ ϺeXF ?# ň^9}׿\WNal)~8KL)S3Ε Ғx@n~vOթAE :@؇bzڷ2"7 ];ʞH5 H_+h;JM يvX#d.cAf{}Dtc=ťn0'tY'ȍ$κ2"! _*D^ aWgIeSv 4k_&>{eJ|+.aq bmf`Wr1h-ϔW$q]/\s,y/"<3-xZ:hEGÅu; G᾵{fat!&S-=S޴:y DլZJү(ΕMsQ_-(5RBײTV^DKt6`|41MmQ4I5h p*//]ςoK)ۉ=zU9_23Y?gFk'-~HE.Qw"푖ZgH+al蜻3mf$^3 UkHQq2;1C>Ȃ94݁hSUm'tq0c'ELߨ1]! $vLT>@K)dHYE|[2UNDuH+Rڱ`]f:JP[",'>Z"CGg5F(%MD$ޱ] v ]gYY;Dh@G$փ 4Zm4I#^P#Ҝ?yN,F0xЁYIdnR~/h<=`=M8BP1Z䦶#u&a[ؕIg3V ,[ѓSyJ&~]|/ ]#e2 ˜9!u,7tZ(|ׂH3}C%M#o*`vnK_C*ϬvU4Lw5 1،JFSŷD<?ZBz ٢=DL!|أ:*ft^7R%i>YMlfAk92̄/,KN<6hxU_i7s?䣵K9pJ{Bk^Zmg,'6n0E5(0Kl >6wL2n{5M:zS(r;ݑgۇ9dʗ}e ϗf*zI9gS^$D*N EK(Tl8UlXxlXF$>1|jNBA*#{/CL&)|(,}wd!lO;Gѽ+$#>-5SAhXu~ԶeQP)e<UȽ1QAuyM ^VQmiK"EfeMd&5>tWr?LK."$g 0+N,e*luIŻ'݊X&Z5S.fCHko"NQS) w1Bo̭BjGXN!f$R<˃8ı9<6`ΝJK gav): >۷חyrSt=qT%iq+cd'浝x`ƶaYA(`91C0qT78FCPc%-XwG leHGPW:#ͷ ԫ;/8,[,w+A ^r.T]6FN% &X_\,>U2D[\"zOSd|lYl}LB|jDr{ԼkDz[:B.ڪ-PJ` dI J}[3 N&^o=IJ!`kτ>LZIm>RmGfqqvQ̼eJ=jvm_[X?03,jD~3d1^-wy>MW?tpg9(qbCxw u. cTu))FֵZm|F.EgtJ(a3vr-Xo3"tzJLRdw­!G:O=ᙠ^CLG?߁(b暆pI>w W,ֽa㸙%+ 'Ow$kYb-EU!!ʹB6gpI ?b Vۙ&ԍ{|7|TlR0#M'h^US[L~%'T]K,Q˼\e*"|Yo^VQJ"wRnHr@gAd:ːs%[;,DPm]oeFs3+d]m SW HXpbuwJσu]mļ yC޵Ϗ?vxt@]@މ؏ؓ C IP L.~mE'Ci/JMDBޮf2LY1seqy LcIV0O= ח䖃t&K+,9T7|\)7TnLq~ к5} ('\/:A mil8T 9n-45p"N^[ ",Cɏ1]WB篜K8 N0w_V,9c:ڐI]`X S(fɣTAn`'Noxc|{v2c@B:s3|.l2C,9oLwXx+eFY;jj}d%D h6Tr/ ~"|{_!8 >8<\-kmZ&UvP9u_5X駥&}joY[TMϱ!F)T4ioX^ܪ8(0tdNAB[Lʗ3oWĔ;n\#I^|+;Anm\-qU8-[uWUf9zK3Ĺ- ݑK|vyۼO0!&1 VUVn: iG&FCwBqI! ɽY,3$sxB=[zoN^)?Ov7 A8<@ $٢-ެ :ᠢz*fX n/f j!η/ 3A O" =$rP7+}ڟ?9L20;tʷCD\4fneG`pl$Ox_c4ie І _"Y#n)j8LFuȪXh(5b.UB{ +waZmDSxBx`Ԡ>A;Qfc,7 xV'YQ0oWȝSЋdlNwՙtJDŽZjWlҝ6s1a-G؜ W/9?.~/ !z[88 OV{/{1g ٝ w%@[?/.j-h([C:U3r9t7 VC.8 NS=56˥.*a"EHU14SܓQp^/> \lmmI˙KO *]!ݒzTZE$3SU l&fQj2*Tqz,8tSI 0Jǚl).3ϷNpXO& %Ww>.ugМЧ+5j*/ĸm9?|ʉMCkG>7Hrg;KB$̜U`:>&fŸ 3F@˯Xߴ*U%8 ݞ7559'$Zb hOaczh31/{zg؃'Gbx R7\LRa?(7B P!@Զ ,TuxS5REºwz*7I&Mx]ev O孡=Y P@ȸKZkF!Y\y}nڢTxD u :4H㮇pN'2r6$i\pkie96^!^TEc$o\^':M‰8*_ʓ;Fb %vG#J@TLVI#uO\3?*)!;GX򌿐R-QAYф]en7Ul HǓ PϳGY}Y,܇ ]"T -%)c.᠇,`wvD(S'@H_¶7e0L2Z|wJ/z/ʘ&./j?~c$DhITg~wEE;]ybdc!uΔd˩ U"0n]$qSY7g)HX٠6#{y&ǀ@E_pIrxﳨ\.ɲapۡ%I>'X&á89WqUh[Kp^ZFݳ1eG˅"F Rdx)yX]7= Wc^Z!nf@ct%"n"Y9( D#-(TB(WHo@E*6>/~~}G K9Z*Th73B 76MG_ង+cWS? eBj&w2b"gbY8]R D61]4V7S*8a41p-;pТNEE#ze[tɃ_>!=FdS6fmhGTwM[^.ftS?d uN=DimWZ@8qy$x4ff]3żCQӛGWJ6gftEIRYAБT4$o/_v6 *kŷ =1w|&i8 zSrZ72_jI;B̲ȫ>B51#sEd6JPF4ˆѮ,Y28י7t|4:e Dc _.>F>hGT_z%"?@oN'/vK5 Cvq1ӨtsBebrwYh zY]wűqS7Ҡ"'BӅCEuEoV0mGGѪ$N2e1̏k}-[ aVP8B_EwŤcME{n\)F\?ΪhT%,W `jCnnw\(n+\3U~etж ɛg9d^$Uqu.oѰ!KOծVӛ_78$ǕjX IK7o|[YcF XGeԉpwWn_YIJgFP?IUYps8_%=Wm /d)(J4}1*!EM"gI.KbB1 6vתEKLWxZ1`/ws>Y_W*q*m;E}" *pMl\z4l'X9]9mcl2%GU`x$KqѪ r.rH^v=d0m7K7g3: xz du%ӄs~L2gK~4"υU?y   "u#1 bgssM)}pͪыqcp&ڏᏃ)ufUd6dninjmJg }|m7qk:it}0KY0C6J2w\\tL2k̳/@mlUq6c^Ԛ&O%I^^/ꂋS޵U&_kQ՗԰Ƅ )UZz%(߰%*ME(|7YVM[AK$Mؼϐ/޻N {ǞY 6P0 u#=0or~mT4E $uD辈yR=H ;:9T _(V)oYeS+nZ$̻:Z ]hIMڨCeW Y3s^U M%Q =^oY=sK_T;DοF`on.'w^F2 ~q@L1YܧN۴%ح7La@W!vf3| u;n:Fw2&L}34! {ܴR%?;Ma[Y^Jr;#r; wܮJf8+;tg"g󐓛^kPmv6%#^4]Y2cXoXϽKZvjM}q9ʢY&i` ^N[G?+MTO5ia;ZA`Yl,\ AtCG$6=v$^i=Syc4rڐ-p!b`ToMm0RSZkZКJp*Zu(rnL1R=g!|b {3a{\tg'8D*r3bQv(aC/~.Z֣BƎ땳|?F"DZ}0WxH̨%DiwX#6Əfn/{Ɯ1(冷A |3U3\7̔eTH.Rvm42]%檢 X]$;F59{c7V0?W oNYϝ/l۷#MUrD!gtVm6$ %4R =uqCq?I{o,4Yψf[jZG'I.6Rf{Y+Ml۝QWॎSW)c9 `M{cz,Dwع*a3bAɌr*a;) BM<0&²bLT3 BHIATxW~cc 6eÙd/ڜ Z P{${R˱P @s08,9c^K"䐵]TW˫ʐlX̭ rG稨UeQ3V!92&"[j.{/]L q}+rEHO 8ƌ)+H}zM7K w5X(/:oM8nůrTĘm l ܙu5L[4^_F9~Io+-/ɬ!W'z@VA +>ϳ6ҭܣaPjP 0E,J/ښTnB़뱠of6=e |e WԯU3B _JuCX'nʹe ͭ"*'0^`a Hj(d P++bfQCXju kDal .N+J؆swK?Ul3wXgi!"w%Yf|yP5+T lNt8]g<"2|7竡A;?L"sMV)[偧%G%1bD VҪ-dr0|GkgktP9x65Bk`qa*= @𚑰ʘygRG2hLїsu)ҎS-7cTxw?rgޣR([N*EB(duc>ēlzQfrHHnN#yR>&:V)vV Q7rB#@1 V7nusbRd:.^IM,B4>hKL2-ĿfmeF;Âe$;pfk K Kh%!D?Glεe'ś_(q HQ<X@ d0Nr `lN6(Zj=B׭2Qp3Ė_۴:5ޚOuV 1!;X e`O:1ݰl M%ڒ]mXGЁV!Pg <X)`?lK5-ݢYSqܫ" !Nvt/5}ֶđݵ# zHYɝ#SA4EH47eĒT9ܙK}T߭T҆\ Cem:Hd/)Wcntc2^z]e H`-tvCG[="a. x=ZPA ѢIZ9Rtҍj2BiҺt'9KDmnƲZԭ"-݉aZ3=A. &Tj{Mے#ȍ3 3 wbuR]kG*^F1KAa{A6 W$ ͇B\C&Nڷi6|rE޿\ 1b +2#,"77SpBH6{96_VLeA Lb+>#:!w4:uu%9P Z%I4gnO.pE>CRtg6BE7ϥjBż(T5 ͵Eмh>wm?7JI!]wg+pmhҿta#Ee(Ml8xcdo!*-{͋~!g*Iw{6T%g<~$cZ"֖5pK/ Y Uqj&mI|wqm#whpfV+R3.*ɋg!O5W<{ tԊ:²՝jDV96T}>~fͫ{ґq\TQUT?;yPR _〦V7W9 34:~vegâ@c'ɡi0X(8(Yk X R77ը4!:G$m*di&,\ i Zfj.hDYў0.u*cAt9 WCB MsOB6ͻnekmt)@2H *//9+he$UZ8yX7fS#]~׊Y[$LI=0m&8NMZX[u|9Rqa$yPRC_ u. lz?y^Nm$=&_n:ebKHh} 8{x,^&?2R"+[ǐV0ӓuksWė %bzEQJ}VSԚBH(0m"&!x`/HJxо01Df@,_D 8R)k,`r'3ke `ub_\y F~*b$ʢk6zVKw|2{="]5p l|b\OyJ* a fA0Pj"sLx2(Wc h|&1m K]g@}h*ִy/$#W>le}[yz^w.nlJY 2rv& .>8#6y)M;Ÿnc`kK'$5|1~!O8/KD+F̸!cH}ο} XоvOy)H>_Z(nb֖Ԗ86R*N3XWN&`΄uQPuݢBƩ;IBۋG UKi/tAqRNjڲzІE>j+7|NI5 nclZYڬQIw ?D8$F5b"{#+]L}ˁ&VFރxLJ7Ī43hDJ{5cSg=*yGhS9e= 1I %@Zj 䖴֭nA8oMfFOq Ç"~шSNt Hk:˪KT=R-#D91غXuѿ} ا:+# 5_&uţ\^"a$6Wb֎Lmu lJT\T K ,Ra=ŌNRQO_iOz8bNql9.z`3iJ6G˳Z\7YT 9ntmvR}N8^=sN]*1ԉGo6d~ 4U풄+ig6PxU"DnlBꍍsp1zp]S]kʼn)w>x\Lh0PYRWVpdO((a&2ѢT`(F+P";:G.1 Xߪܧq}WAp_ܸS ,s+{LLDMpY0b'כΒ-D-hd`{zU9 RoR E0֑I 1.TKQiY.L(XyLm9<}5ƪID+_ c<zd5[C)VO7>} !/#<l%.nvӫ|;N&SEsTMk2ˬn\1v2wjKeCN2 ze$~fj,EΏGDR "@o!;o(\ϵ{6S82NAi_&}8V/{ pAIdIuZe}Vg=B=\Vg_JZ,R'Ҏ2NaJ1 P!c[0\=GweW}0MU pƬpz4(&0)q-7d 2ݗ]EG d!{B|:2>,Hv<9S{f&=ky.*m6yDЫi(%\S93˘u0Dn㈘Fq⯗(M^N]V'L]8>&Ž*P 6{~'7ȲLm&W}5d\ |JkԸNiGVK.?6. _ut*t'Ð%j(Nc-`+5fPNLBۃLdI\'8u}28=Ax(zdEg"3,{@1N\!F\+;zw,:((@]B0H&Rː04\1@IPO2I5gO7i _{jDAfn+ˁᩴi4%=$ŦŞƪ=nY(>bE>i̺rb2C bXds?+ON5)hFjk/ s4=X{'M3B`k9tɀq#I ^d.}H]#T1**di@)fA}+"_l&9dU' ~AjؽX!0O\;A rێ-.gtJ!$71R$PLcD;'4|SEL(Pݏns@qKRo#239<<(!ӡji=nEo4rz/qϣ]AZ$D^n,_ViR뷽VqJG$6#VuǢ下_mW)]쮣YaAX&E!xO(;v=0$%忌2Jg yyM)pzF#3{p0<"(u=1ƱxCڈV8O5Oi@ۀt3@#k<͡rr|$Uu2A޸@+쭋~HX4֋_Z/W᧑9#3F{wwt5NN|(z3}xq-?3y~dC* pycz':<᳥ΓHw'wcKH(W6:gg^VMq3-n?8Iơd>Ŋ|8_6ٻx'SuJ~5> ܟ̍p1t'`(7+8p).}E%w6䝯8bOBθ9^Vr9ګţdoٟ p[`m/]BM,/J@aK-kk}ϽRlShS uO CL,ܛ>ץ8߿Ⱥi]MJ9Dk2,tz[sΧ"[/m6`xS3РaJjgDa2'EJ2ڎ:ę4W1MUv%9#r+SX_Nm;x[@ɔX ;qMr^L}%HJ y=N]FI;RNvyLͥ 6dkoiLg+ \< 2K@H'^-f;z$0$1뷩d;PV*UZK[{WorErNJڢajO𫳯DVר޷0#b8CZ~<~RP$^Y<É#+Dxbs@n kyMjw<箖+(yoi9yV:z H/~6x #-֎Ǧ$ 562D7%u̺f|n Ѵ+&UQYcC ZL2#\::ʇg<>:P$?իQU/K4L>w[Ʌ_!y &~ Q}{2g%&@%@1^a9Ԯ\ިkNTIտ쒷ᱸm}fFVR;ǸfVyŒqLH(Vy g]2Yshcȏ߼MtХɖvVw Z1B~кUyobzW 3wgw%"-VoІg #CO L$j+%edza9  nt|òw`ȿ𨝚:@nu'a~̽i kD˂b( !7ۀ.Ú@_">7r-.P'#֠A e`|v}_0ѕwib.QyUknYqsiYAA#ח!XIjjUG6^BJj/NKq>_in6A@ "JgBkVR<,6)9,7:1c80\#t$+M#FC|,&?WD;u.-GQf53~(E `=ϸ{d͐cڟ[у&[877g^L/ۗx(zm "7;oi%4t>H"+.z.%peo%Fe<ԤW\ Pn fsm7f ؅ZIn^\<9jyݓFS1UW:\'s{}T8&X@שhB4 tQ):k^5۠/M8oW6t6Z)e#fA@!)vFfhK}F+.c] 5[#P8#:owM7":F6 G6i7~E.116#"A\Z_$8":;2p9~WBJlЂ|-{t.[PGBNlABJc p3oI<kuh<8;7!PDvT)qʖT|77Beȝ's[\eqQ'|uFD?vۣZgr+ 0&v<kFdԻ\iڿ֩q7@3ٷ5(&s BWn '3a &Hd* ЖTv<Ӫ Cb\b^ܝrB  (EPV`, a?MoLL'EZ?}{ߔ$k@Sݵ*cy= 6କ~|[gdʞЌOej&fj`D8ϩ ҐC`gLӨ2;F%PDW-Wl?& [A2 UZ&}F:B)`މ[Zb߫Tl0K\){n:r}D-_8`,ҝ[)rPz6_Xn,^ҵž.GoXqgraTҝ#c`͍Bo1} _?c^3yO+9(YC}cԷx(Fƒ9ah4TsTߌ5i3h+`kHLŰq/nUO >GQ(؏+ 4-]p%DjPs7f8Щ˕=zt3FH b4]FV 5Otpї[6ˍn9TzrɥL)">t_ZjV):<ӅyEZR XT7?M>V[lkJ}Y4j°&؂Gy4+Sd[\ mœ9_*H`C>U]ќ  h?dn3Xq{wĬ:Z!t`"$&*T68Lb;Dr@H-Y@hm4@ Sh>c ! wN߱"BwbꆣZDzX4vW1L~MsQ ܖ'a$W u&,D׃'FeXnNwdžf˶H|y@[cX2M_nfP8O+8|((' {-Qh|)>tqeϚ~Ө1?v7w4S.#r=':(8e|kN֪ܩ[pS]s(" Wѱ DR3q/') JXmwxsC}C]M{n8FtΘCLp&#'3v5.t4M*؋JBE9Bz;qWCʁy4EF ,7Ψ̘\m)Q?ŸQc\;Ϗ`|L"b*-ۃ᧡rZ!]g0;IupVƜ1U+baٕ[SQPsĕ˛f[:a=1;e@Rv>!š)+jTGAEc/ZX%N&ȑpjRlS. oOv0GwK{UmHI !Neaq?!Sv3@(rX" >64$|3^Wj7P ;O22ۻTIG>qNɯX!U)}>ku)q@l b-68n|P U0C&Y pK~:cN AW@V̏;%.5Gb\w &m\҆n;{sfgr>ij}%=2?Nb8ڷf)[&װ <,a#XˋS)vM[G6ĭ2IO̳$ˊ_I]?M矬tSZRlDC=2؜si-+ |%i݌zxk+D_$idJX =39:ՁGY~}ίƼ@hN).gռT3iQ)KUY42#l&طu;?]2KĵLgtt.IM~^]cSnNTcfY=I,??kieu6Vk$0z]zRHpd_/@Fy!54X +PW1JB,MִmnOW[Tcg@Pںi:uIeL$2/ږZ20 3++$0 E̡3GsfW&Z70x)}Dp&hlNJN|hFUhϸ2T>UuJZ@ k:0 inؚ(J죧o8TVb1JmvX?] M INzX2/JBƛvؘ=S3c ||E"*"耝nAZc1m'_u ;hoƥ]r\EԞo qBζ LLa3l{$n^U7׫j3J.EXt;W5MM""}qU200] N}|xMaWUnl:lt eyL-(jd6<4|}zLc$l>\.^3½Y%`"Z~NKTx)Lt@\~V)Z{~!xgDF̭oHwxRIځoX@RVӇwyFS7Zw̙1WMd.}OCw9qfSպsmr|>v(dx+ SG;2:CKURN;u >6^Bcsb@ 'ܢ%&/*) ʲ`?uI+cKe/_"b-!Yq\1iOoo{#= =LR:e<* ΑzKTT7P;#HqsqI6-eNRTE<\GӀ ޙ@[;`[>㭿SZ!uz}*,$.ک785x,GIu! E.ȸh +Mdzk@[-pQ4چwJ[K(tZ)@ DA~ |J|=-hh_$D98=MGU=%זLL4?fv愄k fz[ϧ+{O>* \h ](O"2$nSHu1dLfeO߂!Pp8֚?[5e|t{A4}dTr ̰=y$ƆFKJ^ToXօ`9y@UD7ce`?VT="Q &Ѱ`-ʮnk<ď9gkT(,wpw $r䞖xXa4+' hǑPv=d4Go7U(i:×*<5)D!tHh|@AYY_֥W{Fq)> _FЉ5(>YDOdd)/!0 Y6_^yjx"lCzthj̈X:T81X̚:d\ܦ֫LC&eͻm3NjձXЃźU/']vFVwwJYFt)pnD8P&ZGg~G6Q@Z z{ LL@ lch@V@ L\=0&`bЏ4+K~(")*Ǚwh_Ѱ[q(xd EIP{hQPrB~'8Cݳ(8 1}CI6H;pǤb0|.}dCMڋk*k(D3wK~s󤝭 9"ԹbIq*wH7smG)oF n1Ϣ{[Iyzl~dXݮAlA*zu#z*ƫ B| \5UGO

Pzƪ^&'w$5DJ V '[Ξ%!oO#V] SXa³.<=qG8|CtMY8-!X-;Mʨ-e _?NPrq\)m}\ _j|^a= :~+:ɴۡBe2K{&h"0hA"xcSd-aLe$̪ qMRrUNgubUeq-zkliy.hWͼ W8wz*.=(TVRuK|W1!uR Myᮗ|עTilLNgԑؠ'5MX{.^ ƦiV:!GG 齦|Q&ƗJN({;G(ڞRjذG: }E>ty!oQ`%//x׳wylִ#v{}//)"-'ԥDj.jC>G57?%,J% HPaM9jʆщEJbc؄AWB;X&|A=G6 ͳ8>u#tZ$а50{TjHqub>[ѨE*(Q_3֧Ӭa*TrG"X':c%zt] uSPz9.Da;zWUqF[- {|cFT9[ -33AVl"Yw@:U !K6.l}n٠2\KJ/Ңt([cuU FnQ#yQ-Ran͇'n3} ;4oW, &'a[PVCźVwR]E-*KaD'If(ђ5/c0dY'Zr%se۟K !?[ Dݐvͣގ:cKho4ǘ]ɂwN}kmVFإTO Ĥ md΍j}Hu׼lNF>;-^y/%RRgHA (ד';'pHd W]y瞑^9O$ IKS2&|?38GB*+bz4m"67OΚmLFpk ,n,#w  X#J}TWaSU;r9.vW(="%H z3U׭H0g7(YQelMhQg`h6ITux6x!"]G|/uw;/ztkuL)r |l;O zb+Qli޵w޿m]{6 <5cOD:c;Z  㑻y&MpR::q lɪ6WxJZoߡ"N\cn@=c!|u/.rQZqقT]a4Q8Qj5 _ΌIͭ)#x3ʮvNT4~:HԏBL VgiIe]&,k>a$D;b ڐdGS#pg*bS]\{6?rmXwE?FKߩ4.UKH]Oƥ-NXb.9JCTQ"hB2IxYơ(~0NDۂ9!?2 eZanEtp`xG؎ XM̼ZH Pnu3|[u[M0T22?UUCd;zF򛎡H˪r$ ,Ӌ2VUqƍ+\x~%Nj4Db+v n/$%AQ %hjtw/V(GP%AO`2.k|p㔴LbvKԻ4oޔ=t]֢A"05^a[:WY1,% fC&Ju{ E_v.4os m۞%i~P+1Ini7X. 1F7?[4}F҂fI+&n080z0IZ23حj* r#ucocFsUB-?]Qt]i(BzCo&[/#1BA(5|:"C8 Oz6PΛ[ԮU !dFzJ V1j+ONU8^%uH[""DA{:> ^Nîf +mUm-Mv7@.6̒rTje.Cj]~Łe4~R/[pKvS}g sn" Ltɋ0 ho?30N{pbjCm[le~uKٚ@ 5p*[Q2y?c8iSXMBC@V;)PqռMfEO q08r;GAH{ݕILpU1h}=lٴ/dR\E76H}_r(Oךk:h8ˋ 23NiNS#C gD"xBF{LIX` R,uȌ_gpMyE w<$/62cL%W}/n-v]6%*"Y7d1r27˳^8o1=tc>!YƉ/JZRvHu߀.& = & g3f<==gR1Ϥ9j!ØIYd3"qM ,ۥ-aE} {tڭv ܏ tzgh'jm7*E\p-jm*v&%‘J^BRU,zwfw_SzcMX>cm~ZD8yԻS ȹޔճghh -A Z+'xstsE}nwwHof{@gz/r%D%d/Q}k.ECTĊQ}5.ќ7:}O`Z?&aCBʀp+=W;Ѳx`D=s-+i`5D#m!JS,jJtHP>ܠ~Eut:ލy|&<vj -=]^Igxps߻r" 4 Xk~uPS&`IթJ;kJ;觳XJ͕-)k0r16J?_01+[fZgjzR} hY@b5St9[G<;0>+,&E\+3rU_tz8sh_{#/h\,0S|@r3Ă|;O?&F'<uq{)Nۜ+^T&*j形>Q;c$x$IC38ԥsvO ^MQn2^`dC%&&Hځ8_x N,c/ ` ff!H|.*FgxÂDl*ڀ1h7q "C$V;URW[2ʾI_n@6.Y5{(bEJ]lqt]ԉU& -[=yvgw^dL}F\XmYjTucj^ؿH3|b]c9kg"tDg iıLՔ\{#b : Aק4m|.C.bL ^2m| ~vx{ 1 AM(sk+ZVuCWHm1 8B!eNūHWpحV8>P>>(PaN{`^jc :pdBƼ9]9K}9hm42<|$iP'!_:`탹'~g4-gFq`0ҟE<3g3$ ~0=uˮEx]_%u{lGn̈aYFQ֛z=֓p`A}EEs|Y~Dn/\]\]RNAT봤K/_Aعݗ)d1vBϥO!8Na"^Viʬ>)T^ju0ڟ7O (~*QD ; .? ,ʍw-AQTϤ<UF**yx:T܌d% AHƭE/J~|DbdQ <[{ gB{ 5膃=Ԝ)(. X@=#ۀ~_>%u08Głw#]ΫqO5 0PA~B7wm UrQN|3"@5qϧ&AA0 '|əiHXsSY@iL@|D(K"umR ñQА/ ?/ ] dF/911@|# z杩x;v$aH[bQVwtE.8V L ]kq䙜F渕v4C[z-n+;Re au9 N Dʫ@.eAV~L~B^xE.<" 0 Oހr>TrV{C$J왨kycgfcrn $ 5ɎF+[L@Jvfʲ EnTd?r Uv*z9pK-0ΦָJv~hW>jɄu`eDfKFT>)FXA$}We1RNFh8j~`;Y^k4;\kc[BT**!a=$]κ?c`vF;2L=6q>Exd-4̆r#;21>;/XD"yD5kAog! VcGps)=yo``I$&7.I*d9廤Vgё y=D{0>LA*cфRϻ.p3'tF&17+}'>!,sÚ.r,Vk-zUs[X&X J^GU1zQ[3 _}1}}XY] Fײ\@EHtn;:ۇ8]c8n @[*ccHC(dn?Y&?W=* 6X0lЮV44(Qx*t*!^7EhݣN*d᥈ hb<"NA0ϴj.=j팗&gTD `تkv_qCm$#ÚF:x!cpZO i$=> 聘okK1E];_gsY[/#tK͟R!:T|/oŝKmD_T0P=e8MM(WѼWg3ΙtG}ࣜFu6M^_P.^FmůEᮬKȢ-ɸcN`:9rj}}@xKA TaVo un4#GJKS&7~vS2{'׷7^[_,l0ywH9.jHBԮCVrfxZ mR:pH\\т3Cx@<NnAu9JQW7s(ֆ2$ T]%.993X&/#vC~L,2̺/ _«\톖Z&mvGн x; d'ɫ{e#J'!KA#d*1Tֆ9BѹP]?,&HӋU| loW !w5Kւ5e"7@kzq+Iy:־?Y1;oL/}>aO,(O2S>(9եF\oLNF|GRfj )\e~I0"^99`U?S"ziTLO`M D WCccGG- =,<՛.vJؠk}s0bPynQ0vhbQYdg>6"s&69N̛i0-Z~hܷfN˺ՁL:?SLL}"2t.&A:BZjQ%tkVwQCi~>2,WvwU% /9j:{XR(t~8ȋuwҤgFVs(ܬ{+{Efdu ۬k(DUSq#i_]kt+OeuqS5/O5 ϵmvܶxïRt|IV ?>Qp3'% pPW6YGQFS%n9*[ at;ڃ_ CBu3o"&2|?;X[_Y\#+#>Qԫ: m[9IG8+7l1 㭭ʙҼZ䵠ddva& PyD"x .{ș1P; ; <Fп>i'.x_3"2hBiG*";CLqbݍ؊WA(Q^Hy]Sg~9Ծk 85 P#%wcƯTպKډpZC[~ڷbĀLhx /RqƔ԰D 嗔g\Ve5r)JN(na8KM\MzHI*E qWu{ŚxQM=7CѨ)Gdȇ M9_XQ+k-g-0uXyĝ 'wTa#Tt$u&DRyQ{VKrBz G[.V-Nb+aY]tTI@9q⦜n愖ם) Rua 9oPJUh3&<$U=agw v7g!QI"_#2O_[Tf4xwTŽ!gmvvnRmw49 ]ET%m^[Ov"~"{Cwd"Zf ؖ- RGUUB >M6)|tT-0 w8iv@h]Mk̰t  X5}?)Gn3^U(J픕dk4J\ފ9zifC_;~2嬻;s a^L9;5HC."?Y&OBEokL\WTFu9uy$8ɋs5ROFo[s9T[.= ] Ohzys ;x*|= іNV*P=%2:OԅK+>lx48NH(;Vl՘}M'k|Ay~U Ffc?\>;B$aD=0;D޶:[gNj;֤H˒vjv _٤R]}XAg2x?]P͓K~^,>mMJ;h #7풢#H@Q9)ɴ1-gVJ jloy^ƭa<*$SS^0(|97uOI0ڊ0IE%ԺS);K6.C.0!^D*EX*Ywٴwe'Ik앮 gc٭f qk 6?+PٳWʂ2߆rb&VS.4lnj2'J (r(hnD ՟ "~iY`d)RfkӤwRݯ✿q"R4](/>qBy9;xFcgfoDo0C )ޡ`hkC&Uƕ S^1x_x-Q"/@; WRdҚ*@ZiIMtR}[qauAnׇNGn`'Fpepz֘ur }#Ckw5+i苅Ɣ/oJȸAQԕurm?/>ǔڨ/_Gx6ʄX} hvf߁oװ.Jfgmi?qn2_d/3t˖P Źa|-5;`B3I׃ j!L}Wf#ǒ ޳\ϧ%G ,Dx JvSL)vgYuw3&z Û]e=f h2-i0ȏ4E`$b073m|A' ZNJD3e k$b)2?1z >2Unq/o]i(l%Vbj@EQivh "ϐBt.FqC`+&fUwQA/D&)eKh7._{$a8TQ 5kŴTr*tXPn;i|du9.+T̓oϙWе_ZXHrcI?nw`_TJ7ZP#5g}:~!m3>~MSKu+DS%S+xgl{*ʚ .c u*ݬ_Tutdp Gz]DI5<{RQ|丫c7Eu#6t ю]Qz *GH672Х0vQ[6pO t݃< w{^+$&N{yކ03Nj(n<ƎTvs{$7^0zO'ڴ|ҁE;MP6Jm# D(PV mC']KAR[$R7%NGf)wMCs2 FA&PL9S9Nt|Zx!zS}Nτ伲Y, [V=QTOKf1FqD*./D$2chI[盍@S|j;G=]ɇHf yb:6\*:)VNX!44i.K4/ f){F mwY%8׮A=H1 :8AhMvgyTp٥ *Q1 _Ie~0OU_%37xJu/ 7S]`ڢ:TAu U[MeC@j%IlL-,P!Ee7/BCM30Ob]tC.,6b}{եϧ`YH侱\d&;[Hd"tDG{5`\~xC<顖гpO8F01R #K9nX*Q~*XzEM㈑ڷ4Ʊ#C;qgV ^XUTs]P <_"*NYb8'0C|JWZm%kdz1؅mR8EŏKk_$RKTZ}^VWAҨZz y[>՛-i7ٷ!98/%vqZ؋P$!PɳNգ#H\  5Rj:x=)v\Fw 3?hlNWkѨО;_]hCݎVjPC%}]Uu=AK[\B}3Dra`$MI9#EP#DfvmV8lf*m*5g9N$ vDl9fc;S5.w彻RnZrMqk[hu`4o2 7 %1X52* I)ØOSTM2لzsJ+*OڂKI_@_bU88t8 >mRo29id桐G/mc k92%-4r6N$H=6 &\YcѮèc}I;«gȥ5vPuv4N~#/ɫ펠k(cȢ MnFC⺂ۤQW"{IbI0>@0E⫕5h&^=1~!v"DNWcª}hD&r}oNlu`[JQBJ*4/~4!'Dnd::0T4Y7Ȃya`PPBB8%c'& AO`.9>i^̈k{a!osn /smԜ`a6i :O~ ao= )-NMHdwCPs#TB}O3 \}2K)? ON7ѻ%GvSֺhR}xxq,m'~FVB'Hec}B`XWO;*cFyR9ߺitlFA )p%ҾWIVl0J4w)XJدj$# ŐT>v㦱qNwpOnk60KUÏ @ǙR_*[?Og#tkdKFX?yȷn~Q](r勒,Tm5p5H ^%XJ6(Xi܅-TѨ2 ^(2+` [&ѢzlCշN@2k M2ƃM{ˤ S>]>4c͘ iMBcED,9(kQe&>3{c\W4Ն(1hѭ\64(J,73j <+ngmՑ])UYMueE꟏u֑ͱJ|0FA e/]ú}7 VD7x.BfjP[S]K9gŔ\xbZNL qL{HOy4>Ǜa~Uϭ#l`H v̪퓩ýz(߲x$ϕv ^YIb 7~FN<$O>R˕٥!N V 3h)V.MSδ=#թn74DA/X. &'-mt# Cg#FM2|B8ݪ@D"0#LFȗ&H ʟH׷ۮ)Rzd,j;*OYS8WtZ6NTN,"x]Ej\qZe#؏wj{WKK:raIw@VSj) ]vaXw,4ОZAaڇ~UHH%L0>ԢQM ?!f_h5|#Ԋ"|~ggSmuKX<,?M6 =>1k qڐEnR&'\;mO\  p-H,k>t(tʌVi]kAr+›[VV-5rC2_G =[ϟ#6N^A`w)GBXwMjT1jQka QnL'sB<*Se%(z5ft"d{&>U=ξ!> h )`U@CGgb>։MdDg8a7P:a7#+dXz|-؍\v7R=Ƽޖ_CX> \c:Lȧ>G!k 3!^:/u6{'Whg&R_w(7Ҁw3fŽ7_J^ugۢ.Sr,}ݣJ(JŜs?r-$लg vIiة\z)i{/% YmBVkAץ<\<*6Erl|ڍݠˢtu(gaL4AWU,Vgw5r$~Q7E4-:ԫh1qsēJeYV.MtÙW):l2ts6݄ lK\蹧 5Y_g1􍉻&[`! ȣ(8g尿}#Py 2TqY&Y!@ a6;S㤔S[WLG8wuV*K*H UZlڳAU s^θ)tD뷸T4< "R/Z{GCqx=Juy 6}mr `i6/aB@hodQ08bK"uIyqK3dy'&@[`OzخGmQ3 [0! #1%sptBѱk밪6i?9JNJz{=)1o`4: ]uU3m[9bXX "R[S)}`8;fcE6R["G@9aT`Jݶ*=B7< q>雌ϻ+Qe)!Ċ=}Qш~;:4(ejoG&EFNGڄ0^)sf!Ba+{,q9?'$>L|ZKJΆ/uWuT6MX30^ Q@؄10<]&4c^'Mu[JzP%moXF*Lzت!AA\Pix]f~FЂ/b&edӓzg dcB@]9 M%eO})IUKya\̨DÖGƴ*67+ Lޅ)3yvlݤJsi?{62Y3.}>jט/]ĕH'9EXF;@XR?ʛw)pD9NPGv:;d7?RɎ'N"i4LvDw x$>L>h }$KQFb+kr>ҏ{ys&WoG- U:G!tO2%_G5JF0>G,YKҲaC :Yj)zg;&/@vii%>HW3fOeCs_ =^ޖeN()ʄ HtMXEXӑvYnF*"v^mNDjY^PL|bU 5he< (q9pƭG?Ϳl &`́cg~Rnltܜ45I~IA/l1{cpAde݈X=ڊuv7 I1őE+4MUP͉[CB.f${@,}̛D_Jo#sTK],7ky>yD~eVIKlZ0nM#"țWzW(}{Rwd/xˆXgpWy1-ŁHtFI&4R>?G=z2^s[2XsR=Դ9 !9Q[b9BeI_SX\OgxG.,R$y7=0S:x3u^3:yՏ؛Q0-vDhkm50~SN^xϘdo:w-~4DP`Lqt߻=YQT ҙ}(v E ԋ{c:6@mg 'g|Cַe"(,VIY?!| r7ibQRxX%祥DYSF{&ʮWlKA|mr}jf^(wӍpzô /wQ=K}ovmTLVU$]oTԐݗ-_(($ҊBQ9B4mʟg(k:@2M ݁R^輢 64RTf: j ivh3R 1{EN^^m\r5= tJ*uyhJd?T  S1lPۘsn(dYnd㑠7:lV?o`w c5p9f N;Zfl)kfXiSYNN2UZn%H #{í'=XyeW+m a4Q=];nQ/^==n$R~'~f7eW#+ 6v<gPMZp6w6m]i]ƹVg}DE\ }nȿdOxG2xc ]- $'iӡ}`QM E,͠qt Wܟ {P!:sTxpr>K҂̹gRްI 0 =D|Yگl]wUmjgQ b&  !0Zq9n j4 H{R 68s^3aJ7ʗςA==F%ҢD{ӯ/"<ގ Nwjڻz PӓfP渂nLJ-f~GFH6kw/${7z"jYrYO "6.{P0+7`Biga԰@³ǷI&C_{,&e7f $c~R]qĝX5 5Wkv!#UKӛ'(ܢJho U !hfʀr02pх  1OO@EmCAؔ!e7j}3]:pFZ)pO9cy` ӈa&+~GŢkV5DZ- bH 20tcϞP2*;{CmIcN7C;1[}N7"ʦ4I?v(|y^8͗7lbJ|Nu `_ ϥPjWP #:Zz52#.!7*oBIϬGǟ%?OI/ۡotCy`()7nSHS;]#;Dk(zqLy MD%.Q\.[yj3Ոc4JNDiSљbZRh]TJfݫy}tLL/ę6JmXn+gAB$cabri>ɇw=?s 7x!3fH`LzZWFjFLt_MJW9)P-g!֓#;[vGoQRO ߎY8@!(F2WFĚ.8/YiSe" qkIԧ3ng\&051Y.FqB `sY\%z iv"2Vapk׹]BH57 N2~eU]Dө%w $W.Y #j*q|>|c.+`p6c㺤(QxIXl;[@I +La6j]*|?&;8Dj յ {|충#{|B!妫1z5qt>ҨGlɈ0.U1: gh})s0.^k eT\؜mNx,scs<¢5[t'2"tnaQH^|pjBF1 ߫yֿ[SR.P#enoq O^Z!^Liĝpe@stogdRѿ&dHQ/i mWw[)x!ְ=(^H59!n ׼|ytyXH5}I@F1wa,:%[DG|V+=_n¯̓d'U_=O$mƕo(*zjy[L߾1Y3BX78=mP}0?iʯ>&'n nT~5,z]fB+C-Pƣ` `LBdE(k@/] W[Si?pnOw!~_Db(&٥.6DcL'Jೠȯqļ7g2\ Ss7$4R 4E2";4qlWI2: ߌ=3w]2dzcL"cU,,E]Wiϑ=~Ik\~#ōUs#KJ,g"R%9qB8).ը*s LvPLk~߆kBlX%;aA{;o=^7(_l8e(wls&HўZ?0Q4 -Cֺ5 L}YԤԍ8WE̐޽WWQlv؃-Mt +R))dZiF%V,b&NM6ge⍜N?XMPTu*fHCb<KᏐ2K*Z{QZ۪1EZi@Q A|Qq fr 3[j~| BhUR3D4$^$Ho+p|C FO@,?Y% 0GpR0A;gB/h}e1j5ߜ\8й"Y-COmߦ}@܌3b:_%} 4Pzs~x㺿ƛE1ͫ"9crs`sQY h^]| @Rץ9&;}:iIJ8c}aA.鹘Amʓ wy;\&0JA?.hK9kY.1ɮ{3;+C1g˓w p0p:UGGQZil]%ݭj Yz :`#wcZ@>պkLBL BjY2T{ǽcX3#S&}-D1Fe PĔ9dru\3Q "x QyLn =,ً`):rڬ;į뵟4Zi|\)V?2"DʦLkQٝ7eT7ʩ gGRzNRo5 +25{(v6. 2v[$U *<,'}nQRuMA9ReI_殂 /RRo#\'(i Sv DUo5FL{c$/.U54a`6"!8μ'cU\3L4=cs-&d#\!g.(Lpn斻}<@׆=JΣՍ >6_>.w\~ B)iª,WT< /4$Nuvx4·Ng ygz;&ҙ&D +m.?JFR:jmnka]YehHYvK Z1FGC@Ɣ`4rI¬l3A Ӣ9gPo{11>RU&bx2՗;eTh_?L~,2ʼn?ЀK)m 6j-eX V-*:a }*KT|l>QŖ:֗ Axnr^@HP@I[U!'}d}Rß0ٶï p,2 YZ